Transport Layer Security (TLS) en diens voorganger Secure Sockets Layer (SSL), zijn encryptie-protocollen die de communicatie tussen computers (bijvoorbeeld op het internet) beveiligen.
Doelstellingen
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-cipherzodat 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.
Toepassing
TLS wordt voornamelijk gebruikt in situaties waarin het nodig is te verifiëren of men inderdaad verbonden is met de gewenste server. Met name in bancaire toepassingen (internetbankieren) of communicatie met de overheid is dit van groot belang, aangezien vaak financiële belangen in het spel zijn, of persoonlijke of anderszins vertrouwelijke informatie wordt uitgewisseld.
Deze veiligheid berust in veel gevallen op een public key infrastructure (meestal X.509) die door een certification authority (CA) wordt ondersteund. In het recente verleden is echter gebleken dat verschillende bedrijven die zich als CA opwierpen minder betrouwbaar waren dan noodzakelijk, wat het vertrouwen in deze aanpak heeft ondermijnd. Met name het debacle rond DigiNotar heeft hierbij in Nederland een grote rol gespeeld, maar ook gevallen van rogue CA’s zijn bekend en hebben internationaal opzien gebaard.
SSL en TLS zijn geïmplementeerd in veel vrije en opensourcesoftware-projecten. Programmeurs kunnen voor SSL- en TLS-functionaliteit gebruikmaken van o.a.PolarSSL, CyaSSL, OpenSSL, NSS en GnuTLS.