2016-07-01 51 views
0

AIXは、他のUnixと同様に、ユーザーパスワードの塩漬けされたハッシュのみを格納します。 昔は、DES cryptを使用していましたが、Linux上でも同じMD5 Cryptを使用していました。Aix:AIX/etc/security/passwdで有効なsha1/sha256/sha512パスワードハッシュを生成するには?

AIXの最新バージョンと/ etc/security/passwdの使用では、新しいSHA1/SHA256/SHA512ハッシュを使用できます。彼らは(パスワード「秘密」の例のハッシュ文字列の結果で)そのように見える:{ALGO_NAMEは}「num_cost」になった後

- salted sha1 : {ssha1}12$tyiOfoE4WXucUfh/$1olYn48enIIKGOOs0ve/GE.k.sF 
- salted ssha256: {ssha256}12$tyiOfoE4WXucUfh/$YDkcqbY5oKk4lwQ4pVKPy8o4MqcfVpp1ZxxvSfP0.wS 
- salted ssha512: {ssha512}10$tyiOfoE4WXucUfh/$qaLbOhKx3fwIu93Hkh4Z89Vr.otLYEhRGN3b3SAZFD3mtxhqWZmY2iJKf0KB/5fuwlERv14pIN9h4XRAZtWH.. 

設定ファイルには、番号を説明/etc/security/pwdalg.cfg、 2^num_costでハッシング関数で使用される反復回数を取得できます。

私はScalaアプリケーションから有効なハッシュを生成する必要があります。このハッシュは/ etc/security/passwdの後ろにあります。

私はcommons-codec Sha2Crypt(https://commons.apache.org/proper/commons-codec/apidocs/src-html/org/apache/commons/codec/digest/Sha2Crypt.html)の魔女が公式Sha-Cryptアルゴリズム(https://www.akkadia.org/drepper/SHA-crypt.txt)を実装しようとしましたが、間違ったハッシュを与えます。

誰に何をすべきか知っていますか?

答えて

2

簡単な答えは、標準unixの実装であり、 "$ 1"の代わりに接頭辞(smd5)だけが異なるmd5のappartです。他の実装は、https://www.akkadia.org/drepper/SHA-crypt.txtで説明されている標準Unix暗号とはまったく異なります。実際には、これらだけkepted:

  • ハッシュのバイト(など文字)の数:ssha1 20、ssha256 32、64 ssh512
  • base64エンコーディング表の(規格されていません1つは「./012」などから始まる
何が変わった

は次のとおりです。

  • は、彼らが写クリプトの代わりにPBKDF2 HMAC-(SHA1、SHA256、SHA512)を使用し、
  • は、彼らが異なるパディングテーブルを使用
  • 反復回数、名前の「ラウンド"Unix暗号の語彙では、ハッシュ文字列の始まり(algo名の後ろ)に見つかった数Nではありません。反復の数は、実際には2^Nであり、Nはそのプルで、

有効なScalaの実装はラダーのAixPasswordHashAlgo.scala(今のところで見つけることができ、「コスト」/etc/security/pwdalg.cfgに呼ばれていますリクエスト:https://github.com/Normation/cf-clerk/pull/84/files

関連する問題