本文へスキップ
ecdsa.com

Secure Enclave

iPhone、iPad、Mac、Apple Watch のチップに搭載された、Apple の隔離されたセキュリティコプロセッサーで、エクスポートできない鍵を生成し、チップ内で署名や復号を行います。Face ID、Touch ID、パスコードによる保護を任意で設定できます。
別表記Apple Secure EnclaveSEPSecure Enclave Processor

アプリは CryptoKit(SecureEnclave.P256.Signing.PrivateKey、SecureEnclave.P256.KeyAgreement.PrivateKey)またはキーチェーン(kSecAttrTokenIDSecureEnclave)を通じて、ハードウェアの外に出ることのない鍵を得ます。アプリが保存するのは、デバイスに紐付いた不透明なハンドルです。従来型のアルゴリズムについては、Secure Enclave は NIST P-256 しかサポートしていません。これが、パスキーやデバイスに紐付いた認証情報で ES256 と COSE −7 が主流となっている理由の 1 つです。

iOS 26 と macOS 26(2025年)以降、CryptoKit は Secure Enclave に対応した ML-KEM と ML-DSA も提供しています。アクセス制御フラグ(.biometryCurrentSet、.userPresence)を使うと、鍵を使うたびに生体認証またはパスコードによる承認を求めることができます。

署名は、ほかのプラットフォームのキーストアと同様に DER エンコードで出力されますが、JWS や COSE の利用側では生の r‖s が必要です。アプリのプロトコルがリカバリに対応していない限り、デバイスを失うと鍵も失われます。同期パスキーは別の設計で、Secure Enclave ではなく iCloud キーチェーンに保管されます。

規格と参考文献

すべての用語