さまざまなアプリケーションのユーザー名とパスワードが保存されている集中型ユーザー データベースを備えたシステムがあります。データベースは 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