2014-03 - rootedcon 2014 - secure communication system
DESCRIPTION
Charla sobre sistemas de comunicaciones seguros ofrecida en la RootedCon 2014 por @linuxmaniac y @pepeluxxTRANSCRIPT
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
Secure Communication Secure Communication SystemSystem
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March2
¿ Quiénes somos ?
José Luis VerdeguerJosé Luis VerdeguerIngeniero Técnico de Sistemas Informáticos por la UAMáster en Desarrollo y Prog. de Aplicaciones y Serv. WebDirector de Sistemas en Zoon Suite (operador de VoIP)Autor del libro Hacking y Seguridad VoIP (de 0xWORD)
Víctor SevaVíctor SevaMantenedor de Debian (VoIP/Lua team)Desarrollador del proyecto KamailioIngeniero de Software en SipwiseKamailio Award (2012) - empaquetado para Debian
@pepeluxx
@linuxmaniac
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
3
- Escuchas telefónicas
- Sistemas de espionaje
- Diferentes soluciones
- Propuestas
¿ De qué va esta charla ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March4
Escuchas telefónicas
Eavesdropping
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March5
Escuchas telefónicas
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March6
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March7
Escuchas telefónicas
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March8
Escuchas telefónicas
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March9
Escuchas telefónicas
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March10
Sistemas de espionaje
ECHELON
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March11
Sistemas de espionaje
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March12
Sistemas de espionaje
Carnivore: encargado de capturar la informaciónPacketeer: convierte los paquetes interceptados en textos coherentesCoolminer: analiza los datos obtenidos
DRAGON WARE
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March13
DRAGON WARE
Sistemas de espionaje
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March14
Sistemas de espionaje
NARUSINSIGHT
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March15
Sistemas de espionaje
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March16
Sistemas de espionaje
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March17
Sistemas de espionaje
SITEL
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March18
Sistemas de espionaje
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March19
Sistemas de espionaje
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March20
¿ Es posible establecer una comunicación de voz segura ?
“no se puede tener un 100% de seguridad y también un 100% de privacidad y ningún inconveniente”
Barack Obama
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March21
¿ Qué soluciones encontramos en el mercado ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March22
Soluciones: hardware
Cryptophone
- Diferentes tipos de terminales
- Proporciona llamadas cifradas de extremo a extremo
Problemas …
- Altos costes (1.500€ / terminal)
- Necesidad de un terminal por interlocutor
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March23
Soluciones: software
Zfone
- Fundado por Phil Zimmermann
- Basado en tecnología de VoIP
- Usa ZRTP para las comunicaciones
- Disponible en Windows, MAC OS y Linux
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March24
Soluciones: softwareRedPhone
- Creado por Moxie Marlinspike- Basado en tecnología de VoIP- Usa ZRTP para las comunicaciones
Inconvenientes …
- Registra tu nº de teléfono en el sistema (validación por SMS)- Funciona sólo con Android- Sólo disponible en ciertos países
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March25
Soluciones: software
RedPhone
-Teóricamente, el servidor no tiene acceso a las claves-No tendrá acceso a las conversaciones
-Pero sabrá:· Tu número de teléfono· Tu ubicación geográfica· A quién has llamado· Cuándo· Duración de la llamada
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March26
Soluciones: software
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March27
Soluciones: software
SilentCircle
Servicios cifrados:- Envío de documentos: DOC, PDF, XLS, imágenes, …- Llamadas telefónicas, videoconferencias, …
Servicio de pago dirigido a:- Particulares- Empresas- Gobiernos
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March28
¿ Son seguras nuestras comunicaciones ?
Skype permite cifrar las comunicaciones, pero …
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March29
¿ Y Whatsapp ? ¿ Es seguro ?
¿ Son seguras nuestras comunicaciones ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March30
¿ Qué podemos hacer ?
La única forma de controlar nuestras comunicaciones es mediante un sistema propio:
- Sin telcos involucrados
- Sin intervención de terceros
En definitiva:
- Nuestro propio sistema de comunicaciones
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March31
Nuestro proyecto
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March32
Nuestro proyectoPara ello usaremos Debian con: Kamailio + Mediaproxy-ng
- Kamailio: Proxy SIP para la señalización- Mediaproxy-ng: Proxy RTP para la sesión media
- NAT: problemas one-audio- Uso como relay
- Medidas para incrementar la seguridad:• Uso de TLS para la señalización• Forzado de SRTP para el media
• configuración en cliente
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March33
Un poco de teoría sobre VoIP …
Protocolo SIP(RFC 3261):* unicast / multicast*audio, video, IM, presence
Fases en una comunicación de voz:- Fase 1: Signaling (establecer, modificar, cancelar sesión)
- Fase 2: Media Session (transmisión de audio)
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March34
Fases en una comunicación SIP
Fase 1: Signaling
- Comunicación TCP, UDP o SCTP
- Posibilidad de cifrado (TLS)
-Sintaxis similar al HTTP- Headers, Body- Request / Response- Auth Digest
- REGISTER, INVITE, CANCEL, …
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March35
Fases en una comunicación SIP
Fase 1: Signaling - Ejemplo de registro, sin cifrado
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March36
Fase 1: Signaling - Ejemplo de registro, con cifrado
TLS ofrece seguridad en la capa de transporte
Fases en una comunicación SIP
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March37
Fases en una comunicación SIP
Fase 2: Media Session
- Comunicación RTP (UDP) —> RFC-3350
- Posibilidad de cifrado SRTP —> RFC-3711
- Posibilidad de cifrado ZRTP —> RFC-6189
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March38
Fases en una comunicación SIP
Fase 2: Media Session
SRTP (RFC-3711)- Soporta el algoritmo AES (Advanced Encryption Standard)
- Confidencialidad mediante el cifrado del RTP.
- Integridad añadiendo MAC (Message Authentication Code).
- MKI (Master Key Identifier) para simplificar el intercambio de claves.
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March39
Fase 2: Media Session
ZRTP (RFC-6189)-Describe el establecimiento de un intercambio Diffie-Hellman de claves para el SRTP
-Creado por Phil Zimmermann (autor de PGP)
-Negocia el intercambio de claves entre dos puntos
-Generadas por cada comunicación. Previenen ataques mitm
-Comprobación visual del SAS (Short Authentication String)
Fases en una comunicación SIP
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March40
Nuestro proyecto
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March41
Nuestro proyectoURL: http://www.securecall.org
- Señalización por TLS
- Comunicaciones siempre cifradas por SRTP
- El usuario es un nick (no se necesita un número de teléfono)
- Contraseñas robustas generadas aleatoriamente
- Bloqueo automático ante ataques
- Detección de escáners SIP
- Posibilidad de usar teléfonos IP físicos, móviles o softphones
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March42
Nuestro proyecto
URL: http://www.securecall.org
-El servidor es un simple proxy (Kamailio + Mediaproxy-ng)
-Todo el proyecto implementado con Software Libre
- No se almacenan datos personales
- No existe ningún registro de llamadas
- Es totalmente gratuito
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March43
Nuestro proyecto
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March44
Nuestro proyecto
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March45
Nuestro proyecto
DEMODEMO
Funcionamiento de nuestro sistema de comunicaciones cifrado
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March46
Mola, ¿ eh ?Mola, ¿ eh ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March47
¿ De verdad pensáis que es seguro ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March48
¿ Qué ha ocurrido ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March49
¿ Qué ha ocurrido ?- En un principio el servidor sólo actuaba como proxy y desviaba el tráfico de audio de un terminal a otro (RELAY).
- Había un único canal de comunicación entre los dos interlocutores.
Emisor <— CANAL CIFRADO —> Receptor
-En el segundo caso, se desvía el tráfico a otro servidor.-Se establecen 2 canales cifrados de comunicación.
Emisor <— CANAL 1 CIFRADO —> ServidorServidor <— CANAL 2 CIFRADO —> Receptor
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March50
Conclusión
El único sistema seguro es aquel que controlamos al 100%
… Y aún así no podemos estar confiados
Por eso, hemos creado una Máquina Virtual con nuestro ’Secure Communication System’ para que cualquiera pueda descargarlo y montar su propio sistema cifrado de comunicaciones.
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March51
¡ Ahora sí que mola !
¡ Ahora sí que mola !
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March52
Máquina Virtual
-Descargahttps://securecall.org/securecall_mysql.bz2
-Requisitos# apt-get install libvirt-bin virt-manager qemu-kvm# adduser USER libvirt libvirt-qemu
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March53
-Modificaciones para hacerla funcionar:
# cat /etc/kamailio/README
*Para usar la VM tras una NAT hay que redirigir los puertos 5061/tcp y el 30000-50000/udp a la máquina virtual.
*Para usar una máquina pública y no la VM, lo mejor es instalar los paquetes y copiar las configuraciones de kamailio.
Máquina Virtual
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March54
Curiosidades
Ataques recibidos en el transcurso del proyecto
(desde Julio/2013 hasta Enero/2014)
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March55
CuriosidadesHistórico de ataques
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
Curiosidades
56
Histórico de ataques: por países
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
Curiosidades
57
Histórico de ataques: por IPs (o por “cansinos”)
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March58
Conclusiones finales
En esta charla se ha pretendido demostrar que:
-Ningún sistema es seguro (por muy bien que nos lo vendan)
-Podemos esforzarnos en que las comunicaciones viajen cifradas y un tercero no pueda interceptarlas pero, ¿qué hay del proveedor de servicios?
-Si quieres algo fiable, créalo tú mismo … aún así nunca tendrás una garantía del 100%
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March59
José Luis Verdegueraka
Pepelux
@pepeluxx
Víctor Sevaaka
Linuxmaniac
@linuxmaniac