EXERCISE 2 — Listing local suites and auditing a real server ============================================================= PART A — what suites does YOUR openssl support for ECDHE + AES-GCM: openssl ciphers -v 'ECDHE+AESGCM' Example output (columns: name, protocol, Kx, Au, Enc, Mac): ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD - Kx=ECDH (ephemeral here) = forward secrecy; Mac=AEAD = GCM's built-in integrity. The filter 'ECDHE+AESGCM' selected exactly the modern-safe combos. (Try also: openssl ciphers -v 'DEFAULT' to see the full set, or '!aNULL:!eNULL:!RC4:!3DES' style exclusions.) PART B — audit a real server: nmap --script ssl-enum-ciphers -p 443 example.com Read the output for: 1. PROTOCOL VERSIONS offered — look for which "TLSvX.Y:" sections appear. GOOD: only TLSv1.2 and TLSv1.3 sections. BAD: any "TLSv1.0:" or "TLSv1.1:" section present (deprecated 2021), or SSLv3 (totally broken). 2. CIPHER GRADES — each suite shows a trailing letter grade A/B/C/.../F. GOOD: every cipher graded A, and "least strength: A". BAD: any C or F, e.g. a CBC-mode, 3DES, RC4, or RSA-kex suite. 3. WEAK SUITES to flag if present: - names with _CBC_ (CBC mode -> padding-oracle risk) - RC4, 3DES, DES, EXPORT, NULL, anonymous (no Au) suites - TLS_RSA_WITH_... (RSA key transport -> no forward secrecy) WHAT A CLEAN RESULT LOOKS LIKE: - Sections only for TLSv1.2 and TLSv1.3. - All ECDHE_* (or 1.3 TLS_AES_/TLS_CHACHA20_) GCM/ChaCha suites. - "least strength: A". No TLS 1.0/1.1, no CBC/RC4/3DES, no RSA-kex => correctly configured.