<emb161|center>
[MAJ du 8/10/2013] Le projet est financé à 170%, vous êtes vraiment cools ! J'ai ajouté des achievements, vu qu'il reste encore une vingtaine de jours pour la campagne.
[MAJ du 15/10/2013] Le projet est financé à 226%, wow !!! Pour le coup je cale sur un achievement pour les 250%, mais je vais essayer de trouver un truc fou, promis. Encore merci aux soutiens, et si vous souhaitez encore participer sachez qu'il reste des Super Minitel Entertainment System =)
Comme certains d'entre vous le savent (ou ont pu s'en rendre compte), je me suis replongé il y a peu de temps dans le domaine fou et super passionnant du hardware hacking. Le recyclage d'un minitel, l'étude des tickets de métro, les bidouilles sur msp430 ou mon projet de piratebox basée sur Raspberry Pi, j'ai essayé de m'intéresser un peu à tout, et ça m'a éclaté. Alors j'ai eu une idée.
Crowdfunding for all
Lors de la réalisation de ces projets, j'ai du faire face à plusieurs problèmes, en vrac: * schémas faux ou incomplets disponibles sur Internet * manque de documentation * improvisation avec le matériel du bord * achat du matériel réparti sur plusieurs mois, dans le cas de certains projets (Ratbox par exemple)
Depuis mon hack de minitel, j'ai plein d'autres idées qui nécessiterait d'être creusées et que vous pourriez trouver intéressantes: * création de périphériques USB maison à base d'Atmega * étude de trucs bizarre comme les boîtiers affichant les prix dans les supermarchés * module de monitoring réseau électronique à base de micro-contrôleur * hacking d'impression 3D (modding, amélioration) * étude de matériel divers, des STB aux machins électroniques bizarres
Je ne vous cache pas que pour le coup, je ne suis pas en mesure d'acheter tout ce dont j'ai besoin ou de tenter de les réaliser ... Et là, une petite révélation: pourquoi ne pas faire appel au financement participatif (crowdfunding) ? Bien sûr, l'idée n'est pas de m'acheter tout plein de trucs avec l'argent des autres, loin de là. Par contre, documenter complètement l'ensemble des projets (chose que je fais en partie sur ce blog), partager des documents opensource permettant de reproduire mes bidouilles, ça je sais faire. Et distribuer des trucs et bidules que j'ai créé, ça serait cool.
Open It !
C'est comme cela que le projet "Open It !" est né. Mon premier projet de financement participatif. L'objectif fixé est de 400€, histoire de couvrir les frais d'achat de matériel, et de pouvoir entamer les projets dans le pipe rapidement.
Je vous invite donc à jeter un oeil à ce projet sur Ulule, et si l'initiative vous plaît à la soutenir et en parler autour de vous ! Promouvons l'Open Source Hardware ! Hackons du matériel et faisons des trucs geekesques et fun !
Symbole de l'avancée technologique française des années 1980, le minitel a arrêté son service le 30 juin 2012. Alors beaucoup de gens, ne voyant plus l'utilité de la bestiole, s'en sont lâchement séparés à grand coup d'annonces sur Le Bon Coin, Ebay, ou tout simplement à la déchetterie. Quel dommage. Il y a vraiment mieux à faire avec un minitel que le mettre au rebut.
Avant la Nuit du Hack 2013, je me suis fixé comme mission de sauver au moins un de ces spécimens d'une fin atroce afin de le recycler et de lui donner une nouvelle jeunesse. J'ai cherché une annonce sur un site spécialisé, trouvé un minitel à sauver pour sept euros et une heure et demi de métro, et récupéré le malheureux. Son ancienne propriétaire me l'a laissé sans le moindre état d'âme.
Bon, et maintenant ?
Avant de poursuivre, passons notre vieux minitel au scanner. Sa composition est relativement simple:
La carte de contrôle intègre un modem, un micro-contrôleur, de la mémoire, et une partie gérant le clavier du minitel. C'est vraiment de la vieille facture, mais ce n'est pas plus mal: l'ensemble n'étant pas miniaturisé, il est plus facile de découvrir le schéma électronique de cette carte.
Plusieurs options s'offrent à nous: * reprogrammer le micro-contrôleur pour en faire ce que l'on veut * utiliser le port DIN à l'arrière pour le transformer en terminal série * utiliser le minitel en tant que moniteur et intégrer un raspberry Pi dedans
La dernière option m'a semblé intéressante, surtout que l'on dispose de beaucoup de choix en ce qui concerne les applications du raspberry Pi. Une qui m'a bien botté, certainement par pure nostalgie et esprit rétro, s'appelle RetroPie. RetroPie est une distribution intégrant des émulateurs de console, avec une interface intuitive. Pourquoi ne pas transformer ce vieux minitel et lui donner une nouvelle jeunesse en le changeant en console de jeu ? L'idée m'a plu, et je me suis lancé.
Réutiliser l'écran du minitel
L'écran n'est rien d'autre qu'un tube cathodique piloté par une carte vidéo. Coup de chance, plusieurs personnes ont déjà étudié le problème et trouvé des solutions. La meilleure d'entre elle consiste à concevoir une carte électronique réalisant l'adaptation d'un signal vidéo composite vers les connecteurs spécifiques au minitel. Ces connecteurs sont assez particuliers, car il s'agit de piloter le signal envoyé à la cathode du tube pour afficher des nuances de gris à l'écran, tout en se connectant à la carte vidéo pour lui envoyer le signal de synchronisation.
Comme je le disais, un schéma de carte d'adaptation est présent sur le net, et je me suis donc empressé de prototyper une carte à partir de celui-ci. Avant toute chose, comprendre le montage.
<emb159|center>
La carte d'adaptation a deux tâches essentielles à assurer: * l'amplification du signal vidéo * l'extraction du signal de synchronisation vidéo des données de trame
L'amplification est basée sur un montage amplificateur à transistors, qui au final module une tension de 44V environ en fonction du signal et qui l'envoie à la cathode du tube. La séparation de synchro est effectué par un composant spécialisé, le LM1881, qui se charge de séparer le signal de synchronisation de la composante de trame. Afin d'éviter l'affichage de rayures lors du retour de balayage, l'amplificateur doit être shunté (signal à 0) lorsque l'on a terminé le balayage d'une ligne sous peine de voir des rayures apparaître. C'est ce que l'on appelle le "blanking".
Seulement voilà, il s'avère que le schéma trouvé sur le net est truffé d'erreurs: * la patte 5 du LM1881 utilisée dans le schéma correspond en réalité à la patte 6 * les diodes utilisées pour la commutation de blanking sont montées en inverse
J'en ai donc profité pour refaire les schémas et réaliser une première version de PCB après prototypage réussi sur breadboard.
<emb154|center>
Fabrication de PCB
Une fois le PCB conçu (éléments placés et routés), il m'a fallu trouver un moyen de le produire. Plusieurs techniques sont possibles, dont notamment la conception faite à la maison, à l'aide d'une insoleuse et de perchlorure de fer. Le problème ? Je n'ai absolument pas ce matériel. Peut-être en allant dans un Fab Lab ? Aucun à portée de main. La dernière solution: tenter de produire une petite série via Internet.
En réalité, j'ai tout fait de chez moi, de la commande des composants à petits prix à la réalisation de PCB. Pour la réalisation de PCB, j'ai découvert OSHPark, un service en ligne relativement sympa qui permet de faire produire ses PCBs à petit tirage (multiple de 3), tout en permettant à d'autres de les réutiliser. De l'open-source version PCB. j'étais un petit peu anxieux quant à la réalisation du PCB, mais au final cela a pris environ 3 semaines entre la commande et la réception du colis, pour une trentaine d'euros. Ce n'est pas très cher, car mon PCB était vraiment pas optimisé pour faciliter le "débogage" et les modifications de dernière minute.
Mon PCB sur OSHPark:
<emb155|center>
Voici ce que j'ai reçu:
<emb156|center>
Après montage des composants et soudure:
<emb157|center>
Test de la carte d'adaptation
Une fois la carte prête, il s'agit de la tester en production. Je connecte donc la carte au minitel (carte vidéo et cathode du tube), puis sur le raspberry Pi que je boote ... Et l'écran s'illumine, avec une image quasi parfaite ! J'avoue que cela faisait peut-être 8 ans que je n'avais pas fait de PCB, mais bon apparemment c'est comme le vélo, ça ne s'oublie pas.
<emb158|center>
La première version est fonctionnelle, mais plusieurs améliorations peuvent être apportées: * Routage plus efficace, avec une carte plus petite * Intégration d'une alimentation stabilisée +5V, pour auto-alimenter le raspberry Pi et pouvoir vraiment l'intégrer à 100% dans le minitel * Un amplificateur audio + HP, histoire de mettre un peu de son
Bref, je suis bon pour faire une seconde version de la carte. En intégrant l'alimentation 5V et un routage double face plus efficace, le prix de revient de 3 PCBs est de moins de 15 euros, soit moins de 5 euros par PCB ce qui est plutôt pas mal. Avec l'ampli audio, cela prendra un peu plus de place et donc sera un peu plus cher (de l'ordre de 7 euros). Je n'ai pas encore eu le temps de finaliser la version 2, mais j'y travaille.
Minitel Entertainment System
La base de mon Minitel Entertainment System est quasiment prête. Il ne me reste plus qu'à intégrer RetroPie sur une carte SD, et y mettre des roms. J'ai privilégié une installation par les sources, plus longue mais plus fiable. Une fois installé, il me faut connecter une manette. Wait ... Je n'ai pas de manette USB !
Mais j'ai une Wii, avec des wiimotes et un dongle USB bluetooth. Et c'est largement suffisant, car debian possède un paquet spécifique pour utiliser une wiimote en tant que périphérique d'entrée. J'installe le paquet et insère un script shell permettant de le lancer automatiquement au démarrage. J'en profite pour forcer l'allumage d'une des quatre LEDs du bas de la manette pour indiquer la bonne connection, et configurer celle-ci pour qu'elle soit reconnue comme un joystick. Pour terminer, j'ai configuré l'ensemble des boutons pour pouvoir m'en servir comme manette de Super NES. J'ai fait cela avec le raspberry Pi connecté à ma TV, c'est tout de même plus simple.
Une fois le tout reconnecté dans le minitel, avec la carte d'adaptation vidéo en place, je peux profiter de mon prototype de Super MES:
Et la suite ?
La suite est relativement simple, car je ne compte pas en rester là: créer la version 2 de la carte d'adaptation pour pouvoir loger dans le minitel le raspberry Pi et un HP pour du son. Une fois cela fait, je compte bomber et stickeriser le minitel, voire pourquoi pas prendre en compte son clavier, mais ça c'est un autre projet.
Pour terminer, je compte mettre sous une licence opensource le PCB et les schémas, afin que d'autres puissent s'en servir et pourquoi pas améliorer le montage.
A suivre ;)
Liens utiles
La Nuit du Hack est l'évènement majeur de la communauté Hackers française, généralement organisée fin juin, qui réunit passionnés, professionnels et novices autour d'un thème commun: le hacking. Ce n'était rien de moins que la onzième édition qui se déroulait ce week-end à Disneyland Paris, autour de talks, de workshops, de challenges et de bière (ainsi que des soft drinks, bien sûr). Zou, visite guidée des coulisses de l'organisation de la NDH version 2013 !
Un an de préparation
La méthode est désormais rodée: à peine la Nuit du Hack terminée, l'organisation de la suivante démarre. Cela représente un an de travail acharné pour seulement 24 heures, ce qui n'est pas rien. La recherche de sponsors, la préparation des CFPs, les débuts de conception de design graphique ainsi que les grands axes d'orientation de l’événement se décident à ce moment. C'est aussi l'occasion de faire l'état des lieux des éléments à améliorer, de prendre en compte les remarques constructives des visiteurs envoyées par email, twittées ou parfois même bloguées. On attache une importance toute particulière aux soucis rencontrés et aux solutions possibles. Par exemple, décision fut prise l'année dernière de cabler le wargame plutôt que de se baser sur du WiFi (qui se fait sniffer/polluer chaque année) et de mettre le CTF dans une salle à part. Il n'y a jamais eu de Nuit du Hack sans cafouillages ou problèmes, même cette édition a eu son lot d'ennuis qu'il a fallu gérer.
Ensuite, il y a toute la logistique à superviser. Ce qui va de l'agencement des salles avec plans et tout le toutim aux moyens techniques et à la planification. Il faut aussi gérer en parallèle les qualifications, la conception de l'infrastructure du CTF et du wargame, la réalisation des épreuves de ces deux concours et celle du réseau global à déployer lors de l'évènement. Les partenaires tels que Zen Connect ou Orange sont d'une grande aide en ce qui concerne cette partie, tout comme Outscale (via majinboo) ou OVH (un big up à toute l'équipe !). Sans oublier la communication (Hicham & Lucie).
Un CTF remanié
Cette année, nous sommes partis sur un CTF différent des années précédentes. Il s'agissait toujours d'un CTF attaque/défense, mais cette fois-ci basé sur un scénario et un concept nouveau: la suppression pure et simple des flags formatés. Chaque équipe avait à sa disposition un pare-feu frontal (couche 2) et un serveur hébergeant des services, et se voyait mise dans la peau d'une société réalisant des solutions de DRM (nommée GZT) et devant assurer la pérénité des données de ses clients. Bien sûr, l'objectif est simple: protéger ses données tout en récupérant celles des autres équipes. La nouveauté résidait dans le fait que les données constituaient ce que l'on nomme couramment des "flags": des éléments d'information ayant de la valeur. Les équipes devaient donc voler ces données, et les diffuser sur un portail que nous leur avions mis à disposition, une sorte de Pastebin. A chaque fois qu'une équipe divulguait des informations ayant de la valeur, des points étaient attribués à celle-ci et autant étaient retiranché aux équipes attaquées.
L'infrastructure a été elle aussi repensée et adaptée: la solution de virtualisation a été revue, l'infrastructure simplifiée et l'administration facilitée. Tout cela pour éviter de reproduire les erreurs de l'année précédente. Le matériel prêté par OVH a d'ailleurs été d'un grand secours: ils nous ont prêté de sacrées machines avec des capacités de fou furieux ! Encore une fois, merci à vous ;).
L'installation chez Mickey
On a déménagé tout le matériel le jeudi précédant la Nuit du Hack, durant Hack in Paris, et tout installé dans une salle technique. Depuis quelques années, cela se déroule sans trop de problème car nous nous sommes équipés. Tout est sur roulettes, empilable, et étiqueté. Et avec un camion à hayon, le transport se déroule sans encombre.
Une fois à Disneyland, le premier problème. Un problème d'alimentation. Une personne est venue nous installer suffisamment de puissance pour alimenter nos baies, afin que l'on termine les tests de déploiement ainsi que les configurations de certaines machines. Un peu trop de puissance en fait. Résultat: un bon vieil arc électrique et une imitation de Claude François évitée de justesse. Moins trois alimentations qui n'ont pas supporté la décharge. Qu'à cela ne tienne, le spare est là pour cela: le tout est changé rapidement.
<emb150|center>
<emb151|center>
L'installation de la baie dans la salle dédiée au CTF a été faite le lendemain, et nous avons passé une bonne partie de la journée à câbler, gaffer, tester, déployer et déboguer les systèmes. Et il fallait bien cela. Cette phase s'est terminée le samedi à midi environ.
Le grand bain
La Nuit du Hack a ouvert ses portes relativement tôt (je n'ai pas su réellement à quelle heure, j'ai profité comme quelques autres de la nuit pour essayer de bien dormir), et à 9 heures la salle commençait déjà à être parsemée de geeks et hackers de tout poil. Et on attendait toujours Jérémie Zimmermann, le conférencier en charge de la keynote. Clad a pris la parole, salué tout le monde, tandis que nous tentions désespérément de le contacter. Quelques temps après, des nouvelles de Jérémie et la keynote a ainsi pu se faire sans souci (mais avec du retard). La journée commençait bien. Ceci dit, mieux que l'année dernière car l'an dernier à 9 heures nous n'avions plus d'alimentation dans toute la salle. Quelques soucis de WiFi ont aussi été géré, mais dans l'ensemble tout allait comme sur des roulettes à partir de 10 heures.
<emb152|center>
Les participants ont ainsi pu profiter des talks, des speakers, mais aussi des bars, des tables et du réseau déployé. Car oui, cette année il y avait du WiFi qui fonctionnait ! Toutes nos excuses à Dave Kennedy pour l'interruption inopinée de talk (pour cause de mauvais timing), mais cela a été rattrapé par la suite. Le stress du moment certainement. A 20 heures, changement de configuration de salle pour héberger les workshops et le wargame: les participants (1300 personnes environ) ont du sortir de la salle et se sont agglutinés dans les couloirs, où il est devenu difficile de circuler. Un point à résoudre pour la prochaine édition.
Au même moment, les équipes CTF entraient dans la salle dédiée afin de s'installer et de découvrir ce que nous leur avions préparé. Nous avons fait un rapide briefing avant de démarrer le jeu, expliquant aux équipes les règles et leur remettant par la suite un livret contenant le règlement, le détail de l'architecture et leurs accès. Nous leur avons donné 30 minutes pour accéder à leurs machines et les configurer (modifier les mots de passe, changer les règles de filtrage, etc ...), puis les avons connectés entre eux afin de déclarer officiellement la guerre ouverte. Petite frayeur pour l'équipe, les systèmes de monitoring ont remonté pas mal de rouge quelque temps après, les équipes découvrant les services et testant les premières attaques (des scans surtout). Le tout s'est stabilisé, et ceux ayant vu l'utilité du pare-feu frontal s'en sont plutôt bien tirés. Une équipe a choisi de laisser ses services inaccessibles ([technopandas]), par pur choix stratégique, mais a fait marche arrière quelques heures plus tard. Le dimensionnement était plutôt bon, vu la stabilité de l'infrastructure durant le CTF. Au final, une seule épreuve n'a pas été exploitée et le CTF remporté (à nouveau) par les russes de HackerDom. SoSix les talonnait de très peu de points, et la lutte finale s'est vraiment faite entre ces deux équipes. Une belle bataille en somme.
Remise des prix
A 6 heures du matin le dimanche, le CTF a été arrêté et les scores figés. Les russes de HackerDom ont validé à quelques minutes de la fin une série de données volées qui leur ont donné l'avantage, laissant à l'équipe SoSix très peu de temps pour compenser. A 7h00, les prix ont été remis aux équipes: * 4000€ TTC pour la première place (HackerDom) * 1 serveur dédié 16G OVH pour 1 an (SoSix) * 1 serveur VPS OVH pour 1 an (Sutegoma2)
Encore un grand bravo aux équipes, qui ont lutté durement pendant les 9 heures qu'ont duré ce CTF. On espère vous revoir l'année prochaine les gars !
Mot de la fin
Cette Nuit du Hack fut éprouvante. A l'heure où je rédige ce billet, j'ai encore les yeux bien rouges et du sommeil à rattraper. Mais elle fut riche en rencontres (oui, il n'y a que là que j'ai croisé un Ukrainien comprenant le français et trollant sur la sécurité), en rebondissements (côté CTF), et en pur plaisir. Et pour une fois, le wargame et le CTF ont fonctionné sans problème majeur. Et ça, ça fait très plaisir. Et oui, ce petit compte-rendu est très axé sur le CTF, mais eh, je n'ai pas pu suivre les talks ni les workshops.
J'attends avec impatience celle de l'année prochaine, en espérant que l'on arrive à faire aussi bien que l'édition 2013, avec plus de moyens, encore plus de fun et de hacks. J'espère sincèrement que vous avez apprécié cette NDH comme nous avons apprécié l'organiser, et sachez que l'on se démène pour arriver à tenir le niveau.
Pour terminer, je tiens à remercier tout particulièrement les personnes qui nous ont aidé à préparer ce CTF: Corbier, kaiyou, y0no, Benjamin, Bastien, Saiyan, UnclePecos, et Julien. Et désolé si j'en ai fait c*ier certains d'entre vous, le stress toussa ... Et puis encore un grand merci à toute la team OVH, et en particulier Henri: vous roxxez les mamans ours :). Un autre grand merci aux collègues d'HZV, aux anciens des débuts de la NDH (rappelez-vous, le cybercafé, la grange, cela a bien changé), et à tous les ghosts (80 personnes environ) sans qui cela n'aurait pas été possible.