Androidエンジニア 兼 情報セキュリティ担当の鈴木です。
【レポート速報】Google I/O 2016 - Day1に引き続き、Google I/O 2016 2日目のレポートをしようと思います。
ちなみに本日は全体的に涼しく、若干過ごしやすい一日でした。 今日は参加したセッションのうちの「What's new in Android Security」について報告したいと思います。
さて今年の3月ほどにPreviewリリースされたAndroid Nにおいては以下の様なセキュリティの機能が追加されました。 * 新しいRuntime Permission * Key Attestation * Scoped Directory Access * Secure Networking
それに加えて今回の発表ではDirect BootとSafety Netいう機能も話されました。 これらがNの新しい機能か既存であったかは不明ですが、このうち「SafetyNet」を簡単に説明します。
SafetyNet
- GoogleApiClientを通してGoogle Servicesにアクセスし対象のAndroid端末の互換性状態と安全性を診断するものです。呼び出しは下記の様に実施します。
SafetyNet.SafetyNetApi.attest(googleApiClient, nonce).setResultCallback(new ResultCallback<SafetyNetApi.AttestationResult>) { @Override public void onResult(SafetyNetApi.AttestationResult result) () }));
このAttestationResultはCTS(Compatibility Test Suite)診断の結果を含んだものになります。
resut.getJwsResult() = { "nonce": "R2Rra24fVm5xa2Mg", "timestampMs": 9860437986543, "apkPackageName": "com.package.name.of.requesting.app", "apkCertificateDigestSha256": ["base64 encoded, SHA-256 hash of the certificate used to sign requesting app"], "apkDigestSha256": "base64 encoded, SHA-256 hash of the app's APK", "ctsProfileMatch": true, }
CTSに失敗するということは、ユーザの端末及び端末設定がAndroid Platform仕様に準拠してないということなので、それに基づいた処理を加えるようです。セッション時は「この端末では使えない」のような画面を出力していた様に記憶しています。
以上になります。もっと詳細を調べたいのですが(エミュレーターではうまく利利用できないとの声もあり)、明日の準備もあるため、取り急ぎ今日はこの辺で。
余談ですが、Nから追加されたセキュリティ機能の多くがNでのみしか実装できませんが、講演者に聞いた所SupportLibraryの移行はする予定と宣言していました。
参考
最後に
マネーフォワードでは、Google! Google!! Google!!!!! なエンジニアを募集しています。 ご応募お待ちしています。
【採用サイト】 ■マネーフォワード採用サイト ■Wantedly | マネーフォワード
【プロダクト一覧】 ■家計簿アプリ・クラウド家計簿ソフト『マネーフォワード』 ■家計簿アプリ・クラウド家計簿ソフト『マネーフォワード』 iPhone,iPad ■家計簿アプリ・クラウド家計簿ソフト『マネーフォワード』 Android ■クラウド型会計ソフト『MFクラウド会計』 ■クラウド型請求書管理ソフト『MFクラウド請求書』 ■クラウド型給与計算ソフト『MFクラウド給与』 ■経費精算システム『MFクラウド経費』 ■消込ソフト・システム『MFクラウド消込』 ■マイナンバー対応『MFクラウドマイナンバー』 ■創業支援トータルサービス『MFクラウド創業支援サービス』 ■お金に関する正しい知識やお得な情報を発信するウェブメディア『マネトク!』