keul.fr - technologie web

Aller au contenu | Aller au menu | Aller à la recherche

Enrichi en transistors.

mardi, 4 octobre 2011

Stockage de mots de passe

En informatique, il deviens très rapidement nécessaire de gérer son identités sur plusieurs sites et systèmes.

Et actuellement, on se retrouve à retenir plein de mots de passe, vu qu'il n'existe pas encore de solution unique et complète. En effet, j’estime qu'il faut :

  1. un système pérenne qui résiste à la suppression de compte mail (en quittant son ancien FAI), du nom de domaine (comme un certain wikileaks), de son téléphone...
  2. un système qui permettes un certain anonymat : si mon compte ebay et mon compte google utilisent la même adresse e-mail ou la même URL pour openID, ils peuvent me suivre à la trace.
  3. un système blindé : en cas de vol/perte de mot de passe, il doit y avoir des systèmes de révocation.

OpenID et BrowserID n'y répondent pas vraiment et pour moi, la solution réside dans les certificats GPG et un principe de fonctionnement tel que décrit :

Sur un PC (de préférence sécurisé, en live CD et non connecté au net), on génère un trousseau de clef A B C D (qu'on peux imprimer voir une master qui signe toutes ces clefs) ... chacune signe des clefs A1 B1 C1 D1 qu'on stocke sur une clef USB

On utilise alors les clefs A1 B1 C1 D1 pour s'authentifier sur les sites. Si la clef B1 est corrompue, on retourne sur le netbook et on génère une clef B2 qui révoquera la clef B1 et qui servira de nouvelle clef d'authentification.

  1. Le système est indépendant d'un quelconque compte mail ou nom de domaine
  2. un système qui permettes un certain anonymat : si mon compte ebay et mon compte google utilisent la même adresse e-mail ou la même URL pour openID, ils peuvent me suivre à la trace.
  3. un système blindé : en cas de vol/perte de mot de passe, il doit y avoir des systèmes de révocation.

En attendant qu'un tel système soit utilisable, on se retrouve à gérer plein de mots de passe. Problème, je n'ai pas de serveur chez moi où héberger en permanence ce fichier, et je n'ai pas envie de le stocker en clair chez mon hébergeur. Je pourrais le crypter chez mon hébergeur, mais ça signifierais envoyer le mot de passe par le réseau (et je n'ai pas de https disponible dans mon offre).

Solution: effectuer le cryptage/décryptage coté navigateur. Ceux-ci ne gérant pas les fonctions cryptographiques en natif, j'ai dû recourir à une librairie en javascript.
Le script ci dessous effectue des copies de sauvegardes du fichier crypté.

Télécharger le script (WTFPL)

Ce script php génère donc une page HTML avec un champ textarea crypté, qui se décrypte via javascript quand vous aurez saisi la bonne clé. Vous pouvez saisir de nouvelles informations , une autre clef et cliquer sur save pour envoyer la nouvelle version cryptée sur le serveur.
Le script est fourni sans garantie (ne l'utilisez pas pour des trucs trop importants sans vérifier le code source)

mercredi, 28 septembre 2011

Démontage de netbook Acer eMachines M350

Ayant du démonter mon netbook récemment, j'en profite pour mettre quelques photos ici.

Lire la suite...

mercredi, 17 août 2011

Les numéros de version

S'il y a bien un problème avec les logiciels, c'est leurs système de numération de versions qui peut causer bien des problèmes.

Firefox6-goto5

Source

Capitalisme oblige, les versions permettent d'amasser pas mal d'argent avec la vente de logiciels, plus concurrentiels, plus performants, plus fonctionnels, plus jolis, plus efficaces, plus lourds... Difficile donc de se débarrasser avec élégance.

Si ce n'est pas un problème avec les sites web dont les logiciels qui le génère tournent coté serveur (hors navigateur), ça l'est beaucoup plus avec les logiciels coté utilisateur.

Et ça, Google l'a bien compris et sait que l'utilisateur ne veux pas s'embêter avec ce genre de détails, en mettant le tout à jour sans trop l'annoncer à l'utilisateur. Je ne sais pas à quelle version est Google Chrome, ni Gmail, ni Google Earth... La seule exception étant Android, mais ça tiens plus aux limites matérielle (j'ai un smartphone d'entrée de gamme) et à la flemmardise des constructeurs. En tout cas, quand je vais sur un PC, que je vois Chrome à jour, Firefox 3.6 et IE6, je comprends vite le bug.

Je pense qu'il serait temps pour Mozilla de mettre automatiquement ses logiciels à jours de manière silencieuse (comme Chrome), MAIS en proposant néanmoins dans les options le choix de désactiver cette fonctionnalité (contrairement à Chrome).

Les développeurs doivent aussi éviter autant que possible la vérification du numéro de version pour se baser uniquement sur la présence de la fonctionnalité.

Une solution élégante est aussi celle adopté par ubuntu, utilisant la date : on sais facilement si on a à faire à une version à jour, il n'y a pas de concours d'e-penis.

J'en ferai d'ailleurs un article sur les bonnes pratiques de programmation web.

dimanche, 31 juillet 2011

XML soupe(SOAP) ?

L'informatique, c'est de la rigueur.

Bon, après, y'en a qui ne comprennent pas et qui publient des trucs foireux. Donc quand dans un flux XML vous avez des personnes qui utilisent le caractère & autrement que comme entitée HTML (&, &acute, <…) en oubliant par exemple de parser une URL, on obtiens une belle erreur en exploitant le flux.

Solution pour corriger si le responsable du bug met 15 plombes à réagir :
//Attention, patch honteux
$pattern = "/(&[^a-zA-Z\#])|(&\#[^0-9])|(&[a-zA-Z]+[^;a-zA-Z])|(&\#[0-9]+[^;0-9])/";//bullshit pattern
$replacement = "&$2";//rustine grosse comme ma B
if( preg_match_all ($pattern, $raw_flux, $matches) > 0 ) {
//A chaque fois que le script entre dans cette boucle, Dieu tue un chaton (Shami inclus)
$datas=explode('<![CDATA[',$raw_flux);//on ne fait des remplace que sur les parties hors de <![CDATA[ * ]]>
foreach($datas as $key => $cdt) {
if($key>0) {
$ct=explode(']]>',$cdt);
$ct[1] = preg_replace ($pattern, $replacement, $ct[1]);
$datas[$key]=implode(']]>',$ct);
} else {
$datas[$key] = preg_replace ($pattern, $replacement, $cdt);
}
}
$raw_flux=implode('<![CDATA[',$datas);
}

mercredi, 29 juin 2011

Le web et les données

Certaines entreprises se mettent à tenter de prendre possession de vos données tout en voulant garder les leurs. La loi étant (normalement) la même pour tous, on se retrouve avec certains concepts intéressants :

- Blizzard tente de s'approprier votre réseau en vous interdisant d'analiser le traffic circulant sur celui-ci à la section 12.3 de leurs contrat.
Blizzard ne serait donc pas compatible avec la LOPPSI et avec tout réseau de plus d'un utilisateur. Si un membre de ma famille joue à un jeu blizzard, rien ne m’empêche de lancer wireshark sur le PC, n'ayant pas accepté leurs contrat. FAIL.

- Facebook/twitterpic/... veulent s'approprier les droits sur les images postées par leurs utilisateurs. Manque de bol, on ne peut pas récupérer ce que les autres ne possèdent pas. S'ils disent qu'ils possèdent les droits de publier l'image, répondez leurs simplement : "cette image/texte/vidéo est sous copyright et a été posté par un membre de ma famille sur votre site. Je ne vous ai donc jamais donné de droits sur cette œuvre vous prie de bien vouloir la retirer rapidement, conformément aux lois sur le copyright."

Enfin, j'attends quand-même de voir ce que va donner la loi hadopi quand elle va se mettre à couper les connexions à internet pour défaut de sécurisation et qui cherche à rendre le visionnage de streaming illegal (hop, mettons en prison tout ceux qui se sont fait rick-roller XD)

- page 2 de 5 -