1

このサイトとは関係のない質問でしたら申し訳ありませんが、ここにはたくさんの素晴らしい人がいると思いました。近い将来、ユーザーが自分のアカウントを持つプログラムを作成するつもりなので、セキュリティについて考え始めました。私は非常に心配しています。

  • 明らかに、クリアテキストのパスワードをデータベースに保存するべきではありません。ユーザーが情報を送信するプログラムはそれを暗号化します。私が保存するのはこの暗号化されたパスワードですか、それともサーバーが再度暗号化して代わりに保存する必要がありますか? または他の解決策。

  • 検証するとき、取得した暗号化されたパスワードと保存されているパスワードを単純に比較する必要がありますか?

これで、パスワードをどのように扱うべきかについての私の疑問はほぼカバーされますが、ハッカーの潜在的な問題については問題があります。

  • 世界中で起こっているすべてのトラフィックを傍受することは可能ですか、それともローカル ネットワークだけですか?

  • ハッカーがサーバーに送信されているすべてのパッケージを手に入れたとしましょう。パスワードは暗号化されているため、クリアテキストのパスワードを取得することはできませんが、パッケージを再送信してサーバーをだましてログインさせることはできません。ハッカー?

最後の質問に対する答えが「はい」の場合、データは依然として有用であるため、暗号化をどれだけうまく行っても、物事を安全に保つ方法はないと思います。

物事がどのように機能するかを知っている人?たぶん、あなたの会社でどのようにそれを行うかを伝えることができるセキュリティ管理者 (またはそのような) として働いていますか (もちろん、機密情報を公開しないでください!)? 暗号化の方法については質問しませんが、許可されていない人から物事を安全に保つためのロジックについて質問します。

*編集* 実際にパスワードを処理および保存する方法を見つけたので、それはもはや問題ではありません。ただし、パッケージの再送信についてはまだ興味があります。

4

1 に答える 1

3

私はあなたのポイントのそれぞれについて説明し、あなたがすべきことのベースラインを提供し、それから物事を行う「より安全な」方法を提供します.

明らかに、クリアテキストのパスワードをデータベースに保存するべきではありません。ユーザーが情報を送信するプログラムはそれを暗号化します。私が保存するのはこの暗号化されたパスワードですか、それともサーバーが再度暗号化して代わりに保存する必要がありますか? または他の解決策。

暗号化されたパスワードをデータベースに保存したり、ハッシュを使用したりしないでください。
したがって、このようなことを行う基本的な方法は、ユーザーのパスワードに MD5 ハッシュを使用することです。このタイプのハッシュを行うより安全な方法は、SHA-2 などの暗号化ハッシュを使用することです。暗号化されたパスワードを保存しない理由は、暗号化を元に戻すことはできますが、ハッシュを元に戻すことはできないためです. 衝突だけを見つけることができます。さて、私が言った MD5 は、これとセキュリティ コミュニティの両方で多くの不満を引き起こすでしょう。MD5 は、多くの人が信じているほど壊れていませんが、SHA-2 よりも安全性がはるかに低くなります。 塩を使う

検証するとき、取得した暗号化されたパスワードと保存されているパスワードを単純に比較する必要がありますか?

上記参照。

「世界で起こっているすべてのトラフィックを傍受することは可能ですか、それともローカル ネットワークだけですか?」

両方。私があなたのネットワークにいる場合、その場所に関係なく、私はローカル ネットワークにいます。安全でない方法でデータをブロードキャストしている場合は、間違いなく傍受できます。

ハッカーがサーバーに送信されているすべてのパッケージを手に入れたとしましょう。パスワードは暗号化されているため、クリアテキストのパスワードを取得することはできませんが、パッケージを再送信してサーバーをだましてログインさせることはできません。ハッカー?

パケットのことだと思います。パスワードが暗号化されているからといって、平文のパスワードを取得できないわけではありません。正しいパケットを傍受した場合、パスワードをオフラインで解読できるため、速度が低下するだけです。知られているように、リプレイ攻撃では、システムが「だまされて」他の誰かがログインすることはできません。ただし、平文のパスワードを取得したら、それに関連付けられたユーザー名を使用してログインします。これは、SQL インジェクションなどによって、パケットを取得する必要性を回避できないと言っているわけではありません。したがって、クライアント側の暗号化を行っていない限り (jeebus はこれを行わないでください)、システムに着信する要求を一意に識別しない限り、リプレイ攻撃は機能しません。私が攻撃者 A で、暗号化されたパスワードを傍受したとします。魔法を使ってシステムに入ることができます。これをさらに一歩進めて、元のパケットを一意に識別するランダムに生成された値を適用すると、予想される入力と一致しないと判断できます。基本的に、暗号化だけではあなたを救うことはできません。

于 2012-09-19T16:16:28.263 に答える