PR

認証を3段階にレベル分け

 SP800-63Bでは、これらの認証手段を単独もしくは組み合わせて使ったときの認証の信頼度を、AALというレベルで3段階に分けています。AALでは、同じ区分の認証手段を複数使ってもレベルは上がりません。「多要素か」「ハードウエアを使っているか」「暗号鍵を使っているか」がポイントになります(図4)。

図4●信頼性のレベル別に必要な認証手段
図4●信頼性のレベル別に必要な認証手段
SP800-63Bでは、AALという認証の信頼性を3段階にレベル分けして、それぞれのレベルを満たすのに必要な認証手段を提示している。AAL2では単独もしくは複数の認証手段による多要素の認証を必要とし、AAL3では多要素でハードウエアおよび暗号鍵を使用する認証を必要とする。
[画像のクリックで拡大表示]

 AAL1は、最も信頼性が低いレベルです。九つの認証手段のいずれかを使えばこのレベルになります。

 一つ上のレベルのAAL2は、多要素が条件です。多要素の手段を一つ使うタイプと、複数の手段を組み合わせるタイプがあります。前者は、(5)多要素のOTP端末、(8)多要素の暗号用ソフトウエア、(9)多要素の暗号用端末のいずれかを使うタイプです。後者は、(1)記憶による秘密と別の認証手段((2)~(4)、(6)、(7))を組み合わせるタイプです。後者は具体例を考えると想像しやすいと思います。(1)をパスワード認証だとすると、スマホによる認証を加えて二段階認証にしたり、OTPやクライアント証明書を組み合わせたりすればこのレベルになります。

 AAL3は、最も信頼性が高いレベルです。タイプは六つあります。詳細は図を参照してください。多要素であり、ハードウエアと暗号鍵を使っているのが条件です。

パスワード定期変更を強制しない

 最後に、注目されているパスワードに関する説明を見ていきます。

 パスワードは、長さや使える文字の種類、更新のタイミングなどについて細かく規定しています(図5)。

図5●パスワードに対する主な条件
図5●パスワードに対する主な条件
SP800-63Bでは、推奨するパスワードの長さや更新のタイミングなどを明記している。パスワードの定期変更は強制しないとしているが、不要とは書いていない。
[画像のクリックで拡大表示]

 長さは8文字以上が必須で、64文字以上を受け付けるよう推奨しています。また、システム側がパスワードを指定するときは、乱数生成器を使って6文字以上にするとしています。使用する乱数生成器は、「SP800-90Ar1」というガイドラインで規定しています。

 文字列は、英字の小文字/大文字、数字、記号のそれぞれを一つ以上使うといった複雑性を強制しないことを推奨しています。複雑性を強制するとパスワードを考えるのが大変になって、複数のサービスで使い回すユーザーが増えるからです。複雑性を強制しない一方で、文字の種類を増やすことを許容しています。具体的には、スペースやUnicodeを使ってもよいとしています。

 このほか、過去に漏洩したパスワードと一致した文字列や、同じ文字の繰り返し、辞書にそのまま掲載されている単語、サービス名などから想像しやすい文字列を使ったときは、ユーザーに通知するよう強制しています。こうした文字列は、攻撃者に使われる可能性が高いからです。サービス名から想像しやすい文字列とは、例えば楽天だったら、「rakuten」という文字列を使うということです。

 パスワードの更新は、「定期変更など、プロバイダーが決めたタイミングで更新を強制しない」ことを推奨しています。理由は、定期変更によって弱いパスワードを設定されるリスクを低減するためとしています。更新を強制するのは、パスワードの漏洩など重大な事件発生時のみです。

 この文書だけを根拠に「定期変更は不要」と断定的に書かれた記事は、言い過ぎもしくは文書を誤認したのではないでしょうか。

▼AAL
Authenticator Assurance Levelの略。
▼Unicode
文字コードの一つ。あらゆる文字を符号化するために規格化された。
辻 伸弘(つじ のぶひろ)
ソフトバンク・テクノロジーで技術統括 脅威情報調査室プリンシパルセキュリティリサーチャーを務める。企業から依頼を受けて、外部から実際にシステムを攻撃してセキュリティ上の弱点を発見するペネトレーションテストを担当。テレビや雑誌などのメディアに登場し、また様々な講演に多数登壇している。