This section considers an adversary who can add or remove responses to the SVCB query.
During secure transport establishment, clients
MUST authenticate the server to its authentication name, which is not influenced by the SVCB record contents. Accordingly, this document does not mandate the use of DNSSEC. This document also does not specify how clients authenticate the name (e.g., selection of roots of trust), as this procedure might vary according to the context.
This attacker cannot impersonate the secure endpoint, but it can forge a response indicating that the requested SVCB records do not exist. For a SVCB-reliant client ([
SVCB]), this only results in a denial of service. However, SVCB-optional clients will generally fall back to insecure DNS in this case, exposing all DNS traffic to attacks.
SVCB-reliant clients always enforce the Authentication Domain Name, but they are still subject to attacks using the transport, port number, and "dohpath" value, which are controlled by this adversary. By changing these values in the SVCB answers, the adversary can direct DNS queries for $HOSTNAME to any port on $HOSTNAME and any path on "
https://$HOSTNAME". If the DNS client uses shared TLS or HTTP state, the client could be correctly authenticated (e.g., using a TLS client certificate or HTTP cookie).
This behavior creates a number of possible attacks for certain server configurations. For example, if
https://$HOSTNAME/upload accepts any POST request as a public file upload, the adversary could forge a SVCB record containing
dohpath=/upload{?dns}. This would cause the client to upload and publish every query, resulting in unexpected storage costs for the server and privacy loss for the client. Similarly, if two DoH endpoints are available on the same origin and the service has designated one of them for use with this specification, this adversary can cause clients to use the other endpoint instead.
To mitigate redirection attacks, a client of this SVCB mapping
MUST NOT identify or authenticate itself when performing DNS queries, except to servers that it specifically knows are not vulnerable to such attacks. If an endpoint sends an invalid response to a DNS query, the client
SHOULD NOT send more queries to that endpoint and
MAY log this error. Multiple DNS services
MUST NOT share a hostname identifier (
Section 3) unless they are so similar that it is safe to allow an attacker to choose which one is used.
This section considers an adversary who can modify network traffic between the client and the alternative service (identified by the TargetName).
For a SVCB-reliant client, this adversary can only cause a denial of service. However, because DNS is unencrypted by default, this adversary can execute a downgrade attack against SVCB-optional clients. Accordingly, when the use of this specification is optional, clients
SHOULD switch to SVCB-reliant behavior if SVCB resolution succeeds. Specifications making use of this mapping
MAY adjust this fallback behavior to suit their requirements.