Skip to content

Commit

Permalink
Merge pull request #904 from jpazureid/juntakata-ypdm
Browse files Browse the repository at this point in the history
Update your-password-doesnt-matter.md
  • Loading branch information
juntakata authored May 4, 2024
2 parents c8fcf6d + c19fbd9 commit 285ce8a
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions articles/azure-active-directory/your-password-doesnt-matter.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,12 @@ tags:

しかし、攻撃者がハッシュをたくさん保存されたデータベースを手に入れたとしましょう。さてどうするでしょうか。

1. **クラッキング用のマイニング マシンを入手する。** 暗号通貨市場により、コストが非常に低下しており、2019 年 7 月現在、$20,000 (約 210 万円) で SHA256 に対して毎秒 [1000 億 (100B) を超えるパスワードをクラックするマイニング マシン](https://en.bitcoin.it/wiki/Mining_hardware_comparison) を構築することが可能になっています。組織的な犯罪や政府であれば、膨大な予算を持っており、量子コンピューターが実現すればこの数値をさらに加速させていくでしょう。
2. **アルゴリズムやソルト、その組織独自のパスワード規則 (最小 / 最大長さや、複雑さなど) を調べる。** これは通常容易で、マイクロソフトの場合は公開もしています。もし知られていない場合でも、攻撃者はシステムの中で少なくとも1つのアカウントをすでにコントロールしており、アルゴリズムをリバース エンジニアリングして、任意のパスワードを挿入することができると想定しておいた方が良いです。
3. **パスワードの初期リストを作る。** まずは、漏洩、フィッシングまたはパスワード スプレー攻撃で明らかになった 5 億以上もの [パスワード](https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/) を取得します。これは「誰もが考えたことのあるすべてのパスワード」と考えてください。一部のガイダンスでは、このリストのすべてのパスワードを禁止しています。まずは試しにそのすべてのパスワードを禁止してみて、ユーザーがパスワードを選択する際にどの程度うまくいくか確認ください (うまくいかないでしょう)。
4. **標的のアカウントに対して、その一覧のすべてのパスワードを試す。** 統計的には、これだけでもユーザー パスワードの 70% が突破されてしまいます。 5 億 (500M) は 10 億 (1B) の半分で、家庭用のマイニング マシンでも、1 秒間に 1000 億 (100B) のパスワードを推測できます。つまり、完全なリストでも 5ms しか時間はかかりません。攻撃者はマイニング マシンを用いて毎秒 200 アカウントに対して完全なリストを走らせます。そうです、つまりほとんどのアカウントが一瞬にして陥落してしまうのです。このため、データベースからの抜き取りを検知するのは、異常なログオンを検知するのと並んで非常に重要ですから、なんにせよ MFA を有効にしておくことが大事です!
5. 標的となるアカウントのパスワードがまだ突破されていない場合は、 **すべての人気フレーズ、歌詞、ニュース見出し** 、検索エンジン、ウィキペディア、人気記事などからピックアップできるもののリストを作成します。こういったリストは、ハッシュ ブレーカー コミュニティと呼ばれるパスワードのクラッキング コミュニティで事前にパッケージ化されていて容易に手に入ります。これにより、さらにユーザー パスワードの 5 - 7% が突破される可能性があります。
6. まだ標的のアカウントが突破できない場合、攻撃者は **マイニング マシンと時間が許す限りあらゆる組み合わせのパスワードを試行します** 。キーボードから簡単に打てる 96 文字で仮定すると、パスワードのそれぞれの値の位置に 96 通りのパターンが考えられます。このような力ずく (ブルート フォース) の手法では、1 秒あたり 1000 億個のパスワードを試行するマイニング マシンでも、非常にコストが高くなります。実際にはこのマイニング マシンを使用すると、攻撃者は 1 日で最大 8 文字、3 か月で 9 文字、21 年で 10 文字、そしてそれ以上の文字は 96 倍の時間を費やせば、すべてのパスワードを試すことができますが、実際には攻撃者は 9 文字でお手上げになります。ここまでやれば、おそらくさらに 5% のパスワードが突破されています。
1. **クラッキング用のマイニング マシンを入手する。** 暗号通貨市場により、コストが非常に低下しており、2019 年 7 月現在、$20,000 (約 210 万円) で SHA256 に対して毎秒 [1000 億 (100B) を超えるパスワードをクラックするマイニング マシン](https://en.bitcoin.it/wiki/Mining_hardware_comparison) を構築することが可能になっています。組織的な犯罪や政府であれば、膨大な予算を持っており、量子コンピューターが実現すればこの数値をさらに加速させていくでしょう。
2. **アルゴリズムやソルト、その組織独自のパスワード規則 (最小 / 最大長さや、複雑さなど) を調べる。** これは通常容易で、マイクロソフトの場合は公開もしています。もし知られていない場合でも、攻撃者はシステムの中で少なくとも1つのアカウントをすでにコントロールしており、アルゴリズムをリバース エンジニアリングして、任意のパスワードを挿入することができると想定しておいた方が良いです。
3. **パスワードの初期リストを作る。** まずは、漏洩、フィッシングまたはパスワード スプレー攻撃で明らかになった 5 億以上もの [パスワード](https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/) を取得します。これは「誰もが考えたことのあるすべてのパスワード」と考えてください。一部のガイダンスでは、このリストのすべてのパスワードを禁止しています。まずは試しにそのすべてのパスワードを禁止してみて、ユーザーがパスワードを選択する際にどの程度うまくいくか確認ください (うまくいかないでしょう)。
4. **標的のアカウントに対して、その一覧のすべてのパスワードを試す。** 統計的には、これだけでもユーザー パスワードの 70% が突破されてしまいます。 5 億 (500M) は 10 億 (1B) の半分で、家庭用のマイニング マシンでも、1 秒間に 1000 億 (100B) のパスワードを推測できます。つまり、完全なリストでも 5ms しか時間はかかりません。攻撃者はマイニング マシンを用いて毎秒 200 アカウントに対して完全なリストを走らせます。そうです、つまりほとんどのアカウントが一瞬にして陥落してしまうのです。このため、データベースからの抜き取りを検知するのは、異常なログオンを検知するのと並んで非常に重要ですから、なんにせよ MFA を有効にしておくことが大事です!
5. 標的となるアカウントのパスワードがまだ突破されていない場合は、 **すべての人気フレーズ、歌詞、ニュース見出し** 、検索エンジン、ウィキペディア、人気記事などからピックアップできるもののリストを作成します。こういったリストは、ハッシュ ブレーカー コミュニティと呼ばれるパスワードのクラッキング コミュニティで事前にパッケージ化されていて容易に手に入ります。これにより、さらにユーザー パスワードの 5 - 7% が突破される可能性があります。
6. まだ標的のアカウントが突破できない場合、攻撃者は **マイニング マシンと時間が許す限りあらゆる組み合わせのパスワードを試行します** 。キーボードから簡単に打てる 96 文字で仮定すると、パスワードのそれぞれの値の位置に 96 通りのパターンが考えられます。このような力ずく (ブルート フォース) の手法では、1 秒あたり 1000 億個のパスワードを試行するマイニング マシンでも、非常にコストが高くなります。実際にはこのマイニング マシンを使用すると、攻撃者は 1 日で最大 8 文字、3 か月で 9 文字、21 年で 10 文字、そしてそれ以上の文字は 96 倍の時間を費やせば、すべてのパスワードを試すことができますが、実際には攻撃者は 9 文字でお手上げになります。ここまでやれば、おそらくさらに 5% のパスワードが突破されています。

|パスワードの長さ|可能な文字列の組み合わせ|要する秒数|要する分数|要する時間|要する日数|
|:--|:--|:--|:--|:--|:--|
Expand All @@ -109,8 +109,8 @@ tags:

(この表から、反復の回数を増加させても基本的に攻撃は線形に減少していくことが分かります。反復の回数を 1,000 回から 10,000 回に増やしても、追加で 1 文字を得ることさえできません。次の 1 文字を得るためには、100,000 回反復する必要があり、これには 100 倍のサーバーおよびラックの領域、およびエネルギー消費量が必要となります。)

7. 最後に、攻撃者は予測可能なパターン (例えば、常に大文字で始まり、小文字が 3-6 文字続き、2-4 文字の数字が続き、最後に感嘆符 (!) を追加する、など) を使用して、使用されている可能性の高い大体 12 文字の推測可能なパスワードのリストを作成します。数パーセントと小さいですが更にアカウントが得られます。
8. ソルトのため、これらはすべて **1 つの** アカウントに対する操作です (しかし、成功確率は約 85% です)。攻撃者はパスワードがほしい次のアカウントに対して 1 からやり直す必要があります。
7. 最後に、攻撃者は予測可能なパターン (例えば、常に大文字で始まり、小文字が 3-6 文字続き、2-4 文字の数字が続き、最後に感嘆符 (!) を追加する、など) を使用して、使用されている可能性の高い大体 12 文字の推測可能なパスワードのリストを作成します。数パーセントと小さいですが更にアカウントが得られます。
8. ソルトのため、これらはすべて **1 つの** アカウントに対する操作です (しかし、成功確率は約 85% です)。攻撃者はパスワードがほしい次のアカウントに対して 1 からやり直す必要があります。

重要なのは、パスワードが漏洩した場合、12 文字より長くこれまで使用したことがない場合 (つまりパスワード マネージャーで生成したパスワード) を除いて、あなたのパスワードは攻撃者には無力であるということです。パスワード マネージャーを使えるユーザーもいると思いますが、利用が禁止されているユーザーも一部にはいるでしょう。パスワード マネージャーを使用している場合は、可能な限り最大の長さのパスワードを使用しましょう。すでにコピーアンドペーストしているのであれば、文字列が長くても使いにくくなるということはないでしょうから。パスワード マネージャーには独自の問題 (ユーザービリティや価値あるパスワード情報が集約されているため攻撃の標的となりやすいなど) がありますが、パスワード マネージャーは長くてランダムな文字列を生成するため (こういった攻撃に対して) 意味ある違いが生じます。

Expand Down

0 comments on commit 285ce8a

Please sign in to comment.