What makes up SSL

SSL is a combination of components working together in a specified order to create an encrypted connection. When you look at Cryptography, a single component such as AES just provides the encryption. If we didnt have Diffie Helman to provide a secure key setup, then at the start of the connection we would need to provide the key in clear text so that the client could decrypt the AES data.

The following table is an example of how we interpret a SSL cipher such as those found here at openssl ciphers website. In this example we will look at TLS_DHE_RSA_WITH_AES_128_CBC_SHA256. Further below we go into details to understand each component and provide further options

TLSDHERSAAES_128_CBCSHA256
Protocol GroupKey ExchangeEphermeral StatusAuthenticationCipherHashMAC
Used in TLS1 or newerDiffie Hellman (key exchange)Ephermeral (ie PFS)RSA AuthenticationAES 128 bit in CBC modeSHA256 HMAC

Protocol

A Protocol (eg SSLv3, TLSv1.2) is what defines how an SSL connection is constructed. Within each protocol is a set of minimum and maximum components which can be used (see protocol features matrix below). Each protocol represents the understanding of the day, so each new protocol is more secure than the last based on everything we know about breaking cryptography or fixing faulty components. The protocol also defines the order of events that must be completed before transmiting encrypted data eg the key exchange.

ProtocolStatusNotes
SSLv2InsecureDont Use under any circumstances
SSLv3WeakOnly use for old legacy clients
TLSv1Some IssuesSafe to use, but should phase out
TLSv1.1Safe to useUse for non 1.2 protocols like SHA1
TLSv1.2Safe to useRecommended to use
TLSv1.3not out yet

Key Exchange

Keys exchange is the setup of the master secret which creates the key for encrypting and decrypting the data.

Procedure: In TLS1 with a clean RSA key, the actual RSA key is used for encrypting connections.

Key AlgorithimsKey SizesNotes
RSA2048-4096 Standard
Diffie Hellman2048-4096 Standard
Elliptic Curve DH284-521 Standard
DSS
DSA

Perfect Forward Secrecy (PFS)

PFS effectivly changes the master key several times during a session or over a given period of time. The key that generated the public certificate

Cipher

CiphersStatusNotes
RC4Insecure
3DES112bits, Weak
AES128-256 Strong
Camellia128-256 Strong
ChaCha20256 Strong

HMAC

HMACStatusNotes
MD5Weak
SHA1Weak-Collisions
SHA256Strong
SHA384Strong
SHA512Strong

Protocol Features Matrix

This table shows the relationship between SSL Protocols and available sub components.

ProtocolCiphers (bits)ModesData Integrity (HMAC)Key ExchangeFeaturesStrength/Status
SSLv2 RC4 (40-128), DES (56), 3DES (112), IDEA (128) Block (CBC), Stream (RC) MD5 RSA Insecure, End Life
SSLv3 null (0), RC4 (40-128), DES (40, 56), 3DES (112), IDEA (128) Block (CBC), Stream (RC) MD5, SHA1 RSA, DH-RSA, DHE-RSA, DH-DSS, DHE-DSS PFS Insecure, End Life
TLSv1.0 null (0), RC4 (40, 128), AES / Camellia / ARIA (128,192,256), SEED (128), DES (40, 56), 3DES (112), GOST (256), IDEA (128) Block (CBC), Stream (RC) MD5, SHA1, GOST RSA, DH-RSA, DHE-RSA, ECDH-RSA, ECDHE-RSA, DH-DSS, DHE-DSS, ECDH-ECDSA, ECDHE-ECDSA, PSK, PSK-RSA, DHE-PSK, ECDHE-PSK, SRP, SRP-DSS, SRP-RSA, Kerberos, DH-ANON, ECDH-ANON, GOST R 34.10-94 / 34.10-2001 PFS Moderate, Use TLS1.2
TLSv1.1 null (0), RC4 (128), AES / Camellia / ARIA (128,192,256), SEED (128), DES (56), 3DES (112), GOST (256), IDEA (128) Block (CBC), Stream (RC) MD5, SHA1, GOST RSA, DH-RSA, DHE-RSA, ECDH-RSA, ECDHE-RSA, DH-DSS, DHE-DSS, ECDH-ECDSA, ECDHE-ECDSA, PSK, PSK-RSA, DHE-PSK, ECDHE-PSK, SRP, SRP-DSS, SRP-RSA, Kerberos, DH-ANON, ECDH-ANON, GOST R 34.10-94 / 34.10-2001 PFS Strong, Use TLS1.2
TLSv1.2 null (0), RC4 (128), AES / Camellia / ARIA (128,192,256), AES-GCM / Camellia-GCM / ARIA-GCM (128,192,256), AES-CCM (128,192,256), SEED (128), DES (56), 3DES (112), GOST (256), IDEA (128), Chacha20-Poly1305 (256) Block (CBC, CCM, GCM), Stream (Chacha20) MD5, SHA1, SHA256/384, GOST RSA, DH-RSA, DHE-RSA, ECDH-RSA, ECDHE-RSA, DH-DSS, DHE-DSS, ECDH-ECDSA, ECDHE-ECDSA, PSK, PSK-RSA, DHE-PSK, ECDHE-PSK, SRP, SRP-DSS, SRP-RSA, Kerberos, DH-ANON, ECDH-ANON, GOST R 34.10-94 / 34.10-2001 AEAD, PFS Strong
TLSv1.3 AES-GCM / AES-CCM / Camellia-GCM / ARIA-GCM (128, 192, 256), Chacha20-Poly1305 (256) Block (CBC, CCM, GCM), Stream (Chacha20) DHE-RSA, ECDHE-RSA, ECDHE-ECDSA AEAD, PFS Strong, not out yet
sourced from https://en.wikipedia.org/wiki/Transport_Layer_Security
TLS1.3 still in draft.. items may change.

PKI Theory

Certificate Authority

Certificates