2017-08-16 8 views
3

PostgreSQLがデフォルトでユーザパスワードをMD5ハッシュに格納するセキュリティホールはなぜですか?私はPostgreSQLの内部を勉強しており、システムカタログpg_authidに入っています。私がMD5ハッシュの暗号化について読むと、古いものとみなされているようです。私の考えでは、管理者またはユーザーが基礎となるファイルストアにアクセスできる場合、パスワードを仮想的にクラックし、資格情報によって可能になるものを実行できます。PostgreSQLがデフォルトでユーザパスワードをMD5ハッシュに保存するセキュリティホールはなぜですか?

PostgreSQLは西側の防衛組織の出典であるwikiによれば、軍事級のセキュリティで保護されていると思われる「Common Criteria Certified」となっているため、なぜセキュリティホールではないのか尋ねます。

ありがとうございます!

+0

バージョン10は['scram-sha-256'認証方法]を提供します(https://www.postgresql.org/docs/10/static/auth-methods。 html#auth-password) –

+0

今日の多くのデフォルトインストールには大きなセキュリティホールが存在すると言っても過言ではありませんか? –

+0

@ClodoaldoNeto^ –

答えて

3

まず、SASLを基準にしてPostgreSQL 10 adds SCRAM-SHA256、これは議論の対象になります。古いバージョンでは

:それは弱点だが、それはいくつかの理由で、大きなセキュリティホールはありません。

  • インターネット展開のPostgreSQLインスタンスは、SSLを使用してプロトコル上の盗聴を防止する必要があります。これにより、成功したパスワード盗難の可能性が大幅に減少します。

  • パスワードは2回塩漬けされています。ディスクに保存されたパスワードはsaltでハッシュされ、md5ダイジェストが取得されます。しかし、電線で送信されたパスワードは再ソルトされ、認証交換の特定の塩で再ハッシュされるので、ワイヤでハッシュされたパスワードを取得すると、それ以降の認証で単純に再生することはできません。

あなたが平文接続を盗聴することにより、同じ二度塩漬けパスワードのいくつかのコピーを取得するために管理している場合、あなたが潜在的にディスク上に保存されている一度塩漬けバージョンを見つけるために、MD5の弱点を悪用して、ということを使用することができますDBで認証します。

しかし、これは多くの作業であり、SSLを使用することでかなり完全に防止されています。

個人的に言えば、「コモンクライテリア」は、官僚的なナンセンスに近いと思います。これはハードウェアから上のすべてのものの非常に狭い、特定のバージョンを持つ1つの特定のインストールにのみ適用されます。それは蛇のオイル全体を排除するのに役立つはずですが、確かに何かが安全であることを証明するものではありません。 (地獄、政府のシステムを見て...)

+0

ありがとう!データベースの構成によってシステムに重要なセキュリティ層が追加され、ソフトウェアのいずれかにCommon Criteria Certifiedの認定スタンプが表示されないことがわかりました。また、@Craig Ringer私は、適切な配備プロセスについてさらに知ることができ、また第2の箇条書きが文書化されていれば、どこに興味があるのでしょうか? –

+0

@johndrinane私は、PostgreSQLのmd5認証ハンドシェイクの詳細がソースコードの外側に記載されているかどうかはわかりません。 'src/backend/libpq/auth.c'を参照してください。 –

+0

私はそれをドキュメントに追加することにします。それは私が推測する... muchos gracias! –

関連する問題