SSL / TLS
Πρωτόκολλο κρυπτογράφησης της σύνδεσης ανάμεσα σε browser και server. Το SSL είναι παρωχημένο, το TLS το διάδοχο.
SSL ή TLS;
Στην καθημερινή γλώσσα λέμε «SSL» — στην πραγματικότητα, αυτό που χρησιμοποιείται σήμερα είναι το TLS (Transport Layer Security). Το SSL ήταν ο πρόγονος (SSL 2.0 το 1995, SSL 3.0 το 1996) και είναι πλέον παρωχημένο και ευάλωτο. Όταν κάποιος σου λέει «πιστοποιητικό SSL», συνήθως εννοεί «TLS πιστοποιητικό».
- SSL 2.0 / 3.0 — deprecated, ευάλωτα (POODLE, DROWN)
- TLS 1.0 / 1.1 — deprecated από το 2020
- TLS 1.2 — ακόμη ευρέως χρησιμοποιούμενο, ασφαλές
- TLS 1.3 — πιο γρήγορο & ασφαλές, το συνιστώμενο σήμερα
Τι κάνει το TLS
- Εμπιστευτικότητα: κρυπτογραφεί την κίνηση ώστε κανείς στη διαδρομή να μη μπορεί να τη διαβάσει.
- Ακεραιότητα: εξασφαλίζει ότι τα δεδομένα δεν τροποποιήθηκαν.
- Ταυτοποίηση: μέσω του πιστοποιητικού, ο browser ξέρει ότι μιλάει όντως στο
example.comκαι όχι σε κάποιον που προσποιείται.
Πώς γίνεται το TLS handshake (απλοποιημένα)
- Ο client στέλνει ένα
ClientHelloμε τις TLS εκδόσεις και τα cipher suites που υποστηρίζει. - Ο server επιλέγει έκδοση + cipher και στέλνει το πιστοποιητικό του.
- Ο client επαληθεύει το πιστοποιητικό (ισχύει, εκδίδεται από έμπιστο CA, ταιριάζει το hostname).
- Συμφωνούν σε ένα κοινό κλειδί (μέσω ECDHE κυρίως, ώστε να έχουμε forward secrecy).
- Από εκεί και πέρα, όλη η κίνηση είναι κρυπτογραφημένη με συμμετρικό αλγόριθμο (AES-GCM, ChaCha20-Poly1305).
Τι περιέχει ένα πιστοποιητικό
- Subject (CN, SAN) — τα domains για τα οποία ισχύει
- Issuer — η Certificate Authority (Let's Encrypt, DigiCert, GoDaddy, Sectigo...)
- Validity — ημερομηνίες notBefore και notAfter
- Public Key — τυπικά RSA 2048+ bit ή ECDSA P-256
- Signature — η υπογραφή του CA που πιστοποιεί την αυθεντικότητα
Πιστοποιητικά & αλυσίδα εμπιστοσύνης
Το πιστοποιητικό σου υπογράφεται από ένα intermediate CA, που με τη σειρά του υπογράφεται από ένα root CA. Τα root CAs είναι προεγκατεστημένα στους browsers/OS. Όταν λείπουν τα intermediates από την αλυσίδα που σερβίρει ο server, οι περισσότεροι browsers θα τα κατεβάσουν μόνοι τους — αλλά κάποιοι παλιοί ή SMTP/IMAP clients θα αποτύχουν.
Συνιστώμενες ρυθμίσεις: μόνο TLS 1.2 και 1.3, modern cipher suites (ECDHE, AES-GCM/ChaCha20), HSTS ενεργό, OCSP stapling, και πιστοποιητικό από Let's Encrypt (δωρεάν) ή ZeroSSL.