web-dev-qa-db-ja.com

パスワードエントロピーを計算するために可能な方法は何ですか?

このフォーラムにはパスワードエントロピーに関する質問と回答がたくさんあることに気付きました。誰も私の正確な質問に答えませんでした。

パスワードエントロピー を計算するために可能な方法または一般的に使用される方法は何ですか?

たとえば、 KeePass は、ある種のパスワードエントロピーを計算するメソッドを使用しています。彼らはそれをどのように計算しますか?

繰り返しパターンや予測可能/簡単な組み合わせなどは、これらの方法に何らかの形で含まれていますか?

5
Bob Ortiz

properパスワードエントロピーを計算する方法は、パスワード生成方法を調べ、パスワード生成方法に関与するエントロピーの量を評価し、次に、入力エントロピーのどれだけがエンコード方法によって保持されるかを評価することです。 。例として、fair 6-sided dicesを1回投げると、約2.5ビットのエントロピーが生成されます(実際のサイコロが本当に公正かどうかは未解決の問題です)。

パスワード強度メーターはエントロピーではありませんcalculator、それらはestimate一般的に使用されるパスワードの生成とクラックに基づいてパスワードの統計分析を行うことにより、文字列に含まれる可能性のあるエントロピーの最大量メソッド。すべての場合において、エントロピー推定量はかなりの量でオフになる可能性があります。エントロピー推定器は明らかに弱いパスワードを検出するのに適していますが、パスワードが適切かどうかを判断するのに適した方法ではありません。

ランダムに見える文字列にはほとんどエントロピーを含めることができません。たとえば、1つのSHA1 ASCII文字には7ビットのエントロピーしか含まれていませんが、ほとんどのパスワードメーターはそれを堅実なパスワードと見なします。

6
Lie Ryan

データエントロピーはオブザーバーによって異なります。エントロピーの絶対的な測定値はありません。宇宙の何かがまったくランダムであり、「ランダム性」(より正確には、エントロピーに関連するnpredictability)がソースまたはエントロピーであるかどうかについても疑問です。

予測不可能性は運用用語であり、誰かが予測することは困難です。

たとえば、Mersenne Twisterを使用する場合、ランダムシーケンスのシードを完全に予測すると、シーケンス全体が完全に予測されます。つまり、「ランダム」パスワードは64ビットのエントロピーで構成されます(64ビットバージョンを使用している場合)。

ダイスウェアを使用する場合、エントロピーはダイスを振った回数に由来し、それだけです。

残念ながら、それが「パスワード」になる頃には、エントロピーのソースは不明瞭です。

たとえば、各値が_[0,99]_の範囲にある3値の安全なコードには、3*log2(100)ビットのエントロピーがあります。あなたが6文字のWordを選択し、電話のキーパッドを使用してそれを数字に変えることを知るまでは、エントロピーはlog2(numberOfSixLetterWords)です。

要するに、パスワードを作成するために使用される仮定は、そのエントロピーにとって非常に基本的であり、パスワードの即時の出現によって非常に不明瞭になり、実際には推定できません;パスワードのエントロピーの上限のみを取得できます。

4
iAdjunct

パスワードのエントロピーは、考えられるすべてのパスワードの 確率分布 に関する定量的なステートメントです。これを単純化するために、確率分布は、パスワードが与えられたときに、そのパスワードが選択されたものである確率を出力するというルールとして考えてください。

したがって、考えられる2つのパスワードの相対的な可能性を示すいくつかのモデルから始めない限り、パスワードのエントロピーに数字を付けることはできません。そして、一般ユーザーアカウントのパスワードエントロピーに関する問題(おそらく、これはあなたが遭遇したことでしょう)は、ディストリビューションについて行っている想定を日常的に明確に説明していないことです。

「データエントロピーはオブザーバーに依存する」というiAdjunctのポイントに関連する複雑なセットがもう1つあります。パスワードの「真の」分布を区別できます(これは、人々の実際の結果パスワードを選択します)および「想定される」ディストリビューション(攻撃者がフォローを信じるディストリビューション)。多くの(悪い)パスワードアドバイスは、「異常な」パスワード生成ルールを使用して、パスワードが実際のディストリビューションまたは攻撃者が選択したものの外れ値になるようにするという考えに基づいています。

しかし、最も簡単な解決策は、攻撃者がルールを知っている場合でも十分なエントロピーを与えるルールのセットに従ってパスワードを選択することにより、これらすべてを回避することです(- Kerckhoffsのバージョン原則 )。次の2つの質問に対する(強く推奨されている)回答の多くは、この点を強調しています。

したがって、そのアドバイスに従えば、ランダムなパスワード生成スキームを詳しく説明し、攻撃者がそれを発見すると想定することで、パスワードのエントロピーを簡単に計算できます。

2
Luis Casillas

KeePassは彼らが考慮していることのいくつかを説明します here 、そしてそれはこの優れた論文の18ページでより詳細に説明されています:

Carnavalet、Xavier DeCarnéDe、およびMohammad Mannan。「影響の大きいパスワード強度メーターの大規模評価。」ACM Transactions on Information and System Security(TISSEC)18.1(2015):1。

言い換えると長すぎますが、はい、repeating patterns and predictable/easy combinationsは、KeePassを含む最も重要なパスワード強度計算機の組み合わせに含まれています。それらは、static entropy encoderと呼ばれるものに依存しています。これは、データの圧縮に使用されるハフマンコードと同じくらい簡単なものである可能性があります。

2
Jedi