Jose Luis Verdeguer & Víctor Seva – Secure Communications System [Rooted CON 2014]
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
Máster en Desarrollo y Programación de Servicios Web
Director de Sistemas en Zoon Suite (operador de VoIP)
Autor del libro Hacking y Seguridad VoIP (de 0xWORD)
Víctor Seva
Colaborador del proyecto Debian (VoIP 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
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
DragonWare
Carnivore: encargado de capturar la información
Packeteer: convierte los paquetes interceptados en textos coherentes
Coolminer: analiza los datos obtenidos
13. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
13
Sistemas de espionaje
14. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
14
Sistemas de espionaje
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
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
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
22. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
22
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
23. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
23
Soluciones: software
RedPhone
- Creado por Moxie Marlinspike
- Basado en tecnología de VoIP
- Usa ZRTP para las comunicaciones
Problemas …
- 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
24. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
24
Soluciones: software
RedPhone
- Teóricamente, el servidor no tiene acceso a las claves usadas
- No tendrá acceso a las conversaciones
- Pero sabrá:
· Tu número de teléfono
· A quién has llamado
· Cuándo
· Duración de la llamada
25. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
25
Soluciones: software
26. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
26
Soluciones: software
SilentCircle
Servicios cifrados:
- Envío de documentos: DOC, PDF, XLS, imágenes, …
- Llamadas telefónicas, videoconferencias, …
Dirigido a:
- Particulares
- Empresas
- Gobiernos
27. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
27
¿ Son seguras nuestras comunicaciones ?
Skype permite cifrar las comunicaciones, pero …
28. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
28
¿ Y Whatsapp ? ¿ Es seguro ?
¿ Son seguras nuestras comunicaciones ?
29. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
29
¿ 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
30. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
30
Nuestro proyecto
31. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
31
Nuestro proyecto
Para ello usaremos: Kamailio + Mediaproxy-ng
- Kamailio: Proxy SIP para la señalización
- Mediaproxy-ng: Proxy RTP para la sesión media (NAT)
- Medidas para incrementar la seguridad:
• Uso de TLS para la señalización
• Forzado de SRTP para el media
32. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
32
Un poco de teoría sobre VoIP …
Fases en una comunicación SIP:
- Fase 1: Signaling (registro, solicitud de llamada, etc)
- Fase 2: Media Session (transmisión de audio o vídeo)
33. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
33
Fases en una comunicación SIP
Fase 1: Signaling
- Comunicación TCP o UDP
- Posibilidad de cifrado (TLS)
- Sintaxis similar al HTTP
- Diferentes tipos de mensajes
34. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
34
Fases en una comunicación SIP
Fase 1: Signaling - Ejemplo de registro, sin cifrado
35. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
35
Fase 1: Signaling - Ejemplo de registro, con cifrado
TLS ofrece seguridad en la capa de transporte
Utiliza cifrado RSA
Fases en una comunicación SIP
36. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
36
Fases en una comunicación SIP
Fase 1: Signaling - SIP + TLS
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
- 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
-Describe el establecimiento de un intercambio Diffie-Hellman de
claves para el SRTP
-Creado por Phil Zimmermann (autor de PGP)
-Para negociar un intercambio de claves entre dos puntos
-Generadas para cada comunicación. Previenen ataques mitm
-Comprobación visual de la clave
Fases en una comunicación SIP
40. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
40
Fases en una comunicación SIP
Fase 2: Media Session
ZRTP
41. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
41
Nuestro proyecto
42. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
42
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
43. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
43
Nuestro proyecto
URL: http://www.securecall.org
- El servidor es un simple proxy (Kamailio + Mediaproxy-ng)
- No se almacenan datos personales
- No existe ningún registro de llamadas
- Es totalmente gratuito
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
46. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
46
Nuestro proyecto
47. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
47
Nuestro proyecto
Mola, ¿ eh ?
48. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
48
Nuestro proyecto
¿ De verdad pensáis que es seguro ?
49. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
49
¿ Qué ha ocurrido ?
50. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
50
¿ 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.
- Había un canal de comunicación entre los dos interlocutores.
Emisor <—> Receptor
- En el segundo caso, se desvía el tráfico a un segundo servidor.
- Se establecen 2 canales de comunicación.
Emisor <—> Servidor
Servidor <—> Receptor
51. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
51
Conclusión
El único sistema seguro es aquel que controlamos al 100%
Por eso, hemos creado una VM para que cualquier pueda
montar su propio sistema cifrado de comunicaciones.
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
-Modificaciones para hacerla funcionar:
# cat /etc/kamailio/README
53. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
53
Curiosidades
Ataques recibidos en el transcurso del proyecto
54. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
54
Curiosidades
Histórico de ataques
55. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
Curiosidades
55
Histórico de ataques: por países
56. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
Curiosidades
56
Histórico de ataques: por IPs (o por “cansinos”)
57. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
57
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%
58. Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
58
Conclusiones finales
José Luis Verdeguer
aka
Pepelux
@pepeluxx
Víctor Seva
aka
Linuxmaniac
@linuxmaniac