PRACTICAL MTLS
MINIMIZING THE WINDOW OF COMPROMISE
Ying Li @cyli
PRACTICAL MTLS Ying Li @cyli PROBLEM TYPICAL MICROSERVICE - - PowerPoint PPT Presentation
MINIMIZING THE WINDOW OF COMPROMISE PRACTICAL MTLS Ying Li @cyli PROBLEM TYPICAL MICROSERVICE ARCHITECTURE VPC S1 DB S2 S1 S3 PROBLEM VLAN-TASTIC MICROSERVICE ARCHITECTURE S1 DB S2 S1 S3 PROBLEM CORRECT MICROSERVICE ARCHITECTURE
MINIMIZING THE WINDOW OF COMPROMISE
Ying Li @cyli
TYPICAL MICROSERVICE ARCHITECTURE
PROBLEM
S1 S1 S2 S3 DB
VPC
VLAN-TASTIC MICROSERVICE ARCHITECTURE
PROBLEM
S1 S1 S2 S3 DB
CORRECT MICROSERVICE ARCHITECTURE
PROBLEM
S1 S1 S2 S3 DB
APPLICATION TLS LIFECYCLE
Bootstrap Revoke Renew
PROBLEM
BOOTSTRAP
PROBLEM
RENEW
PROBLEM
RENEW
PROBLEM
PROBLEM
RENEW
REVOKE
PROBLEM
AUTOMATE, AUTOMATE, AUTOMATE
PRINCIPLE
AUTOMATE, AUTOMATE, AUTOMATE
PRINCIPLE
AUTOMATE, AUTOMATE, AUTOMATE
PRINCIPLE
SWARMKIT OVERVIEW
https://github.com/docker/swarmkit
SWARMKIT OVERVIEW
Worker Manager Manager Manager Worker Worker Worker Worker Worker
CLUSTER
SWARMKIT OVERVIEW
Worker Manager Manager Manager Worker Worker Worker Worker Worker
CLUSTER
Node Node Node Node Node Node
SWARMKIT OVERVIEW
Worker Manager Manager Manager Worker Worker Worker Worker Worker raft store
CLUSTER
SWARMKIT OVERVIEW
Node CA CA CA Node Node Node Node Node raft store
CLUSTER
SWARMKIT’S IMPLEMENTATION
BOOTSTRAP
SWMTKN-1-mx8suomaom825bet6-cm6zts22rl4hly2 Known Prefix Token Version Hash
Random Secret
SWARMKIT’S IMPLEMENTATION
certificate.
BOOTSTRAP
1
CA
Node
SWARMKIT’S IMPLEMENTATION
certificate.
BOOTSTRAP
1 2
CA
Node
SWARMKIT’S IMPLEMENTATION
Public key material.
BOOTSTRAP
1 2 3
CA
Node
SWARMKIT’S IMPLEMENTATION
RENEW
Valid From Valid Until 50% 80%
SWARMKIT’S IMPLEMENTATION
2.Get certificate. (mTLS)
RENEW
1 2
CA
Node
SWARMKIT’S IMPLEMENTATION
RENEW
Restart
to managers
SWARMKIT’S IMPLEMENTATION
RENEW
SWARMKIT’S IMPLEMENTATION
RENEW
SWARMKIT’S IMPLEMENTATION
RENEW
Server
Existing connections New connections
SWARMKIT’S IMPLEMENTATION
RENEW
Client
Existing connections New connections
SWARMKIT’S IMPLEMENTATION
REVOKE
SWARMKIT’S IMPLEMENTATION
REVOKE
SWARMKIT’S IMPLEMENTATION
REMOVE
CRLS, OCSP [Stapling]
REMOVE
SWARMKIT’S IMPLEMENTATION
NODE BLACKLIST
Node ID Certificate Expiry
a8h1vsk3k9o5nwea858ty9kma 2017-08-26 01:02:52 UTC k80l2au3yq9f7x6r2oca13vwt 2017-07-15 11:35:23 UTC n970d5be9ccgnreg4iti4jho3 2017-08-01 22:59:05 UTC
REMOVE
SWARMKIT’S IMPLEMENTATION
Worker/Manager Manager
Request Validate node ID against blacklist Authorize role Perform work Response
Worker/Manager Manager
REMOVE
SWARMKIT’S IMPLEMENTATION
BLACKLIST VS WHITELIST
REMOVE
SWARMKIT’S IMPLEMENTATION
Manager Manager Manager delayed join
REMOVE
SWARMKIT’S IMPLEMENTATION
Manager Manager Manager
Rotate CA
PROBLEM
CA ROTATION
PROBLEM
1
CA ROTATION
PROBLEM
1 2
CA ROTATION
PROBLEM
1 2 3
CROSS-SIGNED INTERMEDIATE
Root A
Key Info: A Signed by: A
Root
B Key Info: B Signed by: B
Root
B X Leaf cert: X Signed by: B Root: B
PRINCIPLE
CROSS-SIGNED INTERMEDIATE
Root A
Key Info: A Signed by: A
Root
B Key Info: B Signed by: B
Root
A X Leaf cert: X Signed by: B Root: A
PRINCIPLE
CROSS-SIGNED INTERMEDIATE
Root A
Key Info: A DN: A Signed by: A
Root
B Key Info: B DN: B Signed by: B Key Info: B DN: B Signed by: A
Root A Root A
Intermediate
B’
PRINCIPLE
Leaf cert: X Signed by: B’ Root: A
Root A Root A
Intermediate
B’ X
CROSS-SIGNED INTERMEDIATE
PRINCIPLE
Root A Root A
Intermediate
B’
Root B
Leaf cert: X Signed by: B Root: B X
CROSS-SIGNED INTERMEDIATE
PRINCIPLE
CA ROTATION
SWARMKIT’S IMPLEMENTATION
CA ROTATION
SWARMKIT’S IMPLEMENTATION
1
CA ROTATION
SWARMKIT’S IMPLEMENTATION
1 2
CA ROTATION: BEFORE ROTATION
SWARMKIT’S IMPLEMENTATION
Node Trust Root: Node TLS Certificate: Cluster Trust Root: Cluster Cert Issuer:
Root A Root A Root A Root A Root A
Z
CA ROTATION: START ROTATION
SWARMKIT’S IMPLEMENTATION
Node Trust Root: Node TLS Certificate:
Root A Root A Root A
Intermediate
B’ Cluster Trust Root: Cluster Cert Issuer:
Root A Root A Root A
Z
CA ROTATION: NODE CERT RENEWAL
SWARMKIT’S IMPLEMENTATION
Node Trust Root: Node TLS Certificate:
Root A Root A Root A
Intermediate
B’ Cluster Trust Root: Cluster Cert Issuer:
Root A
Root
A
Root A
Intermediate
B X
CA ROTATION: NODE CERT RENEWAL
SWARMKIT’S IMPLEMENTATION Node1 Node2 Node3 Node4 Node5 Trust Root TLS Certificate
Root A
Root A Z RootA
Ro A
IntermediateB X
RootA
Ro A
IntermediateB X
RootA
Ro A
IntermediateB X
Root A ZRoot A Root A Root A Root A
CA ROTATION: ROTATE TRUST ROOT
SWARMKIT’S IMPLEMENTATION
Node Trust Root: Node TLS Certificate:
Root B
Cluster Trust Root: Cluster Cert Issuer:
Root B
Root A
Root A
Intermediate
B
Root
B X
Root A Root A
Intermediate
B’
CA ROTATION: ROTATE TRUST ROOT
SWARMKIT’S IMPLEMENTATION Node1 Node2 Node3 Node4 Node5 Trust Root TLS Certificate
Root B Root B Root B
RootA
Ro A
IntermediateB X
RootA
Ro A
IntermediateB X
RootA
Ro A
IntermediateB X
RootA
Ro A
IntermediateB X
RootA
Ro A
IntermediateB X
Root A Root A
CA ROTATION: FINISH ROOT ROTATION
SWARMKIT’S IMPLEMENTATION
Node Trust Root: Node TLS Certificate:
Root B
Cluster Trust Root: Cluster Cert Issuer:
Root B Root B
Root A
Root A
Intermediate
B
Root
B X
SUMMARY
MINIMIZING THE WINDOW OF COMPROMISE
SUMMARY
MINIMIZING THE WINDOW OF COMPROMISE
SUMMARY
MINIMIZING THE WINDOW OF COMPROMISE
SUMMARY
MORE INFORMATION
https://github.com/docker/swarmkit
https://diogomonica.com/2017/01/11/hitless-tls-certificate-rotation-in-go/
https://github.com/cloudflare/cfssl
(@cyli)