web-dev-qa-db-ja.com

一度の復号化を提供できるスキーム/メカニズム?

私は一般的な学部/大学院のセキュリティ基盤のほとんどに精通しています。しかし、私はこのシナリオに関連するものを見つけることができませんでした:

データの一部を「解読」することができ、かつ1回だけ読み取ることができる(場合によってはコンピュータープログラムで)スキーム/システム。

可能ですか?そのようなものが「ハードウェアの世界」(?)にあると聞いたことがあります。私の質問が不正確/不完全である場合、私は更新してもかまいません。しかし、私は実際に同時に一般的な設計/プロトコルにも興味があります。

38
DaveIdito

これを行う方法はありません。これは、DRMスキームが行うことを試みるサブセットです。

エンドユーザーが何かを一度解読してそれを見ることができる場合、彼らはそれを再び見ることができます。次のいずれかが考えられます。

  • 最初にコピーを取り、それを復号化します
  • 画面をコピーする
  • アプリケーションを編集する

近づく唯一の方法は、ハードウェアとソフトウェアを完全に制御することです。そのため、表示されたら削除できますが、それでも、誰かがカメラを使用して画面の写真を撮ることができます。

だから、私は代わりにあなたがそのようなスキームを何のために使うつもりかを尋ねたいのです-多くのシナリオで同じ効果を持つ方法があるので。

62
Rory Alsop

あなたがすでに示唆したように、そのようなことはハードウェアでのみ可能です。ソフトウェアまたは暗号化されたデータソリューションは、常に、復号化する前にコピーを作成するオプションの影響を受けます。

ハードウェアでは、スキームは解読時に情報を破壊することになります。素朴なアプローチは、単にブロックをメモリに読み込み、それをストレージで破棄してから復号化することです。

もちろん、そのアプローチは改ざんの犠牲になる可能性があります-攻撃者はシステムを操作して削除が失敗する可能性がありますが、復号化を実行しているものは何でもそれが成功したと信じて復号化を続行します。

より洗練されたアプローチは、情報を読んでもそれを破壊するような方法でいくつかの物理的特性を利用することです。これが実際に、大部分が理論的な量子暗号を安全にするものです。情報を破壊せずに盗聴(傍受)することはできないため、誰かがメッセージを傍受していることが明らかになります。

量子領域の外では、化学的またはその他の物理的プロセスを使用したソリューションが存在する可能性がありますが、それらも改ざんされる可能性があります。

25
Tom

ネットワークが利用可能な場合は、復号化手順(および秘密鍵)を安全なサーバーで実行されているサービスにオフロードできます。次に、サーバーに必要なルールを適用できます。

クライアントは不透明なテキストをサービスに送信し、それを解読してプレーンテキストのコンテンツを返すように要求します。サーバーは、解読履歴に基づいてクライアントを許可するかどうかを決定できます。複数の解読操作をブロックする可能性があります。

ただし、呼び出し側が復号化のresultを何度も使用することを妨げるものは何もありません。音楽や映画に対してそうしようとする試みがありましたが( 保護されたメディアパス を参照)、それは負けた戦いです。他に何もない場合、ハッカーはモニターハードウェアを偽装して入力信号を記録するか、HDビデオカメラをモニターに向けてコンテンツを再生しながら記録することもできます。同様の傍受手法は、あらゆる種類のデジタルコンテンツに使用できます。つまり、一番下の行は...ではありません、それは実際には不可能です。

より現実的な方法は、シリアル番号をコンテンツ自体に焼き付けて、承認サーバーで追跡するか、有効期限のタイムスタンプを焼き付けることです。次に、これを受信側で適用する必要があります。これは、安全なアプリケーションでなければなりません。これは、たとえば ワンタイムパスワード の仕組みです。ただし、そのためには、データパスの両端を所有し、データ自体がその外では役に立たないようにする必要があります。

10
John Wu

それは決して実用的ではなく、根本的に(信頼できる方法で)不可能ですが、ある程度の範囲で可能である可能性があります。

努力を根本的に不可能にする明らかな障害は、解読するものが何であれ、一度読んだら、それはあなたの頭の中にあるということです。そのため、秘密が確実に守られるようにするには、ある種の毒薬メカニズムが必要です。多分、TTSエンジンを含み、骨伝導を介してメッセージを送信し、その後爆発して頭を吹き飛ばすカプセルです。
なぜなら、あなたが呼吸している限り、誰かに話すことができるからです。それでも、TTSが頭の中でささやいていることを声に出して繰り返さないようにしましょう。

それはさておき、一度だけ読み取ることができるデータストレージシステムが存在します。 DRAMと強誘電体RAMは、その2つの例です。これらには、明示的な書き込み後の組み込み、または何か別のもの(例:容量回路)が必要です。それ以外の場合は、情報を読むことは情報を破壊します。それを省いて、あなたは大きな一歩前進しました。
少なくとも、少なくとも2コピーを作成する必要があります(1つは非破壊読み取りストレージに、もう1つは実際にコピーを作成するため)。それでも、それは「実行可能」の領域内ですが、ハードウェアの互換性によっては、とにかくいくらか負担になるかもしれません(完全に異なる2つの完全に互換性のないストレージタイプを接続して、スタートレックのようにデータをコピーできるかどうかはわかりません)それはそれよりも少し難しいことがわかります!)しかし、私たちは終わりではありません。

復号化キー、さらには復号化実行可能ファイルの一部または全体(ループが展開されていると想定)も、復号化ハードウェア内の破壊的読み取りストレージに格納される可能性があります。復号化キーはチップを離れる必要はありません。そのため、「データ」の場合を除いて、それを送信するためのレーンは必要ありません。復号化中に読み取られ、その後は失われます。だから...そこに行きます。

誰かがチップに数十ナノメートルのサイズの穴を開け、ナノワイヤを使用して何らかの方法でストレージに盗聴する可能性があると想定しない限り、データにアクセスする方法はありません。これが不可能だと言っているのではありません。それを保証するのに十分な情報はありません。さらに、小さな電荷を誤ってリークしたり、数ナノメートルを左または右に移動しすぎると、必然的にキーも破壊されるため、非常に危険な手順である可能性があります。

復号化キーは通常非常に小さい(32バイト以下)ので、今日多くのモバイルデバイスで日常的に行われているように、実際には安全なエンクレーブプロセッサなどに格納できます。そのストレージはまた破壊的な読み取りを行う可能性があります(そして、現代のすべての電話のように、エンクレーブされたデータへの外部アクセスはありません)。しかし、それさえする必要はありません。
SamsungのKnoxやAppleのSEPなどのヒューズを使用すると、原則としてデータをN回(1回だけでなく、N回、好きなだけ)復号化できます。その後、プロセッサは単にキーを更新(または明示的に上書き)しません。または、はるかに安全性が低くなりますが(おそらくまだ十分です)、復号化を拒否するだけです
したがって、暗号化されたデータのコピーを作成しても、そのコピーを復号化できないため、実際にはあまり効果がありません。

もちろん、decryptedデータをコピーする手段があれば、だれでも簡単にコピーできます。通常、デジタルとアナログの両方があります。他に何もない場合は、2人または3人の人が同時に画面を見ているか、写真を撮ることができます。

ただし、これは根本的に解決できない問題です(爆発装置または神経ガスを放出する装置を除く)。

2
Damon

純粋に理論的な意味から-最初の復号化の後にbothのコピーが存在しないことを確認できる場合にのみ可能です

  1. 復号化されたデータ、および
  2. どちらか暗号化されたデータまたはそれを復号化するために必要なキー。

原則、これは、削除する必要のあるこれらの情報を扱う当事者のcooperation(意志または強制)でのみ実行できます。

実際には、これは、何を達成したいか、およびシステムのどのコンポーネントを信頼しても構わないかに応じて十分です。

たとえば、典型的なiPhoneを信頼している場合(絶対的な意味では信用すべきではありませんが、セキュリティ上のすべてのものと同様に、絶対的なものはほとんどなく、通常は確率と許容されるリスクの量しかありません)、あなたが書いたiPhoneアプリとそのデータがマルウェアや人間のユーザーによって改ざんできないと想定することを選択してください。これは一種のことなので、Apple復号化を行い、後でコード内のデータを必ず削除してください。

(iPhoneがあまりにも安全ではない、または信頼できないと感じた場合に自分で作成した、細心の注意を払って保護および監査されたデバイスをいつでも想像できます。)

データをユーザーに表示したり、観察可能な方法でデータを漏えいさせたりしている場合、これは「アナログホール」を削除しませんが、一部のユースケースではそれが許容される可能性があります。復号化されたデータを、ユーザーが直接見る必要のない実装詳細のセキュリティスキームの一部として使用する。

この例をデータtransmissionに拡張できます。1つのデータチャネルを通じて暗号化されたデータを送信し、別のチャネルを通じて鍵を送信することができます。これらのチャネルの少なくとも1つを保護し、通過するデータを保持しないようにするか、1つのチャネルで盗聴できる仲介者が、他のチャネルで盗聴できる者と情報を渡すことができないようにすることができます。あなたはそれを解読する唯一のものはあなたの協力的なクライアントコードであるという適切な保証を持っています。

TL; DR:原則としてこの問題に対する完全な解決策がない理由を理解している場合、実際に快適であるように十分高いオッズでそれを達成できる状況を特定できます。しかし、それらの状況は、あなたが望んでいたことと重ならないかもしれません。

1
mtraceur

これは量子通信の約束の1つです-理論的には、観測は基本的に量子状態を変えるため、「1回だけ」の通信プロトコルを作成することは可能です。

もちろん、「ユーザーがまだ自分の携帯電話で自分の画面の写真を撮ることができる」などの実際的な問題はまだ残っています。

0