cracking)とは、コンピュータ・システムで保存あるいは伝達されるデータからパスワードを割り出すクラッキング手法をいう。一般的なアプローチは、類推したパスワードを繰り返し試すというもの(総当たり攻撃)である。パスワードクラックの目的は、忘れたパスワードを割り出すためであったり[1]、システムで許可されていないアクセス権を得るためであったり、簡単に割り出せるようなパスワードが使われていないかシステム管理者が予防的にチェックするためだったりする。ファイル単位のパスワードクラックとしては、判事がデジタル形式の証拠物件へアクセスするために使うというケースがある。システムへのアクセスはできるが(パスワードをかけられた)特定ファイルへのアクセスが拒否されるという場合である。外部リンク主な攻撃方法[編集]脆弱な暗号化[編集]保存したパスワードを保護するにあたり、設計の悪いパスワードハッシュ法をシステムが使っている場合、適切に考えられたパスワードであろうとも、攻撃者はそれを割り出す脆弱性を突くことができる。それ以前のバージョンが標準で使っている、14文字以下でパスワードを保存するLMハッシュが挙げられる。バイト列に分け、別々にハッシュ値を求める。それぞれを個別に攻撃することができる。いった、より強力なハッシュ関数を使ったパスワード暗号法は、総当り攻撃や事前計算に対してまだ耐性を持っている。その種の攻撃は、ハッシュ関数を逆算するのではない。なく、大量の単語やランダムな文字列のハッシュ値を求め、その結果を対象のパスワードハッシュ値と比較するのである。ような現代的手法は、意図的に計算量の多いアルゴリズムを使っており、一定時間内に攻撃者が試行できる候補が比較的少なくなるようにしている。後述するソルト(英語版)は事前計算攻撃の難易度を飛躍的に上げるものであり、場合によってはあらゆる攻撃に耐えうるものである。その使用は、各々のケースについて評価すべきである。既存の暗号ハッシュアルゴリズムの分析を進めることは常に可能なので、今日は充分に耐性を持つハッシュであろうと、明日もそうだとは限らない。効率的に行なわれる総当り攻撃に対しては充分でないことが示されている。(暗号ハッシュとは別の)暗号化アルゴリズムについても、同じ事が言える。破られており、その(56ビットという)短いキーは総当り攻撃に対してすら耐性がないことが明確かつ公然と分かるほど、コンピュータの性能は上がってきている。これらの方法で攻撃から保護されているパスワードはいずれ耐性を失ない、それに対応しないパスワードは暴かれることになるだろう。攻撃は、はっきり区別できるものではない。パスワード候補のリストを順に試してゆくという点で、それらは似通っている。そのリストは明確に順序づけられているかもしれないし、何らかのルールに従って集められているかもしれない。それはターゲットの情報を一まとめにしたものかもしれないし、言語学的な観点から作られたのかもしれない。つの攻撃方法と攻撃範囲を含めたものとして使われることが多い。類推攻撃[編集]ターゲットの個人情報に関する知識から、攻撃者自身がパスワードを類推することがある。類推されそうなパスワード例として、次のようなものがある。上記のどれかを少しもじったもの。多い)、あるいは文字の順番を入れ替えたりなど。こんにち、ターゲットの個人情報はオンライン上の様々な情報源から取得できる。攻撃者がターゲットと面識がある場合も同様に情報を得られるだろう。いうパスワードを使っていた場合、悪意を持った取引相手がパスワードを類推してしまうことがありうる。類推攻撃は特に、利用者自身がパスワードの初期化を行なえるシステムでは効果的である。メールが、何者かによって不正アクセスされる事件があった。犯人は3つあった認証用の質問のうち、彼女の郵便番号と誕生日を調べ上げ、さらに彼女が夫と出会った場所を推測できたのである[3]。辞書攻撃[編集]詳細は「辞書攻撃」を参照ユーザはしばしば脆弱なパスワードを選ぶものである。危険なパスワードのうちには、上で挙げたものの他、辞書に載っているような一単語、自分の苗字や名前、短すぎるパスワード(6-7文字以下は短すぎると通常考えられる)、ひねりが無さすぎてすぐ類推できてしまうパスワード(例えば母音と子音を入れ替えたもの)が挙げられる。辞書や場合によっては個人情報も使って実行される洗練されたクラッキングソフトの前ではたちまち分かってしまうということが明らかにされている[4]。一単語の末尾に数字を一個加えたものだった。ユーザの中には、アカウント取得時に与えられた初期パスワードを変更せず放っておく者もいる。ハードウェアの初期パスワードを変更せず放っておく者もいる。悪い意味で有名なのが「FieldService」というユーザ名と「Guest」というパスワードの組み合わせである。システム設定をする際にこれを変更しなかった場合、そのシステムの知識を持つ誰かがそのパスワードを悪用しているかもしれない。その種のメンテナンス用アカウントは、一般ユーザのアカウントよりも大きなアクセス権限を大概は持っている。初期パスワードの一覧はインターネット上で見つけることができる[6][7]。スクリプトを使うだけで軍用ネットワークに侵入できたと主張している。言い換えると、そのネットワークには全くパスワードを設定していないコンピュータがいくつもあったのである[9]。ターゲットの個人情報を元に、ありえそうなパスワードのパターンを生成するクラッキングソフトが存在する[10][11]。最後の手段のひとつとしてあるのが、考えうる「全ての」パスワードを試す、いわゆる総当たり攻撃である。理論的には、試行回数に上限が無いとするならば、総当たり攻撃は必ず成功する。有効なパスワードを決めるためのルールは公にされている必要があるからだ。パスワードが長くなるにつれて、考えうるパスワードの数も増加する。この攻撃方法は、攻撃者がパスワードのハッシュ値とハッシュアルゴリズムを知っているかどうかで大きく様相が異なり、知っている場合は「オフライン攻撃」(保護された対象へ接続している必要はない)、知らない場合は「オンライン攻撃」と呼ばれる。オフライン攻撃の方が通常はるかに容易である。パスワードの検証は、候補となるパスワードのハッシュを数学的に計算し、実際のパスワードのハッシュと比較するだけで済むからだ。オンライン攻撃の場合、攻撃者は全てのパスワードについて認証を試みなければならず、システムによって規則[訳語疑問点]と遅延が課せられ、またそれらの試みは記録される。文字以上の長さにすることが一般に推奨される。システムでは不充分である。バイト列に分けてしまうからだ。文字のパスワードに変換される。形式でのパスワード保存を無効化すべきである[12]。システムによっては、パスワードに数字しか使えなかったり、大文字しか使えなかったり、あるいは一般的に言って、パスワード用の文字に制限を設けている場合がある。したシステムも、比較的容易に総当たり攻撃をかけることができる。した場合(可能ならば)より長いパスワードを使うことで、文字パターンの制約を埋め合わせることができる。多くの文字を選べるシステムであっても、ユーザ自身が特定の種類の文字に限って選択を行なった場合(例えば大文字だけ選んだり、数字だけ選んだ場合)は、そのアカウントへの総当たり攻撃は非常に容易になってしまう。単純な総当たり攻撃であっても成功することはしばしばだが、人間がどのようにパスワードを選ぶ傾向を持つかという知見を悪用した「スマートな」総当たり攻撃は、さらに大きな脅威となる。ビットの範囲に収まる。このエントロピーは、暗号化キーとして安全だと通常考えられるレベルより遥かに低い。オフライン攻撃を考えると、この脆弱さは「あまりに脆弱すぎる」という話であり、また部分的には攻撃者の技量とリソース(例えば時間とマシンパワー)に負うものである。後者はコンピュータの性能が上がるにつれ大きくなるだろう。広く使われているハッシュ法は、さらに解析を早めるため、それに特化したハードウェアとして実装することも可能である。多数のコンピュータを並列に連結し、広大な探索空間の一部を各々が受け持つことも可能である。夜間や週末で使われていない事務所のコンピュータも、この目的に使うことができる。基本的な形態として、事前計算とは辞書(あるいはパスワード候補の探索空間)の各語のハッシュ値を計算し、ハッシュ値の一覧を検索できるよう平文パスワードとハッシュ値のペアを保存しておくことである。しておけば、暗号化されたパスワード(ハッシュ値)を新しく入手した際、平文パスワードを割り出すのは造作もないことである。ソルトが適切に使われていない場合、辞書攻撃において事前計算は非常に有効であり、大容量記憶媒体の劇的な低価格化で、かなりの大型辞書を使うことも現実的になった。効率的な事前計算攻撃の手法も考えられる。時間と空間のトレードオフを考慮すると、次のような妥協点が導かれる。この理論は、最近になって実際の技法として洗練されたものになっている。パスワードを二、三分で解析してしまうものもある。場合は、さらに時間が短縮される。ハッシュを標準で使っていた[12]。事前計算と似た手法に、いわゆるメモ化がある。これは複数パスワードの解析を、一個分の解析コストで済ませるために使われる。パスワードの暗号化は、記憶済みハッシュの比較よりもずっと時間がかかるため、一度暗号化したパスワードの内容は記憶しておき、効率的な探索アルゴリズムを使って各々暗号化したパスワードと比較するのである。この2つの手法は組み合わせることもできる。時間と空間のトレードオフを考慮した攻撃手法は、個別に解析するより短い時間で複数パスワードを同時に解析するよう、作り変えることができる。ソルト[編集]事前計算とメモ化の長所は、ハッシュの過程をランダム化することで打ち消すことができる。この仕組みはソルト(英語版)と呼ばれる。ユーザがパスワードを設定する際、「ソルト」(塩)という短いランダムな文字列をパスワードの末尾に加えた上で暗号化するのである。ソルトは、認証の際に利用できるよう、暗号化したパスワードと共に保管される。通常、ソルトはユーザ毎に異なるため、各パスワード候補のハッシュ値を一個しか計算していない事前計算リストはもはや役に立たない。ビットのソルトを使っていた。パターンのリストを作っていた。ソルトが充分な長さを持っているならば、考えうるパターンは膨大なものになり、攻撃者は各ユーザの各パスワード候補ごとに暗号化を試さなければならなくなる。ビットのソルトを使っている[14]。ビットのソルトを使っていた。用意できるようになった。構築することも可能である。数千ものパスワードを一度に解析対象とする場合、メモ化もやはり利点がある。対策[編集]パスワードクラックを防ぐ最善の方法は、攻撃者が暗号化されたパスワードにすらアクセスできないような仕組みを、確実に施しておくことである。当初は保存されていた。これにより、悪意を持ったユーザがまず手始めに暗号化されたパスワードを入手することは困難になる。広く使われている多くのネットワーク・プロトコルは、パスワードを平文もしくは脆弱なチャレンジ/レスポンス方式で伝送している[15][16]。ベースの方式へ置き換わっている[17]。その他のシステムも同様に、それらの方式へ置き換わりつつある。これらの新しい方式は、一度に複数のパスワードを解析する強力なオフライン攻撃を防げるよう、大きなソルト値を使用する。アルゴリズムもかなり計算量が多くなっており、オフライン攻撃を成功させるための時間が劇的に増大している[14]。セキュリティトークンのような仕組みを利用すると、特定の規則に従って決められた新しいパスワードを常時使うことができる。これは(攻撃者が次回のパスワード変更までに解析を済ませなければいけない点で)総当たり攻撃に許される時間をすこぶる減らすものであり、かつパスワードの有効期間が短いという点で、解析に成功したパスワードの価値を減じるものでもある。多くの訴訟支援用ソフトウェアにもパスワードクラック機能がついている。それらは最も効率的に働くよう、総当たり攻撃、辞書攻撃といった解析手法の組み合わせを採用している。完全に新しいパスワードを再設定する方がセキュリティ上リスクが少ないが、管理者権限が必要である。2011年1月13日閲覧。2014年9月19日閲覧。2011年1月13日閲覧。2011年1月13日閲覧。2009年2月18日閲覧。2008年11月1日閲覧。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。開発者Cookieに関する声明モバイルビュ。