次のシナリオについて質問があります
。パスワードを暗号化するためにjasyptを使用し、暗号化に特定のソルトを使用したい。
次の場合は意味がありますか(またはセキュリティへの影響がありますか):
パスワードベースの暗号化を使用して、環境変数から取得したパスワードでソルトを暗号化します。これにより、ソルトの暗号化された値をプロパティファイルに含めることができます。そこから取得し、環境変数から取得したパスワードを使用して復号化します(実際には、EnvironmentStringPBEConfigオブジェクトを取得し、EnvironmentStringPBEConfigオブジェクトから環境変数を取得し、EnvironmentStringPBEConfigが作成されたら環境変数を削除します)。塩。
ありがとうございました。
編集:上記のように塩を「隠す」ことが良い習慣であるかどうかを知りたいので、現在そのようなソリューションを実装していないことに注意してください。
編集: OWASPからの次の推奨事項にも注意してください。
推奨事項:塩全体を盗むのを難しくします
検討のために、基本的なソルティングメカニズムに推奨される追加の拡張機能がいくつかあります。
システム全体の固定値である追加の「システム」ソルトを用意します。これは、構成ファイルのどこかに保存する必要があります。この固定値をすべてのバックアップに含める必要はないため、攻撃者がハッシュ値を適切に計算するために必要なすべての要素を侵害することはさらに困難になります。システムソルトの一部をソースコードに埋め込む。これはオープンソースコードにはあまり役立ちませんが、カスタムアプリケーションの場合、システムソルトの一部をコードに含めることは、攻撃者がハッシュ値を適切に計算するために必要なもう1つの項目になります。ユーザーのパスワードが変更されるたびに、アカウントの新しいソルトを生成します。
推奨事項:塩の分離
追加のパスワードストレージ防御メカニズムには、パスワードハッシュとは異なる場所にソルトを保存することが含まれます。サーバーのファイルシステムの使用は、パスワードハッシュがデータベースやLDAPサーバーなどの別の場所に保存されていることを前提として、ソルト分離に一般的に使用されるメカニズムの1つです。この防御メカニズムにより、データベースファイルが盗まれた場合のパスワードの盗難のリスクが軽減されます。これは、ソルトがデータベースデータに含まれないためです。パスワードハッシュとソルトの両方が一緒にバックアップされないように注意してください。これらも別々にバックアップする必要があります。