Podcast Episode 3

Episode 003 42 min

Daniel Feldman, Cloud Security Architect at HPE, Service Authentication with SPIFFE and SPIRE

with Daniel Feldman · HPE

0:00 / 42:00

Also on Spotify, Apple Podcasts, YouTube, Podbean, Player FM

Episode 3 of The Security Podcast of Silicon Valley, published June 3, 2021. Host Jon McLachlan talks with Daniel Feldman, then a cloud security architect at HPE and an early employee of Scytale, the SPIFFE startup HPE acquired in February 2020, about service identity: Operation Aurora and the identity layer Google built after it, X.509 certificates and JWTs, the SPIFFE standard and SPIRE, its implementation, why service meshes adopted SPIFFE identities without the workload API, how SPIRE attests nodes and workloads and regenerates identities, one identity plane across clouds and on-prem, zero trust as a buzzword, trusting your cloud provider, mandatory mutual TLS at Veritas, a startup inside a big company, OpenID Connect and cloud access keys, getting rid of static secrets, certificate transparency, the red zone of enterprise infrastructure, computer security's 1950s, and what Let's Encrypt got right.

Episode notes

An interview with Daniel Feldman, Cloud Security Architect at HPE (formerly Scytale.io), as we discuss his journey through service authentication with the open standard SPIFFE and the implementation SPIRE.

In this episode, Daniel tells the story of how he came across this problem of authentication at Veritas Technologies, why he joined a small startup Scytale.io to continue focusing on his security journey, and touch on what it's like at Hewlett Packard Enterprise. We end on a forward-looking note on what the future of cloud security might look like, with many challenging and open cloud security problems out there.

Daniel is happy to meet others with similar interests and experiences, so in that spirit, he is open to connecting and sharing stories and ideas. He can be reached on LinkedIn or Twitter as d_feldman.

Hosted by Jon McLachlan — co-founder of YSecurity.

The deep dive

Get rid of your secrets

Daniel Feldman, then a cloud security architect at HPE and an early employee of Scytale before that, with Jon on service identity: Operation Aurora and the identity layer Google built after it, X.509 certificates and JWTs, the SPIFFE standard and its SPIRE implementation, the parts of SPIFFE that service meshes adopted, how SPIRE knows which node and which service is asking, one identity plane across clouds, zero trust as a buzzword, mandatory mutual TLS in a backup product, OpenID Connect, static secrets as toxic waste, certificate transparency, the red zone, jetliners in the 1950s, and what Let's Encrypt got right.

Episode 3 of The Security Podcast of Silicon Valley aired on June 3, 2021, with Jon McLachlan hosting. The guest was Daniel Feldman, a cloud security architect at HPE. HPE had acquired Scytale, the startup he joined as an early employee, in February 2020 (Podbean, LinkedIn, SPIFFE, SPIRE on GitHub). The episode is called “Daniel Feldman, Cloud Security Architect at HPE, Service Authentication with SPIFFE and SPIRE.” It has no video version.

Later in the episode, Jon said HSMs are painful to set up, and that no secret at all is even better. Daniel answered with his motto:

“Get rid of your secrets. That’s my motto.”

Daniel Feldman, at 28:19

Listen · Daniel Feldman and Jon McLachlan on episode 3, from 28:19
About 20 seconds: Daniel's motto, Jon's comparison to nuclear weapons, and secrets as toxic waste. The clip stops on its own. Read the full transcript.

SPIFFE is short for the Secure Production Identity Framework For Everyone. In the words of the Cloud Native Computing Foundation, it “provides a secure identity to every workload.” SPIRE, the SPIFFE Runtime Environment, is the code that implements the specification on many platforms. Both projects graduated from the foundation on September 20, 2022 (CNCF). Daniel’s LinkedIn lists his HPE role as SPIFFE product technologist, from February 2020 to April 2023 (LinkedIn).

This page follows the conversation in order: a section for each part of it, eighteen figures, nineteen clips from the tape, the full transcript, and five tools: a quiz, a scorecard for whether your services can prove who they are, a calculator for how many identities your fleet issues a day, a timeline, and a to-do list. Where the decodes of the tape disagree on a word, the transcript puts its best guess in brackets, and the page doesn’t quote those words. Daniel says JWT as “jot,” which is how Wikipedia says the name is pronounced (Wikipedia). The transcript writes JWT.

A wild ride

Jon opened by asking how to pronounce the name of Daniel’s former company. Daniel said a search for the word gives a different pronunciation from the one the company used. A scytale is also an ancient cipher tool: a cylinder with a strip of parchment wound around it, used for a transposition cipher, and the Spartans are said to have used it on military campaigns (Wikipedia).

Jon said Scytale.io had recently been acquired by HPE.

“It’s been a wild ride over the last couple of years”

Daniel Feldman, at 0:33

Build the product, get some adoption, get acquired, then get a lot more adoption all of a sudden, Daniel said. HPE announced the deal on February 3, 2020. Its post says Scytale was “founded in 2017 by a group of seasoned engineers from cloud-native enterprises,” names the co-founders as Sunil James, Emiliano Berenbaum and Andrew Jessup, and says HPE is “fully-committed to continuing Scytale’s stewardship and contributions to SPIFFE and SPIRE” (HPE).

A timeline. January 2015: Veritas, principal software engineer in the CTO office, mandatory mutual TLS for a backup product. May 2018: Scytale.io, principal software engineer, an early employee, SPIFFE and SPIRE. February 2020, filled: HPE acquires Scytale, and Daniel's role is SPIFFE product technologist, a cloud security architect on the tape. June 3, 2021, filled: episode 3, Daniel on this show. January 2023: Sentima, Inc., co-founder. 2024: Qusaic, consulting through his own company. December 2024: principal engineer at a company his LinkedIn calls a stealth Fortune 500 company.
Daniel's path, from his LinkedIn experience and the tape.

The dark joke of KubeCon

Jon said Daniel had recently been speaking at KubeCon Europe. Daniel had done a lightning talk there and a number of talks and workshops. HPE’s developer blog had announced the talk for Tuesday, May 4, 2021, on how to securely bridge cloud native and traditional workloads with SPIRE (HPE Developer).

KubeCon, Daniel explained, is the big conference for cloud native technology: Kubernetes and everything around it, like Istio, Prometheus, Jaeger and Thanos. Every cloud provider presents. A thousand startups show off their ideas.

“Of course, most of them won’t exist next year. That’s the dark joke of KubeCon.”

Daniel Feldman, at 1:21

KubeCon runs twice a year, and Daniel thinks he had taken part in every one for the last three years, six in all, presenting, staffing the booth or attending. Kubernetes was originally designed by Google, and the Cloud Native Computing Foundation holds the trademark (Wikipedia).

Who are you?

Jon set out the question for the episode: what is service identity management and authentication, and where is it going? User identity answers the question “who are you?” for people, with logins and everything people do to prove who they are. Services are harder:

“service identity, which is a completely different beast, because you can’t ask a service really to just save a password.”

Jon McLachlan, at 2:16

Every engineer who has built or worked with a microservice architecture has struggled with it, Jon said, and he asked Daniel what service identity is, cut right down.

Operation Aurora

Daniel started with history, from research he had done for his talks at KubeCon and other conferences. Around 2010, he said, attackers captured enormous amounts of data from Google’s data centers.

“That was really the genesis of all this technology.”

Daniel Feldman, at 2:53

Listen · Daniel Feldman on episode 3, from 2:47
About 25 seconds: Daniel on the attack that started it, about 2010. The clip stops on its own. Read the full transcript.

The attack is called Operation Aurora. Google disclosed it in a blog post on January 12, 2010, and the attacks ran from mid-2009 through December 2009. Wikipedia attributes them to advanced persistent threats such as the Elderwood Group, based in Beijing (Wikipedia).

Google’s answer, Daniel said, was a service identity technology for every service at Google, called LOAS. He said he has never worked at Google. We found no public Google page that names LOAS. Google’s documentation does describe ALTS, its transport security for calls between Google’s machines: ALTS “began development at Google in 2007” and authenticates “primarily by identity rather than host” (Google Cloud).

The idea, as Daniel described it, has three parts. Give every service a unique identity. Trace that identity back to the cluster, the hardware and the data center it runs on. Manage the identities centrally and grant one to each service.

“So the idea that they came up with was to uniquely identify every service in their infrastructure”

Daniel Feldman, at 3:48

Three boxes joined by arrows. Around 2010, dashed: Operation Aurora. Google's answer: LOAS, in Daniel's words. Every service, filled: a unique identity. Below, under the words each identity traces back to, four boxes joined by arrows: the service, its cluster, its hardware, its data center. Daniel: "That was really the genesis of all this technology." Daniel, at 2:53
From an attack on Google to an identity for every service, as Daniel told it.

A certificate or a token

The identity a service gets is one of two things, Daniel said: an X.509 certificate or a JWT. With a certificate, any connection the service makes can be encrypted with mutual TLS. A JWT can carry extra metadata about the service’s request, and it can travel with a second JWT for the user.

“and then any request can have its authentication and authorization checked by all the other services in the microservices architecture.”

Daniel Feldman, at 4:38

X.509 is the ITU standard for the format of public key certificates, the kind TLS uses (Wikipedia). Mutual authentication means both parties prove who they are to each other at once (Wikipedia). JWT, JSON Web Token, is RFC 7519 from May 2015 (Wikipedia).

Two cards. X.509 certificate: any connection the service makes can be encrypted with mutual TLS, and both ends prove who they are. JWT: carries extra metadata about the request, and it can travel with a second JWT for the user, so every service can check the request. Daniel: "I mean an X.509 certificate that lets you establish mutual TLS authentication, or a JWT token." Daniel, at 6:08
The two identities a service gets, as Daniel described them.

Alumni of the big companies

Companies like Google, Netflix and Facebook may run tens of thousands of services, Daniel said, and every request has to be authenticated and traceable to the service and the user it came from. They have the budgets and the people to build that themselves, and they did: each of those companies has teams working on service identity, he said.

Around 2017, when Scytale was founded, several alumni of those companies decided to build an open source service identity layer. That was the start of SPIFFE and SPIRE.

“So the initial document for SPIFFE was actually written by Joe Beda from Google”

Daniel Feldman, at 5:32

Daniel said Beda’s white paper is still on the website and dates back to 2017. An introduction on DevOps.com puts it a year earlier: “Joe Beda, a co-founder of Kubernetes, first proposed SPIFFE at GlueCon in 2016” (DevOps.com).

One API for every service

SPIFFE is an open standard, Daniel said. It gives any service an API to fetch its own identity, plus trust bundles to check the identity of other services. You get both an X.509 certificate and a JWT.

“I mean an X.509 certificate that lets you establish mutual TLS authentication, or a JWT token.”

Daniel Feldman, at 6:08

Listen · Daniel Feldman on episode 3, from 5:48
About 25 seconds: Daniel on what SPIFFE is, and what he means by identity. The clip stops on its own. Read the full transcript.

The standard exists so you don’t write each service to get its identity a dozen different ways, he said. One API, and each service implements it as a client. The plan was a whole bunch of implementations.

“What ended up happening is there’s the SPIRE implementation, which is the only real complete implementation.”

Daniel Feldman, at 6:43

Other projects take SPIRE’s open source code and build it into their own software, he said, and more were doing that as they spoke.

A filled box: SPIFFE, the open standard. Below it, two cards. The workload API: a service fetches its own identity. Trust bundles: a service checks the identity of other services. An arrow down to two more cards. SPIRE, filled: the only real complete implementation, in Daniel's words. Other projects, dashed: take SPIRE's open source code and build it into their own software. Daniel: "What ended up happening is there's the SPIRE implementation, which is the only real complete implementation." Daniel, at 6:43
The standard, the one complete implementation, and the projects that build SPIRE in.

The parts that got adopted

Jon asked whether it was a shock that nobody else picked up the standard and wrote their own implementation. Daniel said the hard part is the workload API.

“The other parts of SPIFFE have actually been widely adopted.”

Daniel Feldman, at 7:30

Almost every service mesh uses SPIFFE-compatible identities, he said. They aren’t real SPIFFE implementations, because they don’t provide the API. In Istio, for example, a connection gets a mutual TLS tunnel with a SPIFFE identity on both ends, created for you.

“but it never provides the workload API so you can access your own identity.”

Daniel Feldman, at 7:58

Listen · Daniel Feldman on episode 3, from 7:29
About 35 seconds: Daniel on the service meshes that use SPIFFE identities without the workload API. The clip stops on its own. Read the full transcript.

Jon summed it up: “Very specific pieces of it got adopted.” Daniel agreed. Getting real adoption of the workload API, so a service can fetch its own identity and use it with other services directly, was what his team was working on. At the time, the only way to get it was to install SPIRE yourself.

Three boxes joined by arrows. Service A with a SPIFFE identity, a filled box for the mesh tunnel with mutual TLS set up for you, and service B with a SPIFFE identity. Below, two cards. In a mesh like Istio, dashed: no workload API, so the service can't access its own identity to use it directly. With SPIRE installed: the service fetches its own identity and uses it to authenticate with other services directly. Daniel: "but it never provides the workload API so you can access your own identity." Daniel, at 7:58
What a service mesh gives a service, and what the workload API adds.

Super open source

Jon said he loved that SPIRE, the full implementation, is also open source. Daniel went further: the code is owned by the Cloud Native Computing Foundation.

“So it’s super open source.”

Daniel Feldman, at 8:45

Anyone can contribute, he said, and anyone can join the meetings. Anyone can join the steering committee by being voted on, and anyone can have an official role in the project. The foundation is a subsidiary of the Linux Foundation, founded in 2015 (Wikipedia). SPIFFE and SPIRE entered its Sandbox in 2018 and moved to its Incubator in 2020 (CNCF).

How SPIRE knows a node

Jon asked how SPIRE identifies a service, and Daniel walked through it. A SPIRE server runs centrally and holds all the signing keys, for JWTs and for X.509 certificates. A SPIRE agent runs on each node: each Kubernetes node, virtual machine or bare metal box. The server keeps generating certificates and JWTs and pushes the right ones to the right agent.

A new agent has to log into the server and prove its identity first. In the cloud, it can use an instance identity document, a document signed by the cloud provider, from Amazon, Google or Azure.

“if you’re running in the cloud, you have an instance identity document.”

Daniel Feldman, at 9:51

Listen · Daniel Feldman on episode 3, from 9:48
About 25 seconds: Daniel on how a SPIRE agent proves itself to the server. The clip stops on its own. Read the full transcript.

The agent downloads the document on the node and hands it to the server. The server verifies the signature, checks which identities that agent may get, and passes them down.

Three boxes joined by arrows: the SPIRE server, filled, holds the signing keys. A SPIRE agent, one on each node. A workload, your service. Below, three cards. 1, node attestation: the agent hands the server the cloud provider's signed instance identity document, and the server checks the signature and which identities the agent may get. 2, workload attestation: a service connects over a Unix domain socket, and the agent checks its process ID with Kubernetes, then its service account. 3, push and refresh, filled: the right identity goes to the right service, and it's regenerated every 30 minutes, hour or two hours. Daniel: "So every 30 minutes or hour or two hours, we're regenerating these certificates" Daniel, at 11:01
Daniel's walkthrough of SPIRE: the server, an agent on each node, and the workloads.

How SPIRE knows a workload

Services on the node connect to the SPIRE agent over a Unix domain socket, which Daniel called a local network socket. Wikipedia describes it as an endpoint for exchanging data between processes on the same operating system (Wikipedia).

The agent then checks who is asking. If a certain identity belongs to services running in a particular Kubernetes service account, the agent verifies the process ID that opened the connection, asks Kubernetes whether that process has the service account, and pushes the right identity to it.

“So every 30 minutes or hour or two hours, we’re regenerating these certificates”

Daniel Feldman, at 11:01

Policies can change at any time, he said, and the identities keep refreshing.

“And that’s why you need an API, so it can be continuously pushed instead of having just a file that’s deployed alongside the service.”

Daniel Feldman, at 11:10

Listen · Daniel Feldman on episode 3, from 10:50
About 30 seconds: Daniel on why identities are pushed through an API. The clip stops on its own. Read the full transcript.

Jon called it an identity layer built on the infrastructure the cloud providers already give everyone, which is tricky to use well for identity on its own.

If everything runs in AWS

Daniel started with when you don’t need SPIRE.

“you probably don’t need this, because you already have those instance identities and you can just use them.”

Daniel Feldman, at 11:46

That holds if everything runs on AWS instances and nothing runs in Kubernetes, he said. What SPIRE adds is one identity layer that works in Kubernetes and on AWS, GCP and Azure instances and on-prem, with every identity generated by the same server and compatible with the others. Large organizations have heterogeneous infrastructure, and they want a service in Kubernetes on AWS to be able to talk to a database on an on-prem server.

Jon put the benefit in his own words. Move the service authentication layer away from the cloud provider, and you can run the same service across providers without re-implementing authentication that was tightly coupled to one of them.

A filled box: one SPIRE server, every identity compatible with the others. Below it, five boxes: Kubernetes, AWS, GCP, Azure, on-prem. Then three cards. Daniel's example: a service in Kubernetes on AWS talks to a database on an on-prem server. Jon's point: move authentication away from one provider, and the same service runs across providers. When you may not need it, dashed: everything on AWS instances and nothing in Kubernetes, so use the instance identities you already have. Daniel: "you probably don't need this, because you already have those instance identities and you can just use them." Daniel, at 11:46
One identity layer across the places a service runs, as Daniel listed them.

An identity plane, even in one cloud

Single-cloud companies need it too, Daniel said. A lot of smaller companies standardize on one cloud, but they run in several AWS regions, and each region is effectively a different cloud that shares nothing with the others. They still have an on-prem resource now and then. They have workloads in Kubernetes and workloads outside it, like an RDS database or another managed SaaS service that can’t run inside Kubernetes.

“Even if you’re all in one cloud, you still need some kind of identity plane for everything to talk to each other.”

Daniel Feldman, at 13:23

Listen · Daniel Feldman on episode 3, from 12:59
About 30 seconds: Daniel on why one cloud still needs an identity plane. The clip stops on its own. Read the full transcript.

SPIFFE’s site uses the same idea today: SPIFFE and SPIRE “provide a uniform identity control plane across modern and heterogeneous infrastructure” (SPIFFE).

Zero trust is a buzzword

Jon called zero trust the cool new thing in the security world, and asked whether SPIRE is zero trust.

“Zero trust is a buzzword. It’s a marketing term.”

Daniel Feldman, at 13:41

Listen · Daniel Feldman on episode 3, from 13:41
About 30 seconds: Daniel on what zero trust first meant, and what it came to mean. The clip stops on its own. Read the full transcript.

The original idea, he said, was a network with no perimeter, where every service and every user has a unique identity and every connection and request is verified against it. Then marketing took the term. VPN companies call their products zero trust. So do monitoring companies that check which services connect to which. One company claims zero data security, a new term to him: it stores vital data like credit card and social security numbers somewhere else, and calls itself zero trust. Like cloud and SaaS, the term blew up, and because it isn’t trademarked, everyone uses it to mean slightly different things.

“So as a consequence, I just try not to use the term zero trust.”

Daniel Feldman, at 14:55

Wikipedia defines zero trust architecture as a design where users and devices aren’t trusted by default, even on a privileged network, and says analyst John Kindervag of Forrester used the term zero trust model in 2010 (Wikipedia). On episode 42, Avery Pennarun says Tailscale is a zero trust product, though its homepage probably says nothing about zero trust.

A filled card: the original idea. No perimeter, every service and every user has a unique identity, and every connection and request is verified against it. Below, three dashed cards. VPN companies call their products zero trust. Monitoring companies check which services connect to which, and call it zero trust. Zero data security: store vital data like card numbers somewhere else, and call it zero trust. Daniel: "So as a consequence, I just try not to use the term zero trust." Daniel, at 14:55
The idea Daniel described, and the uses of the term he listed.

Trusting your cloud provider

Jon tried a better question: do you have to trust your underlying cloud provider when you use SPIRE?

“You do have to trust whoever is running the SPIRE server.”

Daniel Feldman, at 15:10

There’s no way around it, Daniel said, since whoever runs it has your private keys and can generate the identities. SPIRE does help you spread trust. If you trust AWS and want to give Google Cloud a little trust, you can run a SPIRE agent on Google Cloud that talks to the SPIRE server on AWS. Or you can federate two SPIRE servers, one on each cloud, so they don’t have to trust each other completely.

“So it is one step towards not trusting your cloud provider.”

Daniel Feldman, at 15:40

Listen · Daniel Feldman on episode 3, from 15:10
About 35 seconds: Daniel on running agents and federated servers across two clouds. The clip stops on its own. Read the full transcript.

He was looking forward to enclave technologies that let you run code on a cloud provider’s machines and isolate it from the provider, SGX among them, and called them a new frontier in security. Intel’s Software Guard Extensions let code define protected private regions of memory, called enclaves (Wikipedia).

Three cards. One server, agents on both: the SPIRE server runs on AWS, and a SPIRE agent on Google Cloud talks to it. Federated servers: one SPIRE server on each cloud, so they don't have to trust each other completely. Next, enclaves, dashed: run code on a cloud provider's machines and isolate it from the provider, and SGX is one such technology. Daniel: "You do have to trust whoever is running the SPIRE server." Daniel, at 15:10
Two ways to spread trust across clouds, from Daniel's answer.

Zero-days in a backup product

Jon asked how Daniel got involved. Before Scytale he worked at Veritas, which makes backup software. He called it the number one enterprise backup product, used by tens of thousands of companies.

Then a number of zero-day attacks were found against the product. Some were things the team already knew about, Daniel said. There were ways to convince the backup service to provide files it shouldn’t, and the backup server to let you restore files you shouldn’t. They had always trusted that customers would deploy the product inside a secure perimeter, where companies knew their users.

Listen · Daniel Feldman on episode 3, from 16:25
About 25 seconds: Daniel on the zero-days found in a backup product built for a trusted perimeter. The clip stops on its own. Read the full transcript.

“Defense in depth,” Jon said. Daniel agreed. A security research team publicized the attacks:

“and suddenly all our customers demanded zero trust security for our backup product.”

Daniel Feldman, at 17:10

“There’s that buzzword again,” Jon said. Veritas built the first commercial journaling file system, VxFS. It merged with Symantec in 2004, was owned by the Carlyle Group from 2016 to 2024, and has been owned by Cohesity since 2024 (Wikipedia). Daniel’s LinkedIn has him as a principal software engineer in the CTO office there from January 2015 to May 2018.

Mandatory mutual TLS

The company put security first, Daniel said, and for several years it focused on security, ahead of other features, with hundreds of people working on it. As a principal engineer in the CTO office, he took on parts of the security strategy: certificate management and distribution, certificate revocation lists, and mutual TLS connections between services.

Each customer site ran about 50 services, depending on configuration. The product was old, with many protocols, many programming languages, and layers of technology going back probably two decades. They finished the project, and Veritas could say its backup product was secure even when it runs in an untrusted environment.

“That’s an incredible achievement,” Jon said. It took years of work for hundreds of people, Daniel said, and he guessed hundreds of millions of dollars in engineering. Then they shipped it.

“Tens of thousands of companies got that update, and it mostly went okay.”

Daniel Feldman, at 18:41

Listen · Daniel Feldman on episode 3, from 18:39
About 20 seconds: Daniel on shipping certificates to every backup node at tens of thousands of companies. The clip stops on its own. Read the full transcript.

Some of those companies had hundreds of thousands of backup nodes. The update deployed certificates to all of them, and communication carried on: mandatory mutual TLS, with identities tied to the specific installation. When the project wound down, Daniel thought the technology had to have uses beyond one company and one project. That’s when he found Scytale and the problem it was working on: services in cloud native infrastructure with no secure identities and no way to establish trust between each other.

Five cards in two rows. Before, dashed: built for a secure perimeter, and there were ways to get files and restores you shouldn't. Zero-days: published by a security research team, and customers demand zero trust security. Years of work, filled: hundreds of people, about 50 services per site, and layers going back probably two decades. The update: tens of thousands of companies, certificates on every backup node, and some had hundreds of thousands of nodes. After, filled: mandatory mutual TLS, with identities tied to the installation, secure in an untrusted environment. Daniel: "Tens of thousands of companies got that update, and it mostly went okay." Daniel, at 18:41
The Veritas project as Daniel described it, from the zero-days to the update.

Employee three or four

“I was an early employee. I wasn’t one of the founders.”

Daniel Feldman, at 19:42

Jon guessed employee number two or three. Probably three or four, Daniel said. Even then, Scytale had a solid strategy and a good proof of concept to build on. Over the next couple of years, a number of the hyperscalers latched onto the technology and put whole teams on it. Jon asked which ones.

“I don’t think I can say that.”

Daniel Feldman, at 20:15

The marketing people had told him not to name customers. His hint was the list of conference presentations about SPIFFE and SPIRE on the website: look up who the speakers work for. Today the “Used By” section on spiffe.io shows 23 logos, among them Amazon, Google, Netflix, Uber and HPE (SPIFFE). His LinkedIn has him at Scytale.io from May 2018 to February 2020.

The week before the pandemic

“just actually the week before the pandemic, we got acquired by HPE”

Daniel Feldman, at 20:37

HPE brought a worldwide marketing and sales presence, Daniel said. It could show the technology to all kinds of companies that weren’t hyperscalers and weren’t cloud native yet. He had been consulting with those companies and adding to the product: Helm charts, installers, YAML files, white papers and documentation, to get adoption at more old-fashioned companies.

Jon said it sounded like Daniel had been instrumental in making it easy to consume. Daniel called a tiny startup with new technology plus a big company with marketing, distribution, sales channels and vendor relationships around the world a powerful combination. A big company struggles to develop and release new products internally, he said, through no fault of the company:

“if you release something, it needs to be nearly perfect. You can’t just experiment.”

Daniel Feldman, at 22:07

Listen · Daniel Feldman on episode 3, from 22:06
About 20 seconds: Daniel on what a big company and a tiny startup each struggle with. The clip stops on its own. Read the full transcript.

A tiny startup struggles with marketing and distribution. Every conference costs a lot of money, and so does every flight to a customer.

Two cards. The tiny startup: really new technology that does a lot of new things, and every conference and every flight to a customer costs a lot of money. The big company: marketing, distribution, sales channels and vendor relationships around the world, and a new release has to be nearly perfect. Below, a filled card: together, a really powerful combination, in Daniel's words, and HPE showed SPIFFE and SPIRE to companies that weren't cloud native yet. Daniel: "if you release something, it needs to be nearly perfect. You can't just experiment." Daniel, at 22:07
What each side brings, from Daniel's answer.

From idea to adoption

Jon said Daniel’s experience at Veritas led him to Scytale, and to the nuances of service identity and machine identity at a low level. Daniel said what he likes most isn’t service identity, or even security. It’s seeing the whole process: the idea, the prototype, the momentum from marketing, conference talks, white papers and discussions, and finally adoption.

“So I’ve been able to see it end to end.”

Daniel Feldman, at 23:09

He hoped to repeat it with more security products in the zero trust cloud native space.

OpenID Connect

Jon said a lot of successful movements rest on open source and open standards, and named OpenID Connect, the standard most likely behind “log in with Google” on other sites. He asked whether SPIFFE and OpenID Connect might merge.

“OpenID Connect is an amazing technology, and it meshes really well with SPIFFE.”

Daniel Feldman, at 24:29

OpenID Connect is a standard for creating JWTs so one service can authenticate to another, Daniel said. His example was AWS. You create an OpenID Connect provider for your company that serves something like a root certificate bundle over a secure HTTP endpoint. AWS keeps checking that endpoint, and a request to your AWS account with a JWT signed against that bundle is authenticated. You still need something to create the bundles and the JWTs. SPIRE already supports JWTs and serving OpenID Connect endpoints. That wasn’t SPIRE’s original purpose, he said.

“it’s a perfect application for SPIRE”

Daniel Feldman, at 25:39

The OpenID Foundation published OpenID Connect in February 2014 as an authentication layer on top of OAuth 2.0 (Wikipedia). The problem it solves here is public APIs, Daniel said, and the secret keys people use for them.

Who hasn’t accidentally checked an AWS secret key into a Git repo, he asked, public or private, or left one on a server the wrong people could reach?

Listen · Daniel Feldman on episode 3, from 25:54
About 20 seconds: Daniel on secret access keys, and why they hold back the cloud. The clip stops on its own. Read the full transcript.

“They’re probably the biggest barrier to cloud adoption.”

Daniel Feldman, at 26:12

Identities that SPIRE generates and serves over OpenID Connect can’t easily be stolen, he said, because any service using one has to have passed node attestation and workload attestation.

Three boxes joined by arrows. A workload with a JWT from SPIRE, your AWS account, which checks the JWT, and your OIDC provider, filled, where SPIRE serves the bundle. Below, two cards. Secret access key, dashed: gets checked into Git repos and left on servers the wrong people can reach, and works for whoever holds it. SPIRE identity, filled: the service using it has to have passed node attestation and workload attestation, so it can't easily be stolen. Daniel, of secret access tokens: "They're probably the biggest barrier to cloud adoption." Daniel, at 26:12
A cloud access key next to a SPIRE identity served over OpenID Connect, from Daniel's AWS example.

Static secrets

Jon wondered whether secret management might soon be a thing of the past. Daniel said he hoped for no more secrets. One competitor in the space is called Secretless, which he thinks is a great name, and he wishes he could use the term.

“because what we are trying to do here is get rid of static secrets.”

Daniel Feldman, at 27:12

No secrets, Jon said, means nothing to steal for an adversary who breaks into a cloud system. Daniel said the secret step holds back cloud adoption. Access tokens have to be managed securely for each cloud and each region, and a lot of companies can’t do that securely. A secret manager helps, but someone still has to set it up, manage it and grant access to it. That has held back regulated industries, security-conscious ones and the federal government, he said. Jon added that HSMs are painful to set up.

“secrets are like toxic waste. They just contaminate any infrastructure they touch.”

Daniel Feldman, at 28:29

On episode 92, Jasson Casey of Beyond Identity says the trouble with a secret is that it moves, and short lifetimes alone don’t fix that. SPIRE’s identities are short-lived and also tied to attestation of the node and the workload. We wrote up the inventory side in Who Holds Your Agent’s Keys? and The .env File Is Your First Security Program.

Two cards. Static secret, dashed: has to be stored, managed and granted for each cloud and each region, and anyone who copies it can use it. Attested identity, filled: issued to a service that passed node and workload attestation, and regenerated every 30 minutes, hour or two hours. Daniel: "Get rid of your secrets. That's my motto." Daniel, at 28:19 And: "secrets are like toxic waste. They just contaminate any infrastructure they touch." Daniel, at 28:29
A static secret and an attested identity, side by side.

Can we use blockchain?

Jon asked about decentralized approaches, with cryptocurrencies pushing that way. Daniel said it’s a question he gets all the time: can a distributed ledger validate the secrets as they’re generated? The problem is volume. Customers run thousands or tens of thousands of nodes generating secrets continuously, and no distributed ledger yet keeps up reliably. If the ledger fails to update, communication starts to fail.

“There is one baby step towards decentralized service identity, and this is the same thing that’s used on the public internet, which is certificate transparency.”

Daniel Feldman, at 30:15

As secrets are generated, they’re added to a Merkle tree, a hashed ledger of all the secrets generated, and each one carries a pointer into the tree. A couple of servers host the log, a couple of clients validate it, and you get a little decentralization. Every website certificate already goes into a certificate transparency log, so the performance is there. His team was working on it for SPIFFE. You still trust the logs, he said, but you trust that at least one hasn’t been compromised, where today you trust one source.

Listen · Daniel Feldman on episode 3, from 30:15
About 35 seconds: Daniel on certificate transparency as a first step. The clip stops on its own. Read the full transcript.

Certificate transparency is “an Internet security standard for monitoring and auditing the issuance of digital certificates.” Each log entry references the hash of an earlier one, which forms a Merkle tree (Wikipedia). The calculator below shows how many identities a fleet issues, the number a ledger would have to keep up with.

Four boxes joined by arrows: issue a certificate, a Merkle tree, filled, which is a hashed ledger, CT logs on a couple of servers, and clients that validate the logs. Below, two cards. A distributed ledger, dashed: can't yet keep up reliably with thousands or tens of thousands of nodes generating secrets. Certificate transparency: already used for every website certificate, and you trust that at least one log hasn't been compromised. Daniel: "There is one baby step towards decentralized service identity, and this is the same thing that's used on the public internet, which is certificate transparency." Daniel, at 30:15
Certificate transparency as Daniel described it, one step toward decentralized identity.

Operating in the red zone

Jon said the hard part with enterprises may be the sale. You have to meet SLAs and convince a company it still controls its network. Daniel agreed. His market, he said, is a conservative one: enterprise data center infrastructure. When he worked on backup software, a company might test a release for a year and a half or two years before putting it into production.

“We’re operating in the red zone.”

Daniel Feldman, at 32:42

If a bank goes down even for 10 minutes, it could cost hundreds of millions or billions of dollars. If SPIRE fails to issue an identity it should issue and a service crashes:

“that could bring down your bank, that could bring down your hospital.”

Daniel Feldman, at 32:48

Listen · Daniel Feldman on episode 3, from 32:23
About 30 seconds: Daniel on the red zone. The clip stops on its own. Read the full transcript.

Jon added that decentralized means depending on other people’s computers. Daniel mentioned Helium IoT, which does decentralized identity for IoT devices in a consumer space, where a failure is bad but won’t crash the airplane. The Helium Network was begun by Helium, Inc. in 2013 as a network of LoRa gateway hotspots (Wikipedia). There are a lot of opportunities in this space, Daniel said, and it’s still early days for service identity.

Three cards. A year and a half to two years: how long a company might test a backup release before production. 10 minutes: a bank down this long could lose hundreds of millions or even billions of dollars. One missed identity, filled: a service crashes, and that could bring down a bank or a hospital. Daniel: "We're operating in the red zone." Daniel, at 32:42
The enterprise market as Daniel described it.

Jetliners in the 1950s

Jon asked where service identity and security are going. Daniel said computer security in general is in its early days.

“If this were a time in aerospace engineering, we’d be in the 1950s”

Daniel Feldman, at 34:15

Listen · Daniel Feldman on episode 3, from 34:15
About 25 seconds: Daniel's aviation analogy. The clip stops on its own. Read the full transcript.

There were jetliners then, he said, and planes crashing all the time. Some organizations today fly a 737 exactly like the ones you’d see now. Others crash the plane constantly. The first commercial jet airliner, the de Havilland Comet, debuted in 1952. Within a year, three Comets were lost, two of them from metal fatigue in the airframe, which wasn’t fully understood at the time. Rival manufacturers learned from the Comet (Wikipedia).

Three cards. The 1950s: jetliners, and planes crashing all the time. Some organizations, filled: fly a 737 exactly like the ones you'd see today. Other organizations, dashed: crash the plane constantly. Below, a card on the de Havilland Comet: the first commercial jet airliner debuted in 1952, within a year three Comets were lost, two of them from metal fatigue in the airframe, and rival manufacturers learned from it. Daniel: "If this were a time in aerospace engineering, we'd be in the 1950s" Daniel, at 34:15
Daniel's analogy, with the Comet from Wikipedia.

What Let’s Encrypt got right

The most promising direction, Daniel said, is availability and usability. Let’s Encrypt didn’t invent anything new. It made certificates much easier to get, free where they had cost a few hundred dollars, and instant where they had taken a few weeks, and everyone adopted them. It did need a new protocol, ACME, to get certificates automatically.

“the primary innovation of Let’s Encrypt was usability and availability of the service”

Daniel Feldman, at 35:50

And cost, he added.

Listen · Daniel Feldman on episode 3, from 35:22
About 35 seconds: Daniel on what made Let's Encrypt work. The clip stops on its own. Read the full transcript.

Jon said the security technology to solve these problems exists. It has to be put together so it’s easy to consume, understand and use. Daniel said that’s the direction he wanted to work in. SPIFFE and SPIRE exist and are free, so they meet the cost test. They’re hard to set up: you have to figure out how to attest your nodes, how to attest your workloads, and how your workloads will use the workload API.

“the real frontier is going to be in making this automatic and easy to use and instant, and also free.”

Daniel Feldman, at 36:41

Let’s Encrypt launched on April 12, 2016, and is now the world’s largest certificate authority (Wikipedia). The IETF published ACME as RFC 8555 in March 2019 (Wikipedia).

Three filled cards. Cost: free, where certificates had cost a few hundred dollars. Availability: instant, where they had taken a few weeks. Usability: a new protocol, ACME, gets certificates automatically. Below, two cards. SPIFFE and SPIRE, cost, filled: free. SPIFFE and SPIRE, setup, dashed: hard, attest your nodes, attest your workloads, and decide how they'll use the workload API. Daniel: "the real frontier is going to be in making this automatic and easy to use and instant, and also free." Daniel, at 36:41
The three things Daniel credits Let's Encrypt with, and where SPIFFE and SPIRE stood.

A GUI isn’t the answer

Jon asked whether anything would help with the setup overhead, like a simplified GUI. Daniel said they do have a GUI.

“I don’t think a GUI is the answer.”

Daniel Feldman, at 37:21

Let’s Encrypt succeeded because it took little effort, he said, and did something that had been difficult, really well. The company he would watch is Smallstep, which takes the Let’s Encrypt approach to service identity inside companies and focuses on usability. Smallstep focuses on small and medium businesses, where SPIFFE and SPIRE focus on large ones, and the two answer some security questions differently. He pointed to Smallstep’s documentation and ease of configuration.

Listen · Daniel Feldman on episode 3, from 37:38
About 35 seconds: Daniel on Smallstep. The clip stops on its own. Read the full transcript.

Maybe they can be your next guest

Jon gave a shout-out to a friendly competitor. Daniel added that Smallstep has the best content marketing of any security company he has seen, with blog posts near the top of Hacker News and Lobsters and all over Twitter. Jon wondered whether they have a podcast.

“Maybe they can be your next guest.”

Daniel Feldman, at 38:47

Five months later, on November 15, 2021, episode 10 featured Michael Malone, Smallstep’s founder and CEO, on certificates, identity, X.509 and authentication. Smallstep’s site now calls it a device identity platform, with a heading introducing ACME Device Attestation (Smallstep).

On-prem and in person

Daniel thanked Jon, and said he had built SPIFFE and SPIRE along with “a big team of brilliant people at many different companies.” SPIFFE and SPIRE change how large companies give their services identity, he said, across clouds and between cloud and on-prem, with uniformly generated certificates and JWTs every service in the enterprise can use.

“If you’d like to chat with me, I’m always on the SPIFFE Slack channel”

Daniel Feldman, at 40:32

Listen · Daniel Feldman on episode 3, from 40:32
About 20 seconds: Daniel on the SPIFFE Slack. The clip stops on its own. Read the full transcript.

The Slack is open, he said, and you sign up from spiffe.io, which links to it (SPIFFE Slack). Jon spelled SPIFFE for the listeners: S-P-I-F-F-E. Daniel invited anyone at KubeCon US in the fall to grab a beer, at what he hoped would be the first on-prem conference many people had attended in a few years. Jon added that it would be in person, too.

KubeCon + CloudNativeCon North America 2021 ran October 11 to 15 in Los Angeles and online, the first in-person event after three virtual-only ones (CNCF). The foundation’s report counts 3,531 in-person and 19,633 virtual registrants (CNCF).

What happened after the tape

SPIRE 1.0 and a KubeCon keynote. Daniel’s LinkedIn description of his HPE role includes “During my time we released SPIRE 1.0, keynoted Kubecon.” He held the role from February 2020 to April 2023 (LinkedIn).

Zero trust in Minneapolis. At devopsdays Minneapolis 2021, he gave a talk called “Zero Trust: Security Without Boundaries.” The speaker page calls him “a member of the CNCF’s SPIFFE project for zero trust tooling” (devopsdays).

Graduation in September 2022. SPIFFE and SPIRE graduated from the Cloud Native Computing Foundation on September 20, 2022, joining 16 other graduated projects. The announcement names Anthem, GitHub, Netflix, Niantic, Pinterest and Uber as end users, and says SPIRE secures hundreds of thousands of workloads within ByteDance (CNCF).

A free book on SPIFFE. “Solving the Bottom Turtle,” the SPIFFE and SPIRE book, lists Daniel among its twelve authors. The PDF is free on the SPIFFE site (SPIFFE).

Sentima, Qusaic and WIMSE. Daniel co-founded Sentima, Inc. in January 2023 and consulted through his own company, Qusaic, in 2024. Of Sentima, his LinkedIn says “Some work made it into conference talks and IETF standards.” At KubeCon North America on November 13, 2024, he presented a poster as founder of Qusaic on what’s happening with SPIFFE and WIMSE, an IETF effort built on SPIFFE that adds a token format for identity across several hops (KubeCon schedule).

A stealth Fortune 500 company. Since December 2024, his LinkedIn lists him as a principal engineer at a company it calls a stealth Fortune 500 company (LinkedIn).

SPIFFE for AI agents. In February 2026, a NIST NCCoE concept paper on software and AI agent identity named SPIFFE and SPIRE as “one way in which agent workloads could be identified and authenticated” (NIST NCCoE). Google Cloud’s Agent Identity gives each agent a SPIFFE ID and an X.509 certificate that’s valid for 24 hours and renewed for you (Google Cloud). Our post Your AI Agent Said No. Your API Key Said Yes. (October 12, 2026) points back to this episode for it.

SPIFFE inside Flux 2.10. On October 26, 2026, Flux v2.10.0 added SPIFFE mutual TLS between its controllers (GitHub). Daniel shared the release post on LinkedIn.

A timeline. May 4, 2021: KubeCon Europe, Daniel's lightning talk on SPIRE. June 3, 2021, filled: episode 3, Daniel on this show. October 2021: Los Angeles, KubeCon in person and online. September 20, 2022, filled: graduation, SPIFFE and SPIRE graduate from the CNCF. November 13, 2024: SPIFFE and WIMSE, a KubeCon poster on the two projects. February 2026, filled: NIST, SPIFFE and SPIRE named as one way to identify agent workloads. October 26, 2026: Flux 2.10, SPIFFE mutual TLS between its controllers. November 2026, filled: Agent Identity, a SPIFFE ID for each agent on Google Cloud.
From the KubeCon talk to agent identity, from LinkedIn, the CNCF, NIST, Google Cloud and GitHub.

More on this show. Taher Elgamal, known as the father of SSL, explains why SSL required a certificate from the server and only offered one to the client, on episode 61. Mutual TLS is that second certificate. Eric Olden of Strata Identity names SPIFFE among the standards that exist today for putting AI agents into production, on episode 81.

Did you catch it? A seven-question quiz

Seven questions from the episode. Each answer links the moment in the transcript.

Quiz · seven questions

Did you catch it?

Pick an answer to see whether you caught it.

  1. Which attack does Daniel name as the start of service identity at Google?

    b. "the attack, which is called Operation Aurora." Transcript, 3:23.

  2. What two kinds of identity does SPIFFE give a service?

    a. "I mean an X.509 certificate that lets you establish mutual TLS authentication, or a JWT token." Transcript, 6:08.

  3. What do service meshes leave out, by Daniel's account?

    c. "but it never provides the workload API so you can access your own identity." Transcript, 7:58.

  4. How does a new SPIRE agent in the cloud prove itself to the server?

    b. "if you're running in the cloud, you have an instance identity document." Transcript, 9:51.

  5. How often does SPIRE regenerate certificates, by Daniel's account?

    a. "So every 30 minutes or hour or two hours, we're regenerating these certificates" Transcript, 11:01.

  6. What does Daniel compare secrets to?

    c. "secrets are like toxic waste." Transcript, 28:29.

  7. What does Daniel call the main innovation of Let's Encrypt?

    b. "the primary innovation of Let's Encrypt was usability and availability of the service" Daniel adds cost. Transcript, 35:50.

Can your services prove who they are?

Eight questions on how your services identify themselves to each other and to your clouds, from the episode. Each tip quotes the tape or paraphrases it, and links its section.

Scorecard · eight questions

Can your services prove who they are?

Answer for your production environment, the services that talk to each other and to your cloud APIs. If two answers fit, pick the lower one.

  1. Do you know every static secret your services hold?

    • No, we haven't listed them
    • Most of them, in a secrets manager
    • All of them, each with an owner and a plan to retire it

    "secrets are like toxic waste. They just contaminate any infrastructure they touch." See Static secrets.

  2. How do your services prove who they are to each other?

    • They don't, or they share a key
    • A token for each service, set by hand
    • Mutual TLS or signed tokens, with a unique identity for each service

    "I mean an X.509 certificate that lets you establish mutual TLS authentication, or a JWT token." See One API for every service.

  3. How long does a service credential last?

    • Until someone rotates it
    • Weeks or months
    • Hours, and it renews itself

    "So every 30 minutes or hour or two hours, we're regenerating these certificates" See How SPIRE knows a workload.

  4. How does a workload get its credential?

    • A file or environment variable deployed with it
    • It fetches one with a long-lived key
    • An API checks what the workload is, then hands it an identity

    "And that's why you need an API, so it can be continuously pushed instead of having just a file that's deployed alongside the service." See How SPIRE knows a workload.

  5. Would a stolen service credential work somewhere else?

    • Yes, anywhere
    • Only from inside our network
    • No, it's tied to node and workload attestation

    Daniel says a service using a SPIRE identity has to have passed node attestation and workload attestation. See OpenID Connect.

  6. Do your clouds, regions and on-prem systems share one identity plane?

    • No, each has its own way
    • Some of them do
    • Yes, one issuer for all of them

    "Even if you're all in one cloud, you still need some kind of identity plane for everything to talk to each other." See An identity plane, even in one cloud.

  7. How do your workloads call cloud APIs?

    • With long-lived access keys
    • With access keys in a secrets manager, rotated
    • With short-lived tokens through OpenID Connect federation

    Of secret access keys: "They're probably the biggest barrier to cloud adoption." See OpenID Connect.

  8. Who can mint identities for your services?

    • We don't know
    • A few admins, with keys on a server
    • One issuer, with protected signing keys and a log of what it issues

    "You do have to trust whoever is running the SPIRE server." See Trusting your cloud provider.

Shared secrets

Your services prove who they are with secrets they carry around. Start by listing every static secret, with an owner for each, and pick one service to give a real identity.

Some service identity

Some services have identities. Next, shorten credential lifetimes, move cloud API calls to short-lived tokens, and put clouds and on-prem under one issuer.

Nothing to steal

Services get short-lived identities tied to where they run. Keep the issuer's signing keys protected, log what it issues, and retire the last static secrets.

How many identities a day?

Daniel says SPIRE regenerates certificates and JWTs every 30 minutes, hour or two hours, and that no distributed ledger yet keeps up with that volume reliably. This calculator shows the volume for your fleet.

Calculator

How many identities a day?

Three numbers: how many workloads you run, how often each one gets fresh credentials, and how many credentials it gets each time.

96,000credentials issued a day
4,000an hour
1.1a second, around the clock

With 2,000 workloads getting 2 credentials every 1.0 hours, your fleet issues 96,000 credentials a day, 4,000 an hour, or about 1.1 a second. Each one is a record a ledger would have to keep up with.

The renewal times come from the tape: every 30 minutes, hour or two hours. The 2 is one X.509 certificate and one JWT. The 2,000 workloads are a placeholder: put in your own count.

From Operation Aurora to agent identity

Identity standards, certificates on the web, SPIFFE and SPIRE, Daniel’s path, and the episodes on this site that pick up the thread. Filter by topic.

Timeline

From Operation Aurora to agent identity

  1. ALTS begins

    Google starts developing Application Layer Transport Security, which authenticates by identity (Google Cloud).

  2. Operation Aurora

    Google discloses the attacks in a blog post. They ran from mid-2009 through December 2009 (Wikipedia, on this page).

  3. The zero trust model

    Analyst John Kindervag of Forrester Research uses the term (Wikipedia).

  4. OpenID Connect

    The OpenID Foundation publishes it, an authentication layer on top of OAuth 2.0 (Wikipedia).

  5. Veritas

    Daniel joins the CTO office at Veritas as a principal software engineer (LinkedIn, on this page).

  6. JWT

    JSON Web Token becomes RFC 7519. The suggested pronunciation is "jot" (Wikipedia).

  7. The CNCF

    The Cloud Native Computing Foundation is founded, as a subsidiary of the Linux Foundation (Wikipedia).

  8. Let's Encrypt

    The free certificate authority launches after a public beta (Wikipedia, on this page).

  9. SPIFFE at GlueCon

    Joe Beda, a co-founder of Kubernetes, first proposes SPIFFE, by DevOps.com's account. Daniel dates the white paper to 2017 (DevOps.com).

  10. Scytale

    Sunil James, Emiliano Berenbaum and Andrew Jessup found the company (HPE).

  11. CNCF Sandbox

    SPIFFE and SPIRE enter the foundation's Sandbox (CNCF).

  12. Scytale.io

    Daniel joins as a principal software engineer, an early employee (LinkedIn, on this page).

  13. ACME

    The protocol behind Let's Encrypt is published as RFC 8555 (Wikipedia).

  14. HPE acquires Scytale

    HPE announces the deal and its commitment to SPIFFE and SPIRE (HPE, on this page).

  15. CNCF Incubator

    SPIFFE and SPIRE move up to the Incubator (CNCF).

  16. KubeCon Europe

    Daniel's lightning talk on bridging cloud native and traditional workloads with SPIRE (HPE Developer).

  17. Episode 3

    Daniel on the show (Podbean, transcript).

  18. KubeCon in Los Angeles

    Five days in person and online, after three virtual-only events (CNCF, on this page).

  19. Episode 10

    Michael Malone of Smallstep on certificates, identity, X.509 and authentication (episode page).

  20. Graduation

    SPIFFE and SPIRE graduate from the CNCF (CNCF).

  21. Sentima

    Daniel co-founds Sentima, Inc. (LinkedIn).

  22. SPIFFE and WIMSE

    A KubeCon North America poster on the two identity standards projects (KubeCon schedule).

  23. A stealth Fortune 500 company

    Daniel's LinkedIn lists him as a principal engineer there (LinkedIn).

  24. NIST on agent identity

    An NCCoE concept paper names SPIFFE and SPIRE as one way to identify agent workloads (NIST NCCoE).

  25. Your API key said yes

    Our post on agent credentials points back to this episode (post).

  26. Flux 2.10

    SPIFFE mutual TLS between Flux's controllers (GitHub).

  27. A SPIFFE ID for each agent

    As of November 2026, Google Cloud's Agent Identity gives each agent a SPIFFE ID and X.509 certificates valid for 24 hours (Google Cloud, on this page).

What to do this week

Five things, in the order of the episode.

  1. List every static secret. Cloud access keys, API keys, database passwords and tokens in CI all count. Our 30-minute credential inventory has a template, and you can take the scorecard with your team.
  2. Give one cluster real identities. Try SPIRE on one Kubernetes cluster, starting from the SPIFFE site and the free book, and ask questions in the SPIFFE Slack.
  3. Replace one cloud access key. Pick a workload that calls a cloud API with a long-lived key, and move it to short-lived tokens through OpenID Connect federation, as in Daniel’s AWS example in OpenID Connect.
  4. Count what you’d issue. Put your workloads and renewal time in the calculator.
  5. Get a second pair of eyes. Product Security ships the security features enterprise buyers ask for, in your codebase, and Penetration Testing shows what an attacker can reach with a stolen key. If you want to talk it through, book 15 minutes with us.

Key takeaways

  1. Give every service its own identity

    Daniel traces service identity to Google's response to Operation Aurora, around 2010: a unique, centrally managed identity for every service, traced back to the cluster, hardware and data center it runs on.

  2. A certificate and a JWT

    SPIFFE gives a service an X.509 certificate for mutual TLS and a JWT that can carry metadata and travel with the user's JWT, so every service can check a request.

  3. The workload API is the missing piece

    Service meshes like Istio use SPIFFE identities on both ends of a mutual TLS tunnel, but they don't let a service fetch its own identity. In 2021 the only way to get the workload API was to install SPIRE.

  4. Attest the node, then the workload

    A SPIRE agent proves itself with the cloud provider's signed instance identity document. It then checks each service's process ID and Kubernetes service account before pushing it an identity over a Unix domain socket.

  5. Push identities through an API

    Identities are regenerated every 30 minutes, hour or two hours. That only works if services fetch them from an API, Daniel said. A file deployed with the service can't keep up.

  6. One identity plane, even in one cloud

    AWS regions share nothing, RDS runs outside Kubernetes, and on-prem systems don't go away. One issuer for all of them lets every service talk to every other.

  7. Retire static secrets

    Daniel calls secret access keys probably the biggest barrier to cloud adoption. SPIRE can serve identities over OpenID Connect, so a workload can call AWS with a JWT.

  8. Enterprises operate in the red zone

    Enterprises may test a release for a year and a half or two years. If a missing identity crashes a service, it could bring down a bank or a hospital.

  9. Make it easy, like Let's Encrypt

    Let's Encrypt won on usability, availability and cost. SPIFFE and SPIRE are free, and Daniel saw the next frontier in making them automatic, easy to use and instant.

Chapters

Tap a chapter to play from there.

Pull quotes

“service identity, which is a completely different beast, because you can't ask a service really to just save a password.”

Jon McLachlan ·

“That was really the genesis of all this technology.”

Daniel Feldman ·

“So the idea that they came up with was to uniquely identify every service in their infrastructure”

Daniel Feldman ·

“So the initial document for SPIFFE was actually written by Joe Beda from Google”

Daniel Feldman ·

“I mean an X.509 certificate that lets you establish mutual TLS authentication, or a JWT token.”

Daniel Feldman ·

“What ended up happening is there's the SPIRE implementation, which is the only real complete implementation.”

Daniel Feldman ·

“The other parts of SPIFFE have actually been widely adopted.”

Daniel Feldman ·

“but it never provides the workload API so you can access your own identity.”

Daniel Feldman ·

“So it's super open source.”

Daniel Feldman ·

“if you're running in the cloud, you have an instance identity document.”

Daniel Feldman ·

“So every 30 minutes or hour or two hours, we're regenerating these certificates”

Daniel Feldman ·

“And that's why you need an API, so it can be continuously pushed instead of having just a file that's deployed alongside the service.”

Daniel Feldman ·

“you probably don't need this, because you already have those instance identities and you can just use them.”

Daniel Feldman ·

“Even if you're all in one cloud, you still need some kind of identity plane for everything to talk to each other.”

Daniel Feldman ·

“Zero trust is a buzzword. It's a marketing term.”

Daniel Feldman ·

“So as a consequence, I just try not to use the term zero trust.”

Daniel Feldman ·

“You do have to trust whoever is running the SPIRE server.”

Daniel Feldman ·

“Tens of thousands of companies got that update, and it mostly went okay.”

Daniel Feldman ·

“if you release something, it needs to be nearly perfect. You can't just experiment.”

Daniel Feldman ·

“They're probably the biggest barrier to cloud adoption.”

Daniel Feldman ·

“Get rid of your secrets. That's my motto.”

Daniel Feldman ·

“secrets are like toxic waste. They just contaminate any infrastructure they touch.”

Daniel Feldman ·

“We're operating in the red zone.”

Daniel Feldman ·

“If this were a time in aerospace engineering, we'd be in the 1950s”

Daniel Feldman ·

“the real frontier is going to be in making this automatic and easy to use and instant, and also free.”

Daniel Feldman ·

“I don't think a GUI is the answer.”

Daniel Feldman ·

“Maybe they can be your next guest.”

Daniel Feldman ·

About the guest

Daniel Feldman, Cloud Security Architect, HPE

Daniel Feldman worked on SPIFFE and SPIRE at Scytale.io from May 2018, and at HPE, which acquired Scytale in February 2020, until April 2023, as a SPIFFE product technologist. Before that he was a principal software engineer in the CTO office at Veritas, where he worked on mandatory mutual TLS for its backup product. He co-founded Sentima, Inc. in January 2023, consulted through his own company, Qusaic, in 2024, and since December 2024 his LinkedIn lists him as a principal engineer at a stealth Fortune 500 company. He is one of the authors of Solving the Bottom Turtle, the SPIFFE and SPIRE book. He joined Jon McLachlan on episode 3, published June 3, 2021.

About the host

Jon McLachlan is co-founder of YSecurity, the on-demand cybersecurity team for startups, and of Cyberbase.ai. The Security Podcast of Silicon Valley is hosted by Jon McLachlan and Sasha Sinkevich. Jon McLachlan on LinkedIn ↗

Context and sources

  • Episode 3 on Podbean, June 3, 2021, with show notes on Daniel's path from Veritas to Scytale and HPE, SPIFFE and SPIRE, and the future of cloud security. Source ↗
  • Daniel Feldman's LinkedIn profile. Source ↗
  • Daniel Feldman's experience on LinkedIn: Veritas from January 2015 to May 2018, Scytale.io from May 2018 to February 2020, HPE from February 2020 to April 2023, Sentima from January 2023 to January 2025, Qusaic in 2024, and a stealth Fortune 500 company since December 2024. Source ↗
  • HPE newsroom, HPE acquires Scytale to advance open, secure, edge to cloud strategy, by Dave Husak, February 3, 2020: Scytale was founded in 2017, and its co-founders were Sunil James, Emiliano Berenbaum and Andrew Jessup. Source ↗
  • HPE Developer, KubeCon | CloudNativeCon Europe, Be involved via this virtual opportunity, April 15, 2021: Daniel's lightning talk on SPIRE, Tuesday, May 4, 2021. Source ↗
  • CNCF, SPIFFE and SPIRE Projects Graduate from Cloud Native Computing Foundation Incubator, September 20, 2022: Sandbox in 2018, Incubator in 2020, and end users including Anthem, GitHub, Netflix, Niantic, Pinterest and Uber. Source ↗
  • CNCF, the schedule for KubeCon + CloudNativeCon North America 2021, October 11 to 15 in Los Angeles and online, after three virtual-only events, August 4, 2021. Source ↗
  • CNCF, KubeCon + CloudNativeCon North America 2021 report: 3,531 in-person and 19,633 virtual registrants. Source ↗
  • devopsdays Minneapolis 2021, Daniel Feldman's speaker page and his talk, Zero Trust: Security Without Boundaries. Source ↗
  • KubeCon North America 2024, poster session, What's happening with SPIFFE and WIMSE, Daniel Feldman, Qusaic, November 13, 2024. Source ↗
  • SPIFFE, Solving the Bottom Turtle, the SPIFFE and SPIRE book, free as a PDF. Source ↗
  • SPIFFE's website, read in November 2026: a uniform identity control plane across heterogeneous infrastructure, and 23 logos under Used By. Source ↗
  • SPIRE on GitHub. Source ↗
  • DevOps.com, Introduction to SPIFFE/SPIRE: Joe Beda first proposed SPIFFE at GlueCon in 2016. Source ↗
  • Google Cloud, Application Layer Transport Security: ALTS began development at Google in 2007 and authenticates primarily by identity. Source ↗
  • Google Cloud, Agent Identity overview, updated November 4, 2026: a SPIFFE ID for each agent and X.509 certificates valid for 24 hours. Source ↗
  • NIST NCCoE, Accelerating the Adoption of Software and AI Agent Identity and Authorization, concept paper, February 2026: SPIFFE and SPIRE as one way to identify and authenticate agent workloads. Source ↗
  • Flux v2.10.0 on GitHub, October 26, 2026: SPIFFE mutual TLS for communication between Flux's controllers. Source ↗
  • Smallstep's website, read in November 2026: a device identity platform, with ACME Device Attestation. Source ↗
  • Wikipedia, Scytale: a tool used for a transposition cipher, a cylinder with a strip of parchment wound around it. Source ↗
  • Wikipedia, Kubernetes: originally designed by Google, with the trademark held by the Cloud Native Computing Foundation. Source ↗
  • Wikipedia, Operation Aurora: disclosed by Google on January 12, 2010, with attacks from mid-2009 through December 2009. Source ↗
  • Wikipedia, X.509: the ITU standard for the format of public key certificates. Source ↗
  • Wikipedia, Mutual authentication: two parties authenticate each other at the same time. Source ↗
  • Wikipedia, JSON Web Token: RFC 7519, May 2015, with the suggested pronunciation "jot". Source ↗
  • Wikipedia, Cloud Native Computing Foundation: a subsidiary of the Linux Foundation, founded in 2015. Source ↗
  • Wikipedia, Unix domain socket: an endpoint for exchanging data between processes on the same operating system. Source ↗
  • Wikipedia, Zero trust architecture: users and devices aren't trusted by default, and John Kindervag of Forrester used the term zero trust model in 2010. Source ↗
  • Wikipedia, Software Guard Extensions: Intel instructions that let code define protected private regions of memory, called enclaves. Source ↗
  • Wikipedia, Veritas Technologies: the first commercial journaling file system, VxFS, a merger with Symantec in 2004, and owners the Carlyle Group and Cohesity. Source ↗
  • Wikipedia, OpenID: OpenID Connect, published in February 2014 as an authentication layer on top of OAuth 2.0. Source ↗
  • Wikipedia, Certificate Transparency: a standard for monitoring and auditing the issuance of digital certificates, with log entries forming a Merkle tree. Source ↗
  • Wikipedia, Helium Network: begun by Helium, Inc. in 2013 as a network of LoRa gateway hotspots for IoT devices. Source ↗
  • Wikipedia, de Havilland Comet: the first commercial jet airliner, its 1952 debut, and the losses traced to metal fatigue. Source ↗
  • Wikipedia, Let's Encrypt: a free certificate authority that launched on April 12, 2016. Source ↗
  • Wikipedia, Automatic Certificate Management Environment: published as RFC 8555 in March 2019. Source ↗
  • Wikipedia, Hacker News: a social news website run by Y Combinator. Source ↗

Transcript

Automatic transcription. Jon McLachlan hosts this episode with Daniel Feldman, then a cloud security architect at HPE and before that an early employee of Scytale. There is no diarization on the tape, so speaker labels were assigned from the content and checked against reference recordings of each voice from this episode and by pitch, and a few short lines may sit with the wrong speaker. Names and product names were normalized where the recognizer misheard them (Jon McLachlan, Scytale, SPIFFE, SPIRE, KubeCon, Istio, Smallstep, Secretless, Let's Encrypt, OpenID Connect, Helium IoT, Hacker News, Lobsters), as were a few terms (X.509, mutual TLS, on-prem, multi-cloud). Daniel says JWT as "jot", and the transcript writes JWT. Words in [brackets] are best guesses where the audio is unclear, and [unclear] marks a word we couldn't make out. Answers are transcribed as spoken, with repeated words and false starts trimmed. Short backchannels such as "yeah" and "right" are left out where they overlap the other speaker.

Read the full transcript 7,345 words

Jon McLachlan

Welcome to the Security Podcast of Silicon Valley. I'm your host, Jon McLachlan, and I'm here with a very special guest, Daniel Feldman, who is the cloud security architect at HPE. And formerly, he was at, how do you pronounce it?

Daniel Feldman

It's called Scytale.

Jon McLachlan

Scytale. Scytale.

Daniel Feldman

Yes. If you Google the pronunciation for that word, you will get a different pronunciation, but that's how we pronounce the company.

Jon McLachlan

So Scytale.io, recently acquired by HPE. So I'm sure that was a very exciting adventure, to be part of an acquisition.

Daniel Feldman

It's been a wild ride over the last couple of years to build this product and then get some adoption and then get acquired and then get a lot more adoption all of a sudden.

Jon McLachlan

Well, I'm super happy for you, and thank you again for joining. Just to put this into context, you were recently speaking at KubeCon Europe, were you not?

Daniel Feldman

Yes. So I did a lightning talk at KubeCon Europe, and then I've been doing a number of talks and workshops [in] the HPE booth at KubeCon Europe. KubeCon, if you're not familiar, is the big conference for cloud native technology. So Kubernetes and then everything that surrounds Kubernetes, like Istio, Prometheus, Jaeger, Thanos, all these enormous projects that have a lot of momentum building cloud native technology. Every cloud provider does presentations there. There are a thousand different startups showing off their new ideas. Of course, most of them won't exist next year. That's the dark joke of KubeCon. And it's been a huge privilege to participate in, I think, every KubeCon for the last three years. It's twice a year, so that's six KubeCons, either doing presentations or staffing our booth or just attending and having a lot of fun meeting people in the community, learning about this technology.

Jon McLachlan

Well, thank you for being on our show and the Security Podcast in Silicon Valley. We are asking the question, what is service identity management and authentication, and where is it going? And I know you've been knee-deep in this problem for quite some time, Daniel, so very interested to hear your perspective. Let's start with the basics. So when we're talking about identity, it's the answer to the question, who are you? User identity, and of course, this is authentication, logging in, all of the things that we as humans do to prove who we are. And then there's service identity, which is a completely different beast, because you can't ask a service really to just save a password. But service identity, it's something every engineer has struggled with that's ever built a microservice architecture or worked with a microservice architecture. The basic question is, what is service identity, when you just cut right down to it?

Daniel Feldman

So, first of all, I'd like to start with a bit of a history. This is some research that I've been doing into the history of service identity as part of the talks I've done at KubeCon and other conferences. Back around 2010, there was an enormous attack against Google infrastructure. That was really the genesis of all this technology. There were advanced persistent threats, we think they were maybe Chinese spies, but it's very hard to prove, that were able to capture enormous amounts of data from Google data centers. And Google, of course, is a very smart company, employs a lot of very smart people. What they decided to do was create a service identity technology for every service at Google. And you can Google, you can do an internet search for the attack, which is called Operation Aurora. And then you can also do a Bing search or a Google search for the technology they developed, which is called LOAS, which is apparently a huge part of the infrastructure at Google. I personally have never worked at Google, and I certainly wasn't there in 2010, but a lot of the key people who developed this technology were involved in that. So the idea that they came up with was to uniquely identify every service in their infrastructure, and not just have every service claim its own identity, but be able to trace that identity back to the cluster they're running on, the hardware they're running on, and the data center they're running on, and then have these centrally managed identities that are granted to each service, such as an X.509 certificate or a JWT token. And if you have that X.509 certificate, then any connection or request that that service makes can be encrypted just using TLS, mutual TLS encryption. Or if it's a JWT token, the JWT token can contain a bunch of additional metadata that allows the service's request to be authenticated. And then you can combine that JWT token for the service with a JWT token for the user, and then any request can have its authentication and authorization checked by all the other services in the microservices architecture. So when you're looking at a company like Google or Netflix or Facebook that may have tens of thousands of services, they need this technology in order to be able to make sure that every request is authenticated and traceable to an originating service and an originating user. And of course, those companies have very large budgets and a lot of very smart people working for them, so they were able to implement this technology themselves. And they did. Each one of those companies has teams working on service identity. Then what happened in around 2017, when Scytale was founded, was several people who were alumni of those companies got together and decided to make an open source service identity layer. And that was the genesis of SPIFFE and SPIRE. So the initial document for SPIFFE was actually written by Joe Beda from Google, and he wrote a white paper proposing the idea for SPIFFE. It's still on our website. It's a little bit outdated now because it dates back to 2017. SPIFFE is an open standard for implementing service identity. So it provides an API that allows any service to retrieve its own identity, and then also trust bundles that allow it to validate identity from other services. And what do I mean specifically when I say identity? I mean an X.509 certificate that lets you establish mutual TLS authentication, or a JWT token. You get both of them. So the reason it's standardized, of course, is you don't want to be writing your services to just acquire identity in, like, 12 different ways. You want to be able to have one API that each service can implement as a client and fetch its own service identity. And then you could have multiple implementations of that standard. So the initial idea would be there would be a whole bunch of different implementations of SPIFFE. What ended up happening is there's the SPIRE implementation, which is the only real complete implementation. And then a number of other projects have just taken the SPIRE open source code and incorporated it into their existing software. And more of that is going on as we speak. There are more projects that are just wholesale adopting the SPIRE project as a component. Does that make sense so far, Jon?

Jon McLachlan

Yeah, that makes perfect sense. And so, was it really a shock that no one else really picked up the standard, SPIFFE, and ran with it in their own implementation? Or was there a push to sort of open that up and get developer interest in writing those?

Daniel Feldman

Well, honestly, the challenge there has really been around the workload API. The other parts of SPIFFE have actually been widely adopted. So, for example, almost every service mesh that's available uses SPIFFE-compatible identities. The issue is they aren't real SPIFFE implementations, because they don't provide the API. Instead, when you initiate a connection, for example, in Istio, it's automatically creating a mutual TLS tunnel for communication with your service, and it uses a SPIFFE identity on both ends, but it never provides the workload API so you can access your own identity.

Jon McLachlan

Oh, I see. [It did] get adoption. Very specific pieces of it got adopted, very wide adoption.

Daniel Feldman

Yes, I would agree with that. Specific parts of SPIFFE have been very widely adopted. What hasn't been widely adopted yet, what we're working on, is getting real adoption of the concept of this workload API that allows you to, as a service, fetch your own identity and then use it for establishing authentication with other services directly. And we are working on that. Right now, the only way to do that is to install SPIRE yourself, though.

Jon McLachlan

And I love that SPIRE was the full implementation and is also open source.

Daniel Feldman

Yes, it's not only open source, but the code is owned by the Cloud Native Computing Foundation. So it's super open source. It's not open source owned by one company. It's open source that anyone can contribute to. Anyone can join the meetings. Anyone can join the steering committee. You have to be voted on to the steering committee. Anyone can have an official role in the project.

Jon McLachlan

That sounds like a great opportunity for anyone that wants to get their hands dirty. So how exactly does SPIRE identify a service?

Daniel Feldman

So I can give you a quick walkthrough of how the SPIRE server works. So, first of all, you have a SPIRE server, which is running centrally, and that contains all your signing keys, both for JWT tokens and for X.509 certificates. And then there's a SPIRE agent that's running in each node, each Kubernetes node or each virtual machine or each bare metal box. The SPIRE server is continuously generating these X.509 certificates and JWT tokens and then pushing the right one down to the right SPIRE agent. Now, when you start up a new SPIRE agent, it has to authenticate itself to the SPIRE server. So it has to effectively log into the SPIRE server and prove its identity in order to get these certificates and [JWT] tokens. How does it prove its identity? Well, if you're running in the cloud, you have an instance identity document. So Amazon or Google or Azure all provide an instance identity document that's a signed document from the cloud provider. You can download that within the node and then provide that to the SPIRE server, and then it can verify that signature, verify that that SPIRE agent is allowed to get certain identities, and then pass them down to the SPIRE agent. Then, once you start up individual services, they connect to the SPIRE agent using a Unix domain socket, which is a local network socket. The SPIRE agent validates the identity of the service that's connecting to it. So, for example, if you're supposed to give a certain identity to a service that's running in a particular Kubernetes service account, the SPIRE agent, first of all, when a connection is opened, it can verify the process ID that's connecting to it, then contact the Kubernetes services and verify that that process ID has a particular service account, and then push the right service identity to the right service. All of this is continuously changing. It's dynamic. So you can constantly change your policies for granting identities to particular services, and then they're constantly refreshing. So every 30 minutes or hour or two hours, we're regenerating these certificates, regenerating the JWT tokens and pushing them down to all the services. And that's why you need an API, so it can be continuously pushed instead of having just a file that's deployed alongside the service.

Jon McLachlan

That makes perfect sense, Daniel. Thank you so much. A very impressive identity layer built on top of all of this really great infrastructure that we all have access to when we're using cloud service providers, but it is tricky to use effectively to solve identity problems. But here's a layer that will just piggyback on it and do it for you.

Daniel Feldman

Absolutely. And if you're running everything in AWS on AWS instances, not in Kubernetes, you probably don't need this, because you already have those instance identities and you can just use them. What SPIRE gives you is an identity layer that works in Kubernetes. It works on AWS instances. It works on GCP instances. It works on Azure instances. It works on-prem. And those identities are all generated by the same server, and they're all compatible with each other. And when you talk about large organizations, of course, they have heterogeneous infrastructure. They have a lot of stuff going on, and they want it all to be compatible, because you want your service that's running in Kubernetes on AWS to be able to talk to your database that's running on an on-prem server. And SPIRE enables that.

Jon McLachlan

I was just going to mention that by abstracting out your service authentication layer away from your cloud service provider, now you can host and run services across different cloud service providers, the same service across different cloud service providers, and not have to worry about re-implementing authentication mechanisms that were tightly coupled to one cloud service provider or another, right?

Daniel Feldman

Exactly. And it's not just multi-cloud, because some large companies are multi-cloud, but a lot of smaller companies are able to standardize entirely on one cloud. But still, they have multiple AWS regions, and each AWS region is effectively a different cloud. They don't really share anything. And still, they're going to maybe occasionally have an on-prem resource that they have to talk to. They're going to have some stuff that's in Kubernetes and then some stuff that's not in Kubernetes, like an RDS database or some other managed SaaS service that doesn't run inside Kubernetes and is impossible to run inside Kubernetes. Even if you're all in one cloud, you still need some kind of identity plane for everything to talk to each other.

Jon McLachlan

So the cool new thing in the security world is this zero trust stuff. Is SPIRE zero trust? Would you consider it zero trust?

Daniel Feldman

That is a great question, Jon. Zero trust is a buzzword. It's a marketing term. So the initial idea of zero trust was to create networks where there was no perimeter, where every service and every user has its own unique service identity or user identity, and every connection, every request is validated and verified based on that identity. Unfortunately, what's happened is that term has been a little bit subsumed into marketing, and now you'll see it used in all kinds of different ways. So there are VPN companies that claim their technology is zero trust. There are monitoring companies that monitor all your infrastructure and make sure that only the right services are connecting to other services, and they claim to be implementing zero trust. There's even a company that claims it has zero data security, which was a new term for me. But what that means is they're actually taking vital data, like credit card numbers or social security numbers, and storing it somewhere else, and they're calling themselves zero trust.

Jon McLachlan

I see.

Daniel Feldman

So the term, unfortunately, kind of like cloud, kind of like SaaS, kind of like every hype term in technology, has a little bit blown up. And because it's not trademarked, everyone uses it to mean slightly different things. So as a consequence, I just try not to use the term zero trust.

Jon McLachlan

Sure. Perhaps a better question would be, do you have to trust your underlying cloud service provider when you're using SPIRE?

Daniel Feldman

That's a great question. You do have to trust whoever is running the SPIRE server. There's no way around that, because they have all your private keys. They can generate the identities. But if you want to trust AWS, say, and then you want to delegate a little bit of trust to Google Cloud by running some services on Google Cloud, SPIRE will help you do that, because you can create that SPIRE agent running on Google Cloud, talking to the SPIRE server on AWS. Or you could even have a federated SPIRE server, with one running on Google Cloud and one running on AWS, so they don't have to trust each other completely. So it is one step towards not trusting your cloud provider. I'm really looking forward to enclave technologies like [unclear] and SGX, and there are a few others out there that let you run code on your cloud service provider and isolate your code from your cloud service provider. That's sort of a new frontier in security, and I'm watching that closely.

Jon McLachlan

Yeah, that's exciting stuff. So how did you get involved in this originally, Daniel?

Daniel Feldman

So I was previously working at a company called Veritas, which makes backup software. It's actually the number one enterprise backup product used around the world by tens of thousands of different companies. And what happened is actually a little bit similar to that Operation Aurora that I was talking about at Google. What happened is a number of zero-day attacks were found against our backup product. And there were actually things that we already knew about internally, but essentially, we had always trusted that companies would deploy our product inside a secure perimeter. So there were ways to convince the backup service to provide files that it shouldn't be able to provide. There were ways to convince the backup server to allow you to restore files you shouldn't be able to restore. But essentially, because we trusted that it was always running inside a secure perimeter, and these companies knew their users, that that wasn't an issue.

Jon McLachlan

Defense in depth.

Daniel Feldman

Exactly. Yes. So what happened is a number of zero-day attacks were publicized by a security research team against our product, and suddenly all our customers demanded zero trust security for our backup product.

Jon McLachlan

There's that buzzword again, the zero trust.

Daniel Feldman

Exactly. So, fortunately, the company prioritized this, and for several years, we pretty much focused on security exclusively, at the expense of other features that we could be providing. There were hundreds of people working on different aspects of security for that backup product. As an engineer there, I was a principal engineer in the CTO office. I took on parts of our security strategy for certificate management, certificate distribution, CRLs, establishing mutual TLS connections between services, that sort of thing. So they deployed maybe about 50 different services at each customer site, depending on the exact configuration. Because it was a legacy product, there were a lot of different communication protocols, a lot of different programming languages, a lot of different layers of technology that dated back probably two decades. So there was a lot of complexity in deploying that zero trust security for backup specifically. And then once I was wrapping that project up, we actually did complete it, and we were able to say that that backup product is secure even if you run it in an untrusted environment now.

Jon McLachlan

That was incredible. That's an incredible achievement.

Daniel Feldman

It was an enormous amount of work, that diverse ecosystem of legacy software. It took years of work for hundreds of people. I can't even say how much money, but it must have been hundreds of millions of dollars in engineering costs to redo a lot of the communication in this product. And then we deployed it. We released an update. Tens of thousands of companies got that update, and it mostly went okay. So it automatically deployed certificates across all their backup nodes. Some of these companies had hundreds of thousands of backup nodes. It automatically deployed certificates to all of them, and then the communication continued seamlessly. Mandatory mutual TLS, with identities that are tied to the specific installation. It was an enormous project, and definitely proud to have worked on that. And then once we were wrapping that up, again, it took several years, so this was actually a pretty big part of my career, we moved on to the other things. And I was thinking, this technology is really cool. There has to be applications outside just one company, outside just one project. And I started looking around, and that's when I learned about Scytale. That's when I learned that there was this huge problem in the cloud native infrastructure world, where you have a bunch of services and they don't have secure identities. They don't have any way to establish secure trust between each other. And that's when I joined Scytale. I was an early employee. I wasn't one of the founders.

Jon McLachlan

So employee number two or three or something like that?

Daniel Feldman

I was probably three or four in there, something like that. But even by the point I had joined, they already had a very solid strategy and a pretty good POC product that we've built on. And then over the next couple of years, just the adoption has been really interesting to watch. A number of the hyperscalers have really latched onto this technology and have whole teams working on it, which is really cool to see.

Jon McLachlan

Nice. Which hyperscalers are using?

Daniel Feldman

I don't think I can say that.

Jon McLachlan

Oh, okay.

Daniel Feldman

There is a list on our website of conference presentations about SPIFFE and SPIRE, and you can look at the names and see what companies they work for. That would be a good hint about which companies are using SPIFFE and SPIRE. I've been told by our trademark marketing people that I'm not allowed to say the names of specific customers. And then just about a year ago, just actually the week before the pandemic, we got acquired by HPE, which has been a fascinating journey, because HPE has this worldwide marketing and sales presence, and they were able to present this technology to all kinds of companies that are not hyperscalers, that are maybe not in the cloud native ecosystem yet, but are really interested, and get them interested. And then I've been consulting with them, doing all kinds of incremental additions to the product, a lot of Helm charts, a lot of installers, a lot of YAML files, a lot of white papers, a lot of documentation, that kind of thing, to try to really get this adoption in more old-fashioned companies that haven't really adopted cloud native yet.

Jon McLachlan

So when you were acquired by HPE, you really were able to take advantage of their sales and their marketing operational readiness. It sounds like you were instrumental in leading a lot of those efforts, your Helm charts and just making it easy to consume.

Daniel Feldman

Exactly, exactly. And the combination of a tiny startup with some really new technology that does a lot of new things, and then a pre-existing company that has that marketing, distribution, sales channel, vendor relationships around the world, it's a really powerful combination, because the big company has a lot of trouble developing and releasing new products internally. Not because there's any problem with the company, but just inherently, at a big company, if you release something, it needs to be nearly perfect. You can't just experiment. But then a small company, a tiny startup, has a lot of challenges around marketing and distribution. Just every time you attend a conference, it costs a lot of money. Every time you fly up to visit a customer, it costs a lot of money. Building that momentum is really hard at a tiny company.

Jon McLachlan

Yep. Actually, pretty incredible that your entire experience at Veritas led you to Scytale, which really sounded like it laid the foundation for exploring and understanding the nuances of service identity and machine identity at a very low level.

Daniel Feldman

It's been a fascinating journey, but what I like most about it is not even necessarily the service identity or SPIFFE and SPIRE or even security related. What I like is that I got to see the entire process, from the idea for a product, the prototype for a product, building momentum around the product through a lot of marketing, a lot of conference presentations, a lot of white papers, a lot of discussions. And then finally, we've gotten to the successful point where people have adopted the product. So I've been able to see it end to end. And of course, this isn't the end to security, but hopefully we'll have more security products in the future that maybe do other things in the zero trust cloud native space. And I'm hoping to repeat that experience, where we come up with the idea for something, build something, and then drive it to successful adoption.

Jon McLachlan

I think at the end of the day, a lot of people can relate, would really enjoy being part of something bigger than themselves and bigger than any one company, because this problem spans so many different components and people. When I think about successful movements, a lot of them are based on open source technologies and open standards, SPIFFE being one of them. Another one that comes to mind that's in a related space is actually OpenID Connect, which really seems to be helping folks solve the authentication problem with [end] users and logins and authentication between different sites. And so, you know, when we want to log in with Google to a non-Google site, we're almost certainly using OpenID Connect, or at least I hope we are. Do you think that there's a future where SPIFFE and OpenID Connect merge, or what's the relationship between these two open standards?

Daniel Feldman

Sure, I love talking about this topic, actually, because OpenID Connect is an amazing technology, and it meshes really well with SPIFFE. So what OpenID Connect is, is it's a standard for creating JWT tokens so that one service can authenticate to another service. So, for example, if you want to log into AWS, or if you want to command line to manipulate AWS, you can create an OpenID Connect provider for your company that will serve up a root certificate bundle, essentially. It's not technically root certificates, but it's similar to root certificates. It will serve that up over a secure HTTP endpoint. Then AWS will continuously check that endpoint, download it, and then anyone who tries to log into your AWS account with a JWT bearer token that's signed by that root certificate bundle, that connection will be authenticated against that root certificate bundle. So you still need the provider. You still need something to create the bundles. You still need something to create the JWT tokens. And SPIRE can already do that. SPIRE already supports JWT tokens, and it already supports serving OpenID Connect endpoints. So that wasn't the original purpose of SPIRE, but it's a perfect application for SPIRE, and it's something that a number of users are really interested in, because it's a huge problem. How do you securely authenticate to APIs? And I mean, by that, I mean public APIs, not internal APIs. Who hasn't accidentally taken an AWS secret key and accidentally checked that into a public Git repo, or even a private Git repo where it's not supposed to be, or it's been on a server that the wrong people have had access to? Those secret access tokens are a huge problem. They're probably the biggest barrier to cloud adoption. So by using something like SPIFFE and SPIRE to generate identities continuously and then serve them up via OpenID Connect, and then because we have that node attestation and workload attestation, those identities can't easily be stolen, because any service that's using that identity has to have passed the workload attestation step and have passed the node attestation step. So you know it isn't just using a secret access token that maybe was accidentally checked into a public repo or stolen off some other server that wasn't supposed to have it.

Jon McLachlan

Awesome. So maybe we even will be entering a world here pretty soon where secret management is a thing of the past.

Daniel Feldman

I'm certainly hoping that we just have no more secrets. Actually, one of our competitors in this space is called Secretless, which I think is such a great name. And unfortunately, we can't use it because they [trademarked it]. But it's a good name. And I wish I could use that term, because what we are trying to do here is get rid of static secrets.

Jon McLachlan

If you have one less secret and no secrets at all, there's nothing to steal for an adversary that breaks into a cloud system, given a zero-day or whatever. Security [in] depth is always a good thing, but it's only as good as the weakest link in each of the chains.

Daniel Feldman

And what we're doing here is we're helping cloud adoption, because one of the biggest barriers to cloud adoption is that secret step, where you have these access tokens that have to be managed securely for each cloud, for each region. And a lot of companies just aren't capable of doing that in a secure way. And they can use secret managers, but then someone has to set up the secret manager and manage the secret manager and then grant access to the secret manager.

Jon McLachlan

Yep.

Daniel Feldman

And that's been holding back a lot of companies, especially in regulated industries and security-conscious industries and federal government, from adopting cloud infrastructure, because they just can't manage the secrets.

Jon McLachlan

It's difficult to manage secrets because they're so sensitive, and HSMs are painful to set up if you need to go there. And if there's no secret at all, that's even better, right? There's nothing then to steal.

Daniel Feldman

Get rid of your secrets. That's my motto.

Jon McLachlan

Just get rid of the secrets. It's like nuclear weapons. No nukes are good nukes, and no secrets are good secrets.

Daniel Feldman

Yeah, or you could even say that secrets are like toxic waste. They just contaminate any infrastructure they touch.

Jon McLachlan

That's so true. And you have to bury them deep underground, for no one to find or accidentally bump into. So everything that we've talked about so far has been a centralized technology, but a lot of the trends, especially with all of these cryptocurrencies running around trying to incentivize certain decentralized architectures, is really starting to focus on decentralized technology. I'm not sure how you see the future, in terms of how something like SPIFFE or SPIRE could work in a decentralized mode, but do you see any overlap between these two different worlds of SPIFFE and SPIRE and a decentralized approach to service authentication?

Daniel Feldman

Absolutely. And this is a question I get all the time. Can we use blockchain? Can we somehow use a distributed ledger as we're generating these secrets, in order to validate the secrets across the distributed infrastructure? Right now, that's extremely challenging, and it's challenging for one reason, which is we're generating a lot of secrets here. Again, we have customers who have thousands or tens of thousands of nodes continuously generating secrets. There is no distributed ledger technology quite yet that can keep up with that in a super reliable way. Because remember, if it fails to update the ledger or it fails to generate a secret and be able to save that secret, then your communication starts to fail. So it does need to be really, really secure. There are some companies working in this space, but they have a long way to go in order to achieve a distributed ledger that's operating at the performance and reliability that you need for service identity. There is one baby step towards decentralized service identity, and this is the same thing that's used on the public internet, which is certificate transparency. So as these are generated, they can be added very efficiently to something called a Merkle tree, which is a hashed ledger of all the secrets that have been generated. And then each secret contains a pointer into that tree. So then, if you have a couple of different servers hosting the certificate transparency, it's called a certificate transparency log, and you have a couple of clients that are validating these, then you achieve a little bit of a decentralized service identity. And this is used on the public internet already. Any certificate you get for any website is going into a certificate transparency log. So it does have the performance and reliability that we need. We're working on implementing that for SPIFFE. It isn't really decentralized, because you still have to trust these CT logs, but at least you're trusting that at least one CT log hasn't been compromised, instead of only trusting one source. So we do think a lot about decentralized service identity. There's a huge challenge to really making it a consensus distributed identity, in the same way that, like, Bitcoin is a consensus-based distributed identity.

Jon McLachlan

Right. Well, I mean, you were talking about the technical challenge of building a blockchain that has the capacity to issue the X.509 certificates or the JWT certificates at a rate that would satisfy your demand on the network. But when I think about decentralized technologies in terms of a B2C space, like, okay, sure, but in a B2B space, then you have to sell that to large customers or to enterprises, and you have to meet SLAs. And maybe it's the same problem, but it turns into a sales and marketing problem. How do you ensure to these companies that they have control over their networks?

Daniel Feldman

Exactly, exactly. And we're operating in a very conservative space. We're operating in enterprise data center infrastructure. So back when I used to work on backup software, we would release a backup product. It might take a year and a half or two years for a company just to test the product before releasing it in their enterprise infrastructure. That's normal in that space. That's completely normal. Because if you install a product on your bank's infrastructure and the bank goes down even for 10 minutes, that's a huge problem that could cost hundreds of millions or even billions of dollars. So they're extremely conservative, and we have to meet those demands. Our code has to be essentially perfect. We're operating in the red zone. If we fail to issue an identity that should be issued and a service crashes, that could bring down your bank, that could bring down your hospital. The opportunities for doing something like decentralized service identity, they're there, but you have to figure out how to do that and not only make it extremely reliable, but make it reliable enough for enterprise infrastructure companies to adopt.

Jon McLachlan

Exactly. Especially if it's going to involve other people's computers, and you're going to go to a bank or to a hospital and say, your systems will now be dependent on thousands and thousands of other people's machines.

Daniel Feldman

Now, there are some interesting companies operating in this space. I was just thinking that Helium IoT is doing decentralized identity for IoT devices. There may be some others. I'm sure I've heard of others. But again, they're mostly in a consumer space, where if it fails, it may be bad, but it's not going to crash the airplane.

Jon McLachlan

You're not losing billions and billions of dollars for an outage.

Daniel Feldman

Exactly. Right. Exactly. So we do need to be very conservative about how futuristic we can [use] technologies.

Jon McLachlan

But regardless, in terms of just the technology itself, it's a very interesting question, right? How do you think?

Daniel Feldman

Yeah, and I do think there are a lot of opportunities in this space. We're still in the early days for service identity. We still have a lot to figure out, and there's a lot of opportunities to try something new.

Jon McLachlan

And speaking of the opportunities, what do you see as the future for the service identity space, or security space in general?

Daniel Feldman

I would say we're still in the early days of computer security in general. If this were a time in aerospace engineering, we'd be in the 1950s, when there were jetliners, but there were also random planes crashing all the time. There were some planes where the windows would just fall out, and people died all the time, unfortunately. We're in those days with computer security, where there are some organizations that are extremely advanced, that are flying that 737 that is exactly like the one you'd see today. And then there are other organizations that, unfortunately, are crashing the plane constantly. So that's where we are, and we clearly have a very long way to go in this realm of establishing security within corporations.

Jon McLachlan

That's true. I couldn't agree more. You know, the global economy lost $1.2 trillion, $1.2 trillion just in the first quarter of 2020, to data breaches. It's an astronomical number. Those airplane crashes, yeah, we see them.

Daniel Feldman

I think that the most promising directions to take the entire world of service identity and security between services is really in the area of availability and usability of the technology. If you look at Let's Encrypt, that wasn't inventing anything new. That's just creating certificates. But it made creating certificates so much easier to do, and of course free instead of costing a few hundred dollars, and instant instead of taking a few weeks. Everyone adopted certificates once Let's Encrypt became available. Again, it wasn't inventing too much new technology. They did have to create a new protocol called ACME for obtaining these certificates automatically. But the primary innovation of Let's Encrypt was usability and availability of the service, and cost.

Jon McLachlan

The actual security technology, the encryption technologies, the identity technology exists today that can solve these world problems. We just need to put them together in a way that's easy to consume, easy to understand and easy to use.

Daniel Feldman

And that's certainly the direction that I'm interested in working on. SPIFFE and SPIRE already exist. They are free, so we're meeting that cost criteria. They are hard to set up. There's a big cognitive load to figuring out how you're going to attest your nodes, how you're going to attest your workloads, how those workloads are going to use the workload API. There's just a lot of effort involved in setting up this technology. And you can pay my company for consulting services, and we'd be very happy to provide consulting services, but the real frontier is going to be in making this automatic and easy to use and instant, and also free. Just like Let's Encrypt was phenomenally successful distributing certificates to every website in the world, essentially, there's a huge frontier in providing service identity to every service in the world.

Jon McLachlan

So are you working on anything to help with the setup overhead, the cognitive overhead? Is there a simplified GUI? Is there even a way to remove it? Some of it, maybe?

Daniel Feldman

Yeah, I mean, that's the great question. And we are working on a number of things. We actually do have a GUI for, we actually may have two [GUIs] for SPIRE right now, in different states of development. I don't think a GUI is the answer. I mean, if you look at what happened with Let's Encrypt, again, phenomenally successful security product. It wasn't successful because [it] had a GUI. It was successful because it involved very little effort, right? And it was doing something that was previously difficult and doing it really well. A company in this space that I would definitely watch is called Smallstep. And what they are doing is literally taking the Let's Encrypt approach to service identity and doing it inside companies. And they've really focused on usability. I really admire that company in particular. Maybe I shouldn't say that, because they are a competitor. They're really focusing on small and medium business, while SPIFFE and SPIRE are focusing on large business, and they take some different approaches on some of the security questions. But I would definitely look at their general approach to usability and documentation and ease of configuration, because I think they're really innovative on those fronts.

Jon McLachlan

Just a shout-out to a friendly competitor in this space.

Daniel Feldman

A friendly competitor. I mean, if you're doing good things, you're doing good things, right? And just as a side note, Smallstep has the best content marketing of any security company I've ever seen. Their blog posts are incredible, and they're often near the top of Hacker News, near the top of Lobsters, all over Twitter. They're actually amazing at getting the word out about their technology.

Jon McLachlan

Another thing to admire.

Daniel Feldman

Yes, yes, which is very difficult to get right.

Jon McLachlan

It makes me wonder if they have a podcast.

Daniel Feldman

I actually don't know. Maybe they can be your next guest.

Jon McLachlan

Perhaps. Not to pit the competitors against each other, but.

Daniel Feldman

As I said, they're a friendly competitor.

Jon McLachlan

Friendly competitors.

Daniel Feldman

They're mostly focusing on small companies, and we're focusing on big companies.

Jon McLachlan

Different market segment. There you go. They're not competitors anymore. All right, Daniel. Well, do you have any final thoughts to share with the audience?

Daniel Feldman

So thank you so much for having me on, Jon. This has been an amazing experience, being on this podcast and being able to talk about SPIFFE and SPIRE, and having so much recognition for the little bit of work I did over the last couple of years building out these products, along with a big team of brilliant people at many different companies. I'm really grateful for the experience, and I'm looking forward to the future of developing cloud native and security products that really change the way that companies relate to their security infrastructure. So SPIFFE and SPIRE are fundamentally changing the way that large companies distribute service identity to their services. And they're changing what's possible, because now you can communicate between multiple clouds. You can communicate between cloud and on-prem services. And you can do it in a completely secure manner, with uniformly generated certificates and JWT tokens that every service within your enterprise can use. And that vastly expands the horizons of what you can do safely within cloud and within your company. And I'm looking forward to doing more of that, to creating more things in the future that fundamentally change what's possible in the security realm. If you have any ideas, don't hesitate to get in touch with me. I'm sure Jon will put my email and contact information in the podcast notes. And I really look forward to working in this space in the future and keeping in touch. If you'd like to chat with me, I'm always on the SPIFFE Slack channel, and it's an open Slack channel. You can go to spiffe.io and sign up for the Slack channel. And I'm always answering questions on there, along with many other people who are from a number of different companies and are mostly smarter than I am about how to architect zero trust security for cloud native architectures. Again, thank you so much, Jon.

Jon McLachlan

Daniel, it was an absolute pleasure to have you on the show. Thank you deeply [for] sharing your insights, your experiences, your thoughts. And because this is a podcast, just so everyone knows how to spell SPIFFE, it's S-P-I-F-F-E. And we'll stay in touch. I'm excited to learn what you'll be building next, and we'll be in touch, huh?

Daniel Feldman

Great. Keep in touch, Jon. And if you're attending KubeCon in the future, either right now at KubeCon Europe or in the fall at KubeCon US, which will hopefully be the first on-prem conference that many of us have attended in a few years.

Jon McLachlan

On-prem and in person.

Daniel Feldman

On-prem conferences, yes, instead of cloud conferences. It'll be in Los Angeles in the fall. And I'd be delighted to grab a beer and chat about cloud native security.

Jon McLachlan

All right. Well, perhaps we'll have some folks take you up on that. All right.

Daniel Feldman

All right. Keep in touch, Jon. Thank you so much again.

FAQ

Questions this episode answers

What is SPIFFE?
SPIFFE, the Secure Production Identity Framework For Everyone, is an open standard for service identity. It gives a service an API to fetch its own identity, an X.509 certificate or a JWT, plus trust bundles to check the identities of other services. Daniel Feldman explains it on episode 3.
What is SPIRE?
SPIRE, the SPIFFE Runtime Environment, implements SPIFFE. A central SPIRE server holds the signing keys, and a SPIRE agent on each node attests the node and the workloads and pushes identities to them. In 2021 Daniel called it the only real complete implementation.
Where did service identity come from?
Daniel traces it to Google after Operation Aurora, the attacks Google disclosed on January 12, 2010. Google built an identity for every service, which Daniel calls LOAS. Google's public documentation describes ALTS, which began development at Google in 2007.
Who wrote the first SPIFFE paper?
Joe Beda of Google wrote the white paper that proposed SPIFFE. Daniel dates it to 2017. DevOps.com says Beda first proposed SPIFFE at GlueCon in 2016.
Do service meshes implement SPIFFE?
Partly. Almost every service mesh uses SPIFFE-compatible identities, Daniel said, but they don't provide the workload API, so a service can't fetch its own identity. Istio, for example, creates a mutual TLS tunnel with a SPIFFE identity on each end.
How does SPIRE identify a workload?
The workload connects to the SPIRE agent over a Unix domain socket. The agent checks the process ID that connected, asks Kubernetes which service account it has, and pushes the matching identity. Identities are regenerated every 30 minutes, hour or two hours.
Is SPIRE zero trust?
Daniel avoids the term. He calls zero trust a buzzword and a marketing term. The original idea, he said, was a network with no perimeter, where every service and every user has a unique identity and every connection and request is verified against it.
Do you have to trust your cloud provider with SPIRE?
You have to trust whoever runs the SPIRE server, because it holds your private keys. You can run agents on a second cloud that talk to a server on the first, or federate two SPIRE servers so neither has to trust the other completely.
Can SPIRE replace cloud access keys?
In Daniel's AWS example, SPIRE serves an OpenID Connect endpoint, AWS keeps checking it, and a workload calls AWS with a JWT signed against that bundle. Daniel calls secret access keys probably the biggest barrier to cloud adoption.
What happened to SPIFFE and SPIRE after the episode?
They graduated from the Cloud Native Computing Foundation on September 20, 2022. In 2026 a NIST NCCoE concept paper named them as one way to identify AI agent workloads, Google Cloud's Agent Identity gives each agent a SPIFFE ID, and Flux 2.10 added SPIFFE mutual TLS between its controllers.
Keep reading on the YSecurity blog
New episodes every other Tuesday

Got a story like this one?

We're always looking for practitioners who've been in the room when it mattered.