5.29.2011

Available length of user password in Solaris

Solaris: ログインパスワードの有効文字数

Solaris におけるユーザのパスワードは、デフォルトでは 8文字以内でしか利用できない。
9文字以上のパスワードを設定しても、実際にチェックされるのは先頭8文字だけである。

・パスワード設定

   1: # passwd root
   2: 新しいパスワード: 「password1234」と入力
   3: 新しいパスワードを再入力してください: 「password1234」と入力
   4: passwd: root のパスワードが変更されました

・パスワード確認

   1: $ su -
   2: パスワード: 「password」と入力
   3: Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
   4: # id
   5: uid=0(root) gid=0(root)

このように、su でも telnet でも ftp でも、先頭8文字さえわかればログインできてしまうのだ。

9文字以上のパスワードを正しく使えるようにするためには、パスワード暗号アルゴリズムを変更する必要がある。

まず、どのアルゴリズムが使用できるか、crypt.conf を確認する。
下記の例だと、「1」が「MD5」となっていることがわかる。 (2a: Blowfish, md5: Sun MD5, 5: sha256, 6: sha512)

・/etc/security/crypt.conf

   1: # cat /etc/security/crypt.conf
   2: #
   3: # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
   4: # Use is subject to license terms.
   5: #
   6: #ident  "@(#)crypt.conf 1.2     08/05/14 SMI"
   7: #
   8: # The algorithm name __unix__ is reserved.
   9:  
  10: 1       crypt_bsdmd5.so.1
  11: 2a      crypt_bsdbf.so.1
  12: md5     crypt_sunmd5.so.1
  13: 5       crypt_sha256.so.1
  14: 6       crypt_sha512.so.1

そして、policy.conf を編集する。

・/etc/security/policy.conf

CRYPT_DEFAULT=__unix__

  ↓

CRYPT_DEFAULT=1

この段階ではまだ、既存のパスワードは古い暗号化のままなので、パスワードを再設定する。

   1: # grep root /etc/shadow
   2: root:K6pbRTjC7L0A6:15122::::::
   3: # passwd root
   4: 新しいパスワード:「password1234」と入力
   5: 新しいパスワードを再入力してください:「password1234」と入力
   6: passwd: root のパスワードが変更されました
   7: # grep root /etc/shadow
   8: root:$1$z6atQD7B$3P25WD9Y/TC8ThO7l9u8D.:15122::::::

/etc/shadow を見ると暗号化アルゴリズムが変わり、セキュリティが強化されたことがわかる。

最後に、先頭8文字だけではログインできないことを確認。

   1: $ su -
   2: パスワード: 「password」と入力
   3: su: Sorry

 

参考:
http://pooh.gr.jp/?p=841
http://d.hatena.ne.jp/matoken/20090129/1233239258

0 件のコメント:

コメントを投稿