Clever Blog

VoIP Gespräche via SRTP verschlüsseln – so funktionierts!

VoIP Gespräche via SRTP verschlüsseln – so funktionierts!

Wir haben bereits SIPS näher erläutert – untrennbar damit verbunden ist SRTP. Das Secure Real-Time Transport Protocol ermöglicht die Verschlüsselung von Sprachverbindungen, die über das Internet hergestellt werden und ist damit auch integraler Bestandteil von IP-Telefonie. Was hinter der Technik zur Verschlüsselung von VoIP-Telefonie steht, wollen wir uns in diesem Beitrag einmal näher anschauen. Achtung: Hier werden viele nur schwer ins Deutsche zu übertragende Fachbegriffe verwendet – aber keine Angst, am Ende des Artikels befindet sich ein Glossar.

SRTP – Das Protokoll zur Verschlüsselung von VoIP-Telefonie

1996 entstanden, ist das unverschlüsselte Realtime Transport Protocol dafür zuständig, dass Audio-, Video- und Text-Dateien zielsicher über die weltweiten Datenautobahnen ausgetauscht werden können. Fügt man dem Ganzen jetzt noch ein Secure hinzu, erhält man SRTP – mit diesem Standard werden „die gesprochenen Worte“ kodiert, in Datenpakete aufgeteilt und verschlüsselt im Netzwerk oder über das Internet versendet.

Zur Verschlüsselung des RTP-Datenstroms wird der Advanced Encryption Standard (AES, Schlüssellänge bis 256 Bit), seit 1999 Nachfolger des gecrackten Data Encryption Standard (DES, 56 Bit), verwendet. SRTP fügt so dem RTP-Payload (sprich den Audio- bzw. Sprachdaten) einen Authentication Tag mit 4 oder 10 Byte an und evtl. einen zusätzlichen Master Key Identifier (MKI) mit weiteren 4 Byte. Übrigens: AES ist nicht unumstritten, da die Entwicklung und Finanzierung dieses weltweit gültigen Standards durch die US of America erfolgt ist. Trotzdem kann davon ausgegangen werden, dass der Standard bis heute nicht geknackt werden konnte.

Ähnlich wie bei SIPS müssen Telefonanlage und IP-Telefone ein gemeinsames „Geheimnis“ kennen, um die RTP-Daten ver- und entschlüsseln zu können. Die benötigten Master Keys (meist ein AES128-Key) werden zwischen dem IP-Telefon und der Telefonanlage über die bereits sichere SIPS-Verbindung ausgetauscht. Zur Veranschaulichung haben wir das Prozedere in einer Grafik visualisiert.

Verschlüsselung von VoIP Gesprächen

 

Beispiel: Ein SRTP-Header

Ein SRTP-Datenpaket besteht aus einem SRTP-Header mit Versions- und Sequenznummer, Datenformat, Sender- ID, Zeitstempel und natürlich dem Nutzdatenteil (Sprachdaten), auch Payload genannt. Bei SRTP wird nur der Payload verschlüsselt. Der Header wird in Klartext übermittelt, ist aber authentisiert. Das SRTP-Paket setzt sich aus dem RTP-Paket, dem Authentication Tag und ggf. dem SRTP MKI zusammen. Bei SRTP wird symmetrisch verschlüsselt. Die Schlüsseltiefe ist nicht sehr hoch, dafür ist aber die benötigte Rechenleistung in den Geräten sehr klein. Da RTP einen kontinuierlichen Datenstrom erzeugt, wird symmetrisch verschlüsselt.

Wem die verwendeten Begriffe spanisch bzw. englisch vorkommen, der findet hier im Glossar eine Erklärung für die wichtigsten Begriffe:

Version (V) Gibt den SRTP-Versionsstand an.
Padding (P) Das Padding-Bit (Füllbit) ist immer dann gesetzt ( = 1), wenn ein oder mehrere Füll-Oktetts* am Ende des SRTP-Pakets angehängt sind. Die Füll-Oktetts gehören nicht zum Nutzdatenanteil (Sprachdaten). Das letzte Füll-Oktett beinhaltet die Anzahl der insgesamt hinzugefügten Füll-Oktetts. Die Füll-Oktetts werden verwendet, um eine vorgegebene Blockgröße zu gewährleisten.
* 1 Oktett = 8 Bit = 1 Byte
X (Extension) Das Extension-Bit ist gesetzt ( = 1), wenn der Header um genau einen weiteren Header ergänzt wird.
CC (CSRC Count) Der CSRC-Zähler gibt die Anzahl der CSRC-Identifier an.
CSRC steht für „Contribution Source“ und kennzeichnet die Quelle einzelner Streams, aus denen sich letztlich der effektiv übermittelte und durch die „Synchronisation Source“ (SSRC) bezeichnete Gesamtstream zusammensetzt.
M (Marker) Das Marker-Bit ist zur anwendungsspezifischen Verwendung reserviert.
PT (Payload Type) Der Payload Type beschreibt das Format des zu transportierenden SRTP-Inhalts (Sprachdaten, Payload).
sequence number Die „sequence number“ (Sequenznummer) wird mit jedem weiteren SRTP-Datenpaket um 1 erhöht. Die Startnummer ist zufällig. Mit Hilfe der sequence number kann der Empfänger die Paketreihenfolge erkennen, ggf. wiederherstellen sowie Paket-Verluste erkennen.
timestamp Der timestamp (Zeitstempel) gibt den Zeitpunkt des ersten Oktetts des SRTP-Pakets an. Der Zeitpunkt orientiert sich an einem kontinuierlichen und linearen Takt. Somit wird die Synchronität des Streams sichergestellt und der Jitter (Laufzeitunterschiede) kann am Ziel ermittelt werden.
SSRC Mit dem SSRC-Feld (synchronization source) wird die Synchronisations¬quelle identifiziert. Der Wert ist zufällig und innerhalb einer SRTP-Session einzigartig.
CSRC List Mit der CSRC-Liste werden die im SRTP-Payload enthaltenen Quellen identifiziert. Im CC-Feld (max. 15 Felder) wird die Anzahl der Listenfelder angegeben. Es können maximal 15 Quellen identifiziert werden.
Payload Im Payload wird bei VoIP das gesprochene Wort übertragen.
Nur dieser Bereich ist verschlüsselt!
SRTP MKI Die Verschlüsselung des Payloads erfolgt mittels Sitzungsschlüssel (Session Keys), die aus einem Hauptschlüssel (Master Key) generiert werden. Werden mehrere Master Keys verwendet, wird der aktuell benutzte über den SRTP Master Key Identifier (SRTP MKI) angegeben.
Authentication Tag Das Authentication Tag sichert den verschlüsselten Header (meist SHA-1). Der Empfänger des Pakets kann daran erkennen, ob es auf dem Weg zu ihm von einem Angreifer manipuliert wurde. Dieser Tag beinhaltet noch einen Zähler (Rollover Counter (ROC)), den der Sender und Empfänger je intern führt.

Title pic by Perspecsys PhotosSecure Cloud – Data Security – Cyber Security | flickr | keine Änderungen vorgenommen | CC BY-SA 2.0

← Abschaffung der Störerhaftung - Hintergründe und Auswirkungen VoIP-Telefonie: Was ist SIP? →

5 Kommentare

Ihr Kommentar

Bitte alle Felder mit einem * ausfüllen