VOOZH about

URL: https://thenewstack.io/cryptographic-keys-in-a-cloud-native-environment/

⇱ Cryptographic Keys in a Cloud Native Environment - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2020-05-11 13:19:52
Cryptographic Keys in a Cloud Native Environment
contributed,sponsor-cncf,sponsored,sponsored-post-contributed,
Cloud Native Ecosystem / Security

Cryptographic Keys in a Cloud Native Environment

Cloud workloads use multiple security features, such as authentication and encryption. These features require cryptographic keys and passwords that must be kept secret.
May 11th, 2020 1:19pm by Leonid Sandler
👁 Featued image for: Cryptographic Keys in a Cloud Native Environment
CNCF sponsored this post.

KubeCon + CloudNativeCon sponsored this post, in anticipation of KubeCon + CloudNativeCon EU, in Amsterdam, Aug. 13-16.

Leonid Sandler
Leonid is CTO and co-founder of CyberArmor. He is a security professional with 20 years of experience in software security. As a Security CTO in NDS (acquired by Cisco), his solutions were deployed in the world’s largest service providers such as DirectTV and Sky.

In order to keep business and customer data safe, cloud workloads use security features like authentication and encryption. These features require cryptographic keys and passwords that must be kept secret. Secure software development best practices suggest avoiding keeping such materials in software distribution and deployment images — like containers, VMs, config files, and so on. However, a 2019 NDSS study (PDF) shows that people don’t always follow even the basic guidelines.

While many tools, as well as verification and compliance processes, are being developed to help organizations address trivial human errors, software architects and developers must implement their products so that trivial deployment mistakes are not possible. Their solutions must be secured by design.

This, however, is easier said than done. On one hand, we have to deal with a constantly growing number of software vulnerabilities (some of which are not publicly known, a.k.a. 0-day) and on the other hand attacking techniques and methodologies are becoming more and more sophisticated and much better organized. Going after cryptographic secrets and passwords is a sweet spot for the majority of cyberattacks aiming to obtain valuable information.

This article examines the security aspects of keys and secret material distribution in cloud native environments, where software is split into hundreds or even thousands of microservices and workloads sporadically running in huge computation clusters, such as Cloud VPCs, Kubernetes and Spark. For the sake of efficiency of infrastructure utilization, it is becoming increasingly prevalent to spread these clusters over multiple infrastructures — such as multiple cloud vendors, and public and private data centers. Contemporary architectures cannot rely on a specific infrastructure capability; but even if they do, such capabilities do not always provide an optimal answer when it comes to the distribution of and — most importantly — protection of cryptographic secrets.

Assuming best practices were followed and a workload starts up on one of the previously unknown computation nodes, it now requires one or more cryptographic keys to be provided in order to perform its task. While not “in use,” the keys are kept in some type of a Key Management System (KMS) — usually provided by a cloud vendor or an independent third party. Workloads communicate with a KMS over IP interfaces and may use standard KMIP or proprietary interfaces. In this article, I won’t question the security of the KMS implementation, but rather focus on the security aspects of the key distribution process.

Who Is Asking for a Key?

A workload must issue a request to the KMS in order to obtain key(s). However, there might be many workloads that communicate with the KMS all the time. The KMS must be able to identify a workload, to decide what key to provide to it. There are several techniques to do this; for example key tokens, key IDs, or IAM tokens.

Some of these techniques are infrastructure specific, others are neutral — but they all share a common conceptual problem. The KMS uses request tokens to identify the key, rather than to authenticate the requester. These tokens can be seen as a key to a safe, where the actual key is kept. The best practices require us to avoid keeping the keys with the software, because we know how easy it will be to steal these keys.

So then, how is a “key to the key” better? Well, it is better than the actual key — but not by much. It would require an attacker to make an extra round trip to the KMS and maybe even exploit some software vulnerability in order to attack from within the cluster, when there is no external access to the KMS. But this hasn’t stopped attackers before. The conceptual problem here is that the KMS cannot authenticate a key requesting workload.

Do Not Confuse Identification and Authentication

The key identifiers or tokens are perfectly sufficient to identify what key is requested. However, since they can be copied, the KMS has no means to make sure that a request comes from a legitimate workload. Normally, such a problem should have been solved by authentication; but the authentication must be based on something that can’t be stolen or copied. Which brings us back to secret materials. Since workloads start without any secret materials, reliable authentication cannot be performed — which enables potential attackers to pose as legitimate workloads and obtain the keys right from the KMS.

Because practically all KMS products are well known, the attackers know exactly what the tokens look like and where they are kept; and therefore how to operate. We refer to this as a “chicken and egg” problem of the key distribution, because while a workload needs to obtain secret materials from a KMS in order to operate, a “perfect” KMS should securely authenticate the requesting workload. Which requires that workload to have an authentication secret in the first place.

How to Solve this Deadlock?

Since secret materials cannot be used to authenticate the requesting workload, we should find another authentication method that may allow a KMS to make sure it is communicating with a legitimate requester. A human biometrical authentication approach suggests another way to authenticate the requesting workloads — software “DNA.” A cryptographic signature of the workload software requesting a key from a KMS provides a missing authentication factor, ensuring that the KMS communicates with a legitimate client. If the KMS was able to remotely verify such a cryptographic signature in runtime, as part of the key distribution protocol, it would prevent malicious software from obtaining cryptographic keys that belong to other workloads.

This method will still require additional measures to be in place to avoid legitimate software cloning. Also, once delivered, the keys must be protected while they are “in use.”

Feature image via Pixabay.

The Cloud Native Computing Foundation (CNCF) hosts critical components of the global technology infrastructure including Kubernetes, OpenTelemetry, and Argo. CNCF is the neutral home for cloud native collaboration, bringing together the industry’s top developers, end users, and vendors.
Learn More
The latest from CNCF
TRENDING STORIES
Leonid is CTO and co-founder of CyberArmor. He is a security professional with 20 years of experience in software security. As a Security CTO in NDS (acquired by Cisco), his solutions were deployed in the world’s largest service providers such...
Read more from Leonid Sandler
CNCF sponsored this post.
SHARE THIS STORY
TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.