一昨日の宿題を片づける。と言ってもC++なCGIで、setuidしてからvida-passwdを起動するように改造しただけなので小一時間で終了。安易にsetuidしていいんかなぁとも思ったが、シンプルisベストという考えもあり、取り敢えずこれでいいのだ。という事で。
セキュリティ初めの一歩 / 2002-11-24 (日)
という事でパスワードについて。自分の名前やアカウント、また誕生日や電話番号などは個人情報(家族も同じ)から、地名やクルマの名前等の固有名詞は辞書アタックで、すぐにバレてしまうのでパスワードの意味が無いというのはご存じだと思う。
11/19 竈門神社にて |
基本的に数字のみはもってのほかで、英数字できれば記号も含めて6文字以上の文字列が望ましいと言われているのだが、そうは言っても毎日欠かさず入力するような頻度ならばともかく、すぐ忘れちゃうような無意味な文字列をパスワードにするのもまた現実的ではないと言えよう。いくら類推し辛い文字列と言っても短ければブルートフォース(総当たり)でバレてしまうのは時間の問題だし、パスワードを付箋紙に書いてモニターに張りつけたりしたらそれこそ意味ないじゃん、って事。
そういう面からも一般人のパスワードとしてはそれなりの意味を持たせた長めの文字列が適していると思う。例えば"yamada//taro"等と氏名の間や前後に記号や数字を入れるだけでも単純な辞書検索ではマッチしなくなるので、個人情報や身近な人から類推できない情報を組み合わせてパスワードにする事をオススメしたい。
例えば現在はあまり関係を知られていない知人の情報。とは言ってもありがちな名前は人名辞書などもあるので、そう言う場合はニックネームや電話番号でもいいと思う。無意味な英数字が並ぶniftyのユーザーIDなんかはまさに持ってこいと言えよう。
というわけで個人的には「類推されにくい旧知の2人のユーザIDを記号で囲って数字で繋ぐ」という形式で16桁のパスワードを採用している。確かに慣れるまで入力するのは面倒だが、忘れにくい意味を持たせたパスワードとしてはかなり強固と言えよう。その上、数字を毎月変える事によって更に万全度も高まるのだ。
最初は6桁くらいでも良いと思うので、これまでの話を踏まえて2つ以上のキーワードと数字か記号を組み合わせた英数字混じりのパスワードを使うようにオススメする。英数字と言っても"Windows2000Pentium4AthronXP"等、意味の通じるキーワードだけの組み合わせは辞書アタックで簡単にバレるので、必ず記号を組み合わせる事を忘れないように。
でももっともセキュリティ面で重要なキャッシュカードやクレジットカードが数字4桁というのはかなり不安なんだよなぁ。
参照
●ITmedia How-To
-第7回:「パスワードクラッキングの現実性」
●@IT:LinuxTips
-パスワードが安全か調べるには(John the Ripper編)