[Cluj] Turn SSL ON

OWASP EEE
Turn SSL ON: Your Own Certificate Authority - Or simply
use “Let's Encrypt”
Presenter: Ovidiu CICAL
Senior Software and Security Engineer
Cluj-Napoca - Romania
SSL (or TLS to be more correct since is the
most recent and secured one) is a
cryptographic protocol designed to provide
secured communications. It ensures:
Privacy (data not sent in plain);
Integrity (data has not been altered in
motion);
Trust (data belongs to the trusted source).
Short history (OpenSSL & Wikipedia):
SSL 1.0, 2.0 and 3.0
Developed by Netscape's engineers, SSL 1.0 never saw the
light of day due to security flows.
SSL 2.0 - Released 1995 - lasted just about one year, again
from serious security flows. In was replaced by SSL 3.0 in
1996.
In 2014, SSL 3.0 was found to be vulnerable to the
POODLE attack that affects all block ciphers in SSL; and
RC4, the only non-block cipher supported by SSL 3.0, is also
feasibly broken as used in SSL 3.0.
TLS 1.0, 1.1, 1.2 and 1.3 (draft)
TLS 1.0 - Released 1999 - an upgrade from SSL 3.0. The differences are significant enough that SSL
3.0 and TLS 1.0 don't inter-operate Some of the major differences between them are:
- MACs are different - SSL 3.0 uses a modification of an early HMAC while TLS 1.0 uses HMAC;
TLS 1.1 - Released 2006 - is an update to TLS 1.0. The major change is (along with many more):
- The Implicit Initialization Vector (IV) is replaced with an explicit IV to protect against Cipher
block chaining (CBC) attacks.
TLS 1.2 - Released 2008 - based on TLS 1.1 - contains improved flexibility and lots of security fixes.
TLS 1.3 (draft) - As of October 2015, TLS 1.3 is a working draft. Major differences from TLS 1.2 include:
- Dropped support for many insecure or obsolete features including, compression, renegotiation,
static RSA and DH key exchange, Change Cipher Spec protocol, Hello message UNIX time etc;
- Prohibition of SSL or RC4 negotiation for backwards compatibility;
- Removed support for MD5 and SHA-224 hashes with signatures;
TLS Implementations:
There are several TLS implementations which are free
software and open source. The most notable ones are:
OpenSSL – most common one;
LibreSSL;
MatrixSSL;
GnuTLS;
cryptlib (used in C);
Java Secure Socket Extension (JSSE from Oracle);
PolarSSL (changed name recently);
CyaSSL (changed name recently).
Your own CA - Certificate Authority
A certificate authority (CA) is an entity that signs digital
certificates. Many websites need to let their customers know
that the connection is secure, so they pay an internationally
trusted CA (eg, VeriSign, DigiCert) to sign a certificate for
their domain.
In some cases it may make more sense to act as your own
CA, rather than paying a CA like DigiCert. Common cases
include securing an intranet website, or for issuing
certificates to clients to allow them to authenticate to a
server (eg, Apache, nginx or OpenVPN).
Example of creating your Certificate Authority:
I will use OpenSSL for this example. The steps are really easy and the result is amazing. I have the
OpenSSL commands available for each step, if some of your are interested in implementing own CA,
just ask for them and I'll email them to you (I will append them anyway at this presentation and make it
public on the Wiki).
1. Configuration file - This is very important as you will be acting as a CA from now on, so you will do a
lot o repetitive work when generating certificates. There are lots of options in this file, documentation
from OpenSSL is very generous;
2. Create the root key - Create the root key and keep it absolutely secure. The root key can issue
trusted certificates. Encrypt the root key with AES 256-bit encryption and a strong password. Also, use
4096 for root and intermediate authority keys;
3. Create the root certificate - Use the root key to create a root certificate. Give the root certificate a long
expiry date, such as 10 or 20 years. Once the root certificate expires, all certificates signed by the CA
become invalid. Also, specify the path to your OpenSSL configuration file, otherwise will default to the
systems' one;
4. A very good practice is to issue an Intermediate CA, which will be later used in different branches of
your application(s). This way, you can keep the root key privatelly and in case of loosing the intermediate
key, you can revoke it and create a new intermediate CA. The steps to create this CA are the same as
above except that you will use root key for this;
5. Create a Certificate Chain by combining the root certificate with the intermediate certificate
concatenating them;
Next steps:
The next obvious step is sign server or client certificates.
This is not the purpose of this presentation, but the main
idea is that you will act as a third-party to the root CA from
now on and you will need to create your own private key and
certificate signing request (CSR).
After you have the two resources above, you will present
the CSR to the root CA generated above which will return a
signed certificate that works only with your private key and
you must add the key and signed certificate, along with the
Chain certificate to the Web Server of your choice.
Let's Encrypt
I proposed the subject for this presentation a couple of weeks ago. A few
days ago I received from our colleague Luke a forwarded email from a
friend of ours, an OWASP Global Board member, Jim Manico.
Jim is very found of OWASP and he strongly believes we are doing the
right thing by joining OWASP and raising Information Security Awareness
I cannot agree more with him and I hope everyone joining OWASP
(either boards or meetings) thinks the same and will help spread the
word. OWASP has lots of tools to help you secure the products you
develop and the processes aside.
The subject raised in his email is about my second part of the
presentation, namely "Let's Encrypt" Service. For those of you who are
not familiar with this service, I will shortly describe it, then play a video
from their official Youtube channel.
Let's Encrypt is a service run by Internet Security Research Group (ISRG), a California
public benefit corporation, aiming to provide a free, automated and open certificate
authority (CA), run for the public's benefit.
The main goals of the service are:
Free: Anyone who owns a domain name can use Let’s Encrypt to obtain a trusted
certificate at zero cost.
Automatic: Software running on a web server can interact with Let’s Encrypt to painlessly
obtain a certificate, securely configure it for use, and automatically take care of renewal.
Secure: Let’s Encrypt will serve as a platform for advancing TLS security best practices,
both on the CA side and by helping site operators properly secure their servers.
Transparent: All certificates issued or revoked will be publicly recorded and available for
anyone to inspect.
Open: The automatic issuance and renewal protocol will be published as an open
standard that others can adopt.
Cooperative: Much like the underlying Internet protocols themselves, Let’s Encrypt is a
joint effort to benefit the community, beyond the control of any one organization.
So how it works?
There are two steps to this process.
1. Domain Validation - First, the agent proves to the CA that the web server controls a
domain. The main idea here is like with other services, to validate that you're in control of
the domain. You can do this with a DNS record or by providing an URI over HTTP (you
don't have HTTPS yet, do you? :) ).
After the domain is validated, the agent identifies itself by the public key provided before.
So how it works?
2. Certificate Issuance (& Revocation) - Once the agent has an authorized key pair,
requesting, renewing, and revoking certificates is simple - just send certificate management
messages and sign them with the authorized key pair.
To get the certificate for your domain, the agent will create the CSR (Certificate Signing
Request). The CSR includes a signature by the private key corresponding to the public key
in the CSR.
The agent also signs the whole CSR with the authorized key for your domain so that the
Let’s Encrypt CA knows it’s authorized.
If everything looks good when Let's Encrypt receives the request and verifies both
signatures, it issues a certificate for your domain with the public key from the CSR and
returns it to the agent.
So how it works?
I've added this 2min video for a better understanding:
https://www.youtube.com/watch?v=Gas_sSB-5SU
Looking at what Let's Encrypt wants to achieve and tying that with the
presentation I had before, about your own CA, you can imagine what a massive
work that is and how many resources are needed, both human and machine.
So please, look into this, recognize the importance and benefit this can offer to
you, to your websites, applications or company and help as much as possible
with the project.
Write some tools or agents for other web servers, join the community they have
in place, spread the word. Even Global CAs won't go away soon, which is not the
goal of Let's Encrypt, they will reconsider the prices for what they offer so that
people can afford security.
Thank you, and OWASP Foundation!
Ovidiu CICAL
1 of 16

Recommended

White paper - Full SSL automation with OneClickSSL by
White paper - Full SSL automation with OneClickSSLWhite paper - Full SSL automation with OneClickSSL
White paper - Full SSL automation with OneClickSSLGlobalSign
564 views12 slides
DNSSEC for Registrars by .ORG & Afilias by
DNSSEC for Registrars by .ORG & AfiliasDNSSEC for Registrars by .ORG & Afilias
DNSSEC for Registrars by .ORG & AfiliasORG, The Public Interest Registry
608 views39 slides
Scott Rea - IoT: Taking PKI Where No PKI Has Gone Before by
Scott Rea - IoT: Taking PKI Where No PKI Has Gone BeforeScott Rea - IoT: Taking PKI Where No PKI Has Gone Before
Scott Rea - IoT: Taking PKI Where No PKI Has Gone BeforeDigiCert, Inc.
2.3K views57 slides
Implementing a Secure and Effective PKI on Windows Server 2012 R2 by
Implementing a Secure and Effective PKI on Windows Server 2012 R2Implementing a Secure and Effective PKI on Windows Server 2012 R2
Implementing a Secure and Effective PKI on Windows Server 2012 R2Frank Lesniak
10.9K views32 slides
Infrastructure Saturday 2011 - Understanding PKI and Certificate Services by
Infrastructure Saturday 2011 - Understanding PKI and Certificate ServicesInfrastructure Saturday 2011 - Understanding PKI and Certificate Services
Infrastructure Saturday 2011 - Understanding PKI and Certificate Serviceskieranjacobsen
4.5K views21 slides

More Related Content

What's hot

Secure Communication with an Insecure Internet Infrastructure by
Secure Communication with an Insecure Internet InfrastructureSecure Communication with an Insecure Internet Infrastructure
Secure Communication with an Insecure Internet Infrastructurewebhostingguy
1.9K views50 slides
F5 TLS & SSL Practices by
F5 TLS & SSL PracticesF5 TLS & SSL Practices
F5 TLS & SSL PracticesBrian A. McHenry
22.3K views34 slides
The Future of PKI. Using automation tools and protocols to bootstrap trust in... by
The Future of PKI. Using automation tools and protocols to bootstrap trust in...The Future of PKI. Using automation tools and protocols to bootstrap trust in...
The Future of PKI. Using automation tools and protocols to bootstrap trust in...DATA SECURITY SOLUTIONS
219 views20 slides
International Journal of Engineering and Science Invention (IJESI) by
International Journal of Engineering and Science Invention (IJESI)International Journal of Engineering and Science Invention (IJESI)
International Journal of Engineering and Science Invention (IJESI)inventionjournals
205 views9 slides
F5 EMEA Webinar Oct'15: http2 how to ease the transition by
F5 EMEA Webinar Oct'15: http2 how to ease the transitionF5 EMEA Webinar Oct'15: http2 how to ease the transition
F5 EMEA Webinar Oct'15: http2 how to ease the transitionDmitry Tikhovich
758 views40 slides
Introduction to distributed security concepts and public key infrastructure m... by
Introduction to distributed security concepts and public key infrastructure m...Introduction to distributed security concepts and public key infrastructure m...
Introduction to distributed security concepts and public key infrastructure m...Information Security Awareness Group
942 views26 slides

What's hot(20)

Secure Communication with an Insecure Internet Infrastructure by webhostingguy
Secure Communication with an Insecure Internet InfrastructureSecure Communication with an Insecure Internet Infrastructure
Secure Communication with an Insecure Internet Infrastructure
webhostingguy1.9K views
The Future of PKI. Using automation tools and protocols to bootstrap trust in... by DATA SECURITY SOLUTIONS
The Future of PKI. Using automation tools and protocols to bootstrap trust in...The Future of PKI. Using automation tools and protocols to bootstrap trust in...
The Future of PKI. Using automation tools and protocols to bootstrap trust in...
International Journal of Engineering and Science Invention (IJESI) by inventionjournals
International Journal of Engineering and Science Invention (IJESI)International Journal of Engineering and Science Invention (IJESI)
International Journal of Engineering and Science Invention (IJESI)
inventionjournals205 views
F5 EMEA Webinar Oct'15: http2 how to ease the transition by Dmitry Tikhovich
F5 EMEA Webinar Oct'15: http2 how to ease the transitionF5 EMEA Webinar Oct'15: http2 how to ease the transition
F5 EMEA Webinar Oct'15: http2 how to ease the transition
Dmitry Tikhovich758 views
#Morecrypto (with tis) - version 2.2 by Olle E Johansson
#Morecrypto (with tis) - version 2.2#Morecrypto (with tis) - version 2.2
#Morecrypto (with tis) - version 2.2
Olle E Johansson3.3K views
Towards Secure and Dependable Authentication and Authorization Infrastructures by Diego Kreutz
Towards Secure and Dependable Authentication and Authorization InfrastructuresTowards Secure and Dependable Authentication and Authorization Infrastructures
Towards Secure and Dependable Authentication and Authorization Infrastructures
Diego Kreutz988 views
Blockchain - Hyperledger Fabric v1.0 Running on LinuxONE, see it in action! by Anderson Bassani
Blockchain - Hyperledger Fabric v1.0 Running on LinuxONE, see it in action!Blockchain - Hyperledger Fabric v1.0 Running on LinuxONE, see it in action!
Blockchain - Hyperledger Fabric v1.0 Running on LinuxONE, see it in action!
Anderson Bassani1.2K views
Secure Socket Layer (SSL) by amanchaurasia
Secure Socket Layer (SSL)Secure Socket Layer (SSL)
Secure Socket Layer (SSL)
amanchaurasia4.9K views
Implementing Public-Key-Infrastructures by Oliver Pfaff
Implementing Public-Key-InfrastructuresImplementing Public-Key-Infrastructures
Implementing Public-Key-Infrastructures
Oliver Pfaff1.5K views
[POSS 2019] TLS for Dummies by Worteks
[POSS 2019] TLS for Dummies[POSS 2019] TLS for Dummies
[POSS 2019] TLS for Dummies
Worteks494 views
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers) by Gabriella Davis
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
Gabriella Davis3.1K views
Secure Socket Layer by dwitigajab
Secure Socket LayerSecure Socket Layer
Secure Socket Layer
dwitigajab771 views
Alternatives and Enhancements to CAs for a Secure Web by CASCouncil
Alternatives and Enhancements to CAs for a Secure WebAlternatives and Enhancements to CAs for a Secure Web
Alternatives and Enhancements to CAs for a Secure Web
CASCouncil487 views
Palo Alto Networks PANOS 5.0 Radius Authentication OTP using Yubikey by Alberto Rivai
Palo Alto Networks PANOS 5.0 Radius Authentication OTP using YubikeyPalo Alto Networks PANOS 5.0 Radius Authentication OTP using Yubikey
Palo Alto Networks PANOS 5.0 Radius Authentication OTP using Yubikey
Alberto Rivai6.9K views
S/MIME by maria azam
S/MIMES/MIME
S/MIME
maria azam14.9K views
The new rocket science stuff in microsoft pki by Nathan Winters
The new rocket science stuff in microsoft pkiThe new rocket science stuff in microsoft pki
The new rocket science stuff in microsoft pki
Nathan Winters3.9K views

Similar to [Cluj] Turn SSL ON

Remote Access And Using Extensible Authentication Protocol... by
Remote Access And Using Extensible Authentication Protocol...Remote Access And Using Extensible Authentication Protocol...
Remote Access And Using Extensible Authentication Protocol...Laura Lewis
2 views41 slides
Geek Guide: Apache Web Servers and SSL Authentication by
Geek Guide: Apache Web Servers and SSL AuthenticationGeek Guide: Apache Web Servers and SSL Authentication
Geek Guide: Apache Web Servers and SSL AuthenticationRapidSSLOnline.com
194 views25 slides
Introduction to SSL and How to Exploit & Secure by
Introduction to SSL and How to Exploit & SecureIntroduction to SSL and How to Exploit & Secure
Introduction to SSL and How to Exploit & SecureBrian Ritchie
3.3K views27 slides
What is SSL ? The Secure Sockets Layer (SSL) Protocol by
What is SSL ? The Secure Sockets Layer (SSL) ProtocolWhat is SSL ? The Secure Sockets Layer (SSL) Protocol
What is SSL ? The Secure Sockets Layer (SSL) ProtocolMohammed Adam
699 views19 slides
How EverTrust Horizon PKI Automation can help your business? by
How EverTrust Horizon PKI Automation can help your business?How EverTrust Horizon PKI Automation can help your business?
How EverTrust Horizon PKI Automation can help your business?mirmaisam
221 views12 slides
Certificate pinning in android applications by
Certificate pinning in android applicationsCertificate pinning in android applications
Certificate pinning in android applicationsArash Ramez
696 views47 slides

Similar to [Cluj] Turn SSL ON(20)

Remote Access And Using Extensible Authentication Protocol... by Laura Lewis
Remote Access And Using Extensible Authentication Protocol...Remote Access And Using Extensible Authentication Protocol...
Remote Access And Using Extensible Authentication Protocol...
Laura Lewis2 views
Geek Guide: Apache Web Servers and SSL Authentication by RapidSSLOnline.com
Geek Guide: Apache Web Servers and SSL AuthenticationGeek Guide: Apache Web Servers and SSL Authentication
Geek Guide: Apache Web Servers and SSL Authentication
RapidSSLOnline.com194 views
Introduction to SSL and How to Exploit & Secure by Brian Ritchie
Introduction to SSL and How to Exploit & SecureIntroduction to SSL and How to Exploit & Secure
Introduction to SSL and How to Exploit & Secure
Brian Ritchie3.3K views
What is SSL ? The Secure Sockets Layer (SSL) Protocol by Mohammed Adam
What is SSL ? The Secure Sockets Layer (SSL) ProtocolWhat is SSL ? The Secure Sockets Layer (SSL) Protocol
What is SSL ? The Secure Sockets Layer (SSL) Protocol
Mohammed Adam699 views
How EverTrust Horizon PKI Automation can help your business? by mirmaisam
How EverTrust Horizon PKI Automation can help your business?How EverTrust Horizon PKI Automation can help your business?
How EverTrust Horizon PKI Automation can help your business?
mirmaisam221 views
Certificate pinning in android applications by Arash Ramez
Certificate pinning in android applicationsCertificate pinning in android applications
Certificate pinning in android applications
Arash Ramez696 views
ssl by sjyuva
sslssl
ssl
sjyuva633 views
Comparative Analysis of Open-SSL Vulnerabilities & Heartbleed Exploit Detection by CSCJournals
Comparative Analysis of Open-SSL Vulnerabilities & Heartbleed Exploit DetectionComparative Analysis of Open-SSL Vulnerabilities & Heartbleed Exploit Detection
Comparative Analysis of Open-SSL Vulnerabilities & Heartbleed Exploit Detection
CSCJournals211 views
Ssl (Secure Sockets Layer) by Asad Ali
Ssl (Secure Sockets Layer)Ssl (Secure Sockets Layer)
Ssl (Secure Sockets Layer)
Asad Ali3.6K views
Demystify internal certificates requirements for lync server by Thomas Poett
Demystify internal certificates requirements for lync serverDemystify internal certificates requirements for lync server
Demystify internal certificates requirements for lync server
Thomas Poett11.3K views
Private Key Infrastructure Advantages And Disadvantages by Alison Hall
Private Key Infrastructure Advantages And DisadvantagesPrivate Key Infrastructure Advantages And Disadvantages
Private Key Infrastructure Advantages And Disadvantages
Alison Hall3 views

More from OWASP EEE

[Austria] ZigBee exploited by
[Austria] ZigBee exploited[Austria] ZigBee exploited
[Austria] ZigBee exploitedOWASP EEE
747 views48 slides
[Austria] Security by Design by
[Austria] Security by Design[Austria] Security by Design
[Austria] Security by DesignOWASP EEE
665 views16 slides
[Austria] How we hacked an online mobile banking Trojan by
[Austria] How we hacked an online mobile banking Trojan[Austria] How we hacked an online mobile banking Trojan
[Austria] How we hacked an online mobile banking TrojanOWASP EEE
654 views41 slides
[Poland] It's only about frontend by
[Poland] It's only about frontend[Poland] It's only about frontend
[Poland] It's only about frontendOWASP EEE
521 views56 slides
[Poland] SecOps live cooking with OWASP appsec tools by
[Poland] SecOps live cooking with OWASP appsec tools[Poland] SecOps live cooking with OWASP appsec tools
[Poland] SecOps live cooking with OWASP appsec toolsOWASP EEE
461 views35 slides
[Cluj] Information Security Through Gamification by
[Cluj] Information Security Through Gamification[Cluj] Information Security Through Gamification
[Cluj] Information Security Through GamificationOWASP EEE
585 views17 slides

More from OWASP EEE(20)

[Austria] ZigBee exploited by OWASP EEE
[Austria] ZigBee exploited[Austria] ZigBee exploited
[Austria] ZigBee exploited
OWASP EEE747 views
[Austria] Security by Design by OWASP EEE
[Austria] Security by Design[Austria] Security by Design
[Austria] Security by Design
OWASP EEE665 views
[Austria] How we hacked an online mobile banking Trojan by OWASP EEE
[Austria] How we hacked an online mobile banking Trojan[Austria] How we hacked an online mobile banking Trojan
[Austria] How we hacked an online mobile banking Trojan
OWASP EEE654 views
[Poland] It's only about frontend by OWASP EEE
[Poland] It's only about frontend[Poland] It's only about frontend
[Poland] It's only about frontend
OWASP EEE521 views
[Poland] SecOps live cooking with OWASP appsec tools by OWASP EEE
[Poland] SecOps live cooking with OWASP appsec tools[Poland] SecOps live cooking with OWASP appsec tools
[Poland] SecOps live cooking with OWASP appsec tools
OWASP EEE461 views
[Cluj] Information Security Through Gamification by OWASP EEE
[Cluj] Information Security Through Gamification[Cluj] Information Security Through Gamification
[Cluj] Information Security Through Gamification
OWASP EEE585 views
[Cluj] CSP (Content Security Policy) by OWASP EEE
[Cluj] CSP (Content Security Policy)[Cluj] CSP (Content Security Policy)
[Cluj] CSP (Content Security Policy)
OWASP EEE576 views
[Cluj] A distributed - collaborative client certification system by OWASP EEE
[Cluj] A distributed - collaborative client certification system[Cluj] A distributed - collaborative client certification system
[Cluj] A distributed - collaborative client certification system
OWASP EEE163 views
[Russia] Node.JS - Architecture and Vulnerabilities by OWASP EEE
[Russia] Node.JS - Architecture and Vulnerabilities[Russia] Node.JS - Architecture and Vulnerabilities
[Russia] Node.JS - Architecture and Vulnerabilities
OWASP EEE560 views
[Russia] MySQL OOB injections by OWASP EEE
[Russia] MySQL OOB injections[Russia] MySQL OOB injections
[Russia] MySQL OOB injections
OWASP EEE1.6K views
[Russia] Bugs -> max, time <= T by OWASP EEE
[Russia] Bugs -> max, time <= T[Russia] Bugs -> max, time <= T
[Russia] Bugs -> max, time <= T
OWASP EEE346 views
[Russia] Give me a stable input by OWASP EEE
[Russia] Give me a stable input[Russia] Give me a stable input
[Russia] Give me a stable input
OWASP EEE335 views
[Russia] Building better product security by OWASP EEE
[Russia] Building better product security[Russia] Building better product security
[Russia] Building better product security
OWASP EEE382 views
[Lithuania] I am the cavalry by OWASP EEE
[Lithuania] I am the cavalry[Lithuania] I am the cavalry
[Lithuania] I am the cavalry
OWASP EEE539 views
[Lithuania] Cross-site request forgery: ways to exploit, ways to prevent by OWASP EEE
[Lithuania] Cross-site request forgery: ways to exploit, ways to prevent[Lithuania] Cross-site request forgery: ways to exploit, ways to prevent
[Lithuania] Cross-site request forgery: ways to exploit, ways to prevent
OWASP EEE774 views
[Lithuania] DigiCerts and DigiID to Enterprise apps by OWASP EEE
[Lithuania] DigiCerts and DigiID to Enterprise apps[Lithuania] DigiCerts and DigiID to Enterprise apps
[Lithuania] DigiCerts and DigiID to Enterprise apps
OWASP EEE350 views
[Lithuania] Introduction to threat modeling by OWASP EEE
[Lithuania] Introduction to threat modeling[Lithuania] Introduction to threat modeling
[Lithuania] Introduction to threat modeling
OWASP EEE444 views
[Hungary] I play Jack of Information Disclosure by OWASP EEE
[Hungary] I play Jack of Information Disclosure[Hungary] I play Jack of Information Disclosure
[Hungary] I play Jack of Information Disclosure
OWASP EEE510 views
[Hungary] Survival is not mandatory. The air force one has departured are you... by OWASP EEE
[Hungary] Survival is not mandatory. The air force one has departured are you...[Hungary] Survival is not mandatory. The air force one has departured are you...
[Hungary] Survival is not mandatory. The air force one has departured are you...
OWASP EEE378 views
[Hungary] Secure Software? Start appreciating your developers! by OWASP EEE
[Hungary] Secure Software? Start appreciating your developers![Hungary] Secure Software? Start appreciating your developers!
[Hungary] Secure Software? Start appreciating your developers!
OWASP EEE237 views

Recently uploaded

Marketing and Community Building in Web3 by
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3Federico Ast
14 views64 slides
hamro digital logics.pptx by
hamro digital logics.pptxhamro digital logics.pptx
hamro digital logics.pptxtupeshghimire
10 views36 slides
Affiliate Marketing by
Affiliate MarketingAffiliate Marketing
Affiliate MarketingNavin Dhanuka
17 views30 slides
How to think like a threat actor for Kubernetes.pptx by
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptxLibbySchulze1
5 views33 slides
The Dark Web : Hidden Services by
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden ServicesAnshu Singh
14 views24 slides
ATPMOUSE_융합2조.pptx by
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptxkts120898
35 views70 slides

Recently uploaded(6)

Marketing and Community Building in Web3 by Federico Ast
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3
Federico Ast14 views
How to think like a threat actor for Kubernetes.pptx by LibbySchulze1
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptx
LibbySchulze15 views
The Dark Web : Hidden Services by Anshu Singh
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden Services
Anshu Singh14 views
ATPMOUSE_융합2조.pptx by kts120898
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptx
kts12089835 views

[Cluj] Turn SSL ON

  • 1. Turn SSL ON: Your Own Certificate Authority - Or simply use “Let's Encrypt” Presenter: Ovidiu CICAL Senior Software and Security Engineer Cluj-Napoca - Romania
  • 2. SSL (or TLS to be more correct since is the most recent and secured one) is a cryptographic protocol designed to provide secured communications. It ensures: Privacy (data not sent in plain); Integrity (data has not been altered in motion); Trust (data belongs to the trusted source).
  • 3. Short history (OpenSSL & Wikipedia): SSL 1.0, 2.0 and 3.0 Developed by Netscape's engineers, SSL 1.0 never saw the light of day due to security flows. SSL 2.0 - Released 1995 - lasted just about one year, again from serious security flows. In was replaced by SSL 3.0 in 1996. In 2014, SSL 3.0 was found to be vulnerable to the POODLE attack that affects all block ciphers in SSL; and RC4, the only non-block cipher supported by SSL 3.0, is also feasibly broken as used in SSL 3.0.
  • 4. TLS 1.0, 1.1, 1.2 and 1.3 (draft) TLS 1.0 - Released 1999 - an upgrade from SSL 3.0. The differences are significant enough that SSL 3.0 and TLS 1.0 don't inter-operate Some of the major differences between them are: - MACs are different - SSL 3.0 uses a modification of an early HMAC while TLS 1.0 uses HMAC; TLS 1.1 - Released 2006 - is an update to TLS 1.0. The major change is (along with many more): - The Implicit Initialization Vector (IV) is replaced with an explicit IV to protect against Cipher block chaining (CBC) attacks. TLS 1.2 - Released 2008 - based on TLS 1.1 - contains improved flexibility and lots of security fixes. TLS 1.3 (draft) - As of October 2015, TLS 1.3 is a working draft. Major differences from TLS 1.2 include: - Dropped support for many insecure or obsolete features including, compression, renegotiation, static RSA and DH key exchange, Change Cipher Spec protocol, Hello message UNIX time etc; - Prohibition of SSL or RC4 negotiation for backwards compatibility; - Removed support for MD5 and SHA-224 hashes with signatures;
  • 5. TLS Implementations: There are several TLS implementations which are free software and open source. The most notable ones are: OpenSSL – most common one; LibreSSL; MatrixSSL; GnuTLS; cryptlib (used in C); Java Secure Socket Extension (JSSE from Oracle); PolarSSL (changed name recently); CyaSSL (changed name recently).
  • 6. Your own CA - Certificate Authority
  • 7. A certificate authority (CA) is an entity that signs digital certificates. Many websites need to let their customers know that the connection is secure, so they pay an internationally trusted CA (eg, VeriSign, DigiCert) to sign a certificate for their domain. In some cases it may make more sense to act as your own CA, rather than paying a CA like DigiCert. Common cases include securing an intranet website, or for issuing certificates to clients to allow them to authenticate to a server (eg, Apache, nginx or OpenVPN).
  • 8. Example of creating your Certificate Authority: I will use OpenSSL for this example. The steps are really easy and the result is amazing. I have the OpenSSL commands available for each step, if some of your are interested in implementing own CA, just ask for them and I'll email them to you (I will append them anyway at this presentation and make it public on the Wiki). 1. Configuration file - This is very important as you will be acting as a CA from now on, so you will do a lot o repetitive work when generating certificates. There are lots of options in this file, documentation from OpenSSL is very generous; 2. Create the root key - Create the root key and keep it absolutely secure. The root key can issue trusted certificates. Encrypt the root key with AES 256-bit encryption and a strong password. Also, use 4096 for root and intermediate authority keys; 3. Create the root certificate - Use the root key to create a root certificate. Give the root certificate a long expiry date, such as 10 or 20 years. Once the root certificate expires, all certificates signed by the CA become invalid. Also, specify the path to your OpenSSL configuration file, otherwise will default to the systems' one; 4. A very good practice is to issue an Intermediate CA, which will be later used in different branches of your application(s). This way, you can keep the root key privatelly and in case of loosing the intermediate key, you can revoke it and create a new intermediate CA. The steps to create this CA are the same as above except that you will use root key for this; 5. Create a Certificate Chain by combining the root certificate with the intermediate certificate concatenating them;
  • 9. Next steps: The next obvious step is sign server or client certificates. This is not the purpose of this presentation, but the main idea is that you will act as a third-party to the root CA from now on and you will need to create your own private key and certificate signing request (CSR). After you have the two resources above, you will present the CSR to the root CA generated above which will return a signed certificate that works only with your private key and you must add the key and signed certificate, along with the Chain certificate to the Web Server of your choice.
  • 11. I proposed the subject for this presentation a couple of weeks ago. A few days ago I received from our colleague Luke a forwarded email from a friend of ours, an OWASP Global Board member, Jim Manico. Jim is very found of OWASP and he strongly believes we are doing the right thing by joining OWASP and raising Information Security Awareness I cannot agree more with him and I hope everyone joining OWASP (either boards or meetings) thinks the same and will help spread the word. OWASP has lots of tools to help you secure the products you develop and the processes aside. The subject raised in his email is about my second part of the presentation, namely "Let's Encrypt" Service. For those of you who are not familiar with this service, I will shortly describe it, then play a video from their official Youtube channel.
  • 12. Let's Encrypt is a service run by Internet Security Research Group (ISRG), a California public benefit corporation, aiming to provide a free, automated and open certificate authority (CA), run for the public's benefit. The main goals of the service are: Free: Anyone who owns a domain name can use Let’s Encrypt to obtain a trusted certificate at zero cost. Automatic: Software running on a web server can interact with Let’s Encrypt to painlessly obtain a certificate, securely configure it for use, and automatically take care of renewal. Secure: Let’s Encrypt will serve as a platform for advancing TLS security best practices, both on the CA side and by helping site operators properly secure their servers. Transparent: All certificates issued or revoked will be publicly recorded and available for anyone to inspect. Open: The automatic issuance and renewal protocol will be published as an open standard that others can adopt. Cooperative: Much like the underlying Internet protocols themselves, Let’s Encrypt is a joint effort to benefit the community, beyond the control of any one organization.
  • 13. So how it works? There are two steps to this process. 1. Domain Validation - First, the agent proves to the CA that the web server controls a domain. The main idea here is like with other services, to validate that you're in control of the domain. You can do this with a DNS record or by providing an URI over HTTP (you don't have HTTPS yet, do you? :) ). After the domain is validated, the agent identifies itself by the public key provided before.
  • 14. So how it works? 2. Certificate Issuance (& Revocation) - Once the agent has an authorized key pair, requesting, renewing, and revoking certificates is simple - just send certificate management messages and sign them with the authorized key pair. To get the certificate for your domain, the agent will create the CSR (Certificate Signing Request). The CSR includes a signature by the private key corresponding to the public key in the CSR. The agent also signs the whole CSR with the authorized key for your domain so that the Let’s Encrypt CA knows it’s authorized. If everything looks good when Let's Encrypt receives the request and verifies both signatures, it issues a certificate for your domain with the public key from the CSR and returns it to the agent.
  • 15. So how it works? I've added this 2min video for a better understanding: https://www.youtube.com/watch?v=Gas_sSB-5SU Looking at what Let's Encrypt wants to achieve and tying that with the presentation I had before, about your own CA, you can imagine what a massive work that is and how many resources are needed, both human and machine. So please, look into this, recognize the importance and benefit this can offer to you, to your websites, applications or company and help as much as possible with the project. Write some tools or agents for other web servers, join the community they have in place, spread the word. Even Global CAs won't go away soon, which is not the goal of Let's Encrypt, they will reconsider the prices for what they offer so that people can afford security.
  • 16. Thank you, and OWASP Foundation! Ovidiu CICAL