In the evolving threat landscape, “zero trust” is hardly a new phrase — but it is more important than ever. As attackers become more sophisticated, identity-based, lateral movement, and subtle persistence-based threats are no longer edge cases; they’re part of the assumed baseline. This post will walk through the general principles of zero trust (drawing on sources like John Kindervag’s original model, Google’s BeyondCorp/BeyondProd, Cloudflare’s implementation), then introduce how Riptides takes zero trust further, from the perimeter, to the node, to the kernel and why that matters for modern infrastructure security.
TL;DR: We achieve this kernel-level zero trust using strong attestation, SPIFFE for strong workload identity and kTLS for secure, identity-bound communication.
Let’s begin with what zero trust means in practice, drawing from the original “never trust, always verify” model and how major players have implemented it.
Established guidance from Kindervag, NIST, and Google shows that robust zero trust architectures typically include:
Strong Identity & Authentication
Every user, every device, every service must prove who they are. Credentials, device posture, attestation, identity signals: these are continuously evaluated.
Least Privilege Access / Principle of Minimal Privilege
Access granted only to what is needed, for as long as it is needed. Permissions are narrowly scoped, ephemeral where possible.
Micro-Segmentation
Even within the data center or network, break up the environment so that lateral movement is constrained. Each boundary (service-to-service, process to process) is guarded.
Continuous Verification / Context Awareness
Trust decisions are not static. They consider context: device health, recent behavior, time, location, the system’s state.
Monitoring, Auditing, Feedback, and Automation
You need visibility into what is going on (flows, anomalies), to enforce policy, and to adjust dynamically.
No Implicit or Perimeter Trust
Simply being “inside” a network doesn’t confer trust. All traffic (east-west, north-south), all processes, all workloads must be verified.

Many zero trust implementations focus on either:
At Riptides, we believe zero trust should start even deeper: at the kernel.
So: for Riptides, it’s not enough that “access came from a trusted host” — the code itself, its provenance, its execution context, its behavior must be verified, attested, and assigned identity. That identity becomes the basis for further trust decisions.
Once a workload/process has passed attestation and obtained a SPIFFE identity (an SVID), that becomes the key to building more complex trust relationships:
To dive deeper into how we handle workload identity federation and on-demand credential injection, take a look at these posts:
Interested in how our Linux kernel journey unfolded and what we learned along the way?
SPIFFE + Attestation
Every process/workload must undergo attestation (code origin, execution environment, etc) before being issued an SVID in kernelspace. No unverified userspace process is trusted.
Mutual TLS & Policy Based on SPIFFE IDs
Once workloads have identities, communications between them are authenticated via mTLS using those identities. Policy engines decide what identities can communicate or access which services.
Workload Identity Federation
For workloads outside our control, we support identity federation so they can present acceptable identities to integrate with our system. This allows cross-cloud trust without resorting to static credentials or VPNs.
On-Demand Credential Injection
Instead of embedding long-lived secrets in workloads, credentials are injected in kernelspace only when needed, tied to identity, and revoked when no longer valid.
Continuous Monitoring and Policy Enforcement
Even after identity issuance, processes and workloads are monitored and re-attested. If a process becomes non-compliant, its trust is revoked or restricted.
| Layer | What It Covers | Trust / Identity / Controls |
|---|---|---|
| Kernel / Process Attestation | Code origin, integrity, execution environment | SPIFFE IDs issued only after attestation; no userspace code is trusted by default |
| Inter-process / Service Communication | Workload → workload, on same host or across hosts | mTLS with SPIFFE IDs, policy enforcement per identity |
| Node / Host | The host’s posture, environment, security properties | Host attestation, secure boot, minimal trusted host invariants |
| Data Center / Cloud | Networking, segmentation, environment boundaries | Trust federated via identity, policies enforce cross-workload access |
| Multi-Cloud / Hybrid / Cross-Partner | Heterogeneous environments, partners, external workloads | Identity federation, on-demand credentials, consistent identity model across boundaries |
Zero trust isn’t a product you buy; it’s a mindset, a set of architectural commitments. From Kindervag’s early formulation through Google’s BeyondCorp/BeyondProd, Cloudflare’s identity-based enforcement, we’ve seen how zero trust can dramatically reduce risk, but also how most implementations still assume some level of implicit trust and/or static credentials.
At Riptides, we push the boundary further: **kernel first:**trust nothing in userspace without attestation; only then issue identity; only then allow communication, based on fine-grained policy; extending trust across clouds via federation and credential injection. This gives us: stronger guarantees, smaller blast radius, and more defensible, resilient infrastructure. If you’re building systems today, especially cloud-native, distributed, hybrid or multi-cloud, it’s no longer sufficient to trust by node or network zone. The kernel is where the implicit trust still lingers — remove it, and you’re in a much stronger security posture.