塩の位置、塩が隠れています
-
26-10-2019 - |
質問
次のシナリオについて質問があります。
jasyptを使用してパスワードを暗号化し、暗号化に特定の塩を使用したいと思います。
それは理にかなっていますか(またはセキュリティの意味はありますか)場合:
パスワードベースの暗号化を使用して、環境変数から入手したパスワードで塩を暗号化します。そのため、プロパティファイルに塩の暗号化された値を持つことができ、そこから入手し、から入手してパスワードを介してそれを復号化できます。環境変数(実際、環境tringpbeconfigオブジェクトから環境変数を取得し、環境tringpbeconfigが作成されたら環境変数を削除する環境を取得します)。
ありがとうございました。
編集:上記のように塩を「隠す」のが良い習慣であるかどうかを知りたいと思うことに注意してください。今はそのような解決策を実装していません。
編集:以下の推奨事項にも注意してください owasp.
推奨事項:塩全体を盗むのを難しくする
検討のために、基本的な塩分メカニズムには多くの追加の推奨強化があります。
システム全体の固定値である追加の「システム」塩があります。これは、どこかに構成ファイルに保存する必要があります。この固定値をすべてのバックアップに含める必要はなく、攻撃者がハッシュ値を適切に計算するために必要なすべての要素を妥協することをさらに難しくします。ソースコードにシステム塩の一部を埋め込む。これはオープンソースコードにはそれほど役に立ちませんが、カスタムアプリケーションでは、コードにシステム塩の一部を持つことは、ハッシュ値を適切に計算するために攻撃者が必要とするもう1つのアイテムです。ユーザーのパスワードが変更されるたびにアカウント用に新しい塩を生成します。
推奨事項:塩の分離
追加のパスワードストレージ防御メカニズムには、パスワードハッシュとは異なる場所に塩を保存することが含まれます。サーバーのファイルシステムの使用は、パスワードのハッシュがデータベースやLDAPサーバーなどの異なる場所に保存されていると仮定して、塩分分離に一般的に使用されるメカニズムの1つです。この防御メカニズムは、データベースファイルが盗まれたときにパスワード盗難のリスクを軽減します。これは、塩がデータベースデータに含まれないためです。パスワードのハッシュと塩の両方が一緒にバックアップされないように注意してください。また、それらを単独でバックアップする必要があります。
正しい解決策はありません
他のヒント
なぜ塩を暗号化したいのですか?塩は通常、公開情報です - パスワードのデータベースに対する事前に計算された「レインボーテーブル」オフライン攻撃を防ぐためにのみ存在します。あなたが何をしようとしているのか、そしてその理由について明確にする必要があると思います。