Page MenuHomePhabricator

Documentation error about TLS 1.2 on Wikimedia DNS DoH on metawiki
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

  • curl -v https://wikimedia-dns.org --tls-max 1.2

What happens?:

* Host wikimedia-dns.org:443 was resolved.
* IPv6: 2001:67c:930::1
* IPv4: 185.71.138.138
*   Trying [2001:67c:930::1]:443...
* ALPN: curl offers h2,http/1.1
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* SSL Trust Anchors:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
*   CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS alert, decode error (562):
* TLS connect error: error:0A000126:SSL routines::unexpected eof while reading
* closing connection #0
curl: (35) TLS connect error: error:0A000126:SSL routines::unexpected eof while reading

What should have happened instead?:

Software version (on Special:Version page; skip for WMF-hosted wikis like Wikipedia):

Other information (browser name/version, screenshots, etc.):

Found this when using a Wikipedia Android fork (T327286) integrated Wikimedia DNS on a Android 9 device which doesn't have TLS1.3.

Event Timeline

Naruse_shiroha renamed this task from TLS 1.2 on Wikimedia DNS not working to TLS 1.2 on Wikimedia DNS DoH resolver not working.Sat, Jan 24, 4:21 PM
Naruse_shiroha updated the task description. (Show Details)

From this file, the incapablity of TLS 1.2 on DoH resolver seems to be intended.

https://gerrit.wikimedia.org/r/plugins/gitiles/operations/puppet/+/refs/heads/production/hieradata/role/common/wikidough.yaml

profile::wikidough::dnsdist::tls_doh:
  min_tls_version: 'tls1.3'
  ciphers_tls13: &ciphers_tls13
    - 'TLS_AES_128_GCM_SHA256'
    - 'TLS_CHACHA20_POLY1305_SHA256'
    - 'TLS_AES_256_GCM_SHA384'
profile::wikidough::dnsdist::tls_dot:
  min_tls_version: 'tls1.2'
  ciphers:
    - 'ECDHE-ECDSA-AES256-GCM-SHA384'
    - 'ECDHE-ECDSA-CHACHA20-POLY1305'
    - 'ECDHE-ECDSA-AES128-GCM-SHA256'
  ciphers_tls13: *ciphers_tls13

But metawiki page says the opposite,

Wikimedia DNS supports strong encryption: TLSv1.3 and TLSv1.2 (AEAD ciphers only) for DoH, and TLSv1.3 for DoT. For mobile clients (or clients that otherwise prioritize it), Wikimedia DNS prioritizes ChaCha20-Poly1305.
https://meta.wikimedia.org/w/index.php?title=Wikimedia_DNS&oldid=29909199

So which of the above should be updated?

Reedy subscribed.

rOPUP197af23bffc3: wikidough: set TLSv1.2 as the minimum version for DoT

wikidough: set TLSv1.2 as the minimum version for DoT

In the current version of dnsdist's TLS configuration, the minimum
version of TLS we support is TLSv1.3, for both the DoH and DoT
frontends.

However, for DoT, one of the platforms we would like to support is
Android and its "Private DNS" mode (DoT). DoT support for Android was
added in Android 9 and support for TLSv1.3 was added in Android 10.
Given that Android 9 (39.5% of devices as of today, as per Android
Studio) has a greater market share than Android 10 (8.2% of devices),
setting the minimum version of TLS to 1.3 would break Wikidough for
Android 9 users.

For DoH, this is not an issue as Mozilla Firefox has supported TLSv1.3
for a while, even before support for DoH was added. (Google Chrome has
TLSv1.3 support since Chrome 70.)

This commit creates a separate configuration for TLS settings for DoT,
so that a minimum version of TLS (1.2) and associated ciphers can be
set, and which may differ from DoH. It also updates the dnsdist.conf.erb
template to reflect the change.

See also: T252132: Deploy Wikimedia DNS: DNS-over-HTTPS (DoH) and DNS-over-TLS (DoT) public resolver.

I suspect the meta page is probably mostly community maintained, and some confusion may have happened.

So just need a bit of switching around in the quoted text.

Naruse_shiroha renamed this task from TLS 1.2 on Wikimedia DNS DoH resolver not working to Documentation error about TLS 1.2 on Wikimedia DNS DoH on metawiki.Sun, Jan 25, 12:29 AM
Naruse_shiroha closed this task as Resolved.

Yes, thanks for doing that @Naruse_shiroha. That was a typo, and well, a big one at that. For DoH (and DoT before that), the rationale for supporting TLS1.3 only was because no DoH client in theory should not support anything other than 1.3, so it made sense to go with that as a default.

Let us know if that also needs revisiting but thanks for updating the page in the meantime. (And to @Reedy for linking the commit.)

no DoH client in theory should not support anything other than 1.3

OkHttp DoH client may not support 1.3, too depending on the platform version. I just opened another task T415531 requesting add Wikimedia DNS to these clients.