DroidKaigiとは
DroidKaigi(※1)とは、Android技術情報の共有とコミュニケーションを目的とした、エンジニアが主役のAndroidカンファレンスで、今年で4回目の開催となります。毎年200名ずつ参加者が増えており、今回は会場となった新宿に、国内外から1000名以上が集まりました。Twitterのトレンドにも#DroidKaigiが登場していましたので、目にされた方もいらっしゃるかもしれません。

図:会場案内。お馴染みのキャラクターは日本で「ドロイド君」と呼ばれていますが、正式名称は「Bugdroid」(バグドロイド)です。
カンファレンス模様
今年のテーマは「ニッチな技術」。Androidの公式言語に採用されたKotlin(※2)のような広いターゲットの技術はもちろんのこと、かなり尖ったものまで合計85セッションが用意されました。セッション登壇の応募総数は300件を超え、倍率は4倍近くなり年々競争率が高くなっていると感じます。参加者もグローバルで、日本語に限らず英語のセッションも多く開催されています。
会場では、同時に最大7セッションが実施されており、時間帯によっては、参加したいセッションがバッティングしてしまうこともありましたが、多くのセッションがスライドを公開しており、講演動画も後日公開されるため、情報共有の機会を逃すこともありません。

図:オープニングセッションの参加者の様子
登壇内容
私は「アプリの鍵が消える時」というタイトルで、NTTセキュアプラットフォーム研究所の金井文宏氏と共同で発表しました。
本セッションでは、Android Keystoreプロバイダを利用して作成したアプリ専用の鍵が、ユーザーの操作によって消えてしまう事象がある事を解説しました。これは、今回のカンファレンステーマが「ニッチ」でしたので、話題として頻出しない本テーマを設定し、初心者向けにシンプルな内容としつつも、これから本機能を導入しようとしている開発者には見逃せない事象に関する調査分析を紹介したものです。
Android Keystoreプロバイダ(※3)は、Android4.3から導入されている機能で、アプリ専用の鍵を作成できる機能です。また、端末が対応している場合には、端末上の安全な領域で鍵を保護することができます。
しかし、ユーザーが端末ロックの設定を変更した際に、このアプリ専用鍵が消えてしまうケースが存在します。これには、仕様上消えると解説されているケース(※4)(※5)の他に、仕様外で消えるケース、消失以外の現象が起きるケースがあります。今回、先行調査(※4)に加え、追試と対象を拡大した調査を実施し、その結果を解説しました。
また、本事象により、暗号化したデータが復号できなくなるといったアンチパターンを通して、Android Keystoreプロバイダを利用する際には、鍵が消えることを見越して、暗号化対象のデータを選び、復旧方法を含めてアプリを設計する必要がある事を説明しています。
技術カンファレンスでの情報発信
私はDroidKaigi2016から毎回登壇しており、今回が3回目となります。これまでの登壇内容については下記リンクからご覧いただけます。
- ・「パーミッションモデルの過渡期への対応」DroidKaigi 2016(外部リンク)
- ・「What is tested by pre-launch (security) reports? 」DroidKaigi 2017(外部リンク)
登壇にあたっては、準備に労力は必要ですが、テーマに対する自分の考えを整理するよい機会となっています。また、情報を発信することで、その内容に対し様々な質問や意見をいただき、同じテーマを抱える参加者とのコミュニケーションする機会も増え、自身の学びにも繋がっていきます。今回のDroidKaigiでは、セッション後に登壇者に質問できるオフィスアワーが設定されていたり、パーティーで登壇者の位置がわかるように目印となる風船が用意されていたり、交流機会が創出されやすい環境が整っていました。

図:パーティーでの参加者とのコミュニケーション
カンファレンスへの参加は、イベントや各種取り組みの際にお声がけいただくきっかけにもなっており、さらに活動の幅が広がります。
おわりに
NTTデータのセキュリティスペシャリストは、今回のDroidKaigiに限らず、積極的な社外への情報発信そして情報キャッチアップに努め、自身のスキル向上だけでなく、全社員のセキュリティノウハウの底上げと当社がご提供するシステムの更なるセキュリティ向上に取り組んでいます。
- ※1 DroidKaigi2018:https://droidkaigi.jp/2018/(外部リンク)
- ※2 Kotlin and Android:https://developer.android.com/kotlin/index.html?hl=ja(外部リンク)
- ※3 Android Keystore システム:https://developer.android.com/training/articles/keystore.html?hl=ja(外部リンク)
- ※4 KeyPairGeneratorSpec:https://developer.android.com/reference/android/security/KeyPairGeneratorSpec.html(外部リンク)
- ※5 Android Security: The Forgetful Keystore:https://doridori.github.io/android-security-the-forgetful-keystore/(外部リンク)追試の結果、異なる結果が得られた箇所もあります。
- ・本資料に掲載の会社名、製品名またはサービス名は、それぞれ各社の商標または登録商標です。