★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

F.26. passwordcheck — パスワードの強度を検査する #

passwordcheckモジュールはCREATE ROLEまたはALTER ROLEによって設定したユーザのパスワードを検査します。 パスワードが弱すぎると考えられた場合、パスワードは拒絶されてコマンドはエラーで終わります。

このモジュールを有効にするには、postgresql.conf中のshared_preload_libraries'$libdir/passwordcheck'を追加して、サーバを再起動してください。

ソースコードの変更により、このモジュールをユーザの用途に適合できます。 例えば、パスワード検査のためCrackLibを使用できます。 これに必要な作業はMakefile中の 2行のコメントアウトを外してモジュールを再構築することだけです。 (ライセンスの理由からCrackLibをデフォルトで組み込むことができません。) CrackLibがなくても、モジュールはパスワードの強度に関する幾つかの単純な規則を強制します。 ユーザはこの規則を、適切となるように修正または拡張できます。

注意

暗号化されないパスワードが、ネットワークを送信されること、サーバログに記録されることおよびデータベース管理者に盗聴されることを防ぐために、PostgreSQLはパスワードの一方向暗号化をユーザに提供できます。 この機能を使用して、多くのクライアントプログラムはサーバへ送信する前にパスワードを暗号化できます。

一方向暗号化されたパスワードは復号できないので、これがpasswordcheckモジュールの有効性の限界となります。 この理由により、高度のセキュリティが要求される場合、passwordcheckは推奨されません。 データベース内部に保存したパスワードに依存するよりは、GSSAPIのような外部の認証方法を使用した方が安全です(第21章参照)。

その他の方法として、一方向暗号化されたパスワードを拒否するためにpasswordcheckを修正できます。 しかし、この方法ではパスワードが平文のテキストとして送信されるため、ユーザに多大なセキュリティリスクを負担させます。