0

さまざまなアプリケーションのユーザー名とパスワードが保存されている集中型ユーザー データベースを備えたシステムがあります。データベースは PostgreSQL で作成されます。FreeRDAIUS は、バックエンド システムとして PostgreSQL を使用する OpenLDAP 経由でユーザーとパスワードにアクセスします。パスワードはハッシュ形式で保存されるはずです。データベースに格納された SHA1 パスワードを使用して FreeRADIUS をテストしたところ、ユーザーは正常に認証されました。{SHA} を前に付けてダイジェストを保存したところ、完全に機能しました。ただし、このハッシュは、埋め込み文字として「=」を使用して base64 にする必要があります。LDAP ユーティリティ slappasswd を使用して base64 ハッシュ ダイジェストを生成しました。

実際には、C 関数を使用してデータベースにユーザーを挿入することになっており、OpenSSL などの利用可能な暗号化ライブラリは 16 進ハッシュの関数しか提供していないため、ダイジェストがデータベースはbase64ではなくHEXです。

誰も私がこれを行う方法を知っていますか? 単純にハッシュ値の前に {SHA} を付けると、FreeRADIUS を使用した base64 でのみ機能するようです。また、FreeRADIUS が SHA256 などの他のハッシュ アルゴリズムをサポートしているかどうかも知りたいです。

OS: Ubuntu 12.04 LTS PostgreSQL: 9.1 FreeRADIUS: 2.1.10

4

1 に答える 1

0

現在リリースされているバージョンは、SHA-2 ハッシュ アルゴリズムをサポートしていません。

FreeRADIUS 2.1.10 の rlm_pap モジュールは、「既知の適切な」パスワードを自動的に「正規化」する必要があります。つまり、hexits をバイナリに変換し、正しいcontrol:属性に割り当てます。これは、base64 と同じように hexits に対して機能します。

更新: https://github.com/FreeRADIUS/freeradius-server/commit/0bd0f7453adb2c331a9c1127eda9c9a9fe203b2d

于 2014-02-06T13:05:37.867 に答える