ユーザーパスワードをsha1 $ 79b2c $ b3704ec5703ef28ded379cf6c6de4c4160aa029bの形式で保存する独自のWebアプリケーションがあります。これはsaltedsha1ハッシュです。
この保存済みの情報をフリーラジアスにも使用したいと思います。 Crypt-Password属性はradiusで定義されていますが、AFAIKはパスワードのmd5ハッシュにすぎません。私はこれを試しましたが、これは期待どおりに機能しませんでした。 freeradiusでのユーザー検証に同じ証明書を使用するにはどうすればよいですか?スクリプトを実行して、その戻り値に従って受け入れることは可能ですか?
ユーザーの資格情報を別のフォームに保存するように独自のWebアプリケーションを変更した場合、Freeradiusとの互換性を確保するために何を選択する必要がありますか?クリアテキストとMD5を除く。
私は質問パートbのやり方を見つけました:
フォームsha1 $ 79b2c $ b3704ec5703ef28ded379cf6c6de4c4160aa029bには、sha1 $ SALT $ SALTEDPASSWORDのような部分があります。
Radiusでは、これはSSHA-Password Ref: http://www.packtpub.com/article/freeradius-authentication-storing-passwords Ref: http://freeradius.org /radiusd/man/rlm_pap.txt
1- Ref1のスクリプトを使用して、SaltedSHA1ハッシュを作成します。 prop-to-ssha.pl UserClearPass SALT
これの出力は、属性に割り当てることができます
SSHA-パスワード:= OUTPUTOFPERLSCRIPT
そして、これは機能します。独自のアプリケーションを自動化し、ユーザーの作成中にradiusパスワードエントリを作成することもできます。
質問の一部については、まだ回答がありません。
これはJavaで機能します
// Salted SHA1 with a random salt appended
String salt = UUID.randomUUID().toString().replaceAll("-", "");
hashPass = Base64.encodeBase64String(ArrayUtils.addAll(
DigestUtils.sha1(currPass.concat(salt)),
salt.getBytes()));
'SSHA-Password'属性を使用してRadCheckテーブルに 'hashPass'を追加できるようになりました。 Base64およびDigestUtilsはApacheCommonsからのものです。