Betekenis:
Transport Layer Security (tls) en diens voorganger Secure Sockets Layer (ssl), zijn encryptie-protocollen die de communicatie tussen computers (bijvoorbeeld op het internet) beveiligen.
Het doel van de TLS-protocollen is tweeledig.
Ten eerste wordt de gevonden server geauthentiseerd door middel van een certificaat dat berust op asymmetrische cryptografie, of meer specifiek een public key. Hierdoor kan de gebruiker zeker zijn dat de gevonden server ook inderdaad is wie hij zegt te zijn. (authenticatie)
Ten tweede wordt de communicatie tussen beide partijen versleuteld door gebruik te maken van symmetrische cryptografie. Dit gebeurt met een block-cipher zodat deze voor kwaadwillenden niet te volgen is. De sleutel voor deze fase wisselt en wordt door middel van een Diffie-Hellman sleuteluitwisseling (key exchange) afgesproken. (encryptie)
De reden voor het gebruik van twee afzonderlijke cryptografische methoden, asymmetrisch én symmetrisch, is dat de eerste relatief tijdrovend is en zich dus niet leent voor het uitwisselen van grote bestanden, maar grotere veiligheid biedt omdat de sleutel voor het vercijferen niet gelijk is aan die voor het ontcijferen.
In alledaags (onveilig) gebruik van TLS wordt alleen de authenticiteit van de server gecontroleerd, terwijl de client geheel onbekend blijft. Door het gebruik van PKI is het ook mogelijk om clients te authenticeren. De protocollen kunnen ook gebruikt worden om client/server-applicaties te beveiligen tegen bijvoorbeeld afluisteren.
Protocollen
TLS Protocol is samengesteld uit twee interne lagen:
Onderste laag: Record Protocol wordt gebruikt om alle gegevens van de bovenste laag over te brengen (gegevens van applicatielaag en bovenste laag van TLS).
Bovenste laag: Bestaat uit drie verschillende sub-protocollen: Handshake Protocol, Change Cipher Protocol en Alert Protocol. Zij zorgen voor het tot stand brengen en beheer van veilige verbindingen tussen client/server-applicaties.
TLS Protocol
TLS Protocol gebruikt certificaten om de uitgewisselde gegevens te authenticeren en privacy te garanderen. Elk certificaat bevat een publieke sleutel. De eigenaar van het certificaat bezit een privésleutel die geassocieerd is met de publieke sleutel in het certificaat. Omdat voor cryptografie gebaseerd op de publieke sleutel relatief veel rekentijd nodig is, gebruikt TLS Protocol een session key. Deze wordt gebaseerd op de publieke sleutel en een willekeurig getal. Dit willekeurige getal wordt uitgewisseld in het eerste bericht van het protocol (Client hallo en Server hallo). In de vervolgcommunicatie wordt vervolgens de afgeleide session key gebruikt, wat minder rekentijd kost.
TLS Record Protocol
Record Protocol is verantwoordelijk voor de fragmentatie en groeperen van gegevens die uit de bovenste lagen verzonden worden. De gegevens worden eerst gefragmenteerd en gecomprimeerd. Daarna zal een message authentication code (MAC) toegevoegd worden. Ten slotte wordt er nog een TLS record header geplaatst voor het ontvangen en herkennen van de gegevens.
TLS Handshake Protocol
Handshake Protocol maakt het mogelijk om vertrouwelijke informatie tussen client/server-applicaties te versturen zodanig dat als een derde partij de informatie mocht onderscheppen deze niet leesbaar zal zijn.
TLS Change Cipher Protocol
Change Cipher Protocol is een zeer eenvoudig protocol. Het wordt gebruikt om onderbrekingen te verhinderen bij het opzetten van de TLS-sessie.
TLS Alert Protocol
Alert Protocol verstuurt alarm bij verbindingen tussen client/server-applicaties. Er zijn twee niveaus: waarschuwing en fataal. Wanneer een fataal alarm wordt gesignaleerd, wordt de verbinding verbroken.
Zie ook het artikel van Jeroen: SSL / TLS Cipher Suites…uitgelegdÂ