カテゴリー
セキュリティ

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

カテゴリー
UIデザイン

パスワードを決める画面でのアホなルールを集めたリポジトリ dumb-password-rules

dumb-password-rules/dumb-password-rules

パスワードの登録や更新画面で出てきたおかしな制約やエラーを募集している GitHub リポジトリがあります。

あほなパスワードの文字制限を分類

多数の事例が載っていますが、代表的なものをグループ化してみます。

文字種や記号を謎に制限

「% は使えません」「\ は使えません」 – 内部でエスケープしちゃうんですねわかります。ちゃんと作ってあればこんな特例要らないと思うんですが。

「記号で使えるのは ? ! $ €% & * _ = – +. ,:; / () {} [] ~ @ # だけです」

「記号はアンダースコアとハイフンだけ使えます」

「数字や記号は使えません」

「使える記号がありますが、どの記号が使えるかは秘密です」

「パスワードは5-15文字です(が、スペースは文字数としてカウントしません)」

「パスワードに使えない記号は、あなたがそれを入れてみた時だけエラーで教えます」

「パスワードは数字8桁で、0で始まってはいけません」 – 数値型か

「#, %, &, =, /, < などのハッキング文字は使えません」 - ハッキング文字!

長さ指定系

「パスワードは8,9,10文字でなければいけません」

「パスワードは7文字か8文字でなければいけません」

「パスワードは6文字です」 – ATMの暗証番号か

「パスワードは6文字以上です (あとどこにも書いてませんしエラーの原因にも出ませんが最大20文字です)」

「メールアドレスは8文字以上にしてください」 – ユーザーのメールアドレスで選別するの?

「登録フォームのパスワードは最大24文字ですが、実際に使われているパスワードは最初の16文字です(更新フォームで判明)」

技術で解決系

右クリックや Ctrl キーを効かなく(alertが出る)することで、パスワードマネージャーの利用を防ぐ

パスワードを入れる箇所が2か所あるが、コピペやChrome拡張からの自動入力を不可能にすることで、パスワードマネージャーの利用を防ぐ

「パスワードは120日ごとに変更しなければならず、一度使ったパスワードは二度と使えません」

総合力タイプ

「パスワードには記号を含めてください。パスワードには記号は使えません」 どうしろと

「とにかくルール、ルール、ルール!」


顧客や上司がパスワードの文字種について不思議提案をしてきた時に、この事例集を見せて「その発想、やっちゃダメなやつだと笑われてますよ」と言ったら説得できるかもしれません。

via Hacker News

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

LockScream – MacOS X のロックスクリーンを偽装してパスワードを横取りするツール

悪用しか使い道が無いように思えますが、GitHub で公開されてて入手できるツールです。

LockScream は、Mac で動かすと本物のスクリーンロックに代わって画面をロックするツールです。

起動すると OS に設定した本物の壁紙を表示し、メニューやドックを非表示にし、いろいろなキー入力を無効にします。画面を見ていつものロック画面だと思い込んだユーザーは、ロックを解除しようとパスワードを入れるわけですが、この LockScream がその入力されたユーザー名やパスワードを横取りできてしまえるというわけです。

パスワードはこのツールの裏側で本物のOSに問い合わせられるため、ユーザー名・パスワードが合っているかどうかも正しく判定でき、でたらめなパスワードでは(本物と同じように)エラーになります。動作も本物と同じため、パスワードを奪われたこと自体に気づくこともないでしょう。

横取りしたパスワードは特定のファイルに XOR + Base64 エンコードされて保存されるので、後でこのファイルを回収すれば、所有者のユーザー名/パスワードが入手できてしまいます。

仕込む際と取得したパスワードを回収する際の2回、アンロック状態のMac にアクセスできないといけないので、うかつなユーザー相手でなければそんなに誰でもが引っ掛かるわけではない、かもしれません。

攻撃者としては、ウェブからダウンロードさせて仕込むとか、回収したパスワード情報をネット経由でどこかに送信させるとか、複数の手法を組み合わせることで盗むよう全体を設計するのでしょうね。

ここまで偽装されると、ロック画面がニセモノだと気づいて回避できるかどうか自信がありません。こういったツールが仕込まれないように、アンロック状態でPCを放置しない、がまず重要かと思います。