無線LANのWPA/WPA2-PSKをGPUで超高速解析してパスワードを見つけるフリーのオープンソースソフト「Pyrit」
ATI Stream テクノロジー/Nvidia CUDA/OpenCLを駆使し、WPA/WPA2-PSKを突破するために必要となる巨大なデータベースを事前に作成することによって極めて高速にパスワードを解析できるのがフリーのオープンソースソフト「Pyrit」です。厳密なライセンスはGNU GPL v3となっています。
pyrit - WPA/WPA2-PSK and a world of affordable many-core platforms - Google Project Hosting
http://code.google.com/p/pyrit/
事前に巨大なデータベースを作成しておくため、ハードディスクの容量は割と必要となりますが、それとトレードオフで解析速度を高速化しようというアプローチになっており、FreeBSD・MacOS X・Linux上で動作し、MinGWを使うことによってWindows上でも動作します。以下からダウンロードすることが可能です。
Downloads - pyrit - WPA/WPA2-PSK and a world of affordable many-core platforms - Google Project Hosting
http://code.google.com/p/pyrit/downloads/list
WPA/WPA2の解析というのはPairwise Master Key(PMKと呼ばれる512bitのマスターキー、詳細はここの「2-2-1 WPA/PSK」以降を参照)をいかに素早く見つけるかという点にかかっており、この「Pyrit」がどれぐらい高速なのかというのは以下のグラフを見てもらえればわかるように、1秒で最大8万9000ものPMKを計算しています。PMKはPBKDF2-HMAC-SHA1によって生成される1MBのデータで、毎秒1万でPMKを計算するということは1秒でSHA1の9GB~8GBのデータをハッシュするのと同じ価値を持っています。
上記グラフは複数のPCを使ったノードが1つのデータベースに接続するという構成で行われており、図にすると以下のようなマップになります。
さらにハイエンドなシステムを組めばさらなる高速化が可能で、例えば以下のムービーでは毎秒28万もの速度を「ATI Radeon HD 5970」4枚差しで実現しています。
YouTube - 4 x ATI Radeon HD 5970 (8 GPU's) Pyrit Benchmark
中にはMySQLクラスターを使ってこのようなとんでもないシステムを組み上げるケースも。
Pyrit setup - ivc wiki
http://beta.ivc.no/wiki/index.php/Pyrit_setup
以下のページにたくさん写真があります。
Pyrit cluster - ivc wiki
http://beta.ivc.no/wiki/index.php/Pyrit_cluster
実際に動かしている様子のムービーはコレ。
YouTube - Pyrit MySQL Cluster Batch
さらなる強者はPlayStation3のCELLプロセッサでも動作させることに成功しています。
YouTube - pyrit: OpenCL + PS3
Pyritとaircrack-ngを組み合わせてWPA2 AESを突破するというムービーもあります。
YouTube - Cracking WPA2 AES with pyrit and aircrack-ng suite
通常のインストール方法は以下に記載されています。
Installation - pyrit - How to get Pyrit working on your system. - WPA/WPA2-PSK and a world of affordable many-core platforms - Google Project Hosting
http://code.google.com/p/pyrit/wiki/Installation
実際に使う手順についても丁寧なチュートリアルが用意されており、以下のWikiにまとめられています。
Tutorial - pyrit - First steps and tutorial - WPA/WPA2-PSK and a world of affordable many-core platforms - Google Project Hosting
http://code.google.com/p/pyrit/wiki/Tutorial
また、リファレンスマニュアルも完備されています。
ReferenceManual - pyrit - Reference manual for the commandline-client - WPA/WPA2-PSK and a world of affordable many-core platforms - Google Project Hosting
http://code.google.com/p/pyrit/wiki/ReferenceManual
なお、実際にGPUを搭載したマシンを作るのが面倒だという人向けに、Amazon EC2のGPUインスタンスを使って毎秒5万PMKをマークし、なおかつその際のEC2セットアップスクリプトを配布している猛者もいます。
WPA Cracking ON EC2 GPU Instance 50000 PMKs/s on Vimeo
・つづき
無線LANのWPA/WPA2-PSKを総当たりで突破する「Pyrit」の実際の解析速度と自衛手段について
・関連記事
無線LANのWEP/WPAキーを表示するフリーソフト「WirelessKeyView」 - GIGAZINE
無線LANの速度が遅いという問題を解決するための5つの方法+α - GIGAZINE
無線LANが不安定な原因「チャンネル干渉」を調べるのに役立つフリーソフト「inSSIDer」 - GIGAZINE
Windowsで動作可能な無料の無線LANパケットキャプチャ「Omnipeek Personal」 - GIGAZINE
・関連コンテンツ