2

Rijndael (AES) を使用して文字列を暗号化/復号化するコードを使用するクラシック ASP アプリケーションのレガシー部分があります。このコードはインターネットで見つかりました(Rijndael AES ブロック暗号 (VB バージョン))。この正確なライブラリを参照し、私とほぼ同じことを尋ねるSOに関する質問をすでに見つけましたが、少なくとも1つの問題があると思われます(バイト配列の先頭に暗号化するデータの長さを追加する以外に) )。vbScript の実装は、暗号化するデータに IV を追加するようにはまったく見えません。したがって、同じ暗号化を RijndaelManaged と一致させることはできません。

  1. 毎回異なる IV を自動的に生成する
  2. 絶対にIVが必要です

IV(空)を指定せずに.Netで何かをAES暗号化できるかどうか誰かが知っていますか?

4

3 に答える 3

6

使用しているコードと問題の解決策の両方が完全に安全ではありません。まず、*あなたはいかなる状況下でもCRYPTO LIBRARYを使用すべきではありません.SOME RANDOM GUY WROTE *ピリオド、物語の終わり。Windows と .net の両方に、信頼できる精査済みの暗号化ライブラリがあります。彼らには、タイミング攻撃の問題、アウトバックドア、または暗号について何も知らない人が試みるであろう馬鹿げたものなどはありません.

適切な例として、あなたが言及したライブラリは、ECB modeのみをサポートしているようです。これは完全に安全ではなく、彼らが何をしているのかを知っている人は誰もやろうとはしません。それにはたくさんの理由がありますが、そうしない理由の最良のデモンストレーションはこれです:

ここに画像の説明を入力

これは Linux ペンギンの ecb 暗号化画像です。あまり安全ではありませんか?

于 2012-04-25T17:50:11.173 に答える
2

いいえ、IV なしで CBC モードで何かを暗号化することはできません。ただし、IV を明示的に al zero's に設定することはできます。IV は最初のプレーン ブロックと XOR されるため、IV をすべてゼロに設定することは、IV がないことと同じです。

これはあなたの質問に対する単なる回答です。これまでに提供された他のすべてのセキュリティに関するアドバイスに注意してください。コードが実際に IV を必要とする CBC モード暗号化を使用しているかどうかを確認することもできます。

CBC モード暗号化の IV は、サイズが常に正確に 1 ブロックです (AES の場合は 16 バイトですが、可能な場合はgetBlockSize()メソッドを使用します。

于 2012-04-25T19:59:57.647 に答える
1

Mode暗号のプロパティを明示的に に設定しますECB

ECB は、暗号化するプレーン テキストが短くランダムな一意の文字列でない限り、安全ではありません。たとえば、セッション キーまたは別の暗号化キーを暗号化する場合に便利です。

于 2012-04-25T17:59:10.623 に答える