1

一部の情報を暗号化して保存し、人間が読めないようにする認証システムを構築しています。暗号化されているため、generateSecretKey()関数を使用する必要があります(CFMX_COMPATメソッドを使用していないため)。ユーザーがシステムに登録されているときにこれを作成してずっと使用することに神経質になっているので、ユーザーがログインするたびに新しいものを作成することを考えましたが、それが本当に必要かどうかはわかりませんでした。私はすでにログインごとにユーザーのログインタイムスタンプを更新するメソッドを呼び出しているので、新しい秘密鍵を追加することは悪くありませんが、やりすぎないようにしたかったので、私の質問はこれです:

ユーザーが情報を暗号化するための秘密鍵を生成する場合、ログインするたびに新しい秘密鍵を作成するのが最善ですか、それとも登録時に作成して常に使用するのが最善ですか?

4

1 に答える 1

1

あなたの答えは(エルフがフロドに言ったように)イエスとノーの両方です。あるいは、ボブ・ドールがボクサーやブリーフを着ているかどうか尋ねられたときの言葉で…「依存」。

あなたが求めていることは、要件に厳密に結びついています。表面上、2番目の選択肢である「新しいキーの生成」は、同じキーを再利用するよりも安全です。最初のケースでは、ユーザーごとに1つのキーがあります。第二に、あなたの鍵はより短命であり、セッションの後に消えます。したがって、本当の問題は、要件に対してどのレベルのセキュリティで十分かということです。

トレードオフは、コードが少し複雑で、サーバーが少しハードに動作する必要があり、セッションを永続化できないことです(サーバーを再起動すると、おそらくキーが強制終了されるため)。また、ログタイプまたは監査証跡タイプの情報を暗号化しているように見えるため、監査レポートなどがより困難になる可能性があります。

これらのキーをデータと一緒に保存すれば、新しいキーの生成に煩わされることはないかもしれません。ウェルカムマットの下に鍵を置くことで得た利益は、すでに低下しています;)

これがお役に立てば幸いです...漠然として申し訳ありません。

于 2012-05-22T16:10:04.697 に答える