3

https://gist.github.com/shadowhand/873637状態に関するコメント

「ECB モード暗号化は、高レベルの難読化 (または低レベルの暗号化) を提供する比較的単純な暗号化方法です。この方法はあまり安全ではなく、機密性の高い個人データには使用しないでください。パブリック チャネルでプライベート パーティ間でソース コードを送信します。セキュリティを強化するために、モードを CBC に切り替えることができますが、変更のたびにすべてのファイルが完全に変更されます。すべての暗号化と同様に、強力なキーが常に推奨されます。」

「これは、機能的に正しい暗号化の (一部の) 定義のようなものです。ECB (説明についてはここをクリック) は、現在使用するために正確に誰も推奨していない欠陥のあるレガシー実装であり、OpenSSL でのみサポートされています。きしむようなレガシー暗号の実装! 今日は学習ツールとしてのみ有用であり、現在のシステムでは決して使用しないでください。

OFB モードの CBC がデフォルトである必要があります。Gist を CBC を使用するように変更することを検討し、ECB の潜在的な利点と、git でのわずかな利便性のためにセキュリティの損失を受け入れたい人向けの欠点を説明してください。デフォルトで安全でないものは何もないはずです!」

http://git.661346.n2.nabble.com/Transparently-encrypt-repository-contents-with-GPG-td2470145.htmlただし、CBC に固定値のソルトを使用することは悪い暗号化手法であると述べています。モードを CBC に切り替えた場合 ( https://gist.github.com/shadowhand/873637またはhttps://github.com/shadowhand/git-encryptの場合)、固定値のソルトを使用することになるため、悪い暗号の練習ですか?

(この質問はhttps://gist.github.com/shadowhand/873637のコメントとしても投稿しました)

4

1 に答える 1

5

一意のブロックを暗号化するために ECB を使用する場合、ECB は安全です。たとえば、秘密鍵のコレクションがあり、それらすべてにマスター キーを使用したい場合、ECB は安全な選択です。

同じブロックが複数回暗号化される可能性がある場合、ECB は安全ではありません。たとえば、自然言語の長いパッセージには、繰り返される部分文字列が含まれている可能性があります。または、特定のプロトコルの複数のメッセージが同じプレフィックスまたはサフィックスを持つ可能性があります。このようなプレーン テキストで ECB を使用すると、プレーン テキストのパターンが明らかになります。

「CBC の固定値ソルト」という用語には意味がありません。「ソルト」は鍵の派生に使用され、パスワードから秘密鍵を作成します。CBC には「初期化ベクトル」が必要です。これは、暗号化されるメッセージごとに予測不能でなければなりません。(壊れた暗号化プロトコルの中には、過去にパスワードから IV とキーを生成したものがあります。これは、パスワードが 1 つのメッセージのみを暗号化するために使用される場合にのみ安全です。) 理想的には、IV は暗号ランダム ビット ジェネレーターによって生成されます。CBC モードで固定 IV を使用すると、ECB のように、メッセージ プレフィックスのパターンを明らかにすることができます。

ここで ECB が安全かどうかを知るには、より多くのコンテキストが必要になります (質問は自己完結型であり、不要な情報を含めないでください)。ただし、ECB は常に安全ではないという一律の声明は誤りです。適切なアプリケーションでは安全である可能性があり、その短い暗号文は価値がある場合があります。

于 2015-07-08T19:31:05.507 に答える