安全なパスワードの作り方 — 強度の仕組みと対策
パスワードセキュリティの現状
インターネット上のサービスが増え続ける中、パスワードは依然としてアカウント保護の最前線にあります。しかし、多くのユーザーが短くて推測しやすいパスワードを使い回しているのが実情です。
情報漏洩事件で流出したパスワードのデータベースを分析すると、上位に並ぶのは「123456」「password」「qwerty」といった極めて脆弱なものばかりです。攻撃者はこうした傾向を熟知しており、最も一般的なパスワードから順に試行します。
主要な攻撃手法
パスワードを突破するために使われる代表的な攻撃手法を理解しておくことが、効果的な対策の第一歩です。
ブルートフォース攻撃(総当たり攻撃)
全ての文字の組み合わせを機械的に試す手法です。パスワードが短いほど、解読にかかる時間は劇的に短くなります。
| パスワード長 | 英小文字のみ | 英大小文字+数字+記号 |
|---|---|---|
| 4文字 | 数秒 | 数分 |
| 8文字 | 数時間 | 数年 |
| 12文字 | 数千年 | 数百万年 |
| 16文字 | 天文学的時間 | 事実上不可能 |
この表から分かるように、パスワードの長さが最も重要な防御要素です。
辞書攻撃
単語辞書に登録された語句やよく使われるパスワードのリストを使って試行する手法です。「sunshine」「welcome」「dragon」のような一般的な英単語は、数秒で突破されます。
日本語のローマ字表記(「sakura」「tokyo」「nihon」)も辞書に含まれている点に注意が必要です。
クレデンシャルスタッフィング
過去のデータ漏洩で流出したメールアドレスとパスワードの組み合わせを、他のサービスに対して自動的に試行する手法です。パスワードの使い回しが、この攻撃を成功させる最大の要因となります。
ソーシャルエンジニアリング
技術的な攻撃ではなく、人間の心理的な弱点を突いてパスワードを聞き出す手法です。フィッシングメール、偽のログインページ、電話での聞き取りなどが含まれます。
エントロピーとパスワード強度
パスワードの強度を定量的に評価する指標として「エントロピー」があります。エントロピーはビット単位で表され、値が大きいほどパスワードの予測が困難であることを意味します。
エントロピーの計算
エントロピーは以下の式で計算されます。
エントロピー = log2(文字種の数 ^ パスワード長)
= パスワード長 x log2(文字種の数)
文字種ごとの1文字あたりのエントロピーは次の通りです。
| 文字種 | 文字数 | 1文字あたりのエントロピー |
|---|---|---|
| 数字のみ | 10 | 3.32 bit |
| 英小文字のみ | 26 | 4.70 bit |
| 英大小文字 | 52 | 5.70 bit |
| 英大小文字 + 数字 | 62 | 5.95 bit |
| 英大小文字 + 数字 + 記号 | 94 | 6.55 bit |
たとえば、英大小文字と数字を使った12文字のパスワードのエントロピーは 12 x 5.95 = 71.4 bit となり、十分な強度といえます。一般的には60 bit以上が推奨され、80 bit以上あれば非常に強力です。
長さと複雑さのバランス
同じエントロピーを達成するには、複雑な文字種を使って短いパスワードにする方法と、シンプルな文字種でも長いパスワードにする方法があります。
8文字(英大小文字+数字+記号): 8 x 6.55 = 52.4 bit
16文字(英小文字のみ): 16 x 4.70 = 75.2 bit
この例が示すように、記号を含む複雑な8文字よりも、英小文字だけの16文字の方がエントロピーは高くなります。覚えやすく長いパスワードは、複雑で短いパスワードよりも安全なのです。
実践的なパスワード対策
パスフレーズを活用する
ランダムな単語を4つ以上組み合わせた「パスフレーズ」は、高いエントロピーと覚えやすさを両立できます。
例: correct-horse-battery-staple
長さ: 31文字
特徴: 覚えやすく、ブルートフォースに強い
ただし、有名なフレーズや歌詞、ことわざをそのまま使うのは避けてください。攻撃者のフレーズ辞書に含まれている可能性があります。
パスワードマネージャーを導入する
全てのサービスに固有の強力なパスワードを設定し、それを全て記憶するのは現実的ではありません。パスワードマネージャーを使うことで、以下のメリットが得られます。
- サービスごとに固有のランダムパスワードを生成
- 暗号化されたデータベースで安全に保管
- 自動入力によりフィッシングサイトへの誤入力を防止
- マスターパスワード1つだけを覚えればよい
代表的なパスワードマネージャーには、1Password、Bitwarden、KeePassなどがあります。
二要素認証(2FA)を有効にする
パスワードだけに頼らず、二要素認証を併用することで、セキュリティを大幅に強化できます。
| 認証方式 | 安全性 | 利便性 |
|---|---|---|
| SMS認証 | 中程度 | 高い |
| 認証アプリ(TOTP) | 高い | 中程度 |
| ハードウェアキー(FIDO2) | 非常に高い | やや低い |
| パスキー | 非常に高い | 高い |
SMS認証はSIMスワップ攻撃のリスクがあるため、可能であれば認証アプリやハードウェアキーの使用を推奨します。
やってはいけないこと
パスワード運用で避けるべき行為をまとめます。
- パスワードの使い回し: 1つのサービスが侵害されると、他のサービスも危険にさらされる
- 個人情報の使用: 誕生日、電話番号、ペットの名前は推測されやすい
- 単純なパターン: キーボード配列(qwerty)、連番(123456)、繰り返し(aaaaaa)
- メモの放置: 付箋にパスワードを書いてモニターに貼るのは論外
- 共有: 他人にパスワードを教えない(家族間でも個別アカウントを推奨)
パスワードの定期変更は必要か
かつては「パスワードは定期的に変更すべき」という考え方が主流でしたが、現在ではNIST(米国国立標準技術研究所)をはじめとする多くのセキュリティ機関が、定期変更を推奨しなくなっています。
理由は明確です。定期変更を強制すると、ユーザーは覚えやすい弱いパスワードを設定したり、末尾の数字を変えるだけの安易な変更をしたりする傾向があるためです。
パスワードの変更が必要なのは、以下のような場合に限られます。
- サービスからデータ漏洩の通知を受けた場合
- 不正アクセスの形跡がある場合
- パスワードを他人に知られた可能性がある場合
攻撃手法の詳細解説
レインボーテーブル攻撃
ブルートフォース攻撃では毎回ハッシュを計算するのに対し、レインボーテーブル攻撃では事前に計算済みのハッシュ値と元のパスワードの対応表(レインボーテーブル)を使います。
レインボーテーブルを使えば、MD5やSHA-1で保護されたパスワードデータベースが流出した場合、数秒〜数分で大量のパスワードを解読できます。
ソルトによる防御
この攻撃への対策が「ソルト」です。パスワードにランダムな文字列(ソルト)を付加してからハッシュ化することで、同じパスワードでも異なるハッシュ値が生成されます。事前計算したレインボーテーブルが無効化されるため、攻撃者はユーザーごとに個別にハッシュを計算し直す必要が生じます。
現代的なパスワードストレージでは、bcrypt、scrypt、Argon2といったハッシュアルゴリズムが使われます。これらはソルトを内包し、計算コストを意図的に高くすることでブルートフォース耐性を持たせています。
パスワードスプレー攻撃
ブルートフォース攻撃とは逆のアプローチで、1つの一般的なパスワード(例:「Summer2024!」)を多数のアカウントに試行する手法です。
1アカウントあたりの試行回数を最小限に抑えることで、ログイン試行回数制限のロックアウト機能を回避しながら攻撃を行います。企業の認証システムへの侵入に特に多く使われます。
フィッシングとスピアフィッシング
フィッシングは、本物そっくりの偽サイトや偽メールでパスワードを入力させる手法です。技術的に強固なパスワードを持っていても、偽サイトに入力してしまえば一瞬で盗まれます。
スピアフィッシングは特定の個人や組織を標的にした高度なフィッシングで、SNSや公開情報を元にパーソナライズされたメッセージを送ります。経営幹部になりすまして財務担当者を騙す「ビジネスメール詐欺(BEC)」もこの一種です。
パスワードスニッフィング
暗号化されていない通信(HTTP)を傍受し、送信中のパスワードを盗む手法です。公共のWi-Fiスポットでの利用時に特に危険です。
HTTPSが普及した現代では以前より難しくなっていますが、証明書の検証を怠ると中間者攻撃(MITM攻撃)のリスクが残ります。
パスワードマネージャーの詳細ガイド
なぜパスワードマネージャーが必要なのか
一般的なユーザーが利用するオンラインサービスは、平均して80〜150件以上あるといわれています。全てのサービスに固有の強力なパスワードを設定し、それを全て記憶するのは人間には不可能です。
パスワードマネージャーなしの場合、多くのユーザーは次のような危険な行動に陥りがちです。
- 同じパスワードを複数のサービスで使い回す
- パスワードをメモ帳やスプレッドシートで管理する
- 覚えやすい弱いパスワードを選ぶ
- パスワードを変更しなければならない時に安易なバリエーションを使う(「password1」→「password2」)
主要なパスワードマネージャーの比較
| ツール | 形態 | 価格 | オープンソース | 特徴 |
|---|---|---|---|---|
| 1Password | クラウド | 有料($3/月〜) | 否 | 企業・ファミリー向け機能が充実 |
| Bitwarden | クラウド/自己ホスト | 無料プランあり | 是 | セキュリティ監査済み、無料でも十分 |
| KeePassXC | ローカル | 無料 | 是 | オフライン動作、完全な自己管理 |
| Dashlane | クラウド | 有料($4.99/月〜) | 否 | ダークウェブ監視機能付き |
| Nordpass | クラウド | 有料($1.49/月〜) | 否 | NordVPNとの連携 |
初心者には Bitwarden がおすすめです。 無料プランでも十分な機能を持ち、オープンソースでセキュリティ監査を受けています。
パスワードマネージャーの安全性
「全てのパスワードを1箇所に集めるのは危険では?」という疑問を持つ方は多いです。しかし現実には、適切に設計されたパスワードマネージャーは非常に安全です。
パスワードマネージャーのデータはマスターパスワードから派生した鍵で暗号化されます(ゼロ知識暗号化)。サービス提供者自身もあなたのパスワードを見ることができません。マスターパスワードさえ適切に管理すれば、たとえサービスのサーバーが侵害されても、暗号化されたデータしか流出しません。
マスターパスワードは:
- 20文字以上の長いパスフレーズを推奨
- 絶対に他のサービスで使い回さない
- 紙に書いて物理的に安全な場所に保管することも有効(デジタルだけに依存しない)
パスワードマネージャー導入の手順
- ツールを選ぶ: Bitwardenなど信頼できるツールを選択
- マスターパスワードを設定: 20文字以上のパスフレーズで設定
- ブラウザ拡張機能をインストール: Chrome、Firefox等の拡張機能を導入
- 既存パスワードをインポートまたは手動追加: ブラウザ保存のパスワードをエクスポートして移行
- 主要サービスのパスワードを更新: 重要なサービス(メール、銀行等)から順次ランダムパスワードに変更
- 2FAを設定: パスワードマネージャー自体にもTOTPや物理キーで2FAを設定
二要素認証(2FA)の詳細解説
認証の3要素
セキュリティ認証には3種類の要素があります。
- 知識要素(something you know): パスワード、PIN、秘密の質問
- 所持要素(something you have): スマートフォン、ハードウェアキー、ICカード
- 生体要素(something you are): 指紋、顔認証、虹彩認証
二要素認証とは、これらのうち異なる種類の要素を2つ組み合わせることです。パスワード(知識)+スマートフォンアプリ(所持)の組み合わせが最も一般的です。
SMS認証の問題点
SMS認証は手軽で普及していますが、以下の弱点があります。
SIMスワップ攻撃: 攻撃者が通信キャリアの窓口担当者を騙し、ターゲットの電話番号を自分のSIMカードに移す攻撃です。成功するとSMSを乗っ取れるため、2FAを突破できてしまいます。
SMSの傍受: 旧来の通信プロトコル(SS7)の脆弱性を利用してSMSを傍受する手法が存在します。高度な攻撃者が行う手法ですが、国家機関レベルの攻撃では実用化されています。
フィッシングによるOTP詐取: 偽サイトに誘導し、リアルタイムで本物のサイトに転送しながらOTPを盗む「リアルタイムフィッシング」も確認されています。
TOTP(Time-based One-Time Password)の仕組み
Google Authenticator、Microsoft Authenticator、Authyなどの認証アプリが生成する6桁コードがTOTPです。
仕組みは以下の通りです。
- サービスとアプリが共通のシークレットキーを共有(QRコードでスキャン)
- 現在の時刻とシークレットキーを組み合わせてHMACアルゴリズムで計算
- 30秒ごとに新しいコードが生成される
- ネットワーク通信なしにオフラインで動作
SMSと違い、コードはデバイス上で生成されるため傍受されません。ただし、フィッシングサイトでコードを入力してしまうと突破される可能性があります。
FIDO2/WebAuthnとパスキー
**ハードウェアセキュリティキー(YubiKey等)**は、フィッシング耐性を持つ最強の2FA手段です。
FIDO2プロトコルでは、ログイン時に端末とサーバー間で公開鍵暗号方式による認証が行われます。重要なのは、認証がサイトのドメインに紐づいている点です。例え偽サイトに誘導されても、ドメインが違えば認証は失敗するため、フィッシングが無効化されます。
**パスキー(Passkey)**はFIDO2をより使いやすくした規格で、デバイスの生体認証(指紋、顔認証)や画面ロックを使ってパスワードなしでログインできます。
2023年以降、Google、Apple、Microsoft、GitHubなどの主要サービスがパスキーをサポートしており、急速に普及が進んでいます。
企業向けパスワードポリシーのベストプラクティス
NISTガイドラインの最新動向
米国国立標準技術研究所(NIST)は2017年と2024年にパスワードポリシーのガイドラインを大幅に更新しました。従来の「常識」を覆す内容が含まれています。
NISTが推奨しないこと(旧来の常識):
- 定期的なパスワード変更の強制
- 記号・数字・大文字を必ず含める複雑さの要件
- パスワードヒントの提供
- セキュリティの質問
NISTが推奨すること:
- 最低8文字(推奨は12文字以上)の長さ要件
- 最大64文字以上の受け入れ
- 全てのUnicode文字を許可
- スペースを含む入力を許可
- 入力フィールドでの「貼り付け」を禁止しない
- 漏洩パスワードリストとの照合による弱いパスワードのブロック
企業が導入すべきセキュリティ施策
1. シングルサインオン(SSO)の導入
SSOにより、従業員は1つの認証で複数の業務システムにアクセスできます。パスワードの数を減らし、強固な認証を一元管理できます。
主要なSSOソリューション: Okta、Microsoft Azure AD(Entra ID)、Google Workspace
2. 特権アクセス管理(PAM)
システム管理者などの特権アカウントは、平時は無効にしておき、必要な時だけ一時的に有効にする「Just-in-Time(JIT)アクセス」を実装します。
3. パスワード監査ツールの活用
Have I Been Pwned(HIBP)などのAPIを利用し、従業員が設定しようとしているパスワードが既知の漏洩パスワードリストに含まれていないか自動チェックします。
4. ゼロトラストアーキテクチャへの移行
「信頼するが検証する」から「決して信頼せず、常に検証する」への移行です。ネットワーク内にいるからといって自動的に信頼するのではなく、全てのアクセスを継続的に認証・認可します。
従業員向けセキュリティ教育
技術的な対策だけでなく、人的要因への対策も重要です。
- フィッシング訓練: 模擬フィッシングメールを送り、クリックした従業員をその場で教育
- セキュリティ意識向上トレーニング: 年1〜2回の必須研修
- インシデント報告文化の醸成: 不審なメールや操作を報告しやすい雰囲気を作る
パスワードセキュリティインシデントの多くは、技術的な脆弱性ではなく人的ミスから生じます。
パスワードレス認証の最新トレンド
パスワードの限界
パスワードは根本的に多くの問題を抱えています。
- 記憶の限界: 人間は強力なパスワードを多数記憶できない
- 盗難リスク: フィッシングやマルウェアで簡単に盗まれる
- コスト: パスワードリセットは企業のITヘルプデスクコストの20〜50%を占めるといわれる
- ユーザー体験: パスワード入力はログイン摩擦の最大要因
こうした課題から、大手テクノロジー企業はパスワードを完全に不要にする「パスワードレス認証」の普及を推進しています。
パスキー(Passkey)の詳細
パスキーはFIDO Allianceが策定し、Apple・Google・Microsoftが共同でサポートする標準規格です。
仕組み:
- サービスに登録する際、デバイスが公開鍵と秘密鍵のペアを生成
- 公開鍵はサービス側に保存、秘密鍵はデバイスのセキュリティチップ(Secure Enclave等)に保存
- ログイン時、デバイスの生体認証(指紋・顔)で秘密鍵のロックを解除し、サーバーからの認証チャレンジに署名
- 秘密鍵はデバイス外に出ないため、盗まれることがない
パスキーの特徴:
- フィッシング耐性: ドメイン紐づけにより偽サイトでは動作しない
- 漏洩リスクなし: サービス側には秘密鍵が保存されていない
- クロスデバイス: iCloud Keychain、Google Password Manager等でデバイス間同期
- 使いやすさ: 生体認証だけで完了するため、パスワードより操作が少ない
マジックリンクとワンタイムコード
メールやSMSに送られるリンクやコードをクリック・入力するだけでログインできる手法です。パスワードを持たないため漏洩リスクがありませんが、メールアカウント自体のセキュリティが最重要になります。
生体認証との組み合わせ
スマートフォンの指紋認証や顔認証をパスワードの代替として使う手法が普及しています。ただし生体情報自体は変更できないため、流出した場合の対処が困難という根本的な問題があります。生体認証は「ローカルでの認証」(デバイスのロック解除)に使い、ネットワーク越しに生体情報を送信しない設計が重要です。
企業向けパスワードレス認証の現状
Microsoft、Googleはすでに自社サービスでパスワードレスログインをデフォルト化しつつあります。
企業向けでは、Okta Fastpass、Microsoft Entra IDのパスワードレス認証、Duo Beyond等のソリューションが導入事例を増やしています。
MicrosoftやGoogleはすでに自社サービスでパスワードレスログインをデフォルト化しており、企業のセキュリティ戦略における主流手法になりつつあります。
パスワードと関連するセキュリティツール
強力なパスワードを自分で作るのが難しい場合、ツールを活用するのが効果的です。
- パスワード生成ツール: 指定した長さと文字種でランダムなパスワードを即座に生成します。パスワード生成ツールを使う →
- パスワード強度チェッカー: 設定したパスワードがどれほど安全かを確認できます。エントロピーの計算や推定クラック時間の表示など、詳細な分析が可能です。パスワード強度チェッカーを使う →
これらのツールはブラウザ上で動作し、入力したパスワードが外部のサーバーに送信されることはありません。安心して使用できます。
セキュリティ侵害を早期に検知するには
Have I Been Pwned(HIBP)の活用
自分のメールアドレスやパスワードが過去のデータ漏洩に含まれているかを確認できるサービス「Have I Been Pwned(haveibeenpwned.com)」を定期的にチェックすることをお勧めします。
HIBPには数十億件の漏洩認証情報が登録されており、メールアドレスを入力するだけでどのサービスから漏洩したかを確認できます。新しい漏洩があった場合にメールで通知を受け取ることも可能です。
パスワードマネージャーの多くはHIBPのAPIと連携し、保存しているパスワードが漏洩データベースに含まれていないかを自動チェックする機能を備えています。
不正アクセスのサイン
以下の兆候が見られたら、すぐにパスワードの変更と不正アクセスの調査を行ってください。
- メールやSMSで見覚えのないログイン通知が届く
- アカウントの設定(メールアドレス、電話番号、パスワード)が変更されている
- 注文履歴や利用履歴に覚えのない操作がある
- ログインできなくなった(攻撃者がパスワードを変更した可能性)
- 連絡先に心当たりのないメールや投稿が届いているという報告がある
まとめ
安全なパスワードの基本は「長さ」「固有性」「管理方法」の3つに集約されます。12文字以上のランダムなパスワードをサービスごとに設定し、パスワードマネージャーで管理し、可能な限り二要素認証を有効にする。この3つの対策を実践するだけで、パスワードに関するリスクは大幅に低減します。
さらに一歩進めるなら、パスキーに対応しているサービスではパスキーへの移行を検討してください。パスワードレス認証はフィッシング耐性が高く、使いやすさも向上するため、セキュリティとユーザー体験の両方を改善できます。
パスワードセキュリティは技術の進化とともに変化し続けています。最新のガイドラインをフォローしながら、適切な対策を継続的にアップデートしていくことが重要です。
