
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Wed, 15 Apr 2026 19:40:11 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Addressing the unauthorized issuance of multiple TLS certificates for 1.1.1.1]]></title>
            <link>https://blog.cloudflare.com/unauthorized-issuance-of-certificates-for-1-1-1-1/</link>
            <pubDate>Thu, 04 Sep 2025 17:30:00 GMT</pubDate>
            <description><![CDATA[ Unauthorized TLS certificates were issued for 1.1.1.1 by a Certification Authority without permission from Cloudflare. These rogue certificates have now been revoked. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Over the past few days Cloudflare has been notified through our vulnerability disclosure program and the <a href="https://groups.google.com/g/certificate-transparency/c/we_8SNGqA3w/m/ILXqa0hzAgAJ?utm_medium=email&amp;utm_source=footer"><u>certificate transparency mailing list</u></a> that unauthorized certificates were issued by <a href="https://www.fina.hr/"><u>Fina CA</u></a> for 1.1.1.1, one of the IP addresses used by our <a href="https://one.one.one.one/"><u>public DNS resolver service</u></a>. From February 2024 to August 2025, Fina CA <a href="https://crt.sh/?iPAddress=1.1.1.1&amp;match=="><u>issued</u></a> twelve certificates for 1.1.1.1 without our permission. We did not observe unauthorized issuance for any properties managed by Cloudflare other than 1.1.1.1.</p><p>We have no evidence that bad actors took advantage of this error. To impersonate Cloudflare's public DNS resolver 1.1.1.1, an attacker would not only require an unauthorized certificate and its corresponding private key, but attacked users would also need to trust the Fina CA. Furthermore, traffic between the client and 1.1.1.1 would have to be intercepted.</p><p>While this unauthorized issuance is an unacceptable lapse in security by Fina CA, we should have caught and responded to it earlier. After speaking with Fina CA, it appears that they issued these certificates for the purposes of internal testing. However, no CA should be issuing certificates for domains and IP addresses without checking control. At present all certificates have been <a href="http://rdc.fina.hr/RDC2020/FinaRDCCA2020partc1.crl"><u>revoked</u></a>. We are awaiting a full post-mortem from Fina.</p><p>While we regret this situation, we believe it is a useful opportunity to walk through how trust works on the Internet between networks like ourselves, destinations like 1.1.1.1, CAs like Fina, and devices like the one you are using to read this. To learn more about the mechanics, please keep reading.</p>
    <div>
      <h3>Background</h3>
      <a href="#background">
        
      </a>
    </div>
    <p>Cloudflare operates a <a href="https://one.one.one.one/"><u>public DNS resolver 1.1.1.1 service</u></a> that millions of devices use to resolve domain names from a human-readable format such as example.com to an IP address like 192.0.2.42 or 2001:db8::2a.</p><p>The 1.1.1.1 service is accessible using various methods, across multiple domain names, such as <a href="https://cloudflare-dns.com"><u>cloudflare-dns.com</u></a> and <a href="https://one.one.one.one"><u>one.one.one.one</u></a>, and also using various IP addresses, such as 1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, and 2606:4700:4700::1001. <a href="https://one.one.one.one/family/"><u>1.1.1.1 for Families</u></a> also provides public DNS resolver services and is hosted on different IP addresses — 1.1.1.2, 1.1.1.3, 1.0.0.2, 1.0.0.3, 2606:4700:4700::1112, 2606:4700:4700::1113, 2606:4700:4700::1002, 2606:4700:4700::1003.</p><p>As originally specified in <a href="https://datatracker.ietf.org/doc/html/rfc1034"><u>RFC 1034</u></a> and <a href="https://datatracker.ietf.org/doc/html/rfc1035"><u>RFC 1035</u></a>, the DNS protocol includes no privacy or authenticity protections. DNS queries and responses are exchanged between client and server in plain text over UDP or TCP. These represent around 60% of queries received by the Cloudflare 1.1.1.1 service. The lack of privacy or authenticity protection means that any intermediary can potentially read the DNS query and response and modify them without the client or the server being aware.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6zbEvgOCwZomZTbgSGFuEo/d638f36eebdbf2577ea0b8172dff843e/image1.png" />
          </figure><p>To address these shortcomings, we have helped develop and deploy multiple solutions at the IETF. The two of interest to this post are DNS over TLS (DoT, <a href="https://datatracker.ietf.org/doc/html/rfc7858"><u>RFC 7878</u></a>) and DNS over HTTPS (DoH, <a href="https://datatracker.ietf.org/doc/html/rfc8484"><u>RFC 8484</u></a>). In both cases the DNS protocol itself is mainly unchanged, and the desirable security properties are implemented in a lower layer, replacing the simple use of plain-text in UDP and TCP in the original specification. Both DoH and DoT use TLS to establish an authenticated, private, and encrypted channel over which DNS messages can be exchanged. To learn more you can read <a href="https://blog.cloudflare.com/dns-encryption-explained/"><u>DNS Encryption Explained</u></a>.</p><p>During the <a href="https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/"><u>TLS handshake</u></a>, the server proves its identity to the client by presenting a certificate. The client validates this certificate by verifying that it is signed by a Certification Authority that it already trusts. Only then does it establish a connection with the server. Once connected, TLS provides encryption and integrity for the DNS messages exchanged between client and server. This protects DoH and DoT against eavesdropping and tampering between the client and server.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/21YeKS2nYIFDI9uC3uClXE/6115e00945458d42627d973aef75076c/image2.png" />
          </figure><p>The TLS certificates used in DoT and DoH are the same kinds of certificates HTTPS websites serve. Most website certificates are issued for domain names like <a href="http://example.com"><u>example.com</u></a>. When a client connects to that website, they resolve the name <a href="http://example.com"><u>example.com</u></a> to an IP like 192.0.2.42, then connect to the domain on that IP address. The server responds with a TLS certificate containing <a href="http://example.com"><u>example.com</u></a>, which the device validates.</p><p>However, DNS server certificates tend to be used slightly differently. Certificates used for DoT and DoH have to contain the service IP addresses, not just domain names. This is due to clients being unable to resolve a domain name in order to contact their resolver, like <a href="https://cloudflare-dns.com"><u>cloudflare-dns.com</u></a>. Instead, devices are first set up by connecting to their resolver via a known IP address, such as 1.1.1.1 in the case of Cloudflare public DNS resolver. When this connection uses DoT or DoH, the resolver responds with a TLS certificate issued for that IP address, which the client validates. If the certificate is valid, the client believes that it is talking to the owner of 1.1.1.1 and starts sending DNS queries.</p><p>You can see that the IP addresses are included in the certificate Cloudflare’s public resolver uses for DoT/DoH:</p>
            <pre><code>Certificate:
  Data:
      Version: 3 (0x2)
      Serial Number:
          02:7d:c8:c5:e1:72:94:ae:c9:ed:3f:67:72:8e:8a:08
      Signature Algorithm: sha256WithRSAEncryption
      Issuer: C=US, O=DigiCert Inc, CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
      Validity
          Not Before: Jan  2 00:00:00 2025 GMT
          Not After : Jan 21 23:59:59 2026 GMT
      Subject: C=US, ST=California, L=San Francisco, O=Cloudflare, Inc., CN=cloudflare-dns.com
      X509v3 extensions:
          X509v3 Subject Alternative Name:
              DNS:cloudflare-dns.com, DNS:*.cloudflare-dns.com, DNS:one.one.one.one, IP Address:1.0.0.1, IP Address:1.1.1.1, IP Address:162.159.36.1, IP Address:162.159.46.1, IP Address:2606:4700:4700:0:0:0:0:1001, IP Address:2606:4700:4700:0:0:0:0:1111, IP Address:2606:4700:4700:0:0:0:0:64, IP Address:2606:4700:4700:0:0:0:0:6400</code></pre>
            
    <div>
      <h3>Rogue certificate issuance</h3>
      <a href="#rogue-certificate-issuance">
        
      </a>
    </div>
    <p>The section above describes normal, expected use of Cloudflare public DNS resolver 1.1.1.1 service, using certificates managed by Cloudflare. However, Cloudflare has been made aware of other, unauthorized certificates being issued for 1.1.1.1. Since certificate validation is the mechanism by which DoH and DoT clients establish the authenticity of a DNS resolver, this is a concern. Let’s now dive a little further in the security model provided by DoH and DoT.</p><p>Consider a client that is preconfigured to use the 1.1.1.1 resolver service using DoT. The client must establish a TLS session with the configured server before it can send any DNS queries. To be trusted, the server needs to present a certificate issued by a CA that the client trusts. The collection of certificates trusted by the client is also called the root store.</p>
            <pre><code>Certificate:
  Data:
      Version: 3 (0x2)
      Serial Number:
          02:7d:c8:c5:e1:72:94:ae:c9:ed:3f:67:72:8e:8a:08
      Signature Algorithm: sha256WithRSAEncryption
      Issuer: C=US, O=DigiCert Inc, CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1</code></pre>
            <p>A Certification Authority (CA) is an organisation, such as DigiCert in the section above, whose role is to receive requests to sign certificates and verify that the requester has control of the domain. In this incident, Fina CA issued certificates for 1.1.1.1 without Cloudflare's involvement. This means that Fina CA did not properly check whether the requestor had legitimate control over 1.1.1.1. According to Fina CA:</p><blockquote><p>“They were issued for the purpose of internal testing of certificate issuance in the production environment. An error occurred during the issuance of the test certificates when entering the IP addresses and as such they were published on Certificate Transparency log servers.”</p></blockquote><p>Although it’s not clear whether Fina CA sees it as an error, we emphasize that it is not an error to publish test certificates on Certificate Transparency (more about what that is later on). Instead, the error at hand is Fina CA using their production keys to sign a certificate for an IP address without permission of the controller. We have <a href="https://ripe84.ripe.net/archives/video/747/"><u>talked about</u></a> misuse of 1.1.1.1 in documentation, lab, and testing environments at length. Instead of the Cloudflare public DNS resolver 1.1.1.1 IP address, Fina should have used an IP address it controls itself.</p><p>Unauthorized certificates are unfortunately not uncommon, whether due to negligence — such as <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1930029"><u>IdenTrust</u></a> in November 2024 — or compromise. Famously in 2011, the Dutch CA DigiNotar was <a href="https://threatpost.com/final-report-diginotar-hack-shows-total-compromise-ca-servers-103112/77170/"><u>hacked</u></a>, and its keys were used to issue hundreds of certificates. This hack was a wake-up call and motivated the introduction of Certificate Transparency (CT), later formalised in <a href="https://datatracker.ietf.org/doc/html/rfc6962"><u>RFC 6962</u></a>. The goal of Certificate Transparency is not to directly prevent misissuance, but to be able to detect any misissuance once it has happened, by making sure every certificate issued by a CA is publicly available for inspection.</p><p>In certificate transparency several independent parties, including <a href="https://blog.cloudflare.com/introducing-certificate-transparency-monitoring/"><u>Cloudflare</u></a>, operate public logs of issued certificates. Many modern browsers do not accept certificates unless they provide proof in the form of signed certificate timestamps (<a href="https://certificate.transparency.dev/howctworks/"><u>SCT</u></a>s) that the certificate has been logged in at least two logs. Domain owners can therefore monitor all public CT logs for any certificate containing domains they care about. If they see a certificate for their domains that they did not authorize, they can raise the alarm. CT is also the data source for public services such as <a href="https://crt.sh"><u>crt.sh</u></a> and Cloudflare Radar’s <a href="https://radar.cloudflare.com/certificate-transparency"><u>certificate transparency page</u></a>.</p><p>Not all clients require proof of inclusion in certificate transparency. Browsers do, but most DNS clients don’t. We were fortunate that Fina CA did submit the unauthorized certificates to the CT logs, which allowed them to be discovered.</p>
    <div>
      <h3>Investigation into potential malicious use</h3>
      <a href="#investigation-into-potential-malicious-use">
        
      </a>
    </div>
    <p>Our immediate concern was that someone had maliciously used the certificates to impersonate the 1.1.1.1 service. Such an attack would require all the following:</p><ol><li><p>An attacker would require a rogue certificate and its corresponding private key.</p></li><li><p>Attacked clients would need to trust the Fina CA.</p></li><li><p>Traffic between the client and 1.1.1.1 would have to be intercepted.</p></li></ol><p>In light of this incident, we have reviewed these requirements one by one:</p><p>1. We know that a certificate was issued without Cloudflare's involvement. We must assume that a corresponding private key exists, which is not under Cloudflare's control. This could be used by an attacker. Fina CA wrote to us that the private keys were exclusively in Fina’s controlled environment and were immediately destroyed even before the certificates were revoked. As we have no way to verify this, we have and continue to take steps to detect malicious use as described in point 3.</p><p>2. Furthermore, some clients trust Fina CA. It is included by default in <a href="https://learn.microsoft.com/en-us/security/trusted-root/participants-list"><u>Microsoft’s root store</u></a> and in an <a href="https://eidas.ec.europa.eu/efda/trust-services/browse/eidas/tls"><u>EU Trust Service provider</u></a>. We can exclude some clients, as the CA certificate is not included by default in the root stores of <a href="https://android.googlesource.com/platform/system/ca-certificates/+/master/files/"><u>Android</u></a>, <a href="https://support.apple.com/en-us/HT209143"><u>Apple</u></a>, <a href="https://wiki.mozilla.org/CA/Included_Certificates"><u>Mozilla</u></a>, or <a href="https://g.co/chrome/root-policy"><u>Chrome</u></a>. These users cannot have been affected with these default settings. For these certificates to be used nefariously, the client’s root store must include the Certification Authority (CA) that issued them. Upon discovering the problem, we immediately reached out to Fina CA, Microsoft, and the <a href="https://eidas.ec.europa.eu/efda/trust-services/browse/eidas/tls/tl/HR"><u>EU Trust Service provider</u></a>. Microsoft responded quickly, and started rolling out an update to their <i>disallowed list</i>, which should cause clients that use it to stop trusting the certificate.</p><p>3. Finally, we have launched an investigation into possible interception between users and 1.1.1.1. The first way this could happen is when the attacker is on-path of the client request. Such man-in-the-middle attacks are likely to be invisible to us. Clients will get responses from their on-path middlebox and we have no reliable way of telling that is happening. On-path interference has been a persistent problem for 1.1.1.1, which we’ve been <a href="https://blog.cloudflare.com/fixing-reachability-to-1-1-1-1-globally/"><u>working on</u></a> ever since we announced 1.1.1.1.</p><p>A second scenario can occur when a malicious actor is off-path, but is able to hijack 1.1.1.1 routing via BGP. These are scenarios we have discussed in a<a href="https://blog.cloudflare.com/bgp-hijack-detection/"> <u>previous blog post</u></a>, and <a href="https://manrs.org/2024/05/rpki-rov-deployment-reaches-major-milestone/"><u>increasing adoption of RPKI route origin validation (ROV)</u></a> makes BGP hijacks with high penetration harder. We looked at the historical BGP announcements involving 1.1.1.1, and have found no evidence that such routing hijacks took place.</p><p>Although we cannot be certain, so far we have seen no evidence that these certificates have been used to impersonate Cloudflare public DNS resolver 1.1.1.1 traffic. In later sections we discuss the steps we have taken to prevent such impersonation in the future, as well as concrete actions you can take to protect your own systems and users.</p>
    <div>
      <h3>A closer look at the unauthorized certificates attributes</h3>
      <a href="#a-closer-look-at-the-unauthorized-certificates-attributes">
        
      </a>
    </div>
    <p>All unauthorized certificates for 1.1.1.1 were valid for exactly one year and included other domain names. Most of these domain names are not registered, which indicates that the certificates were issued without proper domain control validation. This violates sections 3.2.2.4 and 3.2.2.5 of the CA/Browser Forum’s <a href="https://cabforum.org/working-groups/server/baseline-requirements/requirements/#3224-validation-of-domain-authorization-or-control"><u>Baseline Requirements</u></a>, and sections 3.2.2.3 and 3.2.2.4 of the <a href="https://rdc.fina.hr/RDC2015/CPWSA1-12-en.pdf"><u>Fina CA Certificate Policy</u></a>.</p><p>The full list of domain names we identified on the unauthorized certificates are as follows:</p>
            <pre><code>fina.hr
ssltest5
test.fina.hr
test.hr
test1.hr
test11.hr
test12.hr
test5.hr
test6
test6.hr
testssl.fina.hr
testssl.finatest.hr
testssl.hr
testssl1.finatest.hr
testssl2.finatest.hr</code></pre>
            <p>It’s also worth noting that the Subject attribute points to a fictional organisation <b>TEST D.D.</b>, as can be seen on this unauthorized certificate:</p>
            <pre><code>        Serial Number:
            a5:30:a2:9c:c1:a5:da:40:00:00:00:00:56:71:f2:4c
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=HR, O=Financijska agencija, CN=Fina RDC 2015
        Validity
            Not Before: Nov  2 23:45:15 2024 GMT
            Not After : Nov  2 23:45:15 2025 GMT
        Subject: C=HR, O=TEST D.D., L=ZAGREB, CN=testssl.finatest.hr, serialNumber=VATHR-32343828408.306
        X509v3 extensions:
            X509v3 Subject Alternative Name:
                DNS:testssl.finatest.hr, DNS:testssl2.finatest.hr, IP Address:1.1.1.1</code></pre>
            
    <div>
      <h3>Incident timeline and impact</h3>
      <a href="#incident-timeline-and-impact">
        
      </a>
    </div>
    <p><i>All timestamps are UTC. All certificates are identified by their date of validity.</i></p><p>The <a href="https://crt.sh/?id=12116084225"><u>first certificate</u></a> was issued to be valid starting February 2024, and revoked 33 min later. 11 certificate issuances with common name 1.1.1.1 followed from February 2024 to August 2025. Public reports have been made on <a href="https://news.ycombinator.com/item?id=45089708"><u>Hacker News</u></a> and on the <a href="https://groups.google.com/g/certificate-transparency/c/we_8SNGqA3w/m/ILXqa0hzAgAJ"><u>certificate-transparency mailing list</u></a> early in September 2025, which Cloudflare responded to.</p><p>While responding to the incident, we identified the full list of misissued certificates, their revocation status, and which clients trust them.</p><p>The full timeline for the incident is as follows.</p><table><tr><td><p><b>Date &amp; Time (UTC)</b></p></td><td><p><b>Event Description</b></p></td></tr><tr><td><p>2024-02-18 11:07:33</p></td><td><p><a href="https://crt.sh/?id=12116084225"><u>First certificate issuance</u></a> revoked on 2024-02-18 11:40:00</p></td></tr><tr><td><p>2024-09-25 08:04:03</p></td><td><p><a href="https://crt.sh/?id=14681939427"><u>Issuance</u></a> revoked on 2024-11-06 07:36:05</p></td></tr><tr><td><p>2024-10-04 07:55:38</p></td><td><p><a href="https://crt.sh/?id=14793030836"><u>Issuance</u></a> revoked on 2024-10-04 07:56:56</p></td></tr><tr><td><p>2024-10-04 08:05:48</p></td><td><p><a href="https://crt.sh/?id=14793121895"><u>Issuance</u></a> revoked on 2024-11-06 07:39:55</p></td></tr><tr><td><p>2024-10-15 06:28:48</p></td><td><p><a href="https://crt.sh/?id=14939369380"><u>Issuance</u></a> revoked on 2024-11-06 07:35:36</p></td></tr><tr><td><p>2024-11-02 23:45:15</p></td><td><p><a href="https://crt.sh/?id=15190039061"><u>Issuance</u></a> revoked on 2024-11-02 23:48:42</p></td></tr><tr><td><p>2025-03-05 09:12:23</p></td><td><p><a href="https://crt.sh/?id=16939550348"><u>Issuance</u></a> revoked on 2025-03-05 09:13:22</p></td></tr><tr><td><p>2025-05-24 22:56:21</p></td><td><p><a href="https://crt.sh/?id=18603461241"><u>Issuance</u></a> revoked on 2025-09-04 06:13:27</p></td></tr><tr><td><p>2025-06-28 23:05:32</p></td><td><p><a href="https://crt.sh/?id=19318694206"><u>Issuance</u></a> revoked on 2025-07-18 07:01:27</p></td></tr><tr><td><p>2025-07-18 07:05:23</p></td><td><p><a href="https://crt.sh/?id=19749594221"><u>Issuance</u></a> revoked on 2025-07-18 07:09:45</p></td></tr><tr><td><p>2025-07-18 07:13:14</p></td><td><p><a href="https://crt.sh/?id=19749721864"><u>Issuance</u></a> revoked on 2025-09-04 06:30:36</p></td></tr><tr><td><p>2025-08-26 07:49:00</p></td><td><p><a href="https://crt.sh/?id=20582951233"><u>Last certificate issuance</u></a> revoked on 2025-09-04 06:33:20</p></td></tr><tr><td><p>2025-09-01 05:23:00</p></td><td><p><a href="https://news.ycombinator.com/item?id=45089708"><u>HackerNews submission</u></a> about a possible unauthorized issuance</p></td></tr><tr><td><p>2025-09-02 04:50:00</p></td><td><p>Report shared with us on HackerOne, but was mistriaged</p></td></tr><tr><td><p>2025-09-03 02:35:00</p></td><td><p>Second report shared with us on HackerOne, but also mistriaged.</p></td></tr><tr><td><p>2025-09-03 10:59:00</p></td><td><p><a href="https://groups.google.com/g/certificate-transparency/c/we_8SNGqA3w/m/ILXqa0hzAgAJ?utm_medium=email&amp;utm_source=footer"><u>Report sent</u></a> on the public <a href="#"><u>certificate-transparency@googlegroups.com</u></a> mailing picked up by the team.</p></td></tr><tr><td><p>2025-09-03 11:33:00</p></td><td><p>First response by Cloudflare on the mailing list about starting the investigation</p></td></tr><tr><td><p>2025-09-03 12:08:00</p></td><td><p>Incident declared</p></td></tr><tr><td><p>2025-09-03 12:16:00</p></td><td><p>Notification of an unauthorised issuance sent to Fina CA, Microsoft Root Store, and EU Trust service provider</p></td></tr><tr><td><p>2025-09-03 12:23:00</p></td><td><p>Cloudflare identifies an initial list of nine rogue certificates</p></td></tr><tr><td><p>2025-09-03 12:24:00</p></td><td><p>Outreach to Fina CA to inform them about the unauthorized issuance, requesting revocation</p></td></tr><tr><td><p>2025-09-03 12:26:00</p></td><td><p>Identify the number of requests served on 1.1.1.1 IP address, and associated names/services</p></td></tr><tr><td><p>2025-09-03 12:42:00</p></td><td><p>As a precautionary measure, began investigation to rule out the possibility of a BGP hijack for 1.1.1.1</p></td></tr><tr><td><p>2025-09-03 18:48:00</p></td><td><p>Second notification of the incident to Fina CA</p></td></tr><tr><td><p>2025-09-03 21:27:00</p></td><td><p>Microsoft Root Store notifies us that they are preventing further use of the identified unauthorized certificates by using their quick-revocation mechanism.</p></td></tr><tr><td><p>2025-09-04 06:13:27</p></td><td><p>Fina revoked all certificates.</p></td></tr><tr><td><p>2025-09-04 12:44:00</p></td><td><p>Cloudflare receives a response from Fina indicating “an error occurred during the issuance of the test certificates when entering the IP addresses and as such they were published on Certificate Transparency log servers. [...] Fina will eliminate the possibility of such an error recurring.”</p></td></tr></table>
    <div>
      <h3>Remediation and follow-up steps</h3>
      <a href="#remediation-and-follow-up-steps">
        
      </a>
    </div>
    <p>Cloudflare has invested from the very start in the Certificate Transparency ecosystem. Not only do we operate CT logs ourselves, we also run a CT monitor that we use to <a href="https://developers.cloudflare.com/ssl/edge-certificates/additional-options/certificate-transparency-monitoring/"><u>alert customers when certificates are mis-issued for their domains</u></a>.</p><p>It is therefore disappointing that we failed to properly monitor certificates for our own domain. We failed three times. The first time because 1.1.1.1 is an IP certificate and our system failed to alert on these. The second time because even if we were to receive certificate issuance alerts, as any of our customers can, we did not implement sufficient filtering. With the sheer number of names and issuances we manage it has not been possible for us to keep up with manual reviews. Finally, because of this noisy monitoring, we did not enable alerting for all of our domains. We are addressing all three shortcomings.</p><p>We double-checked all certificates issued for our names, including but not limited to 1.1.1.1, using certificate transparency, and confirmed that as of 3 September, the Fina CA issued certificates are the only unauthorized issuances. We contacted Fina, and the root programs we know that trust them, to ask for revocation and investigation. The certificates have been revoked.</p><p>Despite no indication of usage of these certificates so far, we take this incident extremely seriously. We have identified several steps we can take to address the risk of these sorts of problems occurring in the future, and we plan to start working on them immediately:</p><p><b>Alerting</b>: Cloudflare will improve alerts and escalation for issuance of certificates for missing Cloudflare owned domains including 1.1.1.1 certificates.</p><p><b>Transparency</b>: The issuance of these unauthorised 1.1.1.1 certificates were detected because Fina CA used Certificate Transparency. Transparency inclusion is not enforced by most DNS clients, which implies that this detection was a lucky one. We are working on bringing transparency to non-browser clients, in particular DNS clients that rely on TLS.</p><p><b>Bug Bounty</b>: Our procedure for triaging reports made through our vulnerability disclosure program was the cause for a delayed response. We are working to revise our triaging process to ensure such reports get the right visibility.</p><p><b>Monitoring</b>: During this incident, our team relied on <a href="https://crt.sh"><u>crt.sh</u></a> to provide us a convenient UI to explore CA issued certificates. We’d like to give a shout to the <a href="https://www.sectigo.com/"><u>Sectigo team</u></a> for maintaining this tool. Given Cloudflare is an active CT Monitor, we have started to build a dedicated UI to explore our data <a href="https://radar.cloudflare.com/certificate-transparency"><u>in Radar</u></a>. We are looking to enable exploration of certs with IP addresses as common names to Radar as well.</p>
    <div>
      <h3>What steps should you take?</h3>
      <a href="#what-steps-should-you-take">
        
      </a>
    </div>
    <p>This incident demonstrates the disproportionate impact that the current root store model can have. It is enough for a single certification authority going rogue for everyone to be at risk.</p><p>If you are an IT manager with a fleet of managed devices, you should consider whether you need to take direct action to revoke these unauthorized certificates. We provide the list in the timeline section above. As the certificates have since been revoked, it is possible that no direct intervention should be required; however, system-wide revocation is not instantaneous and automatic and hence we recommend checking.</p><p>If you are tasked to review the policy of a root store that includes Fina CA, you should take immediate actions to review their inclusion in your program. The issue that has been identified through the course of this investigation raises concerns, and requires a clear report and follow-up from the CA. In addition, to make it possible to detect future such incidents, you should consider having a requirement for all CAs in your root store to participate in Certificate Transparency. Without CT logs, problems such as the one we describe here are impossible to address before they result in impact to end users.</p><p>We are not suggesting that you should stop using DoH or DoT. DNS over UDP and TCP are unencrypted, which puts every single query and response at risk of tampering and unauthorised surveillance. However, we believe that DoH and DoT client security could be improved if clients required that server certificates be included in a certificate transparency log.</p>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>This event is the first time we have observed a rogue issuance of a certificate used by our public DNS resolver 1.1.1.1 service. While we have no evidence this was malicious, we know that there might be future attempts that are.</p><p>We plan to accelerate how quickly we discover and alert on these types of issues ourselves. We know that we can catch these earlier, and we plan to do so.</p><p>The identification of these kinds of issues rely on an ecosystem of partners working together to support Certificate Transparency. We are grateful for the monitors who noticed and reported this issue.</p> ]]></content:encoded>
            <category><![CDATA[1.1.1.1]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[Resolver]]></category>
            <category><![CDATA[DoH]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Certificate Authority]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Certificate Transparency]]></category>
            <guid isPermaLink="false">6dgQ2aH6eirkXOANX0QikR</guid>
            <dc:creator>Joe Abley</dc:creator>
            <dc:creator>Thibault Meunier</dc:creator>
            <dc:creator>Vicky Shrestha</dc:creator>
            <dc:creator>Bas Westerbaan</dc:creator>
        </item>
        <item>
            <title><![CDATA[Some TXT about, and A PTR to, new DNS insights on Cloudflare Radar]]></title>
            <link>https://blog.cloudflare.com/new-dns-section-on-cloudflare-radar/</link>
            <pubDate>Thu, 27 Feb 2025 14:00:00 GMT</pubDate>
            <description><![CDATA[ The new Cloudflare Radar DNS page provides increased visibility into aggregate traffic and usage trends seen by our 1.1.1.1 resolver ]]></description>
            <content:encoded><![CDATA[ <p>No joke – Cloudflare's <a href="https://www.cloudflare.com/en-gb/learning/dns/what-is-1.1.1.1/"><u>1.1.1.1 resolver</u></a> was <a href="https://blog.cloudflare.com/dns-resolver-1-1-1-1"><u>launched</u></a> on April Fool's Day in 2018. Over the last seven years, this highly <a href="https://www.dnsperf.com/#!dns-resolvers"><u>performant</u></a> and <a href="https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver/"><u>privacy</u></a>-<a href="https://blog.cloudflare.com/announcing-the-results-of-the-1-1-1-1-public-dns-resolver-privacy-examination"><u>conscious</u></a> service has grown to handle an average of 1.9 Trillion queries per day from approximately 250 locations (countries/regions) around the world. Aggregated analysis of this traffic provides us with unique insight into Internet activity that goes beyond simple Web traffic trends, and we currently use analysis of 1.1.1.1 data to power Radar's <a href="https://radar.cloudflare.com/domains"><u>Domains</u></a> page, as well as the <a href="https://blog.cloudflare.com/radar-domain-rankings"><u>Radar Domain Rankings</u></a>.</p><p>In December 2022, Cloudflare <a href="https://blog.cloudflare.com/the-as112-project/"><u>joined the AS112 Project</u></a>, which helps the Internet deal with misdirected DNS queries. In March 2023, we launched an <a href="https://radar.cloudflare.com/as112"><u>AS112 statistics</u></a> page on Radar, providing insight into traffic trends and query types for this misdirected traffic. Extending the basic analysis presented on that page, and building on the analysis of resolver data used for the Domains page, today we are excited to launch a dedicated DNS page on Cloudflare Radar to provide increased visibility into aggregate traffic and usage trends seen across 1.1.1.1 resolver traffic. In addition to looking at global, location, and <a href="https://www.cloudflare.com/learning/network-layer/what-is-an-autonomous-system/"><u>autonomous system (ASN)</u></a> traffic trends, we are also providing perspectives on protocol usage, query and response characteristics, and <a href="https://www.cloudflare.com/learning/dns/dnssec/how-dnssec-works/"><u>DNSSEC</u></a> usage.</p><p>The traffic analyzed for this new page may come from users that have manually configured their devices or local routers to use 1.1.1.1 as a resolver, ISPs that set 1.1.1.1 as the default resolver for their subscribers, ISPs that use 1.1.1.1 as a resolver upstream from their own, or users that have installed Cloudflare’s <a href="https://one.one.one.one/"><u>1.1.1.1/WARP app</u></a> on their device. The traffic analysis is based on anonymised DNS query logs, in accordance with <a href="https://www.cloudflare.com/privacypolicy/"><u>Cloudflare’s Privacy Policy</u></a>, as well as our <a href="https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver/"><u>1.1.1.1 Public DNS Resolver privacy commitments</u></a>.</p><p>Below, we walk through the sections of Radar’s new DNS page, reviewing the included graphs and the importance of the metrics they present. The data and trends shown within these graphs will vary based on the location or network that the aggregated queries originate from, as well as on the selected time frame.</p>
    <div>
      <h3>Traffic trends</h3>
      <a href="#traffic-trends">
        
      </a>
    </div>
    <p>As with many Radar metrics, the <a href="https://radar.cloudflare.com/dns"><u>DNS page</u></a> leads with traffic trends, showing normalized query volume at a worldwide level (default), or from the selected location or <a href="https://www.cloudflare.com/learning/network-layer/what-is-an-autonomous-system/"><u>autonomous system (ASN)</u></a>. Similar to other Radar traffic-based graphs, the time period shown can be adjusted using the date picker, and for the default selections (last 24 hours, last 7 days, etc.), a comparison with traffic seen over the previous period is also plotted.</p><p>For location-level views (such as <a href="https://radar.cloudflare.com/dns/lv"><u>Latvia</u></a>, in the example below), a table showing the top five ASNs by query volume is displayed alongside the graph. Showing the network’s share of queries from the selected location, the table provides insights into the providers whose users are generating the most traffic to 1.1.1.1.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4tFv24QhHPReek393iHte7/03894de5973a1fed2805f69dcd9323c6/01.png" />
            
            </figure><p>When a country/region is selected, in addition to showing an aggregate traffic graph for that location, we also show query volumes for the <a href="https://en.wikipedia.org/wiki/Country_code_top-level_domain"><u>country code top level domain (ccTLD)</u></a> associated with that country. The graph includes a line showing worldwide query volume for that ccTLD, as well as a line showing the query volume based on queries from the associated location. <a href="https://radar.cloudflare.com/dns/ai#dns-query-volume-for-ai-domains"><u>Anguilla’s</u></a> ccTLD is .ai, and is a popular choice among the growing universe of AI-focused companies. While most locations see a gap between the worldwide and “local” query volume for their ccTLD, Anguilla’s is rather significant — as the graph below illustrates, this size of the gap is driven by both the popularity of the ccTLD and Anguilla’s comparatively small user base. (Traffic for <a href="https://www.cloudflare.com/application-services/products/registrar/buy-ai-domains/">.ai domains</a> from Anguilla is shown by the dark blue line at the bottom of the graph.) Similarly, sizable gaps are seen with other “popular” ccTLDs as well, such as .io (<a href="https://radar.cloudflare.com/dns/io#dns-query-volume-for-io-domains"><u>British Indian Ocean Territory</u></a>), .fm (<a href="https://radar.cloudflare.com/dns/fm#dns-query-volume-for-fm-domains"><u>Federated States of Micronesia</u></a>), and .co (<a href="https://radar.cloudflare.com/dns/co#dns-query-volume-for-co-domains"><u>Colombia</u></a>). A higher “local” ccTLD query volume in other locations results in smaller gaps when compared to the worldwide query volume.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6LXc2OLAoHqAVbgspo5cjb/c01b9f7e90d1d27f66eb3dcb35bf2622/02.png" />
            
            </figure><p>Depending on the strength of the signal (that is, the volume of traffic) from a given location or ASN, this data can also be used to corroborate reported Internet outages or shutdowns, or reported blocking of 1.1.1.1. For example, the <a href="https://radar.cloudflare.com/dns/as8048?dateStart=2025-01-10&amp;dateEnd=2025-02-06"><u>graph below</u></a> illustrates the result of Venezuelan provider <a href="https://radar.cloudflare.com/as8048"><u>CANTV</u></a> reportedly <a href="https://x.com/vesinfiltro/status/1879943715537711233"><u>blocking access to 1.1.1.1</u></a> for its subscribers. A <a href="https://radar.cloudflare.com/dns/as22313?dateStart=2025-01-10&amp;dateEnd=2025-01-23"><u>comparable drop</u></a> is visible for <a href="https://radar.cloudflare.com/as22313"><u>Supercable</u></a>, another Venezuelan provider that also reportedly blocked access to Cloudflare’s resolver around the same time.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1hR11TuJDhzWDFhoCo3Uh7/970ecbc951edd352f80a3b87f607e580/03.png" />
            
            </figure><p>Individual domain pages (like the one for <a href="https://radar.cloudflare.com/domains/domain/cloudflare.com"><u>cloudflare.com</u></a>, for example) have long had a choropleth map and accompanying table showing the <a href="https://radar.cloudflare.com/domains/domain/cloudflare.com#visitor-location"><u>popularity of the domain by location</u></a>, based on the share of DNS queries for that domain from each location. A <a href="https://radar.cloudflare.com/dns#geographical-distribution"><u>similar view</u></a> is included at the bottom of the worldwide overview page, based on the share of total global queries to 1.1.1.1 from each location.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2kchGpH4fmYxmX4up953VC/744632815d78a9a77526e97d8c4d1664/04.png" />
            
            </figure>
    <div>
      <h3>Query and response characteristics</h3>
      <a href="#query-and-response-characteristics">
        
      </a>
    </div>
    <p>While traffic trends are always interesting and important to track, analysis of the characteristics of queries to 1.1.1.1 and the associated responses can provide insights into the adoption of underlying transport protocols, record type popularity, cacheability, and security.</p><p>Published in November 1987, <a href="https://datatracker.ietf.org/doc/html/rfc1035#section-4.2"><u>RFC 1035 notes</u></a> that “<i>The Internet supports name server access using TCP [</i><a href="https://datatracker.ietf.org/doc/html/rfc793"><i><u>RFC-793</u></i></a><i>] on server port 53 (decimal) as well as datagram access using UDP [</i><a href="https://datatracker.ietf.org/doc/html/rfc768"><i><u>RFC-768</u></i></a><i>] on UDP port 53 (decimal).</i>” Over the subsequent three-plus decades, UDP has been the primary transport protocol for DNS queries, falling back to TCP for a limited number of use cases, such as when the response is too big to fit in a single UDP packet. However, as privacy has become a significantly greater concern, encrypted queries have been made possible through the specification of <a href="https://datatracker.ietf.org/doc/html/rfc7858"><u>DNS over TLS</u></a> (DoT) in 2016 and <a href="https://datatracker.ietf.org/doc/html/rfc8484"><u>DNS over HTTPS</u></a> (DoH) in 2018. Cloudflare’s 1.1.1.1 resolver has <a href="https://blog.cloudflare.com/announcing-1111/#toward-a-better-dns-infrastructure"><u>supported both of these privacy-preserving protocols since launch</u></a>. The <a href="https://radar.cloudflare.com/dns#dns-transport-protocol"><b><u>DNS transport protocol</u></b></a> graph shows the distribution of queries to 1.1.1.1 over these four protocols. (Setting up 1.1.1.1 <a href="https://one.one.one.one/dns/"><u>on your device or router</u></a> uses DNS over UDP by default, although recent versions of <a href="https://developers.cloudflare.com/1.1.1.1/setup/android/#configure-1111-manually"><u>Android</u></a> support DoT and DoH. The <a href="https://one.one.one.one/"><u>1.1.1.1 app</u></a> uses DNS over HTTPS by default, and users can also <a href="https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/encrypted-dns-browsers/"><u>configure their browsers</u></a> to use DNS over HTTPS.)</p><p>Note that Cloudflare's resolver also services queries over DoH and <a href="https://blog.cloudflare.com/oblivious-dns/"><u>Oblivious DoH (ODoH)</u></a> for <a href="https://developers.cloudflare.com/1.1.1.1/privacy/cloudflare-resolver-firefox/"><u>Mozilla</u></a> and other large platforms, but this traffic is not currently included in our analysis. As such, DoH adoption is under-represented in this graph.</p><p>Aggregated worldwide between February 19 - February 26, distribution of transport protocols was 86.6% for UDP, 9.6% for DoT, 2.0% for TCP, and 1.7% for DoH. However, in some locations, these ratios may shift if users are more privacy conscious. For example, the graph below shows the distribution for <a href="https://radar.cloudflare.com/dns/eg"><u>Egypt</u></a> over the same time period. In that country, the UDP and TCP shares are significantly lower than the global level, while the DoT and DoH shares are significantly higher, suggesting that users there may be more concerned about the privacy of their DNS queries than the global average, or that there is a larger concentration of 1.1.1.1 users on Android devices who have set up 1.1.1.1 using DoT manually. (The 2024 Cloudflare Radar Year in Review found that <a href="https://radar.cloudflare.com/year-in-review/2024/eg#ios-vs-android"><u>Android had an 85% mobile device traffic share in Egypt</u></a>, so mobile device usage in the country leans very heavily toward Android.)</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1srd6prVQCUxHvxw8eFNjL/987f2d925120be867174fd04a8c7eb2c/05-b.png" />
            
            </figure><p>RFC 1035 also defined a number of <a href="https://datatracker.ietf.org/doc/html/rfc1035#section-3.3"><u>standard</u></a> and <a href="https://datatracker.ietf.org/doc/html/rfc1035#section-3.4"><u>Internet specific</u></a> resource record types that return the associated information about the submitted query name. The most common record types are <code>A</code> and <code>AAAA</code>, which return the hostname’s IPv4 and IPv6 addresses respectively (assuming they exist). The <a href="https://radar.cloudflare.com/dns#dns-query-type"><b><u>DNS query type</u></b></a> graph below shows that globally, these two record types comprise on the order of 80% of the queries received by 1.1.1.1. Among the others shown in the graph, <a href="https://blog.cloudflare.com/speeding-up-https-and-http-3-negotiation-with-dns/#service-bindings-via-dns"><code><u>HTTPS</u></code></a> records can be used to signal HTTP/3 and HTTP/2 support, <a href="https://www.cloudflare.com/learning/dns/dns-records/dns-ptr-record/"><code><u>PTR</u></code></a> records are used in reverse DNS records to look up a domain name based on a given IP address, and <a href="https://www.cloudflare.com/learning/dns/dns-records/dns-ns-record/"><code><u>NS</u></code></a> records indicate authoritative nameservers for a domain.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3LI2EW249EtFFX5FvlONDg/4b150dfbdd8de5c0e9def9eb18c81d70/06.png" />
            
            </figure><p>A response code is sent with each response from 1.1.1.1 to the client. Six possible values were <a href="https://datatracker.ietf.org/doc/html/rfc1035#section-4.1.1"><u>originally defined in RFC 1035</u></a>, with the list <a href="https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6"><u>further extended</u></a> in <a href="https://datatracker.ietf.org/doc/html/rfc2136"><u>RFC 2136</u></a> and <a href="https://datatracker.ietf.org/doc/html/rfc2671"><u>RFC 2671</u></a>. <code>NOERROR</code>, as the name suggests, means that no error condition was encountered with the query. Others, such as <code>NXDOMAIN</code>, <code>SERVFAIL</code>, <code>REFUSED</code>, and <code>NOTIMP</code> define specific error conditions encountered when trying to resolve the requested query name. The response codes may be generated by 1.1.1.1 itself (like <code>REFUSED</code>) or may come from an upstream authoritative nameserver (like <code>NXDOMAIN</code>).</p><p>The <a href="https://radar.cloudflare.com/dns#dns-response-code"><b><u>DNS response code</u></b></a> graph shown below highlights that the vast majority of queries seen globally do not encounter an error during the resolution process (<code>NOERROR</code>), and that when errors are encountered, most are <a href="https://datatracker.ietf.org/doc/html/rfc8020"><code><u>NXDOMAIN</u></code></a> (no such record). It is worth noting that <code>NOERROR</code> also includes empty responses, which occur when there are no records for the query name and query type, but there are records for the query name and some other query type.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6ZXQ8kcT0H7zfb8najn42C/df8c8c2f54c492484bb5d59f437eee5d/07.png" />
            
            </figure><p>With DNS being a first-step dependency for many other protocols, the amount of queries of particular types can be used to indirectly measure the adoption of those protocols. But to effectively measure adoption, we should also consider the fraction of those queries that are met with useful responses, which are represented with the <a href="https://radar.cloudflare.com/dns#dns-record-adoption"><b><u>DNS record adoption</u></b></a> graphs.</p><p>The example below shows that queries for <code>A</code> records are met with a useful response nearly 88% of the time. As IPv4 is an established protocol, the remaining 12% are likely to be queries for valid hostnames that have no <code>A </code>records (e.g. email domains that only have MX records). But the same graph also shows that there’s still a <a href="https://blog.cloudflare.com/ipv6-from-dns-pov/"><u>significant adoption gap</u></a> where IPv6 is concerned.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6blxaHcK6UtPp67V3SGNML/daed03be6793aab32ec21b2bb2f08374/08.png" />
            
            </figure><p>When Cloudflare’s DNS resolver gets a response back from an upstream authoritative nameserver, it caches it for a specified amount of time — more on that below. By caching these responses, it can more efficiently serve subsequent queries for the same name. The <a href="https://radar.cloudflare.com/dns#dns-cache-hit-ratio"><b><u>DNS cache hit ratio</u></b></a> graph provides insight into how frequently responses are served from cache. At a global level, as seen below, over 80% of queries have a response that is already cached. These ratios will vary by location or ASN, as the query patterns differ across geographies and networks.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/sj0gBv53GdPF0slfGlKlr/fa86ff6fc610aefad2e675c5dc926f54/09.png" />
            
            </figure><p>As noted in the preceding paragraph, when an authoritative nameserver sends a response back to 1.1.1.1, each record inside it includes information about how long it should be cached/considered valid for. This piece of information is known as the <a href="https://developers.cloudflare.com/dns/manage-dns-records/reference/ttl/"><u>Time-To-Live (TTL)</u></a> and, as a response may contain multiple records, the smallest of these TTLs (the “minimum” TTL) defines how long 1.1.1.1 can cache the entire response for. The TTLs on each response served from 1.1.1.1’s cache decrease towards zero as time passes, at which point 1.1.1.1 needs to go back to the authoritative nameserver. Hostnames with relatively low TTL values suggest that the records may be somewhat dynamic, possibly due to traffic management of the associated resources; longer TTL values suggest that the associated resources are more stable and expected to change infrequently.</p><p>The <a href="https://radar.cloudflare.com/dns#dns-minimum-ttl"><b><u>DNS minimum TTL</u></b></a> graphs show the aggregate distribution of TTL values for five popular DNS record types, broken out across seven buckets ranging from under one minute to over one week. During the third week of February, for example, <code>A</code> and <code>AAAA</code> responses had a concentration of low TTLs, with over 80% below five minutes. In contrast, <code>NS</code> and <code>MX</code> responses were more concentrated across 15 minutes to one hour and one hour to one day. Because <code>MX</code> and <code>NS</code> records change infrequently, they are generally configured with higher TTLs. This allows them to be cached for longer periods in order to achieve faster DNS resolution.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3r6ppahpkqyfAHi89LWNA1/6dc6f52e92c1d7aa2dfaeaa411deb982/10.png" />
            
            </figure>
    <div>
      <h3>DNS security</h3>
      <a href="#dns-security">
        
      </a>
    </div>
    <p><a href="https://www.cloudflare.com/learning/dns/dns-security/"><u>DNS Security Extensions (DNSSEC)</u></a> add an extra layer of authentication to DNS establishing the integrity and authenticity of a DNS response. This ensures subsequent HTTPS requests are not routed to a spoofed domain. When sending a query to 1.1.1.1, a DNS client can indicate that it is DNSSEC-aware by setting a specific flag (the “DO” bit) in the query, which lets our resolver know that it is OK to return DNSSEC data in the response. The <a href="https://radar.cloudflare.com/dns#dnssec-client-awareness"><b><u>DNSSEC client awareness</u></b></a> graph breaks down the share of queries that 1.1.1.1 sees from clients that understand DNSSEC and can require validation of responses vs. those that don’t. (Note that by default, 1.1.1.1 tries to protect clients by always validating DNSSEC responses from authoritative nameservers and not forwarding invalid responses to clients, unless the client has explicitly told it not to by setting the “CD” (checking-disabled) bit in the query.)</p><p>Unfortunately, as the graph below shows, nearly 90% of the queries seen by Cloudflare’s resolver are made by clients that are not DNSSEC-aware. This broad lack of client awareness may be due to several factors. On the client side, DNSSEC is not enabled by default for most users, and enabling DNSSEC requires extra work, even for technically savvy and security conscious users. On the authoritative side, for domain owners, supporting DNSSEC requires extra operational maintenance and knowledge, and a mistake can cost your domain to <a href="https://blog.cloudflare.com/dnssec-issues-fiji/"><u>disappear from the Internet</u></a>, causing significant (including financial) issues.</p><p>The companion <a href="https://radar.cloudflare.com/dns#end-to-end-security"><b><u>End-to-end security</u></b></a> graph represents the fraction of DNS interactions that were protected from tampering, when considering the client’s DNSSEC capabilities and use of encryption (use of DoT or DoH). This shows an even greater imbalance at a global level, and highlights the importance of further adoption of encryption and DNSSEC.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6nErpp8o9tPuE0jt5PQ3fg/3e509065967a8f43c6679d400fd31454/11.png" />
            
            </figure><p>For DNSSEC validation to occur, the query name being requested must be part of a DNSSEC-enabled domain, and the <a href="https://radar.cloudflare.com/dns#dnssec-validation-status"><b><u>DNSSEC validation status</u></b></a> graph represents the share of queries where that was the case under the <b>Secure</b> and <b>Invalid</b> labels. Queries for domains without DNSSEC are labeled as <b>Insecure</b>, and queries where DNSSEC validation was not applicable (such as various kinds of errors) fall under the <b>Other</b> label. Although nearly 93% of generic Top Level Domains (TLDs) and 65% of country code Top Level Domains (ccTLDs) are <a href="https://ithi.research.icann.org/graph-m7.html"><u>signed with DNSSEC</u></a> (as of February 2025), the adoption rate across individual (child) domains lags significantly, as the graph below shows that over 80% of queries were labeled as <b>Insecure</b>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3shBkfRYcpHKgXI6Y9jcjq/26929261c5c6800fa1fee562dad5ce53/12.png" />
            
            </figure>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>DNS is a fundamental, foundational part of the Internet. While most Internet users don’t think of DNS beyond its role in translating easy-to-remember hostnames to IP addresses, there’s a lot going on to make even that happen, from privacy to performance to security. The new DNS page on Cloudflare Radar endeavors to provide visibility into what’s going on behind the scenes, at a global, national, and network level.</p><p>While the graphs shown above are taken from the DNS page, all the underlying data is available via the <a href="https://developers.cloudflare.com/api/resources/radar/subresources/dns/"><u>API</u></a> and can be interactively explored in more detail across locations, networks, and time periods using Radar’s <a href="https://radar.cloudflare.com/explorer?dataSet=dns"><u>Data Explorer and AI Assistant</u></a>. And as always, Radar and Data Assistant charts and graphs are downloadable for sharing, and embeddable for use in your own blog posts, websites, or dashboards.</p><p>If you share our DNS graphs on social media, be sure to tag us: <a href="https://x.com/CloudflareRadar"><u>@CloudflareRadar</u></a> and <a href="https://x.com/1111Resolver"><u>@1111Resolver</u></a> (X), <a href="https://noc.social/@cloudflareradar"><u>noc.social/@cloudflareradar</u></a> (Mastodon), and <a href="https://bsky.app/profile/radar.cloudflare.com"><u>radar.cloudflare.com</u></a> (Bluesky). If you have questions or comments, you can reach out to us on social media, or contact us via <a href="#"><u>email</u></a>.</p> ]]></content:encoded>
            <category><![CDATA[1.1.1.1]]></category>
            <category><![CDATA[Radar]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[Resolver]]></category>
            <category><![CDATA[DNSSEC]]></category>
            <category><![CDATA[DoH]]></category>
            <category><![CDATA[Traffic]]></category>
            <guid isPermaLink="false">2aI8Y4m36DD0HQghRNFZ2n</guid>
            <dc:creator>David Belson</dc:creator>
            <dc:creator>Carlos Rodrigues</dc:creator>
            <dc:creator>Vicky Shrestha</dc:creator>
            <dc:creator>Hannes Gerhart</dc:creator>
        </item>
        <item>
            <title><![CDATA[Helping build the next generation of privacy-preserving protocols]]></title>
            <link>https://blog.cloudflare.com/next-generation-privacy-protocols/</link>
            <pubDate>Tue, 08 Dec 2020 12:00:00 GMT</pubDate>
            <description><![CDATA[ Today, we’re making several announcements around improving Internet protocols with respect to something important to our customers and Internet users worldwide: privacy. ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3KjEAqn2Lizr1zW42YzTU4/6492bcae03200a5c1688671ecc3b6291/Privacy-protocols-2.png" />
            
            </figure><p>Over the last ten years, Cloudflare has become an important part of Internet infrastructure, powering websites, APIs, and web services to help make them more secure and efficient. The Internet is growing in terms of its capacity and the number of people using it and evolving in terms of its design and functionality. As a player in the Internet ecosystem, Cloudflare has a responsibility to help the Internet grow in a way that respects and provides value for its users. Today, we’re making several announcements around improving Internet protocols with respect to something important to our customers and Internet users worldwide: privacy.</p><p>These initiatives are:</p><ul><li><p>Fixing one of the last information leaks in HTTPS through <a href="/encrypted-client-hello"><b>Encrypted Client Hello (ECH)</b></a><b>,</b> previously known as <a href="/encrypted-sni/">Encrypted SNI</a></p></li><li><p>Making <a href="https://www.cloudflare.com/learning/dns/what-is-dns/">DNS</a> even more private by supporting <a href="/oblivious-dns"><b>Oblivious DNS-over-HTTPS (ODoH)</b></a></p></li><li><p>Developing a superior protocol for password authentication, <a href="/opaque-oblivious-passwords"><b>OPAQUE</b></a>, that makes password breaches less likely to occur</p></li></ul><p>Each of these projects impacts an aspect of the Internet that influences our online lives and digital footprints. Whether we know it or not, there is a lot of private information about us and our lives floating around online. This is something we can help fix.</p><p>For over a year, we have been working through standards bodies like the IETF and partnering with the biggest names in Internet technology (including Mozilla, Google, Equinix, and more) to design, deploy, and test these new privacy-preserving protocols at Internet scale. Each of these three protocols touches on a critical aspect of our online lives, and we expect them to help make real improvements to privacy online as they gain adoption.</p>
    <div>
      <h3>A continuing tradition at Cloudflare</h3>
      <a href="#a-continuing-tradition-at-cloudflare">
        
      </a>
    </div>
    <p>One of Cloudflare’s core missions is to support and develop technology that helps build a better Internet. As an industry, we’ve made exceptional progress in making the Internet more secure and robust. Cloudflare is proud to have played a part in this progress through multiple initiatives over the years.</p><p>Here are a few highlights:</p><ul><li><p><a href="/introducing-universal-ssl/"><b>Universal SSL</b></a>™. We’ve been one of the driving forces for encrypting the web. We launched Universal SSL in 2014 to give website encryption to our customers for free and have actively been working along with certificate authorities like Let’s Encrypt, web browsers, and website operators to help remove <a href="/tag/mixed-content-errors/">mixed content</a>. Before Universal SSL launched to give all Cloudflare customers HTTPS for free, only 30% of connections to websites were encrypted. Through the industry’s efforts, that number is now <a href="https://letsencrypt.org/stats/">80%</a> -- and a much more significant proportion of overall Internet traffic. Along with doing our part to encrypt the web, we have supported the Certificate Transparency project via <a href="/introducing-certificate-transparency-and-nimbus/">Nimbus</a> and <a href="https://ct.cloudflare.com/">Merkle Town</a>, which has improved accountability for the certificate ecosystem HTTPS relies on for trust.</p></li><li><p><b>TLS 1.3 and QUIC</b>. We’ve also been a proponent of upgrading existing security protocols. Take Transport Layer Security (TLS), the underlying protocol that secures HTTPS. Cloudflare engineers helped contribute to the design of TLS 1.3, the latest version of the standard, and <a href="/introducing-tls-1-3/">in 2016</a> we launched support for an early version of the protocol. This early deployment helped lead to improvements to the final version of the protocol. TLS 1.3 is now the most widely used encryption protocol on the web and a vital component of the <a href="/last-call-for-quic/">emerging QUIC standard</a>, of which we were also early adopters.</p></li><li><p><b>Securing Routing, Naming, and Time</b>. We’ve made major efforts to help secure other critical components of the Internet. Our efforts to help secure Internet routing through our <a href="/cloudflares-rpki-toolkit/">RPKI toolkit</a>, <a href="https://conferences.sigcomm.org/imc/2019/presentations/p221.pdf">measurement studies</a>, and “<a href="/is-bgp-safe-yet-rpki-routing-security-initiative/">Is BGP Safe Yet</a>” tool have significantly improved the Internet’s resilience against disruptive route leaks. Our time service (<a href="/secure-time/">time.cloudflare.com</a>) has helped keep people’s clocks in sync with more secure protocols like <a href="/nts-is-now-rfc/">NTS</a> and <a href="/roughtime/">Roughtime</a>. We’ve also made DNS more secure by supporting <a href="/dns-encryption-explained/">DNS-over-HTTPS and DNS-over-TLS</a> in 1.1.1.1 at launch, along with one-click DNSSEC in our <a href="/introducing-universal-dnssec/">authoritative DNS</a> service and <a href="/one-click-dnssec-with-cloudflare-registrar/">registrar</a>.</p></li></ul><p>Continuing to improve the security of the systems of trust online is critical to the Internet’s growth. However, there is a more fundamental principle at play: respect. The infrastructure underlying the Internet should be designed to respect its users.</p>
    <div>
      <h3>Building an Internet that respects users</h3>
      <a href="#building-an-internet-that-respects-users">
        
      </a>
    </div>
    <p>When you sign in to a specific website or service with a privacy policy, you know what that site is expected to do with your data. It’s explicit. There is no such visibility to the users when it comes to the operators of the Internet itself. You may have an agreement with your Internet Service Provider (ISP) and the site you’re visiting, but it’s doubtful that you even know which <a href="http://www.washingtonpost.com/graphics/national/security-of-the-internet/bgp">networks your data is traversing</a>. Most people don’t have a concept of the Internet beyond what they see on their screen, so it’s hard to imagine that people would accept or even understand what a privacy policy from a <a href="/the-relative-cost-of-bandwidth-around-the-world/">transit wholesaler</a> or an <a href="https://us-cert.cisa.gov/ncas/alerts/TA17-075A">inspection middlebox</a> would even mean.</p><p>Without encryption, Internet browsing information is implicitly shared with countless third parties online as information passes between networks. Without secure routing, users’ traffic can be hijacked and disrupted. Without privacy-preserving protocols, users’ online life is not as private as they would think or expect. The infrastructure of the Internet wasn’t built in a way that reflects their expectations.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7rjHEqRERPxkcFeoNRwfAX/37548cf8be78a4849c9a188c076ca483/image3.png" />
            
            </figure><p>Normal network flow</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/76hMzZSOArtOdRiTWCeXqH/b2063a3b7aef6e410f30efcbc242f4b6/image1-7.png" />
            
            </figure><p>Network flow with malicious route leak</p><p>The good news is that the Internet is continuously evolving. One of the groups that help guide that evolution is the Internet Architecture Board (IAB). The IAB provides architectural oversight to the Internet Engineering Task Force (IETF), the Internet’s main standard-setting body. The IAB recently published <a href="https://www.rfc-editor.org/rfc/rfc8890.html">RFC 8890</a>, which states that individual end-users should be prioritized when designing Internet protocols. It says that if there’s a conflict between the interests of end-users and the interest of service providers, corporations, or governments, IETF decisions should favor end users. One of the prime interests of end-users is the right to privacy, and the IAB published <a href="https://tools.ietf.org/html/rfc6973">RFC 6973</a> to indicate how Internet protocols should take privacy into account.</p><p>Today’s technical blog posts are about <b>improvements to the Internet designed to respect user privacy</b>. Privacy is a complex topic that spans multiple disciplines, so it’s essential to clarify what we mean by “improving privacy.” We are specifically talking about changing the protocols that handle privacy-sensitive information exposed “on-the-wire” and modifying them so that this data is exposed to fewer parties. This data continues to exist. It’s just no longer available or visible to third parties without building a mechanism to collect it at a higher layer of the Internet stack, the application layer. <i>These changes go beyond website encryption</i>; they go deep into the design of the systems that are foundational to making the Internet what it is.</p>
    <div>
      <h3>The toolbox: cryptography and secure proxies</h3>
      <a href="#the-toolbox-cryptography-and-secure-proxies">
        
      </a>
    </div>
    <p>Two tools for making sure data can be used without being seen are <i>cryptography</i> and <i>secure</i> <i>proxies</i>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/71bC5CqEyrYCZ0RpSJGbHI/922ebc973778951111a1a1881b978e71/Cryptography-and-Secure-Proxies.png" />
            
            </figure><p>Cryptography allows information to be transformed into a format that a very limited number of people (those with the key) can understand. Some describe cryptography as a tool that transforms data security problems into key management problems. This is a humorous but fair description. Cryptography makes it easier to reason about privacy because only key holders can view data.</p><p>Another tool for protecting access to data is isolation/segmentation. By physically limiting which parties have access to information, you effectively build privacy walls. A popular architecture is to rely on policy-aware proxies to pass data from one place to another. Such proxies can be configured to strip sensitive data or block data transfers between parties according to what the privacy policy says.</p><p>Both these tools are useful individually, but they can be even more effective if combined. Onion routing (the cryptographic technique <a href="/cloudflare-onion-service/">underlying Tor</a>) is one example of how proxies and encryption can be used in tandem to enforce strong privacy. Broadly, if party A wants to send data to party B, they can encrypt the data with party B’s key and encrypt the metadata with a proxy’s key and send it to the proxy.</p><p>Platforms and services built on top of the Internet can build in consent systems, like privacy policies presented through user interfaces. The infrastructure of the Internet relies on layers of underlying protocols. Because these layers of the Internet are so far below where the user interacts with them, it’s almost impossible to build a concept of user consent. In order to respect users and protect them from privacy issues, the protocols that glue the Internet together should be designed with privacy enabled by default.</p>
    <div>
      <h3>Data vs. metadata</h3>
      <a href="#data-vs-metadata">
        
      </a>
    </div>
    <p>The transition from a mostly unencrypted web to an encrypted web has done a lot for end-user privacy. For example, the “<a href="https://codebutler.com/2010/10/24/firesheep/">coffeeshop stalker</a>” is no longer an issue for most sites. When accessing the majority of sites online, users are no longer broadcasting every aspect of their web browsing experience (search queries, browser versions, authentication cookies, etc.) over the Internet for any participant on the path to see. Suppose a site is configured correctly to use HTTPS. In that case, users can be confident their data is secure from onlookers and reaches only the intended party because their connections are both encrypted and authenticated.</p><p>However, HTTPS only protects the <i>content</i> of web requests. Even if you only browse sites over HTTPS, that doesn’t mean that your <i>browsing</i> <i>patterns</i> are private. This is because HTTPS fails to encrypt a critical aspect of the exchange: the metadata. When you make a phone call, the metadata is the phone number, not the call’s contents. Metadata is the data about the data.</p><p>To illustrate the difference and why it matters, here’s a diagram of what happens when you visit a website like an imageboard. Say you’re going to a specific page on that board (<a href="https://images.com/room101/">https://.com/room101/</a>) that has specific embedded images hosted on .com.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2WDSyOoFNRtXcGj5XXQC9p/b1c9ce791e8d84798b93782c97703c37/image5-2.png" />
            
            </figure><p>Page load for an imageboard, returning an HTML page with an image from an embarassing site</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6DvbyOK8cIcvblLUmPsQCl/c994c812f99f917e5ae4c86898da827c/image4.png" />
            
            </figure><p>Subresource fetch for the image from an embarassing site</p><p>The space inside the dotted line here represents the part of the Internet that your data needs to transit. They include your local area network or coffee shop, your ISP, an Internet transit provider, and it could be the network portion of the cloud provider that hosts the server. Users often don’t have a relationship with these entities or a contract to prevent these parties from doing anything with the user’s data. And even if those entities don’t look at the data, a well-placed observer intercepting Internet traffic could see anything sent unencrypted. It would be best if they just didn’t see it at all. In this example, the fact that the user visited .com can be seen by an observer, which is expected. However, though page content is encrypted, it’s possible to learn <i>which specific page you’ve visited</i> can be seen since .com is also visible.</p><p>It’s a general rule that if data is available to on-path parties on the Internet, some of these on-path parties will use this data. It’s also true that these on-path parties need some metadata in order to facilitate the transport of this data. This balance is explored in <a href="https://www.rfc-editor.org/rfc/rfc8558.html">RFC 8558</a>, which explains how protocols should be designed thoughtfully with respect to the balance between too much metadata (bad for privacy) and too little metadata (bad for operations).</p><p>In an ideal world, Internet protocols would be designed with the principle of least privilege. They would provide the minimum amount of information needed for the on-path parties (the pipes) to do the job of transporting the data to the right place and keep everything else confidential by default. Current protocols, including TLS 1.3 and QUIC, are important steps towards this ideal but fall short with respect to metadata privacy.</p>
    <div>
      <h3>Knowing both who you are and what you do online can lead to profiling</h3>
      <a href="#knowing-both-who-you-are-and-what-you-do-online-can-lead-to-profiling">
        
      </a>
    </div>
    <p>Today’s announcements reflect two metadata protection levels: the first involves limiting the amount of metadata available to third-party observers (like ISPs). The second involves restricting the amount of metadata that users share with service providers themselves.</p><p>Hostnames are an example of metadata that needs to be protected from third-party observers, which DoH and ECH intend to do. However, it doesn’t make sense to hide the hostname from the site you’re visiting. It also doesn’t make sense to hide it from a directory service like DNS. A DNS server needs to know which hostname you’re resolving to resolve it for you!</p><p>A privacy issue arises when a service provider knows about both what sites you’re visiting and who you are. Individual websites do not have this dangerous combination of information (except in the case of third party cookies, which <a href="https://www.cnbc.com/2020/01/14/google-chrome-to-end-support-for-third-party-cookies-within-two-years.html">are going away soon in browsers</a>), but DNS providers do. Thankfully, it’s not actually necessary for a DNS resolver to know *both* the hostname of the service you’re going to and which IP you’re coming from. Disentangling the two, which is the goal of ODoH, is good for privacy.</p>
    <div>
      <h3>The Internet is part of 'our' Infrastructure</h3>
      <a href="#the-internet-is-part-of-our-infrastructure">
        
      </a>
    </div>
    <p>Roads should be well-paved, well lit, have accurate signage, and be optimally connected. They aren't designed to stop a car based on who's inside it. Nor should they be! Like transportation infrastructure, Internet infrastructure is responsible for getting data where it needs to go, not looking inside packets, and making judgments. But the Internet is made of computers and software, and software tends to be written to make decisions based on the data it has available to it.</p><p>Privacy-preserving protocols attempt to eliminate the temptation for infrastructure providers and others to peek inside and make decisions based on personal data. A non-privacy preserving protocol like HTTP keeps data and metadata, like passwords, IP addresses, and hostnames, as explicit parts of the data sent over the wire. The fact that they are explicit means that they are available to any observer to collect and act on. A protocol like HTTPS improves upon this by making some of the data (such as passwords and site content) invisible on the wire using encryption.</p><p>The three protocols we are exploring today extend this concept.</p><ul><li><p><b>ECH</b> takes most of the unencrypted metadata in TLS (including the hostname) and encrypts it with a key that was fetched ahead of time.</p></li><li><p><b>ODoH</b> (a new variant of DoH co-designed by Apple, Cloudflare, and Fastly engineers) uses proxies and onion-like encryption to make the source of a DNS query invisible to the DNS resolver. This protects the user’s IP address when resolving hostnames.</p></li><li><p><b>OPAQUE</b> uses a new cryptographic technique to keep passwords hidden <b><i>even from the server</i></b>. Utilizing a construction called an Oblivious Pseudo-Random Function (as seen in <a href="/privacy-pass-the-math/">Privacy Pass</a>), the server does not learn the password; it only learns whether or not the user knows the password.</p></li></ul><p>By making sure Internet infrastructure acts more like physical infrastructure, user privacy is more easily protected. The Internet is more private if private data can only be collected where the user has a chance to consent to its collection.</p>
    <div>
      <h3>Doing it together</h3>
      <a href="#doing-it-together">
        
      </a>
    </div>
    <p>As much as we’re excited about working on new ways to make the Internet more private, innovation at a global scale doesn’t happen in a vacuum. Each of these projects is the output of a collaborative group of individuals working out in the open in organizations like the IETF and the IRTF. Protocols must come about through a consensus process that involves all the parties that make up the interconnected set of systems that power the Internet. From browser builders to cryptographers, from DNS operators to website administrators, this is truly a global team effort.</p><p>We also recognize that sweeping technical changes to the Internet will inevitably also impact the technical community. Adopting these new protocols may have legal and policy implications. We are actively working with governments and civil society groups to help educate them about the impact of these potential changes.</p><p>We’re looking forward to sharing our work today and hope that more interested parties join in developing these protocols. The projects we are announcing today were designed by experts from academia, industry, and hobbyists together and were built by engineers from Cloudflare Research (including the work of interns, which we will highlight) with everyone’s support Cloudflare.</p><p>If you’re interested in this type of work, <a href="https://www.cloudflare.com/careers/jobs/">we’re hiring</a>!</p> ]]></content:encoded>
            <category><![CDATA[Privacy Week]]></category>
            <category><![CDATA[Encryption]]></category>
            <category><![CDATA[Cryptography]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[DoH]]></category>
            <category><![CDATA[Authentication]]></category>
            <category><![CDATA[Passwords]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Encrypted SNI]]></category>
            <category><![CDATA[Research]]></category>
            <guid isPermaLink="false">6Npild5sJTVfGo3GttHrTd</guid>
            <dc:creator>Nick Sullivan</dc:creator>
        </item>
        <item>
            <title><![CDATA[Improving DNS Privacy with Oblivious DoH in 1.1.1.1]]></title>
            <link>https://blog.cloudflare.com/oblivious-dns/</link>
            <pubDate>Tue, 08 Dec 2020 12:00:00 GMT</pubDate>
            <description><![CDATA[ Oblivious DoH (ODoH) makes secure DNS over HTTPS (DoH) queries into private queries which prevent the leakage of client IP addresses to resolvers. The new proposed ODoH standard addresses this problem and today we are enabling users to use this protocol with 1.1.1.1 ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4YBSKOlLClafeeeiPkHjGT/a68f1dca3b98feb51b3827bce9210f8b/image2-4.png" />
            
            </figure><p>Today we are announcing support for a new proposed DNS standard — co-authored by engineers from Cloudflare, Apple, and Fastly — that separates IP addresses from queries, so that no single entity can see both at the same time. Even better, we’ve made source code available, so anyone can try out ODoH, or run their own ODoH service!</p><p>But first, a bit of context. The <a href="https://www.cloudflare.com/learning/dns/what-is-dns/">Domain Name System (DNS)</a> is the foundation of a human-usable Internet. It maps usable domain names, such as cloudflare.com, to IP addresses and other information needed to connect to that domain. A quick primer about <a href="/announcing-1111/">the importance and issues with DNS</a> can be read in a previous blog post. For this post, it’s enough to know that, in the initial design and still dominant usage of DNS, queries are sent in cleartext. This means anyone on the network path between your device and the DNS resolver can see both the query that contains the hostname (or website) you want, as well as the IP address that identifies your device.</p><p>To safeguard DNS from onlookers and third parties, the IETF standardized DNS encryption with DNS over HTTPS (DoH) and DNS over TLS (DoT). Both protocols prevent queries from being intercepted, redirected, or modified between the client and resolver. Client support for DoT and DoH is growing, having been implemented in recent versions of Firefox, iOS, and more. Even so, until there is wider deployment among Internet service providers, Cloudflare is one of only a few providers to offer a public DoH/DoT service. This has raised two main concerns. One concern is that the centralization of DNS introduces single points of failure (although, with data centers in more than 100 countries, Cloudflare is designed to always be reachable). The other concern is that the resolver can still link all queries to client IP addresses.</p><p>Cloudflare is committed to end-user privacy. Users of our public DNS resolver service are protected by a <a href="/announcing-the-results-of-the-1-1-1-1-public-dns-resolver-privacy-examination/">strong, audited privacy policy</a>. However, for some, trusting Cloudflare with sensitive query information is a barrier to adoption, even with such a strong privacy policy. Instead of relying on privacy policies and audits, what if we could give users an option to remove that bar with technical guarantees?</p><p>Today, Cloudflare and partners are launching support for a protocol that does exactly that: Oblivious DNS over HTTPS, or ODoH for short.</p>
    <div>
      <h3>ODoH Partners:</h3>
      <a href="#odoh-partners">
        
      </a>
    </div>
    <p>We're excited to launch ODoH with several leading launch partners who are equally committed to privacy.</p><p>A key component of ODoH is a proxy that is disjoint from the target resolver. Today, we’re launching ODoH with several leading proxy partners, including: PCCW, SURF, and Equinix.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7axirA87xboerNnYyli8zt/170dc833c86eb9be1914fd08e8591e3f/image3-8.png" />
            
            </figure><blockquote><p>“ODoH is a revolutionary new concept designed to keep users' privacy at the center of everything. Our ODoH partnership with Cloudflare positions us well in the privacy and "Infrastructure of the Internet" space. As well as the enhanced security and performance of the underlying PCCW Global network, which can be accessed on-demand via Console Connect, the performance of the proxies on our network are now improved by Cloudflare’s 1.1.1.1 resolvers. This model for the first time completely decouples client proxy from the resolvers. This partnership strengthens our existing focus on privacy as the world moves to a more remote model and privacy becomes an even more critical feature.” -- <b>Michael Glynn, Vice President, Digital Automated Innovation, PCCW Global</b></p></blockquote>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/uPbM9bA5gK1hN0WV5oafZ/b7ee157691a64314dbddd565a7e00ec8/image8-1.png" />
            
            </figure><blockquote><p>“We are partnering with Cloudflare to implement better user privacy via ODoH. The move to ODoH is a true paradigm shift, where the users’ privacy or the IP address is not exposed to any provider, resulting in true privacy. With the launch of ODoH-pilot, we’re joining the power of Cloudflare’s network to meet the challenges of any users around the globe. The move to ODoH is not only a paradigm shift but it emphasizes how privacy is important to any users than ever, especially during 2020. It resonates with our core focus and belief around Privacy.” — <b>Joost van Dijk, Technical Product Manager, SURF</b></p></blockquote>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2TQuTnYRxLfYdwe6vge5Yp/9ac56c27f3d3f476b39a20a94bd4cee8/image9.png" />
            
            </figure>
    <div>
      <h3>How does Oblivious DNS over HTTPS (ODoH) work?</h3>
      <a href="#how-does-oblivious-dns-over-https-odoh-work">
        
      </a>
    </div>
    <p>ODoH is an emerging protocol being developed at the <a href="https://tools.ietf.org/html/draft-pauly-dprive-oblivious-doh-03">IETF</a>. ODoH works by adding a layer of public key encryption, as well as a network proxy between clients and DoH servers such as 1.1.1.1. The combination of these two added elements guarantees that only the user has access to both the DNS messages and their own IP address at the same time.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4yoWivpvmLp3zicMA3zRcv/ea4d846a7f7f72456b4ac9ba1fe9d045/image6-2.png" />
            
            </figure><p>There are three players in the ODoH path. Looking at the figure above, let’s begin with the target. <b>The target</b> decrypts queries encrypted by the client, via a proxy. Similarly, the target encrypts responses and returns them to the proxy. The standard says that the target may or may not be the resolver (we’ll touch on this later). <b>The proxy</b> does as a proxy is supposed to do, in that it forwards messages between client and target. <b>The client</b> behaves as it does in DNS and DoH, but differs by encrypting queries for the target, and decrypting the target’s responses. Any client that chooses to do so can specify a proxy and target of choice.</p><p>Together, the added encryption and proxying provide the following guarantees:</p><ol><li><p>The target sees only the query and the proxy’s IP address.</p></li><li><p>The proxy has no visibility into the DNS messages, with no ability to identify, read, or modify either the query being sent by the client or the answer being returned by the target.</p></li><li><p>Only the intended target can read the content of the query and produce a response.</p></li></ol><p>These three guarantees improve client privacy while maintaining the security and integrity of DNS queries. However, each of these guarantees relies on one fundamental property — that <b>the proxy and the target servers do not collude</b>. So long as there is no collusion, an attacker succeeds only if both the proxy and target are compromised.</p><p>One aspect of this system worth highlighting is that the target is separate from the upstream recursive resolver that performs DNS resolution. In practice, for performance, we expect the target to be the same. In fact, 1.1.1.1 is now both a recursive resolver and a target! There is no reason that a target needs to exist separately from any resolver. If they are separated then the target is free to choose resolvers, and just act as a go-between. The only real requirement, remember, is that the proxy and target never collude.</p><p>Also, importantly, clients are in complete control of proxy and target selection. Without any need for <a href="https://wiki.mozilla.org/Trusted_Recursive_Resolver">TRR</a>-like programs, clients can have privacy for their queries, in addition to security. Since the target only knows about the proxy, the target and any upstream resolver are oblivious to the existence of any client IP addresses. Importantly, this puts clients in greater control over their queries and the ways they might be used. For example, clients could select and alter their proxies and targets any time, for any reason!</p>
    <div>
      <h3>ODoH Message Flow</h3>
      <a href="#odoh-message-flow">
        
      </a>
    </div>
    <p>In ODoH, the ‘O’ stands for oblivious, and this property comes from the level of encryption of the DNS messages themselves. This added encryption is `end-to-end` between client and target, and independent from the connection-level encryption provided by TLS/HTTPS. One might ask why this additional encryption is required at all in the presence of a proxy. This is because two separate TLS connections are required to support proxy functionality. Specifically, the proxy terminates a TLS connection from the client, and initiates another TLS connection to the target. Between those two connections, the DNS message contexts would otherwise appear in plaintext! For this reason, ODoH additionally encrypts messages between client and target so the proxy has no access to the message contents.</p><p>The whole process begins with clients that encrypt their query for the target using <a href="https://tools.ietf.org/html/draft-irtf-cfrg-hpke-06">HPKE</a>. Clients obtain the target’s public key via DNS, where it is bundled into a <a href="https://tools.ietf.org/html/draft-ietf-dnsop-svcb-https-02">HTTPS resource record</a> and protected by DNSSEC. When the TTL for this key expires, clients request a new copy of the key as needed (just as they would for an A/AAAA record when that record’s TTL expires). The usage of a target’s DNSSEC-validated public key guarantees that only the intended target can decrypt the query and encrypt a response (answer).</p><p>Clients transmit these encrypted queries to a proxy over an HTTPS connection. Upon receipt, the proxy forwards the query to the designated target. The target then decrypts the query, produces a response by sending the query to a recursive resolver such as 1.1.1.1, and then encrypts the response to the client. The encrypted query from the client contains encapsulated keying material from which targets derive the response encryption symmetric key.</p><p>This response is then sent back to the proxy, and then subsequently forwarded to the client. All communication is authenticated and confidential since these DNS messages are end-to-end encrypted, despite being transmitted over two separate HTTPS connections (client-proxy and proxy-target). The message that otherwise appears to the proxy as plaintext is actually an encrypted garble.</p>
    <div>
      <h3>What about Performance? Do I have to trade performance to get privacy?</h3>
      <a href="#what-about-performance-do-i-have-to-trade-performance-to-get-privacy">
        
      </a>
    </div>
    <p>We’ve been doing lots of measurements to find out, and will be doing more as ODoH deploys more widely. Our initial set of measurement configurations spanned cities in the USA, Canada, and Brazil. Importantly, our measurements include not just 1.1.1.1, but also 8.8.8.8 and 9.9.9.9. The full set of measurements, so far, is documented for <a href="https://arxiv.org/abs/2011.10121">open access</a>.</p><p>In those measurements, it was important to isolate the cost of proxying and additional encryption from the cost of TCP and TLS connection setup. This is because the TLS and TCP costs are incurred by DoH, anyway. So, in our setup, we ‘primed’ measurements by establishing connections once and reusing that connection for all measurements. We did this for both DoH and for ODoH, since the same strategy could be used in either case.</p><p>The first thing that we can say with confidence is that the additional encryption is marginal. We know this because we randomly selected 10,000 domains from the <a href="https://arxiv.org/abs/1806.01156">Tranco million dataset</a> and measured both encryption of the A record with a different public key, as well as its decryption. The additional cost between a proxied DoH query/response and its ODoH counterpart is consistently less than 1ms at the 99th percentile.</p><p>The ODoH request-response pipeline, however, is much more than just encryption. A very useful way of looking at measurements is by looking at the cumulative distribution chart — if you’re familiar with these kinds of charts, skip to the next paragraph. In contrast to most charts where we start along the x-axis, with cumulative distributions we often start with the y-axis.</p><p>The chart below shows the cumulative distributions for query/response times in DoH, ODoH, and DoH when transmitted over the Tor Network. The dashed horizontal line that starts on the left from 0.5 is the 50% mark. Along this horizontal line, for any plotted curve, the part of the curve below the dashed line is 50% of the data points. Now look at the x-axis, which is a measure of time. The lines that appear to the left are faster than lines to the right. One last important detail is that the x-axis is plotted on a logarithmic scale. What does this mean? Notice that the distance between the labeled markers (10x) is equal in cumulative distributions but the ‘x’ is an exponent, and represents orders of magnitude. So, while the time difference between the first two markers is 9ms, the difference between the 3rd and 4th markers is 900ms.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1hhI6LPQUHxDXKAN7VKJmb/9cbc575445958bf16abe2aede06953c6/image7-1.png" />
            
            </figure><p>In this chart, the middle curve represents ODoH measurements. We also measured the performance of privacy-preserving alternatives, for example, DoH queries transmitted over the Tor network as represented by the right curve in the chart. (Additional privacy-preserving alternatives are captured in the open access <a href="https://arxiv.org/abs/2011.10121">technical report</a>.) Compared to other privacy-oriented DNS variants, ODoH cuts query time in half, or better. This point is important since privacy and performance rarely play nicely together, so seeing this kind of improvement is encouraging!</p><p>The chart above also tells us that 50% of the time ODoH queries are resolved in fewer than 228ms. Now compare the middle line to the left line that represents ‘straight-line’ (or normal) DoH without any modification. That left plotline says that 50% of the time, DoH queries are resolved in fewer than 146ms. Looking below the 50% mark, the curves also tell us that ½ the time that difference is never greater than 100ms. On the other side, looking at the curves above the 50% mark tells us that ½ ODoH queries are competitive with DoH.</p><p>Those curves also hide a lot of information, so it is important to delve further into the measurements. The chart below has three different cumulative distribution curves that describe ODoH performance if we select proxies and targets by their latency. This is also an example of the insights that measurements can reveal, some of which are counterintuitive. For example, looking above 0.5, these curves say that ½ of ODoH query/response times are virtually indistinguishable, no matter the choice of proxy and target. Now shift attention below 0.5 and compare the two solid curves against the dashed curve that represents overall average. This region suggests that selecting the lowest-latency proxy and target offers minimal improvement over the average but, most importantly, it shows that selecting the lowest-latency proxy leads to worse performance!</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4ruOPaoGythP8vZQm6RUJI/579a9968b09ac603f92c98ff0d9ab96a/image4-3.png" />
            
            </figure><p>Open questions remain, of course. This first set of measurements were executed largely in North America. Does performance change at a global level? How does this affect client performance, in practice? We’re working on finding out, and this release will help us to do that.</p>
    <div>
      <h3>Interesting! Can I experiment with ODoH? Is there an open ODoH service?</h3>
      <a href="#interesting-can-i-experiment-with-odoh-is-there-an-open-odoh-service">
        
      </a>
    </div>
    <p>Yes, and yes! We have open sourced our interoperable ODoH implementations in Rust, <a href="https://github.com/cloudflare/odoh-rs/">odoh-rs</a> and Go, <a href="https://github.com/cloudflare/odoh-go/">odoh-go</a>, as well as integrated the target into the Cloudflare DNS Resolver. That’s right, 1.1.1.1 is ready to receive queries via ODoH.</p><p>We have also open sourced test clients in Rust, <a href="https://github.com/cloudflare/odoh-client-rs/">odoh-client-rs</a>, and Go, <a href="https://github.com/cloudflare/odoh-client-go/">odoh-client-go</a>, to demo ODoH queries. You can also check out the HPKE configuration used by ODoH for message encryption to 1.1.1.1 by querying the service directly:</p>
            <pre><code>$ dig -t type65 +dnssec @ns1.cloudflare.com odoh.cloudflare-dns.com 

; &lt;&lt;&gt;&gt; DiG 9.10.6 &lt;&lt;&gt;&gt; -t type65 +dnssec @ns1.cloudflare.com odoh.cloudflare-dns.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 19923
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
;; QUESTION SECTION:
;odoh.cloudflare-dns.com.	IN	TYPE65

;; ANSWER SECTION:
odoh.cloudflare-dns.com. 300	IN	TYPE65	\# 108 00010000010003026832000400086810F8F96810F9F9000600202606 470000000000000000006810F8F92606470000000000000000006810 F9F98001002E002CFF0200280020000100010020ED82DBE32CCDE189 BC6C643A80B5FAFF82548D21601C613408BACAAE6467B30A
odoh.cloudflare-dns.com. 300	IN	RRSIG	TYPE65 13 3 300 20201119163629 20201117143629 34505 odoh.cloudflare-dns.com. yny5+ApxPSO6Q4aegv09ZnBmPiXxDEnX5Xv21TAchxbxt1VhqlHpb5Oc 8yQPNGXb0fb+NyibmHlvTXjphYjcPA==

;; Query time: 21 msec
;; SERVER: 173.245.58.100#53(173.245.58.100)
;; WHEN: Wed Nov 18 07:36:29 PST 2020
;; MSG SIZE  rcvd: 291</code></pre>
            <p>We are working to add ODoH to existing stub resolvers such as <a href="https://github.com/cloudflare/cloudflared">cloudflared</a>. If you're interested in adding support to a client, or if you encounter bugs with the implementations, please drop us a line at <a href="#">ask-research@cloudflare.com</a>! Announcements about the ODoH specification and server will be sent to the <a href="https://datatracker.ietf.org/wg/dprive/about/">IETF DPRIVE</a> <a href="https://mailarchive.ietf.org/arch/browse/dns-privacy/">mailing list</a>. You can subscribe and follow announcements and discussion about the specification <a href="https://www.ietf.org/mailman/listinfo/dns-privacy">here</a>.</p><p>We are committed to moving it forward in the IETF and are already seeing interest from client vendors. Eric Rescorla, CTO of Firefox, says,</p><blockquote><p>Oblivious DoH is a great addition to the secure DNS ecosystem. We're excited to see it starting to take off and are looking forward to experimenting with it in Firefox.</p></blockquote><p>We hope that more operators join us along the way and provide support for the protocol, by running either proxies or targets, and we hope client support will increase as the available infrastructure increases, too.</p><p>The ODoH protocol is a practical approach for improving privacy of users, and aims to improve the overall adoption of encrypted DNS protocols without compromising performance and user experience on the Internet.</p>
    <div>
      <h3>Acknowledgements</h3>
      <a href="#acknowledgements">
        
      </a>
    </div>
    <p><a href="/author/marek/">Marek Vavruša</a> and <a href="/author/anbang/">Anbang Wen</a> were instrumental in getting the 1.1.1.1 resolver to support ODoH. Chris Wood and <a href="/author/peter-wu/">Peter Wu</a> helped get the ODoH libraries ready and tested. The <a href="https://tools.ietf.org/html/draft-pauly-dprive-oblivious-doh-03">IETF draft for ODoH</a> is authored by Eric Kinnear, Patrick McManus, Tommy Pauly and Christopher Wood. ODoH itself took inspiration from "<a href="https://odns.cs.princeton.edu/pdf/pets.pdf">Oblivious DNS: Practical Privacy for DNS Queries</a>", the work of Schmitt et al. published in PoPETs 2019.</p> ]]></content:encoded>
            <category><![CDATA[Privacy Week]]></category>
            <category><![CDATA[Research]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[DoH]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">78tVb2BsQn3qchSgCeuhv5</guid>
            <dc:creator>Tanya Verma</dc:creator>
            <dc:creator>Sudheesh Singanamalla</dc:creator>
        </item>
        <item>
            <title><![CDATA[Deploying Gateway using a Raspberry Pi, DNS over HTTPS and Pi-hole]]></title>
            <link>https://blog.cloudflare.com/deploying-gateway-using-a-raspberry-pi-dns-over-https-and-pi-hole/</link>
            <pubDate>Tue, 21 Apr 2020 11:00:00 GMT</pubDate>
            <description><![CDATA[ Like many, I work remotely and want to show how to deploy Cloudflare Gateway from home. Its DNS filtering protects networks from malware, phishing, ransomware, and other security threats effectively. ]]></description>
            <content:encoded><![CDATA[ <p>Like many who are able, I am working remotely and in this post, I describe some of the ways to deploy <a href="/protect-your-team-with-cloudflare-gateway/">Cloudflare Gateway</a> directly from your home. Gateway’s DNS filtering protects networks from malware, phishing, ransomware, and other security threats. It’s not only for corporate environments - it can be deployed on your browser or laptop to protect your computer or your home WiFi. Below you will learn how to deploy Gateway, including, but not limited to, DNS over HTTPS (DoH) using a <a href="https://www.raspberrypi.org/">Raspberry Pi</a>, <a href="https://pi-hole.net/">Pi-hole</a> and <a href="https://dnscrypt.info/">DNSCrypt</a>.</p><p>We recently launched Cloudflare Gateway and shortly thereafter, offered it for free until at least September to any company in need. Cloudflare's leadership asked the global Solutions Engineering (SE) team, amongst others, to assist with the incoming onboarding calls. As an SE at Cloudflare, our role is to learn new products, such as Gateway, to educate, and to ensure the success of our prospects and customers. We talk to our customers daily, understand the challenges they face and consult on best practices. We were ready to help!</p><p>One way we stay on top of all the services that Cloudflare provides, is by using them ourselves. In this blog, I'll talk about my experience setting up Cloudflare Gateway.</p><p>Gateway sits between your users, device or network and the public Internet. Once you set up Cloudflare Gateway, the service will inspect and manage all Internet-bound DNS queries. In simple terms, you point your recursive DNS to Cloudflare, and we enforce policies you create, such as activating SafeSearch, an automated filter for adult and offensive content that's built into popular search engines like Google, Bing, DuckDuckGo, Yandex and others.</p><p>There are various methods and locations DNS filtering can be enabled, whether it’s on your entire laptop, each of your individual browsers and devices or your entire home network. With DNS filtering front of mind, including DoH, I explored each model. The model you choose ultimately depends on your objective.</p><p>But first, let’s review what DNS and DNS over HTTPS are.</p><p>DNS is the protocol used to resolve hostnames (like <a href="http://www.cloudflare.com">www.cloudflare.com</a>) into IP addresses, so computers can talk to each other. DNS is an unencrypted clear text protocol, meaning that any eavesdropper or machine between the client and DNS server can see the contents of the DNS request. DNS over HTTPS adds security to DNS and encrypt DNS queries using HTTPS (the protocol we use to encrypt the web).</p>
    <div>
      <h3>Let’s get started</h3>
      <a href="#lets-get-started">
        
      </a>
    </div>
    <p>Navigate to <a href="https://dash.teams.cloudflare.com">https://dash.teams.cloudflare.com</a>. If you don’t already have an account, the sign-up process only takes a few minutes.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1n8xAHDWRIAbKWwth0cHvY/19769138e2c833a919718cfcbe63d0f6/1-1.png" />
            
            </figure><p>Configuring a Gateway <b>location</b>, shown below, is the first step.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/ady49utoOigMAgS7QzxbI/507e62b3215444ab8f679ad360325d3d/2-1.png" />
            
            </figure><p>Conceptually similar to HTTPS traffic, when our edge receives an HTTPS request, we match the incoming SNI header to the correct domain’s configuration (or for plain text HTTP the Host header). And when our edge receives a DNS query, we need a similar mapping to identify the correct configuration. We attempt to match configurations, in this order:</p><ol><li><p>DNS over HTTPS check and lookup based on unique hostname</p></li><li><p>IPv4 check and lookup based on source IPv4 address</p></li><li><p>Lookup based on IPv6 destination address</p></li></ol><p>Let’s discuss each option.</p>
    <div>
      <h3>DNS over HTTPS</h3>
      <a href="#dns-over-https">
        
      </a>
    </div>
    <p>The first attempt to match DNS requests to a location is pointing your traffic to a unique DNS over HTTPS hostname. After you configure your first location, you are given a unique destination IPv6 address and a unique DoH endpoint as shown below. Take note of the hostname as you will need it shortly. I’ll first discuss deploying Gateway in a browser and then to your entire network.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1HFWdvOuOfVvg1bTwyLjN1/870ccbd2dab4f4f3f4c9af9fabbe08ff/3.png" />
            
            </figure><p>DNS over HTTPS is my favorite method for deploying Gateway and securing DNS queries at the same time. Enabling DoH prevents anyone but the DNS server of your choosing from seeing your <a href="https://www.cloudflare.com/learning/dns/what-is-dns/">DNS queries</a>.</p>
    <div>
      <h3>Enabling DNS over HTTPS in browsers</h3>
      <a href="#enabling-dns-over-https-in-browsers">
        
      </a>
    </div>
    <p>By enabling it in a browser, only queries issued in that browser are affected. It’s available in most browsers and there are quite a few tutorials online to show you how to turn it on.</p><table><tr><td><p><b>Browser</b></p></td><td><p><b>Supports
DoH</b></p></td><td><p><b>Supports Custom
Alternative Providers</b></p></td><td><p><b>Supports
Custom Servers</b></p></td></tr><tr><td><p><b>Chrome</b></p></td><td><p>Yes</p></td><td><p>Yes</p></td><td><p>No</p></td></tr><tr><td><p><b>Safari</b></p></td><td><p>No</p></td><td><p>No</p></td><td><p>No</p></td></tr><tr><td><p><b>Edge</b></p></td><td><p>Yes**</p></td><td><p>Yes**</p></td><td><p>No**</p></td></tr><tr><td><p><b>Firefox</b></p></td><td><p>Yes</p></td><td><p>Yes</p></td><td><p>Yes</p></td></tr><tr><td><p><b>Opera</b></p></td><td><p>Yes*</p></td><td><p>Yes*</p></td><td><p>No*</p></td></tr><tr><td><p><b>Brave</b></p></td><td><p>Yes*</p></td><td><p>Yes*</p></td><td><p>No*</p></td></tr><tr><td><p><b>Vivaldi</b></p></td><td><p>Yes*</p></td><td><p>Yes*</p></td><td><p>No*</p></td></tr></table><p>* Chromium based browser. Same support as Chrome.</p><p>** Most recent version of <a href="https://support.microsoft.com/en-us/help/4501095/download-the-new-microsoft-edge-based-on-chromium">Edge is built on Chromium</a>.</p>
    <div>
      <h3>Chromium based browsers</h3>
      <a href="#chromium-based-browsers">
        
      </a>
    </div>
    <p>Using Chrome as an example on behalf of all the Chromium-based browsers, enabling DNS over HTTPS is straightforward, but as you can see in the table above, there is one issue: Chrome does not currently support custom servers. So while it is great that a user can protect their DNS queries, they cannot choose the provider, including Gateway.</p><p>Here is how to enable DoH in Chromium based browsers:</p><p>Navigate to <code>chrome://flags</code> and toggle the beta flag to enable.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7q6IpMHlqqtv5xDY1VxNsp/2fcea3020dfae12c74f0b4ecae52c464/4.png" />
            
            </figure>
    <div>
      <h3>Firefox</h3>
      <a href="#firefox">
        
      </a>
    </div>
    <p>Firefox is the exception to the rule because they support both DNS over HTTPS and the ability to define a custom server. Mozilla provides detailed instructions about how to <a href="https://support.mozilla.org/en-US/kb/firefox-dns-over-https#w_manually-enabling-and-disabling-dns-over-https">get started</a>.</p><p>Once enabled, navigate to Preferences → General → Network Security and select ‘Settings’. Scroll to the section ‘Enable DNS over HTTPS’, select ‘Custom’ and input your Gateway DoH address, as shown below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2R4NdeknrFbnlvJs3vdB5B/79a0f48c9be1db182c1595ae19d180b4/5.png" />
            
            </figure><p>Optionally, you can enable Encrypted SNI (ESNI), which is an <a href="https://datatracker.ietf.org/doc/draft-ietf-tls-esni/">IETF draft</a> for encrypting the SNI headers, by toggling the ‘network.security.esni.enabled’ preference in about:config to ‘true’. <a href="/encrypt-that-sni-firefox-edition/">Read more</a> about how Cloudflare is one of the few providers that supports ESNI by default.</p><p>Congratulations, you’ve configured Gateway using DNS over HTTPS! Keep in mind that only queries issued from the configured browser will be secured. Any other device connected to your network such as your mobile devices, gaming platforms, or smart TVs will still use your network's default DNS server, likely assigned by your ISP.</p>
    <div>
      <h3>Configuring Gateway for your entire home or business network</h3>
      <a href="#configuring-gateway-for-your-entire-home-or-business-network">
        
      </a>
    </div>
    <p>Deploying Gateway at the router level allows you to secure every device on your network without needing to configure each one individually.</p><p>Requirements include:</p><ul><li><p>Access to your router's administrative portal</p></li><li><p>A router that supports DHCP forwarding</p></li><li><p>Raspberry Pi with WiFi or Ethernet connectivity</p></li></ul><p>There aren't any consumer routers on the market that natively support DoH custom servers and likely few that natively support DoH at all. A newer router I purchased, the Netgear R7800, does not support either, but it is one of the most popular routers for flashing <a href="https://dd-wrt.com/">dd-wrt</a> or <a href="https://openwrt.org/">open-wrt</a>, which both support DoH. Unfortunately, neither of these popular firm wares support custom servers.</p><p>While it’s rare to find a router that supports DoH out of the box, DoH with custom servers, or has potential to be flashed, it’s common for a router to support DHCP forwarding (dd-wrt and open-wrt both support DHCP forwarding). So, I installed Pi-hole on my Raspberry Pi and used it as my home network’s DNS and DHCP server.</p>
    <div>
      <h3>Getting started with Pi-hole and dnscrypt-proxy</h3>
      <a href="#getting-started-with-pi-hole-and-dnscrypt-proxy">
        
      </a>
    </div>
    <p>If your Raspberry Pi is new and hasn’t been configured yet, follow their <a href="https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up">guide</a> to get started. (Note: by default, <a href="https://www.raspberrypi.org/documentation/remote-access/ssh/">ssh is disabled</a>, so you will need a keyboard and/or mouse to access your box in your terminal.)</p><p>Once your Raspberry Pi has been initialized, assign it a static IP address in the same network as your router. I hard-coded my router's LAN address to <code>192.168.1.2</code></p><p>Using vim:<code>sudo vi /etc/dhcpcd.conf</code></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5gkULaWLndtqTW0qatevRZ/696bacc42a51328383a4481189a17de2/6.png" />
            
            </figure><p>Restart the service.<code>sudo /etc/init.d/dhcpcd restart</code></p><p>Check that your static IP is configured correctly.<code>ip addr show dev eth0</code></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/48cJf7LUT4XhEY4Wu3u6SQ/4871d38848d1e25cfdee12f42d192a35/7.png" />
            
            </figure><p>Now that your Raspberry Pi is configured, we need to install Pi-hole: <a href="https://github.com/pi-hole/pi-hole/#one-step-automated-install">https://github.com/pi-hole/pi-hole/#one-step-automated-install</a></p><p>I chose to use <a href="https://github.com/DNSCrypt/dnscrypt-proxy">dnscrypt-proxy</a> as the local service that Pi-hole will use to forward all DNS queries. You can find the latest version <a href="https://github.com/DNSCrypt/dnscrypt-proxy/releases">here</a>.</p><p>To install dnscrypt-proxy on your pi-hole, follow these steps:</p><p><code>wget https://github.com/DNSCrypt/dnscrypt-proxy/releases/download/2.0.39/dnscrypt-proxy-linux_arm-2.0.39.tar.gztar -xf dnscrypt-proxy-linux_arm-2.0.39.tar.gzmv linux-arm dnscrypt-proxycd dnscrypt-proxycp example-dnscrypt-proxy.toml dnscrypt-proxy.toml</code></p><p>Next step is to build a DoH stamp. A <a href="https://dnscrypt.info/stamps/">stamp</a> is simply an encoded DNS address that encodes your DoH server and other options.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/M5UXEL8vex2j6FG7PYrQm/2547e3e8bb7b36bf2fc44c4de3cc2bec/8.png" />
            
            </figure><p>As a reminder, you can find Gateway’s unique DoH address in your location configuration.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/B0BE0VpCyNvLGO9Vr08vL/98dba04b81e54534703e754f9b36af5c/9.png" />
            
            </figure><p>At the very bottom of your <code>dnscrypt-proxy.toml</code> configuration file, uncomment both lines beneath <code>[static]</code>.</p><ul><li><p>Change  <code>[static.'myserver']</code> to <code>[static.'gateway']</code></p></li><li><p>Replace the default stamp with the one generated above</p></li></ul><p>The static section should look similar to this:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/PLyDvqCgFY4d0kO0vB2KZ/360809e390de37d4bc7734da088f68fe/10.png" />
            
            </figure><p>Also in <code>dnscrypt-proxy.toml</code> configuration file, update the following settings:<code>server_names = ['gateway']listen_addresses = ['127.0.0.1:5054']fallback_resolvers = ['1.1.1.1:53', '1.0.0.1:53']cache = false</code></p><p>Now we need to install dnscrypt-proxy as a service and configure Pi-hole to point to the <code>listen_addresses</code> defined above.</p><p>Install dnscrypt-proxy as a service:<code>sudo ./dnscrypt-proxy -service install</code></p><p>Start the service:<code>sudo ./dnscrypt-proxy -service start</code></p><p>You can validate the status of the service by running:<code>sudo service dnscrypt-proxy status</code> or <code>netstat -an | grep 5054</code>:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7AmQUt2G4mtp3B9JvOezQJ/f72b23800fffdb532369b72197870588/11.png" />
            
            </figure>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4l2yNQ6SHjDH0bv6axEjVB/b745f014586f5d50c458d2938e91f722/12.png" />
            
            </figure><p>Also, confirm the upstream is working by querying localhost on port 5054:<code>dig www.cloudflare.com  -p 5054 @127.0.0.1</code></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6nDFFo5ZUf0qdUxW0qhm9H/584464fa46df364153ccebfe72308101/13.png" />
            
            </figure><p>You will see a matching request in the Gateway query log (note the timestamps match):</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4EfgD0BegLWgPRQNo1xQ0E/4fb6700631b3c5459d21d5eea30570db/14.png" />
            
            </figure>
    <div>
      <h4>Configuring DNS and DHCP in the Pi-hole administrative console</h4>
      <a href="#configuring-dns-and-dhcp-in-the-pi-hole-administrative-console">
        
      </a>
    </div>
    <p>Open your browser and navigate to the Pi-hole’s administrative console. In my case, it’s <a href="http://192.168.1.6/admin">http://192.168.1.6/admin</a></p><p>Go to Settings → DNS to modify the upstream DNS provider, which we’ve just configured to be dnscrypt-proxy.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2DTp5rOs6bx8dAWWEXZ8mz/2c988c52b1fc8788d5a3bfb9aaf39b91/Screen-Shot-2020-04-21-at-9.41.30-AM.png" />
            
            </figure><p>Change the upstream server to <code>127.0.0.1#5054</code> and hit save. According to Pi-hole's <a href="https://docs.pi-hole.net/ftldns/dns-resolver/">forward destination determination</a> algorithm, the fastest upstream DNS server is chosen. Therefore, if you want to deploy redundancy, it has to be done in the DNSCrypt configuration.</p><p>Almost done!</p><p>In Settings→DHCP, enable the DHCP server:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/41Av4X5OMI6Y9NSbdcnwEs/3541123fb9ed7c6505cc5356437bdbb3/16.png" />
            
            </figure><p>Hit save.</p><p>At this point, your Pi-hole server is running in isolation, and we need to deploy it to your network. The simplest way to ensure your Pi-hole is being used exclusively by every device is to use your Pi-hole as both a DNS server and a DHCP server. I’ve found that routers behave oddly if you outsource DNS but not DHCP, so I outsource both.</p><p>After I enabled the DHCP server on the Pi-hole, I set the router’s configuration to DHCP forwarding and defined the Pi-hole static address:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2d3YZJ6ZNT4WxfyW0PgOI6/7daed00420fbfe92f043fe4e7e9d6a67/17.png" />
            
            </figure><p>After applying the routers' configuration, I confirmed it was working properly by forgetting the network in my network settings and re-joining. This results in a new IPv4 address (from our new DHCP server) and if all goes well, a new DNS server (the IP of Pi-hole).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/68h97XSNWbUYIJfngnm87K/1058280247a7142e69c8de457ff17b91/18.png" />
            
            </figure>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6FjiFFcjMBd7NKT8B7Aaj2/d94c58484be9ff3d95aa12c4622c0eca/19.png" />
            
            </figure><p>Done!</p><p>Now that our entire network is using Gateway, we can configure <a href="https://developers.cloudflare.com/gateway/policies/">Gateway Policies</a> to secure our DNS queries!</p>
    <div>
      <h4>IPv4 check and lookup based on source IPv4 address</h4>
      <a href="#ipv4-check-and-lookup-based-on-source-ipv4-address">
        
      </a>
    </div>
    <p>For this method to work properly, Gateway requires that your network has a static IPv4 address. If your IP address does not change, then this is the quickest solution (but still does not prevent third-parties from seeing what domains you are going to). However, if you are configuring Gateway in your home, like I am, and you don’t explicitly pay for this service, then most likely you have a dynamic IP address. These addresses will always change when your router restarts, intentionally or not.</p>
    <div>
      <h4><b>Lookup based on IPv6 destination address</b></h4>
      <a href="#lookup-based-on-ipv6-destination-address">
        
      </a>
    </div>
    <p>Another option for matching requests in Gateway is to configure your DNS server to point to a unique IPv6 address provided to you by Cloudflare. Any DNS query pointed to this address will be matched properly on our edge.</p><p>This might be a good option if you want to use Cloudflare Gateway on your entire laptop by setting your local DNS resolution to this address. However, if your home router or ISP does not support IPv6, DNS resolution won’t work.</p>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>In this blog post, we've discussed the various ways Gateway can be deployed and how encrypted DNS is one of the next big Internet privacy improvements. Deploying Gateway can be done on a per-device basis, on your router or even with a Raspberry Pi.</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Gateway]]></category>
            <category><![CDATA[Cloudflare Access]]></category>
            <category><![CDATA[DoH]]></category>
            <category><![CDATA[Raspberry Pi]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">6LWKuOHb9cirTiAlNJSbaI</guid>
            <dc:creator>Jason Farber</dc:creator>
        </item>
        <item>
            <title><![CDATA[Announcing the Results of the 1.1.1.1 Public DNS Resolver Privacy Examination]]></title>
            <link>https://blog.cloudflare.com/announcing-the-results-of-the-1-1-1-1-public-dns-resolver-privacy-examination/</link>
            <pubDate>Tue, 31 Mar 2020 13:01:00 GMT</pubDate>
            <description><![CDATA[ We took a big step toward improving Internet privacy and security with the launch of the 1.1.1.1 public DNS resolver. And we really meant privacy first. We were not satisfied with the status quo and believed that secure DNS resolution with transparent privacy practices should be the new normal.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>On April 1, 2018, we took a big step toward improving Internet privacy and security with the <a href="/announcing-1111/">launch of the 1.1.1.1 public DNS resolver</a> — the Internet's <a href="https://www.dnsperf.com/#!dns-resolvers">fastest</a>, privacy-first public DNS resolver. And we really meant privacy first. We were not satisfied with the status quo and believed that secure DNS resolution with transparent privacy practices should be the new normal. So we committed to our public resolver users that we would not retain any personal data about requests made using our 1.1.1.1 resolver. We also built in technical measures to facilitate DNS over HTTPS to help keep your <a href="https://www.cloudflare.com/learning/dns/what-is-dns/">DNS queries</a> secure. We’ve never wanted to know what individuals do on the Internet, and we took technical steps to ensure we can’t know.</p><p>We knew there would be skeptics. Many consumers believe that if they aren’t paying for a product, then they are the product. We don’t believe that has to be the case. So we committed to retaining a Big 4 accounting firm to perform an examination of our 1.1.1.1 resolver privacy commitments.</p><p>Today we’re excited to announce that the 1.1.1.1 resolver examination has been completed and a copy of the independent accountants’ report can be obtained from our <a href="https://www.cloudflare.com/compliance/">compliance page</a>.</p>
    <div>
      <h3>The examination process</h3>
      <a href="#the-examination-process">
        
      </a>
    </div>
    <p>We gained a number of observations and lessons from the privacy examination of the 1.1.1.1 resolver. First, we learned that it takes much longer to agree on terms and complete an examination when you ask an accounting firm to do what we believe is the first of its kind examination of custom privacy commitments for a recursive resolver.</p><p>We also observed that privacy by design works. Not that we were surprised -- we use privacy by design principles in all our products and services. Because we baked anonymization best practices into the 1.1.1.1 resolver when we built it, we were able to demonstrate that we didn’t have any personal data to sell. More specifically, in accordance with <a href="https://tools.ietf.org/html/rfc6235">RFC 6235</a>, we decided to truncate the client/source IP at our edge data centers so that we never store in non-volatile storage the full IP address of the 1.1.1.1 resolver user.</p><p>We knew that a truncated IP address would be enough to help us understand general Internet trends and where traffic is coming from. In addition, we also further improved our privacy-first approach by replacing the truncated IP address with the network number (the ASN) for our internal logs. On top of that, we committed to only retaining those anonymized logs for a limited period of time. It’s the privacy version of belt plus suspenders plus another belt.</p><p>Finally, we learned that aligning our examination of the 1.1.1.1 resolver with our SOC 2 report most efficiently demonstrated that we had the appropriate change control procedures and audit logs in place to confirm that our IP truncation logic and limited data retention periods were in effect during the examination period. The 1.1.1.1 resolver examination period of February 1, 2019, through October 31, 2019, was the earliest we could go back to while relying on our SOC 2 report.</p>
    <div>
      <h3>Details on the examination</h3>
      <a href="#details-on-the-examination">
        
      </a>
    </div>
    <p>When we launched the 1.1.1.1 resolver, we committed that we would not track what individual users of our 1.1.1.1 resolver are searching for online. The examination validated that our system is configured to achieve what we think is the most important part of this commitment -- we never write the querying IP addresses together with the DNS query to disk and therefore have no idea who is making a specific request using the 1.1.1.1 resolver. This means we don’t track which sites any individual visits, and we won't sell your personal data, ever.</p><p>We want to be fully transparent that during the examination we uncovered that our routers randomly capture up to 0.05% of all requests that pass through them, including the querying IP address of resolver users. We do this separately from the 1.1.1.1 service for all traffic passing into our network and we retain such data for a limited period of time for use in connection with network troubleshooting and mitigating denial of service attacks.</p><p>To explain -- if a specific IP address is flowing through one of our data centers a large number of times, then it is often associated with malicious requests or a botnet. We need to keep that information to mitigate attacks against our network and to prevent our network from being used as an attack vector itself. This limited subsample of data is not linked up with DNS queries handled by the 1.1.1.1 service and does not have any impact on user privacy.</p><p>We also want to acknowledge that when we made our privacy promises about how we would handle non-personally identifiable log data for 1.1.1.1 resolver requests, we made what we now see were some confusing statements about how we would handle those anonymous logs.</p><p>For example, we learned that our blog post commitment about retention of anonymous log data was not written clearly enough and our previous statements were not as clear because we referred to temporary logs, transactional logs, and permanent logs in ways that could have been better defined. For example, our 1.1.1.1 resolver privacy FAQs stated that we would not retain transactional logs for more than 24 hours but that some anonymous logs would be retained indefinitely. However, our blog post announcing the public resolver didn’t capture that distinction. You can see a clearer statement about our handling of anonymous logs on our privacy commitments page mentioned below.</p><p>With this in mind, we updated and clarified our <a href="https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver/">privacy commitments</a> for the 1.1.1.1 resolver as outlined below. The most critical part of these commitments remains unchanged: We don’t want to know what you do on the Internet — it’s none of our business — and we’ve taken the technical steps to ensure we can’t.</p>
    <div>
      <h3>Our 1.1.1.1 public DNS resolver commitments</h3>
      <a href="#our-1-1-1-1-public-dns-resolver-commitments">
        
      </a>
    </div>
    <p>We have refined our commitments to 1.1.1.1 resolver privacy as part of our examination effort. The nature and intent of our commitments remain consistent with our original commitments. These updated commitments are what was included in the examination:</p><ol><li><p>Cloudflare will not sell or share public resolver users’ personal data with third parties or use personal data from the public resolver to target any user with advertisements.</p></li><li><p>Cloudflare will only retain or use what is being asked, not information that will identify who is asking it. Except for randomly sampled network packets captured from at most 0.05% of all traffic sent to Cloudflare’s network infrastructure, Cloudflare will not retain the source IP from DNS queries to the public resolver in non-volatile storage (more on that below). The randomly sampled packets are solely used for network troubleshooting and DoS mitigation purposes.</p></li><li><p>A public resolver user’s IP address (referred to as the client or source IP address) will not be stored in non-volatile storage. Cloudflare will anonymize source IP addresses via IP truncation methods (last octet for IPv4 and last 80 bits for IPv6). Cloudflare will delete the truncated IP address within 25 hours.</p></li><li><p>Cloudflare will retain only the limited transaction and debug log data (“Public Resolver Logs”) for the legitimate operation of our Public Resolver and research purposes, and Cloudflare will delete the Public Resolver Logs within 25 hours.</p></li><li><p>Cloudflare will not share the Public Resolver Logs with any third parties except for APNIC pursuant to a Research Cooperative Agreement. APNIC will only have limited access to query the anonymized data in the Public Resolver Logs and conduct research related to the operation of the DNS system.</p></li></ol>
    <div>
      <h3>Proving privacy commitments</h3>
      <a href="#proving-privacy-commitments">
        
      </a>
    </div>
    <p>We created the 1.1.1.1 resolver because we recognized significant privacy problems: ISPs, WiFi networks you connect to, your mobile network provider, and anyone else listening in on the Internet can see every site you visit and every app you use — even if the content is encrypted. Some DNS providers even sell data about your Internet activity or use it to target you with ads. DNS can also be used as a tool of censorship against many of the groups we protect through our <a href="https://www.cloudflare.com/galileo/">Project Galileo</a>.</p><p>If you use DNS-over-HTTPS or DNS-over-TLS to our 1.1.1.1 resolver, your DNS lookup request will be sent over a secure channel. This means that if you use the 1.1.1.1 resolver then in addition to our privacy guarantees an eavesdropper can’t see your DNS requests. We promise we won’t be looking at what you’re doing.</p><p>We strongly believe that consumers should expect their service providers to be able to show proof that they are actually abiding by their privacy commitments. If we were able to have our 1.1.1.1 resolver privacy commitments examined by an independent accounting firm, we think other organizations can do the same. We encourage other providers to follow suit and help improve privacy and transparency for Internet users globally. And for our part, we will continue to engage well-respected auditing firms to audit our 1.1.1.1 resolver privacy commitments. We also appreciate the work that <a href="https://blog.mozilla.org/netpolicy/2019/12/09/trusted-recursive-resolvers-protecting-your-privacy-with-policy-technology/">Mozilla</a> has undertaken to encourage entities that operate recursive resolvers to adopt data handling practices that protect the privacy of user data.</p><p>Details of the 1.1.1.1 resolver privacy examination and our accountant’s opinion can be found on <a href="https://www.cloudflare.com/compliance/">Cloudflare’s Compliance page</a>.</p><p>Visit <a href="https://developers.cloudflare.com/1.1.1.1/">https://developers.cloudflare.com/1.1.1.1/</a> from any device to get started with the Internet's fastest, privacy-first DNS service.</p><p>PS Cloudflare has traditionally used tomorrow, April 1, to release new products. Two years ago we launched the <a href="/announcing-1111/">1.1.1.1 free, fast, privacy-focused public DNS resolver</a>. One year ago we launched <a href="/1111-warp-better-vpn/">WARP</a> our way of securing and accelerating mobile Internet access.</p><p>And tomorrow?</p><p><i>Then three key changes</i><i>One before the weft, also</i><i>Safety to the roost</i></p> ]]></content:encoded>
            <category><![CDATA[1.1.1.1]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[Resolver]]></category>
            <category><![CDATA[Privacy]]></category>
            <category><![CDATA[DoH]]></category>
            <category><![CDATA[Policy & Legal]]></category>
            <guid isPermaLink="false">1BYDWDCT1PtaeQD75NqKRZ</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[DNS Encryption Explained]]></title>
            <link>https://blog.cloudflare.com/dns-encryption-explained/</link>
            <pubDate>Tue, 29 Oct 2019 13:00:00 GMT</pubDate>
            <description><![CDATA[ The Domain Name System (DNS) is the address book of the Internet. When you visit cloudflare.com or any other site, your browser will ask a DNS resolver for the IP address where the website can be found. Unfortunately, these DNS queries and answers are typically unprotected. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>The <a href="https://www.cloudflare.com/learning/dns/what-is-dns/">Domain Name System (DNS)</a> is the address book of the Internet. When you visit cloudflare.com or any other site, your browser will ask a DNS resolver for the IP address where the website can be found. Unfortunately, these DNS queries and answers are typically unprotected. Encrypting DNS would improve user privacy and security. In this post, we will look at two mechanisms for encrypting DNS, known as <a href="https://www.cloudflare.com/learning/dns/dns-over-tls/">DNS over TLS (DoT) and DNS over HTTPS (DoH)</a>, and explain how they work.</p><p>Applications that want to resolve a <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name/">domain name</a> to an IP address typically use DNS. This is usually not done explicitly by the programmer who wrote the application. Instead, the programmer writes something such as <code>fetch("https://example.com/news")</code> and expects a software library to handle the translation of “example.com” to an IP address.</p><p>Behind the scenes, the software library is responsible for discovering and connecting to the external <a href="https://www.cloudflare.com/learning/dns/what-is-recursive-dns/">recursive DNS resolver</a> and speaking the DNS protocol (see the figure below) in order to resolve the name requested by the application. The choice of the external DNS resolver and whether any privacy and security is provided at all is outside the control of the application. It depends on the software library in use, and the policies provided by the operating system of the device that runs the software.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2YN2i6IydAzTY2KPg0mdVA/09f322be351b4a423b5f1edf3b7a7839/DNS-flow-diagram.png" />
            
            </figure><p>Overview of DNS query and response</p>
    <div>
      <h2>The external DNS resolver</h2>
      <a href="#the-external-dns-resolver">
        
      </a>
    </div>
    <p>The operating system usually learns the resolver address from the local network using <a href="https://www.cloudflare.com/learning/dns/glossary/dynamic-dns/">Dynamic Host Configuration Protocol (DHCP)</a>. In home and mobile networks, it typically ends up using the resolver from the Internet Service Provider (ISP). In corporate networks, the selected resolver is typically controlled by the network administrator. If desired, users with control over their devices can override the resolver with a specific address, such as the address of a public resolver like Google’s 8.8.8.8 or <a href="/dns-resolver-1-1-1-1/">Cloudflare’s 1.1.1.1</a>, but most users will likely not bother changing it when connecting to a public Wi-Fi hotspot at a coffee shop or airport.</p><p>The choice of external resolver has a direct impact on the end-user experience. Most users do not change their resolver settings and will likely end up using the DNS resolver from their network provider. The most obvious observable property is the speed and accuracy of name resolution. Features that improve privacy or security might not be immediately visible, but will help to prevent others from profiling or interfering with your browsing activity. This is especially important on public Wi-Fi networks where anyone in physical proximity can capture and decrypt wireless network traffic.</p>
    <div>
      <h2>Unencrypted DNS</h2>
      <a href="#unencrypted-dns">
        
      </a>
    </div>
    <p>Ever since DNS was created in 1987, it has been largely unencrypted. Everyone between your device and the resolver is able to snoop on or even modify your DNS queries and responses. This includes anyone in your local Wi-Fi network, your Internet Service Provider (ISP), and transit providers. This may affect your privacy by revealing the domain names that are you are visiting.</p><p>What can they see? Well, consider this network packet capture taken from a laptop connected to a home network:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1d6w6OMSPn4jcLKyam6ArW/6c30de3175501fa4094e8da3c4965f03/dns-at-home-marked.png" />
            
            </figure><p>The following observations can be made:</p><ul><li><p>The UDP source port is 53 which is the standard port number for unencrypted DNS. The UDP payload is therefore likely to be a DNS answer.</p></li><li><p>That suggests that the source IP address 192.168.2.254 is a DNS resolver while the destination IP 192.168.2.14 is the DNS client.</p></li><li><p>The UDP payload could indeed be parsed as a DNS answer, and reveals that the user was trying to visit twitter.com.</p></li><li><p>If there are any future connections to 104.244.42.129 or 104.244.42.1, then it is most likely traffic that is directed at “twitter.com”.</p></li><li><p>If there is some further encrypted HTTPS traffic to this IP, succeeded by more DNS queries, it could indicate that a web browser loaded additional resources from that page. That could potentially reveal the pages that a user was looking at while visiting twitter.com.</p></li></ul><p>Since the DNS messages are unprotected, other attacks are possible:</p><ul><li><p>Queries could be directed to a resolver that performs <a href="https://www.cloudflare.com/learning/security/global-dns-hijacking-threat/">DNS hijacking</a>. For example, in the UK, Virgin Media and <a href="https://bt.custhelp.com/app/answers/detail/a_id/14244/c/402">BT</a> return a fake response for domains that do not exist, redirecting users to a search page. This redirection is possible because the computer/phone blindly trusts the DNS resolver that was advertised using DHCP by the ISP-provided gateway router.</p></li><li><p>Firewalls can easily intercept, block or modify any unencrypted DNS traffic based on the port number alone. It is worth noting that plaintext inspection is not a silver bullet for achieving visibility goals, because the DNS resolver can be bypassed.</p></li></ul>
    <div>
      <h2>Encrypting DNS</h2>
      <a href="#encrypting-dns">
        
      </a>
    </div>
    <p>Encrypting DNS makes it much harder for snoopers to look into your DNS messages, or to corrupt them in transit. Just as the web moved from unencrypted HTTP to encrypted HTTPS, there are now upgrades to the DNS protocol that encrypt DNS itself. Encrypting the web has made it possible for private and secure communications and commerce to flourish. Encrypting DNS will further enhance user privacy.</p><p>Two standardized mechanisms exist to secure the DNS transport between you and the resolver, <a href="https://tools.ietf.org/html/rfc7858">DNS over TLS (2016)</a> and <a href="https://tools.ietf.org/html/rfc8484">DNS Queries over HTTPS (2018)</a>. Both are based on <a href="https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/">Transport Layer Security (TLS)</a> which is also used to secure communication between you and a website using HTTPS. In TLS, the server (be it a web server or DNS resolver) authenticates itself to the client (your device) using a certificate. This ensures that no other party can impersonate the server (the resolver).</p><p>With DNS over TLS (DoT), the original DNS message is directly embedded into the secure TLS channel. From the outside, one can neither learn the name that was being queried nor modify it. The intended client application will be able to decrypt TLS, it looks like this:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/YaRbOJm8SaN6SZvy40b7t/6da8977ecb1e13b2695893583c5291aa/dns-over-tls13-marked.png" />
            
            </figure><p>In the packet trace for unencrypted DNS, it was clear that a DNS request can be sent directly by the client, followed by a DNS answer from the resolver. In the encrypted DoT case however, some <a href="https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/">TLS handshake</a> messages are exchanged prior to sending encrypted DNS messages:</p><ul><li><p>The client sends a Client Hello, advertising its supported TLS capabilities.</p></li><li><p>The server responds with a Server Hello, agreeing on TLS parameters that will be used to secure the connection. The Certificate message contains the identity of the server while the Certificate Verify message will contain a digital signature which can be verified by the client using the server Certificate. The client typically checks this certificate against its local list of trusted Certificate Authorities, but the DoT specification mentions <a href="https://tools.ietf.org/html/rfc7858#section-3.2">alternative trust mechanisms</a> such as public key pinning.</p></li><li><p>Once the TLS handshake is Finished by both the client and server, they can finally start exchanging encrypted messages.</p></li><li><p>While the above picture contains one DNS query and answer, in practice the secure TLS connection will remain open and will be reused for future DNS queries.</p></li></ul><p>Securing unencrypted protocols by slapping TLS on top of a new port has been done before:</p><ul><li><p>Web traffic: HTTP (tcp/80) -&gt; HTTPS (tcp/443)</p></li><li><p>Sending email: SMTP (tcp/25) -&gt; SMTPS (tcp/465)</p></li><li><p>Receiving email: IMAP (tcp/143) -&gt; IMAPS (tcp/993)</p></li><li><p>Now: DNS (tcp/53 or udp/53) -&gt; DoT (tcp/853)</p></li></ul><p>A problem with introducing a new port is that existing firewalls may block it. Either because they employ a allowlist approach where new services have to be explicitly enabled, or a blocklist approach where a network administrator explicitly blocks a service. If the secure option (DoT) is less likely to be available than its insecure option, then users and applications might be tempted to try to fall back to unencrypted DNS. This subsequently could allow attackers to force users to an insecure version.</p><p>Such fallback attacks are not theoretical. <a href="/performing-preventing-ssl-stripping-a-plain-english-primer/">SSL stripping</a> has previously been used to downgrade HTTPS websites to HTTP, allowing attackers to steal passwords or hijack accounts.</p><p>Another approach, DNS Queries over HTTPS (DoH), was <a href="https://tools.ietf.org/html/rfc8484#section-1">designed</a> to support two primary use cases:</p><ul><li><p>Prevent the above problem where on-path devices interfere with DNS. This includes the port blocking problem above.</p></li><li><p>Enable web applications to access DNS through existing browser APIs.DoH is essentially HTTPS, the same encrypted standard the web uses, and reuses the same port number (tcp/443). Web browsers have already <a href="https://blog.mozilla.org/security/2015/04/30/deprecating-non-secure-http/">deprecated non-secure HTTP</a> in favor of HTTPS. That makes HTTPS a great choice for securely transporting DNS messages. An example of such a DoH request can be found <a href="https://tools.ietf.org/html/rfc8484#section-4.1.1">here</a>.</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5nHSbgeKy6xjxzhkGzotY8/564e677dd0b05247a47927fa40a6d8f1/DoH-flow-diagram.png" />
            
            </figure><p>DoH: DNS query and response transported over a secure HTTPS stream</p><p>Some users have been concerned that the use of HTTPS could weaken privacy due to the potential use of cookies for tracking purposes. The DoH protocol designers <a href="https://tools.ietf.org/html/rfc8484#section-8">considered</a> various privacy aspects and explicitly discouraged use of HTTP cookies to prevent tracking, a recommendation that is widely respected. TLS session resumption improves TLS 1.2 handshake performance, but can potentially be used to correlate TLS connections. Luckily, use of <a href="https://www.cloudflare.com/learning/ssl/why-use-tls-1.3/">TLS 1.3</a> obviates the need for TLS session resumption by reducing the number of round trips by default, effectively addressing its associated privacy concern.</p><p>Using HTTPS means that HTTP protocol improvements can also benefit DoH. For example, the in-development <a href="/http3-the-past-present-and-future/">HTTP/3 protocol</a>, built on top of <a href="/the-road-to-quic/">QUIC</a>, could offer additional performance improvements in the presence of packet loss due to lack of head-of-line blocking. This means that multiple DNS queries could be sent simultaneously over the secure channel without blocking each other when one packet is lost.</p><p>A <a href="https://tools.ietf.org/html/draft-huitema-quic-dnsoquic">draft</a> for DNS over QUIC (DNS/QUIC) also exists and is similar to DoT, but without the head-of-line blocking problem due to the use of QUIC. Both <a href="https://www.cloudflare.com/learning/performance/what-is-http3/">HTTP/3</a> and DNS/QUIC, however, require a UDP port to be accessible. In theory, both could fall back to DoH over HTTP/2 and DoT respectively.</p>
    <div>
      <h2>Deployment of DoT and DoH</h2>
      <a href="#deployment-of-dot-and-doh">
        
      </a>
    </div>
    <p>As both DoT and DoH are relatively new, they are not universally deployed yet. On the server side, major public resolvers including Cloudflare’s 1.1.1.1 and <a href="https://www.cloudflare.com/cloudflare-vs-google-dns/">Google DNS</a> support it. Many ISP resolvers however still lack support for it. A small list of public resolvers supporting DoH can be found at <a href="https://github.com/DNSCrypt/dnscrypt-proxy/wiki/DNS-server-sources">DNS server sources</a>, another list of public resolvers supporting DoT and DoH can be found on <a href="https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Public+Resolvers">DNS Privacy Public Resolvers</a>.</p><p>There are two methods to enable DoT or DoH on end-user devices:</p><ul><li><p>Add support to applications, bypassing the resolver service from the operating system.</p></li><li><p>Add support to the operating system, transparently providing support to applications.</p></li></ul><p>There are generally three configuration modes for DoT or DoH on the client side:</p><ul><li><p>Off: DNS will not be encrypted.</p></li><li><p>Opportunistic mode: try to use a secure transport for DNS, but fallback to unencrypted DNS if the former is unavailable. This mode is vulnerable to downgrade attacks where an attacker can force a device to use unencrypted DNS. It aims to offer privacy when there are no on-path active attackers.</p></li><li><p>Strict mode: try to use DNS over a secure transport. If unavailable, fail hard and show an error to the user.</p></li></ul><p>The current state for system-wide configuration of DNS over a secure transport:</p>
<ul>
<li>Android 9: <a href="https://android-developers.googleblog.com/2018/04/dns-over-tls-support-in-android-p.html">supports</a> DoT through its “Private DNS” feature. Modes:
<ul>
<li>Opportunistic mode (“Automatic”) is used by default. The resolver from network settings (typically DHCP) will be used.</li>
<li>Strict mode can be <a href="http://staging.blog.mrk.cfdata.org/enable-private-dns-with-1-1-1-1-on-android-9-pie/">configured</a> by setting an explicit hostname. No IP address is allowed, the hostname is resolved using the default resolver and is also used for validating the certificate. (<a href="https://github.com/aosp-mirror/platform_frameworks_base/commit/a24d459a5d60c706472f9b620d079cd0a40a7279">Relevant source code</a>)</li>
</ul>
</li>
<li>iOS and Android users can also install the <a href="https://1.1.1.1/">1.1.1.1 app</a> to enable either DoH or DoT support in strict mode. Internally it uses the VPN programming interfaces to enable interception of unencrypted DNS traffic before it is forwarded over a secure channel.</li>
<li>
Linux with systemd-resolved from systemd 239: DoT through the <a href="https://www.freedesktop.org/software/systemd/man/resolved.conf.html#DNSOverTLS=">DNSOverTLS</a> option.
<ul>
<li>Off is the default.</li>
<li>Opportunistic mode can be configured, but no certificate validation is performed.</li>
<li>Strict mode is available since systemd 243. Any certificate signed by a trusted certificate authority is accepted. However, <a href="https://github.com/systemd/systemd/blob/v243/src/resolve/resolved-dnstls-gnutls.c#L62-L63">there is no hostname validation</a> with the GnuTLS backend while the OpenSSL backend <a href="https://github.com/systemd/systemd/blob/v243/src/resolve/resolved-dnstls-openssl.c#L86-L87">expects</a> an IP address.</li>
<li>In any case, no Server Name Indication (SNI) is sent. The certificate name is <a href="https://github.com/systemd/systemd/issues/9397">not validated</a>, making a on-path attacker rather trivial.</li>
</ul>
</li>
<li>
Linux, macOS, and Windows can <a href="https://developers.cloudflare.com/1.1.1.1/dns-over-https/cloudflared-proxy/">use</a> a DoH client in strict mode. The <code>cloudflared proxy-dns</code> command uses the Cloudflare DNS resolver by default, but users can override it through the proxy-dns-upstream option.
</li>
</ul><p>Web browsers support DoH instead of DoT:</p><ul><li><p>Firefox 62 <a href="https://support.mozilla.org/en-US/kb/firefox-dns-over-https">supports</a> DoH and provides several <a href="https://wiki.mozilla.org/Trusted_Recursive_Resolver">Trusted Recursive Resolver (TRR)</a> settings. By default DoH is disabled, but Mozilla is running an <a href="https://blog.mozilla.org/futurereleases/2019/09/06/whats-next-in-making-dns-over-https-the-default/">experiment</a> to enable DoH for some users in the USA. This experiment currently uses Cloudflare's 1.1.1.1 resolver, since we are the only provider that currently satisfies the <a href="https://wiki.mozilla.org/Security/DOH-resolver-policy">strict resolver policy</a> required by Mozilla. Since many DNS resolvers still do not support an encrypted DNS transport, Mozilla's approach will ensure that more users are protected using DoH.</p><ul><li><p>When enabled through the experiment, or through the “Enable DNS over HTTPS” option at Network Settings, Firefox will use opportunistic mode (network.trr.mode=2 at about:config).</p></li><li><p>Strict mode can be enabled with network.trr.mode=3, but requires an explicit resolver IP to be specified (for example, network.trr.bootstrapAddress=1.1.1.1).</p></li><li><p>While Firefox ignores the default resolver from the system, it can be configured with alternative resolvers. Additionally, enterprise deployments who use a resolver that does not support DoH have the <a href="https://support.mozilla.org/en-US/kb/configuring-networks-disable-dns-over-https">option</a> to disable DoH.</p></li></ul></li><li><p>Chrome 78 <a href="https://blog.chromium.org/2019/09/experimenting-with-same-provider-dns.html">enables</a> opportunistic DoH if the system resolver address matches one of the <a href="https://www.chromium.org/developers/dns-over-https">hard-coded DoH providers</a> (<a href="https://chromium.googlesource.com/chromium/src.git/+/f93a48e3720931c25a3abc7848b08afed43e3be2%5E%21/">source code change</a>). This experiment is enabled for all platforms except Linux and iOS, and excludes enterprise deployments by default.</p></li><li><p>Opera 65 <a href="https://blogs.opera.com/desktop/2019/09/opera-65-0-3430-0-developer-update/">adds</a> an option to enable DoH through Cloudflare's 1.1.1.1 resolver. This feature is off by default. Once enabled, it appears to use opportunistic mode: if 1.1.1.1:443 (without SNI) is reachable, it will be used. Otherwise it falls back to the default resolver, unencrypted.</p></li></ul><p>The <a href="https://github.com/curl/curl/wiki/DNS-over-HTTPS">DNS over HTTPS</a> page from the curl project has a comprehensive list of DoH providers and additional implementations.</p><p>As an alternative to encrypting the full network path between the device and the external DNS resolver, one can take a middle ground: use unencrypted DNS between devices and the gateway of the local network, but <a href="/dns-over-tls-built-in/">encrypt all DNS traffic</a> between the gateway router and the external DNS resolver. Assuming a secure wired or wireless network, this would protect all devices in the local network against a snooping ISP, or other adversaries on the Internet. As public Wi-Fi hotspots are not considered secure, this approach would not be safe on open Wi-Fi networks. Even if it is password-protected with WPA2-PSK, others will still be able to snoop and modify unencrypted DNS.</p>
    <div>
      <h2>Other security considerations</h2>
      <a href="#other-security-considerations">
        
      </a>
    </div>
    <p>The previous sections described secure DNS transports, DoH and DoT. These will only ensure that your client receives the untampered answer from the DNS resolver. It does not, however, protect the client against the resolver returning the wrong answer (through <a href="https://www.cloudflare.com/learning/security/global-dns-hijacking-threat/">DNS hijacking</a> or <a href="https://www.cloudflare.com/learning/dns/dns-cache-poisoning/">DNS cache poisoning</a> attacks). The “true” answer is determined by the owner of a domain or zone as reported by the authoritative name server. <a href="https://www.cloudflare.com/learning/dns/dns-security/">DNSSEC</a> allows clients to verify the integrity of the returned DNS answer and catch any unauthorized tampering along the path between the client and authoritative name server.</p><p>However deployment of DNSSEC is hindered by middleboxes that <a href="https://labs.ripe.net/Members/willem_toorop/sunrise-dns-over-tls-sunset-dnssec">incorrectly</a> forward DNS messages, and even if the information is available, stub resolvers used by applications might not even validate the results. A report from 2016 <a href="https://www.internetsociety.org/resources/doc/2016/state-of-dnssec-deployment-2016/">found</a> that only 26% of users use DNSSEC-validating resolvers.</p><p>DoH and DoT protect the transport between the client and the public resolver. The public resolver may have to reach out to additional authoritative name servers in order to resolve a name. Traditionally, the path between any resolver and the authoritative name server uses unencrypted DNS. To protect these DNS messages as well, we did an experiment with Facebook, using DoT between 1.1.1.1 and Facebook’s authoritative name servers. While setting up a secure channel using TLS increases latency, it can be amortized over many queries.</p><p>Transport encryption ensures that resolver results and metadata are protected. For example, the <a href="https://tools.ietf.org/html/rfc7871">EDNS Client Subnet (ECS)</a> information included with DNS queries could reveal the original client address that started the DNS query. Hiding that information along the path improves privacy. It will also <a href="https://labs.ripe.net/Members/willem_toorop/sunrise-dns-over-tls-sunset-dnssec">prevent</a> broken middle-boxes from breaking DNSSEC due to issues in forwarding DNS.</p>
    <div>
      <h2>Operational issues with DNS encryption</h2>
      <a href="#operational-issues-with-dns-encryption">
        
      </a>
    </div>
    <p>DNS encryption may bring challenges to individuals or organizations that rely on monitoring or modifying DNS traffic. Security appliances that rely on passive monitoring watch all incoming and outgoing network traffic on a machine or on the edge of a network. Based on unencrypted DNS queries, they could potentially identify machines which are infected with malware for example. If the DNS query is encrypted, then passive monitoring solutions will not be able to monitor domain names.</p><p>Some parties expect DNS resolvers to apply content filtering for purposes such as:</p><ul><li><p>Blocking domains used for malware distribution.</p></li><li><p>Blocking advertisements.</p></li><li><p>Perform parental control filtering, blocking domains associated with adult content.</p></li><li><p>Block access to domains serving illegal content according to local regulations.</p></li><li><p>Offer a <a href="https://en.wikipedia.org/wiki/Split-horizon_DNS">split-horizon DNS</a> to provide different answers depending on the source network.</p></li></ul><p>An advantage of blocking access to domains via the DNS resolver is that it can be centrally done, without reimplementing it in every single application. Unfortunately, it is also quite coarse. Suppose that a website hosts content for multiple users at example.com/videos/for-kids/ and example.com/videos/for-adults/. The DNS resolver will only be able to see “example.com” and can either choose to block it or not. In this case, application-specific controls such as browser extensions would be more effective since they can actually look into the URLs and selectively prevent content from being accessible.</p><p>DNS monitoring is not comprehensive. Malware could skip DNS and hardcode IP addresses, or use <a href="https://blog.netlab.360.com/an-analysis-of-godlua-backdoor-en/">alternative methods</a> to query an IP address. However, not all malware is that complicated, so DNS monitoring can still serve as a <a href="https://en.wikipedia.org/wiki/Defense_in_depth_%28computing%29">defence-in-depth</a> tool.</p><p>All of these non-passive monitoring or DNS blocking use cases require support from the DNS resolver. Deployments that rely on opportunistic DoH/DoT upgrades of the current resolver will maintain the same feature set as usually provided over unencrypted DNS. Unfortunately this is vulnerable to downgrades, as mentioned before. To solve this, system administrators can point endpoints to a DoH/DoT resolver in strict mode. Ideally this is done through secure device management solutions (<a href="https://en.wikipedia.org/wiki/Mobile_device_management">MDM</a>, <a href="https://en.wikipedia.org/wiki/Group_Policy">group policy</a> on Windows, etc.).</p>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>One of the cornerstones of the Internet is mapping names to an address using DNS. DNS has traditionally used insecure, unencrypted transports. This has been abused by ISPs in the past for injecting <a href="https://www.icsi.berkeley.edu/pubs/networking/redirectingdnsforads11.pdf">advertisements</a>, but also causes a privacy leak. Nosey visitors in the coffee shop can use unencrypted DNS to follow your activity. All of these issues can be solved by using DNS over TLS (DoT) or DNS over HTTPS (DoH). These techniques to protect the user are relatively new and are seeing increasing adoption.</p><p>From a technical perspective, DoH is very similar to HTTPS and follows the general industry trend to <a href="https://blog.mozilla.org/security/2015/04/30/deprecating-non-secure-http/">deprecate non-secure options</a>. DoT is a simpler transport mode than DoH as the HTTP layer is removed, but that also makes it easier to be blocked, either deliberately or by accident.</p><p>Secondary to enabling a secure transport is the choice of a DNS resolver. Some vendors will use the locally configured DNS resolver, but try to opportunistically upgrade the unencrypted transport to a more secure transport (either DoT or DoH). Unfortunately, the DNS resolver usually defaults to one provided by the ISP which may not support secure transports.</p><p>Mozilla has adopted a different approach. Rather than relying on local resolvers that may not even support DoH, they allow the user to explicitly select a resolver. Resolvers recommended by Mozilla have to satisfy <a href="https://wiki.mozilla.org/Security/DOH-resolver-policy">high standards</a> to protect user privacy. To ensure that parental control features based on DNS remain functional, and to support the split-horizon use case, Mozilla has <a href="https://support.mozilla.org/en-US/kb/configuring-networks-disable-dns-over-https">added</a> a mechanism that allows private resolvers to disable DoH.</p><p>The DoT and DoH transport protocols are ready for us to move to a more secure Internet. As can be seen in previous packet traces, these protocols are similar to existing mechanisms to <a href="https://www.cloudflare.com/application-services/solutions/">secure application traffic</a>. Once this security and privacy hole is closed, there will be <a href="https://arxiv.org/pdf/1906.09682.pdf">many</a> <a href="/esni/">more</a> to tackle.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2rE1TtD6u8D6Wk64LriLUB/53d8e662554bed780841a5a40d63434a/tales-from-the-crypto-team_2x-5.png" />
            
            </figure><p></p> ]]></content:encoded>
            <category><![CDATA[Crypto Week]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[DoH]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Research]]></category>
            <category><![CDATA[Cryptography]]></category>
            <guid isPermaLink="false">42cfohkBmNPzLvTAUhd700</guid>
            <dc:creator>Peter Wu</dc:creator>
        </item>
    </channel>
</rss>