Bonjour vie privée

Je pourrais me lancer dans une grande dissertation sur la manière de protéger sa vie privée sur internet, et sur tous les mômes qui s'en foutent aujourd'hui, et pleureront demain. Mais comme rien n'est plus pédagogique qu'une démonstration, surtout avec une fille à poil, en voici une.
Vous connaissez presque tous, j'en suis sûr, le site bonjourmadame.fr. Pour les autres, sachez jusque que ce site présente une fois par jour une photographie de jeune femme sexy (comprendre nue), les contributeurs (et/ou l'administrateur) n'hésitant pas à supprimer la signature du photographe, et à convertir de temps en temps le résultat en noir et blanc parce que ça donne une caution artistique.
Parfois, un fan du concept un peu zélé va poster une photo de sa copine. C'est déjà un peu limite car rien ne dit si la copine est d'accord, ou même si les gens qui pilotent le site s'en soucient. Mais le fan est prudent, il ne veut pas qu'on reconnaisse sa copine, alors il lui coupe la tête dans un recadrage un peu barbare. Le bougre croit qu'il est bordé, que plus rien ne peut lui être reproché. Ce qu'oublie notre bonhomme c'est que la protection de la vie privée ça ne se fait pas par dessus la jambe, et qu'un coup de ciseaux dans une photo ou tout autre type de document ne suffit pas toujours.
Ainsi, certains logiciels conservent dans les méta données du fichier un aperçu de l'image d'origine. Moi je trouve ça particulièrement marrant, mais la copine sûrement moins.

bonjour vie privee, ou comment finir à poil dans les EXIF d'une photo
Sur la capture ci-dessus, j'ai bien sûr flouté la jeune fille. Bonjour vie privée !

edit du 2 février 2013 : il a récidivé avec la même jeune et pulpeuse demoiselle. Cette fois en nu intégral.

L4D2: hit a key to stop team kill

L4D2 is a very nice game: loads of zombies and weapons in coop or versus challenges, nice maps… But with every popular game around, one day or another you'll find yourself playing with assholes. This kind of players that join your game in the middle of a map, shoot everybody, kill themselves, and leave, forcing you to replay the map. Of course it's always in expert mode, the harder one, and you can't do anything because it's so fast to kill your character when playing expert. It happened to me 3 or 4 times in just 2 days, always in expert mode of course. So I designed a key binding that helps stoping "team kill", giving you some time to ban and/or kick the killer without ruining the game.
It requires a server running Source Mod, and that you have the authorization to send sm_cvar commands to this server.

Locate your autoexec.cfg file somewhere in left 4 dead 2/left4dead2/cfg/, or create one if it does not exist yet. Open it in your favorite text editor, and paste the following code:

bind "o" "sm_cvar mp_friendlyfire 1;wait;sm_cvar survivor_friendly_fire_factor_expert 0.5;wait;sm_cvar survivor_friendly_fire_factor_hard 0.3;wait;sm_cvar survivor_friendly_fire_factor_normal 0.1"
bind "p" "sm_cvar mp_friendlyfire 0;wait;sm_cvar survivor_friendly_fire_factor_expert 0;wait;sm_cvar survivor_friendly_fire_factor_hard 0;wait;sm_cvar survivor_friendly_fire_factor_normal 0"

Change "o" and "p" by the letters you want to use. In this example, pressing "p" key will turn off every friendly fire damages, the "o" key will turn them back on.

When a team killer joins your game and starts shooting your teammates (and you), you might be fast enough to press the "p" key, rendering the killer mostly harmless, before he makes too much damages. Feel free to ban/kick the f*cker.

Enjoy.

Loi informatique et libertés : fail.

Il est de notoriété publique que les opérateurs de téléphonie mobile accumulent tout un tas de données personnelles sur leurs clients. Notamment, les dates et heures de synchronisation à leur réseau d'antennes, ce qui permet sans grand effort d'obtenir une géolocalisation de votre téléphone en fonction du temps, même un an après.
Toutes ces données sont normalement accessibles à l'abonné, en vertu de la loi dite "Informatique et Libertés" (loi n°78-17 du 06 janvier 1978). J'ai donc décidé de demander à mon opérateur (Bouygues Télécom) l'intégralité des données relatives à mon abonnement. Je me suis fendu pour l'occasion d'une missive papier dont voici le contenu censuré :

24 janvier 2012

Monsieur,

Je suis client Bouygues Télécom depuis plus de 7 années. Mes coordonnées sont :

Patrick Proniewski
13 rue XXXXXX 6900X Lyon

Numéro : 06 67 XX XX XX
Numéro client, tel qu'indiqué sur ma facture : 1.78XXXXX
Numéro de série de portable : 3543XXXXXXXXXXX

Conformément à la loi "Informatique et Libertés" n°78-17 du 06 janvier 1978, je souhaite que vous me fassiez parvenir l'intégralité des données correspondant à mon abonnement, à ma carte SIM, à mon téléphone. Notamment, mais pas uniquement, toutes les données en votre possession concernant les communications, et les synchronisations de mon portable avec le réseau d'antennes (données de géolocalisation notamment), sur l'intégralité de la durée de mon abonnement.

Les données devront être lisibles sans logiciel spécifique (export texte ou pdf, format csv ou tabulé...)

Sincère salutations,
Patrick Proniewski

Puis j'ai attendu. Longtemps. Jusqu'au 15 juin 2012 en fait, jour où j'ai reçu contre signature une grande enveloppe, très fine. La lettre d'accompagnement disait précisément ceci :

Objet: Exercice du droit d'accès (1)

Lettre recommandée avec AR

Monsieur,

Pour faire suite à votre courrier, veuillez trouver ci-joint la liste des informations à caractère personnel que Bouygues Telecom détient sur votre compte client.

Nous vous informons que cette présente liste des données est établie selon les délais de conservation notifiés à la Commission Nationale de l'Informatique et des Libertés (CNIL).

vous souhaitant bonne réception de la présente.

Veuillez agréer, Monsieur, l'expression de mes sentiments distingués.

Service Inforntatique et Libertés
Direction des Systèmes d'Information

(1) Les données nécessaires au traitement des courriers reçus par le service Informatique et Libertés sont enregistrées dans un fichier informatisé à son usage exclusif pour l'accomplissement de ses missions. Vous pouvez exercer votre droit d'accès aux données vous concernant et les faire rectifier en vous adressant au service Informatique et Libertés - Bouygues Telecom - 13-15 Avenue du Maréchal juin - 92366 Meudon La Forêt Cedex

On notera avec amusement que le service informatique et libertés de Bouygues a introduit une close récursive dans sa réponse. En matière de liste des données personnelles, c'est par contre beaucoup moins drôle, puisque cela se limite à une page et demi de rien, de non-sens, dont je livre la plus grosse partie ci-dessous :

la blague de Bouygues

La seconde page ne contient que 4 lignes de tableau, reprenant exactement les 2 dernières lignes de la première page, seule la date change. Autant dire, je n'ai rien, et cet accès à mes données personnelles est juste un coup d'épée dans l'eau.
Peut être mon opérateur actuel sera-t-il un peu plus bavard ?

Activer le partage d’écran sur un Mac, à distance

Parfois, on est bêtement coincé par un tout petit problème. Mon dernier problème en date était de pouvoir interagir avec une application graphique, sur un Mac à plusieurs kilomètres de distance. Et bien sûr, je n'avais pas activé au préalable le partage d'écran sur cette machine. Rassurez-vous, ça se fini bien, et ça se règle en quelques secondes. Voici comment faire pour un Mac en 10.5 ou 10.6 :

  1. Connectez-vous à la machine en SSH, via un compte admin (ben oui, il y a quand même quelques pré-requis)
  2. Tapez les commandes suivantes : sudo -s puis echo "enabled">/etc/ScreenSharing.launchd

C'est fini. Le partage d'écran est activé sur ce Mac.

Sauvegarde : ceinture et bretelles

Les recommandations sur le thème des sauvegardes foisonnent sur internet et dans la presse informatique. Chacun y vante sa méthode, ses logiciels, etc. Pour ne pas être en reste, et parce que je pense que la manière dont je procède à mes sauvegardes personnelles est intéressante, je vais présenter ci-dessous les quelques principes sur les quels je m'appuie. Continue reading

Que nous apprend l’affaire « Gawker »

Comme je l'évoquais brièvement dans un précédent article, les serveurs de l'entreprise de média en ligne Gawker ont été piratés récemment, avec pour conséquence immédiate la diffusion au public des logins, emails, et mots de passe chiffrés de plus d'un million d'utilisateurs. Pour plusieurs centaines de milliers d'entre eux, les mots de passe avaient même été déchiffrés avant leur diffusion.
Pour quelqu'un comme moi les dessous de l'affaire sont croustillants, et les détails techniques sont même passionnants. Mais, plus important : tout le monde a une leçon à tirer de ce fiasco monumental.
Cette leçon, et non des moindres, est la suivante : dès l'instant où vous confiez un mot de passe à quelqu'un, ce mot de passe est vulnérable. Ça paraît tout bête comme ça, on se dit "mais oui, c'est sûr qu'en donnant mon mot de passe à mon voisin, alors il n'est plus secret". Non. Relisez bien la leçon, elle est à prendre au premier degré. Oubliez votre voisin, votre copine. Vous créez un compte chez Hotmail, vous choisissez un mot de passe pour pouvoir accéder plus tard à votre boîte mail, vous fournissez ce mot de passe à Hotmail. Ça y est, ce mot de passe n'est plus sûr. Un jour, c'est inévitable, c'est déjà arrivé, et ça arrivera à nouveau, des serveurs Hotmail seront piratés et votre mot de passe pourrait tomber dans les mains de quelqu'un.
L'affaire Gawker est bourrée d'exemples illustrants parfaitement ce principe. Les employés de chez Gawker s'échangeaient des mots de passe par chat, dont les archives des conversations ont été piratées. Le piratage des bases de données des sites de Gawker a montré que les mots de passe des utilisateurs n'étaient pas sécurisés : le chiffrement utilisé était archaïque et connu depuis des années pour être déficient, etc. etc.
Continue reading

De la sécurité de vos mots de passe

En terme de mot de passe, on nous rebat souvent les oreilles avec des recommandations sécuritaires qui tombent sous le sens. Par contre, les arguments qui sous-tendent ces recommandations sont parfois largement infondés.
Tout d'abord, on nous dit de ne pas choisir un mot de passe facile à deviner, c'est bien sûr du bon sens. On nous dit que le mot de passe doit être long, car les ordinateurs actuels permettent de tester des milliers de mots de passe par seconde. Plus le mot de passe est long, plus il sera long à trouver. Certes. C'est mathématiquement exact. Mais à quoi arrive-t-on si on force les gens à utiliser un mot de passe à la fois long et compliqué ? Ils vont utiliser le même mot de passe partout, ils vont le noter quelque part, etc.
Imaginons un instant qu'un pirate tente de deviner votre mot de passe de messagerie. Il a une très bonne connexion internet, et son ping (le délai qui s'écoule entre le moment où il envoie une requête au serveur, et le moment où le serveur dit qu'il a bien reçu cette requête) est de 10 millisecondes. Il faut ajouter à cela le temps de traitement sur le serveur, et l'envoi de la réponse. Mettons pour simplifier que la totalité de la transaction dure 20 ms. Si votre mot de passe de messagerie fait 8 caractères différents et qu'il utilise des lettres minuscules (26 possibilités), des lettres majuscules (26 possibilités), et des chiffres (10 possibilités), c'est probablement assez correct. Ce mot de passe utilise donc 8 caractères différents pris dans une série de 62. Soit un total de 136325,9 milliards de mots de passe possibles. À raison d'un mot de passe testé toutes les 20 ms, cela donne plus de 864 siècles, pour tester tous les mots de passe.
Maintenant, ajoutez des caractères parmi @#&"'(§!)-_$*/:;.,?+ (20 possibilités), et il faudra presque 9114 siècles pour tester tous les mots de passe.
Moralité, la puissance des ordinateurs permet effectivement de tester des millions de mots de passe par heure, mais la latence des connexions internet rend ce mode d'attaque quasiment impossible, car elle ralentit terriblement le processus.
Continue reading

Installer un serveur dédié « Source » sur FreeBSD 8

Source Dedicated Server, le serveur de jeu dédié de Valve pour Team Fortress, Left 4 Dead et Counter Strike (entre autres), est un logiciel Linux ou Windows, propriétaire. Donc les choses ne se présentent pas forcément très bien pour une installation sur FreeBSD. Cependant, il n'y a pas beaucoup d'efforts à faire pour installer et faire fonctionner ce logiciel grace à la compatibilité Linux de FreeBSD.

Dans un premier temps il faut activer, si ce n'est déjà fait, la compatibilité Linux dans le noyau de FreeBSD :

# chargement manuel du module
kldload /boot/kernel/linux.ko
# activation du chargement automatique au démarrage
echo 'linux_enable="YES"' >> /etc/rc.conf 

Ensuite (et pas avant), on peut installer les librairies Linux. Pour FreeBSD 8, il faut installer la version f10 :

portinstall -PP linux_base-f10

Attention, si vous êtes en FreeBSD 64 bits (amd64), le package refusera de s'installer, il faudra alors utiliser :

portinstall linux_base-f10

On termine de préparer l'environnement de compatibilité Linux en montant le système de fichier procfs. Il faut ajouter la ligne suivante au fichier /etc/fstab

linproc         /compat/linux/proc      linprocfs       rw 0 0

puis faire un

mount -a

Enfin, on peut installer le client steam :

portinstall linux-steam

En réalité, c'est seulement un logiciel de mise à jour du client steam qui est installé, il faut lancer la mise à jour pour que la vraie commande steam soit installée. Je fais cette étape deux fois :

cd /usr/local/steam/
./steam
# on attend la fin de l'exécution
# puis on recommence 
./steam

Le binaire steam est maintenant installé, à jour, et totalement fonctionnel. Via ce client, il est possible d'installer n'importe quel jeu compatible. Voilà comment procéder pour installer Left 4 Dead 2 :

./steam -command update -game left4dead2 -dir /chemin/du/jeu

On remplacera /chemin/du/jeu par le chemin du répertoire dans le quel on souhaite stocker les fichiers du jeu. Attention, pour Left 4 Dead 2 il y a environ 8 Go à télécharger. Si vous êtes sur de l'UFS, c'est donc 8 Go de stockage qui seront consommés. Si vous êtes sur un volume ZFS avec compression GZip, il faut compter environ 4,2 Go d'espace disque consommé. Le téléchargement est assez long, faites une pause, voire même, lancez la commande avant d'aller vous coucher.

Après cela, le répertoire /chemin/du/jeu contiendra un répertoire left4dead2. Dans ce dernier se trouve un script de lancement qui permet de démarrer le serveur dédié Source : srcds_run.
Voici un exemple de lancement :

cd /chemin/du/jeu/left4dead2
./srcds_run -ip 192.168.1.1 +sv_lan 1

L'option -ip permet d'imposer l'IP sur la quelle le serveur écoute. C'est très utile car le script est d'une bêtise monumentale. En effet, pour une raison que j'ignore, le serveur dédié se lance par défaut en utilisant la toute première IP configurée dans le fichier /etc/rc.conf même si la ligne est commentée !
C'est à dire que si votre rc.conf contient les lignes suivantes :

#ifconfig_em0="inet 192.168.128.201  netmask 255.255.255.0"
ifconfig_em0="inet 193.30.227.216  netmask 255.255.255.192"

et bien cet abruti de serveur tente de se lancer sur l'IP 192.168.128.201, alors que, bien sûr, l'IP n'est pas active. Épargnez votre santé mentale, imposez dès le départ une IP à srcds.
L'option +sv_lan 1 quant à elle impose un fonctionnement sur le LAN uniquement, ce qui permet aisément de tester le fonctionnement du serveur sans l'ouvrir sur le monde.

Vous devrez veiller à quelques points de détail :

  • le firewall doit autoriser les connexions TCP et UDP sur les ports 26901 et 27015.
  • le jeu peut (doit) être lancé avec un utilisateur non privilégié. Créez un compte pour l'occasion, avec un shell /bin/nologin, et toute autre mesure de protection que vous jugerez nécessaire.
    Attention, faire tourner le jeu avec un utilisateur non privilégié n'est pas forcément très simple, surtout si vous l'avez installé en root. J'ai découvert que lancer le jeu une première fois en root peut régler certains problèmes.
  • l'utilisateur en question devra notamment pouvoir écrire dans les répertoires /chemin/du/jeu/left4dead2/update, /chemin/du/jeu/left4dead2/left4dead2 et /chemin/du/jeu/left4dead2/left4dead2/{downloads,logs} et dans les fichiers /chemin/du/jeu/left4dead2/left4dead2/*.cache
  • il devra aussi pouvoir exécuter les fichiers /chemin/du/jeu/left4dead2/srcds_run /chemin/du/jeu/left4dead2/srcds_linux

Pour un utilisateur non privilégié, en "nologin", le moyen fiable de lancer le serveur est d'utiliser sudo, dans un screen pour être tranquille :

cd /chemin/du/jeu/left4dead2/
screen nice -n -5 sudo -u utilisateur_steam ./srcds_run -ip 192.168.1.1

Avec tout ceci, votre serveur doit être fonctionnel, et permet déjà de jouer. Le plus dur reste à faire, puisque de toute l'histoire de l'informatique, ce sont les serveurs de jeu qui détiennent la triste palme des logiciels les moins bien documentés au monde. Créez un fichier /chemin/du/jeu/left4dead2/left4dead2/cfg/server.cfg et testez des combinaisons jusqu'à obtenir le résultat souhaité.