Het SSL/TLS Record Protocol is verantwoordelijk voor de betrouwbare en veilige overdracht van gegevens tussen een client en een server. Het bevindt zich onder de TLS-handshake- en applicatiedataprotocollen op een hoger niveau. De werking ervan omvat de volgende stappen:
1. Fragmentatie: De applicatiegegevens (bijvoorbeeld van HTTP, SMTP) worden opgesplitst in fragmenten van een hanteerbare omvang. Dit is van cruciaal belang voor een efficiënte netwerktransmissie en voorkomt dat buitensporig grote pakketten het netwerk overbelasten.
2. Compressie (optioneel): De gefragmenteerde gegevens worden optioneel gecomprimeerd. Deze stap komt minder vaak voor in moderne implementaties, omdat compressieoverhead vaak opweegt tegen de voordelen van verminderde bandbreedte. Het protocol ondersteunt dit echter.
3. MAC-berekening: Een Message Authentication Code (MAC) wordt berekend met behulp van een geheime sleutel die wordt verkregen tijdens de handshake. Dit zorgt voor gegevensintegriteit en zorgt ervoor dat er tijdens de overdracht niet met de gegevens is geknoeid. Het specifieke MAC-algoritme wordt bepaald tijdens de handshake (bijvoorbeeld HMAC-SHA256).
4. Codering: De gegevens (samen met de MAC) worden gecodeerd met behulp van een symmetrisch coderingsalgoritme dat is overeengekomen tijdens de handshake (bijvoorbeeld AES-128-GCM, ChaCha20-Poly1305). Dit garandeert de vertrouwelijkheid en voorkomt dat afluisteraars de verzonden informatie kunnen lezen.
5. Records maken: De gecodeerde gegevens, samen met het recordtype (bijvoorbeeld wijziging van de coderingsspecificatie, waarschuwing, toepassingsgegevens), worden ingekapseld in een SSL/TLS-record. Deze record bevat headers die het inhoudstype, de protocolversie en de lengte specificeren.
6. Verzending: Het SSL/TLS-record wordt verzonden via het onderliggende transportprotocol (meestal TCP).
7. Ontvangst: De ontvanger ontvangt het SSL/TLS-record.
8. Decodering: De ontvanger decodeert het record met behulp van de gedeelde symmetrische sleutel.
9. MAC-verificatie: De ontvanger herberekent de MAC met behulp van de ontvangen gegevens en de gedeelde geheime sleutel. Vervolgens vergelijkt het de herberekende MAC met de ontvangen MAC. Een mismatch duidt op geknoei met gegevens of corruptie.
10. Decompressie (optioneel): Als er compressie is gebruikt, decomprimeert de ontvanger de gegevens.
11. Hermontage: De ontvanger voegt de fragmenten opnieuw samen tot de oorspronkelijke applicatiegegevens.
12. Doorgaan naar applicatielaag: De opnieuw samengestelde applicatiegegevens worden voor verwerking doorgegeven aan de applicatielaag.
Samengevat: Het SSL/TLS Record Protocol zorgt voor veilige communicatie door het fragmenteren, comprimeren (optioneel), MAC toevoegen voor integriteit, coderen voor vertrouwelijkheid, inkapselen in een record, verzenden en vervolgens het proces aan de ontvangende kant omkeren om de originele gegevens veilig af te leveren. Elke stap maakt gebruik van algoritmen en sleutels die zijn vastgesteld tijdens het voorgaande handshake-proces. Elke fout in welk stadium dan ook, zoals een MAC-mismatch, zal er meestal toe leiden dat de verbinding wordt verbroken. |