コンテンツにスキップ
SP 800-63B-4 は認証要素を何種類に分けているか。多要素認証はそれを使ってどう定義されているか。

something you know、something you have、something you are の 3 種類 である。 多要素認証(MFA)は、成功した認証のために 異なる種類 の認証要素を 2 つ以上要求する認証システムと定義されている(用語集の訳)。

OTP 認証器と、FIDO2 仕様を実装した認証器が使う WebAuthn のうち、SP 800-63B-4 がフィッシング耐性を提供する標準の例として挙げているのはどちらか。それは何によるとされているか。

WebAuthn である。§3.2.5.2 は、WebAuthn が検証者の認証済みドメイン名に基づいて認証器の秘密を選ぶことで、 verifier name binding によるフィッシング耐性を提供するとしている。 OTP については、§3.1.4 が「OTP authentication is not phishing-resistant.」と明記している。

OTP 認証がフィッシング耐性を持たないとされる理由は何か。

認証器の出力を手で入力する方式では、その出力が認証中の特定のセッションに結び付かない からである。 SP 800-63B-4 は、偽の検証者が受け取った出力を本物の検証者へ中継すれば認証に成功できる、という例を挙げている。

NIST SP 800-63B-4 は認証要素を something you know / have / are の 3 種類とし、異なる種類の要素を 2 つ以上要求する仕組みを多要素認証と定義する。OTP のように認証器の出力を手で入力する方式は、出力が認証中のセッションに結び付かないため、フィッシング耐性があるとみなしてはならないとされる。

認証要素(SP 800-63B-4)SP 800-63B-4 がこの要素に当たるとしているもの
something you knowパスワード(数字のものは PIN と呼ばれることがある)
something you have単一要素の OTP 認証器、物理的な認証器(physical authenticator)
something you are生体照合(biometric match)。生体は、物理的な認証器と組み合わせた MFA の一部としてだけ使う(§3.2.3。詳しくは生体認証技術のノート)

シラバスの用語例「多要素認証(記憶,所有,生体)」の括弧の中の 3 語と、SP 800-63B-4 の 3 種類の対応は、どちらの資料も述べていない。表は SP 800-63B-4 の分け方である。

シラバスは、この細目で「利用者認証のために利用される技術の種類,仕組み,特徴」を理解するとしている。 用語例は、ログイン(利用者IDとパスワード)、ワンタイムパスワード、多要素認証(記憶,所有,生体)、多段階認証、 パスワードレス認証(FIDO UAF,FIDO U2F,FIDO2,WebAuthn)、アイデンティティ連携(OpenID Connect,SAML)、 シングルサインオン、CAPTCHA など 16 語である。

SP 800-63B-4 の用語集は、認証要素(authentication factor)を 「something you know, something you have, and something you are」の 3 種類とし、 どの認証器も 1 つ以上の認証要素を持つ としている。

多要素認証(MFA)は、成功した認証のために異なる種類の認証要素を 2 つ以上要求する認証システムである。 MFA は、多要素認証器を使って行うことも、異なる種類の要素を提供する単一要素認証器を組み合わせて 行うこともできる。 これに対して単一要素(single-factor)は、認証に 1 つの認証要素だけを要求する性質を指す。

SP 800-63B-4 §3.1.1 は、パスワードを、利用者が選び、記憶するか記録しておくことを想定した秘密の値としている。 パスワードは passphrase と呼ばれることがあり、数字のものは PIN(personal identification number)と呼ばれることがある。 パスワードは「something you know」である。

§3.1.4 は、単一要素の OTP 認証器を次のように説明している。

  • ハードウェアの装置と、携帯電話などに入れるソフトウェアの OTP 生成器を含む
  • 認証器には OTP 生成のシードとして使う秘密が組み込まれており、第 2 の要素による有効化を必要としない
  • OTP は認証器に表示され、手で入力されて検証者へ送られる。これにより認証器の所有と管理を証明する
  • 秘密は、時刻に基づくか、認証器と検証者のカウンタに基づく nonce から計算される

同じ節は 「OTP authentication is not phishing-resistant.」 と明記している。

フィッシング耐性と WebAuthn(FIDO2)

Section titled “フィッシング耐性と WebAuthn(FIDO2)”

§3.2.5 はフィッシング耐性を、偽の検証者(検証者になりすました攻撃者)に認証の秘密や有効な認証器出力が 渡ることを、利用者の注意に頼らずに 防ぐ認証プロトコルの能力、としている。 フィッシング耐性には、単一要素または多要素の暗号による認証(cryptographic authentication)が必要である。

認められている方法は channel binding と verifier name binding の 2 つである。 §3.2.5.2 は、FIDO2 仕様を実装した認証器が使う WebAuthn を、検証者の認証済みドメイン名に基づいて 認証器の秘密を選ぶことで verifier name binding によるフィッシング耐性を提供する標準の例として挙げている。

次はいずれもこのノートの根拠に含まれていない。

  • 「多要素認証(記憶,所有,生体)」の括弧の中の 3 語と、SP 800-63B-4 の 3 種類の関係
  • ログイン(利用者IDとパスワード)・PINコードの中身、および SP 800-63B-4 の PIN とシラバスの PINコードの関係
  • 多段階認証の中身、および多段階認証と多要素認証の関係
  • パスワードレス認証の中身、およびパスワードレス認証と WebAuthn・FIDO2 の関係
  • アクセス管理・セキュリティトークンの中身
  • FIDO UAF・FIDO U2F の中身
  • Kerberos方式・ICカード・EMV 3-Dセキュア(3Dセキュア2.0)の仕組み
  • アイデンティティ連携(OpenID Connect,SAML)・IdP(Identity Provider)・IDaaS(Identity as a Service)・シングルサインオンの仕組み
  • CAPTCHA の仕組み

名前から内容を推測して書くことは spec.md §8.1a に反する。

SP 800-63B-4 §3.2.5 は、帯域外認証器や OTP 認証器のように認証器の出力を手で入力する方式を フィッシング耐性があるとみなしてはならない(SHALL NOT)とし、その理由を 「the manual entry does not bind the authenticator output to the specific session being authenticated」と述べている。

§3.2.5 はこれに続けて、例として、偽の検証者が受け取った出力を本物の検証者へ中継すれば認証に成功できることを挙げている。

前提

関連