第25回 安全なパスワードとは ~パス攻撃法と作り方~

皆さんはインターネット上のサービスなどを利用していますか?

サービスによっては会員登録などをするためパスワードを設定する場合がありますが、このパスワードを安易に考えて設定をしてはいないでしょうか。

ネット上でなくても自分のパソコン内でパスワードを設定する場所は多くあります。このようなところで数多く設定するパスワードですが、あまり安易なものにしてしまうと意味をなさなくなってしまう可能性があります。

この講座では、パスワードについてどのようなパスワードが安全なのか、その安全性について解説していきます。


なぜパスワードが必要なのか

そもそもなぜパスワードが必要なのか。

改めて言われなくとも大体答えは分かりますよね、一番は個人情報を守るためです。

例えば、ネット通販サイト大手「Amazon」ですが、通販サイトなので住所や郵便番号・電話番号・メールアドレス・クレジット情報などを入力しなくてはいけません。Amazonでは何度も個人情報を入力させない配慮としてデータベースにこれら情報を保存しています。

もちろん、このような情報は外部へ漏らすわけにはいかないため通信を暗号化し、登録したユーザーのみ入れるようパスワードを設定しているのです。

パスワードは他人に見られると困るものに対して保護する有効な手段といえます。

Amazonのサインインシステム
▲Amazonのサインインシステム

安易なパスワードとはどんなものか

パスワードを設定しても、安易なパスワードはすぐに破られてしまいます。(どんな攻撃方法があるかは後述)

では、安易なパスワードとはどんなものでしょうか。
セキュリティ企業Impervaは2010年1月22日、個人情報流出の被害に遭ったパスワードの分析結果を報告書にまとめ、安易なパスワードの上位10件を公表しました。それによると

  1. 「123456」
  2. 「12345」
  3. 「123456789」
  4. 「Password」
  5. 「iloveyou」
  6. 「princess」
  7. 「rockyou」
  8. 「1234567」
  9. 「12345678」
  10. 「abc123」

インパーバ社、3200万件の漏洩 パスワード解析結果を公表
http://www.imperva.jp/news/pr/20100121_imperva_password_report.asp

このような感じになるようです。皆さん中々覚えられないからでしょう、被害に遭った方々は数字や文字を順にならべたり簡単な単語をパスワードとしているようです。(「a~z」までのアルファベットのみ、「0~9」までの数字しか使っていないパスワードなども多かったようです)

その他にも「生年月日」「名前」や「辞書に載っている単語」などはパスワードとしての役目をあまり果していません。

パスワードの使い回しも危険

色んなサービスに対して同じパスワードを設定していると、万が一どれかひとつのパスワードが漏洩すると他のサービスにまで危険が及びます。

ご自分を守るためにも面倒くさがらずにひとつひとつ高度なパスワードを設定することを強くお勧めします。以下、参考URLです。

○「2割のユーザーは1つのパスワードを使い回す」、危険な実態が明らかに エフセキュアが注意喚起、芋づる式に破られる恐れ
http://pc.nikkeibp.co.jp/article/news/20100713/1026113/

どのようにパスワードが破られるのか ~攻撃方法~

では、どのような攻撃によってパスワードが破られてしまうのか、いくつか見ていきましょう。

オンライン攻撃とオフライン攻撃

まずはこの用語を簡単に解説。

オンライン攻撃とは、サーバーやサービスに対してパスワードやIDを入力して認証できるか試す攻撃です。

オフライン攻撃とは、パスワード保護のかかったファイルを自分のコンピューターにまで持ってきてそこで解析を試みる攻撃です。

総当たり攻撃(ブルートフォースアタック)

コンピューターの演算能力をフルに利用した単純な、しかし確実にパスワードを破る攻撃方法です。

総当たり攻撃【英:Brute force attack;ブルートフォースアタック】と呼ばれる方法で一般の人でも簡単にできるクラック方法(パスワードを知るために行われる手段)です。

総当たり攻撃は、名前の通り文字を1文字目から順に当てはめてパスワードを割り当てる攻撃です。例えば、4桁の数字がパスワードとなっていた場合、「0」~「9999」までを順に当てはめてパスワードを割り当てます。

単純明快な攻撃法ですが、その分確実性はあります。短いパスワードならコンピューターの演算能力で簡単に破られてしまいます。

LhaplusのZIPパス解析
▲Lhaplusには、パスワードを忘れたときのためにパスワード解析ができるようになっているが、これも総当たり攻撃である。パスワードが数字だけと分かっているならものの数秒で解析できる。

ただ、この攻撃法には弱点があります。それは利用する文字数と桁数が多くなると途端に実質解析不可能なレベルにまで文字列のパターンが増えてしまうことです。

例えば、半角英数字の大文字と小文字を使い、さらに数字を入れた8桁の文字列だと「218兆3401億558万4896 通り」という膨大な数になるので、いくらコンピューターでも時間がかかりすぎます。

対策法

つまり、この攻撃法の対策は利用する文字を多くし桁数を増やすことです。最低でも英数字6桁、推奨は大小文字の英数字+特種文字(@./!"#$など)8桁です。

○wikipedia「総当たり攻撃」
http://ja.wikipedia.org/wiki/%E7%B7%8F%E5%BD%93%E3%81%9F%E3%82%8A%E6%94%BB%E6%92%83

辞書攻撃(ディクショナリアタック)

総当たり攻撃を効率化した攻撃方法です。

辞書攻撃【英:Dictionary attack;ディクショナリアタック】と呼ばれる手法です。基本的なところは総当たり攻撃と一緒で文字列を順に当てはめていくのですが、すべてのパターンを試すのではなくパスワードとして使われやすい文字列をデータベース(辞書)に登録し、それを順に当てはめていくという手法です。

総当たり攻撃では、桁数が多くなると途端に解析に要する時間が多くなってしまうのですが、辞書攻撃の場合はいくら桁数が多くても辞書に登録されている文字列であったらすぐに解析されてしまいます。

対策法

人名や意味のある単語をパスワードとして使っていると、この辞書攻撃にやられてしまいます。全く意味のないランダムな文字列にする必要があります。

事前計算攻撃(レインボー攻撃)

事前計算攻撃【英:rainbow attack;レインボーアタック】はあらかじめパスワードとなりうる文字列のハッシュ値を計算してテーブル化しておくことで、問題となるパスワードのハッシュ値と比較し、本来のパスワードを推察する攻撃法です。

ちょっと難しい話なので簡単にしてみます。
パスワードを保存しているデータをまず入手します。しかし、それは暗号化されていて解読は難しくなっています。暗号化されたパスワードをハッシュ値といいます。

これ単体では解読できませんが、事前に様々な辞書(パスワード候補)の文字のハッシュ値を計算しておくと、それをもとにして問題のハッシュ値からパスワードが推測できるようになるのです。

レインボー攻撃
▲レインボー攻撃の例

対策法

この攻撃の弱点は、事前計算させたデータベース「レインボーテーブル」の容量が膨大になること、それと辞書にない単語は解析できないということです。

なので今までと同じように可能な限り長いパスワードを、しかもランダムな文字列にすることでパスワードが破られにくくなります。

どのようにパスワードが破られるのか ~盗難・盗聴~

今度はパスワードを直接破るのではなく「盗難・盗聴」方法をいくつか紹介します。


偽有料ソフトウェアで個人情報の入力を求める

何らかの方法で偽有料ソフトウェアをあなたのパソコンへ進入させます。有名なのは「偽セキュリティソフト」です。

偽セキュリティソフトが進入するとあたかも「ウイルスに感染している」かのようなポップアップ・ウィンドウを表示してユーザーを脅します。そして「ウイルスを駆除するには有料版を購入してください」という内容のメッセージが頻繁に表示され、購入画面に行くと個人情報の入力を求められます。

偽セキュリティソフト「AnchiWamu2008」
▲偽セキュリティソフト「AnchiWamu2008」。日本語に翻訳され、見分けがつかないくらい精巧にできている。

ユーザーの心理を利用した悪質なものです。焦って個人情報を入力してしまうと、攻撃者にその情報が転送され銀行口座などからお金を引き落とされてしまうなどの被害に遭います。クレジットなどの認証番号も入力させようとしてくるので、パスワードを自分から漏らしてしまうことにもなりかねません。

詳しい状況は様々なサイトや機関が警告をしているので参考にしてみてください。

画像で見る偽セキュリティソフトの"進化" - INTERNET Watch
http://internet.watch.impress.co.jp/docs/special/20090702_296695.html

不正プロセス強制停止ツール「Rkill」 & 偽セキュリティソフト - Let's HSP!
http://lhsp.s206.xrea.com/misc/rkill.html

IPA 独立行政法人 情報処理推進機構
http://www.ipa.go.jp/

被害に遭ってしまった場合は以下のサイトで相談できます。

情報処理推進機構 情報セキュリティ安心相談窓口
http://www.ipa.go.jp/security/anshin/

通信や操作、パソコン内のデータの流出

ウイルスやスパイウェアなどのマルウェアに感染するとインターネットとの通信を傍受されたり、キーボードの操作を監視してパスワードなどの個人情報を盗み出される可能性があります。

去年(2010年)の事です。FFFTPという有名なフリーのFTPクライアントソフトがあります。Webサイトなどのデータが置いてあるサーバーに対してデータを送受信するソフトですが、サーバーと通信するにはパスワードが必要です。このパスワードが「Gumblar」というウイルスによって抜き取られてしまい、Webサイトを改竄されてしまったという事件が発生しました。

このようにマルウェアに感染するとパソコン内のデータが抜き取られて知らない間に攻撃者に転送されてしまう場合があります。(FFFTPはレジストリにパスワードを保存していた。最新版は問題が修復されています)

また、ネットとの通信を傍受されてしまうと入力したパスワードなどの情報が流出しています可能性があります。これはSSL通信と呼ばれる通信を暗号化する技術で守られていますが(ネット通販など)、例えば無線LANの暗号化規格が古い場合はそこから漏れる場合があります。(第4回 あなたの無線LAN、勝手に使われていませんか?

キーロガー

キーボードでどのキーを押したのかが分かるソフトを「キーロガー」といいます。通常はプログラマーなどが自分の行なった操作を確認するために用いるソフトですが、これに外部と転送する機能をつけてコンピューターに進入させる手法もあります。こうなるともうウイルスですね。

キーロガー実験

私が持っているキーロガーを使ってみます。ソフト名は防犯の観点から控えさせていただきます。
画像のように私のキーロガーではキーボードで打ったキーの種類、時間が記録されます。このソフトはその他にもプラグインによって「デスクトップ画面のキャプチャ(撮影)」もすることができます。外部への転送機能はついていないので普通に使う分には問題ないですが、もしこれが悪用されるとパスワードなどすぐに漏れてしまいます。

キーロガーはマウスの操作まで記録しませんが、デスクトップ画面のキャプチャまでできるとなるとコピー&ペーストという回避策は意味が無くなります。テキストファイルなどでパスワードを管理しているとこれによって外部へ漏れてしまいます。

安全なパスワードとはどんなものか、その作り方

最後の偽セキュリティソフトやキーロガーは正規のセキュリティ対策ソフトを使用して駆除したり、ユーザー自身が気をつけることが回避策になります。それは以前の講座で紹介したので、今度はタイトル通り安全なパスワードとはどういったものなのかを解説します。

ランダムで文字の種類が多く、長いパスワード

先ほどは攻撃別で対策法を書きました。つまり、これをまとめればいいのです。

安全なパスワードとは以下のようなものです。

  1. 桁数(文字数)が多い。
  2. 文字の種類が多い。大小文字、英数字、漢字やひらがな、特種文字(@./!"#$など)を混ぜる。
  3. 単語ではなくランダムな文字列である。

この3つです。コンピューターが解析しづらい、予測もできないパスワードが理想となります。また、ウイルスやキーロガーによる流出を防ぐため、メモは取らず覚えておくことが最善な対策となります。

漢字やひらがなは利用できない場合が多いですが、利用できれば積極的に混ぜてください。漢字やひらがなの文字数はローマ字と比べ非常に多いため文字列のパターンを飛躍的に多くさせることができます。

また、パスワードを入力するサイトごとに別々のパスワードを用意します。これで万が一どれかひとつのパスワードが漏洩したとしても他のサービスまで危険は及びません。

安全なパスワードの作り方 - McAfee
http://www.mcafee.com/japan/security/mcafee_labs/blog/content.asp?id=1009

自分なりのルールを決めて覚えやすいパスワードを作ってみる

しかし、いくら安全とは言えこれらすべてを満たすには相当な記憶力がないと大変です。1個2個くらいならともかく十数個・・・人間が記憶できるパスワードの数は7個くらいという話も聞いています。

そこで自分なりのルールを決めてパスワードを作ってみたいと思います。以下は例です。

  1. 通販サイト「Amazon」用のパスワードを作る。
    まずキーボード上の[a][m][a][z][o][n]のひとつ上にあるキーに変換→「qjqa9h」
  2. キーボードの上にある数字のキーを使って自分の誕生日を入力する。ただし、Shiftキーを使って特種文字にする。11月06日なら「!!0&」(0はShiftキーで変化しないのでそのまま)
  3. ルールとして1で変換した文字の最初と最後を大文字にする。「qjqa9h」→「Qjqa9H」
  4. 最後のルールとしてどこのサイトでも共通な特殊文字と数字を3文字あたまに付けて結合すれば完成。
    共通文字「5^@」を頭につけてパスワード「5^@Qjqa9H!!0&」

これでパスワード「5^@Qjqa9H!!0&」が完成しました。マイクロソフトが提供するパスワード チェッカーでこのパスワードの安全性をチェックすると「強度:最強」となり安全性が高いことが分かりました。

パスワード チェッカー - マイクロソフト
https://www.microsoft.com/japan/protect/yourself/password/checker.mspx

ただ、誕生日の部分も共通してしまうので数字に関する別のキーワードをいくつか用意するとよりよくなると思います(身長・体重や携帯番号の一部など)。これと共通文字くらいならメモしても構わないでしょう。あとのルールさえ頭に入れておけばサービスを利用するときにパスワードを導くことができます。

このような感じで自分だけのルールを作れば覚えるのはルールのみ、それさえ分かればパスワードが導けるのでお勧めです。

パスワード管理ソフトを利用してみる

これ以外の方法としてパスワード管理ソフトを利用してみるという手があります。

パスワード管理ソフトで入力したパスワードは暗号化され保存されるので、保存データが漏れたとしてもパスワードまでは分かりません。

パスワード一覧を表示するためにマスターパスワードを設定する必要があります。これをひとつ覚えておけば保存されたパスワードがすべて分かるのでユーザーの負担が少なくなります。ただし、このマスターパスワードが漏れてしまうとすべてのパスワードが漏れてしまうことになるので注意してください。また、画面をキャプチャするマルウェアに感染していた場合は意味がないので利用する前にウイルススキャンすることをお勧めします。

この記事のまとめ

この講座ではパスワードをクラックするための「攻撃法」「盗難法」を紹介しました。どのような手口があるのかを理解するのが対策の第一歩です。

これを元にして安全なパスワードとはどのようなものなのか、その作り方も一緒に解説しました。

  • パスワードを破るための攻撃法や盗難法を知る。
  • 安全なパスワードとはどのようなものなのかを知る。
  • 覚えやすいパスワードを考えてみる。

個人情報を守ってくれているパスワード。インターネット上のサービスを利用するならば、被害に遭わないよう強固で安全なパスワードにすることを私は強くお勧めします。

Track Back

Track Back URL

コメントする

非公開。必須ではありません。

(いくつかのHTMLタグ(a, strong, ul, ol, liなど)が使えます)

このページの上部へ

サイト内検索

広告

最近のコメント

Powered by Movable Type 6.3.2