iPhone 5sの指紋スキャナー、Touch IDについては、すでに多くのことが分かっています。この高度なセンサーはシームレスに動作し、時間の経過とともに指紋について学習していきます。そのため、使用するたびに重複するノードが特定され、指紋マップが拡張され続けます。
指が油っぽかったり濡れていたり、ホームボタンに汚れやゴミが付いていない限り、どんな向きの指紋でも照合できます。他人の指紋とランダムに一致する確率は5万分の1で、一般的な4桁のパスコードを推測する確率1万分の1よりもはるかに高いです。
Touch ID センサーは実際の指紋画像を保存するのではなく、指紋の暗号化されたプロファイルを作成し、システムの他の部分から隔離された Secure Enclave と呼ばれる A7 プロセッサ上のモジュールに保存します。
指紋認証に5回失敗すると、または再起動するたびに、ハッカーが時間を稼ぐことができないよう、システムはパスコードの入力を求めます。これらはTouch IDに関する重要な情報であり、Touch IDの導入当初から公開されています。
Appleは本日、iOSセキュリティに関するホワイトペーパー[PDFダウンロード]を更新し、Touch IDがA7チップとそのSecure Enclave部分と連携して、高度なセキュリティで指紋の一致を検出する仕組みについて、これまで知られていなかった詳細をいくつか明らかにしました。また、このホワイトペーパーでは、指紋データの改ざんを防ぐためにAppleが導入したその他のセキュリティ対策についても詳しく説明しています。
Apple の Web サイトで提供され、2013 年 9 月の 2 つの iPhone の基調講演で公開された情報に基づくと、すべての指紋プロファイルは Apple の A7 チップ上の安全な場所にローカルに保存されることがわかっています。
A7プロセッサのこのSecure Enclave部分と物理的に通信するのは、Touch IDセンサーのみです。さらに、指紋データはAppleのサーバーに保存されず、iCloud経由で同期されることも、システムやアプリに公開されることもありません。
繰り返しますが、前述のルールはすべて以前から知られています。
同じTouch IDは2つとして存在しない
そして2013年10月、iMoreは、Appleが個々のTouch IDセンサーケーブルを個々のiPhone 5sにペアリングし、コンポーネントケーブルアセンブリ自体が個々のA7チップに接続されている可能性があることを発見しました。
これらの特別な対策の結果、Touch IDセンサーをハッキングされたモジュールに交換しても効果はありません。Touch IDが接触するドックコネクタを交換しても効果はありません。ロジックボード自体を交換したとしても、Touch IDは動作しなくなります。繰り返しますが、これはすべてあなた自身のセキュリティを守るためです。
Apple の更新されたホワイトペーパーは iMore の調査結果を裏付けています (強調は筆者による)。
各 Secure Enclave は、製造時に独自の UID (一意の ID) でプロビジョニングされます。この UID はシステムの他の部分からはアクセスできず、Apple にも認識されません。
デバイスの起動時に、一時キーが作成され、UID と組み合わされて、デバイスのメモリ領域の Secure Enclave 部分を暗号化するために使用されます。
さらに、Secure Enclave によってファイル システムに保存されるデータは、UID とアンチリプレイ カウンターを組み合わせたキーで暗号化されます。
下の図: A7 チップ上の Secure Enclave モジュール (白い長方形)。
Touch ID、A7、Secure Enclaveが指紋の一致を検出する仕組み
Secure Enclave は、登録された指紋と一致するかどうかを判断します。
一致が検出されると、Secure Enclaveがユーザーに代わってアクセスまたは購入を許可します。Appleの説明によると、指紋データはシリアル・ペリフェラル・インターフェース・バスを介してA7チップとTouch IDセンサー間で転送されます。
A7 が実行できるのは、データを Secure Enclave に転送することだけです。データを読み取ることはできません。
Secure Enclave とアプリケーション プロセッサ間の通信は、割り込み駆動型メールボックスと共有メモリ データ バッファーに分離されます。
指紋暗号化について
指紋データは、Touch ID センサーと Secure Enclave に組み込まれているデバイスの共有キーを使用してネゴシエートされたセッション キーで暗号化および認証されます。
セッション キー交換では AES キー ラッピングが使用され、両側でセッション キーを確立するランダム キーが提供され、AES-CCM トランスポート暗号化が使用されます。
パスコードとTouch ID
この文書には、Touch ID の代わりにパスコードが必要となる次のような状況についても詳しく説明されています。
- iPhone 5sの電源を入れたか、再起動したばかりです
- iPhone 5sは48時間以上ロック解除されていない
- 指を合わせるのに5回失敗した後
- Touch IDで新しい指を設定または登録する場合
- iPhone 5sがリモートロックコマンドを受信しました
最後の項目、つまりデバイスがリモート ロック コマンドを受信した後にパスコードに戻ることは、これまで知られていませんでした。
他に言及する価値のある豆知識:
ロック解除の猶予期間について
Touch IDが有効になっている場合、ロック解除の猶予期間はありません。iPhone 5sはスリープ状態になると、例外なく即座にロックされます。
Appleによると、「Touch ID搭載のiPhone 5sはスリープ状態になるたびにロックされ、スリープ解除のたびに指紋認証(またはオプションでパスコード)が必要になります。」
認証トークンについて
Touch IDがiTunes Store、App Store、iBooks Storeでの購入を承認するように設定されている場合、デバイスとストアの間で認証トークンが交換されます。トークンとノンスはSecure Enclaveに保管され、ノンスはすべてのデバイスとiTunes Storeで共有されるSecure Enclave鍵で署名されます。
指紋データの入手可能性について
Touch ID 認証および登録された指紋に関連付けられたデータは、他のアプリやサードパーティでは利用できません。
指紋データのセキュリティについて
高解像度500ppiのプリントスキャンは、分析のためにベクトル化される間、Secure Enclave内の暗号化メモリに一時的に保存されます。ただし、ベクトル化が完了するとスキャンはすぐに破棄されますのでご安心ください。
さらに重要なのは、指紋プロファイルはリバースエンジニアリングできないことです。
これは、分析が皮下隆起流角マッピングに基づいているためです。Apple は、これは「実際の指紋を再構築するために必要な細部データを破棄する」非可逆的なプロセスであると説明しています。
Appleの指紋データポリシーについて
ベクトル化された指紋データ(ノードマップ)は、デバイスから外部に送信されることはありません。暗号化され、個人情報を一切含まずにSecure Enclave内に保存されます。Secure Enclaveのみが読み取り可能で、Appleに送信されたり、iCloudやiTunesにバックアップされたりすることはありません。
Touch IDでiPhoneのロックを解除する方法
ここでは、Touch ID センサーが実際に iPhone 5s のロックを解除したり、購入を承認したりするときに実行される、高度な舞台裏の手順の一部を紹介します。
A7プロセッサ搭載デバイスでは、Secure Enclaveがデータ保護用の暗号クラスキーを保持します。デバイスがロックされると、データ保護クラスCompleteのキーは破棄され、ユーザーがパスコードを入力してデバイスのロックを解除するまで、そのクラスのファイルとキーチェーン項目にアクセスできなくなります。
Touch IDがオンになっているiPhone 5sでは、デバイスがロックされてもキーは破棄されず、Touch IDサブシステムに渡されるキーでラップされます。ユーザーがデバイスのロックを解除しようとすると、Touch IDがユーザーの指紋を認識すると、データ保護キーのラップを解除するためのキーが提供され、デバイスのロックが解除されます。このプロセスにより、デバイスのロックを解除するためにデータ保護サブシステムとTouch IDサブシステムの連携が必要となるため、さらなる保護が実現します。
復号されたクラスキーはメモリ内にのみ保存されるため、デバイスを再起動すると失われます。また、Secure Enclaveは48時間経過またはTouch IDの認証に5回失敗すると、キーを破棄します。
セキュアエンクレーブとコード署名
Secure Enclave は、A7 チップ内のシステム オン チップ (SoC) であり、メインの A7 プロセッサとは別に、独自のセキュア ブートおよびパーソナライズされたソフトウェア アップデートを使用します。
Apple は、「重要な操作は Secure Enclave によって実行されます」と書いています。
では、その「重要な操作」とは何でしょうか?
Apple によれば、Secure Enclave は (とりわけ) セキュア ブート プロセス中に個別のソフトウェアが Apple によって検証され、署名されることを保証します。
A7 プロセッサを搭載したデバイスでは、Secure Enclave コプロセッサはシステム ソフトウェア認証も利用して、ソフトウェアの整合性を確保し、ダウングレードのインストールを防止します。
Secure Enclave は、システムの残りの部分にすべての暗号化操作を提供し、カーネルが侵害された場合でもデータ保護の整合性を維持します。
ご存知ない方のために説明すると、各 iOS デバイスの固有 ID (UID) とデバイス グループ ID (GID) は、製造時に A7 チップに「融合」されます。
「ソフトウェアやファームウェアは、これらを直接読み取ることはできません。これらを使用して実行された暗号化または復号化操作の結果のみを見ることができます」と文書には記されている。
Appleによるソフトウェアアップデートと復元の確認について
UID は各デバイスに固有であり、「Apple またはそのサプライヤーによって記録されることはありません」が、GID は、A7 搭載の iPad Air など、iOS デバイスのクラスのすべての Apple 設計プロセッサに共通です。
GID は、インストールおよび復元中にシステム ソフトウェアを配信する際の追加レベルの保護として使用されます。
これらのキーをシリコンに統合すると、キーの改ざんやバイパス、AES エンジン外部からのアクセスを防ぐことができます。
UID によってデータを特定のデバイスに暗号的に結び付けることができるのはすばらしいことです。
この巧妙なアプローチの結果、ハッカーがメモリ チップをあるデバイスから別のデバイスに物理的に移動しようとしても、ファイルにはアクセスできなくなります。
セキュアエンクレーブとパスコード
Secure Enclave は、ロック解除要求を繰り返し失敗させる間に 5 秒間の遅延を強制することで、パスコードをより安全に処理します。
ホワイトペーパーによると、「これにより、iOS によって実施される安全策に加えて、ブルートフォース攻撃に対する規制が提供されます。」
最後に、長いパスコードに関する次のような事実も発見しました。これは、Apple の細部へのこだわりを改めて示すものです。
数字のみを含む長いパスワードを入力すると、ロック画面にフルキーボードではなくテンキーが表示されます。数字のみを含む長いパスコードは、英数字のみを含む短いパスコードよりも入力しやすい場合がありますが、セキュリティは同等です。
システム管理者は、パスコード ポリシーを作成し、これらの構成プロファイルをビジネス デバイスに一括インストールすることで、複雑なパスコード要件を適用し、Touch ID を有効/無効にすることができます。
はい、Touch ID は Apple Inc. の商標です。
このドキュメント全体は、Touch ID、A7、Secure Enclave の複雑な仕組みを深く知りたい人にとって、非常に興味深い読み物です。
Touch ID のセキュリティと内部の仕組みに関する追加情報は、「iPhone 5s: Touch ID の使用」および「iPhone 5s: Touch ID のセキュリティについて」というタイトルの 2 つの Apple サポート ドキュメントに記載されています。
iDownloadBlogではAppleの指紋スキャナについても詳しく取り上げていますので、Touch IDアーカイブもぜひご覧ください。また、脱獄済みの方は、Touch ID脱獄用の素晴らしい小技の数々もぜひご覧ください。