既に出荷済みのSamsung製スマートフォンの多くに、暗号化キーの抽出を可能にする設計上の欠陥があったことが明らかになっています。このことについて、海外メディアのThe Registerが解説しています。
Samsung shipped ‘100m’ Android phones with flawed encryption • The Register
https://www.theregister.com/2022/02/23/samsung_encryption_phones/
Androidスマートフォンはほとんどすべての製品がArm互換のシリコンを使用しており、ArmのTrustZoneテクノロジーによってサポートされるTrusted Execution Environment(TEE)に依存する形で機密性の高いセキュリティ機能を通常のアプリケーションから分離し保護しています。各スマートフォンのTEEは独自OSであるTrustZone OS(TZOS)を実行しているという点では共通していますが、TZOS内に暗号化機能を実装するのは各ベンダー次第です。
Samsungの場合、TrustZoneで実行されているKeymaster TAと呼ばれる信頼済みアプリケーションを介して、暗号化キー管理を提供するKeymaster Hardware Abstraction Layer(HAL)を実装し、安全な環境でキーの生成、暗号化、認証、署名の作成などの暗号化を実行しているとのこと。
Keymaster TAは、暗号化キーをBLOBとして保存します。キーはブロック暗号のAES-GCMを介して暗号化され、Android環境のファイルシステムに保存できますが、理論的にはTEE内でのみ読み取り可能である必要があります。
Samsungのセキュリティ上の欠陥とは、このBLOBにまつわるものです。Samsung製端末を調査したイスラエル・テルアビブ大学のAlon Shakevsky氏らによると、Galaxy S8、S9、S10、S20、およびS21で、Keymasterアプリをリバースエンジニアリングし、初期化ベクトルのコード再利用攻撃を実施することでハードウェアで保護されたBLOBからキーを抜き出すことが可能だったそうです。
初期化ベクトルは毎回一意の番号であると想定されているため、同じプレーンテキストが暗号化されている場合でも、AES-GCM暗号化操作を行うと異なる結果が生成されます。 しかし、「ソルト」と呼ばれる初期化ベクトルと暗号化キーが同じままである場合は同じ出力が生成されることが明らかになっており、こうした点から暗号化が適切に行われないとされています。
Shakevsky氏らがこの脆弱(ぜいじゃく)性を発見した2021年当時、1億台のSamsung端末が脅威にさらされていたと推定されています。ただし、Samsungは2021年5月に調査を開始し、同年8月に修正パッチをリリースしました。
Shakevsky氏らは、AES-GCM以外の暗号化スキーム、またはAES-GCM-SIVといった初期化ベクトルの再利用攻撃に耐えられるようなバージョンを実装するべきだと主張しており、調査結果を記した論文を来る2022年4月の暗号化研究シンポジウム「Real World Crypto Symposium」等で発表する予定だとしています。
この記事のタイトルとURLをコピーする