Hallo,
da ich mich jetzt schon etliche Tage mit Security von VOIP (im Speziellen mit Asterisk und SIP) beschäftigt habe, und es nicht immer leicht ist Informationen zusammenzutragen (vorallem weil auch viel Müll erzählt wird), möchte ich in diesem Thread gerne einen Überblick geben.
Außerdem hoffe ich, das die Sachen die ev. noch unklar sind (bzw. noch nicht ganz vollständig), geklärt werden können.
Ziel ist es einen Überblick über die für die Praxis besten Methoden zu geben, nicht vollständig jede Möglichkeit aufzuzählen bzw. genau zu erläutern.
Security beim Transport der (Voice-)Daten:
Es gibt eine Erweiterung des RTP, nämlich SRTP (RFC3711).
SRTP verwendet Preshared Keys, die entweder manuell (nicht zu empfehlen und auch nicht praktisch) oder mit einem geeigneten Protokoll ausgetauscht werden können.
Dafür ist MIKEY (RFC3830) geeignet (erfüllt im Gegensatz zu IKE die besonderen Anforderungen wegen dem Real Time Traffic).
MIKEY wird direkt in das Signalisierungsprotokoll (z.B. SIP) eingebettet und unterstützt verschiedene Modi, unter anderem auch DH (Diffie Hellman).
Ein weiterer Ansatz ist das Keymanagement über einen SDP Header (sdescription), dazu gibt es einen Internet Draft (draft-ietf-mmusic-kmgmt-ext-15.txt), der aber bald zum RFC wird.
Dazu muß allerdings die Signalisierung ebenfalls verschlüsselt erfolgen.
Es gibt sowohl Hardware-, als auch Softphones, die SRTP unterstützen.
SNOM verwendet die sdescriptions Methode (nicht ganz Draft konform, allerdings wird sie zu einem zukünfigen RFC konform werden).
Asterisk unterstützt momentan Out of the Box noch kein SRTP, allerdings gibt es ein paar Patches bzw. Erweiterungen, die man ja mal ausprobieren kann:
+) ein SRTP Patch (http://bugs.digium.com/view.php?id=5413) der mit sdescriptions arbeitet
+) chan_exosip: ein eigener SIP channel der SRTP unterstützt (siehe unten)
Da Asterisk prinzipiell im Medienstrom drinn hängt (im Gegensatz zu einem reinen SIP-Proxy), können die Clients momentan nicht über Asterisk SRTP sprechen.
Eine neue Möglichkeit könnte schon bald ZRTP darstellen. ZRTP wurde von Phil Zimmermann und Alan Johnston entwickelt und es wurde ein Internet Draft geschrieben der Mitte März 2006 soll auf der IETF Konferenz diskutiert werden soll.
Prinzipielle Funktion von ZRTP:
ZRTP erweitert im Prinzip RTP um einen Diffie Hellman Key Exchange (Details folgen sobald der Internet Draft veröffentlicht wurde), um dann eine SRTP Session aufbauen zu können. Damit wird die Verschlüsselung des Medienstreams komplett von der Signalisierung getrennt. Der Keyexchange erfolgt direkt Peer-to-Peer.
Asterisk müsste ZRTP natürlich auch unterstützen um Gespräche per ZRTP über Asterisk abwickeln zu können.
Abstract aus dem Internet Draft:
Klingt spannend!
Mehr Infos: http://www.philzimmermann.com/EN/zfone/index.html
und der vorläufige Internet Draft: http://www.ietf.org/internet-drafts/draft-zimmermann-avt-zrtp-00.txt
Security bei der Signalisierung mit SIP => SIPS:
TLS => Hop by Hop Verschlüsselung
Geht nur mit SIP over TCP (daher nicht mit Asterisk!).
PKI (Public Key Infrastructure) notwendig!
S/MIME => End to End Verschlüsselung
PKI notwendig!
Aufgrund der End to End Verschlüsselung und der Möglichkeit "SIP over UDP" zu bevorzugen.
PGP => Siehe S/MIME
Überlegungen zu PKI:
Domainweit kein grosses Problem. Unter den Domains könnte ein sogenannter "Circle of Trust" gebildet werden.
Es gibt sowohl Hardware-, als auch Softphones, die SIP over TLS unterstützen.
S/MIME wird meines Wissens momentan nur vom reSIProcate SIP Stack unterstützt. Auf http://www.sipfoundry.org findet man neben dem eigentlichen Stack auch noch einen SIP Proxy und ein Softphone.
Asterisk unterstützt momentan weder S/MIME noch PGP.
Patches oder Erweiterungen die SIP over TCP (bzw. auch TLS) unterstützen:
+) chan_exosip (sip over tcp, tls, srtp, mikey, sdescriptions) => http://www.hem.za.org/chan_exosip/
+) SIP over TCP (mit TLS support) => http://savannah.nongnu.org/projects/asterisk-tcp/
Sollte es Ergänzungen oder Berichtigungen geben, dann einfach posten und ich bessere das aus.
MfG,
Michael
[edit]Formatierung, PGP hinzugefügt[/edit]
[edit]Neuigkeiten bezüglich SRTP, SIP over TLS und S/MIME hinzugefügt[/edit]
[edit]Neuigkeiten bezüglich ZRTP und Links zu SIP over TCP und SRTP[/edit]
da ich mich jetzt schon etliche Tage mit Security von VOIP (im Speziellen mit Asterisk und SIP) beschäftigt habe, und es nicht immer leicht ist Informationen zusammenzutragen (vorallem weil auch viel Müll erzählt wird), möchte ich in diesem Thread gerne einen Überblick geben.
Außerdem hoffe ich, das die Sachen die ev. noch unklar sind (bzw. noch nicht ganz vollständig), geklärt werden können.
Ziel ist es einen Überblick über die für die Praxis besten Methoden zu geben, nicht vollständig jede Möglichkeit aufzuzählen bzw. genau zu erläutern.
Security beim Transport der (Voice-)Daten:
Es gibt eine Erweiterung des RTP, nämlich SRTP (RFC3711).
SRTP verwendet Preshared Keys, die entweder manuell (nicht zu empfehlen und auch nicht praktisch) oder mit einem geeigneten Protokoll ausgetauscht werden können.
Dafür ist MIKEY (RFC3830) geeignet (erfüllt im Gegensatz zu IKE die besonderen Anforderungen wegen dem Real Time Traffic).
MIKEY wird direkt in das Signalisierungsprotokoll (z.B. SIP) eingebettet und unterstützt verschiedene Modi, unter anderem auch DH (Diffie Hellman).
Ein weiterer Ansatz ist das Keymanagement über einen SDP Header (sdescription), dazu gibt es einen Internet Draft (draft-ietf-mmusic-kmgmt-ext-15.txt), der aber bald zum RFC wird.
Dazu muß allerdings die Signalisierung ebenfalls verschlüsselt erfolgen.
Es gibt sowohl Hardware-, als auch Softphones, die SRTP unterstützen.
SNOM verwendet die sdescriptions Methode (nicht ganz Draft konform, allerdings wird sie zu einem zukünfigen RFC konform werden).
Asterisk unterstützt momentan Out of the Box noch kein SRTP, allerdings gibt es ein paar Patches bzw. Erweiterungen, die man ja mal ausprobieren kann:
+) ein SRTP Patch (http://bugs.digium.com/view.php?id=5413) der mit sdescriptions arbeitet
+) chan_exosip: ein eigener SIP channel der SRTP unterstützt (siehe unten)
Da Asterisk prinzipiell im Medienstrom drinn hängt (im Gegensatz zu einem reinen SIP-Proxy), können die Clients momentan nicht über Asterisk SRTP sprechen.
Eine neue Möglichkeit könnte schon bald ZRTP darstellen. ZRTP wurde von Phil Zimmermann und Alan Johnston entwickelt und es wurde ein Internet Draft geschrieben der Mitte März 2006 soll auf der IETF Konferenz diskutiert werden soll.
Prinzipielle Funktion von ZRTP:
ZRTP erweitert im Prinzip RTP um einen Diffie Hellman Key Exchange (Details folgen sobald der Internet Draft veröffentlicht wurde), um dann eine SRTP Session aufbauen zu können. Damit wird die Verschlüsselung des Medienstreams komplett von der Signalisierung getrennt. Der Keyexchange erfolgt direkt Peer-to-Peer.
Asterisk müsste ZRTP natürlich auch unterstützen um Gespräche per ZRTP über Asterisk abwickeln zu können.
Abstract aus dem Internet Draft:
This document defines ZRTP, RTP (Real-time Transport Protocol) header extensions for a Diffie-Hellman exchange to agree on a session key and parameters for establishing Secure RTP (SRTP) sessions. The ZRTP protocol is completely self-contained in RTP and does not require support in the signaling protocol or assume a Public Key Infrastructure (PKI) infrastructure. For the media session, ZRTP provides confidentiality, protection against Man in the Middle (MitM) attacks, and, in cases where a secret is available from the signaling protocol, authentication.
Klingt spannend!
Mehr Infos: http://www.philzimmermann.com/EN/zfone/index.html
und der vorläufige Internet Draft: http://www.ietf.org/internet-drafts/draft-zimmermann-avt-zrtp-00.txt
Security bei der Signalisierung mit SIP => SIPS:
TLS => Hop by Hop Verschlüsselung
Geht nur mit SIP over TCP (daher nicht mit Asterisk!).
PKI (Public Key Infrastructure) notwendig!
S/MIME => End to End Verschlüsselung
PKI notwendig!
Aufgrund der End to End Verschlüsselung und der Möglichkeit "SIP over UDP" zu bevorzugen.
PGP => Siehe S/MIME
Überlegungen zu PKI:
Domainweit kein grosses Problem. Unter den Domains könnte ein sogenannter "Circle of Trust" gebildet werden.
Es gibt sowohl Hardware-, als auch Softphones, die SIP over TLS unterstützen.
S/MIME wird meines Wissens momentan nur vom reSIProcate SIP Stack unterstützt. Auf http://www.sipfoundry.org findet man neben dem eigentlichen Stack auch noch einen SIP Proxy und ein Softphone.
Asterisk unterstützt momentan weder S/MIME noch PGP.
Patches oder Erweiterungen die SIP over TCP (bzw. auch TLS) unterstützen:
+) chan_exosip (sip over tcp, tls, srtp, mikey, sdescriptions) => http://www.hem.za.org/chan_exosip/
+) SIP over TCP (mit TLS support) => http://savannah.nongnu.org/projects/asterisk-tcp/
Sollte es Ergänzungen oder Berichtigungen geben, dann einfach posten und ich bessere das aus.
MfG,
Michael
[edit]Formatierung, PGP hinzugefügt[/edit]
[edit]Neuigkeiten bezüglich SRTP, SIP over TLS und S/MIME hinzugefügt[/edit]
[edit]Neuigkeiten bezüglich ZRTP und Links zu SIP over TCP und SRTP[/edit]
Zuletzt bearbeitet: