Bewusste TLS-Auswahl, HSTS, Security-Header. Der Kontrast zu Version 2.
Diese Seite läuft über eine Nginx-Konfiguration, in der jede sicherheitsrelevante Direktive explizit gesetzt wurde — keine Defaults, keine Zufälle. Zertifikat von Let's Encrypt (DV), diesmal mit ECDSA-Schlüssel (P-256).
| Aspekt | basic-tls | hardened |
|---|---|---|
| Protokolle | Nginx-Defaults | Nur TLS 1.2 und 1.3 |
| Cipher-Auswahl | unkonfiguriert | 3 moderne AEAD-Suites |
| Cipher-Präferenz | Client entscheidet | Server bestimmt |
| HSTS | — | 2 Jahre |
| Security-Header | — | 5 Stück inkl. CSP |
| OCSP-Stapling | — | aktiv |
| Server-Version | im Header sichtbar | versteckt |
| Session-Tickets | Standard | deaktiviert |
curl -sI https://hardened.ebrus-lab.de
Achte auf strict-transport-security, content-security-policy, x-frame-options und den schlicht gehaltenen server-Header ohne Versionsnummer.
echo | openssl s_client -connect hardened.ebrus-lab.de:443 -servername hardened.ebrus-lab.de 2>/dev/null | grep -E "Protocol|Cipher"
Erwartete Antwort: TLSv1.3 mit einer Cipher wie TLS_AES_256_GCM_SHA384. Der Unterstrich im Namen ist das TLS-1.3-Kennzeichen — TLS 1.2-Cipher tragen Bindestriche.
echo | openssl s_client -connect hardened.ebrus-lab.de:443 -servername hardened.ebrus-lab.de -tls1_2 2>/dev/null | grep -E "Protocol|Cipher"
Nun eine Cipher wie ECDHE-ECDSA-AES256-GCM-SHA384. Die vier Bestandteile im Namen entsprechen den vier kryptografischen Kategorien: Schlüsselaustausch (ECDHE), Authentifizierung (ECDSA), Verschlüsselung (AES-256-GCM), Hash (SHA-384).
openssl s_client -connect hardened.ebrus-lab.de:443 -tls1_1 2>&1 | grep -E "Protocol|handshake failure|no protocols available"
Ein no protocols available oder handshake failure ist genau das, was hier gewünscht ist.
echo | openssl s_client -connect hardened.ebrus-lab.de:443 -servername hardened.ebrus-lab.de 2>/dev/null | openssl x509 -noout -subject -issuer -dates echo | openssl s_client -connect hardened.ebrus-lab.de:443 -servername hardened.ebrus-lab.de 2>/dev/null | openssl x509 -noout -text | grep -A2 "Public Key Algorithm"
Der Issuer heißt bei hardened YE2 (Let's Encrypt ECDSA-Intermediate), bei basic-tls YR1 (RSA-Intermediate). Der Buchstabe im Namen verrät die Kryptofamilie.
Für einen kompletten Report inklusive Note:
https://www.ssllabs.com/ssltest/analyze.html?d=hardened.ebrus-lab.de