Authentication - Acceptable Management of Session Bindings, v1.0

Sessions must be generated, managed, and terminated properly to ensure safe interactions between subscriber and service.

Assessment Steps (6)

1
Session Generation (SessionGeneration)
Are sessions generated correctly between subscriber and service?
Artifact
A1
Provide evidence (e.g. operational details, software data) that the service generates sessions correctly.
2
Session AAL (SessionAAL)
Are session AALs never elevated? AAL is strictly determined by authentication.
Artifact
A1
Provide evidence (e.g. operational details, software data) that the service never elevates AAL after session generation.
3
Session Secrets (SessionSecrets)
Are secrets for sessions generated, disposed of, and handled appropriately? Generated by session host, generated by an approved random bit generator, have sufficient entropy, should be erased at logout, established over authenticated and protected channels, and have reasonable timeouts.
Artifact
A1
Provide evidence (e.g. operational details, software data) that indicates session secrets are handled appropriately.
4
Cookies (Cookies)
Are browser cookies used and configured appropriately?
Artifact
A1
Provide evidence (e.g. operational details, software data) that indicates cookies are handled appropriately.
5
Access Tokens (AccessTokens)
Are access tokens used appropriately and never interpreted to mean the subscriber is present?
Artifact
A1
Provide evidence (e.g. operational details, software data) that indicates access tokens are used appropriately.
6
Secure Device Authn as Session Establishment (SecureDeviceAuthnasSessionEstablishment)
Are secure methods of device authentication used for sessions? If so, document the types of device authentication beyond mutual TLS which is almost certainly in use.
Artifact
A1
Provide evidence (e.g. operational details, software data) that indicates all session establishment methods used.

Conformance Criteria (6)

C1
Session generation is typically done by generation of a shared secret between subscriber and service:
  • A session secret SHALL be shared between the subscriber's software and the service being accessed. This secret binds the two ends of the session, allowing the subscriber to continue using the service over time.
  • The secret SHALL be presented directly by the subscriber's software or possession of the secret SHALL be proven using a cryptographic mechanism.
  • The secret used for session binding SHALL be generated by the session host in direct response to an authentication event.
Citation
NIST SP 800-63B
Section 7.1
C2
Session AAL must never be higher than the AAL of the authentication event that triggered the session, but may be lower.
Citation
NIST SP 800-63B
Section 7.1
C3
Secrets used for sessions:
  • SHALL be generated by the session host during an interaction, typically immediately following authentication.
  • SHALL be generated by an approved random bit generator [SP 800-90Ar1] and contain at least 64 bits of entropy.
  • SHALL be erased or invalidated by the session subject when the subscriber logs out.
  • SHOULD be erased on the subscriber endpoint when the user logs out or when the secret is deemed to have expired.
  • SHOULD NOT be placed in insecure locations such as HTML5 Local Storage due to the potential exposure of local storage to cross-site scripting (XSS) attacks.
  • SHALL be sent to and received from the device using an authenticated protected channel.
  • SHALL time out and not be accepted after the times specified in Sections 4.1.4, 4.2.4, and 4.3.4, as appropriate for the AAL.
  • SHALL NOT be available to insecure communications between the host and subscriber's endpoint. Authenticated sessions
  • SHALL NOT fall back to an insecure transport, such as from https to http, following authentication.
Citation
NIST SP 800-63B
Section 7.1
C4
Browser cookies are the most common technical mechanism for session management. Cookies:
  • SHALL be tagged to be accessible only on secure (HTTPS) sessions.
  • SHALL be accessible to the minimum practical set of hostnames and paths.
  • SHOULD be tagged to be inaccessible via JavaScript (HttpOnly).
  • SHOULD be tagged to expire at, or soon after, the session's validity period. This requirement is intended to limit the accumulation of cookies, but SHALL NOT be depended upon to enforce session timeouts.
Citation
NIST SP 800-63B
Section 7.1.1
C5
Access Tokens (such as those in OAuth) SHALL NOT be interpreted by the RP as presence of the subscriber, in the absence of other signals.
Citation
NIST SP 800-63B
Section 7.1.2
C6
Secure methods of device authentication may be used to enact a session, including but not limited to mutual TLS and token binding.
Citation
NIST SP 800-63B
Section 7.1.3