そのスマホアプリ、権限を分離しませんか?

前置き

この前Twitterでこんなやりとりをしました。


という訳で、言い出しっぺの法則で実証コードを書いてみました。*1

仕様

仕様は次のようにしてみました。

  • プラグインアプリにだけ「連絡先読み取り」権限を付ける。
  • 本体アプリはプラグインアプリを呼びだして結果を受け取る。(今回はActivityで実装)
  • 本体アプリに渡す連絡先情報を限定出来るようにしておく。
  • プラグインアプリが未インストールだったら、使いたい人だけマーケットへ誘導してあげる。
  • プラグインアプリの画面から、アプリケーション管理画面へ飛べるようにしてアンインストールを容易にしてあげる。

あとセキュリティ対策として

  • 三者のアプリにプラグインアプリを勝手に使用されないよう権限設定する。
  • 関連するセキュリティ対策を行う。

もやっておきました。*2

*1:色々汚いコードだけど許してくださいね。まあ逆に言えば「センス不足の素人ですら簡単に権限が分離出来る」難易度ですので、みんなも遠慮無くチャレンジしてください。

*2:JSSECさんの『Android アプリのセキュア設計・セキュアコーディングガイド』【6月1日版】をベースに、独自に好き勝手やったものです。

続きを読む