Encryption At-Rest and In-Transit: Survival Guide
Toni de la Fuente
Lead SecOps and Security Architect
Edinburgh, January 30th 2019
Learn. Connect. Collaborate.
Who am I
Click to speaker
Agenda • Requirements
• Encryption Foundations
• Encryption At-Rest
– Native on premises
– Third party on premises
– Cloud
• Encryption In-Transit
– TLS and mTLS
– Service to Service
– Service Mesh
Requirements
Learn. Connect. Collaborate.
Requirements:
• Organization policies
and compliance
• Industry or
government
regulations
• Protect privacy
• Minimizes
unauthorized access
to data
CIA triad:
Information
Security
Integrity
Availability
Confidentiality
Authenticity
Accountability
Non-repudiation
Encryption Foundations
Learn. Connect. Collaborate.
Foundations
• Encryption keeps confidentiality and a key un-encrypt: AES
(symmetric), Blowfish (symmetric), RSA (asymmetric)
• Hashing checks integrity of data by creating a hash or digest
with one-way function (signatures): SHA, MD5, MD4, etc.
• Encoding is for maintaining data usability and can be reversed
by employing the same algorithm that encoded the content:
ASCII, Unicode, URL Encoding, Base64
• Obfuscation is used to prevent people from understanding the
meaning of something, like source code
Learn. Connect. Collaborate.
Symmetric key encryption
Alice wants to send an encrypted
message to Boriss:
Key
(1234)
Plaintext
Ciphertext
A B C D E F G H I J K
99rwV+HMzEX4ux1O9t0TwQ==
Algorithm
Blowfish, AES,
DES, TripleDES,
etc.
They both use
the same key to
encrypt and
decryptThis process is usually FAST
Learn. Connect. Collaborate.
Asymmetric key encryption: public and private keys
Alice wants to send an encrypted
message to Boriss:
Alice uses Boriss’
Public Key
(1234)
Plaintext
Ciphertext
A B C D E F G H I J K
99rwV+HMzEX4ux1O9t0TwQ==
Algorithm
RSA, ElGamal,
etc.
Boriss uses his Private
Key to decrypt
(5678)
Alice only
needs to know
Bob’s public
keyThis process is usually SLOW
Learn. Connect. Collaborate.
Certificates: X.509 (RFC6818)
A certificate has:
• subject name
• subject’s public key
• issuer name (CA name)
• validity
• signed by CA
Learn. Connect. Collaborate.
Tools and Common File Formats
• Many tools like OpenSSL, keytool, cfssl, mkcert, minica
• Encoding:
– DER: binary cert encoded with DER .cer or .crt files
– PEM: ASCII (base64 encoded) cert .cer or .crt or .pem files
“----BEGIN CERTIFICATE----” “----END CERTIFICATE----”
• File extension:
– .crt: Unix/Linux convention for a DER or Base64 PEM
– .cer: MS convention for a DER or Base64 PEM
– .key: public or private key PKCS#8. DER or PEM
Encryption at-rest
Learn. Connect. Collaborate.
What is encryption at-rest?
Protect stored data from unauthorized access
using encryption at block, file, directory, file
system or full disk level with keys
Learn. Connect. Collaborate.
Where do we store information today?
• Alfresco CS Content Store
• Alfresco CS Database
• Alfresco CS Indexes
• Alfresco CS Shared File Store (new Transformation Service)
• Alfresco PS Database
• Alfresco Identity Database (Keycloak)
• Alfresco mobile Apps
DBs
DBs
DBs
File
System
Network
Storage
Learn. Connect. Collaborate.
How can we encrypt stored data?
• Natively → Encryption add-on for Alfresco Content Store (application
side encryption)
Repo Storage
doc doc doc doc
Encrypted content
store feature
added
DB
Indexes /
Transformations
• Uses Java Cryptography Extension
(supports HW encryption)
• Each content element encrypted with
individual symmetric key (AES 128 bit
default). Symmetric keys are stored in
alf_content_url_encryption table
• Content keys then encrypted with
asymmetric master key-pair (RSA)
Learn. Connect. Collaborate.
How can we encrypt stored data?
• Third parties → for Alfresco Content Store and everything else
Repo Storage
doc doc doc doc
Encrypted content
store feature
added
DB
Indexes /
Transformations
• File system level tools
• AWS EBS or S3 Server Side
Encryption, RDS volume
encryption
• MSSQL or Oracle TDE
An introduction to mTLS and Service Mesh
Encryption in-transit
Learn. Connect. Collaborate.
Intro
• What is encryption in-transit?
• TLS and mTLS
• SSL Offloading
• Our Research and POCs:
– Service to Service
– Service Mesh
Learn. Connect. Collaborate.
What is encryption in-transit?
Protect moving data from unauthorized
access using encryption on the wire with
protocols like TLS or IPsec and keys
Learn. Connect. Collaborate.
TLS and mTLS
• SSL/TLS History:
– 1995: SSL v2 (deprecated in 2011)
– 1996: SSL v3 (deprecated in 2015)
– 1999: TLS 1.0 (deprecation 2020) *
– 2006: TLS 1.1 (deprecation 2020) *
– 2008: TLS 1.2 *
– 2018: TLS 1.3
* Vulnerable depending on browser or cipher
used (POODLE, FREAK RC4 attacks and
others)
• TLS: are cryptographic protocols
that provide communications
security over a computer network.
It uses symmetric cryptography
to encrypt data transmitted and
public-key cryptography for
authentication. Authentication
usually is from the server side only
(using X.509 certs).
• mTLS: mutual authentication using
X.509 cert, commonly used
between servers, applications or
services.
Learn. Connect. Collaborate.
SSL Offloading
Repo Storage
doc doc doc doc
DBs
File System
Indexes /
Transformations
Service A
Service B
Service C
Service D
Service E Service F
HTTP over
TLS
LB
Plain HTTP
Learn. Connect. Collaborate.
How does TLS and mTLS look like together?
Repo Storage
doc doc doc doc
DBs
File System
Indexes /
Transformations
Service A
Service B
Service C
Service D
Service E Service FJDBC over
TLS
HTTP over
TLS
HTTP over
TLS with
mutual
Authenticati
on = mTLS
LB
HTTP over
TLS
Learn. Connect. Collaborate.
mTLS: Java Implementation High Level Overview
Service A
Service C
Service B
-Service A is client of Service
B and server for Service C
-Service B is client for Service
C and server for Service A
-Service C is client for Service
A and server for Service B
Client Server
keystore
truststore
keystore
truststore
1. Service connection requested
2. Provides server certificate
3. Client
verifies
server cert
authenticity
using CA
cert
4. Provides client certificate
5. Server
Verifies
client cert
authenticity
using CA
cert
6. They agree and share a
symmetric session key for
encryption and decryption and
communication starts
Server
Certific
ate
Server
Private
Key
CA
Certific
ate
CA
Certific
ate
Client
Certific
ate
Client
Private
Key
Disclaimer
• The information contained in these presentations is intended to inform the
developer community based on a working prototype and should not be relied
upon in making purchasing decisions.
• The content is for informational purposes only and may not be incorporated into
any contract.
• The information presented is not a commitment, promise, or legal obligation to
deliver any material, code or functionality.
• Any references to the development, release, and timing of any features or
functionality described for these products remains at Alfresco's sole discretion
• Product capabilities, timeframes and features are subject to change and should
not be viewed as Alfresco commitments.
Learn. Connect. Collaborate.
Our Research
Service to Service Service Mesh
Remember:
We want to see what is the best way to implement encryption and authentication between services!
Tested with Alfresco CS 6.1, our Helm charts and EKS in AWS.
But Let’s Recap First
Learn. Connect. Collaborate.
Internet
LB /
Proxy
Tomcat Tomcat Tomcat
DB
File
Storage
1. Load balancing
2. Application
3. Data
#10YearsChallenge
2009
Learn. Connect. Collaborate.
#10YearsChallenge
2019
Learn. Connect. Collaborate.
Layers!
+ Virtual
Machine
+ Host
+ Infrastructure
vendor
https://adam.shostack.org/blog/2018/05/threat-model-thursday-google-on-kubernetes/
Java VM
SIMPLICITY IS GONE
Learn. Connect. Collaborate.
Service-to-Service Encryption in-transit and
Authentication POC
• mTLS configuration per service/microservice
• Automated with customized Helm chart and
services
• Repo and Solr communication was already
mTLS
• Limitations:
– Repository service can’t do mTLS with
transformation services: handshake fails
– SSL certificate CN must match with
domain name of internal services
(requires usage of a CA)
– mTLS between ELB and ingress
– Automating certificate generation via
Helm chart
Kudos to Abdul Mohammed!
Learn. Connect. Collaborate.
Service Mesh Intro
• Challenges managing microservice architecture or service-oriented architecture
– Multiple services, different IP, different hosts
– Routing and discovery challenges
– Network security challenges
– Compatibility
– Multi-level network awareness
• Patterns:
– Sidecar
– Ambassador
– Adapter or Node Agent
• Known open source options:
– Istio (Google, IBM and Lyft) - mTLS stable
– Linkerd (Buoyant.io) - mTLS experimental
– Consul (Hashicorp) - mTLS through Consul Connect
– App Mesh (AWS) preview - no mTLS support
Learn. Connect. Collaborate.
Istio Requirements and Features
• Requirements:
– For us: end-to-end encryption and authentication
– Discovery, load balancing, failure recovery, metrics, monitoring, A/B testing, canary
releases, rate limiting and access control.
• Istio Features:
– Automatic load balancing for HTTP, gRPC, WebSocket, and TCP traffic.
– Fine-grained control of traffic behavior with rich routing rules, retries, failovers, and fault
injection.
– A pluggable policy layer and configuration API supporting access controls, rate limits and
quotas.
– Automatic metrics, logs, and traces for all traffic within a cluster, including cluster ingress
and egress.
– Secure service-to-service communication in a cluster with strong identity-based
authentication and authorization.
Learn. Connect. Collaborate.
Istio Architecture
● Data Plane
● Control Plane
● Components:
● Envoy: proxy per
{micro}service
● Mixer: policies,
telemetry and plugins
● Pilot: service discovery
● Citadel: manages certs
for authorization and
authentication
● Galley: istio API
● Others: ingress and
egress gateways,
injector, etc.
https://istio.io/docs/concepts/security/architecture.svg
Demo
Learn. Connect. Collaborate.
Related
Sessions
• TODAY
– 13:30-14:00 Shea Nangle: Best Practices for
DIY Alfresco Security
– 15:00-15:30 Gavin Cornwell & Morris Singer:
Alfresco Digital Business Platform on EKS
• TOMORROW
– 15:00-15:30 Sergiu Vidrascu: Developing on
Kubernetes
– 15:00-15:30 Ciju Joseph: Azure Devops and
Alfresco DBP
– 16:00-16:30 Luis Cabaciera & Victor Moreira:
GDPR Watchdog
Questions?
Thanks!
Learn. Connect. Collaborate.
References and
Recommended
Lectures
• Liz Rice: GopherCon 2018: The Go Programmer's Guide to Secure
Connections https://www.youtube.com/watch?v=kxKLYDLzuHA
• Hanno: CCC 2018: The Rocky Road to TLS 1.3 and better Internet
Encryption https://media.ccc.de/v/35c3-9607-
the_rocky_road_to_tls_1_3_and_better_internet_encryption

More Related Content

PPTX
Alfresco tuning part1
PPTX
Alfresco Certificates
PDF
Alfresco Security Best Practices Guide
PPTX
Alfresco tuning part2
PDF
Alfresco security best practices CHECK LIST ONLY
PPTX
Alfresco tuning part1
PPTX
Alfresco search services: Now and Then
PPTX
Alfresco tuning part1
Alfresco Certificates
Alfresco Security Best Practices Guide
Alfresco tuning part2
Alfresco security best practices CHECK LIST ONLY
Alfresco tuning part1
Alfresco search services: Now and Then

What's hot (20)

PDF
Alfresco Backup and Disaster Recovery White Paper
PPTX
Introduction To Terraform
PDF
Collaborative Editing Tools for Alfresco
PDF
Alfresco Security Best Practices 2014
PPTX
From zero to hero Backing up alfresco
PPTX
(Re)Indexing Large Repositories in Alfresco
PDF
Ef09 installing-alfresco-components-1-by-1
PDF
Introduction to IAC and Terraform
PPTX
Alfresco DevCon 2019 Performance Tools of the Trade
PPTX
PPTX
Infrastructure-as-Code (IaC) using Terraform
PPTX
Discovering the 2 in Alfresco Search Services 2.0
PPTX
Terraform
PPTX
Final terraform
PDF
Native Support of Prometheus Monitoring in Apache Spark 3.0
PDF
Alexei vladishev - Open Source Monitoring With Zabbix
PPTX
Terraform on Azure
PDF
Terraform: Infrastructure as Code
PDF
Log analysis with the elk stack
PPTX
Alfresco Development Framework Basic
Alfresco Backup and Disaster Recovery White Paper
Introduction To Terraform
Collaborative Editing Tools for Alfresco
Alfresco Security Best Practices 2014
From zero to hero Backing up alfresco
(Re)Indexing Large Repositories in Alfresco
Ef09 installing-alfresco-components-1-by-1
Introduction to IAC and Terraform
Alfresco DevCon 2019 Performance Tools of the Trade
Infrastructure-as-Code (IaC) using Terraform
Discovering the 2 in Alfresco Search Services 2.0
Terraform
Final terraform
Native Support of Prometheus Monitoring in Apache Spark 3.0
Alexei vladishev - Open Source Monitoring With Zabbix
Terraform on Azure
Terraform: Infrastructure as Code
Log analysis with the elk stack
Alfresco Development Framework Basic
Ad

Similar to Alfresco DevCon 2019: Encryption at-rest and in-transit (20)

PPTX
All you need to know about transport layer security
PPTX
Certificate pinning in android applications
PPTX
Chapter 2 Overview of Commercial Issues.pptx
PPTX
Cyber security workshop talk.pptx
PDF
15 intro to ssl certificate & pki concept
PDF
Network Security_Module_2_Dr Shivashankar
PPTX
Hybrid - Seguridad en Contenedores v3.pptx
PDF
F5 TLS & SSL Practices
PDF
Deploying Next Generation Firewalling with ASA - CX
PPT
PDF
Introduction of an SSL Certificate
PPTX
Protecting Sensitive Data (and be PCI Compliant too!)
PDF
An Introduction to DANE - Securing TLS using DNSSEC
PDF
1.5 Partition, lower bounds key , secrecy, ciphers.pdf
PDF
Webinar SSL English
PDF
Dr. Omar Ali Alibrahim - Ssl talk
PPTX
Certificates, PKI, and SSL/TLS for infrastructure builders and operators
PPTX
Cloud security privacy- org
PPTX
Network Design and Security Best Practices
PPTX
CLOUD SECURITY.pptx
All you need to know about transport layer security
Certificate pinning in android applications
Chapter 2 Overview of Commercial Issues.pptx
Cyber security workshop talk.pptx
15 intro to ssl certificate & pki concept
Network Security_Module_2_Dr Shivashankar
Hybrid - Seguridad en Contenedores v3.pptx
F5 TLS & SSL Practices
Deploying Next Generation Firewalling with ASA - CX
Introduction of an SSL Certificate
Protecting Sensitive Data (and be PCI Compliant too!)
An Introduction to DANE - Securing TLS using DNSSEC
1.5 Partition, lower bounds key , secrecy, ciphers.pdf
Webinar SSL English
Dr. Omar Ali Alibrahim - Ssl talk
Certificates, PKI, and SSL/TLS for infrastructure builders and operators
Cloud security privacy- org
Network Design and Security Best Practices
CLOUD SECURITY.pptx
Ad

More from Toni de la Fuente (20)

PPTX
SANS Cloud Security Summit 2018: Forensics as a Service
PPTX
OWASP Atlanta 2018: Forensics as a Service
PPTX
Alfresco DevCon 2018: From Zero to Hero Backing up Alfresco
PDF
Alabama CyberNow 2018: Cloud Hardening and Digital Forensics Readiness
PPTX
Prowler: BlackHat Europe Arsenal 2018
PPTX
TTL Alfresco Product Security and Best Practices 2017
PPTX
Automate or die! Rootedcon 2017
PDF
Seguridad en Internet para todos los públicos
PDF
Storage and Alfresco
PPTX
Alfresco One (Enterprise) vs Alfresco Community 2014
PPTX
Alfresco Backup and Recovery Tool: a real world backup solution for Alfresco
PDF
Comparativa entre Alfresco Enterprise vs Community
PDF
Alfresco Security Best Practices 2012
PPT
Monitoring Alfresco with Nagios/Icinga
PPTX
Nuevo Alfresco Records Management 2.0
PDF
Consejos de seguridad con Alfresco
PDF
Alfresco y SOLR, presentación en español
PDF
Alfresco Day Madrid - Jeff Potts - Community
PDF
Alfresco Day Madrid - Jeff Potts - Activiti
PDF
Alfresco Day Madrid - Partner - VASS
SANS Cloud Security Summit 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a Service
Alfresco DevCon 2018: From Zero to Hero Backing up Alfresco
Alabama CyberNow 2018: Cloud Hardening and Digital Forensics Readiness
Prowler: BlackHat Europe Arsenal 2018
TTL Alfresco Product Security and Best Practices 2017
Automate or die! Rootedcon 2017
Seguridad en Internet para todos los públicos
Storage and Alfresco
Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco Backup and Recovery Tool: a real world backup solution for Alfresco
Comparativa entre Alfresco Enterprise vs Community
Alfresco Security Best Practices 2012
Monitoring Alfresco with Nagios/Icinga
Nuevo Alfresco Records Management 2.0
Consejos de seguridad con Alfresco
Alfresco y SOLR, presentación en español
Alfresco Day Madrid - Jeff Potts - Community
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Partner - VASS

Recently uploaded (20)

PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPTX
The various Industrial Revolutions .pptx
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
Unlock new opportunities with location data.pdf
DOCX
search engine optimization ppt fir known well about this
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
sustainability-14-14877-v2.pddhzftheheeeee
Enhancing emotion recognition model for a student engagement use case through...
A contest of sentiment analysis: k-nearest neighbor versus neural network
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Module 1.ppt Iot fundamentals and Architecture
Univ-Connecticut-ChatGPT-Presentaion.pdf
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
The various Industrial Revolutions .pptx
Getting started with AI Agents and Multi-Agent Systems
Unlock new opportunities with location data.pdf
search engine optimization ppt fir known well about this
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
A novel scalable deep ensemble learning framework for big data classification...
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
observCloud-Native Containerability and monitoring.pptx
WOOl fibre morphology and structure.pdf for textiles
Group 1 Presentation -Planning and Decision Making .pptx
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game

Alfresco DevCon 2019: Encryption at-rest and in-transit

  • 1. Encryption At-Rest and In-Transit: Survival Guide Toni de la Fuente Lead SecOps and Security Architect Edinburgh, January 30th 2019
  • 2. Learn. Connect. Collaborate. Who am I Click to speaker
  • 3. Agenda • Requirements • Encryption Foundations • Encryption At-Rest – Native on premises – Third party on premises – Cloud • Encryption In-Transit – TLS and mTLS – Service to Service – Service Mesh
  • 5. Learn. Connect. Collaborate. Requirements: • Organization policies and compliance • Industry or government regulations • Protect privacy • Minimizes unauthorized access to data CIA triad: Information Security Integrity Availability Confidentiality Authenticity Accountability Non-repudiation
  • 7. Learn. Connect. Collaborate. Foundations • Encryption keeps confidentiality and a key un-encrypt: AES (symmetric), Blowfish (symmetric), RSA (asymmetric) • Hashing checks integrity of data by creating a hash or digest with one-way function (signatures): SHA, MD5, MD4, etc. • Encoding is for maintaining data usability and can be reversed by employing the same algorithm that encoded the content: ASCII, Unicode, URL Encoding, Base64 • Obfuscation is used to prevent people from understanding the meaning of something, like source code
  • 8. Learn. Connect. Collaborate. Symmetric key encryption Alice wants to send an encrypted message to Boriss: Key (1234) Plaintext Ciphertext A B C D E F G H I J K 99rwV+HMzEX4ux1O9t0TwQ== Algorithm Blowfish, AES, DES, TripleDES, etc. They both use the same key to encrypt and decryptThis process is usually FAST
  • 9. Learn. Connect. Collaborate. Asymmetric key encryption: public and private keys Alice wants to send an encrypted message to Boriss: Alice uses Boriss’ Public Key (1234) Plaintext Ciphertext A B C D E F G H I J K 99rwV+HMzEX4ux1O9t0TwQ== Algorithm RSA, ElGamal, etc. Boriss uses his Private Key to decrypt (5678) Alice only needs to know Bob’s public keyThis process is usually SLOW
  • 10. Learn. Connect. Collaborate. Certificates: X.509 (RFC6818) A certificate has: • subject name • subject’s public key • issuer name (CA name) • validity • signed by CA
  • 11. Learn. Connect. Collaborate. Tools and Common File Formats • Many tools like OpenSSL, keytool, cfssl, mkcert, minica • Encoding: – DER: binary cert encoded with DER .cer or .crt files – PEM: ASCII (base64 encoded) cert .cer or .crt or .pem files “----BEGIN CERTIFICATE----” “----END CERTIFICATE----” • File extension: – .crt: Unix/Linux convention for a DER or Base64 PEM – .cer: MS convention for a DER or Base64 PEM – .key: public or private key PKCS#8. DER or PEM
  • 13. Learn. Connect. Collaborate. What is encryption at-rest? Protect stored data from unauthorized access using encryption at block, file, directory, file system or full disk level with keys
  • 14. Learn. Connect. Collaborate. Where do we store information today? • Alfresco CS Content Store • Alfresco CS Database • Alfresco CS Indexes • Alfresco CS Shared File Store (new Transformation Service) • Alfresco PS Database • Alfresco Identity Database (Keycloak) • Alfresco mobile Apps DBs DBs DBs File System Network Storage
  • 15. Learn. Connect. Collaborate. How can we encrypt stored data? • Natively → Encryption add-on for Alfresco Content Store (application side encryption) Repo Storage doc doc doc doc Encrypted content store feature added DB Indexes / Transformations • Uses Java Cryptography Extension (supports HW encryption) • Each content element encrypted with individual symmetric key (AES 128 bit default). Symmetric keys are stored in alf_content_url_encryption table • Content keys then encrypted with asymmetric master key-pair (RSA)
  • 16. Learn. Connect. Collaborate. How can we encrypt stored data? • Third parties → for Alfresco Content Store and everything else Repo Storage doc doc doc doc Encrypted content store feature added DB Indexes / Transformations • File system level tools • AWS EBS or S3 Server Side Encryption, RDS volume encryption • MSSQL or Oracle TDE
  • 17. An introduction to mTLS and Service Mesh
  • 19. Learn. Connect. Collaborate. Intro • What is encryption in-transit? • TLS and mTLS • SSL Offloading • Our Research and POCs: – Service to Service – Service Mesh
  • 20. Learn. Connect. Collaborate. What is encryption in-transit? Protect moving data from unauthorized access using encryption on the wire with protocols like TLS or IPsec and keys
  • 21. Learn. Connect. Collaborate. TLS and mTLS • SSL/TLS History: – 1995: SSL v2 (deprecated in 2011) – 1996: SSL v3 (deprecated in 2015) – 1999: TLS 1.0 (deprecation 2020) * – 2006: TLS 1.1 (deprecation 2020) * – 2008: TLS 1.2 * – 2018: TLS 1.3 * Vulnerable depending on browser or cipher used (POODLE, FREAK RC4 attacks and others) • TLS: are cryptographic protocols that provide communications security over a computer network. It uses symmetric cryptography to encrypt data transmitted and public-key cryptography for authentication. Authentication usually is from the server side only (using X.509 certs). • mTLS: mutual authentication using X.509 cert, commonly used between servers, applications or services.
  • 22. Learn. Connect. Collaborate. SSL Offloading Repo Storage doc doc doc doc DBs File System Indexes / Transformations Service A Service B Service C Service D Service E Service F HTTP over TLS LB Plain HTTP
  • 23. Learn. Connect. Collaborate. How does TLS and mTLS look like together? Repo Storage doc doc doc doc DBs File System Indexes / Transformations Service A Service B Service C Service D Service E Service FJDBC over TLS HTTP over TLS HTTP over TLS with mutual Authenticati on = mTLS LB HTTP over TLS
  • 24. Learn. Connect. Collaborate. mTLS: Java Implementation High Level Overview Service A Service C Service B -Service A is client of Service B and server for Service C -Service B is client for Service C and server for Service A -Service C is client for Service A and server for Service B Client Server keystore truststore keystore truststore 1. Service connection requested 2. Provides server certificate 3. Client verifies server cert authenticity using CA cert 4. Provides client certificate 5. Server Verifies client cert authenticity using CA cert 6. They agree and share a symmetric session key for encryption and decryption and communication starts Server Certific ate Server Private Key CA Certific ate CA Certific ate Client Certific ate Client Private Key
  • 25. Disclaimer • The information contained in these presentations is intended to inform the developer community based on a working prototype and should not be relied upon in making purchasing decisions. • The content is for informational purposes only and may not be incorporated into any contract. • The information presented is not a commitment, promise, or legal obligation to deliver any material, code or functionality. • Any references to the development, release, and timing of any features or functionality described for these products remains at Alfresco's sole discretion • Product capabilities, timeframes and features are subject to change and should not be viewed as Alfresco commitments.
  • 26. Learn. Connect. Collaborate. Our Research Service to Service Service Mesh Remember: We want to see what is the best way to implement encryption and authentication between services! Tested with Alfresco CS 6.1, our Helm charts and EKS in AWS.
  • 28. Learn. Connect. Collaborate. Internet LB / Proxy Tomcat Tomcat Tomcat DB File Storage 1. Load balancing 2. Application 3. Data #10YearsChallenge 2009
  • 30. Learn. Connect. Collaborate. Layers! + Virtual Machine + Host + Infrastructure vendor https://adam.shostack.org/blog/2018/05/threat-model-thursday-google-on-kubernetes/ Java VM
  • 32. Learn. Connect. Collaborate. Service-to-Service Encryption in-transit and Authentication POC • mTLS configuration per service/microservice • Automated with customized Helm chart and services • Repo and Solr communication was already mTLS • Limitations: – Repository service can’t do mTLS with transformation services: handshake fails – SSL certificate CN must match with domain name of internal services (requires usage of a CA) – mTLS between ELB and ingress – Automating certificate generation via Helm chart Kudos to Abdul Mohammed!
  • 33. Learn. Connect. Collaborate. Service Mesh Intro • Challenges managing microservice architecture or service-oriented architecture – Multiple services, different IP, different hosts – Routing and discovery challenges – Network security challenges – Compatibility – Multi-level network awareness • Patterns: – Sidecar – Ambassador – Adapter or Node Agent • Known open source options: – Istio (Google, IBM and Lyft) - mTLS stable – Linkerd (Buoyant.io) - mTLS experimental – Consul (Hashicorp) - mTLS through Consul Connect – App Mesh (AWS) preview - no mTLS support
  • 34. Learn. Connect. Collaborate. Istio Requirements and Features • Requirements: – For us: end-to-end encryption and authentication – Discovery, load balancing, failure recovery, metrics, monitoring, A/B testing, canary releases, rate limiting and access control. • Istio Features: – Automatic load balancing for HTTP, gRPC, WebSocket, and TCP traffic. – Fine-grained control of traffic behavior with rich routing rules, retries, failovers, and fault injection. – A pluggable policy layer and configuration API supporting access controls, rate limits and quotas. – Automatic metrics, logs, and traces for all traffic within a cluster, including cluster ingress and egress. – Secure service-to-service communication in a cluster with strong identity-based authentication and authorization.
  • 35. Learn. Connect. Collaborate. Istio Architecture ● Data Plane ● Control Plane ● Components: ● Envoy: proxy per {micro}service ● Mixer: policies, telemetry and plugins ● Pilot: service discovery ● Citadel: manages certs for authorization and authentication ● Galley: istio API ● Others: ingress and egress gateways, injector, etc. https://istio.io/docs/concepts/security/architecture.svg
  • 36. Demo
  • 37. Learn. Connect. Collaborate. Related Sessions • TODAY – 13:30-14:00 Shea Nangle: Best Practices for DIY Alfresco Security – 15:00-15:30 Gavin Cornwell & Morris Singer: Alfresco Digital Business Platform on EKS • TOMORROW – 15:00-15:30 Sergiu Vidrascu: Developing on Kubernetes – 15:00-15:30 Ciju Joseph: Azure Devops and Alfresco DBP – 16:00-16:30 Luis Cabaciera & Victor Moreira: GDPR Watchdog
  • 40. Learn. Connect. Collaborate. References and Recommended Lectures • Liz Rice: GopherCon 2018: The Go Programmer's Guide to Secure Connections https://www.youtube.com/watch?v=kxKLYDLzuHA • Hanno: CCC 2018: The Rocky Road to TLS 1.3 and better Internet Encryption https://media.ccc.de/v/35c3-9607- the_rocky_road_to_tls_1_3_and_better_internet_encryption