
<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>Thu, 09 Apr 2026 08:13:16 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Cloudflare One is the first SASE offering modern post-quantum encryption across the full platform]]></title>
            <link>https://blog.cloudflare.com/post-quantum-sase/</link>
            <pubDate>Mon, 23 Feb 2026 06:00:00 GMT</pubDate>
            <description><![CDATA[ We’ve upgraded Cloudflare One to support post-quantum encryption by implementing the latest IETF drafts for hybrid ML-KEM into our Cloudflare IPsec product. This extends post-quantum encryption across all major Cloudflare One on-ramps and off-ramps. ]]></description>
            <content:encoded><![CDATA[ <p>During Security Week 2025, we launched the industry’s first cloud-native<a href="https://www.cloudflare.com/press/press-releases/2025/cloudflare-advances-industrys-first-cloud-native-quantum-safe-zero-trust/"> <u>post-quantum Secure Web Gateway (SWG) and Zero Trust solution</u></a>, a major step towards securing enterprise network traffic sent from end user devices to public and private networks.</p><p>But this is only part of the equation. To truly secure the future of enterprise networking, you need a complete <a href="https://www.cloudflare.com/learning/access-management/what-is-sase/"><u>Secure Access Service Edge (SASE)</u></a>. </p><p>Today, we complete the equation: Cloudflare One is the first SASE platform to support modern standards-compliant post-quantum (PQ) encryption in our Secure Web Gateway, and across Zero Trust and Wide Area Network (WAN) use cases.  More specifically, Cloudflare One now offers post-quantum hybrid ML-KEM (Module-Lattice-based Key-Encapsulation Mechanism) across all major on-ramps and off-ramps.</p><p>To complete the equation, we added support for post-quantum encryption to our <a href="https://developers.cloudflare.com/magic-wan/reference/gre-ipsec-tunnels/"><u>Cloudflare IPsec</u></a> (our cloud-native WAN-as-a-Service) and <a href="https://developers.cloudflare.com/magic-wan/configuration/connector/"><u>Cloudflare One Appliance</u></a> (our physical or virtual WAN appliance that establish Cloudflare IPsec connections). Cloudflare IPsec uses the <a href="https://www.cloudflare.com/learning/network-layer/what-is-ipsec/"><u>IPsec</u></a> protocol to establish encrypted tunnels from a customer’s network to Cloudflare’s global network, while IP <a href="https://www.cloudflare.com/learning/cdn/glossary/anycast-network/"><u>Anycast</u></a> is used to automatically route that tunnel to the nearest Cloudflare data center. Cloudflare IPsec simplifies configuration and provides high availability; if a specific data center becomes unavailable, traffic is automatically rerouted to the closest healthy data center. Cloudflare IPsec runs at the scale of our global network, and supports site-to-site across a WAN as well as outbound connections to the Internet.</p><p>The <a href="https://developers.cloudflare.com/magic-wan/configuration/connector/"><u>Cloudflare One Appliance</u></a> upgrade is generally available as of appliance version 2026.2.0. The <a href="https://developers.cloudflare.com/magic-wan/reference/gre-ipsec-tunnels/"><u>Cloudflare IPsec</u></a> upgrade is in closed beta, and you can request access by adding your name to our <a href="https://www.cloudflare.com/security-week/pq-ipsec-beta/"><u>closed beta list</u></a>.</p>
    <div>
      <h2>Post-quantum cryptography matters now</h2>
      <a href="#post-quantum-cryptography-matters-now">
        
      </a>
    </div>
    <p>Quantum threats are not a "next decade" problem. Here is why our customers are prioritizing <a href="https://www.cloudflare.com/learning/ssl/quantum/what-is-post-quantum-cryptography/"><u>post-quantum cryptography (PQC)</u></a> today:</p><p><b>The deadline is approaching. </b>At the end of 2024, the National Institute of Standards and Technology (NIST) sent a <a href="https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf"><u>clear signal</u></a> (that has been <a href="https://www.bsi.bund.de/EN/Service-Navi/Presse/Pressemitteilungen/Presse2024/241127_Post-Quantum_Cryptography.html"><u>echoed</u></a> by other <a href="https://www.ncsc.gov.uk/guidance/pqc-migration-timelines"><u>agencies</u></a>): the era of classical public-key cryptography is coming to an end. NIST set a 2030 deadline for depreciating RSA and Elliptic Curve Cryptography (ECC) and <a href="https://www.cloudflare.com/pqc/"><u>transitioning to PQC</u></a> that cannot be broken by powerful quantum computers. Organizations that haven't begun their migration risk being out of compliance and vulnerable as the deadline nears.</p><p><b>Upgrades have historically been tricky. </b>While 2030 might seem far away, upgrading cryptographic algorithms is notoriously difficult. History has shown us that depreciating cryptography can take decades: we found examples of <a href="https://blog.cloudflare.com/radius-udp-vulnerable-md5-attack/"><u>MD5 causing problems 20 years after it was deprecated</u></a>. This lack of crypto agility — the ability to easily swap out cryptographic algorithms — is a major bottleneck. By integrating PQ encryption directly into <a href="https://www.cloudflare.com/zero-trust/"><u>Cloudflare One</u></a>, our SASE platform, we provide built-in crypto agility, simplifying how organizations offer remote access and site-to-site connectivity.</p><p><b>Data may already be at risk.</b> Finally, "Harvest Now, Decrypt Later" is a present and persistent threat, where attackers harvest sensitive network traffic today and then store it until quantum computers become powerful enough to decrypt it. If your data has a shelf life of more than a few years (e.g. financial information, health data, state secrets) it is already at risk unless it is protected by PQ encryption.</p>
    <div>
      <h3>The two migrations on the road to quantum safety: key agreement and digital signatures</h3>
      <a href="#the-two-migrations-on-the-road-to-quantum-safety-key-agreement-and-digital-signatures">
        
      </a>
    </div>
    <p>Transitioning network traffic to post-quantum cryptography (PQC) requires an overhaul of two cryptographic primitives: key agreement and digital signatures.  </p><p><b>Migration 1: Key establishment. </b>Key agreement allows two parties to establish a shared secret over an insecure channel; the shared secret is then used to encrypt network traffic, resulting in post-quantum encryption. The industry has largely converged on ML-KEM (Module-Lattice-based Key-Encapsulation Mechanism) as the standard PQ key agreement protocol. </p><p>ML-KEM has been widely adopted for use in <a href="https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/"><u>TLS</u></a>, usually deployed alongside classical Elliptic Curve Diffie Hellman (ECDHE), where the key used to encrypt network traffic is derived by mixing the outputs of the ML-KEM and ECDHE key agreements. (This is also known as “hybrid ML-KEM”). Well over <a href="https://radar.cloudflare.com/adoption-and-usage#post-quantum-encryption"><u>60% of human-generated TLS traffic</u></a> to Cloudflare’s network is currently protected with hybrid ML-KEM. The transition to hybrid ML-KEM has been successful because it:</p><ul><li><p>stops "harvest-now, decrypt-later" attacks</p></li><li><p>does not require specialized hardware or specialized physical connectivity between client and server, unlike approaches like <a href="https://blog.cloudflare.com/you-dont-need-quantum-hardware/"><u>Quantum Key Distribution (QKD)</u></a></p></li><li><p>has <a href="https://blog.cloudflare.com/you-dont-need-quantum-hardware/"><u>little impact on performance</u></a>, even for short-lived TLS connections</p></li></ul><p>Because ML-KEM runs in <i>parallel </i>with classical ECDHE, there is no reduction in security and compliance as compared to the classical ECDHE approach.  </p><p><b>Migration 2: Digital signatures. </b>Meanwhile, digital signatures and certificates protect authenticity, stopping active adversaries from impersonating the server to the client. Unfortunately, PQ signatures are currently larger in size than classical ECC algorithms, which has slowed their adoption. Fortunately, the migration to PQ signatures is less urgent, because PQ signatures are designed to stop active adversaries armed with powerful quantum computers, which are not known to exist yet. Thus, while Cloudflare is actively contributing to the standardization and rollout of PQ digital signatures, the current Cloudflare IPsec upgrade focuses on upgrading key establishment to hybrid ML-KEM.  </p><p>The U.S. Cybersecurity &amp; Infrastructure Security Agency (CISA) recognized the nature of these two migrations in its <a href="https://www.cisa.gov/resources-tools/resources/product-categories-technologies-use-post-quantum-cryptography-standards"><u>January 2026 publication</u></a>, “Product Categories for Technologies That Use Post-Quantum Cryptography Standards.”</p>
    <div>
      <h2>Breaking new ground with IPsec </h2>
      <a href="#breaking-new-ground-with-ipsec">
        
      </a>
    </div>
    <p>To achieve a SASE fully protected with post-quantum encryption, we’ve upgraded our Cloudflare IPsec products to support hybrid ML-KEM in the IPsec protocol.</p><p>The IPsec community’s journey toward post-quantum cryptography has been very different from that of TLS. <a href="https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/"><u>TLS</u></a> is the de facto standard for encrypting public Internet traffic at Layer 4  — e.g. from a browser to a <a href="https://www.cloudflare.com/learning/cdn/what-is-a-cdn/"><u>content delivery network (CDN)</u></a> — so security and vendor interoperability are at the forefront of its design. Meanwhile, IPsec is a Layer 3 protocol that commonly connects devices built by the same vendor (e.g. two routers), so interoperability has historically been less of a concern. With this in mind, let’s take a look at IPsec’s journey into the quantum future. </p>
    <div>
      <h3>Pre-Shared Keys? Quantum key distribution?</h3>
      <a href="#pre-shared-keys-quantum-key-distribution">
        
      </a>
    </div>
    <p><a href="https://datatracker.ietf.org/doc/html/rfc8784"><u>RFC 8784</u></a>, published in May 2020, was intended to be the post-quantum update to IPsec Internet Key Exchange v2 (IKEv2), which is used to establish the symmetric keys used to encrypt IPsec network traffic. RFC 8784 implies the use of either long-lived pre-shared keys (PSK) or quantum key distribution (QKD). Neither of these approaches are very palatable.</p><p>RFC 8784 proposes mixing a PSK with a key derived from Diffie Hellman Exchange (DHE), essentially running PSK in hybrid with DHE. This approach protects against harvest-now-decrypt-later attackers, but does not offer <a href="https://blog.cloudflare.com/staying-on-top-of-tls-attacks/#forward-secrecy"><u>forward secrecy</u></a> against quantum adversaries. </p><p><a href="https://blog.cloudflare.com/staying-on-top-of-tls-attacks/#forward-secrecy"><u>Forward secrecy</u></a> is a standard desideratum of key agreement protocols. It ensures that a system is secure even if the long-lived key is leaked. The PSK approach in RFC 8784 is vulnerable to an harvest-now-decrypt-later adversary that also obtains a copy of a long-lived PSK, and can then decrypt traffic in the future (by breaking the DHE key agreement) once powerful quantum computers become available.</p><p>To solve this forward secrecy issue, RFC 8784 can instead be used to mix the key from the classical DHE with a freshly generated key derived from a QKD protocol.</p><p>QKD uses quantum mechanics to establish a shared, secret cryptographic key between two parties. Importantly, for QKD to work, the parties must have specialized hardware or be connected by a dedicated physical connection. This is a <a href="https://blog.cloudflare.com/you-dont-need-quantum-hardware/"><u>significant limitation</u></a>, rendering QKD useless for common Internet use cases like connecting a laptop to a distant server over Wi-Fi. These limitations are also why we never invested in deploying QKD for Cloudflare IPsec. The U.S. <a href="https://www.nsa.gov/Cybersecurity/Quantum-Key-Distribution-QKD-and-Quantum-Cryptography-QC/"><u>National Security Agency (NSA)</u></a>, <a href="https://www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Informationen-und-Empfehlungen/Quantentechnologien-und-Post-Quanten-Kryptografie/quantentechnologien-und-post-quanten-kryptografie_node.html"><u>Germany’s BSI</u></a> and the <a href="https://www.ncsc.gov.uk/whitepaper/quantum-security-technologies"><u>UK National Cyber Security Centre</u></a> have also warned against relying solely on QKD.</p>
    <div>
      <h3>But what about interoperability? </h3>
      <a href="#but-what-about-interoperability">
        
      </a>
    </div>
    <p><a href="https://datatracker.ietf.org/doc/html/rfc9370"><u>RFC 9370</u></a> landed in May 2023, specifying the use of hybrid key agreement rather than PSK or QKD. But unlike TLS, which only supports using post-quantum ML-KEM in parallel with classical DHE, this IPsec standard allows using up to <i>seven different key agreements to run at the same time</i> in parallel with classical Diffie Helman. Moreover, it doesn't specify details about what these key agreements should be, leaving it up to the vendors to choose their algorithms and implementations. Palo Alto Networks, for example, took this seriously and built support for over <a href="https://docs.paloaltonetworks.com/compatibility-matrix/reference/supported-cipher-suites/cipher-suites-supported-in-pan-os-11-2/cipher-suites-supported-in-pan-os-11-2-ipsec"><u>seven different PQC ciphersuites</u></a> into its next generation firewall (NGFW), most of which do not interoperate with other vendors and some of which have not yet been standardized by NIST.</p><p>Over the years, TLS has gone in the opposite direction, reducing the number of registered ciphersuites from hundreds in TLS 1.2, down to around five in TLS 1.3. This philosophy of reducing “ciphersuite bloat” is also in line with NIST’s <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r2.pdf"><u>SP 800 52</u></a> from 2019.  The rationale for reducing “ciphersuite bloat” includes: </p><ul><li><p>Improved interoperability across vendors and regions</p></li><li><p>Lower risk of attacks that exploit downgrades to weak ciphersuites </p></li><li><p>Lower risk of security problems due to misconfiguration</p></li><li><p>Lower risk of implementation flaws by reducing the size of the codebase</p></li></ul><p>This is why we didn’t initially build support for RFC 9370. </p>
    <div>
      <h3>Standards that are finally on the right track</h3>
      <a href="#standards-that-are-finally-on-the-right-track">
        
      </a>
    </div>
    <p>It’s also why we were excited when the IPsec community put forth <a href="https://datatracker.ietf.org/doc/draft-ietf-ipsecme-ikev2-mlkem/"><u>draft-ietf-ipsecme-ikev2-mlkem</u></a>. This Internet-Draft standardizes PQ exchange for IPsec in the same way PQ key exchange has been widely deployed for TLS: hybrid ML-KEM. The new draft fills in the gaps in RFC 9370, by specifying how to run the ML-KEM as the additional key exchange in parallel with classical Diffie Hellman in IKEv2. </p><p>Now that this specification is available, we’ve moved forward with supporting post-quantum IPsec in our Cloudflare IPsec products. </p>
    <div>
      <h2>Cloudflare IPsec goes post-quantum</h2>
      <a href="#cloudflare-ipsec-goes-post-quantum">
        
      </a>
    </div>
    <p>Cloudflare IPsec is a WAN <a href="https://www.cloudflare.com/learning/network-layer/network-as-a-service-naas/"><u>Network-as-a-Service</u></a> solution that replaces legacy private network architectures by connecting data centers, branch offices, and cloud VPCs to Cloudflare’s global IP Anycast network. </p><p>With Cloudflare IPsec, Cloudflare’s network acts as the <a href="https://datatracker.ietf.org/doc/html/rfc5996"><u>IKEv2</u></a> Responder, awaiting connection requests from an IPsec initiator, which is a branch connector device in the customer’s network. Cloudflare IPsec supports IPsec sessions initiated by branch connectors that include our own Cloudflare One Appliance, along with branch connectors from a <a href="https://developers.cloudflare.com/magic-wan/reference/device-compatibility/"><u>diverse set of vendors</u></a>, including Cisco, Juniper, Palo Alto Networks, Fortinet, Aruba and others.</p><p>We’ve implemented production hybrid ML-KEM support in the Cloudflare IPsec IKEv2 Responder, as specified in <a href="https://datatracker.ietf.org/doc/draft-ietf-ipsecme-ikev2-mlkem/"><u>draft-ietf-ipsecme-ikev2-mlkem</u></a>. The draft requires a first key exchange to run using a classical Diffie Helman key exchange. The derived key is used to encrypt a second key exchange that is run using ML-KEM. Finally, the keys derived by the two exchanges are mixed and the result is used to secure the data plane traffic in IPsec ESP (Encapsulating Security Payload) mode. ESP mode uses symmetric cryptography and is thus already quantum safe without any additional upgrades.  We’ve tested our implementation against the IPsec Initiator in the <a href="https://strongswan.org/"><u>strongswan</u></a> reference implementation.</p><p>You can see the ciphersuite used in the IKEv2 negotiation by viewing the Cloudflare <a href="https://developers.cloudflare.com/logs/logpush/logpush-job/datasets/account/ipsec_logs/"><u>IPsec logs</u></a>.</p><p>We chose to implement hybrid ML-KEM rather than “pure” ML-KEM, i.e. only ML-KEM without DHE running in parallel, for two reasons. First, we’ve used hybrid ML-KEM across all of our other Cloudflare products, since this is the approach adopted across the TLS community. And second, it provides a “belt-and-suspenders” security: ML-KEM provides protection against quantum harvest-now-decrypt-later attacks, while DHE provides a tried-and-true algorithm against non-quantum adversaries.</p>
    <div>
      <h3>An invitation for interoperability</h3>
      <a href="#an-invitation-for-interoperability">
        
      </a>
    </div>
    <p>The full value of this implementation can be realized only via interoperability. For this reason, we are inviting other vendors that are building out support for IPsec Initiators in their branch connectors per <a href="https://datatracker.ietf.org/doc/draft-ietf-ipsecme-ikev2-mlkem/"><u>draft-ietf-ipsecme-ikev2-mlkem</u></a> to test against our Cloudflare IPsec implementation. Cloudflare customers looking to test out interoperability with third-party branch connectors while we are in closed beta can <a href="https://www.cloudflare.com/security-week/pq-ipsec-beta/"><u>sign up here</u></a>. We plan to GA and build out interoperability with other vendors as more begin to come online with support for <a href="https://datatracker.ietf.org/doc/draft-ietf-ipsecme-ikev2-mlkem/"><u>draft-ietf-ipsecme-ikev2-mlkem</u></a>.</p>
    <div>
      <h3>Quantum-safe hardware: the Cloudflare One Appliance</h3>
      <a href="#quantum-safe-hardware-the-cloudflare-one-appliance">
        
      </a>
    </div>
    <p>Many of our customers purchase their branch connector (hardware or virtualized) from Cloudflare, rather than a third-party vendor. That’s why the <a href="https://developers.cloudflare.com/magic-wan/configuration/connector/"><u>Cloudflare One Appliance</u></a> — our plug-and-play appliance that connects your local network to Cloudflare One — has also been upgraded with post-quantum encryption.</p><p>Cloudflare One Appliance does not use IKEv2 for key agreement or session establishment, opting instead to rely on TLS. The appliance periodically initiates a TLS handshake with the Cloudflare edge, shares a symmetric secret over the resulting TLS connection, then injects that symmetric secret into the ESP layer of IPsec, which then encrypts and authenticates the IPsec data plane traffic. This design allowed us to avoid building out IKEv2 Initiator logic, and makes the Connector easier to maintain using our existing TLS libraries. </p><p>Thus, upgrading Cloudflare One Appliance to PQ encryption was just a matter of upgrading TLS 1.2 to TLS 1.3 with hybrid ML-KEM — something we’ve done many times on different products at Cloudflare. </p>
    <div>
      <h3>How do I turn this on? And what does it cost?</h3>
      <a href="#how-do-i-turn-this-on-and-what-does-it-cost">
        
      </a>
    </div>
    <p>As always, this upgrade to Cloudflare IPsec comes at no extra cost to our customers. Because we believe that a secure and private Internet should be accessible to all, we’re on a mission to include PQC in all our <a href="https://blog.cloudflare.com/post-quantum-cryptography-ga/"><u>products</u></a>, without <a href="https://blog.cloudflare.com/you-dont-need-quantum-hardware/"><u>specialized hardware</u></a>, at <a href="https://blog.cloudflare.com/post-quantum-crypto-should-be-free/"><u>no extra cost</u></a> to our customers and end users.</p><p>Customers using the Cloudflare One Appliance obtained this upgrade to PQC in version 2026.2.0 (released 2026-02-11). The upgrade is pushed automatically (with no customer action required) according to each appliance’s configured interrupt window.</p><p>For customers using Cloudflare IPsec with another vendor’s branch connector appliance, we will be interoperating with these once more support for <a href="https://datatracker.ietf.org/doc/draft-ietf-ipsecme-ikev2-mlkem/"><u>draft-ietf-ipsecme-ikev2-mlkem</u></a> comes online. <a href="https://www.cloudflare.com/security-week/pq-ipsec-beta/"><u>You can also contact us</u></a> directly to get access to closed beta and request that we interoperate with a specific vendor’s branch connector.</p>
    <div>
      <h2>The full picture: post-quantum SASE</h2>
      <a href="#the-full-picture-post-quantum-sase">
        
      </a>
    </div>
    <p>The value proposition for a post-quantum SASE is clear: organizations can obtain immediate end-to-end protection for their private network traffic by sending it over tunnels protected by hybrid ML-KEM. This protects traffic from  harvest-now-decrypt-later attacks, even if the individual applications in the corporate network are not yet upgraded to PQC.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/xK6FEbQYw9vLJKgx0bHp6/c4b584cc95adc5f8320d03c86b8fe38c/Cloudflare-s_post-quantum_SASE_2.png" />
          </figure><p>The diagram above shows how post-quantum hybrid ML-KEM is offered in various Cloudflare One network configurations.  It includes the following on-ramps:</p><ul><li><p>clientless (<a href="https://blog.cloudflare.com/post-quantum-zero-trust/"><u>TLS 1.3 with hybrid ML-KEM</u></a> (assuming the browser supports hybrid ML-KEM))</p></li><li><p>Cloudflare One Client (<a href="https://blog.cloudflare.com/post-quantum-warp/"><u>MASQUE over TLS 1.3 with hybrid ML-KEM</u></a> initiated by the device client)</p></li><li><p>Cloudflare IPsec on-ramp (as described in this blog)</p></li></ul><p>and the following off-ramps:</p><ul><li><p>Cloudflare Tunnel off-ramp (<a href="https://blog.cloudflare.com/post-quantum-tunnel/"><u>TLS 1.3 with hybrid ML-KEM tunnel</u></a> initiated by the cloudflared server agent)</p></li><li><p>Cloudflare IPsec off-ramp (as described in this blog)</p></li></ul><p>The diagram below highlights a sample network configuration that uses the Cloudflare One Client on-ramp to connect a device to a server behind a Cloudflare One Appliance offramp. The end user's device connects to the Cloudflare network (link 1) using <a href="https://blog.cloudflare.com/post-quantum-warp/"><u>MASQUE with hybrid ML-KEM</u></a>. The traffic then travels across Cloudflare’s global network over TLS 1.3 with hybrid ML-KEM (link 2). Traffic then leaves the Cloudflare network over a post-quantum Cloudflare IPsec link (link 3) that is terminated at a Cloudflare One Appliance appliance. Finally it connects to a server inside the customer’s environment. Traffic is protected by post-quantum cryptography as it travels over the public Internet, even if the server itself does not support post-quantum cryptography.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2mrF4j8VDBGOzGEQNCobo4/b78ae6bef6f1152d92c9f63102aa8491/image4.png" />
          </figure><p>Finally, we note that traffic that on-ramps to Cloudflare One and then egresses to the public Internet can also be protected by our post-quantum <a href="https://developers.cloudflare.com/cloudflare-one/traffic-policies/http-policies/tls-decryption/#post-quantum-support"><u>Cloudflare Gateway</u></a>, our Secure Web Gateway (SWG).  Here’s a diagram showing how the SWG works:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3j3uN3x5oyUZBWbXIECxzA/9f2fd83cc567c8e511de08dd86ee462f/image2.png" />
          </figure><p> As discussed in <a href="https://blog.cloudflare.com/post-quantum-zero-trust/#quantum-safe-swg-end-to-end-pqc-for-access-to-third-party-web-applications"><u>an earlier blog post</u></a>, our SWG can already support hybrid ML-KEM on traffic from SWG to the origin server (as long as the origin supports hybrid ML-KEM), and on traffic from the client to the SWG (if the client supports hybrid ML-KEM, which is the case for most modern browsers). Importantly, any traffic that onramps to the SWG via a device that has Cloudflare One Client installed is still protected with hybrid ML-KEM — even if the web browser itself does not yet support post-quantum cryptography. This is due to the <a href="https://blog.cloudflare.com/post-quantum-warp/"><u>post-quantum MASQUE tunnel</u></a> that the Cloudflare One Client establishes to Cloudflare’s global network.  The same is true of traffic that onramps to the SWG via a post-quantum Cloudflare IPsec tunnel.</p><p>Putting it all together, Cloudflare One now offers post-quantum encryption on our TLS, MASQUE and IPsec on-ramp and off-ramps, and for private network traffic, and to traffic that egresses to the public Internet via our SWG. </p>
    <div>
      <h2>The future is quantum-safe</h2>
      <a href="#the-future-is-quantum-safe">
        
      </a>
    </div>
    <p>By completing the post-quantum SASE equation with Cloudflare IPsec and the Cloudflare One Appliance, we have extended post-quantum encryption across all our major on-ramps and off-ramps. We have intentionally chosen the path of interoperability and simplicity — the hybrid ML-KEM approach that the IETF and NIST have championed, rather than locking our customers into proprietary implementations, “ciphersuite bloat," or unnecessary hardware upgrades. </p><p>This is the promise of Cloudflare One: a SASE platform that is not only faster and more reliable than the legacy architectures it replaces, but one that provides post-quantum encryption. Whether you are securing a remote worker’s browser or a multi-gigabit data center link, you can now do so with the confidence that your data is protected from harvest-now-decrypt-later attacks and other future-looking threats.  </p><p><a href="https://www.cloudflare.com/lp/pqc/"><u>Sign up here</u></a> to get a full demo of our post-quantum capabilities across the Cloudflare One SASE platform, or <a href="https://www.cloudflare.com/security-week/pq-ipsec-beta/"><u>register here</u></a> to get on the list for the Cloudflare IPsec closed beta. We are proud to lead the industry into this new era of cryptography, and we invite you to join us in building a scalable, standards-compliant, and post-quantum Internet.</p> ]]></content:encoded>
            <category><![CDATA[Post-Quantum]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Cryptography]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[IPsec]]></category>
            <guid isPermaLink="false">4R1725ncbcxxmKyZueXmhw</guid>
            <dc:creator>Sharon Goldberg</dc:creator>
            <dc:creator>Amos Paul</dc:creator>
            <dc:creator>David Gauch</dc:creator>
        </item>
        <item>
            <title><![CDATA[Securing today for the quantum future: WARP client now supports post-quantum cryptography (PQC)]]></title>
            <link>https://blog.cloudflare.com/post-quantum-warp/</link>
            <pubDate>Wed, 24 Sep 2025 13:00:00 GMT</pubDate>
            <description><![CDATA[ To prepare for a future where powerful quantum computers come online, we've upgraded our WARP client with post-quantum cryptography. ]]></description>
            <content:encoded><![CDATA[ <p>The Internet is currently transitioning to <a href="https://www.cloudflare.com/pqc/"><u>post-quantum cryptography (PQC)</u></a> in preparation for Q-Day, when quantum computers break the classical cryptography that underpins all modern computer systems.  The US <a href="https://www.nist.gov/"><u>National Institute of Standards and Technology (NIST)</u></a> recognized the urgency of this transition, announcing that classical cryptography (<a href="https://en.wikipedia.org/wiki/RSA_cryptosystem"><u>RSA</u></a>, Elliptic Curve Cryptography (<a href="https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/"><u>ECC</u></a>)) must be <a href="https://csrc.nist.gov/pubs/ir/8547/ipd"><u>deprecated by 2030 and completely disallowed by 2035</u></a>.</p><p>Cloudflare is well ahead of NIST’s schedule. Today, over <a href="https://radar.cloudflare.com/adoption-and-usage?cf_history_state=%7B%22guid%22%3A%22C255D9FF78CD46CDA4F76812EA68C350%22%2C%22historyId%22%3A20%2C%22targetId%22%3A%22583662CE97724FCE7A7C0844276279FE%22%7D#post-quantum-encryption-adoption"><u>45%</u></a> of human-generated Internet traffic sent to Cloudflare’s network is already post-quantum encrypted. Because we believe that a secure and private Internet should be free and accessible to all, we’re on a mission to include PQC in all our <a href="https://blog.cloudflare.com/post-quantum-cryptography-ga/"><u>products</u></a>, <a href="https://blog.cloudflare.com/you-dont-need-quantum-hardware/"><u>without specialized hardware</u></a>, and at <a href="https://blog.cloudflare.com/post-quantum-crypto-should-be-free/"><u>no extra cost to our customers and end users</u></a>.</p><p>That’s why we’re proud to announce that <a href="https://developers.cloudflare.com/warp-client/"><u>Cloudflare’s WARP client</u></a> now supports post-quantum key agreement — both in our free consumer WARP client <a href="https://one.one.one.one/"><u>1.1.1.1</u></a>, and in our enterprise WARP client, the <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/download-warp/"><u>Cloudflare One Agent</u></a>. </p>
    <div>
      <h2>Post-quantum tunnels using the WARP client</h2>
      <a href="#post-quantum-tunnels-using-the-warp-client">
        
      </a>
    </div>
    <p>This upgrade of the WARP client to post-quantum key agreement provides end users with immediate protection for their Internet traffic against <a href="https://en.wikipedia.org/wiki/Harvest_now,_decrypt_later"><u>harvest-now-decrypt-later attacks</u></a>. The value proposition is clear — by tunneling your Internet traffic over the WARP client’s post-quantum MASQUE tunnels, you get immediate post-quantum encryption of your network traffic. And this holds even if the individual connections sent through the tunnel have not yet been upgraded to post-quantum cryptography.</p><p>Here’s how it works.</p><p>When the <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/download-warp/"><u>Cloudflare One Agent</u></a> (our enterprise WARP client) connects employees to the internal corporate resources as part of the <a href="https://developers.cloudflare.com/cloudflare-one/"><u>Cloudflare One Zero Trust</u></a> platform, it now provides <a href="https://blog.cloudflare.com/post-quantum-zero-trust/"><u>end-to-end quantum encryption</u></a> of network traffic. As shown in the figure below, traffic from the WARP client is wrapped in a post-quantum encrypted <a href="https://blog.cloudflare.com/zero-trust-warp-with-a-masque/"><u>MASQUE</u></a> (<a href="https://datatracker.ietf.org/wg/masque/about/"><u>Multiplexed Application Substrate over QUIC Encryption</u></a>) tunnel, sent to Cloudflare’s <a href="https://www.cloudflare.com/network/"><u>global network</u></a> network (link (1)). Cloudflare’s global network then forwards the traffic another set of post-quantum encrypted tunnels (link (2)), and then finally on to the internal corporate resource using a <a href="https://blog.cloudflare.com/post-quantum-tunnel/"><u>post-quantum encrypted</u></a> Cloudflare <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>Tunnel</u></a> established using the <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>cloudflared agent</u></a> (which installed near the corporate resource) (link (3)). </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7q9k7Ss95iM1PSiSIW76MD/db8146afa3da442d5459dac0919a3f31/image2.png" />
          </figure><p><sup><i>We have upgraded the </i></sup><a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/download-warp/"><sup><i><u>Cloudflare One Agent</u></i></sup></a><sup> </sup><sup><i>to post-quantum key agreement, providing end-to-end post quantum protection for traffic sent to internal corporate resources. </i></sup></p><p>When an end user <a href="https://developers.cloudflare.com/learning-paths/secure-internet-traffic/connect-devices-networks/install-agent/"><u>installs</u></a> the consumer WARP Client (<a href="https://one.one.one.one/"><u>1.1.1.1</u></a>), the WARP client wraps the end user’s network traffic in a post-quantum encrypted <a href="https://blog.cloudflare.com/zero-trust-warp-with-a-masque/"><u>MASQUE</u></a> tunnel. As shown in the figure below, the MASQUE tunnel protects the traffic on its way to Cloudflare’s <a href="https://www.cloudflare.com/network/"><u>global network</u></a> (link (1)). Cloudflare's global network then uses post-quantum encrypted tunnels to bring the traffic as close as possible to its final destination (link (2)). Finally, the traffic is forwarded over the public Internet to the origin server (i.e. its final destination). That final connection (link (3)) may or may not be post-quantum (PQ). It will not be PQ if the origin server is not PQ.  It will be PQ if the origin server is (a) upgraded to PQC, and (b) the end user is connecting to over a client that supports PQC (like Chrome, Edge or Firefox).  In the future, <a href="https://blog.cloudflare.com/automatically-secure"><u>Automatic SSL/TLS</u></a> will ensure that your entire connection will be PQ as long as the origin server is behind Cloudflare and supports PQ connections (even if your browser doesn’t).</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/gagcJJsc6aLeAThvV5Wa4/c01ea5a20ea19778deca13e0eb4c7de3/image4.png" />
          </figure><p><sup><i>Consumer WARP client (</i></sup><a href="https://one.one.one.one/"><sup><i><u>1.1.1.1</u></i></sup></a><sup><i>) is now upgraded to post-quantum key agreement.</i></sup></p>
    <div>
      <h2>The cryptography landscape</h2>
      <a href="#the-cryptography-landscape">
        
      </a>
    </div>
    <p>Before we get into the details of our upgrade to the WARP client, let’s review the different cryptographic primitives involved in the transition to PQC. </p><p>Key agreement is a method by which two or more parties can establish a shared secret key over an insecure communication channel. This shared secret can then be used to encrypt and authenticate subsequent communications. Classical key agreement in <a href="https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/"><u>Transport Layer Security (TLS)</u></a> typically uses the <a href="https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/"><u>Elliptic Curve Diffie Hellman (ECDH)</u></a> cryptographic algorithm, whose security can be broken by a quantum computer using <a href="https://en.wikipedia.org/wiki/Shor%27s_algorithm"><u>Shor's algorithm</u></a>. </p><p>We need <a href="https://blog.cloudflare.com/post-quantum-key-encapsulation/"><b><u>post-quantum key agreement</u></b></a> today to stop <a href="https://en.wikipedia.org/wiki/Harvest_now,_decrypt_later"><u>harvest-now-decrypt-later attacks</u></a>, where attackers collect encrypted data today, and then decrypt it in future once powerful quantum computers become available. Any institution that deals with data that could still be valuable ten years in the future (<a href="https://www.cloudflare.com/cloudflare-for-government/"><u>governments</u></a>, <a href="https://www.cloudflare.com/banking-and-financial-services/"><u>financial institutions</u></a>, <a href="https://www.cloudflare.com/healthcare/"><u>healthcare organizations</u></a>, and more) should deploy PQ key agreement to prevent these attacks.</p><p>This is why we upgraded the WARP client to post-quantum key agreement.</p><p>Post-quantum key agreement is already quite mature and performant; our <a href="https://blog.cloudflare.com/pq-2024/#ml-kem-versus-x25519"><u>experiments</u></a> have shown that deploying the post-quantumModule-Lattice-Based Key-Encapsulation Mechanism (<a href="https://csrc.nist.gov/pubs/fips/203/final"><u>ML-KEM</u></a>) algorithm in hybrid mode (in parallel with classical ECDH) over <a href="https://www.cloudflare.com/learning/ssl/why-use-tls-1.3/"><u>TLS 1.3</u></a> is actually more performant than using <a href="https://www.cloudflare.com/learning/ssl/why-use-tls-1.3/"><u>TLS 1.2</u></a> with classical cryptography. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7ggHbhukH4atXV4EIbPlrl/9845ac63363c9233fa0bff6b47a1ea79/image1.png" />
          </figure><p><sup><i>Over one-third of the human-generated traffic to our network uses TLS 1.3 with hybrid post-quantum key agreement (shown as X25519MLKEM768 in the screen capture above); in fact, if you’re on a Chrome, Edge or Firefox browser, you’re probably reading this blog right now over a PQ encrypted connection.</i></sup></p><p><b>Post-quantum digital signatures and certificates, </b>by contrast, are still in the process of being <a href="https://datatracker.ietf.org/doc/draft-ietf-lamps-dilithium-certificates/"><u>standardized</u></a> for use in TLS and the Internet’s Public Key Infrastructure (PKI). <a href="https://blog.cloudflare.com/another-look-at-pq-signatures/"><u>PQ signatures and certificates</u></a> are required to prevent an active attacker who uses a quantum computer to forge a digital certificate/signature and then uses it to decrypt or manipulate communications by impersonating a trusted server. As far as we know, we don’t have such attackers yet, which is why post-quantum signatures and certificates are not widely deployed across the Internet. We have not yet upgraded the WARP client to <a href="https://blog.cloudflare.com/another-look-at-pq-signatures/"><u>PQ signatures and certificates</u></a>, but we plan to do so soon.</p>
    <div>
      <h2>A unique challenge: PQC upgrade in the WARP client </h2>
      <a href="#a-unique-challenge-pqc-upgrade-in-the-warp-client">
        
      </a>
    </div>
    <p>While Cloudflare is on the <a href="https://blog.cloudflare.com/tag/post-quantum/"><u>forefront of the PQC transition</u></a>, a different kind of challenge emerged when we upgraded our WARP client. Unlike a server that we fully control and can hotfix at any time, our WARP client runs directly on end user devices. In fact, it runs on millions of end user devices that we do not control. This fundamental difference means that every time we update the WARP client, our release must work properly on the first try, with no room for error.</p><p>To make things even more challenging, we need to support the WARP client across five different operating systems (Windows, macOS, Linux, iOS, and Android/ChromeOS), while also ensuring consistency and reliability for both our consumer 1.1.1.1 WARP client and our Cloudflare One Agent. In addition, because the WARP client relies on the fairly new <a href="https://datatracker.ietf.org/doc/rfc9298/"><u>MASQUE protocol</u></a>, which the industry only standardized in August 2022, we need to be extra careful to make sure our upgrade to post-quantum key agreement does not expose latent bugs or instabilities in the MASQUE protocol itself. </p><p>All these challenges point to a slow and careful transition to PQC in the WARP client, while still supporting customers that want to immediately activate PQC. To accomplish this, we used three techniques: </p><ol><li><p>temporary PQC downgrades, </p></li><li><p>gradual rollout across our WARP client population, and</p></li><li><p>a <a href="https://en.wikipedia.org/wiki/Mobile_device_management"><u>Mobile Device Management (MDM)</u></a> override. </p></li></ol><p>Let’s take a deep dive into each. </p>
    <div>
      <h3>Temporary PQC downgrades</h3>
      <a href="#temporary-pqc-downgrades">
        
      </a>
    </div>
    <p>As we roll out PQ key agreement in MASQUE to the WARP client, we want to make sure we don’t have WARP clients that struggle to connect due to an error, middlebox, or a latent implementation bug triggered by our PQC migration. One way to accomplish this level of robustness is to have clients downgrade to a classic cryptographic connection if they fail to negotiate a PQ connection.</p><p>To really understand this strategy, we need to review the concept of <b>cryptographic downgrades</b>. In cryptography, a <b>downgrade attack</b> is a cyber attack where an attacker forces a system to abandon a secure cryptographic algorithm in favor of an older, less secure, or even unencrypted one that allows the attacker to introspect on the communications. Thus, when newly rolling out a PQ encryption, it is standard practice to ensure that: if the client and server <i>both </i>support PQ encryption, it should not be possible for an attacker to downgrade their connection to a classic encryption. </p><p>Thus, to prevent downgrade attacks, we should ensure that if the client and server both support PQC, but fail to negotiate a PQC connection, then the connection will just fail. However, while this prevents downgrade attacks, it also creates problems with robustness.</p><p>We cannot have both robustness (i.e. the ability for client to downgrade to a classical connection if the PQC fails) and security against downgrades (i.e. the client is forbidden to downgrade to classical cryptography once it supports PQC) at the same time. We have to choose one. For this reason, we opted for a phased approach.</p><ul><li><p><b>Phase 1: Automated PQC downgrades.</b> We start by choosing robustness at the cost of providing security against downgrade attacks.  In this phase, we support automated PQC downgrades — if a client fails to negotiate a PQC connection, it will downgrade to classical cryptography. That way, if there are bugs or other instability introduced by PQC, the client automatically downgrades to classical cryptography and the end user will not experience any issues. (Note: because MASQUE establishes a single very long-lived TLS connection only when the user logs in, an end user is unlikely to notice a downgrade.) </p></li><li><p><b>Phase 2: PQC with security against downgrades. </b>Then, once the rollout is stable and we are convinced that there are no issues interfering with PQC, we will choose security against downgrade attacks over robustness. In this phase, if a client fails to negotiate a PQC connection, the connection will just fail, which provides security against downgrade attacks.</p></li></ul><p>To implement this phased approach, we introduced an API flag that the client uses to determine how it should initiate TLS handshakes, which has three states:</p><ul><li><p><b>No PQC: </b>The client initiates a TLS handshake using classical cryptography only. .</p></li><li><p><b>PQC downgrades allowed:</b> The client initiates a TLS handshake using post-quantum key agreement. If the PQC handshake negotiation fails, the client downgrades to classical cryptography. This flag supports Phase 1 of our rollout. </p></li><li><p><b>PQC only:</b> The client initiates a TLS handshake using post-quantum key agreement cryptography. If the PQC handshake negotiation fails, the connection fails. This flag supports Phase 2 of our rollout.</p></li></ul><p>The WARP <a href="https://developers.cloudflare.com/changelog/2025-06-30-warp-windows-ga/"><u>desktop version 2025.5.893.0</u></a>, <a href="https://developers.cloudflare.com/changelog/2025-06-30-warp-ga-ios/"><u>iOS version 1.11</u></a> and <a href="https://developers.cloudflare.com/changelog/2025-06-30-warp-ga-android/"><u>Android version 2.4.2 </u></a>all support post-quantum key agreement along with this API flag.</p><p>With this as our framework, the next question becomes: what timing makes sense for this phased approach?</p>
    <div>
      <h3>Gradual rollout across the WARP client population</h3>
      <a href="#gradual-rollout-across-the-warp-client-population">
        
      </a>
    </div>
    <p>To limit the risk of errors or latent implementation bugs triggered by our PQC migration, we gradually rolled out PQC across our population of WARP clients.</p><p>In Phase 1 of our rollout, we prioritized robustness rather than security against downgrade attacks. Thus, initially the API flag is set to “No PQC” for our entire client population, and we gradually turn on the “PQC downgrades allowed” across groups of clients. As we do this, we monitor whether any clients downgrade from PQC to classical cryptography. At the time of this writing, we have completed the Phase 1 rollout to all of our consumer WARP (1.1.1.1) clients. We expect to complete Phase 1 for our Cloudflare One Agent by the end of 2025.</p><p>Downgrades are not expected during Phase 1. In fact, downgrades indicate that there may be a latent issue that we have to fix. If you are using a WARP client and encounter issues that you believe might be related to PQC, you can let us know by using the feedback button in the WARP client interface (by clicking the bug icon in the top-right corner of the WARP client application). Enterprise users can also file a support ticket for the Cloudflare One Agent.</p><p>We plan to enter Phase 2 — where the API flag is set to “PQC only” in order to provide security against downgrade attacks — by summer of mid 2026. </p>
    <div>
      <h3>MDM override</h3>
      <a href="#mdm-override">
        
      </a>
    </div>
    <p>Finally, we know that some of our customers may not be willing to wait for us to complete this careful upgrade to PQC. So, those customers can activate PQC right now. </p><p>We’ve built a <a href="https://en.wikipedia.org/wiki/Mobile_device_management"><u>Mobile Device Management (MDM)</u></a> override for the Cloudflare One Agent. MDM allows organizations to centrally manage, monitor, and secure mobile devices that access corporate resources; it works on multiple types of devices, not just mobile devices. The override for the Cloudflare One Agent allows an administrator (with permissions to manage the device) to turn on PQC. To use the <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/parameters/#enable_post_quantum"><u>MDM post-quantum override</u></a>, set the ‘enable_post_quantum’ MDM flag to true. This flag takes precedence over the signal from the API flag we described earlier, and will activate PQC without downgrades. With this setting, the client will only negotiate a PQC connection. And if the PQC negotiation fails, the connection will fail, which provides security against downgrade attacks. </p>
    <div>
      <h2>Ciphersuites, FIPS and Fedramp </h2>
      <a href="#ciphersuites-fips-and-fedramp">
        
      </a>
    </div>
    <p>The <a href="https://www.cloudflare.com/learning/privacy/what-is-fedramp/">Federal Risk and Authorization Management Program (FedRAMP)</a> is a U.S. government standard for securing federal data in the cloud. <a href="https://cf-assets.www.cloudflare.com/slt3lc6tev37/7wOGN7Ua9rvgzlQAwlFZ6y/324506e91b62aa4de55bcb2ceb5d8ee8/Cloudflare-s_Unique_FedRAMP_Architecture.pdf"><u>Cloudflare has a FedRAMP certification</u></a> that requires that we use cryptographic ciphersuites that comply with <a href="https://csrc.nist.gov/glossary/term/federal_information_processing_standard"><u>FIPS</u></a> (Federal Information Processing Standards) for certain products that are inside our FIPS boundary.</p><p>Because the WARP client is inside Cloudflare’s FIPS boundary for our <a href="https://www.fedramp.gov/"><u>FedRAMP</u></a> certification, we had to ensure it uses FIPS-compliant cryptography. For internal links (where Cloudflare controls both sides of the connection) within the FIPS boundary, we currently use a hybrid key agreement consisting of FIPS-compliant EDCH using the P256 Elliptic curve, in parallel with an early version of ML-KEM-768 (which we started using before the ML-KEM standards were finalized) — a key agreement called P256Kyber768Draft00. To observe this ciphersuite in action in your WARP client, you can use the <code>warp-cli tunnel stats</code> utility. Here’s an example of what we find when PQC is enabled:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1ilpmpuGdOAzbqX28T34tc/17254678b17ba493da1da09f10493e9e/image5.png" />
          </figure><p>And here is an example when PQC is not enabled:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3mdNurLT1USiRICpkvIKa8/1af40525be2ccaa5b6ef71824f0ace37/image6.png" />
          </figure>
    <div>
      <h2>PQC tunnels for everyone </h2>
      <a href="#pqc-tunnels-for-everyone">
        
      </a>
    </div>
    <p>We believe that PQC should be available to everyone, without <a href="https://blog.cloudflare.com/you-dont-need-quantum-hardware/"><u>specialized hardware</u></a>, at <a href="https://blog.cloudflare.com/post-quantum-crypto-should-be-free/"><u>no additional cost</u></a>. To that end, we’re proud to help shoulder the burden of the Internet’s upgrade to PQC.</p><p>A powerful strategy is to use tunnels protected by post-quantum key agreement to protect Internet traffic, in bulk, from harvest-now-decrypt-later attacks – even if the individual connections sent through the tunnel have not yet been upgraded to PQC. Eventually, we will upgrade these tunnels to also support post-quantum signatures and certificates, to stop active attacks by adversaries armed with quantum computers after Q-Day.</p><p>This staged approach keeps up with Internet standards. And the use of tunnels provides customers and end users with built-in <i>cryptographic agility</i>, so they can easily adapt to changes in the cryptographic landscape without a major architectural overhaul.</p><p>Cloudflare’s WARP client is just the latest tunneling technology that we’ve upgraded to post-quantum key agreement. You can try it out today for free on personal devices using our free consumer WARP client <a href="https://one.one.one.one/"><u>1.1.1.1</u></a>, or for your corporate devices using our <a href="https://dash.cloudflare.com/sign-up/zero-trust"><u>free zero-trust offering for teams of under 50 users</u></a> or a paid <a href="https://www.cloudflare.com/plans/zero-trust-services/"><u>enterprise zero-trust or SASE subscription</u></a>. Just <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/download-warp/"><u>download</u></a> and install the client on your Windows, Linux, macOS, iOS, Android/ChromeOS device, and start protecting your network traffic with PQC.</p><div>
  
</div><p></p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Post-Quantum]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Cryptography]]></category>
            <category><![CDATA[WARP]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[SASE]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[1.1.1.1]]></category>
            <guid isPermaLink="false">6Z8Ii372a6Lta1Y2ISnfWw</guid>
            <dc:creator>Sharon Goldberg</dc:creator>
            <dc:creator>Tochukwu Nkemdilim (Toks)</dc:creator>
            <dc:creator>Koko Uko</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare Confidence Scorecards - making AI safer for the Internet]]></title>
            <link>https://blog.cloudflare.com/cloudflare-confidence-scorecards-making-ai-safer-for-the-internet/</link>
            <pubDate>Tue, 23 Sep 2025 14:00:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare Confidence Scorecards are now live in the Application Library. Get transparent risk ratings for SaaS and Gen-AI apps. ]]></description>
            <content:encoded><![CDATA[ <p>Security and IT teams face an impossible balancing act: Employees are adopting AI tools every day, but each tool carries unique risks tied to compliance, data privacy, and security practices. Employees using these tools without seeking prior approval leads to a new type of<a href="https://www.cloudflare.com/learning/access-management/what-is-shadow-it/"><u> Shadow IT</u></a> which is referred to as <a href="https://blog.cloudflare.com/shadow-AI-analytics/"><u>Shadow AI</u></a>. Preventing Shadow AI requires manually vetting each AI application to determine whether it should be approved or disapproved. This isn’t scalable. And blanket bans of AI applications will only drive AI usage deeper underground, making it harder to secure.</p><p>That’s why today we are launching Cloudflare Application Confidence Scorecards. This is part of our new <a href="https://www.cloudflare.com/ai-security/">suite of AI Security features</a> within the Cloudflare One SASE platform. These scores bring scale and automation to the labor- and time-intensive task of evaluating generative AI and SaaS applications one by one. Instead of spending hours trying to find AI applications’ compliance certifications or data-handling practices, evaluators get a clear score that reflects an application’s safety and trustworthiness. With that signal, decision makers within organizations can confidently set policies or apply guardrails where needed, and block risky tools so their organizations can embrace innovation without compromising security.</p><p>Our Cloudflare Application Confidence Scorecards rate both AI-powered applications on a number of factors, including whether they’ve achieved industry-recognized certifications, follow certain data management and security measures, and the maturity level of the company. Meanwhile, amongst other considerations, our Generative AI confidence score awards higher scores to AI models that provide system cards that describe testing for bias, ethics, and safety considerations, and that do not train on user inputs.  We hope our emphasis on privacy, security, and safety helps drive <a href="https://blog.cloudflare.com/best-practices-sase-for-ai/">safer and more secure AI for everyone</a>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6FQPYW5ZI0vPO950CBJ0Di/3bd6f05703f522c84608882f347f3585/generative-AI-confidence-score.png" />
          </figure>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/opTtg2dkqMc7ZeUevjZjS/77bacb0c4a888622024c7a1b808d41a5/app-confidence-score.png" />
          </figure>
    <div>
      <h2>Rapid increase in Shadow AI</h2>
      <a href="#rapid-increase-in-shadow-ai">
        
      </a>
    </div>
    <p>Over the last decade, SaaS adoption has reshaped how businesses work. Employees can now pick up a new tool in minutes with nothing more than a credit card or free trial link. Now with the growth of generative AI, entire workflows are moving outside corporate oversight. From writing assistants to image generators, employees are relying on these tools daily, without knowing whether they comply with corporate or regulatory requirements. </p><p>The risks of these tools are wide-ranging. Sensitive data can be stored or transmitted outside of company controls. Tools may lack certifications such as SOC2 or ISO 27001. Many providers retain user data indefinitely or use it to train external models. Others face financial or operational instability that could disrupt your business if they go bankrupt or suffer a breach. Models can produce biased outputs that can introduce compliance risks or lead to erroneous business decisions. Security leaders tell us they cannot keep up with auditing every new application.  </p>
    <div>
      <h2>We score them for you, at scale</h2>
      <a href="#we-score-them-for-you-at-scale">
        
      </a>
    </div>
    <p>In order to make this effective, we needed two things: a rubric that could judge AI and SaaS applications, and then a mechanism to scalably score all those applications. Here’s how we did it.</p>
    <div>
      <h3>How the rubric works</h3>
      <a href="#how-the-rubric-works">
        
      </a>
    </div>
    <p>The Application Posture Score (5 points) evaluates a SaaS provider across five major categories:</p><ul><li><p><b>Security and Privacy Compliance (1.2 points):</b> Credit for SOC 2 and ISO 27001 certifications, which signal operational maturity.</p></li><li><p><b>Data Management Practices (1 point):</b> Retention windows and whether the provider shares data with third parties. Shorter retention and no sharing earns the highest marks.</p></li><li><p><b>Security Controls (1 point):</b> Support for MFA, SSO, TLS 1.3, role-based access, and session monitoring. These are the table stakes of modern SaaS security.</p></li><li><p><b>Security Reports and Incident History (1 point):</b> Availability of a trust or security page, bug bounty program, and incident response transparency. A recent material breach results in a full deduction.</p></li><li><p><b>Financial Stability (.8 points):</b> Public companies and heavily capitalized providers score highest, while startups with less funding or firms in distress score lower.</p></li></ul><p>The Gen-AI Posture Score (5 points) evaluates AI-specific risks:</p><ul><li><p><b>Compliance (1 point):</b> Presence of the ISO 42001 certification for AI management systems.</p></li><li><p><b>Deployment Security Model (1 point):</b> Whether access is authenticated and rate-limited or left publicly exposed.</p></li><li><p><b>System Card (1 point):</b> Publication of a model or system card that documents evaluations of safety, bias, and risk.</p></li><li><p><b>Training Data Governance (2 points):</b> Whether user data is explicitly excluded from model training or if there are available controls allowing opt-in/opt-out of training user data.</p></li></ul><p>Together, these scores give a transparent view of how much confidence you can place in a provider.</p>
    <div>
      <h3>How we score at scale</h3>
      <a href="#how-we-score-at-scale">
        
      </a>
    </div>
    <p>In the same way it’s not scalable for you to stay on top of every new AI and SaaS tool being created, our team quickly realized that we too would have the same problem. AI applications are being spun up so quickly that trying to keep pace manually would require a large team of people. </p><p>We knew we had to build a methodology to do it automatically, so we designed infrastructure that can crawl the Internet to answer the rubric questions at scale. We built a system that scrapes public trust centers, privacy policies, security pages, and compliance documents. Large language models parse those documents to identify relevant answers, but we also hardened the process to resist hallucinations by requiring source validation and structured extraction.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6qKD3BGqJ4h4COX4GAYU5S/b0848f940e7c9e7bbdbd78ed09983c0c/image1.png" />
          </figure><p>Every score produced by automation is then reviewed and audited by Cloudflare analysts before it goes live in the Application Library. This combination of automated crawling/extraction and human validation makes sure that the scores are both comprehensive and trustworthy.</p>
    <div>
      <h2>We make it easy to act on it</h2>
      <a href="#we-make-it-easy-to-act-on-it">
        
      </a>
    </div>
    <p>Confidence scores are built directly into the Application Library, making them actionable from day one. When you click on a score in your Cloudflare dashboard, you will see a detailed breakdown of how the app performed across each dimension of the rubric. Scores update as vendors improve their security and compliance, giving you a live view instead of a static report.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6FwChyEBXFyDOHWX3WepFw/13802cc41464cc07ab4ea55f4e4d5caa/BLOG-2961-1.png" />
          </figure><p>This approach makes life easier for every stakeholder. IT and security teams can spot high-risk tools at a glance. Procurement Governance Risk &amp; Compliance teams can accelerate vendor reviews while developers and employees can make smarter choices without waiting weeks for approvals.</p>
    <div>
      <h2>And it’s getting even better</h2>
      <a href="#and-its-getting-even-better">
        
      </a>
    </div>
    <p>Visibility is just the start. Soon, these scores will also drive enforcement across your Cloudflare One environment. You will be able to use Gateway to block or warn employees about low-scoring apps or tie DLP policies directly to confidence scores. That way untrusted AI and SaaS providers never become a backdoor for sensitive information.</p><p>By embedding scores into both visibility and enforcement, we are turning them into a tool for keeping your corporate environment safer.</p>
    <div>
      <h2>Interested in these scores?</h2>
      <a href="#interested-in-these-scores">
        
      </a>
    </div>
    <p>Cloudflare Application Confidence Scorecards are now live in the Application Library. You can explore them today in the Cloudflare dashboard, use them to evaluate the tools your teams rely on, and soon enforce policies across the Cloudflare Zero Trust platform.</p><p>This is one more step in our mission to make the Internet safer, faster, and more reliable not just for networks, but for the applications and AI tools that power modern work.</p><p>If you are a Cloudflare customer you can check out the <a href="https://developers.cloudflare.com/cloudflare-one/applications/app-library/"><u>Application Library</u></a>, explore the confidence scores, and let us know what you think. And if you’re not — fear not! — application scores are freely available to all users, including free. You can <a href="https://dash.cloudflare.com/sign-up/zero-trust"><u>get started</u></a> by simply creating a free account — and seeing these scores yourself. </p><p>Finally, if you want to get involved testing new functionality or sharing insights related to <a href="https://www.cloudflare.com/learning/ai/what-is-ai-security/">AI security</a>, we would love for you to express interest in <a href="https://www.cloudflare.com/lp/ai-security-user-research-program-2025/"><u>joining our user research program</u></a>. </p> ]]></content:encoded>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[SASE]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[AI-SPM]]></category>
            <guid isPermaLink="false">Z2wzT0u3Zixm6qdFEYWZo</guid>
            <dc:creator>Ayush Kumar</dc:creator>
            <dc:creator>Sharon Goldberg</dc:creator>
        </item>
        <item>
            <title><![CDATA[Connect and secure any private or public app by hostname, not IP — free for everyone in Cloudflare One]]></title>
            <link>https://blog.cloudflare.com/tunnel-hostname-routing/</link>
            <pubDate>Thu, 18 Sep 2025 14:00:00 GMT</pubDate>
            <description><![CDATA[ Tired of IP Lists? Securely connect private networks to any app by its hostname, not its IP address. This routing is now built into Cloudflare Tunnel and is free for all Cloudflare One customers. ]]></description>
            <content:encoded><![CDATA[ <p>Connecting to an application should be as simple as knowing its name. Yet, many security models still force us to rely on brittle, ever-changing IP addresses. And we heard from many of you that managing those ever-changing IP lists was a constant struggle. </p><p>Today, we’re taking a major step toward making that a relic of the past.</p><p>We're excited to announce that you can now route traffic to <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>Cloudflare Tunnel</u></a> based on a hostname or a domain. This allows you to use Cloudflare Tunnel to build simple zero-trust and egress policies for your private and public web applications without ever needing to know their underlying IP. This is one more step on our <a href="https://blog.cloudflare.com/egress-policies-by-hostname/"><u>mission</u></a> to strengthen platform-wide support for hostname- and domain-based policies in the <a href="https://developers.cloudflare.com/cloudflare-one/"><u>Cloudflare One</u></a> <a href="https://www.cloudflare.com/learning/access-management/what-is-sase/">SASE</a> platform, simplifying complexity and improving security for our customers and end users. </p>
    <div>
      <h2>Grant access to applications, not networks</h2>
      <a href="#grant-access-to-applications-not-networks">
        
      </a>
    </div>
    <p>In August 2020, the National Institute of Standards (NIST) published <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf"><u>Special Publication 800-207</u></a>, encouraging organizations to abandon the "castle-and-moat" model of security (where trust is established on the basis of network location) and move to a <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust model </a>(where we “<a href="https://www.whitehouse.gov/wp-content/uploads/2022/01/M-22-09.pdf"><u>verify anything and everything attempting to establish access</u></a>").</p><p>Now, instead of granting broad network permissions, you grant specific access to individual resources. This concept, known as per-resource authorization, is a cornerstone of the Zero Trust framework, and it presents a huge change to how organizations have traditionally run networks. Per-resource authorization requires that access policies be configured on a per-resource basis. By applying the principle of least privilege, you give users access only to the resources they absolutely need to do their job. This tightens security and shrinks the potential attack surface for any given resource.</p><p>Instead of allowing your users to access an entire network segment, like <code><b>10.131.0.0/24</b></code>, your security policies become much more precise. For example:</p><ul><li><p>Only employees in the "SRE" group running a managed device can access <code><b>admin.core-router3-sjc.acme.local</b></code>.</p></li><li><p>Only employees in the "finance" group located in Canada can access <code><b>canada-payroll-server.acme.local</b></code>.</p></li><li><p>All employees located in New York can access<b> </b><code><b>printer1.nyc.acme.local</b></code>.</p></li></ul><p>Notice what these powerful, granular rules have in common? They’re all based on the resource’s private <b>hostname</b>, not its IP address. That’s exactly what our new hostname routing enables. We’ve made it dramatically easier to write effective zero trust policies using stable hostnames, without ever needing to know the underlying IP address.</p>
    <div>
      <h2>Why IP-based rules break</h2>
      <a href="#why-ip-based-rules-break">
        
      </a>
    </div>
    <p>Let's imagine you need to secure an internal server, <code><b>canada-payroll-server.acme.local</b></code>. It’s hosted on internal IP <code><b>10.4.4.4</b></code> and its hostname is available in internal private DNS, but not in public DNS. In a modern cloud environment, its IP address is often the least stable thing about it. If your security policy is tied to that IP, it's built on a shaky foundation.</p><p>This happens for a few common reasons:</p><ul><li><p><b>Cloud instances</b>: When you launch a compute instance in a cloud environment like AWS, you're responsible for its <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hostname-types.html"><u>hostname</u></a>, but not always its IP address. As a result, you might only be tracking the hostname and may not even know the server's IP.</p></li><li><p><b>Load Balancers</b>: If the server is behind a load balancer in a cloud environment (like AWS ELB), its IP address could be changing dynamically in response to <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html"><u>changes in traffic</u></a>.</p></li><li><p><b>Ephemeral infrastructure</b>: This is the "<a href="https://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle/"><u>cattle, not pets</u></a>" world of modern infrastructure. Resources like servers in an autoscaling group, containers in a Kubernetes cluster, or applications that spin down overnight are created and destroyed as needed. They keep a persistent hostname so users can find them, but their IP is ephemeral and changes every time they spin up.</p></li></ul><p>To cope with this, we've seen customers build complex scripts to maintain dynamic "IP Lists" — mappings from a hostname to its IPs that are updated every time the address changes. While this approach is clever, maintaining IP Lists is a chore. They are brittle, and a single error could cause employees to lose access to vital resources.</p><p>Fortunately, hostname-based routing makes this IP List workaround obsolete.</p>
    <div>
      <h2>How it works: secure a private server by hostname using Cloudflare One SASE platform</h2>
      <a href="#how-it-works-secure-a-private-server-by-hostname-using-cloudflare-one-sase-platform">
        
      </a>
    </div>
    <p>To see this in action, let's create a policy from our earlier example: we want to grant employees in the "finance" group located in Canada access to <code><b>canada-payroll-server.acme.local</b></code>. Here’s how you do it, without ever touching an IP address.</p><p><b>Step 1: Connect your private network</b></p><p>First, the server's network needs a secure connection to Cloudflare's global network. You do this by installing our lightweight agent, <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>cloudflared</u></a>, in the same local area network as the server, which creates a secure Cloudflare Tunnel. You can create a new tunnel directly from cloudflared by running <code><b>cloudflared tunnel create &lt;TUNNEL-NAME&gt;</b></code> or using your Zero Trust dashboard.</p><div>
  
</div><p>
<b>Step 2: Route the hostname to the tunnel</b></p><p>This is where the new capability comes into play. In your Zero Trust dashboard, you now establish a route that binds the <i>hostname</i> <code>canada-payroll-server.acme.local</code> directly to that tunnel. In the past, you could only route an IP address (<code>10.4.4.4)</code> or its subnet (<code>10.4.4.0/24</code>). That old method required you to create and manage those brittle IP Lists we talked about. Now, you can even route entire domains, like <code>*.acme.local</code>, directly to the tunnel, simply by creating a hostname route to <code>acme.local</code>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3mcoBAILYENIP6kGW4tw96/bb7ec6571ae7b4f04b5dc0456f694d59/1.png" />
          </figure><p>For this to work, you must delete your private network’s subnet (in this case <code>10.0.0.0/8</code>) and <code>100.64.0.0/10</code> from the <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/split-tunnels/"><u>Split Tunnels Exclude</u></a> list. You also need to remove <code>.local</code> from the <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/local-domains/"><u>Local Domain Fallback</u></a>.</p><p>(As an aside, we note that this feature also works with domains. For example, you could bind <code>*.acme.local</code> to a single tunnel, if desired.)</p><p><b>Step 3: Write your zero trust policy</b></p><p>Now that Cloudflare knows <i>how</i> to reach your server by its name, you can write a policy to control <i>who</i> can access it. You have a couple of options:</p><ul><li><p><b>In Cloudflare Access (for HTTPS applications):</b> Write an <a href="https://developers.cloudflare.com/cloudflare-one/applications/non-http/self-hosted-private-app/"><u>Access policy</u></a> that grants employees in the “finance” group access to the private hostname <code>canada-payroll-server.acme.local</code>. This is ideal for applications accessible over HTTPS on port 443.
</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7lIZI9ThsAWtxFZZis3HtZ/08451586dbe373ff137bd9e91d23dea6/2.png" />
          </figure><p></p></li><li><p><b>In Cloudflare Gateway (for HTTPS applications):</b> Alternatively, write a <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/"><u>Gateway policy</u></a> that grants employees in the “finance” group access to the <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/network-policies/#sni"><u>SNI</u></a> <code>canada-payroll-server.acme.local</code>. This <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/network-policies/protocol-detection/"><u>works</u></a> for services accessible over HTTPS on any port.
</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5GpwDZNmdzapOyjOgFFlKD/50e2d0df64d2230479ad8d0a013de24b/3.png" />
          </figure><p></p></li><li><p><b>In Cloudflare Gateway (for non-HTTP applications):</b> You can also write a <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/"><u>Gateway policy</u></a> that blocks DNS resolution <code>canada-payroll-server.acme.local</code> for all employees except the “finance” group.</p></li></ul>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3na5Mf6UMpBcKYm6JWmnzd/5791054c944300e667c3829e9bd8c6ec/4.png" />
          </figure><p>The principle of "trust nothing" means your security posture should start by denying traffic by default. For this setup to work in a true Zero Trust model, it should be paired with a default Gateway policy that blocks all access to your internal IP ranges. Think of this as ensuring all doors to your private network are locked by default. The specific <code>allow</code> policies you create for hostnames then act as the keycard, unlocking one specific door only for authorized users.</p><p>Without that foundational "deny" policy, creating a route to a private resource would make it accessible to everyone in your organization, defeating the purpose of a least-privilege model and creating significant security risks. This step ensures that only the traffic you explicitly permit can ever reach your corporate resources.</p><p>And there you have it. We’ve walked through the entire process of writing a per-resource policy using only the server’s private hostname. No IP Lists to be seen anywhere, simplifying life for your administrators.</p>
    <div>
      <h2>Secure egress traffic to third-party applications</h2>
      <a href="#secure-egress-traffic-to-third-party-applications">
        
      </a>
    </div>
    <p>Here's another powerful use case for hostname routing: controlling outbound connections from your users to the public Internet. Some third-party services, such as banking portals or partner APIs, use an IP allowlist for security. They will only accept connections that originate from a specific, dedicated public source IP address that belongs to your company.</p><p>This common practice creates a challenge. Let's say your banking portal at <code>bank.example.com</code> requires all traffic to come from a dedicated source IP <code>203.0.113.9</code> owned by your company. At the same time, you want to enforce a zero trust policy that <i>only</i> allows your finance team to access that portal. You can't build your policy based on the bank's destination IP — you don't control it, and it could change at any moment. You have to use its hostname.</p><p>There are two ways to solve this problem. First, if your dedicated source IP is purchased from Cloudflare, you can use the <a href="https://blog.cloudflare.com/egress-policies-by-hostname/"><u>“egress policy by hostname” feature</u></a> that we announced previously. By contrast, if your dedicated source IP belongs to your organization, or is leased from cloud provider, then we can solve this problem with hostname-based routing, as shown in the figure below:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6wXu6FMiiVz4lXsESFrBTg/e1bb13e8eef0653ab311d0800d95f391/5.png" />
          </figure><p>Here’s how this works:</p><ol><li><p><b>Force traffic through your dedicated IP.</b> First, you deploy a <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>Cloudflare Tunnel</u></a> in the network that owns your dedicated IP (for example, your primary VPC in a cloud provider). All traffic you send through this tunnel will exit to the Internet with <code>203.0.113.9</code> as its source IP.</p></li><li><p><b>Route the banking app to that tunnel.</b> Next, you create a hostname route in your Zero Trust dashboard. This rule tells Cloudflare: "Any traffic destined for <code>bank.example.com</code> must be sent through this specific tunnel."</p></li><li><p><b>Apply your user policies.</b> Finally, in Cloudflare Gateway, you create your granular access rules. A low-priority <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/network-policies/"><u>network policy</u></a> blocks access to the <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/network-policies/#sni"><u>SNI</u></a> <code>bank.example.com</code> for everyone. Then, a second, higher-priority policy explicitly allows users in the "finance" group to access the <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/network-policies/#sni"><u>SNI</u></a> <code>bank.example.com</code>.</p></li></ol><p>Now, when a finance team member accesses the portal, their traffic is correctly routed through the tunnel and arrives with the source IP the bank expects. An employee from any other department is blocked by Gateway before their traffic even enters the tunnel. You've enforced a precise, user-based zero trust policy for a third-party service, all by using its public hostname.</p>
    <div>
      <h2>Under the hood: how hostname routing works</h2>
      <a href="#under-the-hood-how-hostname-routing-works">
        
      </a>
    </div>
    <p>To build this feature, we needed to solve a classic networking challenge. The routing mechanism for Cloudflare Tunnel is a core part of Cloudflare Gateway, which operates at both Layer 4 (TCP/UDP) and Layer 7 (HTTP/S) of the network stack.</p><p>Cloudflare Gateway must make a decision about which Cloudflare Tunnel to send traffic upon receipt of the very first IP packet in the connection. This means the decision must necessarily be made at Layer 4, where Gateway only sees the IP and TCP/UDP headers of a packet. IP and TCP/UDP headers contain the destination IP address, but do not contain destination <i>hostname</i>. The hostname is only found in Layer 7 data (like a TLS SNI field or an HTTP Host header), which isn't even available until after the Layer 4 connection is already established.</p><p>This creates a dilemma: how can we route traffic based on a hostname before we've even seen the hostname? </p>
    <div>
      <h3>Synthetic IPs to the rescue</h3>
      <a href="#synthetic-ips-to-the-rescue">
        
      </a>
    </div>
    <p>The solution lies in the fact that Cloudflare Gateway also acts as a DNS resolver. This means we see the user's <i>intent </i>— the DNS query for a hostname — <i>before</i> we see the actual application traffic. We use this foresight to "tag" the traffic using a <a href="https://blog.cloudflare.com/egress-policies-by-hostname/"><u>synthetic IP address</u></a>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7Kd3x5SppGp8G4KZeO34n/67b338ca8e81db63e110dc89c7596bf6/6.png" />
          </figure><p>Let’s walk through the flow:</p><ol><li><p><b>DNS Query</b>. A user's device sends a DNS query for
 <code>canada-payroll-server.acme.local </code>to the Gateway resolver.</p></li><li><p><b>Private Resolution</b>. Gateway asks the <code>cloudflared </code>agent running in your private network to resolve the real IP for that hostname. Since <code>cloudflared</code> has access to your internal DNS, it finds the real private IP <code>10.4.4.4</code>, and sends it back to the Gateway resolver.</p></li><li><p><b>Synthetic Response</b>. Here's the key step. Gateway resolver <b>does not</b> send the real IP (<code>10.4.4.4</code>) back to the user. Instead, it temporarily assigns an <i>initial resolved IP</i> from a reserved Carrier-Grade NAT (CGNAT) address space (e.g., <code>100.80.10.10</code>) and sends the initial resolved IP back to the user's device. The initial resolved IP acts as a tag that allows Gateway to identify network traffic destined to <code>canada-payroll-server.acme.local</code>. The initial resolved IP is randomly selected and temporarily assigned from one of the two IP address ranges:</p><ul><li><p>IPv4: <code>100.80.0.0/16</code></p></li><li><p>IPv6: <code>2606:4700:0cf1:4000::/64</code> </p></li></ul></li><li><p><b>Traffic Arrives</b>. The user's device sends its application traffic (e.g., an HTTPS request) to the destination IP it received from Gateway resolver: the initial resolved IP <code>100.80.10.10</code>.</p></li><li><p><b>Routing and Rewriting</b>. When Gateway sees an incoming packet destined for <code>100.80.10.10</code>, it knows this traffic is for <code>canada-payroll-server.acme.local</code> and must be sent through a specific Cloudflare Tunnel. It then rewrites the destination IP on the packet back to the <i>real</i> private destination IP (<code>10.4.4.4</code>) and sends it down the correct tunnel.</p></li></ol><p>The traffic goes down the tunnel and arrives at <code>canada-payroll-server.acme.local</code> at IP (<code>10.4.4.4)</code> and the user is connected to the server without noticing any of these mechanisms. By intercepting the DNS query, we effectively tag the network traffic stream, allowing our Layer 4 router to make the right decision without needing to see Layer 7 data.</p>
    <div>
      <h2>Using Gateway Resolver Policies for fine grained control</h2>
      <a href="#using-gateway-resolver-policies-for-fine-grained-control">
        
      </a>
    </div>
    <p>The routing capabilities we've discussed provide simple, powerful ways to connect to private resources. But what happens when your network architecture is more complex? For example, what if your private DNS servers are in one part of your network, but the application itself is in another?</p><p>With Cloudflare One, you can solve this by creating policies that separate the path for DNS resolution from the path for application traffic for the very same hostname using <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/resolver-policies"><u>Gateway Resolver Policies</u></a>. This gives you fine-grained control to match complex network topologies.</p><p>Let's walk through a scenario:</p><ul><li><p>Your private DNS resolvers, which can resolve <code><b>acme.local</b></code>, are located in your core datacenter, accessible only via <code><b>tunnel-1</b></code>.</p></li><li><p>The webserver for <code><b>canada-payroll-server.acme.local</b></code><b> </b>is hosted in a specific cloud VPC, accessible only via <code><b>tunnel-2</b></code>.</p></li></ul>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2sVMsS4DhuN2yoTlGWTK5X/e5a66330c951e7b65428f5c76b5c7b0a/7.png" />
          </figure><p>Here’s how to configure this split-path routing.</p><p><b>Step 1: Route DNS Queries via </b><code><b>tunnel-1</b></code></p><p>First, we need to tell Cloudflare Gateway how to reach your private DNS server</p><ol><li><p><b>Create an IP Route:</b> In the Networks &gt; Tunnels area of your Zero Trust dashboard, create a route for the IP address of your private DNS server (e.g., <code><b>10.131.0.5/32</b></code>) and point it to <code><b>tunnel-1</b></code><code>.</code> This ensures any traffic destined for that specific IP goes through the correct tunnel to your datacenter.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/32JcjFZXGuhDEHHlWJoF1C/4223a6f2e5b7b49015abfbfd9b4fd20f/8.png" />
          </figure><p></p></li><li><p><b>Create a Resolver Policy:</b> Go to <b>Gateway -&gt; Resolver Policies</b> and create a new policy with the following logic:</p><ul><li><p><b>If</b> the query is for the domain <code><b>acme.local</b></code> …</p></li><li><p><b>Then</b>... resolve it using a designated DNS server with the IP <code><b>10.131.0.5</b></code>.
</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2j8kYsD692tCRYcDKoDXvb/7dbb20f426ba47350fb0b2906046d5f0/9.png" />
          </figure><p></p></li></ul></li></ol><p>With these two rules, any DNS lookup for <code><b>acme.local</b></code> from a user's device will be sent through <code>tunnel-1</code> to your private DNS server for resolution.</p><p><b>Step 2: Route Application Traffic via </b><code><b>tunnel-2</b></code></p><p>Next, we'll tell Gateway where to send the actual traffic (for example, HTTP/S) for the application.</p><p><b>Create a Hostname Route:</b> In your Zero Trust dashboard, create a <b>hostname route</b> that binds <code><b>canada-payroll-server.acme.local </b></code>to <code><b>tunnel-2</b></code>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3Ufzpsb1FUYrM39gMiyovs/c5d10828f58b0e7c854ff9fa721e1757/10.png" />
          </figure><p>This rule instructs Gateway that any application traffic (like HTTP, SSH, or any TCP/UDP traffic) for <code><b>canada-payroll-server.acme.local</b></code> must be sent through <code><b>tunnel-2</b></code><b> </b>leading to your cloud VPC.</p><p>Similarly to a setup without Gateway Resolver Policy, for this to work, you must delete your private network’s subnet (in this case <code>10.0.0.0/8</code>) and <code>100.64.0.0/10</code> from the <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/split-tunnels/"><u>Split Tunnels Exclude</u></a> list. You also need to remove <code>.local</code> from the <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/local-domains/"><u>Local Domain Fallback</u></a>.</p><p><b>Putting It All Together</b></p><p>With these two sets of policies, the "synthetic IP" mechanism handles the complex flow:</p><ol><li><p>A user tries to access <code>canada-payroll-server.acme.local</code>. Their device sends a DNS query to Cloudflare Gateway Resolver.</p></li><li><p>This DNS query matches a Gateway Resolver Policy, causing Gateway Resolver to forward the DNS query through <code>tunnel-1</code> to your private DNS server (<code>10.131.0.5</code>).</p></li><li><p>Your DNS server responds with the server’s actual private destination IP (<code>10.4.4.4</code>).</p></li><li><p>Gateway receives this IP and generates a “synthetic” initial resolved IP (<code>100.80.10.10</code>) which it sends back to the user's device.</p></li><li><p>The user's device now sends the HTTP/S request to the initial resolved IP (<code>100.80.10.10</code>).</p></li><li><p>Gateway sees the network traffic destined for the initial resolved IP (<code>100.80.10.10</code>) and, using the mapping, knows it's for <code>canada-payroll-server.acme.local</code>.</p></li><li><p>The Hostname Route now matches. Gateway sends the application traffic through tunnel-2 and rewrites its destination IP to the webserver’s actual private IP (<code>10.4.4.4</code>).</p></li><li><p>The <code>cloudflared</code> agent at the end of tunnel-2 forwards the traffic to the application's destination IP (<code>10.4.4.4</code>), which is on the same local network.</p></li></ol><p>The user is connected, without noticing that DNS and application traffic have been routed over totally separate private network paths. This approach allows you to support sophisticated split-horizon DNS environments and other advanced network architectures with simple, declarative policies.</p>
    <div>
      <h2>What onramps does this support?</h2>
      <a href="#what-onramps-does-this-support">
        
      </a>
    </div>
    <p>Our hostname routing capability is built on the "synthetic IP" (also known as <i>initially resolved IP</i>) mechanism detailed earlier, which requires specific Cloudflare One products to correctly handle both the DNS resolution and the subsequent application traffic. Here’s a breakdown of what’s currently supported for connecting your users (on-ramps) and your private applications (off-ramps).</p>
    <div>
      <h4><b>Connecting Your Users (On-Ramps)</b></h4>
      <a href="#connecting-your-users-on-ramps">
        
      </a>
    </div>
    <p>For end-users to connect to private hostnames, the feature currently works with <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/"><b><u>WARP Client</u></b></a>, agentless <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/agentless/pac-files/"><b><u>PAC files</u></b></a> and <a href="https://developers.cloudflare.com/cloudflare-one/policies/browser-isolation/"><b><u>Browser Isolation</u></b></a>.</p><p>Connectivity is also possible when users are behind <a href="https://developers.cloudflare.com/magic-wan/"><b><u>Magic WAN</u></b></a> (in active-passive mode) or <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/private-net/warp-connector/"><b><u>WARP Connector</u></b></a>, but it requires some additional configuration. To ensure traffic is routed correctly, you must update the routing table on your device or router to send traffic for the following destinations through Gateway:</p><ul><li><p>The initially resolved IP ranges: <code>100.80.0.0/16</code> (IPv4) and <code>2606:4700:0cf1:4000::/64</code> (IPv6).</p></li><li><p>The private network CIDR where your application is located (e.g., <code>10.0.0.0/8)</code>.</p></li><li><p>The IP address of your internal DNS resolver.</p></li><li><p>The Gateway DNS resolver IPs: <code>172.64.36.1</code> and <code>172.64.36.2</code>.</p></li></ul><p>Magic WAN customers will also need to point their DNS resolver to these Gateway resolver IPs and ensure they are running Magic WAN tunnels in active-passive mode: for hostname routing to work, DNS queries and the resulting network traffic must reach Cloudflare over the same Magic WAN tunnel. Currently, hostname routing will not work if your end users are at a site that has more than one Magic WAN tunnel actively transiting traffic at the same time.</p>
    <div>
      <h4><b>Connecting Your Private Network (Off-Ramps)</b></h4>
      <a href="#connecting-your-private-network-off-ramps">
        
      </a>
    </div>
    <p>On the other side of the connection, hostname-based routing is designed specifically for applications connected via <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><b><u>Cloudflare Tunnel</u></b></a> (<code>cloudflared</code>). This is currently the only supported off-ramp for routing by hostname.</p><p>Other traffic off-ramps, while fully supported for IP-based routing, are not yet compatible with this specific hostname-based feature. This includes using Magic WAN, WARP Connector, or WARP-to-WARP connections as the off-ramp to your private network. We are actively working to expand support for more on-ramps and off-ramps in the future, so stay tuned for more updates.</p>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>By enabling routing by hostname directly within Cloudflare Tunnel, we’re making security policies simpler, more resilient, and more aligned with how modern applications are built. You no longer need to track ever-changing IP addresses. You can now build precise, per-resource authorization policies for HTTPS applications based on the one thing that should matter: the name of the service you want to connect to. This is a fundamental step in making a zero trust architecture intuitive and achievable for everyone.</p><p>This powerful capability is available today, built directly into Cloudflare Tunnel and free for all Cloudflare One customers.</p><p>Ready to leave IP Lists behind for good? Get started by exploring our <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/private-net/cloudflared/connect-private-hostname/"><u>developer documentation</u></a> to configure your first hostname route. If you're new to <a href="https://developers.cloudflare.com/cloudflare-one/"><u>Cloudflare One</u></a>, you can sign up today and begin securing your applications and networks in minutes.</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Tunnel]]></category>
            <category><![CDATA[SASE]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Cloudflare Network]]></category>
            <category><![CDATA[Cloudflare Gateway]]></category>
            <category><![CDATA[Egress]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Access Control Lists (ACLs)]]></category>
            <category><![CDATA[Hostnames]]></category>
            <guid isPermaLink="false">gnroEH7P2oE00Ba0wJLHT</guid>
            <dc:creator>Nikita Cano</dc:creator>
            <dc:creator>Sharon Goldberg</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing Cloudflare Application Confidence Score For AI Applications]]></title>
            <link>https://blog.cloudflare.com/confidence-score-rubric/</link>
            <pubDate>Tue, 26 Aug 2025 14:00:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare will provide confidence scores within our application library for Gen AI applications, allowing customers to assess their risk for employees using shadow IT.  ]]></description>
            <content:encoded><![CDATA[ 
    <div>
      <h2>Introduction</h2>
      <a href="#introduction">
        
      </a>
    </div>
    <p>The availability of SaaS and <a href="https://www.cloudflare.com/learning/ai/what-is-generative-ai/"><u>Gen AI</u></a> applications is transforming how businesses operate, boosting collaboration and productivity across teams. However, with increased productivity comes increased risk, as employees turn to unapproved SaaS and Gen AI applications, often dumping sensitive data into them for quick productivity wins. </p><p>The prevalence of “Shadow IT” and “Shadow AI” creates multiple problems for security, IT, GRC and legal teams. For example:</p><ul><li><p>Gen AI applications may train their models on user inputs, which could expose proprietary corporate information to third parties, competitors, or even through clever attacks like <a href="https://genai.owasp.org/llmrisk/llm01-prompt-injection/"><u>prompt injection</u></a>. </p></li><li><p>Applications may retain user data for long periods, share data with <a href="https://www.malwarebytes.com/blog/news/2025/02/deepseek-found-to-be-sharing-user-data-with-tiktok-parent-company-bytedance#:~:text=PIPC%20said%20that%20DeepSeek%E2%80%94an,without%20disclosure%20or%20explicit%20consent."><u>third parties</u></a>, have <a href="https://www.wiz.io/blog/38-terabytes-of-private-data-accidentally-exposed-by-microsoft-ai-researchers"><u>lax security practices</u></a>, suffer a <a href="https://www.wired.com/story/mcdonalds-ai-hiring-chat-bot-paradoxai/"><u>data breach</u></a>, or even go <a href="https://www.npr.org/2025/03/24/nx-s1-5338622/23andme-bankruptcy-genetic-data-privacy"><u>bankrupt</u></a>, leaving sensitive data exposed to the highest bidder.  </p></li><li><p>Gen AI applications may produce outputs that are biased, unsafe or incorrect, leading to <a href="https://www.europarl.europa.eu/thinktank/en/document/EPRS_ATA(2025)769509"><u>compliance violations</u></a> or <a href="https://www.bbc.com/news/world-us-canada-65735769"><u>bad</u></a> <a href="https://www.theguardian.com/media/2023/oct/31/microsoft-accused-of-damaging-guardians-reputation-with-ai-generated-poll"><u>business</u></a> <a href="https://www.reuters.com/article/world/insight-amazon-scraps-secret-ai-recruiting-tool-that-showed-bias-against-women-idUSKCN1MK0AG/"><u>decisions</u></a>.</p></li></ul><p>In spite of these problems, <a href="https://www.cloudflare.com/the-net/banning-ai/"><u>blanket bans of Gen AI</u></a> don't work. They stifle innovation and push employee usage underground. Instead, organizations need smarter controls.</p><p>Security, IT, legal and GRC teams therefore face a difficult challenge: how can you appropriately assess each third-party application, without auditing and crafting individual policies for every single one of them that your employees might decide to interact with? And with the rate at which they’re proliferating — how could you possibly hope to keep abreast of them all?</p><p>Today, we’re excited to announce that we’re helping these teams automate assessment of SaaS and Gen AI applications at scale with the introduction of our new <b>Cloudflare Application Confidence Scores. </b>Scores will soon be available as part of our new suite of <a href="https://blog.cloudflare.com/best-practices-sase-for-ai/"><u>AI Security Posture Management (AI-SPM)</u></a> features in the Cloudflare One SASE platform, enabling IT and Security administrators to identify confidence levels associated with third-party SaaS and AI applications, and ultimately write policies informed by those confidence scores. We’re starting by scoring AI applications, because that’s where the need is most urgent.</p><p>In this blog, we’ll be covering the design of our Cloudflare Application Confidence Score, focusing specifically about the features of the score and our scoring rubric.  Our current goal is to reveal the details of our scoring rubric, which is designed to be as transparent and objective as possible — while simultaneously <a href="https://www.cloudflare.com/ai-security/">helping organizations of all sizes safely adopt AI</a>, and encouraging the industry and AI providers to adopt <a href="https://www.cloudflare.com/learning/ai/what-is-ai-security/">best practices for AI safety and security</a>.  </p><p>In the future, as part of our mission to help build a better Internet, we also plan to make Cloudflare Application Confidence Scores available for free to all our customer tiers. And even if you aren’t a Cloudflare customer, you will easily be able to browse through these Scores by creating a free account on the Cloudflare <a href="https://dash.cloudflare.com/"><u>dashboard</u></a> and navigating to our new <a href="https://developers.cloudflare.com/changelog/2025-07-07-dashboard-app-library/"><u>Application Library</u></a>.  </p>
    <div>
      <h2>Transparency, not vibes</h2>
      <a href="#transparency-not-vibes">
        
      </a>
    </div>
    <p>Cloudflare Application Confidence Scores is a transparent, understandable, and accountable metric that measures app safety, security, and data protection. It’s designed to give Security, IT, legal and GRC teams a rapid way of assessing the rapidly burgeoning space of AI applications.</p><p>Scores are not based on vibes or black-box “learning algorithms” or “artificial intelligence engines”.  We avoid subjective judgments or large-scale red-teaming as those can be tough to execute reliably and consistently over time. Instead, scores will be computed against an objective rubric that we describe in detail in this blog. Our rubric will be publicly maintained and kept up to date in the Cloudflare developer docs. </p><p>Many providers of the applications that we score are also our customers and partners, so our overarching goal is to be as fair and accountable as possible. We believe that transparency will build trust in our scoring rubric and guide the industry to adopt the best practices that our scoring rubric encourages. </p>
    <div>
      <h2>Principles behind our rubric</h2>
      <a href="#principles-behind-our-rubric">
        
      </a>
    </div>
    <p>Each component of our rubric requires a simple answer based on publicly available data like privacy policies, security documentation, compliance certifications, model cards and incident reports. If something isn't publicly disclosed, we assign zero points to that component of the rubric, with no further assumptions or guesswork.  Scores are computed according to our rubric via an automated system that incorporates human oversight for accuracy.  We use crawlers to collect public information (e.g. privacy policies, compliance documents), process it using AI for extraction and to compute the resulting scores, and then send them to human analysts for a final review.   </p><p>Scores are reviewed on a periodic basis. If a vendor believes that we have mis-scored their application, they can submit supporting documentation via <a><u>app-confidence-scores@cloudflare.com</u></a>, and we will update their score if appropriate.</p><p>Scores are on a scale from 1 to 5, with 5 being the highest confidence and 1 being the most risky. We decided to use a <b>"confidence score"</b> instead of a <b>"risk score"</b> because we can express confidence in an application when it provides clear positive evidence of good security, compliance and safety practices. An application may have good practices internally, but we cannot express confidence in these practices if they are not publicly documented. Moreover, a confidence score allows us to give customers transparent information, so they can make their own informed decisions. For example, an application might get a low confidence score because it lacks a documented data retention policy. While that might be a concern for some, your organization might find it acceptable and decide to allow the application anyway.</p><p>We separately evaluate different account tiers for the same application provider, because different account tiers can provide very different levels of enterprise risk. For instance, consumer plans (e.g. ChatGPT Free) may involve training on user prompts and score lower, whereas enterprise plans (e.g. ChatGPT Enterprise) do not train on user prompts and thus score higher. </p><p>That said, we are quite opinionated about components we selected in our rubric, drawing from deep experience of our own internal product, engineering, legal, GRC, and security teams. We prioritize factors like data retention policies and encryption standards because we believe they are foundational to protecting sensitive information in an AI-driven world. We included certifications, security frameworks and model cards because they provide evidence of maturity, stability, safety and adherence with industry best practices.</p>
    <div>
      <h2>Actually, it’s really two Scores</h2>
      <a href="#actually-its-really-two-scores">
        
      </a>
    </div>
    <p>As AI applications emerge at an unprecedented pace, the problem of "Shadow AI" intensifies traditional risks associated with Shadow IT. Shadow IT applications create risk when they retain user data for long periods, have lax security practices, are financially unstable, or widely share data with third parties.  Meanwhile, AI tools create new risks when they retain and train on user prompts, or generate responses that are biased, toxic, inaccurate or unsafe. </p><p>To separate out these different risks, we provide two different Scores: </p><ul><li><p><b>Application Confidence Score</b> (5 points) covers general SaaS maturity, and</p></li><li><p><b>Gen-AI Confidence Score</b> (5 points) focused on Gen AI-specific risks.</p></li></ul><p>We chose to focus on two separate areas to make our metric extensible (so that, in the future, we can apply it to applications that are not focused on Gen AI) and to make the Scores easier to understand and reason about.   </p><p>Each Score is applied to each account tier of a given Gen AI provider. For example, here’s how we scored OpenAI's ChatGPT:</p><ul><li><p><b>ChatGPT Free (App Confidence 3.3, GenAI Confidence 1)</b> received a low score due to limited enterprise controls and higher data exposure risk since by default, input data is used for model training.</p></li><li><p><b>ChatGPT Plus (App Confidence 3.3, GenAI Confidence 3)</b> scored slightly higher as it allows users to opt out of training on their input data.</p></li><li><p><b>ChatGPT Team (App Confidence 4.3, GenAI Confidence 3)</b> improved further with added collaboration safeguards and configurable data retention windows.</p></li><li><p><b>ChatGPT Enterprise (App Confidence 4.3, GenAI Confidence 4)</b> achieved the highest score, as training on input data is disabled by default while retaining the enhanced controls from the Team tier.</p></li></ul>
    <div>
      <h2>A detailed look at our rubric</h2>
      <a href="#a-detailed-look-at-our-rubric">
        
      </a>
    </div>
    <p>We now walk through the details of the rubric behind each of our Scores.</p>
    <div>
      <h3>Application Confidence Score (5.0 Points Total)</h3>
      <a href="#application-confidence-score-5-0-points-total">
        
      </a>
    </div>
    <p>This half evaluates the app's overall maturity as a SaaS service, drawing from enterprise best practices.</p><p><b>Regulatory Compliance:</b> Checks for key certifications that signal operational maturity. We selected these because they represent proven frameworks that demonstrate a commitment to widely-adopted security and data protection best practices.</p><ul><li><p><a href="https://www.aicpa-cima.com/topic/audit-assurance/audit-and-assurance-greater-than-soc-2"><u>SOC 2</u></a>: .4 points </p></li><li><p><a href="https://eur-lex.europa.eu/eli/reg/2016/679/oj/eng"><u>GDPR</u></a>: .4 points </p></li><li><p><a href="https://www.iso.org/standard/27001"><u>ISO 27001</u></a>: .4 points </p></li></ul><p><b>Data Management Practices: </b>Focuses on how data is retained and shared to minimize exposure. These criteria were chosen as they directly impact the risk of data leaks or misuse, based on common vulnerabilities we've observed in SaaS environments and our own legal/GRC team’s experience assessing third-party SaaS applications at Cloudflare.</p><ul><li><p><b>Documented data retention window:</b>  Shorter retention limits risk.</p><ul><li><p>0 day retention: .5 points</p></li><li><p>30 day retention: .4 points</p></li><li><p>60 day retention: .3 points</p></li><li><p>90 day retention: .1 point</p></li><li><p>No documented retention window: 0 points</p></li></ul></li><li><p><b>Third-party sharing:</b> No sharing means less external exposure of enterprise data. Sharing for advertising purposes means high risk of third parties mining and using the data.</p><ul><li><p>No third-party sharing: .5 points.</p></li><li><p>Sharing only for troubleshooting/support: .25 points</p></li><li><p>Sharing for other reasons like advertising or end user targeting: 0 points</p></li></ul></li></ul><p><b>Security Controls:</b> We prioritized these because they form the foundational defenses against unauthorized access, drawing from best practices that have prevented incidents in cloud services.</p><ul><li><p>MFA support: .2 points.</p></li><li><p>Role-based access: .2 points.</p></li><li><p>Session monitoring: .2 points.</p></li><li><p>TLS 1.3: .2 points.</p></li><li><p>SSO support: .2 points.</p></li></ul><p><b>Security reports and incident history:</b> Rewards transparency and deducts for recent issues. This was included to emphasize accountability, as a history of breaches or proactive transparency often indicates how seriously a provider takes security.</p><ul><li><p>Published safety framework and bug bounty: 1 point.</p><ul><li><p>To get full points the company needs to have <b>both</b> of the following: </p><ul><li><p>A publicly accessible page (e.g., security, trust, or safety) that includes a comprehensive whitepaper, framework overview, OR detailed security documentation that covers:</p><ul><li><p>Encryption in transit and at rest</p></li><li><p>Authentication and authorization mechanisms</p></li><li><p>Network or infrastructure security design</p></li></ul></li><li><p>Incident Response Transparency - Published vulnerability disclosure or bug bounty policy OR a documented incident response process and security advisory archive.</p></li></ul></li><li><p>Example: Google has a <a href="https://bughunters.google.com/"><u>bug bounty program</u></a>, a whitepaper providing an overview of their <a href="https://cloud.google.com/docs/security/overview/whitepaper"><u>security posture</u></a>, as well as a <a href="https://transparencyreport.google.com/"><u>transparency report</u></a>. </p></li></ul></li><li><p>No commitments or weak security framework with the lack of any of the above criteria. If the company only has one of the criteria above but lacks the other they will also receive no credit: 0 points.</p><ul><li><p>Example: Lovable who has a security page but seems to lack many other parts of the criteria: https://lovable.dev/security</p></li></ul></li><li><p>If there has been a material breach in the last two years. If the company has experienced a material cybersecurity incident that resulted in the unauthorized disclosure of customer data to external parties (e.g., data posted, sold, or otherwise made accessible outside the organization). Incident must be publicly acknowledged by the company through a trust center update, press release, incident notification page, or an official regulatory filing: Full deduction to 0.</p><ul><li><p>Example: <a href="https://blog.23andme.com/articles/addressing-data-security-concerns"><u>23andMe </u></a>suffered credential stuffing attack in 2023 that resulted in the exposure of user data.</p></li></ul></li></ul><p><b>Financial Stability:</b> Gauges long-term viability of the company behind the application. We added this because a company’s financial health affects its ability to invest in ongoing security and support, and reduces the risk of sudden disruptions, corner-cutting, bankruptcy or sudden sale of user data to unknown third parties.</p><ul><li><p>Public company or private with &gt;$300M raised: .8 points.</p></li><li><p>Private with &gt;$100M raised: .5 points.</p></li><li><p>Private with &lt;$100M raised: .2 point.</p></li><li><p>Recent bankruptcy/distress (e.g. recent bankruptcy filings, major layoffs tied to funding shortfalls, failure to meet debt obligations): 0 points.</p></li></ul>
    <div>
      <h3>Gen-AI Confidence Score (5.0 Points Total)</h3>
      <a href="#gen-ai-confidence-score-5-0-points-total">
        
      </a>
    </div>
    <p>This Score zooms in on AI-specific risks, like data usage in training and input vulnerabilities.</p><p><b>Regulatory Compliance,  </b><a href="https://www.iso.org/standard/42001"><b><u>ISO 42001</u></b></a><b>:</b> ISO 42001 is a new certification for AI management systems. We chose this emerging standard because it specifically addresses <a href="https://www.cloudflare.com/the-net/building-cyber-resilience/ai-data-governance/"><u>AI governance</u></a>, filling a gap in traditional certifications and signaling forward-thinking risk management.</p><ul><li><p>ISO 42001 Compliant: 1 point.</p></li><li><p>Not ISO 42001 Compliant: 0 points.</p></li></ul><p><b>Deployment Security Model:</b> Stronger access controls get higher points. Authentication not only controls access but also enables monitoring and logging. This makes it easier to detect misuse and investigate incidents. Public, unauthenticated access is a red flag for shadow IT risk.</p><ul><li><p>Authenticated web portal or key-protected API with rate limiting: 1 point.</p></li><li><p>Unprotected public access: 0 points.</p></li></ul><p><b>Model Card:</b>  A model card is a concise document that provides essential information about an AI model, similar to a nutrition label for a food product. It is crucial for AI safety and security because it offers transparency into a model's design, training data, limitations, and potential biases, enabling developers and users to understand its risks and use it responsibly. Some leading AI providers have committed to providing model cards as public documentation of safety evaluations. We included this in our rubric to encourage the industry to broadly adopt model cards as a best practice. As the practice of model cards is further developed and standardized across the industry, we hope to incorporate more fine-grained details from model cards into our own risk scores. But for now, we only include the existence (or lack thereof) of a model card in our score.</p><ul><li><p>Has its own model card: 1 point.</p></li><li><p>Uses a model with a model card: .5 points.</p></li><li><p>None: 0 points.</p></li></ul><p><b>Training on user prompts:</b> This is one of the most important components of our score.  Models that train on user prompts are very risky because users might share sensitive corporate information in user prompts. We weighted this heavily because <a href="https://www.cloudflare.com/learning/ai/how-to-secure-training-data-against-ai-data-leaks/">control over training data</a> is central to preventing unintended data exposure, a core <a href="https://www.cloudflare.com/the-net/generative-ai-zero-trust/"><u>risk in generative AI</u></a> that can lead to major incidents.</p><ul><li><p>Explicit opt-in is required for training on user prompts: 2 points.</p></li><li><p>Opt-out of training on user prompts is explicitly available to users: 1 point.</p></li><li><p>No way to opt out of training on user prompts: 0 points.</p></li></ul><p>Here's an example of these Scores applied to a few popular AI providers.  As expected, enterprise tiers typically earn higher Confidence Scores than consumer tiers of the same AI provider.</p>
<table><thead>
  <tr>
    <th><span>Company</span></th>
    <th><span>Application Score</span></th>
    <th><span>Gen AI Score</span></th>
  </tr>
  <tr>
  </tr></thead>
<tbody>
  <tr>
    <td><span>Gemini Free</span></td>
    <td><span>3.8</span></td>
    <td><span>4.0</span></td>
  </tr>
  <tr>
    <td><span>Gemini Pro</span></td>
    <td><span>3.8</span></td>
    <td><span>5.0</span></td>
  </tr>
  <tr>
    <td><span>Gemini Ultra</span></td>
    <td><span>4.1</span></td>
    <td><span>5.0</span></td>
  </tr>
  <tr>
    <td><span>Gemini Business</span></td>
    <td><span>4.7</span></td>
    <td><span>5.0</span></td>
  </tr>
  <tr>
    <td><span>Gemini Enterprise</span></td>
    <td><span>4.7</span></td>
    <td><span>5.0</span></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td><span>OpenAI Free</span></td>
    <td><span>3.3</span></td>
    <td><span>1.0</span></td>
  </tr>
  <tr>
    <td><span>OpenAI Plus</span></td>
    <td><span>3.3</span></td>
    <td><span>3.0</span></td>
  </tr>
  <tr>
    <td><span>OpenAI Pro</span></td>
    <td><span>3.3</span></td>
    <td><span>3.0</span></td>
  </tr>
  <tr>
    <td><span>OpenAI Team</span></td>
    <td><span>4.3</span></td>
    <td><span>3.0</span></td>
  </tr>
  <tr>
    <td><span>OpenAI Enterprise</span></td>
    <td><span>4.3</span></td>
    <td><span>4.0</span></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td><span>Anthropic Free</span></td>
    <td><span>3.9</span></td>
    <td><span>5.0</span></td>
  </tr>
  <tr>
    <td><span>Anthropic Pro</span></td>
    <td><span>3.9</span></td>
    <td><span>5.0</span></td>
  </tr>
  <tr>
    <td><span>Anthropic Max</span></td>
    <td><span>3.9</span></td>
    <td><span>5.0</span></td>
  </tr>
  <tr>
    <td><span>Anthropic Team</span></td>
    <td><span>4.9</span></td>
    <td><span>5.0</span></td>
  </tr>
  <tr>
    <td><span>Anthropic Enterprise</span></td>
    <td><span>4.9</span></td>
    <td><span>5.0</span></td>
  </tr>
</tbody></table><p><i>Note: Confidence scores are provided "as is” for informational purposes only and should not be considered a substitute for independent analysis or decision-making. All actions taken based on the scores are the sole responsibility of the user.</i></p>
    <div>
      <h2>We’re just getting started…</h2>
      <a href="#were-just-getting-started">
        
      </a>
    </div>
    <p>We're actively refining our scoring methodology. To that end, we're collaborating with a diverse group of experts in the AI ecosystem (including researchers, legal professionals, SOC teams, and more) to fine-tune our scores, optimize for transparency, accountability and extensibility. If you have insights, suggestions, or want to get involved testing new functionality, we’d love for you to <a href="https://www.cloudflare.com/lp/ai-security-user-research-program-2025"><u>express interest in our user research program</u></a>. We'd very much welcome your feedback on this scoring rubric. </p><p>Today, we’re just releasing our scoring rubric in order to solicit feedback from the community. But soon, you'll start seeing these Cloudflare Application Confidence Scores integrated into the Application Library in our SASE platform. Customers can simply click or hover over any score to reveal a detailed breakdown of the rubric and underlying components of the score. Again, if you see any issues with our scoring, please submit your feedback to <a><u>app-confidence-scores@cloudflare.com</u></a>, and our team will review it and make adjustments if appropriate. </p><p>Looking even further ahead, we plan to enable integration of these scores directly into <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/"><u>Cloudflare Gateway</u></a> and <a href="https://developers.cloudflare.com/cloudflare-one/policies/access/"><u>Access</u></a>, allowing our customers to write policies that block or redirect traffic, apply <a href="https://developers.cloudflare.com/cloudflare-one/policies/data-loss-prevention/"><u>data loss prevention (DLP)</u></a> or <a href="https://developers.cloudflare.com/cloudflare-one/policies/browser-isolation/"><u>remote browser isolation (RBI)</u></a> or otherwise control access to sites based directly on their Cloudflare Application Confidence Score. </p><p>This is just the beginning. By prioritizing transparency in our approach, we're not only bridging a critical gap in <a href="https://www.cloudflare.com/learning/access-management/what-is-sase/">SASE capabilities</a> but also driving the industry toward stronger AI safety practices. Let us know what you think!</p><p>If you’re ready to manage risk more effectively with these Confidence Scores, <a href="https://www.cloudflare.com/products/zero-trust/plans/enterprise/?utm_medium=referral&amp;utm_source=blog&amp;utm_campaign=2025-q3-acq-gbl-connectivity-ge-ge-general-ai_week_blog"><u>reach out to Cloudflare experts for a conversation</u></a>.</p> ]]></content:encoded>
            <category><![CDATA[AI Week]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[SASE]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[AI-SPM]]></category>
            <guid isPermaLink="false">4U0WvN8BMpHUPypHmF1Xun</guid>
            <dc:creator>Ayush Kumar</dc:creator>
            <dc:creator>Sharon Goldberg</dc:creator>
        </item>
        <item>
            <title><![CDATA[Best Practices for Securing Generative AI with SASE]]></title>
            <link>https://blog.cloudflare.com/best-practices-sase-for-ai/</link>
            <pubDate>Tue, 26 Aug 2025 14:00:00 GMT</pubDate>
            <description><![CDATA[ This guide provides best practices for Security and IT leaders to securely adopt generative AI using Cloudflare’s SASE architecture as part of a strategy for AI Security Posture Management (AI-SPM). ]]></description>
            <content:encoded><![CDATA[ <p>As <a href="https://www.cloudflare.com/learning/ai/what-is-generative-ai/"><u>Generative AI</u></a> revolutionizes businesses everywhere, security and IT leaders find themselves in a tough spot. Executives are mandating speedy adoption of Generative AI tools to drive efficiency and stay abreast of competitors. Meanwhile, IT and Security teams must rapidly develop an <a href="https://www.cloudflare.com/ai-security/">AI Security Strategy</a>, even before the organization really understands exactly how it plans to adopt and deploy Generative AI. </p><p>IT and Security teams are no strangers to “building the airplane while it is in flight”. But this moment comes with new and complex security challenges. There is an explosion in new AI capabilities adopted by employees across all business functions — both sanctioned and unsanctioned. AI Agents are ingesting authentication credentials and autonomously interacting with sensitive corporate resources. Sensitive data is being shared with AI tools, even as security and compliance frameworks struggle to keep up.</p><p>While it demands strategic thinking from Security and IT leaders, the problem of governing the use of AI internally is far from insurmountable. <a href="https://www.cloudflare.com/zero-trust/"><u>SASE (Secure Access Service Edge)</u></a> is a popular cloud-based network architecture that combines networking and security functions into a single, integrated service that provides employees with secure and efficient access to the Internet and to corporate resources, regardless of their location. The SASE architecture can be effectively extended to meet the risk and security needs of organizations in a world of AI. </p><p>Cloudflare’s SASE Platform is uniquely well-positioned to help IT teams govern their AI usage in a secure and responsible way — without extinguishing innovation. What makes Cloudflare different in this space is that we are one of the few SASE vendors that operate not just in cybersecurity, but also in AI infrastructure. This includes: providing AI infrastructure for developers (e.g. <a href="https://developers.cloudflare.com/workers-ai/"><u>Workers AI</u></a>, <a href="https://developers.cloudflare.com/ai-gateway/"><u>AI Gateway</u></a>, <a href="https://developers.cloudflare.com/agents/guides/remote-mcp-server/"><u>remote MCP servers</u></a>, <a href="https://realtime.cloudflare.com/"><u>Realtime AI Apps</u></a>) to securing public-facing LLMs (e.g. <a href="https://developers.cloudflare.com/waf/detections/firewall-for-ai/"><u>Firewall for AI</u></a> or <a href="https://blog.cloudflare.com/ai-labyrinth/"><u>AI Labyrinth</u></a>), to allowing content creators to <a href="https://blog.cloudflare.com/introducing-pay-per-crawl/"><u>charge AI crawlers for access to their content</u></a>, and the list goes on. Our expertise in this space gives us a unique view into governing AI usage inside an organization.  It also gives our customers the opportunity to plug different components of our platform together to build out their AI <i>and</i> AI cybersecurity infrastructure.</p><p>This week, we are taking this AI expertise and using it to help ensure you have what you need to implement a successful <a href="https://www.cloudflare.com/learning/ai/what-is-ai-security/">AI Security Strategy</a>. As part of this, we are announcing several new AI Security Posture Management (AI-SPM) features, including:</p><ul><li><p><a href="http://blog.cloudflare.com/shadow-AI-analytics/"><u>shadow AI reporting</u></a> to gain visibility into employee’s use of AI,</p></li><li><p><a href="http://blog.cloudflare.com/confidence-score-rubric/"><u>confidence scoring</u></a> of AI providers to manage risk, </p></li><li><p><a href="http://blog.cloudflare.com/ai-prompt-protection/"><u>AI prompt protection</u></a> to defend against malicious inputs and prevent data loss, </p></li><li><p>out-of-band <a href="http://blog.cloudflare.com/casb-ai-integrations/"><u>API CASB integrations </u></a>with AI providers to detect misconfigurations, </p></li><li><p>new tools that <a href="http://blog.cloudflare.com/zero-trust-mcp-server-portals/"><u>untangle and secure</u></a>  <a href="https://www.cloudflare.com/learning/ai/what-is-model-context-protocol-mcp/"><u>Model Context Protocol (MCP)</u></a> deployments in the enterprise.</p></li></ul><p>All of these new AI-SPM features are built directly into Cloudflare’s powerful <a href="https://www.cloudflare.com/zero-trust/"><u>SASE</u></a> platform.</p><p>And we’re just getting started. In the coming months you can expect to see additional valuable AI-SPM features launch across the <a href="https://www.cloudflare.com/"><u>Cloudflare platform</u></a>, as we continue investing in making Cloudflare the best place to protect, connect, and build with AI.</p>
    <div>
      <h3>What’s in this AI security guide?</h3>
      <a href="#whats-in-this-ai-security-guide">
        
      </a>
    </div>
    <p>In this guide, we will cover best practices for adopting generative AI in your organization using Cloudflare’s <a href="https://www.cloudflare.com/zero-trust/"><u>SASE (Secure Access Service Edge)</u></a> platform. We start by covering how IT and Security leaders can formulate their AI Security Strategy. Then, we show how to implement this strategy using long-standing features of our SASE platform alongside the new AI-SPM features we launched this week. </p><p>This guide below is divided into three key pillars for dealing with (human) employee access to AI – Visibility, Risk Management and Data Protection — followed by additional guidelines around deploying agentic AI in the enterprise using MCP. Our objective is to help you align your security strategy with your business goals while driving adoption of AI across all your projects and teams. </p><p>And we do this all using our single <a href="https://www.cloudflare.com/zero-trust/"><u>SASE</u></a> platform, so you don’t have to deploy and manage a complex hodgepodge of point solutions and security tools. In fact, we provide you with an overview of your AI security posture in a single dashboard, as you can see here:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5y6ZHDu9lwCSHZ1FuZsoWT/b3f6a9eb034a3cdb2b663cff428a2335/1.png" />
          </figure><p><i>AI Security Report in Cloudflare’s SASE platform</i></p>
    <div>
      <h2>Develop your AI Security Strategy</h2>
      <a href="#develop-your-ai-security-strategy">
        
      </a>
    </div>
    <p>The first step to securing AI usage is to establish your organization's level of risk tolerance. This includes pinpointing your biggest security concerns for your users and your data, along with relevant legal and compliance requirements.   Relevant issues to consider include: </p><ul><li><p>Do you have specific <b>sensitive data that should not be shared</b> with certain AI tools? (Some examples include personally identifiable information (PII), personal health information (PHI), sensitive financial data, secrets and credentials, source code or other proprietary business information.)</p></li><li><p>Are there <b>business decisions that your employees should not be making using assistance from AI</b>? (For instance, the EU AI Act AI prohibits the use of AI to evaluate or classify individuals based on their social behavior, personal characteristics, or personality traits.)</p></li><li><p>Are you subject to <b>compliance frameworks</b> that require you to produce records of the generative AI tools that your employees used, and perhaps even the prompts that your employees input into AI providers? (For example, HIPAA requires organizations to implement audit trails that records who accessed PHI and when, GDPR requires the same for PII, SOC2 requires the same for secrets and credentials.)</p></li><li><p>Do you have specific data protection requirements that require employees to use the <b>sanctioned, enterprise version of a certain generative AI provider</b>, and avoid certain AI tools or their consumer versions?  (Enterprise AI tools often have more favorable terms of service, including shorter data retention periods, more limited data-sharing with third-parties, and/or a promise not to train AI models on user inputs.)</p></li><li><p>Do you require employees to completely <b>avoid the use of certain AI tools</b>, perhaps because they are unreliable, unreviewed or headquartered in a risky geography? </p></li><li><p>Are there security protections offered by your organization's sanctioned AI providers and to what extent do you plan to <b>protect against misconfigurations of AI tools</b> that can result in leaks of sensitive data?  </p></li><li><p>What is your <a href="https://www.cloudflare.com/the-net/building-cyber-resilience/secure-govern-ai-agents/">policy around the use of autonomous AI agents</a>?  What is your strategy for <b>adopting the </b><a href="https://www.cloudflare.com/learning/ai/what-is-model-context-protocol-mcp/"><b><u>Model Context Protocol (MCP)</u></b></a>? (The Model Context Protocol is a standard way to make information available to large language models (LLMs), similar to the way an application programming interface (API) works. It supports agentic AI that autonomously pursues goals and takes action.)</p></li></ul><p>While almost every organization has relevant compliance requirements that implicate their use of generative AI, there is no “one size fits all” for addressing these issues. </p><ul><li><p>Some organizations have mandates to broadly adopt AI tools of all stripes, while others require employees to interact with sanctioned AI tools only. </p></li><li><p>Some organizations are rapidly adopting the MCP, while others are not yet ready for agents to autonomously interact with their corporate resources. </p></li><li><p>Some organizations have robust requirements around data loss prevention (DLP), while others are still early in the process of deploying DLP in their organization.</p></li></ul><p>Even with this diversity of goals and requirements, Cloudflare SASE provides a flexible platform for the implementation of your organization’s AI Security Strategy.</p>
    <div>
      <h2>Build a solid foundation for AI Security </h2>
      <a href="#build-a-solid-foundation-for-ai-security">
        
      </a>
    </div>
    <p>To implement your AI Security Strategy, you first need a solid <a href="https://developers.cloudflare.com/reference-architecture/architectures/sase/"><u>SASE deployment</u></a>. </p><p>SASE provides a unified platform that consolidates security and networking, replacing a fragmented patchwork of point solutions with a single platform that controls application visibility, user authentication, <a href="https://www.cloudflare.com/learning/access-management/what-is-dlp/"><u>Data Loss Prevention (DLP)</u></a>, and other policies for access to the Internet and access to internal corporate resources.  SASE is the essential foundation for an effective AI Security Strategy. </p><p><a href="https://www.cloudflare.com/learning/access-management/what-is-sase/"><u>SASE architecture</u></a> allows you to execute your AI security strategy by discovering and inventorying the AI tools used by your employees. With this visibility, you can proactively manage risk and support compliance requirements by monitoring AI prompts and responses to understand what data is being shared with AI tools. Robust DLP allows you to scan and block sensitive data from being entered into AI tools, preventing data leakage and protecting your organization's most valuable information. Our <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/"><u>Secure Web Gateway (SWG)</u></a> allows you to redirect traffic from unsanctioned AI providers to user education pages or to sanctioned enterprise AI providers. And our new integration of MCP tooling into our SASE platform helps you secure the deployment of agentic AI inside your organization.</p><p>If you're just starting your SASE journey, our <a href="https://developers.cloudflare.com/learning-paths/secure-internet-traffic/concepts/"><u>Secure Internet Traffic Deployment Guide</u></a> is the best place to begin. For this guide, however, we will skip these introductory details and dive right into using SASE to secure the use of Generative AI. </p>
    <div>
      <h2>Gain visibility into your AI landscape </h2>
      <a href="#gain-visibility-into-your-ai-landscape">
        
      </a>
    </div>
    <p>You can't protect what you can't see. The first step is to gain visibility into your AI landscape, which is essential for discovering and inventorying all the AI tools that your employees are using, deploying or experimenting with in your organization. </p>
    <div>
      <h3>Discover Shadow AI </h3>
      <a href="#discover-shadow-ai">
        
      </a>
    </div>
    <p>Shadow AI refers to the use of AI applications that haven't been officially sanctioned by your IT department. Shadow AI is not an uncommon phenomenon – Salesforce found that <a href="https://www.salesforce.com/news/stories/ai-at-work-research/?utm_campaign=amer_cbaw&amp;utm_content=Salesforce_World+Tour&amp;utm_medium=organic_social&amp;utm_source=linkedin"><u>over half of the knowledge workers it surveyed</u></a> admitted to using unsanctioned AI tools at work. Use of unsanctioned AI is not necessarily a sign of malicious intent; employees are often just trying to do their jobs better. As an IT or Security leader, your goal should be to discover Shadow AI and then apply the appropriate AI security policy. There are two powerful ways to do this: inline and out-of-band.</p>
    <div>
      <h4>Discover employee usage of AI, inline</h4>
      <a href="#discover-employee-usage-of-ai-inline">
        
      </a>
    </div>
    <p>The most direct way to get visibility is by using <a href="https://www.cloudflare.com/zero-trust/products/gateway/"><u>Cloudflare's Secure Web Gateway (SWG)</u></a>. </p><p>SWG helps you get a clear picture of both sanctioned and unsanctioned AI and chat applications. By reviewing your detected usage, you'll gain insight into which AI apps are being used in your organization. This knowledge is essential for building policies that support approved tools, and block or control risky ones. This feature requires you to deploy the WARP client in Gateway proxy mode on your end-user devices.</p><p>You can review your company’s AI app usage using our new Application Library and <a href="http://blog.cloudflare.com/shadow-AI-analytics/"><u>Shadow IT </u></a>dashboards. These tools allow you to: </p><ul><li><p>Review traffic from user devices to understand how many users engage with a specific application over time.</p></li><li><p>Denote application’s status (e.g., Approved, Unapproved) inside your organization, and use that as input to a variety of SWG policies that control access to applications with that status. </p></li><li><p> Automate assessment of SaaS and Gen AI applications at scale with our soon-to-be-released <a href="http://blog.cloudflare.com/confidence-score-rubric/"><u>Cloudflare Application Confidence Scores</u><b><u>. </u></b></a></p></li></ul>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3NFrOpJkBMH6tsPZVec02Q/37b54f7477082dedcac2adcba31e2c29/2.png" />
          </figure><p><sup><i>Shadow IT dashboard showing utilization of applications of different status (Approved, Unapproved, In Review, Unreviewed).</i></sup></p>
    <div>
      <h4>Discover employee usage of AI, out-of-band</h4>
      <a href="#discover-employee-usage-of-ai-out-of-band">
        
      </a>
    </div>
    <p>Even if your organization doesn't use a device client, you can still get valuable data on Shadow AI usage if you use Cloudflare's integrations for Cloud Access Security Broker (<a href="https://www.cloudflare.com/zero-trust/products/casb/"><u>CASB</u></a>) with services like Google Workspace, Microsoft 365, or GitHub. </p><p><a href="https://www.cloudflare.com/zero-trust/products/casb/"><u>Cloudflare CASB</u></a> provides high-fidelity detail about your SaaS environments, including sensitive data visibility and suspicious user activity. By integrating CASB with your SSO provider, you can see if your users have authenticated to any third-party AI applications, giving you a clear and non-invasive sense of app usage across your organization.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3HDUtSAX9f5XZasSyACTiV/367f80a5d745070fd8e0191d0e36e61d/3.png" />
          </figure><p><sup><i>An API CASB integration with Google Workspace, showing findings filtered to third party integrations. Findings discover multiple LLM integrations.</i></sup></p>
    <div>
      <h2>Implement an AI risk management framework</h2>
      <a href="#implement-an-ai-risk-management-framework">
        
      </a>
    </div>
    <p>Now that you’ve gained visibility into your AI landscape, the next step is to proactively manage that risk. Cloudflare’s SASE platform allows you to monitor AI prompts and responses, enforce granular security policies, coach users on secure behavior, and prevent misconfigurations in your enterprise AI providers.</p>
    <div>
      <h3>Detect and monitor AI prompts and responses</h3>
      <a href="#detect-and-monitor-ai-prompts-and-responses">
        
      </a>
    </div>
    <p>If you have <a href="https://developers.cloudflare.com/learning-paths/replace-vpn/configure-device-agent/enable-tls-decryption/"><u>TLS decryption enabled</u></a> in your SASE platform, you can gain new and powerful insights into how your employees are using AI with our new <a href="http://blog.cloudflare.com/ai-prompt-protection/"><u>AI prompt protection</u></a> feature.  </p><p>AI Prompt Protection provides you with visibility into the exact prompts and responses from your employees’ interactions with supported AI applications. This allows you to go beyond simply knowing which tools are being used and gives you insight into exactly what kind of information is being shared.  </p><p>This feature also works with <a href="https://developers.cloudflare.com/cloudflare-one/policies/data-loss-prevention/dlp-profiles/"><u>DLP profiles</u></a> to detect sensitive data in prompts. You can also choose whether to block the action or simply monitor it.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/JpNZiyklt6qBRjW4LZuSW/1ea4043b6d03f8de31ce24175aa6ca02/4.png" />
          </figure><p><sup><i>Log entry for a prompt detected using AI prompt protection.</i></sup></p>
    <div>
      <h3>Build granular AI security policies</h3>
      <a href="#build-granular-ai-security-policies">
        
      </a>
    </div>
    <p>Once your monitoring tools give you a clear understanding of AI usage, you can begin building security policies to achieve your security goals. Cloudflare's Gateway allows you to create policies based on application categories, application approval status, users, user groups, and device status. For example, you can:</p><ul><li><p>create policies to explicitly allow approved AI applications while blocking unapproved AI applications;</p></li><li><p>create <a href="https://developers.cloudflare.com/changelog/2025-04-11-http-redirect-custom-block-page-redirect/"><u>policies that redirect users</u></a> from unapproved AI applications to an approved AI application;</p></li><li><p>limit access to certain applications to specific users or groups that have specific device security posture;</p></li><li><p>build policies to enable prompt capture (with<a href="http://blog.cloudflare.com/ai-prompt-protection/"><u> AI prompt protection</u></a>) for specific high-risk user groups, such as contractors or new employees, without affecting the rest of the organization; and</p></li><li><p>put certain applications behind <a href="https://developers.cloudflare.com/cloudflare-one/policies/browser-isolation/"><u>Remote Browser Isolation (RBI)</u></a>, to prevent end users from uploading files or pasting data into the application.</p></li></ul>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2BCDxoKrUDRAOO13V8Qd4W/28e84e4529f3e040ba4a2c3c98c6eed7/5.png" />
          </figure><p><sup><i>Gateway application status policy selector</i></sup></p><p>All of these policies can be written in Cloudflare Gateway’s unified policy builder, making it easy to deploy your AI Security Strategy across your organization.</p>
    <div>
      <h3>Control access to internal LLMs </h3>
      <a href="#control-access-to-internal-llms">
        
      </a>
    </div>
    <p>You can use <a href="https://developers.cloudflare.com/cloudflare-one/policies/access/"><u>Cloudflare Access</u></a> to control your employees’ access to your organization’s internal LLMs, including any <a href="https://www.cloudflare.com/learning/ai/how-to-secure-training-data-against-ai-data-leaks/">proprietary models you train internally</a> and/or models that your organization runs on <a href="https://developers.cloudflare.com/workers-ai/"><u>Cloudflare Worker’s AI</u></a>. </p><p>Cloudflare Access allows you to gate access to these LLMs using fine-grained policies, including ensuring users are granted access based on their identity, user group, device posture, and other contextual signals. For example, you can use <a href="https://developers.cloudflare.com/cloudflare-one/policies/access/"><u>Cloudflare Access</u></a> to write a policy that ensures that only certain data scientists at your organization can access a <a href="https://developers.cloudflare.com/workers-ai/"><u>Workers AI</u></a> model that is <a href="https://developers.cloudflare.com/workers-ai/guides/tutorials/fine-tune-models-with-autotrain/"><u>trained</u></a> on certain types of customer data. </p>
    <div>
      <h3>Manage the security posture of third-party AI providers</h3>
      <a href="#manage-the-security-posture-of-third-party-ai-providers">
        
      </a>
    </div>
    <p>As you define which AI tools are sanctioned, you can develop functional security controls for consistent usage. Cloudflare newly supports <a href="http://blog.cloudflare.com/casb-ai-integrations/"><u>API CASB integrations with popular AI tools</u></a> like OpenAI (ChatGPT), Anthropic (Claude), and Google Gemini. These "out-of-band" integrations provide immediate visibility into how users are engaging with sanctioned AI tools, allowing you to report on posture management findings include:</p><ul><li><p>Misconfigurations related to sharing settings.</p></li><li><p>Best practices for API key management.</p></li><li><p>DLP profile matches in uploaded attachments</p></li><li><p>Riskier AI features (e.g. autonomous web browsing, code execution) that are toggled on</p></li></ul>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/0a6FVjCwejeyUzdQR0pyb/79f29b0d92c27bcd400ed7ded8d4c4e3/6.png" />
          </figure><p><sup><i>OpenAI API CASB Integration showing riskier features that are toggled on, security posture risks like unused admin credentials, and an uploaded attachment with a DLP profile match.</i></sup></p>
    <div>
      <h2>Layer on data protection </h2>
      <a href="#layer-on-data-protection">
        
      </a>
    </div>
    <p>Robust data protection is the final pillar that protects your employee’s access to AI.. </p>
    <div>
      <h3>Prevent data loss</h3>
      <a href="#prevent-data-loss">
        
      </a>
    </div>
    <p>Our SASE platform has long supported Data Loss Prevention (<a href="https://developers.cloudflare.com/cloudflare-one/policies/data-loss-prevention/"><u>DLP</u></a>) tools that scan and block sensitive data from being entered into AI tools, to prevent data leakage and protect your organization's most valuable information.  You can write policies that detect sensitive data while adapting to <a href="https://blog.cloudflare.com/improving-data-loss-prevention-accuracy-with-ai-context-analysis/"><u>organization-specific traffic patterns</u></a>, and use Cloudflare Gateway’s unified policy builder to apply these to your users' interactions with AI tools or other applications. For example, you could write a DLP policy that detects and blocks the upload of a social security number (SSN), phone number or address.</p><p>As part of our new <a href="http://blog.cloudflare.com/ai-prompt-protection/"><u>AI prompt protection</u></a> feature, you can now also gain a semantic understanding of your users’ interactions with supported AI providers. Prompts are classified <i>inline </i>into meaningful, high-level topics that include PII, credentials and secrets, source code, financial information, code abuse / malicious code and prompt injection / jailbreak.  You can then build inline granular policies based on these high-level topic classifications. For example, you could create a policy that blocks a non-HR employee from submitting a prompt with the intent to receive PII from the response, while allowing the HR team to do so during a compensation planning cycle. </p><p>Our new <a href="http://blog.cloudflare.com/ai-prompt-protection/"><u>AI prompt protection</u></a> feature empowers you to apply smart, user-specific DLP rules that empower your teams to get work done, all while strengthening your security posture. To use our most advanced DLP feature, you'll need to enable TLS decryption to inspect traffic.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3dUnu8P5cMS18k9BxkGoHY/16fdccae7f8e99dc34ebfe7399db4b94/7.png" />
          </figure><p><sup><i>The above policy blocks all ChatGPT prompts that may receive PII back in the response for employees in engineering, marketing, product, and finance </i></sup><a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/identity-selectors/"><sup><i><u>user groups</u></i></sup></a><sup><i>. </i></sup></p>
    <div>
      <h2>Secure MCP — and Agentic AI </h2>
      <a href="#secure-mcp-and-agentic-ai">
        
      </a>
    </div>
    <p>MCP (Model Context Protocol) is an emerging AI standard, where MCP servers act as a translation layer for <a href="https://www.cloudflare.com/learning/ai/what-is-agentic-ai/"><u>AI agents</u></a>, allowing them to communicate with public and private APIs, understand datasets, and perform actions. Because these servers are a primary entry point for AI agents to engage with and manipulate your data, they are a new and critical security asset for your security team to manage.</p><p>Cloudflare already offers a robust set of developer tools for deploying <a href="https://developers.cloudflare.com/agents/guides/remote-mcp-server/"><u>remote MCP servers</u></a>—a cloud-based server that acts as a bridge between a user's data and tools and various AI applications. But now our customers are asking for help securing their enterprise MCP deployments. </p><p>That is why we’re making MCP security controls a core part of our SASE platform.</p>
    <div>
      <h4>Control MCP Authorization</h4>
      <a href="#control-mcp-authorization">
        
      </a>
    </div>
    <p>MCP servers typically use OAuth for authorization, where the server inherits the permissions of the authorizing user. While this adheres to least-privilege for the user, it can lead to <b>authorization sprawl </b>— where the agent accumulates an excessive number of permissions over time. This makes the agent a high-value target for attackers.</p><p><a href="https://developers.cloudflare.com/cloudflare-one/applications/configure-apps/mcp-servers"><u>Cloudflare Access</u></a> now helps you manage authorization sprawl by applying <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/"><u>Zero Trust principles</u></a> to MCP server access. A Zero Trust model assumes no user, device, or network can be trusted implicitly, so every request is continuously verified. This <a href="https://developers.cloudflare.com/cloudflare-one/applications/configure-apps/mcp-servers"><u>approach </u></a>ensures secure authentication and management of these critical assets as your business adopts more agentic workflows. </p>
    <div>
      <h4>Centralize management of MCP servers</h4>
      <a href="#centralize-management-of-mcp-servers">
        
      </a>
    </div>
    <p><a href="http://blog.cloudflare.com/zero-trust-mcp-server-portals/"><u>Cloudflare MCP Server Portal</u></a> is a new feature in Cloudflare’s SASE platform that centralizes the management, security, and observation of an organization’s MCP servers.</p><p>MCP Server Portal allows you to register all your MCP servers with Cloudflare and provide your end users with a single, unified Portal endpoint to configure in their MCP client. This approach simplifies the user experience, because it eliminates the need to configure a one-to-one connection between every MCP client and server. It also means that new MCP servers dynamically become available to users whenever they are added to the Portal. </p><p>Beyond these usability enhancements, MCP Server Portal addresses the significant security risks associated with MCP in the enterprise. The current decentralized approach of MCP deployments creates a tangle of unmanaged one-to-one connections that are difficult to secure. The lack of centralized controls creates a variety of risks including prompt injection, tool injection (where malicious code is part of the MCP server itself), supply chain attacks and data leakage. </p><p>MCP Server Portals solve this by routing all MCP traffic through Cloudflare, allowing for centralized policy enforcement, comprehensive visibility and logging, and a curated user experience based on the principle of least privilege. Administrators can review and approve MCP servers before making them available, and users are only presented with the servers and tools they are authorized to use, which prevents the use of unvetted or malicious third-party servers.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/64a5Snga1xwRHeCmdbYrpj/f23dc4584618f0c37fb0be8f3399554b/8.png" />
          </figure><p><sup><i>An MCP Server Portal in the Cloudflare Dashboard</i></sup></p><p>All of these features are only the beginning of our MCP security roadmap, as we continue advancing our support for MCP infrastructure and security controls across the entire Cloudflare platform.</p>
    <div>
      <h2>Implement your AI security strategy in a single platform</h2>
      <a href="#implement-your-ai-security-strategy-in-a-single-platform">
        
      </a>
    </div>
    <p>As organizations rapidly develop and deploy their AI security strategies, Cloudflare’s SASE platform is ideally situated to implement policies that balance productivity with data and security controls.</p><p>Our SASE has a full suite of features to protect employee interactions with AI. Some of these features are deeply integrated in our <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/"><u>Secure Web Gateway (SWG)</u></a>, including the ability to write fine-grained access policies, gain visibility into <a href="http://blog.cloudflare.com/shadow-AI-analytics/"><u>Shadow IT </u></a>and introspect on interactions with AI tools using <a href="http://blog.cloudflare.com/ai-prompt-protection/"><u>AI prompt protection</u></a>. Apart from these inline controls, our <a href="https://developers.cloudflare.com/cloudflare-one/applications/casb/"><u>CASB</u></a> provides visibility and control using out-of-band API integrations. Our Cloudflare <a href="https://developers.cloudflare.com/cloudflare-one/policies/access/"><u>Access</u></a> product can apply Zero Trust principles while protecting employee access to corporate LLMs that are hosted on <a href="https://developers.cloudflare.com/workers-ai/"><u>Workers AI</u></a> or elsewhere. We’re newly integrating controls for <a href="http://blog.cloudflare.com/zero-trust-mcp-server-portals/"><u>securing MCP</u></a> that can also be used alongside Cloudflare’s <a href="https://blog.cloudflare.com/remote-model-context-protocol-servers-mcp/"><u>Remote MCP Server</u></a> platform.</p><p>And all of these features are integrated directly into Cloudflare’s SASE’s unified dashboard, providing a unified platform for you to implement your AI security strategy. You can even gain a holistic view of all of your AI-SPM controls using our newly-released AI-SPM overview dashboard. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6WzeNXp9TbX0h0QF8Nyby5/bcbeb8824e3eb5558826aed2cb17c11a/9.png" />
          </figure><p><sup><i>AI security report showing utilization of AI applications.</i></sup></p><p>As one the few SASE vendors that also offer AI infrastructure, Cloudflare’s SASE platform can also be deployed alongside products from our developer and application security platforms to holistically implement your AI security strategy alongside your AI infrastructure strategy (using, for example, <a href="https://developers.cloudflare.com/workers-ai/"><u>Workers AI</u></a>, <a href="https://developers.cloudflare.com/ai-gateway/"><u>AI Gateway</u></a>, <a href="https://developers.cloudflare.com/agents/guides/remote-mcp-server/"><u>remote MCP servers</u></a>, <a href="https://realtime.cloudflare.com/"><u>Realtime AI Apps</u></a>, <a href="https://developers.cloudflare.com/waf/detections/firewall-for-ai/"><u>Firewall for AI</u></a>, <a href="https://blog.cloudflare.com/ai-labyrinth/"><u>AI Labyrinth</u></a>, or <a href="https://blog.cloudflare.com/introducing-pay-per-crawl/"><u>pay per crawl</u></a> .)</p>
    <div>
      <h2>Cloudflare is committed to helping enterprises securely adopt AI</h2>
      <a href="#cloudflare-is-committed-to-helping-enterprises-securely-adopt-ai">
        
      </a>
    </div>
    <p>Ensuring AI is scalable, safe, and secure is a natural extension of Cloudflare’s mission, given so much of our success relies on a safe Internet. As AI adoption continues to accelerate, so too does our mission to provide a market-leading set of controls for AI Security Posture Management (AI-SPM). Learn more about how <a href="https://developers.cloudflare.com/learning-paths/holistic-ai-security/concepts/"><u>Cloudflare helps secure AI</u></a> or start exploring our new AI-SPM features in Cloudflare’s SASE <a href="https://dash.cloudflare.com/"><u>dashboard </u></a>today!</p> ]]></content:encoded>
            <category><![CDATA[AI Week]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[SASE]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[AI-SPM]]></category>
            <category><![CDATA[DLP]]></category>
            <category><![CDATA[CASB]]></category>
            <category><![CDATA[Access]]></category>
            <category><![CDATA[MCP]]></category>
            <guid isPermaLink="false">55IAKy7DMqbZKAy8htcUiO</guid>
            <dc:creator>AJ Gerstenhaber</dc:creator>
            <dc:creator>Sharon Goldberg</dc:creator>
            <dc:creator>Corey Mahan</dc:creator>
            <dc:creator>Yumna Moazzam</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing simple and secure egress policies by hostname in Cloudflare’s SASE platform]]></title>
            <link>https://blog.cloudflare.com/egress-policies-by-hostname/</link>
            <pubDate>Mon, 07 Jul 2025 13:00:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare's SASE platform now offers egress policies by hostname, domain, content category, and application in open beta. ]]></description>
            <content:encoded><![CDATA[ <p>Cloudflare’s <a href="https://www.cloudflare.com/learning/access-management/what-is-sase/"><u>SASE</u></a> platform is on a mission to strengthen our platform-wide support for hostname- and domain-based policies. This mission is being driven by enthusiastic demands from our customers, and boosted along the way by several interesting engineering challenges. Today, we’re taking a deep dive into the first milestone of this mission, which we recently released in open beta: <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/egress-policies/"><u>egress policies</u></a> by hostname, domain, <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/domain-categories/#content-categories"><u>content category</u></a>, and <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/application-app-types/"><u>application</u></a>. Let’s dive right in! </p>
    <div>
      <h2>Egress policies and IP ACLs</h2>
      <a href="#egress-policies-and-ip-acls">
        
      </a>
    </div>
    <p>Customers use our <a href="https://developers.cloudflare.com/learning-paths/secure-internet-traffic/build-egress-policies/"><u>egress policies</u></a> to control how their organization's Internet traffic connects to external services. An egress policy allows a customer to control the source IP address their traffic uses, as well as the geographic location that their traffic uses to egress onto the public Internet. Control of the source IP address is especially useful when accessing external services that apply policies to traffic based on source IPs, using IP Access Control Lists (ACLs). Some services use IP ACLs because they improve security, while others use them because they are explicitly required by regulation or compliance frameworks. </p><p>(That said, it's important to clarify that we do not recommend relying on IP ACLs as the only security mechanism used to gate access to a resource. Instead, IP ACLs should be used in combination with strong authentication like <a href="https://www.cloudflare.com/learning/access-management/what-is-sso/"><u>Single Sign On (SSO)</u></a>, <a href="https://www.cloudflare.com/learning/access-management/what-is-multi-factor-authentication/"><u>Multi Factor Authentication (MFA)</u></a>, <a href="https://fidoalliance.org/passkeys/"><u>passkeys</u></a>, etc.).</p><p>Let’s make the use case for egress policies more concrete with an example. </p><p>Imagine that Acme Co is a company that has purchased its own <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/egress-policies/dedicated-egress-ips/"><u>dedicated egress</u></a> IP address <code>203.0.113.9</code> from Cloudflare. Meanwhile, imagine a regulated banking application (<code>https://bank.example.com</code><u>)</u> that only grants access to the corporate account for Acme Co when traffic originates from source IP address <code>203.0.113.9</code>. Any traffic with a different source IP will be prevented from accessing Acme Co’s corporate account. In this way, the banking application uses IP ACLs to ensure that only employees from Acme Co can access Acme Co’s corporate account. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7KwZQRJksemP5QwXzT0S2P/2a45d3ac7581da31485a6d15c5ba6b03/image3.png" />
          </figure>
    <div>
      <h2>Egress policies by hostname</h2>
      <a href="#egress-policies-by-hostname">
        
      </a>
    </div>
    <p>Continuing our example, suppose that Acme Co wants to ensure that the banking application is off limits to all of its employees except those on its finance team. To accomplish this, Acme Co wants to write an egress policy that allows members of the finance team to egress from <code>203.0.113.9</code> when accessing <code>https://bank.example.com</code>, but employees outside of finance will not egress from <code>203.0.113.9</code> when attempting to access <code>https://bank.example.com</code>.  </p><p>As shown in the figure above, the combination of the banking application's IP ACLs and Acme Co’s egress policies ensures that <code>https://bank.example.com</code> is only accessible to its finance employees at Acme Co. </p><p>While this all sounds great, until now, this scenario was fairly difficult to achieve on <a href="https://www.cloudflare.com/zero-trust/products/"><u>Cloudflare’s SASE platform</u></a>. While we have long supported <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/egress-policies/"><u>egress policies</u></a> by user groups and other user attributes, we did not support writing egress policies by hostname. Instead, customers had to resort to writing egress policies by destination IP addresses.</p><p>To understand why customers have been clamoring for egress policies by hostname, let’s return to our example: </p><p>In our example, Acme Co wants to write a policy that allows only the finance team to access <code>https://bank.example.com</code>. In the past, in the absence of egress policies by hostname, Acme Co would need to write its egress policy in terms of the destination IP address of the banking application. </p><p>But how does Acme Co know the destination IP address of this banking application? The first problem is that the destination IP address belongs to an external service that is not controlled by Acme Co, and the second problem is that this IP address could change frequently, especially if the banking application uses <a href="https://en.wikipedia.org/wiki/Ephemeral_architecture"><u>ephemeral infrastructure</u></a> or sits behind a <a href="https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/"><u>reverse proxy</u></a> or <a href="https://www.cloudflare.com/learning/cdn/what-is-a-cdn/"><u>CDN</u></a>. Keeping up with changes to the destination IP address of an external service led some of our customers to write their own homegrown scripts that continuously update destination <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/lists/"><u>IP Lists</u></a> which are then fed to our egress policies using Cloudflare’s <a href="https://developers.cloudflare.com/api/resources/zero_trust/"><u>API</u></a>.</p><p>With this new feature, we do away with all these complications and simply allow our customers to write egress policies by hostname. </p>
    <div>
      <h2>Egress policies by domains, categories and applications too</h2>
      <a href="#egress-policies-by-domains-categories-and-applications-too">
        
      </a>
    </div>
    <p>Before we continue, we should note that this new feature also supports writing egress policies by:</p><ul><li><p>Domain: For example, we can now write an egress policy for <code>*.bank.example.com</code>, rather than an individual policy for each hostname (<code>bank.example.com</code>, <code>app.acmeco.bank.example.com</code>, <code>auth.bank.example.com</code>, etc.)</p></li><li><p>Category: For example, we can now write a single egress policy to control the egress IP address that employees use when accessing a site in the Cryptocurrency content category, rather than an individual policy for every Cryptocurrency website.</p></li><li><p>Application: For example, we can write a single egress policy for Slack, without needing to know all the different host and domain names (e.g. <code>app.slack.com</code>, <code>slack.com</code>, <code>acmeco.slack.com</code>, <code>slack-edge.com</code>) that Slack uses to serve its application.</p></li></ul><p>Here’s an example of writing an egress policy by application:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1so8jKsDbeWSfJAxh3yE9V/176e682aa1b0617fde4dd90732930460/image6.png" />
          </figure><p><sup><i>A view of the Cloudflare </i></sup><a href="https://dash.cloudflare.com/"><sup><i><u>dashboard</u></i></sup></a><sup><i> showing how to write an egress policy for a set of users and Applications. The policy is applied to users in the “finance” user group when accessing Applications including Microsoft Team, Slack, BambooHR and Progressive, and it determines the source IP that traffic uses when it egresses to the public Internet.</i></sup></p>
    <div>
      <h2>Why was this so hard to build?</h2>
      <a href="#why-was-this-so-hard-to-build">
        
      </a>
    </div>
    <p>Now let’s get into the engineering challenges behind this feature.</p><p>Egress polices are part of<a href="https://www.cloudflare.com/products/zero-trust/gateway/"> <u>Cloudflare Gateway</u></a>. Cloudflare Gateway is a<a href="https://www.cloudflare.com/learning/access-management/what-is-a-secure-web-gateway/"> <u>Secure Web Gateway (SWG)</u></a> that operates as both a <a href="https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi/"><u>layer 4 (L4)</u></a> and <a href="https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi/"><u>layer 7 (L7)</u></a> <a href="https://developers.cloudflare.com/learning-paths/replace-vpn/configure-device-agent/enable-proxy/"><u>proxy</u></a>. In other words, Cloudflare Gateway intercepts traffic by inspecting it at the transport layer (layer 4, including TCP and UDP), as well as at the application layer (layer 7, including HTTP).</p><p>The problem is that egress policies must necessarily be evaluated at layer 4, rather than at layer 7. Why? Because egress policies are used to select the source IP address for network traffic, and Cloudflare Gateway must select the source IP address for traffic <i>before</i> it creates the connection to the external service <code>bank.example.com</code>. If Gateway changes the source IP address in the middle of the connection, the connection will be broken. Therefore, Gateway must apply egress policies before it sends the very first packet in the connection. For instance, Gateway must apply egress policies before it sends the TCP SYN, which of course happens well before it sends any layer 7 information (e.g. HTTP). (See <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/order-of-enforcement/"><u>here</u></a> for more information on Gateway’s order of enforcement for its policies.)</p><p>The bottom line is that Gateway has no other information to use when applying the egress policy, other than the information in the IP header and the L4 (e.g. TCP) header of an IP packet. As you can see for the TCP/IPv4 packet below, a destination hostname is not part of the IP or TCP header in a packet. That's why we previously were not able to support egress policies by hostname, and instead required administrators to write egress policies by destination IP address.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5LS9YhSoRJzwBG18wt55Fa/e0a7251ef8a7fe15c9c3ccc42b0e7fb6/image4.png" />
          </figure>
    <div>
      <h2>So how did we build the feature?</h2>
      <a href="#so-how-did-we-build-the-feature">
        
      </a>
    </div>
    <p>We took advantage of the fact that <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/"><u>Cloudflare Gateway</u></a> also operates its own <a href="https://www.cloudflare.com/learning/access-management/what-is-dns-filtering/"><u>DNS resolver</u></a>. Every time an end user wants to access a destination hostname, the Gateway resolver first receives a DNS query for that hostname before sending its network traffic to the destination hostname. </p><p>To support egress policies by hostname, Gateway associates the DNS query for the hostname with the IP address  and TCP/UDP information in the network connection to the hostname. Specifically, Gateway will map the destination IP address in the end-user’s network connection to the hostname in the DNS query using a “synthetic IP” mechanism that is best explained using a diagram:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4cyJ0nD9cpXDqmo7FQJ0Ew/f9d93a8721645845c2036021dad57c27/image2.png" />
          </figure><p>Let’s walk through the flow:</p><p>1. When the end user makes a DNS query for <code>bank.example.com</code>, that DNS query is sent to the Gateway resolver.</p><p>2. The Gateway resolver does a public DNS lookup to associate bank.example.com to its destination IP address, which is <code>96.7.128.198</code>.</p><p>3. However, the Gateway resolver will not respond to the DNS query using the real destination IP <code>96.7.128.198</code>. Instead, it responds with an <i>initial resolved IP address</i> of <code>100.80.10.10</code>. This is not the real IP address for <code>bank.example.com</code>; instead, it acts as a tag that allows Gateway to identify network traffic destined to <code>bank.example.com</code>.  The initial resolved IP is randomly selected and temporarily assigned from one of the two IP address ranges below, which correspond to the Carrier Grade Network Address Translation (CGNAT) IP address spaces as defined in <a href="https://datatracker.ietf.org/doc/html/rfc6598"><u>RFC 6598</u></a> and <a href="https://datatracker.ietf.org/doc/rfc6264/"><u>RFC 6264</u></a>, respectively.</p><p>IPv4: 100.80.0.0/16</p><p>IPv6: 2606:4700:0cf1:4000::/64 </p><p>4. Gateway has now associated the initial resolved IP address <code>100.80.10.10</code>, with the hostname <code>bank.example.com</code>. Thus, when Gateway now sees network traffic to destination IP address <code>100.80.10.10</code>, Gateway recognizes it and applies the egress policy for bank.example.com. </p><p>5. After applying the egress policy, Gateway will rewrite the initially resolved address IP <code>100.80.10.10</code>, on the network traffic with the actual IP address <code>96.7.128.198</code> for <code>bank.example.com</code>, and send it out the egress IP address so that it can reach its destination.</p><p>The network traffic now has the correct destination IP address, and egresses according to the policy for bank.example.com, and all is well! </p>
    <div>
      <h2>Making it work for domains, categories and applications</h2>
      <a href="#making-it-work-for-domains-categories-and-applications">
        
      </a>
    </div>
    <p>So far, we’ve seen how the mechanism works with individual hostnames (i.e. Fully Qualified Domain Names (FQDNs) like <code>bank.example.com</code><u>)</u>. What about egress policies for domains and subdomains like <code>*.bank.example.com</code>? What about <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/domain-categories/#content-categories"><u>content categories</u></a> and <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/application-app-types/"><u>applications</u></a>, which are essentially sets of hostnames grouped together?</p><p>We are able to support these use cases because (returning to our example above) Gateway temporarily assigns the initial resolved IP address <code>100.80.10.10</code> to the hostname <code>bank.example.com</code> for a short period of time. After this short time period, the initial resolved IP address is released and returned into the pool of available addresses (in <code>100.80.0.0/16</code>), where it can be assigned to another hostname in the future.</p><p>In other words, we use a random dynamic assignment of initial resolved IP addresses, rather than statically associating a single initial resolved IP address with a single hostname. The result is that we can apply IPv4 egress policies to a very large number of hostnames, rather than being limited by the 65,536 IP addresses available in the <code>100.80.0.0/16</code> IPv4 address block.</p><p>Randomly assigning the initial resolved IP address also means that we can apply a single egress policy for a wildcard like <code>*.bank.example.com</code> to any traffic we happen to come across, such as traffic for <code>acmeco.bank.example.com</code> or <code>auth.bank.example.com</code>. A static mapping would require the customer to write a different policy for each individual hostname, which is clunkier and more difficult to manage.</p><p>Thus, by using dynamic assignments of initial resolved IP addresses, we simplify our customers’ egress policies and all is well!</p><p>Actually, not quite. There’s one other problem we need to solve.</p>
    <div>
      <h2>Landing on the same server</h2>
      <a href="#landing-on-the-same-server">
        
      </a>
    </div>
    <p>Cloudflare has an <a href="https://www.cloudflare.com/network"><u>extensive global network</u></a>, with servers running our software stack in over 330 cities in 125 countries. Our architecture is such that sharing strongly-consistent storage across those servers (even within a single data center) comes with some performance and reliability costs. For this reason, we decided to build this feature under the assumption that state could not be shared between any Cloudflare servers, even servers in the same data center.</p><p>This assumption created an interesting challenge for us. Let’s see why.</p><p>Returning to our running example, suppose that the end user’s DNS traffic lands on one Cloudflare server while the end user’s network traffic lands on a different Cloudflare server. Those servers do not share state.  Thus, it’s not possible to associate the mapping from hostname to its actual destination IP address (<code>bank.example.com</code> = <code>96.7.128.198</code>) which was obtained from the DNS traffic, with the initial resolved IP that is used by the network traffic (i.e. <code>100.80.10.10</code>). Our mechanism would break down and traffic would be dropped, as shown in the figure below.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/76uOsvToz6PnHVjprOKYGy/d978576f2a1d8b6a246431035ecf7a30/Landing_on_the_same_server.png" />
          </figure><p>We solve this problem by ensuring that DNS traffic and network traffic land on the same Cloudflare server. In particular, we require DNS traffic to go into the same tunnel as network traffic so that both traffic flows land on the same Cloudflare server. For this reason, egress policies by hostname are only supported when end users connect to the Cloudflare network using one of the following on-ramps:</p><ul><li><p>The WARP client (which we recently <a href="https://developers.cloudflare.com/cloudflare-one/changelog/warp/#2025-05-14"><u>upgraded</u></a> to send <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#overview"><u>DNS traffic inside the WARP tunnel</u></a>)</p></li><li><p>PAC files</p></li><li><p>Browser Isolation</p></li></ul><p>We are actively working to expand support of this feature to more onramps. </p>
    <div>
      <h2>What’s next?</h2>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>There’s a lot more coming. Besides expanding support for more onramps, we also plan to extend this support to hostname-based rulesets in more parts of Cloudflare’s SASE. Stand by for more updates from us on this topic. All of these new features will rely on the “initial resolved IP” mechanism that we described above, empowering our customers to simplify their rulesets and enforce tighter security policies in their Cloudflare SASE deployments.</p><p>Don't wait to gain granular control over your network traffic: log in to your Cloudflare <a href="https://dash.cloudflare.com/"><u>dashboard</u></a> to explore the beta release of <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/egress-policies/"><u>egress policies</u></a> by hostname / domain / category / application and bolster your security strategy with <a href="https://developers.cloudflare.com/reference-architecture/diagrams/sase/"><u>Cloudflare SASE</u></a>.</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Gateway]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Egress]]></category>
            <category><![CDATA[SASE]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Access Control Lists (ACLs)]]></category>
            <category><![CDATA[Categories]]></category>
            <category><![CDATA[Hostnames]]></category>
            <guid isPermaLink="false">1NxtPefzr7flsiIe8gZ43L</guid>
            <dc:creator>Ankur Aggarwal</dc:creator>
            <dc:creator>Sharon Goldberg</dc:creator>
            <dc:creator>João Paiva</dc:creator>
            <dc:creator>Alyssa Wang</dc:creator>
        </item>
        <item>
            <title><![CDATA[Everything you need to know about NIST’s new guidance in “SP 1800-35: Implementing a Zero Trust Architecture”]]></title>
            <link>https://blog.cloudflare.com/nist-sp-1300-85/</link>
            <pubDate>Thu, 19 Jun 2025 13:00:00 GMT</pubDate>
            <description><![CDATA[ We read NIST’s new guidance on “Implementing a Zero-Trust Architecture” so that you don’t have to.  Read this to get the key points on the newly-released NIST Special Publication 1800-35.  ]]></description>
            <content:encoded><![CDATA[ <p>For decades, the United States <a href="https://www.nist.gov/"><u>National Institute of Standards and Technology (NIST)</u></a> has been guiding industry efforts through the many publications in its <a href="https://csrc.nist.gov/"><u>Computer Security Resource Center</u></a>. NIST has played an especially important role in the adoption of Zero Trust architecture, through its series of publications that began with <a href="https://csrc.nist.gov/pubs/sp/800/207/final"><u>NIST SP 800-207: Zero Trust Architecture</u></a>, released in 2020.</p><p>NIST has released another Special Publication in this series, <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><u>SP 1800-35</u></a>, titled "Implementing a Zero Trust Architecture (ZTA)" which aims to provide practical steps and <a href="https://www.cloudflare.com/learning/access-management/how-to-implement-zero-trust/">best practices for deploying ZTA</a> across various environments.  NIST’s publications about ZTA have been extremely influential across the industry, but are often lengthy and highly detailed, so this blog provides a short and easier-to-read summary of NIST’s latest guidance on ZTA.</p><p>And so, in this blog post:</p><ul><li><p>We summarize the key items you need to know about this new NIST publication, which presents a reference architecture for <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust Architecture (ZTA)</a> along with a series of “Builds” that demonstrate how different products from various vendors can be combined to construct a ZTA that complies with the reference architecture.</p></li><li><p>We show how <a href="https://www.cloudflare.com/zero-trust/products/">Cloudflare’s Zero Trust product suite</a> can be integrated with offerings from other vendors to support a Zero Trust Architecture that maps to the NIST’s reference architecture.</p></li><li><p>We highlight a few key features of Cloudflare’s Zero Trust platform that are especially valuable to customers seeking compliance with NIST’s ZTA reference architecture, including compliance with FedRAMP and new post-quantum cryptography standards.</p></li></ul><p>Let’s dive into NIST’s special publication!</p>
    <div>
      <h2>Overview of SP 1800-35</h2>
      <a href="#overview-of-sp-1800-35">
        
      </a>
    </div>
    <p>In <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><u>SP 1800-35</u></a>, NIST reminds us that:</p><blockquote><p><i>A zero-trust architecture (ZTA) enables secure authorized access to assets — machines, applications and services running on them, and associated data and resources — whether located on-premises or in the cloud, for a hybrid workforce and partners based on an organization’s defined access policy.</i></p></blockquote><p>NIST uses the term Subject to refer to entities (i.e. employees, developers, devices) that require access to Resources (i.e. computers, databases, servers, applications).  <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><u>SP 1800-35</u></a> focuses on developing and demonstrating various ZTA implementations that allow Subjects to access Resources. Specifically, the reference architecture in <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><u>SP 1800-35</u></a> focuses mainly on <i>EIG</i> or “Enhanced Identity Governance”, a specific approach to Zero Trust Architecture, which is defined by NIST in <a href="https://doi.org/10.6028/NIST.SP.800-207"><u>SP 800-207</u></a> as follows:</p><blockquote><p><i>For [the EIG] approach, enterprise resource access policies are based on identity and assigned attributes. </i></p><p><i>The primary requirement for [R]esource access is based on the access privileges granted to the given [S]ubject. Other factors such as device used, asset status, and environmental factors may alter the final confidence level calculation … or tailor the result in some way, such as granting only partial access to a given [Resource] based on network location.</i></p><p><i>Individual [R]esources or [policy enforcement points (PEP)] must have a way to forward requests to a policy engine service or authenticate the [S]ubject and approve the request before granting access.</i></p></blockquote><p>While there are other approaches to ZTA mentioned in the original NIST <a href="https://doi.org/10.6028/NIST.SP.800-207"><u>SP 800-207</u></a>, we omit those here because <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><u>SP 1800-35</u></a> focuses mostly on EIG.</p><p>The ZTA reference architecture from <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><u>SP 1800-35</u></a> focuses on EIG approaches as a set of logical components as shown in the figure below.  Each component in the reference architecture does not necessarily correspond directly to physical (hardware or software) components, or products sold by a single vendor, but rather to the logical functionality of the component.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/hXSpBQINdjqyl57by3Uhc/fd39f66cebc2dd0a79dc4749b02208f3/image4.png" />
          </figure><p><sup><i>Figure 1: General ZTA Reference Architecture. Source: NIST, </i></sup><a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><sup><i><u>Special Publication 1800-35</u></i></sup></a><sup><i>, "Implementing a Zero Trust Architecture (ZTA)”, 2025.</i></sup></p><p>The logical components in the reference architecture are all related to the implementation of policy. Policy is crucial for ZTA because the whole point of a ZTA is to apply policies that determine who has access to what, when and under what conditions.</p><p>The core components of the reference architecture are as follows:</p><p>| Policy Enforcement Point(PEP) | The PEP protects the “trust zones” that host enterprise Resources, and handles enabling, monitoring, and eventually terminating connections between Subjects and Resources.  You can think of the PEP as the dataplane that supports the Subject’s access to the Resources.</p><div>
    <figure>
        <table>
            <colgroup>
                <col></col>
                <col></col>
            </colgroup>
            <tbody>
                <tr>
                    <td>
                        <p><span><span>Policy Enforcement Point</span></span><br /><span><span>(PEP)</span></span></p>
                    </td>
                    <td>
                        <p><span><span>The PEP protects the “trust zones” that host enterprise Resources, and handles enabling, monitoring, and eventually terminating connections between Subjects and Resources.  You can think of the PEP as the dataplane that supports the Subject’s access to the Resources.</span></span></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p><span><span>Policy Engine</span></span></p>
                        <p><span><span>(PE)</span></span></p>
                    </td>
                    <td>
                        <p><span><span>The PE handles the ultimate decision to grant, deny, or revoke access to a Resource for a given Subject, and calculates the trust scores/confidence levels and ultimate access decisions based on enterprise policy and information from supporting components. </span></span></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p><span><span>Policy Administrator</span></span></p>
                        <p><span><span>(PA)</span></span></p>
                    </td>
                    <td>
                        <p><span><span>The PA executes the PE’s policy decision by sending commands to the PEP to establish and terminate the communications path between the Subject and the Resource.</span></span></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p><span><span>Policy Decision Point (PDP)</span></span></p>
                    </td>
                    <td>
                        <p><span><span>The PDP is where the decision as to whether or not to permit a Subject to access a Resource is made.  The PIP included the Policy Engine (PE) and the Policy Administrator (PA).  You can think of the PDP as the control plane that controls the Subject’s access to the Resources.</span></span></p>
                    </td>
                </tr>
            </tbody>
        </table>
    </figure>
</div><p>The PDP operates on inputs from Policy Information Points (PIPs) which are supporting components that provide critical data and policy rules to the Policy Decision Point (PDP).</p><div>
    <figure>
        <table>
            <colgroup>
                <col></col>
                <col></col>
            </colgroup>
            <tbody>
                <tr>
                    <td>
                        <p><span><span>Policy Information Point</span></span></p>
                        <p><span><span>(PIP)</span></span></p>
                    </td>
                    <td>
                        <p><span><span>The PIPs provide various types of telemetry and other information needed for the PDP to make informed access decisions.  Some PIPs include:</span></span></p>
                        <ul>
                            <li><span><span>ICAM, or Identity, Credential, and Access Management, covering user authentication, single sign-on, user groups and access control features that are typically offered by Identity Providers (IdPs) like Okta, AzureAD or Ping Identity.  </span></span></li>
                            <li><span><span>Endpoint security includes endpoint detection and response (EDR) or endpoint protection platforms (EPP) that protect end user devices like laptops and mobile devices.  An EPP primarily focuses on preventing known threats using features like antivirus protection. Meanwhile, an EDR actively detects and responds to threats that may have already breached initial defenses using forensics, behavioral analysis and incident response tools. EDR and EPP products are offered by vendors like </span></span><a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/service-providers/crowdstrike/"><span><span><u>CrowdStrike</u></span></span></a><span><span>, </span></span><a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/service-providers/microsoft/"><span><span><u>Microsoft</u></span></span></a><span><span>, </span></span><a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/service-providers/sentinelone/"><span><span><u>SentinelOne</u></span></span></a><span><span>, and </span></span><a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/service-providers/"><span><span><u>more</u></span></span></a><span><span>. </span></span></li>
                            <li><span><span>Security Analytics and Data Security products use data collection, aggregation, and analysis to discover security threats using network traffic, user behavior, and other system data, such as, </span></span><a href="https://blog.cloudflare.com/customers-get-increased-integration-with-cloudflare-email-security-and-zero-trust/"><span><span><u>CrowdStrike</u></span></span></a><span><span>, </span></span><a href="https://developers.cloudflare.com/logs/get-started/enable-destinations/datadog/"><span><span><u>Datadog</u></span></span></a><span><span>, </span></span><a href="https://developers.cloudflare.com/logs/get-started/enable-destinations/ibm-qradar/"><span><span><u>IBM QRadar</u></span></span></a><span><span>, </span></span><a href="https://developers.cloudflare.com/analytics/analytics-integrations/sentinel/"><span><span><u>Microsoft Sentinel</u></span></span></a><span><span>, </span></span><a href="https://developers.cloudflare.com/logs/get-started/enable-destinations/new-relic/"><span><span><u>New Relic</u></span></span></a><span><span>, </span></span><a href="https://developers.cloudflare.com/logs/get-started/enable-destinations/splunk/"><span><span><u>Splunk</u></span></span></a><span><span>, and more.</span></span></li>
                        </ul>
                        <p> </p>
                        <p><span><span>NIST’s figure might suggest that supporting components in the PIP are mere plug-ins responding in real-time to the PDP.  However, for many vendors, the ICAM, EDR/EPP, security analytics, and data security PIPs often represent complex and distributed infrastructures.</span></span></p>
                    </td>
                </tr>
            </tbody>
        </table>
    </figure>
</div>
    <div>
      <h2>Crawl or run, but don’t walk</h2>
      <a href="#crawl-or-run-but-dont-walk">
        
      </a>
    </div>
    <p>Next, the <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><u>SP 1800-35</u></a> introduces two more detailed reference architectures, the “Crawl Phase” and the “Run Phase”.  The “Run Phase” corresponds to the reference architecture that is shown in the figure above.  The “Crawl Phase” is a simplified version of this reference architecture that only deals with protecting on-premise Resources, and omits cloud Resources. Both of these phases focused on Enhanced Identity Governance approaches to ZTA, as we defined above. <a href="https://www.nccoe.nist.gov/sites/default/files/2024-11/zta-nist-sp-1800-35-ipd.pdf"><u>NIST stated</u></a>, "<i>We are skipping the EIG walk phase and have proceeded directly to the run phase</i>".</p><p>The <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><u>SP 1800-35</u></a> then provides a sequence of detailed instructions, called “Builds”, that show how to implement “Crawl Phase” and “Run Phase” reference architectures using products sold by various vendors.</p><p>Since Cloudflare’s Zero Trust platform natively supports access to both cloud and on-premise resources, we will skip over the “Crawl Phase” and move directly to showing how Cloudflare’s Zero Trust platform can be used to support “Run Phase” of the reference architecture.</p>
    <div>
      <h2>A complete Zero Trust Architecture using Cloudflare and integrations</h2>
      <a href="#a-complete-zero-trust-architecture-using-cloudflare-and-integrations">
        
      </a>
    </div>
    <p>Nothing in NIST SP 1800-35 represents an endorsement of specific vendor technologies. Instead, the intent of the publication is to offer a general architecture that applies regardless of the technologies or vendors an organization chooses to deploy.   It also includes a series of “Builds” using a variety of technologies from different vendors, that allow organizations to achieve a ZTA.   This section describes how Cloudflare fits in with a ZTA, enabling you to accelerate your ZTA deployment from Crawl directly to Run.</p><p>Regarding the “Builds” in SP 1800-35, this section can be viewed as an aggregation of the following three specific builds:</p><ul><li><p><a href="https://pages.nist.gov/zero-trust-architecture/VolumeB/appendices/Appendix-E1B3.html#enterprise-1-build-3-e1b3-sdp-zscaler-zpa-ca-as-pe"><u>Enterprise 1 Build 3 (E1B3)</u></a>: <a href="https://www.cloudflare.com/learning/access-management/software-defined-perimeter/">Software-Defined Perimeter (SDP)</a> with Cloudflare as the Policy Engine (PE).</p></li><li><p><a href="https://pages.nist.gov/zero-trust-architecture/VolumeB/appendices/Appendix-E2B4.html#enterprise-2-build-4-e2b4-sdp-and-sase-symantec-cloud-secure-web-gateway-symantec-ztna-and-symantec-cloud-access-security-broker-as-pes"><u>Enterprise 2 Build 4 (E2B4)</u></a>: SDP and <a href="https://www.cloudflare.com/learning/access-management/what-is-sase/">Secure Access Service Edge (SASE) </a>with <a href="https://www.cloudflare.com/zero-trust/products/gateway/">Cloudflare Secure Web Gateway</a>, <a href="https://www.cloudflare.com/zero-trust/products/access/">Cloudflare Zero Trust Network Access (ZTNA)</a>, and Cloudflare Cloud Access Security Broker as PEs.</p></li><li><p><a href="https://pages.nist.gov/zero-trust-architecture/VolumeB/appendices/Appendix-E3B5.html#enterprise-3-build-5-e3b5-sdp-and-sase-microsoft-entra-conditional-access-formerly-called-azure-ad-conditional-access-and-microsoft-security-service-edge-as-pes"><u>Enterprise 3 Build 5 (E3B5)</u></a>: SDP and SASE with Microsoft Entra Conditional Access (formerly known as Azure AD Conditional Access) and Cloudflare Zero Trust as PEs.</p></li></ul><p>Now let’s see how we can map Cloudflare’s Zero Trust platform to the ZTA reference architecture:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/677H4TOcuuJQuQF51jgP5S/4c21589a9c61571182241e2255308b08/image3.png" />
          </figure><p><sup><i>Figure 2: General ZTA Reference Architecture Mapped to Cloudflare Zero Trust &amp; Key Integrations. Source: NIST, </i></sup><a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.1800-35.pdf"><sup><i><u>Special Publication 1800-35</u></i></sup></a><sup><i>, "Implementing a Zero Trust Architecture (ZTA)”, 2025, with modification by Cloudflare.</i></sup></p><p>Cloudflare’s platform simplifies complexity by delivering the PEP via our global anycast network and the PDP via our Software-as-a-Service (SaaS) management console, which also serves as a global unified control plane. A complete ZTA involves integrating Cloudflare with PIPs provided by other vendors, as shown in the figure above.</p><p>Now let’s look at several key points in the figure.</p><p>In the bottom right corner of the figure are Resources, which may reside on-premise, in private data centers, or across multiple cloud environments.  Resources are made securely accessible through Cloudflare’s global anycast network via <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>Cloudflare Tunnel</u></a> (as shown in the figure) or <a href="https://developers.cloudflare.com/magic-wan/"><u>Magic WAN</u></a> (not shown). Resources are shielded from direct exposure to the public Internet by placing them behind <a href="https://www.cloudflare.com/en-au/zero-trust/products/access/"><u>Cloudflare Access</u></a> and <a href="https://www.cloudflare.com/en-au/zero-trust/products/gateway/"><u>Cloudflare Gateway</u></a>, which are PEPs that enforce zero-trust principles by granting access to Subjects that conform to policy requirements.</p><p>In the bottom left corner of the figure are Subjects, both human and non-human, that need access to Resources.  With Cloudflare’s platform, there are multiple ways that Subjects can again access to Resources, including:</p><ul><li><p>Agentless approaches that allow end users to access Resources directly from their <a href="https://developers.cloudflare.com/learning-paths/zero-trust-web-access/concepts/"><u>web browsers</u></a>. Alternatively, Cloudflare’s <a href="https://developers.cloudflare.com/magic-wan/"><u>Magic WAN</u></a> can be used to support connections from enterprise networks directly to Cloudflare’s global anycast network via <a href="https://developers.cloudflare.com/magic-wan/reference/tunnels/"><u>IPsec tunnels, GRE tunnels</u></a> or <a href="https://developers.cloudflare.com/magic-wan/network-interconnect/"><u>Cloudflare Network Interconnect (CNI)</u></a>.</p></li><li><p>Agent-based approaches use Cloudflare’s lightweight <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/"><u>WARP client</u></a>, which protects corporate devices by securely and privately sending traffic to Cloudflare's global network.</p></li></ul><p>Now we move onto the PEP (the Policy Enforcement Point), which is the dataplane of our ZTA.   Cloudflare Access is a modern <a href="https://www.cloudflare.com/learning/access-management/what-is-ztna/">Zero Trust Network Access </a>solution that serves as a dynamic PEP, enforcing user-specific application access policies based on identity, device posture, context, and other factors.  Cloudflare Gateway is a Secure Web Gateway for filtering and inspecting traffic sent to the public Internet, serving as a dynamic PEP that provides DNS, HTTP and network traffic filtering, DNS resolver policies, and egress IP policies.</p><p>Both Cloudflare Access and Cloudflare Gateway rely on Cloudflare’s control plane, which acts as a PDP offering a policy engine (PE) and policy administrator (PA).  This PDP takes in inputs from PIPs provided by integrations with other vendors for ICAM, endpoint security, and security analytics.  Let’s dig into some of these integrations.</p><ul><li><p><b>ICAM: </b>Cloudflare’s control plane integrates with many ICAM providers that provide <a href="https://www.cloudflare.com/learning/access-management/what-is-sso/">Single Sign On (SSO</a>) and <a href="https://www.cloudflare.com/learning/access-management/what-is-multi-factor-authentication/">Multi-Factor Authentication (MFA)</a>. The ICAM provider authenticates human Subjects and passes information about authenticated users and groups back to Cloudflare’s control plane using <a href="https://www.cloudflare.com/learning/access-management/what-is-saml/"><u>Security Assertion Markup Language (SAML)</u></a> or <a href="https://openid.net/developers/how-connect-works/"><u>OpenID Connect (OIDC)</u></a> integrations.  Cloudflare’s ICAM integration also supports AI/ML powered <a href="https://blog.cloudflare.com/protect-against-identity-based-attacks-by-sharing-cloudflare-user-risk-with-okta/"><u>behavior-based user risk scoring</u></a>, exchange, and re-evaluation.

In the figure above, we depicted Okta as the ICAM provider, but Cloudflare supports many other ICAM vendors (e.g. <a href="https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/entra-id/"><u>Microsoft Entra</u></a>, <a href="https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/jumpcloud-saml/"><u>Jumpcloud</u></a>, <a href="https://blog.cloudflare.com/multi-sso-and-cloudflare-access-adding-linkedin-and-github-teams/"><u>GitHub SSO</u></a>, <a href="https://blog.cloudflare.com/cloudflare-ping/"><u>PingOne</u></a>).   For non-human Subjects — such as service accounts, Internet of Things (IoT) devices, or machine identities — authentication can be performed through <a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/warp-client-checks/client-certificate/"><u>certificates</u></a>, <a href="https://developers.cloudflare.com/cloudflare-one/identity/service-tokens/"><u>service tokens</u></a>, or other cryptographic methods.</p></li><li><p><b>Endpoint security: </b>Cloudflare’s control plane integrates with many endpoint security providers to exchange signals, such as device posture checks and user risk levels. Cloudflare facilitates this through integrations with endpoint detection and response EDR/EPP solutions, such as <a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/service-providers/crowdstrike/"><u>CrowdStrike</u></a>, <a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/service-providers/microsoft/"><u>Microsoft</u></a>, <a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/service-providers/sentinelone/"><u>SentinelOne</u></a>, and <a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/service-providers/"><u>more</u></a>. When posture checks are enabled with one of these vendors such as Microsoft, device state changes, <a href="https://learn.microsoft.com/en-us/graph/api/resources/intune-devices-compliancestate?view=graph-rest-1.0"><u>'noncompliant'</u></a>, can be sent to Cloudflare Zero Trust, automatically restricting access to Resources. Additionally, Cloudflare Zero Trust enables the ability to synchronize the <a href="https://developers.cloudflare.com/cloudflare-one/tutorials/entra-id-risky-users/"><u>Microsoft Entra ID risky users list</u></a> and apply more stringent Zero Trust policies to users at higher risk. </p></li><li><p><b>Security Analytics: </b>Cloudflare’s control plane integrates with real-time logging and <a href="https://developers.cloudflare.com/cloudflare-one/insights/analytics/analytics-overview/"><u>analytics</u></a> for persistent monitoring.  Cloudflare's own <a href="https://developers.cloudflare.com/cloudflare-one/insights/analytics/analytics-overview/"><u>analytics</u></a> and <a href="https://developers.cloudflare.com/cloudflare-one/insights/logs/"><u>logging</u></a> features monitor access requests and security events. Optionally, these events can be sent to a Security Information and Event Management (SIEM)  solution such as, <a href="https://blog.cloudflare.com/customers-get-increased-integration-with-cloudflare-email-security-and-zero-trust/"><u>CrowdStrike</u></a>, <a href="https://developers.cloudflare.com/logs/get-started/enable-destinations/datadog/"><u>Datadog</u></a>, <a href="https://developers.cloudflare.com/logs/get-started/enable-destinations/ibm-qradar/"><u>IBM QRadar</u></a>, <a href="https://developers.cloudflare.com/analytics/analytics-integrations/sentinel/"><u>Microsoft Sentinel</u></a>, <a href="https://developers.cloudflare.com/logs/get-started/enable-destinations/new-relic/"><u>New Relic</u></a>, <a href="https://developers.cloudflare.com/logs/get-started/enable-destinations/splunk/"><u>Splunk</u></a>, and <a href="https://developers.cloudflare.com/logs/get-started/enable-destinations/"><u>more</u></a> using Cloudflare’s <a href="https://developers.cloudflare.com/logs/get-started/"><u>logpush</u></a> integration.

Cloudflare's user risk scoring system is built on the <a href="https://openid.net/specs/openid-sharedsignals-framework-1_0.html"><u>OpenID Shared Signals Framework (SSF) Specification</u></a>, which allows integration with existing and future providers that support this standard. SSF focuses on the exchange of <a href="https://www.rfc-editor.org/rfc/rfc8417.html"><u>Security Event Tokens (SETs)</u></a>, a specialized type of JSON Web Token (JWT). By using SETs, providers can share user risk information, creating a network of real-time, shared security intelligence. In the context of NIST’s Zero Trust Architecture, this system functions as a PIP, which is responsible for gathering information about the Subject and their context, such as risk scores, device posture, or threat intelligence. This information is then provided to the PDP, which evaluates access requests and determines the appropriate policy actions. The PEP uses these decisions to allow or deny access, completing the cycle of secure, dynamic access control.</p></li><li><p><b>Data security: </b>Cloudflare’s Zero Trust offering provides robust <a href="https://www.cloudflare.com/learning/cloud/what-is-dspm/">data security capabilities</a> across <a href="https://developers.cloudflare.com/reference-architecture/diagrams/security/securing-data-in-transit/"><u>data-in-transit</u></a>, <a href="https://developers.cloudflare.com/reference-architecture/diagrams/security/securing-data-in-use/"><u>data-in-use</u></a>, and <a href="https://developers.cloudflare.com/reference-architecture/diagrams/security/securing-data-at-rest/"><u>data-at-rest</u></a>. Its <a href="https://developers.cloudflare.com/cloudflare-one/policies/data-loss-prevention/"><u>Data Loss Prevention (DLP)</u></a> safeguards sensitive information in transit by inspecting and blocking unauthorized data movement. <a href="https://developers.cloudflare.com/cloudflare-one/policies/browser-isolation/"><u>Remote Browser Isolation (RBI)</u></a> protects data-in-use by preventing malware, phishing, and unauthorized exfiltration while enabling secure web access. Meanwhile, <a href="https://developers.cloudflare.com/cloudflare-one/applications/casb/"><u>Cloud Access Security Broker (CASB)</u></a> ensures data-at-rest security by enforcing granular controls over SaaS applications, preventing unauthorized access and data leakage. Together, these capabilities provide comprehensive protection for modern enterprises operating in a cloud-first environment.</p></li></ul><p>By leveraging Cloudflare's Zero Trust platform, enterprises can simplify and enhance their ZTA implementation, securing diverse environments and endpoints while ensuring scalability and ease of deployment. This approach ensures that all access requests—regardless of where the Subjects or Resources are located—adhere to robust security policies, reducing risks and improving compliance with modern security standards.</p>
    <div>
      <h2>Support for agencies and enterprises running towards Zero Trust Architecture</h2>
      <a href="#support-for-agencies-and-enterprises-running-towards-zero-trust-architecture">
        
      </a>
    </div>
    <p>Cloudflare works with multiple enterprises, and federal and state agencies that rely on NIST guidelines to secure their networks.  So we take a brief detour to describe some unique features of Cloudflare’s Zero Trust platform that we’ve found to be valuable to these enterprises.</p><ul><li><p><b>FedRAMP data centers.  </b>Many <a href="https://www.cloudflare.com/public-sector/">government agencies</a> and commercial enterprises have FedRAMP requirements, and Cloudflare is well-equipped to support them. <a href="https://www.cloudflare.com/learning/privacy/what-is-fedramp/">FedRAMPs requirements</a> sometimes require organizations <a href="https://fedscoop.com/decentralizing-digital-infrastructure-the-path-to-resilient-and-responsive-government-services/"><u>to self-host software</u></a> and services inside their own network perimeter, which can result in higher latency, degraded performance and increased cost.  At Cloudflare, we take a different approach. Organizations can still benefit from Cloudflare’s global network and unparalleled performance while remaining Fedramp compliant.  To support FedRAMP customers, Cloudflare’s dataplane (aka our PEP, or Policy Enforcement Point) consists of <a href="https://www.cloudflare.com/network"><u>data centers in over 330 cities</u></a> where customers can send their encrypted traffic, and 32 FedRAMP datacenters where traffic is sent to when sensitive dataplane operations are required (e.g. TLS inspection).  This architecture means that our customers do not need to self-host a PEP and incur the associated cost, latency, and performance degradation.</p></li><li><p><b>Post-quantum cryptography. </b>NIST has <a href="https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf?cf_history_state=%7B%22guid%22%3A%22C255D9FF78CD46CDA4F76812EA68C350%22%2C%22historyId%22%3A8%2C%22targetId%22%3A%22FB69F839F2A2B930C3DFD855687A1E68%22%7D"><u>announced </u></a>that by 2030 all conventional cryptography (RSA and ECDSA) must be deprecated and upgraded to <a href="https://www.cloudflare.com/learning/ssl/quantum/what-is-post-quantum-cryptography/">post-quantum cryptography</a>.  But upgrading cryptography is hard and takes time, so Cloudflare aims to take on the burden of managing cryptography upgrades for our customers. That’s why organizations can tunnel their corporate network traffic though Cloudflare’s Zero Trust platform, protecting it against quantum adversaries without the hassle of individually upgrading each and every corporate application, system, or network connection. <a href="https://blog.cloudflare.com/post-quantum-zero-trust/"><u>End-to-end quantum safety</u></a> is available for communications from end-user devices, via web browser (today) or Cloudflare’s WARP device client (mid-2025), to secure applications connected with Cloudflare Tunnel.</p></li></ul>
    <div>
      <h2>Run towards Zero Trust Architecture with Cloudflare </h2>
      <a href="#run-towards-zero-trust-architecture-with-cloudflare">
        
      </a>
    </div>
    <p>NIST’s latest publication, SP 1800-35, provides a structured approach to <a href="https://www.cloudflare.com/learning/access-management/how-to-implement-zero-trust/">implementing Zero Trust</a>, emphasizing the importance of policy enforcement, continuous authentication, and secure access management. Cloudflare’s Zero Trust platform simplifies this complex framework by delivering a scalable, globally distributed solution that is <a href="https://www.cloudflare.com/trust-hub/compliance-resources/fedramp/">FedRAMP-compliant</a> and integrates with industry-leading providers like Okta, Microsoft, Ping, CrowdStrike, and SentinelOne to ensure comprehensive protection.</p><p>A key differentiator of Cloudflare’s Zero Trust solution is our global anycast network, one of the world’s largest and most interconnected networks. Spanning 330+ cities across 120+ countries, this network provides unparalleled performance, resilience, and scalability for enforcing Zero Trust policies without negatively impacting the end user experience. By leveraging Cloudflare’s network-level enforcement of security controls, organizations can ensure that <a href="https://www.cloudflare.com/learning/access-management/what-is-access-control/">access control</a>, data protection, and security analytics operate at the speed of the Internet — without backhauling traffic through centralized choke points. This architecture enables low-latency, highly available enforcement of security policies, allowing enterprises to seamlessly protect users, devices, and applications across on-prem, cloud, and hybrid environments.</p><p>Now is the time to take action. You can start implementing Zero Trust today by leveraging Cloudflare’s platform in alignment with NIST’s reference architecture. Whether you are beginning your Zero Trust journey or enhancing an existing framework, Cloudflare provides the tools, network, and integrations to help you succeed. <a href="https://developers.cloudflare.com/cloudflare-one/setup/"><u>Sign up for Cloudflare Zero Trust</u></a>, explore our integrations, and secure your organization with a modern, globally distributed approach to cybersecurity.</p> ]]></content:encoded>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[Public Sector]]></category>
            <category><![CDATA[NIST]]></category>
            <category><![CDATA[Compliance]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">4Py1QO6TikGfaBeGSPBmFv</guid>
            <dc:creator>Aaron McAllister</dc:creator>
            <dc:creator>Sharon Goldberg</dc:creator>
        </item>
        <item>
            <title><![CDATA[Conventional cryptography is under threat. Upgrade to post-quantum cryptography with Cloudflare Zero Trust]]></title>
            <link>https://blog.cloudflare.com/post-quantum-zero-trust/</link>
            <pubDate>Mon, 17 Mar 2025 13:00:00 GMT</pubDate>
            <description><![CDATA[ We’re thrilled to announce that organizations can now protect their sensitive corporate network traffic against quantum threats by tunneling it through Cloudflare’s Zero Trust platform. ]]></description>
            <content:encoded><![CDATA[ <p>Quantum computers are actively being developed that will eventually have the ability to break the cryptography we rely on for securing modern communications. Recent <a href="https://blog.google/technology/research/google-willow-quantum-chip/"><u>breakthroughs</u></a> in quantum computing have underscored the vulnerability of conventional cryptography to these attacks. Since 2017, Cloudflare has <a href="https://blog.cloudflare.com/tag/post-quantum/"><u>been at the forefront</u></a> of developing, standardizing, and implementing <a href="https://www.cloudflare.com/learning/ssl/quantum/what-is-post-quantum-cryptography/"><u>post-quantum cryptography</u></a> to withstand attacks by quantum computers. </p><p>Our mission is simple: we want every Cloudflare customer to have a clear path to quantum safety. Cloudflare recognizes the urgency, so we’re committed to managing the complex process of upgrading cryptographic algorithms, so that you don’t have to worry about it. We're not just talking about doing it. <a href="https://radar.cloudflare.com/adoption-and-usage#post-quantum-encryption-adoption"><u>Over 35% of the non-bot HTTPS traffic that touches Cloudflare today is post-quantum secure.</u></a> </p><p>The <a href="https://www.nist.gov/"><u>National Institute of Standards and Technology (NIST)</u></a> also recognizes the urgency of this transition. On November 15, 2024, NIST made a landmark <a href="https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf"><u>announcement</u></a> by setting a timeline to phase out <a href="https://en.wikipedia.org/wiki/RSA_(cryptosystem)"><u>RSA</u></a> and <a href="https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/"><u>Elliptic Curve Cryptography (ECC)</u></a>, the conventional cryptographic algorithms that underpin nearly every part of the Internet today. According to NIST’s announcement, these algorithms will be deprecated by 2030 and completely disallowed by 2035.</p><p>At Cloudflare, we aren’t waiting until 2035 or even 2030. We believe privacy is a fundamental human right, and advanced cryptography should be <a href="https://blog.cloudflare.com/post-quantum-crypto-should-be-free/"><u>accessible to everyone</u></a> without compromise. No one should be required to pay extra for post-quantum security. That’s why any visitor accessing a <a href="https://blog.cloudflare.com/pq-2024/"><u>website protected by Cloudflare today</u></a> benefits from post-quantum cryptography, when using a major browser like <a href="https://blog.chromium.org/2024/05/advancing-our-amazing-bet-on-asymmetric.html"><u>Chrome, Edge</u></a>, or <a href="https://www.mozilla.org/en-US/firefox/135.0/releasenotes/"><u>Firefox</u></a>. (And, we are excited to see a <a href="https://radar.cloudflare.com/explorer?dataSet=http&amp;groupBy=post_quantum&amp;filters=botClass%253DLikely_Human%252Cos%253DiOS"><u>small percentage of (mobile) Safari traffic</u></a> in our Radar data.) Well over a third of the human traffic passing through Cloudflare today already enjoys this enhanced security, and we expect this share to increase as more browsers and clients are upgraded to support post-quantum cryptography. </p><p>While great strides have been made to protect human web traffic, not every application is a web application. And every organization has internal applications (both web and otherwise) that do not support post-quantum cryptography.  </p><p>How should organizations go about upgrading their sensitive corporate network traffic to support post-quantum cryptography?</p><p>That’s where today’s announcement comes in. We’re thrilled to announce the first phase of end-to-end quantum readiness of our <a href="https://www.cloudflare.com/zero-trust/">Zero Trust platform</a><b>, </b>allowing customers to protect their corporate network traffic with post-quantum cryptography.<b> Organizations can tunnel their corporate network traffic though Cloudflare’s Zero Trust platform, protecting it against quantum adversaries without the hassle of individually upgrading each and every corporate application, system, or network connection.</b> </p><p>More specifically, organizations can use our Zero Trust platform to route communications from end-user devices (via web browser or Cloudflare’s <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/"><u>WARP device client</u></a>) to secure applications connected with <a href="https://blog.cloudflare.com/post-quantum-tunnel/"><u>Cloudflare Tunnel</u></a>, to gain end-to-end quantum safety, in the following use cases: </p><ul><li><p><b>Cloudflare’s clientless </b><a href="https://developers.cloudflare.com/cloudflare-one/policies/access/"><b><u>Access</u></b></a><b>: </b>Our clientless <a href="https://www.cloudflare.com/learning/access-management/what-is-ztna/">Zero Trust Network Access (ZTNA)</a> solution verifies user identity and device context for every HTTPS request to corporate applications from a web browser. Clientless Access is now protected end-to-end with post-quantum cryptography.</p></li><li><p><b>Cloudflare’s </b><a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/"><b><u>WARP device client</u></b></a><b>:</b> By mid-2025, customers using the WARP device client will have all of their traffic (regardless of protocol) tunneled over a connection protected by post-quantum cryptography. The WARP client secures corporate devices by privately routing their traffic to Cloudflare's global network, where Gateway applies advanced web filtering and Access enforces policies for secure access to applications. </p></li><li><p><b>Cloudflare </b><a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/http-policies/"><b><u>Gateway</u></b></a>: Our <a href="https://www.cloudflare.com/learning/access-management/what-is-a-secure-web-gateway/">Secure Web Gateway (SWG) </a>— designed to inspect and filter TLS traffic in order to block threats and unauthorized communications — now supports TLS with post-quantum cryptography. </p></li></ul><p>In the remaining sections of this post, we’ll explore the threat that quantum computing poses and the challenges organizations face in transitioning to post-quantum cryptography. We’ll also dive into the technical details of how our Zero Trust platform supports post-quantum cryptography today and share some plans for the future.</p>
    <div>
      <h3>Why transition to post-quantum cryptography and why now? </h3>
      <a href="#why-transition-to-post-quantum-cryptography-and-why-now">
        
      </a>
    </div>
    <p>There are two key reasons to adopt post-quantum cryptography now:</p>
    <div>
      <h4>1. The challenge of deprecating cryptography</h4>
      <a href="#1-the-challenge-of-deprecating-cryptography">
        
      </a>
    </div>
    <p>History shows that updating or removing outdated cryptographic algorithms from live systems is extremely difficult. For example, although the MD5 hash function was <a href="https://iacr.org/archive/eurocrypt2005/34940019/34940019.pdf"><u>deemed insecure in 2004</u></a> and long since deprecated, it was still in use with the RADIUS enterprise authentication protocol as recently as 2024. In July 2024, Cloudflare contributed to research revealing an <a href="https://blog.cloudflare.com/radius-udp-vulnerable-md5-attack/"><u>attack on RADIUS</u></a> that exploited its reliance on MD5. This example underscores the enormous challenge of updating legacy systems — this difficulty in achieving <a href="https://en.wikipedia.org/wiki/Cryptographic_agility"><i><u>crypto-agility</u></i></a> — which will be just as demanding when it’s time to transition to post-quantum cryptography. So it makes sense to start this process now.</p>
    <div>
      <h4>2. The “harvest now, decrypt later” threat</h4>
      <a href="#2-the-harvest-now-decrypt-later-threat">
        
      </a>
    </div>
    <p>Even though quantum computers lack enough qubits to break conventional cryptography today, adversaries can harvest and store encrypted communications or steal datasets with the intent of decrypting them once quantum technology matures. If your encrypted data today could become a liability in 10 to 15 years, planning for a post-quantum future is essential. For this reason, we have already started working with some of the most innovative <a href="https://www.cloudflare.com/banking-and-financial-services/">banks</a>, ISPs, and <a href="https://www.cloudflare.com/public-sector/">governments</a> around the world as they begin their journeys to quantum safety. </p><p>The U.S. government is already addressing these risks. On January 16, 2025, the White House issued <a href="https://www.federalregister.gov/documents/2025/01/17/2025-01470/strengthening-and-promoting-innovation-in-the-nations-cybersecurity"><u>Executive Order 14144</u></a> on Strengthening and Promoting Innovation in the Nation’s Cybersecurity. This order requires government agencies to “<i>regularly update a list of product categories in which products that support post-quantum cryptography (PQC) are widely available…. Within 90 days of a product category being placed on the list … agencies shall take steps to include in any solicitations for products in that category a requirement that products support PQC.</i>”</p><p>At Cloudflare, we’ve been <a href="https://blog.cloudflare.com/the-tls-post-quantum-experiment/"><u>researching</u></a>, <a href="https://blog.cloudflare.com/securing-the-post-quantum-world/"><u>developing</u></a>, and <a href="https://www.ietf.org/archive/id/draft-kwiatkowski-tls-ecdhe-mlkem-02.html"><u>standardizing</u></a> post-quantum cryptography <a href="https://blog.cloudflare.com/tag/post-quantum/"><u>since 2017</u></a>. Our strategy is simple:</p><p><b>Simply tunnel your traffic through Cloudflare’s quantum-safe connections to immediately protect against harvest-now-decrypt-later attacks, without the burden of upgrading every cryptographic library yourself.</b></p><p>Let’s take a closer look at how the migration to post-quantum cryptography is taking shape at Cloudflare.</p>
    <div>
      <h3>A two-phase migration to post-quantum cryptography</h3>
      <a href="#a-two-phase-migration-to-post-quantum-cryptography">
        
      </a>
    </div>
    <p>At Cloudflare, we’ve largely focused on migrating the <a href="https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/"><u>TLS (Transport Layer Security) 1.3</u></a> protocol to post-quantum cryptography.   TLS primarily secures the communications for web applications, but it is also widely used to secure email, messaging, <a href="https://blog.cloudflare.com/zero-trust-warp-with-a-masque/"><u>VPN connections</u></a>, <a href="https://www.cloudflare.com/learning/dns/dns-over-tls/"><u>DNS</u></a>, and many other protocols.  This makes TLS an ideal protocol to focus on when migrating to post-quantum cryptography.</p><p>The migration involves updating two critical components of TLS 1.3: <a href="https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certificate/"><u>digital signatures used in certificates</u></a> and <a href="https://blog.cloudflare.com/post-quantum-key-encapsulation/"><u>key agreement mechanisms</u></a>. We’ve made significant progress on key agreement, but the migration to post-quantum digital signatures is still in its early stages.</p>
    <div>
      <h4>Phase 1: Migrating key agreement</h4>
      <a href="#phase-1-migrating-key-agreement">
        
      </a>
    </div>
    <p>Key agreement protocols enable two parties to securely establish a shared secret key that they can use to secure and encrypt their communications. Today, vendors have largely converged on transitioning TLS 1.3 to support a post-quantum key exchange protocol known as <a href="https://blog.cloudflare.com/nists-first-post-quantum-standards/"><u>ML-KEM</u></a> (Module-lattice based Key-Encapsulation Mechanism Standard). There are two main reasons for prioritizing migration of key agreement:</p><ul><li><p><b>Performance:</b> ML-KEM <a href="https://blog.cloudflare.com/pq-2024/"><u>performs</u></a> well with the <a href="https://www.cloudflare.com/learning/ssl/why-use-tls-1.3/">TLS 1.3 protocol,</a> even for short-lived network connections.</p></li><li><p><b>Security</b>: Conventional cryptography is vulnerable to “harvest now, decrypt later” attacks. In this threat model, an adversary intercepts and stores encrypted communications today and later (in the future) uses a quantum computer to derive the secret key, compromising the communication. As of March 2025, well over a third of the human web traffic reaching the Cloudflare network is protected against these attacks by TLS 1.3 with hybrid ML-KEM key exchange.</p></li></ul>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1Tgfy0HYHA5MM6JjaNP2Z1/b601d2938be3c52decf1f3cec7313c6e/image6.png" />
          </figure><p><sup><i>Post-quantum encrypted share of human HTTPS request traffic seen by Cloudflare per </i></sup><a href="https://radar.cloudflare.com/adoption-and-usage?dateRange=52w"><sup><i><u>Cloudflare Radar</u></i></sup></a><sup><i> from March 1, 2024 to March 1, 2025. (Captured on March 13, 2025.)</i></sup></p><p>Here’s how to check if your Chrome browser is using ML-KEM for key agreement when visiting a website: First, <a href="https://developer.chrome.com/docs/devtools/inspect-mode#:~:text=Open%20DevTools,The%20element's%20margin%2C%20in%20pixels."><u>Inspect the page</u></a>, then open the <a href="https://developer.chrome.com/docs/devtools/security"><u>Security tab</u></a>, and finally look for <a href="https://www.ietf.org/archive/id/draft-kwiatkowski-tls-ecdhe-mlkem-02.html"><u>X25519MLKEM768</u></a> as shown here:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6EoD5jFMXJeWFeRtG9w6Uy/85aa13123d64f21ea93313f674d4378f/image1.png" />
          </figure><p>This indicates that your browser is using key-agreement protocol ML-KEM <i>in combination with</i> conventional <a href="https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/"><u>elliptic curve cryptography</u></a> on curve <a href="https://en.wikipedia.org/wiki/Curve25519"><u>X25519</u></a>. This provides the protection of the tried-and-true conventional cryptography (<a href="https://en.wikipedia.org/wiki/Curve25519"><u>X25519</u></a>) alongside the new post-quantum key agreement (<a href="https://blog.cloudflare.com/nists-first-post-quantum-standards/"><u>ML-KEM</u></a>).</p>
    <div>
      <h4>Phase 2: Migrating digital signatures</h4>
      <a href="#phase-2-migrating-digital-signatures">
        
      </a>
    </div>
    <p><a href="https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certificate/"><u>Digital signatures are used in TLS certificates</u></a> to validate the authenticity of connections — allowing the client to be sure that it is really communicating with the server, and not with an adversary that is impersonating the server. </p><p>Post-quantum digital signatures, however, are significantly larger, and thus slower, than their current counterparts. This performance impact has slowed their adoption, particularly because they slow down short-lived TLS connections. </p><p>Fortunately, post-quantum signatures are not needed to prevent harvest-now-decrypt-later attacks. Instead, they primarily protect against attacks by an adversary that is actively using a quantum computer to tamper with a live TLS connection. We still have some time before quantum computers are able to do this, making the migration of digital signatures a lower priority.</p><p>Nevertheless, Cloudflare is actively <a href="https://datatracker.ietf.org/doc/draft-ietf-lamps-dilithium-certificates/07/"><u>involved in standardizing</u></a> post-quantum signatures for TLS certificates. We are also experimenting with their deployment on long-lived TLS connections and exploring <a href="https://datatracker.ietf.org/doc/draft-davidben-tls-merkle-tree-certs/"><u>new approaches</u></a> to achieve post-quantum authentication without sacrificing performance. Our goal is to ensure that post-quantum digital signatures are ready for widespread use when quantum computers are able to actively attack live TLS connections.</p>
    <div>
      <h3>Cloudflare Zero Trust + PQC: future-proofing security</h3>
      <a href="#cloudflare-zero-trust-pqc-future-proofing-security">
        
      </a>
    </div>
    <p>The Cloudflare Zero Trust platform replaces legacy corporate security perimeters with Cloudflare's global network, making access to the Internet and to corporate resources faster and safer for teams around the world. Today, we’re thrilled to announce that Cloudflare's Zero Trust platform protects your data from quantum threats as it travels over the public Internet.  There are three key quantum-safe use cases supported by our Zero Trust platform in this first phase of quantum readiness.</p>
    <div>
      <h4>Quantum-safe clientless Access</h4>
      <a href="#quantum-safe-clientless-access">
        
      </a>
    </div>
    <p><a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/agentless/"><u>Clientless</u></a> <a href="https://developers.cloudflare.com/cloudflare-one/applications/configure-apps/self-hosted-public-app/"><u>Cloudflare Access</u></a> now protects an organization’s Internet traffic to internal web applications against quantum threats, even if the applications themselves have not yet migrated to post-quantum cryptography. ("Clientless access" is a method of accessing network resources without installing a dedicated client application on the user's device. Instead, users connect and access information through a web browser.)</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5mKiboLMsIEuNt1MaXlWsy/dad0956066e97db69401757b18e8ce5f/image4.png" />
          </figure><p>Here’s how it works today:</p><ul><li><p><b>PQ connection via browser: </b>(Labeled (1) in the figure.)
As long as the user's web browser supports post-quantum key agreement, the connection from the device to Cloudflare's network is secured via TLS 1.3 with post-quantum key agreement.</p></li><li><p><b>PQ within Cloudflare’s global network: </b>(Labeled (2) in the figure) 
If the user and origin server are geographically distant, then the user’s traffic will enter Cloudflare’s global network in one geographic location (e.g. Frankfurt), and exit at another (e.g. San Francisco).  As this traffic moves from one datacenter to another inside Cloudflare’s global network, these hops through the network are secured via TLS 1.3 with post-quantum key agreement.<b> </b></p></li><li><p><b>PQ Cloudflare Tunnel: </b>(Labeled (3) in the figure)
Customers establish a Cloudflare Tunnel from their datacenter or public cloud — where their corporate web application is hosted — to Cloudflare's network. This tunnel is secured using TLS 1.3 with post-quantum key agreement, safeguarding it from harvest-now-decrypt-later attacks.</p></li></ul><p>Putting it together, clientless Access provides <b>end-to-end</b> quantum safety for accessing corporate HTTPS applications, without requiring customers to upgrade the security of corporate web applications.</p>
    <div>
      <h4>Quantum-safe Zero Trust with Cloudflare’s WARP Client-to-Tunnel configuration (as a VPN replacement)</h4>
      <a href="#quantum-safe-zero-trust-with-cloudflares-warp-client-to-tunnel-configuration-as-a-vpn-replacement">
        
      </a>
    </div>
    <p>By mid-2025, organizations will be able to protect <b>any protocol</b>, not just HTTPS, by tunneling it through Cloudflare's Zero Trust platform with post quantum cryptography, thus providing quantum safety as traffic travels across the Internet from the end-user’s device to the corporate office/data center/cloud environment.</p><p>Cloudflare’s Zero Trust platform is ideal for replacing traditional VPNs, and enabling <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/"><u>Zero Trust architectures</u></a> with modern authentication and authorization polices.  Cloudflare’s WARP client-to-tunnel is a popular network configuration for our Zero Trust platform: organizations deploy Cloudflare’s <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/"><u>WARP device client</u></a> on their end users’ devices, and then use <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>Cloudflare Tunnel</u></a> to connect to their corporate office, cloud, or data center environments.   </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5xovIIyVOO32xrXBs0ZFcf/110928926b86f12777f16518b1313875/image3.png" />
          </figure><p> Here are the details:  </p><ul><li><p><b>PQ connection via WARP client (coming in mid-2025): </b>(Labeled (1) in the figure)
The WARP client uses the <a href="https://blog.cloudflare.com/zero-trust-warp-with-a-masque/"><u>MASQUE protocol</u></a> to connect from the device to Cloudflare’s global network. We are working to add support for establishing this MASQUE connection with TLS 1.3 with post-quantum key agreement, with a target completion date of mid-2025.  </p></li><li><p><b>PQ within Cloudflare’s global network:  </b>(Labeled (2) in the figure) 
As traffic moves from one datacenter to another inside Cloudflare’s global network, each hop it takes through Cloudflare’s network is already secured with TLS 1.3 with post-quantum key agreement.</p></li><li><p><b>PQ Cloudflare Tunnel: </b>(Labeled (3) in the figure)
As mentioned above, <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>Cloudflare Tunnel</u></a> already supports post-quantum key agreement. </p></li></ul><p>Once the upcoming post-quantum enhancements to the WARP device client are complete, customers can encapsulate their traffic in quantum-safe tunnels, effectively mitigating the risk of harvest-now-decrypt-later attacks without any heavy lifting to individually upgrade their networks or applications.  And this provides comprehensive protection for any protocol that can be sent through these tunnels, not just for HTTPS!</p>
    <div>
      <h4>Quantum-safe SWG (end-to-end PQC for access to third-party web applications)</h4>
      <a href="#quantum-safe-swg-end-to-end-pqc-for-access-to-third-party-web-applications">
        
      </a>
    </div>
    <p>A <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/http-policies/"><u>Secure Web Gateway</u></a> (SWG) is used to secure access to third-party websites on the public Internet by intercepting and inspecting TLS traffic. </p><p>Cloudflare Gateway is now a quantum-safe SWG for HTTPS traffic. As long as the third-party website that is being inspected supports post-quantum key agreement, then Cloudflare’s SWG also supports post-quantum key agreement. This holds regardless of the onramp that the customer uses to get to Cloudflare's network (i.e. <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/agentless/"><u>web browser</u></a>, <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/"><u>WARP device client</u></a>, <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/private-net/warp-connector/"><u>WARP Connector</u></a>, <a href="https://developers.cloudflare.com/magic-wan/"><u>Magic WAN</u></a>), and only requires the use of a browser that supports post-quantum key agreement.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6vnkEFkvKbhSAxp33GmRk7/c58d00a14767a03b2422af1c48a53ba9/image5.png" />
          </figure><p>Cloudflare Gateway's HTTPS SWG feature involves two post-quantum TLS connections, as follows:</p><ul><li><p><b>PQ connection via browser: </b>(Labeled (1) in the figure)  
A TLS connection is initiated from the user's browser to a data center in Cloudflare's network that performs the TLS inspection. As long as the user's web browser supports post-quantum key agreement, this connection is secured by TLS 1.3 with post-quantum key agreement.  </p></li><li><p><b>PQ connection to the origin server: </b>(Labeled (2) in the figure)  
A TLS connection is initiated from a datacenter in Cloudflare's network to the origin server, which is typically controlled by a third party. The connection from Cloudflare’s SWG currently supports post-quantum key agreement, as long as the third party’s origin server also already supports post-quantum key agreement.  You can test this out today by using <a href="https://pq.cloudflareresearch.com/"><u>https://pq.cloudflareresearch.com/</u></a> as your third-party origin server. </p></li></ul><p>Put together, Cloudflare’s SWG is quantum-ready to support secure access to any third-party website that is quantum ready today or in the future. And this is true regardless of the onramp used to get end users' traffic into Cloudflare's global network!</p>
    <div>
      <h3>The post-quantum future: Cloudflare’s Zero Trust platform leads the way</h3>
      <a href="#the-post-quantum-future-cloudflares-zero-trust-platform-leads-the-way">
        
      </a>
    </div>
    <p>Protecting our customers from emerging quantum threats isn't just a priority — it's our responsibility. Since 2017, Cloudflare has been pioneering post-quantum cryptography through research, standardization, and strategic implementation across our product ecosystem.</p><p><b>Today marks a milestone: </b>We're launching the first phase of quantum-safe protection for our Zero Trust platform. Quantum-safe clientless Access and Secure Web Gateway are available immediately, with WARP client-to-tunnel network configurations coming by mid-2025. As we continue to advance the state of the art in post-quantum cryptography, our commitment to continuous innovation ensures that your organization stays ahead of tomorrow's threats.  Let us worry about crypto-agility so that you don’t have to.</p><p>To learn more about how Cloudflare’s built-in crypto-agility can future-proof your business, visit our <a href="http://cloudflare.com/pqc"><u>Post-Quantum Cryptography</u></a> webpage.</p>
    <div>
      <h3>Watch on Cloudflare TV</h3>
      <a href="#watch-on-cloudflare-tv">
        
      </a>
    </div>
    <div>
  
</div><p></p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[Post-Quantum]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Cloudflare Gateway]]></category>
            <category><![CDATA[Cloudflare Access]]></category>
            <category><![CDATA[Clientless]]></category>
            <category><![CDATA[Cloudflare Tunnel]]></category>
            <category><![CDATA[Cryptography]]></category>
            <category><![CDATA[Research]]></category>
            <guid isPermaLink="false">18HFPrh07hn9Zqp8kaonRp</guid>
            <dc:creator>Sharon Goldberg</dc:creator>
            <dc:creator>Wesley Evans</dc:creator>
            <dc:creator>Bas Westerbaan</dc:creator>
            <dc:creator>John Engates</dc:creator>
        </item>
        <item>
            <title><![CDATA[Fearless SSH: short-lived certificates bring Zero Trust to infrastructure]]></title>
            <link>https://blog.cloudflare.com/intro-access-for-infrastructure-ssh/</link>
            <pubDate>Wed, 23 Oct 2024 13:00:00 GMT</pubDate>
            <description><![CDATA[ Access for Infrastructure, BastionZero’s integration into Cloudflare One, will enable organizations to apply Zero Trust controls to their servers, databases, Kubernetes clusters, and more. Today we’re announcing short-lived SSH access as the first available feature of this integration.
 ]]></description>
            <content:encoded><![CDATA[ <p><a href="https://blog.cloudflare.com/cloudflare-acquires-bastionzero"><u>BastionZero joined Cloudflare</u></a> in May 2024. We are thrilled to announce Access for Infrastructure as BastionZero’s native integration into our <a href="https://www.cloudflare.com/learning/access-management/what-is-sase/"><u>SASE</u></a> platform, Cloudflare One. Access for Infrastructure will enable organizations to apply Zero Trust controls in front of their servers, databases, network devices, Kubernetes clusters, and more. Today, we’re announcing <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#_top"><u>short-lived SSH access</u></a> as the first available feature. Over the coming months we will announce support for other popular infrastructure access target types like <a href="https://www.cloudflare.com/learning/access-management/what-is-the-remote-desktop-protocol/"><u>Remote Desktop Protocol (RDP)</u></a>, Kubernetes, and databases.</p>
    <div>
      <h2>Applying Zero Trust principles to infrastructure</h2>
      <a href="#applying-zero-trust-principles-to-infrastructure">
        
      </a>
    </div>
    <p>Organizations have embraced <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/"><u>Zero Trust</u></a> initiatives that modernize secure access to web applications and networks, but often the strategies they use to manage privileged access to their infrastructure can be siloed, overcomplicated, or ineffective. When we speak to customers about their infrastructure access solution, we see common themes and pain points:</p><ul><li><p><b>Too risky:</b> Long-lived credentials and shared keys get passed around and inflate the risk of compromise, excessive permissions, and lateral movement</p></li><li><p><b>Too clunky</b>: Manual credential rotations and poor visibility into infrastructure access slow down incident response and compliance efforts</p></li></ul><p>Some organizations have dealt with the problem of privileged access to their infrastructure by purchasing a <a href="https://en.wikipedia.org/wiki/Privileged_access_management"><u>Privileged Access Management (PAM)</u></a> solution or by building a homegrown key management tool. Traditional PAM solutions introduce audit logging and session recording features that capture user interactions with their servers and other infrastructure and/or centralized vaults that rotate keys and passwords for infrastructure every time a key is used. But this centralization can introduce performance bottlenecks, harm usability, and come with a significant price tag. Meanwhile, homegrown solutions are built from primitives provided by cloud providers or custom infrastructure-as-code solutions, and can be costly and tiresome to build out and maintain. </p><p>We believe that organizations should apply Zero Trust principles to their most sensitive corporate resources, which naturally includes their infrastructure. That’s why we’re augmenting Cloudflare’s <a href="https://www.cloudflare.com/learning/access-management/what-is-ztna/"><u>Zero Trust Network Access (ZTNA)</u></a> service with <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#_top"><u>Access to Infrastructure</u></a> to support privileged access to sensitive infrastructure, and offering features that will look somewhat similar to those found in a PAM solution:</p><ul><li><p><b>Access</b>: Connect remote users to infrastructure targets via Cloudflare’s global network.</p></li><li><p><b>Authentication</b>: Eliminate the management of credentials for servers, containers, clusters, and databases and replace them with <a href="https://www.cloudflare.com/learning/access-management/what-is-sso/"><u>SSO</u></a>, <a href="https://www.cloudflare.com/learning/access-management/what-is-multi-factor-authentication/"><u>MFA</u></a>, and <a href="https://blog.cloudflare.com/6-new-ways-to-validate-device-posture/"><u>device posture</u></a>. </p></li><li><p><b>Authorization</b>: Use policy-based access control to determine who can access what target, when, and under what role. </p></li><li><p><b>Auditing</b>: Provide command logs and session recordings to allow administrators to audit and replay their developers’ interactions with the organization’s infrastructure.</p></li></ul><p>At Cloudflare, we are big believers that unified experiences produce the best security outcomes, and because of that, we are natively rebuilding each BastionZero feature into Cloudflare’s ZTNA service. Today, we will cover the recently-released feature for short-lived SSH access.</p>
    <div>
      <h2>Secure Shell (SSH) and its security risks</h2>
      <a href="#secure-shell-ssh-and-its-security-risks">
        
      </a>
    </div>
    <p><a href="https://www.cloudflare.com/learning/access-management/what-is-ssh/"><u>SSH</u></a> (Secure Shell) is a protocol that is commonly used by developers or system administrators to secure the connections used to remotely administer and manage (usually Linux/Unix) servers. SSH access to a server often comes with elevated privileges, including the ability to delete or <a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">exfiltrate</a> data or to install or remove applications on the server. </p><p>Modern enterprises can have tens, hundreds, or even thousands of SSH targets. Servers accessible via SSH can be targeted in <a href="https://thehackernews.com/2023/12/warning-poorly-secured-linux-ssh.html"><u>cryptojacking</u></a> or <a href="https://thehackernews.com/2023/06/cybercriminals-hijacking-vulnerable-ssh.html"><u>proxyjacking</u></a> attacks. Manually tracking, rotating, and validating SSH credentials that grant access is a chore that is often left undone, which creates risks that these long-lived credentials could be compromised. There’s nothing stopping users from copying SSH credentials and sharing them with other users or transferring them to unauthorized devices.</p><p>Although many organizations will gate access to their servers to users that are inside their corporate network, this is no longer enough to protect against modern attackers. Today, the principles of Zero Trust demand that an organization also tracks who exactly is accessing their servers with SSH, and what commands they are running on those servers once they have access. In fact, the elevated privileges that come along with SSH access mean that compliance frameworks like <a href="https://www.cloudflare.com/en-gb/trust-hub/compliance-resources/soc-2/"><u>SOC2</u></a>, <a href="https://www.cloudflare.com/en-gb/trust-hub/compliance-resources/iso-certifications/"><u>ISO27001</u></a>, <a href="https://www.cloudflare.com/en-gb/trust-hub/compliance-resources/fedramp/"><u>FedRAMP</u></a> and others have criteria that require monitoring who has access with SSH and what exactly they are doing with that access. </p>
    <div>
      <h2>Introducing SSH with Access for Infrastructure</h2>
      <a href="#introducing-ssh-with-access-for-infrastructure">
        
      </a>
    </div>
    <p>We’ve introduced<a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#_top"><u> SSH with Access for Infrastructure</u></a> to provide customers with granular control over privileged access to servers via SSH. The feature provides improved visibility into who accessed what service and what they did during their SSH session, while also eliminating the risk and overhead associated with managing SSH credentials. Specifically, this feature enables organizations to:</p><ul><li><p>Eliminate security risk and overhead of managing SSH keys and instead use short-lived SSH certificates issued by a Cloudflare-managed certificate authority (CA).</p></li><li><p>Author fine-grained policy to govern who can SSH to your servers and through which SSH user(s) they can log in as.</p></li><li><p>Monitor infrastructure access with Access and SSH command logs, supporting regulatory compliance and providing visibility in case of security breach.</p></li><li><p>Avoid changing end-user workflows. SSH with Access for Infrastructure supports whatever native SSH clients end users happen to be using. </p></li></ul><p>SSH with Access for Infrastructure is supported through one of the most common deployment models of Cloudflare One customers. Users can connect using our device client (WARP), and targets are made accessible using Cloudflare Tunnel (cloudflared or the WARP connector). This architecture allows customers with existing Cloudflare One deployments to enable this feature with little to no effort. The only additional setup will be configuring your target server to accept a Cloudflare SSH certificate.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4msjrxXyhuuh7rUmB0zn8c/3e24a431820aee57651bad1d57e57ec5/BLOG-2604_2.png" />
          </figure><p>Cloudflare One already offers multiple ways to secure organizations' SSH traffic through network controls. This new SSH with Access for Infrastructure aims to incorporate the strengths of those existing solutions together with additional controls to authorize ports, protocols, and specific users as well as a much improved deployment workflow and audit logging capabilities.</p>
    <div>
      <h2>Eliminating SSH credentials using an SSH CA</h2>
      <a href="#eliminating-ssh-credentials-using-an-ssh-ca">
        
      </a>
    </div>
    <p>How does Access for Infrastructure eliminate your SSH credentials? This is done by replacing SSH password and SSH keys with an SSH Certificate Authority (CA) that is managed by Cloudflare. Generally speaking, a CA’s job is to issue certificates that bind an entity to an entity’s public key. Cloudflare’s SSH CA has a secret key that is used to sign certificates that authorize access to a target (server) via SSH, and a public key that is used by the target (server) to cryptographically validate these certificates. The public key for the SSH CA can be obtained by <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#generate-a-cloudflare-ssh-ca"><u>querying the Cloudflare API</u></a>. And the secret key for the SSH CA is kept secure by Cloudflare and never exposed to anyone. </p><p>To use SSH with Access for Infrastructure to grant access via SSH to a set of targets (i.e. servers), you need to <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#modify-your-sshd-config"><u>instruct those servers to trust the Cloudflare SSH CA</u></a>. Those servers will then grant access via SSH whenever they are presented with an SSH certificate that is validly signed by the Cloudflare SSH CA.</p><p>The same Cloudflare SSH CA is used to support SSH access for all of your developers and engineers to all your target servers. This greatly simplifies key management. You no longer need to manage long-lived SSH keys and passwords for individual end users, because access to targets with SSH is granted via certificates that are dynamically issued by the Cloudflare SSH CA. And, because the Cloudflare SSH CA issued short-lived SSH certificates that expire after 3 minutes, you also don’t have to worry about creating or managing long-lived SSH credentials that could be stolen by attackers. </p><p>The 3-minute time window on the SSH certificate only applies to the time window during which the user has to authenticate to the target server; it does not apply to the length of the SSH session, which can be arbitrarily longer than 3 minutes. This 3-minute window was chosen because it was short enough to reduce the risk of security compromise and long enough to ensure that we don’t miss the time window of the user’s authentication to the server, especially if the user is on a slow connection.</p>
    <div>
      <h2>Centrally managing policies down to the specific Linux user</h2>
      <a href="#centrally-managing-policies-down-to-the-specific-linux-user">
        
      </a>
    </div>
    <p>One of the problems with traditional SSH is that once a user has an SSH key or password installed on a server, they will have access to that server forever — unless an administrator somehow remembers to remove their SSH key or password from the server in question. This leads to <i>privilege creep,</i> where too many people have standing access to too many servers, creating a security risk if an SSH key or password is ever stolen or leaked.</p><p>Instead, SSH with Access for Infrastructure allows you to centrally write policies in the Cloudflare dashboard specifying exactly what (set of) users has access to what (set of) servers. Users may be authenticated by SSO, MFA, device posture, location, and more, which provides better security than just authenticating them via long-lived SSH keys or passwords that could be stolen by attackers.</p><p>Moreover, the SSH certificates issued by the Cloudflare CA include a field called <i>valid_principals</i> which indicates the specific Linux user (e.g. <i>root</i>, <i>read-only</i>, <i>ubuntu</i>, <i>ec2-user</i>) that can be assumed by the SSH connection. As such, you can write policies that specify the (set of) Linux users that a given (set of) end users may access on a given (set of) servers, as shown in the figure below. This allows you to centrally control the privileges that a given end user has when accessing a given target server. (The one caveat here is that the server must also be pre-configured to already know about the specific Linux user (e.g. <i>root) </i>that is specified in the policies and presented in the SSH certificate. Cloudflare is NOT managing the Linux users on your Linux servers.)</p><p>As shown below, you could write a policy that says users in Canada, the UK, and Australia that are authenticated with MFA and face recognition can access the <i>root </i>and <i>ec2-user </i>Linux users on a given set of servers in AWS.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4D580wfY5DxQ9iSNhflztJ/a97eea9e68b0a44ea2b9c544d1cf3bda/BLOG-2604_3.png" />
          </figure>
    <div>
      <h2>How does Cloudflare capture SSH command logs?</h2>
      <a href="#how-does-cloudflare-capture-ssh-command-logs">
        
      </a>
    </div>
    <p>Cloudflare captures SSH command logs because we built an SSH proxy that intercepts the SSH connections. The SSH proxy establishes one SSH connection between itself and the end user’s SSH client, and another SSH connection between itself and the target (server). The SSH proxy can therefore inspect the SSH commands and log them. </p><p>SSH commands are encrypted at rest using a public key that the customer uploads via the Cloudflare API. Cloudflare cannot read SSH command logs at rest, but they can be extracted (in encrypted form) from the Cloudflare API and decrypted by the customer (who holds the corresponding private key). Instructions for uploading the <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#enable-ssh-command-logging"><u>encryption public key are available in our developer documentation</u></a>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1KvuPqP9XfUn5M6sE5Qvw4/c8eb24587b4301d4ca9bfad0b2037ee1/Log_for_digital-ocean.png" />
          </figure>
    <div>
      <h2>How the SSH interception works under the hood</h2>
      <a href="#how-the-ssh-interception-works-under-the-hood">
        
      </a>
    </div>
    
    <div>
      <h3>How does generic SSH work?</h3>
      <a href="#how-does-generic-ssh-work">
        
      </a>
    </div>
    <p>To understand how Cloudflare’s SSH proxy works, we first must review how a generic SSH connection is established.</p><p>First off, SSH runs over TCP, so to establish an SSH connection, we first need to complete a TCP handshake. Then, once the TCP handshake is complete, an SSH key exchange is needed to establish an ephemeral symmetric key between the client and the server that will be used to encrypt and authenticate their SSH traffic. The SSH key exchange is based on the server public key, also known as the <i>hostkey. </i>If you’ve ever used SSH, you’ve probably seen this message — that is the SSH server telling your SSH client to trust this hostkey for all future SSH interactions. (This is also known as TOFU or Trust On First Use.)</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3rjmLTfw8CauXPT0kumYyw/7cbfe372a00f7c7b1f6957743113b20a/BLOG-2604_5.png" />
          </figure><p>Finally, the client needs to authenticate itself to the server. This can be done using SSH passwords, SSH keys, or SSH certificates (as described above). SSH also has a mode called <i>none</i>, which means that the client does NOT need to authenticate itself to the server at all.</p>
    <div>
      <h3>So how does Cloudflare’s SSH proxy work? </h3>
      <a href="#so-how-does-cloudflares-ssh-proxy-work">
        
      </a>
    </div>
    
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6znMxrzjyakDF3KBqEWUHX/c12a50ef7ef6c77d4bbacaac3ee8ec60/BLOG-2604_6.png" />
          </figure><p>To understand this, we note that whenever you set up SSH with Access for Infrastructure in the Cloudflare dashboard, you first need to create the set of targets (i.e. servers) that you want to make accessible via SSH. Targets can be defined by IP address or hostname. You then create an Access for Infrastructure application that captures the TCP ports (e.g. port 22) that SSH runs over for those targets, and write policies for those SSH connections, as we already described above and <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#5-add-an-infrastructure-application"><u>in our developer documentation</u></a>.</p><p>This setup allows Cloudflare to know the set of IP addresses and ports for which it must intercept SSH traffic. Thus, whenever Cloudflare sees a TCP handshake with an IP address and port that must be intercepted, it sends traffic for that TCP connection to the SSH proxy. </p><p>The SSH proxy leverages the client’s already authenticated identity from the WARP client, and enforces the configured Access for Infrastructure policies against it. If the policies do not allow the identity to connect to the target under the requested Linux user (e.g. <i>root)</i>, the SSH proxy will reject the connection and log an <b><i>Access denied</i></b><b> </b>event to the Access logs. Otherwise, if policies do allow the identity to connect, the the SSH proxy will establish the following two SSH connections: </p><ol><li><p>SSH connection from SSH proxy to target</p></li><li><p>SSH connection from end user’s SSH client (via Cloudflare’s WARP client) to SSH proxy</p></li></ol><p>Let’s take a look at each of these SSH connections, and the cryptographic material used to set them up. </p><p><b>To establish the SSH connection from SSH proxy to the target</b>, the SSH proxy acts as a client in the SSH key exchange between itself and the target server. The handshake uses the target server’s <i>hostkey</i> to establish an ephemeral symmetric key between the client and the server that will encrypt and authenticate their SSH traffic. Next, the SSH proxy must authenticate itself to the target server. This is done by presenting the server with a short-lived SSH certificate, issued by the Cloudflare SSH CA, for the specified Linux user that is requested for this connection as we already described above. Because the target server has been configured to trust the Cloudflare SSH CA, the target server will be able to successfully validate the certificate and the SSH connection will be established.</p><p><b>To establish the SSH connection from the end-user's SSH client to SSH proxy</b>, the SSH proxy acts as a server in the SSH key exchange between itself and the end-user’s SSH client. </p><p>To do this, the SSH proxy needs to inform the end user’s SSH client about the <i>hostkey</i> that will be used to establish this connection. But what <i>hostkey</i> should be used? We cannot use the same <i>hostkey </i>used by the target server, because that <i>hostkey </i>is the public key that corresponds to a private key that is known only to the target server, and not known to the SSH proxy. So, Cloudflare’s SSH proxy needs to generate its own <i>hostkey</i>. We don’t want the end user to randomly see warnings like the one shown below, so the SSH proxy should provide the same <i>hostkey </i>each time the user wants to access a given target server. But, if something does change with the <i>hostkey </i>of the target server, we do want the warning below to be shown. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3VBYjkE9DOpN7A5IjLSN0H/bfbc9e3a65cb81abc6fe4eb5c5780b39/BLOG-2604_7.png" />
          </figure><p>To achieve the desired behavior, the SSH proxy generates a <i>hostkey </i>and its corresponding private key by hashing together (a) a fixed secret value valid that associated with the customer account, along with (b) the <i>hostkey</i> that was provided by this target server (in the connection from SSH proxy to target server). This part of the design ensures that the end user only needs to see the TOFU notification the very first time it connects to the target server via WARP, because the same <i>hostkey</i> is used for all future connections to that target. And, if the <i>hostkey</i> of the target server does change as a result of a Monster-In-The-Middle attack, the warning above will be shown to the user.</p><p>Finally, during the SSH key exchange handshake from WARP client to SSH proxy, the SSH proxy informs that end user’s native SSH client that it is using <i>none</i> for client authentication. This means that the SSH client does NOT need to authenticate itself to the server at all. This part of the design ensures that the user need not enter any SSH passwords or store any SSH keys in its SSH configuration in order to connect to the target server via WARP. Also, this does not compromise security, because the SSH proxy has already authenticated the end user via Cloudflare’s WARP client and thus does not need to use the native SSH client authentication in the native SSH client.</p><p>Put this all together, and we have accomplished our goal of having end users authenticate to target servers without any SSH keys or passwords, using Cloudflare’s SSH CA instead. Moreover, we also preserve the desired behaviors of the TOFU notifications and warnings built into native SSH clients!</p>
    <div>
      <h2>All the keys</h2>
      <a href="#all-the-keys">
        
      </a>
    </div>
    <p>Before we wrap up, let’s review the cryptographic keys you need in order to deploy SSH with Access for Infrastructure. There are two keys:</p><ol><li><p><b>Public key of the SSH CA. </b>The private key of the SSH CA is only known to Cloudflare and not shared with anyone. The public key of the <a href="https://ranbel-infrastructure-access.cloudflare-docs-7ou.pages.dev/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#generate-a-cloudflare-ssh-ca"><u>SSH CA is obtained from the Cloudflare API</u></a> and must be <a href="https://ranbel-infrastructure-access.cloudflare-docs-7ou.pages.dev/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#generate-a-cloudflare-ssh-ca"><u>installed</u></a> on all your target servers. The same public key is used for all of your targets. This public key does not need to be kept secret.</p></li><li><p><b>Private key for SSH command log encryption. </b>To obtain logs of SSH commands, you need to generate a <a href="https://ranbel-infrastructure-access.cloudflare-docs-7ou.pages.dev/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#generate-a-cloudflare-ssh-ca"><u>public-private key pair, and upload the public key to Cloudflare</u></a>. The public key will be used to encrypt your SSH commands logs at REST. You need to keep the private key secret, and you can use it to <a href="https://ranbel-infrastructure-access.cloudflare-docs-7ou.pages.dev/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#view-ssh-logs"><u>decrypt</u></a> your SSH command logs. </p></li></ol><p>That’s it! No other keys, passwords, or credentials to manage!</p>
    <div>
      <h2>Try it out today</h2>
      <a href="#try-it-out-today">
        
      </a>
    </div>
    <p>At Cloudflare, we are committed to providing the most comprehensive solution for ZTNA, which now also includes privileged access to sensitive infrastructure like servers accessed over SSH.</p><p>Organizations can now treat SSH like any other Access application and enforce strong MFA, device context, and policy-based access prior to granting user access. This allows organizations to consolidate their infrastructure access policies into their broader <a href="https://www.cloudflare.com/learning/access-management/security-service-edge-sse/">SSE</a> or SASE architecture.</p><p>You can try out Access for Infrastructure today by following <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#_top"><u>these instructions in our developer documentation</u></a>. Access for Infrastructure is currently available free to teams of under 50 users, and at no extra cost to existing pay-as-you-go and Contract plan customers through an Access or Zero Trust subscription. Expect to hear about a lot more features from us as we continue to natively rebuild <a href="https://blog.cloudflare.com/cloudflare-acquires-bastionzero/"><u>BastionZero</u></a>’s technology into Cloudflare’s Access for Infrastructure service!</p> ]]></content:encoded>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[Acquisitions]]></category>
            <category><![CDATA[SSH]]></category>
            <category><![CDATA[Cloudflare Access]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Compliance]]></category>
            <guid isPermaLink="false">KUIHP5Rgyl2H3pGVE6m99</guid>
            <dc:creator>Sharon Goldberg</dc:creator>
            <dc:creator>Ann Ming Samborski</dc:creator>
            <dc:creator>Sebby Lipman</dc:creator>
        </item>
        <item>
            <title><![CDATA[RADIUS/UDP vulnerable to improved MD5 collision attack]]></title>
            <link>https://blog.cloudflare.com/radius-udp-vulnerable-md5-attack/</link>
            <pubDate>Tue, 09 Jul 2024 12:00:59 GMT</pubDate>
            <description><![CDATA[ The RADIUS protocol is commonly used to control administrative access to networking gear. Despite its importance, RADIUS hasn’t changed much in decades. We discuss an attack on RADIUS as a case study for why it’s important for legacy protocols to keep up with advancements in cryptography ]]></description>
            <content:encoded><![CDATA[ <p>The MD5 cryptographic hash function was first broken in 2004, when <a href="https://iacr.org/archive/eurocrypt2005/34940019/34940019.pdf">researchers</a> demonstrated the first MD5 collision, namely two different messages X1 and X2 where MD5(X1) = MD5 (X2). Over the years, attacks on MD5 have only <a href="https://www.iacr.org/archive/eurocrypt2007/45150001/45150001.pdf">continued</a> to <a href="https://eprint.iacr.org/2009/111.pdf">improve</a>, getting faster and more effective <a href="https://en.wikipedia.org/wiki/Flame_(malware)">against</a> <a href="https://www.ndss-symposium.org/wp-content/uploads/2017/09/transcript-collision-attacks-breaking-authentication-tls-ike-ssh.pdf">real</a> <a href="https://www.akamai.com/blog/security-research/exploiting-critical-spoofing-vulnerability-microsoft-cryptoapi">protocols</a>. But despite continuous advancements in cryptography, MD5 has lurked in network protocols for years, and is still playing a critical role in some protocols even today.</p><p>One such protocol is <a href="https://en.wikipedia.org/wiki/RADIUS">RADIUS (Remote Authentication Dial-In User Service)</a>. RADIUS was first designed in 1991 – during the era of dial-up Internet – but it remains an important authentication protocol used for remote access to routers, switches, and other networking gear by users and administrators. In addition to being used in networking environments, RADIUS is sometimes also used in industrial control systems.  RADIUS traffic is still <a href="https://datatracker.ietf.org/doc/draft-ietf-radext-deprecating-radius/">commonly transported over UDP</a> in the clear, protected only by outdated cryptographic constructions based on MD5.</p><p>In this post, we present an improved attack against MD5 and use it to exploit all authentication modes of RADIUS/UDP apart from those that use EAP (<a href="https://datatracker.ietf.org/doc/html/rfc3748">Extensible Authentication Protocol</a>). The attack allows a Monster-in-the-Middle (MitM) with access to RADIUS traffic to gain unauthorized administrative access to devices using RADIUS for authentication, without needing to brute force or steal passwords or shared secrets. This post discusses the attack and provides an overview of mitigations that network operators can use to improve the security of their RADIUS deployments.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/128HlLk4YY6iwwDQl2naHy/527eb41a400396e915ed805292de1fe4/image9-1.png" />
            
            </figure><p>RADIUS/UDP in Password Authentication Protocol (PAP) mode. Our attack also applies to RADIUS/UDP CHAP and RADIUS/UDP MS-CHAP authentication modes as well.</p><p>In a typical RADIUS use case, an end user gets administrative access to a router, switch, or other networked device by entering a username and password with administrator privileges at a login prompt. The target device runs a RADIUS client which queries a remote RADIUS server to determine whether the username and password are valid for login. This communication between the RADIUS client and RADIUS server is very sensitive: if an attacker can violate the integrity of this communication, it can control who can gain administrative access to the device, even if the connection between user and device is secure. An attacker that gains administrative access to a router or switch can redirect traffic, drop or add routes, and generally control the flow of network traffic. This makes RADIUS an important protocol for the security of modern networks.</p><p>Our understanding of cryptography and protocol design was fairly unrefined when RADIUS was first introduced in the 1990s. Despite this, the protocol hasn’t changed much, likely because updating RADIUS deployments can be tricky due to its use in legacy devices (e.g. routers) that are harder to upgrade.</p><p>RADIUS traffic is commonly sent over internal networks, and in our research we did not broadly measure how organizations configure it internally.  Anecdotal evidence suggests that RADIUS/UDP remains popular. (<a href="https://www.blastradius.fail/pdf/radius.pdf">See our paper for some case studies of large organizations using RADIUS/UDP</a>). While it is possible to send <a href="https://datatracker.ietf.org/doc/html/rfc6614">RADIUS over TLS</a> (sometimes also called RADSEC), the Internet Engineering Task Force (IETF) still considers the <a href="https://datatracker.ietf.org/doc/html/rfc6614">specification for RADIUS/TLS</a> to be “<a href="https://www.ietf.org/process/process/informational-vs-experimental/#:~:text=in%20any%20sense.-,4.2.1%20Experimental,-The%20%22Experimental%22%20designation">experimental</a>”, and is currently still in the process of specifying <a href="https://datatracker.ietf.org/doc/draft-ietf-radext-radiusdtls-bis/01/">RADIUS over TLS or DLTS</a> as “<a href="https://www.ietf.org/process/informal/#:~:text=2.3.%20Standards%20track%20documents">standards track</a>”.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2vh2ZZQu14kW1ipbQVsGGb/30189350ae37c12c076805d3520637dd/image8-1.png" />
            
            </figure><p>RADIUS/TLS, also sometimes known as RADSEC</p><p>Prior to our work, there was no publicly-known attack exploiting MD5 to violate the integrity of the RADIUS/UDP traffic. However, attacks continue to get faster, cheaper, become more widely available, and become more practical against real protocols. Protocols that we thought might be “secure enough”, in spite of their reliance on outdated cryptography, tend to crack as attacks continue to improve over time.</p><p>In our attack, a MitM gains unauthorized access to a networked device by violating the integrity of communications between the device’s RADIUS client and its RADIUS server. In other words, our MitM attacker has access to RADIUS traffic and uses it to pivot into unauthorized access to the devices hosting the RADIUS clients that generated this RADIUS traffic. From there, the attacker can gain administrative access to the networking device and thus control the Internet traffic that flows through the network.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5LYE2xhdiZ3y9kPzsvdXvq/e70d9c9f0e0e94291f5ddbb16df43c62/unnamed-2.png" />
            
            </figure><p>Overview of the Blast-RADIUS attack on RADIUS/UDP in PAP mode</p><p>This Blast-RADIUS attack was devised in collaboration with researchers at the <a href="https://cryptosec.ucsd.edu/">University of California San Diego (UCSD)</a>, <a href="https://www.cwi.nl/en/groups/cryptology/">CWI Amsterdam</a>, <a href="https://www.microsoft.com/en-us/research/group/security-and-cryptography/">Microsoft</a>, and <a href="https://www.bastionzero.com/">BastionZero</a>. In response, CERT has assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-3596">CVE-2024-3596</a> and <a href="https://kb.cert.org/vuls/id/456537">VU#456537</a> and worked with RADIUS vendors and developers to coordinate disclosure.</p>
    <div>
      <h3>RADIUS/UDP and its ad hoc use of MD5</h3>
      <a href="#radius-udp-and-its-ad-hoc-use-of-md5">
        
      </a>
    </div>
    <p>RADIUS/UDP has many modes, and our attacks work on all authentication modes except for those using EAP (<a href="https://datatracker.ietf.org/doc/html/rfc3748">Extensible Authentication Protocol</a>).  To simplify exposition, we start by focusing on the RADIUS/UDP PAP (Password Authentication Protocol) authentication mode.</p><p>With RADIUS/UDP PAP authentication, the RADIUS client sends a username and password in an <i>Access-Request</i> packet to the RADIUS server over UDP.  The server drops the packet if its source IP address does not match a known client, but otherwise the <i>Access-Request</i> is entirely unauthenticated. This makes it vulnerable to modifications by a MitM.</p><p>The RADIUS server responds with either an <i>Access-Reject</i>, <i>Access-Accept</i> (or possibly also an <i>Access-Challenge</i>) packet sent to the RADIUS client over UDP.  These response packets are “authenticated” with an ad hoc “<a href="https://en.wikipedia.org/wiki/Message_authentication_code">message authentication code (MAC)</a>” to prevent modifications by an MitM. This “MAC” is based on MD5 and is called the <i>Response Authenticator.</i></p><p>This ad hoc construction in the <i>Response Authenticator</i> attribute has been part of the RADIUS protocol <a href="https://datatracker.ietf.org/doc/draft-ietf-nasreq-radius/01/">since 1994</a>. It was not changed in 1997, when <a href="https://datatracker.ietf.org/doc/html/rfc2104">HMAC was standardized</a> in order to construct a provably-secure cryptographic MAC using a cryptographic hash function. It was not changed in 2004, when <a href="https://link.springer.com/chapter/10.1007/11426639_2">the first collisions in MD5 were found</a>. And it is still part of the protocol today.</p><p>In this post, we’ll describe our improved attack on MD5 as it is used in the RADIUS <i>Response Authenticator</i>.</p>
    <div>
      <h3>The RADIUS Response Authenticator</h3>
      <a href="#the-radius-response-authenticator">
        
      </a>
    </div>
    <p>The <i>Response Authenticator</i> “authenticates” RADIUS responses via an ad hoc MD5 construction that involves concatenating several fields in the RADIUS request and response packets, appending a Secret shared between RADIUS client and RADIUS server, and then hashing the result with MD5. Specifically, the <i>Response Authenticator</i> is computed as</p><p>MD5( Code || ID || Len || Request Authenticator || Attributes || Secret )</p><p>where the Code, ID, Length, and Attributes are copied directly from the response packet, and Request Authenticator is a 16-byte random nonce and included in the corresponding request packet.</p><p>But the RADIUS <i>Response Authenticator</i> is not a good <a href="https://en.wikipedia.org/wiki/Message_authentication_code">message authentication code (MAC)</a>. Here’s why:</p><ul><li><p>First, let’s simplify the construction in the Response Authenticator as: the “MAC” on message X1 is computed as MD5 (X1 || Secret) where X1 is a message and Secret is the secret key for the “MAC”.</p></li><li><p>Next, we note that MD5 is vulnerable to <a href="http://Length_extension_attack">length extension attacks</a>. Namely, given MD5(X) for an unknown X, along with the length of X, then anyone who knows Y can compute MD5(X || Y).Length extension attacks are possible because of how MD5 processes inputs in consecutive blocks, and are the primary reason why <a href="https://datatracker.ietf.org/doc/html/rfc2104">HMAC was standardized in 1997</a>.</p></li><li><p>This block-wise processing is also an issue for the Response Authenticator of RADIUS. If someone finds an MD5 collision, namely two different messages X1 and X2 such that MD5(X1) = MD5(x2), then it follows that MD5 (X1 || Secret) = MD5 (X2 || Secret).</p></li></ul><p>This breaks the security of the "MAC". Here’s how: consider an attacker that finds two messages X1 and X2 that are an MD5 collision. The attacker then learns the "MAC" on X1, which isMD5 (X1 || Secret). Now the attacker can forge the “MAC” on X2 without ever needing to know the Secret, simply by reusing the “MAC” on X1. This attack violates the security definition of a <a href="https://en.wikipedia.org/wiki/Message_authentication_code">message authentication code</a>.</p><ul><li><p>This attack is especially concerning since <a href="https://link.springer.com/chapter/10.1007/11426639_2">finding MD5 collisions has been possible since 2004</a>.The first attacks on MD5 in 2004 produced so-called “identical prefix collisions” of the formMD5 (P || G1 || S) = MD5 (P || G2 || S), where P is a meaningful message, S is a meaningful message, and G1 and G2 are meaningless gibberish. This attack has since been made very fast and can now run on a regular consumer laptop in seconds. While this attack is a devastating blow for any cryptographic hash function, it’s still pretty difficult to use gibberish messages (with identical prefixes) to create practical attacks on real protocols like RADIUS.In 2007, a more <a href="https://www.iacr.org/archive/eurocrypt2007/45150001/45150001.pdf">powerful attack was presented</a>, the “chosen-prefix collision attack”. This attack is slower and more costly, but allows the prefixes in the collision to be different, making it valuable for <a href="https://eprint.iacr.org/2009/111.pdf">practical attacks on real protocols</a>. In other words, the collision is of the formMD5 (P1 || G1 || S) = MD5 (P2 || G2 || S), where P1 and P2 are different freely-chosen meaningful messages, G1 and G2 are meaningless gibberish and S is a meaningful message. We will use an improved version of this attack to break the security of the RADIUS/UDP Response Authenticator.Roughly speaking, in our attack, P1 will correspond to a RADIUS Access-Reject, and P2 will correspond to a RADIUS Access-Accept, thus allowing us to break the security of the protocol by letting an unauthorized user log into a networking device running a RADIUS client.</p></li></ul><p>Before we move on, note that in 2000, <a href="https://datatracker.ietf.org/doc/html/rfc2869">RFC2869</a> added support for HMAC-MD5 to RADIUS/UDP, using a new attribute called <i>Message-Authenticator</i>. HMAC thwarts attacks that use hash function collisions to break the security of a MAC, and HMAC is <a href="https://eprint.iacr.org/2006/043.pdf">a secure MAC as long as the underlying hash function is a pseudorandom function</a>. As of this writing, we have not seen a public attack demonstrating that HMAC-MD5 is not a good MAC.</p><p>Nevertheless, the RADIUS specifications state that <i>Message-Authenticator</i> is optional for all modes of RADIUS/UDP apart from those that use EAP (<a href="https://datatracker.ietf.org/doc/html/rfc3748">Extensible Authentication Protocol</a>). Our attack is for non-EAP authentication modes of RADIUS/UDP using default setups that do not use <i>Message-Authenticator</i>. We further discuss <i>Message-Authenticator</i> and EAP later in this post.</p>
    <div>
      <h3>Blast-RADIUS attack</h3>
      <a href="#blast-radius-attack">
        
      </a>
    </div>
    <p>Given that the ad hoc MD5 construction in the <i>Response Authenticator</i> is usually the only thing protecting the integrity of the RADIUS/UDP message, can we exploit it to break the security of the RADIUS/UDP protocol? Yes, we can.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5j93fliyvr8dbiYEzC4UAG/4029c0b402fce7c1fe9c2ead3537b0e6/AD_4nXei5_IU_xNU4pWzH-3M9XOKZGXH78BzN8OTsDh4KZ_YopiWvctzhZs3uG33f1SMU7gNE_MWvmsXrH1zyA5ziN0BH2D4FoYbC9OaVSlT5LR9STkGScd03q-XAUQe" />
            
            </figure><p>But it wasn’t that easy. We needed to optimize and improve existing chosen-prefix collision attacks on MD5 to (a) make them fast enough to work on packets in flight, (b) respect the limitations imposed by the RADIUS protocol and (c) the RADIUS/UDP packet format.</p><p>Here is how we did it. The attacker uses a MitM between a RADIUS client (e.g. a router) and RADIUS server to change an <i>Access-Reject</i> packet into an <i>Access-Accept</i> packet by exploiting weaknesses in MD5, thus gaining unauthorized access (to the router). The detailed flow of the attack is in the diagram below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6YqtRYeDSSaP7Z54HjX4zz/d673f089cd9d6eb1635a91c6e8d1a1ff/unnamed--7--1.png" />
            
            </figure><p>Details of the Blast-RADIUS attack</p><p>Let’s walk through each step of the attack.</p><p>1. First, the attacker tries to log in to the device running to the RADIUS client using a bogus username and password.</p><p>2. The RADIUS client sends an <i>Access-Request</i> packet that is intercepted by the MitM.</p><p>3. Next, the MitM then executes an MD5 chosen-prefix collision attack as follows:</p><p>Prefix P1 corresponds to attributes hashed with MD5 to produce the <i>Response Authenticator</i> of an <i>Access-Reject</i> packet. Prefix P2 corresponds to the attributes for an <i>Access-Accept</i> packet. The MitM can predict P1 and P2 simply by looking at the <i>Access-Request</i> packet that it intercepted.</p><p>Next, the attacker then runs the MD5 chosen-prefix collision attack to find the two gibberish blocks, G1 (the RejectGib shown in the figure above) and G2 (the AcceptGib) to obtain an MD5 collision between P1 || RejectGib and P2 || AcceptGib.</p><p>Now we need to get the collision gibberish into the RADIUS packets somehow.</p><p>4. To do this, we are going to use an optional RADIUS/UDP attribute called the <i>Proxy-State</i>.  The <i>Proxy-State</i> is an ideal place to stuff this gibberish because a RADIUS server must echo back any information it receives in a <i>Proxy-State</i> attribute from the RADIUS client. Even better for our attacker, the <i>Proxy-State</i> must also be hashed by MD5 in the corresponding response’s <i>Response Authenticator.</i></p><p>Our MitM takes the gibberish RejectGib and adds it into the <i>Access-Request</i> packet that the MitM intercepted as multiple <i>Proxy-State</i> attributes.  For this to work, we had to ensure that our collision gibberish (RejectGib and AcceptGib) is properly formatted as multiple <i>Proxy-State</i> attributes. This is one novel cryptographic aspect of our attack that you <a href="https://www.blastradius.fail/pdf/radius.pdf">read more about here</a>.</p><p>Next, we are going to exploit the fact that the RADIUS server will echo back the gibberish in its response.</p><p>5. The RADIUS server receives the modified <i>Access-Request</i> and responds with an <i>Access-Reject</i> packet. This <i>Access-Reject</i> packet includes (a) the <i>Proxy-State</i> attributes containing the RejectGib and (b) a <i>Response Authenticator</i> computed as MD5 (P1 || RejectGib || Secret).</p><p>Note that we have successfully changed the input to the <i>Response Authenticator</i> to be one of the MD5 collisions found by the MitM!</p><p>6. Finally, the MitM intercepts the <i>Access-Reject</i> packet, and extracts the <i>Response-Authenticator</i> from the intercepted packet, and uses it to forge an <i>Access-Accept</i> packet using our MD5 collision.</p><p>The forged packet is (a) formatted as an <i>Access-Accept</i> packet that (b) has the AcceptGib in <i>Proxy-State</i> and (c) copies the <i>Response Authenticator</i> from the <i>Access-Reject</i> packet that the MitM intercepted from the server.</p><p>We have now used our MD5 collision to replace an <i>Access-Reject</i> with an <i>Access-Accept.</i></p><p>7. The forged <i>Access-Accept</i> packet arrives at the RADIUS client, which accepts it because</p><p>the input to the <i>Response Authenticator</i> is P2 || AcceptGib</p><p>the <i>Response-Authenticator</i> is MD5 (P1 || RejectGib || Secret)</p><p>P1 || RejectGib is an MD5 collision with P2 || AcceptGib, which implies that</p><p>MD5 (P1 || RejectGib || Secret) = MD5 (P2 || AcceptGib || Secret)In other words, the <i>Response-Authenticator</i> on the forged <i>Access-Accept</i> packet is valid.</p><p>The attacker has successfully logged into the device.</p>
    <div>
      <h3>But, the attack has to be fast.</h3>
      <a href="#but-the-attack-has-to-be-fast">
        
      </a>
    </div>
    <p>For all of this to work, our MD5 collision attack had to be fast! If finding the collision takes too long, the client could time out while waiting for a response packet and the attack would fail.</p><p>Importantly, the attack cannot be precomputed. One of the inputs to the <i>Response Authenticator</i> is the <i>Request Authenticator</i> attribute, a 16-byte random nonce included in the request packet. Because the <i>Request Authenticator</i> is freshly chosen for every request, the MitM cannot predict the <i>Request Authenticator</i> without intercepting the request packet in flight.</p><p>Existing collision attacks on MD5 were too slow for realistic client timeouts; when we started our work, reported attacks took hours (or even up to a day) to find MD5 chosen-prefix collisions. So, we had to devise a new, faster attack on MD5.</p><p>To do this, our team improved <a href="https://github.com/cr-marcstevens/hashclash/pull/37">existing chosen-prefix collision attacks on MD5 and optimized them for speed and space</a> (in addition to figuring out how to make our collision gibberish fit into RADIUS <i>Proxy-State</i> attributes). We demonstrated an improved attack that can run in minutes on an aging cluster of about 2000 CPU cores ranging from 7 to 10 years old, plus four newer low-end GPUs <a href="https://cse.ucsd.edu/">at UCSD</a>. Less than two months after we started this project, we could <a href="https://www.blastradius.fail/pdf/radius.pdf">execute the attack</a> in under five minutes, and validate (in a lab setting) that it works on popular commercial RADIUS implementations.</p><p>While many RADIUS devices (like the ones we tested in the lab) tolerate timeouts of five minutes, the default timeouts on most devices are closer to 30 or 60 seconds. Nevertheless, at this point, we had proved our attack. The attack is highly parallelizable. A sophisticated adversary would have easy access to better computing resources than we did, or could further optimize the attack using low-cost cloud compute resources, GPUs or hardware. In other words, a motivated attacker could use better computing resources to get our attack working against RADIUS devices with timeouts shorter than 5 minutes.</p><p>It was late January 2024. We had an attack that allows an attacker with MitM access to RADIUS/UDP traffic in PAP mode to gain unauthorized access to devices that use RADIUS to decide who should have administrative access to the device. We stopped our work, wrote up a <a href="https://www.blastradius.fail/pdf/radius.pdf">paper</a>, and got in touch with CERT to coordinate disclosure. In response, CERT has assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-3596">CVE-2024-3596</a> and <a href="https://kb.cert.org/vuls/id/456537">VU#456537</a> to this vulnerability, which affects all authentication modes of RADIUS/UDP apart from those that use EAP.</p>
    <div>
      <h3>What’s next?</h3>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>It’s never easy to update network protocols, especially protocols like RADIUS that have been widely used since the 1990s and enjoy multi-vendor support. Nevertheless, we hope this research will provide an opportunity for network operators to review the security of their RADIUS deployments, and to take advantage of patches released by many RADIUS vendors in response to our work.</p><p><b>Transitioning to RADIUS over TLS:</b> Following our work, many more vendors now offer <a href="https://datatracker.ietf.org/doc/html/rfc6614">RADIUS over TLS</a> (sometimes known as RADSEC), which wraps the entire RADIUS packet payload into a TLS stream sent from RADIUS client to RADIUS server. This is the best mitigation against our attack and any new MD5 attacks that might emerge.</p><p>Before implementing this mitigation, network operators should verify that they can upgrade both their RADIUS clients and their RADIUS servers to support RADIUS over TLS. There is a risk that legacy clients that cannot be upgraded or patched would still need to speak RADIUS/UDP.</p><p><b>Patches for RADIUS/UDP.</b> There is also a new short-term mitigation for RADIUS/UDP.  In this post, we only cover mitigations for client-server deployments; see this <a href="https://networkradius.com/assets/pdf/radius_and_md5_collisions.pdf">new whitepaper by Alan DeKok</a> for mitigations for more complex “multihop” RADIUS deployment that involve more parties than just a client and a server.</p><p>Earlier, we mentioned that the RADIUS specifications have a <i>Message-Authenticator</i> attribute that uses HMAC-MD5 and is optional for RADIUS/UDP modes that do not use EAP. The new mitigation involves making the <i>Message-Authenticator</i> a requirement for both request and response packets for all modes of RADIUS/UDP. The mitigation works because <i>Message-Authenticator</i> uses HMAC-MD5, which is not susceptible to our MD5 chosen-prefix collision attack.</p><p>Specifically:</p><ol><li><p>The recipient of any RADIUS/UDP packet must always require the packet to contain a <i>Message-Authenticator</i>, and must validate the HMAC-MD5 in the <i>Message-Authenticator</i>.</p></li><li><p>RADIUS servers should send the <i>Message-Authenticator</i> as the first attribute in every <i>Access-Accept</i> or <i>Access-Reject</i> response sent by the RADIUS server.</p></li></ol><p>There are a few things to watch out for when applying this patch in practice. Because RADIUS is a client-server protocol, we need to consider (a) the efficacy of the patch if it is not uniformly applied to all RADIUS clients and servers and (b) the risk of the patch breaking client-server compatibility.</p><p>Let’s first look at (a) efficacy. Patching only the client does not stop our attacks. Why? Because the mitigation requires the sender to include a <i>Message-Authenticator</i> in the packet, AND the recipient to require a <i>Message-Authenticator</i> to be present in the packet and to validate it. (In other words, both client and server have to change their behaviors.)   If the recipient does not require the <i>Message-Authenticator</i> to be present in the packet, the MitM could do a downgrade attack where it strips the <i>Message-Authenticator</i> from the packet and our attack would still work.  Meanwhile, there is some evidence (<a href="https://networkradius.com/assets/pdf/radius_and_md5_collisions.pdf">see this whitepaper by Alan DeKok</a>) that patching only the server might be more effective, due to mitigation #2, sending the <i>Message-Authenticator</i> as the first attribute in the response packet.</p><p>Now let’s consider (b) the risk of breaking client-server compatibility.</p><p>Deploying the patch on clients is unlikely to break compatibility, because the RADIUS specifications have long required that RADIUS servers MUST be able to process any <i>Message-Authenticator</i> attribute sent by a RADIUS client. That said, we cannot rule out the existence of RADIUS servers that do not comply with this long-standing aspect of the specification, so we suggest testing against the RADIUS servers before patching clients.</p><p>On the other side, patching the server without breaking compatibility with legacy clients could be trickier. Commercial RADIUS servers are mostly built on one of a tiny number of implementations (like <a href="https://freeradius.org/">FreeRADIUS</a>), and actively-maintained implementations should be up-to-date on mitigations. However, there is a wider set of RADIUS client implementations, some of which are legacy and difficult to patch. If an unpatched legacy client does not know how to send a <i>Message Authenticator</i> attribute, then the server cannot require it from that client without breaking backwards compatibility.</p><p>The bottom line is that for all of this to work, it is important to patch servers AND patch clients.</p><p>You can find more discussion on RADIUS/UDP mitigations in a <a href="https://networkradius.com/assets/pdf/radius_and_md5_collisions.pdf">new whitepaper by Alan DeKok</a>, which also contains guidance on how to apply these mitigations to more complex “multihop” RADIUS deployments.</p><p><b>Isolating RADIUS traffic.</b> It has long been a best practice to avoid sending RADIUS/UDP or RADIUS/TCP traffic in the clear over the public Internet. On internal networks, a best practice is to isolate RADIUS traffic in a restricted-access management VLAN or to tunnel it over TLS or IPsec. This is helpful because it makes RADIUS traffic more difficult for attackers to access, so that it’s harder to execute our attack. That said, an attacker may still be able to execute our attack to accomplish a privilege escalation if a network misconfiguration or compromise allows a MitM to access RADIUS traffic. Thus, the other mitigations we mention above are valuable even if RADIUS traffic is isolated.</p><p><b>Non-mitigations.</b> While it is possible to use TCP as transport for RADIUS, RADIUS/TCP is experimental, and offers no benefit over RADIUS/UDP or RADIUS/TLS. (Confusingly, RADIUS/TCP is sometimes also called <a href="https://en.wikipedia.org/wiki/RadSec">RADSEC</a>; but in this post we only use RADSEC to describe RADIUS/TLS.) We discuss other non-mitigations in our <a href="https://www.blastradius.fail/pdf/radius.pdf">paper</a>.</p>
    <div>
      <h3>A side note about EAP-TLS</h3>
      <a href="#a-side-note-about-eap-tls">
        
      </a>
    </div>
    <p>When we were checking inside Cloudflare for internal exposure to the Blast-RADIUS attack, we found EAP-TLS used in certain office routers in our internal Wi-Fi networks. We ultimately concluded that these routers were not vulnerable to the attack. Nevertheless, we share our experience here to provide more exposition about the use of EAP (<a href="https://datatracker.ietf.org/doc/html/rfc3748">Extensible Authentication Protocol</a>) and its implications for security. RADIUS uses EAP in several different modes which can be very <a href="https://freeradius.org/documentation/freeradius-server/4.0~alpha1/howto/modules/eap/index.html">complicated</a> and are not the focus of this post. Still, we provide a limited sketch of <a href="https://www.cloudradius.com/the-stages-of-802-1x-authentication/">EAP-TLS</a> to show how it is different from RADIUS/TLS.</p><p>First, it is important to note that even though EAP-TLS and RADIUS/TLS have similar names, the two protocols are very different.  RADIUS/TLS encapsulates RADIUS traffic in TLS (as described above).  But EAP-TLS does not; in fact, EAP-TLS sends RADIUS traffic over UDP!</p><p>EAP-TLS only uses the TLS handshake to authenticate the user; the TLS handshake is executed between the user and the RADIUS server.  However, TLS is not used to encrypt or authenticate the RADIUS packets; the RADIUS client and RADIUS still communicate in the clear over UDP.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/77YFHepvxIYqZoQuMisPC3/b0f8a1ab74d2a3233d393e4dcd7b6680/unnamed--1--2.png" />
            
            </figure><ol><li><p>The user initiates EAP authentication with the RADIUS client.</p></li><li><p>The RADIUS client sends a RADIUS/UDP Access Request to the RADIUS server over UDP.</p></li><li><p>The user and the Authentication Server engage in a TLS handshake. This TLS handshake may or may not be encapsulated inside RADIUS/UDP packets.</p></li><li><p>The parties may communicate further.</p></li><li><p>The RADIUS server sends the RADIUS client a RADIUS/UDP Access-Accept (or Access-Reject) packet over UDP.</p></li><li><p>The RADIUS client indicates to the user that the EAP login was successful (or not).</p></li></ol><p>As shown in the figure, with EAP-TLS the Access-Request and Access-Accept/Access-Reject are RADIUS/UDP messages. Therefore, there is a question as to whether a Blast-RADIUS attack can be executed against these RADIUS/UDP messages.</p><p>We have not demonstrated any attack against an implementation of EAP-TLS in RADIUS.</p><p>However, we cannot rule out the possibility that some EAP-TLS implementations could be vulnerable to a variant of our attack. This is due to ambiguities in the RADIUS specifications. At a high level, the issue is that:</p><ol><li><p>The RADIUS specifications require that any RADIUS/UDP packet with EAP attributes includes the HMAC-MD5 Message-Authenticator attribute, which would stop our attack.</p></li><li><p>However, what happens if a MitM attacker strips the EAP attributes from the RADIUS/UDP response packet?  If the MitM could get away with stripping out the EAP attribute, it could also get away with stripping out the <i>Message-Authenticator</i> (which is optional for non-EAP modes of RADIUS/UDP), and a variant of the Blast-RADIUS attack might work. The ambiguity follows because the specifications are unclear on what the RADIUS client should do if it sent a request with an EAP attribute but got back a response without an EAP attribute and without a Message-Authenticator. See more details and specific quotes from the specifications in our <a href="https://www.blastradius.fail/pdf/radius.pdf">paper</a>.</p></li></ol><p>Therefore, we emphasize that the recommended mitigation is RADIUS/TLS (also called RADSEC), which is different from EAP-TLS.</p><p>As a final note, we mentioned that the Cloudflare’s office routers that were using EAP-TLS were not vulnerable to the Blast-RADIUS attack. This is because these routers were set to run with local authentication, where both the RADIUS client and the RADIUS server are confined inside the router (thus preventing a MitM from gaining access to the traffic sent between RADIUS client and RADIUS server, preventing our attack). Nevertheless, we should note that this vendor’s routers have many settings, some of which involve using an external RADIUS server. Fortunately, this vendor is one of many that have recently released support for RADIUS/TLS (also called RADSEC).</p>
    <div>
      <h3>Work in the IETF</h3>
      <a href="#work-in-the-ietf">
        
      </a>
    </div>
    <p>The IETF is an important venue for standardizing network protocols like RADIUS. The <a href="https://datatracker.ietf.org/wg/radext/about/">IETF’s radext working group</a> is currently considering an initiative to <a href="https://datatracker.ietf.org/doc/draft-ietf-radext-deprecating-radius/">deprecate RADIUS/UDP</a> and create a “standards track” specification of <a href="https://datatracker.ietf.org/doc/draft-ietf-radext-radiusdtls-bis/01/">RADIUS over TLS or DTLS</a>, that should help accelerate the deployment of RADIUS/TLS in the field. We hope that our work will accelerate the community’s ongoing efforts to secure RADIUS and reduce its reliance on MD5.</p> ]]></content:encoded>
            <category><![CDATA[Vulnerabilities]]></category>
            <guid isPermaLink="false">48Euekkrb6ge4LqbNE9TsI</guid>
            <dc:creator>Sharon Goldberg</dc:creator>
            <dc:creator>Miro Haller (Guest Author)</dc:creator>
            <dc:creator>Nadia Heninger (Guest Author)</dc:creator>
            <dc:creator>Michael Milano (Guest Author)</dc:creator>
            <dc:creator>Dan Shumow (Guest Author)</dc:creator>
            <dc:creator>Marc Stevens (Guest Author)</dc:creator>
            <dc:creator>Adam Suhl (Guest Author)</dc:creator>
        </item>
    </channel>
</rss>