An article to understand the attack and defense of security chips and imKey's "core" level protection

セキュリティチップとIMKeyの「コア」レベルの保護の攻撃と防衛を理解する記事

セキュリティチップとIMKeyの「コア」レベルの保護の攻撃と防衛を理解する記事

序文

強気市場でも弱気市場でも、資産の安全性は常に最も重要です。特に分散型ウォレットのユーザーにとって、自己所有の秘密鍵と資産管理は自己負担のリスクも意味するため、ウォレットのセキュリティは必然的にユーザーにとって最も懸念されるトピックになります。

今日は、imKey ハードウェア ウォレットのセキュリティの中核であるセキュア チップに再び入り、歴史上のセキュア チップに関係する攻撃と防御について学びます。 imKey のセキュア チップはユーザーの秘密キーのセキュリティをどのように保護しますか?

コンピュータの発展に伴い、コンピュータ セキュリティは現代の電子世界の重要な部分となり、ハードウェア セキュリティはコンピュータ セキュリティの重要な領域となっています。この分野では、1982 年に最初のハードウェアがインターネットに接続されて以来、チップのセキュリティをめぐる攻撃と防御が止まることはありませんでした。

攻撃者はチップからユーザーの個人情報を違法に取得しようとします。そのために、トロイの木馬の埋め込み、バックドアの開放、電磁干渉、高温多湿、物理的破壊などの手法を惜しみなく使用します。攻撃者のさまざまな攻撃方法に対応して、セキュア チップは、それぞれの対立に対応する一連のセキュリティ保護手段を開発しました。

チップの攻撃と防御を長く続く聖戦にたとえると、攻撃者のさまざまな攻撃方法は煙が立ち込める戦場であり、セキュアチップはそれぞれの戦場でユーザー情報のセキュリティを守る最強の防衛線となります。 。

最古の戦場 - メモリデータの保護

通常、セキュリティ チップには、FLASH/EEPROM/ROM などの永続ストレージと、RAM/CACHE などの動的ストレージが含まれています。これらのメモリ コンポーネントはバスを介して CPU に接続され、アドレスとデータの交換に使用されます。

20 年以上前、攻撃者にとっての日常業務の 1 つは、チップ内のプログラム コードを制御したり、チップ内部からデータを分離したりすることを目的として、チップのメモリから暗号化されていないデータを抽出することでした。

当初、チップメーカーは「注入 ROM」と呼ばれる技術を使用して、目に見える金属接続をチップの基板に注入されたイオンで置き換えることによって情報をエンコードしました。しかし、攻撃者はすぐに、メモリ データを暴露する可能性のある「デコレーション」と呼ばれる特別なエッチング プログラムを発見しました。その後、チップメーカーは全体的なセキュリティ対策に目を向けましたが、最も初期の対策の 1 つはメモリ アドレスをスクランブルすることでした。しかし、その直後、攻撃者はアプリケーション プログラムを通じてスクランブルされたメモリ ダンプから平文を再構築することで、この単純な難読化を破りました。さらに重要なことは、当時のチップ レイアウトからスクランブル信号を簡単に認識して復元できたことです。したがって、過去 10 年間で、単純なアドレス スクランブルはメモリ暗号化に広く置き換えられました。さらに、セキュリティ チップは、チップの動作に影響を与える可能性のある障害攻撃も考慮する必要があります。対応するバス構造を含むメモリ システムは攻撃者の標的となります。効果的に保護されていない場合、フォールト攻撃が成功すると、キーが破壊され、データがダンプされ、入力パスワードや PIN がバイパスされ、さらにはチップへのプログラミング アクセスが取得される可能性があります。

数年前、そして今日の一部のローエンド セキュリティ チップ製品でも、メモリの整合性チェックに「パリティ ビット」と呼ばれる方法が使用されています。追加のデータ ビットは、各バイト (8 ビット) のデータ検証に使用されます。データは 1 ビットしかないため、パリティ ビットは奇数の 1 または偶数の 0 のみになります。言い換えれば、この検証メカニズムは、50% の確率で攻撃者に機会を提供します。

現在、ハイエンドのセキュリティ チップ (imKey で使用されているものなど) はこの方法を完全に放棄し、代わりに数学的エラー検出コード (図に示すように) を使用しています。これにより、1 つ以上のビットのエラー検出が可能になるだけでなく、ある程度のエラー訂正機能も備えます。

最も重要な戦場 - CPU 保護

CPUはチップ全体の中核であり、CPU周りの命令や信号に対する攻撃は映画や研究室だけでなく現実でも起きています。一般的な CPU 攻撃では、攻撃者は処理中に平文を見つけるだけでなく、操作中に障害を誘発し、キーを解読したりソフトウェアの実行を自由に操作するために使用する絶好の機会を見つけることもあります。 CPU コアを保護する初期の方法には、カーネルの外側にセンサーを追加して電圧、光、温度などの環境条件を検出することが含まれていましたが、ほとんどのセンサーは通常、チップのローカル分布範囲内で動作し、CPU 自体へのローカル攻撃から保護することはできません。レーザー、アルファ線、TIVA (熱誘起電圧変化)、または直接的な物理的力による攻撃の使用など。

当初、セキュリティ チップ メーカーは、メモリ保護と同様の「パリティ ビット」を使用して CPU レジスタを保護していましたが、メモリ保護と同様に、この保護も長く持続するものではなく、一定期間が経過すると簡単に破られてしまいました。現在最も一般的に使用されている CPU 保護方法は、データ/コード署名です。これらの署名は通常、コードのコンパイルまたはデータ生成中に作成され、コードおよびデータとともにメモリに保存されます。値が一致しない場合、エラーがトリガーされてアラートが発行され、CPU による以降の処理が停止されます。コードとデータの署名は、コードのいわゆる「線形」部分を保護するのに優れていますが、分岐コードが多数ある場合、攻撃者は攻撃によって分岐コードの動作に影響を与えようとするため、それらが攻撃者の主なターゲットになります。コード署名。それにもかかわらず、コードとデータの署名は、ミッドレンジのセキュリティ チップ製品の保護手段として依然として一般的に使用されています。

近年、チップメーカーは、単一の CPU だけに依存するだけでは真の CPU 保護を達成するには不十分であることに徐々に気づき始めています。CPU は自身の決定をある程度チェックできず、最新の攻撃手法に効果的に対応できないからです。したがって、最も高度な対策は、密結合デュアル CPU コアを使用し、2 つの CPU が互いの正しい動作と実行状況を常にチェックし、CPU の計算データが暗号化されている場合は、2 つの CPU で異なる動的キーを使用できます。いわゆる多重障害攻撃に対する障壁をさらに高めるために、複数回および複数地域の障害誘発方法を採用します。

最も曖昧な戦場 - 物理攻撃と防御

攻撃者は、これらの信号を使用してチップをリバース エンジニアリングできるため、シリコン チップ上で実行される信号に非常に興味を持っています。リバースエンジニアリングとは、ターゲットを徹底的に調査してその構造や機能を包括的に理解するプロセスを指し、攻撃者が攻撃を開始するために使用される手法です。リバース エンジニアリングは、セキュリティが重要なさまざまなアプリケーションでシステムやデバイスのクローンを作成および複製するために広く使用されています。歴史上最も有名な例は、第二次世界大戦中、B-29 爆撃機がソ連に鹵獲され、リバースエンジニアリングされ、クローン化されたことです。

ハードウェア製品のリバースエンジニアリングは主にチップレベルのリバースエンジニアリング、ボードレベルのリバースエンジニアリング、システムレベルのリバースエンジニアリングに分かれており、セキュリティチップでは主にチップレベルのリバースエンジニアリングが行われます。攻撃者はまずチップのパッケージの材質を特定し、パッケージを除去する必要があります。攻撃者は、化学的手法 (ウェットおよびドライ)、機械的手法、ナノ製造技術、レーザー アブレーションなどの技術を使用してチップのカプセル化を解除し、その後、チップを積層します。最新のチップは通常、複数の金属層、パッシベーション層、ビア、コンタクト、多結晶シリコン、およびアクティブ層で構成されています。攻撃者はチップの断面に画像処理を実行し、SEM または TEM を使用して層、金属材料、層の厚さ、ビア、およびコンタクトを特定します。レイヤ化プロセス中に、攻撃者は数万枚の高解像度画像をキャプチャして、各レイヤに含まれるすべての情報をキャプチャします。これらの画像をつなぎ合わせて研究し、チップを再構成できます。

最も不可解な戦場 - サイドチャネルの攻撃と防御

サイドチャネル攻撃 (サイドチェーン攻撃とも呼ばれます) は、暗号アルゴリズムの統計的または数学的弱点を分析するのではなく、暗号アルゴリズムの実装を標的とする非侵入型攻撃の一種です。これらの攻撃は、電力消費、電磁放射、計算時間など、さまざまな間接的なソースやチャネルから漏洩した物理情報を使用して攻撃を開始します。このような攻撃は総称してサイドチャネル攻撃と呼ばれます。サイドチャネル攻撃にはさまざまな形式があり、その用途はほぼ無限であると言えます。多くの場合、チップメーカーは自らを守ることができなくなります。攻撃者は、サイドチャネル攻撃を使用して 4 メートル離れた場所からラップトップに攻撃を仕掛けることが知られています。

一般に、一般的なサイドチャネル攻撃には、電力解析、電磁解析、タイミング解析、およびフォールト挿入が含まれます。以下の図に示す一般的なサイドチャネル攻撃方法に加えて、音、温度、振動などの信号も攻撃者が使用できるソースになります。

サイドチャネル攻撃に対して使用される一般的な方法は、秘密チャネル、CPU 信号暗号化、およびコプロセッサによる補助保護です。

imKeyの「チップレベルのセキュリティ保護」

imKey ハードウェア ウォレットに選択されたセキュリティ チップは、Infineon 製 SLE78CLUFX5000PH です。関連するパラメータは次のとおりです。

このチップは、「Integrity Guard」設計を使用して 2 つの CPU コアの動作を調整し、データが暗号化されてチップ内に保存されるだけでなく、チップ内で暗号化された形式で処理されることを保証します。この設計の中核は、細胞内の DNA の二重らせんのように機能する独立した自己チェック システムです。

2 つの CPU で構成される独立したセルフチェック システムの動作原理は、細胞内の DNA の二重らせんに似ており、暗号化された形式でアプリケーション コードをチェックし、ミラーリングされた CPU に送信します。

2 つの CPU からのマシン コマンドがプログラム コードを形成します。メモリ モジュールからのコマンドとデータは CPU 内で結合され、入力データが処理され、必要な出力データが生成されます。

リバース エンジニアリング、物理的攻撃、サイドチャネル分析などの攻撃では、暗号化されたデータが漏洩するだけであり、攻撃者にとっては役に立ちません。

Integrity Guard は、CPU 自体でハードウェア暗号化処理を使用する市場初のセキュリティ テクノロジです。

このチップにはシールド層、安全な混合配線、電流源処理が備わっており、外部からの検出やハードウェアのクラッキングを効果的に防止できます。このチップは包括的な物理攻撃保護機能を備えており、高温および低温、電磁干渉、紫外線干渉、静電気干渉、電圧スパイク干渉などの環境下で機密情報が漏洩しないようにします。

チップのアルゴリズム実装は特別な記憶領域に保存されます。アルゴリズムがダウンロードされると、この領域はチップのデバッグと実行をサポートしなくなります。アルゴリズム プログラム全体は独立したプログラム スタックで実行され、プログラムの実行が完了するとスタック領域はすぐにクリアされ、そうしないと次の呼び出しは実行できません。チップのハードウェア アルゴリズム領域は、ハードウェア アルゴリズムとキーのセキュリティを確保するために、チップ独自のアクセス システムによって保護されています。

このチップは外部クロック周波数と電源電圧を検出および監視し、プログラム実行中のクロックと電圧の変化を検出することで外部の情報取得を防止し、プログラム実行中のデータのセキュリティを確保します。チップ内にインストールされている COS プログラムは改ざんできず、ユーザーの秘密鍵はチップ内に保存され、エクスポートすることはできません。

まとめ

上記の攻撃は、攻撃者が一般的に使用するほんの一部であり、ハードウェア ウォレットが直面するすべての脅威ではありません。マルウェア攻撃、テスト指向の攻撃、乱数に対する攻撃などはすべて、私たちの資産を失う原因となる可能性があります。さらに、世界で最も安全なセキュリティ チップが使用されている場合でも、攻撃者は家族や友人に賄賂を贈ってパスワードやニーモニック フレーズを盗むなどのソーシャル エンジニアリング攻撃を使用し、資産は依然として消失します。

CC EAL6+ セキュリティ チップを搭載した imKey ハードウェア ウォレットを外部的に使用し、内部的には常にセキュリティ意識を念頭に置いてのみ、保有資産のセキュリティを確保できます。

追記

セキュリティ チップのホワイト ペーパーを執筆してくれたインフィニオンの Peter Laackmann 博士と Marcus Janke に感謝します。

この記事で説明するテクノロジーとソリューションは基本的な概念にすぎず、セキュリティ チップの攻撃と防御、およびハードウェア ウォレットでのセキュリティ チップの使用の必要性を誰もが理解できるようにすることだけを目的としています。

参照