Zero Trust vs VPN: Rethinking Network Security

November 2, 2020

The traditional VPN model assumes that once you’re on the network, you’re trusted. Zero trust flips this: trust nothing, verify everything. With remote work becoming permanent, the differences matter more than ever.

Here’s how these approaches compare and when to use each.

The VPN Model

How It Works

┌─────────────────────────────────────────────────────────────┐
│                     Corporate Network                        │
│                    (Trusted Zone)                            │
│                                                              │
│   ┌─────────┐    ┌─────────┐    ┌─────────┐               │
│   │ Server  │    │  Email  │    │   DB    │               │
│   └─────────┘    └─────────┘    └─────────┘               │
│                                                              │
└───────────────────────┬─────────────────────────────────────┘
                        │ VPN Tunnel
                        │
┌───────────────────────▼─────────────────────────────────────┐
│                    Internet                                  │
│                  (Untrusted)                                 │
└───────────────────────┬─────────────────────────────────────┘
                        │
                 ┌──────▼──────┐
                 │   Remote    │
                 │   Worker    │
                 └─────────────┘

Assumption: Network perimeter = security boundary

VPN Problems

Flat network access:

Performance:

User experience:

Security gaps:

The Zero Trust Model

Core Principles

┌─────────────────────────────────────────────────────────────┐
│                                                              │
│    1. Never trust, always verify                            │
│    2. Assume breach                                          │
│    3. Verify explicitly                                      │
│    4. Least privilege access                                 │
│    5. Continuous validation                                  │
│                                                              │
└─────────────────────────────────────────────────────────────┘

How It Works

                    ┌─────────────────────────────────────────┐
                    │           Identity Provider             │
                    │         (Authentication)                │
                    └──────────────────┬──────────────────────┘
                                       │
                    ┌──────────────────▼──────────────────────┐
                    │           Policy Engine                  │
                    │   (User + Device + Context = Decision)  │
                    └──────────────────┬──────────────────────┘
                                       │
         ┌─────────────────────────────┼─────────────────────────────┐
         │                             │                             │
         ▼                             ▼                             ▼
┌────────────────┐          ┌────────────────┐          ┌────────────────┐
│   Service A    │          │   Service B    │          │   Service C    │
│   (Authorized) │          │ (Not Authorized)│          │   (Authorized) │
└────────────────┘          └────────────────┘          └────────────────┘

Every access request evaluates:

Zero Trust Components

identity:
  - Strong authentication (MFA everywhere)
  - Single sign-on (SSO)
  - Continuous session validation

device:
  - Device health verification
  - Endpoint detection and response (EDR)
  - Certificate-based identity

network:
  - Micro-segmentation
  - Encrypted communication
  - No implicit trust

application:
  - Per-application access policies
  - Just-in-time access
  - Session-based authorization

data:
  - Data classification
  - Encryption at rest and in transit
  - Access logging

Comparison

Access Model

VPN:
  Connect → Full network access → Access resources

Zero Trust:
  Request resource → Verify identity → Verify device → Check policy → Grant specific access

Security Posture

AspectVPNZero Trust
Network trustInternal = trustedNothing trusted
Access scopeBroadSpecific
Lateral movementEasyDifficult
Compromised credential impactHighLimited
VisibilityNetwork perimeterEvery request

Performance

VPN:
  User → VPN Gateway → Internet → Cloud Service
  (backhauled through corporate network)

Zero Trust:
  User → Identity/Policy → Cloud Service
  (direct path to resource)

Implementation

Zero Trust Architecture

components:
  identity_provider:
    - Okta / Azure AD / Google Workspace
    - MFA required for all users
    - Risk-based authentication

  access_proxy:
    - Cloudflare Access / Zscaler / Google BeyondCorp
    - Per-application policies
    - No network-level access

  device_trust:
    - MDM enrollment required
    - EDR agent required
    - Compliance checks (encryption, updates, etc.)

  policy_engine:
    - User + Device + Context = Allow/Deny
    - Continuous evaluation
    - Audit logging

Migration Path

Phase 1: Inventory and Identity
- Catalog all applications
- Implement SSO for all apps
- Enable MFA everywhere

Phase 2: Device Trust
- Deploy endpoint management
- Define device compliance policies
- Implement device certificates

Phase 3: Access Proxy
- Deploy zero trust access proxy
- Migrate applications one by one
- Start with low-risk applications

Phase 4: Reduce VPN Dependency
- Move remaining apps to zero trust
- VPN for legacy only
- Eventually deprecate VPN

Policy Examples

# Application access policy
app: internal-wiki
rules:
  - name: "Standard access"
    conditions:
      - identity: authenticated
      - groups: employees
      - device: managed
      - device_compliance: true
    action: allow

  - name: "Contractor access"
    conditions:
      - identity: authenticated
      - groups: contractors
      - device: any
      - mfa: required_per_session
      - location: approved_countries
    action: allow

  - name: "Default deny"
    action: deny
# High-security application
app: hr-system
rules:
  - name: "HR team access"
    conditions:
      - identity: authenticated
      - groups: hr-team
      - device: managed
      - device_compliance: true
      - mfa: hardware_key_required
      - location: corporate_or_approved_home
      - time: business_hours
    action: allow

  - name: "Default deny"
    action: deny

When to Use Each

VPN Still Makes Sense

Zero Trust Preferred

Hybrid Approach

Many organizations use both:

Modern apps → Zero Trust (Cloudflare Access, etc.)
Legacy apps → VPN (limited, segmented)
Internal network → Zero trust principles (micro-segmentation)

Challenges

Zero Trust Challenges

Complexity:

User friction:

Legacy applications:

Implementation Tips

success_factors:
  - Start with identity: Strong SSO and MFA foundation
  - Inventory first: Know what you're protecting
  - Pilot before rollout: Test with friendly users
  - User communication: Explain why, not just what
  - Measure: Track adoption and issues
  - Iterate: Improve policies based on feedback

Key Takeaways

The network perimeter has dissolved. Zero trust acknowledges this reality and builds security around identity and context rather than network location.