The Bottom Turtle Problem

▶ Listen to this article

Every distributed system eventually runs into the same wall: to prove who you are, you need a credential. To get a credential, you need to prove who you are. The credential-issuance system won’t give you a certificate until it trusts you; it can’t trust you until it has a certificate.

This is the bootstrap paradox — or, as Red Hat’s security team and the CNCF community have started calling it, the bottom turtle problem.1 The name comes from the old philosophical joke: the universe rests on a turtle, which rests on another turtle, which rests on another turtle. You ask what’s at the bottom. The answer is: turtles all the way down.

In distributed systems, every trust chain is turtles all the way down until you hit something different. The question isn’t whether there’s a bottom turtle — there always is. The question is what your bottom turtle is made of.

Why Every Solution Is a Displacement

The naive reading of this problem is: “just get a certificate from somewhere trusted first.” The problem is that “somewhere trusted” is exactly what you’re trying to establish. The trust chain has to start somewhere, and that starting point can’t itself be verified by the system you’re bootstrapping.

This is what makes the problem structurally interesting. It’s not a missing feature — it’s an inherent logical property of recursive trust systems. You can push the turtle down. You can’t remove it.

What you can do is choose what kind of bottom you want to fall back to. The industry has converged on three approaches.

The Hardware Floor

The cleanest solution: ground the trust chain in something physical that can’t be spoofed at the software level.

AWS EC2 and the metadata service use this approach.2 When an EC2 instance starts, the Nitro hypervisor — AWS hardware that the guest OS can’t touch — makes an Instance Identity Document available at a link-local address (169.254.169.254). The IID contains the instance ID, account ID, region, and AMI ID, and it’s cryptographically signed by the hypervisor itself. Software running inside the instance retrieves this document and exchanges it for temporary IAM credentials. The guest OS can’t fake the IID because it can’t reach the hypervisor layer that signs it.

The trust root here is physics: the instance can only access that link-local address from inside the actual VM. The SSRF attacks that plagued the original IMDSv1 design exploited the fact that the authentication question was separate from the network question — any code running on the machine could make the request, including server-side request forgery exploits.3 IMDSv2 fixed this by requiring a session-oriented token that can’t be forwarded through a proxy,4 but the underlying trust anchor — hypervisor-level hardware identity — was always the real root.

TPM-based attestation takes this further.5 A Trusted Platform Module is a hardware chip that stores cryptographic keys in a way that even the operating system can’t directly access. The TPM can sign measurements of the system’s boot state, proving that the machine booted with specific firmware and hasn’t been tampered with. This is how Windows Hello, BitLocker, and enterprise remote attestation work at scale. Projects like Keylime extend TPM attestation to Linux workloads running on attested hardware.6 At the node level, this is production-grade. At the container or microservice level, it’s still being actively researched — container-granular TPM attestation only saw its “first practical mechanism” published in late 2025.7

The hardware floor is the strongest foundation you can build on. The tradeoff: it requires actual hardware. Cloud providers can give you virtual TPMs inside confidential VMs (AMD SEV-SNP, Intel TDX), but the attestation chain terminates at their hardware, not yours. You’re trusting the cloud provider’s silicon.

The Institutional Floor

The second approach: prove you control something that requires human-level institutional action to acquire.

This is how ACME — the protocol behind Let’s Encrypt — works.8 The certificate authority doesn’t verify who you are. It verifies that you control the domain. HTTP-01 challenges require you to serve a specific token at a well-known URL. DNS-01 challenges require you to add a specific TXT record to your zone. TLS-ALPN-01 challenges require you to respond on port 443 with a specific ALPN extension.9

Domain control is the institutional anchor. Registering a domain requires going through a registrar — a process with legal identity verification, payment records, and abuse mechanisms. It’s not perfect, but it’s different in kind from the system being bootstrapped. The CA doesn’t need to trust your TLS stack to verify your domain; it just needs to trust that DNS and HTTP are working correctly.

The known weakness here: BGP hijacking. An attacker who can manipulate routing at the network level can intercept the validation request and fraudulently prove domain control. Let’s Encrypt’s response was multi-perspective validation — they now validate from multiple geographically and topologically diverse vantage points simultaneously.10 An attacker needs to compromise all validation paths at the same time, which is significantly harder than a single-path hijack.

The institutional floor is the right tool for public-web identity: anyone with a domain name, no pre-existing relationship with any CA, can get a trusted TLS certificate in seconds. It doesn’t translate to internal services, containerized workloads, or anything that doesn’t map cleanly to a domain.

The Human Floor

The third approach: a human provisioned the first credential. Everything else derives from that.

This is what SPIFFE/SPIRE’s join token attestor does.11 SPIRE is the CNCF-graduated implementation of the SPIFFE workload identity standard — a system that issues short-lived X.509 certificates (called SVIDs) to workloads running in distributed environments. When SPIRE bootstraps a new agent, it needs to authenticate that agent before it can issue any SVIDs. In environments with no cloud platform or hardware attestor, it does this with a one-time join token: a pre-shared secret that expires immediately after first use. A human (or a deploy system a human controls) generates the token, the agent consumes it on first contact, and the token is invalidated.

After that first handshake, everything else is automated. SPIRE reissues SVIDs before they expire. Workloads get short-lived credentials without ever handling secrets themselves. But somewhere back in the chain, a human pushed a button.

SPIRE explicitly acknowledges this. The official documentation for the “bootstrap bundle” — the initial configuration that lets an agent trust the server it’s talking to — notes that it “should be replaced with customer-supplied credentials in production.”12 The bootstrap bundle is a placeholder that says: this was good enough to get started, but the real trust root comes from somewhere else.

In practice, most production SPIRE deployments don’t use join tokens at all — they use platform attestors that tie node identity to a cloud platform’s identity system (AWS IID, GCP instance metadata, Kubernetes service account tokens).13 This is just combining approach one (hardware floor) with SPIRE’s workload identity layer on top. The cloud platform is the bottom turtle; SPIRE is an automation layer that extends that trust to individual workloads.

The New Frontier: Supply Chain Provenance as Identity

Something interesting happened in 2025: the concept of “workload identity” started absorbing supply chain verification.

Teleport’s SPIFFE Workload Identity integration now supports attestation rules that require specific Sigstore-signed container image policies to be satisfied before an SVID is issued.14 The workload doesn’t just need to prove it’s running at the right address in the right cluster — it needs to prove that the image it’s running from was built from verified source code, signed by a verified key, and logged in a transparency ledger. The identity claim now includes the provenance of the workload itself.

This is the trust chain getting longer, not the bootstrap problem getting solved. The Sigstore bottom turtle is an OIDC token issued by GitHub or another provider — which is an institutional floor (you trust the OIDC provider’s identity verification). But the expressive power of what “I am who I say I am” can mean has expanded substantially.

What You Can Actually Do With This

If you’re building a distributed system and you’re asking “how does our first service prove its identity,” here’s the practical breakdown:

You’re on a cloud platform: Use the platform’s native identity mechanism (EC2 instance profiles, GCP workload identity, Azure managed identities, Kubernetes projected service accounts). The cloud provider’s hardware is your bottom turtle. Accept this and build on it.

You need cross-service, cross-cluster, or cross-cloud identity: Evaluate SPIFFE/SPIRE.15 It’s CNCF-graduated, has production deployments at Uber, GitHub, Square, and Wise, and automates short-lived credential issuance at scale. SVID rotation is continuous, workloads never handle long-lived secrets, and attestation is pluggable. The bottom turtle is still the cloud platform (or a join token, or a TPM if you have one) — but the automation layer between that turtle and your workloads is production-grade.

You’re issuing TLS certificates for public web services: ACME is solved. Let’s Encrypt is free, widely supported, and multi-perspective validation substantially mitigates BGP attacks. The institutional floor (domain control) is the right one for public TLS.

You’re on bare metal with no cloud attestors: Your options are a hardware TPM (complex but strong) or a human-provisioned join token (simple but requires operational discipline around rotation and expiry). Don’t use long-lived secrets. Whatever you use, rotate it.

The Bottom Turtle

The insight isn’t that the bootstrap paradox is unsolvable — it’s that the solution is always architectural, not cryptographic. You can’t cryptographically prove the identity of a system that doesn’t yet have any cryptographic credentials. What you can do is fall back to something outside the system: hardware that can’t be faked, an institution that can be held accountable, or a human who takes responsibility.

Every trust chain terminates somewhere. The question is whether your bottom turtle is physics, an institution, or a human — and whether you’ve made that choice deliberately or inherited it by accident.

The paranoid read: every system you trust is ultimately trusting a registrar, a cloud provider, a certificate authority, or a TPM manufacturer. These are all institutions. Institutions have interests. Hardware has supply chains.

The pragmatic read: this is fine. The world runs on layered trust, none of it absolute. Your job is to understand where your trust chain terminates, make that termination point as hard to subvert as possible, and rotate your credentials aggressively enough that a compromised bottom turtle doesn’t mean a permanently compromised system.

Pick your turtle. Know what it’s made of.


  1. Red Hat, “Zero Trust Workload Identity Manager Now Available in Tech Preview”, Red Hat Blog, May 19, 2025. The post frames SPIFFE/SPIRE as solving the “secret zero or bottom turtle problem.” 

  2. AWS Security Blog, “Get the full benefits of IMDSv2 and disable IMDSv1 across your AWS infrastructure”, Amazon Web Services, September 2023. 

  3. The Capital One breach of 2019 exploited a Server-Side Request Forgery (SSRF) vulnerability to retrieve AWS credentials from the IMDSv1 endpoint. The attacker queried http://169.254.169.254/latest/meta-data/iam/security-credentials/ through a misconfigured web application firewall. See Krebs on Security and the Capital One breach timeline for details. 

  4. AWS News Blog, “Amazon EC2 Instance Metadata Service IMDSv2 by Default”, Amazon Web Services, November 2023. IMDSv2 requires a session-oriented PUT request for a token, then uses that token in a required header. PUT requests with X-Forwarded-For are blocked, preventing SSRF forwarding through proxies. 

  5. Trusted Platform Module 2.0 is specified by the Trusted Computing Group. See TCG TPM Library Specification

  6. Keylime — open-source TPM-based remote attestation and integrity monitoring. CNCF Sandbox project. Provides boot-time attestation and continuous runtime integrity checking via Linux IMA. 

  7. Yehuda Afek, “Privacy-Preserving Container Attestation”, Springer Nature, October 2025. Describes the first practical mechanism for container-specific TPM attestation bound to a host TPM, overcoming current kernel limitations. 

  8. IETF, RFC 8555 — Automatic Certificate Management Environment (ACME), March 2019. Protocol underlying Let’s Encrypt and most automated certificate issuance today. 

  9. Let’s Encrypt, “Challenge Types”, Let’s Encrypt Documentation, updated February 12, 2026. Describes HTTP-01, DNS-01, and TLS-ALPN-01 challenges with their specific requirements, capabilities, and limitations. 

  10. Let’s Encrypt, “Multi-Perspective Validation Improves Domain Validation Security”, Let’s Encrypt Blog, February 2020. Validation now occurs from multiple geographic and network-topological vantage points simultaneously, requiring an attacker to hijack multiple BGP paths simultaneously. 

  11. SPIFFE, “SPIRE Concepts”, SPIFFE Documentation, v1.14.6 (current). Describes node attestation, workload attestation, SVID lifecycle, and attestor plugins including the join token attestor. 

  12. From the SPIRE documentation on bootstrap bundles: the initial trust bundle “should be replaced with customer-supplied credentials in production.” See SPIFFE documentation. 

  13. SPIRE attestor plugins include AWS EC2 IID, GCP GCE, Azure MSI, Kubernetes Service Account, and x509pop (existing certificate). The cloud attestors use platform-signed identity documents that the hypervisor provides and that guest OS code cannot forge. 

  14. Teleport, SPIFFE Workload Identity documentation. Teleport’s 2025 SPIRE integration supports Sigstore attestation policies as workload identity selectors, requiring specific signed container image provenance before an SVID is issued. 

  15. CNCF, “SPIRE graduated from CNCF Incubator”, CNCF Announcement, September 20, 2022. Both SPIFFE (spec) and SPIRE (implementation) graduated simultaneously.