2018年4月6日金曜日

トレンドマイクロが危険なパスワードの作り方を日テレに吹き込み報道させる

このエントリーをはてなブックマークに追加
Pocket

日本テレビが、内閣サイバーセキュリティセンターなどが推奨するパスワード作成方法では、できたパスワードが複雑で難しいからと言って、情報提供:トレンドマイクロで「覚えやすくて安全なパスワードをつくるためのワザをご紹介」しだしたのだが、法則が単純すぎて攻撃者に推測されやすいし、実際にこれを想定した辞書式攻撃が散見されるので、ちょっとまずい。

日テレが紹介しているマズイやり方は以下。このルールで生成していると知っていたら、すぐに当たりがついてしまう。

まずは、記号や数字を入れるワザ。これはアルファベットのかわりに似た記号を使うというもの。

「a(エー)」のかわりに「@(アットマーク)」
「i(アイ)」のかわりに「!(ビックリマーク)」
「o(オー)」のかわりに「0(ゼロ)」
「l(エル)」のかわりに「1(いち)」とします

例えばこの法則を使って「social」を入れ替えると「s0c!@1」になります。

続いては、英単語などではない推測できない文字列にするワザ。これは覚えやすい文字列をキーボードで1列ずらすというもの。例えば「NTV」なら「BRC」となります。

代案としてセキュリティ研究者の高木浩光氏は、単語3文字をつなげることを推奨しているが、実用上、長い単語が使えず辞書攻撃を受ける可能性があること、周囲がチラ見するぐらいで類推できてしまう可能性が高まることから、安全とは言えない。単語をしっかり乱択せず、"dogs and cats"のようなパスワードを作る人も出てくる。8~12文字程度の長さの入力しか許さないシステムも多いし、Apple IDなどはアルファベットだけでは強度が低いと拒絶してくる。

愛車のナンバーにしていても、配偶者の名前にしていても、はたまた1111…のようなパスワードでも破られないときは破られないのだが、風聞で悪意のある同僚などに突破される事例も聞かなくもない。もう少し、真面目に作成方法を考える必要がある。やはり、乱数でパスワードを生成するのが望ましい*1。10文字ぐらいのパスワードであれば、乱数生成でも意外と楽に覚えられる

乱数生成のやり方は、目を瞑ってASCIIコード表を指さし数字かアルファベットであれば採用することを繰り返しても、本を無造作に開いてページ番号を62で割って余りを出したり、プログラムを書いて0~61までの数字を出して、数字とアルファベット大小を対応させても良い。私はRでコードを書いて生成している*2。なお、MS-Excelの乱数は線形合同法で偏りが激しいので、非推奨。

大事なことだが、サービスごとにパスワードは分ける事を怠ってはならない。たまにアホなサービスが、顧客のパスワードを流出させる事がある*3。覚えるのはつらいと思うかも知れないが、暗号化してくれるパスワード管理ソフトに保存しておけば、大量のパスワードを覚える必要はない。なお、パスワード管理ソフトに依存する場合、ドライブ故障で致命傷になるので、バックアップは忘れずに。

*1乱数で文字を選ぶ方が同じ長さで高い強度になる。大雑把な計算だが、同じ組み合わせの数と言うかエントロピー量を得るには、アルファベット大小と数字から文字を乱数で選ぶ方が、6万語の辞書から無作為に単語を選ぶ3分の1の文字数で済む。

*2Rでパスワードを作る - 餡子付゛録゛

*3パスワードを平文で保存している所は減ったと思うが、ハッシュ化してあっても漏洩すれば試行回数は無制限に近くなるので、破られるのは時間の問題になる。ハッシュ化アルゴリズムが新しく強度のあるものでは破られるのは100年以上後になるであろうが、開発を請け負ったプログラマが悪意のコードでIDとパスワードを盗み取るケースや、偽サイトに間違って入力するケースもある。

0 コメント:

コメントを投稿