日本語
  • パスワード
  • 認証
  • サインインエクスペリエンス
  • 製品
  • セキュリティ

パスワードポリシーを設計する

コンプライアンス、安全性、ユーザーフレンドリーな製品のパスワードポリシーを作成するための洞察を得て、Logtoがあなたの認証プロセスの安全性を確保します。

Ran
Ran
Product & Design

パスワードは本当にあなたを守っているのか?

製品内で、クラシックな認証方法であるパスワードに頼る必要があるでしょう。パスワードは完全には置き換わらないとしても、代替の認証方法に比べて攻撃に対して脆弱です。あなたのパスワードポリシーは本当に安全でコンプライアンスに準拠したものですか? 様々なパスワードポリシーの技術に精通していても、それらを層にして本当に効果的なのでしょうか?

NISTの仕様を深く研究し、主要な製品のパスワードポリシーを検討し、ユーザーエクスペリエンスのバランスを確保することで、パスワードポリシーの設計と構成の複雑さに取り組みます。パスワードコンプライアンスの重要性を強調し、パスワード戦略に伴う課題を解消し、パスワードを他の多要素認証 (MFA) 検証要素とシームレスに統合することでアカウントセキュリティを確保するための包括的なプロセスを提供します。

ユーザーが必要とするパスワードの種類とは?

製品設計者は、自社の製品が十分に安全であるかどうかという問題に悩まされ、厳しく複雑なパスワードポリシーを実装することがよくあります。たとえば、大文字と小文字の組み合わせ、数字、特別な文字を要求したり、社員の定期的なパスワード変更を義務付けたりします。

こうしたパスワード要件に直面すると、ユーザーはすぐに不満を声に出します:「なぜこんなに複雑なの? パスワードを覚えるのがフルタイムの仕事のように感じる!」 製品マネージャーは頭を悩ませ、複雑なパスワードポリシーが必ずしも優れているとは限らないと考えます。包括的なパスワードポリシーの要素を分解して見てみましょう。

次のセクションでは、パスワードポリシーの微妙な点を掘り下げ、セキュリティとユーザーの利便性のバランスを取ります。適切なパスワード要件を定義する方法を探り、アプローチを裏付けるデータに基づく洞察を提供します。

すべてのパスワード要素のチェックリスト

まず、数多くの製品とNIST仕様を分析した後、パスワード要素と設計に関する推奨事項の包括的なリストを作成しました。

これらは大まかに3つのグループに分類されます:

  1. パスワード設定要件: ユーザーが設定するパスワードの最低要件。
  2. パスワードセキュリティの監視: パスワードのリスクが検出された場合の即時の行動とフィードバック。
  3. パスワードユーザーエクスペリエンス: パスワードの作成と検証中のユーザー入力体験の向上。
カタログ要素分析 (https://pages.nist.gov/800-63-3/sp800-63b.html#sec5 参照)
パスワード要件の設定長さパスワードの長さを増やすことは、複雑さよりもパスワードクラックを防ぐのに効果的です。NISTは8文字以上を推奨していますが、より長いパスワードを許可すべきです。
文字タイプパスワードはさまざまな文字タイプをサポートでき、大文字、小文字、数字、記号、ユニコードを含みます(スペース文字も許可すべきです)。
パスワードポリシーは特定の情報を記憶するようユーザーに求めるべきではありません。これはセキュリティを効果的に高めることなく複雑さを増すことが証明されています。https://www.notion.so/General-f14f0fb677af44cb840821776831a021?pvs=21
低安全性のフレーズユーザーが推測しやすいまたはクラックされやすいパターン(繰り返しや連続した文字、一般的な単語、ユーザー情報、製品情報)を使用する場合、パスワードを変更するよう促すことが望ましいです。
漏洩パスワード新しいユーザーパスワードはリークされたパスワードリストと照合し、それが漏洩していないことを確認する必要があります。
パスワードセキュリティの監視パスワード検証のレート制限パスワード入力の誤りが続く回数を制限します。この制限に達したときは、MFAの要求、プッシュ通知の送信、クールダウンタイムの導入、アカウントの一時停止などのセキュリティ対策を実施します。
パスワードの強制変更認証情報が危険にさらされた証拠がある場合は、パスワード変更を強制しなければなりませんが、任意にパスワードを変更することは求められません。
パスワード履歴再使用できない過去のパスワードの記録を維持します。過度なパスワード再利用の制限はお勧めできず、ユーザーは軽微な変更を加えてこのルールを回避する可能性があります。
パスワード変更後のセッションクリアパスワードを変更した後で他のデバイスからサインアウトするかどうかをユーザーが選択できるようにします。
パスワード入力体験パスワード強度メーター強力な記憶された秘密を選択するためのガイダンスをユーザーに提供します。
パスワードプロンプトパスワードヒントを表示しないようにします。これは不正アクセスの確率を増加させます。
パスワードのコピーアンドペーストパスワードマネージャーの利用を促進するために「ペースト」機能の使用を許可します。
パスワードの表示パスワードを入力する際、送信するまでドットまたはアスタリスクで表示するのではなく、入力したまま表示するオプションを提供します。

パスワードエクスペリエンスを構成するツール

おそらく、チェックリストのすべての項目を確認する余裕はないでしょう。これらの設定オプションをすべて包含する強力なパスワードツールを設計したとしても、それは開発者にとって頭痛の種となり、複雑なパスワードポリシー自体よりも複雑になってしまうかもしれません。したがって、さらに簡略化してパスワード要素を3つのステップに分けてみましょう。

ステップ1: 不要なルールを排除する

表に示したように、一部の時代遅れのパスワードルールはセキュリティを強化するように思われるかもしれませんが、実際にはほとんど貢献せず、ユーザーの不満や混乱を引き起こすことが多いです。

  • ユーザーが使用しなければならない文字の組み合わせを制限せず、文字タイプの数を制限するだけで十分です。たとえば、Facebook、Discord、Stripeは特定の文字タイプの組み合わせを要求せず、Googleのパスワードポリシーは「少なくとも2つの種類の文字、数字、記号」を要求するだけです。
  • 定期的にパスワードを変更することを義務付けないでください。これはユーザーの記憶に不要な負担をかけます。代わりに、認証情報の危険がある場合のみパスワード変更を要求してください。
  • ユーザーの誤解を防ぐために、明確な最低パスワード要件とパスワード強度メーターのどちらかを選択するだけです。
  • ユーザーが必ずしも犯さない誤りを読むことに集中させないように、あまりにも複雑なルールを前面に出さないでください。
  • パスワードヒントを使用しないでください。これは潜在的な攻撃者に利点を与えてしまいます。

ステップ2: 製品ごとにカスタマイズを提供する

最低パスワードポリシーのための柔軟な設定オプションを提供し、開発者の学習曲線を下げ、デフォルトのサインインエクスペリエンスを提供します。これらのオプションには以下が含まれます:

  • 最小長: デフォルト値は8文字、最小1文字。
  • 必要な最小文字タイプ: 制限なしを推奨、つまり4つ中1つを設定します。
  • パスワード制限用語: すべての制限を有効にすることをお勧めします。ユーザーは同じ語彙を引き起こさないように3つ以上の連続しない文字を追加することが許可されます。この追加によりパスワードの乱雑さが増します。
  • 漏洩したパスワードの禁止: 信頼できる漏洩パスワードデータベースを使用して、ディレクトリ攻撃から保護するためにユーザーが同一のパスワードを使用するのを防ぎます。
パスワードポリシー

ステップ3: 固定値でセキュリティを保証する

カスタマイズできないパラメータについては、パスワードのセキュリティを保証するためにバックアップロジックを実装しました。特定のカスタマイズ要件がある場合はお気軽にお知らせください。

  • パスワード検証のレート制限: パスワードの誤認証が続く回数と、サインインを一時停止するクールダウンタイムを制限しました。これにより連続したパスワード攻撃から保護します。さらに連続した失敗したパスワード認証についてはウェブフックを提供しており、これを利用してメール通知を送信したり、漏洩する危険性の高いアカウントを一時停止できます。
  • デフォルトでは、パスワードをリセットしてトークンを更新した後に他のデバイス上のセッションをクリアします。この追加のセキュリティ層は、アカウントへの不正アクセスを防ぎ、データが機密性を保持し保護されることを確認します。

結論

これらの3つの簡単なステップで、パスワードエクスペリエンスの構成プロセスを簡略化し、セキュリティとユーザーの利便性のバランスを取ることができます。Logtoは、製品のための安全でユーザーフレンドリーな認証システムを簡単にセットアップできるようにします。今後のMFA機能にご期待ください。」