Zum Hauptinhalt springen

3.3. SRTP Packet Processing (SRTP-Paketverarbeitung)

3.3. SRTP Packet Processing (SRTP-Paketverarbeitung)

Das Folgende gilt für SRTP. SRTCP wird in Section 3.4 beschrieben.

Unter der Annahme, dass die Initialisierung des oder der kryptografischen Kontexte über die Schlüsselverwaltung stattgefunden hat, MUSS der Sender Folgendes tun, um ein SRTP-Paket zu konstruieren:

  1. Bestimmen, welcher kryptografische Kontext verwendet werden soll, wie in Section 3.2.3 beschrieben.

  2. Bestimmen des Index des SRTP-Pakets unter Verwendung des Rollover-Zählers (rollover counter), der höchsten Sequenznummer (highest sequence number) im kryptografischen Kontext und der Sequenznummer im RTP-Paket, wie in Section 3.3.1 beschrieben.

  3. Bestimmen des Hauptschlüssels (master key) und des Hauptsalts (master salt). Dies geschieht unter Verwendung des im vorherigen Schritt bestimmten Index oder des aktuellen MKI im kryptografischen Kontext gemäß Section 8.1.

  4. Bestimmen der Sitzungsschlüssel (session keys) und des Sitzungssalts (session salt) (falls sie von der Transformation verwendet werden), wie in Section 4.3 beschrieben, unter Verwendung des Hauptschlüssels, des Hauptsalts, der key_derivation_rate und der Sitzungsschlüssellängen im kryptografischen Kontext mit dem in den Schritten 2 und 3 bestimmten Index.

  5. Verschlüsseln der RTP-Nutzdaten, um den verschlüsselten Teil (Encrypted Portion) des Pakets zu erzeugen (siehe Section 4.1 für die definierten Chiffren). Dieser Schritt verwendet den im kryptografischen Kontext angegebenen Verschlüsselungsalgorithmus, den in Schritt 4 gefundenen Sitzungsverschlüsselungsschlüssel und das Sitzungssalt (falls verwendet) zusammen mit dem in Schritt 2 gefundenen Index.

  6. Falls der MKI-Indikator auf eins gesetzt ist, den MKI an das Paket anhängen.

  7. Für die Nachrichtenauthentifizierung (message authentication) das Authentifizierungs-Tag (authentication tag) für den authentifizierten Teil (Authenticated Portion) des Pakets berechnen, wie in Section 4.2 beschrieben. Dieser Schritt verwendet den aktuellen Rollover-Zähler, den im kryptografischen Kontext angegebenen Authentifizierungsalgorithmus und den in Schritt 4 gefundenen Sitzungsauthentifizierungsschlüssel. Das Authentifizierungs-Tag an das Paket anhängen.

  8. Falls erforderlich, den ROC wie in Section 3.3.1 aktualisieren, unter Verwendung des in Schritt 2 bestimmten Paketindex.

Um ein SRTP-Paket zu authentifizieren und zu entschlüsseln, MUSS der Empfänger Folgendes tun:

  1. Bestimmen, welcher kryptografische Kontext verwendet werden soll, wie in Section 3.2.3 beschrieben.

  2. Den Algorithmus in Section 3.3.1 ausführen, um den Index des SRTP-Pakets zu erhalten. Der Algorithmus verwendet den Rollover-Zähler und die höchste Sequenznummer im kryptografischen Kontext mit der Sequenznummer im SRTP-Paket, wie in Section 3.3.1 beschrieben.

  3. Bestimmen des Hauptschlüssels und des Hauptsalts. Falls der MKI-Indikator im Kontext auf eins gesetzt ist, den MKI im SRTP-Paket verwenden, andernfalls den Index aus dem vorherigen Schritt gemäß Section 8.1 verwenden.

  4. Bestimmen der Sitzungsschlüssel und des Sitzungssalts (falls von der Transformation verwendet), wie in Section 4.3 beschrieben, unter Verwendung des Hauptschlüssels, des Hauptsalts, der key_derivation_rate und der Sitzungsschlüssellängen im kryptografischen Kontext mit dem in den Schritten 2 und 3 bestimmten Index.

  5. Für Nachrichtenauthentifizierung und Replay-Schutz (replay protection) zunächst prüfen, ob das Paket wiedergegeben wurde (Section 3.3.2), unter Verwendung der Replay-Liste (Replay List) und des in Schritt 2 bestimmten Index. Falls das Paket als wiedergegeben beurteilt wird, MUSS das Paket verworfen werden, und das Ereignis SOLLTE protokolliert werden.

    Als Nächstes die Verifizierung des Authentifizierungs-Tags durchführen, unter Verwendung des Rollover-Zählers aus Schritt 2, des im kryptografischen Kontext angegebenen Authentifizierungsalgorithmus und des Sitzungsauthentifizierungsschlüssels aus Schritt 4. Falls das Ergebnis "AUTHENTICATION FAILURE" (Authentifizierungsfehler) ist (siehe Section 4.2), MUSS das Paket von der weiteren Verarbeitung verworfen werden, und das Ereignis SOLLTE protokolliert werden.

  6. Den verschlüsselten Teil des Pakets entschlüsseln (siehe Section 4.1 für die definierten Chiffren), unter Verwendung des im kryptografischen Kontext angegebenen Entschlüsselungsalgorithmus, des in Schritt 4 gefundenen Sitzungsverschlüsselungsschlüssels und -salts (falls verwendet) mit dem Index aus Schritt 2.

  7. Den Rollover-Zähler und die höchste Sequenznummer s_l im kryptografischen Kontext wie in Section 3.3.1 aktualisieren, unter Verwendung des in Schritt 2 geschätzten Paketindex. Falls Replay-Schutz bereitgestellt wird, auch die Replay-Liste wie in Section 3.3.2 beschrieben aktualisieren.

  8. Falls vorhanden, die MKI- und Authentifizierungs-Tag-Felder aus dem Paket entfernen.