はじめに
M1 MAX の 32 CORE GPUモデルを購入したので性能を確かめがてらMD5の解析がどれだけ簡単に出来るかを身をもって感じようと思って今回 hashcatをインストールして使ってみました。
Hashcatとは
Hashcatとはパスワード等のHash化されたものをクラッキングできるクラッキングツールで総当たり攻撃などを簡単に実行できます。
Hashcatのインストール
今回はMacを使っているためHomeBrewを使ってインストールします。
Home Brewはすごく有名なパッケージ管理ツールなので説明は割愛します。インストール方法などはggったらめちゃ出てくるので各自ggってください。
以下のコマンドでインストールします。
brew install hashcat
使い方
基本は以下の通りに使用します。
hashcat -m <Hash-type> -a <Attack-mode> <Hashfile>
Hash-typeは数字で指定します。すべては説明しきれないので有名なハッシュ方式だけ下にまとめておきます。ここに無いものはHashcatのwikiを見てください。
0 | md5 |
100 | sha1 |
1450 | HMAC-SHA256 |
Attack-modeも数字で指定します。こちらは少ないので全て載せておきます。
0 | Straight |
1 | Combination |
3 | Brute-force |
6 | Hybrid Wordlist + Mask |
7 | Hybrid Mask + Wordlist |
9 | Association |
ベンチマーク
インストールも終わって使い方も学んだら一応今回の目的の一つである性能を確かめるためにhashcatに内蔵されてるベンチマークを実行してみたいと思います。
以下のコマンドで実行できます。
hashcat -m 0 -b
このコマンドでは指定したハッシュタイプのベンチマークを実行できて上の例ではMD5のベンチマークを実行します。
ちなM1 Max は 13259.8 MH/s でしたまぁノートPCにしては早い方ですね。
実際に解析してみる
さぁ実際にMD5で「password」という文字列をハッシュ化してHashcatでクラッキングしてみたいと思います。「password」をMD5でハッシュかすると「5f4dcc3b5aa765d61d8327deb882cf99」になるのでとりあえず今回はtest.txtという名前で保存して実行してみたいと思います。
hashcat -m 0 -a 3 test.txt
めちゃくちゃ早く解析終了しましたね!!
結構自分でもびっくりしていて昔セキュリティに詳しく無い時に作ったウェブアプリではパスワードをMD5だけでハッシュ化していたのでとても危険だったんだなぁと思いました。
終わりに
現在は本当に高性能なパソコンがかなりお手頃な価格で買えたりするのでハッシュに関してももっとしっかりしたものに変更する必要があることを実感しました。本当に早すぎてびっくりです。
皆さんもウェブアプリを作ることがあれば今の時代は当たり前にもなってきていますが、MD5だけで保存するのはやめときましょう。