はじめに
先日、Youtube動画を見ていた時、たまたま面白い動画を見つけました。エンジニアであれば興味を引く方が多いかと思います。
今、放送中の「半沢直樹」で重要なファイルにかかっているパスワードを解析するというシーンがあったようですね。管理人はドラマを見ていないので詳細はわかりませんが、動画を見るとパスワードの条件は2つありました。
- パスワードは6桁
- 英数字の組み合わせ(英字は小文字のみ)
この条件でパスワードを解析するのに1からプログラムを作成してどれくらいの時間で解析できるのかというものです。この企画は面白かったです。興味があればぜひ動画を見て下さい。
で、管理人も元プログラマーなのでこういう動画を見ると真似したくなるんですよね。自分だったら何の言語を使おうかとか、どういうロジックで組もうかとか、 現役バリバリの人と比較して自分はどれくらいでできるのかとか。
管理人がプログラマーとして現役だったのはもう数十年前ですが、こういう動画に触発されるということは、根っからのプログラマーなんだなとしみじみ感じます。
最近は仕事でPowerShellを使っているので、PowerShellを使うことにします。Windows10のPCを使っていたら環境構築しなくてもそのまま使えるのでお手軽です。
動画では、パスワードの解析は総当たり攻撃を使っています。専門用語ではブルートフォースアタックと呼ばれているやり方です。このロジックは単純で使用する英数字の組み合わせを全パターン試していきます。
管理人がPowerShellでプログラムを作成してパスワードを解析した結果、かかった時間は以下の通りでした。
プログラム作成:15分
パスワード解析:1時間21分
「遅っ!」
動画と比べるとパスワード解析にずいぶん時間がかかりました。なんで?と思って動画内のソースを見てみるとPythonで「itertools」を使っていました。便利なものがあるんですね。PowerShellで同じことってできるのかな?
まあ時間はかかるけど、どんな言語でも簡単に作成できるということがわかりました。だからこそパスワードはしっかり設定しないと簡単に盗まれてしまいます。
ではパスワードをどう設定するかというとIPAのサイトを見てもらうのが早いです。
https://www.ipa.go.jp/chocotto/pw.html
パソコンのスペックはどんどん高性能化しているし、より短時間で処理する方法もいろいろあります。油断すると本当にパスワードを盗まれるのでパスワードはしっかり設定しましょう。
コメント