SlideShare a Scribd company logo
SSL Cipher Suites
Introduction

•
•
•
•
•

SSL communication review
Common SSL vulnerabilities
Remediation recommendations
Testing
Demo
Part 1

SSL Review
Secure Communications

•
•
•
•
•

Using SSL (SC-8, SC-9)
Proper SSL Certificates (SC-17)
Strong SSL Ciphers (SC-13)
Secure implementation of SSL (SC-13)
Forcing SSL for sensitive data and forms (SC-8,
SC-9)
• Disallowing mixed mode HTTP and HTTPS
SSL Cipher Suites

• SSL configuration issues appear in Host
Assessments, Application Assessments and
Validation Reports
• Usually a systems administrators’ issues, not a
developer
• Lately there is no clear solution
• Pick your poison
SSL Versions
•

SSL V1
– Never publicly released

•

SSL V2
– Released 1995
– Not secure

•

SSL V3
– Released 1996
– Can almost be made secure
– Is not FIPS compliant (FIPS 140-2)

•

TLS 1.0
– Released 1999
– Can almost be made secure
– Better than SSL V3

•

TLS 1.1
– Released 2006
– Still thought to be secure

•

TLS 1.2
– Released in 2008
– Still thought to be secure
Handshake
Handshake Details
1. ClientHello
• TLS Protocol Version, Random
Number, List of CipherSuites,
Suggested Compression Method,
sessionID
2. ServerHello
• TLS Protocol Version, Random
Number, CipherSuite, Compression
method, sessionID
3. Certificate
4. ServerHelloDone
5. ClientKeyExchange
• PreMasterSecret, public key or
nothing
6. ChangeCipherSpec
7. ChangeCipherSpec
8. Application Data
Cipher Suites
Cipher Suites

• Key exchange/agreement
– RSA, Diffie-Hellman, ECDH, SRP, PSK

• Authentication
– RSA, DSA, ECDSA

• Bulk Ciphers
– RC4, Triple DES, AES, IDEA

• Message Authentication
– MD5, SHA, MD4
Part 2

Common SSL Vulnerabilities
ATTACK!
Common vulnerabilities
•

Weak Ciphers Suites Supported
– Key length > 128 bits

•

TLS Compression
– CRIME

•

SSL v3 and TLS v1.0
– BEAST

•

RC4 Cipher Suite Supported
– Theoretically broken

•

Padding Attacks
– Lucky Thirteen
Ciphers Suites Supported with key lengths less than 128 bits

• Description: SSL ciphers with key lengths of less than less than 128
bits are considered to be easier to exploit than ciphers with key
lengths greater than 128 bits.
• Impact: A successful exploit could compromise the confidentiality
of user credentials and allow an attacker to gain unauthorized
access to the web application.
TLS CRIME Vulnerability

• Description: Compression Ratio Info-leak Made Easy (CRIME) is
an attack on SSL/TLS. CRIME is a side-channel attack that can be
used to discover session tokens or other secret information based
on the compressed size of HTTP requests.
• Impact: An attacker can make the client generate compressed

requests that contain attacker-controlled data in the same
stream with secret data.
Browser Exploit Against SSL/TLS (aka BEAST)

• Description: BEAST is short for Browser Exploit Against SSL/TLS.

This vulnerability is an attack against the confidentiality of a
HTTPS connection. That is, it provides a way to extract the
unencrypted plaintext from an encrypted session. The
initialization vector includes a random string that is XORed
with a plaintext message prior to encryption.
•

Impact: The BEAST provides an attack vector for stealing user

session cookies.
SSL RC4 Cipher Suites Supported

• Description: The RC4 algorithm, as used in the TLS protocol and SSL
protocol, has many single-byte biases, which makes it easier for remote
attackers to conduct plaintext-recovery attacks via statistical analysis of
ciphertext in a large number of sessions that use the same plaintext. If
plaintext is repeatedly encrypted (e.g. HTTP cookies), and an attacker is
able to obtain many (i.e. hundreds of millions) ciphertexts, the attacker
may be able to derive the plaintext. The average running time for this

attack is on the order of 2000 hours.
• Impact: For an authenticated HTTP session, the unknown value which the
attacker is trying to get is the session ID or cookie. This value is preceded
by standard HTTP header information. If the cookie value is in the first 256
bytes of plaintext it will be exposed during the attack.
Padding Attacks: Lucky Thirteen

• Description: A cryptographic timing attack
against MAC to break the CBC algorithm.
Affects all versions of TLS at the time of it’s
release (February 2013).
• Impact: This is a highly complex attack that
does not require authentication. It would
allow for unauthorized disclosure of
information.
Part 3

Remediation Recommendations
Remediation: Weak Cipher Suites

• Weak Ciphers Suites Supported
– Disable Cipher Suites with keys < 128 bits, NULL,
Export keys and Anonymous Diffie-Hellman
• Set Apache directive SSLCipherSuite
ALL:!ADH:!EXPORT:!SSLv2:!LOW
Remediation: CRIME

• TLS Compression (CRIME)
– Disable Compression
• Set Apache (2.2.4) directive SSLCompression off
Remediation: BEAST

• SSL v3 and TLS v1.0 (BEAST)
– Enable Cipher Suite Ordering
• Add Apache directive SSLHonorCipherOrder On

– Negotiate RC4 Cipher Suite first
• Set Apache directive SSLCipherSuite RC4SHA:ALL:!ADH:!EXPORT:!SSLv2:!LOW
Remediation: RC4

• Weak RC4 Cipher Suite Supported
– Disable RC4 Cipher Suites
• Set Apache directive SSLCipherSuite
ALL:!ADH:!EXPORT:!SSLv2:!LOW:-RC4-SHA:-RC4-MD5
Remediation: Lucky Thirteen

• Padding Oracle Attacks
– Switch to using RC4 CipherSuites
• Set Apache directive SSLCipherSuite RC4SHA:ALL:!ADH:!EXPORT:!SSLv2:!LOW

– Dude, seriously, WTF???
TLS Browser Support
Browser

TLS 1.0

TLS 1.1

TLS 1.2

Chrome 0–21

Yes

No

No

Chrome 22–current

Yes

Yes

No

Chrome 29 (dev)

Yes

Yes

Yes

Firefox 2–current
IE 6
IE 7–8
IE 8–9
IE 9
IE 10

Yes
Disabled
Yes
Yes
Yes
Yes

Disabled
No
No
Disabled
No
Disabled

No
No
No
Disabled
No
Disabled

Opera 5–7

Yes

No

No

Opera 8–9

Yes

Disabled

No

Opera 10–current

Yes

Disabled

Disabled

Safari 4

Yes

No

No

Safari 5

Yes

No

No

Safari 5–current

Yes

Yes

Yes
Part 4

Testing
Testing

NMAP!!!!

nmap –sV <IPADDRESS>
nmap --script ssl-enum-ciphers -p <PORT> <IPADDRESS>

And Nessus too, of course
Test Cases for developers

• How developers can test for it
– Ciphers on the client
openssl ciphers|sed ‘s/:/nr/g|sort

– CipherSuites
./cipher.sh | grep YES

– Compression
openssl s_client -connect 156.132.142.11:12321 -tls1

– Protocol
use browser and enable TLS 1.1 and TLS 1.2
Part 5: And now…

Demo Time!!!!!!!
Overview

When testing SSL-TLS
• Test that SSLv2 is disabled
• Test that SSLv3 is disabled (And Possibly TLS
1.0)
• Test that compression is disabled
• Test that cipher suites with key lengths of less
that 128 bytes, ADH, NULL or EXP are disabled
• Test that MD5 hash is disabled
Questions?
What’s coming up?

•
•
•
•

Sept 24: SAR writing examples - Ryan
Oct 8: Benchmark Wizardry - Eric
Oct 22: Python for pentesting- Philip
Nov 5: All your ssh are belong to us, pwning with
proxychains - Anthony & Frank
• Nov 19: Application context & discovering XSS
without <script> - Todd
• Dec 3: Vulnerability database solutions - Derek
• Dec 17: Clickjacking
References
•
•
•
•
•
•
•

http://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
http://en.wikipedia.org/wiki/Cipher_suite
https://en.wikipedia.org/wiki/Transport_Layer_Security
http://help.mysonicwall.com/sw/eng/6005/ui2/25201/Firewall_scSslControlView.html
http://www.pierobon.org/ssl/ch2/detail.htm
https://www.owasp.org/index.php/Testing_for_SSL-TLS_(OWASP-CM-001)
www.isecpartners.com/media/106031/ssl_attacks_survey.pdf

More Related Content

PDF
SSL Secure socket layer
PPT
PDF
SSL/TLS
PPTX
Introduction to SSL and How to Exploit & Secure
PPTX
Ssl in a nutshell
PPT
Ssl (Secure Sockets Layer)
PPTX
Secure Socket Layer (SSL)
PDF
SSl/TLS Analysis
SSL Secure socket layer
SSL/TLS
Introduction to SSL and How to Exploit & Secure
Ssl in a nutshell
Ssl (Secure Sockets Layer)
Secure Socket Layer (SSL)
SSl/TLS Analysis

What's hot (20)

PPTX
Transport Layer Security (TLS)
PPTX
secure socket layer
PPTX
Securing TCP connections using SSL
PPTX
PPT ON WEB SECURITY BY MONODIP SINGHA ROY
PPTX
Introduction to SSL/TLS
PPT
Secure Socket Layer (SSL)
PPSX
Secure socket layer
PPT
Sniffing SSL Traffic
PPT
PPTX
Secure Socket Layer
PPTX
Transport layer security (tls)
PPTX
SSL/TLS 101
PPTX
Secure Socket Layer
PPTX
SSL/TLS
PPT
SSL Secure Socket Layer
PPTX
Ssl (Secure Socket Layer)
PPTX
SSL TLS Protocol
PPTX
Web Security and SSL - Secure Socket Layer
Transport Layer Security (TLS)
secure socket layer
Securing TCP connections using SSL
PPT ON WEB SECURITY BY MONODIP SINGHA ROY
Introduction to SSL/TLS
Secure Socket Layer (SSL)
Secure socket layer
Sniffing SSL Traffic
Secure Socket Layer
Transport layer security (tls)
SSL/TLS 101
Secure Socket Layer
SSL/TLS
SSL Secure Socket Layer
Ssl (Secure Socket Layer)
SSL TLS Protocol
Web Security and SSL - Secure Socket Layer
Ad

Viewers also liked (9)

PDF
SSL, X.509, HTTPS - How to configure your HTTPS server
PDF
EuSecWest 2008 - Abusing X509 Certificate Features (Alexander Klink, Cynops G...
PPTX
Poodles!!!
PDF
Amazon CloudFront Seminar Accelerated TLS/SSL Adoption
PPTX
SEO Considerations When Migrating to HTTPS by Kenneth Sytian
PPT
Digital Certificate
PPTX
Basic concept of pki
PPTX
Pki for dummies
PPT
Digital certificates
SSL, X.509, HTTPS - How to configure your HTTPS server
EuSecWest 2008 - Abusing X509 Certificate Features (Alexander Klink, Cynops G...
Poodles!!!
Amazon CloudFront Seminar Accelerated TLS/SSL Adoption
SEO Considerations When Migrating to HTTPS by Kenneth Sytian
Digital Certificate
Basic concept of pki
Pki for dummies
Digital certificates
Ad

Similar to SSL overview (20)

PPTX
SSL Checklist for Pentesters (BSides MCR 2014)
PPTX
Cours4.pptx
PDF
FreeBSD and Hardening Web Server
PPTX
TLS/SSL - Study of Secured Communications
PDF
[Attacks Part] BetterCrypto Workshop @ Hack.lu 2014
PPTX
SSLv3 and POODLE
PDF
Common crypto attacks and secure implementations
ODP
Tls 13final13
PDF
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
PDF
Go paranoid
PDF
Comparative Analysis of Open-SSL Vulnerabilities & Heartbleed Exploit Detection
PDF
Unsafe SSL webinar
PDF
Heartbleed Overview
PPT
Web securiy - Network security essentials
PDF
wolfSSL and TLS 1.3
PDF
TLS and Certificates
PPTX
Study and Analysis of some Known attacks on Transport Layer Security
PDF
Sử dụng TLS đúng cách - Phạm Tùng Dương
SSL Checklist for Pentesters (BSides MCR 2014)
Cours4.pptx
FreeBSD and Hardening Web Server
TLS/SSL - Study of Secured Communications
[Attacks Part] BetterCrypto Workshop @ Hack.lu 2014
SSLv3 and POODLE
Common crypto attacks and secure implementations
Tls 13final13
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
Go paranoid
Comparative Analysis of Open-SSL Vulnerabilities & Heartbleed Exploit Detection
Unsafe SSL webinar
Heartbleed Overview
Web securiy - Network security essentials
wolfSSL and TLS 1.3
TLS and Certificates
Study and Analysis of some Known attacks on Transport Layer Security
Sử dụng TLS đúng cách - Phạm Tùng Dương

More from Todd Benson (I.T. SPECIALIST and I.T. SECURITY) (9)

PPTX
Owasp consumer top 10 safe habits
PPTX
The Unlikely Couple, DevOps and Security. Can it work?
PPTX
Defending web applications v.1.0
PPTX
Application Context and Discovering XSS without
PPTX
PPTX
Becoming a better pen tester overview

Recently uploaded (20)

PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Tartificialntelligence_presentation.pptx
PDF
August Patch Tuesday
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
1. Introduction to Computer Programming.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Hybrid model detection and classification of lung cancer
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Getting Started with Data Integration: FME Form 101
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Enhancing emotion recognition model for a student engagement use case through...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Tartificialntelligence_presentation.pptx
August Patch Tuesday
OMC Textile Division Presentation 2021.pptx
1. Introduction to Computer Programming.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Univ-Connecticut-ChatGPT-Presentaion.pdf
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Hybrid model detection and classification of lung cancer
Mushroom cultivation and it's methods.pdf
Programs and apps: productivity, graphics, security and other tools
A comparative study of natural language inference in Swahili using monolingua...
Encapsulation_ Review paper, used for researhc scholars
Assigned Numbers - 2025 - Bluetooth® Document
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Chapter 5: Probability Theory and Statistics
Getting Started with Data Integration: FME Form 101

SSL overview

  • 2. Introduction • • • • • SSL communication review Common SSL vulnerabilities Remediation recommendations Testing Demo
  • 4. Secure Communications • • • • • Using SSL (SC-8, SC-9) Proper SSL Certificates (SC-17) Strong SSL Ciphers (SC-13) Secure implementation of SSL (SC-13) Forcing SSL for sensitive data and forms (SC-8, SC-9) • Disallowing mixed mode HTTP and HTTPS
  • 5. SSL Cipher Suites • SSL configuration issues appear in Host Assessments, Application Assessments and Validation Reports • Usually a systems administrators’ issues, not a developer • Lately there is no clear solution • Pick your poison
  • 6. SSL Versions • SSL V1 – Never publicly released • SSL V2 – Released 1995 – Not secure • SSL V3 – Released 1996 – Can almost be made secure – Is not FIPS compliant (FIPS 140-2) • TLS 1.0 – Released 1999 – Can almost be made secure – Better than SSL V3 • TLS 1.1 – Released 2006 – Still thought to be secure • TLS 1.2 – Released in 2008 – Still thought to be secure
  • 8. Handshake Details 1. ClientHello • TLS Protocol Version, Random Number, List of CipherSuites, Suggested Compression Method, sessionID 2. ServerHello • TLS Protocol Version, Random Number, CipherSuite, Compression method, sessionID 3. Certificate 4. ServerHelloDone 5. ClientKeyExchange • PreMasterSecret, public key or nothing 6. ChangeCipherSpec 7. ChangeCipherSpec 8. Application Data
  • 10. Cipher Suites • Key exchange/agreement – RSA, Diffie-Hellman, ECDH, SRP, PSK • Authentication – RSA, DSA, ECDSA • Bulk Ciphers – RC4, Triple DES, AES, IDEA • Message Authentication – MD5, SHA, MD4
  • 11. Part 2 Common SSL Vulnerabilities
  • 12. ATTACK! Common vulnerabilities • Weak Ciphers Suites Supported – Key length > 128 bits • TLS Compression – CRIME • SSL v3 and TLS v1.0 – BEAST • RC4 Cipher Suite Supported – Theoretically broken • Padding Attacks – Lucky Thirteen
  • 13. Ciphers Suites Supported with key lengths less than 128 bits • Description: SSL ciphers with key lengths of less than less than 128 bits are considered to be easier to exploit than ciphers with key lengths greater than 128 bits. • Impact: A successful exploit could compromise the confidentiality of user credentials and allow an attacker to gain unauthorized access to the web application.
  • 14. TLS CRIME Vulnerability • Description: Compression Ratio Info-leak Made Easy (CRIME) is an attack on SSL/TLS. CRIME is a side-channel attack that can be used to discover session tokens or other secret information based on the compressed size of HTTP requests. • Impact: An attacker can make the client generate compressed requests that contain attacker-controlled data in the same stream with secret data.
  • 15. Browser Exploit Against SSL/TLS (aka BEAST) • Description: BEAST is short for Browser Exploit Against SSL/TLS. This vulnerability is an attack against the confidentiality of a HTTPS connection. That is, it provides a way to extract the unencrypted plaintext from an encrypted session. The initialization vector includes a random string that is XORed with a plaintext message prior to encryption. • Impact: The BEAST provides an attack vector for stealing user session cookies.
  • 16. SSL RC4 Cipher Suites Supported • Description: The RC4 algorithm, as used in the TLS protocol and SSL protocol, has many single-byte biases, which makes it easier for remote attackers to conduct plaintext-recovery attacks via statistical analysis of ciphertext in a large number of sessions that use the same plaintext. If plaintext is repeatedly encrypted (e.g. HTTP cookies), and an attacker is able to obtain many (i.e. hundreds of millions) ciphertexts, the attacker may be able to derive the plaintext. The average running time for this attack is on the order of 2000 hours. • Impact: For an authenticated HTTP session, the unknown value which the attacker is trying to get is the session ID or cookie. This value is preceded by standard HTTP header information. If the cookie value is in the first 256 bytes of plaintext it will be exposed during the attack.
  • 17. Padding Attacks: Lucky Thirteen • Description: A cryptographic timing attack against MAC to break the CBC algorithm. Affects all versions of TLS at the time of it’s release (February 2013). • Impact: This is a highly complex attack that does not require authentication. It would allow for unauthorized disclosure of information.
  • 19. Remediation: Weak Cipher Suites • Weak Ciphers Suites Supported – Disable Cipher Suites with keys < 128 bits, NULL, Export keys and Anonymous Diffie-Hellman • Set Apache directive SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!LOW
  • 20. Remediation: CRIME • TLS Compression (CRIME) – Disable Compression • Set Apache (2.2.4) directive SSLCompression off
  • 21. Remediation: BEAST • SSL v3 and TLS v1.0 (BEAST) – Enable Cipher Suite Ordering • Add Apache directive SSLHonorCipherOrder On – Negotiate RC4 Cipher Suite first • Set Apache directive SSLCipherSuite RC4SHA:ALL:!ADH:!EXPORT:!SSLv2:!LOW
  • 22. Remediation: RC4 • Weak RC4 Cipher Suite Supported – Disable RC4 Cipher Suites • Set Apache directive SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!LOW:-RC4-SHA:-RC4-MD5
  • 23. Remediation: Lucky Thirteen • Padding Oracle Attacks – Switch to using RC4 CipherSuites • Set Apache directive SSLCipherSuite RC4SHA:ALL:!ADH:!EXPORT:!SSLv2:!LOW – Dude, seriously, WTF???
  • 24. TLS Browser Support Browser TLS 1.0 TLS 1.1 TLS 1.2 Chrome 0–21 Yes No No Chrome 22–current Yes Yes No Chrome 29 (dev) Yes Yes Yes Firefox 2–current IE 6 IE 7–8 IE 8–9 IE 9 IE 10 Yes Disabled Yes Yes Yes Yes Disabled No No Disabled No Disabled No No No Disabled No Disabled Opera 5–7 Yes No No Opera 8–9 Yes Disabled No Opera 10–current Yes Disabled Disabled Safari 4 Yes No No Safari 5 Yes No No Safari 5–current Yes Yes Yes
  • 26. Testing NMAP!!!! nmap –sV <IPADDRESS> nmap --script ssl-enum-ciphers -p <PORT> <IPADDRESS> And Nessus too, of course
  • 27. Test Cases for developers • How developers can test for it – Ciphers on the client openssl ciphers|sed ‘s/:/nr/g|sort – CipherSuites ./cipher.sh | grep YES – Compression openssl s_client -connect 156.132.142.11:12321 -tls1 – Protocol use browser and enable TLS 1.1 and TLS 1.2
  • 28. Part 5: And now… Demo Time!!!!!!!
  • 29. Overview When testing SSL-TLS • Test that SSLv2 is disabled • Test that SSLv3 is disabled (And Possibly TLS 1.0) • Test that compression is disabled • Test that cipher suites with key lengths of less that 128 bytes, ADH, NULL or EXP are disabled • Test that MD5 hash is disabled
  • 31. What’s coming up? • • • • Sept 24: SAR writing examples - Ryan Oct 8: Benchmark Wizardry - Eric Oct 22: Python for pentesting- Philip Nov 5: All your ssh are belong to us, pwning with proxychains - Anthony & Frank • Nov 19: Application context & discovering XSS without <script> - Todd • Dec 3: Vulnerability database solutions - Derek • Dec 17: Clickjacking

Editor's Notes

  • #3: This presentation will cover SSL communications, some common SSL vulnerabilities, remediation recommendations and easy ways to test web sites for these vulnerabilities. It will conclude with a short demo of how to test and how to remediate on Apache web servers.
  • #4: Part one will be a review of SSL communications. First a brief history of SSL. Second we will cover the steps of an SSL handshake when communication is initiated by the client. Lastly will be a quick overview of cipher suites and how they are used in SSL.
  • #5: Strong SSL ciphers are a vital part of secure web communications and the focus of this presentation. While some of what we cover will also be secure implementation of SSL, the focus is the testing and proper implementation of SSL cipher suites. The three areas of focus for strong SSL cipher suites are the SSL Version, the algorithms used and the use of strong cipher suites.
  • #6: SSL cipher strengths are issues that we test for in both host assessments and web application assessments. SSL is not usually configured in a secure manner by default and are commonly identified vulnerabilities during assessments. These are always a result of improper configuration of SSL on the web server.Lately SSL vulnerabilities have grown, as if often the case with security vulnerabilities. As we will discuss later, sometimes the remediation for the vulnerabilities are the opposite of each other. Until such a time that wide-spread use of TLS 1.2 and/or fixes by developers, we will have to “pick our poison” when it comes to remediation.
  • #7: Shortly after the World Wide Web came into existence (1990) and it was embraced beyond academia, it became apparent that there was a need for secure communications between web clients and web servers. In 1994 SSL v1 was developed by Netscape but never released. In 1995 SSL v2 was released but had a number of security flaws, which lead to the quick release of SSL v3 in 1996.TLS 1.0 was defined in 1999 as an upgrade to SSL v3. TLS 1.1 was released in 2006 to add protection against CBC attacks. In 2008 TLS 1.2 was released, mainly to replace MD5-SHA-1 with SHA-256. Today, roughly 27% of web servers support SSLv2, 99% support SSLv3 and TLS 1.0 while only 11% and 13% support TLS 1.1 and 1.2 respectively.
  • #8: When a client initiates contact with a web server, it performs a handshake. This establishes an agreement between the client and the server on how to communicate securely. The communication begins with the typical SYN -&gt; SYN/ACK -&gt; ACK where the client indicates the desire to communicate over SSL. Then, using SSL the client Introduces herself indicating how she would like to communicate. The server responds, taking suggestions from the client and chooses one, and introduces himself. He then shows his ID and indicates that he is done. The client provides a codebook for their secret language and signals that all further communication will be in that secret language. The server responds in kind.
  • #9: What really happens is this: The client sends a ClientHello, which includes the highest SSL protocol version it supports, a random number (later used in generating the secret key), a list of cipher suites, a suggested compression method and, if it a resumed handshake, a sessionID. The server responds with a ServerHello, which includes the SSL version that will be used, a random number, the cipher suit that will be used, the compression method and, if it is a resumed handshake, the sessionID. If it is not a resumed handshake, the server also may send it’s certificate followed by a ServerHelloDone. If it is not a resumed handshake the client then initiates the ClientKeyExchange. This concludes the asymmetrical encryption portion. The server sends a ChangeClientSpec, indicating that everything will now but done using the ”master secret”. The client sends a ChangeClientSpec, indicating that it too will now use the “master secret” from now on. The web page is now sent to the client.
  • #10: Within the initial ClientHello is a list of cipher suites that the client supports. It is from this list that the server will choose a suite to communicate.What is a “cipher suite”? Glad you asked.
  • #11: A cipher suite is a suite of encryption algorithms used for secure communications. It includes an algorithm for key exchange, such as RSA and Diffie-Hellman, authentication, such as RSA and DSA, bulk ciphers, such as RC4 and AES and message authentication, such as MD5 and SHA.It is the algorithms that the server supports where we often find weaknesses. IN some cases it is because of known weak ciphers, such as DES and in others it may weak because the HTTP/SSL implementation of that cipher is weak, such as CBC ciphers.
  • #12: In part 2 we we will cover common cipher suite and SSL configuration vulnerabilities and attacks that are just recently being discovered.
  • #19: Part 3 covers remediation recommendations for the common vulnerabilities. As we will discover, some of the recommendations are in direct conflict with others. Meaning if you remediate for one, you will make yourself vulnerable for the other. In these instances the system owner will have to decide which risk she is willing to live with.
  • #25: While some vulnerabilities are present in all versions of TLS, some are specific to TLS 1.0. As we can see from the matrix above, on the client-side implementation is slow for TLS 1.1 and TLS 1.2. Only two browsers support TLS 1.2 by default, the development version of Chrome and Safari 5 on OS X, a vast majority of modern browsers have TLS 1.1 and 1.2 disabled by default.On the server side it seems to me more drastic, with many popular web servers not yet supporting TLS 1.1 and 1.2 by default.
  • #26: Part 4 will cover how to test for the vulnerabilities we covered. Included are both automated tools and more “manual” methods of discovery.
  • #27: Both NMAP and Nessus will check for the vulnerabilities previously described. NMAP is sometimes favored for it’s ease of use, quickness and cost.But Nessus is great too.
  • #28: For developers who do not have or can not install third party software such as NMAP or Nessus, there are a couple of options using tools already at their disposal…provided they have a version of Linux/Unix/OS X on hand.First it is a good idea to enumerate the cipher suites on the local system. The host can only test against ciphers that it has present. List the ciphers on the host in a nice, readable format, type opensslciphers|sed ‘s/:/\n\r/g’|sort at the command line.Once you know the suites you will be testing from, you can list ciphers on the web server by running the cipher.sh script (located from us) by typeing ./chiper.sh &lt;ipaddress&gt;:&lt;port&gt;|grep YES. This will list the cipher suites enabled on the web server.To check for compression, use openssls_client –connect &lt;ipaddress&gt;:&lt;port&gt;|grep CompressionTo test the protocol version, you must use a browser that supports TLS 1.1 and 1.2 and has them enabled and browser the web site. Click on the padlock and verify the version of TLS that is being used. (Remember, web servers will use the highest version that is supported by both the browser and the server)