Skip to content

resolved: resolve insecure answers with unsupported sig algorithms#40778

Open
rpigott wants to merge 2 commits intosystemd:mainfrom
rpigott:dnssec-unsupported
Open

resolved: resolve insecure answers with unsupported sig algorithms#40778
rpigott wants to merge 2 commits intosystemd:mainfrom
rpigott:dnssec-unsupported

Conversation

@rpigott
Copy link
Contributor

@rpigott rpigott commented Feb 21, 2026

sd-resolved does not support all the permissible DNSSEC signature algorithms, and some are intentionally unsupported as a matter of policy. Answers that can only be validated via unsupported algorithms should be treated as if they were unsigned, per RFC4035 § 5.2.

Previously, sd-resolved tried to properly record insecure answers for unsupported algortihms, but did not record this status for each of the auxilliary DNSSEC transactions, so the primary transaction had no way to know if there was a plausible DNSKEY with an unsupported signature algorithm in the chain of trust.

This commit adds the insecure DNSKEYs that use unsupported algorithms to the list of validated keys for each transaction, so that dependent transactions can learn that a plausible chain of trust exists, even if no authenticated one does, and report the insecure answer.

This should improve the situation in #35126.

@rpigott
Copy link
Contributor Author

rpigott commented Feb 21, 2026

before:
image

after:
image

$ resolvectl query secure.d1a{3,13}n1.rootcanary.net
secure.d1a3n1.rootcanary.net: 145.97.20.20     -- link: enp7s0
                              2001:610:188:408::20 -- link: enp7s0

-- Information acquired via protocol DNS in 386.2ms.
-- Data is authenticated: no; Data was acquired via local or encrypted transport: no
-- Data from: network
secure.d1a13n1.rootcanary.net: 145.97.20.20    -- link: enp7s0
                               2001:610:188:408::20 -- link: enp7s0

-- Information acquired via protocol DNS in 188.7ms.
-- Data is authenticated: yes; Data was acquired via local or encrypted transport: no
-- Data from: network

@rpigott rpigott marked this pull request as ready for review February 21, 2026 08:49
@github-actions github-actions bot added the please-review PR is ready for (re-)review by a maintainer label Feb 21, 2026
@rpigott
Copy link
Contributor Author

rpigott commented Feb 21, 2026

then:
image

Something wonky is up with the RSA-MD5 test on the https://rootcanary.org/test.html page, the DNSKEY is signed by a keyid I can't locate:

$ dig @1.1 +do +nocrypto +noall +ans +auth d1a1n1.rootcanary.net DNSKEY
d1a1n1.rootcanary.net.	60	IN	DNSKEY	257 3 1 [key id = 26322]
d1a1n1.rootcanary.net.	60	IN	RRSIG	DNSKEY 1 3 60 20260404073703 20260217073703 18698 d1a1n1.rootcanary.net. [omitted]

So I'm not sure what's up with that one. The others seem to work though. Calling this fixes: #35126 #36001

sd-resolved does not support all the permissible DNSSEC signature
algorithms, and some are intentionally unsupported as a matter of
policy. Answers that can only be validated via unsupported algorithms
should be treated as if they were unsigned, per RFC4035§5.2.

Previously, sd-resolved tried to properly record insecure answers for
unsupported algortihms, but did not record this status for each of the
auxilliary DNSSEC transactions, so the primary transaction had no way to
know if there was a plausible DNSKEY with an unsupported signature
algorithm in the chain of trust.

This commit adds the insecure DNSKEYs that use unsupported algorithms to
the list of validated keys for each transaction, so that dependent
transactions can learn that a plausible chain of trust exists, even if
no authenticated one does, and report the insecure answer.
@rpigott
Copy link
Contributor Author

rpigott commented Feb 28, 2026

@pemensik Do you know what's up with the rootcanary test?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

please-review PR is ready for (re-)review by a maintainer resolve

Development

Successfully merging this pull request may close these issues.

1 participant