jeudi 6 septembre 2012

Le Charpentier et le Tonneau

Il était une fois un beau petit village, peuplé de bien braves gens, dans un magnifique pays. Ce village devait sa prospérité à sa rivière, qui irriguait les champs, charriait du poisson à profusion, et guérissait des maladies grâce à ses merveilleux sels minéraux.

Les gens habitant la rive étaient très satisfaits de leur vie tranquille, mais ceux qui habitaient les collines voisines un peu moins, car ils n'avaient pas d'eau à disposition. Personne ne souhaite aller chercher de l'eau à pied, c'est trop loin. Le chef du village décide donc qu'il en est assez, et que les habitants des collines, eux aussi, doivent pouvoir profiter de l'eau.

Or, un voyageur de passage, lors de son bref séjour, a conté au chef les vertus du tonneau, une invention formidable d'une contrée lointaine qui permet de transporter des liquides à dos de bétail. Le chef y voit là une aubaine pour son épineux problème de transport d'eau.

Personne au village n'est tonnelier. Enfin si, il y a Jean-Paul qui habite derrière le moulin, et qui passe sa journée à lire des livres (ce sale paresseux). Il possède bien un livre sur les tonneaux, mais personne ne pense à le lui demander, parce que ma foi, Jean-Paul, il est bizarre.

Le Chef convoque donc les villageois et leur expose son projet. Parmi les villageois, il y a Roger le Charpentier. Puisque les tonneaux sont, d'après les dires du voyageur, faits de bois, Roger explique que ce travail lui est naturellement dévolu. Le Chef agrée, lui remets quelques croquis soutirés au voyageur, et donne carte blanche à Roger pour la réalisation d'un tonneau.

Roger assemble donc ses collaborateurs, et ensemble ils sélectionnent des planches dans leur réserve et les assemblent de leur mieux en un objet qui ressemble à un tonneau.

Jean-Paul, qui passe par là, radote sur ce qu'il a lu dans les livres, à propos de la fabrication des tonneaux, de l'importance de choisir le bon bois, de couper dans le bon sens, et de cuire le bois pour assurer l'étanchéité du tonneau. Tout le monde rigole: il est fou, ce Jean-Paul ! comme si fabriquer un tonneau pouvait être si compliqué. Et s'il est aussi compétent en tonneaux, il n'a qu'à en faire un lui-même, d'abord.

Le travail de Roger terminé, le Chef apporte une demi-amphore de vin et la verse dans le tonneau. Le vin coule par les fentes du bois au fond de la barrique.

Roger se rue vers le tonneau en criant "mais c'est rien, c'est rien du tout", et bouche le plus gros trou du fond du tonneau avec son chewing-gum. Puis il y verse une deuxième amphore. Le vin coule par un deuxième trou. Roger va chercher un autre paquet de chewing-gum.

Au bout de dix semaines de test avec une amphore, Roger assure au Chef que tous les trous du fond sont bouchés. Le Chef convoque le village pour une démonstration. On immerge le tonneau dans la rivière pour y prélever une bonne quantité d'eau. L'eau jaillit par une centaine de trous sur les cotés.

Certains parmi les villageois sont contrariés de l'échec du tonneau après tant d'efforts. Roger est un bon charpentier, mais ils préfèreraient voir le travail confié a un tonnelier. Mais contre toute attente, le Chef refuse hostilement l'ingérence de quiconque dans le travail de Roger: en effet, le Chef voit grand, et il est persuadé que le projet réussi, les villages voisins s'arracheront la précieuse technologie du tonneau. Il est donc hors de question de laisser quiconque entrevoir le processus de fabrication. Roger est donc chargé de boucher un a un les trous du tonneau avec du chewing-gum.

Le tonneau achevé, une grande cérémonie de lancement est organisée, le précieux tonneau est rempli de la merveilleuse eau, chargé en grande pompe sur un âne, et le cortège part en tournée. Il passera par les collines, puis par toutes les maisons du village (parce que les riverains aussi devraient pouvoir en profiter, du tonneau !). De liesse, certains villageois jettent leurs seaux par les fenêtres. Vive le tonneau, si pratique !

Lorsque le chargement arrive aux collines, le tonneau est vide. Les trous visibles avaient pourtant été bouchés, mais las, l'ensemble n'en était pas étanche pour autant.

Les villageois des collines, et les riverains imprudents, meurent de soif devant leur tonneau vide.

Fin.

mercredi 5 septembre 2012

TLDs compatibles IPV6

Suite a un message aperçu sur Twitter, un petit script de survey sur la compatibilité IPv6 des NS des TLD (annoncée, pas testée):

#!/bin/bash

for tld in `curl http://data.iana.org/TLD/tlds-alpha-by-domain.txt |grep -v '#'`
do
    echo -n "$tld"
    YES=0
    NO=0
    TOTAL=0
    for dns in `dig +short -t ns $tld`
    do
        let TOTAL++
        if
            dig -t aaaa $dns 2>&1 |grep "ANSWER: 0" >/dev/null
        then 
            let NO++
        else 
            let YES++
        fi
    done
    echo " $YES $NO $TOTAL"
done

Quelques résultats:

Nombre de TLD: 315
TLD sans aucun NS avec AAAA: 47
TLD avec AAAA pour tous les NS: 55
TLD avec AAAA pour certains NS: 213


mercredi 11 juillet 2012

Merci la poste

Sans oublier que le facteur a encore eu la flemme de monter 3 étages a pied, et a préféré se dire que personne n'etait la et laisser un avis de passage.


dimanche 8 avril 2012

Passage d'une zone en DNSSEC avec BIND et Gentoo

DNSSEC c'est le bien. Il a le potentiel de protéger vos communications bien mieux que le fiasco anarchique et surévalué des autorités de certification actuelles.

Or jusqu'à il y a peu de temps, Gandi offre enfin la possibilité d'annoncer ses clefs en amont, et d'avoir ainsi "the real thing". Ce n'est pas trop compliqué a faire.

D'abord, vérifier que net-dns/bind et net-dns/bind-tools sont a jour. (9.7 était problématique chez moi)

Créer un répertoire pour les clefs, puis générer deux clefs pour chaque zone (une ZSK et une KSK):

mkdir /etc/bind/keys
dnssec-keygen -K /etc/bind/keys -a RSASHA256 -b 2048 -f KSK xolus.net
dnssec-keygen -K /etc/bind/keys -a RSASHA256 -b 2048 xolus.net

On se retrouve avec quatre nouveaux fichiers, les parties privées (.private) et publiques (.key) de la ZSK et de la KSK. Les fichiers .key sont au format standard RR de BIND. La KSK est celle ayant un enregistrement de type DNSKEY 257.

On ajoute les deux clefs à la zone:

cat /etc/bind/keys/Kxolus.net*.key >>/etc/bind/pri/xolus.net.zone

Par la suite, et a chaque modification de la zone, il faudra la resigner avec

cd /etc/bind
dnssec-signzone -K keys -o xolus.net pri/xolus.net.zone

Ceci crée un nouveau fichier de zone, xolus.net.zone.signed, qui inclut une signature pour chaque record de la zone. Reste a éditer /etc/bind/named.conf pour utiliser le fichier ".signed" à la place. On recharge ensuite BIND avec
rndc reload

puis on valide la signature d'une entrée au hasard, avec dig:

dig +sigchase +trusted-key=<(grep -v ';' /etc/bind/keys/Kxolus.net.+008+28711.key) -t aaaa xolus.net
Ici on a utilisé la KSK comme racine de confiance. dig est pénible et s'étrangle sur les commentaires placés par défaut dans les fichiers par dnssec-keygen. Si cela fonctionne, vous pouvez maintenant envoyer votre KSK à votre registrar qui se chargera d'ajouterles DS correspondants à la zone. Pour la vraie vérification, commençons par récupérer la clef racine:
dig -t DNSKEY . |grep " 257 " >>/etc/trusted-key.key
Cette récupération est insécure, mais vous pouvez vérifier que la clef correspond à
.                       IN      DNSKEY  257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0Ez
rAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0=
Au demeurant, elle devrait déja être présente en dur dans /etc/bind/bind.keys, alors vérifiez que ça correspond. Une fois la clef racine dans /etc/trusted-key.key, un
dig +sigchase -t AAAA xolus.net
Devrait réussir si la validation en amont a fonctionné. La zone est maintenant DNSSEC-enabled. Reste maintenant a activer DNSSEC du côté du resolver local. Avec BIND on ajoute simplement
dnssec-validation auto;

dans named.conf.

Reste encore a couvrir les zones dynamiques, et le mécanisme d'auto-signature intégré a BIND.

jeudi 15 mars 2012

shatag v0.3

Après une longue session de codage intensif, j'ai le plaisir d'annoncer la sortie de la v0.3 de shatag (https://bitbucket.org/maugier/shatag.) Les nouvelles fonctionnalités sont:
  • un démon utilisant inotify pour recalculer les tags automatiquement
  • un client et un serveur HTTP avec un protocole restful léger
  • des backends modulables, ce qui permet le fonctionnement (inefficace) sur les OS sans extended attributes.

(Pour rappel, c'est un logiciel qui permet de garder trace des hashes sha256 des fichiers présents sur un filesystem, et de les comparer.)

mercredi 15 février 2012

Ron was wrong, Whit is right

Seems like we are creating quite a bit of noise with our recent survey on public key cryptography.

So, here is a little FAQ addressing the nonsense popping out in random comments of random sites on the net.

Q: But this is just the Debian bug !
A: No it isn't. It's more like a whole class of similar but unrelated bugs.

Q: OMG RSA is broken !
A: We haven't broken RSA. We have demonstrated the existence of flawed RNG implementations. You are still safe if you use a proper implementation.

Q: They claim it can be done, but they haven't, it's like these collision stuff / Saying that these keys offer no security is an overreaction
A: Yes, we have. We had the factorizations of 27k RSA moduli taken from SSL certificates not belonging to us. If/when a collection of these weak key leaks, all the tools needed to make this a practical eavesdropping attack already exist as free software.

Q: Heniger, Halderman et al. have twice as many broken keys, and have identified the source of the flaw. Most of them do not belong to real websites and pose no threat to the general public.
A: We seem to have just as many broken keys. Some numbers in the paper are based off an old dataset, and were left as-is as they are still representative of the situation. And we did know many (but not all) of them belonged to VPNs and other network devices, but didn't want to disclose it too early, for obvious reasons. It is true that popular https websites may not be at immediate risk for the general public; it is still, however, a serious matter of concern.

https://www.eff.org/deeplinks/2012/02/researchers-ssl-observatory-cryptographic-vulnerabilities

http://eprint.iacr.org/2012/064.pdf

jeudi 19 janvier 2012

Sunrise bloquent-ils le SSH en sortie ?

***UPDATE***: Le filtrage semble avoir disparu. La panne coïncidait avec une mise en maintenance de leur site web, y'avait-il un rapport ? Quoi qu'il en soit, merci Sunrise :)

Ceci est un appel à témoins pour les clients Sunrise possédant des smartphones.

Depuis hier, mon téléphone est mystérieusement incapable de se connecter en SSH à mes serveurs habituels via la connexion mobile 3G:

 - Si je déplace le serveur SSH sur un port alternatif, ça marche 
 - Si le téléphone est en wifi, ça marche
 - Le problème affecte 3 machines différentes, sur des réseaux complètement différents
 - Le problème n'apparait sur aucun de mes autres équipements clients

 Je crois qu'on peut conclure que le problème vient de leur réseau, délibéré ou pas.

Si j'observe les tentatives de connexion avec tcpdump, je recois le premier syn, en revanche le synack en retour semble ne jamais atteindre mon téléphone. J'observe 3-4 tentatives de connexion, après quoi le client ssh sur le téléphone abandonne.

Quelqu'un a-il observé un comportement similaire ? Je contacterai leur service technique demain pour savoir si c'est délibéré.