13. HTTPS通信利用は増加傾向
Copyright 2016 Sony Digital Network Applications, Inc. 13
インターネット通信機能を
持つアプリの内、88%の
アプリがHTTPSを使って
通信する
昨今のWeb事情を反映している
と思われます
16ポイント改善
72%→88%
暗号通信する
アプリの割合2013年
2015年
2016/2/18
14. HTTPS通信利用は増加傾向
Copyright 2016 Sony Digital Network Applications, Inc. 14
• 昨今のWebの事情を反映していると思われる(例)
https://twittercommunity.com/t/restricting-api-twitter-com-to-ssl-tls-traffic/12331
http://googlewebmastercentral-ja.blogspot.jp/2014/08/https-as-ranking-signal.html
2016/2/18
15. (一方)HTTPS実装の脆弱性
Copyright 2016 Sony Digital Network Applications, Inc. 15
HTTPS実装の脆弱性リス
クのあるアプリの割合は、
やや増加傾向
安易なHTTPS実装は、
安全な実装に寄与しない
可能性がある点に注意
脆弱性
傾向
4ポイント悪化
39%→43%
暗号通信が解読・改ざん
されるリスクのある
アプリの割合
2013年
2015年
2016/2/18
29. 新しい Permission Model
Copyright 2016 Sony Digital Network Applications, Inc. 292016/2/18
従来のPermission確認画面 新しいPermission確認画面
インストール
時に確認
実行時に確認
30. 新しい Permission Model
• 保護レベルがdangerousのpermissionのみ
影響
① 実行中の必要に応じたユーザー許諾
② Permission Group単位での権限管理
同じPermission Groupに属するpermissionは
一度の要求で全てgrantされる
③ ユーザーによる許可の取り消し (revoke)
– targetSdkがAndroid Mより前のバージョンでも、
Android M 端末上では、ユーザーは権限をrevokeできる
– Android Mより前のOSの動作する端末上では
新しいモデルは適用されない
Copyright 2016 Sony Digital Network Applications, Inc. 302016/2/18
31. 権限要求用のAPIを呼び出す
• 以下のメソッドで権限を要求する
– Activity.requestPermissions(String[], int)
– Fragment.requestPermissions(String[], int)
• 第一引数で必要なpermissionを列挙
• 第二引数でコールバックに渡すリクエストコードを指定
– startActivityForResult →onActivityResult とよく似ています
// READ_CONTACTSを要求する例
requestPermissions(
new String[] {Manifest.permission.READ_CONTACTS},
REQUEST_CODE);
こんな感じのダイアログが出ま
す。レイアウトは変更できません
Copyright 2016 Sony Digital Network Applications, Inc. 312016/2/18
38. Fingerprint Architecture
2016/2/18 Copyright 2016 Sony Digital Network Applications, Inc. 38
App
SystemServer
IFingerprintService
FingerprintService
fingerprintd
IFingerprintDaemon
FingerprintDaemonProxy
Fingerprint
Sensor
Fingerprint
HAL
Kernel
and/or
TEE
FingerprintManager
DeviceUser
Templates
Kernel/TEE
Implementations
are different
according to makers
and operators.
authenticate
enroll
etc…
android.permission.USE_FINGERPRINT (normal) is needed to authenticate
android.permission.MANAGE_FINGERPRINT (signature) is needed to enroll/remove
keystore
addAuthToken if verified.
最終的には
暗号鍵と連携
して動作
39. (参考)AndroidKeyStore
2016/2/18 Copyright 2016 Sony Digital Network Applications, Inc. 39
• 機能
– 鍵の管理(KeyStore):
Import/Export (Store/Load)
– 鍵の生成(KeyGenerator)
– 鍵の使用(Cipher/Signature/Mac):
暗号化・復号、署名・検証
• 指紋認証との関係
– 上記で暗号鍵を生成 or 既存の鍵を登録するとき
– 生成 or 登録以後に鍵を使うに際の条件として
– 指紋認証(で認証すること)を条件に設定できる