パスワードが破られると、大変なことになるという認識は多くの人が共有していると思う。破られにくい「強力なパスワード」を設定するのがよいのは分かっているが、実際には難しいと感じているのではないだろうか。そこで、本Tech TIPSでは、セキュリティベンダーやサイバーセキュリティの専門家が推奨する「強力なパスワード」の作り方を簡単に解説する。
対象:Webサービス
オンラインサービス(Webサービス)を使う上で切っても切り離せないのが、「パスワード」だろう。最近では、「パスキー」と呼ばれるパスワードを使わない安全なログイン(サインイン)方法に対応したサービスもあるが、まだまだ主流はIDとパスワードの組み合わせだ(パスキーについては、Tech Basics/Keyword「最近よく聞く『パスキー』の仕組みと設定方法」参照のこと)。
パスワードは、漏れたり、破られたり(解読されたり)してしまうと、悪意のある人にサービスが簡単に乗っ取られてしまうセキュリティ的には脆弱(ぜいじゃく)なシステムである。オンラインバンクやオンライン証券といったサービスではお金が盗まれてしまうし、オンラインショッピンスサイトでは買い物に使われてしまう危険性もある。
こうした事態を防ぐには、破られにくい「強力なパスワード」を設定し、万一パスワードが漏えいした場合でも他のサービスに悪用されないようにする必要がある。もちろん、パスワードだけでなく、できるだけ2段階認証などの手段も有効にしておき、対策しておくことも重要だ。
ただ、そんなことは十分に分かっているが、実際には「強力なパスワード」を作成するのは簡単ではないというのが現実だろう。そこで、セキュリティベンダーやサイバーセキュリティの専門家が推奨する「強力なパスワード」の作り方を解説しよう。
もはや「パスワードだけでは安全でない」ということを理解しておく必要がある。年々、コンピュータの性能は向上しており、小文字のアルファベット5文字の簡単なパスワードであれば、1つずつ順に文字を変えながら文字列を試していくブルートフォースアタック(総当たり攻撃)でも4分ほどで解けてしまう(AMD Ryzen 7 5700G/3.80GHzで実測)。
「強力なパスワード」を設定するのはもちろんだが、パスキーや2段階認証、多要素認証などが利用できるサービスであれば、必ず有効にしてパスワードだけに頼らないようにしよう。
一般に多くのセキュリティベンダーが推奨するパスワードは以下のようなものである。
これらを守ってパスワードを作成し、かつWebサイトごとに異なるパスワードを覚えておくというのは、結構ハードルが高い。そのため、こうした要件を守ったパスワードを生成する「パスワードジェネレーター」と呼ばれるツールもある。ただ、生成されたパスワードはパスワードマネージャーで管理するのが前提で、覚えにくいのが難点だ。
全てのWebサイトで前述の要件を守りつつ、忘れにくく、Webサイトごとに異なる「強力なパスワード」を設定するのが理想だ。しかし、コンテンツを読むためだけにログインを求められるようなWebサイトの場合、万一パスワードが盗まれ、悪用されたとしても影響はそれほど大きくない。
一方、オンラインバンクなどの場合、盗まれた場合の影響は大きい。お金が盗まれてしまうかもしれないし、犯罪に悪用されてしまう危険性もあるからだ。
このように「パスワード」といっても、盗まれたり、漏えいしたりした場合の影響やリスクは大きく異なる。影響の度合いは、使っているサービスや人、利用頻度などによっても異なるはずだ。
筆者の場合、以下のように分類しているが、インフルエンサーと呼ばれる人の場合、SNSアカウントはオンラインバンクなどと同等の影響レベルになるだろう。
影響レベル | 対象サービス |
---|---|
1 | @ITや日経新聞などのコンテンツを読むだけ |
2 | FacebookやX(旧Twitter)などのSNSアカウント |
3 | GoogleアカウントやMicrosoftアカウントなどのアカウントサービス |
4 | オンラインバンク、オンライン証券、オンラインショップなどの金銭に絡むサービス |
筆者の影響レベル |
影響レベル1に該当するサービスならば、パスワードの強度はそれほど高い必要はないので、文字数はサービスが求める最低レベルにして、入力のしやすさを優先するという判断もあるだろう。一方で影響レベル4に該当するサービスでは、パスワードの長さを10文字以上、できれば14文字以上に設定するなど、より強力なものにする必要がある。
このように影響レベルを分類することで、影響レベルが低いWebサイトのパスワードを作成する手間の省力化が図れる。極論すれば、盗まれたり、漏えいしたりしても影響がないのであれば、同じパスワードを流用しても構わないからだ。ただし、実際には何が影響するのか不明な点もあるので、後述するようにWebサイトごとに文字を加えるなどして異なるパスワードに設定した方が無難だ。
前述の通り、ブルートフォースアタックではパスワードの長さが短いと、ものの数分で解読されてしまう。パスワードの文字数が多ければ多いほど、総当たりの回数が増えるので、パスワードを解読するための時間がかかることになる。ブルートフォースアタックに対しては、「パスワードの長さ」が対策になる。
ただしパスワードが長くても、有名人の名前や住所などのありふれた単語だと、一般的な単語や人物名などを使う「辞書攻撃」で突破されてしまうので注意が必要だ。過去に漏えいしたパスワードも、辞書に登録されていることがあるので注意したい。
こうした前提に基づいて、ベースとなる長いパスワードをどうやって作成したらいいのか考えてみよう。毎回忘れてしまって、「パスワードを忘れました」で再設定するのでは意味がないので、自分が覚えやすい関連した2つか3つの単語を並べてみよう。
ただし、「oda」「toyotomi」「tokugawa」といった誰でも思い付きそうなものや、家族の名前のような少し調べると分かってしまいそうなものは避けた方がよい。訪れたことがある、あるいは興味のある場所(地名)などを組み合わせるというのも良いだろう。例えば「kawagoe」「yokohama」とすれば、合計で15文字になる。
「地名は辞書攻撃で突破されやすいのでは?」という指摘もあるだろうが、これはあくまでパスワードのベースである。「大文字、小文字、数字、記号などを混ぜる」の要件を加えることで、辞書攻撃による突破を防ぐようにする。なお、海外からの攻撃に対しては、英単語よりも、日本語をローマ字にしたものの方が、強いといわれている。
ベースとなるパスワードが作成できたら、これに大文字や数字、記号を加えて、複雑にしていく。ただ、Webサイトによって使える記号が異なる場合があるので、Webサイトのパスワード要件を確認して使う記号などを選ぶ必要がある。あらかじめ自分のよく使うWebサイトのパスワード要件で、共通で使える記号を調べておくとよい。
また、「l(エル)」を「1(いち)」、「o(小文字のオー)」を「0(ゼロ)」にするといった置き換えは、攻撃者側の辞書ツールに実装されているということなので、少し頭をひねって考える必要がある。
例えば、「kawagoeyokohama」であれば、まず「111Goe45hama」と「kawa」の部分を漢字の「川」から連想して「111」にして、「yoko」を「45」に置き換え、「goe」の部分に大文字を加えて「Goe」とする。
これだけだと記号が入っていないので、「kawa」を置き換えた「111」をさらに「1!1」(「1」を「!」に置き換える)として、「1!1Goe45hama」としてみる。大文字と数字、記号を入れて、忘れないようなパスワードを作成するのは手がかかるが、ブルートフォースアタックや辞書攻撃から守ることにつながるのでここはがんばって工夫してほしい。
「強力なパスワード」を設定しても、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サイトに入力するのは避けて、類似のテスト用パスワードを使用するのが賢明だろう。
ただし、あまり変更してしまうとチェックの意味がないので、「MS1!1Goe45hama」をチェックしたいのであれば、「AA1!1Goe45suka」のように類似のパスワードを生成して試してみるのがよいだろう。
ベンダー | サービス名(URL) |
---|---|
トレンドマイクロ | パスワードチェック |
Bitwarden | パスワード強度チェック |
Kaspersky | パスワードを確認しよう |
pCloud | 無料パスワード強度チェッカー |
パスワードの強度をチェックできるWebサイト |
多くのWebブラウザには、IDとパスワードを記録し、次にアクセスした際には自動的に入力してくれる「パスワードマネージャー」が実装されている。毎回、IDとパスワードを入力する必要がなくなり便利な機能なのだが、利用には注意が必要だ。
特に組織内で使っているPCの場合、席を外した際に悪意のある人が操作してデータやお金を盗む危険性がある。また、ノートPCの場合、紛失や盗難があった際に無防備となる。パスワードがWebブラウザに記録されていると、履歴からWebサイトにアクセスして、データやお金が簡単に盗めてしまうからだ。
スマートフォンなどを利用する2段階認証を設定していても、「このデバイスでは次回から表示しない」などにチェックを入れると、2段階認証がスキップされてしまうので、2段階認証が有効に働かない。
このように、せっかく強度の高いパスワードを設定していても、パスワードマネージャーにパスワードが記録されているとリスクがある点は覚えておいた方がよい。影響リスクの高いWebサイトについては、面倒でもパスワードを毎回入力するようにした方が安全だ(毎回入力するとパスワードも忘れにくい)。
どうしてもパスワードマネージャーで管理したい場合は、生体認証やUSBセキュリティキーに対応している製品(「1Password」や「Bitwarden」「Google Chromeのパスワードマネージャー」など)を活用することを考えよう(Google Chromeのパスワードマネージャーの生体認証についてはGoogle Chrome完全ガイド「【Chrome】パスワード自動入力をWindows Helloで守る方法、邪魔なら解除する方法」参照のこと)。
Copyright© Digital Advantage Corp. All Rights Reserved.