よく現場で端末の作業をした後に、ユーザーにログインしてもらうのですが、見ないようにしていても、やっぱり手の動きを見てしまうのです。
そうすると、ログインに必要なパスワード入力時の手の動きが単調なことがおおいです。
ある人なんて、テンキーしか押していない・・・。
パスワードというもの、いかに大事で、しかも難しく、自分にしかわからないようにしましょうと啓蒙したところで、そのパスワードの強度というものが客観的に見えるようにしないと、ピンとこないようです。中には数字4ケタでも十分なパスワードと思い込んでいる人もいます。
そこでよく有名サイトなんかでパスワード設定時に出てくる(弱)~(強)のインジケーターを示すものでチェックしてもらいましょう。
ネット上では
マイクロソフト パスワードチェッカー
インテル How Strong is Your Password?
カスペルスキー パスワードチェッカー
が有名でしょうか。
でも、パスワードチェッカーをイントラネット上で行いたい!とか、いくら有名でもパスワードを送信するのはちょっと・・・・という方は、オープンソースのパスワードチェッカーである、zxcvbnを使って簡単なパスワードチェッカーを作ってみましょう。
zxcvbnはdoropboxが製作し採用しているパスワードチェッカーのようで、
最も効果的であるとの評価もあるようです。
ダウンロード先や、作り方についてはこちらを参考にしました。
さて、まずはzxcvbnをダウンロードします。
githubはダウンロードがわかりにくいですね。
こちらから。
windowsであれば、zipをダウンロードします。
今は、バージョン1.0。そのまま解凍すると、zxcvbn-1.0というフォルダができるはずです。
そのままどこかの適当なフォルダに入れてしまいましょう。
で、そのフォルダに、以下のhtmlファイルを作り、保存しておきます。
----------------------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>パスワードチェック</title>
<script type="text/javascript"
src="zxcvbn-1.0/zxcvbn.js"></script>
<script type="text/javascript"
src="zxcvbn-1.0/zxcvbn-async.js"></script>
<script type="text/javascript"
src="zxcvbn-1.0/jquery.js"></script>
<SCRIPT type="text/javascript">//<![CDATA[
jQuery.noConflict();
jQuery( document ).ready(function( $ ) {
$('#password').keyup(function() {
$('#result').html('');
$('#resultDetail').html('');
var passwdValue = $(this).val();
var result = zxcvbn(passwdValue);
traverse(result);
});
function traverse(o) {
for (i in o) {
if (typeof(o[i]) == "object") {
traverse(o[i]);
} else {
$('#resultDetail').append("<tr><th>" + i + "</th><td>"+ o[i] + "</td></tr>");
switch(i){
case 'crack_time':
$('#result').append("<tr><th>推定クラック時間 (秒)</th><td>"+ o[i] + "</td></tr>");
break;
case 'crack_time_display':
$('#result').append("<tr><th>推定クラック時間</th><td>"+ o[i] + "</td></tr>");
break;
case 'matched_word':
$('#result').append("<tr><th>パターンマッチ文字</th><td>"+ o[i] + "</td></tr>");
break;
case 'score':
switch (o[i]) {
case 0:$('#resulttext').html("■(警告)");
$('#resulttext').css('color', 'red');
break;
case 1:$('#resulttext').html("■■■■■(注意!)");
$('#resulttext').css('color', 'orange');
break;
case 2:$('#resulttext').html("■■■■■■■■■■(弱)");
$('#resulttext').css('color', 'yellowgreen');
break;
case 3:$('#resulttext').html("■■■■■■■■■■■■■■■(中)");
$('#resulttext').css('color', 'green');
break;
case 4:$('#resulttext').html('■■■■■■■■■■■■■■■■■■■■(強)');
$('#resulttext').css('color', 'blue');
break;
}
//$('#resultimg').html("<img src='/dam/agilegroup/img/technote/security/score" + o[i] + ".png'>");
$('#result').append("<tr><th>スコア ( 0 - 4 : 4が最も強い )</th><td>"+ o[i] + "</td></tr>");
}
}
}
}
});//]]>
</SCRIPT>
</head>
<body>
<h1>パスワードチェック</h1>
<div class="bline">
<p>パスワード:<br>
<input name="password" type="password" id="password" />
</div>
<H2>結果</H2>
<DIV id="resulttext" style="margin: 0.5em 0px; font-size: 200%; font-weight: bolder;"></DIV>
<TABLE border="1">
<TBODY id="result"></TBODY></TABLE>
<DIV>
<p>詳細</p>
<TABLE border="1">
<TBODY id="resultDetail"></TBODY></TABLE>
</DIV>
</body>
</html>
--------------------------------------------------------------------------
説明は・・・・、わかる人はわかりますよね。そんなに難しくないと思います。
ちなみに、パスワードの辞書は zxcvbn.jsに
u=[p("passwords",q("password,123456,12345678,1234,・・・
てな具合に書かれています。欧米系のパスワードばかりなのでたとえば自社の電話番号とか使いそうなパスワードを追加しておくとよいでしょう。
そして、意外な言葉も入っています(sonyとかtoyotaとか・・・)。なるほどもはや自分で考えるパスワードは危ないということですね。
[0回]
PR