14.4. DES, Blowfish, MD5, SHA256, SHA512 および Crypt

改訂: Swingle Bill [FAMILY Given].

訳: 花井 浩之 , 12 September 1996.

訳改訂: 日野 浩志 , 12 March 2001.

UNIX® システムにおけるすべてのユーザは、 そのアカウントに対応した一つのパスワードを持っています。 それらのパスワードを秘密に保っておくために、 パスワードは 一方向ハッシュ として知られる方式で暗号化されます。 一方向ハッシュとは、 簡単に暗号化はできるが解読は難しいという方法です。 オペレーティングシステム自身はパスワードを知りません。 その代わりに 暗号化された 形でのみパスワードを知っています。 素のテキスト としてパスワードを得る唯一の方法は、 可能な限りのパスワード空間を検索するという力任せの方法です。

元々、UNIX® においてパスワードを安全な形で暗号化できる方式は Data Encryption Standard (DES) に基づいたものだけでした。DES のソースコードを米国外に輸出することはできないという問題があったため、 FreeBSD は、米国の法律を守ることと、 未だに DES を使っていた他の UNIX® 一族との互換性を保つこととを両立する方法を探し出す必要がありました。 その解決方法は、DES よりも安全であると考えられている MD5 を使うことでした。

14.4.1. 暗号化機構を理解する

現在では、ライブラリは DES, MD5, Blowfish, SHA256 および SHA512 ハッシュ関数に対応しています。FreeBSD がどの暗号化方式を使うようにセットアップされているかを判断するには、 /etc/master.passwd の暗号化されたパスワードを調べてください。 MD5 ハッシュで暗号化されたパスワードは、DES ハッシュで暗号化されたパスワードよりも長く、 $1$ という文字で始まるという特徴を持っています。 $2a$ で始まるパスワードは、Blowfish ハッシュ関数で暗号化されています。 DES のパスワードはこれといって識別可能な特徴は持っていませんが、 MD5 のパスワードよりは短く、そして $ という文字を含まない 64 文字のアルファベットを使って表現されているので、 比較的短い文字列でドル記号で始まっていないものはおそらく DES のパスワードでしょう。 SHA256 と SHA512 の場合は、$6$ から始まります。

新規パスワードがどちらのパスワード形式になるかは、 /etc/login.conf の中の passwd_format ログインケーパビリティによって制御されます。 その値としては、 des, md5, blf, sha256 または sha512 を設定することができます。 ログインケーパビリティに関するより詳細な情報は、 login.conf(5) をご覧ください。

本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。

本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。