「リバースブルートフォースアタック」と「パスワードスプレー攻撃」の違い
予備知識
| 用語 | 意味 |
|---|---|
| ID | 「おまえ、誰?」を識別するための情報。個人を特定するために付与される名札(身分証明用の番号) |
| パスワード | 合言葉のこと |
| ブルートフォースアタック | パスワードとかを解読するときのやり方のひとつで、4桁の暗証番号に対して「0000」から「9999」までを試すように、可能性のあるやつを片っ端から試していく やり方 |
ブルートフォースアタックは「総当たりで試していくぜ!」なやり方です。
悪い人がパスワードとかを解析するときに(専用のソフトを使って)やります。
「オラオラオラオラ!」な心意気で片っ端から全部 試していく やり方です。

例えば、4桁の暗証番号の付いている鍵が あったとしましょう。
それぞれ、0から9までの数字が選べます。

暗証番号として設定される可能性があるのは「0000」から「9999」までの どれかです。
それ以外の可能性は ありません。
それなら「0000」「0001」「0002」……「9997」「9998」「9999」と地道に全部 試していけば、どこかで当たります。

それを実際にやるのがブルートフォースアタックです。
「力技、ここに極まれり!」って感じですね。

IDとパスワードの組み合わせであれば、IDを1つ決めて、可能性のあるパスワードを片っ端から試していきます。
例えば、ID「1」に対して、パスワードを「0000」「0001」「0002」……「9997」「9998」「9999」と試すような やり方です。

それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| リバースブルートフォースアタック | IDとパスワードの組み合わせを盗み出すときのやり方のひとつで、パスワードを1つ決めて、それと組み合わせるIDを1回ごとに変えながら、可能性のあるやつを片っ端から試していく やり方 |
| パスワードスプレー攻撃 | いくつかのIDに対して同じパスワードを試し、ダメだったらパスワードを変えて試し、ダメだったら候補のIDを変えて試す、パスワードの破り方 |
リバースブルートフォースアタックはブルートフォースアタックの逆です。
ブルートフォースアタックでは
1つの「ID」に対して、すべての「パスワード」を片っ端から試す
やり方をします。

それに対して、リバースブルートフォースアタックでは
1つの「パスワード」に対して、すべての「ID」を片っ端から試す
やり方をします。

例えば、パスワード「0000」に対して、IDを「1」「2」「3」……と試すようなやり方がリバースブルートフォースアタックです。

パスワードスプレー攻撃は
1.IDをいくつか決めて、それぞれのIDに同じパスワードを試す
2.ダメだったら、パスワードを変えて、同じことをする
3.何回かやってダメだったら、IDの候補を変えて同じことをする
パスワードの破り方です。
例えば、IDを「1」「2」「3」と決めたとします。

このID「1」「2」「3」に対して、パスワード「0000」を試します。

どれも一致しませんでした。
次は、ID「1」「2」「3」に対して、パスワード「0001」を試します。

どれも一致しませんでした。
次は、ID「1」「2」「3」に対して……ちょっと待ってください。
同じIDに対して3回間違えたら、使えなくなるかもしれません。
IDを変えましょう。
次はID「4」「5」「6」に対して、パスワード「0000」を試します。

どれも一致しませんでした。
次は、ID「4」「5」「6」に対して、パスワード「0001」を試します。

どれも一致しませんでした。
次は、ID「4」「5」「6」に対して……ちょっと待ってください。
同じIDに対して3回間違えたら、使えなくなるかもしれません。
IDを変えましょう。
次はID「7」「8」「9」に対して、パスワード「0000」を試します。

……というのを繰り返していく やり方がパスワードスプレー攻撃です。

よく分からない人はIDが並んだキャンバスにパスワードをプシューとスプレーしていくイメージを持つと良いと思います。

まずは、ID「1」「2」「3」のあたりにパスワード「0000」をプシューとスプレーします。

次に、ID「1」「2」「3」のあたりにパスワード「0001」をプシューとスプレーします。

次に、ID「4」「5」「6」のあたりにパスワード「0000」をプシューとスプレーします。

次に、ID「4」「5」「6」のあたりにパスワード「0001」をプシューとスプレーします。

そんな感じのイメージです。
似ているところ
どちらも、オラオラオラオラ!な心意気で、可能性のある値を片っ端から全部 試していくことでIDとパスワードを盗もうとする攻撃です。

さらに、どちらも「パスワードを固定にして、可能性のあるIDを片っ端から試していくぜ」攻撃(と見なされることが多い攻撃)です。

違うところ
ぶっちゃけ、人によってパスワードスプレー攻撃の定義付けが違うので、どこが違うかの解釈も人によって違います。
まず
リバースブルートフォースアタックとパスワードスプレー攻撃って、ぶっちゃけ同じじゃね?
と解釈している人がいます。
パスワードスプレー攻撃の説明で
1.ID「1」「2」「3」にパスワード「0000」を試す
2.ID「1」「2」「3」にパスワード「0001」を試す
3.ID「4」「5」「6」にパスワード「0000」を試す
4.ID「4」「5」「6」にパスワード「0001」を試す
5.ID「7」「8」「9」にパスワード「0000」を試す
6.ID「7」「8」「9」にパスワード「0001」を試す
のような例を挙げました。

これは、見方によっては
リバースブルートフォースアタックを6回やっているだけ
と解釈できます。

確かに、そうですね。
具体的なやり方に着目すると、パスワードスプレー攻撃はリバースブルートフォースアタックを何回もやっているだけです。
一方で、単純にリバースブルートフォースアタックをやるのであれば
1.ID「1」「2」「3」「4」「5」「6」「7」「8」「9」にパスワード「0000」を試す
2.ID「1」「2」「3」「4」「5」「6」「7」「8」「9」にパスワード「0001」を試す
と試す方が効率的です。
わざわざチマチマ分ける必要がありません。

この「チマチマ分ける」がポイントだと考える人もいるようです。
チマチマ分けることで攻撃間隔を空けたり、攻撃元を変えるのが(リバースブルートフォースアタックと違う)パスワードスプレー攻撃の醍醐味だ!
という解釈です。

その場合は
攻撃元や攻撃対象を変えたり、攻撃間隔を空けながらやるリバースブルートフォースアタックがパスワードスプレー攻撃
という解釈になるでしょう。
あるいは
リバースブルートフォースアタックを(パスワードを変えて)複数回やるのがパスワードスプレー攻撃
と解釈する人もいるようです。

その場合は
リバースブルートフォースアタックを複数回やるのがパスワードスプレー攻撃
と解釈しているはずです。
あるいは、そうですね。
私は最初パスワードスプレー攻撃について調べたとき
ブルートフォースアタックとリバースブルートフォースアタックの複合技
っぽい印象を受けました。
パスワードスプレー攻撃でやっていることは
複数のIDに複数のパスワードを試す(のをIDの候補を変えて何回もやる)
です。

これは「複数のIDに1つのパスワードを試す」リバースブルートフォースアタックっぽい攻撃です。

一方で「1つのIDに複数のパスワードを試す」ブルートフォースアタックっぽい攻撃でもあります。

そのように解釈すると
パスワードスプレー攻撃はブルートフォースアタックの発展形
とも言えるでしょうし
パスワードスプレー攻撃はリバースブルートフォースアタックの発展形
とも言えそうです。
そんな感じで、人によってパスワードスプレー攻撃自体の定義付けが違ったりするので、リバースブルートフォースアタックとの違いも人によって説明が違ったりします。
個人的な使い分け
私自身は
リバースブルートフォースアタック:1つのパスワードを複数のIDに試すやり方(IDとパスワードの組み合わせが多対一)
パスワードスプレー攻撃:複数のパスワードを複数のIDに試すやり方(IDとパスワードの組み合わせが多対多)
と区別しています。
リバースブルートフォースアタックが「1つのパスワードを複数のIDに試す」攻撃を指す用語だというのを前提にして
「複数のパスワードを複数のIDに試す」やり方を「リバースブルートフォースアタック」と定義付けるとややこしくなるから「パスワードスプレー攻撃」という呼び名を作ったのかな?
と推測しました。
ただし、具体的なやり方に着目すると、パスワードスプレー攻撃は
リバースブルートフォースアタックを何回もやる攻撃
です。

よって
パスワードスプレー攻撃っぽい攻撃を「リバースブルートフォースアタック」と表現しても、間違いとは言えないんじゃないかな?
とも思っています。
ややこしいですね。
備考
※このページの内容は、あくまで私の解釈です。
パスワードスプレー攻撃のやり方の説明……は、ほとんど同じだったのですが「どんな条件を満たす攻撃をパスワードスプレー攻撃と呼ぶか?」の解釈がいろいろあって、どれが正しいのか判断できませんでした。






