+V6 Authentication
---+V6.1 Authentication Documentation
------+V6.1.1 Verify that application documentation defines how controls such as rate limiting, anti-automation …
------+V6.1.2 Verify that a list of context-specific words is documented in order to prevent their use in …
------+V6.1.3 Verify that, if the application includes multiple authentication pathways, these are all documented …
---+V6.2 Password Security
------+V6.2.1 Verify that user set passwords are at least 8 characters in length although a minimum of 15 …
------+V6.2.2 Verify that users can change their password.
------+V6.2.3 Verify that password change functionality requires the user's current and new password.
------+V6.2.4 Verify that passwords submitted during account registration or password change are checked against …
------+V6.2.5 Verify that passwords of any composition can be used, without rules limiting the type of characters …
------+V6.2.6 Verify that password input fields use type=password to mask the entry. Applications may allow the …
------+V6.2.7 Verify that "paste" functionality, browser password helpers, and external password managers are …
------+V6.2.8 Verify that the application verifies the user's password exactly as received from the user, without …
------+V6.2.9 Verify that passwords of at least 64 characters are permitted.
------+V6.2.10 Verify that a user's password stays valid until it is discovered to be compromised or the user …
------+V6.2.11 Verify that the documented list of context specific words is used to prevent easy to guess …
------+V6.2.12 Verify that passwords submitted during account registration or password changes are checked against …
---+V6.3 General Authentication Security
------+V6.3.1 Verify that controls to prevent attacks such as credential stuffing and password brute force are …
------+V6.3.2 Verify that default user accounts (e.g., "root", "admin", or "sa") are not present in the …
------+V6.3.3 Verify that either a multi-factor authentication mechanism or a combination of single-factor …
------+V6.3.4 Verify that, if the application includes multiple authentication pathways, there are no …
------+V6.3.5 Verify that users are notified of suspicious authentication attempts (successful or unsuccessful). …
------+V6.3.6 Verify that email is not used as either a single-factor or multi-factor authentication mechanism.
------+V6.3.7 Verify that users are notified after updates to authentication details, such as credential resets …
------+V6.3.8 Verify that valid users cannot be deduced from failed authentication challenges, such as by basing …
---+V6.4 Authentication Factor Lifecycle and Recovery
------+V6.4.1 Verify that system generated initial passwords or activation codes are securely randomly generated …
------+V6.4.2 Verify that password hints or knowledge-based authentication (so-called "secret questions") are not …
------+V6.4.3 Verify that a secure process for resetting a forgotten password is implemented, that does not …
------+V6.4.4 Verify that if a multi-factor authentication factor is lost, evidence of identity proofing is …
------+V6.4.5 Verify that renewal instructions for authentication mechanisms which expire are sent with enough …
------+V6.4.6 Verify that administrative users can initiate the password reset process for the user, but that …
---+V6.5 General Multi-factor authentication requirements
------+V6.5.1 Verify that lookup secrets, out-of-band authentication requests or codes, and time-based one-time …
------+V6.5.2 Verify that, when being stored in the application's backend, lookup secrets with less than 112 bits …
------+V6.5.3 Verify that lookup secrets, out-of-band authentication code, and time-based one-time password …
------+V6.5.4 Verify that lookup secrets and out-of-band authentication codes have a minimum of 20 bits of …
------+V6.5.5 Verify that out-of-band authentication requests, codes, or tokens, as well as time-based one-time …
------+V6.5.6 Verify that any authentication factor (including physical devices) can be revoked in case of theft …
------+V6.5.7 Verify that biometric authentication mechanisms are only used as secondary factors together with …
------+V6.5.8 Verify that time-based one-time passwords (TOTPs) are checked based on a time source from a trusted …
---+V6.6 Out-of-Band authentication mechanisms
------+V6.6.1 Verify that authentication mechanisms using the Public Switched Telephone Network (PSTN) to deliver …
------+V6.6.2 Verify that out-of-band authentication requests, codes, or tokens are bound to the original …
------+V6.6.3 Verify that a code based out-of-band authentication mechanism is protected against brute force …
------+V6.6.4 Verify that, where push notifications are used for multi-factor authentication, rate limiting is …
---+V6.7 Cryptographic authentication mechanism
------+V6.7.1 Verify that the certificates used to verify cryptographic authentication assertions are stored in a …
------+V6.7.2 Verify that the challenge nonce is at least 64 bits in length, and statistically unique or unique …
---+V6.8 Authentication with an Identity Provider
------+V6.8.1 Verify that, if the application supports multiple identity providers (IdPs), the user's identity …
------+V6.8.2 Verify that the presence and integrity of digital signatures on authentication assertions (for …
------+V6.8.3 Verify that SAML assertions are uniquely processed and used only once within the validity period to …
------+V6.8.4 Verify that, if an application uses a separate Identity Provider (IdP) and expects specific …

V6 Authentication

Control Objective

Authentication is the process of establishing or confirming the authenticity of an individual or device. It involves verifying claims made by a person or about a device, ensuring resistance to impersonation, and preventing the recovery or interception of passwords.

NIST SP 800-63 is a modern, evidence-based standard that is valuable for organizations worldwide, but is particularly relevant to US agencies and those interacting with US agencies.

While many of the requirements in this chapter are based on the second section of the standard (known as NIST SP 800-63B "Digital Identity Guidelines - Authentication and Lifecycle Management"), the chapter focuses on common threats and frequently exploited authentication weaknesses. It does not attempt to comprehensively cover every point in the standard. For cases where full NIST SP 800-63 compliance is necessary, please refer to NIST SP 800-63.

Additionally, NIST SP 800-63 terminology may sometimes differ, and this chapter often uses more commonly understood terminology to improve clarity.

A common feature of more advanced applications is the ability to adapt authentication stages required based on various risk factors. This feature is covered in the "Authorization" chapter, since these mechanisms also need to be considered for authorization decisions.

References

For more information, see also:

1. Przegląd

Tytuł Norma
V6.1 Authentication Documentation

This section contains requirements detailing the authentication documentation that should be maintained for an application. This is crucial for implementing and assessing how the relevant authentication controls should be configured.

V6.2 Password Security

Passwords, called "Memorized Secrets" by NIST SP 800-63, include passwords, passphrases, PINs, unlock patterns, and picking the correct kitten or another image element. They are generally considered "something you know" and are often used as a single-factor authentication mechanism.

As such, this section contains requirements for making sure that passwords are created and handled securely. Most of the requirements are L1 as they are most important at that level. From L2 onwards, multi-factor authentication mechanisms are required, where passwords may be one of those factors.

The requirements in this section mostly relate to § 5.1.1.2 of NIST's Guidance.

V6.3 General Authentication Security

This section contains general requirements for the security of authentication mechanisms as well as setting out the different expectations for levels. L2 applications must force the use of multi-factor authentication (MFA). L3 applications must use hardware-based authentication, performed in an attested and trusted execution environment (TEE). This could include device-bound passkeys, eIDAS Level of Assurance (LoA) High enforced authenticators, authenticators with NIST Authenticator Assurance Level 3 (AAL3) assurance, or an equivalent mechanism.

While this is a relatively aggressive stance on MFA, it is critical to raise the bar around this to protect users, and any attempt to relax these requirements should be accompanied by a clear plan on how the risks around authentication will be mitigated, taking into account NIST's guidance and research on the topic.

Note that at the time of release, NIST SP 800-63 considers email as not acceptable as an authentication mechanism (archived copy).

The requirements in this section relate to a variety of sections of NIST's Guidance, including: § 4.2.1, § 4.3.1, § 5.2.2, and § 6.1.2.

V6.4 Authentication Factor Lifecycle and Recovery

Authentication factors may include passwords, soft tokens, hardware tokens, and biometric devices. Securely handling the lifecycle of these mechanisms is critical to the security of an application, and this section includes requirements related to this.

The requirements in this section mostly relate to § 5.1.1.2 or § 6.1.2.3 of NIST's Guidance.

V6.5 General Multi-factor authentication requirements

This section provides general guidance that will be relevant to various different multi-factor authentication methods.

The mechanisms include:

  • Lookup Secrets
  • Time based One-time Passwords (TOTPs)
  • Out-of-Band mechanisms

Lookup secrets are pre-generated lists of secret codes, similar to Transaction Authorization Numbers (TAN), social media recovery codes, or a grid containing a set of random values. This type of authentication mechanism is considered "something you have" because the codes are deliberately not memorable so will need to be stored somewhere.

Time based One-time Passwords (TOTPs) are physical or soft tokens that display a continually changing pseudo-random one-time challenge. This type of authentication mechanism is considered "something you have". Multi-factor TOTPs are similar to single-factor TOTPs, but require a valid PIN code, biometric unlocking, USB insertion or NFC pairing, or some additional value (such as transaction signing calculators) to be entered to create the final One-time Password (OTP).

Details on out-of-band mechanisms will be provided in the next section.

The requirements in these sections mostly relate to § 5.1.2, § 5.1.3, § 5.1.4.2, § 5.1.5.2, § 5.2.1, and § 5.2.3 of NIST's Guidance.

V6.6 Out-of-Band authentication mechanisms

This usually involves the authentication server communicating with a physical device over a secure secondary channel. For example, sending push notifications to mobile devices. This type of authentication mechanism is considered "something you have".

Unsafe out-of-band authentication mechanisms such as e-mail and VOIP are not permitted. PSTN and SMS authentication are currently considered to be "restricted" authentication mechanisms by NIST and should be deprecated in favor of Time based One-time Passwords (TOTPs), a cryptographic mechanism, or similar. NIST SP 800-63B § 5.1.3.3 recommends addressing the risks of device swap, SIM change, number porting, or other abnormal behavior, if telephone or SMS out-of-band authentication absolutely has to be supported. While this ASVS section does not mandate this as a requirement, not taking these precautions for a sensitive L2 app or an L3 app should be seen as a significant red flag.

Note that NIST has also recently provided guidance which discourages the use of push notifications. While this ASVS section does not do so, it is important to be aware of the risks of "push bombing".

V6.7 Cryptographic authentication mechanism

Cryptographic authentication mechanisms include smart cards or FIDO keys, where the user has to plug in or pair the cryptographic device to the computer to complete authentication. The authentication server will send a challenge nonce to the cryptographic device or software, and the device or software calculates a response based upon a securely stored cryptographic key. The requirements in this section provide implementation-specific guidance for these mechanisms, with guidance on cryptographic algorithms being covered in the "Cryptography" chapter.

Where shared or secret keys are used for cryptographic authentication, these should be stored using the same mechanisms as other system secrets, as documented in the "Secret Management" section in the "Configuration" chapter.

The requirements in this section mostly relate to § 5.1.7.2 of NIST's Guidance.

V6.8 Authentication with an Identity Provider

Identity Providers (IdPs) provide federated identity for users. Users will often have more than one identity with multiple IdPs, such as an enterprise identity using Azure AD, Okta, Ping Identity, or Google, or consumer identity using Facebook, Twitter, Google, or WeChat, to name just a few common alternatives. This list is not an endorsement of these companies or services, but simply an encouragement for developers to consider the reality that many users have many established identities. Organizations should consider integrating with existing user identities, as per the risk profile of the IdP's strength of identity proofing. For example, it is unlikely a government organization would accept a social media identity as a login for sensitive systems, as it is easy to create fake or throwaway identities, whereas a mobile game company may well need to integrate with major social media platforms to grow their active player base.

Secure use of external identity providers requires careful configuration and verification to prevent identity spoofing or forged assertions. This section provides requirements to address these risks.

1.1 Odwołania

1.2 Zidentyfikowane wymagania

1.3 Powiązane regulacje

2. Zidentyfikowane wymagania

Wymagania
Źródło Wymaganie

3. Powiązane regulacje

Regulacje
Źródło Regulacja
  • OWASP -

    EN: Publications of the OWASP Foundation, https://owasp.org/. OWASP® is a registered trademark of the OWASP Foundation, Inc.; GRCA is not affiliated with, nor endorsed by, the OWASP Foundation. Only the versions published by OWASP are authoritative.

    DE: Veröffentlichungen der OWASP Foundation, https://owasp.org/. OWASP® ist eine eingetragene Marke der OWASP Foundation, Inc.; GRCA steht in keiner Verbindung zur OWASP Foundation und wird von ihr nicht unterstützt. Maßgeblich sind allein die von OWASP veröffentlichten Fassungen.