カテゴリー
セキュリティ

kwprocessor – パスワード推測のためのキーボード・ウォーク・ジェネレーター

hashcat/kwprocessor は、キーボード上で上下左右に図形を描くことで作れるタイプのパスワード文字列を類推し、総当たりのリストを生成するためのジェネレーターです。

キーボード配置から作ったよくあるパスワード

昔からよくあるパスワードの作り方として、例えば “qwerty” なんていうのがあります。キーボードの左上から順番に右へ一文字ずつ打っていくとこうなりますね。大昔はこれでも「ランダム」で「推測されにくい」パスワードだったのかもしれません。

しかし、とある2020年のありがちなパスワード・ランキングだと、”qwerty” はなんと12位。”1234″ や “000000” よりも良く使われ、そして当然ながら流出しているそうです。

他にもこのパターンのものが多数ランク上位に出ているようです。

キーボード配置からパスワードを作る

「横一列だから甘いんだ。縦も横も使えば難しいパスワードが作れる」と言う人もいるかもしれませんが、本当でしょうか?

kwprocessor は、キーボード上で縦・横にキーを選んでいった際にできる文字列を生成するというツールです。

この図だと、q から始めて右に3個、下に1個、左に3個、という逆コの字型の並びを示すわけですが、kwprocessor はこのような並びでできる文字列を一括で生成してくれます。

ubuntu$ ./kwp --output-file results.txt basechars/q.base keymaps/en-us.keymap routes/2-to-16-max-3-direction-changes.route

これで出来上がるのが以下のようなファイル。1200行ほどの冒頭です。

qa
qw
q1
qaz
qwe
qwer
qwert
qwerty
qwertyu
qwertyui
qwertyuio
qwertyuiop
qws
q1q
qwq
q1`
qas
q12
qaq
qw2
qwsx
q1qa
qasd
q123
qaq1
q1qaz
qasdf
q1234

「キーボードの”q” を起点とし、英語(米国)キーボードで、2~16字までで2回方向を変えた文字列」 を返してくれます。

コマンドに与えているパラメーターファイルですが、

basechars では”q” だけでなく起点となるキーを多数指定することができます。

keymaps ではキーボード配列をカスタマイズできます。ドイツやロシアのキー配列ファイルも用意されていますし、日本語配列を作ることもできるでしょう。

routes ファイルでは上下左右へいくつ動くか、という移動パターンを数字列として複数与えます。一直線や往復、コの字型などのパターンは最初から用意されていますし、独自のパターンを作って与えることもできます。

コマンドラインオプションでは、シフトキーを押した場合やAltキーを押した場合(ウムラウトとかの出力につながるそう)を含めるようにもできているため、途中で大文字や記号を混ぜるという操作をして作られたパスワードも再現できるでしょう。

これらのパターンから自動生成されたリストを有り得るパスワードのリストとして使うことで、総当たりよりもはるかに少ない試行回数でパスワードの発見と突破ができるかもしれません。

この手のパスワードの作り方を今でもしている人がいたら、やり方を変えた方が無難でしょうね。

via Hacker News

カテゴリー
fun

エクセルのフラッシュ・フィル機能でフェベット・フェクソン

マイクロソフト・エクセルのフラッシュ・フィルは、既存のセル内の値から埋めるべき値を推測してくれるという便利機能です。

月名の推測

このように、月の名前の略語が並んでいたとして、次の列に “January” と正式名称を入れます。そして2行目で “F” を打った瞬間、1行目の法則性を見て残りを埋めるための提案をしてくれます。

動作からするとこういうことでしょう。

  1. 一行目では”JAN” が “January” になった。
  2. つまり、ユーザーは1行目の2,3文字目を小文字にして、うしろに”uary”をつけようとしている
  3. 2行目からも同じ変換をして提案しよう

こうして、”February” は “Febuary” になり(おしい!)、”March” は “Maruary” になりました。

人名の推測

こんどは “JAN” の右の列に “Janet Jackson”(ジャネット・ジャクソン) と打ちます。すると、2行目に F をタイプした時、こんどは以下のような推論をしてくれます。

JAN → Janet, JAN → Jackson というルールを見出したエクセルは、フェベット・フェクソン、マエット・マクソン、ノベット・ノクソン など12人のそれっぽい名前を提案してくれました。

日本語の推測

日本語でも動くと面白いのですが、日本語のタイプにはIME が絡んできて、なかなか面白いフラッシュフィルを披露してくれません。補完はしてくれても、日本語の確定キーと衝突してしまい提案された値をフィルできなかったりという問題もあります。

ローマ字で入れれば、もちろん日本語だろうとなんだろうと補完しようとしてくれるのですが… あまり面白いものも思いつかず。

via reddit

カテゴリー
ネットのサービス

テレパスワード – あなたのパスワードの陳腐度を当てるサービス

マイクロソフト研究所の公開したTelepathwords (Telepath + Password)は、あなたが入力した弱いパスワードを警告して当てる実験サービスです。

telepathwords

テキストボックスに、パスワード候補としたい文字列を打ち込んでいくたびに、このサービスが、「次にこの字を使おうとしてるでしょう?」と、3つの候補を表示してきます。

このサービスでは、辞書にある文字列や、よくパスワードに使われる文字列をデータベースとして持っており、それと照合することで、次にユーザーが入れそうな文字を予測するということです。o(オー)を0(ゼロ)に置き換える、ような単純なものも、ちゃんと予測してきます。

予測できてしまうような文字を入れた場合、入力した文字の上に赤いバッテンが表示されます。弱くないパスワードとされるには、×のつかない文字を5つ以上含ませる必要があります。ポケモンのモンスター名のほとんどを知っているなど(英語の名前は違うものも多いでしょうが)、いろんな辞書を持っているようです。

海外のサービスなので、たぶん英語の辞書を中心にチェックしているのだと思います。今は、日本語をローマ字で入れたら、推測されることはかなり減ります。

telepathwords-tokyo

サービスでは、マウスの動きや、文字を打つ間の時間なども測定しており、今後の研究に生かすとしています。

今でも、パスワードを設定するフォームにおいて、あまりにも簡単なパスワード(“1234″とか”password”など)は受け付けなかったり、辞書にある単語だけ入れたら「パスワードが弱い」と警告したり、というフォームは多いですが、そういうところでユーザーが入れようとしたパスワードを先読みして教えるというのは、単純すぎるパスワードを使おうとする利用者への警告の役割を果たすかもしれないですね。

via Telepathwords: How Bad are Your Passwords?