Overview of Keyless SSL
Keyless SSL lets sites use CloudFlare’s SSL service while retaining on-premise custody of their private keys. This is a brand-new security technology, developed by a team of cryptographers, systems engineers, and network specialists at CloudFlare.
The standard CloudFlare SSL service requires a customer to share their site’s SSL key with CloudFlare. CloudFlare takes extensive technical measures to safeguard customer key information. However, for some customers there are policy or technical obstacles preventing them from sharing their site’s SSL key with CloudFlare. This is why we are excited to introduce Keyless SSL.
Why use Keyless SSL
While most customers are comfortable with CloudFlare managing their private keys, some have unique security requirements making this impossible. Keyless SSL allows users to retain control of keys while still routing encrypted traffic through CloudFlare’s global network.
With Keyless SSL, for the first time ever, an organization can use a solution such as CloudFlare, that is infinitely scalable and infinitely elastic, without sharing their SSL key. Companies are able to get all of the benefits of the cloud (DDoS attack mitigation, load balancing, WAN optimization), without having to choose between encrypting web traffic or giving their SSL private keys to a 3rd party cloud provider.
How Keyless SSL works
Note: Keyless SSL requires that CloudFlare decrypt, inspect and re-encrypt traffic for transmission back to a customer’s origin.
For non-SSL traffic through CloudFlare there are 3 parties: Client (e.g., web browser), CloudFlare edge node and Customer origin server.
For SSL traffic with Keyless SSL enabled, there is one additional endpoint involved in the initial SSL session creation, after which normal transmission resumes.
The request flow for Keyless SSL transactions is as follows:
1a. Client (e.g., web browser) connects to the CloudFlare edge node closest to the customer, via Anycast routing. The client sends a secret to the edge server encrypted with the site’s public key.
1b. The edge server contacts the key server, authenticating itself with a certificate. The edge server sends the encrypted secret to the key server to decrypt it. The key server returns the decrypted secret over an encrypted tunnel.
2a. Both client and server use the shared secret to establish a secure connection. Client (e.g., web browser) makes request over HTTPS for CloudFlare-powered customer resource.
2b. CloudFlare edge node (the Session Server) decrypts, inspects, and processes the original request.
The authentication step happens only once per session; additional requests within the session do not require the extra check to the Key Server. The customer can modify the default SSL session TTL (time to live) from 18 hours to as low as 5 minutes or as high as 48 hours.
For more details on Keyless SSL see this blog post.
Third Party Security Audits
CloudFlare’s Keyless SSL cryptography has been reviewed by iSEC Partners in conjunction with Matasano Security, and each part of NCC Group — world leaders in application security and cryptographic review.
How customers get access to Keyless SSL
Keyless SSL will initially be available only to customers on the Enterprise plan. For more information on the Enterprise plan and Keyless SSL, contact our sales team.