Moderately technical

Zero trust access network

An interactive guide to Cloudflare's Zero trust access network.

The Shift

Why Zero Trust exists


The perimeter collapsed. Network-level trust became the liability.


[Click any node to simulate a breach.]
SECURE
COMPROMISED

The Mechanism

So, what is Zero Trust (at Cloudflare)?


Per-request decisions + app-scoped access (not network membership).


VPN[ VERIFY_ONCE ]
USER
ACCESS_CHECK
APP

ZERO TRUST[ VERIFY_EVERY_REQUEST ]
USER+ID
ACCESS_CHECK
APP

The Four Primitives

The building blocks


Identity, Device, Policy, Transport — each with clear scope and failure modes.


User
Device
Policy
Transport
App
DEVICEUSER
POLICY
TRANSPORT
APP
[Hover over layers]

Decision Semantics

How a request is decided


Deterministic evaluation - explicit rules, ordered matches, default deny.


Decision
IDENTITY
DEVICE
USER
IDP
WARP
GATEWAY

VPN vs ZTNA

Why this isn't a feature upgrade


Different trust model, different blast radius, different architecture.


Decision0%

VPN (Network Trust)

Flat Network

Gateway
JIRA
Wiki
CRM
Users DB
Docs

Zero Trust (App Trust)

Scoped Access

Gateway
JIRA
Wiki
CRM
Users DB
Docs

Unified Access

One policy engine across all app types


Private apps, SaaS, and web destinations — consistent rules, consistent context.


Reqidentitydevicecontextpolicydecision
REQ 01
john@company.com
Valid
macOS · Compliant
Passed
GET /admin
Protected
Rule #2
Match
ALLOW
Access granted
REQ 02
anon@company.com
Valid
Windows · Failed
Posture check failed
GET /v1/keys
Sensitive
Admins + Compliant
Requirement not met
DENY
Device posture failed
First failure: device
REQ 03
contractor@vendor.com
Valid
macOS · Compliant
Passed
GET /internal
Protected
No rule match
No matching policy
DENY
Implicit deny
First failure: policy

Performance

Performance at Scale


Faster than the competition. Verified by data.


Secure Web Gateway

Response Time (95th percentile)

Start
Finish
Cloudflare
0ms
No Gateway
0ms
Zscaler ZIA
0ms

Data: Cloudflare vs Zscaler Tests (2023)

Day 1

How to start (without breaking everything)


Connect one app. Then one team. No big bang migration.


Primitives
Legacy
Zero Trust
Legacy OnlyParallelFull Zero Trust