Asterisk Security (Zusammenfassung)

prochmi

Neuer User
Mitglied seit
22 Sep 2005
Beiträge
112
Punkte für Reaktionen
0
Punkte
0
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:
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:
ich habe den beitrag noch ein bischen formatiert und eine bemerkung zu pgp hinzugefügt.

mich würden auch kommentare zu dem beitrag interessieren (praktisch bzw. interessant, müll, usw.).


mfg,
michael
 
@all

Grundsätzlich glit zuerst Asterisk in seinem aktuellem Zustand
zu sichern. D.h. ohne all dem Krypto-Kram, weil 'eh nicht für
Massen verfügbar.

Das wären:

1) Asterisk als User und nicht als Root laufen zu lassen,
es verhindert, daß Eindringlinge durch Buffer-Overflows in die Kiste eindringen. * läuft per default als root, eine "non-root" Anleitung gibt es hier: http://www.voip-info.org/wiki-Asterisk+non-root

2) Dialplan Security. Keinem Guest die Gelegenheit bieten teure Gespräche zu führen. Das währen in erster Linie alle Dokus in ./asterisk/doc/




Gruß
britzelfix
 
@britzelfix:
vielleicht ist mein titel nicht so passend gewählt, aber ich glaube nicht, das man diese beiden ansätze miteinander vergleichen kann.

@all:
ich habe den artikel wiedermal aktualisiert. (ist mittlerweile glaub ich ziemlich vollständig)

mfg,
michael
 
@prochmi

Ich finde, daß Du dir da sehr viel vorgenommen hast.
Was Du mit Security meinst ist sicherlich abhörsichere
Kommunikation. PKI - Public Key Infrastructure ist für VoIP
sehr aufwendig: IPsec z. B. mit Zertifikaten oder SSL. Sie hat
aber den Vorteil, daß Snittstellen gut definiert sind.
Einfacher ist nur Public Key Verschlüsselung (ohne Infrastruktur).
Beispiele gibt es genug. z.B. ssh. PGP ist aber auch
nichts anderes als Public Key Verschlüsselung und S/MIME ein
Transport Format für Email (MIME = Multipurpose Internet Mail Extensions)
daher etwas fehl am Platz.

Was Du garnicht erwähnst sind VPN's oder Tunneling.
Damit klappt es schon jetzt problemlos.

Gruß
britzelfix
 
hallo,
viel ist relativ :)

erstens bin ich ja nicht alleine und außerdem ist die srtp implementierung so gut wie fertig.
zeit haben wir auch noch genug (bradley arbeitet momentan an seiner diplomarbeit und ich beginne erst anfang nächsten jahres mit der aktiven arbeit daran, der titel übrigens: "VOIP Security with open standards")

nein, ich meine mit security nicht (nur) abhörsichere kommunikation, der begriff security umfasst da schon ein bischen mehr :)

es geht im falle des medientransports (rtp) neben der verschlüsselung auch darum, das die daten sicher von dem kommen, von dem man es vermutet (authentifizierung, integrität und antireplay)

oder bei der signalisierung: man kann ohne security maßnahmen anrufe nahezu beliebig umleiten (komm ich wirklich dorthin wo ich will?), bzw. auf kosten von anderen telefonieren (sicher nicht ganz so leicht wie es oft dargestellt wird, aber es ist möglich).

die PKI braucht man ja eben, um schlüssel komfortabel zu verteilen bzw. zur verfügung zu stellen, aber mir ist schon klar das man auch ohne eine infrastruktur anders die schlüssel verteilen kann (wie z.B. bei PGP)

also bezüglich S/MIME solltest du dich nochmal genauer informieren...damit mit kann man mit sicherheit auch für SIP end-to-end verschlüsselung gewährleisten (RFC 3853 S/MIME Advanced Encryption Standard (AES) Requirement for the Session Initiation Protocol (SIP)).

das ist daher kein problem, weil SIP sehr ähnlich wie HTTP aufgebaut ist (textbasierend, mit headern).

VPN's oder tunneling erwähne ich aus dem grund nicht, weil es schlicht und einfach nicht praktikabel ist, vor dem telefonieren mal schnell einen tunnel aufzubauen.

es gibt zwar eine diplomarbeit aus schweden dazu die sich mit alternativen zu srtp mit mikey beschäftigt (eben IPSEC), aber in der schlussfolgerung empfielt der autor ebenfalls SRTP mit MIKEY, weil IPSEC einfach zu viele probleme nach sich ziehen würde (läuft nicht auf anwendungsebene, daher ist der client immer irgendwie auf eine bestimmte implementierung angewiesen, usw.).

ich wollte mit dem artikel einfach nur einen kurzen überblick geben, weil leider sehr viel blödsinn über VOIP security geschrieben wird. einfach das man all die begriffe die man da und dort hört ein bischen einordnen kann.

vielleicht schaff ich es auch irgendwann noch zu jedem bereich weitere informationsquellen hinzuzufügen, das man sich bei bedarf näher zu den einzelnen mechanismen informieren kann.

mfg,
michael
 
@prochmi

erstens bin ich ja nicht alleine und außerdem ist die srtp implementierung so gut wie fertig.
zeit haben wir auch noch genug (bradley arbeitet momentan an seiner diplomarbeit und ich beginne erst anfang nächsten jahres mit der aktiven arbeit daran, der titel übrigens: "VOIP Security with open standards")

Jaja, immer diese Studenten. ;)

es geht im falle des medientransports (rtp) neben der verschlüsselung auch darum, das die daten sicher von dem kommen, von dem man es vermutet (authentifizierung, integrität und antireplay)

Ja, bei E-Mail/ssl/ssh würde ich Dir zustimmen. Aber Du willst doch nicht wirklich nur mit Fremden abhörsicher kommunizieren, sondern auch mit Freunden und die erkennt man doch an der Stimme.

die PKI braucht man ja eben, um schlüssel komfortabel zu verteilen bzw. zur verfügung zu stellen, aber mir ist schon klar das man auch ohne eine infrastruktur anders die schlüssel verteilen kann (wie z.B. bei PGP)

Hauptsächlich braucht man PKI um die Identität des Gegners sicher
zu bestimmen: Authentifizierung. Dafür braucht man dann auch die
CA's die ein Schlüssel-Paar signieren bzw. signiert herausgeben.
Ich finde das ziemlich unnütz für VoIP, da man auch mal anonym telefonieren möchte.

also bezüglich S/MIME solltest du dich nochmal genauer informieren...

Tolle Idee :) dieses 2-Seiten RFC, warscheinlich eine Totgeburt.

VPN's oder tunneling erwähne ich aus dem grund nicht, weil es schlicht und einfach nicht praktikabel ist, vor dem telefonieren mal schnell einen tunnel aufzubauen.

Warum? Es ist die einzige Möglichkeit, die man zur Zeit hat.

vielleicht schaff ich es auch irgendwann noch zu jedem bereich weitere informationsquellen hinzuzufügen, das man sich bei bedarf näher zu den einzelnen mechanismen informieren kann.

Da bin ich mal gespannt. :)


Gruß
britzelfix
 
britzelfix schrieb:
Jaja, immer diese Studenten. ;)
also eigentlich wollt ich ja schon schlafen gehen, aber jetzt....:)

Ja, bei E-Mail/ssl/ssh würde ich Dir zustimmen. Aber Du willst doch nicht wirklich nur mit Fremden abhörsicher kommunizieren, sondern auch mit Freunden und die erkennt man doch an der Stimme.
nix für ungut, aber das is ja wohl ein dämliches argument...davon abgesehen, das ich hier nur beispiele genannt habe, kann man ja wohl nicht sagen, das eine security maßnahme nicht notwendig ist, weil es manchmal auch ohne gehen würde

Hauptsächlich braucht man PKI um die Identität des Gegners sicher
zu bestimmen: Authentifizierung. Dafür braucht man dann auch die
CA's die ein Schlüssel-Paar signieren bzw. signiert herausgeben.
Ich finde das ziemlich unnütz für VoIP, da man auch mal anonym telefonieren möchte.
da gilt erstmal selbiges wie oben (nur weil ich manchmal anonym telefonieren will, ist es schwachsinn, häh?)

unnütz wäre es mit sicherheit nicht, es ist halt die frage, ob es in der praxis gut umsetzbar ist, aber das kann ich zumindest zum jetztigen zeitpunkt auch noch nicht beantworten :)

Tolle Idee :) dieses 2-Seiten RFC, warscheinlich eine Totgeburt.
S/MIME wird auch direkt im RFC 3261 für SIP als möglichkeit genannt :)
außerdem hat es den internet draft status immerhin schon überwunden

es gibt ja sogar eine fertige implementierung die S/MIME verschlüsselung von SIP unterstützt!

Warum? Es ist die einzige Möglichkeit, die man zur Zeit hat.

also das stimmt einfach nicht, tut mir leid.
davon abgesehen glaubst du doch nicht ernsthaft, das man eine solche lösung einem kunden verkaufen könnte?

Da bin ich mal gespannt. :)
rechne aber nicht allzubald damit, ich bin momentan zeimlich eingespannt :)


übrigens, ich würde vom ansatz her eher S/MIME UND PGP (mit dem unterschied das es für S/MIME schon was gibt, für PGP dürfte es noch in entwicklung sein) vs TLS sehen, und nicht S/MIME vs. PGP.

mfg,
michael
 
prochmi schrieb:
hallo,
viel ist relativ :)

erstens bin ich ja nicht alleine und außerdem ist die srtp implementierung so gut wie fertig.
zeit haben wir auch noch genug (bradley arbeitet momentan an seiner diplomarbeit und ich beginne erst anfang nächsten jahres mit der aktiven arbeit daran, der titel übrigens: "VOIP Security with open standards")

...

es gibt zwar eine diplomarbeit aus schweden dazu die sich mit alternativen zu srtp mit mikey beschäftigt (eben IPSEC), aber in der schlussfolgerung empfielt der autor ebenfalls SRTP mit MIKEY, weil IPSEC einfach zu viele probleme nach sich ziehen würde (läuft nicht auf anwendungsebene, daher ist der client immer irgendwie auf eine bestimmte implementierung angewiesen, usw.).

...

mfg,
michael

Wo finde ich die Diplomarbeit aus Schweden und kann man sich für Deine Arbeit schon mal anmelden? Ich hätte da gern ein Exemplar ;) Oder wird die einen Sperrvermerk haben?
 
speedy1980 schrieb:
Wo finde ich die Diplomarbeit aus Schweden und kann man sich für Deine Arbeit schon mal anmelden? Ich hätte da gern ein Exemplar ;) Oder wird die einen Sperrvermerk haben?

http://www.minisip.org/publications.html

minisip ist ein softphone das om rahmen von diplomarbeiten und dissertationen entstanden ist und eben dinge wie SRTP und MIKEY kann. dort unter dem punkt publications finden sich ein paar DA's und dissertationen zu dem thema.

kann ich dir gerne zukommen lassen wenn sie fertig ist.


mfg,
michael
 
Angewandte Verschlüsselung / Authentifikation

Gut, dies nun alles zur Theorie. :D

Ich bin derzeit dabei Asterisk (sowie *@home, mal sehen) aufzusetzen und mit Softphones sowie einem Snom 360 und einem Cisco 7970 auszuprobieren.

Was kann ich tun um letztendlich sicher telefonieren zu können? Ich meine jetzt sowohl betreffend der Anmeldung an * als auch die verschlüsselte Übertragung der Gesprächsinhalte.
Welche Lösungen gibt es derzeit bereits und was kann man als "best practice" ansehen?

Remote-User mit Laptop werden über VPN an Netzwerk angebunden, darüber läuft dann auch die Telefonie. Das klappt bei meinem Test bestens.

Ich möchte aber auch mit anderen Usern, die ein Hardware-Telefon verwenden oder ein Software-Telefon auf deren PC installiert haben sicher telefonieren. Wie kann man das am besten bewerkstelligen?

Gibt es (am besten in Österreich) irgend einen Gateway-Anbieter, der eine sichere Anmeldung sowie eine Verschlüsselung der Gesprächsdaten auf dem Weg von meiner Asterisk zum Gateway anbietet? Dass im nachfolgenden Telefonnetz keine Verschlüsselung möglich ist, ist natürlich klar. :mad:

Ich hoffe ihr könnt mir hier etwas weiterhelfen, da ich nicht so ganz mitbekommen habe was von dem allen bereits möglich bzw. noch Zukunftsmusik ist... :confused:

Yours digitally,
Wolfhard
 
habe den text wieder etwas aktualisiert bzw. ZRTP hinzugefügt.

mfg,
michael
 
Stand der Dinge bzgl. * und SRTP

Hallo Leute, hallo Michael,

nachdem ich nun schon einige Zeit hier mitlese hab` ich mich auch mal registriert. Genau an diesem Thema dieses Threads bin ich auch sehr interessiert und bin zur Zeit dabei, mich in die libsrtp-Implementiertung des rfc3711 einzuarbeiten.

Nun suche ich schon seit einiger Zeit eine Möglichkeit, die Verschlüsselung (lokal) zu testen! Ich habe hier einen Asterisk laufen und neben dem snom Softphone auch zwei richtige snom360 zur Verfügung. Allerdings wird das mit der Encryption nix, solange der Asterisk da nicht mitspielt. Mir stellt sich die Frage, ob es eine andere PBX-Software gibt, mit der sich die SRTP-Funktionalität nutzen und demzufolge auch überprüfen lässt!? :confused:

Was ganz neues ist Phil Zimmermann`s ZFone, welches ja seit gestern als Beta raus ist, aber ein eigenes Protokoll vorantreibt. Auch wenn es vielleicht ein Standard wird...
 
nimm einfach SER (openser.org). habe schon öfter gelesen, das es mit SER und SNOM phones halbwegs problemlos geht.

zu ZRTP hab ich vor kurzem erst was ergänzt. ist kein eigenes protokoll sondern nur eine erweiterung zu SRTP.

mfg,
michael
 
Hallo,

Sehr interessanter Thread. Hab mich da jetzt durch alle Postings durchgewühlt. Ich bin auch gerade Dabei, dass ich meine DA über SIPS und SRTP schreib.

Normal nehmen wir Asterisk als BPX her, da hab ich auf dem 1.2.1er den SRTP Patch drauf. Wie das mit dem Patch genau funktioniert, steht hier.
Funktioniert eigentlich ganz gut, nur is am Anfang ziemlich mühsam das alles zu patchen, gibt aber jetzt auch schon eine svn Version mit dem Patch.

Für meine DA nehm ich jetzt openSER (die Firma für die ich das mach arbeitet nur mit dem). SER hat den Vorteil, dass er nur ein reiner SIP Proxy is, d.h. er hat mit dem RTP Strom nix zu tun. Also müssen nur die Phones SRTP können und schon is das mal sicher. (getestet mit openSER und zwei snom Softphones, abgehört mit Cain and Abel --> man hört schönes rauschen, von den Gesprächen nix) Allerdings wird die Signalisierung immer noch über SIP/UDP gemacht, wodurch der Aufbau des Gesprächs mitgehört/verändert werden kann/könnte. Ausserdem wird der key zum verschlüsseln im sdp mitgeschickt, klartext : /

Für openSER gibts eine tls Version, die einzurichten ist ganz einfach, schön in den docs erklärt.

Leider hab ichs bis jetzt noch nicht geschafft, ein Telefon an dem tls (tcp) Port am SER anzumelden. Weder mit dem snom (findet den Server nicht, trotz DNS Einträge >hier<) softphone noch mit minisp (beklagt sich über Zertifikate). Das werde ich diese Woche weiter probieren und hoffentlich auf einen grünzen Zweig kommen. Od. hat da schon wer Erfolg gehabt in dieser Hinsicht?

chris...
 
soda, wie versprochen meine DA, hat zwar jetzt nix direkt mit asterisk zu tun, sondern generell voip security, aber was solls :)

wenn die DA jemand irgendwo anders zum download anbieten will, dann nur mit meiner ausdrücklichen erlaubung.

mfg,
michael
 

Anhänge

  • DA_VOIP_Security_Prochaska_2006.zip
    1.7 MB · Aufrufe: 164
Hallo!

Mich würde interessieren, wie weit inzwischen die Verschlüsselung von SIP mittels DTLS vorangeschritten ist?
Soweit ich weiß, unterstützt zumindest der reSIProcate SIP Stack diese Methode.

Gibt es noch andere Geräte oder Software, die SIP+DTLS unterstützen?
 
Moin,

ich möchte als Laie einen sicheren "Konferenzraum" erstellen. Funktioniert das,wenn alle Beteiligten die aktuelle Zfonesoftware nutzen? Mit Zfone in Kombination mit Gizmo bin ich ganz zufrieden, nur würde ich gerne mit mehreren Leuten verschlüsselt telefonieren.

greetz
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.