This site is an archive and is no longer updated.
    Back to Interactive Demo
    FundamentalsTLS

    Cipher Suite Decoder: Understanding TLS Cipher Suites

    Decode those intimidating cipher suite strings and understand what each component means. Learn how to configure secure cipher suites for your servers.

    15 min readDecember 2025Reference Guide
    LinkedInX
    TLS Cipher Suite Decoder and Reference Guide

    Quick Answer: What is a Cipher Suite?

    A cipher suite is a set of cryptographic algorithms that work together to secure a TLS connection. It specifies how your data will be protected, including key exchange, authentication, encryption, and integrity verification.

    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    ECDHE
    Key Exchange
    AES_256_GCM
    Encryption
    SHA384
    Integrity

    The cipher suite you choose directly impacts your security. Using weak or outdated cipher suites can leave your connections vulnerable to attacks.

    Anatomy of a Cipher Suite String

    Let's break down the components of a typical TLS 1.2 cipher suite string:

    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    TLS
    Protocol
    Transport Layer Security - the protocol being used
    ECDHE
    Key Exchange
    How client and server agree on a shared secret (Elliptic Curve Diffie-Hellman Ephemeral)
    RSA
    Authentication
    How the server proves its identity (RSA certificate signature)
    AES_256
    Encryption
    Symmetric cipher for encrypting data (AES with 256-bit key)
    GCM
    Cipher Mode
    How the cipher is applied (Galois/Counter Mode - authenticated encryption)
    SHA384
    Hash/MAC
    For key derivation and message authentication (SHA-384)

    Key Exchange Algorithms

    The key exchange algorithm determines how both parties securely agree on a shared secret for encrypting the session. This is the most critical component for forward secrecy.

    AlgorithmForward SecrecySecurityRecommendation
    ECDHEYesStrongBest choice - use this
    DHEYesGood (if 2048+ bit)Acceptable, but slower than ECDHE
    RSANoWeakAvoid - no forward secrecy
    PSKDependsDependsFor IoT and constrained devices

    What is Forward Secrecy?

    Forward secrecy ensures that if an attacker later obtains your server's private key, they still cannot decrypt past sessions. ECDHE (Ephemeral) generates new keys for each session, so there's no long-term secret to compromise.

    Authentication Methods

    The authentication component specifies how the server proves its identity to the client using its certificate.

    MethodKey SizePerformanceNotes
    RSA2048-4096 bitsSlower signaturesMost common, widely supported
    ECDSA256-384 bitsFaster signaturesModern, smaller keys, same security
    Ed25519256 bitsFastestNewer, not yet widely adopted in TLS

    Encryption Algorithms

    The encryption algorithm (symmetric cipher) protects the actual data being transmitted. This is where the "fast" encryption happens after the handshake.

    CipherKey SizesSecurityNotes
    AES-256256 bitsStrongIndustry standard, hardware accelerated
    AES-128128 bitsStrongSlightly faster, still very secure
    ChaCha20256 bitsStrongGreat for mobile (no AES hardware)
    3DES168 bitsWeakDeprecated - Sweet32 attack
    RC440-256 bitsBrokenNEVER USE - multiple attacks

    Cipher Modes (GCM vs CBC)

    The cipher mode determines how the encryption algorithm is applied to data. This is crucial for security.

    GCM (Galois/Counter Mode)

    • AEAD (Authenticated Encryption)
    • Built-in integrity protection
    • Parallelizable (fast)
    • No padding oracle risks

    Recommended - use this

    CBC (Cipher Block Chaining)

    • Needs separate MAC
    • Padding oracle vulnerabilities
    • Sequential (slower)
    • BEAST, Lucky 13 attacks

    Legacy - prefer GCM

    What is AEAD?

    Authenticated Encryption with Associated Data (AEAD) combines encryption and integrity checking in one operation. GCM and ChaCha20-Poly1305 are AEAD modes. They ensure data hasn't been tampered with during transmission.

    Hash Functions

    The hash function is used for key derivation and message authentication (in non-AEAD modes).

    HashOutput SizeStatus
    SHA384384 bitsStrong - recommended
    SHA256256 bitsStrong - widely used
    SHA-1160 bitsDeprecated
    MD5128 bitsBroken - never use

    TLS 1.3 Cipher Suites

    TLS 1.3 simplified cipher suites significantly. Key exchange is now built into the protocol (always ECDHE or DHE), and only AEAD ciphers are allowed.

    TLS 1.3 Cipher Suite Format

    TLS_AES_256_GCM_SHA384

    Notice: No key exchange or authentication in the name! TLS 1.3 always uses ephemeral Diffie-Hellman for forward secrecy, so it's not specified in the cipher suite.

    Available TLS 1.3 Cipher Suites

    Cipher SuiteUse Case
    TLS_AES_256_GCM_SHA384General purpose, maximum security
    TLS_AES_128_GCM_SHA256General purpose, slightly faster
    TLS_CHACHA20_POLY1305_SHA256Mobile devices, no AES hardware

    Recommended Configurations

    Modern Configuration (TLS 1.3 + TLS 1.2)

    # Nginx - Modern configuration
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
    ssl_prefer_server_ciphers off;

    Apache Configuration

    # Apache - Modern configuration
    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305
    SSLHonorCipherOrder off

    Cipher Suites to Avoid

    • *_RSA_* (RSA key exchange) - No forward secrecy
    • *_CBC_* - Padding oracle vulnerabilities
    • *_3DES_* - Sweet32 attack
    • *_RC4_* - Broken, multiple attacks
    • *_SHA (SHA-1) - Deprecated hash
    • *_MD5_* - Broken hash
    • *_EXPORT_* - Weak export ciphers
    • *_NULL_* - No encryption

    Testing Server Cipher Suites

    Using OpenSSL

    # See which cipher suite was negotiated
    openssl s_client -connect example.com:443 </dev/null 2>/dev/null | grep "Cipher"
    
    # List all supported ciphers
    openssl s_client -connect example.com:443 -cipher 'ALL' 2>/dev/null | grep "Cipher"
    
    # Test a specific cipher suite
    openssl s_client -connect example.com:443 -cipher 'ECDHE-RSA-AES256-GCM-SHA384'
    
    # List available TLS 1.3 ciphers
    openssl ciphers -v -s -tls1_3

    Using nmap

    # Enumerate all supported cipher suites
    nmap --script ssl-enum-ciphers -p 443 example.com

    Online Tools

    • SSL Labs: ssllabs.com/ssltest - Comprehensive server analysis
    • testssl.sh: Command-line tool for detailed analysis

    Related Resources

    Frequently Asked Questions

    Should I prefer AES-128 or AES-256?

    Both are secure for the foreseeable future. AES-128 is slightly faster, while AES-256 provides a larger security margin. For most applications, either is fine. If you're concerned about quantum computing, AES-256 offers more resistance.

    What's the difference between ECDHE and DHE?

    Both provide forward secrecy, but ECDHE (Elliptic Curve) is faster and uses smaller keys for equivalent security. A 256-bit ECDHE key provides roughly the same security as a 3072-bit DHE key. Prefer ECDHE unless you have specific compatibility requirements.

    Why is RSA key exchange bad?

    RSA key exchange encrypts the pre-master secret with the server's public key. If an attacker later obtains the server's private key (through a breach, court order, or cryptanalysis), they can decrypt all recorded past sessions. ECDHE generates fresh keys each session, so even a compromised private key can't decrypt old traffic.

    When should I use ChaCha20 instead of AES?

    ChaCha20-Poly1305 is ideal for devices without AES hardware acceleration (like many mobile and IoT devices). On desktop/server CPUs with AES-NI instructions, AES-GCM is typically faster. Many servers are configured to prefer ChaCha20 for mobile clients and AES for desktop clients.

    Should I set ssl_prefer_server_ciphers?

    With modern configurations, setting this to "off" is often recommended. This allows clients to choose their preferred cipher, which may be optimized for their hardware (e.g., ChaCha20 on mobile). Only enable server preference if you have legacy clients that might negotiate weak ciphers.

    Decode Any Cipher Suite

    Use our interactive tool to break down any cipher suite string and understand its security rating, components, and recommendations.

    Launch Cipher Suite Decoder