Bloquer l’accès à la mémoire du téléphone lors du branchement USB

Par défaut, lorsque vous branchez un câble USB à votre téléphone Android, vous donnez un accès en lecture/écriture à la totalité de votre téléphone. C’est pour moi une grosse faille de sécurité si l’on se branche sur l’ordinateur de quelqu’un à qui on n’a pas forcément envie de donner toutes ses données ou à un chargeur public qu’on ne connaît pas.

refCharlesdeGaulle

Pour désactiver l’accès automatique à la mémoire de votre téléphone lorsque l’on branche un cable USB, allez dans les options du téléphone, puis sur « Stockage », puis dans les options (l’icône en haut à droite avec 3 points verticaux), sélectionnez « Connexion USB à l’ordinateur » et désactivez les entrées MTP et PTP.

Messagerie sécurisée, attention à votre carnet de contact !

Une des questions cruciales à se poser sur une messagerie « sécurisée » est comment sont gérées les méta-données?

Par exemple, il est intéressant pour la NSA et autres états qui surveillent en masse de savoir qui parle à qui et à quelle fréquence. Ça permet aisément de construire des réseau de relations à faible coût.

Regardons maintenant un petit peu comment fonctionnent Textsecure et Telegram .

Pour mettre en relation les utilisateurs, ceux-ci se basent sur le numéro de téléphone.
Chaque utilisateur est identifié par son numéro de téléphone, vérifié par l’envoi d’un SMS sur le terminal lorsque l’on crée son compte de messagerie.Ensuite, lorsque l’on envoie un message à un contact, ça se passe grosso modo comme ça :

  1. on envoie le numéro de téléphone de son correspondant.
  2. le serveur cherche dans sa base d’utilisateurs connectés si il trouve le numéro de téléphone.
  3. le message est transmis au terminal de notre correspondant par la connexion permanente (PUSH) établie entre le terminal de notre correspondant et le serveur.

On comprend bien que déjà la personne qui gère le serveur sait qui parle à qui et à quelle fréquence.

Ensuite, on peut avoir quelques fioritures encore plus pourries :

Par exemple, comment savoir avec quels contacts je peux utiliser mon « application de communication sécurisée » ? En demandant au serveur, pour chacun des numéros de mon carnet de contact, s’il correspond à utilisateur enregistré. Bingo, vous venez d’envoyer la totalité des numéros de votre carnet de contact.

Ce qui est encore plus rigolo, c’est que même si vous ne l’avez pas fait mais que vos contacts ont envoyé leur carnet de contacts, par recoupement, le serveur peut reconstruire le votre. La preuve flagrante, c’est quand vous créez un compte avec un carnet d’adresse vide, mais qu’automatiquement, le serveur trouve vos amis (Ex: facebook, linkedin, etc…)

Pour moi, le design de base de ces applications rendent impossible la protection des métadonnées des échanges sauf si l’on a confiance dans le serveur. Croyez-vous encore au « Don’t be evil »?

Une solution serait :

  1. Utiliser un identifiant ne permettant pas de remonter facilement à l’identité réelle de l’utilisateur (ex : un numéro aléatoire)
  2. Ne pas laisser le serveur connaître qui envoie le message (ex: le message ne contient que l’identifiant du destinataire en clair, le message envoyé par l’utilisateur émetteur passe par plusieurs relais avant d’arriver au serveur. On peut ainsi dire que le message est envoyé de manière anonyme. L »identité de l’émetteur est à l’intérieur du message chiffré que seul le destinataire peut déchiffrer)

GooglePlay Downloader 0.5

J’ai mis à jour mon application pour télécharger les APK gratuites du Play Store de Google sans avoir besoin d’installer les GoogleApps sur son téléphone ni d’avoir de compte Google personnel.

Le principal changement est la génération automatique d’AndroidID nécessaire si l’on veut utiliser d’autres identifiants Google que ceux fournis par défaut avec le logiciel

GooglePlay Donwloader 0.5

Téléchargement de GooglePlay Downloader
Page du projet sur Codingteam

OmniROM, explication des nouvelles fonctions Reverse lookup et Search Places

OmniROM, la rom Android créée par d’anciens développeurs de Cyanogen a mis en ligne le 5 février les tant attendues fonctionnalités de recherche anonymes dans l’application contact d’Android. J’ai étudié le code source pour vous.

Pour rappel, l’application Contacts d’Android 4.4 a 2 nouvelles fonctions :

Reverse lookup

Sur un Android 4.4 classique, quand un numéro vous appelle Android contacte Google, lui donne le numéro de l’appellant et demande à Google de trouver le nom de la personne correspondant. Ca permet de mettre un nom sur les numéros inconnus. C’est pratique mais c’est aussi un grand pas de plus vers la « surveillance de masse » vu que Google collecte et stocke tous vos appels recus, rien que ça !

OmniROM, elle, passe par des services décentralisés et sans authentification. Ainsi plutôt que de contacter Google, si vous êtes appelés par un numéro français, c’est le site web http://www.recherche-inverse.com/ pour retrouver le nom de votre appelant. On peut regretter que la communication se fasse en clair (pas d’HTTPS avec vérification de certificat) si bien que toute personne qui écoute le réseau de données  (Wifi, FAI, état, NSA) peut savoir quel numéro vous cherchez. Cependant, seul l’IP peut permettre de faire une correspondance avec vous.

SearchPlaces

Sur un Android 4.4 classique, quand vous cherchez quelque chose dans votre annuaire, votre position est envoyée à Google et celui-ci renvoie des résultats pris dans GoogleAdresses. En gros, vous tapez « Pizz » et en 2 sec vous voyez la liste des Pizzerias à proximités avec leur numéro de téléphones. C’est pratique mais bon, envoyer sa position à Google dès qu’on veut appeler c’est moyen mais que Google sache qui on cherche dans son carnet d’adresse c’est encore pire ! Et puis GoogleAdresses va devenir de facto un lieu d’enchères pour apparaître en première place dans la liste des suggestions.

OmniROM, elle, consulte OpenStreetMap à la place de GoogleAdresses pour trouver les numéros des choses à proximité. C’est l’Overpass API qui est utilisée. La requête passe par http://overpass-api.de/api/interpreter .On peut regretter que la communication se fasse en clair (pas d’HTTPS avec vérification de certificat) si bien que toute personne qui écoute le réseau de données  (Wifi, FAI, état, NSA) peut savoir quel numéro vous cherchez. Cependant, seul l’IP peut permettre de faire une correspondance avec vous. La recherche se fait autour de votre position (fonction « getNamedPlacesAround ») avec +/- 0.2° de longitude et latitude (zone de 30km x 44km environ).

Pour être présent dans les résultats, il faut avoir un « node » dans OpenStreetMap avec un champ « name » et un champ « phone ». J’ai cependant du mal à voir comment ce système pourrait grandir vu la pression commerciale qu’il pourrait y avoir à être présent dans les premiers résultats. Mais pour l’instant c’est cool de noter ses contacts sur OpenStreetMap :D

La NSA collecte vos SMS

Si vous êtes passés à coté de l’info, Snowden affirme par des documents remis au Guardian que la NSA collecte les SMS en masse. Et pas qu’un peu : 200 millions par jour en 2011 !Ceci afin de construire votre réseau de relations, votre position, mais aussi récupérer vos infos bancaires et autres secrets qui vous seraient transmis par SMS.

“This makes it particularly useful for the development of new targets, since it is possible to examine the content of messages sent months or even years before the target was known to be of interest.”

Donc quand l’état voudra faire pression sur vous dans quelques années, ce ne sera pas un problème pour elle de trouver des choses compromettantes dans votre vie privée.
Pour rappel, en Ukraine des SMS d’intimidation ont été envoyés aux manifestants pro européens !

Allez, le chiffrement pour tous, c’est maintenant !

(Autre article de référence en français)

Etat des lieux de la messagerie chiffrée

Tout d’abord, je vais ré-préciser quelque chose de fondamental. Une communication aussi sécurisée et chiffrée qu’elle soit est in fine déchiffrée sur l’OS de l’utilisateur pour être affichée à l’écran et stockée dans un historique de conversation. Donc quelque soit le système de protection de communication que vous utilisez, si votre OS est troué ou à la solde de votre espion, vos protections risquent d’être inutiles.

Donc chiffrer ses messages sur un téléphone Android où l’on a installé les GoogleApps et où Google peut lire l’intégralité de la mémoire de votre smartphone sans vous avertir, ça ne sert à rien pour se prémunir de la NSA. Même chose pour les appareils Apple.
Sous Windows, si vous croyez que votre OS n’a pas de porte dérobée, c’est bien. J’aurai des doutes à votre place. Quand aux failles de sécurité, il suffit de regarder l’histoire pour voir que les failles réseau du système sont courantes.

Bref, les prérequis me semblent un smartphone sous Android (sans logiciels propriétaires en root  == sans GoogleApps) et une distribution Gnu (Debian, etc…) sans logiciels propriétaires.

Le postulat est donc que seul votre terminal est sûr, le reste du réseau (serveurs tiers, FAI, internet et même réseau local) pouvant être mis sur écoute. Détrompez vous, il n’y a pas forcément besoin d’une faille technique pour mettre le réseau sur écoute, la contrainte légale sur les sociétés par les états de livrer les informations personnelles de leurs utilisateurs fonctionne généralement assez bien.

E-mails

Les e-mails sont par défaut envoyés en clair. Ils passent par votre réseau local, internet et les serveurs de courrier de chaque correspondant. Autant dire que l’on part de loin.

On peut communiquer en SSL avec son serveur mais si ca protège une partie de la communication, le serveur peut encore lire vos messages et vous n’avez aucune garantie sur la suite du chemin (votre correspondant n’a pas l’obligation d’utiliser une communication chiffrée avec son serveur et tous vos messages passeront alors en clair sur le réseau). Mais SSL protège le mot de passe de votre compte, c’est déjà ça !

La solution souvent conseillée est d’utiliser GnuPG pour chiffrer le contenu des messages. Le problème de cette solution c’est que le champ « sujet » des mails reste toujours en clair. On pourrait mettre des sujets bidons mais je n’imagine pas la galère pour classer ses emails !Donc pour un usage courant, c’est horrible à utiliser. Pour échanger un document confidentiel de temps en temps, ça devrait bien fonctionner.

Messagerie instantanée

XMPP semble être devenu le standard de la messagerie instantanée. Il utilise un modèle client/serveur décentralisé comme les e-mails. C’est vrai que c’est le meilleur modèle que l’on ait actuellement pour fonctionner avec les samrtphones (restrictions de volume de données, consommation énergétique à préserver, pas d’adresse IP publique).

Même constant qu’avec les serveurs e-mails, On peut communiquer en SSL avec son serveur mais si ca protège une partie de la communication, le serveur peut encore lire vos messages et vous n’avez aucune garantie sur la suite du chemin (votre correspondant n’a pas l’obligation d’utiliser une communication chiffrée avec son serveur et tous vos messages passeront alors en clair sur le réseau). Mais SSL protège le mot de passe de votre compte, c’est déjà ça !

GnuPG serait ici plus pratique car il n’y a pas le problème du « sujet » en clair. Mais je n’ai pas trouvé de client XMPP pour Android qui le gère.

OTR est un nouvel modèle de chiffrement pour les échanges de messages synchrones. L’idée est d’utiliser des clés de chiffrement temporaires à conversation. Avantage par rapport à GnuPG : Si un espion a enregistré au préalable vos conversations chiffrées et qu’il tombe un jour sur votre clé privée, il ne pourra pas déchiffrer vos conversations du passé (vu que des clés temporaires qui ont été utilisées pour les chiffrer ont été jetées). C’est une belle idée mais dans la réalité :

  • votre historique est conservé en clair sur le même terminal qui contient votre clé privée. Donc un espion trouverait les deux ensemble.
  • si l’espion récupère votre clé privée et celle de votre correspondant, il peut alors déchiffrer vos conversations du passé.
  • mais surtout  : il est impossible d’envoyer des messages à un correspondant hors ligne (car il faut négocier une clé partagée temporaire avant toute nouvelle conversation). Ce qui rend ce modèle inutilisable en pratique à mon avis si on n’est pas connecté 24/24 à sa messagerie instantanée.

Conclusion

Rien de marche pour l’utilisateur lambda qui n’a rien à cacher. Les emails chiffrés sont impossibles à classer. Les messages instantanés hors ligne sont illisibles.

Installer OmniROM sur Galaxy S3

OmniROM est une distribution Android née en octobre 2013 par des développeurs de Cyanogen qui ont refusé le virage pris par la création de la société Cyanogen. On y  retrouve par exemple Xplodwild, le mainteneur des Galaxy S2 et S3 de Cyanogen.

Je voulais quitter Cyanogen avec de passer à sa version 11 car Cyanogen inclut de plus en plus de code propriétaire Google (GoogleAnalytics et GooglePush) et Cyanogen garde aussi certaines parties de son code fermé. OmniROM se veut sous GPLv3 autant que se peut et ne contient aucun code fermé de Google (celui d’Android étant « libre » = « sources lisibles et recompilées »).

A l’heure d’aujourd’hui, les versions beta d’OmniROM sont basées sur Android 4.4 KitKat tout comme Cyanogen 11. L’une comme l’autre sont loin d’êtres abouties et c’est encore bien brut. Néanmoins, le wifi, camera, 3g, téléphone, usb, etc… fonctionnent parfaitement.

Je vous détaille la procédure que j’ai suivie pour installer OmniROM sur mon Galaxy S3.

1. Téléchargez la dernière version d’OmniRom et copiez le fichier Zip quelque part dans la mémoire de votre smartphone.

2. Installez un recovery compatible. J’ai récupéré la dernière version de TWRP par exemple.

J’ai donc téléchargé le fichier .img et installé ça avec heimdall, un programme de flashage comme ODIN mais disponible sous linux dans les paquets de votre distribution. Il faut mettre le téléphone en mode « download »(éteignez le tel puis démarrez le en restant appuyé sur volume bas, home, et power)

$ heimdall flash –RECOVERY openrecovery-twrp-2.6.3.1-i9300.img

Si vous rencontrez l’erreur « ERROR: Protocol initialisation failed! », redémarrez le téléphone et réessayez.

3. Démarrer en mode recovery (éteignez le tel puis démarrez le en restant appuyé sur volume haut, home, et power), choisissez le menu Wipe et faites un factory reset (ca ne détruit pas les fichiers qui sont stockés dans la mémoire)

4. Toujours en mode recovery, dans le menu Install installer le Zip de la rom, redémarrez

5. Vous voila sous OmniROM !

6. Je vous conseille de vous passez des GoogleApps pour ne pas participer à l’élaboration de la surveillance humaine de masse.

  • Activez les « sources inconnues » dans le panneau security dans les settings d’Android. Téléchargez FDroid à partir du navigateur web d’Android, de là vous pourrez installer son APK.Voila vous pourrez l’utilisez pour installer des applications libres!
  • Si vous avez besoin de certaines applications disponibles uniquement sur le PlayStore de Google, je vous invite à utiliser mon GooglePlayDownloader pour télécharger les APK du PlayStore.

7. J’ai remarqué que le navigateur de fichier intégré à OmniROM était buggé et ne permettait pas d’installer des APK manuellement. Installez OI File manager si vous rencontrez toujours ce bug.

8. Pour donnez aux logiciels qui le nécessité l’accès au compte root, vous devez installer également SuperSU. Installez le Zip par dessus la rom (sans wipe)

Android KitKat : en route vers BigBrother

Il suffit de lire la liste des nouveautés d’Android KitKat pour être effrayé par la direction que prend Google :

A smarter caller ID : Whenever you get a call from a phone number not in your contacts, your phone will look for matches from businesses with a local listing on Google Maps.

Cela veut dire que le numéro de téléphone de nos appels sera transmis à Google (qui va le stocker dans sa base de données sur votre vie) afin de vous afficher l’identité de l’appelant.

All your messages in the same place: Never miss a message, no matter how your friend sends it. With the new Hangouts app, all of your SMS and MMS messages are together in the same app, alongside your other conversations and video calls. And with the new Hangouts, you can even share your location and send animated GIFs.

Hangout, l’application de messagerie propriétaire de Google, remplace purement et simplement les SMS. Et l’historique des messages SMS, il est aussi envoyé dans le cloud Google?

Just say “Ok Google” : You don’t need to touch the screen to get things done. When on your home screen* or in Google Now, just say “Ok Google” to launch voice search, send a text, get directions or even play a song.

Donc maintenant, une application propriétaire Google écoutera en permanence ce que vous faites ou dites sans qu’on puisse contrôler ce que fait le logiciel de tout ce qu’il enregistre. C’est d’autant plus flippant que même si on pourra désactiver la fonctionnalité, je ne suis pas sûrs que tous les possesseurs d’Android autour de moi feront de même.

Bref, j’attends FirefoxOS avec impatience et j’espère qu’il mettra Android au tapis pour le bien de l’humanité.

Est ce que Cyanogen contribue aux tracking de ses utilisateurs?

Je n’ai pas lu le code source de Cyanogen, mais j’ai toujours pensé que de part son code ouvert, c’était l’une des moins propice au tracking.

Or, d’après ce post sur XDA, il semblerait que CM 10 intègre du code propriétaire Google libGoogleAnalyticsV2.jar et google-play-services.jar. Et apparemment, ce code serait lancé par défaut, ce qui pose problème car on ne peut pas savoir ce qu’il fait !

Du coup, un projet nommé FreeCyngn est né. Mais j’aurais aimé que Cyanogen soit plus intransigeante sur l’exécution de code propriétaire par défaut.

 

 

 

.

 

The Guardian Project : sécurisez vos communications mobiles

The Guardian Project est une bonne adresse pour déjouer la NSA.

Voici 2 vidéos qui vous expliquent comment envoyer des messages sécurisés et appeler sans être espionné depuis votre smartphone Android (sous Cyanogen évidemment)

Concrètement, pour envoyer des textos privés ils conseillent d’utiliser la technologie Off The Record.

On peut l’utiliser avec tous les comptes XMPP (Facebook, Google, Jabber…) et quelques logiciels comme ChatSecure et Gibberbot.

Pour les appels sécurisés, ils conseillent la technologie ZRTP

On peut l’utiliser par dessus SIP avec des logiciels comme CSipSimple ou Linphone. Cependant, la fonctionnalité ZRTP est parfois absente de ces logiciels selon les versions.