For companies moving to public or even multicloud environments, key management and encryption — of data in motion, at rest and even in use — are top of mind. Organizations consider certificate management and key management a commodity, and many seem to struggle to get this right.
However, there’s more to cryptography than encryption, keys and certificates.
What Is Cryptography and What Does It Do?
Cryptography is a set of techniques for securing communication and, in general, data. As one could infer from the name — in Greek, kryptós means “hidden, secret” and graphó means “to write” — cryptography’s original purpose was to keep data confidential. After more than four decades of modern cryptographic research and development, the objective has expanded to also address data integrity, privacy, availability and nonrepudiation.
Beyond encryption, cryptography provides techniques for digital signing, secret sharing among parties that do not trust each other (multiparty computation), searching through and computing on encrypted data (fully or somewhat homomorphic encryption), zero-knowledge proofs, tokenization, quantum-safe crypto algorithms, and more.
Deploying enterprise-scale cryptography can be a challenge; while the adoption and practical use of crypto technology is becoming increasingly simple, there is a shortage of knowledge and skill in this space, which limits its scale and proliferation. To overcome these challenges, organizations need a strategy that combines the right skills, governance and a sound operating model underpinned by accredited technology solutions.
Why Do Companies Need Cryptography Services?
Cryptography is everywhere, which means managing crypto is a decentralized capability. By everywhere, I mean literally across all platforms and the whole IT stack. We find implementation of cryptographic algorithms in all our products, including hardware, operating systems, applications and scripts.
A large enterprise typically has hundreds of thousands of X.509 certificates, which are primarily used for data-in-transit encryption and client-server authentication. These certificates come in all forms. Sometimes, they are neatly integrated in a centralized certification life cycle automation solution. Quite often, however, they are provided by multiple certificate authorities that are not well-governed, not to mention a slew of rogue certificate authorities that come in the form of unmanaged, self-signed certificates.
During one compliance audit, a client asked me to provide documentation on my encryption methods and key management procedures. What did the client mean by encryption methods? Which ones? All of them? When I asked if the auditors could provide a more specific question, the client simply responded, “Provide all you have.” I guess we shouldn’t have asked.
Cryptography is omnipresent, and governing its use is key — not only for compliance audits, but to maximize the technology’s potential.
Let’s dive into some tips to help you successfully implement and manage a robust cryptography program at your organization.
Development, Engineering and Crypto — What Could Go Wrong?
When developers use cryptography, many things can go wrong when there’s no guidance. A successful cryptography deployment often starts with simple security hygiene, such as not leaving private keys lying around in plaintext on disk or, worse, in GitHub repositories.
Any cryptography expert would advise developers against implementing cryptographic algorithms themselves. Why? Because it’s easy to make mistakes. Choose a wrong input to initialize a crypto algorithm, and you may have a backdoor that an attacker could exploit to commit a man-in-the-middle (MitM) attack. Instead, developers should lean on experts in the field to provide libraries that follow secure coding and cryptography engineering best practices.
Zero Touch: Implementing Crypto as a Black Box
How can security teams get those cryptography libraries into production? The key is to automate the use of cryptography. Zero touch should not only be the theme for managing infrastructure in public cloud, but also a guiding principle when managing cryptographic algorithms.
To unleash the full potential of cryptography, those cryptographic libraries should be packaged into nicely consumable services that can be provided to enterprises without their developers becoming experts in the field themselves. Cryptography is best delivered as a black box service: a suite of products and libraries that hide the complexity of algorithms, inputs and verifiers at the core.
Enterprises setting up cryptography services typically start small. A solid foundation should include a mix of varied skilled resources, such as operational people who know key and certificate management both from a technical and procedural viewpoint. You’ll also want some folks who have a sound crypto background and can help build new products or services alongside your developers. These experts would be part of your DevOps teams, either as developers themselves or as consultants.
Again, your team should be building products on top of libraries, not implementing cryptographic algorithms themselves. The key is to choose the right primitives and integrate the tooling with the overall security architecture, including privileged access management (PAM), logging and monitoring, and DevSecOps practices for those who have already embarked on the cloud journey (otherwise, think secure software development life cycle).
Best Practices for Implementing Cryptography Services
Cryptography services can benefit any enterprise, small or large, fully underway on the multicloud journey or still on-premises with a dash of hybrid cloud. If your organization is considering adopting cryptography services, below are some useful tips for successful implementation.
- Get the basics right. Establish a strategy for multicloud encryption and key management and automated key and certificate life cycle management, then expand to more advanced crypto technologies.
- Build in crypto agility. Keep an overview of your deployed cryptography and be ready to replace or retire it as needed.
- Protect cryptographic keys from threats related to big data and cloud. Leverage crypto for protecting data while ensuring that sensitive keys don’t get absorbed into data lakes themselves.
- Develop robust plans for business continuity and disaster recovery of crypto keys. Inventory keys and cryptographic libraries so you can recover your data alongside your protection mechanisms.
- Scale and track use of cryptographic keys in software-defined networks. Manage keys throughout their life cycle by enabling and automating policies for key and certificate management already in the development pipeline.
- Integrate of cryptography into the DevSecOps world. Ensure that DevOps teams choose crypto libraries that follow secure coding practices.
There is a lot that cryptography services can do for your organization. Your best bet is to start small with a basic strategy and one or two specific use cases. The key is to ease the adoption of new cryptographic technologies by delivering them as services accompanied by training and tight governance.