¿Qué datos sincronizados con Android están encriptados?

Con el lanzamiento del complemento firesheep para firefox , se ha vuelto trivial que la navegación de sitios web en redes Wi-Fi abiertas sea secuestrada por oyentes de terceros.

Android ofrece la conveniente opción de sincronización automática. Sin embargo, temo que mis datos se sincronicen automáticamente mientras estoy conectado a una red Wi-Fi abierta en la cafetería local o en el centro comercial.

¿Todos los datos que Android sincroniza automáticamente se cifran mediante SSL o un mecanismo de cifrado similar? ¿Hay datos sincronizados automáticamente sin cifrar y transmitidos sin cifrar para que todos los escuchen?

Actualización : ¡COMPLETAMENTE INSEGURO! ¡¡¡¡Vea abajo!!!!

La revista alemana Heise tiene un gran artículo sobre esa pregunta. Solo está en alemán, pero podría usar un servicio de traducción. enlace: Heise
Parece que, finalmente, Google se hará cargo de los datos de sus usuarios: uni-ulm.de/in/mi/mitarbeiter/koenings/ catch- authtokens.html

Respuestas (2)

Nota: respondiendo mi propia pregunta como nadie sabía.

Hice una captura de paquetes después de seleccionar Menú -> Cuentas y sincronización -> Sincronización automática (también accesible a través del widget "Control de energía"). ¿Qué descubrí?

Para mi horror (las solicitudes http del teléfono se muestran a continuación):

GET /proxy/calendar/feeds/myaccount%40gmail.com HTTP/1.1
Accept-Encoding: gzip
Authorization: GoogleLogin auth=_hidden_
Host: android.clients.google.com
Connection: Keep-Alive
User-Agent: Android-GData-Calendar/1.4 (vision FRF91); gzip

y

GET /proxy/contacts/groups/myaccount@gmail.com/base2_property-android?showdeleted=true&orderby=lastmodified&updated-min=2010-12-01T08%3A49%3A00.561Z&sortorder=ascending&max-results=10000&requirealldeleted=true HTTP/1.1
Accept-Encoding: gzip
Authorization: GoogleLogin auth=_hidden_
GData-Version: 3.0
Host: android.clients.google.com
Connection: Keep-Alive
User-Agent: Android-GData-Contacts/1.3 (vision FRF91); gzip

¡Mis contactos y mi calendario se transmiten sin cifrar ! Actualmente no sincronizo gmail, así que tampoco podría decir si eso no está encriptado.

También la aplicación de bolsa (que debe ser un servicio porque no tengo el widget desplegado ni la aplicación activa):

POST /dgw?imei=TEST&apptype=finance&src=HTC01 HTTP/1.1
User-Agent: curl/7.19.0 (i586-pc-mingw32msvc) libcurl/7.19.0 zlib/1.2.3
Content-Type: text/xml
Content-Length: 338
Host: api.htc.go.yahoo.com
Connection: Keep-Alive
Expect: 100-Continue

<?xml version="1.0" encoding="UTF-8"?>
<request devtype="HTC_Model" deployver="HTCFinanceWidget 0.1" app="HTCFinanceWidget" appver="0.1.0" api="finance" apiver="1.0.1" acknotification="0000">
<query id="0" timestamp="0" type="getquotes">
<list><symbol>VOD.L</symbol><symbol>BARC.L</symbol></list></query>
</request>

Solicitud de cotizaciones de acciones completamente sin cifrar: solo piense, podría sentarse en Starbucks en el centro financiero de su ciudad y olfatear qué cotizaciones eran importantes para todos los usuarios de teléfonos inteligentes que lo rodean.

Otros elementos que no fueron encriptados:

  • solicitud http ahtc.accuweather.com
  • solicitud de tiempotime-nw.nist.gov:13 para (ni siquiera usa NTP)

Casi los únicos datos que están encriptados en mi teléfono son las cuentas de correo que configuré con la aplicación K-9 (porque todas mis cuentas de correo usan SSL y, afortunadamente, las cuentas de gmail son, por defecto, SSL; y el correo de yahoo! admite imap usando SSL también). Pero parece que ninguno de los datos sincronizados automáticamente del teléfono original está encriptado.

Esto es en un HTC Desire Z con Froyo 2.2 instalado. Lección: ¡no use el teléfono en una red inalámbrica abierta sin túneles cifrados VPN !

Tenga en cuenta que la captura de paquetes se realizó utilizando tshark en la interfaz ppp0 en un nodo virtual que ejecuta Debian conectado a un teléfono Android a través de OpenSwan (IPSEC) xl2tpd (L2TP).

Eso es preocupante. No puedo ver ninguna cookie pasando de un lado a otro allí, ¿también se envían en claro?
La auth=cadena contenía lo que parecía ser similar a una cookie, sin embargo, la eliminé antes de publicarla aquí por seguridad.
¿Sigue siendo un problema actual en Android 2.3.1?
Creo que puedes configurar Android 4 para usar siempre una conexión VPN.

Resultados capturados en un LG Optimus V (VM670), Android 2.2.1, stock, rooteado, comprado en marzo de 2011.

A partir de hoy, las únicas solicitudes sin cifrar que pude encontrar en un pcap tomado durante una resincronización completa fueron:

Álbumes web de Picasa

GET /data/feed/api/user/<username>?imgmax=1024&max-results=1000&thumbsize=144u,1024u
    &visibility=visible&kind=album HTTP/1.1
GData-Version: 2
Accept-Encoding: gzip
Authorization: GoogleLogin auth=<snipped>
If-None-Match: <snipped; don't know if it's sensitive info>
Host: picasaweb.google.com
Connection: Keep-Alive
User-Agent: Cooliris-GData/1.0; gzip

Eso es.

Picasa fue el único servicio que pude encontrar sincronizado sin cifrar. Facebook solicitó un par de imágenes de perfil (pero no pasó ninguna información de la cuenta); Anuncios solicitados por Skype; y TooYoou tomó una nueva imagen de banner. Ninguno de ellos se relaciona con la sincronización, en realidad.

Así que parece que la seguridad de sincronización de Google se ha reforzado bastante. Desactive la sincronización de Álbumes web de Picasa y todos sus datos de Google deberían sincronizarse de forma encriptada.

Mercado

Esto me molestó un poco:

GET /market/download/Download?userId=<snipped>&deviceId=<snipped>
    &downloadId=-4466427529916183822&assetId=2535581388071814327 HTTP/1.1
Cookie: MarketDA=<snipped>
Host: android.clients.google.com
Connection: Keep-Alive
User-Agent: AndroidDownloadManager

El retorno de esto es un 302 Movido temporalmente que apunta a una URL de descarga muy compleja:

HTTP/1.1 302 Moved Temporarily
Cache-control: no-cache
Location: http://o-o.preferred.iad09g05.v5.lscache6.c.android.clients.google.com
          /market/GetBinary/com.wemobs.android.diskspace/1?expire=1322383029&ipbits=0
          &ip=0.0.0.0&sparams=expire,ipbits,ip,q:,oc:<snipped>
          &signature=<snipped>.<snipped>&key=am2
Pragma: no-cache
Content-Type: text/html; charset=UTF-8
Date: Fri, 25 Nov 2011 08:37:09 GMT
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Transfer-Encoding: chunked

El administrador de descargas de Android da la vuelta y solicita esa ubicación de descarga, pasando la MarketDAcookie nuevamente.

No sé si hay algún peligro de seguridad por la forma en que Market descarga los APK. Lo peor que puedo imaginar es que las descargas de APK sin cifrar abren la posibilidad de intercepción y reemplazo con un paquete malicioso, pero estoy seguro de que Android tiene controles de firma para evitar eso.

Me alegro de que, desde mi descubrimiento inicial, otros se estén tomando esto en serio ahora. ¡Gracias! Sentí que estaba solo en el desierto cuando publiqué la pregunta/respuesta inicial. En realidad, no he vuelto a realizar ninguna prueba desde la publicación original y he seguido prácticas más seguras, pero me alegro de que otros estén haciendo un seguimiento de esto.
Algunas veces recibo miradas raras de la gente porque hablo sobre la seguridad como si fuera normal. Y tres días después de publicar esto, aproveché una oferta de Cyber ​​Monday para comprar un nuevo Motorola Triumph. Los problemas de servicio al cliente retrasaron su llegada hasta el miércoles pasado, pero rápidamente descubrí que tiene problemas importantes con las redes protegidas por EAP. Mi universidad usa EAP. Así que me alegro de haber investigado esto. Es posible que vengan más, ya que aún no he probado Currents. ;)
Solo quiero alentarlo: suene como una buena persona para preocuparse lo suficiente por la seguridad.