Comparison of SSL/TLS libraries based on Algorithms/languages supported, Platform, Protocols and Performance. By Akshay Thorat

Similar documents
Performance implication of elliptic curve TLS

SSL/TLS. How to send your credit card number securely over the internet

Comparing TCP performance of tunneled and non-tunneled traffic using OpenVPN. Berry Hoekstra Damir Musulin OS3 Supervisor: Jan Just Keijser Nikhef

Transport Level Security

Cryptography SSL/TLS. Network Security Workshop. 3-5 October 2017 Port Moresby, Papua New Guinea

Open Source Internet Security

The Case For Crypto Protocol Awareness Inside The OS Kernel

The Case For Crypto Protocol Awareness Inside The OS Kernel

OpenSSH. 24th February ASBL CSRRT-LU (Computer Security Research and Response Team Luxembourg) 1 / 12

Anand Raghunathan

ASPERA HIGH-SPEED TRANSFER. Moving the world s data at maximum speed

Progressively Securing RIOT-OS!

The case for ubiquitous transport-level encryption

Computer Security. 10r. Recitation assignment & concept review. Paul Krzyzanowski. Rutgers University. Spring 2018

Apache Commons Crypto: Another wheel of Apache Commons. Dapeng Sun/ Xianda Ke

SSH Bulk Transfer Performance. Allan Jude --

OpenSSL is a project comprising (1) a core library and (2) a toolkit. The core library offers an API for developers of secure applications.

COSC 301 Network Management. Lecture 15: SSL/TLS and HTTPS

Internet Security. - IPSec, SSL/TLS, SRTP - 29th. Oct Lee, Choongho

BCA III Network security and Cryptography Examination-2016 Model Paper 1

Plaintext-Recovery Attacks Against Datagram TLS

SharkFest 17 Europe. SSL/TLS Decryption. uncovering secrets. Wednesday November 8th, Peter Wu Wireshark Core Developer

Virtual Private Networks (VPN)

L13. Reviews. Rocky K. C. Chang, April 10, 2015

About FIPS, NGE, and AnyConnect

End-to-End Java Security Performance Enhancements for Oracle SPARC Servers Performance engineering for a revenue product

Advanced Computer Systems 2018 Final project

Chapter 32 Security in the Internet: IPSec, SSL/TLS, PGP,

Security+ Guide to Network Security Fundamentals, Third Edition. Chapter 11 Basic Cryptography

Cryptography (Overview)

Security Policy Document Version 3.3. Tropos Networks

Overview. SSL Cryptography Overview CHAPTER 1

Findings for

Implementing Cryptography: Good Theory vs. Bad Practice

Transport Layer Security

System Requirements. Things to Consider Before You Install Foglight NMS. Host Server Hardware and Software System Requirements

Protocols, Technologies and Standards Secure network protocols for the OSI stack P2.1 WLAN Security WPA, WPA2, IEEE i, IEEE 802.1X P2.

WAP Security. Helsinki University of Technology S Security of Communication Protocols

Technical / Community Update! FOSDEM

Release note Tornaborate

1. OVERVIEW RELEASE ITEMS HOW TO APPLY ADDITIONAL FUNCTIONS AND CHANGE FUNCTIONS FROM PREVIOUS EDITION...

PolarSSL. Open Source crypto / SSL & Government accreditations

Transport Layer Security

Oracle Solaris Userland Cryptographic Framework Software Version 1.0 and 1.1

FIPS Non-Proprietary Security Policy. Level 1 Validation Version 1.2

INTERNET PROTOCOL SECURITY (IPSEC) GUIDE.

Overview of SSL/TLS. Luke Anderson. 12 th May University Of Sydney.

White Paper for Wacom: Cryptography in the STU-541 Tablet

Sicherheitsaspekte für Flashing Over The Air in Fahrzeugen. Axel Freiwald 1/2017

HACL* in Mozilla Firefox Formal methods and high assurance applications for the web

Using SSL Public Key Security with Titan FTP Server

Oracle Solaris Kernel Cryptographic Framework Software Version 1.0 and 1.1

Introduction and Overview. Why CSCI 454/554?

Authenticated Storage Using Small Trusted Hardware Hsin-Jung Yang, Victor Costan, Nickolai Zeldovich, and Srini Devadas

SecureDoc Disk Encryption Cryptographic Engine

Using SSL Public Key Security with Cornerstone MFT Server

Securing IoT applications with Mbed TLS Hannes Tschofenig Arm Limited

Software-defined Storage: Fast, Safe and Efficient

A User-level Secure Grid File System

Network Security Platform 8.1

z/tpf OpenSSL Support Dan Yee IBM Software Engineer August 10, 2016

SSL Accelerating Test Bench SSL accelerating Test Method

Authentication CHAPTER 17

CSCE 715: Network Systems Security

Cipher Suite Configuration Mode Commands

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

State of TLS usage current and future. Dave Thompson

Performance Implications of Security Protocols

TLS. RFC2246: The TLS Protocol. (c) A. Mariën -

Leveraging Intel SGX to Create a Nondisclosure Cryptographic library

There are numerous Python packages for cryptography. The most widespread is maybe pycrypto, which is however unmaintained since 2015, and has

APNIC elearning: Cryptography Basics

Scaling Acceleration Capacity from 5 to 50 Gbps and Beyond with Intel QuickAssist Technology

HP OO 10.x Network Architecture

Kernel Transport Layer Security

TLS 1.1 Security fixes and TLS extensions RFC4346

But where'd that extra "s" come from, and what does it mean?

IBM z13 Performance of Cryptographic Operations (Cryptographic Hardware: CPACF, CEX5S)

Block Ciphers. Secure Software Systems

SSL/TLS & 3D Secure. CS 470 Introduction to Applied Cryptography. Ali Aydın Selçuk. CS470, A.A.Selçuk SSL/TLS & 3DSec 1

Creating Trust in a Highly Mobile World

FIPS Non-Proprietary Security Policy

This Security Policy describes how this module complies with the eleven sections of the Standard:

The Design, Implementation, and Performance Evaluation of Secure Socket SCTP 2.0

State of the Linux Kernel

Legacy-Compliant Data Authentication for Industrial Control System Traffic

Initial connection setup. Adding subflow setup. Three-way handshake with MP_CAPABLE Exchange 64 bit key(key-a, Key-B)

Overview of Cryptography

McAfee Network Security Platform 8.1

Transparent Multi-core Cryptographic Support on Niagara CMT Processors

Performance and overhead evaluation of OSCOAP and DTLS

Lecture 08: Networking services: there s no place like

IPSec. Slides by Vitaly Shmatikov UT Austin. slide 1

Securing Your Wireless LAN

A New Internet? Introduction to HTTP/2, QUIC and DOH

CPSC 467: Cryptography and Computer Security

Public Key Infrastructure. What can it do for you?

BlackVault Hardware Security Platform SECURE TRUSTED INTUITIVE. Cryptographic Appliances with Integrated Level 3+ Hardware Security Module

Connecting Securely to the Cloud

Security context. Technology. Solution highlights

Transcription:

Comparison of SSL/TLS libraries based on Algorithms/languages supported, Platform, Protocols and Performance By Akshay Thorat

Table of Contents TLS - Why is it needed? Introduction- SSL/TLS evolution Libraries Studied Comparison Library to Implementation Supported Features Algorithm/Ciphers Supported Performance for libraries Conclusion

Transport Layer Security(TLS), why is it needed? Communication security on internet Secure - Email, VOIP, Web browsing, Bank transactions Provides Privacy and Integrity of data Prevent Eavesdropping and Tampering

Introduction Application protocol independent TLS versions (Implementations) evolved as SSL1.0->SSL2.0->SSL3.0 ->TLS1.0->TLS1.1->TLS1.2->TLS1.3 (draft) Less Secure Each suite contains authentication, message authentication code (MAC), key exchange and encryption algorithms Datagram TLS (DTLS) TLS with packet lost and reordering implementation DTLS1.0 and DTLS 1.2

Libraries Under Consideration Primary OpenSSL - Robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) GnuTLS Portable ANSI C based library with Lesser General Public license (GPL) Other Network Security Services (NSS) - Library designed to support crossplatform development of security-enabled client and server applications Cryptlib - Open source cross-platform software security toolkit library for SSL/TLS and SSH secure sessions, CA services

Library to Implementation comparison Library SSL3.0 TLS1.0 TLS1.1 TLS1.2 TLS1.3 DTLS1.0 DTLS1.2 OpenSSL Yes Yes Yes Yes Yes Yes Yes GnuTLS Yes Yes Yes Yes No Yes Yes NSS Yes Yes Yes Yes Yes Yes Yes Cryptlib Yes Yes Yes Yes No No No

General Comparison OpenSSL GnuTLS NSS Languages C C C or C++ Cryptographic Token Not Present natively * Present Present Interface- PKCS #11 Thread safety CPU Assisted Crypt. With AES-NI Languages Two callback function with POSIX or Win Threads Yes Use POSIX or Win Thread Yes (+VIA Padlocks) Cryptographic Token Interface - Hardware security module Platform independent API for Hardware Security Modules (HSM) and smart cards Thread Safety Safe shared data manipulation CPU assisted Cryptography Use of hardware acceleration for cryptographic functions with supported instruction set *engine needs to be added externally through patch Yes Yes

Performance Comparisons Criteria Literature survey of Speedtest and Comparison of Open-Source Cryptography Libraries by Timo Bingmann Public key performance results for NSS Installing OpenSSL and running hashing algorithms Installing GnuTLS and running benchmarking for hashes/ciphers

OpenSSL and GnuTLS Comparison Each speed test consists of one encryption pass directly followed by a decryption pass Ciphers Tested OpenSSL - AES, Blowfish,CAST5,3DES, XTEA GnuTLS AES, Blowfish, CAST5,3DES, Serpent, Twofish Average of KB of data processed per unit time with different distributions 35,000 30,000 25,000 20,000 15,000 10,000 5,000 0 Throughput KB/s Ubuntu-hardy Debian-lenny Ubuntu-Gutsy Fedora8 Debian-etch GnuTLS OpenSSL

Problems Ciphers compared are not same average values could have been shifted Varying Buffer size values were calculated and only ran once should have ran multiple times until results avg. out Only Symmetric ciphers are tested

NSS The SSL_RSA_WITH_RC4_128_MD5 (SSL3) cipher is used Restart runs utilize cache which results in higher throughput Full runs handshake every connection which introduce overhead Type Ops/sec CPU-usage(%) Full 156.23 95 Full-zones 216.55 100 Restart 220.76 90 Restart-zones 569.82 86

600 500 400 300 200 100 0 Throughput and CPU usage Full Full-zones Restart Restart-zones Throughput (Ops/sec) CPU-usage(%) CPU utilization is near about same for each run So varying throughput is a function of Memory access speed Depending the use of cache, throughput can be vastly increased

Performance Tests Comparison based OS running natively vs in Virtual machine Libraries compared OpenSSL and GnuTLS Native machine and VM both are running equal environments Ubuntu 16.04 CPU Intel core i5 2.20GHz RAM 4GB Disk 25GB

OpenSSL 350000 300000 250000 200000 150000 100000 50000 0 Throughput (KB/s) Comparison 1 10 100 1000 10000 Buffer Size (Bytes) Native VM SHA256 with varying buffer size (16,64,256,1024,8192 Bytes) Buffer size above 1000 bytes, starts to saturate throughput 330MB/s In VM, low throughput is observed because of overhead of running inside VM After increasing buffer value by certain value bottleneck can occur

GnuTLS 700000 600000 500000 400000 300000 200000 100000 0 Hashing algorithms checked for fixed payload size (16384 bytes) MACs - SHA1, SHA256,SHA512 Throughput around 300MB/s In VM low throughput Throughput KB/s SHA1 SHA256 SHA512 Native VM

Conclusion Best library? Depends on criteria Higher Throughput and simple OpenSSL (32MB/s) Portable and lightweight - GnuTLS Cross Platform support NSS License compatibility - Apache License (used by OpenSSL) are incompatible with the GPL, GnuTLS or NSS Novice TLS developer OpenSSL Wide Support Simple to use Single platform and no compatibility required

Thank You!

References [1] Timo Bingmann,(14th July 2008), Speedtest and Comparison of Open-Source Cryptography Libraries and Compiler Flags, [online]. Available: https://panthema.net/2008/0714-cryptography-speedtest-comparison/ [2] OpenWrt Oraganisation (n.d). OpenSSL Benchmarks tool. [online]. Availble: https://wiki.openwrt.org/doc/howto/benchmark.openssl [3] GNU TLS, Transport Layer Security Library for the GNU system, for version 2.0.2, 17 October 2007. Available: http://ports.gnu-darwin.org/security/gnutls/work/gnutls- 2.0.2/doc/gnutls.pdf [4] Mozilla Developer Network. Network Security Services. Available: https://developer.mozilla.org/en-us/docs/mozilla/projects/nss#documentation. Accessed: Sep. 8,2017.