皆さん、この痛烈な発言で火災報知器を鳴らしてしまいそうです。「パスワードは絶対に変更しないでください」。消防署に電話する前に、次の3つの重要な注意事項を検討してください。パスワードは絶対に変更しないでください…
- 十分に強い場合
- 各アカウントごとに固有のものを作成した場合
- 保管場所にセキュリティ違反がない限り
パスワードは古くなることはありません。酸っぱくなったり、腐ったり、古くなったりすることはありません。しかし、一部の組織は、パスワードは時間の経過とともに攻撃を受けやすくなると私たちに信じ込ませようとします。つい昨日、T-Mobileのアカウントにログインしたところ、パスワードが古いので変更する必要があると言われました。幸い、そのキャリアには「スキップ」ボタンがありましたが、いつもそうだったわけではありません。

パスワードを変更する理由は、実際に発生している問題に関係している必要があります。例えば、誰かにパスワードを盗まれた、パスワードがあまりにも弱くて今にも破られそう、あるいはパスワード漏洩の通知を受けたなどです。そうでなければ、わざわざ変更する必要はありません。
パスワードに有効期限を設けるという考えはどこから生まれたのでしょうか?そして、なぜそれが間違っているのでしょうか?その答えを見つけるために、3つの条件のそれぞれについて、その背景にあるものを詳しく見ていきましょう。
条件1 背景: 古いパスワードは弱すぎた
コンピュータシステムがパスワードを必須にし始めたのは1960年になってからでした。40年間、パスワードは脆弱で、簡単に破られることもありました。8文字を超えるパスワードの作成さえ許可されないことさえありました。これは許容できるセキュリティレベルであるだけでなく、唯一必要なセキュリティレベルと考えられていました。当時は、辞書に載っている単語や単語だけ、あるいはすべて文字を使うこともでき、句読点や大文字と小文字の混在、数字の使用は必須ではありませんでした。
ネットワークが相互接続されると、インターネットが存在する以前から、パスワードの盗難が問題になりました。初期の頃は、パスワードを平文で保存したファイルを印刷するだけで済みました。(最初の盗難は1962年に発生しました!)オペレーティングシステム内でのパスワードの保護が強化されるにつれ、脆弱で推測しやすいパスワードは依然として問題でした。システム管理者はパスワードに関するガイダンスを発行し、それを強制するようになりました。今ではおなじみの、複雑なパスワードと定期的なローテーションを求める声は、まさにここから生まれたのです。
つい2004年、米国国立標準技術研究所(NIST)は、パスワードの長さが短すぎることを理由に、パスワード構成ルールの複雑さを推奨する報告書を発表しました。パスワードが長くなるほど、解読はほぼ指数関数的に困難になります。複雑さ(選択される文字のランダム性)を増しても、単にパスワードを長くするほど、解読の難易度は上がりません。
一部のサイトでは依然として8文字のパスワードが許可されていますが、私の経験では、ほとんどのサイトでは10文字、あるいは12文字といったもっと長いパスワードが求められています。現代のクラッキングに耐性を持つ最短の安全なパスワードは、入力可能な記号をほぼすべてランダムに生成する場合は最低12文字、ランダムに選択された単語で構成される場合は最低20文字です。これらの制限を満たすパスワードは、ブルートフォース攻撃に対する十分な耐性を備えているため、ユーザーの生涯をはるかに超えて破られるか、クラッカーが特定のパスワードの価値をはるかに上回る費用(ある推計によると数百億ドル)を負担することになります。これらのパスワードを解読できるほど弱くするには、特定の計算方法に大幅な進歩が必要です。(驚くべきことに、MicrosoftはWindows 10管理者向けガイダンスで依然としてパスワードの最小文字数を8文字と推奨しており、14文字を超えるパスワードをポリシーで要求することを許可していません。)
パスワードが脆弱な時代においては、高いエントロピー(パスワードテキスト内の測定可能なランダム性の量)と定期的な変更を組み合わせることで、簡単に盗まれてしまうパスワードファイルやデータベーステーブルを使って、誰かが十分な時間と処理能力を持ってパスワードを解読できる可能性は低かった。(私が初めてパスワードファイルを盗まれたのは、1994年のUnixの脆弱性によるものだった。)
上記の条件1で要求されているように、パスワードが十分に強力であれば、変更する必要はありません。一方、12文字未満のランダムな文字で構成されたパスワードをまだ使用している場合は、より強力なものに変更する必要があります。ただし、変更は一度だけで十分です。変更する理由がなくなる可能性もあります。
パスワードが弱いかどうかはどうすればわかりますか?AppleはiOS/iPadOSでは「設定」>「パスワード」、Safariでは「Safari」>「環境設定」>「パスワード」、macOS 12 Montereyでは「システム環境設定」>「パスワード」で確認できます。1Password、LastPass、その他のパスワードマネージャーも同様の情報を提供しています。
条件2 背景: パスワードは頻繁に再利用される
長年にわたり、強力なパスワードを 1 つ作成し、それをすべての重要なアカウントで使用しても許容されていました。そのパスワードは入力しにくく、記憶しにくいかもしれませんが、定期的に使用することでそれらの問題を克服するのに役立ちました。これは、すべての卵を 1 つのバスケットに入れるという究極の例でした。セキュリティの専門家は、このアプローチを重大な脆弱性と正しく認識していました。パスワード変更の要件がいくつか登場したのは、パスワードが破られたりどこかで漏洩したりした場合、システムへのアクセスも許可してしまう可能性があることをシステム管理者が理解したためではないかと私は考えています。これは過剰な警戒心ではありませんでした。深いシステム権限を持つアカウントを含め、侵害は定期的に発生していました。古いパスワードは他の場所で発見され、解読される可能性が高いという思い込みから、強制的に新しいパスワードに置き換えることは、クラッカーの先を行くための誤った方法でした。
今ではパスワードマネージャー(iOS、iPadOS、macOSに標準搭載されているAppleのオプションも含め、iCloud経由で非常に安全に同期できるもの)が簡単に利用できるようになったため、条件2に従い、同じパスワードを2回使い回す言い訳は全くできません。デバイスのパスワード、あるいは1Passwordなどのパスワードマネージャーで保管庫やストレージのパスワードを記憶しておきましょう。それらのパスワードを他の場所で使用しないでください。これで万事オーケーです。
複数のサイトで同じパスワードを使用しているかどうかわからない場合は、パスワードマネージャーを確認してください。Appleのパスワード管理ツールでは、パスワードが複数回入力されている場合、「セキュリティ推奨事項」に「再利用」と表示されます。1PasswordのWatchtowerセクション(下記参照)にも「再利用されたパスワード」カテゴリがあり、同様の項目が表示されます。LastPassのセキュリティダッシュボードにも同様の機能があります。
パスワードマネージャーは、パスワードに少なくとも1つの数字、許可されたリストにある句読点、そしてイモリの目を含めることを要求するウェブサイトの不規則性にも対処する必要があります。最後の項目は冗談かもしれません。(これらのポリシーは、ユーザーが最小文字数のみを入力することを選択した場合に、最もクラッキング耐性の高いパスワードを保証するように設計されています。)しかし、少なくともパスワードマネージャーを使用すれば、状況に応じて最も強力なパスワードを生成できます。
複雑さに関するポリシーが適用されていない場合でも、パスワードの作成にはパスワードマネージャーを使用することをお勧めします。Appleは、キーチェーンアクセスのパスワードアシスタントから、単語を含む「覚えやすい」パスワードを作成する機能を廃止しました。1Passwordは、必要な堅牢性を実現するために、状況に応じて4語または5語のパスフレーズを推奨しています。
条件3 背景: セキュリティの世界では、人生は侵害である
すべてのアカウントで強力で固有のパスワードに更新したら、条項3に従い、特定のサイトまたはサービスが侵害を受けたことを知った場合を除き、パスワードを再度変更する必要はありません。これを知る最良の方法は、アカウントとパスワードの侵害に関する情報を責任ある方法で発信することに特化したサイト「Have I Been Pwnd?」の無料通知サービスに登録することです。また、ほとんどのパスワードマネージャーがHave I Been Pwned?データベースのライセンスを取得しているため、パスワードマネージャーを確認することもできます。Appleは、すべてのオペレーティングシステムのパスワードリストに「Compromised(侵害済み)」と表示し、次のように通知しています。
このパスワードはデータ漏洩の際に現れたため、このアカウントが侵害される危険性が高まっています。
Appleの極端な表現にもかかわらず、パスワードが強力で一意であることを前提とすれば、おそらくその場合でもパスワードを変更する必要はないでしょう。しかし、念には念を入れておくべきです。さらに、他に選択肢がない可能性もあります。サイト側が全ユーザーのパスワードをリセットし、パスワード変更を強制するかもしれません。
攻撃者は主に2つの方法でパスワードを発見します。それは、調査とクラッキングです。調査と操作を駆使することで、攻撃者はソーシャルエンジニアリング(カスタマーサービス担当者を騙す)、フィッシング、信用報告書や入手可能なオンラインデータの精査などを通じて、ユーザーに関する秘密を盗み出すことができます。
個人的なソーシャルエンジニアリングやフィッシング攻撃から身を守るには、Webサイトへのアクセスを開始したりアプリを開いたりする際に、それが意図したサイトまたはアプリであることを確認できる場合を除いて、いかなる状況においてもパスワードを決して教えないようにします。また、アカウントのセキュリティに関する質問への回答を作成する際に、個人情報をランダムな単語に置き換えることで、個人情報を保護することができます。私は母親の旧姓の代わりに、パスワードマネージャーでランダムな単語を生成し、それをラベル付きで保存して使用しています。そうすれば、質問されたときに思い出すことができます。目標は、セキュリティに関する質問への回答が、すべてのアカウントで一意になるようにすることです。(カスタマーサービス担当者に秘密の質問を声に出して読まなければならないとしたら、奇妙に聞こえるかもしれませんが、それはセキュリティを確保するための代償です。)
攻撃者が用いるもう一つの方法は、パスワードを解読することです。これは、最も短く、最も可能性の高い推測から始めて、あらゆる可能性のある値をテストすることで、パスワードの一致を試みます。これらの推測には、ソーシャルエンジニアリングによって抽出された、あなたや特定のウェブサイトの多数のユーザーに関する情報が組み込まれている可能性があります。
かつてクラッカーは、多くのウェブサイトのログインページで無制限にパスワード推測を試みることができた。企業がこのような攻撃を阻止するためのスロットルやタイムアウトを組み込むまでには、驚くほど長い時間がかかった。今日では、試行回数の上限を超えない標的型パスワードのみが有効な手段となり、二要素認証によってこの手段は完全に阻止される。クラッカーは、スロットルがかかっていないログインページを見つけない限り、このような攻撃を試みることはもうない。
その代わりに、彼らはサーバーから盗まれたパスワードの解読に注力しています。そのような場合、アカウント情報を管理している企業のセキュリティと導入の専門知識に頼らざるを得なくなります。ほとんどの場合、これらのパスワードは暗号化されており、総当たり攻撃によってのみ解読可能です。しかし残念ながら、必ずしもそうとは限りません。2021年11月にも、GoDaddyで大規模な情報漏洩が発生し、SFTPパスワードが依然としてプレーンテキストで保存されていることが明らかになりました。
サイトはパスワードをプレーンテキストとして保存すべきではありませんが、静的暗号化キーですべてのパスワードデータを保護する単純な暗号化も使用できません。 その代わりに、サイトはほとんどの場合、各パスワードをハッシュと呼ばれる暗号化操作の一意の結果として保存します。 ハッシュは入力から推測できないため、わずかに異なる 2 つのパスワードからはまったく異なるハッシュが生成されます。 最新のパスワード保存に関するベストプラクティスには、ハッシュ化の前にパスワードにランダムな文字 ( ソルト と呼ばれる)を追加して、複数のアカウントで同時に同一のパスワードが使用され、攻撃者がそれを解読するのを防ぐことも含まれます (2 人のユーザーがパスワードとして「adam-slurps-soup-soulfully」を選択した場合、ハッシュ化操作で同じハッシュが生成されます。 ハッシュ化の前にそのパスワードの先頭に「Az」と「8J」を追加すると、結果として得られる 2 つのハッシュは完全に予測できないほど異なるものになります)。
ユーザーに関する特別な知識を必要とせずにパスワードを解読する唯一の方法は、あらゆる可能な組み合わせを同じハッシュアルゴリズムに通し、保存されている値と照合することです。これらのアルゴリズムは計算コストが「高く」(遅く)かかるため、たとえ大量のGPUやクラウド処理能力を投入したとしても、膨大な時間(ひいては費用)がかかる可能性があります。
侵害されたパスワードにソルトが使用され、十分に強力な最新のハッシュアルゴリズムが使用されていた場合、アカウントが侵害されたという報告は私の知る限りありません。アカウントに適切な2要素認証を追加すれば、不正利用はほぼ不可能になります。
そうは言っても、ログイン認証情報が漏洩した可能性があるという通知を受けた場合は、とにかく影響を受けたサイトのパスワードを変更してください。パスワードは 1 つに過ぎず、サイトの内部セキュリティ設計がどれほど優れていたかはわかりません。
あなたは何をすべきでしょうか?
パスワードを永久に秘密に保つために実行できる改善策の簡単なチェックリストを以下に示します。
- まだ使用していない場合は、パスワード マネージャーを使い始めてください。
- パスワード マネージャーを使用して、アカウントごとに強力で一意のパスワードを生成します。
- 個人情報、機密情報、財務情報が含まれる古いアカウントを確認し、パスワード マネージャーを使用してパスワードを更新します。
- ペットの名前などの個人情報は、必要に応じて決して共有しないでください。代わりに、実際の情報をランダムなテキストに置き換え、パスワードマネージャーに保存して後でアクセスできるようにしてください。
- 可能な場合は常に 2 要素認証を有効にします。
最後に、この記事の要点に戻りますが、ウェブサイトのパスワードは、求められたからといって変更しないでください。パスワードが弱い場合、他のサイトで使用されていた場合、または侵害が発生した場合のみ、変更を余儀なくされる可能性があります。また、ウェブサイトでパスワードの変更を求められた場合は、パスワードマネージャーを使用して、強力で重複のない新しいパスワードを生成してください。