パスワードアルゴリズムに関するBruce Schneier

Wiredの著者コラムで 、Bruce Schneierはオフラインパスワードのブルートフォース攻撃を使用した攻撃について語っています。 この方法は非常に頻繁に使用されますが、状況によっては、たとえばATMでPINコードを選択することは不適切です。



オフラインパスワード推測ソフトウェアは、これまで以上に高速でスマートになりました。 AccessDataのPassword Recovery Toolkit (PRTK)は、1秒あたり最大数10万個のパスワードをチェックでき、最も明白なパスワードを最初にチェックします。



したがって、パスワードセキュリティは2つの要因に依存します。パスワードの検索を遅くするシステムの能力と、ハッカープログラムの観点からパスワードが「より明白」であるかどうかです。



パスワード推測の速度は、プログラムによるこのパスワードの処理方法に直接依存します。 優れたプログラムは、パスワードを暗号化キーとして使用しませんが、パスワードを暗号化キーに変換します。 この場合、任意の長い時間パスワードをチェックするプロセスを遅くする可能性があります。



この点に関して、プログラムが異なれば結果はまったく異なります。 たとえば、Microsoft Officeアプリケーションのパスワードチェックは非常に基本的であるため、PRTKユーティリティは1秒あたり最大35万のバリアントをチェックできます(周波数が3 GHzのPentium 4プロセッサ上)。 WinZip 7.0のパスワードはさらに見つけやすくなっています。このプログラムを使用すると、1秒間に100万を超えるパスワードを確認できます。 比較のために、WinZipの9番目のバージョンでは、暗号システムが大幅に改善されたため、検索速度は毎秒900に低下しました。 PRTKの同じ「ハードナット」はPGPプログラムです。



1つのレジスターに6文字の英語文字(数字なし)のパスワードの場合、検索のオプションの数は3億800万を超える組み合わせ(「aaaaaa」から「zzzzzz」まで)です。 ただし、スマートPRTKプログラムは、行のすべての組み合わせを反復処理するわけではありません。



AccessDataのEric Thompson(PRTK開発者)は、典型的なパスワードはルートとプレフィックスで構成されていると説明しています。 パスワードのルートは、辞書の単語でなければ、通常は発音されます。 プレフィックスは、ルートの後ろのサフィックス(ケースの90%)またはルートの前のプレフィックス(10%)のいずれかです。



まず、PRTKプログラムは、「password1」、「123456」など、 最も一般的な約1000個のパスワードのデータベースをチェックします。 その後、プログラムはそれらを100個の最も一般的なコンソール(「1」、「69」、「abc」など)と組み合わせてチェックします。 このような単純なチェックにより、すべてのパスワードの24%をわずか10万の組み合わせ正常に判断できます。



第2段階では、プログラムはルートとサフィックスの拡張セットをチェックします。 最も一般的な5,000の単語、10,000の名前、100,000の要素の追加辞書、および音素の辞書(理論的に可能な組み合わせのセットの0.01%)をテストします。 音素を生成するために、言語学で知られているマルコフモデルが使用されます。 さらに、PRTKは上記のすべてのオプションをチェックしますが、たとえば「O」から「0」、「S」から「$」など、頻繁に発生する文字置換を使用します。



接頭辞の辞書には、2桁と3桁のすべての組み合わせ、1900年から2006年の日付、単一文字、文字と数字の組み合わせ、2文字のすべての組み合わせが含まれます。



通常、PRTKプログラムはコンピューターネットワークで実行されます。 CIAやFBIなどの大規模な構造では、一度に数百、数千のコンピューターでタスクを実行できます。 さらに、 Tableauは追加のFPGAコンソールのリリースをすでに開始しており、PGPやWinZipなどの「遅い」プログラムのオプションの検索を高速化します。 加速は150〜300倍です。



Eric Thompsonによると、2週間から4週間の作業で、彼のプログラムはすべてのパスワードの55%から65%に達します。 そして、これにはソーシャルエンジニアリングをわずかに使用する必要があります。つまり、ユーザーについてまったく何も知りません。



上記に基づいて、ブルートフォースが推測できないように、理想的なパスワードがどうあるべきかを理解できます。 ルートの中央にプレフィックスを挿入するか、2つのルートを選択し、パスワードの中央に大文字と小文字の両方を使用し、できるだけ長い単語を使用することをお勧めします。



もちろん、パスワードは平文のどこにも保存できません。 AccessDataのもう1つのForensic Toolkitは、ローカルネットワーク上のすべてのファイル(電子メール、インスタントメッセージング履歴、スワップファイル)をスキャンして、そこに記載されているすべての単語を見つけます。 これらの単語から、追加の辞書がコンパイルされます。 ちなみに、コンピューターのオペレーティングシステムはパスワードをオープンな形式でRAMに保存し、このメモリの一部をいつでもハードディスクに書き込むことができます。 キーボードで入力したパスワードはそこに到達できます。



All Articles