【完全保存版】BananaSDKを通じて、Secure Enclaveを学んでみよう!
こちらは、BananaSDKのドキュメントを翻訳・編集したものです。
1 Secure Enclaveとは
1 概要
Secure Enclaveは、Appleデバイスに統合されたコプロセッサで、機密データの安全なストレージおよび処理機能を提供します。
なお、コプロセッサとは「中央処理装置(CPU)を補助するために搭載される、機能を特化させた補助的な処理装置」です(Wikipediaから)
指紋や暗号化キーなどの機密データを格納し、処理します。
Secure Enclaveは中央プロセッサから隔離されています。
これにより、デバイスへの不正なアクセスから保護されます。
2 sepOSについて
Secure Enclaveは自身のオペレーティングシステム、Secure Enclave Processor OS(sepOS)を実行します。
それにより攻撃者がその上に格納されたデータを侵害するのがより難しくなります。
3 その他の特徴について
また、ハードウェアベースの乱数生成器を提供します。
暗号化や復号化などの暗号操作を実行することができます。
Secure Enclaveは署名者として機能し、Banana Walletのすべてのトランザクションの署名を担当します。
2 アーキテクチャ
1 Secure Enclave Processor (SEP)
Secure Enclaveの主要な計算リソースは、デバイスのOSから完全に独立しています。
ファイルをどのように暗号化するか、そしてどの種類の暗号化を使用するかを管理します。
2 Secure Enclave AES Engine
AES暗号に基づく対称暗号を実行するために使用されます。
ハードウェアキーは、Secure EnclaveのUIDまたはGIDから派生します。
3 Public Key Accelerator (PKA)
非対称暗号操作を実行するためのハードウェアブロックです。
PKAは、RSAおよびECC(楕円曲線暗号)の署名と暗号化アルゴリズムをサポートします。
4 Secure non-volatile storage (NVRAM)
AESエンジンによって使用される暗号化キー、PKAによって使用される公開鍵および秘密鍵、Touch IDおよびFace IDのためのバイオメトリックテンプレートなどの様々な種類のキーを格納します