質問

対称的に暗号化されたデータを URL で渡す場合、または暗号化されたデータを Cookie に保存する場合、同じ URL で Symmetric Encryption IV (Salt) も渡すことは可能ですか、および/または必須ですか、および/または可能ですか?Salt を使用するという考えは、Web などのステートレス環境でも有効でしょうか?

(名前やアカウントなどのリストが与えられたデータベース内でソルトがどのように機能するかを理解しています。しかし、ステートレス環境でデータを受け渡していることを考えると、ソルトを保存することはできません。

データの暗号化と復号化にサーバー側のパスワードが使用されると仮定すると、Salt はどのように使用できるでしょうか?別の IV をクエリ文字列で渡すことはできると思いますが、ソルトを公開しても問題ありませんか?

あるいは、「パスワード」のハッシュからキーと IV を生成できます。IV とキーがハッシュの重複しない領域から取得されたと仮定すると、これで問題ありませんか?(ソルト/キーは特定のパスワードに対して常に同じであることがわかりました。)

編集:通常は AES を使用します。

役に立ちましたか?

解決

各暗号化ルーチンのためのランダムなIVを生成することが奨励され、彼らは暗号文を安全に一緒に渡すことができます。

編集

塩は一般的に、ハッシュではなく、対称暗号化に使用されているので、

私はおそらく、あなたが保存していると、なぜあなたはAES暗号化と塩を使用している情報の種類を尋ねる必要があります。塩が公開されている場合は、それを使用する意味がなくなります。

攻撃者は、塩、IV、及び暗号文を持っている場合、ブルートフォース攻撃は簡単に弱いキーで行うことができますのでます。

あなたが本当に行う必要があることは、あなたの鍵の強度を確保されます

他のヒント

秘密鍵から初期化ベクトルを生成しないでください。初期化ベクトルは、特定のメッセージに対して予測不可能である必要があります。キー (またはキーの生成に使用されたパスワード) から生成した場合、IV は常に同じになり、その目的が無効になります。

ただし、点滴は秘密である必要はありません。暗号文を保護せずに送信することは非常に一般的です。URL に IV を組み込むことは、サーバー側の状態で特定のリンクの IV を追跡するよりもはるかに簡単です。


塩と点滴には異なる用途がありますが、同じように作用します。

暗号化「ソルト」は、パスワードベースのキー導出アルゴリズムで使用されます。認証のためにハッシュされたパスワードを保存することは、この関数の特殊なケースです。Salt は、同じパスワードから異なるハッシュを生成し、ハッカーが一般的なパスワードのハッシュ値を事前に計算し、特定のパスワードを素早く発見できるように「逆引き」インデックスを構築する「辞書攻撃」を阻止します。ハッシュ。点滴と同様に、使用される塩も秘密ではありません。

初期化ベクトルは、CBC などのフィードバック モードで DES や AES などのブロック暗号とともに使用されます。各ブロックは、暗号化されるときに次のブロックと結合されます。たとえば、CBC では、暗号化の前に、前のブロックの暗号文が現在のブロックの平文と XOR 演算されます。IV は、プロセスをブートストラップするためのダミーの初期ブロックとして機能するためにランダムに生成されます。

メッセージごとに異なる IV が選択される (または少なくとも選択されるべきである) ため、同じメッセージが同じキーで暗号化されると、結果の暗号文は異なります。その意味では、点滴は塩に非常に似ています。通常、暗号ランダム ジェネレーターはソルトまたは IV の最も簡単で安全なソースであるため、それらにも同様の点があります。


暗号化は非常に簡単に混乱してしまいます。自分がやっていることに自信がない場合は、保護している情報の価値を考慮し、それに応じて必要なトレーニングやコンサルティングを受けるための予算を立てる必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top