Il y a quelques jours, j’ai eu la bonne surprise de voir ma demande a la beta de Let’s Encrypt être acceptée. A moi l’argent, la gloire et la crypto !

letsencrypt
Pour rappel, letsencrypt est une autorité de certification (CA) qui ne demande aucune validation humaine de leur part. Pas d’envoie de papiers d’identité ou autre preuves. Pour prouver que vous etes bien possesseur du domaine, il suffit que, lors de la génération du certificat, vous placiez un fichier json accessible a une url « mondomaine.com/.well-known/… ».

La procédure de génération est donnée (et risque d’évoluer d’ici la fin de la beta) mais en résumé:

Make sure your web server displays the following content at                                                                                           
http://mart-e.be/.well-known/acme-challenge/abcdef... before continuing:

{"header": ...}

Content-Type header MUST be set to application/jose+json.

If you don't have HTTP server configured, you can run the following
command on the target server (as root):

mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge
cd /tmp/letsencrypt/public_html
echo -n '{"header": ...}' > .well-known/acme-challenge/abcdef...
# run only once per server:
$(command -v python2 || command -v python2.7 || command -v python2.6) -c \
"import BaseHTTPServer, SimpleHTTPServer; \
SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map = {'': 'application/jose+json'}; \
s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \
s.serve_forever()"
Press ENTER to continue

Super, seulement wordpress ne me laisse pas créer des dossiers arbitraires dans mon dossier contenant le code (et c’est une bonne nouvelle en soit). Pour résoudre cela, un petit bricolage nginx s’imposait.

HTTPS sur un blog, c'est comme un éléphant-mitrailleuse. Ça ne sert pas a grand chose mais c'est cool!

HTTPS sur un blog, c’est comme un éléphant-mitrailleuse. Ça ne sert pas a grand chose mais c’est cool!


Dans la config nginx du blog, ajoutez un bloc location:

Mise à jour: Michel propose une solution plus simple sans s’ennuyer avec un serveur local en python!

server {
       listen 80;
       server_name mart-e.be;
       location ~ /.well-known {
            proxy_pass  http://127.0.0.1:7890;
       }
       
       # reste de la config pour wordpress
}

Où 7890 est un numero de port totalement arbitraire.
Ensuite, suivant +/- les conseils du wizard de letsencrypt

$ mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge
$ cd /tmp/letsencrypt/public_html
$ echo -n '{"header":...}  > .well-known/acme-challenge/abcdef...
$ python -c "import BaseHTTPServer, SimpleHTTPServer; SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map = {'': 'application/jose+json'}; s = BaseHTTPServer.HTTPServer(('', 7890), SimpleHTTPServer.SimpleHTTPRequestHandler); s.serve_forever()"

Notez que j’ai changé le numéro de port de 80 a 7890 dans les paramètres de HTTPServer.

On relance NGINX (nginx -s reload), continue l’exécution du wizard (press ENTER) et victoire !

Press ENTER to continue

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/mart-e.be/fullchain.pem. Your cert will
   expire on 2016-01-26. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.

Vous pouvez tuer la commande python une fois validé et retirer la config nginx (ou commentez, le certificat beta ne vaut que 90 jours).

En bonus, la config nginx qui va bien:

ssl_certificate /etc/letsencrypt/live/mart-e.be/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mart-e.be/privkey.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparams.pem;

Avec le fichier dhparams.pem servant à la génération d’une clef diffie-helman, via la commande openssl dhparam -out dhparam.pem 2048

Mozilla a un super générateur de config. J’ai prit la config moderne, désolé utilisateurs de vieux soft, je décroche ainsi un beau A sur le CryptCheck un peu nazi de Aeris !

CrptCheck

Vous pouvez maintenant accéder a mart-e.be en https !

Si le mot Brotli ne vous évoque qu’un chou au gout discutable, c’est normal. Il s’agit d’un nouveau logiciel de compression par Google qui vise à réduire la taille des pages transmises pour remplacer les bon vieux gzip.

Sur le ticket Bugzilla concernant son support dans Firefox, un ingénieur de chez Mozilla conseille d’éviter d’utiliser « bro » comme extension et ligne de commande en raison d’une potentielle connotation misogyne. Plutôt que d’ouvrir des débats lors de la phase de validation par l’IETF et le risque de choquer les gens, l’on propose de remplacer l’extension par « br ». Facile et court, adjugé, emballé, c’est pesé et l’on applique le changement sur GitHub.

La compression avant l'heure

La compression avant l’heure


Est-ce que c’est triste que l’on change une extension pour éviter le risque potentiel que sans doute des gens vont être choqués ? Non. Il est normal de respecter les croyances et opinions de tout le monde. Je ne vais pas utiliser .nigga dans mon programme en raison des connotations racistes qu’il pourrait avoir.

Est-ce que c’est triste de considérer « bro » comme misogyne ? Probablement mais reprochez cela à ceux qui l’utilisent avec une connotation sexiste. Si vous aimez les « bro-joke », tant mieux pour vous, sachez juste que ça peut choquer/vexer/énerver des gens et que l’argument de l’humour n’est pas excusable. Je ne suis certainement pas le dernier à aimer les blagues que certains trouveront de mauvais gout, j’évite juste d’en faire une commande shell.

Est-ce que, dans le fond, on s’en fout de cette extension bien technique pour un format qu’on ne verra probablement jamais sur nos PC ? Oui.

Vous vous prenez la tête pour cette merde ?

C’est vraiment ce que vous retenez de mon algo de compression ?

Seulement, on est sur internet, cet endroit merveilleux qui recueille un amas de trolls qui s’ennuient. Un poste sur slashdot, reddit, numérama et j’en passe et hop, 68 commentaires sur un commit de 2 caractères !

Ça va crier au chantage, a créer un grave précédent, à la manipulation du lobby féministe et jouer à celui qui va déterrer toutes les extensions existantes ayant une connotation potentielle. Allez, il manque plus qu’un petit hashtag, je propose #BroGate !

Au moins les chèvres ne se prennent pas la tête avec tant de bullshit

Au moins les chèvres ne se prennent pas la tête avec tant de bullshit

Il n’est pas triste qu’on soit dans un monde tellement politiquement correcte qu’on change un format pour quelque chose qui n’aurait surement dérangé personne. Il est triste qu’il y ai autant de gens que ce changement fasse réagir. On peut trouver ça stupide/normal/navrant/amusant/énervant comme décision mais ça reste mineur. C’est fait, ça ne vaut plus la peine de perdre du temps sur ces détails. Et si, dans le fond, on s’intéressait a implémenter ce logiciel, qui semble avoir des très bons taux de compression, plutôt que de se toucher la nouille ?

Retour sur CryptoStorm

12 septembre 2015

Il y a quelques mois, je parlais de mon achat d’un accès VPN en Bitcoin. J’avais choisi d’acheter un accès chez Cryptostorm, me laissant tenter par ses prix attractifs (+/- 4$/mois) et la bande d’hacktivistes derrière les commandes. Faisons le point sur le service (en commençant par ce qui fâche).

sur-ecoute

Chef, il écoute une musique de nyancat depuis 4h, c’est suspect non ?

Qualité

Je n’ai pas de point de repères avec d’autres VPN me permettant de dire si certains problèmes sont liés à ma machine ou à leur services. La plupart du temps, je ressens assez peu de différence de débits. Ne faisant pas confiance aux SpeedTests biaisés (priorisés par les opérateurs), un téléchargement BitTorrent d’une iso Ubuntu se fait en un temps similaire voir meilleur (passé de 10 à 9min pour une iso de 1,15GB, le VPN compresse les données après tout). Après, dans ma campagne Belge, on n’a pas vraiment la fibre optique…

Je dis « la plupart du temps » car cela m’arrive de remarquer des différences par moments. Étonnamment, cela dépens des sites. Des sites comme Facebook (avides en connexions multiples ?) deviennent inutilisables tandis que des sites plus « statiques » comme Reddit fonctionnent parfaitement (pas une grande perte donc). Changer de nœuds aide en cas de problème.

Avertissement: il n’est pas impossible que cette partie soit due à une mauvaise config/manipulation de ma part! Un aspect plus gênant est par contre la disponibilité des serveurs. Certains vont aléatoirement me refuser une connexion en fonction de l’humeur (pas souvent je vous rassure). Parfois, ils vont me demander un mot de passe (alors qu’il est facultatif sur CryptoStorm, seul le hash du token comme login est utile). J’ai particulièrement le cas sur Android où c’est cryptofree qui me donne encore les meilleurs résultats. La solution simple est d’avoir 2, 3 nœuds de sortie configurés et d’essayer un autre si le premier ne fonctionne pas.

Communication

Gros problème aussi de l’équipe de CrytoStorm, difficile de les avoir si on a besoin d’aide ou pose une question. Soyons clair, je n’ai jamais eu de réponse à mes emails au support ou envoies BitMessage (mise à jour 13/09: ai finalement reçu une réponse BitMessage aujourd’hui !). La communauté est active sur le forum mais c’est encore Twitter qui a été le moyen le plus efficace de communiquer avec eux. Mon impression est qu’ils sont occupés sur d’autres projets (voir plus bas) et ne répondent plus trop aux emails (normal, c’est pas drôle).

personnes-a-l'interieur-canalisation

Internet ce n’est qu’une question de tuyaux

Pour éviter les soucis de communication, je conseillerais (en tout cas, je tenterai pour mon prochain achat) de passer par un revendeur externe de tokens tel que vpnDark.net ou mirciado.com (il en existe d’autres) pour limiter les contacts avec eux (et en bonus, cela augmente également votre anonymat) mais ce n’est pas quelque chose que j’ai testé personnellement.

Sécurité

La raison pour laquelle je prend un VPN est principalement pour une meilleure sécurité de mon surf (MITM, DNS menteurs,…) et de ma vie privée (Snowden quand tu nous tiens). De ce coté, je ne peux que conseiller CryptoStorm. Encore une fois, je n’ai pas beaucoup de points de comparaison mais ils se détachent sur plusieurs points.

Leur système de token de connexion est par exemple bien pensé. Pour éviter de lier un accès à un achat (qui dit transaction monétaire, dit très souvent coordonnées bancaire, même en Bitcoin), on achète un token. L’authentification OpenVPN se fait avec le hash SHA512 de ce token (insérer ici des explications sur de la crypto que je ne comprend pas). Ainsi, Cryptostorm ne peut plus lier un achat avec un token (en tout cas si a été fait via un revendeur externe). Ils promettent supprimer l’historique de la transaction après confirmation mais c’est se baser sur leur bonne foie. Quand les VPN classiques vous disent « on ne garde pas de logs, faites nous confiance », CryptoStrom met en place des procédures pour ne connaitre que le moins d’information possible.

vitre-pare-balle

Faire confiance en la bonne foie d’un revendeur VPN

Concernant la sécurité du surf, ils font pas mal de recherche pour par exemple intégrer leur propre résolution DNS (qui résout nativement les .onion !), désactiver IPv6 (qui n’est pas supporté) via leur widget, s’intéresser au problème des certificats SSL et autres. Ils vont donc plus loin qu’un simple transit de donnée pour viser une meilleur sécurité de leurs utilisateurs.

Projets

Il est assez difficile de comprendre l’organisation de CS mais visiblement eux aussi. Ils (mais qui est « ils » dans le fond ?) encouragent le staff à travailler sur ce qui leur tient à cœur et ils ne se gênent pas.

Ils ont par exemple monté un miroir du dump des données de Hacking Team (hacking.technology) ou un proxy de KickAssTorrent leur permettant de troller des compagnies d’ayant droits.
Ils offrent également CryptoFree, un accès gratuit à CryptoStorm avec une bande passante limitée, bon à prendre pour ceux au budget limité (détails).
Leur compte GitHub est également remplit de code, configuration et publication de recherches en sécurité (analyse de malwares ou clients VPN propriétaires foireux).

Last but not least, ils viennent de publier sur CryptoHaven (un de leur blog) un article expliquant travailler sur un concept de multi-hop VPN (pour diminuer l’efficacité du monitoring d’un serveur individuel). Un peu de détails sur GitHub, pas encore très clair mais affaire à suivre.

mule dans une boite

CS mettant au point son dernier projet de… probablement quelque chose de bien

Il faut aimer fouiller un peu sur leur forum (déjà rien que pour trouver les fichiers openvpn, je conseille la config « smoothed ») et trouver les annonces aux milieux des memes sur Twitter. Autant c’est très bien de voir que le site bouge, autant cela donne un aspect brouillon dans lequel il n’est pas facile de se repérer. Mais ils en sont conscient apparemment, donc bon.

Conclusion

Est-ce que c’est un VPN que je conseillerais ? Tout dépend un peu de ce que vous cherchez. Si le manque de communication ou d’uptime vous dérange, je vous conseillerais de passer, il existe probablement beaucoup d’autres VPN plus sérieux (dans l’approche commerciale). Si justement le manque de sérieux, ce petit coté anarchique vous attire, foncez.

Personnellement j’ai une impression de gens inversement compétents techniquement qu’ils ne le sont commercialement (et ils sont d’accord). Le manque d’organisation m’énervait mais une fois qu’on se fait à l’idée qu’on devra se débrouiller sans réponse au mail, on s’amuse à suivre leurs discussions décalées sur Twitter. Et de mon point de vue de petit geek, ça me permet de leur faire bien plus confiance qu’à un revendeur impersonnel (en gardant bien en tête qu’on n’est jamais certain). Je vais donc rester chez eux. Si vous avez des Bitcoins (ou un compte Paypal) qui trainent dans un coin, allez-y !

En ses temps de mesures sécuritaires, j’ai voulu également augmenter ma propre protection. Comme tout le monde j’ai des choses à cacher et l’utilisation d’un VPN chiffré devient une nécessité. Pour corser l’expérience, j’ai voulu payer en Bitcoin. Je précise que je n’ai jamais acheté ni l’un ni l’autre. Ce n’était pas de tout repos.

William Clinton and President Boris Nikolayevich Yeltsin

– J’arrive pas, dis le toi!
– Nous ne procédons pas à d’écoutes massives de la population et respectons votre vie p…

1. trouver un provider VPN
3 jours à parcourir les comparateurs foireux ou juste demander (plus efficace). Je choisi finalement cryptostorm. Une société tenu des hacktivistes basés en Islande, un peu bordélique (il faut aimer fouiller les forums), pas trop cher (3-4$/mois), utilisant token anonymes assez original (en gros on achète des tokens à eux ou revendeurs indépendant, pas besoin de compte) et possibilité de payer en Bitcoin, Doguecoin & co.

Je parlerai probablement de Cryptostorm après quelques semaines/mois de tests mais j’avoue être assez fan jusqu’à présent.

2. trouver un revendeur Bitcoin
2 jours de comparateurs. J’avais tenté une fois bitstamp avant d’avoir ma transaction refusée par ma banque. Cette fois, j’ai essayé avec Kraken, pas trop de frais, clean, sécurisé (2 factors, ils envoient des emails signés avec GPG…. refusés par enigmail).

3. acheter des bitcoin
4 jours pour se rendre compte qu’on ne peut pas faire de virement, donner son nom et date de naissance pour passer en tier 2 (level up!), se rendre compte qu’on ne peut toujours pas déposer d’euro, donner son adresse pour passer en tier 3, faire un virement SEPA (50€ min), attendre qu’il soit réceptionné, se prendre déjà pour un tradeur, lire des articles de trading, abandonner l’idée, acheter quelques bitcoin à 213€/BTC sans savoir si c’est un bon prix.

femme assemblant un ordinateur

1975, un des premiers prototypes d’Asic Miner

4. réceptionner les bitcoins
2 jours à chercher un client bitcoin, pleurer en comprenant qu’il me faut 33GB d’espace disque pour stocker la blockchain, se faire conseiller sur twitter d’utiliser Multibit, découvrir vanitygen, perdre une journée pour avoir une adresse toujours aussi immémorable mais commençant par « 1marte », stresser comme un fou de perdre sa tune, se rendre compte qu’en fait c’est rapide et facile.

5. acheter l’accès VPN
2 jours à payer sur bitpay, se dire que mettre mon adresse email perso n’est pas la chose la plus intelligente, attendre, vérifier toutes les 5 minutes sa boite mail, aller consulter les logs de son serveur mail, se dire qu’on a probablement foiré un truc, installer Bitmessage pour contacter le support de cryptostorm, ne pas recevoir de réponse, se dire qu’en fin de compte Twitter c’est aussi un bon moyen de communication, recevoir une réponse d’excuse comme quoi ils étaient occupé à gérer SauronsEye (un méga-malware bien flippant), recevoir un token de 3 mois au lieu de 2 pour s’excuser, les pardonner.

6. se connecter au VPN
5 minutes à choper un fichier de config au choix (il y a une dizaine de points de sortie), utiliser le sha512 du token comme nom d’utilisateur sur OpenVPN (en ligne de commande, le client de NetworkManager me donne plus de fil à retordre), aller sur IPleak pour voir que je ne laisse rien filtrer, se rendre compte que je peux maintenant résoudre les URLs .i2p et .bit avec leurs DNS, retourner voir des gifs sur reddit.

Police dog

On the internet, nobody knows you are a dog…

Que retenir de tout ça ? Que cela m’a prit un temps assez délirant, principalement passé à faire des recherches (et heureusement, ça ira plus vite la prochaine fois). Il existe des tonnes d’alternatives pour chaque point (et je n’ai surement pas choisi les meilleures ou les plus faciles). C’est une très bonne chose d’avoir le choix mais ça noie le néophyte, il faut sacrément être motivé pour se protéger aujourd’hui.

Je précise aussi que si j’ai fais cela pour des raisons de sécurité, je suis bien conscient de pas être anonyme, on peut probablement me retracer à mes bitcoin ou achat du VPN, ce n’était pas le but (mais ça serait un beau challenge pour une prochaine fois).

On en reparle dans quelques semaines pour faire le point sur Cryptostorm.

Commentaires fermés sur Arrêtez de cartographier les bars, faites du HOT !

HOT pour Humanitarian OpenStreetMap Team, soit l’équipe humanitaire d’OpenStreetMap. Désolé à ceux qui espéraient un article digne de Sam & Max, on parlera de cartographie aujourd’hui !

hot-logo

Il y a quelques temps, je vous ai fait une présentation d’OpenStreetMap (TL;DR: le Wikipédia de la carte), superbe projet de cartographie communautaire dont je suis particulièrement fan. Cependant, s’il est plutôt amusant de cartographier l’arrêt de bus prêt de chez soit ou la niche du chien, on se lasse vite et doute parfois de l’intérêt de la tâche… Et si maintenant je vous disais que vous pourriez sauver des vies en contribuant a ce projet libre. Et bien sachez qu’il est possible de cartographier dans un but humanitaire.

gerardus-mercator-flemish-cartographer-photo-researchers-inc

Tremblements de terre, inondations, épidémies, famines et j’en passe, les catastrophes ne manquent malheureusement pas et touchent des zones difficiles d’accès (de par la catastrophe, situation géographique, politique, économiques ou autres). Pouvoir ou non faire circuler un camion de vivres ou médicaments jusqu’à un village peut signifier la vie ou la mort dans ces régions. Et pour finir sur un argument moins dramatique, lorsque l’on est trop radin que pour donner 5€ à la Croix-Rouge, c’est toujours plus sexy de dire qu’on a passé son dimanche à mapper une région du Népal touchée par le tremblement de terre plutôt que de glander dans son canap.

Maintenant que vous êtes convaincu de l’intérêt de la chose, comment contribuer ? Commencez par vous tenir informer. Le meilleur moyen est de vous abonner à la mailing list HOT. Le volume varie en fonction des évènements (beaucoup plus ces derniers temps), à lire en diagonale mais au moins ça vous permet d’être au courant des évènements importants nécessitant une action rapide.

Il y a eu une catastrophe nécessitant de mapper une région, vous êtes disponible pour cartographier une région, parfait ! (enfin non mais vous comprenez ce que je veux dire). Rendez-vous sur OSM Tasking Manager et trouvez la tâche créée à ce sujet. Une fois bien avoir lu les instructions (ne mappez que les routes, etc.), sélectionnez un fragment de la carte (si vous n’avez pas beaucoup de temps, vous pouvez même le subdiviser) et verrouillez le pour communiquer aux autres contributeurs que vous travaillez dessus. Vous êtes ensuite libre de choisir votre éditeur favoris. Personnellement j’utilise iD qui a l’avantage de fonctionner dans le navigateur (sans flash) et d’être assez intuitif.

tasker

Par exemple, dans le cas du Népal, la page wiki de la catastrophe, la section Task Manager affiche le progrès et les tâches les plus urgentes à réaliser. N’oubliez pas de toujours bien lire le wiki openstreetmap de chaque pays pour comprendre quelles sont les conventions (par exemple: les routes au Népal) ainsi que des guides au cas par cas, par exemple Nepal remote mapping guide (je sais je parle beaucoup du Népal mais ce n’est pas de gaieté de cœur).

asia-amp

Donc si, à la fin de la journée, vous voulez avoir le sentiment d’aider les gens, c’est un des meilleur projet libre que je connaisse. N’ayez pas peur si vous ne savez mapper qu’une partie du segment, c’est mieux que rien. En cas de doute, vous pouvez toujours demander.

En bref, aucune raison de ne pas participer, et pourtant si utile.

css.php