Bits y Lentejas

miércoles, 30 de septiembre de 2009

Vigila con qué twiteas

Con toda la fiebre de twitter y la miríada de clientes que existen, cabría esperar que todo el mundo pudiese encontrar uno ajustado a sus necesidades. No obstante, un requisito tan básico como que el cliente utilice comunicaciones cifradas mediante SSL/HTTPS reduce drásticamente las opciones.

En mi cruzada en busca del cliente ideal (para Linux), he probado varias alternativas, con resultados diversos pero bastante desalentadores. Podemos dividir los clientes en tres grupos:
  • HTTP+Autenticación básica
  • HTTP+OAuth
  • HTTPS/SSL
Los clientes que usan HTTP+autenticación básica no solo utilizan un protocolo sin cifrar para la comunicación con la API de Twitter, sino que además envían las credenciales en claro en cada petición (comprobado con un sniffer de red).
- gTwitter
- Twitbin (extensión de Firefox)
- KDETwitter Plasmoid

Hay otros clientes que, siguiendo las recomendaciones de Twitter no almacenan las credenciales ellos mismos, sino que utilizan un protocolo abierto específico de autenticación para APIs llamado OAuth, basado en tokens de seguridad. El sistema funciona más o menos así:
  1. Introduces tu nombre de usuario en el cliente Twitter
  2. El cliente abre un navegador para que te autentiques en Twitter si no tienes ya una sesión, con un token generado aleatoriamente. A la vez, hace una petición a la API para notificar la asociación entre ese token y la aplicación.
  3. Twitter te pregunta si quieres autorizar a la aplicación a acceder a tu cuenta y enviar tweets. Respondes que sí y te proporciona un PIN.
  4. Introduces el PIN en la aplicación, que ésta envía a Twitter junto con el token para comprobar que realmente el usuario es el que ha hecho la petición.
  5. Desde ese momento, las peticiones con ese token tienen autorización para modificar tu perfil.
No obstante, al enviar el token de autenticación en claro, son vulnerables a un secuestro de sesión exactamente igual que cuando se usan cookies. Dentro de este grupo de clientes sólo he encontrado/probado uno:
- qTwitter

Los que usan HTTPS/SSL (de nuevo, siguiendo las recomendaciones de Twitter) son los únicos que pueden considerarse seguros frente al robo de credenciales y secuestro de sesión, por utilizar un protocolo cifrado para las peticiones a la API.

-Qwit
- Twitux a partir de la versión 0.69, que no está aún en los repositorios de OpenSUSE oficiales.

¿Qué cliente twitter usáis? ¿Soporta y utliza SSL por defecto? Os recomiendo poner el Wireshark y esnifar un poco, puede que os llevéis una sorpresa...

Y por supuesto, si utilizáis la propia web de Twitter, aseguraos que entráis con HTTPS...

Etiquetas: , , ,

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]



<< Inicio