SUSE Linux でパスワード強度を調べる

パスワードの脆弱性をチェックするツールをご紹介します。

一番、翼使われるのは John the ripper のようです。
SUSE Linux Enterprise には標準で導入されないため、openSUSE のリポジトリを使って導入することができます。
software.opensuse.org のサイトから Search > "John" で 1Click インストールできますので、これで、SLES11 関連のセキュリティ関連へのレポジトリも自動作成されます。

http://software.opensuse.org/package/john

SUSE Linux でパスワード強度を調べる_a0056607_16264816.jpg


ここでは John the ripper の使い方は説明しません。いろいろ解説した記事があるので探してみてください。ここではあくまでも SUSE(SLES) 用にレポジトリを追加するために 1 Click インストールしただけです。

YaST > Software > Software Repositories で Security というレポジトリが追加されています。
SUSE Linux でパスワード強度を調べる_a0056607_1946447.jpg


リポジトリが追加されたら nkmkpasswd と cracklib-check を YaST > Software > Software Management より Search してインストールします。

※ 2013/8/20 なぜか nkmkpasswd はリポジトリから削除されたようです。

SUSE Linux でパスワード強度を調べる_a0056607_16294095.jpg


SLES11 では nkmkpasswd を使います。openSUSE では makepasswd が標準でインストールされるようです。


-makepasswordとnkmkpasswd-


このツールはランダムな文字列を提示して「こんなパスワードどうですか」と提案します。

- nkmkpasswd

デフォルトでは Very Hard(vhard) な 10 文字のランダムな文字列が作成されます。


sles11:~ # nkmkpasswd --help
nkmkpass v0.0.2 - Copyright (c) 2008, Nigel Kukard

Usage: /usr/bin/nkmkpasswd [args]
--strength= Strength of generated string (vhard)
--length= Length of generated string (10)
--type= Type of string to generate
--passphrase-words= Number of words to generate (4)
--passphrase-wordlen= Word length (3:5)


まずはデフォルトで


sles11:~ # nkmkpasswd
nkmkpass v0.0.2 - Copyright (c) 2008, Nigel Kukard

Result: fnaJv(]B(P

かなり厳しそうです。


簡単な8文字のパスワード


sles11:~ nkmkpasswd --strength easy --length 8
nkmkpass v0.0.2 - Copyright (c) 2008, Nigel Kukard

Result: 6tcg23qe
sles11:~

まぁ許せるかな。


やや難しい10文字のパスワード


sles11:~ # nkmkpasswd --strength hard --length 10
nkmkpass v0.0.2 - Copyright (c) 2008, Nigel Kukard

Result: CReSst5nDN
sles11:~ #

ISPなどの初期パスワードはこのくらいでしょうか。


- makepasswd

ちょっと使い方は面倒でした


sles11:~ # makepasswd --help
makepasswd: invalid option -- '-'
Usage: makepasswd [-ceilMmnps]
Usage: makepasswd -E [-ceilMmns]
-c String of allowed characters (A-Za-z0-9`~!@#$%^&*()-_=+)
-E Enumerate all possible values
-e Encryption algorithm (none,base64,blowfish,des,md5,sha1,sha256,shmd5)
-i Number of iterations in encryption algorithm
-l Password length
-M Maximum password length
-m Minimum password length
-n Number of passwords to generate
-p Password to use
-s Salt to use
sles11:~ # makepasswd -c A-Z
-ZA----   <--- A-Z を指定したら本当に A-Z だけのパスワードを提案した。
sles11:~ # makepasswd -c abcdefghijknlmopqrstuvwxyz0123456789
xf7mk3d <--- こちらの方が良さそう。
sles11:~ #


-cracklib-check によるパスワード強度のチェック-

利用するパスワードには脆弱性があるのかないのかをチェックするツールです。

sles11:~ # cracklib-check
qwerty
qwerty: it is based on a dictionary word <-- 辞書にある単語
12345678
12345678: it is too simplistic/systematic <--- システマチック過ぎる
123:456
123:456: it is based on a dictionary word <-- これも辞書にある
9*9-1=80
9*9-1=80: OK <--- 数式を入れてみました。
password
password: it is based on a dictionary word <-- 一番良くあるパスワード
test
test: it is too short <--- テストじゃ短すぎ
10+22=32
10+22=32: OK <--- またまた数式
jackjohn
jackjohn: OK <-- よくある名前の組み合わせ、以外と通った。
joker
joker: it is too short
toyota
toyota: it does not contain enough DIFFERENT characters <--- t と o が被っているということでしょう。
japan
japan: it is too short
japanese
japanese: it is based on a dictionary word <--- 辞書にある単語
newyork
newyork: it is based on a dictionary word <--- 街の名前は駄目
NewyOrk
NewyOrk: it is based on a dictionary word <-- 一文字を大文字にしても駄目
london1st
london1st: it is based on a dictionary word <--- やっぱり駄目
paris&london
paris&london: OK <---- 町の名前を&で組み合わせは良さそう
^C <---- ^C で終了
sles11:~ #

あくまでも目安である事は心して置いてください。 london&paris を使っているユーザが tokyo&osaka を使うだろうという「予測」も出来上がるわけで、そうなるとパスワードリストを更新して辞書更新されてしまうということです。

昨今、パスワード使いまわしによるハッキング被害が増えています。どうせ覚えきれないアカウントとパスワードを記憶だけで管理することを「パスワード根性論」と私は思っています。古い UNIX システムや、メインフレームだとはじめの8文字しかチェックしないので、パスワードは6文字から8文字程度がよい、と思っていましたがいまはその考えも古そうですね。


islandcenter.jp



国内導入実績No.1*セキュアでインテリジェントな統合アイデンティティ管理ソリューション

-keyword-
SUSE SLES opensuse パスワード 提案 脆弱性チェック
by islandcenter | 2013-08-19 16:40 | SUSE | Comments(0)