ここ数週間、AppleとGoogleの発表について騒動が巻き起こっています。iOSとAndroid OSの最新バージョンでローカルに保存された情報は、両社でも復号化できない形で暗号化されるというのです。
暗号化が既定で有効に
法執行機関はこの新たな事実を快く思っていません。令状をもってしても、ローカルに保存されたデータを強制的に復号化するための確実な方法がなくなるからです。そこで、彼らは職員を使ってあからさまな行動に出ました。小児愛好者やテロリストといったお決まりの筋立てを脅し文句に、暗号化は害悪であり危険であると信じ込ませようとしています。
一方で、消費者に真のモバイルデータセキュリティがもたらされるとして、プライバシーやセキュリティの提唱者たちは新しいディスク暗号化の仕組みを大いに歓迎しています。
こうした動きは無謀であるとの見方も、一部にあります。一方で、政府機関が訴追関連の情報を難なく収集できるようになって、その情報収集に対する監視体制が皆無に近い現状なのだから当然の反応である、と見る向きもあります。
#Google #Android の次期バージョンも #Apple #iOS と同様にディスク全体の#暗号化を既定で有効に
Tweet
先日、既定で有効になったAppleの新しい暗号化機能を紹介しましたが、そちらはやや法執行機関寄りの観点でまとめた記事です。今回は、最新のAndroid Lollipop(単に「Android 5.0」や「Android L」とも。Lはローマ数字で50を表し、Lollipopの頭文字でもある)の機能の一つとしてGoogleが大々的に宣伝している、既定で有効になった暗号化機能の技術面に触れてみたいと思います。
Androidの暗号化の簡単な歴史
Android Explorationsのニコライ・エレンコフ(Nikolay Elenkov)氏によると、AndroidユーザーはAndroid 3.0(Honeycomb)からフルディスク暗号化(FDE)の利用を選択できるようになりました。それ以降、AndroidのFDEは大きな変更がなかったのですが、Android 4.4で機能が強化されました。そして、Android Lでさらなる機能強化が行われることになるのですが、それ以上に重要なのは、FDEがAndroid 5.0で初めて既定で有効になるという点です。
当初Androidに導入された暗号化方式は、安全性がかなり高いと思われていました。しかし、大抵がそうであるように、ソフトウェアに実装したところ、ぜい弱性が露呈しました。特に、この暗号化方式の安全性は、ディスク暗号化用パスフレーズの複雑さと総当たり攻撃への耐性に、ほぼ完全に依存してしまうという問題があります。
http://instagram.com/p/ptPZ2dv0Fj
エレンコフ氏は次のように説明します。「十分な長さと複雑さのパスフレーズが設定されていれば、暗号化されたマスターキーへの総当たり攻撃には何年もかかるでしょう。しかし、Androidの場合、ロック画面用の暗証番号やパスワード(最大16文字)がディスク暗号化用パスワードとしても利用されています。これでは、ほとんどの人のディスク暗号化用パスワードが相対的に短い、つまり低エントロピーになってしまいます」
言い換えれば、Androidのディスク暗号化の強度は、ロック画面のパスワードの強さ(弱さ)と同じというわけです。ロック画面に長いパスワードを設定するのは煩わしく感じるもの。したがって、ほとんどの場合は非常にぜい弱な状態となります。
回数制限を設けるメカニズムを組み込むことで、総当たり攻撃の効果は弱まりました。ログイン試行が一定回数を超えると、攻撃者はロックアウトされるためです。しかしエレンコフ氏は、当然この保護メカニズムにも抜け道があると指摘します。抜け道の詳細は同氏の分析レポートを読んでいただければ分かると思いますので、ここでは触れません。要するに、ぜい弱な暗証番号やパスワードを総当たり攻撃で特定し、Androidデバイス上に保存されたコンテンツを復号化する方法が存在するということです。
この場合もはやはり、強力なパスワードが設定されていれば、攻撃ははるかに困難になりえます。しかし、4~6文字の典型的なパスワードであれば、文字通り数秒でユーザーのデータを復号化できてしまいます。
GoogleはAndroidバージョン4.4で、より強力な暗号化システムを導入しました。それでも、ベースとなるのは暗証番号またはパスワードです。そのため、弱い暗証番号やパスワードを総当たり攻撃で特定することは、依然として可能です。特定にかかる時間が、Android 4.4の場合は秒単位ではなく分単位になるとはいえ。
Android 4.4の一部のバージョンでは、別の暗号化パスワードを作成することができます。こうしておくと、2つの障壁(画面ロックと暗号化パスワード)で守られることになるため、侵入に対する防御効果が高くなります。
そしてLollipopへ
以上で挙げた攻撃は、Android Lでは通用しないでしょう。このOSのソースコードがまだ公開されていないため、正確な理由は明らかではありませんが。エレンコフ氏は分析の結果、パスフレーズ、暗証番号、またはロック画面のパスワードだけに基づいて復号鍵が得られることはなくなるとの結論に至りました。Androidの将来のバージョンにおける復号化では、ロック画面の暗証番号またはパスワードが部分的にしか利用されないようです。
エレンコフ氏は、一種の2段階認証が導入されると予想しています。これまでは暗証番号かパスコードだけで復号鍵が生成されていましたが、今後はパスワードや暗証番号に加えて、何らかの事前設定された、おそらくハードウェアベースの認証情報から生成されるのではないかと思われます。したがって、パスワードへの総当たり攻撃は可能であるものの、暗号化されたディスクを復号化することはできないでしょう。
まとめ
エレンコフ氏は次のように結論付けています。「Android Lでは、FDEが既定で有効になるほか、ディスク暗号鍵向けのハードウェア保護機能や、暗号化ディスクへのアクセス用のハードウェアアクセラレーション機能も実装が予想されます。この2つの機能により、AndroidのFDEがより安全になるとともに、大幅な高速化が実現するでしょう。」
つまり、世界で最も人気の高いモバイルOSが、ようやくもっと安全になるということです。