その筋のプロが勧める簡単で強力なパスワードの作り方Tech TIPS

パスワードが破られると、大変なことになるという認識は多くの人が共有していると思う。破られにくい「強力なパスワード」を設定するのがよいのは分かっているが、実際には難しいと感じているのではないだろうか。そこで、本Tech TIPSでは、セキュリティベンダーやサイバーセキュリティの専門家が推奨する「強力なパスワード」の作り方を簡単に解説する。

» 2024年11月29日 05時00分 公開
[小林章彦デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象:Webサービス


強力なパスワードの作り方教えます 強力なパスワードの作り方教えます
新しいWebサービスを使おうとすると、アカウントの作成が要求されることがある。そのたびに作成しなければならないパスワードに苦労していないだろうか。同じパスワードでは、漏えいした際に危険だし、Webサイトごとに異なるパスワードを作ると忘れてしまう。そこで本Tech TIPSでは、セキュリティベンダーやサイバーセキュリティの専門家が推奨する「強力なパスワード」の作り方を解説しよう。

 オンラインサービス(Webサービス)を使う上で切っても切り離せないのが、「パスワード」だろう。最近では、「パスキー」と呼ばれるパスワードを使わない安全なログイン(サインイン)方法に対応したサービスもあるが、まだまだ主流はIDとパスワードの組み合わせだ(パスキーについては、Tech Basics/Keyword「最近よく聞く『パスキー』の仕組みと設定方法」参照のこと)。

 パスワードは、漏れたり、破られたり(解読されたり)してしまうと、悪意のある人にサービスが簡単に乗っ取られてしまうセキュリティ的には脆弱(ぜいじゃく)なシステムである。オンラインバンクやオンライン証券といったサービスではお金が盗まれてしまうし、オンラインショッピンスサイトでは買い物に使われてしまう危険性もある。

 こうした事態を防ぐには、破られにくい「強力なパスワード」を設定し、万一パスワードが漏えいした場合でも他のサービスに悪用されないようにする必要がある。もちろん、パスワードだけでなく、できるだけ2段階認証などの手段も有効にしておき、対策しておくことも重要だ。

 ただ、そんなことは十分に分かっているが、実際には「強力なパスワード」を作成するのは簡単ではないというのが現実だろう。そこで、セキュリティベンダーやサイバーセキュリティの専門家が推奨する「強力なパスワード」の作り方を解説しよう。

パスワードだけでは安全ではない?

 もはや「パスワードだけでは安全でない」ということを理解しておく必要がある。年々、コンピュータの性能は向上しており、小文字のアルファベット5文字の簡単なパスワードであれば、1つずつ順に文字を変えながら文字列を試していくブルートフォースアタック(総当たり攻撃)でも4分ほどで解けてしまう(AMD Ryzen 7 5700G/3.80GHzで実測)。

 「強力なパスワード」を設定するのはもちろんだが、パスキーや2段階認証、多要素認証などが利用できるサービスであれば、必ず有効にしてパスワードだけに頼らないようにしよう。

パスワードだけではなく2段階認証なども活用しよう パスワードだけではなく2段階認証なども活用しよう
残念ながらパスワードだけでは万全とはいえない。2段階認証などの機能があるWebサイトでは、必ず設定し、自分以外の不正なログインを阻止しよう。

セキュリティベンダーが推奨するパスワードの条件

 一般に多くのセキュリティベンダーが推奨するパスワードは以下のようなものである。

  • パスワードを10文字以上(Microsoftは14文字以上を推奨)に設定する
  • 意味のある単語などを使わない
  • IDやユーザー名などに含まれる単語を使わない
  • 大文字、小文字、数字、記号などを混ぜる(Webサービスのパスワード要件にもよる)
  • 分かりやすい文字の置き換えはしない(文字の「l」の代わりに数字の「1」など)
  • 他のWebサイトで使っているパスワードを流用しない

 これらを守ってパスワードを作成し、かつWebサイトごとに異なるパスワードを覚えておくというのは、結構ハードルが高い。そのため、こうした要件を守ったパスワードを生成する「パスワードジェネレーター」と呼ばれるツールもある。ただ、生成されたパスワードはパスワードマネージャーで管理するのが前提で、覚えにくいのが難点だ。

パスワードジェネレーターを使う(1) パスワードジェネレーターを使う(1)
セキュリティベンダーなどが提供するパスワードジェネレーターを使うと、強力なパスワードが簡単に作成できる。
パスワードジェネレーターを使う(2) パスワードジェネレーターを使う(2)
パスワードジェネレーターで作成したパスワードをアカウント作成ページで入力すれば、強力なパスワードが設定できる。ただし、パスワードジェネレーターで作成したパスワードは覚えにくいものなので、パスワードマネージャーと組み合わせて使うのが一般的だ。

Webサイトを影響レベルで分類しておく

 全てのWebサイトで前述の要件を守りつつ、忘れにくく、Webサイトごとに異なる「強力なパスワード」を設定するのが理想だ。しかし、コンテンツを読むためだけにログインを求められるようなWebサイトの場合、万一パスワードが盗まれ、悪用されたとしても影響はそれほど大きくない。

 一方、オンラインバンクなどの場合、盗まれた場合の影響は大きい。お金が盗まれてしまうかもしれないし、犯罪に悪用されてしまう危険性もあるからだ。

 このように「パスワード」といっても、盗まれたり、漏えいしたりした場合の影響やリスクは大きく異なる。影響の度合いは、使っているサービスや人、利用頻度などによっても異なるはずだ。

 筆者の場合、以下のように分類しているが、インフルエンサーと呼ばれる人の場合、SNSアカウントはオンラインバンクなどと同等の影響レベルになるだろう。

影響レベル 対象サービス
1 @ITや日経新聞などのコンテンツを読むだけ
2 FacebookやX(旧Twitter)などのSNSアカウント
3 GoogleアカウントやMicrosoftアカウントなどのアカウントサービス
4 オンラインバンク、オンライン証券、オンラインショップなどの金銭に絡むサービス
筆者の影響レベル

 影響レベル1に該当するサービスならば、パスワードの強度はそれほど高い必要はないので、文字数はサービスが求める最低レベルにして、入力のしやすさを優先するという判断もあるだろう。一方で影響レベル4に該当するサービスでは、パスワードの長さを10文字以上、できれば14文字以上に設定するなど、より強力なものにする必要がある。

 このように影響レベルを分類することで、影響レベルが低いWebサイトのパスワードを作成する手間の省力化が図れる。極論すれば、盗まれたり、漏えいしたりしても影響がないのであれば、同じパスワードを流用しても構わないからだ。ただし、実際には何が影響するのか不明な点もあるので、後述するようにWebサイトごとに文字を加えるなどして異なるパスワードに設定した方が無難だ。

【手順1】パスワードはなるべく長く

 前述の通り、ブルートフォースアタックではパスワードの長さが短いと、ものの数分で解読されてしまう。パスワードの文字数が多ければ多いほど、総当たりの回数が増えるので、パスワードを解読するための時間がかかることになる。ブルートフォースアタックに対しては、「パスワードの長さ」が対策になる。

 ただしパスワードが長くても、有名人の名前や住所などのありふれた単語だと、一般的な単語や人物名などを使う「辞書攻撃」で突破されてしまうので注意が必要だ。過去に漏えいしたパスワードも、辞書に登録されていることがあるので注意したい。

 こうした前提に基づいて、ベースとなる長いパスワードをどうやって作成したらいいのか考えてみよう。毎回忘れてしまって、「パスワードを忘れました」で再設定するのでは意味がないので、自分が覚えやすい関連した2つか3つの単語を並べてみよう。

 ただし、「oda」「toyotomi」「tokugawa」といった誰でも思い付きそうなものや、家族の名前のような少し調べると分かってしまいそうなものは避けた方がよい。訪れたことがある、あるいは興味のある場所(地名)などを組み合わせるというのも良いだろう。例えば「kawagoe」「yokohama」とすれば、合計で15文字になる。

 「地名は辞書攻撃で突破されやすいのでは?」という指摘もあるだろうが、これはあくまでパスワードのベースである。「大文字、小文字、数字、記号などを混ぜる」の要件を加えることで、辞書攻撃による突破を防ぐようにする。なお、海外からの攻撃に対しては、英単語よりも、日本語をローマ字にしたものの方が、強いといわれている。

パスワードのベースとなる単語の組み合わせを作成する パスワードのベースとなる単語の組み合わせを作成する
好きな地名や好きな和菓子など、複数の単語を選び組み合わせる。10文字以上になるように複数の単語を選ぶこと。「apple」よりも「ringo」、「orange」よりも「mikan」と日本語をローマ字にした方が、パスワードの突破が難しいとされている。

【手順2】大文字などをパスワードに混ぜる

 ベースとなるパスワードが作成できたら、これに大文字や数字、記号を加えて、複雑にしていく。ただ、Webサイトによって使える記号が異なる場合があるので、Webサイトのパスワード要件を確認して使う記号などを選ぶ必要がある。あらかじめ自分のよく使うWebサイトのパスワード要件で、共通で使える記号を調べておくとよい。

 また、「l(エル)」を「1(いち)」、「o(小文字のオー)」を「0(ゼロ)」にするといった置き換えは、攻撃者側の辞書ツールに実装されているということなので、少し頭をひねって考える必要がある。

 例えば、「kawagoeyokohama」であれば、まず「111Goe45hama」と「kawa」の部分を漢字の「川」から連想して「111」にして、「yoko」を「45」に置き換え、「goe」の部分に大文字を加えて「Goe」とする。

 これだけだと記号が入っていないので、「kawa」を置き換えた「111」をさらに「1!1」(「1」を「!」に置き換える)として、「1!1Goe45hama」としてみる。大文字と数字、記号を入れて、忘れないようなパスワードを作成するのは手がかかるが、ブルートフォースアタックや辞書攻撃から守ることにつながるのでここはがんばって工夫してほしい。

大文字や数字、記号などを混ぜる 大文字や数字、記号などを混ぜる
作成したベースのパスワードに大文字や数字、記号などを混ぜて、ブルートフォースアタックや辞書攻撃への耐性を高める。忘れにくいように元の単語から連想するような置き換えを工夫するとよい。

【手順3】パスワードはWebサイトごとに作成する

 「強力なパスワード」を設定しても、WebサイトからIDとパスワードの組み合わせが漏れてしまえば意味がない。ランサムウェアによってWebサイトが乗っ取られ、その結果、サイトに保存されていたIDとパスワードが盗まれた、といった報道も増えている。

 流出したIDとパスワードの組み合わせは、別の有名どころのWebサイトで試されてしまうので、パスワードを流用していると突破されてしまう危険性がある。

 特に前述の影響レベルの高いWebサイトでは、サイト独自のパスワードを設定しておくべきだ(何度も言うが、さらに多要素認証なども設定しておくこと)。

 とはいえ、Webサイトごとにパスワードを作成するのは面倒だし、忘れてしまいがちだ。そこで先ほど作成したベース(「1!1Goe45hama」)をWebサイトごとに修正しよう。

 例えば、Webサイトのサービス名を加えるという方法だ。「1!1Goe45hama」をMicrosoftアカウント向けに修正するのなら、「MS1!1Goe45hama」や「M1!1Goe45hamaS」といった具合に「MS」を先頭や前後に挟めばよい。こればら、どこかのWebサイトでパスワードが漏えいしても、別のWebサイトでは異なるパスワードなので簡単に突破されることはない。ベースにWebサイトの2文字を加えるだけなので忘れにくい。

 ただ、ルールがばれてしまうと突破されてしまうので、「MS」を「SM」に変えたり、一文字ずらして「NT」にしたりするなど、さらに工夫するとよい。

Webサイトごとの文字を追加する Webサイトごとの文字を追加する
同じパスワードを流用すると、どこからか漏れてしまうと攻撃に使われてしまう。かといって全く異なるパスワードでは忘れやすい。そこで上記で作成したパスワードに対して、Webサイトごとの省略文字などを加える。これで、漏えいした場合の対策になる。

 ただ、文字を記号などに置き換えた部分や、Webサイトごとに追加した文字列については忘れないようにすること。場合によってはパスワードの再設定が必要になり、ルール外のパスワードが発生して覚えにくくなってしまうからだ。

【手順4】パスワードの強度をチェックする

 生成したパスワードがどの程度の強度を持っているのか気になるかもしれない。また、場合によっては既に誰かによって作成されて、それが漏えいされている可能性も否定できない。

 そうした点をチェックできるWebサイトが幾つかある。これらはウイルス対策ソフトウェアやパスワード管理ツールなどを販売している会社のWebサイトなので、ある程度信用してよいだろう。

 いずれもチェックのために入力されたパスワードは保存しないとしているが、念のため実際のパスワードをWebサイトに入力するのは避けて、類似のテスト用パスワードを使用するのが賢明だろう。

 ただし、あまり変更してしまうとチェックの意味がないので、「MS1!1Goe45hama」をチェックしたいのであれば、「AA1!1Goe45suka」のように類似のパスワードを生成して試してみるのがよいだろう。

ベンダー サービス名(URL)
トレンドマイクロ パスワードチェック
Bitwarden パスワード強度チェック
Kaspersky パスワードを確認しよう
pCloud 無料パスワード強度チェッカー
パスワードの強度をチェックできるWebサイト

パスワードの強度をチェックする(1) パスワードの強度をチェックする(1)
上表のセキュリティベンダーなどが提供しているパスワードチェックツールで、作成したパスワードの強度を確認してみよう。試しに「1192kamakura(1192鎌倉)」で強度を確認したところ、既に同じパスワードが流出していることが分かった。
パスワードの強度をチェックする(2) パスワードの強度をチェックする(2)
今回の手法で作成したパスワードを一部変更した「AA1!1Goe45suka」で強度を確認してみた。流出したパスワードには同じものがなく、解読にも数百年かかる、比較的強度の高いパスワードになっていることが分かった。

リスクの高いパスワードはパスワードマネージャーに記録しない

 多くのWebブラウザには、IDとパスワードを記録し、次にアクセスした際には自動的に入力してくれる「パスワードマネージャー」が実装されている。毎回、IDとパスワードを入力する必要がなくなり便利な機能なのだが、利用には注意が必要だ。

 特に組織内で使っているPCの場合、席を外した際に悪意のある人が操作してデータやお金を盗む危険性がある。また、ノートPCの場合、紛失や盗難があった際に無防備となる。パスワードがWebブラウザに記録されていると、履歴からWebサイトにアクセスして、データやお金が簡単に盗めてしまうからだ。

 スマートフォンなどを利用する2段階認証を設定していても、「このデバイスでは次回から表示しない」などにチェックを入れると、2段階認証がスキップされてしまうので、2段階認証が有効に働かない。

2段階認証の省略に注意 2段階認証の省略に注意
2段階認証の画面では、同じPCとWebブラウザの組み合わせならば、次回以降、2段階認証を省略することができる。このチェックは、デフォルトで有効になっていることが多い。ノートPCなどの場合、紛失や盗難があった際には無防備になってしまうので、2段階認証をスキップする設定には注意してほしい。

 このように、せっかく強度の高いパスワードを設定していても、パスワードマネージャーにパスワードが記録されているとリスクがある点は覚えておいた方がよい。影響リスクの高いWebサイトについては、面倒でもパスワードを毎回入力するようにした方が安全だ(毎回入力するとパスワードも忘れにくい)。

 どうしてもパスワードマネージャーで管理したい場合は、生体認証やUSBセキュリティキーに対応している製品(「1Password」や「Bitwarden」「Google Chromeのパスワードマネージャー」など)を活用することを考えよう(Google Chromeのパスワードマネージャーの生体認証についてはGoogle Chrome完全ガイド「【Chrome】パスワード自動入力をWindows Helloで守る方法、邪魔なら解除する方法」参照のこと)。

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。