0

CBC と HMAC をどのように使用しますか?

インターネットで十分な情報を見つけることができませんでした。

IVはどうやって入手するのですか?後で解読する必要があるときに、それが何であるかをどのように知ることができますか? (それをデータベースに入れることは目的を無効にしないでしょうか?)

HMAC とは何ですか? ハッキングから保護されていますか?

暗号化されたテキストはデータベースに残ります。誰かがデータベースにハッキングした場合、SQL インジェクションを実行する方法が見つからない限り、ファイル マネージャーにもアクセスできる可能性があります。スクリプトはどの IV とキーを使用するかをどのように知ることができ、ハッカーにはわからないのでしょうか?

複数の段落のテキストを暗号化する場合、それを書いたユーザーだけが Web サイト内で見ることができるようにするための最良の方法は何ですか? (ユーザーは常にプレーン テキストとして表示します。)

私は現在 ECB を使用しています (ウェブサイトはまだベータ版としてリリースされていません) が、CBC の方がはるかに安全であると聞いています。

4

1 に答える 1

3

IV の主な目的は、暗号化ごとに異なることです。それは秘密ではありません。暗号化ごとにランダムな IV を作成し、暗号文のプレフィックスとして保存するのが標準です。

HMAC は MAC であり、キーを知っている人によって作成されたメッセージのみが有効なものとして受け入れられるようにします。暗号化後に MAC を適用し、IV を含めることが重要です。つまりHMAC(IV+Encrypt(...))、復号化する前に検証します。これにより、オラクルのパディングなどの特定の攻撃が回避されます。

認証と暗号化を安全な方法で組み合わせた AES-GCM などの認証済み暗号化モードを使用することも検討する価値があります。その場合、IVを再利用しないようにしてください。


キーをどこに保管するかは難しい問題であり、アプリケーションに大きく依存します。お気づきのように、キーをデータベースと同じシステムに保存しても、あまりメリットはありません。

PBKDF2 などのソルトを含む低速の KDF を使用して、ユーザーのパスワードからキーを導出することをお勧めする場合があります。クライアントに保存できる場合もあります。攻撃対象領域が小さい別のサーバーに保存できる場合があります。

それをどこに保管するかを決定するには、明確な要件と脅威モデルが必要です。

于 2012-09-16T10:17:12.337 に答える