19
mai
'14

Atelier sur le hacking hardware à la Ndh 2014

Publié le 19 mai 2014

La Nuit du Hack 2014 arrive à grand pas, et comme promis je vais y co-animer un workshop traitant de hardware hacking avec TixLeGeek. Cet atelier pratique se veut être une initiation à différents domaines connexes à l'informatique, mais où l'on utilise ses dix doigts pour réaliser de vraies choses palpables, ce qui procure une satisfaction toute particulière (identique à celle que l'on trouve à coder).

Que va-t-on faire durant ce workshop ?

Différents aspects du hacking hardware seront abordés, dont notamment:

L'idée de cet atelier est de faire découvrir et démystifier le hardware hacking, de découvrir les joies de l'électronique et son utilisation couplée à des ordinateurs. Pour ce faire, l'édition de cette année de la Nuit du Hack a introduit un badge électronique, conçu par mes soins, sur lequel se basera ce workshop. Vous n'en avez pas acheté sur le site de l'évènement ? Pas grave, j'en ai quelques-uns en supplément, sous réserve de participer au workshop bien entendu.

Le badge réserve quelques surprises, car il peut notamment:

Quelques photos ont fuité sur Twitter, si vous voulez vous faire une idée du bazar !

Comment participer ?

Pour vous inscrire au workshop, rien de plus simple: il y a une campagne de financement participatif en ligne sur le site Ulule.fr . Pourquoi un financement participatif ? Parce que c'est simple, dans la philosophie communautaire, et que cela permet de faire des pré-commandes sans se prendre la tête.

Plusieurs "packages" sont disponibles, selon que vous ayez déjà acheté le badge en tant que goodie sur le site de la Nuit du Hack 2014 ou non, et en fonction de vos outils. Ainsi, si vous n'avez pas de fer à souder adapté, ni de multimètre et encore moins de plaque de prototypage, un package "Hardware Master + Badge Collector" est disponible, incluant un badge collector en kit à monter au workshop et tout ce qu'il faut pour bien débuter dans le hacking hardware. Si vous avez déjà un fer et du matériel, viendez avec et optez pour le package "Hardware Bonus + Badge Collector", afin de profiter de composants supplémentaires et d'un shield infrarouge collector pour le badge (permettant de faire de l'envoi/réception de données).

Et si vous avez déjà un badge de réservé, les mêmes contreparties sont prévues, mais sans le badge. Notez que je ne dispose ni d'un nombre infini de badges collectors, ni d'énormément de place pour le workshop =).

NB: la place pour l'évènement la Nuit du Hack 2014 n'est pas incluse dans le prix du workshop, mais vous en aurez besoin pour y participer. Si vous n'en avez pas encore, vous pouvez vous inscrire à la NdH 2014 sur le site officiel.

Et si on veut participer sans badge ni bonus matériel ?

Le workshop reste ouvert à tous, et vous pouvez très bien participer sans avoir le matériel nécessaire. Nous aiderons ceux qui souhaitent souder leur badge, et le bidouiller (on fournit aussi des idées), mais nous serons aussi disponible pour réaliser des hacks en tout genre lors de l'évènement, et on ramène même pour l'occasion pas mal de matériel divers ! Cependant, le badge électronique reste une bonne plate-forme de jeu pour les divers challenges à relever.

Au plaisir de vous y voir !

12
mai
'14

La Nuit du Hack 2014, c'est dans moins de deux mois

Publié le 12 mai 2014

Cette année aura lieu la douzième édition de la Nuit du Hack, un évènement majeur français regroupant des présentations liées à la bidouille et au hacking, mais aussi des ateliers et des challenges divers, autour d'environ 1500 personnes au centre de convention du New York Hotel, à Disneyland Paris. J'y serai présent encore cette année, comme chaque année depuis 2004.

2014, l'année des nouveautés

Cette douzième édition signe aussi l'apparition de nouveautés: un espace dédié aux kids proposant des ateliers liés au hacking, un nouveau challenge "Sploit'n'drink" ainsi qu'un bug bounty organisé en collaboration avec la société Qwant. De plus, un badge électronique collector (200 exemplaires) et compatible Arduino est disponible sur le site officiel de l'évènement (disponible jusqu'à vendredi prochain !).

J'ai d'ailleurs proposé un atelier dans le cadre de la Ndh Kids, de bidouillage de Nerfs accessible aux plus jeunes (et moins jeunes, aucune discrimination). Au travers de ces bidouilles non-informatiques, l'idée est d'initier à la réflexion les jeunes participants, et de déverrouiller leur potentiel de créativité. Et les Nerfs sont un super terrain de jeu pour cela.

Bug Bounty

La société Qwant propose aux participants du Bug Bounty de trouver des bugs/vulnérabilités contre des récompenses, d'une valeur de 5000€ au total. Et des bounty en plus.

Ce bug bounty est réservé aux participants de la Nuit du Hack, pour la durée de l'évènement. Pour plus d'informations, consultez la section dédiée du site de la Nuit du Hack.

Le badge électronique

Pour la douzième édition de la Nuit du Hack, j'ai conçu un badge électronique compatible Arduino, compatible USB et au design collector (cette photo est

Ce badge sera livré en kit, et un espace sera prévu (le workshop Open It, cf. ci-après) pour ceux qui voudront le monter et s'y frotter.

Les talks

La liste complète des talks est désormais disponible sur le site officiel de la NdH. Le talk que j'ai proposé et qui a été retenu, s'intitule "Break, crash and dump", et traite de hardware hacking, de la méthodologie et de l'approche du hardware hacker, et d'un exemple d'analyse sur un composant matériel rencontré. J'aborderai de fait les outils nécessaires au hardware hacker, et différentes ruses de sioux permettant de résoudre divers problèmes techniques. En somme, une bonne mise en bouche de ce que l'on pourra apercevoir, toucher et tester au workshop Open It.

Je co-présenterai un second talk avec l'ami Vorex (sobrement intitulé "Coucou, tu veux voir ma domotique ?") sur la sécurité des solutions domotique et les challenges à venir.

Workshop Open It

Suite à l'initiative Open It, et vu le soutien reçu pour celle-ci, un Workshop Open It a été débloqué par les soutiens du projet: celui-ci a été retenu par l'équipe organisatrice et aura donc bien lieu lors de la Nuit du Hack 2014, animé par moi-même et TixLeGeek !

Le workshop vise à démystifier le hacking hardware, au travers de différents hacks impliquant de l'électronique et de l'informatique. Pour ce faire, nous allons lancer une campagne de financement participatif afin de pouvoir gérer les inscriptions et le financement du matériel qui sera remis aux participants. Ainsi, il y a différentes contreparties selon que vous ayez déjà commandé un badge électronique sur le site de la nuit du hack et que vous désiriez que l'on vous fournisse tout le matériel nécessaire à la réalisation du badge (fer à souder, étain, pinces, multimètre et composants supplémentaires). Plus d'informations à venir, le projet de financement participatif est en cours de finalisation sur la plate-forme Ulule.

En parallèle, divers hacks seront montrés, et j'en réaliserai certains autres durant la nuit: mod de Nerfs, hacking de freebox v4 et v5, bidouilles de minitel, développement de hacks sur USB, etc ... Ce sera l'occasion aussi d'expliquer l'initiative Open It, de rencontrer les soutiens, et pour les participants de poser tout plein de questions voire pourquoi pas de lancer des idées et de participer à des hacks !

Inscription et venue

Depuis 3 ans, la Nuit du Hack se déroule au New York Hotel à Disneyland Paris. Les inscriptions sont ouvertes depuis quelques temps, accessibles sur cette page.

Pour ceux qui souhaiteraient venir à moindre frais,`le site Ouigo de la SNCF <http://www.ouigo.com/fr>`_ propose des billets à prix réduits arrivant directement à Disneyland (gare TGV de Marne-la-vallée Chessy).

Pour la nourriture sur place, il y a du choix (Earl of Sandwich, Mac Donalds, restaurants divers). Sinon vous pouvez aussi prévoir votre sandwich et vos boissons.

17
mars
'14

Raspio32, un module d'extension de GPIOs OpenSource pour Raspberry Pi

Publié le 17 mars 2014

Lorsque j'ai bidouillé mon clavier de minitel, et que j'ai notamment essayé de l'interfacer avec un Raspberry Pi (acheté chez Farnell, rappelez-vous), je me suis rendu compte que les GPIOs de ce dernier étaient vraiment limitées. Pour interfacer correctement le clavier, j'avais besoin de 17 GPIOs, alors que le RaspPi ne m'en offrait que 10 maximum. J'ai donc décidé de créer un module d'extension pour pouvoir prototyper sur Raspberry Pi, fournissant 32 GPIOs.

Raspberry Pi et son bus I²C

Après avoir passé un peu de temps à chercher sur Internet les solutions techniques connues pour Raspberry Pi, j'ai opté pour la solution la plus évidente: l'emploi du bus I²C («Inter Integrated Circuit»). Ce bus permet d'interfacer des composants électroniques, et notamment des convertisseurs série vers parallèle, comme le MCP23017. La communication avec ce composant est réalisé via deux fils (un signal d'horloge et un signal de donnée, ce qui correspond à une communication série) et permet d'utiliser 16 entrées/sorties (aussi appelées GPIOs pour «General Purpose Input/Output»).

Ces modules sont adressables, avec un codage d'adresse sur 3 bits. Cela signifie que l'on peut en chaîner au maximum 8, et potentiellement adresser 8*16 = 128 GPIOs. 32 seront suffisantes pour ce que je veux faire, et de plus il faudrait que le PCB soit à peu près de la taille du Raspberry Pi, pour que l'on puisse l'enficher un peu comme un shield Arduino. Plus intéressant, Lady Ada (une ingénieure en électronique/informatique qui a créé le site AdaFruit -- une référence -- a écrit une série d'articles sur la manière d'interfacer le Raspberry Pi avec un ou plusieurs MCP23017.

Plusieurs modules d'extension de ce type existent déjà sur Internet (comme [celui-ci->https://www.modmypi.com/protect-your-pi], ou encore [celui-la->http://www.abelectronics.co.uk/products/3/Raspberry-Pi/18/IO-Pi-32-Channel-Port-Expander-for-the-Raspberry-Pi-computer-boards]), mais il faut débourser d'une dizaine d'euros (sans les frais de port) à une trentaine d'euros. Pis, aucun PCB n'est disponible, et les schémas jalousement gardés. Qu'à cela ne tienne, j'ai alors opté pour la conception d'une version 100% OpenSource, et peu onéreuse.

Prototypage

La phase de prototypage a été rapide, une fois les composants reçus de mon fournisseur préféré. Quelques fils, un MCP23017 et le clavier de mon minitel m'ont servi à tester cette solution. Bien sûr, quelques réglages sont à effectuer sur le Raspberry Pi, notamment pour activer le support de l'I²C, mais au final c'est quand même relativement simple. Voici une photo montrant le montage:

Et le schéma électronique du prototype:

Et pour finir, le module en place sur le Raspberry Pi:

La bibliothèque Python de Lady Ada

AdaFruit fournit sur son Github un ensemble de bibliothèques Python permettant de manipuler l'I²C, et en particulier le MCP23017. Seulement voilà, bien que tout à fait fonctionnelle, cette bibliothèque n'est pas forcément utilisable en l'état vu que j'ai mis en place deux de ces composants et que j'en ai profité pour renommer les GPIOs. C'est pour cela que j'ai implémenté un dérivé de cette bibliothèque, dont le code source est libre et réutilisable, disponible sur Github.

Voici un exemple de configuration du module en Python, qui permet d'allumer une LED connectée entre la broche A0 et A1 du module (avec une résistance de 330ohms bien sûr):

from raspio import Raspio


board = Raspio()
board.config(board.A0, board.OUT)
board.config(board.A1, board.OUT)
board.output(board.A0, 0)
board.output(board.A1, 1)

Toute amélioration et/ou critique est la bienvenue, n'hésitez pas à faire des Pull Requests ;).

Une récompense aux soutiens OpenIt

Je possède actuellement deux de ces modules, dont un reste à monter, et me propose de les envoyer à deux personnes ayant soutenu le projet. Si d'autres personnes ayant soutenu le projet OpenIt sont intéressées, je peux éventuellement en produire à nouveau et les envoyer.

Pour les personnes n'ayant pas soutenu le projet, vous pouvez commander la board (pcb) nue sur OSHPark, en suivant ce lien.



Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.