In June 2017, the US National Institute of Standards and Technology (NIST) issued new guidance on authentication in the form of four Special Publications (SP).
- SP 800-63 is an overview of digital identity and the other three publications in the series.
- SP 800-63A discusses digital enrollment and identity proofing.
- SP 800-63B discusses authentication and lifecycle management.
- SP 800-63C discusses federation and assertions.
This post is about SP 800-63B which covers the new password guidance from NIST. In the vernacular of NIST, a password/passphrase is referred to as ‘Memorized Secret Authenticator’. Here are the key attributes offered by this new NIST guidance:
- A Memorized Secret Authenticator must be at least a minimum of eight characters in length and should allow for at least 64 characters.
- All printable ASCII characters should be allowed for comprising a Memorized Secret Authenticator.
- A replacement Memorized Secret Authenticator used to reset a forgotten/corrupted/compromised Memorized Secret Authenticator must be at least six characters long.
- A Memorized Secret Authenticator can be forced to comply with blacklisted words/phrases to avoid guessing or brute force attacks.
- No hints are allowed to be provided to unauthenticated users.
- When changing a Memorized Secret Authenticator, the provider should ensure that the new Memorized Secret Authenticator is not known to be compromised, a known word or expected value such as ‘12345678password’ or similar.
- The Memorized Secret Authenticator can be displayed if it cannot be readily observed by others.
- Verifiers should not impose other composition rules (e.g., requiring mixtures of different character types or prohibiting consecutively repeated characters) for memorized secrets.
- Verifiers should not require memorized secrets to be changed arbitrarily (e.g., periodically). However, verifiers shall force a change if there is evidence of compromise of the authenticator.
A lot of clients are pushing hard to use these new NIST rules in place of the PCI DSS requirements. As a reminder, the PCI DSS requires the following when it comes to passwords.
- 8.2.3 Passwords/passphrases must meet the following: require a minimum length of at least seven characters, contain both numeric and alphabetic characters. Alternatively, the passwords/ passphrases must have complexity and strength at least equivalent to the parameters specified above.
- 8.2.4 Change user passwords/passphrases at least once every 90 days.
- 8.2.5 Do not allow an individual to submit a new password/passphrase that is the same as any of the last four passwords/passphrases he or she has used.
- 8.2.6 Set passwords/passphrases for first-time use and upon reset to a unique value for each user, and change immediately after the first use.
So where are we in regard to NIST versus PCI DSS?
On length, we are good. Both documents have a minimum of 8 characters.
Complexity is a sticking point as the PCI DSS imposes complexity rules on the composition of passwords, NIST states that the authentication system should not impose such composition rules.
NIST is more restrictive on the checking of password/passphrase changes to include ensuring that they have not been used somewhere else that was compromised. In addition, it also requires that if believed to be compromised, the authentication system should force a change.
However, it is when we get to changing passwords/passphrases on a specific interval that we run into trouble. NIST advises that arbitrary changing of passwords/passphrases are not required whereas the PCI DSS states that passwords/passphrases should be changed every 90 days. NIST counts on the fact that they require to monitor that credentials have not been compromised to support their not requiring an arbitrary change of passwords.
The first thing that comes to peoples’ mind is the guidance to requirement 8.2.3 which states:
“Strong passwords/passphrases are the first line of defense into a network since a malicious individual will often first try to find accounts with weak or non-existent passwords. If passwords are short or simple to guess, it is relatively easy for a malicious individual to find these weak accounts and compromise a network under the guise of a valid user ID.
This requirement specifies that a minimum of seven characters and both numeric and alphabetic characters should be used for passwords/ passphrases. For cases where this minimum cannot be met due to technical limitations, entities can use “equivalent strength” to evaluate their alternative. For information on variability and equivalency of password strength (also referred to as entropy) for passwords/passphrases of different formats, refer to industry standards (e.g., the current version of NIST SP 800-63.)
Note: Testing Procedure 8.2.3.b is an additional procedure that only applies if the entity being assessed is a service provider.”
What people focus on is the last sentence before that note that states:
“For information on variability and equivalency of password strength (also referred to as entropy) for passwords/passphrases of different formats, refer to industry standards (e.g., the current version of NIST SP 800-63.)”
They then refer the QSA to that statement and say that gives them license to apply that guidance to requirement 8.2.4 and the other password related requirements. Unfortunately, that guidance only applies to 8.2.3 as it clearly references “password strength” and nothing about change interval or anything else related to password attributes.
Another key point is that the guidance for 8.2.4 makes no reference to SP 800-63. The Council will tell you that if SP 800-63 applied to 8.2.4, they would have included the same sort of reference in the guidance for 8.2.4 as they did in 8.2.3. Without that reference, a QSA should not be using the new NIST guidance to replace the requirements specified in 8.2.4.
So, with that path ruled out, the second thing that comes to peoples’ mind is, we will write a compensating control for following the NIST guidance.
There is only one thing wrong with the compensating control approach and that is that a compensating control must go “above and beyond” the PCI DSS requirement. Above and beyond 90 days would be a value less than 90, not more than 90. The test is very specific that the change interval must be no more than 90 days. As a result, there is no compensating control that will get you above and beyond the intent of a 90-day change interval.
That is not to say that you and your QSA cannot write such a compensating control. The question then becomes if you can get your acquiring bank to sign off on such a compensating control? There are a number of banks that are not so diligent with their reviews of PCI ROC filings and such a compensating control would sail under the radar. But that is no guarantee.
However, such a compensating control puts your QSAC at risk of remediation if the PCI ROC is selected as part of the Council’s Assessor Quality Management (AQM) review. Such a compensating control would not be viewed favorably by the Council because it flagrantly violates the rules of a compensating control. Remediation, while not a death nell to a QSAC, does adversely impact sales of PCI assessments and services and makes current clients uncomfortable, so going into remediation is avoided by QSACs like the plague.
The bottom line is that until the Council makes a change to the PCI DSS (i.e., v4), you are stuck with its password/passphrase requirements regardless of what other standards setting bodies state.
UPDATE – June 28, 2019
This is from the PCI SSC June 2019 Assessor Newsletter.
“PCI DSS v3.2.1 to NIST Cybersecurity Framework Mapping
In July, the PCI Security Standards Council (PCI SSC) will be releasing new resources that show how the PCI Data Security Standard (PCI DSS) maps to the NIST Cybersecurity Framework. PCI DSS and the NIST Cybersecurity Framework share the common goal of securing data. The Mapping of PCI DSS to the NIST Cybersecurity Framework will provide a resource for stakeholders to use in understanding how to align security efforts to meet objectives in both PCI DSS and the NIST Cybersecurity Framework.Details about the Mapping of PCI DSS to the NIST Cybersecurity Framework will be coming soon to the PCI SSC website.”