# Zfone

Zfone ist eine Software zur Verschlüsselung von VoIP-Telefonaten.

## Anwendung

Im März 2006 stellte Phil Zimmermann die Beta-Version einer neu entwickelten Software namens Zfone zur Verschlüsselung von VoIP-Telefonaten der Öffentlichkeit vor. Bisher ist das Programm für Linux, Mac OS und zuletzt am 21. Mai 2006 für Windows XP veröffentlicht worden. Wie schon bei seinem letzten Programm PGP hat er auch bei Zfone den Quelltext der Preview-Version offengelegt.
Die Entwicklung der Software wurde eingestellt. Die letzte Version (0.92 build 218 Beta) wurde am 22. März 2009 veröffentlicht.

## Funktionsweise

Die Software funktioniert wie ein transparenter Proxyserver, wodurch die Anwender weiter ihre bevorzugte VoIP-Software und Hardware benutzen können. Auch der Einbau der Zfone-Technologie in Einzelgeräte und Router durch die jeweiligen Hardware-Hersteller ist vorgesehen und wird bereits von der Routerserie Vigor2820 aus dem Hause DrayTek angeboten. Weitere Hersteller werden folgen.
Das zugehörige speziell von Zimmermann in Zusammenarbeit mit Alan Johnston und Jon Callas zu diesem Zweck entwickelte Protokoll namens ZRTP („Z“ steht für den Erfinder Phil Zimmermann; „RTP“ für Real-Time Transport Protocol) verwendet zum Schlüsseltausch das Diffie-Hellman-Verfahren. Das verwendete Verschlüsselungsverfahren ist AES-128 (optional aber auch AES-256). ZRTP stellt eine Erweiterung des bereits existenten RTP-Protokolls dar. Bei den Windows-Versionen wird dazu von Zfone ein zusätzlicher Netzwerktreiber namens zrtp.sys installiert, der als Paketfilter Datenverkehr auf dem UDP-Port 5060 erkennen und daraufhin eine verschlüsselte Verbindung über das ZRTP-Protokoll herstellen soll. Zimmermann hat die ZRTP-Spezifikationen bereits zum Zwecke der Standardisierung an die IETF übermittelt. Die VoIP-Session wird per SIP initiiert. Dann wird das normale unverschlüsselte RTP-Protokoll benutzt, um mit ZRTP ein gemeinsames Geheimnis auszuhandeln, welches dann zur Verschlüsselung einer zu etablierenden SRTP(Secure RTP)-Verbindung verwendet wird.
Zimmermann hat sich bewusst gegen ein PKI-basiertes Verfahren entschieden, da dieses seiner Meinung nach diverse Nachteile hat. So befürchtet er beispielsweise, dass staatliche Stellen zukünftig erfolgreich Druck auf die entsprechenden Serverbetreiber ausüben werden, Hintertüren bzw. Nachschlüssel einzubauen. Die Einschätzung der tatsächlichen Vertrauenswürdigkeit der verschiedenen PKI-Instanzen sei für den Nutzer ebenfalls problematisch. Außerdem müsste sich jeder Benutzer ein kryptografisch sicheres Passwort dauerhaft merken. Ein zu einem späteren Zeitpunkt erlangter Schlüssel könne darüber hinaus rückwirkend zur Entschlüsselung aller mitgeschnittenen Kommunikationen benutzt werden. Auch sei der Betrieb einer PKI-Infrastruktur sehr aufwendig und wartungsintensiv.
Das von Zimmermann ausgewählte Diffie-Hellman-Verfahren hat allerdings auch Nachteile. Es ist systembedingt anfällig für einen Man-in-the-Middle-Angriff. Zimmermann hat daher einige Gegenmaßnahmen integriert, die einen Erfolg eines solchen Angriffs sicher verhindern sollen. So sollten sich die Gesprächspartner beispielsweise zu ihrer eigenen Sicherheit bei einem ihrer ersten gemeinsamen Telefonate gegenseitig einen vierstelligen Code (Nonce) vorlesen, wodurch eine kompromittierte Verbindung eindeutig erkannt werden kann. Dies ist auch für die Sicherheit der Folgetelefonate wichtig. Zusätzlich ist beispielsweise die vorherige persönliche Vereinbarung eines gemeinsamen Passwortes möglich. Bei darauffolgenden Anrufen zwischen den gleichen Endstellen dient ein bereits von SSH bekanntes Verfahren namens Baby-Duck durch die Verwendung eines Shared-Secret-Cache zur Verhinderung von Man-In-The-Middle-Angriffen. Dabei wird die Integrität der Verbindung mit Hilfe von bei vorausgehenden Telefonaten erzeugten und gespeicherten Schlüsselcaches sichergestellt. So muss ein Angreifer alle bisherigen Telefonate ohne Ausnahme erfolgreich attackiert haben, um auch das aktuelle Telefonat entschlüsseln zu können. Die zur Entschlüsselung des jeweils geführten Telefonats notwendigen Sessionkeys werden aber natürlich nach Beendigung des entsprechenden Telefonats sofort gelöscht. So ist eine spätere Entschlüsselung der Kommunikation durch einen Zugriff auf die verwendete Hardware eines Gesprächsteilnehmers ausgeschlossen.

## Lizenzmodell

Während sich die Zfone-Software noch immer im Public-Beta-Stadium befindet, hat Zimmermann nach eigenen Angaben wesentliche Teile des ZRTP-Protokolls zum Softwarepatent angemeldet, obwohl er Softwarepatente eigentlich ablehne. Zimmermann befürchtet unter anderem die heimliche Speicherung der Session-Keys und eventuelle akustische Gesprächsmitschnitte durch in Hardware oder Software implementierte VoIP-Telefonanlagen. Nach eigener Aussage will Zimmermann durch den Schachzug der Patentierung die Lizenznehmer zwingen, auf den Einbau solcher Hintertüren für Dritte zu verzichten. Baut ein Anbieter dennoch eine Mithörmöglichkeit ein, so ist er laut Lizenzvertrag verpflichtet, ein Disclosure-Flag zu übertragen und damit seine Mithörerfreundlichkeit zu veröffentlichen.
Die ZRTP-Lizenz ist kostenlos, erlischt aber bei Verstößen gegen die oben genannten Auflagen. Anbieter, die heimlich gegen die Lizenzauflagen verstoßen, würden somit automatisch die ZRTP-Patentrechte verletzen, da sie über keine gültige Lizenz mehr verfügen. Das genaue Lizenzmodell für die Beta- und für die Final-Version ist noch weitgehend unbekannt.

## Kritik

Teilweise wird an der akustischen Authentifizierung kritisiert, dass bei einem Gespräch zwischen zwei Unbekannten die Stimme des Gesprächspartners ja nicht bekannt sei. Also könne genauso gut der Angreifer den beiden Gesprächspartnern seinen jeweiligen Schlüssel-Hash vorlesen. Zimmermann hält dem entgegen, dass es nicht unbedingt erforderlich wäre, die Stimme des Gesprächspartners zu erkennen. Ausreichend sei schon die Feststellung, ob die Stimme des Gesprächspartners während des restlichen Gesprächs immer noch die gleiche sei.
Denkbar wäre hierfür allerdings eine Stimmenimitation oder Stimmensynthese während der akustischen Authentifizierung. Dieser Aufwand würde sich nach dem derzeit bekannten Stand der Technik wohl in Einzelfällen lohnen. Ein solcher Angriff kann aber durch die mindestens einmalige Verwendung eines Pre-shared key (PSK) verhindert werden. Dieser Pre-Shared Key könnte beispielsweise bei einem persönlichen Treffen oder mit Hilfe eines bereits mittels Web of Trust überprüften PGP-Schlüssels vereinbart werden.