1

ハッキングの何パーセントがコードに侵入し、何パーセントがデータベースに侵入しているのか、私にはわかりません。しかし、私の推測が真実であり、php コードへの侵入がデータベースのハイジャックよりも難しい場合、データベース内のハッシュ化されたパスワードを難読化することでセキュリティが向上しますか?

私が見たほとんどの場合:

DB_hash = bcrypt(real_password.salt);

なぜそれを変更しないのですか?

DB_hash = bcrypt(salt.real_password);

またはさらに進んでも:

DB_hash = strrev( bcrypt(salt_last_five_char.real_password.rest_of_salt) );

ハッカーは私の php コードを知りません。彼が私のデータベースを知っていたとしても、彼の攻撃をテストする方法は?

セキュリティを強化するのに役立ちますか?

ありがとう

4

2 に答える 2

1

これは「不明瞭によるセキュリティ」と呼ばれるものであり、強力なアルゴリズムではなく、データを保護するために実装に誤って依存していることを意味します。あなたのハッシュとソルトを持っている誰かがあなたが何をしているのかを理解するとすぐに、アルゴリズムだけの強さに戻ります.

SLaks がコメントで述べたように、SHA-1 はパスワード ハッシュには適したアルゴリズムではありません。ソルトをいじることを心配する必要はありません。適切なランダム ソルトと、bcrypt などのより優れたアルゴリズムを使用してください。

于 2013-05-28T17:52:52.903 に答える
0

やりたいことは、サーバー側の秘密を追加することです。正しく行われれば、攻撃者がデータベースにはアクセスできるがコードにはアクセスできない場合 (これは SQL インジェクションの典型です)、脆弱なパスワードを実際に保護できます。

サーバー側の秘密を追加するには、ハッシュする前にコショウを追加するか、データベースに保存する前にサーバー側のキーでハッシュ値を暗号化することでさらに効果的です。私がお勧めしないのは、ハッシュプロセスを難読化することです。あなたの例では、シークレットはアルゴリズムであり、キーではありません。

于 2013-05-30T13:34:06.570 に答える