ゼファーネットのロゴ

RTL での情報フローの追跡。検証におけるイノベーション – Semiwiki

日付:

情報を漏洩または侵害するための明示的および暗黙的な侵入経路は、引き続きセキュリティに対する脅威となっています。このペーパーでは、既存のゲート レベルの情報フロー トラッキング (IFT) 技術を RTL に拡張して改良し、初期段階のセキュリティの最適化を促進します。 Paul Cunningham (上級副社長/GM、Cadence の Verification)、Raúl Camposano (シリコン カタリスト、起業家、元 Synopsys CTO、現在 Silvaco CTO) と私は研究アイデアに関するシリーズを続けています。いつものように、フィードバックは大歓迎です。

イノベーション新しい

イノベーション

今月のおすすめは 確実に安全なハードウェア設計のためのレジスタ転送レベルの情報フロー追跡。この記事は DATE 2017 に掲載され、53 件もの引用を集めました。著者らはカリフォルニア大学サンディエゴ校の出身です。

このグループは以前にゲートレベルの IFT (GLIFT) テクノロジーを開発し、Tortuga Logic (後に Cycuity にブランド変更) の下で製品として発売しました。情報フロー技術は、脆弱性のユースケースによるテストよりも、セキュリティ特性に関するモデリングと推論に対して、より一般的かつ形式的なアプローチを提供します。この方法は、通常のロジック評価と並行してテイント情報を伝播することによって一般化し、たとえば、安全なドメインでの条件選択を制御する安全でないドメインから発信された信号にフラグを立てます。これを正式な検証方法と組み合わせることで、強力なセキュリティが保証される可能性があります。

解析を RTL に拡張することで、大規模な回路への拡張性、設計の初期段階での適用、およびユーザー指定の注釈を必要とせずに設計意図における高レベルの依存関係の理解が多少向上するなど、いくつかの改善が可能になります。著者らは、設計者がさまざまな市場ニーズに応える際にセキュリティと検証パフォーマンスの間でトレードオフできる方法についても説明しています。

ポールの見解

セキュリティ検証は私が非常に重視しているものです。セキュリティ検証がなければデジタル データを信頼することはできません。これには私自身の個人データも含まれます。今月の論文は、セキュリティ検証における主流の手法の XNUMX つに焦点を当てた読みやすい内容です。設計内のすべての信号に「汚染された」(つまり、侵害された、または信頼されなくなった)ビットを追加し、ゲート モデルを強化して汚染されたビットをゲートおよび信号値を介して伝播します。 。

汚染されたビットの伝播は、概念的には主流の設計検証フローにおける「X 伝播」とほぼ同じです。信号が汚染されている場合、信号が持つ値を信頼していないため、その値が分からないかのようです。

この論文では 0 つのことを提案しています。0 つは、汚染されたビットのアノテーションと伝播をゲート レベルではなく RTL レベルで行うことです。次に、主流の EDA ツールが「X 悲観の除去」と呼ぶものと同等のことを行います。後者は、入力の少なくとも 0 つが X であるという理由だけで演算子の結果を X としてマークするのではなく、その演算子の定義に基づいて本当に X である場合にのみ X としてマークすることを指します。たとえば、c = a & b を考えてみましょう。 a=0 の場合、b が X であっても c=XNUMX です。同様に、セキュリティ検証では、a=XNUMX で a が汚染されていない場合、c=XNUMX となり、たとえ b が汚染されていても汚染されません。 「&」については簡単そうに見えますが、if、else、case 構造の場合は少し難しくなります。

ご想像のとおり、この論文は、RTL での汚染ビットの伝播がゲート レベルよりもはるかに高速であること、および「正確な」汚染ビットの伝播 (つまり、汚染ビットの悲観的な除去) によって誤検知率が低減されることを明らかに示すいくつかのベンチマークで結論付けています。設計出力での汚染されたビットの割合が大幅に増加します。このベンチマークはすべて、論理シミュレーション コンテキストではなく、正式な証明コンテキストで行われます。事件は解決しました。

皆様にとって良い休日をお過ごしください。

ラウルの見解

Information Flow Tracking (IFT) は、システムの計算中に情報がどのように伝播するかをモデル化するコンピューター セキュリティ技術です。これは 70 年代にデニングによって導入されました。優れた紹介と調査が見つかります。 こちら。基本的な考え方は、データにセキュリティ クラスのラベルを付け、データが計算に使用されるときにこれらのラベルを追跡することです。レビューされた論文の目的上、ラベルはデータが「」であることを少し示すだけです。汚れ” (ラベル=1、信頼できません)。このラベルを使用する際の最も保守的なアプローチは、次のような操作の出力を 汚れ データは 汚れ;または逆に言えば、すべての入力データを使用した演算のみが、 汚れていない をもたらす 汚れていない 出力。後で説明するように、この論文ではこのアプローチを何らかの形で緩和しています。

コンピュータセキュリティは情報を維持することを目的としています 秘密 & 整合性。機密保持とは、情報が権限を与えられた主体にのみ開示されることを意味します。 IFT は、秘密情報が流出する可能性があるかどうかを、情報が流れるすべての場所も秘密であることを追跡することで検証します (汚れていない)、たとえば、秘密鍵は制限されたメモリ空間の外に漏洩しません。整合性はその逆です。データの正確性と一貫性を維持するために、信頼できないエンティティは信頼できる情報を操作することを許可されません。コンピューティング システム全体で情報がどのように流れるかは、機密性と完全性を判断する上で非常に重要です。 IFT は、セキュリティに関するモデリングと推論に最もよく使用される手法の XNUMX つです。

この論文では、ゲート レベルと RTL レベルでの既存の IFT アプローチをレビューします。ゲートレベルでの再収束は不正確さの原因となります。マルチプレクサでは、テイント選択信号によって次の結果が得られます。 汚れ 両方の入力がオンの場合でも出力します。 汚れていない。マルチプレクサを RTL レベルでモデル化すると、これを修正できます。既存の RTL レベルのアプローチでは、RTL コードを変更する必要があります。著者が実装したシステム RTLIFT は、上記の欠点を両方とも修正します。これは、入力が次の場合に出力を汚染するなど、IFT へのさまざまなアプローチを実装できる RTL 演算子のライブラリを提供します。 汚れ (保守的)または、データ入力の XNUMX つが次の場合にのみマルチプレクサの出力を汚染するなど、より微妙なアプローチ 汚れ (誤検知を回避します)。また、Verilog の RTL デザインを、検証目的で使用できる IFT 拡張バージョンに自動変換することもできます。

暗号コアに関する結果は、RTLIFT がゲートレベル IFT (GLIFT) よりも約 5 倍高速であることを示しています。 8 つの加算器、乗算器、および制御パス ロジックの集合で、RTLIFT は誤検知 (誤検知) が 5% ~ 37% 減少することを示しています。 汚れ) GLIFT 上の 2 のシミュレーション20 ランダムな入力サンプル。

IFT を RTL まで拡張したセキュリティに関する包括的な論文で、非常に楽しい読み物です。

この投稿を共有する:

スポット画像

最新のインテリジェンス

スポット画像