Wat is TLS?
TLS (Transport Layer Security) is een cryptografisch protocol voor veilige communicatie over computernetwerken. TLS is de opvolger van SSL (Secure Sockets Layer) en vormt de techniek achter HTTPS-verbindingen, veilige e-mailverzending (STARTTLS) en veel andere versleutelde internetprotocollen. Wanneer u het hangslotpictogram in uw browser ziet, werkt TLS om gegevens tussen uw apparaat en de server te versleutelen.Versiegeschiedenis van TLS
| Versie | Jaar | Status |
|---|---|---|
| SSL 2.0 | 1995 | Verouderd, onveilig |
| SSL 3.0 | 1996 | Verouderd, onveilig |
| TLS 1.0 | 1999 | Verouderd |
| TLS 1.1 | 2006 | Verouderd |
| TLS 1.2 | 2008 | Huidige standaard |
| TLS 1.3 | 2018 | Nieuwste, aanbevolen |
Hoe TLS werkt
TLS-handshake (TLS 1.2)
Client Server
│ │
├──── ClientHello ─────────────────► │
│ (supported ciphers, random) │
│ │
│ ◄─── ServerHello ──────────────────┤
│ (selected cipher, cert) │
│ │
├──── Key Exchange ────────────────► │
│ (encrypted pre-master secret) │
│ │
│ ◄─── Finished ─────────────────────┤
│ │
└──── Encrypted Data ◄──────────────►┘
Verbeteringen in TLS 1.3
- Minder roundtrips, dus een snellere handshake
- Onveilige cijfersuites verwijderd
- Forward secrecy verplicht
- Handshakeberichten versleuteld
TLS-componenten
Certificaten
- Authenticeren de identiteit van de server
- Worden uitgegeven door certificaatautoriteiten
- Bevatten een openbare sleutel voor versleuteling
Ciphersuites
Definiëren de gebruikte versleutelingsalgoritmen:
TLS_AES_256_GCM_SHA384 (TLS 1.3)
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)
│ │ │ │
│ │ │ └── Hash algorithm
│ │ └── Encryption algorithm
│ └── Key exchange
└── Protocol
Toepassingen van TLS
| Toepassing | Protocol | Poort |
|---|---|---|
| Surfen op het web | HTTPS | 443 |
| E-mail (IMAP) | IMAPS | 993 |
| E-mail (SMTP) | SMTPS | 465 |
| E-mail verzenden | STARTTLS | 587 |
| FTP | FTPS | 990 |
Serverconfiguratie
TLS-configuratie voor Nginx
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
Beste praktijken
1. Gebruik TLS 1.2 of 1.3: schakel oudere versies uit
2. Sterke ciphersuites: geef de voorkeur aan AEAD-ciphers
3. Schakel HSTS in: dwing TLS-verbindingen af
4. Beheer certificaten: automatiseer verlenging
5. Forward secrecy: gebruik ECDHE voor sleuteluitwisseling
6. Regelmatig testen: gebruik SSL Labs en testssl.sh
TLS-configuratie testen
# OpenSSL test
openssl s_client -connect example.com:443 -tls1_3
# Check certificate
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -text
TLS is de basis van veilige internetcommunicatie. Het versleutelt gegevens tijdens transport en beschermt tegen afluisteren, manipulatie en man-in-the-middle-aanvallen.