web-dev-qa-db-ja.com

Wifiに対する辞書攻撃

かなり弱いパスワードを持っている人を何人か知っています。辞書攻撃を防ぐためにどのようなシステムが存在しますか?特定の時間枠で接続試行の数を制限することは理にかなっていますか?

確かに強力なパスワードが最適なシステムですが、ほとんどのプライベートネットワークはWi-Fiの設定にあまり考慮を払っていません。

7
Lucas

質問が一般的な辞書攻撃に関するものなのか、パスワード保護されたWiFiネットワークの場合の辞書攻撃なのかわかりません。

辞書攻撃の一般的な質問について:辞書攻撃には、online攻撃との2種類があります。オフライン攻撃。オフライン攻撃とは、攻撃者が自分のマシンでパスワードを「テスト」するのに十分なデータを、攻撃者が獲得できる計算能力によってのみ制限される速度で取得する攻撃のことです。たとえば、攻撃者はパスワードのハッシュのコピーを入手しました。一方、オンライン攻撃は、攻撃者が推測ごとに「正直な」システム(ターゲットサーバーやクライアント自体などの正しいパスワードを知っているシステム)と対話する必要がある攻撃です。

パスワードの「強さ」は、その エントロピー によって測定できます。これは、そのパスワード持っている可能性があると想定される値の数を示す方法です。たとえば、「25ビットのエントロピー」を持つパスワードは、2つのリストからランダムに(そして均一に)選択されたものです。25 可能なパスワード。エントロピーの概念は、パスワード選択プロセスが均一でない場合に少し改良できます。攻撃者が潜在的なパスワードのリストを降順に試行する場合、パスワードにはnビットのエントロピーがあると言います。確率(つまり、最も頻繁に選択されたパスワードで始まる)は、平均して2n-1トライアル。ユーザーベースに応じて、あなたはmight強力なパスワードを選択するようにユーザーを教育することに少し成功していますが、たとえば約32ビット以上のエントロピーを期待することは現実的ではありません(強すぎるパスワード選択ルールを使用すると、ユーザーは積極的にあなたに反対します。たとえば、メモを追記したり、他のサイトや他のユーザーとパスワードを共有したりします)。

オフライン攻撃が存在する場合の最初の緩和策は salt を使用することです。アイデアは、攻撃者が既知の値(「塩」)で知ることができるパスワード検証データを「微調整」することです。 、パスワードごとに異なります。これは、攻撃者が1つのパスワードを解読しようとするのを妨げることはありませんが、コストの共有を防ぐことができます。事前計算されたテーブル、特に大々的に宣伝されている Rainbow tables は、コスト共有の特定のケースです。適切なソルトは、適切なランダムジェネレーターによってランダムかつ均一に選択され、パスワードハッシュと共に保存されます。

2番目の緩和策は、パスワードの導出を高価にすることです。ハッシュはしない1回、ハッシュする1万回。これにより、通常のパスワードの使用(検証用)が10000倍遅くなります(ただし、これは許容できる場合があります。1µsではなく10msについて話している)と同時に、攻撃者の作業係数を10000倍にします(つまり、1分) 1週間の攻撃への攻撃)。次に、セキュリティが達成されます2n-1 > p * sここでnはパスワードエントロピー、pは攻撃者とユーザーの忍耐の比率です(たとえば、攻撃者が1週間投資する準備ができている場合)努力の結果、ユーザーは1秒以上待つことができず、比率は7 * 86400 = 604800)、そしてsは攻撃者のコンピューティング能力と通常のシステム能力の比率です(たとえば、攻撃者は20の大きなPC [〜#〜] gpgpu [〜#〜] で、通常のシステムはスマートフォンです。これによりsが500または1000の範囲になります)。

Bcrypt は、ソルトと構成可能な反復回数を組み合わせた、頻繁に推奨されるパスワードハッシュ方式です。

より徹底的な解決策は、オフラインの辞書攻撃を回避することです。攻撃者がそのような攻撃を実行できるようなデータを保持することはできません。 Web /インターネットのコンテキストでは、これは、たとえば SSL/TLSトンネル (「HTTPS」と呼ばれるもの)内で認証を実行することを意味します。攻撃者がデータベースへの読み取り専用アクセスを取得した場合に備えて、サーバー上でパスワードstorageに対して適切なパスワードハッシュを実行することをお勧めします。別の種類のプロトコルは Password Authenticated Key Exchange :暗号化プロトコルであり、共有キー(データのその後の対称暗号化に適しています)を生成します。パスワードに対してクライアントとサーバーの相互認証を行います。このプロトコルは攻撃者の完全な視野で再生でき、依然としてオフライン辞書攻撃に対して本質的に耐性があります。最も推奨されるPAKEプロトコルは [〜#〜] srp [〜#〜] です。

攻撃者にオンラインでのプレイを強制できる場合は、攻撃者が送信できるリクエストの数に任意の制限を適用することで攻撃者を阻止できます。最も極端なケースは、スマートカードの機能です。3つの間違ったPINの後で、カードは自殺します。弱いルール(たとえば、1分あたり10を超える推測を処理することを拒否する)は、ほとんどの攻撃者をすでに排除します。

WiFiについて:WiFiで使用できる 認証プロトコル がいくつかあります。 WEPおよび「WPAパーソナル」システムでは、認証は「PSK」(事前共有キー)と呼ばれます。暗号化と整合性チェックは、WiFiパスワードから決定論的に導出されたキーを使用して実行されます。これにより、オフライン辞書攻撃を実行したい攻撃者に十分なデータが提供されます。鍵導出プロトコルには、多数のハッシュ反復の準備が含まれていないため(結局、30 $のホームルーターで実装可能でなければならない)、辞書攻撃は非常に効果的です。したがって、ここでの唯一の真の防御策は、大きな脂肪のランダムパスワードを選択することです。これにより、エントロピーが高くなります。

「WPA-エンタープライズ」では、認証は [〜#〜] eap [〜#〜] と呼ばれる一般的なレイヤーを介して行われ、基になるプロトコルのメッセージをカプセル化します。ベースステーションはそれらのメッセージを [〜#〜] radius [〜#〜] サーバーに転送することになっています。適用可能な認証プロトコルは多数あり、そのうちのいくつかはPSK説得によるものです。しかし、他のものは間違いなくより強力です。たとえば、PAKEプロトコルであるEAP-EKEがあるため、オフラインの辞書攻撃に対して耐性があります。もう1つはEAP-TLSで、これは内部で完全なSSL/TLSハンドシェイクを実行するため、潜在的に SRP-with-TLS を使用する可能性があります。

したがって、WPA-エンタープライズでは、あなたはmay比較的低いエントロピーでパスワードを許容する認証プロトコルを使用しますが、これはクライアントとベースステーションがサポートするものに依存します。

賢明な言葉:私はWiFi認証でのパスワードの使用についてのみ話します。私はnot認証が実行されたら、WiFiリンクは適切に保護されていると主張します。 WiFiリンクは盗聴される可能性があるインターネットのようなリンクとして扱うのが最善です。認証プロトコルの主な目的は、無料のインターネットアクセスを望む攻撃者を阻止することです。

15
Thomas Pornin

辞書攻撃は、攻撃者が取得したデータに対してオフラインで発生する可能性があります。

したがって、強力なパスワードが最善のソリューションです。

5
DanBeale