web-dev-qa-db-ja.com

Veracrypt暗号化ボリュームには、あらゆる種類のブルートフォース保護機能がありますか?

Veracryptで作成した10MBの暗号化ボリュームがあり、それをインターネットにアップロードする予定でした。私はかなり強力なパスワードを持っていますが、ブルートフォース攻撃からの保護について心配していました。このSEを検索した後、Veracryptで暗号化されたボリュームは簡単にブルートフォース ref1ref2 にできるようです。それが事実である場合、十分なリソースがあれば、数年ではなく並列ブルートフォーシングを使用して、わずか数日で任意の長さのパスワード(> 100)の暗号化ボリュームをクラックできます。

Veracrypt暗号化ボリュームには、あらゆる種類のブルートフォース保護が組み込まれていますか? Veracryptの作成者はこの問題を知らなかったのですか?ブルートフォース保護を備えた他の強力な暗号化システムはありますか?

22
Eka

暗号化はブルートフォース攻撃に対して脆弱です。たとえば、AES-256には2 ^ 256キーがあり、十分なハードウェアがあれば、「簡単に」ブルートフォース攻撃を実行できます。問題は、地球が熱で死ぬ前にそれを行うのに十分なプロセッサを構築するのに十分なシリコンが地球上にないということです。暗号化をブルートフォースできるという事実は、これが妥当な時間内に発生することを意味するものではありません。そのための確率理論に感謝することができます;)

最も弱いリンクは、ほとんど常に暗号化アルゴリズムのキーではなく、キーの派生元のパスワードです。一部のパスワードは他よりも可能性が高く、これによりパスワードに対する辞書攻撃が可能になります。

この点で、VeraCryptプロジェクトは本によってすべてを実行します。彼らは強力なハッシュアルゴリズムと高い反復回数(これはユーザーによって多少制御されます)を備えたPBKDF2を使用しています。ランダムソルトでPBKDF2を使用すると、攻撃者が事前に作成されたハッシュテーブルを使用するのを防ぎ、コンテナに固有のすべてのキー試行を強制的に計算させます。反復回数が多いと、すべての試行にかなりの時間がかかります(ミリ秒から秒)。繰り返しハッシュは本質的に並列化できません(単一のPBKDF2操作は並列化できません。もちろん、攻撃者は複数の同時推測を実行できます)。そのため、カスタムハードウェアはあまり役に立ちません。

これらの状況では、実行可能な唯一の攻撃は辞書ベースであり、ブルートフォースには時間がかかりすぎます。パスワードがディクショナリ攻撃に対して安全である場合、データのセキュリティを非常に確実にすることができます。

関連ドキュメント: https://www.veracrypt.fr/en/Header%20Key%20Derivation.html

64
Andrew Morozko

Veracrypt作成者はこの問題を知らなかったのですか?

ブルートフォース保護がない

Andrew Morozkoが 彼の回答 で述べているように、安全な鍵生成関数(PBKDF2)と高い反復回数を使用することで、可能な限りこれに対処しています。これにより、ブルートフォースを実行する機能が大幅に制限されます(パスワードが長くランダムで十分である場合)1)。

他にどのような方法を使用したと思いますか?

ソフトウェアポリシングログイン試行がディフェンダーによって所有されているWebサイトでは、レート制限ログイン試行(遅延の増加、パスワードチェックの実際の計算時間をはるかに超える)のようなことを実行でき、失敗が多すぎる場合にアカウントをロックできます。試み。

ただし、VeraCryptでは、暗号化されたボリュームを処理するソフトウェアは攻撃者のマシン上に置かれるため、攻撃者が「所有」していると見なす必要があります。ライターがコードを組み込んでレート制限を試みたとしても、誰かがバイナリをリバースエンジニアリングしてレート制限コードを削除/バイパスすることは簡単です。

結論:事実上2 パスワードをチェックするために本質的に必要とされる以上の対策は役に立たず、簡単に回避されます。


1 「veracryptで暗号化されたボリュームは簡単にブルートフォースできる」と主張する2つのリファレンスは、実際にはこれを示していません。 1つは、正しいパスワードが "1000-2000"候補のリストにあることがわかっている場合です。もう1つの「ほとんどのパスワード」が記憶されます。 1つ目は明らかに簡単です。 2つ目は、不明/覚えられていない量によって異なりますが、どちらでもないは、「典型的な」総当たり攻撃のシナリオです。 Andrewが言うように、「パスワードがディクショナリ攻撃に対して安全である場合、データのセキュリティに高い確実性を持たせることができます。」。

2 私が考えることができる唯一の考えられるメソッドについては、資格情報検証のプロセスがサーバーに話しかける(そしてrequired)が関係するところだろう他の誰かの管理下に。たとえば、キー生成プロセスの一部(暗号化と復号化の両方)が必要な場合たとえば、VeryCryptのサーバーに要素を渡すと、理論上、追加のレートを課すことができます-制限またはロックアウト対策。

ただし、これが可能であったとしても(両方とも暗号的に必要であったが、VeraCryptでキーのコピーを残さなかった場合)、事実上すべてのユースケースでは受け入れられません。誰かがマウントするたびに有効なインターネット接続が必要です。ドライブ、および暗号化されたボリュームは、VeraCrypt(およびそのサーバー)が使用できなくなると役に立たなくなります。

20
TripeHound