paint-brush
パスワードをクラッキングから保護する: 数学の概念を理解する@smoothmaruf
1,675 測定値
1,675 測定値

パスワードをクラッキングから保護する: 数学の概念を理解する

Abubakar Maruf8m2022/08/04
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

パスワードは、ユーザーのみ、または制限されたユーザー グループだけが知っている秘密のフレーズまたは単語です。無数の Web サイトでは、ユーザーのアカウントを保護するためにパスワードが必要です。パスワードには、最小数の文字または記号と数字の組み合わせが必要な場合があります。 しかし、それでより安全なパスワードが保証されるでしょうか? Web ユーザーの意図に関係なく、多くの場合、ポリシーによってひどいパスワードの選択が強制されます。一連の恣意的な手順が実装されると、ユーザーはイライラしてひどいパスワードを選択することが証拠で示されています。これは、ほとんどの人が自分のパスワードを操作する方法を知らないために発生します。

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - パスワードをクラッキングから保護する: 数学の概念を理解する
Abubakar Maruf HackerNoon profile picture

パスワードは、ユーザーのみ、または制限されたユーザー グループだけが知っている秘密のフレーズまたは単語です。無数の Web サイトでは、ユーザーのアカウントを保護するためにパスワードが必要です。パスワードには、最小数の文字または記号と数字の組み合わせが必要な場合があります。


しかし、それはより安全なパスワードを保証するでしょうか?


Web ユーザーの意図に関係なく、多くの場合、ポリシーによってひどいパスワードの選択が強制されます。一連の恣意的な手順が実装されると、ユーザーはイライラしてひどいパスワードを選択するという証拠が示されています。これは、ほとんどの人が自分のパスワードを操作する方法を知らないために発生します。


サイバーセキュリティ コミュニティからの繰り返しの警告にもかかわらず、多くの人は、「3ebra」のような数字のバリエーションの文字を切り替えると、何もしない攻撃中にパスワードを解読するのがより困難になると考えています.これが発生すると、ユーザーには 2 つの問題が生じます。1 つは安全でないパスワード、もう 1 つはパスワードが難しそうに見えてもコンピューターが解読するのは簡単であるため、セキュリティに対する妄想です。


パスワードがどのように侵害されるか、および関連する計算をよりよく理解することで、適切なパスワードを設定する方法を生成したり、他の人に教えたりすることができます。

すべてが同じ場所に

スリがあなたのクレジット カードを盗み、それを使ってあなたのアカウントにアクセスしようとしたとします。 (また、最近では行われているように、銀行が 5 回以上失敗しても盗まれたクレジット カードを凍結しないと考えてください)。ほとんどの銀行と同様に、ATM からお金を引き出すには 4 桁の PIN が使用されます。では、あなたのお金が安全である可能性はどのくらいですか?


彼があなたのパスワードを偶然に推測できる確率はどれくらいですか?


PIN の 1 桁目は 0 から 9 までの任意の数字であるため、10 通りの組み合わせが考えられます。繰り返し番号のある PIN を使用しないでください)。 3桁目と4桁目も同様です。


10,000 の可能なパスワードがあり、そのうちの 1 つがあなたのものになる可能性があります: 10 x 10 x 10 x 10=10,000. 10,000 個のパスワードのランダム サンプルでは、攻撃者がパスワードを正確に予測する確率は 10,000 分の 1 です。


人間は乱数などを生成できないため、これは実際には完全には当てはまりません。私たちの脳の偏見は、私たちを虜にしています。無作為に数字を思いついたように見えますが、連続した数字を利用する傾向があり、2 つまたは 4 つの数字のグループで考えることがよくあります。


実際には、これら 10,000 の可能性のサブセットは、現実の世界でより頻繁に発生します。たとえば、1234 または 1111 は 7148 よりもはるかに頻繁に表示されます。


犯罪者が ATM で 10,000 の組み合わせを入力するのに十分な時間があるとは考えにくいですが、標準的なコンピューターは 1 秒あたり数百億回の試行を実行できます。攻撃者は 4 桁の PIN を簡単に解読できます。


ただし、犯罪者が ATM で 10,000 通りの組み合わせを入力するのに十分な時間があるとは考えにくいですが、今日の通常のコンピューターは 1 秒あたり数百億回の試行を実行できます。 4 桁の PIN はすぐにクラックされます。パスワードのサンプル スペースを可能な限り増やすと、解読が難しくなります。 1000 よりも 100 兆の組み合わせから正しいパスワードを推測する方が困難です。

パスワードスペースとは?

パスワード スペースは、特定のアルファベット、文字セット、およびパスワードの最大長で可能なパスワードの組み合わせの総数です。ブルートフォース攻撃中にパスワードを見つけるために行うことができるランダムな推測の数を計算することにより、パスワードのセキュリティと脆弱性を測定します。


許容される文字 (アルファベット、数字、記号など) のサイズとパスワードの長さによって、潜在的なパスワード スペースの大きさが決まります。その結果、より長く複雑なパスワードを使用するほど、パスワード スペースが広くなるため、敵対者が解読不可能なパスワードをブルート フォースすることが難しくなります。

パスワード サンプル スペースの計算方法

前述のクレジット カードの例から、許可されている桁数に許可されている文字数を掛けて、PIN のサンプル スペースを計算しました。各桁に 10 個の適格な文字が入力されました。 10×10×10×10または104。


パスワードのサンプル スペースを計算するには、式S = CNを使用できます。


どこ:

S = サンプル空間で可能なパスワードの総数

C = 使用可能な文字プール内の文字数

N = パスワードの文字数。


• 大文字のみを含むパスワードを使用する場合、C = 26 • 大文字と少なくとも 1 つの小文字を含むパスワードを使用する場合、C =52 • 大文字を含むパスワードを使用する場合、少なくとも 1 つの小文字を使用する場合小文字、数字の場合、C =62 • すべての文字にまたがるパスワードを使用する場合、C =95 ここで、さまざまなパスワードを比較して、それらのサンプル空間が互いにどのように異なるかを見てみましょう:例: YGMEOH C = 26 (大文字のみ)N=6 S = 308,915,776 または約 3 億 900 万のパスワードの組み合わせ

S= CN S= 266 = 308,915,776 の組み合わせ すべての文字を使用し、パスワードの長さを 6 文字のままにすると、次のようになります。

例: @Q:t-2

C = 95

N=6

S = 735,091,890,625 または約 7,350 億のパスワードの組み合わせ

S= CN S= 956 = 735,091,890,625 の組み合わせ。

大文字のみを使用し、長さを 16 文字に増やすと、

例: tfucbxqhjyepvgmw C = 26

N = 16 S = 43,608,742,899,428,874,059,776 のパスワードの組み合わせで、最後の例 @Q:t-2 の約 590 億倍です。 S= CN S= 2616 = 43,608,742,899,428,874,059,776通りの組み合わせ。上の図から、記号や数字が含まれているのではなく、サンプルスペースがパスワードを解読しにくくしていることは明らかです。文字数を増やすと、サンプル スペースのサイズを長くすることができます。


パスワード強度の測定方法: エントロピー


この点でのエントロピーは、特定のパスワードのサンプル空間のサイズの尺度、つまりパスワードの強度の尺度です。パスワードがどのように生成されたかを知らずに、パスワードを解読することがどれほど難しいかを測定することは容易ではありません。それにもかかわらず、エントロピーのビットで表現された数値を持つことは、パスワードが簡単に破れるか難しいかを示すのに役立ちます.エントロピーが高いほど、パスワードを解読するのが難しくなります。エントロピーが低いほど、クラックされやすくなります。 10 進数には 10 の可能性があることを思い出してください。 0 から 9 までですが、ビットとも呼ばれる 2 進数には、0 と 1 の 2 つの可能性しかありません。つまり、10 進数の S=CN は 10N ですが、ビットの場合は 2E です。ここで、E はビット数です。したがって、ビットが 2 つの可能性のサンプル空間を表す場合、50 ビットのエントロピーは 250= 2 x 2 x 2 x … の可能性の空間を定義します。したがって、50 ビットのエントロピーのパスワードは、250 の一意のパスワードのプールから取得されます。同様に、51 ビットのパスワードは 251 個のコレクションから取得されるため、50 ビットのパスワードよりもクラックされにくくなります。以下の式を使用してパスワードのエントロピーを計算できますE= log2 (CN)またはE = N x log2 (C)たとえば、 BerbeCUE201のエントロピーを計算してみましょう ここで C= 26 +26 + 10 =62 N = 11 E = N x log2 (C) E = 11 x log2 (62) = 11 x 5.9541 E = 65.5 ビット S= 2E から S = 265.5 S = 52,175,271,301,331,128,849.398 の組み合わせBerbecue2(!0>}}} のエントロピーは E = N x log2 (C) E = 16 x log2 (95) = 16 x 6.5698 E = 105.1 ビット S= 2E S = 2105.1 S = 43,476,296,738,970,232,553,127,150,068,066.389 の組み合わせから. したがって, エントロピーは, パスワードを総当たり攻撃するのに何回試行する必要があるかを示します. 統計的に, 攻撃者は最後の試行よりも早くパスワードを取得します. 正しいものを取得する前にすべての組み合わせを調べる必要はありません.パスワードの強度、予想される推測回数が考慮されます。これは多くの場合、正しく推測する試行回数の 50% です。 . 105.1 ビットのパスワードの場合、S= 2E – 1 S = 2105.1 – 1 S = 21,738,148,369,485,116,276,563,575,034,033.194 の組み合わせ。


ハイエントロピーでは不十分な理由

安全なパスワードの選択には、パスワード エントロピーを含む多くの要因が関係します。 2 つのパスワードのエントロピーが同じ場合、一方は適度に強力で、もう一方は非常に弱い可能性があります。これは、インターネット上で入手できる流出したパスワードのカタログであるパスワード辞書によるものです。

このようなカタログの使用は辞書攻撃として知られており、パスワードをクラックしようとする敵対者は、ブルート フォース攻撃を試みる前にパスワード辞書を試します。したがって、この辞書でパスワードを使用する場合、パスワードはすぐに解読されるため、エントロピーのビット数は問題になりません。


パスワードハッシュアルゴリズム

Web 管理者がパスワードをプレーン テキストでサーバーに保存している場合、たとえ強力なパスワードであっても、攻撃者が Web サーバーにアクセスできれば、パスワードを簡単に取得できてしまいます。これが、パスワードを保存する前に、ソルト化およびハッシュ化することを強く推奨する理由です。パスワード自体を保存する代わりに、ハッシュメカニズムを介してパスワードの署名が生成され、ハッシュが保存されます。

パスワードのソルティングでは、パスワードをハッシュする前に、パスワードに 32 文字以上のランダムな文字列を追加します。

ハッシュ アルゴリズムは、ハッシュ署名からパスワードを再構築することを計算上不可能にする一方向のプロセスです。このアルゴリズムは、パスワードを不透明な一連の不可逆的な数字と文字に変えます。ハッシュには、bcrypt、MD5、SHA、NTLM など、多数のアルゴリズムを使用できます。

パスワードのクラック方法


  1. サンプル空間で考えられるすべてのパスワードのハッシュ ハッシュされたパスワードを平文に戻すことは不可能であるため、パスワードをクラックするためにできることは、そのサンプル空間で考えられるすべてのパスワードをハッシュし、ターゲットに一致するハッシュを見つけることです。見つかった場合は、パスワードのクラックに成功しています。パスワードのハッシュにはハッシュ レート (計算能力) が必要であり、一部のハッシュ アルゴリズムは他のアルゴリズムに比べて計算が難しく、時間がかかるか、クラックできません。これが、SHA-1 ハッシュがコンピューターによって非常に迅速に計算されるため、SHA-1 アルゴリズムがハッシュの選択として不適切である理由です。

    前に説明したように、パスワードのサンプル スペースが包括的であるほど、一致するハッシュを見つける前に攻撃者がハッシュしなければならない可能性が高くなります。場合によっては、より広大なサンプル スペースを使用すると、パスワードの解読が不可能になり、解読に何十万年もかかることがあります。


  2. ブルート フォース攻撃 ブルート フォース攻撃とは、攻撃者がサンプル空間で考えられるパスワードの中から正しいパスワードを推測しようとする攻撃です。これは、正しいパスワードが見つかるまで多くのパスワードを送信することによって行われます。このアプローチはあまり効果がないため、比較的一般的ではありません。パスワードが 8 文字未満などの非常に短い場合、または攻撃者が特定の文字セット (数字、アルファベット、または英数字のみなど) のみを使用していることを認識している場合にのみ機能します。


  3. 辞書攻撃 攻撃者は通常、人々がパスワードを作成する方法、特にブルート フォース攻撃が非効率な長いパスワードについて推測します。人間の偏見について前述したように、私たちの選択は特定の行動に影響されます。そのため、攻撃者は一般的に使用されるフレーズ、パターン、および「mypassword」などのパスワードのカタログを作成し、それらのハッシュがターゲットと一致するかどうかを確認しようとします。そうでない場合は、「myp4ssword」に変更するなど、少し調整してから、もう一度試します。


    この種の攻撃は辞書攻撃と呼ばれ、計算能力を利用して、ほとんどの人が使用する可能性のある単語からダミーのパスワードを作成します。