Application Layer Transport Security
Cesar Ghali, Adam Stubblefield, Ed Knapp, Jiangtao Li, Benedikt Schmidt, Julien Boeuf
Real World Crypto, 2019
January 9-11, 2019
Application Layer Transport Security Cesar Ghali, Adam Stubblefield, - - PowerPoint PPT Presentation
Application Layer Transport Security Cesar Ghali, Adam Stubblefield, Ed Knapp, Jiangtao Li, Benedikt Schmidt, Julien Boeuf Real World Crypto, 2019 January 9-11, 2019 Introduction Design Trust Model Protocols Tradeoffs Application Layer
Cesar Ghali, Adam Stubblefield, Ed Knapp, Jiangtao Li, Benedikt Schmidt, Julien Boeuf
January 9-11, 2019
Application Layer Transport Security - Google
Application Layer Transport Security - Google
transit
Procedure Calls (RPCs)
○ Google production network issues roughly 10 billion RPCs per second
production machines
○ TLS did not fit well with Google security model ○ TLS and its implementations seemed complex, due to support for legacy flow and protocols
advantageous
○ TLS with HTTPs and ALTS have fundamentally different trust models ○ ALTS is simpler in its design and implementation ■ Easier to analyze for bugs and security vulnerabilities ○ ALTS uses Protocol Buffers, more suitable for Google production services
Application Layer Transport Security - Google
Application Layer Transport Security - Google
Application Layer Transport Security - Google
Application Layer Transport Security - Google
○ All RPCs are ALTS-secured by default ○ No need to worry about credential management or security configurations ○ Peer information propagated to application for authorization
○ AES-GCM with auto-rekeying ○ Google controls ALTS: crypto protocols are easily upgraded and deployed
○ Authentication by identity rather than host name ○ All communications are mutually authenticated
Application Layer Transport Security - Google
○ Identities have corresponding “managed” credentials ○ Deployed and periodically refreshed automatically for each workload without application developer involvement
○ Efficient session resumption
○ Accommodate the scale of Google’s infrastructure
○ Tailored for service-to-service communication pattern ○ No support for legacy protocols
Application Layer Transport Security - Google
Application Layer Transport Security - Google
○ Embedded in certificates ○ Used for peer authentication
○ Major production services run as identity managed by SREs ○ Development versions run as test identity managed by SREs and developers
○ Production services do not trust the development versions of the services
Application Layer Transport Security - Google
certificates and resumption keys
Application Layer Transport Security - Google
certificates and resumption keys Master certificates: ○ Signed by a remote Signing Service ○ Contains RSA public key ○ Associated (master) private key signs handshaker certificates ○ Usually issued for production machines and schedulers of containerized workloads
Application Layer Transport Security - Google
certificates and resumption keys Handshaker certificates: ○ Signed by master private key
■ Created locally for system services ■ Created and provisioned by scheduler for containerized workloads
○ Contains parameters used in ALTS handshake ○ Contains the master certificate that verifies it
Application Layer Transport Security - Google
certificates and resumption keys ALTS certificate chain
Application Layer Transport Security - Google
certificates and resumption keys Resumption keys: ○ Secret used to encrypt resumption tickets ○ Identified by a Resumption ID ○ Resumption ID unique for workloads running with the same identity and in the same datacenter cell
Application Layer Transport Security - Google
○ First: issuer obtains a master certificate
Application Layer Transport Security - Google
○ First: issuer obtains a master certificate
Application Layer Transport Security - Google
Human certificates: ○ RPCs issued by humans to production services are ALTS-secured ○ Humans obtain handshake certificates from internal CA
■ Provisioning requests authenticated using username, password and 2FA
○ Valid for less than a day
Application Layer Transport Security - Google
Machine certificates: ○ Production machines have machine master certificates issued by internal CA ○ Corresponding private key creates handshake certificates for core daemons ○ Machine master certificates rotated every few months ○ Machine handshake certificates rotated every few hours
Application Layer Transport Security - Google
Workload certificates: ○ Handshake certificates issued to production workloads running on Borg ○ Used by application for ALTS handshake ○ Rotated every two days on average
Application Layer Transport Security - Google
Application Layer Transport Security - Google
Application Layer Transport Security - Google
ALTS uses two protocols
Handshake protocol
Record protocol
Application Layer Transport Security - Google
○ Their identities
○
Elliptic Curve DH (ECDH) keys rotated frequently
session resumption
○ Shared session encryption key ○ Record protocol to use
Application Layer Transport Security - Google
Application Layer Transport Security - Google
(using the session transcript):
○ Record protocol secret, M ○ Resumption secret, R ○ Authenticator secret, A
○ Server handshake certificate ○ Chosen protocols ○ (Optional) resumption ticket
○ HMAC over pre-defined bit string ○ Using secret A
Application Layer Transport Security - Google
Application Layer Transport Security - Google
Application Layer Transport Security - Google
Client can start sending data encrypted with M
Application Layer Transport Security - Google
Application Layer Transport Security - Google
○ HMAC over pre-defined bit string ○ Using secret A
Application Layer Transport Security - Google
Application Layer Transport Security - Google
Server can start sending data encrypted with M
Application Layer Transport Security - Google
○ Allows clients and servers to have different preferences ○ Allows us to phase in (or remove) encryption schemes
Application Layer Transport Security - Google
○ Indexed by Resumption ID ○ Resumption ID is unique to all workloads running with same identity in same datacenter cell
○ Keys are distributed and refreshed automatically with the workload credentials
Application Layer Transport Security - Google
Application Layer Transport Security - Google
○ ALTS is susceptible to KCI attacks ○ Compromising workload DH private key or resumption key allows adversary to impersonate other workloads to victim workload ○ Part of our resumption threat model ○ Variant of ALTS that protects against KCI exists, but works in environment with no resumption
○ ALTS not designed to disguise identities of peers ○ Handshake messages are not encrypted
Application Layer Transport Security - Google
○ Identifying the security boundaries and adversary models ○ Key management, rotation and revocation
Application Layer Transport Security - Google