真に拒否可能な暗号化を行うために使用できるツールは何ですか?当局があなたのパスワードを開かせるためにあらゆる力を使用できると仮定します。
Truecryptは1つの非表示コンテナーしか持つことができません。つまり、非表示コンテナーを作成していなくても、この2番目のパスワードを明らかにするまで、当局は停止しません。
それで、多くの隠しコンテナを作成する方法はありますか?そうすれば、当局はあなたが打ち負かす必要があるパスワードの数を知ることさえできませんでした。また、この方法は、使用済みクラスターの統計分析など、他のよりインテリジェントな復号化メソッドに対して十分に安全であることが望ましいです。
ここ http://en.wikipedia.org/wiki/Deniable_encryption ラバーホースに関する情報を見つけましたが、2000年以来維持されていないため、どれだけ信頼できるかわかりません。
私が見つけた別の方法は、たとえば同様のスクリプトを使用して異なるオフセットでハードディスクに書き込むことです http://sourceforge.net/projects/stlth/files/
しかし、この方法では、私が理解している限り、データは物理的に混合されないため、そのスマートな統計手法に対して脆弱です。つまり当局が、すでに与えたパスワードを使用して明らかにされていないドライブの部分を頻繁に使用していることを確認した場合、彼らは引き続きパスワードを取得しようとします。ドキュメントに従っているラバーホースは、これらの方法に対する保護を備えていますが、プロジェクトが古すぎます。
ディスク上にいくつかの隠しコンテナーを作成するために、他にどのようなツールをアドバイスできますか?
デバイス全体にランダムなバイトを書き込み、デバイスのランダムなポイントにヘッダーなし(LUKSまたはTrueCryptなし)の暗号化ブロックを作成した場合、これは検出できるものではありません。
たとえばLinuxの場合。
ランダムデータを入力します。
dd if=/dev/urandom of=/dev/sda bs=4K
ディスクの「ランダム」ポイントに暗号化されたループバックデバイスを作成します。
losetup --offset $RNDOFFSET --sizelimit 5G -e aes -k 256 /dev/loop0 /dev/sda
ファイルシステムを作成します。
mkfs.ext4 /dev/loop0
そしてそれをマウントします:
mount /dev/loop0 /mnt/secret
これらすべての目的は、暗号化されたデータをランダムなバイトと区別できないようにすることです。このようにして、暗号化された5GBブロックがランダムノイズに対して偽装されます。 LUKSなどの暗号化ディスクヘッダーは、ブロックが存在する場所を明確に示すため、ベア暗号化を使用する必要があります。
あなたが$RNDOFFSET
シークレット(fstab
に書き込んではいけません)暗号化されたファイルシステムの存在を検出することは非常に困難です。
また、デバイスは、起動時にランダムに生成されるキーで使用するスクラッチパッドまたはスワップ領域であると常に言うことができます。
免責事項:私は cryptsetup-deluks
および grub-crypto-deluks
。の作成者です
拒否可能な暗号化は、ソリューションの一部です。敵に攻撃された場合、自分自身とデータを保護する完璧なソリューションはありません。たとえ攻撃者がそれを証明できないとしても、暗号化の疑いを回避することはほとんどできません。問題と解決策をリストします。
Veracrypt
(Windows/Linux/MacOS)しかし、ブートローダーに注意してくださいgrub-crypto
(Linux)+プレーンモードcryptsetup
grub-crypto-deluks
(Linux)+ cryptsetup-deluks
この場合の拷問は rubber-hose cryptanalysis としても知られています。良いニュースは 拷問はしばしば非効率的 です。拷問への抵抗が鍵となり、少なくとも検証不可能な偽の事実を提供する能力(おとりO.S.を復号化する鍵のようなもの)です。理想的には、拷問をやめるために、データを復号化できないことを証明できる必要もあります。
否認可能な暗号化はゴムホース問題を解決しません。
ソリューションは2つのカテゴリに分類されます。詳細は 「ゴムホース攻撃」に耐えられるテクノロジ を参照してください。
(暗号化されていない)LUKSヘッダーは使用しないでください。拒否できません。
ソリューション:
cryptsetup --type plain
です。もちろん、Hey I'm encrypted.bin
というファイルにデータを入れることはありません。しかし、完全なディスク暗号化を使用しても、ランダムに見えるデータの単純な存在があなたに対して使用される可能性があります。参照: 英国では、暗号化のためだけでなく天文ノイズのためにも刑務所に行きます 。
解決策が何であれ、少なくとも1つのデコイ(偽)O.Sが存在する必要があることに注意してください。完全に疑わしく見えないようにコンピュータ上で。
ソリューションにはさまざまなレベルの信頼性があり、どれも完璧ではありません。では、このランダムに見えるデータをどのように説明しますか?
システム暗号化は、データを保護するための鍵です。 RAMはオンディスクスワップに書き込まれることがあり、システムは開いているファイルのログやトラックなどを保持することを忘れないでください。システムの暗号化とブートローダーを使用することをお勧めしますそれをサポートしています。
現時点では、すべての主要なO.S.ブートローダーは、ネイティブプレーンの暗号化ヘッダーまたは拒否可能な暗号化ヘッダーをサポートしていません。したがって、拒否可能な暗号化をサポートするブートローダーの存在は、あなたに対して使用することができます。
拒否可能な暗号化をサポートする既知のブートローダーは次のとおりです。
こんにちは、私は暗号化されたシステムです。信頼してください。隠されたボリュームはありません。
grub-crypto
:(プレーンモードの暗号化をサポートするブートローダー)少なくともGUIはGRUBのように見えますが、バイナリコードはそれを裏切ります。grub-crypto-deluks
:(DeLUKSをサポートするgrub-crypto fork)grub-cryptoと同じです。ソリューション:
cryptsetup
を使用して実際のO.S.次に、Live O.Sからinitramfsをロードします。 (GRUBからではなく)実際のO.S.現在存在しないソリューション:
grub-crypto
。Veracrypt:非表示のボリュームに関するセキュリティ要件と注意事項 からの抜粋:
コンピュータは、おとりオペレーティングシステムが実行されているときにのみ、ネットワーク(インターネットを含む)に接続できます。非表示のオペレーティングシステムが実行されている場合、コンピューターはインターネットなどのネットワークに接続しないでください(ネットワークケーブルがある場合は、ケーブルを外すことを確認する最も信頼できる方法の1つ)。データがリモートサーバーからダウンロードまたはアップロードされる場合、接続の日付と時刻、およびその他のデータは通常サーバーに記録されることに注意してください。さまざまな種類のデータもオペレーティングシステムに記録されます(例:Windows自動更新データ、アプリケーションログ、エラーログなど)。したがって、攻撃者がサーバーに保存されているデータにアクセスしたり、サーバーへのリクエストを傍受した場合(そして、おとりオペレーティングシステムのパスワードを彼に明らかにした場合、おとりオペレーティングシステム内から接続が確立されていないことに気付く可能性があります。これは、コンピュータに隠しオペレーティングシステムが存在することを示している可能性があります。
OPの状況下での最善のアプローチは、おそらく敵が監視しているときでも、簡単に破壊できるストレージです。 マイクロSDカード は非常に小さく、薄いです。噛んで破壊してから吐き出すのに数秒しかかかりません。 OPは罰せられるかもしれませんが、(とにかくパスワードの)拷問の意味はありません。
Blackhat Asia 2014でのソリューションの最初の試みを紹介します :
私の講演の概要
私たちは、暗号化文献の「否認可能な暗号化」の変形である、暗号化されたファイルの内容について説得力を持って嘘をつく能力に興味があります。合理的なシナリオには、機密文書を持ち、危険な地域を旅行するビジネスマンが含まれる場合があります。ビジネスマンは、誘拐されたり強要されたりした場合に、自分の文書の内容について説得力をもって誘拐犯に嘘をつきたがります。
したがって、ユーザーがテキストを暗号化して、元のテキスト(正しいキーを使用)だけでなく、他の可能なテキスト(おとりキーを使用)にも復号化できるツールをリリースします。たとえば、1つのキーを使用すると、テキストは「アルゼンチンのために泣かないで」に復号化できますが、正しいキーを使用すると、「アンジェリーナに会おうとしないでください」に復号化できます。