Sommaire
L’appareil Mooltipass — principe de fonctionnement
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
L’équipe de Mooltipass lance en ce moment une campagne Kickstarter pour son dernier appareil : le Mooltipass Mini BLE. Comme tout le reste de l’écosystème, micrologiciel et matériel 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 est ainsi utilisée. En se perdant dans les fichiers sources sur le projet GitHub officiel, vous pourrez ainsi trouver :
- un format de stockage de fichiers (graphiques, chaînes de caractères, fichiers binaires, etc., et doc) ;
- un format de stockage de base de données (doc) ;
- 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 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
Afin de faciliter les contributions, un émulateur de Mooltipass Mini BLE est disponible, pouvant être compilé sur Windows ou GNU/Linux. Celui‑ci est ensuite directement reconnu par l’écosystème, permettant de directement tester ce dernier.
Le logiciel compagnon — Moolticute
Moolticute est le logiciel compagnon du Mooltipass, compatible GNU/Linux, Windows et macOS, et entièrement libre. 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.
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, ou encore un agent SSH, mc-agent, qui fait le lien avec les clefs SSH stockées dans l’appareil.
Exemples :
moolticute-cli login get mywebsite.fr raoulh
mysql -u root -p=$(moolticute-cli login get mydb root)
Les extensions
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é
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.