カテゴリー
セキュリティ

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

カテゴリー
技術

アナログなメーターをデジタルなネットワークに接続する

従来の機器についたメーターが示すデータをネットワークで利用するためにカメラと画像認識を組み合わせるという話、つい最近も新型コロナウイルスのワクチンを低温で保管する冷凍庫の温度監視という文脈でNHKニュースで紹介されて話題となってました。

メータのデータは内部に存在するのだから、データを直接取り出すのが技術的には筋が良いように思います。しかし、既存の冷凍庫をこのために新しいものに置き換えるのは費用が掛かるし、別の冷凍庫を監視したくなったらそちらに対応するにはまた別の接続ツールが必要となるでしょう。

人間が読み取る目的のメーターをカメラで読み取るという、一見無駄のあるソリューションにもそれなりの利点があるというわけです。

ピート・ワーデンさん(Pete Warden)がブログで紹介しているのも、そんなメーター読み取りの事例です。

アナログ式のメーターの上にかぶせる形でカメラをつけ、そこからメーターの最新の画像を入手し、

画像中の数字や文字、針の向きなどをソフトウェアで解析して、

メーターで表示されている情報を取り出せます。

あわせて10ユーロもしない IoTマイクロコントローラ ESP32 の載ったマイコンボードと200万画素のカメラモジュール OV2640 の上で、畳み込みニューラルネットワーク(CNN)を作り、文字盤や針を読ませることができているそうです。ソフトウェアは jomjol/AI-on-the-edge-device で公開。

このマイコンボード上からWebインタフェースで読み取り結果を公開してるので、読み取った結果を蓄積するもグラフ化するも、異常値を見てアラートを上げるのも自由ですね。

もちろん同様の商用のソリューションはいろいろあるようですけど、それなりの価格はしそう。安価なマイコンボードと自作ソフトウェアでもここまでできるんですね。

カテゴリー
技術

Gently down the stream – Apache Kafka の動く絵本

Gently Down the Streamは、Apache Kafka がどういうものであるかを紹介する、動く電子絵本です。

Kafka は、大量のイベントストリームを処理するためのオープンソースのプラットフォームで、もともとは LinkedIn が大量のユーザーの行動データをリアルタイムに処理分析してニュース通知などに反映する目的で作られたものだそうです。メッセージキューと似てるように聞こえますが、処理量や処理速度に対応するために特化改良されているそう。

自分も一見では「メッセージキューのツール?」ぐらいにしか思っていなかったので、Kafka だからこそできること、みたいなのを説明するためにこの絵本が生まれたのかもしれません。

ストーリーは、森に住むカワウソたちがお互いの家族間でニュースを広めあい共有するという世界観の中で、家族が増えたり共有したい情報がどんどん増えていくことで様々な問題が起こるところから、

家族が直接ニュースを伝えに行き来するところから、ニュースを伝えるメッセンジャーの導入。そして森の中の大河である Kafka川を、支流ごとに Topic に分け、そこで Producer と Consumer に分かれてイベントの投入と受け取りを分離する、Topic に流れるイベントがさらに増大した際に Topic を分割する Partitions 、といった概念を、カワウソで説明してくれます。

「これで完全に解ったのか?」と言われるとそこまで自信はないのですが、Kafka で使われる概念や用語について、読む前よりは少し知ることができたように思います。

なお、Apache Kafka については以下の記事も参考にしました。