CyberFix Note
防御・ハードニング

安全なパスワードの作り方と管理。長さ優先・使い回し回避をNISTの考え方から解説

対象の目安: これから対策する人 / 入門レベル

アオイ防御・運用担当
・ 約11分で読めます
安全なパスワードの作り方と管理。長さ優先・使い回し回避をNISTの考え方から解説

「パスワードは大文字・小文字・数字・記号を混ぜて、定期的に変えましょう」。長らくそう言われてきました。ところが、この常識の一部は、いまでは推奨されない古い考え方になっています。複雑な文字種の強制や定期変更は、かえって人が弱いパスワードを選ぶ原因になる、という研究と運用実績が積み重なったためです。では、何を基準に作ればよいのでしょうか。

結論から言えば、いま重視すべきは「長さ」と「使い回しをしないこと」の二つです。文字種を無理に混ぜることよりも、十分に長くすること。そして、どんなに強いパスワードでも一つを複数のサービスで共有していれば、どこか一か所が漏れた瞬間に芋づる式に破られるため、サービスごとに別々にすることが決定的に重要です。

この記事では、米国の標準化機関NISTが示すデジタルID向けガイドライン(SP 800-63B)の考え方と、日本のIPAによる注意喚起をもとに、入門者でも実践できるパスワードの作り方と管理方法を、原理から噛み砕いて説明します。難しい暗号の知識は不要です。

まず、新旧の考え方の違いを早見表で整理します。何が変わったのかを押さえると、この記事の内容が頭に入りやすくなります。

項目古い考え方いまの考え方(NIST SP 800-63B)
重視する要素文字種の複雑さ長さ
文字種の強制大文字・数字・記号を必須にする強制しない(混ぜるよう要求しない)
定期変更90日ごとなど強制漏えいの兆候がない限り強制しない
使い回しあまり問われなかった厳禁。サービスごとに別にする
弱いパスワード文字種ルールで担保したつもり漏えい済みリストとの照合で排除

なぜ「複雑さ」より「長さ」なのか

パスワードの強さは、攻撃者が総当たり(ブルートフォース)で当てるのにどれだけ手間がかかるか、という観点で考えると分かりやすくなります。当てる手間は、おおまかに「使われうる文字の種類の数」を「文字数」乗した、組み合わせの総数で決まります。

ここで効き方の違いが出ます。文字種を増やすと、底(てい)にあたる数が大きくなります。一方、文字数を増やすと、それが指数(何乗するか)になります。指数の効き方は底よりはるかに急激です。たとえば、記号を加えて文字種を70種類から95種類に増やすよりも、パスワードを1文字長くするほうが、組み合わせの増え方が大きいことがしばしばあります。長さを伸ばすほうが、楽をしながら強くできるのです。

さらに人間側の事情もあります。「記号を必ず一つ入れる」と強制されると、多くの人は末尾に「!」を付けたり、「a」を「@」に置き換えたりと、似たような変形をします。攻撃ツールはこうした典型パターンを織り込み済みなので、見た目ほど強くなりません。つまり複雑さの強制は、強さを上げにくいうえに、覚えにくさという代償だけが残りがちなのです。

NISTのデジタルID向けガイドライン(SP 800-63B)は、単一要素として使うパスワードに最低15文字を求めます(多要素認証の一部としてのみ使う場合は最低8文字まで許容)。加えて、最大長として少なくとも64文字までを許容することを推奨し、文字種を混ぜる構成ルールを課さない方針を示しています(執筆時点で参照したRev.4の記載)。

「パスフレーズ」という作り方

長さを稼ぎつつ覚えやすくする実践的な方法が、無関係な単語を複数つなげた「パスフレーズ」です。たとえば、自分だけが思い出せる脈絡のない言葉を3つ4つ並べると、文字数は自然と長くなり、しかも意味のある物語として覚えられます。ローマ字や英単語、数字を織り交ぜれば、辞書攻撃にも強くなります。

ただし注意点があります。有名な歌詞、ことわざ、映画の台詞のようによく知られたフレーズは、攻撃者の辞書に載っているため避けてください。自分の頭の中だけで成立する、他人には予測できない組み合わせにすることが肝心です。

ヒント

覚える必要があるパスワードは「数を絞る」のがコツです。スマホやPCのログイン、パスワードマネージャーの親パスワードなど、どうしても暗記が要るものだけを長いパスフレーズにし、残りは後述のマネージャーに任せると、無理なく強度を上げられます。

最大の弱点は「使い回し」

どれだけ長く複雑なパスワードを作っても、それを複数のサービスで使い回していると、一つの強さは意味をほとんど失います。理由は「リスト型攻撃」にあります。

攻撃者は、どこかのサービスから漏れたIDとパスワードの大量の組み合わせ(リスト)を手に入れ、それを別のサービスのログイン画面に機械的に次々と入力します。あなたが通販サイトとSNSと銀行で同じパスワードを使っていれば、通販サイト一か所が漏れただけで、攻撃者は同じ鍵で他の扉も開けられてしまいます。漏れたサービス自体に落ち度がなくても、被害は連鎖します。

「大事なサービスだけは強いパスワードにしていたのに、なぜ侵入されたのか分からない」という相談は少なくありません。多くの場合、原因は別の軽く考えていたサービスでの使い回しです。攻撃者にとって、どのサービスが本人にとって重要かは関係ありません。一つ破れれば同じ鍵を全部の扉で試すだけです。

ある相談窓口に寄せられる声

IPAの不正ログイン対策の解説でも、パスワードは「できるだけ長く」「複雑に」「サービスごとに使い回さない」ことが基本とされ、加えて多要素認証の利用が推奨されています。

つまり、強さよりも先に守るべき原則は「サービスごとに別のパスワードにする」ことです。とはいえ、サービスごとに長くて別々のパスワードを暗記するのは現実的ではありません。ここで登場するのが、次に述べる管理の道具です。

現実的な管理方法

人間の記憶力には限界があります。数十、数百のサービスそれぞれに別の長いパスワードを設定し、すべて暗記するのは不可能です。だからといってメモ帳に平文で書き並べるのも危険です。現実的な選択肢を整理します。

管理方法長所注意点
すべて暗記道具に依存しない数が増えると破綻し、結局使い回しに陥る
紙に書いて保管オフラインで盗まれにくい紛失・盗み見・災害に弱く、持ち運べない
ブラウザの保存機能手軽で無料端末のロックが甘いと他人に使われうる
パスワードマネージャー長く別々のパスワードを自動生成・自動入力親パスワードの管理と漏えい対応が要

多くの場面で現実的なのが、パスワードマネージャーの活用です。サービスごとにランダムで長いパスワードを自動生成して保管し、ログイン時には自動入力してくれます。利用者が覚えるのは、マネージャーを開くための「親パスワード(マスターパスワード)」一つだけで済みます。覚える対象を一つに絞れるからこそ、その一つを長く強いパスフレーズにできるのです。

注意

パスワードマネージャーを使う場合、その親パスワードと、マネージャーのアカウント自体の多要素認証が生命線になります。ここが破られると保管した全パスワードに影響します。親パスワードは長いパスフレーズにし、必ずMFAを有効にしてください。

IPAは、暗記を続けたい人向けに「コアパスワード」という考え方も紹介しています。自分だけが分かる中核部分(コア)を一つ決めて暗記し、それにサービスごとの目印を組み合わせて作る方法です。完全な暗記運用よりは使い回しを避けやすくなりますが、目印の付け方が単純だと規則性を見抜かれる恐れがあるため、推測されにくい工夫が要ります。手間と安全性のバランスを考えると、多くの人にとってはパスワードマネージャーのほうが楽で確実です。

定期変更は必要か

かつては「90日ごとにパスワードを変えましょう」という運用が広く行われていました。しかしNISTは、漏えいの兆候がない限り定期的な変更を強制しない方針を示しています。

理由は人間の行動にあります。頻繁な変更を強制されると、人は「Password01」「Password02」のように末尾の数字だけを増やす、覚えやすい弱いパターンに流れがちです。これでは手間が増えるだけで強くなりません。むしろ、十分に長く使い回しのないパスワードを作り、漏えいが疑われたときに確実に変える、という運用のほうが合理的です。

メモ

「定期変更が不要」というのは、「漏れても変えなくてよい」という意味では決してありません。サービス側から漏えいの通知が来たとき、同じパスワードを別の場所でも使っていた疑いがあるとき、不審なログインの形跡があるときは、ただちに変更してください。変えるべきは「定期的に」ではなく「兆候があったとき」です。

パスワードだけに頼らない

最後に、最も効果の大きい補強を挙げます。パスワードがどれほど強くても、フィッシングで本人から聞き出されたり、サービス側から漏えいしたりする可能性はゼロにはなりません。そこで、パスワードに加えてもう一つの要素を要求する多要素認証(MFA)を併用すると、たとえパスワードが漏れても、それだけでは侵入されにくくなります。

スマホの認証アプリ(ワンタイムパスワード)を併用すれば、攻撃者がパスワードを知っていても、もう一つの要素がそろわない限りログインしにくくなります。ただし認証アプリのように画面に表示されたコードを手入力する方式は、本物そっくりの偽サイトに誘導してコードごと聞き出す中継型のフィッシングには突破される余地があり、NISTはこうした手入力を伴う方式を「フィッシング耐性あり」とは扱っていません。より強く守りたい場合は、サイトと暗号的に結び付くためフィッシング耐性があるとされるパスキー(FIDO2)を優先するとよいでしょう。パスワード対策と多要素認証は、どちらか一方ではなく両輪で考えるのが基本です。具体的な方式の選び方は

で詳しく解説しています。

よくある質問

記号を入れないと弱いのでは?
必ずしもそうではありません。十分に長く、使い回しがなく、よく知られた語句でなければ、文字種を無理に混ぜなくても実用上の強度は確保できます。記号を入れること自体は悪くありませんが、長さの確保のほうが優先度は高いです。
結局、何文字くらいあれば安全ですか?
サービスの仕様にもよりますが、長いほど有利です。NISTのガイドラインは単一要素として使う場合に最低15文字程度を求めています。覚える前提のものはパスフレーズで自然に長くし、それ以外はマネージャーで十分に長い値を自動生成するのが現実的です。
ブラウザの保存機能でも大丈夫ですか?
使い回しを避けられる点で、何もしないよりは大きく前進します。ただし端末のロックが甘いと第三者に使われる恐れがあるため、端末側のロックを必ずかけ、可能なら専用のパスワードマネージャーの利用を検討してください。
パスワードマネージャーが破られたら全部漏れませんか?
そのリスクがあるからこそ、親パスワードを長く強くし、マネージャー自体に多要素認証をかけることが必須です。リスクを一点に集約する代わりに、その一点を徹底的に守る、という考え方です。多くの人にとっては、使い回しを続けるより安全になります。
定期的に変えなくて本当に良いのですか?
漏えいの兆候がない限り、強制的な定期変更は推奨されていません。ただし漏えい通知を受けたときや不審なログインの形跡があるときは、ただちに変更してください。「定期的に」ではなく「兆候があったとき」に変えるのが新しい考え方です。

まとめ

安全なパスワードのためのチェックリスト

  • 文字種を無理に混ぜることより、まず長さを確保したか
  • 覚えるパスワードは少数に絞り、長いパスフレーズにしたか
  • サービスごとに別々のパスワードにし、使い回しをやめたか
  • よく知られた歌詞やことわざをそのまま使っていないか
  • 多数のパスワードはマネージャーで生成・保管しているか
  • 重要なアカウントには多要素認証(MFA)を併用したか
  • 漏えいの兆候があったとき、ただちに変える運用にしたか

安全なパスワードの要点は、複雑さの強制という古い常識を手放し、「長さ」と「使い回しの回避」という二つの原則に立ち返ることです。覚える数を絞ってパスフレーズにし、残りはパスワードマネージャーに任せ、重要なアカウントにはMFAを重ねる。これだけで、不正ログインのリスクは大きく下がります。まずは使い回しているパスワードを一つずつ別々に変えていくところから始めましょう。次の一手としては

を読み、認証そのものを強くすることをおすすめします。

出典・参考

この記事をシェア

関連する記事