@@ -138,19 +138,29 @@ authentication SHOULD include the Secure attribute described in {{Section
1381384.1.2.5 of RFC6265}}. Bearer tokens MAY use the format described in {{?RFC8959}}
139139to indicate the expected usage to the client.
140140
141- # # Credential Revocation
141+ # # Disclosure Response
142142
143143Some deployments may not find it feasible to completely block unencrypted
144144connections, whether because the hostname is shared with unauthenticated
145145endpoints or for infrastructure reasons. Therefore, servers need a response for
146- when a valid credential has been received over an insecure channel.
146+ when a credential has been received over an insecure channel.
147+
148+ HTTP status code 403 (Forbidden) indicates that "the server understood the
149+ request but refuses to fulfill it" {!HTTP=RFC9110}. While this is generally
150+ understood to mean that "the server considers [the credentials] insufficient to
151+ grant access," it also states that "a request might be forbidden for reasons
152+ unrelated to the credentials." Servers SHOULD return status code 403 to all
153+ requests received over an insecure channel, regardless of the validity of the
154+ presented credentials.
147155
148156Because a difference in behavior would enable attackers to guess and check
149157possible credentials, a server MUST NOT return a different client response
150158between a valid or invalid credential presented over an insecure connection.
151159Differences in behavior MUST only be visible on subsequent use of the credential
152160over a secure channel.
153161
162+ # ## Credential Revocation
163+
154164When a request is received over an unencrypted channel, the presented credential
155165is potentially compromised. Servers SHOULD revoke such credentials immediately.
156166When the credential is next used over a secure channel, a server MAY return an
0 commit comments