2014-03 - RootedCon 2014 - Secure Communication System
1. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
Secure Communication System
2. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
2
¿ Quiénes somos ?
José Luis Verdeguer
Ingeniero Técnico de Sistemas Informáticos por la UA
Máster en Desarrollo y Prog. de Aplicaciones y Serv. Web
Director de Sistemas en Zoon Suite (operador de VoIP)
Autor del libro Hacking y Seguridad VoIP (de 0xWORD)
Víctor Seva
Mantenedor de Debian (VoIP/Lua team)
Desarrollador del proyecto Kamailio
Ingeniero de Software en Sipwise
Kamailio Award (2012) - empaquetado para Debian
@pepelu
xx
@linuxmani
ac
3. 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 ?
4. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
4
Escuchas telefónicas
Eavesdropping
5. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
5
Escuchas telefónicas
7. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
7
Escuchas telefónicas
8. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
8
Escuchas telefónicas
9. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
9
Escuchas telefónicas
10. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
10
Sistemas de espionaje
ECHELO
N
11. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
11
Sistemas de espionaje
12. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
12
Sistemas de espionaje
Carnivore: encargado de capturar la información
Packeteer: convierte los paquetes interceptados en textos coherentes
Coolminer: analiza los datos obtenidos
DRAGON
WARE
13. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
13
DRAGON
WARE
Sistemas de espionaje
14. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
14
Sistemas de espionaje
NARUSINSIGH
T
15. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
15
Sistemas de espionaje
16. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
16
Sistemas de espionaje
17. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
17
Sistemas de espionaje
SITE
L
18. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
18
Sistemas de espionaje
19. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
19
Sistemas de espionaje
20. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
20
¿ 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
21. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
21
¿ Qué soluciones encontramos en el mercado ?
22. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
22
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
23. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
23
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
24. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
24
Soluciones: software
RedPhone
- 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
25. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
25
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
26. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
26
Soluciones: software
27. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
27
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
28. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
28
¿ Son seguras nuestras comunicaciones ?
Skype permite cifrar las comunicaciones, pero …
29. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
29
¿ Y Whatsapp ? ¿ Es seguro ?
¿ Son seguras nuestras comunicaciones ?
30. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
30
¿ 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
31. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
31
Nuestro proyecto
32. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
32
Nuestro proyecto
Para 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
33. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
33
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)
34. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
34
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, …
35. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
35
Fases en una comunicación SIP
Fase 1: Signaling - Ejemplo de registro, sin cifrado
36. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
36
Fase 1: Signaling - Ejemplo de registro, con cifrado
TLS ofrece seguridad en la capa de transporte
Fases en una comunicación SIP
37. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
37
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
38. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
38
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.
39. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
39
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
40. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
40
Nuestro proyecto
41. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
41
Nuestro proyecto
URL: 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
42. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
42
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
43. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
43
Nuestro proyecto
44. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
44
Nuestro proyecto
45. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
45
Nuestro proyecto
DEMO
Funcionamiento de nuestro sistema de comunicaciones cifrado
47. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
47
¿ De verdad pensáis que es seguro ?
48. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
48
¿ Qué ha ocurrido ?
49. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
49
¿ 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 —> Servidor
Servidor <— CANAL 2 CIFRADO —> Receptor
50. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
50
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.
51. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
51
¡ Ahora sí que mola !
52. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
52
Máquina Virtual
-Descarga
https://securecall.org/securecall_mysql.bz2
-Requisitos
# apt-get install libvirt-bin virt-manager qemu-kvm
# adduser USER libvirt libvirt-qemu
53. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
53
-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
54. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
54
Curiosidades
Ataques recibidos en el transcurso del proyecto
(desde Julio/2013 hasta Enero/2014)
55. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
55
Curiosidades
Histórico de ataques
56. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
Curiosidades
56
Histórico de ataques: por países
57. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
Curiosidades
57
Histórico de ataques: por IPs (o por “cansinos”)
58. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
58
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%
59. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
59
José Luis Verdeguer
aka
Pepelux
@pepeluxx
Víctor Seva
aka
Linuxmaniac
@linuxmaniac