Androidで作るセキュアなアプリのポイントとは
2.6 アプリケーションの不正利用抑止
悪意を持つユーザが端末からアプリケーションを抜き出し、本来ならばユーザとして不適格な人物にアプリケーションを渡してしまう可能性があります。アプリケーションの抜き出し自体を完全に防ぐのは難しいため、このような場合に備えて、セキュリティを維持できる方法を考えておく必要があります。アンドロイドマーケットで購入したアプリケーションの場合は、コピー防止機能やAndroid Market Licensing Serviceを利用することで、不正使用をある程度防ぐことができます。
しかし、購入手続きなしで配布される業務用アプリケーションの場合、GoogleのAndroid Market Licensing Serviceは利用できません。重要な業務用サーバにアクセスするアプリケーションの場合は、アプリケーションが抜き出され、ユーザIDとパスワードも漏洩するという最悪のケースを想定し、そのような場合であっても不正にアクセスできないような対策を立ててください。これについては、以下の方法が考えられます。
- ログインIDとパスワードに加えて、端末側で生成したUUIDなどを使った機器認証を組み合わせる
- ワンタイムパスワードを導入する
アプリケーションの重要度にもよりますが、アプリケーションの使用者を限定することが必要な場合は、Android Market Licensing Serviceに相当する仕組みを独自に実装する必要があるかもしれません。アンドロイド端末だけで不正使用を完全に防ぐのは難しいため、アンドロイドアプリがクリティカルなシステムの一部である場合は、システム全体のセキュリティを設計した後、アンドロイドアプリが担う範囲を決めるとよいでしょう。
2.7 まとめ
- 1. アンドロイドの連絡先を使用する場合
- 連絡先のデータは他のアプリケーションから参照可能なので、セキュアなデータを入れるべきではない。
- 2. ユーザのプライバシーを守る
-
- ユーザの行動監視につながるような情報を取得する場合は、オプトイン形式でユーザの許可を得る。
- 取得したデータの用途を明示するとともに、許可をいつでも取り消すことができる手段を用意する。
- 取得したデータは個人情報に準じる情報として厳重に管理する。
- データはなるべく端末内に保存しないことが望ましい。
- 3. アプリケーションが個人情報保護法の適用を受ける場合
- 企業が業務目的で保持している個人情報を使用するアプリケーションの場合、個人情報は厳重に管理される必要がある。以下の3点は最低限必要と考えること。
-
- データはなるべく端末内に保存しないようにする。
- やむを得ず個人情報を保存している場合は、データ抜き取りに対する対策を施す。
- 個人情報を外部に送信している場合は、パケット盗聴に対する対策を施す。
- 4. 著作権が設定されるデータを内蔵する場合
-
- データ抜き取りを完全に防ぐことはできないものと考える。
- DRMか、最低でも暗号化を適用するなど、抜き取られても使用できないような対策を施す。
- 5. 外部に公開する機能がある場合
-
- 基本原則は「できる限り公開範囲を狭くする」である。
- 外部と連携し、呼び出し可能な機能を実装する必要がある場合は、呼び出し元の確認やパーミッション設定などの対策を施し、呼び出し元を限定するよう努力する。
- 6. アンドロイドマーケットで公開する場合
- ユーザの正当性を確認する必要がある場合は、Android Market Licensing Serviceの利用を検討する。
- 7. 業務アプリケーションの場合
-
- Android Market Licensing Serviceを利用できないケースが大半であると見られる。
- ユーザの正当性を確認する必要がある場合は、ユーザ認証の仕組みを用意したほうがよい。パスワードが漏洩することを想定して対策を施すことができれば理想的である。
Android Security 安全なアプリケーションを作成するために
システムの脆弱性を突くスパイウェアの手法を学び、ユーザの個人情報や企業データを情報漏洩のリスクから守る。セキュリティ対策チェックシートや用語集も収録! アンドロイドアプリの開発者が知っておくべき実践ノウハウが満載の一冊です。Android 4.0:Ice Cream Sandwich(APIレベル14)に関する最新情報にも対応!
タオソフトウェア株式会社 著
価格:3,360円 (本体 3,200円+税)
発売日:2012年01月06日発売
ISBN:978-4-8443-3134-6
発行:インプレスジャパン