シンガポールで開催される今年の Hack in the Box (HITB) カンファレンスに先立ち、Twitter ハンドル名「xerub」のセキュリティ研究者が、Touch ID を処理する iPhone 5s の暗号化コプロセッサ「Secure Enclave」の完全な復号化キーを公開することに成功した。
彼はまた、その復号鍵をオンライン上に公開した。
この鍵が公開されたからといって、携帯電話が安全ではなくなるわけではありません。Secure Enclaveに保存されている機密データは、これまで侵害されておらず、今後も侵害される可能性が低い他の鍵で保護されています。セキュリティ専門家ができることは、「img4lib」ライブラリを使って暗号を復号し、暗号化コプロセッサ上で動作するAppleの秘密ソフトウェアを詳しく調べることくらいで、そこに保存されているデータを読むことはできません。
不思議に思われる方もいるかもしれませんが、Secure Enclave は、Apple Watch Series 1 および Series 2 を動かす S2 チップと、iPhone 5s 以降の A7 チップに搭載されている Apple の A シリーズ チップに組み入れられています。
あくまで推測ですが、Secure Enclaveファームウェアを調査することで、その内部構造に関する貴重な知見が得られ、ひいては脱獄に用いられるエクスプロイトの発見が容易になる可能性があります。ただし、Secure Enclaveを標的としたエクスプロイトはiPhone 5sに特有のものであり、カスタムファームウェアをロードするにはiPhoneに物理的にアクセスする必要があります。
Secure Enclaveには独自のセキュアブートプロセスがあり、専用のファームウェアがAppleによって検証・署名されていることを保証します。メインプロセッサで実行されるiOSコードと混同しないでください。Secure Enclaveのファームウェアは、Aシリーズメインプロセッサとは別に、Secure Enclave専用に作成されたパーソナライズされたソフトウェアアップデートプロセスを通じてのみ変更できます。
キーは完全に成長しました https://t.co/MwN4kb9SQI 復号には https://t.co/I9fLo5Iglh を使用し、処理には https://t.co/og6tiJHbCu を使用します
— ~ (@xerub) 2017年8月16日
iOSハッカーのウィル・ストラファック(通称クロニック)は、セキュアエンクレーブが実際にハッキングされたわけではないため、エンドユーザーにとってこれは大した問題ではないとすぐに指摘した。「今回の復号鍵はファームウェア用なので、より多くの研究者が調べることができます」と彼はTwitterで述べた。
2013年に発売されたiPhone 5sには、Touch ID指紋センサーが搭載されました。指紋センサーから得られる機密データを安全に保存・保護するため、Appleはチップ内チップ「Secure Enclave」を開発し、iPhoneのメインプロセッサであるA7に組み込みました。
独自の暗号化メモリとハードウェア乱数ジェネレータを備えた独立したエンティティと考えてください。Secure EnclaveとメインのA7プロセッサ間のすべての通信は、割り込み駆動型メールボックスと共有メモリデータバッファに分離されています。
プロセッサはデータをSecure Enclaveに転送するだけで、読み取ることはできません。つまり、メインプロセッサはデバイスキーを直接取得したり、Secure Enclaveに保存されている暗号化データを読み取ったりすることはできません。また、その機能を変更することはできません。変更するには、Secure Enclave専用に作成された新しい署名付きファームウェアを導入する必要があります。
Secure Enclaveは基本的にARMv7aコプロセッサであり、AppleがカスタマイズしたL4マイクロカーネルファミリーを実行します。Secure Enclaveの暗号化メモリに安全に保存されたデータは、ARMのTrustZoneとSecurCoreテクノロジーによって保護されていると推測されています。
A8 以降のプロセッサの Secure Enclave のメモリとは異なり、A7 の Secure Enclave のメモリは一時キー (電話の起動時に作成される) で認証されません。
Secure Enclave (小さい長方形) は、メインの A シリーズ チップに組み込まれています。
前述のように、Secure Enclave には、Touch ID を強化し、システムにすべての暗号化機能を提供する独自のファームウェア、カーネル、ドライバー、サービスがあります。
暗号化コプロセッサは、安全なパスを介して Touch ID センサーと Secure Enclave 間のすべての通信を制御するほかに、他の機能とサービスも提供します。
- フラッシュストレージに書き込まれるデータを暗号化します
- ファイルシステムから読み取ったデータを復号化する
- ロック画面で無効なパスコードが入力された後、遅延時間が徐々に長くなるように強制します。
- Apple Payの認証プロセスを管理し、取引を続行できるようにします
- Touch IDセンサーから指紋のラスタースキャンを受信します
- スキャンを暗号化されたメモリに一時的に保存します
- スキャンをベクトル化して分析し、その後スキャンを破棄する
- 登録された指紋と一致するかどうかを判定します
- 識別情報なしでノードの結果マップを安全に保存します
Apple の iOS セキュリティ ガイド文書と関連特許出願によれば、Secure Enclave はシステム ソフトウェア認証を使用して、カーネルが侵害された場合でもデータ保護と自身のファームウェアの整合性を確保し、ダウングレードのインストールを防止します。
A9 以降の A シリーズ プロセッサでは、Secure Enclave は、各デバイスに固有の 256 ビット AES キーである一意の ID (UID) を安全に生成する役割も担います。
この UID は、Secure Enclave 独自の暗号化されたメモリに安全に保存されるため、Apple やシステムの他の部分には認識されません。
iOS が認識できるのは、UID (またはチップにコンパイルされ、デバイスのクラス内のすべてのプロセッサに共通なデバイス グループ ID である GID。たとえば、A9 プロセッサを使用するすべての iOS デバイス) をキーとして使用して、シリコンに実装された専用の AES エンジンによって実行される暗号化または復号化操作の結果だけです。
Apple のバグ報奨金プログラムによれば、Secure Enclave によって保護されている機密資料の抽出に成功した場合には 10 万ドルの賞金が授与されるそうです。