Touch IDは、Homeボタンまたは電源ボタンに内蔵された静電容量式センサーによる指紋スキャンに基づくAppleの生体認証システムです。この技術は2013年にiPhone 5Sでデビューし、モバイル市場で初めての大規模生体認証センサーとなりました。Apple Platform Security(2025)によると、Touch IDのランダム一致確率は0.001%—つまり5万件の指紋につき1件です。
主なポイント
Touch IDは、Appleが開発した生体認証指紋センサーで、iPhone、iPad、Macデバイスでのユーザー認証に使用されます。この技術は静電容量式スキャンに基づいています。センサー上の薄いサファイアガラスが500ポイントの静電容量マトリクスを保護し、乳頭パターンの微細な詳細—ミニュチア、孔、線の方向—を読み取ります。
当時のAndroidデバイスで一般的だった光学式スキャナーとは異なり、Touch IDの静電容量方式は指とセンサーの直接接触により高い精度を実現します。Homeボタン周囲のセラミックリング(detection ring)が指の接触を検出し、生体接触がある場合のみマトリクスを起動して、金属物体の偶発的な接触による誤作動を防ぎます。
第1世代のTouch ID(iPhone 5S、iPad Air 2)は厚さ170ミクロン、センサー解像度500 PPIでした。第2世代(iPhone 6S、iPhone SE第1世代)はセンサーを170ミクロンマトリクスに改良し、濡れた指の認識が向上しました。第3世代はMacBook AirとMacBook Proのキーボード上のTouch IDボタンに使用されています—センサーはApple T2チップまたはSilicon Secure Enclaveに直接接続されています。
Touch IDによる認証プロセスは、登録(enrollment)と検証(verification)の2段階で構成されます。両方の段階はSecure Enclave内で実行されます—これは、root権限でもiOSからアクセスできない隔離されたセキュリティコプロセッサーです。
ユーザーは異なる角度で数回、Homeボタンに指を置きます。静電容量マトリクスは500 PPIの解像度で8×8mmの指紋領域をスキャンします。システムは同じ指紋の最大12種類の断片をさまざまな傾斜角度で収集します—これは指を360度回転させたときに認識するために必要です。各断片は数学的テンプレートに変換され、すべてが1つの参照指紋テンプレートに結合されます。
指がセンサーに触れると、detection ringがSecure Enclaveに信号を送り、スキャンを開始します。マトリクスは200~300ミリ秒で現在の指紋を取得し、ミニュチア(乳頭線の終端と分岐)を抽出して保存されたテンプレートと比較します。Secure Enclaveは50~100ポイントにわたって比較を行い、類似度メトリクスを計算します。一致が閾値を超えると、認証成功と見なされます。
3回の失敗後、Touch IDは10秒間ロックされます。5回の失敗後、デバイスのパスワードが必要になり、Touch IDはパスワードの正常入力まで無効になります。デバイスの再起動後または最後のロック解除から48時間経過後も、Touch IDはパスワードを必要とします—これはSecure Enclaveのハードウェア要件であり、プログラム的に回避することはできません。
Touch IDセンサーは多層構造で、各層が機械的保護からタッチ検出、指紋取得までの機能を果たします。すべてのセンサーデータは暗号化チャネルを介して直接Secure Enclaveに送信されます。
| 層 | 素材 | 機能 |
|---|---|---|
| サファイアガラス | 合成サファイア | マトリクスを傷から保護、指の電界を通す |
| Detection ring | ステンレス鋼 | 指の接触を検出しセンサーを起動 |
| 静電容量マトリクス | 500 PPI CMOSセンサー | 皮膚の隆線と谷間の静電容量差を読み取り |
| データバス | 暗号化チャネル | OSのアクセスなしでSecure Enclaveに直接データを送信 |
| Secure Enclave | ARM TrustZone | テンプレートの保存、比較、認証判断 |
主要なアーキテクチャ上の決定は、OSが生データにアクセスできないことです。iOSは指紋画像もテンプレート自体も見ることができません。Secure Enclaveは「成功」または「失敗」のバイナリ結果のみを返します。これにより、アプリケーションまたはオペレーティングシステムレベルでの生体認証データのプログラムによる傍受の可能性が排除されます。
Touch IDとFace IDは、Appleの2つの連続する生体認証技術です。共通の目標(ユーザー認証)にもかかわらず、アーキテクチャ、使用シナリオ、セキュリティ特性が異なります。この比較は、開発者がアプリケーションで認証を設計する際に考慮すべき制限を理解するのに役立ちます。
iOS開発では、両方のAPIが統一フレームワークLocalAuthenticationを通じて利用可能です。canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics)の呼び出しは、生体認証の種類に関係なく利用可能性を返します。つまり、生体認証を備えたアプリケーションはすべてのAppleデバイスで正しく動作します。
Touch IDのセキュリティアーキテクチャは、ハードウェアの分離、デバイスへの暗号論的結合、元の画像を保存しないという3つの原則に基づいています。これらの原則は、独自のSEPOSファームウェアで動作するコプロセッサーSecure Enclaveを通じて実装されています。
Secure Enclaveは製造時に固有のデバイス識別子(UID)を生成し、これはチップにヒューズされ、JTAGやプローブステーションでも読み取ることができません。指紋テンプレートはUIDから派生したキーで暗号化され、Secure Enclave内の暗号化フラッシュメモリに保存されます。デバイス起動のたびに、SEPOSはハードウェア検証器を通じてファームウェアの整合性を確認します—ファームウェアが変更された場合、Secure Enclaveは永久にロックされます。
Touch IDは生体認証検証のFIDO2要件を満たし、Apple Payでの支払い承認に使用されます。PCI DSS(Payment Card Industry Data Security Standard)は、多要素認証スキームのためにデバイスのPINと組み合わせて使用する場合、Touch IDをモバイル決済の有効な認証要素として認めています。デバイスが侵害された場合、攻撃者はSecure Enclaveから指紋テンプレートを抽出できません—システムモードによる不正アクセス試行があればデータは破壊されます。
iOS開発では、Touch IDの統合はLocalAuthenticationフレームワーク—Face IDと同じAPI—を通じて行われます。コードは両方の生体認証タイプで汎用的であり、特定のセンサーを指定する必要はありません。システムはユーザーのデバイスで利用可能な生体認証方法を自動的に判断します。
import LocalAuthentication
func authenticateWithTouchID() {
let context = LAContext()
context.localizedReason = "データにアクセスするには本人確認をしてください"
var error: NSError?
guard context.canEvaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
error: &error
) else {
// Touch IDが利用できません—パスワード入力画面を表示
showPasscodeScreen()
return
}
context.evaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
localizedReason: "指でTouch IDセンサーに触れてください"
) { success, authError in
DispatchQueue.main.async {
if success {
// Touch ID確認済み
self.unlockContent()
} else {
// 認証エラー
handleError(authError)
}
}
}
}
このコードは、Touch IDによる標準的な認証実装を示しています。canEvaluatePolicyメソッドは、Secure Enclaveに登録された指紋とデバイス上のセンサーの利用可能性を確認します。デバイスにTouch IDではなくFace IDがある場合も、同じコードは変更なしで動作します—LAContextが自動的に利用可能なセンサーを選択します。3回の失敗後、ハードウェアロックアウトが作動し、ユーザーはデバイスのパスワードを入力する必要があります。
特定の操作(Apple Payでの支払い署名など)への生体認証の暗号論的結合には、SecAccessControlパラメーターを指定したevaluateAccessControlメソッドが使用されます。このアプローチは、Touch IDの結果をKeychainのキーにリンクします。認証に成功すると、暗号化操作を実行するための秘密キーへのアクセスが解除されます。指紋スキャンが成功しなければ、キーはSecure Enclaveにロックされたままとなり、生体認証検証のプログラム的な回避の可能性が排除されます。
Touch IDは、iOSシステムレベルとサードパーティアプリケーションの両方で、いくつかの主要なシナリオで使用されています。各シナリオは統一されたLocalAuthentication APIを使用しますが、単純なロック解除から暗号署名付きトランザクション承認まで、異なるセキュリティポリシー要件を提示します。
主なシナリオには、デバイスのロック解除、App StoreとiTunesでの購入承認、Apple Payによる支払い確認、iCloud Keychainからの自動パスワード入力、LocalAuthenticationによるサードパーティアプリケーションでの認証が含まれます。各シナリオで、Touch IDはパスワード入力を置き換えます。ユーザーがセンサーに触れると、Secure Enclaveが本人確認を行い、資格情報を入力することなく操作が実行されます。
iOS 14+では、追加のASAuthorizationAppleIDRequest APIが導入され、Touch IDをApple IDと統合してSafari経由のウェブサイトへのパスワード不要ログインを実現します。ユーザーがTouch IDに触れると、ブラウザはSecure Enclaveから暗号署名されたトークンを受け取り、サーバーはパスワードを保存せずに検証できます。この仕組みはAppleのPasskeysエコシステムの基盤です。
よくある質問
Secure Enclaveには最大5つの指紋を保存できます。1人のユーザーの異なる指(親指、人差し指、中指)を保存したり、デバイスの共有アクセス用に家族の指紋を追加したりできます。6つ目の指紋を追加しようとすると、システムは既存の指紋を1つ削除するよう促します。各指紋は個別の暗号化テンプレートとして保存されます。
第1世代のTouch ID(iPhone 5S、iPhone 6)は濡れた指では動作しませんでした—水が導電性フィルムを作り、静電容量式読み取りを歪めます。第2世代(iPhone 6S以降)はセンサー感度の向上により、濡れた指の認識が改善されました。最適なパフォーマンスのためには、指を乾かすことをお勧めします。
理論的には可能です—500 PPIの指紋スキャンから採取した高品質のシリコンモールドは、Touch IDの検証を通過する可能性があります。しかし、そのようなモールドの作成には実験室環境と元の指紋へのアクセスが必要です。Secure Enclaveは追加の保護を提供します。試行回数を制限し、5回の不一致の後にセンサーをロックするため、自動ブルートフォースは非現実的です。
Secure Enclaveは、Apple Aシリーズチップ上の隔離されたコプロセッサーで、SEPOSの下で動作します。独自のファームウェア、センサーへの独立したデータバス、ハードウェアAES-256暗号化モジュールを備えています。Secure Enclaveは指紋の数学的テンプレートを保存し、検証時にそれらを比較して、iOSに成功またはエラーのバイナリ結果のみを返します。
2026年現在、Touch IDはiPhone SE(第3世代)、iPad(第9世代および第10世代)、iPad Air(第4世代および第5世代)、iPad mini(第6世代)、およびApple Siliconチップを搭載したすべてのMacBookに搭載されています。フラッグシップのiPhone 15および16 ProはFace IDのみを使用します。Macでは、Touch IDボタンはキーボードの右上隅にあり、チップのSecure Enclaveに直接接続されています。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。