Garmin Vivofit, 2 millions de pas plus tard

Début de l’été, j’ai craqué pour un Vivofit, le traqueur d’activité de Garmin. Le 1er janvier dernier, je passais le cap des 2 millions de pas enregistrés. Que penser de cet appareil après 7 mois d’utilisation ? Un avis mitigé.

Pour faire un rapide point, la principale fonctionnalité du Vivofit est de servir de podomètre, de comptabiliser le nombre de pas réalisés en 24h. Il se synchronise également avec une ceinture cardio lors d’activité sportives pour connaitre son rythme cardiaque et analyse votre sommeil. Le tout se synchronisant avec son smartphone ou pc.

Tout d’abord, la question qu’on me pose le plus souvent: est-ce que ça permet vraiment de (se) bouger plus ? Je suppose que ça dépend du caractère de chacun mais personnellement oui, ça fonctionne ! 2.089.235 pas en 204 jour, soit 10.241 (10K de pas, c’est beau) par jour, juste au dessus du Saint-Graal de 10.000 pas par jour, victoire personnelle ! Évidement, il faut avoir un petit coté, geek amateur de chiffres et compétitif mais personnellement ça marche assez bien. Il m’arrive de temps à autres à faire une marche le soir pour obtenir mon objectif journalier ou de courir le matin pour compenser le manque d’hier.

Grâce à un 31 assez mouvementé, on commence bien l'année
On commence bien l’année

En parlant d’objectif: la particularité du Vivofit par rapport à d’autres traqueurs est d’avoir des objectifs flottants. Si vous marchez beaucoup un jour, votre objectif augmentera, si vous n’atteignez pas l’objectif un autre, il sera moins élevé le lendemain. L’adaptation est assez lente: une journée très active ou très inactive n’influencera que peu l’objectif si les autres jours sont stables. Cette logique semble une bonne idée (chacun son objectif réaliste) mais elle ne s’adapte pas un rythme de travail où l’on est clairement moins actif la semaine que le week-end. Et je ne vous parle même pas de l’hiver lorsqu’il fait noir en partant et en rentrant du boulot…

Il faisait bon samedi dernier
Devinez le jour où il ne pleuvait pas

J’enfonce sans doute les portes ouvertes mais ce podomètre ne compte que les pas. Étant amateur de vélo, ça me désole un peu d’avoir toute une partie de mon activité non comptabilisée (le paradoxe, l’activité non comptabilisée est moins motivante). Je me rattrape en mettant la montre en poche (possible à la cheville mais un peu désagréable) ou dans le Camelback (en VTT les bosses sont suffisantes pour comptabiliser quelques pas). Mon prochain achat sera sans doute un appareil plus polyvalent (mais ils restent encore cher aujourd’hui).

Vite allons sortir les poubelles
Arrête de me juger !

Une autre fonctionnalité particulière du Vivofit est ce que l’on peut appeler « la barre rouge de la honte ». Lorsque vous arrêtez de bouger pendant une heure, un premier segment rouge apparait, suivit d’un tous les 1/4h d’inactivité supplémentaires (jusque 2h), indiquant d’un coup d’œil à toute personne aux alentours à quel point vous êtes un vieux mollusque. Pour retirer cette barre, il suffit de marcher quelques centaines de pas (proportionnellement à la durée de votre inactivité). Cette distance n’est pas très grande mais suffisamment pour que je n’arrive pas à l’enlever lors une journée de travail (à moins de faire un aller-retour jusqu’au parking ou de passer pour un fou qui fait des tours de la cuisine). L’incitant à marcher est vite oublié et l’on assume assez rapidement son statut de feignant. Vous soufflez après une course à pied ? Aucune importance, lève ton cul de ce fauteuil et retourne marcher ! Dur.

Pour en finir avec le positif, le bracelet n’est pas désagréable à porter. La promesse d’un an de batterie n’a pas encore été démenti pour moi (contrairement à celle de la ceinture cardio qui faiblit) et finalement avec son aspect banal, il reste assez discret (il peut passer pour une montre moche).

T'a pas l'impression de te foutre de ma gueule là ?
T’a pas l’impression de te foutre de ma gueule là ?

Bon maintenant parlons de ce qui fâche vraiment. Tout d’abord, pour connecter le bracelet à internet, il faut soit passer par l’application PC (non compatible Linux et demande ce foutu connecteur ANT), soit passer par l’application smartphone et le bluetooth. N’ayant pas de Windows, j’utilise l’application Android. Soyons clair: cette application est une vraie bouse. La connexion échoue plus de fois qu’elle ne réussi (parfois je passe 2 jours sans être capable d’établir une connexion). Et puis cette application demande toutes les permissions possibles sur le téléphone: accès SMS, localisation, contacts, agenda, photos, vibreur. Et si ce n’était pas suffisant, la dernière mise à jour ajoute le téléphone « pour des raisons de stabilité ». Garmin, tes pratiques de merde sont détestables. Les seules permissions requises devraient être le bluetooth et accès à internet. Tu devrais passer plus de temps à améliorer tes applications plutôt que de trouver de nouveaux moyen de suivre les moindres faits et gestes de tes clients (tu sais, les gens qui te donnent de l’argent).

Non, je ne battais pas un record de marche lente, 40m de course se sont transformés en 18h
Non, je ne battais pas un record de marche lente, 40m de course se sont transformés en 18h. Parce que merde, voila.

Bon une fois qu’on a vomi sur ses principes (spéciale dédicace à Privacy Guard) pour synchroniser le dernier jogging ou le nombre de pas de la journée, on se rend sur Garmin Connect. Ce site est une nouvelle preuve que les gens de chez Garmin ne savent pas développer de logiciel. Il est in-intuitif au possible, lent (bonne chance pour naviguer dans son historique) et buggé de partout. Constamment, des pages sont inaccessibles et des erreurs lors d’opérations simples (erreur 403 lors d’un export, etc.). Une expérience utilisateur vraiment détestable. Des fonctionnalités telle que la synchronisation à des services externes ou une API sont évidement aux abonnés absents.

connect-error

Pour conclure, l’essentiel est quand même que cet appareil me fasse bouger plus. J’ai beau critiquer le logiciel, le matériel remplit son but premier de me faire lever de ma chaise. A la question, « est-ce qu’à refaire, j’achèterais encore un Vivofit? », la réponse est probablement non. D’ailleurs, pour noël, j’ai offert un Withings Pulse

PS: après quelques début, la synchronisation sous Linux n’est pas encore possible. Si j’avais j’arrive à des résultats sympa, je partagerai évidement.

Sony et Sintel, tout est mal qui fini bien

Samedi passé, la vidéo youtube du court métrage Sintel a été bloqué. La raison de ce blocage est une détection de contenu appartenant à Sony dans la vidéo.

Pour ceux qui l’ignorent, Sintel est un film de la Blender Foundation, une association à but non-lucratif développant le logiciel de 3D Blender. Ce film est réalisé principalement à partir de logiciels libres et publié sous licence Creative Commons ainsi que toutes les ressources étant été créées. Ce film est donc loin, très loin d’être la propriété de Sony !

sintel-youtube

Sans surprise, cette censure déclencha un clash sur le web. Comme le dit TorrentFreak, Sony a réussi l’exploit de se mettre à dos les fan de logiciels libres, adeptes de Creative Commons, mouvement anti abus de copyright et groupes de protections contre la censure en un seul coup. Ça mériterait un prix.

Après un weekend de lynchage virtuel et reprise de l’info sur les grands sites d’info, la vidéo est de retour ! Suite à ce coup de pub, Sintel vient même de passer les 4 millions de vues sur Youtube. Houra, faites péter le champomi, on a gagné ?

Non.

Sintel_poster

Si le retour de la vidéo va un peu calmer les foules, le problème de fond reste inchangé. Une compagnie a la possibilité, sans aucune difficulté, justification ou contrôle a priori de censurer du contenu sur lequel elle n’a aucun droit. Un système qui devient la norme sur tous les sites de partage de contenu. Erreur ou choix de nuire à un concurrent ? Quelle que soit la cause, il est anormal que cela puisse se passer sans répercussion (même pas un « désolé »). On imagine facilement les très nombreux autres « faux-postifs » n’ayant pas la chance de bénéficier d’un tel coup médiatique.

De tels évènements montrent à quel point le système actuel ne fonctionne pas et doit changer. Peut-on espérer un changement du coté politique ? Supporter des projets comme MediaGobelin ou Gooseberry est plus que jamais important.

Télécharger Sintel (de façon propre et légale)

PS: ce titre ne veut rien dire, et alors ?

Naufrage et migration

Si vous lisez cet article depuis mart-e.be, c’est que vos DNS sont à jour et que le sauvetage/migration de mon blog a réussi.

Début de semaine, j’ai eu la mauvaise surprise de constater que mon blog ne fonctionnait plus. Un coup d’œil sur le Twitter de Legtux, mon hébergeur, m’apprend qu’il y a eu un crash de disque toutes les DB sont perdues. Joie et allégresse.

On passera le manque de communication de la part de Legtux (je sais pas, un email aurait été sympa). On passera l’absence de backup de la part de Legtux (soit, ça reste un hébergeur tenu par des volontaires). On passera mon erreur de ne faire des backup que de mon serveur chez ovh et pas celui qui héberge mon blog (ça t’apprendra du con). Tout cela fait que je me retrouve avec une sauvegarde vielle de 14 mois !

Moi jouant avec mon nouveau serveur
Moi jouant avec mon nouveau serveur

Avec mon sens de la procrastination légendaire, je décide donc de remettre ça au weekend. Legtux m’a rendu de grands services mais suite à l’incident, je préfère gérer tout moi même. Je m’achète donc un nouveau Kimsufi devant remplacer l’actuel (m’en fous de ton problème de turn over, t’avais qu’a baisser les prix pour les anciens clients), installe tous mes programmes aux petits oignons et repart d’un WordPress tout frais. La partie la plus chiante fut de recréer les articles manquant dans mon backup à l’aide du merveilleux archive.net et de l’historique de mon flux RSS. J’ai perdu quelques commentaires au passage, vous m’en excuserez. Le thème a un peu morflé aussi mais il faut que je le change de toute façon !

Je passerai les prochains weekend à migrer le reste de mes services et peaufiner mon serveur. Si vous repérez d’autres soucis, n’hésitez pas à me le signaler. Avec un peu de chance, je posterai même un article de temps en temps 😉

PS: le premier qui me lâche une morale sur le fait de faire des backup, je lui colle une gifle virtuelle.

Supprimer des utilisateurs indésirables sur GNU Social

Je me suis créé une instance GNU Social (nouveau nom de StatusNet) il y a quelques mois. A l’époque, j’avais oublié de verrouiller l’inscription. Évidement, les spammeurs trouvèrent vite mon instance et je me retrouve avec plus de 160 comptes indésirables.

Delete user

La façon simple de supprimer un compte est de se rendre dans la liste des utilisateurs (/directory/users), ouvrir un à un le profil de l’utilisateur et de le supprimer.

Si vous voulez un peu automatiser la chose, c’est possible avec ces deux commandes:

$ echo "select nickname from user where nickname != 'mart'" | mysql -u monuser -p madb > /tmp/toban.txt
$ for user in (cat toban.txt)
    php scripts/deleteuser.php -n$user -y
end

Ceci vous listera et supprimera tous les utilisateurs ne s’appelant pas ‘mart’. Dans le cas où vous possédez des comptes réels, il faudra sans doute faire une requête plus complexe pour par exemple n’obtenir que les personnes ayant poster 0 ou 1 message, etc.
Le -y étant pour ne pas demander de confirmation avant la suppression. Au passage si vous avez un utilisateur légitime s’appelant ‘nickname’, il serait également intéressant de supprimer la première ligne du fichier ;-)

Spammeurs découvrant une formulaire d'inscription sans demande d'email

Spammeurs découvrant une formulaire d’inscription sans demande d’email

Notez que la boucle for est la syntaxe Fish. L’équivalent bash devrait ressembler à:

for user in (toban.txt)
do
php scripts/deleteuser.php -n${user} -y
done

Ce que stockent vos applications Android

Aujourd’hui étant The Day We Fight Back, je trouvais assez adapté de parler d’un des appareil d’espionnage massif le plus répandu: le smartphone. En plus ça me donne une occasion de sortir de mon coma de 10 mois sans article.

Les applications sur Android peuvent stocker des informations soit sur la carte SD, soit en interne dans la mémoire du téléphone. Si les développeurs sont assez intelligents pour ne pas stocker des informations sensibles dans un fichier password.txt sur la carte SD (enfin j’espère), ils font beaucoup moins attention quand il s’agit de stocker cela dans dans la mémoire interne, zone mystérieuse où personne ne va jamais mettre les pieds. Et pourtant c’est bien dommage on y trouve des choses amusantes et bigrement intéressantes.

Ça ne fait aucun doute Carl, cet homme est un grand amateur de Patrick Sébastien à en voir son historique Shazaam

Ça ne fait aucun doute Carl, à en voir son historique Shazaam cet homme est un grand amateur de Patrick Sébastien

La méthode

De part le fait que mon téléphone soit rooté, j’ai justement la possibilité d’explorer l’arborescence de fichiers système (chacun sa passion, j’aime pas les timbres). Par exemple, les paramètres de wifi (y compris les clefs) sont stockées dans /data/misc/wifi/wpa_supplicant.conf, les fichiers .apk des applications sont eux dans /data/app/. Cependant le répertoire qui nous intéresse pour cet article est /data/data/.

$ adb root
restarting adbd as root
$ adb pull /data/data/ ~/android-data
pull: building file list…

$ ls ~/android-data/ | wc -l
93

Voila qui devrait nous occuper pour un moment…

Pour fonctionner chaque application a besoin d’aller rechercher les informations que vous lui avez un jour donné: la question est sous quelle forme sont elles stockées et à quel point se sont ils donnés du mal pour les cacher ? Est-ce qu’une app stocke votre mot de passe en clair ou utilisent ils un protocole type OAuth ? Les applications Android stockent leurs données sous la forme de fichier textes ou le plus souvent de base de données sqlite3. Il suffit donc d’avoir un éditeur texte et de base de données sqlite (sqlitebrowser sous linux par exemple).

N’hésitez donc pas à reproduire avec votre téléphone c’est pas si difficile et instructif.

Exemples

Voici quelques applications installées sur mon téléphone.

sshtunnel

Si vous préférez administrer votre serveur pendant les repas de famille plutôt que d’écouter les blague de tonton Roger

Pour chaque tunnel, est stocké dans le fichier org.sshtunnel/databases/sshtunnel.db, le login, mot de passe, emplacement de la clef ssh (stocké dans un fichier, pas en db), fingerprint et autre. Cette info est également répétée dans le fichier org.sshtunnel/shared_prefs/org.sshtunnel_preferences.xml.

Zombies, Run!

Très chouette jeu/app sportive qui vise le mince publique geek et sportif (mais pas trop)

Dans le fichier texte com.sixtostart.zombiesrun/files/IDENTITY se trouve un vague UUID. Il serait intéressant de creuser sa signification. Stats ?

Dans la base de donnée com.sixtostart.zombiesrun/databases/zombiesRun2Data.db, la table player contient l’email vers le compte de synchronisation et, un token ! Je le souligne parce que c’est une des rares applications ne stockant pas votre mot de passe en clair. Les autres tables contiennent votre historique de jeu (score, records, positions GPS, musiques écoutent pendant la séance,…).

Railtime

Merveilleuse application m’indiquant que j’aurais mieux fait de prendre la voiture plutôt que d’attendre le train.

Dans com.infrabel.railtime/shared_prefs/pushPreferences.xml on trouve un token surement utile pour ceux qui désireraient faire un peu de reverse engineering sur cette app.

En regardant les bases de données, on voit que Railtime utilise visiblement Google Analytics et dans com.infrabel.railtime/databases/stationsv2.db l’on retrouve les noms en 4 langues et coordonnées géographiques des 835 gares de Belgique (pratique pour compléter OpenStreetMap ;-))

Mustard

Du microblogging…

La base de donnée org.mustard.android/databases/data contient les clefs OAuth vers les différents comptes Twitter et autres. Cela veut dire que potentiellement, l’on pourrait envoyer du spam en utilisant les clefs de Mustard et la faire révoquer par Twitter.

C’est une problématique connue des clients open source utilisant OAuth. Il est difficile de cacher cette information puisque quelqu’un attaquant suffisamment persévérant finira toujours par la retrouver dans le code, soyez sympa, pas de bêtises avec.

Into the Dead

Oui j’aime les jeux de Zombie, je sais…

Dans un simple fichier XML com.sidheinteractive.sif.DR/shared_prefs/com.sidheinteractive.sif.DR.xml on trouve tous les scores du jeu. Si jamais vous êtes bloqué dans une mission, c’est de la provocation tellement il est facile de changer son score. J’avoue avoir triché et je recommencerai surement…

Firefox

Faut-il encore le présenter ?

Dans le dossier org.mozilla.firefox/files/mozilla se trouve votre profil Firefox (historique, mot de passes & Co.). Je vois pas trop ce que je pourrais ajouter à cela tellement c’était prévisible. Je ne vois même pas pourquoi j’ai créé une entrée pour cette application et ne vous ferez pas l’affront de parler des autres navigateurs.

WhatsApp

SMS over IP

Le fichier com.whatsapp/databases/msgstore.db contient tout votre historique. Vous pouvez utiliser WhatsApp Xtract pour plus de facilité. On appréciera que les images sont stockées comme des URL sans aucune authentification (comme Facebook en fait).

Shazaam

Alias le tueur de blind tests

Vous pouvez facilement retrouver l’historique de vos écoutes dans com.shazam.android/databases/library.db. Vous retrouvez ainsi artiste, titre et image facilement.
Moins drôle: on retrouve également l’historique des positions géographiques où vous avez écouté chaque titre. Conclusion: ne taggez pas de musique chez votre maitresse.

Équipe technique discutant de la protection des données dans leur application

Équipe technique discutant de la protection des données dans leur application

Ces applications ne sont que quelques exemples personnels d’analyses forensic faites avec une Chimay dans la main (donc de très grandes qualités). Si quelques applications s’en sortent plutôt bien (les « grosses » ne stockent pas les mots de passe en clair par exemple), nombres d’applications stockent encore beaucoup trop d’information sensibles. Si cela n’empêchera pas Google et consorts de connaitre vos moindre faits et gestes (ils s’en balancent du mode de stockage s’ils peuvent récupérer l’info au niveau de l’OS), gardez en tête ce que l’on peut trouver comme information avec un téléphone perdu ou un accès au debugging USB pendant 2min.

Si vous avez découvert d’autres applications stockant des informations amusantes (ou pas), n’hésitez pas à partager.