SSL implementieren aber sicher!



Similar documents
Is Your SSL Website and Mobile App Really Secure?

SSL Report: ebfl.srpskabanka.rs ( )

SSL BEST PRACTICES OVERVIEW

SSL/TLS: The Ugly Truth

Implementation Vulnerabilities in SSL/TLS

SSL Report: okidirect.co.uk ( )

SSL Server Rating Guide

SSL and Browsers: The Pillars of Broken Security

Why Eve and Mallory Love Android An Analysis of Android SSL (In)Security

Best Practice Guide (SSL Implementation) for Mobile App Development 最 佳 行 事 指 引. Jointly published by. Publication version 1.

Security Protocols/Standards

Mobile Application Security

Criteria for web application security check. Version

Why Eve and Mallory Love Android An Analysis of Android SSL (In)Security

AndroSSL: A Platform to Test Android Applications Connection Security

[SMO-SFO-ICO-PE-046-GU-

SSL Considerations for CAS: Planning, Management, and Troubleshooting. Marvin Addison Middleware Services Virginia Tech October 13, 2010

SBClient SSL. Ehab AbuShmais

Transport Layer Security Protocols

Web Application Entity Session Management using the eid Card Frank Cornelis 03/03/2010. Fedict All rights reserved

Secure Socket Layer. Introduction Overview of SSL What SSL is Useful For

A Study of What Really Breaks SSL HITB Amsterdam 2011

Secure Sockets Layer (SSL ) / Transport Layer Security (TLS) Network Security Products S31213

Low-Level TLS Hacking

SSL Protect your users, start with yourself

The Savage Curtain: Mobile SSL Failures

Chapter 17. Transport-Level Security

Security Engineering Part III Network Security. Security Protocols (I): SSL/TLS

Overview of CSS SSL. SSL Cryptography Overview CHAPTER

SSL GOOD PRACTICE GUIDE

Sascha Fahl, Marian Harbach, Matthew Smith. Usable Security and Privacy Lab Leibniz Universität Hannover

Securing the SSL/TLS channel against man-in-the-middle attacks: Future technologies - HTTP Strict Transport Security and Pinning of Certs

Secure Socket Layer/ Transport Layer Security (SSL/TLS)

SSL GOOD PRACTICE GUIDE

Sichere Software- Entwicklung für Java Entwickler

Einführung in SSL mit Wireshark

Creating and Managing Certificates for My webmethods Server. Version 8.2 and Later

Secure Socket Layer (SSL) and Transport Layer Security (TLS)

Installation and usage of SSL certificates: Your guide to getting it right

SSL: Paved With Good Intentions. Richard Moore

An Application Package Configuration Approach to Mitigating Android SSL Vulnerabilities

TLS/SSL in distributed systems. Eugen Babinciuc

Intro to AppDynamics with SSL

ERserver. iseries. Securing applications with SSL

Communication Systems SSL

Apache Security with SSL Using Linux

Configuring SSL Termination

Project X Mass interception of encrypted connections

Real-Time Communication Security: SSL/TLS. Guevara Noubir CSU610

Introduction. Purpose. Background. Details

HTTPS: Transport-Layer Security (TLS), aka Secure Sockets Layer (SSL)

What s Your HTTPS Grade? A Case Study of HTTPS/SSL at Mid Michigan Community College. Brandon bkish@midmich.edu

ERserver. iseries. Secure Sockets Layer (SSL)

Websense Content Gateway HTTPS Configuration

3.2: Transport Layer: SSL/TLS Secure Socket Layer (SSL) Transport Layer Security (TLS) Protocol

SSL A discussion of the Secure Socket Layer

Using etoken for SSL Web Authentication. SSL V3.0 Overview

Public Key Infrastructure (PKI)

Analyzing DANE's Response to Known DNSsec Vulnerabilities

Securing VMware View Communication Channels with SSL Certificates TECHNICAL WHITE PAPER

Michael Coates michael-coates.blogspot.com

Transport Level Security

Overview. SSL Cryptography Overview CHAPTER 1

Using BroadSAFE TM Technology 07/18/05

Web Security: Encryption & Authentication

Network Security Essentials Chapter 5

Certificate Management. PAN-OS Administrator s Guide. Version 7.0

Systematization of Knowledge Lessons Learned From SSL/TLS Attacks

2014 IBM Corporation

Security Protocols HTTPS/ DNSSEC TLS. Internet (IPSEC) Network (802.1x) Application (HTTP,DNS) Transport (TCP/UDP) Transport (TCP/UDP) Internet (IP)

How to configure SSL proxying in Zorp 3 F5

Proto Balance SSL TLS Off-Loading, Load Balancing. User Manual - SSL.

Forward Secrecy: How to Secure SSL from Attacks by Government Agencies

SSL: A False Sense of Security? How the Tenable Solution Restores SSL Effectiveness and Mitigates Related Threats

SSL Interception Proxies. Jeff Jarmoc Sr. Security Researcher Dell SecureWorks. and Transitive Trust

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Web Application Security Assessment and Vulnerability Mitigation Tests

Accellion Secure File Transfer Cryptographic Module Security Policy Document Version 1.0. Accellion, Inc.

TLS/SSL (Mis)Protecting our Connections Security

What s New in MySQL 5.7 Security Georgi Joro Kodinov Team Lead MySQL Server General Team

Certificates and network security

Apache Security with SSL Using Ubuntu

Communication Systems 16 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2009

, ) I Transport Layer Security

The Evil Twin problem with WPA2-Enterprise. Ludwig Nussel SUSE Linux Products GmbH

PowerChute TM Network Shutdown Security Features & Deployment

More on SHA-1 deprecation:

How To Understand And Understand The Ssl Protocol ( And Its Security Features (Protocol)

Apache, SSL and Digital Signatures Using FreeBSD

Implementing Secure Sockets Layer (SSL) on i

Strengths and Weaknesses of Cybersecurity Standards

Specific recommendations

Cleaning Encrypted Traffic

Enabling SSL and Client Certificates on the SAP J2EE Engine

Transcription:

SSL implementieren aber sicher! Karlsruher Entwicklertag 2014 21.05.2014 Dr. Yun Ding

SSL in the news 2011 2012 2013 2014 BEAST CRIME Lucky 13 Compromised CAs RC4 biases BREACH DRBG Backdoor Apple goto fail GnuTLS goto OpenSSL HeartBleed

SSL in scientific publications 2012 2013 The Most Dangerous Code in the World: Validating SSL Certificates Rethinking SSL Development in an Applied World Why Eve and Mallory Love Android: An Analysis of Android SSL (In)Security

Apps vulnerable to MITM Android Apps 1,074 out of 13,500 Apps ios Apps 98 out of 697 Apps 8 % 14 %

Layers of SSL-based applications Human Application Banking Shopping Messaging Browser Middleware/ Wrappers Apache HttpClient curl PhoneGap MKNetworkKit SSL Libraries GnuTLS Apple Secure Transport OpenSSL JSSE SSL Protocols Secure Protocols Cipher Suites Renegotiation Compression Cryptographic Primitives Random Number Generators Hash Encryption Authentication

How does SSL work? Client Server Handshake: Key Exchange Encrypted Data Communication Copyright: http://openclipart.org/image/800px/svg_to_png/33457/padlock-gold.png gvictoria, bigstock.com, [2009] Joerg Habermeier, bigstock.com, Scanrail, bigstock.com

How does SSL break? Trick user not to encrypt Predict the key Trick user to use attacker s key Trick server to expose keys Perform cryptographic analysis to decrypt SSL stripping DRBG backdoor Apple goto fail, GnuTLS goto,mitm OpenSSL Heartbleed RC4 biases, Lucky13, CRIME, BEAST, Breach Copyright: 2012 dny3d, bigstock.com, Scanrail, bigstock.com

SSL relies on Trust in Certificates Trusted Root CA Cert Sub CA Cert Server Cert Subject: RootCA Public Key RootCA sign Subject: SubCA Public Key SubCA sign Subject: Server Public Key Server sign

SSL relies on Valid Certificates 1. Make sure certificate validation is not turned off! 2. Verify the certificate is valid: not expired, not revoked 3. Validate Chain of Trust 4. Don t accept self-signed certificates 5. Make sure hostname validation is set

What went wrong Insecure coding Skipped or broken certificate validation Badly designed APIs Expose low-level SSL protocol details, complex options Complex relationship between return values and error status Unsafe defaults (+missing warning in API Doc) Delegate responsibility to application developers Human Application Middleware/ Wrappers SSL Libraries SSL Protocols Cryptographic Primitives

Default behavior in SSL lib. & wrappers Libraries/Wrappers Chain of Trust Hostname Verification OpenSSL GnuTLS CyaSSL JSSE SSLSocketFactory HttpsURLConnection Apache HttpClient 3.* HttpClient 4.* Python ssl module

What went wrong Lack of understanding of how SSL works and breaks Misinterpretation of manifold SSL parameters & options Delegate responsibility to end users with warnings Security gets in the way Human Application Middleware/ Wrappers SSL Libraries SSL Protocols Cryptographic Primitives

When Security gets in the way... Override (secure) standard certificate validation disable or break certificate validation disabled in development & forget to remove in production

Customized Trust Manager in Java

Hostname Verification in HttpClient (4.3) X509HostnameVerifier implements AbstractVerifier org.apache.http.conn.ssl. SSLConnectionSocketFactory uses AllowAllHostnameVerifier BrowserCompatHostnameVerifier Skip hostname verification: communicate with another host Customization to skip hostname verification new SSLConnectionSocketFactory(sslContext, new AllowAllHostnameVerifier())

Decouple test and production code Don t hardcode insecure certificate validation (and forget) Use best practices in software architecture for decoupling Abstract Factory Design Pattern Dependency Injection, configuration instead of programming

Customization for more Security! SSL Certificate or Public Key Pinning Whitelist expected Certificates or Public Keys Pre-existing binding between the server and its certificate/public key Sample code available on OWASP https://www.owasp.org/index.php/certificate_and_public_key_pinning#examples_of_pinning

Secure SSL configuration Use secure protocols: TLS v1.2, TLS v1.1, TLS v1.0 Use secure cipher suites Support authentication & encryption 128 bit Avoid Use ECDHE for forward secrecy Avoid anonymous DH, null cipher, RC4, 3DES RSA and DSA key must be 2048 bits Disable client-initiated Renegotiation Disable TLS compression

Secure SSL configuration Avoid mixed TLS and non-tls content Secure cookies Deploy HTTP Strict Transport Security (HSTS) Prevent caching of sensitive content Human Application Middleware/ Wrappers SSL Libraries SSL Protocols Cryptographic Primitives SSL/TLS Deployment Best Practices of Qualys SSL Labs https://www.ssllabs.com/downloads/ssl_tls_deployment_best_practices_1.3.pdf OWASP Transport Layer Protection Cheat Sheet https://owasp.org/index.php/transport_layer_protection_cheat_sheet

Test SSL Perform adversarial testing: abnormal certificates, MITM attacking tools (sslsniff, mitmproxy) Testing for SSL/TLS ciphers, protocols, keys and know vulnerabilities (e.g., BEAST, CRIME, Heartbleed) https://www.owasp.org/index.php/testing_for_weak_ssl/tsl_ciphers,_insufficient_transport_layer_protectio n_%28owasp-en-002%29 http://thoughtcrime.org/software/sslsniff/ http://mitmproxy.org/

Tools: Creating Keys and Certs Java Keytool OpenSSL: powerful, but complex Xca: http://sourceforge.net/projects/xca/ Based on OpenSSL Provides a Graphical User Interface (GUI) gnomint: http://gnomint.sourceforge.net Based on GnuTLS Provides GUI and command line support

Tools: Creating Keys and Certs with xca

Securely implement SSL! Understand how SSL works and breaks Use SSL libraries and middleware securely Don t rely on default settings of SSL libraries and middleware/wrappers Look out for badly designed SSL API (return value, error status) Perform certificate validation properly Verify the certificate is valid: not expired, not revoked Validate Chain of Trust Don t accept self-signed certificates Make sure hostname validation is set Decouple insecure customized certificate handling from production code Test for insecure SSL configurations

Engineering SSL is System Security Engineering policies open source psychology usability secure coding

References M. Georgiev, S. Iyengar, S. Jana et al., The Most Dangerous Code in the World: Validating SSL Certificates in Non-Browser Software, 2012, http://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf S. Fahl, M. Harbach, L. Baumgaertner and B. Freisleben, Why Eve and Mallory Love Android: An Analysis of Android SSL (In)Security, 2012, http://www2.dcsec.unihannover.de/files/android/p50-fahl.pdf S. Fahl, M. Harbach, H. Perl et al., Rethinking SSL Development in an Applied World, 2013, http://android-ssl.org/files/p49.pdf Comparison of TLS implementations http://en.wikipedia.org/wiki/comparison_of_tls_implementations

Copyright: Kotist, bigstock.com

Secorvo Security Consulting GmbH Ettlinger Straße 12-14 76137 Karlsruhe Tel. +49 721 255171-0 Fax +49 721 255171-100 info@secorvo.de www.secorvo.de