安全にWebサービスを利用するための実践的なパスワード管理について〜セキュリティーの専門家・徳丸浩さんインタビュー

近年、業務を行う上でWebサービスの利用は欠かせないものになっています。しかし一方で、不十分なパスワード管理によって不正ログイン等の被害を受けてしまうケースも後を絶ちません。

そこで、今回はWebアプリケーションのセキュリティーの専門家である徳丸浩さんにインタビューを行い、パスワードなどのログイン情報を管理する上で必要な知識や考え方について、お話を伺いました。

Webサービスを安全にご利用いただくために、役立つ情報をたくさん教えていただきましたので、ぜひご覧ください。

 

徳丸浩さんプロフィール画像
話し手:徳丸 浩

1985年京セラ株式会社に入社後、ソフトウェアの開発、企画に従事。1999年に携帯電話向け認証課金基盤の方式設計を担当したことをきっかけにWebアプリケーションのセキュリティーに興味を持つ。2004年同分野を事業化。
2008年独立して、Webアプリケーションセキュリティーを専門分野とするHASHコンサルティング株式会社(現EGセキュアソリューションズ株式会社)を設立。脆弱性診断やコンサルティング業務のかたわら、ブログや勉強会などを通じてセキュリティーの啓蒙活動を行っている。

 

基本的な考え方

Webサービスを安全に利用するためには、パスワードの適切な管理が不可欠だと思いますが、そのためにはやらなければいけないことが多すぎると感じてしまって、どこから手を付ければ良いかわからない方も多いと思います。まず最低限、気をつけなければいけないことがあるとしたら、どのようなことでしょうか。

パスワードを第三者に知られてしまって、被害を受けるというケースは実際に多く起こっています。具体的な例としては、まず「パスワードリスト攻撃」というものがあります。これは同じパスワードをいろいろなサービスで使い回していて、その中のどこかから漏れたパスワードでログインされてしまうというものです。この対策はシンプルで、パスワードはサービスごとに異なるものを設定し、使い回しは絶対にしないということです。

その他によくあるのは、「安易なパスワードを使っていて、推測で当てられてしまう」というものです。これは芸能人が被害に遭ったときによく話題になりますが、同じような手口で、会社の社員が自分の評価を見るために上司のアカウントでログインしていたというケースもあります。この原因は、どちらも生年月日や社員番号のように、公開の情報から推測できるパスワードを付けていることにあります。

社内でパスワードを知られてしまうケースとしては、紙のメモや手帳に書いたものを盗み見されるという話もありますが、この場合も要するに、管理が甘いことが問題です。

こうした被害に遭わないためには、推測しやすいパスワードを使わない、目につくところにパスワードを書いたものを置いておかない、ということが必要です。いずれもごく常識的な話ですが、実際に被害があるということは、それができていないということですから、普段からそういったことを心がけておくことが大切です。

 

では、具体的にはどのようにパスワードを管理すれば良いでしょうか。使い回しをしないとなると、たくさんのサービスを使っている人にとっては、パスワードを作るのも管理するのもかなり負担が増えてしまう可能性があります。

パスワードの決め方にはいろいろな考え方がありまして、たとえば、一定のルールに基づいたパスワードをサービスごとに付けるといった方法もあるのですが、私自身は、最終的には「ツールに決めてもらってツールで覚える」という方法に行き着くのではないかと思っています。

ここで言う「ツール」とは、「1Password」のような専門のパスワード管理ツールもそうですが、最近ではブラウザーもパスワード管理機能を提供していますので、これは欠点も指摘されているのですが、私自身はそういったものも含めて考えて良いと思っています。

パスワード管理ツールの良いところは、どれも暗号化に凝っていて、万一ツールを提供している会社が侵入の被害に遭った場合でも、漏洩した情報をなかなか悪用できないようになっているということです。

一方で、サービスによっては実際に侵入被害を受けたことがあったり、会社の規模も必ずしも大きくはないので、事業の継続性という点で不安を感じる人はいるかもしれません。

その点、ブラウザーを提供している会社はGoogleなどの大手が多く、ユーザーにとっての入手のしやすさや、利用しやすさという意味でも有効な選択肢だと思います。

ちなみに、じつは紙に書いて管理するという方法も、利用するサイトがある程度決まっているのであれば、必ずしも悪い方法ではないと思います。ただし、紙の場合は紛失や盗み見の懸念もありますし、新しいサイトを毎回追加していくのも大変です。

ブラウザーを用いたパスワード管理にも賛否両論があることは理解していますが、もし専門のツールを使うのが面倒で、そのせいで杜撰な管理をしてしまうというぐらいであれば、ブラウザーの機能を利用する方法でも良いと思います。

 

2段階認証

ここからは2段階認証に関していくつか伺いたいと思います。2段階認証は、通常のID・パスワードの他に何らかの要素を加えて、ログイン時の認証を強化するというものですが、現在一般的に使われている方法としては、アプリ・SMS・メール等で一時的に有効な6桁のコードを取得して入力するというものがあります。最近はこの2段階認証を提供するサービスも増えてきましたが、その効果について教えていただけますでしょうか。

2段階認証の利点はシンプルで、仮にパスワードを当てられても2段階目で防げるということです。とくに、使い回しをしていた人がパスワードリスト攻撃を受けるようなケース、あるいは推測が容易なパスワードを使っていて、当てられてしまったようなケースでは効果を発揮しやすいと思います。

一方で、2段階認証で注意が必要なのは、フィッシング(実在の組織等になりすまし、偽装したメールやWebサイト経由でログイン情報やカード情報などを詐取する行為)には弱いということです。せっかく2段階認証を設定しても、偽サイトで情報を入力してしまったら意味がありません。ですから、フィッシングについては2段階認証とは別の対策を考える必要があります。

 

2段階認証を設定できるサービスでは、必ず設定した方が良いでしょうか。十分に複雑で長いパスワードを使っていたり、使い回しをしなければ2段階認証は不要という声も聞きます。

2段階認証がカバーする対象は、基本的に「弱いパスワードを使っているケース」です。また、先ほど言ったようにフィッシング対策としては不十分ですから、「パスワードがしっかりしてさえいれば2段階認証は不要なんだ」という意見も間違いとは言えません。

ただ、フィッシングに弱いというのはあくまでも「複雑で高度なフィッシングに弱い」という意味で、フィッシング全般に対して効果がないということではありません。最終的には費用対効果ということになると思いますが、設定できるのであれば設定するに越したことはないと思います。

 

2段階認証に対応していないサービスを使う場合は、どうすれば良いでしょうか。長く複雑なパスワードを作って、使い回しをしないなどの運用を心がければ、ある程度のリスクは低減できると考えて良いでしょうか。

そう思います。ちなみに、パスワード管理ツールを使うメリットとして、フィッシング対策として有効ということがあります。パスワード管理ツールは、正しいサイトであれば自動的にパスワードを入れてくれますが、フィッシングのサイトはドメインが本物とは違いますので、自動的にはパスワードが入りません。もちろん、それでも自分で入れてしまったら意味がないのですが、少なくとも本物のサイトとの違いには気づきやすくなります。

パスワード管理ツールを使って、長く複雑なパスワードを設定しておけば、それだけでも相当な効果はあると言えます。

 

2段階認証では、バックアップコードの保存を求められることが多くありますが、実際にはバックアップコードを保存せずに、「機種変更したらログインできなくなった」というお問い合わせが少なからずあります。サービス提供者としても、なるべくユーザーが負担を感じずにバックアップコードを保管できる方法がないかと頭を悩ませているのですが、「安全かつ確実にバックアップコードを保管する」ための良い方法はありますか。

私自身は、古典的ですが、印刷してどこかに保存しておくという方法が手堅いのではないかと思っています。

紙に印刷する場合のリスクとして、泥棒に持っていかれるかもしれないという話も聞きますが、物取りに入った泥棒がそういったものを取っていくことは考えにくいように思います。デジタルメディアへの保存も故障等で見られなくなるリスクがありますし、最終的には紙で保存する方法がバランスが良いのではないかと思っています。

 

パスワード管理ツールの中には、通常のパスワードを管理するだけでなく、2段階認証のアプリとしても使用できるものがあります。ただ、この場合は同じWebサービスのID・パスワード・2段階認証の設定がすべて同一の場所に保管されるので、スマートフォンのアプリなどを使用する場合と違って、「多要素」ではなくなってしまうという問題もあると思います。このような管理方法は避けるべきでしょうか。

理想としては、2段階認証の設定はパスワード管理ツールから分けて、スマートフォンなどの別の場所で管理した方が良いと言えますが、1つの場所に集約することで2段階認証を楽に使えて、利用が進むのであれば、パスワード管理ツールに集約しても構わないのではないかと思います。

先述のように、パスワード管理ツールは相当凝った方法でパスワードを暗号化していると言われていて、最近「LastPass」が大きな流出事故を起こしていましたが、それでも現時点では、流出したデータが悪用されたという話は出ていません。

もちろん、2段階認証のコードを別途管理したいという人がいればそれは結構なことで、反対する理由はないのですが、大半の人はパスワードをあまり適切に管理できていないという状況がありますから、パスワード管理ツールを使って、しかも2段階認証まで設定するのであれば、それだけでも相当安全性は高くなります。理想を高くしすぎて行動できなくなってしまうよりは、1つの場所に集約してでも設定した方が良いと思います。

 

2段階認証では、アプリ・SMS・メールなどいくつかの手段がありますが、安全性の違いはありますか。それとも、選べる場合はどれでも良いでしょうか。

日本ではSMSを使う人が多いですが、グローバルなセキュリティー基準で見ると、SMSはあまり推奨されていません。その意味では、スマートフォンのアプリを使った方が良いと言えますが、現実的な問題として、一般の人が2段階認証のアプリに慣れるのはなかなかハードルが高いと思います。

メールはだいぶ前から盗聴リスクが高いと言われていますが、SMSは暗号化された経路で届きますから、メールほどは盗聴のリスクも高くないと思います。SMSは先述の通り、国際的には推奨されていないものの、設定しないよりははるかに安全になるので、あまりこだわらずに自分に合った方法を使えば良いのではないかと思います。

 

パスワードに関するよくある話題

ここからは、パスワード全般に関する個別の論点について、徳丸さんのご意見を伺いたいと思います。まず、適切なパスワード管理という話題では、「定期的な変更」の必要性が議論の的になります。「パスワードは定期的に変更すべきだ」「いや、定期変更に意味はない」といったものですが、実際のところ、パスワードの定期変更に効果はあるのでしょうか。

パスワードの定期変更については様々な意見があるのですが、まずはそもそもの問題として、それにどういった効果があるのか、あるいはどういう場面で有効なのか、ということがよくわからないまま広まってしまったということを押さえておく必要があると思います。

よくある誤解は、「パスワードを定期的に変更しておけば、ブルートフォース攻撃(パスワードを次々に変えながら不正ログインしていく攻撃)を防げる」というものです。いろいろなパスワードを試すのに1年かかるとして、それに対して3ヶ月に1回変更すれば大丈夫だというような話ですが、これは確率論的に見れば間違いで、若干は危険性を減らせるかもしれないですが、すごく効果があるというものではありません。

ではまったく効果がないのかと言ったら、そういうわけではありません。不正な手段でパスワードを知った人に対して、そのパスワードを無効にできるといった効果はあります。たとえば、退職した社員が共有アカウントのパスワードを持ったまま退職していて、会社の方でそれに気づいていないという場合、1年ごとにパスワードを変えておけば、最大で1年間は知られたままですが、その後はその元社員はログインできなくなります。

本来であれば、社員が退職したら即座にそのパスワードを無効にしなければいけないわけですが、なかなかそうもいかないという場合は、ベストな方法ではないとしても、1つの緩和策として、定期的に変えておけば対策になる面もあるということです。

逆に言うと、「退職後はすぐにアクセスできないようにしている」という場合は、定期変更をする理由はありません。また、社員の退職等ではなく、システムの脆弱性からパスワードが漏洩していた場合は、その脆弱性自体が解消されない限り、パスワードの方をいくら変更しても意味がありません。

そう考えると、パスワードの定期変更には限定的な場面で効果があって、それ以外の場合でもあまり意味はないかもしれないけれど、とくに害はないのだから、何も目くじらを立てて否定する必要はないじゃないか、という話になりそうですが、問題はこの先にあります。

セキュリティーの分野では様々な研究が行われているのですが、その1つとして、一般の人たちにパスワードを定期的に変更してもらうという実験をしたところ、通常より容易に推測できるものが多くなったというデータが得られました。つまり、定期変更を強制することによって、かえって個々のパスワードが弱くなるという悪影響が認められたということです。加えて、生産性への悪影響も見られるということで、サービスの運営者がパスワードの定期変更を促すのは良くないということがわかっています。

ただし、ここで大切なのは、悪影響はあくまで「強制的に変更させた場合」に生じるということです。もし意識の高い人が個人的に、毎回複雑なパスワードを定期的に作るというのであれば、とくに問題はありません。

 

あくまで限定的な場面で効果を発揮する方法が、一般的な対策として広まってしまったということでしょうか。

初めに触れたように、この方法が広まった当初は「こういうときに効果がある」という条件が明らかになっていなかったんですね。そのせいで過剰に広まって、効果がないケースでも使われるようになってしまった。たとえば、よく芸能人がパスワードを破られてしまったというときに、それを取り上げる記事や反省文などの中で、「パスワードを定期的に変更しておけばよかった」と言われてしまうことがあります。本当の原因はパスワードが弱かった点にあるわけですが、こうした記事が出ることで、誤解が再生産されてしまいます。

パスワードを1回変えるのは、良いことなんです。「パスワードが弱いと思ったから安全なものに変える」というのはとても大事なことなのですが、その後に続けて何回も変える必要はないということです。

 

もう1つ、よく話題になるものとして、パスワードを付ける際のルールに関する議論があります。英数字だけでなく記号も混ぜた方が良いとか、何桁以上でなければいけないとか、いろいろなことが言われますが、こうした条件についてはどう考えればよいでしょうか。

現在の主流的な考えでは、文字種を混ぜたりする必要はないということになっています。極論すれば、数字だけでも良いということになりますが、では数字8桁の「12345678」でも良いかと言ったら、当然駄目なわけです。

たとえば、数字8桁という条件で何通りの組み合わせがあるかといったら、1億通りです。しかし、1億通りというのはセキュリティーで要求される水準からすると、ちょっと少ないんですね。それなら、クレジットカードでも使われている16桁ぐらいだったらいいだろう、というふうに適切な条件を考えていくことになるわけですが、実際には、「数字だけなら何桁以上にしましょう、英字を混ぜるなら何桁で大丈夫」などと場合分けしながらルールを作ったり、その根拠を示したりするのは手間がかかりますし、現実的にそのような条件で運用するのは難しいと思います。

では、こういった状況にサービス側がどう対応しているかというと、たとえば「文字数は8文字、文字種は英数記号を全部使える、ただしそれらの文字種をすべて混ぜる必要はない」ということにして、その上で脆弱なパスワードは全部弾くという方法があります。脆弱なパスワードというのは「password」とか「12345678」といったものですが、あらかじめ辞書を用意しておいて、明らかに弱いパスワードは弾くようにする。この方法を最初に採用したのはTwitterですが、その他にもいくつかの大手のサービスがやっています。

この方法であれば、利用者の方でそういったルールを気にしすぎる必要はないということになりますが、現時点ではまだあまり広く浸透しているとは言えないですから、結果的には、必ずしも推奨されていないとしても、「複数の文字種を混ぜて作りましょう」ということになっても仕方がない面はあると思います。

 

その他のセキュリティーに関する話題

ここからはパスワードの話題に限らず、セキュリティー全般についてお話をお聞かせください。よく企業が採用するセキュリティー対策として、「IPアドレス制限を設定して、社内からしかアクセスできないようにする」というものがあります。セキュリティー対策としては古くからあるものですが、その効果については賛否両論あるようです。この点についてはいかがでしょうか。

IPアドレス制限については、時々極端に否定的なことを言う人もいますが、理論的には必ずしも悪いものではありません。少し不便ということを脇に置けば、安全上のデメリットはあまりないと思います。

初めにIPアドレス制限をして良かったという話をすると、2004年頃に「SQLスラマー」という自動感染型のマルウェアが世界的に流行しました。でも、日本ではほとんど感染例がなかったんですね。これは簡単に言ってしまえば、IPアドレス制限をしていたからです。

自動感染型のマルウェアといえば、「WannaCry(ワナクライ)」もそうですが、これはマルウェア自体がネットワークで勝手に感染していくというものですから、そのためにはまずネットワークに到達しなければいけません。しかし、IPアドレスが制限されていれば到達できませんから、WannaCryも日本では感染例が少なかったんです。これは、IPアドレス制限やファイアーウォール(外部から社内ネットワークへの不正なアクセスを阻止するための仕組み)の恩恵だったと言えます。

では何が問題なのかというと、IPアドレス制限に頼りすぎてしまうということです。たとえば、1台のサーバーは外部と通信しなければいけないので、外部から入れる状態になっていたという場合、内部のセキュリティーが弱ければ、その1台経由で社内中に感染してしまいます。

これに関連する話としては、最近のランサムウェア(コンピューター等に感染して身代金を要求するマルウェアの一種)の事例があります。この場合も、本来侵入できるのは社内ネットワークまでであって、内部に入りさえすれば簡単に感染できるのかといったら、普通は簡単ではないし、簡単であってはいけません。もし社内ネットワークに入りさえすれば誰でも悪いことができるというなら、社員でも悪いことができてしまいます。

つまり、本来は社内ネットワークに到達できても悪いことができないようにしておかなければいけないのですが、IPアドレス制限を過信してしまうと、内部の機器などに脆弱性が残ってしまうということです。

最初にIPアドレス制限には不便な場合もあるという話をしましたが、それを回避しようと思った社員が内部から穴を作ったりしやすいという問題もあります。これ自体はIPアドレス制限のデメリットとは言えませんが、IT統制が不十分だと、そのような経緯で外部からの侵入口が作られることにも繋がりうるということです。

 

では、比較的最近のセキュリティー対策として、「シングルサインオン」についてはいかがでしょうか。あまり馴染みがないという方もいると思いますので、セキュリティー上のメリットなどについて、簡単に教えていただけますか。

最近の流行り言葉で言えば「ID連携」ということになると思いますが、個別のサービスにIDやパスワードをそれぞれ設定するのではなく、Oktaなどの専門のプロバイダーやGoogle Workspaceなどを用いてIDを集約するという管理方法です。

IDプロバイダーは安全性を高めるために相当投資をしていて、たとえばリスクベース認証(ユーザーの行動パターン等をもとに、必要に応じて追加認証を行う本人認証の一種)とか、漏洩したパスワードを使おうとしたら警告を出すとか、不正ログインの監視をするといったことに対応しています。こういったサービスを提供するためには、専門的な知識を持つだけでなく、長年のデータの蓄積なども必要になってきますので、通常のサービスではなかなかそこまでできません。その意味で、そういったところにIDを寄せるというのは1つの有効な選択肢だと思います。

デメリットとして、そういったサービスは概して価格が高いということはありますが、そういう場合は簡易的にGoogleのアカウントを使うという方法もあると思います。

 

ログイン情報の管理方法に関する問題で、メーリングリストのように社内の複数人が受信できるメールアドレスを使って、アカウントを登録するケースが見られます。こういった使い方について注意すべき点などはありますか。

教科書的に言えば、そうしたメールアドレスを使うのは絶対に避けるべきということになります。なぜなら、そのメーリングリストの受信者はみな同じ権限を持つことになりますから、まず社内統制上の問題があります。

また、その中の誰かが何か悪いことをしたときに、誰の仕業なのかを追跡しづらくなります。人間というのは、誰にもばれないと思ったら悪いことをしてしまうものですから、情報を管理する上ではそういう前提を持っておく必要があります。

いろいろな事情があって、メーリングリストを使いたいという気持ちもわかるのですが、セキュリティーの面から見れば絶対に避けるべき運用ということになります。

 

boardの取り組み

ここまで、「不正ログインの被害を防ぐ」という観点からいろいろとお聞きしましたが、不正ログインをされた場合に素早く気づけるということも大切だと思います。boardでは、それまでにログインしたことのない端末でのログインがあるとメールで通知が来る仕組みになっているのですが、このような仕組みは有効でしょうか。

不正ログインに気づける通知は有効だと思います。私自身も、設定できる場合は必ず設定しています。深夜に通知が来た場合はすぐに対応できないかもしれませんが、それでも通知がないよりはずっと良いと思います。

あまり通知が多くなると、鬱陶しくて通知を切りたくなってしまう人もいるかもしれませんが、新しい端末からのログインに絞るのであれば、そのあたりのバランスも取れて良いと思います。

その他に、不正ログインに気づける仕組みとしては、ログイン履歴を追える機能も有効だと思います。昔、GitHubに大規模な不正ログインが起きたことがありましたが、私もGitHubを使っているので履歴を見てみたら、タイや南米などいろいろな地域から不正ログインが試みられていました。そういうものを自分で確認できるというのは大事なことだと思います。

 

現在のboardの取り組みについて、もう1つご意見をいただきたいのですが、boardでは数年前から「セキュリティー割引」というものを提供しています。これは「会社アカウント内の全ユーザーに対して2段階認証を必須にしている場合」または「シングルサインオンを必須にしている場合」は、毎月の月額利用料を5%OFFにするという制度です。ログイン情報の取り扱いやセキュリティーに意識を向けてもらい、より安全に利用してもらうための取り組みなのですが、セキュリティーの専門家から見て、このような制度についてはどう思われますか。

素晴らしい取り組みだと思います。少し似た話で、もう何年も前のことですが、オンラインゲームのサービス事業者が2段階認証を設定したユーザーに特別なアイテムをあげるというキャンペーンがありました。

2段階認証の設定というのは、どうしても面倒というイメージを持たれがちですが、じつは1回設定してしまえばその後はあまり面倒ではないんですね。そういう意味でも、2段階認証などに触れるきっかけづくりとして、このような制度は有効だと思います。

 

最後に、今はまだ適切なパスワード管理ができていないという方に向けて、まずは何から手を付けていくべきか、最初の一歩を踏み出すためのアドバイスをお願いします。

ちょっとしたシミュレーションをやってみていただきたいと思います。たとえば、SNSのアカウントのパスワードが知られてしまったらどうなるか。アカウントを奪われて、なりすましで差別的な発言をされてしまったら大変なことになりますよね。そういう想像力を働かせてみると、それまで大して影響はないと思っていたものでも、実際には被害に遭ったら相当まずいということがわかると思います。そのことに気づければ、安全なパスワードや2段階認証を設定するモチベーションにもなります。

たくさんのアカウントを持っている人でも、まず自分にとって大切な5つぐらいから始めてみてほしいと思います。その5つだけでも、長くて複雑なパスワードにしたり、2段階認証を設定できるものは設定したりする。それができれば、じつはそれほど面倒ではないということもわかってくるし、そうなれば他のサイトもやってみよう、ということになるかもしれません。

不正アクセスというと、大きな会社が狙われるというイメージがあるかもしれませんが、今は普通の人も狙われていますので、決して他人事ではありません。ぜひ多くの方にそういう意識を持っていただきたいと思います。

 

関連記事

board事例インタビュー

決め手は、UIの使いやすさと見積書・請求書のフォーマットの美しさ・カスタマイズ性
メディアプローブ株式会社

使うことにした決め手は、「UIが使いやすい」という点と、「見積書や請求書のフォーマットが美しい、かつカスタマイズできる」という点。本当に求めていたサービスが出てきたと思っていて、スタートアップやSOHOはみんな使うべし、という感じです。

続きを読む
一覧に戻る