パスワード解析

パスワードのロック解除
には専門技術が必要

一般的には、ネットで目にする「ロック解除対策」などがありますが、それらはあくまで初歩的なものだったり、信憑性に欠けるものがほとんどです。ここでは、私たちのようなプロでしか持ち得ない専門知識をいくつかご紹介していきます。

ブルートフォースアタック

ブルートフォースアタック総当たり攻撃とは、暗号や暗証番号などで理論的にありうるパターンをすべて入力し、解読する暗号解読法です。すなわち、人間による操作では不可能な、膨大な回数の計算をコンピュータにまかせ、時間の許す限りパスワードの検証等を行う行為を指します。この方法は、時間的制約が無ければ確実にパスワードをクラックできます。
イメージとしては、自転車のチェーンロックやトランクの番号合わせ式錠を、全ての番号の組み合わせ(4桁なら0000から9999まで)について片っ端から試す方法と同じで、全部の組み合わせを試せば理論的にはいつか正解にたどり着く、というわけです。どのような形態の暗号に対しても攻撃できますが、鍵の長さが増えると考えられる鍵のパターンの数は幾何級数的に増大しますが、時間さえかければ有効な方法であると言えます。

リバースブルートフォース攻撃

リバースブルートフォース攻撃とは、総当たり攻撃の変形です。通常の総当たり攻撃(ブルートフォースアタック)は、IDを固定し、パスワードをいろいろ試す、という攻撃方法であるのに対し、リバースブルートフォースアタックは、パスワードを固定し、IDをいろいろ試す、という攻撃です。特徴として、ユーザが任意のIDやパスワードでログインできるサイトは、比較的容易に突破可能です。これは、「ニックネームをIDの文字列に利用している傾向がある」「複数のブログ等でプロフィールに一致する内容が存在する」などの理由で、IDが想像しやすいからです。例えば、攻撃に使われるパスワードは単純な文字列で、「admin」や「123456」「password」などの文字列が選ばれます。ユーザーIDは「0001」「0002」「0003」「0004」などのように連続した文字列を順番に試行する場合や、「satou」「suzuki」「takahashi」などのように、辞書などによく載っているような(ユーザー名に用いられやすい)文字列を試行する場合などがあります。

パスワードリスト攻撃

あらゆる方法で入手したIDとパスワードの一覧(リスト)等を使い、攻撃対象サイトへログインを試行する攻撃方法になります。別名称で「リスト型攻撃」「リスト型アカウントハッキング」とも言われます。これは、「ユーザがIDとパスワードを使いまわしているのではないか」との推測のもとに実行されます。単純な総当たり攻撃とは異なり、既に利用されているIDとパスワードを用いて攻撃を行うので、攻撃者は効率を上げることができます。独立行政法人情報処理推進機構(IPA)および警察庁から注意喚起が発表されていましたが、2013年にはパスワードリスト攻撃により国内の大手ポータルサイト、オンラインショッピングサイトなどが次々に攻撃を受け、サイト利用者のアカウントを用いた不正なログインが発生する被害が報道されています。

ディクショナリアタック

辞書にある単語を片端から入力して試すというもので、そのまま入力するだけでなく大文字と小文字を混在させたり数字を加えたり、辞書や人名録などのリストに載っているような既存の単語や、それらの組み合わせした処理も加えて実行するものが多くなります。辞書の内容は単語、人名、地名、暦生年月日、住所録などです。その他入力系アルゴリズム(例えばQWERTYなどのキーボード配置)、文字列節アルゴリズム(単語と単語の間に-_.,などの記号を用いる)などが含まれてます。多くのユーザーはパスワードは忘れると困るので、記憶しやすいように意味を与えます。アニメのキャラクターの名前、映画タイトル、記念日、音楽バンドの曲名だったりです。ディクショナリアタックはその意味のあるパスワードをユーザーが設定しやすいということを逆手に取ったクラッキング手法になります。何万語も収録された辞書でも、コンピュータに自動処理をさせれば短時間で入力できるため、基本的なパスワード破りの手口として用いられています。

レインボーテーブル

ハッシュから平文を得るために使われる手法です。レインボーテーブルは、このハッシュだったら平文はこの内容というのを明らかにするものです。
下記はハッシュ値と、平文のセットを持ったテーブルになります。
もし、ハッシュが「1d9a68c08eaec4927173af57683f05d9」だった場合はパスワードが「tarou」であることが分かります。
「6683916d3d03193b800cf558abccf019」だった場合は「hanako」というパスワードになります。これを様々な文字列を総当りでやっていく手法になります。
また、本来ハッシュ値は、計算前と計算結果の関係が1対1であることが理想です。
しかしmd5アルゴリズムには意図的に異なる文字列から同一のハッシュ値を算出出来る脆弱性が指摘されているため、「SHA-1」アルゴリズムなどと組み合わせて算出する手法が採用されています。