cryptのblowfishベースのハッシュサポートを有効にする


13

Linux(Debian)サーバーでシャドウパスワードとPHPのcrypt_blowfishサポートを有効にするにはどうすればよいですか?

PHPではCRYPT_BLOWFISHとして知られているOpenBSDスタイルのBlowfishベースのbcryptを参照しています。

私が知る限り、Debianパッケージはありませんが、このハッシュアルゴリズムをPHPで有効にするには他にどのようなオプションが必要ですか?

注:
PHPのcrypt(関数は、基盤となるオペレーティングシステムによって提供されるCライブラリcrypt(3)関数と比較的直接インターフェースします。

更新
パッケージの命名は、それが可能なほど明確ではありません(すべきです)。PEAR CRYPT_BLOWFISHパッケージは迅速を考慮して、ドロップインPHPのmcrypt拡張モジュールの交換で双方向フグの暗号化。

また、Debian BCryptパッケージ は、「通常の」双方向ブローフィッシュアルゴリズムの実装でもあります。

私が探しているのは、パスワードをハッシュするためのBcrypt-hash実装です。


「pry install Crypt_blowfish」が機能しないのですか?
コリ09年

pear crypt_blowfishパッケージは、「通常の」双方向ブローフィッシュ暗号化アルゴリズムです。blowfishベースのハッシュアルゴリズムを探しています。
ジャコ

ああ、今私は問題を見る。
コリ

質問に対して現在の担当者よりも高い報酬を得ることができるとは知らなかった。面白い。
コパス2009年

担当者はすぐに差し引かれるので、彼は〜200人の担当者を持ち、現在は〜50人です。
ceejayoz 09年

回答:


9

debianにインストールする必要があるパッケージはlibpam-unix2です。

次に、以下のファイルを編集し、/etc/pam.d/すべてのpam_unix.so使用法を次のように変更する必要がありますpam_unix2.so

  • 普通口座
  • 共通認証
  • 共通パスワード
  • 共通セッション

最後に、common-passwordファイルを編集し、「md5」パラメーターを「blowfish」に置き換えます。

これらの変更が行われた後に更新されるパスワードは、blowfishを使用してハッシュされます。既存のシャドウパスワードは変更されません。ソース

PHPでフグを使用するには、にフグ塩を提供しcrypt()ます。このような:

crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) ) 

まず、CRYPT_BLOWFISH == 1であるかどうかを確認する必要があります。そして、22文字以上の十分に長い塩を使用する必要があります。 ソース


うーん、これらの変更を行った後、何らかの理由でCRYPT_BLOWFISHはまだ1に等しくありません。
クズカイ

1
注意:pam_unix2のバージョンが、ユーザーのパスワードに現在使用されているハッシュアルゴリズムをサポートしていない場合、そのユーザーはログインできない可能性があります。一部のアカウントはSHA512を使用してログインできませんでしたが、MD5を使用したアカウントはログインできました。ルートpasswdから実行するときに古いパスワードを要求しないため、これらのパスワードをルートから設定できます。重要:再度ログインできることが確認できるまで、ルートセッションを開いたままにしてください。
トムジーチ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.