Knox Vault:Galaxyの高セキュリティ保証

Knox Vault

Knox Vaultは、長年にわたりGalaxyスマートフォンのために構築されたハードウェアベースのセキュリティ機能の進化した姿。パスワードや生体認識、暗号キーなど機密性の高いデータを保護するため、Galaxyが開発していたTrustZone、Trusted Execution Environment(TEE)の機能を拡張したものです。TrustZoneはプライマリーアプリケーションプロセッサー上でAndroidと並行して別のOSを実行しますが、Knox Vaultは、Android OSを実行するプライマリープロセッサーからは完全に独立しています。

 

システムオンチップ プライマリーアプリケーションプロセッサー Core Knox Vault Knox Vaultプロセッサー Knox Vaultストレージ

 

Knoxセキュリティプラットフォームの中核となるKnox Vaultは、独自のプロセッサーとメモリー、専用の不揮発性のセキュアストレージへのインターフェイスを備えた、改ざん防止機能付きの隔離セキュアサブシステムです。Knox Vaultは以下のような機能を担っています。

 

  • ハードウェアベースのAndroidキーstoreキー、Attestationキー、生体認証データ、ブロックチェーン証明書など、機密性の高いデータを保存
  • ユーザー認証で失敗した際のタイムアウトを延長したり、認証に基づいてキーへのアクセスを管理したりする、セキュリティ上重要なコードを実行

 

Knox Vaultは、Galaxy S21以降のGalaxyデバイスに組み込まれており、コモンクライテリア(Common Criteria)EAL4+以上のBSI PP0084要件で評価を受けた部品で構成されています。これらの部品は、独立評価機関によって、ソフトウェア/ファームウェアの評価に加え、さまざまな種類のハードウェア攻撃に対する保護機能がテストされています。

 

 

あらゆる脅威から保護

Knox Vaultは、ソフトウェアおよびハードウェアへの攻撃に対して高レベルのセキュリティを保証。Androidを実行するプライマリープロセッサーから独立しているため、Knox Vaultプロセッサー上で実行されるコードは、同じプロセッサーを使用する他のソフトウェアから情報を盗み取るソフトウェアベースのサイドチャネル攻撃など、共有のリソースを悪用した攻撃への耐性を持っています。独立した設計になっているので、プライマリープロセッサー自体が損失した場合においても、Knox Vaultが機密データを保護します。

 

また、Knox Vaultはソフトウェア攻撃に耐性があるだけでなく、改ざん防止機能付きなので、ハードウェア攻撃も阻止します。そのため、攻撃者が機密情報を引き出すためには、デバイスを物理的に所持する必要があります。Knox Vaultは以下のようなハードウェア攻撃に対して耐性を備えています。

 

  • データを盗み取るための物理的なプロービング
  • セキュリティメカニズムを無効化するため、回路を物理的に操作する攻撃
  • 強制的な情報漏洩
  • データを盗み取るための差分電力解析など、ハードウェアベースのサイドチャネル攻撃
  • セキュリティメカニズムを回避するためのフォールトインジェクション

 

これらの攻撃に関する詳細は、ハードウェア攻撃からの保護をご覧ください。

 

 

Knox Vaultの機能

デバイスのセキュリティにとって重要なKnox Vaultの機能は以下の通りです。

 

 

Weaver

Weaverは、Androidへの安全なパスワード認証に使用されます。Knox Vaultプロセッサー上で実行され、Weaverのデータや機密情報(パスワード)は暗号化されて安全なKnox Vaultストレージに保存されます。Weaverは、保存すべき機密データを受け取る際、同時にキーも受領するので、Weaverから機密データを再度読み込むためにはこのキーを提供する必要があります。

 

総当たり攻撃による機密情報の漏洩を防ぐため、Weaverは、2進指数バックオフアルゴリズムを使用しています。機密情報を読み取る際に、適切なキーが提供されない場合、Weaverは、バックオフアルゴリズムが定める一定の期間、読み取りを拒否します。この期間の追跡には、回避不可能なセキュアタイマーが使用されます。

 

 

証明書ストレージ

Knox VaultプロセッサーとKnox Vaultストレージの間で転送されるデータを保護するセキュアチャネルを利用して、Knox Vaultプロセッサーで暗号化されたデータをKnox Vaultストレージ内に保存します。

 

Knox Vaultストレージ内に保存されるデータは以下の通りです。

 

  • 生体認識データを保護するための暗号キー
  • Blockchainキーstoreの証明書
  • Attestationキー

 

証明書ストレージ内のあらゆるデータは、Knox Vaultのユニークキーを使用して暗号化されます。これによって、他のデバイスでデータを復号化されることを防ぎます。

 

 

Attestationキー

Knox Attestationは、デバイスやキーへの不正アクセスを検知するために設計されたKnoxプラットフォーム機能です。Knoxサービス、Galaxy Passなど、セキュリティが重要なGalaxyシステムへの不正アクセスを防ぎます。

 

各デバイスには、固有で非対称、楕円曲線暗号のプライベートAttestationキーが付与され、Knox Vaultに保管されています。キーは必ず固有になるよう、強力な乱数生成に基づいて生成されます。

 

 

StrongBoxキーmaster

StrongBoxキーmasterは、キーを生成したり、キーを用いて暗号化したりするためにアプリケーションが利用するさまざまな暗号化アルゴリズムに対応したキー管理モジュールです。

 

Androidフレームワークでは、StrongBoxキーmasterを使用するアプリケーション用にキーStore APIが提供されています。StrongBoxキーmasterにて生成またはインポートされたすべてのキーは、Knox Vaultのユニークキーで暗号化されています。そのため、これらのキーはKnox Vaultプロセッサー上で実行されるStrongBoxキーmaster以外では復号化できません。

 

 

Knox Vaultの構造

Knox Vaultは、以下の様に構成されています。

 

  • Knox Vaultサブシステム:SoC(システムオンチップ)の一部として実装
  • Knox Vaultストレージ:物理的にSoC(システムオンチップ)外の集積回路

 

Knox Vaultサブシステムは、安全なインターフェイスを通じてKnox Vaultストレージと通信します。

 

システムオンチップ メインアプリケーションプロセッサー Knox Vaultプロセッサー セキュアコア SRAM ROM HWセンサー 暗号化エンジン OTP External Memory Manager Knox Vault Knox Vaultストレージ セキュアコア 暗号化エンジン HWセンサー 不揮発性メモリー

 

 

Knox Vaultサブシステム

Knox Vaultサブシステムは、他のSoC(システムオンチップ)コンポーネントとは独立して動作するよう設計されています。Knox Vaultプロセッサー、SRAMおよびROMから成る独自の安全な処理環境を備えています。また、以下のような一連のセキュリティセンサーまたは検出器を利用してハードウェアの状態や環境を監視し、セキュリティを強化してさまざまなハードウェアベースの攻撃からデータを保護しています。

 

  • 高温・低温検出器
  • 高電圧・低電圧検出器
  • 電圧グリッチ検出器
  • レーザー検出器

 

Knox Vaultサブシステムには、専用の乱数生成器と独自の暗号化エンジンも搭載されています。Knox Vaultプロセッサーは、External Memory Managerを通じてDRAMシステムにアクセスすることが可能です。

 

 

Knox Vaultプロセッサー

Knox Vaultプロセッサーは、Knox Vaultの主な計算能力を担っています。最大限に離して動作させるため、Knox Vaultプロセッサーは、SoC(システムオンチップ)のプライマリープロセッサーから分離されています。そのため、攻撃の標的となるソフトウェアと同じ処理コアを持つマルウェアによるサイドチャネル攻撃を防ぐことができます。

 

さらに、Knox Vaultプロセッサーは、SRAMで指示を実行し、データを管理することにより、物理的に隔離された実行環境を確保できます。また、セキュアブートローダーのコードが保管されているKnox VaultサブシステムのROMも、ハードウェア保護メカニズムによって隔離・保護されています。Knox Vaultプロセッサーが起動すると、ROMコードがSRAMに読み込まれます。ROMコードは、SoC(システムオンチップ)のメインプロセッサー上で動作するモジュールによってKnox Vaultプロセッサーのファームウェアを読み込みますが、Knox Vaultプロセッサーのソフトウェアスタックは独自のセキュアブートチェーンを持っています。

 

 

ハードウェアモニター

ハードウェアモニターは、セキュリティセンサーや検出機によって、ハードウェアの異常を検出します。 ハードウェアの監視や異常検出は、Knox Vaultプロセッサー上で動作するアプリケーションが影響を及ぼしたり、回避したりできないようになっています。

 

 

暗号化エンジン

ハードウェア暗号化モジュールは以下の暗号化機能を提供します。

 

  • AES(暗号化/復号化)
  • DRBG(乱数生成)
  • SHA(ハッシュ化)
  • HMAC(メッセージ認証コードのためのキー付きハッシュ化)
  • RSAおよびECC(キー生成・サービス)

 

 

Knox Vaultユニークキー

Knox Vaultユニークキーは、1回だけ書き込めるワン・タイム・プログラマブル(OTP)ヒューズに書き込まれています。このユニークキーは、Knox VaultサブシステムにインポートまたはKnox Vaultサブシステムで生成されたキーを保護するために使用されます。そのため、1つのデバイスのKnox Vaultで生成されたキーは、そのデバイス以外では使用できません。

 

 

External Memory Manager

Knox Vaultサブシステムは、External Memory Managerを利用して外部メモリーの読み込みや外部メモリーへの書き込みを行うことができます。

 

 

Knox Vaultストレージ

Knox Vaultストレージは、以下のような機密性の高いデータを保存するセキュアかつ不揮発性の専用メモリーデバイスです。

 

  • ブロックチェーンキーやデバイスキーなどの暗号キー
  • 生体認識データ
  • ハッシュ化された認証証明書

 

Knox Vaultプロセッサーと同様、Knox Vaultストレージは、独自のセキュアプロセッサーやSRAM、ROM、暗号化モジュール、そして物理的な変調を検出するハードウェアモニターを使用してさまざまな物理攻撃やサイドチャネル攻撃を防ぐよう設計されています。

 

 

セキュアコア

セキュアコアは、以下の用途に使用されるKnox Vaultストレージプロセッサーです。

 

  • ROMコードの実行
  • 公開キーアルゴリズム(RSA、ECC)およびSHAアルゴリズムの暗号化操作にソフトウェアライブラリを提供
  • 専用のSRAMおよびROMにデータを安全に保存

 

 

暗号化エンジン

暗号化エンジンは、Knox Vaultプロセッサーからパケット受信後に認証コードを検証し、パフォーマンスを向上するための対称暗号化に対応しています。

 

 

ハードウェアモニター

Knox Vaultサブシステムのハードウェアモニターと同様、Knox Vaultストレージのハードウェアモニターも電圧、温度、電磁気に関連する物理攻撃またはサイドチャネル攻撃を検出します。ハードウェアモニターが攻撃を検出すると、Knox Vaultストレージは自動的に消去されます。

 

 

不揮発性メモリー

不揮発性メモリーは、Knox Vaultプロセッサーから受領したデータを保存するために使用されるNOR(NOT OR)型フラッシュメモリーの集まりです。

 

 

Knox Vault内の通信

Knox VaultサブシステムとKnox Vaultストレージは、専用のI2C(Inter-Integrated Circuit)バスを使用して安全に通信します。バス上のすべてのトラフィックは暗号化され、認証コードで送信されます。また、すべての通信はリプレイ攻撃に対して保護されています。

 

 

あらゆる脅威から保護

Knox Vaultは、以下のようなハードウェアへのプロービング攻撃に対する保護を提供するようテストされています。

 

 

物理的プロービング

データをメモリーに保存中または処理中に、攻撃者がセキュアハードウェアを物理的にプローブし、ユーザーデータや他の重要な情報を不正入手する場合があります。攻撃者は、IC故障解析やICリバースエンジニアリングで一般的に採用されている手法を使用し、安全なハードウェア内部との電気的接触によって情報を直接測定します。

 

 

物理的操作

攻撃者がセキュアハードウェアを物理的に改ざんし、ユーザーデータやセキュアハードウェア/ソフトウェア、セキュリティサービスやセキュリティメカニズムを変更する場合があります。IC故障解析やICリバースエンジニアリングで一般的に採用されている手法を使用して、改ざんが行われることもあります。攻撃者は、改ざんを試みる際に、ハードウェアのセキュリティメカニズム(セキュアハードウェアがユーザーデータを処理する方法など)、レイアウト特性、ソフトウェア設計を特定します。回路やデータの改ざんは、永久的な場合も一時的な場合もあります。

 

 

強制的な情報漏洩

機密のユーザーデータを盗み取るため、攻撃者がセキュアハードウェアから漏洩した情報を利用する場合があります。情報漏洩は、システムに内在する脆弱性に基づくものではなく、攻撃者によってもたらされることもあります。例えば、フォールトインジェクションや物理的操作によって、通常は重要な機密情報を含まない信号から情報漏洩が起きることがあります。

 

 

サイドチャネル攻撃

攻撃者が、動作中のセキュアハードウェアから漏洩した情報を利用して、ユーザーの機密情報を盗み取る可能性があります。その際、セキュアハードウェア内部と直接接触する必要はありません。電磁放射や、電力消費量、I/O特性、クロック周波数の変動、処理時間の変化などによって情報漏洩が発生する可能性があります。その一例が差分電力解析(DPA)です。この漏洩は、カバートチャネル通信とみなすこともできますが、より密接に関連しているのは動作パラメータの測定です。動作パラメータは、直接測定するか、電磁放射の測定によって導き出すことができます。攻撃者は、測定値から特定の処理が実行されていることを推定できます。

 

 

フォールトインジェクション

攻撃者が光や電圧のグリッチなどの環境負荷を利用してセキュアハードウェア・ソフトウェアの誤動作を引き起こす場合があります。この攻撃手法では、ハードウェアおよびソフトウェアの機能の改ざん、セキュアハードウェアのセキュリティメカニズムの無効化や変更などが可能です。攻撃者はこれを利用して、セキュアハードウェアに存在するユーザーデータを不正入手したり改ざんしたりすることができます。例えば、セキュリティハードウェア機能の改ざんによって、乱数生成器が提供する乱数の品質に影響を与えて、ソフトウェアに一定の数値や、エントロピーの低い数値を取得させることがあります。

 

 

コモンクライテリア(Common Criteria)認定

コモンクライテリア(Common Criteria)は、コモンクライテリア承認アレンジメント(CCRA)に基づき、世界の31カ国で認められている標準化された方法でセキュリティ製品を評価するためのフレームワークです。

 

Knox Vaultの部品は、独立した第三者であるコモンクライテリア評価機関(CCTL)で評価・認定を受けています。Knox Vaultは、プロセッサー構成に応じて、製品の評価保証レベルであるEAL4+またはEAL5+の保証要件で Security IC Platform Protection Profile with Augmentation Packagesに定められた要件の評価を受けています。 この評価では、Knox Vaultサブシステムのソフトウェア/ファームウェアの評価に加え、さまざまな種類のハードウェア攻撃に対する保護機能がテストされています。

 

 

関連製品を見る