ESET/マルウェア情報局

あらためて知っておこう、パスワード管理の基礎知識

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はキヤノンマーケティングジャパンが提供する「マルウェア情報局」に掲載された「セキュリティを高めるために知っておくべきパスワード管理の基本」を再編集したものです。

認証と認可の違い、理解できてますか?

 インターネットが世間一般に普及するきっかけとなったのはWindows 95のリリースだった。画期的なOSとして注目を集めたWindows 95に搭載されていたInternet Explorerの登場は、一般ユーザーのインターネット利用を大きく後押ししていくことになる。インターネットやパソコンなどの端末の普及と合わせ、「ログイン」という概念も一般ユーザーに浸透。同様に、それまでは銀行からの現金引き出しぐらいでしか馴染みのなかった暗証番号、パスワードも認知されるようになっていった。

 パスワードの和訳は「合言葉」、子どもの頃に作った秘密基地で仲間に「合言葉は?」というやり取りをした人もいるだろう。この場合、その言葉を知っている人のみが秘密基地への入場を認証されることになる。また、施錠された部屋に入る際は鍵を入手し、ロックを解除して入場する。このように、入場のための認証方法もさまざまあり、インターネットやデジタル機器においても基本は変わらず、以下図1のように大きく3つの要素で分類される。

図1 認証のための3つの要素

 先の例に当てはめると、合言葉は「知識」、鍵は「所有」の要素に該当する。書面への捺印の代替で利用されることもある拇印(ぼいん:親指に朱肉を付け指紋を押捺すること)は、「生体」の要素の一種とみなせるだろう。今後、技術が進展していくなかで、複数の要素を掛け合わせて認証を行なうことも見込まれる。

 認証という概念を考える際に、しばしば混同されがちなのが認可との違いだ。まずは下の図2を見てほしい。Aさんが、コンサートが開催されるスタジアムに入場するシーンを想定している。

図2 認証と認可の違いについて

 「Aさんは入場の際に求められるコンサートチケットと顔写真付きのIDを用意しています。現地の係員に対してAさんはまずIDを提示し、ID上の顔写真との照合を受けることになります。この『認証プロセス』で、係員が本人であることを確認できれば認証されたということになります。続けてAさんはチケットを提示し、記載された名前とID情報についての照合を受ける、『認可プロセス』へと進みます。係員のチェックを通過することではじめてスタジアムへの入場を認可されるということです。

 実際にはこの2つのプロセスはまとめて行なわれることもあり、確認を行なう係員でも意識をしていることはほとんどないでしょう。しかし、手続き的には認証と認可の2つのプロセスを経過し、コンサートへの参加を許可されたという流れとなります。ウェブ上でのサービスなどでも、パスワードでログインすると同時にサービスの利用を許可されるものがほとんどです。これはサービスを初めて利用する際に、サービスの料金や利用規程などに承諾をしたためであり、認可というプロセスを無意識に行なっているのに過ぎないのです。」と中濱は述べる。

 すなわち、認可とは認証を経て進む次のプロセスであるが、しばしば無意識のうちに行なう、あるいは省略されるため、一緒にみなされがちだ。実際、2つのプロセスは異なるものの、認証の通過をもって認可するということが一般的となっている。

安全性を高めるパスワード設定とは

 認証の概念として日本国内で一番わかりやすい例は、先述のように銀行口座の暗証番号かもしれない。キャッシュカードをATMに挿入後、事前に定めた4桁の数字を入力する。手続きが「1.キャッシュカードの所持(所有)」、「2.暗証番号の入力(知識)」というふたつの要素での認証プロセスではあるものの、4桁の数字であることに脆弱性を抱えている。4桁の場合、1万通りの数字の組み合わせとなり、正しい番号を導き出す確率は0.01%のみ。しかし、暗証番号が電話番号や誕生日などに関連するものだった場合、それらの情報を知るような人にとっては確率が大幅に上がることになる。個人情報の漏えいが続いている現代において、このような個人情報を知る人はなにも家族や友人だけではない。金融機関などで個人情報に関連する番号をパスワードとして推奨しないのはこうした理由による。こうした考えは認証に使用する情報全般に共通する。

 「ウェブなどのログインで使用するパスワードについても、基本的な考え方は変わりません。わかりやすい・他人に知られやすいものは避けること。『aaaaaaaa』や『01234567』などのシンプルなパスワードを設定するユーザーが少なくないことが研究結果で判明していますが、これも避けるべきでしょう。攻撃する側は『総当たり攻撃』、『辞書攻撃』といった手法を使うのが一般的です。要するに、それぞれの攻撃特性を踏まえたパスワード設定が安全なのです。」

 上記のように中濱はパスワード設定のポイントを解説するが、ここで総当たり攻撃と辞書攻撃の仕組みをおさらいしておこう。

・総当たり攻撃の仕組み

 この手法は「ブルートフォース攻撃」とも呼ばれ、パスワードに設定できる文字列を片っ端から組み合わせ、自動化プログラムで膨大な入力を繰り返すことで正解となるパスワードを導き出す。ユーザー側の防御方法としては、攻撃側の確率を下げるべく、パスワードの文字数を増やす対策がある。下の図3の通り、文字数を増やすことで、乗算的に組み合わせは増加する。図中の試算では、半角英数字(10文字+26文字)8桁の場合は「36の8乗」通りの組み合わせ、10桁の場合は「36の10乗」通りの組み合わせとなり、1296倍に増加することになる。要するに、攻撃側の試行回数が増えるため、正解にたどり着く確率が低くなるのだ。

図3 文字数8桁と10桁での組み合わせの違い

・辞書攻撃の仕組み

 こちらの手法も自動化プログラムで入力を繰り返して正解を導き出すという点では変わらない。しかし、無選別に繰り返す総当たり攻撃とは異なり、正解の確率が高いパスワード文字列が記載された辞書をベースに順に試行していく。ユーザーが設定するパスワードの傾向や過去の試行結果などをもとに辞書は絶えずアップデートされるため、総当たり攻撃よりも正解の確率は高くなる。ユーザー側としては誕生日や住所などを設定しないのはもちろん、単語をアルファベット化する、例えば「富士山」を「fujisan」とする設定も避けるべきだろう。また、先述の通り「aaaaaaaa」のようなシンプルなパスワードをユーザーが設定しがちであることが研究結果でも判明しているため、攻撃側も優先してこうしたパスワードの入力を試行することを認識した上でのパスワード設定が必要なのはいうまでもない。

 なお、総当たり攻撃と辞書攻撃を別の攻撃手法として説明したが、攻撃側は確率の高い順番で組み合わせて試行を重ねる。最近は進化した機械学習を用いて、より確率の高い組み合わせの辞書を生成することも容易となっており、推測しやすいパスワードを設定することは攻撃側の成功確率を高めることに直結するという点は頭に入れておきたい。

 ユーザーからすると、システム側で複数回の入力ミスが起きるとロックされることを踏まえ、ある程度複雑であれば問題ないと考えるかもしれない。しかし、3回のミスでロックされるということは1年間ではおよそ1000の組み合わせを試すことが可能であることを知っておく必要がある。攻撃側は自動化プログラムを設定するだけなので、すぐに正解にたどり着く必要はない。だからこそ、攻撃側の成功確率を下げるための設定が防御する側には求められるのだ。

 最近では設定するパスワードの文字数については下限を8桁としていることが多い。しかし、最低15文字以上が望ましい基準とされる。パスワード設定は数字、英小文字だけでなく、英大文字、記号までを組み合わせるものがあるが、単純に桁数を増やすほうが組み合わせの数を増やすことができ、成功確率は下がることも覚えておくといいだろう。

より安全性を高める二段階認証の仕組み

 15文字以上の文字列でパスワードを設定することが望ましいと先に述べたが、利用しているウェブサービスのパスワードをすべて異なる15文字以上に設定したものを記憶するのは現実的ではない。そこで検討したいのがパスワード管理ツールの利用だ。以前は専用の管理ツールを利用する必要があったが、最近はChrome、Safariなどのブラウザーでは自動でパスワード生成して管理まで対応してくれる。すべてのパスワード管理を任せれば、ユーザーはブラウザーへのログイン時のパスワードだけ管理すればよく、管理上の負担は大きく低減される。しかし、裏を返すとブラウザーのパスワードが漏れログインされてしまえば、すべてのパスワードが漏えいしてしまうことを意味する。そこで取り得る対策として上がるのが二段階認証など、二重で認証を行なう仕組みの活用である。

 二段階認証とは、ログインする際にパスワード以外の認証要素を加えること。すなわち、「所有・知識・生体」の3つの認証要素を組み合わせて二段階で認証することで安全性を確保する。パスワードは知識の要素となるので、所有や生体の要素と組み合わせるケースが多い。一番よく知られているものとしてワンタイムパスワードが挙げられる。下の図4を元に、中濱がワンタイムパスワードの仕組みを解説する。

図4 ワンタイムパスワードでのログインの流れ

 「ワンタイムパスワードは基本、スマホなどユーザーのデバイスに送られます。つまり、要素としては『所有』に該当します。ワンタイムパスワードは15分など有効期限が設定されており、発行するたびに異なるパスワードが発行されることになるため、なりすましで利用される危険性も低いと考えられています。とはいえ、最近はワンタイムパスワードも含めて認証情報を取得するフィッシングサイトも登場しています。攻撃者が情報を取得後、即座にログインして不正を行なうという事例も出てきていることにも注意を払わなければなりません。」

 二段階認証で使われるのはワンタイムパスワードだけではない。SMSや電話音声などで4桁の認証番号を伝える方法や、カードやUSB型のドングルなど小さな物理デバイスを用いるケースもある。ネットバンキングではアプリを通じて二段階の認証を行なうものもある。安全性の観点からは、やはり物理デバイスを併用する方法が強固であり、偽造の可能性も低い。

 「二段階で認証する上に物理デバイスを用意するというのは当然、不便に感じる人も多くなると思います。安全性と利便性の妥協点で選択されているのが、SMSや電話音声などを利用した認証番号の通知です。しかし、SMSの場合はスマホ上にマルウェアが仕込まれたアプリが存在すると、認証番号が盗まれ、不正ログインされてしまうという攻撃手法が成功してしまうことになり、『NIST SP800-63B』でも推奨されていません。利用する際は、自身のスマホ内にそうした感染したマルウェアがないかを把握しておくべきでしょう。」と中濱はユーザーに注意を喚起し、「例えば、『ESET モバイル セキュリティ』では既知のマルウェアだけでなく、新種・亜種のウイルスも高性能なヒューリスティック機能でリアルタイムに検出し駆除する機能を備えているので導入を検討してはどうか」と提案する。

現実空間とリンクし始めたサイバー犯罪

 スマホの普及でデジタル空間への依存度が高まるなか、現実空間とリンクした犯罪も起き始めている。2019年秋に注目を集めた、被害者のSNS上の投稿を元に住所を割り出し、ストーキングしたという例はその最たるものといえる。SNSが日常生活に浸透するにつれ、さまざまな情報を数多く発信しているユーザーは少なくない。自分の発信している情報に、住所や趣味、人間関係など自らに関する情報が含まれていないだろうか。発信内容に鍵をかけていればまだしも、オープンにしているのであれば、そうした情報を攻撃者に収集されている可能性も否定できない。

 「犯罪を企む者にとって価値のあるユーザーであれば、現実空間とデジタル空間の情報を結集して情報の精度を上げる、ということも行なわれ始めています。実際、最近の標的型攻撃ではターゲットのさまざまな情報を収集した後に攻撃するケースも増加傾向にあります。同様にパスワードを狙う攻撃も、これまで以上に執拗かつ高度になることが見込まれるため、自らに関する情報を元にパスワードを設定することは避けるべきといえます。現実空間とデジタル空間は繋がっているという認識を持つべき時期に来ているのではないでしょうか。」と今後の動向を踏まえた発言で中濱は話を締め括った。

 たかがパスワード、されどパスワード。デジタル空間を含め日常生活を快適にしてくれるさまざまなウェブサービスの利便性を最大限に享受するためにも、パスワードの設定と管理は厳重に行なってほしい。

話を聞いた社員:
セキュリティソリューション企画本部 サイバーセキュリティ技術開発センター サイバーセキュリティラボ 主管スタッフ 中濱 禎夫