Rechnernetze
Home Nach oben

TLS Record Protocol

Das TLS Record Protocol ist ein Schichtenprotokoll.
Auf der Senderseite werden die folgenden Dienste angeboten:
Entgegennahme zu übermittelnder Nachrichten,
Fragmentierung der Nachrichten in handhabbare Datenblöcke,
Komprimierung der Daten (optional),
Authentifizierung der Daten,
Verschlüsseln der Daten,
Übertragen der entsprechend behandelten Daten an den Empfänger.
Auf der Empfängerseite werden die folgenden Dienste angeboten:
Entgegennahme von Nachrichten,
Entschlüsseln der Daten,
Verifikation authentifizierter Daten,
Dekompression komprimierter Daten,
Reassemblierung fragmentierter Daten,
authentifizieren der Daten,
Weiterreichen der Daten an den Empfänger.
Im Standard vier TLS Record Protocolle beschrieben:
  1. Das Handshake-Protokoll,
  2. Das Alert-Protokoll,
  3. Das Change-Cipher-Spec-Protokoll,
  4. und das Application-Data-Protokoll.
Weitere Record-Typen können definiert werden.
TLS-Connection-State  
beschreibt Parameter des TLS Record Protocol
Teilnehmer einer Kommunikation werden Client und Server bezeichnet
Festlegung der jeweiligen Algorithmen zum 
Authentifizieren, 
Chiffrieren usw. 
aktuelle Parameter festgehalten
geheime Schlüssel 
aktueller Wert des Initialisierungsvektor
ändert sich bei jedem Block
Man unterscheidet current und pendig Schreib- und Lesezustände
Pending-State 
während Hand-Shakes und Übertragung neue Parameter ausgehandelt
Dann wechsel in Current-State 
Current-State 
bearbeitet Datensätze der Anwendungen 

Fragmentierung

Daten können in Blöcke von bis zu 214 Bytes Länge fragmentiert werden, wobei auch verschiedene Datensätze gleichen Typs in einem solchen TLSPlaintext-Record zusammengefasst werden können.

Kompressions-Algorithmus

Kompression
grundsätzlich optional 
mit (in dieser Sitzung definierten) Kompressionsverfahren 
stets eine aktive Kompressionsmethode, 
kann CompressionMethod.null sein
Kompression muss verlustfrei sein 
darf Datenlänge niemals um mehr als 1024 Bytes vergrößern

Verschlüsselungs-Algorithmus

Verschlüsselung 
Schutz der Daten vor Lesen oder 
absichtlicher Veränderung 
Zähler erkennt 
fehlende, 
zusätzliche oder 
wiederholte Nachrichten
MAC zur Authentisierung 
vor der Verschlüsselung berechnet
Stromchiffre 
verschlüsselt gesamten Datenblock, 
einschließlich des MAC. 
Stromchiffren ohne Initialisierungsvektoren (wie RC4) 
verwenden Zustand der Stromchiffre des vorherigen Datenblocks für den nachfolgenden
auch Null-Verschlüsselung erlaubt 
Null-Authentifizierung (wenn der MAC-Wert null ist)
Blockchiffre wie DES-CBC 
verwendet Initialisierungsvektor 
während der Initialisierung ermittelt
Initialisierungsvektor für ersten Datenblock des nächsten TLS-Records
letzter Datenblock eines TLS-Records 
nicht ganz gefüllte Datenblöcke 
Standard legt fest, wie aufzufüllen (padding).

Schlüsselberechnung

Das Protokoll spezifiziert ein Verfahren zur Berechnung
Schlüssel, 
Initialisierungsvektoren und 
MAC-Geheimnisse 
aus den Sicherheitsparametern, 
während des Hands-Shake-Protokolls ausgetauscht 
"Master-Secret" in Folge sicherer Bytes gehashed
in folgender Reihenfolge zugeordnet 
dem Schlüssel, 
dem Initialisierungsvektoren und 
den MAC-Geheimnissen
  1. client write MAC secret,
  2. server write MAC secret,
  3. client write key,
  4. server write key,
  5. client write IV,
  6. server write IV.
Nicht benutzte Werte sind leer. 
Standard unterscheidet zwischen exportierbaren und nicht exportierbaren Chiffren!