Quelles données synchronisées Android sont cryptées?

24

Avec la sortie du plug-in firesheep pour Firefox, il est devenu trivial que la navigation sur un site Web sur des réseaux Wi-Fi ouverts soit détournée par des auditeurs tiers.

Android propose l'option de synchronisation automatique pratique. Cependant, je crains que mes données ne soient synchronisées automatiquement lorsque je suis connecté à un réseau Wi-Fi ouvert au café ou au centre commercial local.

Toutes les données d'Android se synchronisent-elles automatiquement à l'aide de SSL ou d'un mécanisme de cryptage similaire? Les données auto-synchronisées sont-elles non cryptées et transmises en clair pour que tous puissent les écouter?

Mise à jour : COMPLETEMENT INSECURE !!!! Voir ci-dessous!!!!

PP.
la source
Le magazine allemand Heise a un excellent article sur cette question. C'est juste en allemand, mais vous pouvez utiliser un service de traduction. lien: heise
NES
Il semble, enfin, que Google s'occupe des données de ses utilisateurs: uni-ulm.de/in/mi/mitarbeiter/koenings/catching-authtokens.html
Eduardo

Réponses:

13

Remarque: répondre à ma propre question comme personne ne le savait.

J'ai fait une capture de paquets après avoir sélectionné Menu -> Comptes et synchronisation -> Synchronisation automatique (également accessible via le widget "Power Control"). Qu'ai-je découvert?

À mon horreur (requêtes http du téléphone affichées ci-dessous):

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

et

GET /proxy/contacts/groups/[email protected]/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

Mes contacts et mon calendrier sont transmis non cryptés ! Je ne synchronise pas actuellement gmail, je ne pourrais donc pas dire non plus s'il est non chiffré.

Aussi l'application boursière (qui doit être un service car je n'ai pas le widget affiché ou l'application active):

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>

Demande de cotation boursière entièrement non chiffrée: pensez, vous pouvez vous asseoir dans Starbucks dans le centre financier de votre ville et flairer les citations qui étaient importantes pour tous les utilisateurs de téléphones intelligents autour de vous.

Autres éléments non cryptés:

  • http demande à htc.accuweather.com
  • demande de temps pour time-nw.nist.gov:13(n'utilise même pas NTP)

Les seules données cryptées sur mon téléphone sont les comptes de messagerie que j'ai configurés avec l'application K-9 (car tous mes comptes de messagerie utilisent SSL - et heureusement, les comptes gmail sont, par défaut, SSL; et yahoo! Mail prend en charge l'imap à l'aide de SSL aussi). Mais il semble qu'aucune des données auto-synchronisées du téléphone prêt à l'emploi ne soit cryptée.

C'est sur un HTC Desire Z avec Froyo 2.2 installé. Leçon: n'utilisez pas le téléphone sur un réseau sans fil ouvert sans tunneling crypté VPN !!!

Remarque, capture de paquets prise en utilisant tshark sur l'interface ppp0 sur un nœud virtuel exécutant Debian connecté à un téléphone Android via OpenSwan (IPSEC) xl2tpd (L2TP).

PP.
la source
1
C'est inquiétant. Je ne vois pas de cookies passer et revenir ici, sont-ils également envoyés en clair?
GAThrawn
La auth=chaîne contenait ce qui semblait être un cookie, je l'ai supprimé avant de poster ici pour des raisons de sécurité, cependant.
PP.
2
Est-ce toujours un problème actuel sur Android 2.3.1?
meinzlein
Je pense que vous pouvez configurer Android 4 pour toujours utiliser une connexion VPN.
intuition
4

Résultats capturés sur un LG Optimus V (VM670), Android 2.2.1, stock, enraciné, acheté en mars 2011.

À ce jour, les seules demandes non chiffrées que j'ai pu trouver dans un pcap prises lors d'une resynchronisation complète étaient:

Albums Web 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

C'est ça.

Picasa était le seul service que je pouvais trouver en cours de synchronisation non crypté. Facebook a demandé quelques images de profil (mais n'a transmis aucune information de compte); Skype a demandé des annonces; et TooYoou a saisi une nouvelle image de bannière. Rien de tout cela ne concerne vraiment la synchronisation.

Il semble donc que la sécurité de synchronisation de Google ait été considérablement renforcée. Désactivez la synchronisation de Picasa Albums Web et toutes vos données Google doivent être synchronisées sous forme cryptée.

Marché

Cela m'a un peu dérangé:

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

Le retour de ceci est un 302 déplacé temporairement qui pointe vers une URL de téléchargement très complexe:

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

Le gestionnaire de téléchargement d'Android se retourne et demande cet emplacement de téléchargement, en passant MarketDAà nouveau le cookie.

Je ne sais pas s'il existe un danger pour la sécurité de la façon dont Market télécharge les fichiers APK. Le pire que je puisse imaginer est que les téléchargements d'APK non cryptés ouvrent la possibilité d'interception et de remplacement par un package malveillant, mais je suis sûr qu'Android a des contrôles de signature pour éviter cela.

dgw
la source
Je suis heureux que depuis ma découverte initiale que d'autres prennent cela au sérieux maintenant. Merci! Je sentais que j'étais seul dans le désert lorsque j'ai posté la question / réponse initiale. Je n'ai en fait fait aucun nouveau test depuis le message d'origine et je suis resté sur des pratiques plus sécurisées - mais je suis heureux que d'autres suivent cela.
PP.
1
Je reçois parfois des regards drôles de gens parce que je parle de sécurité comme si c'était normal. Et trois jours après avoir posté cela, j'ai pris un accord Cyber ​​Monday sur un nouveau Motorola Triumph. Des problèmes de service client ont retardé son arrivée jusqu'à mercredi dernier, mais j'ai rapidement découvert qu'il avait des problèmes majeurs avec les réseaux sécurisés par EAP. Mon collège utilise le PAE. Je suis donc content d'avoir étudié cela. D'autres peuvent arriver, car je n'ai pas encore testé les courants. ;)
dgw
Je veux seulement vous encourager - sonner comme une bonne personne pour se soucier suffisamment de la sécurité.
PP.