State of the SSL Onion. Susan Hinrichs ATS Summit Fall 2015



Similar documents
TLS all the tubes! TLS Fast Yet? IsWebRTC. It can be. Making TLS fast(er)... the nuts and bolts. +Ilya

Edge-based Performance Analysis. Susan Hinrichs, Eric Schwartz, François Pesce, Huan Yang, Dan States ATS Summit Fall 2015

WEB SITE SECURITY. Jeff Aliber Verizon Digital Media Services

TFE listener architecture. Matt Klein, Staff Software Engineer Twitter Front End

Oracle Database Security and Audit

Lab Exercise SSL/TLS. Objective. Step 1: Open a Trace. Step 2: Inspect the Trace

HTTPS Inspection with Cisco CWS

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

MatrixSSL Getting Started

New CICS support for Secure Sockets Layer

Einführung in SSL mit Wireshark

Dashlane Security Whitepaper

SECURITY COMPARISON BETWEEN IBM WEBSPHERE MQ 7.5 AND APACHE ACTIVEMQ 5.9

Apache Traffic Server Extensible Host Resolution

ATS Test Documentation

Scenario: Remote-Access VPN Configuration

Displaying SSL Certificate and Key Pair Information

How to Prepare Your Salesforce Service for Certificate Changes

Windows 8 VPN Get Connected

OBM (Out of Band Management) Overview

HTTPS is Fast and Hassle-free with CloudFlare

Harden SSL/TLS v1.01. Windows hardening tool. Thierry ZOLLER.

dotmailer for Dynamics Frequently Asked Questions v 6,0

Spirent Abacus. SIP over TLS Test 编 号 版 本 修 改 时 间 说 明

Migrating the SSL Offloading Configuration of the Alteon Application Switch 2424-SSL to AlteonOS version

SENSE Security overview 2014

Factory Application Certificates and Keys Products: SB700EX, SB70LC

Security Policy Revision Date: 23 April 2009

ACE Management Server Deployment Guide VMware ACE 2.0

Scenario: IPsec Remote-Access VPN Configuration

WAN OPTIMIZATION. Srinivasan Padmanabhan (Padhu) Network Architect Texas Instruments, Inc.

RSA SecurID Ready Implementation Guide

Network Security Protocols

Websense Content Gateway HTTPS Configuration

Table of Contents. Introduction. Audience. At Course Completion

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

JapanCert 専 門 IT 認 証 試 験 問 題 集 提 供 者

openssl egg Bindings to the OpenSSL SSL/TLS library Extension for Chicken Scheme Version Thomas Chust

Amazon Web Services Primer. William Strickland COP 6938 Fall 2012 University of Central Florida

Inside Dropbox: Understanding Personal Cloud Storage Services

Zmanda Cloud Backup Frequently Asked Questions

MatrixSSL Developer s Guide

Enabling SSL and Client Certificates on the SAP J2EE Engine

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

Maximizing Performance with SPDY & SSL. Billy Hoffman

SSL implementieren aber sicher!

How To Secure Cloud Computing

Corporate VPN Using Mikrotik Cloud Feature. By SOUMIL GUPTA BHAYA Mikortik Certified Trainer

TIBCO Spotfire Platform IT Brief

Thierry ZOLLER Principal Security Consultant

Lab Configure Basic AP Security through IOS CLI

Content. Global Delivery Network: Folders

User-ID Configuration

A Tool for Evaluation and Optimization of Web Application Performance

Steelcape Product Overview and Functional Description

Virtual Private Network (VPN) Lab

Citrix XenApp 6.5 and XenDesktop 5.6 Security Standards and Deployment Scenarios Supplementary scenarios

Exam : 1Y Citrix Access Gateway 8.0 Enterprise Edition: Administration. Title : Version : DEMO

tcpcrypt Andrea Bittau, Dan Boneh, Mike Hamburg, Mark Handley, David Mazières, Quinn Slack Stanford, UCL

ERserver. iseries. Secure Sockets Layer (SSL)

Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords

Wireless VPN White Paper. WIALAN Technologies, Inc.

System Administration Training Guide. S100 Installation and Site Management

The New Key Management:

Service Level Agreement (SLA) Arcplace Backup Enterprise Service

Blackbaud NetCommunity Configuration Overview

Lab Exercise SSL/TLS. Objective. Requirements. Step 1: Capture a Trace

This presentation discusses the new support for the session initiation protocol in WebSphere Application Server V6.1.

SSL SSL VPN

Technical White Paper

Performance Workload Design

Configuring Security Features of Session Recording

Cisco AnyConnect Secure Mobility Client VPN User Messages, Release 3.1

How to integrate RSA ACE Server SecurID Authentication with Juniper Networks Secure Access SSL VPN (SA) with Single Node or Cluster (A/A or A/P)

2014 IBM Corporation

BlackBerry Enterprise Server Express System Requirements

PC Business Banking. Technical Requirements

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Apache Security with SSL Using Ubuntu

Crypto Lab Public-Key Cryptography and PKI

User Guide. You will be presented with a login screen which will ask you for your username and password.

Apache Security with SSL Using Linux

Websense Web Security Gateway: Integrating the Content Gateway component with Third Party Data Loss Prevention Applications

Securing Data in the Cloud

IINS Implementing Cisco Network Security 3.0 (IINS)

Fundamentals of Windows Server 2008 Network and Applications Infrastructure

Installation and Administration Guide

How to configure SSL proxying in Zorp 3 F5

Table of Contents. Chapter 1: Installing Endpoint Application Control. Chapter 2: Getting Support. Index

Between Mutual Trust and Mutual Distrust: Practical Fine-grained Privilege Separation in Multithreaded Applications

bbc Adobe LiveCycle Data Services Using the F5 BIG-IP LTM Introduction APPLIES TO CONTENTS

Security Considerations for DirectAccess Deployments. Whitepaper

SBClient SSL. Ehab AbuShmais

Workday Mobile Security FAQ

Oracle Solaris Security: Mitigate Risk by Isolating Users, Applications, and Data

ERserver. iseries. Securing applications with SSL

This presentation covers virtual application shared services supplied with IBM Workload Deployer version 3.1.

Transcription:

State of the SSL Onion Susan Hinrichs Fall 2015

OpenSSL 1.0.1 vs 1.0.2 ATS runs against 1.0.2 How many folks are running with openssl 1.0.2? Feature drivers for adoption Support multiple certificate chains per context RSA and ECDSA deployments ALPN Support November 2015

Alternatives to OpenSSL Libraries that are consistent with openssl API BoringSSL: Google s fork of openssl 1.0.2 Zwoop got this to work with ATS. Requires a few relatively minor changes in ATS. LibreSSL: Forked from openssl in 2014. Libraries that are not consistent with openssl API WolfSSL (formerly CyaSSL) Small, targeting RTOS space. s2n: From Amazon. Launched this summer. Replacement for libssl not libcrypto. No locks or mutexes. Small code base. More work due to API change, but might be interesting to test against. More likely to yield performance improvements November 2015

ATS performance limits with OpenSSL Benchmarks by Bryan Call showed lock contention to be limiting factor One outstanding issue was lock contention in the OpenSSL library. This shows up as a spinlock in the kernel and I traced it back to a pthread mutex lock that is being call from SSL_get_error() and ssl3_accept(): We call SSL_get_error() all the time since we are non-blocking and run into NEED_READ/NEED_WRITE a lot Other issues? Fall 2015

Scaling Certificate Issues Seen by Steven Feltner loading over 10,000 certificates RedHat version of 1.0.1e has issues (TS-3554) Loading lots (1000 s of certificates) takes over a minute. Runs the system out of memory. Build own version of openssl 1.0.1 (or 1.0.2) loading takes a few seconds. Memory use is minimal. Fix qsort to use median of three. (TS-3867) Original version would hit pessimal sort and seg fault. Scaling problems with getaddrinfo and many IP addresses assigned to an interface. Bugs filed for Centos and RedHat Fall 2015

SSL Certificate Reload TS-3960 Reload based on content changes Brian Geffon November 2015

Client Certificate Support Only global controls Can only specify one client certificate to be supplied to all origin servers Can only specify one set of requirements for requiring certificates from clients Seems like there ought to be use-cases that require different client certs for different origin servers Question seems to be coming up more often. Should this be a plugin-specific solution? What hook? Should we add a cert selection callback for the ATS to origin connection? Or is there a common use case that requires finer granularity client certificate specification? November 2015

SSL Session Ticket Keys Configuration simplification Currently specify ticket keys and ticket support enable/disable on per domain basis in ssl_multicert.config Bugs on disabling (TS-3742) However, common case want to specify ticket keys and enable/disable ticket support globally. TS-3528 - Create Global session ticket disable and discussion on IRC/mailing list. Provide PluginAPI to support more complex scenarios. TS-3570 - Implement ATS ticket support to origin server November 2015

SSL Negotiation Refinement Use Cases for finer grained decision making about what attributes are available during initial session negotiation Degree of certificate verification Set of protocols we are willing to accept (via NPN/ALPN) Set of ciphers to negotiation Can implement most (all?) of this via plugins. Are there standard cases to be set up via static configuration Add to ssl_multi_cert.config? Or another configuration paradigm?

CryptoProxy Experiments Move both private key storage and computation with private keys to a CryptoProxy Implemented by CloudFlare as Keyless SSL Extension of a standard crypto card scenario November 2015

Implementation Leverage CloudFlare s reference implementation of CryptoProxy Slightly tweaked to split signing operations differently in protocol Implement OpenSSL engine that takes over RSA operations Uses default except for the private key encrypt and private key decrypt options Implement network protocol to CryptoProxy for the private key operations Need to do something similar for the ECDSA crypto family Fall 2015

ATS Implementation Issues SSL_accept blocks during the private key operations. Including non-trivial communication delays will cause thread to block until communication returns. Unlike Certificate loading, there is not a nice place to pause control and resume We have a dev build that spawns worker threads to do the SSL Handshake. After handshake send event back to regular worker thread A hassle to track operations the require the Ethread local storage (e.g. logging). Currently have a fixed size communication pool Need to beef that up to be more resilient Fall 2015

No Free Lunch The cost of proxying the private key operation is dominated by the the RTT between ATS and the Proxy Scenario Standard Openssl Authentication Average RTT between ATS and CryptoProxy NA Average time to fetch small cached item 74 ms Best Case 1 ms 72 ms Near Pod 10 ms 83 ms Far Pod 50 ms 123 ms Mini Pod 100 ms 173 ms Fall 2015

What is the real cost? When is it useful? From yesterday s talk, the expected average impact For proxy_rtt = 100ms and RTT = 50ms Average connection overhead increases from 32.35ms to 43.55ms If we get ATS to avoid blocking working thread during handshake, the additional handshake overhead should be a constant addition to the transaction time. Consider adding Keyless Edge Access Point in Elbonia Client RTT Proxy RTT Ave Conn. Overhead Orig Edge 100 N/A 64.7 164.7 Ave. Time Fetch Small Cached Obj Elbonian Edge 50 100 43.55 93.55 Fall 2015

Questions?