PROJET AUTOBLOG


tcit Blog

Archivé

Site original : tcit Blog

⇐ retour index

L’API Twitter, lorsque la sécurité devient absurde (MAJ)

samedi 17 mai 2014 à 05:26

Je ne sais plus qui se plaignait de la stupidité totale de l’API de Twitter (seb pour shaarli ? mitsu pour twitterbridge ?), mais je le comprends largement à présent. Je voulais juste connecter l’oiseau bleu sur mon instance GNU-Social toute neuve. Comme Steve Jobs ne l’aurait pas dit, il y a un greffon (gratuit ;) ) pour cela, nommé Twitter bridge.

L’activation dans GNU-Social n’est pas spécialement compliquée, et ensuite on a juste besoin d’entrer la consumer key et le consumer secret que Twitter va nous donner.

Allons maintenant sur apps.twitter.com et créons une nouvelle application. On ne pas pleurer sur les termes abherrants des conditions d’utilisation… Morceaux choisis :

You may provide spreadsheet or PDF files or other export functionality via non­-programmatic means, such as using a “save as” button, for up to 100,000 public Tweets and/or User Objects per user per day. Exporting Twitter Content to a datastore as a service or other cloud based service, however, is not permitted.

En gros, si j’ai bien tout compris, vous avez le droit de créer des tableaux et des fichiers PDF à partir des données, mais pas mettre les données reçues dans une base de données ou sur un service basé sur le « cloud » (sic.).

use or access the Twitter API to aggregate, cache (except as part of a Tweet), or store place and other geographic location information contained in Twitter Content.

Je crois avoir vu assez d’applications qui font exactement cela. Et puis faut assumer, tu demandes aux utilisateurs leur position en permanence, faut bien que ça serve.

Dans le cas où l’on veut créer une sorte de clone de Twitter, c’est à dire : some Services or applications attempt to replicate Twitter’s core user experience, typically by accessing the home timeline, account settings, or direct messages API endpoints or User Streams product.

Et bien sachez que :

not use Twitter Content or other data collected from end users to create or maintain a separate status update or social network database or service.

Donc ce que je cherche à faire ne rentre pas dans leurs termes de service. Cool, parce que je commence à en avoir marre.

Bref, on finit par accepter quoiqu’il en soit, puis on a enfin accès aux clés et aux paramètres de l’application. Et c’est là que ça devient intéressant.

Voyez-vous, pour que votre application ait les droits d’écriture, il faut désormais que votre téléphone soit, à des fins de sécurité « ajouté à Twitter ». Bon, avant y avait pas cette préoccupation, mais maintenant on veut ton portable, mec !

Twitter Error Message

Bon, OK, ils veulent faire comme Google, une authentification en 2 étapes à l’aide d’un code envoyé sur téléphone, entendu, allons voir ça.

On revient sur une page de paramètres de Twitter « classique », on entre son numéro de portable, et…

Twitter Connexion Opérateur Error

Attendez, mais je croyais que vous alliez m’envoyer un SMS, de quoi parlez-vous au juste ? Et pourquoi il y a des connexions avec des opérateurs au Rwanda et PAS en France ?! On est à ce point-là à la pointe de la technologie ?

Bon. On se calme et on tente de comprendre que sont les codes longs dont ils nous parlent… L’argot de Shakespeare ayant encore été mis au profit de la langue de Molière, voila ce que ça donne :

Twitter Long Code

Donc, pour que Twitter vérifie mon numéro de téléphone, il faut que j’envoie des SMS à des numéros à l’étranger, sérieusement ? Et apparemment, on ne parle pas d’un ou de deux SMS envoyés, mais plutôt d’une dizaine. Le message est très ironique lorsqu’il annonce :

Note: For these reasons, we do not recommend features such as login verification for long code users, as the experience may be less than optimal.

Bah fallait pas m’envoyer là alors, patate.

Et la meilleure partie, c’est que Twitter ne renvoie PAS de réponse à tes SMS lorsque tu les envoies. Tu dois attendre 2/3 minutes entre chaque commande envoyée pour être sur qu’il ait bien compris.

Ce truc était prise de tête à un point. J’espère tout de même qu’il y a moyen de passer outre tout cela juste en téléchargeant l’application officielle, chose que je ne ferai pas. Mais sinon, faut pas s’étonner que ce truc soit en perte de vitesse.

 

EDIT : Progi1984 explique qu’il faut remplir un formulaire.

 

Allez, vous pourrez me retrouver sur Diaspora*, GNU-Social ou Movim, mais l’âge d’or de Twitter est passé, en tout cas pour moi.

Le logiciel libre est une drogue

vendredi 16 mai 2014 à 05:27

Pour certaines personnes, le logiciel libre est une drogue. D’abord elles passent d’applications propriétaires à des applications libres sur un système d’exploitation propriétaire, puis elles essayent GNU/Linux sur une clé USB pendant un temps, puis installent une distribution GNU/Linux populaire, et comme elles apprennent qu’elles peuvent faire PLUS (et non moins), avec les logiciels libres, elles passent éventuellement à des distributions qui respectent encore plus leurs libertés.

Source : Bob Jonkman

A quel point peut-on sortir de Google avec un smartphone ?

mercredi 16 avril 2014 à 05:28

Avec mon passage à Android, je me suis rendu compte que ce n’était sans doute passer que de Charybde en Scylla que de céder mes informations personnelles à Google plutôt qu’à Microsoft. Pourtant, la nature Open-Source d’Android fait que des alternatives sont possibles.

En revanche, on rencontre tout de même deux obstacles :

[caption id="attachment_85" align="alignleft" width="300"]Replicant Replicant[/caption]

Heureusement, les petites mains des gens de Replicant (un Android vraiment libre) s’occupent du premier problème, tandis qu’il existe un projet pour remplacer notamment l’API Google Maps ainsi que fournir un Store d’applications open-source. Sinon, une ROM se veut complètement libre, à l’exception des blobs binaires des pilotes matériels (contrairement à Replicant), mais pour l’instant elle n’est pas super.

Ces problèmes mis de côté, on peut toutefois arriver à un truc pas trop mal. Bon, je pense qu’il est évident de vous dire que ces manipulations vont probablement créer de graves problèmes sur votre appareil, je vous suggère donc de faire cela sur un appareil dont les données ont été préalablement sauvegardées (ah là c’est certain que vous n’aurez pas moyen de les récupérer, on efface tout). Je vous conseille également de ne pas vous dire que cela ne prendra que 10 minutes et que vous pourrez rejouer à Candy Crush juste après.

C’est parti !

Partie 1 : Le système

Alors ici, soit on part sur un Replicant toujours en version 4.2 d’Android, soit on prend une ROM parmi la jungle de celle qui existent. On évite celle qui fournissent les GApps par défaut, tout comme celles qui donnent des trucs pires à la place ou avec. Ma recommandation serait donc une Cyanogenmod, ou mieux, une OmniROM si elle est disponible pour votre appareil. La raison de ma préférence pour cette dernière : leurs applications fournies sont sous licences GPL, alors que Cyano semble être moins clair là-dessus. De plus, la constitution de l’entreprise derrière Cyanogenmod rend certains méfiants, donc voilà.

Évidemment, vous ne téléchargez pas les GApps, hein, on est pas là pour ça !

Commençons par le commencement : si vous voulez réinstaller votre bootloader (par exemple si vous suspectez qu’il a été modifié), vous pouvez peut-être aller chercher les images sur internet. Par exemple Google les fournit pour ses Nexus. Je rappelle que tout cela est loin d’être open-source, car il s’agit de l’interaction logiciel-matériel à un très bas niveau.

[caption id="attachment_87" align="alignright" width="225"]Bootloader Bootloader[/caption]

fastboot flash bootloader bootloader-*.img
fastboot reboot-bootloader

Si on a du temps à perdre, on peut aussi en profiter pour flasher tout ce qui est interaction avec les différents composants, donc propriétaire, ce qu’on appelle l’image radio.

fastboot flash radio radio-maguro-i9250xxlj1.img
fastboot reboot-bootloader

Je pars du principe que vous avez déjà débloqué le bootloader. Y a plein de tutoriels pour ça un peu partout sur la toile, mais sinon, c’est juste un :

fastboot oem unlock

Concernant le recovery, j’ai une légère préférence pour TWRP devant les recovery basés sur ClockWorkMod, car je préfère utiliser mon écran tactile plutôt que tripoter les boutons du volume.

Attention, on ne prend surtout pas la version officielle de ClockWorkMod qui possède des bouts de code propriétaires pour bloquer l’accès au recovery à d’autres apps que la sienne : ROM Manager. Et puis si vous voulez les mises-à-jour Delta (c’est à dire qui ne téléchargent que ce qui a changé) par exemple avec CyanDelta, ça ne marchera pas dans ce cas.

J’espère vous avoir convaincu. :D

fastboot erase recovery  
fastboot flash recovery votrerecovery.img

On démarre sur le recovery. On fait un wipe cache, wipe dalvik cache, wipe data, wipe system (en gros, on wipe tout). Dans TWRP, allez dans Wipe, puis Advanced, et puis cochez toutes les cases avant de valider. Oui, ça ne sert surement à rien, mais ça rallonge la procédure.

On redémarre sur le bootloader. On installe tout d’abord une ROM officielle (stock) car les ROM custom ne sont pas signées, c’est juste pour avoir un truc bien propre (l’envoi et l’écriture du system peut mettre un petit peu de temps).

fastboot -w update votreROMOfficielle.zip

Le téléphone reboote et on arrive sur notre système officiel tout frais. Évidemment, on ne fait rien ici qui pourrait nous trahir, c’est à dire pas de wifi, pas de connexion Google ni même aller sur Internet. D’ailleurs, avoir une SIM dans son appareil est totalement inutile à ce stade. On sélectionne juste la langue et on essaye de ne pas laisser des traces.

On active le mode développeur en appuyant comme un fou sur le numéro de build dans « À propos du téléphone », puis on revient dans le nouveau menu « Options pour les développeurs » et on active le debug USB en autorisant notre ordinateur. On fait un :

adb push cheminVersVotreVraieROM cheminSurVotreTéléphone

Le chemin sur votre téléphone devrait être un truc comme /sdcard/votreROM.zip. Allez, on reboote sur le recovery (fastboot puis on sélectionne recovery) pour installer cette ROM. Si jamais il s’avérait qu’il était parti (par excès de nettoyage ;) ), on le reflash avec fastboot comme montré plus haut.

On n’oublie pas de nettoyer avant d’appuyer sur install en allant sur Wipe (le cache Dalvik, le cache et le userdata), puis on sélectionne install et notre fichier. On peut faire un Wipe encore après si c’est le truc que vous aimez particulièrement, puis on reboote le système.

On arrive enfin sur notre ROM !

En conclusion, et à priori, a moins que votre bootloader ou vos pilotes soient infectés par un truc qui envoie en permanence des infos au constructeur de votre appareil, vous êtes caché (en tout cas, vous pouvez vérifier les millions de lignes de code pour vérifier que vous l’êtes). A partir du bootloader, tout sauf les pilotes devrait être opensource.

Partie 2 – Les applications

Bon, puisqu’on a dit pas de GApps, il va falloir trouver des alternatives.

Côté serveur

De toute manière, un serveur est toujours requis, que ce soit le votre, que vous soyez en location dessus (ou en colocation ! <3), que vous ayez juste un accès FTP (mutualisé) ou même que vous soyez chez un vendeur ou donateur d’accès OwnCloud. Donc au pire

La solution plus simple est encore d’installer un OwnCloud sur son serveur, qui nous servira de synchronisation de fichiers, de contacts, de calendrier et de bookmarks avec Mozilla Sync. Il pourra également servir de serveur Ampache (pas Apache !) avec l’application Music. On aura pris également le soin de se constituer un petit serveur de courrier, évidement avec SSL de bout en bout et IMAP pour synchroniser. Un petit serveur XMPP ne serait pas de refus également. En SSL évidemment aussi.

Note : OpenMailBox propose une adresse mail, un OwnCloud (sans Firefox Sync ni Ampache, toutefois) et un serveur XMPP, le tout en sécurisé. Fin de la pub.

Ah et si vous en avez la possibilité, mettez aussi un serveur OpenVPN (toujours sécurisé de bout en bout, vérifiez bien !) ou prenez-en un chez qui vous avez à peu-près confiance.

Bon, faut aussi faire en sorte que votre serveur ne soit pas une passoire hein. :)

Côté appareil mobile

 

[caption id="attachment_88" align="alignright" width="300"]F-Droid F-Droid[/caption]

Avant tout, F-Droid pour installer des applis libres. :) On peut activer le dépôt du Guardian Project pour être plus vite à jour dans leurs applications.

Poussons le vice et annonçons directement que vous un nerd homme venu de demain :

Attaquons maintenant les réseaux anonymisants. Comme Sebsauvage l’a dit, prenez TOR ou un VPN selon votre utilisation.

A partir de là, vous êtes complètement fou, car vous n’avez ni GMail, ni GDrive/Dropbox, ni Facebook. Vous avez repris le contrôle sur votre appareil.

Tous ceux qui veulent changer le monde…

lundi 14 avril 2014 à 00:26

Aucun politicien ne veut cela. Peut-être certains hommes politiques. Mais parmi ceux qui sont au pouvoir ou ont été un jour au pouvoir, ils ont peur de changer ce monde. Ils ont peur que vous le changiez et qu’ils ne puissent plus en faire ce qu’ils en veulent comme ils font actuellement.

Et ils n’hésiteront pas à aller loin pour vous empêcher de le faire. En Grande-Bretagne, le UK Terrorism Act est plutôt clair sur le sujet. Cette loi définit le terrorisme comme « tout acte ou menace d’action ayant pour but d’influencer le gouvernement ou une organisation gouvernementale internationale » ou « conçue dans le but de faire prospérer une cause politique, religieuse, raciale ou idéologique » ou « conçue pour interférer ou perturber un système électronique ». Par ailleurs, la loi indique que « gouvernement » signifie le gouvernement de n’importe quel pays­ – y compris les États-Unis.

En gros, si vous vous opposez au gouvernement – pardon, à n’importe quel gouvernement dans le monde – vous êtes un terroriste, car vous perturbez l’ordre établi. Ils sont donc en passe de justifier la surveillance de la totalité de la population, puisque tout le monde (oui, tout le monde, puisque si vous êtes du côté du gouvernement vous n’avez rien a cacher, n’est-ce pas ?) est surveillé.

Les politiciens ne nous laissent donc plus la possibilité de changer ce monde.

J’ai peur. J’ai sincèrement peur qu’un jour la voie de la non-violence ne suffise plus, que l’on assistera à un soulèvement populaire, que le peuple, démuni, attaquera ses politiciens. Car les politiciens ne font plus partie du peuple, ils sont contre lui. Ils en ont profité.

Et c’est bien triste d’avoir un discours de prolétaire révolutionnaire tel que le mien, car les hommes valent mieux que cela.

 

Ah oui, dernière chose. Populaire, ça vient de peuple. Et puis je suppose que vous avez appris 3 mots de grec à l’ENA, alors cherchez dēmokratía.

Mon passage de Windows Phone 7 à Android

dimanche 6 avril 2014 à 00:26

J’ai enfin fini par me débarrasser du handicap que je trainais derrière moi avec mon ancien smartphone, uniquement âgé de 4 ans pourtant, mais tournant sous le système Windows Phone 7. En effet, lorsqu’elles existaient, les applications WP qui m’intéressaient étaient compatibles uniquement Windows Phone 8, donc j’enrageais un peu à chaque fois.

J’ai fini par trouver d’occasion sur le célèbre site qui organise des enchères, pour moins de 150€, un Samsung Galaxy Nexus en bon état me convenant. Pour rappel, mon précédent smartphone était un Samsung Omnia 7, se positionnant entre milieu et haut de gamme, en tout cas en 2010. Je reste toujours chez Samsung, même si ça ne m’enchante pas vraiment.

 

Ceci est donc un article expliquant et comparant chacun des points observés lors de mon passage de Windows Phone 7.8 à Android 4.4 (techniquement, Cyanogenmod 11).

Interface

Écran d’accueil

Deux philosophies s’affrontent ici :

[caption id="attachment_80" align="alignright" width="300"]Samsung Omnia 7 Samsung Omnia 7[/caption]

Bilan : Évidemment, c’est une question de goût. Personnellement, je n’utilise pas tant que cela de widgets d’Android (sur ma page centrale, on trouve juste Horloge + Météo + Musique), donc je pense que le système de tuiles utilisant toute la place disponible était tout aussi agréable. En revanche, l’accès à la liste générale des applications est plus agréable sous Android.

Note : Après deux semaines d’utilisation, je remarque que j’utilise deux nouveaux widgets, un pour suivre mes séries TV et un autre pour voir les horaires des bus en bas de chez moi. L’intérêt est déjà plus grand.

Écran de verrouillage

Sous Windows Phone 7, c’était vraiment rudimentaire (rappelons tout de même que l’OS a été sorti en 2010). On trouve donc les informations suivantes :

Le déverrouillage se fait uniquement par glissement vers le haut. Éventuellement, blocage par mot de passe numérique.

Sous Android, en gros, on fait ce que l’on veut. On a accès a beaucoup de widgets qu’on peut ici également placer sur plusieurs pages accessibles à droite ou à gauche. Un regret que j’ai est qu’il n’y ait pas de widget unifiant les sources musicales, pour contrôler n’importe quelle source de musique facilement.

Le déverrouillage peut s’effectuer de plusieurs manières différentes :

  1. Mot de passe/code PIN
  2. Glissement dans une direction
  3. Reconnaissance visuelle (je recommande à personne d’utiliser ça, quand même)
  4. Mon préféré, le schéma de connexion (joindre des points). Et quand je dis mon préféré, c’est vraiment que j’adore.

Bilan : Avantage certain à Android.

Notifications

[caption id="attachment_83" align="alignleft" width="185"]Galaxy Nexus Galaxy Nexus[/caption]

Windows Phone 7 a une barre en haut de l’écran montrant des informations basiques comme la batterie, l’état de la sonnerie (vibreur/son…), si le wifi est activé, si la connexion de données est activé,  l’état du réseau GSM, etc.

Les notifications se font par le moyen de « notifications push », des barres d’information qui viennent s’afficher pendant un court instant. L’utilisateur peut appuyer dessus pour se rendre à l’application concernée, ou bien l’ignorer. Dans ce cas, la notification sera inaccessible à tout jamais. Oui. Vous avez bien lu. C’est tellement stupide que les cerveaux qui perdent de l’énergie en entassant les dollars de Redmond ont remis cette fonctionnalité telle quelle dans Windows Phone 8, et c’est uniquement avec la mise à jour Windows Phone 8.1, si elle arrive un jour, que viendra le centre de notifications.

Pour Android, c’est depuis longtemps mais particulièrement avec la version au nom d’une célèbre marque de biscuits enrobés de chocolat, que l’on a une zone d’information en haut de l’écran très riche.

A gauche, les notifications, qui peuvent être effectuée par n’importe quelle application. On voit dans la zone les icônes des applications concernées, et on accède au détail en déroulant la zone. A droite, on a les informations de base (réseaux, batteries, etc) et en déroulant, on a directement accès à des options permettant d’activer/désactiver la connexion de données, le wifi, le vibreur, etc. Parfait.

Bilan : Bref.

 Applications

Je vais surement vous surprendre en disant cela, mais il y a bien énormément plus d’applications dans le Play Store de Google que dans le Windows Store de Microsoft.

A part énoncer des banalités sur le sujet, j’aimerais toutefois vous faire savoir que l’on trouve un taux beaucoup plus faible d’applications de qualité exécrable ou bien de clones d’autres applications ou de jeux sur le Windows Store. La faute sans doute à un marché de l’adware qui n’est pas encore lancé sur cet OS. Et puis quoi qu’on en pense, le fait est qu’il est plus rare que des failles de sécurité soient découvertes sur Windows Phone, cela venant bien évidemment du fait que l’OS est plus fermé qu’une huitre aux premières neiges. On peut également penser aux coûts d’inscription auparavant très élevés (~100$, réduits au même niveau que pour aller publier chez Google aujourd’hui : ~15€).

Un mot toutefois sur les performances des applications. Malgré le fait que la quantité de RAM ait été multipliée par 2 et le processeur ait pris un deuxième cœur, je ne constate pas vraiment d’améliorations en termes de performances. Au contraire, je dirais même que si on ferme complètement les applications sur Android, elles mettent (bien) plus de temps à se lancer. Évidemment, je pourrais blâmer Java, mais je ne peux pas non plus exclure que le fait que je tourne avec un kernel modifié, une version « snapshot » de Cyanogenmod elle-même basée sur une version d’Android n’étant pas faite pour tourner sur mon appareil hashtag #triste.

Bilan : Le tribunal n’est clairement pas compétent pour juger si Bluetouff est coupable d’une recherche Gogoole si les applications de l’un ou de l’autre système sont meilleures.

Personnalisations – Hack

Bon alors là c’est le grand jeu sur Android. Vu que c’est basé sous Linux, on peut :

  1. Installer toutes sortes d’applications en dehors du Play Store avec des fichiers APK.
  2. Débloquer le chargeur de démarrage (Unlocker le bootloader si on parle la langue)
  3. Avoir un accès de super-utilisateur (Rooter le téléphone)
  4. Flasher la partition de récupération système (Recovery Flash) pour avoir accès aux possibilités suivantes
  5. Installer un noyau différent (Kernel)
  6. Installer une version d’Android différente (Fork, ROM, etc) qui changent complètement votre expérience utilisateur d’Android.
  7. Bref, tout ce que l’on veut.

Vous vous doutez bien qu’on a moins de marge de manœuvre avec Windows Phone. Cependant, même avec un truc aussi fermé, des gentils hackers ont réussi a faire joujou. On pouvait donc :

  1. Installer un chargeur de démarrage (bootloader) personnalisé pour nous permettre d’installer nos ROM.
  2. Installer des ROM alternatives, donnant surtout une sorte d’accès de super-utilisateur, pour permettre à certaines apps d’aller fouiller un peu partout, mais surtout d’avoir accès à une foule de paramètres.
  3. Installer des applications en dehors du Windows Store (Opera Mobile était l’application que j’adorais pour cela)

Et étrangement, c’était presque plus simple sous Windows Phone, même si ce n’est pas du tout la même chose. Vous aurez noté que j’ai utilisé le passé pour parler de Windows Phone. Car cela était possible uniquement sous WP7. Comme tout le monde se fout de cet OS le noyau de WP8 est davantage protégé, accéder au chargeur de démarrage n’est pas possible et donc au trou.

Bilan : Basé sur un pingouin, Android ne pouvait que gagner.

 Matériel

(en gros, rien à voir avec le logiciel ici)

Bon, en presque deux ans, y a eu du progrès. Donc au niveau de l’écran, couleurs plus belles, luminosité impressionnante. Le système de boutons d’action virtuels (et non physiques) est très sympa à utiliser. Concernant les autres boutons, rien a redire. Je m’étais habitué à la présence d’un bouton pour avoir accès à l’appareil photo directement, mais vu qu’il est accessible depuis l’écran de déverrouillage, cela ne me pose pas plus de problèmes que cela.

En revanche, ce qui m’a clairement perturbé au début, c’est que les ports micro-usb sont situés en bas du téléphone, et non en haut comme dans la majorité des cas. C’est peu pratique pour moi qui suis un utilisateur très fréquent de mon téléphone comme un baladeur audio, car il a la tête en bas dans ma poche et je dois donc le retourner une fois sorti. Vous avez bien entendu le droit de m’insulter pour cette fainéantise.

Allez sinon, réception wifi peut-être sensiblement meilleure, vitesse des données supérieure car accès au mode HSPA+, et puis la fonctionnalité totalement inutile, le NFC. Bon, soyons honnêtes, si j’étais aux USA, j’utiliserais peut-être la fonctionnalité Google Wallet avec le paiement sans fil, mais cela uniquement dans l’hypothèse où Google c’est des gentils, et qu’ils veulent que le bien et la paix sur Terre. Donc voilà.

Passons au sujet le plus important : la batterie. Je dois dire que je suis très agréablement surpris, car malgré que ce soit de l’occasion, les performances restent admirables. En veille, ça tient deux semaines. En utilisation intensive (donc normale pour moi :p ), deux jours. Alors que mon ancien tenait 4/5 jours en veille et tout juste une journée entière en pleine utilisation.

Enfin, un truc cool et très pratique est la LED en bas du téléphone qui se programme en plusieurs signaux pour des notifications ou bien une indication pendant la charge électrique.

Quelques autres trucs que je n’ai pas réussi à dire avant…

(je mettrai également des trucs ici si j’en trouve après, ou si vous m’en soufflez à l’oreille)

(En fait, je sais qu’il y en a que j’ai oublié, mais je ne m’en souviens plus à l’heure actuelle, donc…)

Java. Ah, si j’ai du le mentionner. Mais faudra bien que je m’y mette un jour.