
高性能な、位置ごとに設定可能な文字セットを備えたワードジェネレーター
位置ごとに設定可能な文字セットを持つ高性能ワードジェネレーター
ブルートフォース攻撃と同様に、指定されたキースペースからすべての組み合わせを試すが、より特化している。
従来のブルートフォースに固執せず、これを行う理由は、パスワード候補のキースペースをより効率的なものに削減したいからである。
簡単な例を挙げる。パスワード「Julia1984」をクラックしたいとする。
従来のブルートフォース攻撃では、すべての大文字、すべての小文字、すべての数字を含む文字セット(別名「mixalpha-numeric」)が必要となる。パスワード長は9なので、62^9(13,537,086,546,263,552)通りの組み合わせを反復処理しなければならない。クラック速度を100M/sとすると、完了までに4年以上かかる。
マスク攻撃では、人間のパスワード設計方法について知っている。上記のパスワードは、名前とそれに付加された年号という単純だが一般的なパターンに一致する。また、攻撃を設定して、最初の位置にのみ大文字を試すこともできる。2番目や3番目の位置にのみ大文字が現れることは非常に稀である。要するに、マスク攻撃ではキースペースを522626262610101010(237,627,520,000)通りの組み合わせに減らせる。同じクラック速度100M/sであれば、完了までにわずか40分しかかからない。
存在しない。上記の例は非常に特殊であると主張することもできるが、それは問題ではない。マスク攻撃でも、ブルートフォース攻撃とまったく同じキースペースを使用するようにマスクを設定できる。重要なのは、その逆は不可能であるということだ。
生成されるパスワード候補の各位置に対して、プレースホルダーを設定する必要がある。クラックしたいパスワードの長さが8の場合、マスクは8個のプレースホルダーで構成されなければならない。
4つのカスタム文字セットを設定するための4つのコマンドラインパラメータがある。
これらのコマンドラインパラメータには、-1、-2、-3、-4と呼ばれる4つの類似したショートカットがある。コマンドラインで直接文字を指定できる。
マスク攻撃は常に特定のパスワード長に特化している。たとえば、マスク「?l?l?l?l?l?l?l?l」を使用する場合、長さ8のパスワードしかクラックできない。しかし、クラックしようとするパスワードの長さが7の場合、見つけることはできない。そのため、毎回マスクに1つプレースホルダーを追加して、攻撃を数回繰り返す必要がある。これは、"--increment" フラグを使用することで透過的に自動化される。
現在、世界最速のワードジェネレーターである。以下にいくつかの統計を示す:
テスト中の不規則性を避けるため、すべての出力は /dev/null に送られた。
以下のコマンドは、次のパスワード候補を生成する:
コマンド: ?l?l?l?l?l?l?l?l
キースペース: aaaaaaaa - zzzzzzzz
コマンド: -1 ?l?d ?1?1?1?1?1
キースペース: aaaaa - 99999
コマンド: password?d
キースペース: password0 - password9
コマンド: -1 ?l?u ?1?l?l?l?l?l19?d?d
キースペース: aaaaaa1900 - Zzzzzz1999
コマンド: -1 ?dabcdef -2 ?l?u ?1?1?2?2?2?2?2
キースペース: 00aaaaa - ffZZZZZ
コマンド: -1 efghijklmnop ?1?1?1
キースペース: eee - ppp
単に make を実行する
Linux、Windows、OSX用のバイナリ: https://github.com/jsteube/maskprocessor/releases