(Translated by https://www.hiragana.jp/)
Secure Enclave - Wikipedia

Secure Enclave(セキュアエンクレーブ)はApple開発かいはつした、iOS/iPadOSデバイスやMacTouch IDあるいはFace ID対応たいおうモデルのApple A7, T1[1]以降いこうApple TVApple WatchHomePod搭載とうさいされているセキュリティコプロセッサである[2]
FileVault安全あんぜん起動きどう必要ひつよう暗号あんごうキーを保護ほごし、Touch IDセンサーから指紋しもんデータを処理しょり一致いっちしているかどうかを判断はんだんする役割やくわりになっている。

概要がいよう

編集へんしゅう

Secure Enclave Processorとも表記ひょうきされ、りゃくしてSEPとばれることもある。

Touch ID指紋しもんデータ、またはFace IDかお認証にんしょうデータ、Apple Payのカードデータは このSecure Enclaveないの、アプリケーションプロセッサーやアプリからは隔離かくりされた特殊とくしゅ領域りょういき保存ほぞんされる。

そのため、インターネット経由けいゆや App経由けいゆ(システムふくむ)からはアクセスが不可能ふかのうになっている。

OSバージョンごとにアップデートされる。

ある程度ていどのバージョンあいだでは互換ごかんせいがあるが、特殊とくしゅ方法ほうほう互換ごかんせいのないOSバージョンとSEPのわせになると、そのバージョンを使用しようしているあいだ生体せいたい認証にんしょう使用しようできなくなりパスコード認証にんしょうのみとなる。

再度さいどApple Configuratorとう最新さいしんばんにアップデートすると利用りよう可能かのう状態じょうたいもどる。

構成こうせい

編集へんしゅう

Secure Enclaveはメインプロセッサやアプリケーションプロセッサから隔離かくりされていて、アプリケーションプロセッサのカーネルが侵害しんがいされた場合ばあいでも、ユーザの機密きみつデータを安全あんぜんたもてるように設計せっけいされている。Secure EnclaveはSoCとおなじような設計せっけいで、ハードウェア信頼しんらいルートを確立かくりつするための専用せんようのBoot ROM、効率こうりつてきかつ安全あんぜん暗号あんごう操作そうさのためのAESエンジンと保護ほごされたメモリで構成こうせいされている。

Secure Enclaveにはストレージはふくまれてないが、アプリケーションプロセッサとiOSで使用しようされるNANDフラッシュストレージとはべつ接続せつぞくされたストレージに、情報じょうほう安全あんぜん保存ほぞんするメカニズムがある。

Secure Enclaveプロセッサはセキュリティための主要しゅよう演算えんざん担当たんとうする。最大限さいだいげん隔離かくり実現じつげんするため、Secure EnclaveプロセッサがiOSうえ担当たんとうするのはセキュリティ処理しょりのみとなっている。これにより、悪意あくいのあるソフトウェアに依存いぞんしたサイドチャネル攻撃こうげき防止ぼうしすることができる。

メモリ保護ほごエンジン

編集へんしゅう

Secure EnclaveはデバイスのDRAMメモリ専用せんよう領域りょういき動作どうさし、複数ふくすう保護ほごそうによってアプリケーションプロセッサからの隔離かくり確保かくほされている。

iOS起動きどうに、Secure Enclave Boot ROMがメモリ保護ほごエンジンのために一時いちじてきなランダムなメモリ保護ほごかぎ生成せいせいし、Secure Enclaveがデータを専用せんよう領域りょういききこむさい、メモリ保護ほごエンジンはAESをもちいてメモリブロックを暗号あんごうしCMAC認証にんしょうタグを計算けいさんする。メモリのには認証にんしょうタグを検証けんしょうし、一致いっちすればメモリブロックを復号ふくごうし、不一致ふいっち場合ばあいはエラーを送信そうしんする。このエラーが発生はっせいすると、システムがさい起動きどうするまでSecure Enclaveは停止ていしすることで強力きょうりょくなセキュリティを実現じつげんする。

さらにA11やS4 SoCからSecure Enclaveメモリけにリプレイ保護ほご追加ついかし、重要じゅうようなデータのリプレイをふせぐ。アンチリプレイ認証にんしょうタグを使用しようし、Secure EnclaveないのSRAMをもとにした整合せいごうせいツリーで保護ほごする。A14、M1、以降いこうのSoCでは、Secure EnclaveとSecure Neural Engineのそれぞれに対応たいおうした2つの一時いちじてき保護ほごかぎをサポートする。メモリ保護ほご透過とうかてきで、安全あんぜんせい確保かくほしながら性能せいのう維持いじする。

Secure Enclave Boot ROM

編集へんしゅう

Secure Enclaveは専用せんようのSecure Enclave Boot ROMをそなえている。このBoot ROMはSecure Enclaveの信頼しんらい起点きてんとなる変更へんこう不可ふかのコードである。システム起動きどう、iBootはSecure Enclaveにメモリの専用せんよう領域りょういきてる。Secure Enclave Boot ROMはメモリを暗号あんごう保護ほごするため、メモリ保護ほごエンジンを初期しょきする。アプリケーションプロセッサがsepOSイメージを送信そうしんし、そのイメージのハッシュと署名しょめい検証けんしょうする。有効ゆうこうであれば、Boot ROMはsepOSに制御せいぎょうつす。無効むこう場合ばあい、チップがリセットされるまで使用しよう防止ぼうしする。Apple A10以降いこうのSoCでは、Boot ROMはsepOSのハッシュを専用せんようレジスタにロックし、OS固定こていかぎとして利用りようする。

Secure Enclave Boot Monitor

編集へんしゅう

Apple A13以降いこうのSoCでは、Secure Enclaveが起動きどう整合せいごうせい強化きょうかするためにブートモニタを利用りようする。ブートモニタは、Secure EnclaveプロセッサがSecure Enclave Boot ROM以外いがいのコードを実行じっこうするのをふせぎ、sepOSの実効じっこうせい確保かくほするためにハッシュを生成せいせいしてSCIP設定せってい更新こうしんする。このプロセスは、あたらしいコードが実行じっこう可能かのうになるたびに実行じっこうされる。最後さいごに、実行じっこうちゅうのハッシュはファイナライズされ、OS固定こていかぎ作成さくせい使用しようされる。これにより、Secure Enclave Boot ROMの脆弱ぜいじゃくせいがあってもかぎ固定こていがバイパスされることはない。

真性しんせい乱数らんすう生成せいせい(TRNG)

編集へんしゅう

真性しんせい乱数らんすう生成せいせい(TRNG)は、安全あんぜんなランダムデータを生成せいせいするために使用しようされる装置そうちである。Secure Enclaveがランダムな暗号あんごうかぎやランダムなかぎシードなどのエントロピーを生成せいせいするさいには、かならずTRNGがもちいられることになる。TRNGは、CTR_DRBG(カウンタモードのブロック暗号あんごうもとづくアルゴリズム)で後処理あとしょりされており、複数ふくすうのリングオシレータにもとづいている。

Secure Enclave AESエンジン

編集へんしゅう

Secure Enclave AESエンジンは、AES暗号あんごうもとづく対称たいしょう暗号あんごう実行じっこうするハードウェアブロックである。AESエンジンは、タイミングと静的せいてき電力でんりょく解析かいせき(SPA)にたいするたいせいち、A9 SoC以降いこうでは動的どうてき電力でんりょく解析かいせき(DPA)にたいする対策たいさくそなえている。AESエンジンは、Secure EnclaveのUIDまたはGIDから導出みちびきだされたハードウェアかぎとソフトウェアかぎをサポートする。これらのかぎはAESエンジンないにとどまり、sepOSソフトウェアでも確認かくにんできない。ユーザーは暗号あんごう復号ふくごうをリクエストできるが、かぎすことはできない。Apple A10以降いこうのSoCsでは、AESエンジンにUIDまたはGIDから導出みちびきだされたかぎ多様たようするためのロック可能かのうなシードビットがふくまれており、デバイスの動作どうさモードにおうじてデータアクセスを制限せいげんできる。この機能きのうは、デバイスファームウェアアップデート(DFU)モードでの起動きどうに、パスワード保護ほごされたデータへのアクセスを拒否きょひする場合ばあいなどに使用しようされる。

セキュア不揮発ふきはつせいストレージ

編集へんしゅう

Secure Enclaveは、専用せんようのセキュア不揮発ふきはつせいストレージデバイスをそなえている。このストレージはI2CバスをとおしてのみSecure Enclaveに接続せつぞくされ、利用りよう可能かのうである。ユーザデータの暗号あんごうかぎはSecure Enclaveのストレージに保管ほかんされるエントロピーにもとづく。A12、S4、またはそれ以降いこうのSoC搭載とうさいデバイスでは、Secure Enclaveはセキュアストレージコンポーネントとペアリングされる。これはROMコード、乱数らんすうジェネレータ、一意いちいキー、暗号あんごうエンジン、かいざん検出けんしゅつ機能きのうそなえる。

2020ねんあき以降いこうはじめてリリースされたデバイスは、だい2世代せだいセキュアコンポーネントをゆうし、カウンタロックボックスが追加ついかされている。カウンタロックボックスはパスコードエントロピーを保持ほじし、アクセスには暗号あんごうプロトコルを使用しようする。10かいえるロック解除かいじょ試行しこうでデータは消去しょうきょされる。

カウンタロックボックス生成せいせいには、パスコードエントロピーと最大さいだい試行しこうがSecure Enclaveからおくられる。ソルト乱数らんすう生成せいせいされ、パスコードベリファイアとエントロピー導出みちびきだされ、カウンタ0で初期しょきされる。その、エントロピーがSecure Enclaveにかえされる。

データ保護ほごにはカウンタロックボックスのエントロピーにもとづくかぎ使用しようされ、安全あんぜんなストレージはSecure Enclaveのアンチリプレイサービスにも使用しようされる。Secure Enclaveはイベントによってデータの無効むこうおこない、各種かくしゅセキュリティ設定せってい影響えいきょうあたえる。セキュアストレージコンポーネントをたないアーキテクチャではEEPROMが使用しようされ、専用せんようのハードウェアセキュリティ機能きのうふくまれない。

Secure Neural Engine

編集へんしゅう

Face ID搭載とうさいデバイスでは、Secure Neural Engineが2D画像がぞう深度しんどマップをかお数学すうがくてきモデルに変換へんかんする。A11からA13 SoCsまで、Secure Neural EngineはSecure Enclaveにまれており、DMAを使用しようしてパフォーマンスを向上こうじょうさせる。sepOSカーネルのIOMMUは、このアクセスを承認しょうにんみメモリに制限せいげんする。A14、M1以降いこうでは、Secure Neural EngineはアプリケーションプロセッサのNeural Engineのセキュアモードとして実装じっそうされ、専用せんようハードウェアセキュリティコントローラがトランザクションごと状態じょうたいをリセットし、データの安全あんぜんせいたもつ。専用せんようエンジンはメモリ暗号あんごう認証にんしょう、アクセス制御せいぎょ利用りようし、承認しょうにんみメモリに制限せいげんする。

関連かんれん項目こうもく

編集へんしゅう

L4マイクロカーネルファミリー - Secure EnclaveのOSは、NICTAが2006ねん開発かいはつしたL4-embeddedカーネルベースのものである[2]

ARM Trust Zone - 類似るいじ技術ぎじゅつ[3]

Apple A7, A8, A8X, A9, A9X, A10, A10X, A11, A12, A12X, A12Z, A13, A14, A15, A16

Apple M1, M1 Pro, M1 Max, M1 Ultra, M2, M2 Pro, M2 Max,M2 Ultra

脚注きゃくちゅう

編集へんしゅう
  1. ^ しんチップ「T1」でApple製品せいひん可能かのうせいひろがる?”. EE Times Japan (2016ねん12月1にち). 2020ねん11月24にち閲覧えつらん
  2. ^ a b Secure Enclave”. Apple Support. 2022ねん9がつ9にち閲覧えつらん
  3. ^ 使つかいのスマートフォンには特別とくべつなセキュリティチップが搭載とうさいされています。仕組しくみはつぎのとおりです”. 2022ねん10がつ3にち閲覧えつらん

外部がいぶリンク

編集へんしゅう

警告けいこく: 既定きていのソートキー「せきゆあえんくれえふ」が、そのまえかれている既定きていのソートキー「Secure Enclave」を上書うわがきしています。