web-dev-qa-db-ja.com

安全なエンクレーブとキーチェーンのセキュリティ

AppleからWWDC 2015 記事 を読みました。

また、KeyStoreコンポーネントをカーネルからSecure Enclaveに移動しました。このコンポーネントは、キーチェーンアイテムとデータ保護に関する暗号化を制御します。

これは、生成されてキーチェーンに格納された秘密鍵が、セキュアエンクレーブで直接生成された秘密鍵と同様のセキュリティレベルを持つことを意味しますか?

私が考えることができる1つの違いは、Secure Enclave内で生成された秘密鍵がどのような形式でも抽出できないことです。

10
Summer

これによります。キーチェーンを使用して、取得できるキーを格納している場合、セキュリティレベルは同じではありません。それを使用するには、そのキーをメモリに移動する必要があります。安全なエンクレーブは、使用されていないときにそのキーデータをより安全に保存することです。

または、実際のキーを作成してエンクレーブに直接保存することもできます。見る -

https://developer.Apple.com/documentation/security/certificate_key_and_trust_services/keys/storing_keys_in_the_secure_enclave

秘密鍵をセキュアエンクレーブに格納すると、実際にその鍵を処理することはないため、鍵が危険にさらされることは困難になります。代わりに、鍵を作成して安全に保管し、それを使用して操作を実行するようにセキュアエンクレーブに指示します。暗号化されたデータや暗号署名の検証結果など、これらの操作の出力のみを受け取ります。

...

既存のキーをインポートできません。 Secure Enclave内で直接キーを作成する必要があります。 Secure Enclaveとの間で鍵データを転送するメカニズムがないことは、そのセキュリティの基本です

2
Hector