株式会社グローバルゲート公式ブログ

単純なパスワードはなぜ危険なのか?~ブルートフォース攻撃の実例と推測されにくいパスワードの考え方~

こんにちは。株式会社グローバルゲートのモーリーです。 
毎年楽しみにしていた夏の長期休暇もあっという間に終わり、いつも通りの日常が戻ってきました。
皆様はお盆はどうお過ごしでしたか?私は自宅でYoutubeを見ていたら終わってしまいました…。 

さて、今回の記事では単純なパスワードの危険性についてご紹介したいと思います。 
 
何らかの会員サービスに登録する際、自分でパスワードを決めないといけないことはよくあります。 
最近のサービスでは長い文字数や英数字など複数の文字種を組み合わせることを必須としているところが多く、忘れず複雑なパスワードがなかなか思いつかず、いざログインしようとしたときに思い出せずに苦労した経験をお持ちの方も多いと思います。 

当社のCMS「WebChanger」でもパスワードは「8文字以上、英語の大文字・英語の小文字・数字を組み合わせる」という制限をしています。 

銀行のキャッシュカードのように数字4桁でも許可してくれたらいいのに…と思われるかもしれませんが、短く特定の文字種だけのパスワードは簡単に推測できてしまいます。ユーザーの利便性という点から見ればマイナスな点もありますが、パスワードを推測され不正にログインされてしまうことの被害を考えると単純で短いパスワードは使うべきではないでしょう。

初歩的なパスワード解析の手口 

では簡単なパスワードはどれほど危険なのでしょうか。 
 
たとえば数字と英語によるパスワードを解析する場合、0,1,2....ZZZZと順番に総当りで調べていく方法があり、これをブルートフォース攻撃(Brute Force Attack)と呼びます。 
 
数字4桁の場合、組み合わせは10000通りです。大きな数値に思えますが、近年は高スペックなコンピュータが安価で手に入るようになったため、この程度では数分ですべてのパターンを試行することもできてしまいます。

ブルートフォース攻撃の実例 

実際にブラウザ上で動作する入力された文字列(パスワードを想定している)を見つけ出す簡単なプログラムを作成しました。 

こちらから実際に使用できます

パスワードを想定した文字列を入力し、「何を入力されたか解析する」をクリックすると0から9、aからzを全パターン組み合わせて入力された文字列と一致しているかどうかを判別します。 

試しに数字4桁を入力して総当りで調べてみます。 

「7581」という数字を見つけるために33万回試行し、要した時間は約30分でした。

高スペックなコンピュータやサーバーを使用すればさらに早く見つけ出すことができるでしょう。 
デモプログラムは入力内容を保存したり外部に送信したりはしていませんので、実際に文字列を入力して試してみてください(4桁の英数字で30分~1時間ぐらいかかります)。

念のため本当にどこかで使っているパスワードは入力しないようにしてください。 

ブルートフォース攻撃への対策 

もっとも、ブルートフォース攻撃は単純で古典的な攻撃手法であるため、ほとんどのWebサービスでは成功することはありません。 
一般的には以下のような対策が取られています。 

・複数回のログインに失敗した場合、一定時間アクセスを禁止する 
・仮にパスワードが見つけられてしまった場合でも、メールやSMSによって認証をしないとログインできない(ワンタイムパスワード) 
・ログイン時に簡単なパズルやクイズを解かせる(CAPTCHA) 
・サーバーが落ちる
(対策とは言えませんが…) 

当社のCMS「WebChanger」でもワンタイムパスワードをはじめとした対策を行い、ブルートフォース攻撃に備えています。 

ブルートフォース攻撃が有効なケース 

ですが現代でもこの総当りによるパスワード解析が有効なケースがあります。 
 
それは「暗号化されたZIPファイルのパスワードの解析」です。 
 
ZIPファイルはローカルにあり、何万回パスワードを試行してもアクセス制限がかけられたりファイルが壊れるようなこともありません。 
そのためZIPファイルにパスワードをかけることはセキュリティ対策としては意味がないというのが近年の定説となっています。 

つまりPPAPはセキュリティ対策になっていない 

メールに関するセキュリティ対策の一つで「メールで添付ファイルを送る際に圧縮してパスワードを設定し、そのパスワードはファイルを添付したメールとは別のメールで送信する」という方法があり、PPAPと呼ばれています。 

「Password(P)付きファイルを送る」「Password(P)を送る」「暗号化(A)」「Protocol(P)」の略だそうですが、無理やり感が…。 

これは万が一メールを盗み見られても、添付ファイルの取得とパスワードを記載したメールの2点がなければ添付ファイルを展開できない、という簡易の2段階認証のような手法です。 
 
ですが圧縮ファイルのパスワードは総当たり攻撃で判別可能なため、2通のメールを送る手間だけが増えてセキュリティ対策にはなっていません。 
 
官公庁や老舗の大手企業ではPPAPが義務付けられていたようですが、近年は廃止される傾向にあるようです。 

内閣府からも「適切ではない」と説明されています

安全なパスワードはどう作ればいいのか 

短いパスワードの危険性は前述の通りですが、では安全なパスワードはどう考えればいいのでしょうか。 
代表的な方法を2つご紹介します。 

「パスフレーズ」という考え方 

パスフレーズはパスワードを単語や文字列単位ではなく文章(フレーズ)として生成するというものです。 
たとえば好きな言葉や慣用句をローマ字にしたもの、英語にしたものをパスワードとして使用します。 

パスフレーズの例: 

osakametoromidousujisen (大阪メトロ御堂筋線) 
isekaidechi-tonouryokuwoteniiretaorehagenjitusekaiwomomusousuru (異世界でチート能力を手に入れた俺は現実世界をも無双する) 
doneisbetterthanperfect (Done is better than perfect) 

いずれも文字数は長いですが、文章ですので比較的容易に覚えられるのではないでしょうか。 
 
このような単純なローマ字では簡単に推測されてしまうのでは?と思われるかもしれません。 
ですが桁数が増えるごとにその組み合わせパターンは指数関数的に増加するため、文字列の組み合わせをすべて試すブルートフォース攻撃では解析にかかるコストが天文学的なものとなります。 
 
たとえばアルファベット小文字だけの組み合わせの場合であっても、 

1桁の場合…27通り 
2桁の場合…27*27 = 729通り 
3桁の場合…27*27*27 = 19683通り 
…… 
10桁の場合…205891132094649通り(200兆通り) 

となり、これほどの回数と長時間に渡る不審なアクセスがあればサービス提供者もアクセスを制限したりサービスを一時停止するなどの対策を取ることができます。 

パスワード管理ツールを使う 

パスワードを管理するツールを使って生成と記憶を任せるという方法もあります。 
 
パスワード管理ツールは代表的なものではLastPassや1Passwordがあり、各サービスのパスワードを保存して自動入力をしてくれる、新規でパスワードを考えないといけないときに推測されにくい文字列を生成してくれる、という機能があります。

マルチデバイス対応ですので、それぞれのアプリをスマートフォン・PC両方にインストールしておくことでパスワードとIDの一括管理が可能です。 

LastPass(iOS版)

1Password(iOS版)

ChromeやEdgeのようなブラウザにも同様の機能が搭載されています。 

現在のChromeはパスワード保存のほか、自動パスワード生成機能も備えています。

なお、パスワード管理ツールを使用する場合、そのパスワード管理ツールそのものに不正アクセスをされた際の被害が甚大ですので、全面的に推奨…とはいきません(実際にそのような事件もありました)。リスクを理解して使用することが求められます。 

総務省がパスワードの管理についての指針を公開していますので、こちらもぜひご一読ください。

まとめ

ということで、今回は短いパスワードの危険性やパスワードの作り方について実例を交えてご紹介しました。 
 
もっとも、パスワードという方式もコンピュータの黎明期から存在するものですので、現代ではより堅牢で安全なログイン方法も考えられています。 
 
当社のCMS「WebChanger」にも搭載しているワンタイムパスワード機能のほか、指紋・虹彩といった生体認証、ドングルと呼ばれる小さな機器を接続してログインするハードウェア認証など、コンピュータ犯罪の巧妙化に負けないように技術者も日々対策を講じています。 
 
当社も安心してCMS「WebChanger」をご利用いただくために、悪意のあるハッカーに破られない堅牢なサービスを提供していきたいと思います。 

【関連記事】

ご相談・お問い合わせ

当社サービスについてのお問い合わせは下記までご連絡下さい。

お電話でのお問い合わせ

06-6121-7581 / 03-6415-8161