URL: https://linuxfr.org/news/a-la-decouverte-de-l-ecosysteme-mooltipass Title: À la découverte de l’écosystème Mooltipass Authors: limpkin Xavier Teyssier, Raoul Hecky, Xavier Claude, Davy Defaud, Benoît Sibaud et papap Date: 2020-07-29T22:43:23+02:00 License: CC By-SA Tags: open-source et open-hardware Score: 5 Le projet open source Mooltipass a été lancé il y a maintenant sept ans, avec pour but d’offrir une solution hors ligne de stockage de noms d’utilisateur et mots de passe, de petits fichiers et de clefs SSH. Au contraire des solutions similaires existantes sur ordinateurs et téléphones, le Mooltipass est un élément dédié qui effectue **seulement** les opérations de sécurité. Composé d’extensions navigateur (Chrome, Firefox et Opera), d’un logiciel de gestion de bases de données multi‑plate‑forme et d’un appareil dédié branché en USB ou Bluetooth, nous vous faisons découvrir le fruit de sept ans de travail de contributeurs non rémunérés. ![Mooltipass Mini BLE](https://www.themooltipass.com/_media_resources/minible_white_600px.JPG) ---- [Dépôt GitHub](https://github.com/mooltipass) [Kickstarter Mooltipass Mini BLE](https://www.kickstarter.com/projects/limpkin/mooltipass-mini-ble-security-on-the-go) [Site du projet](https://www.themooltipass.com/) ---- # L’appareil Mooltipass — principe de fonctionnement ![Principe Mooltipass](https://www.themooltipass.com/_media_resources/principle_700px.jpg) Les trois appareils Mooltipass (Mooltipass Standard, Mooltipass Mini et Mooltipass Mini BLE) reposent sur le même principe de fonctionnement : chaque appareil contient une base de données chiffrée (AES‑256) par une clef contenue sur une carte à puce, elle‑même verrouillée par un code PIN (entré sur l’appareil). Comme avec les cartes bancaires, trois tentatives erronées bloquent indéfiniment la carte. Une telle solution permet ainsi à une personne d’utiliser plusieurs appareils, et à plusieurs utilisateurs de partager un seul appareil. La carte à puce peut être clonée, la base de données peut être exportée. Pour éviter l’enfermement propriétaire (_vendor lock‑in_), l’équipe de Mooltipass fournit un script Python qui, avec un lecteur de carte à puce acheté sur le marché, permet de déchiffrer le fichier de sauvegarde d’un utilisateur. # Le Mooltipass Mini BLE — l’architecture interne ![Architecture Mooltipass Mini BLE](https://www.themooltipass.com/_media_resources/architecture_700px.png) L’équipe de Mooltipass lance en ce moment une [campagne Kickstarter](https://www.kickstarter.com/projects/limpkin/mooltipass-mini-ble-security-on-the-go) pour son dernier appareil : le Mooltipass Mini BLE. Comme tout le reste de l’écosystème, [micrologiciel](https://github.com/mooltipass/minible) et [matériel](https://github.com/mooltipass/minible_hw) sont _open source_. Comparé à ses prédécesseurs, le Mooltipass Mini BLE se caractérise par une architecture basée sur deux microcontrôleurs : l’un est dédié aux communications externes (USB et Bluetooth), l’autre à la partie sécurité. Le Mooltipass Mini BLE comprend aussi : - une mémoire Flash dédiée aux bases de données utilisateurs ; - une mémoire Flash dédiée aux ressources micrologicielles (graphiques, chaînes de caractères, mises à jour) ; - un écran OLED de 256 × 64 px monochrome ; - un adaptateur Bluetooth ; - une batterie NiMH pour une utilisation mobile. Côté micrologiciel, le processeur « sécurisé » n’utilise que des bibliothèques développées par l’équipe de Mooltipass, à l’exception bien sûr des fonctions de chiffrement : la librairie [BearSSL](https://bearssl.org/) est ainsi utilisée. En se perdant dans les fichiers sources sur le [projet GitHub officiel](https://github.com/mooltipass/minible/tree/master/source_code/main_mcu/src), vous pourrez ainsi trouver : - un format de stockage de fichiers (graphiques, chaînes de caractères, fichiers binaires, etc., et [doc](https://mooltipass.github.io/minible/bundle)) ; - un format de stockage de base de données ([doc](https://mooltipass.github.io/minible/database_model)) ; - une bibliothèque graphique avec gestion de la compression RLE et du tampon de trame (_frame buffer_). À noter que le micrologiciel gère l’[Unicode BMP](https://en.wikipedia.org/wiki/Plane_(Unicode)) et qu’il est possible de changer la langue de l’interface utilisateur (sont pour l’instant présents : anglais, français, allemand, italien, néerlandais, portugais, slovénien et finnois). L’équipe invite des contributeurs à rajouter des traductions en fournissant un fichier texte dédié. # Mooltipass Mini BLE — l’émulateur ![Émulateur Mooltipass](https://raw.githubusercontent.com/mooltipass/minible/gh-pages/images/emulator_tuto/4_emulator_working_ubuntu.PNG) Afin de faciliter les contributions, un émulateur de Mooltipass Mini BLE est disponible, [pouvant être compilé sur Windows ou GNU/Linux](https://mooltipass.github.io/minible/developing_using_emulator). Celui‑ci est ensuite **directement reconnu par l’écosystème**, permettant de directement tester ce dernier. # Le logiciel compagnon — Moolticute ![Moolticute](https://www.themooltipass.com/_media_resources/moolticute.png) Moolticute est le logiciel compagnon du Mooltipass, compatible GNU/Linux, Windows et macOS, et [entièrement libre](https://github.com/mooltipass/moolticute). Il est écrit en Qt. Celui‑ci permet de : * gérer ses fichiers, noms d’utilisateur et mots de passe ; * exporter, importer et synchroniser sa base de données ; * paramétrer son Mooltipass ; * réaliser l’interface entre les navigateurs et l’appareil. ![Moolticute](http://pix.toile-libre.org/upload/original/1596106781.png) Il utilise une architecture réseau avec un démon qui s’occupe de la communication avec l’appareil et qui exporte un protocole simple via [[WebSocket]] aux différents clients. Le principal client est Moolticute, mais les différentes extensions des navigateurs l’utilisent également. Il existe aussi des outils en ligne de commande pour interagir avec ses identifiants, [mc-cli](https://github.com/raoulh/mc-cli), ou encore un agent SSH, [mc-agent](https://github.com/raoulh/mc-agent), qui fait le lien avec les clefs SSH stockées dans l’appareil. Exemples : ```bash moolticute-cli login get mywebsite.fr raoulh mysql -u root -p=$(moolticute-cli login get mydb root) ``` # Les extensions ![Extension Mooltipass](https://www.themooltipass.com/_media_resources/github.png) Dernier élément de la chaîne, les extensions permettent à l’appareil de détecter automatiquement quand un couple nom d’utilisateur et mot de passe doit être enregistré ou entré sur une page. Lorsqu’une action est nécessaire, le Mooltipass vous invite à la confirmer directement sur l’appareil. Il est aussi important de noter que le Mooltipass permet aussi de « simuler » un clavier, vous permettant ainsi via son interface de lui faire taper n’importe quel texte dans n’importe quelle application. # Compromis entre facilité d’utilisation et sécurité ![Compromis entre facilité d’utilisation et sécurité](https://www.themooltipass.com/_media_resources/notif_prompt.png) Convivialité et sécurité ne vont pas forcément toujours de pair, et c’est pourquoi le Mooltipass Mini BLE permet aux utilisateurs de paramétrer leurs préférences. Par exemple, vous pouvez choisir si vous aimeriez approuver chaque requête de nom d’utilisateur ou tout simplement laisser l’appareil faire son travail. Les mises à jour des micrologiciels faisant l’objet d’une signature cryptographique, l’équipe espère ainsi pouvoir offrir de nouvelles fonctionnalités en fonction des contributions obtenues. Il est important de noter que l’appareil gère la nouvelle norme FIDO2/[[WebAuthn]], permettant une identification à des services sans nom d’utilisateur ou mot de passe, en utilisant des challenges cryptographiques.