トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

パスワード認証に関する要求事項(推奨) のバックアップ(No.1)


認証方式設計の検討とパスワード認証の要求事項?

本項は、独自にパスワード認証を実装する際の要求事項と、Windows認証を使用する際の留意事項を解説します。

独自にパスワード認証を実装する場合

今後、構築されるアプリケーションのパスワードの要件として以下を推奨します。なお、必要に応じてテラーリングを認めますが、強度が低くなるテラーリングをする際は、その理由を明確にして文書化し、ユーザーとベンダーで共有し合意してください。

  • 長さ
    • 8文字以上 64文字以上の受け入れを許可する
    • パスワード評価を実装しない場合、14桁以上を求める
  • 定期変更
    • 要求しない
  • 複雑さ
    • パスワード評価の例外を除き要求しない
  • パスワードの評価
    • IDから個人を特定できる場合
      • 推測可能な生年月日や電話番号を避けるため英数を要求する
    • 拒否する文字列
      • IDや氏名が含まれる場合は拒否する
    • 特定の文字列の繰り返し
      • 12341234などは拒否する
    • 連続した文字列
      • qwertyuiop 11111111などは拒否する
    • 評価に違反した場合は、理由と改善方法をユーザーに通知する
  • アカウントロックアウト
    • 連続失敗回数
      • 3-5回
    • ロックアウト期間
      • 15分以上 もしくは経路外認証によるパスワード変更
  • パスフレーズを推奨する表示
    • 20桁を超えるパスフレーズを推奨する旨の表示を実装する
  • 漏洩のチェック
    • 漏洩が発覚した際は即時に変更を求める なお、重要資産へのアクセスの際は、リスクベース認証 の組合せや多要素認証を強く推奨します。


Active Directory Windows認証を利用する際の留意事項

Active Directory のパスワードに関連する実装はNIST SP800-63-3よりも古いため、次の留意点があります。

  • 複雑さは規程値で適用されるため、フィルターDLLと呼ばれるパスワードフィルターのカスタマイズを実施しないと、前項の実装との統一はできません。

[複雑さの要件を満たす必要があるパスワード]プロパティの規定値

グループポリシーの[アカウントポリシー]>[パスワードのポリシー]>[複雑さの要件を満たす必要があるパスワード]プロパティは、ドメインコントローラーの場合、既定で [有効] となっており、メンバーコンピュータはドメインコントローラーの構成に従います。以下が強制されます。

  • ユーザーのアカウント名またはフル ネームに含まれる 3 文字以上連続する文字列を使用しない。
  • 長さは 6 文字以上にする。
  • 次の 4 つのカテゴリのうち 3 つから文字を使う。
  • 英大文字 (A から Z)
  • 英小文字 (a から z)
  • 10 進数の数字 (0 から 9)
  • アルファベット以外の文字 (!、$、#、% など)
  • 複雑さの要件は、パスワードの変更時または作成時に強制的に適用されます。

[複雑さの要件を満たす必要があるパスワード]プロパティの規定値を [無効] にした場合

ユーザーのアカウント名 (samAccountName) またはフルネーム (displayName) に含まれる文字列がパスワードに含まれているかをチェックしません。

[複雑さの要件を満たす必要があるパスワード] プロパティの規定値を変更したい場合

パスワードのポリシーは、パスワード変更時に参照される Passfilt.dll というフィルターDLLで決定されます。Passfilt.dllをカスタマイズすることで、変更が可能です。 Platform Software Development Kit(SDK)に Passfilt.dll のソースが掲載されていますので、参照してください。 https://docs.microsoft.com/en-us/previous-versions//ms722439(v=vs.85)?redirectedfrom=MSDN