Archives pour la catégorie Avancés

Trouver les meilleurs réseaux wifi à proximité

inSSIDer

inSSIDer

Toujours dans la problématique où l’on souhaite se connecter à un hotspot wifi et que plusieurs sont disponibles, il faut se donner les moyens de pouvoir les comparer. Il y a bien sûr la puissance de réception du signal, mais pas seulement. Je vous présente donc aujourd’hui un logiciel gratuit (mais avec beaucoup d’extensions payantes que vous n’êtes pas obligés d’acheter) qui s’appelle inSSIDer. Son principe est très simple: il va scanner l’ensemble des réseaux wifi disponibles à l’entour, vous afficher la force de réception du signal, un certain nombre de données technique, et surtout une représentation graphique de leur répartition dans la bande des fréquences.

Pourquoi la répartition dans la bande des fréquence est-elle importante? Eh bien parce que les fréquences attribuées au Wifi sont divisées en 12 canaux. Chaque box internet va être configurée pour émettre sur un certain nombre de canaux qui dépendent de votre fournisseur. Si vos voisins directs utilisent le même canal que vous, vous allez de fait devoir vous partager la bande passante. C’est pour cette raison que de nombreux tutoriels d’optimisation de la réception wifi vous recommandent parfois de repérer un canal peu utilisé et de configurer l’ensemble de vos équipements pour fonctionner dessus.

Dans notre cas, nous allons comparer entre eux tous les hotspots auxquels nous sommes susceptibles de vouloir nous raccorder selon les critères suivants: D’abord quel est celui qui possède la meilleure qualité de réception (hauteur du créneau sur le graphique), et ensuite quel est celui qui est le moins encombré, c’est à dire celui qui a le moins de créneaux de hauteur non négligeable superposés au sien. Notez que les hotspots dont le signal recouvrent plusieurs canaux sont centrés sur un canal particulier, c’est celui-là qu’il faut comparer, vous le retrouverez dans la liste des réseaux dans la partie supérieure. Une fois que vous aurez déterminé le hotspot le plus intéressant, il ne restera plus qu’à s’y connecter. S’il a un nom différent des autres, c’est relativement facile avec l’outil intégré à Windows. Dans le cas contraire, il faudra désactiver ce dernier et utiliser un logiciel tiers. Nous y reviendrons…

Quelques remarques: si vous avez désactivé la gestion du wifi par Windows, le logiciel ne fonctionnera pas. Ensuite la détection des algorithmes de chiffrement des réseaux (WEP, WPA, etc) donne parfois des résultats erronés. Si vous détectez votre propre box en WEP alors que vous êtes persuadé de l’avoir configurée en WPA, ne paniquez pas et contrôlez avec un autre outil, il peut s’agir d’une erreur de détection.

Désactiver la gestion du wifi par Windows

Wlan Optimizer

Wlan Optimizer

 

Dans certains cas assez spécifiques la gestion du wifi par Windows dérange plus qu’elle n’arrange. C’est le cas par exemple lorsqu’il existe plusieurs réseaux auxquels vous êtes susceptibles de vous connecter, soit que vous ayez enregistré plusieurs points d’accès (un point d’accès, c’est un réseau wifi auquel vous pouvez vous connecter) dans votre voisinage, soit que plusieurs points d’accès de votre voisinage possèdent le même nom, ce qui est souvent le cas lorsque celui-ci est laissé par défaut… Et à plus forte raison lorsque vous vous connectez à un hotspot.

Vous sélectionnez donc un point d’accès, vous vous connectez dessus, tout va bien, et puis cinq minutes plus tard il y a une petite baisse de dix secondes dans qualité de la réception du signal, et Windows se reconnecte automatiquement sur le réseau d’à coté qui a un débit pourri, mais suffisant suivant les critères de Windows. Lorsque votre point d’accès précédent retrouve sa force, Windows ne repasse pas dessus pour autant à moins que votre deuxième point d’accès ait lui aussi une baisse de signal significative. Ce qui dans le cas général est très pratique pour l’utilisateur devient donc très handicapant dans notre cas particulier. J’ai essayé divers réglages dans le fin fond des paramètres de Windows dans le but de le forcer à rester sur le même point d’accès mais sans succès. J’ai même installé un logiciel Wifi externe (dont je reparlerai) pour gérer le wifi en lieu et place de Windows, mais ce dernier a continué à interférer. J’ai alors recherché un utilitaire susceptible d’inhiber le scan des réseaux et la reconnexion automatique à la Windows et j’ai découvert WLAN Optimizer.

Ce logiciel est surtout mis en avant pour son option « Disable background scan » qui permet d’empêcher Windows de scanner en permanence l’ensemble des réseaux disponibles en arrière plan, ce qui est effectivement inutile  une fois connecté et fait perdre un petit peu de signal, ainsi que pour quelques petites optimisations, notamment sur le streaming, il y a pas mal de sites en français qui en parlent si vous voulez vous documenter davantage sur la question. Ce que je souhaite mettre en avant pour ma part, c’est son option « Disable autoconfig », qui nécessite que le logiciel soit exécuté avec les droits d’administrateur, et qui n’est pas recommandée à moins de savoir ce que l’on fait, dixit l’éditeur du logiciel. Ça tombe bien, nous savons ce que nous faisons : nous voulons désactiver toute gestion automatique du wifi par Windows, au profit d’une connexion réalisée à partir d’un logiciel tiers. Notre but est que ça ne marche plus via Windows, mais que la carte wifi soit encore totalement opérationnelle.

Lancez donc le logiciel en mode administrateur, cochez la case, sauvez, et admirez votre gestion wifi par Windows qui ne vous affiche plus aucun réseau à portée: objectif atteint. Connectez vous via votre logiciel tiers de gestion du wifi, Windows ne vous embêtera plus.

Explications sur les antennes Wi-Fi

Antenne Wifi Omnidirectionnelle

Antenne Wifi Omnidirectionnelle

Lorsqu’on est un peu éloigné de sa box internet, la qualité de réception du signal Wifi est généralement très mauvaise. Il existe divers moyens de l’améliorer: se rapprocher lorsque c’est possible, changer de position en recherchant la meilleure réception possible, etc. Une fois toutes ces possibilités épuisées, reste la solution de changer d’antenne Wifi. La mauvaise nouvelle, c’est que la plupart des cartes Wifi, modules intégrés et autres dongles que l’on trouve dans le commerce ne disposent pas d’un connecteur pour antenne, celle-ci est directement intégrée. Heureusement il existe de nombreux bricolages comme celui-ci à base de boite de conserve qui permettent d’obtenir quand même un petit mieux. L’autre alternative, c’est d’investir dans un nouvel adaptateur Wifi qui comporte un connecteur externe (vérifiez bien que vous ne pouvez pas dévisser votre antenne actuelle avant de vous lancer dans un achat.

Dongle Wifi doté d'une antenne amovible

Dongle Wifi doté d’une antenne amovible

Par exemple l’image précédente correspond à un dongle wifi doté d’une antenne amovible que l’on peut trouver chez MHz Shop. Le dongle ne doit pas être choisi au hasard. Gardez simplement à l’esprit que vous pourrez changer l’antenne, donc ne vous préoccupez pas tant de la qualité de la réception du signal (qui se mesure en dBi). Le dongle que je donne en exemple ne correspond pas à celui que j’avais acheté autrefois et qui n’est plus en vente.

Une fois que vous êtes en possession de cet adaptateur wifi amélioré, soit vous êtes satisfait de la nouvelle qualité du signal, soit vous souhaitez l’augmenter plus encore, en passant à une antenne un peu plus évoluée que vous pouvez désormais commander séparément. Direction le marchand d’antennes (Non cet article n’est pas sponsorisé par MHz Shop, c’est simplement que c’est chez eux que je commande d’habitude). Le problème, c’est que chaque antenne possède sa fiche technique, et que pour pouvoir les comparer entre elles, il faut savoir interpréter les informations qui y sont incluses… ce qui n’est pas toujours si simple! Prenons un exemple:

Fiche d'une antenne omni-directionnelle à 5dBi

Fiche d’une antenne omni-directionnelle à 5dBi

Cette image correspond à une de leur fiche produit, j’ai juste un peu hacké le CSS avant de prendre la capture d’écran pour les besoins de la cause. Quels sont les premiers renseignements qui vont nous intéresser dans cette fiche? Eh bien tout d’abord

  • La bande de fréquence (2.4GHz). Celle-ci est  la bande Wifi la plus utilisée de nos jours et notamment par les normes wifi b/g/n que l’on trouve sur la plupart des boxes adsl des FAI. En fait cette bande de fréquences est même un petit peu surchargée. Si vos voisins utilisent le Wifi sur le même canal que vous il peut y avoir un partage de la bande passante, ce qui explique qu’aux heures où tout le monde est connecté, le débit chute.
    Quid des fréquences à 5GHz? => Si votre récepteur wifi est compatible avec la norme n, vous pourriez théoriquement accéder au wifi sur la bande de fréquence de 5GHz qui est beaucoup moins encombrée. Cependant en pratique la chose est compliquée à mettre en oeuvre pour plusieurs raisons: d’abord la très grande majorité des boxes adsl n’émet pas sur cette bande de fréquence. Vous auriez donc besoin d’acheter un équipement spécial à raccorder à votre box pour faire office de point d’accès à 5GHz. Ensuite coté récepteur il va vous falloir une antenne qui peut recevoir sur cette fréquence… en plus de votre antenne à 2.4GHz (ou alors utiliser une antenne bibande, ce qui réduit les possibilités de choix). Cerise sur le gateau, si vous avez des problèmes de réception Wifi, il est probable que le passage sur la fréquence 5GHz n’arrange rien, car l’atténuation du signal liée aux obstacles augmente lorsque l’on monte en fréquence. Le wifi à 5GHz est donc de fait réservé pour le moment à des usages très spécifiques.
  • Le type de connecteur (RP-SMA). Il existe différents types de connecteurs. Dans le cadre du dongle que nous avions sélectionné en exemple plus haut, il y avait un connecteur RP-SMA, nous chercherons donc une antenne qui dispose du même type de connecteur.
  • Le type d’antenne (omni). Pour schématiser, il y a deux types d’antennes: celles qui sont omni-directionnelles peuvent capter tous les signaux Wifi avoisinant. A l’inverse les antennes directionnelles doivent être braquées dans la direction de l’émetteur wifi pour pouvoir recevoir le signal. Dans la pratique les antennes directionnelles permettent d’obtenir une meilleure qualité de signal, mais elles sont plus complexes à règler, en particulier en environnement urbain où les nombreux murs perturbent le signal.

Les trois paramètres que nous venons d’évoquer sont les plus essentiels et doivent être corrects pour que l’antenne fonctionne. Il est temps désormais d’aborder le reste des paramètres:

  • Le Gain : c’est le paramètre le plus important pour déterminer la puissance de l’antenne, plus il est grand mieux c’est! La plupart des dongles et cartes wifi du commerce se contentent d’un gain de 2 dBi, certaines peuvent monter jusqu’à 5dBi. En pratique sur les antennes omnidirectionnelles d’appartement on peut monter jusqu’à un gain de 9dBi. Au delà il faut envisager une antenne extérieure ou changer de technologie d’antenne.
  • La polarisation et l’angle d’ouverture : Dans notre exemple, la polarisation est dite verticale. Grosso-modo vous pouvez considérer qu’il faut placer l’antenne verticalement. Ensuite l’angle d’ouverture à 360°/90°: le premier angle indique que la réception de signal peut se faire dans les 360° par rapport à la verticale, ce qui est normal pour une antenne omnidirectionnelle, qui peut effectivement recevoir les informations de toutes les directions dans le plan horizontal perpendiculaire à la verticale. Le deuxième fourni une indication sur la réception de signaux qui n’arriveraient pas perpendiculairement à l’antenne mais en biais: pour garantir une bonne réception du signal, il faut que l’angle d’arrivée des ondes par rapport au plan horizontal idéal soit de moins de 45° par au dessus ou par en dessous (le total fait donc bien 90°).
  • Impédance et TOS : Ce sont les paramètres les plus difficiles à appréhender, en particulier si vous n’avez jamais fait d’électronique. En ce qui concerne l’impédance, il s’agit d’un paramètre qui caractérise la manière dont l’énergie est transportée. Si l’impédance de l’antenne était différente de celle du dongle wifi, il pourrait se produire des phénomènes de réflexion et de pertes énergétiques. En pratique 50 Ohms correspond à la valeur standard sur des connecteurs SMA, pas de souci à se faire à ce niveau. Là où vous pourriez avoir un problème, c’est dans le cas de deux antennes branchées en parallèles, car un adaptateur est alors nécessaire pour éviter qu’il se produise une chute d’impédance liée à ce parallélisme. En ce qui concerne le TOS, il s’agit d’un paramètre qui caractérise l’efficacité de l’antenne (pour faire simple). En gros, plus il est proche de 1, mieux c’est. Ainsi, un TOS noté « <1.5:1 dB » sera meilleur qu’un TOS noté « <2.0:1 »

Enfin, la fiche technique mentionne des informations supplémentaires qu’il peut être intéressant de noter: longueur du cable, s’agit-il d’un cable faibles-pertes, dimensions de l’antenne. En restant très général on peut considérer comme normal que plus une antenne est grande, plus elle est efficace, il faut donc s’attendre à des dimensions de l’ordre de 20 cm (voire 40 cm) pour les antennes à haut gain… qui vont donc peser un certain poids, du coup si l’antenne n’est pas fournie avec une base, à vous d’estimer si le dongle va le supporter ou si vous devez en plus acheter un support. A propos du cable de raccordement, s’il n’est pas blindé il va faire antenne aussi sur le même principe que les antennes des récepteur radio, mais ce n’est pas forcément ce que vous voulez. Logiquement vous n’aurez pas de problème, le constructeur de l’antenne wifi y aura pensé, mais sur une antenne d’entrée de gamme, c’est un détail auquel il faut être vigilant.

Voir aussi: Glossaire, SWR (en), Passion Radio

Trois utilitaires Windows indispensables

Free Disk Usage Analyzer

TCP View

Process Explorer

Hop là. Ca faisait un petit moment que je repoussais la rédaction de ce billet, mais voici enfin chose faite. Je ne suis pas un fan de Microsoft, mais il faut bien l’utiliser, ne serait-ce qu’au travail, et voici trois petits utilitaires qui simplifient énormément la vie:

  • Free Disk Usage Analyzer est l’analogue de l’analyseur de disque si pratique sous Linux. Cet outil est très pratique lorsque l’on cherche à savoir qu’est-ce qui mange tant de place sur l’ordinateur.
  • TCP View permet de savoir en temps réels quels sont les ports ouverts sur l’ordinateur, et par quel logiciel. Très utile lorsque par exemple vous essayez de lancer JBoss et que celui ci plante parce que les ports dont il a besoin ne sont pas libres.
  • Enfin, Process Explorer permet de visualiser tous les processus en cours sur l’ordinateur, leurs processus fils, et des informations sur ces programmes, comme par exemple la ligne de commande qui a permis de les lancer. Très utile lorsque l’on souhaite analyser le comportement d’un programme pas à pas, ou lorsque l’on ne comprend pas pourquoi le comportement d’un programme varies selon qu’il est lancé automatiquement par l’ordinateur, ou manuellement.

[Avancé]Inscrire dans le marbre le comportement de Firefox au démarrage

user.js sample

Plop, une petite astuce que j’ai mis du temps à trouver: Il y a certaines valeurs de configuration de Firefox qu’on aimerait voir réinitialisées à chaque redémarrage, même si ce n’est pas toujours le cas par défaut notamment sous Windows.

Je pense particulièrement à l’endroit de téléchargement par défaut dans le cas où dans les préférences on a choisi de toujours être interrogé sur où enregistrer les fichiers: Il semblerait que sous Windows du moins chez moi, le dernier endroit choisi pour l’enregistrement précédent soit reproposé le coup d’après, ce qui est parfois utile et parfois franchement handicapant. Après une recherche assez fouillée, j’ai fini par trouver comment faire pour qu’au démarrage de Firefox, cela soit réinitialisé.

Avant d’aller plus loin, si vous n’avez jamais eu l’occasion de modifier manuellement des clés de configuration de Firefox, je vous conseille de lire mon article Configuration avancée de Firefox.

Si vous avez lu jusque là, vous savez qu’un très grand nombre de paramètres régissant le comportement de Firefox sont inscrit dans about:config. Certaines de ces clés, comme par exemple browser.download.lastDir sont modifiées automatiquement par le navigateur et ne sont pas forcément réinitialisées au démarrage suivant de Firefox.

Une bonne manière de forcer la réinitialisation au redémarrage suivant est d’aller dans votre dossier de configuration de firefox (dans application data sous Windows et dans .mozilla sous GNU/Linux), et d’y rechercher le fichier user.js (qui doit se trouver dans le même dossier que le fichier pref.js). S’il n’existe pas, créez le, et initialisez y toutes les valeurs que vous souhaiterez, par exemple dans notre cas, on pourrait ajouter la ligne: user_pref(« browser.download.lastDir », « G:\\Download\\blahblah »);
Attention  à bien mettre des double backslahs (le caractère ‘\’) dans le chemin d’accès, c’est très important. Comme le fichier de configuration user.js a forcément le pas sur les autres, cette manipulation devrait vous tirer d’affaire.

Consultez aussi à ce sujet : User.js file – MozillaZine (Anglais).

[Avancé] rechercher et agir sur les fichiers en double sous Linux

Cet article vient en complément de mon article Comment appliquer récursivement une instruction à des fichiers sous Linux, pour préciser comment formuler la recherche.

Sous Linux, lorsqu’au sein d’un même répertoire, deux fichiers s’enregistrent sous le même nom, le système rajoute automatiquement entre la fin du nom et l’extension un nombre entre parenthèses qui s’incrémente automatiquement avec le nombre de copies. Par exemple si un de vos logiciels enregistre plusieurs fois le fichier « I_love_linux.txt » dans ce répertoire, la deuxième copie sera enregistrée avec le nom « I_love_linux(1).txt », la troisième avec « I_love_linux(2).txt », et ainsi de suite.

Pour des raisons élémentaires de gain de place, il peut être utile de supprimer ces fichiers, et le but de cet article est de trouver une commande qui fait ça automatiquement. L’astuce est de combiner correctement les caractères universels de la commande find. Pour rappel:

  • le caractère ‘*’ remplace n’importe quelle chaine de caractères.
  • le caractère ‘?’ remplace n’importe quel caractère.

Donc dans le cas où aucun fichier ne porte de nom avec quelque chose entre parenthèse dedans sinon les fichiers copies, il suffira d’utiliser la commande find avec le pattern « *(*).* ». Dans le cas contraire, il faudra d’abord rechercher les fichiers compris entre 1 et 9, puis ceux entre 10 et 99, et ainsi de suite avec le pattern « *(?).* », puis avec le pattern « *(??).* », et ainsi de suite ; ou encore utiliser un pattern plus complexe qui laisse le choix du nombre de caractères en précisant qu’on ne veut que des numéros, mais je n’entrerai pas dans les détails ici.

Par exemple j’ai pu utiliser la commande find -name « *(??).* » -exec rm {}  \; pour supprimer mes fichiers doublons compris entre 10 et 99.

[Avancé]Si sur votre live_cd de linux, les caractères sont énormes…

enorme

Ça nous arrive tous un jour où l’autre: On teste une nouvelle distribution linux, la carte graphique et l’écran sont mal reconnus, et on se retrouve avec une taille de police démentielle qui rend toute manipulation impossible à cause de la taille des menus. En plus si on est sur un live cd, toute manipulation conduisant au redémarrage est à proscrire, puisqu’on perdrait ce qu’on a fait.

Alors voici comment faire:

  1. Passer en terminal virtuel (combinaison de touche ctrl + alt + F1)
  2. éditer le fichier /etc/X11/xorg.conf avec les droits d’administration
    pour ce faire personnellement j’utilise nano, ce qui nous donne ‘nano /etc/X11/xorg.conf‘, éventuellement à faire précéder d’un sudo si vous êtes sur Ubuntu, ou bien à faire un su avant, je vous laisse agir selon votre distribution.
  3. Repérer la section dédiée à la carte graphique. Dedans il y a une ligne dans le style Driver  « quelque chose ». Et manifestement le quelque chose n’est pas bon, donc il faut le remplacer par quelque chose qui va avec votre config, les plus courants étant {ati, nv, vesa, nvidia}. Mais attention, certains correspondent à des pilotes propriétaires, s’ils ne sont pas inclus par défaut sur le live_cd (ce qui est rarement le cas), ça ne marchera pas. Par exemple moi j’ai une Geforce, et hier j’ai voulu tester Sidux. Le driver paramétré dans le xorg.conf était nv, je l’ai remplacé par vesa, qui est un driver générique, sachant que sur ma distribution habituelle j’utilise le driver nvidia qui est propriétaire
  4. Utilisez la combinaison de touches crtl + alt + backspace pour redémarrer le serveur X. Si le serveur redémarre, mais que vous avez toujours le problème, ou que c’est pire refaits la manip pour essayer un autre pilote. Si il ne se passe rien après avoir fait crtl + alt + backspace, revenez en section graphique (ctrl + alt +F7) et réessayez. S’il ne se passe toujours, rien, pas de chance, cette combinaison a été désactivée pour votre distribution.

Deux possibilités maintenant:

  • Vous vous apprêtez à plusieurs essais, ou bien vous souhaitez réactiver la combinaison dans l’un des cas contraire, passez à l’étape suivante.
    – Retournez dans le terminal virtuel, rééditez le fichier xorg.conf, et rajoutez à la fin la section que vous trouverez sur tuxplanet, mais ne redémarrez pas l’ordinateur après .
    – enregistrez le fichier
    Passez à l’étape suivante
  • Nous allons maintenant redémarrer X manuellement.
    ps -A | grep X
    – notez le numéro de PID de Xorg
    – faites un kill PID (éventuellement en root si ça ne marche pas). Notez que j’ai dit kill et pas kill -09, nous souhaitons ici une terminaison correcte du processus, pas un arrêt brutal. Ne rajoutez le -09 que si ça ne marche pas autrement.

Après ça le serveur X redémarre, et normalement ça marche mieux. Sinon vous avez tous les outils pour refaire des essais. Pensez aussi à jeter un coup d’oeuil à la documentation francophone d’Ubuntu (même si vous n’êtes pas sur cette distribution, ce qui concerne le Xorg et les cartes graphiques reste valable)

Comment se procurer une clé gpg par des voies détournées..

gpg

Le gros problème avec les clés gpg, c’est que le serveur de clés gpg intégrés aux machines unix utilise un port particulier pour se connecter à internet. Si celui-ci s’avère bloqué, c’est le début de la galère. Heureusement, il est possible d’ajouter les clés manuellement, a condition de réussir à mettre la main dessus en recherchant sur Internet. Alors voici une manière de faire qui marche parfois.

Admettons que lors d’un update des listes de paquets, la console vous sorte un truc du genre:µ
W: GPG error: http://mirror.noreply.org jaunty Release: Les signatures suivantes n’ont pas pu être vérifiées car la clé publique n’est pas disponible : NO_PUBKEY CFF71CB3AFA44BDD

  • Repérez les 8 derniers caractères, ici AFA44BDD.
  • Allez sur google et recherchez [« AFA44BDD » site:http://subkeys.pgp.net/%5D (sans les crochets)
  • Parmis les résultats, il y en a qui tombent sur des pages bloquées par le proxy (donc a priori valides) et d’autres qui passent mais qui retournent des erreurs http. Oubliez ces derniers et concentrez vous sur les résultats bloqués par le proxy.
  • Recherchez sur google un de ces sites de surf anonymes qui servent justement à contourner les proxy, et surfez sur les url bloquées.
  • Bon l’ennui, c’est qu’il faut aussi trouver le petit non de la clé, mais si vous faites en parallèle une recherche sur google portant sur le nom que vous avez, vous devriez trouver tout un tas de petits gars qui ont eu le même problème que vous et qui ont posté sur des forums, faut chercher un peu mais ça se trouve, ici c’était : « 94C09C7F »
  • Faites une recherche dans la page sur un lien qui pointe sur ce nom, et vous devriez arriver sur une page internet qui contient la clé vous pouvez pas la louper, elle ressemble à l’illustration de ce billet. Ne vous souciez pas de la longueur. Celle qui sert d’exemple à ce post fait trois kilomètres, mais parfois elles sont toutes petites.
  • Enregistrez la clé dans un fichier, ouvrez vos sources de mise à jour, aller dans sécurité, ajoutez une clé, sélectionnez le fichier où vous l’avez enregistré, refaites un apt-get update, avec un peu de chance, c’est bon.

IMPORTANT: LE TRUC DONNE DANS CET ARTICLE EST DE TYPE RECETTE DE GRAND MERE. CA MARCHE DANS CERTAINS CAS, RIEN NE DIT QUE ÇA MARCHERA DANS TOUS LES CAS. PAR AILLEURS CE TUTO CONTOURNE LA MANIÈRE DE FAIRE OFFICIELLE. UTILISEZ LA A VOS RISQUES ET PERILS. JE DECLINE TOUTE RESPONSABILITÉ EN CAS DE DISFONCTIONNEMENT DE N’IMPORTE QUEL ORDRE SURVENU A VOTRE ORDINATEUR PAR SUITE DE L’APPLICATION DE CE TUTORIEL.

[Avancé] clés GPG et cyptage asymétrique

gpg

Je vais essayer d’être aussi concis que possible, mais je vais devoir faire une brêve introduction à la cryptographie. Pendant des siècles, la cryptographie a été à clé unique. Par exemple si je prend cet article et que je décide de décaler chaque lettre de l’article de 6 lettres dans l’alphabet, j’aurais alors a=f, b=g, c=h et ainsi de suite. Bien sûr le moyen de décodage est totalement symétrique, il suffit de faire l’inverse. Ca vaut pour cet exemple ultra simple, et vaut également pour tout un tas de codes compliqués, comme le code symbolique de Louis XIV ou la machine enigma. A chaque fois on prend un message original, on le triture de manière plus ou moins complexe pour le coder, et celui qui le reçoit doit connaitre le procéder de codage (la clé) et l’inverser.

Mais le défaut énorme de ce type de codage, c’est qu’il faut que l’émetteur et le récepteur se rencontrent au moins une fois pour convenir de la clé. Dans le monde d’aujourd’hui où des gens se parlent d’un bout du monde à l’autre, ce n’est pas trop faisable. Heureusement le cryptage asymétrique a été inventé: au lieu d’une seule clé, il y en a deux, une publique, et une privée. Et là ou c’est très fort, c’est que ce qui est crypté avec la clé publique ne peut être décrypté que par celui qui possède la clé privée et vice versa.

L’intéret est énorme: Il suffit que chacun donne sa clé publique dans un catalogue ouvert à tous, et tout le monde pourra lui envoyer des messages cryptés sans l’avoir rencontré au préalable. Et lui, il peut utiliser sa clé privée pour crypter ses messages et les signer. Ca permet de garantir l’authenticité du message. Si marc reçoit un message de paul et qu’il veut être sûr que c’est bien paul qui a envoyé le message, il utilise la clé publique sur le message signé par paul avec sa clé privée, et si quelqu’un a essayé de se faire passer pour paul il sera tout de suite repéré puisqu’il ne connait pas la clé privée de paul et n’a donc pas pu signer le message.

Bien sûr tout ça est extrêmement simplifié, et vous trouverez sans doute bien plus de détails sur les sites dédiés au cryptage Asymétrique, au chiffre RSA et à GnuGPG. En tout état de cause, voici une application directe: Une clé gpg est la clé publique d’un éditeur de logiciel. Celui-ci utilise sa clé privée pour signer ses logiciels, et nous pouvons utiliser la clé publique pour vérifier que les logiciels que nous trouvons sur internet viennent bien de lui et pas d’un quelconque pirate qui aurait bidouillé le logiciel pour y introduire un malware.

Ce procédé est très connu dans le monde de Linux, et en particulier dans les distributions issues de Debian, il est utilisé pour garantir l’authenticité des paquets non issus des dépots officiels.

Capturer le localhost dans WireShark/Ethereal sous Windows

Je ne sais pas si certains d’entre vous bossent sur des projets telecom, mais il est une situation dans laquelle on se retrouve tôt ou tard: avoir besoin de tester deux logiciels censés communiquer entre eux par le réseau sur son propre ordinateur, et vouloir sniffer le réseau pour savoir ce qu’ils se disent exactement. Problème, wireshark (nouveau nom d’Ethereal) capture tout ce qui passe par la carte réseau, mais dans le cas de communication réseau internes à l’ordinateur, les paquets empruntent des raccourcis qui les font échapper à cette capture. Comment tricher pour les avoir quand même? Une façon de faire consiste à les forcer à passer par la carte réseau, en indiquant à windows que tous les paquets en provenance de notre ordinateur et à destination de notre adresse ip doivent emprunter la passerelle par défaut.

I visualisation des paramètres initiaux :

D’abord on fait un ipconfig pour repérer son adresse ip, et la passerelle par défaut. Par exemple on obtient ça:

C:\>ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix  . : toto.titi.tata.com
IP Address. . . . . . . . . . . . : 192.168.16.53
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.16.2

Tant qu’on y est, on peut aussi regarder les paramètres par défaut de routage interne :

H:\>route print 192.168.16.53 | find « 192.168.16.53 »
192.168.16.53  255.255.255.255        127.0.0.1       127.0.0.1       20

Le résultat dit que les paquets à destination de mon adresse IP doivent être redirigés sur mon localhost. C’est ce que nous allons changer.

II Forçage du passage des paquets par le routeur :

Nous allons donc ajouter une route à Windows en lui disant que pour router des paquets vers notre adresse IP, il faut passer par le routeur:

H:\>route add 192.168.16.53 mask 255.255.255.255 192.168.16.2 metric 1

Regardons maintenant les nouveaux parametres de routage de windows :

H:\>route print 192.168.16.53 | find « 192.168.16.53 »
192.168.16.53  255.255.255.255        127.0.0.1       127.0.0.1       20
192.168.16.53  255.255.255.255 192.168.16.2 192.168.16.53       1

La nouvelle route a bien été ajoutée. L’étape suivante concerne notre application qui tourne en interne : Au lieu de lui donner l’adresse hote interne 127.0.0.1, il faut lui donner l’adresse hôte externe, dans cet exemple 192.168.16.53. Une fois que c’est fait, nous pouvons lancer ethereal/wireshark  et notre application, et les paquets seront capturés.

III Résoudre le problème du dédoublement des paquets :

Seul petit problème, le trajet des paquets va être le suivant :
1)      Le paquet part de l’application cliente sur notre ordinateur
2)      Il est routé vers le routeur
3)      Le routeur nous le renvoie
4)      Le paquet est reçu par l’application serveur sur notre ordinateur

Et dans le cas du trajet serveur -> client, c’est la même chose.

Ca implique que chaque paquet passe deux fois par notre carte réseau, et que du coup tous les paquets seront capturés en double par wireshark/ethereal. Pour pallier à ce petit problème, il suffit d’ajouter un filtre dans wireshark, pour lui indiquer par exemple de bloquer les paquets sortant de la carte réseau du routeur. Par exemple, si en plus vous ne voulez que les paquets snmp, et que votre carte réseau a pour adresse 00:ab:cd:ef:12:34, indiquez le filtre suivant dans wireshark/ethereal:

snmp && !(eth.src == 00:ab:cd:ef:12:34)

Et le tour est joué!

IV Rétablir les choses dans leur configuration d’origine :

Lorsqu’on n’a plus besoin de capturer les paquets, il n’est pas nécessaire de polluer le routeur plus longtemps. Il suffit d’enlever la route ajoutée au II :

H:\>route delete
192.168.16.53
H:\>route print 192.168.16.53 | find « 192.168.16.53 »
192.168.16.53  255.255.255.255        127.0.0.1       127.0.0.1       20

Et tout est de retour à l’état initial.

I visualisation des paramètres initiaux :

D’abord on fait un ipconfig pour repérer son adresse ip, et la passerelle par défaut. Dans mon cas ça donne ça :

H:\>ipconfig

Windows IP Configuration

Ethernet adapter Local Area Connection:

Connection-specific DNS Suffix  . : rennes.eu.thmulti.com

IP Address. . . . . . . . . . . . : 141.11.149.18

Subnet Mask . . . . . . . . . . . : 255.255.240.0

Default Gateway . . . . . . . . . : 141.11.159.1

Tant qu’on y est, on peut aussi regarder les paramètres par défaut de routage interne :

H:\>route print 141.11.149.18 | find « 141.11.149.18 »

141.11.149.18  255.255.255.255        127.0.0.1       127.0.0.1       20

Le résultat dit que les paquets à destination de mon adresse IP doivent être redirigés sur mon localhost. C’est ce que nous allons changer.

II Forçage du passage des paquets par le routeur :

Nous allons donc ajouter une route à Windows en lui disant que pour router des paquets vers notre adresse IP, il faut passer par le routeur :

H:\>route add 141.11.149.18 mask 255.255.255.255 141.11.159.1 metric 1

Regardons maintenant les nouveaux parametres de routage de windows :

H:\>route print 141.11.149.18 | find « 141.11.149.18 »

141.11.149.18  255.255.255.255        127.0.0.1       127.0.0.1       20

141.11.149.18  255.255.255.255     141.11.159.1   141.11.149.18       1

La nouvelle route a bien été ajoutée. L’étape suivante concerne notre application qui tourne en interne : Au lieu de lui donner l’adresse hote interne 127.0.0.1, il faut lui donner l’adresse hôte externe, dans mon cas 141.11.149.18. Une fois que c’est fait, nous pouvons lancer ethereal/wireshark  et notre application, et les paquets seront capturés.

III Résoudre le problème du dédoublement des paquets :

Seul petit problème, le trajet des paquets va être le suivant :

1) Le paquet part de l’application cliente sur notre ordinateur

2) Il est routé vers le routeur

3) Le routeur nous le renvoie

4) Le paquet est reçu par l’application serveur sur notre ordinateur

Et dans le cas du trajet serveur -> client, c’est la même chose.

Ca implique que chaque paquet passe deux fois par notre carte réseau, et que du coup tous les paquets seront capturés en double par wireshark/ethereal. Pour pallier à ce petit problème, il suffit d’ajouter un filtre dans wireshark, pour lui indiquer par exemple de bloquer les paquets sortant de la carte réseau du routeur. Par exemple, dans mon cas, je ne veux que les paquets snmp, donc j’indique le filtre suivant à wireshark/ethereal :

snmp && eth.src != 00:19:b9:2e:45:cf

Et le tour est joué!

IV Rétablir les choses dans leur configuration d’origine :

Lorsqu’on n’a plus besoin de capturer les paquets, il n’est pas nécessaire de polluer le routeur plus longtemps. Il suffit d’enlever la route ajoutée au II :

H:\>route delete 141.11.149.18

H:\>route print 141.11.149.18 | find « 141.11.149.18 »

141.11.149.18  255.255.255.255        127.0.0.1       127.0.0.1       20

Et tout est de retour à l’état initial.