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: |
- Das Handshake-Protokoll,
- Das Alert-Protokoll,
- Das Change-Cipher-Spec-Protokoll,
- und das Application-Data-Protokoll.
 | Weitere Record-Typen können definiert werden. |
 | TLS-Connection-State
 | beschreibt Parameter des TLS
Record Protocols |
 | 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 |
|
|
- client write MAC secret,
- server write MAC secret,
- client write key,
- server write key,
- client write IV,
- server write IV.
 | Nicht benutzte Werte sind leer. |
 | Standard unterscheidet zwischen
exportierbaren und nicht exportierbaren Chiffren! |
|