web-dev-qa-db-ja.com

スマートハードウェアが悪ければ、ソフトウェアを安全に実行できますか?

私が考えていた。そして私はインターネットを探していました。見つけたもの以上あるか確認したい。 crypto.se について質問することを検討しました。しかし、問題はハードウェアと箱から出して考えることを含むかもしれません。

脅威モデルがある場合、

  • 敵対者

    • 計算を破壊したり、情報を盗んだりしたい
    • まったく気づかれることを望まない(または少なくとも私が敏感な計算をするまで)
    • 私が使っているソフトウェアを知っている
    • それを渡す前に、CPUなどのより高いハードウェアについて嘘をつき、修正します
    • 後でハードウェアに直接アクセスできない
    • 正しく秘密に計算したい(または少なくとも機密情報の盗難を防止したい)
    • 外部と情報交換したい
    • 数学的に検証されたソフトウェアにアクセスできます(さらに、ブートストラップのみのクリーンハードウェアにアクセスできます)
    • 操作用のワイヤーなどの下位ハードウェアをチェックし、修復または再配線することができます
    • 上位ハードウェアの操作をチェックできません

括弧内(...)は、いくつかの弱められた要件です。

考え:

完全準同型暗号化(FHE) を見ました。任意の計算を行いますが、暗号化されています。ウィキペディアは、それを行う2つのオープンソースプロジェクトを知っています。それらは成熟しており、テストされていないようです。しかし、FHEは正しい秘密の計算を行うことができると思います。認証された出力も可能です。しかし、毎回手作業で確認することはできません。人間が読める情報が必要な場合は、グラフィックカードですべてを操作できます。

2台のコンピューターに同じ入力を与えることができると思います。次に、同じプログラムをシミュレートします。そして、出力をいくつかの簡単な電子機器と比較します。彼らはこのように互いに話すことができません。彼らが独立して間違ったことをしようとした場合、それはうまくいくかもしれません。中国と米国が壊れたハードウェアへのアクセスを共有しないかのように。それぞれから1つ購入します。彼らは国のハードウェアの半分へのアクセスを敵に与えません。しかし、それらはインテリジェントであり、キーベースのアプローチを使用できます。彼らは単一の鍵を共有できます。次に、破損したハードウェアが同時に間違ったことを行います。検出されません。

多くのコンピュータに異なる小さな計算をさせることができると思います。また、グループが正しいことを確認してください。しかし、私が欲しかった計算のみを保持します。彼らは他の人が見たものを知ることができません。彼らは間違った事をする瞬間を調整することができません。しかし、問題があります。リアルタイムは優れたコーディネーターです。計算、スクランブル、チェックができました。まれなイベントを伴うより大きなパターンは、優れたコーディネーターです。私はステガノグラフィーを使うことができました。しかし、証拠がなければそれは良くありません。しかし、調整とチェックを拒否することでうまくいくと思います。

質問:

もう1つは検証可能な電子機器です。私はスピンオフとして尋ねました " IC(またはトランジスターまたはダイオード)の設計により、悪意のある製造業者がそれを検出されずに破壊することをどのように困難にすることができますか? "エレクトロニクス。残念ながらそれは保留にされ、話題外として閉じられます。 「ヘルプセンターで定義された範囲内のエレクトロニクス設計」に適合させることはできませんでした。このカフカエスクストーリーで、ユーザー jbord39 から役立つヒントを得ました。

「信頼のために設計された、またはDFTと呼ばれています。通常、リングオシレータまたは熱変換器は、悪意のあるハードウェアがフィラースペースに押し込まれていないことを確認するために使用されます(そうすると、必然的に電力が増加するか、ノードの静電容量が増加します)。」

見終わったら更新します。

とにかく今は道がわかりません。稼働中のシステムはありますか?何も見つかりません。それとも研究があるのでしょうか?それとも別の方法を考えましたか?

7
Gabriel Schulz

この答えは、実際的な見方です。暗号化については理論化しませんが、秘密計算の以前の試みに往復します。

私は Numeron に同意しますが、ある時点でその内容を読み取るために暗号文をプレーンテキストに変換する必要があり、その時点ではハードウェアから保護できるものはありません。ハードウェアでは追跡できない計算を実行するという考えは新しいものではなく、実際には暗号化が必要です。

FHEが機能し、任意の計算を実行できると仮定する場合(これは今日のところかなり遠い仮定です)、暗号文を受信して​​その上で計算を実行し、別の暗号文を返すことができるコンピューターを構築できます。そして、すべて大丈夫です。ただし、重要な点の1つは、サーバーに暗号文を提供し、返された暗号文を受信するクライアントが必要であることです。ある時点で暗号文を暗号化および復号化する必要があるため、そのクライアントには信頼できるハードウェアが必要です(つまり、いかなる方法でも敵の制御下にありません)。

ハードウェアについてさらに詳しく知りたい場合は、X11アーキテクチャがクライアント/サーバーアーキテクチャであることを忘れないでください。さらに、システムバス経由でデータの一部を提供するIRQ番号は、クライアントサーバーアーキテクチャとして理解できます(より深い)。言い換えると、ある時点で信頼できるクライアントが必要になり、そこからの脱出はありません。

面白いことに、秘密の計算を行うためにFHEは必要ありません。 15年以上前、インディアナ大学の多くの人が Parasitic Computing について考えていました。考えは、TCPヘッダーチェックサムフィールドに他の方法も可能です)に巧妙な値を挿入することで、疑いを持たないマシンで計算を実行できるということです。マシンの答え(たとえば、不正なチェックサム)は、計算の結果。

しかし、すべての計算はネットワーク上でプレーンテキストで行われるため、なぜ寄生計算は秘密にされるのでしょうか。計算の再構成(十分な大きさで、まともなサイズのネットワーク上にある場合)は、暗号化の総当たり攻撃に匹敵するためです。

そして、それはそこで止まりませんでした。 寄生ストレージ についても同様のアイデアがありました。

ええ、上記のリンクは概念システムの証明にすぎません。それでも、かなり可能です。寄生計算が満たさない唯一のことは要件です:

数学的に検証されたソフトウェアにアクセスできます(さらに、ブートストラップのみのクリーンハードウェアにアクセスできます)

ネットワークのブートストラップは実際には意味がありません。

(補足:X11プロトコルが寄生計算、または他のプロトコルにさえ使用できるかどうかを理解することは興味深い研究アイデアです。)

3
grochmal

IC Subversionに関連して、この優れた論文 "Stealthy Dopant-Level Hardware Trojans" があり、複雑なICに対して2つの実際的な攻撃が行われています。これらの攻撃の1つは「サイドチャネル」リークです。AESを実行する場合、デバイスの電力消費はキーマテリアルに依存します。パワーサイドチャネル攻撃は、攻撃者がデバイスを手に入れることができるが、スマートカードに対する攻撃など、デバイスを破壊せずに物理的に侵入できない場合に効果的です。

74シリーズのロジックのように物理的に大きくて単純なゲートは、トロイの木馬に検出されにくくなります。 EE.SEの "The Photon"は、これについて他のことを隠すことを難しくしている点を指摘していますが、それを見るには、チップの破壊的な分析を実行する必要があります。それはすべて、修正された部品が受けると予想される分析のレベルに依存します。 TO-92プラスチックパッケージの個別のトランジスタから何かを構築する場合、パッケージを開かずに何かが隠されている可能性があります。マイクロコントローラ全体。小型無線送信機。

他のスレッドで述べたように、評判の悪いメーカーからの偽造品やクローン部品にはすでに深刻な問題があります。あります この電子戦争の小さな物語 :FTDIパーツは複製されていますが、ソフトウェアでは動作が少し異なります。したがって、FTDIは、複製された部分を破壊するドライバーをリリースします。次に、純正部品を購入していると思っていたが、拘束されたユーザーは、回路が機能しなくなったことに気付きます。

0
pjc50