À la découverte de l’écosystème Mooltipass

40
2
août
2020
Sécurité

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

Sommaire

L’appareil Mooltipass — principe de fonctionnement

Principe Mooltipass
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
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

Émulateur Mooltipass
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
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.

Moolticute

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

Extension Mooltipass
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é
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.

Aller plus loin

  • # J'hésite

    Posté par  . Évalué à 10.

    Je trouve ça très intéressant, j'ai juste peur que ça ne soit pas si pratique que ça. Actuellement, j'utilise un keepass synchronisé sur mon téléphone et mon PC, du coup, j'ai tout le temps mes mots de passe avec moi. Là, ça voudrait dire prendre toujours avec moi un appareil en plus (et toujours penser à le prendre).

    « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

    • [^] # Re: J'hésite

      Posté par  . Évalué à 2.

      Pareil, un keepass synchronisé régulièrement et une copie de sauvegarde dans un endroit différent, à l'abris et caché.

      • [^] # Re: J'hésite

        Posté par  . Évalué à 1.

        Ma question va paraître bête et peut-être indiscrète mais où est synchronisé votre keepass ?

        Je sais que le fichier kdbx est chiffré mais je pense qu'il faut vraiment avoir confiance en l'hébergeur du fichier.

        • [^] # Re: J'hésite

          Posté par  (Mastodon) . Évalué à 3.

          Avec syncthing tu peux synchroniser différents appareils qui t'appartiennent quand ils se retrouvent sur le même réseau.

          Il est aussi possible de s'arranger avec un tiers de confiance (famille ou amis) dont tu sais que leurs compètences leur permettre de sécuriser le tout correctement.

          Jami: beabb2b063da0a2f0a2acaddcd9cc1421245d5de

        • [^] # Re: J'hésite

          Posté par  . Évalué à 2. Dernière modification le 04 août 2020 à 08:12.

          Ma question va paraître bête et peut-être indiscrète mais où est synchronisé votre keepass ?

          Le port non officiel android prend en charge de nombreuses source de données dont les grands clouds. J'utilise gdrive et j'ai une backup ailleurs dans le cas ou je ne peux pas accéder à gdrive dans la minute.

        • [^] # Re: J'hésite

          Posté par  . Évalué à 5.

          Je sais que le fichier kdbx est chiffré mais je pense qu'il faut vraiment avoir confiance en l'hébergeur du fichier.

          C'est surtout en la robustesse du chiffrement du fichier qu'il faut avoir confiance. L'objectif est justement de ne pas avoir besoin de faire confiance à l'hébergeur.

          Ça nécessite aussi d'avoir un mot de passe très fort. Un point utile pour améliorer la sécurité si on n'est pas sûr de son mot de passe, c'est d'utiliser en plus un fichier clé. Il faut ensuite le synchroniser une fois manuellement sur tous les PC ayant besoin d’accéder au kdbx et de ne surtout pas le synchroniser sur l'hébergeur.

    • [^] # Re: J'hésite

      Posté par  (site web personnel) . Évalué à 2.

      Pour ma part j'utilise bitwarden en (auto hébergé) j'en suis vraiment content, du coup j'ai viré keepass de toutes mes machines, android, pc, etc que je trouvais moins pratique en mode multi

    • [^] # Re: J'hésite

      Posté par  . Évalué à 1.

      Hello

      J'utilise aussi un Keepass synchronisé, et j'hésite également à investir dans une solution autre.

      J'ai vu la clef Pastilda https://www.pastilda.com/ de Third Pin.
      - se connecte entre un clavier et PC (donc plutôt réservé à un PC fixe)
      - vu comme un clavier et une clef USB
      - une base Keepass est installée sur la clef USB
      - transmet normalement toutes les touches du clavier ; après une combinaison particulière, passe en mode "pastida"
      - le mot de passe maître de la base Keypass n'est jamais transmis au PC (sauf à l'initialisation de la base, je pense).

      Un point positif à mon sens, c'est qu'en cas de perte de la clef, il reste toujours possible d'utiliser Keepass (à condition bien évidemment d'avoir pensé à faire une sauvegarde de la base ailleurs), pas besoin d'outil spécifique.

      Cela dit, je ne suis pas certain que ça soit extrêmement pratique dès qu'on dépasse la vingtaine de mots de passe.

  • # Keepass + Inpustick

    Posté par  . Évalué à 10.

    Bonjour,
    Je serais intéressé par un retour d'expérience sur un tel matériel.
    S'il est déchargé ou perdu, peut-on accéder à ses mots de passe par un autre biais ?
    Pour ma part j'utilise depuis quelques années Keepass sur Android avec un adaptateur physique Inpustick.
    On sait que les mots de passe longs, complexes, différents (pour chaque compte) et aléatoires améliorent la sécurité.
    Le soucis est que la saisie manuelle sur clavier finit par vite rebuter.
    L’adaptateur Inpustick est un récepteur sans fil (bluetooth + chiffrement 128 bits) qui se branche en USB.
    Il sera reconnu comme un clavier et une souris sur la machine où vous le brancherez.
    C'est pratique car il est reconnu sans pilote et cela même avant le chargement de l'OS: on peut ainsi mieux sécuriser son BIOS ou la clef de chiffrement matériel d'un SSD/HDD.
    Par exemple quand j'ai besoin de saisir un mot de passe, j'ouvre Keepass sur le mobile qui "injectera" le mot de passe directement vers mon PC, et je n'ai aucun logiciel à installer sur ce dernier.
    Pour la première mise en service on installe sur le mobile l'application InpustickUtility puis le plugin "KP2A" pour Keepass, un peu de configuration et voilà !
    Le prix est de 35 €, j'ai fini par en prendre un deuxième tellement c'est pratique (maison + travail).
    A noter que l'Inpustick ne stock rien, si vous le perdez vous aurez perdu le prix de son investissement - c'est tout.

  • # clé

    Posté par  . Évalué à 4.

    Et ça peut remplacer une clé type yubikey, on peut mettre des clés pgp/gpg dessus et faire de la double autentification ?

    arnauld

    • [^] # Re: clé

      Posté par  (Mastodon) . Évalué à 5. Dernière modification le 03 août 2020 à 13:12.

      Je partage un peu cette interrogation: quels avantages / inconvénients par rapport à une carte OpenPGP comme la Yubikey, combinée avec par exemple le logiciel pass (https://www.passwordstore.org/) ?

      A priori:

      1) avantages :

      • l'appareil contient la base de données. Pas besoin de la dupliquer d'un appareil à l'autre ou de la rendre accessible (avec pass+yubikey, il faut passer par un dépôt git ou copier les fichiers)
      • la saisie directe sur l'appareil évite de mettre en péril son code PIN si le système utilisé n'est pas sûr

      2) inconvénients :

      • l'alimentation nécessaire pour l'appareil est plus importante qu'une Yubikey. Cela interdit a priori l'utilisation du NFC, qui est pratique sur les mobiles
      • l'appareil est moins polyvalent : pas moyen de l'utiliser pour les opérations PGP de signature, déchiffrement, etc…
      • il est aussi plus encombrant

      Nb :
      Avec pass + yubikey, j'utilise un petit dépôt git (autohébergé) pour rendre disponible les fichiers de pass et les synchroniser entre mes différents appareils (mobile, ordinateur portable, etc…). Ca marche bien, mais la mise en place est un peu lourde.

      Nb2: outre le code pin de déverrouilage, la yubikey possède également un "bouton" capacitif qui permet de rendre obligatoire un accès physique à la clé à chaque usage, tout en étant ultra rapide, ce que je trouve à la fois pratique et sécurisant

      • [^] # Re: clé

        Posté par  . Évalué à 2.

        Je suis d'accord avec vos points… cependant nous espèrons qu'à l'avenir nous pourrons avoir le temps d'implémenter les fonctionnalités PGP sur l'appareil (ou peut être un futur contributeur?).
        Une rapide remarque qu'avec une yubikey, vous ne savez jamais ce que vous approuvez avec certitude…

        • [^] # Re: clé

          Posté par  . Évalué à 1.

          Puisque tu semble faire parti du projet. Je n'arrive pas à trouver les sources de la partie carte à puce, ni même de quel SE il s'agit, avec quelle application. Tu aurais des pointeurs (ou à defaut des infos) ?

        • [^] # Re: clé

          Posté par  (site web personnel) . Évalué à 5.

          cependant nous espèrons qu'à l'avenir nous pourrons avoir le temps d'implémenter les fonctionnalités PGP sur l'appareil (ou peut être un futur contributeur?)

          Je ne sais pas quel microcontrôleur vous utilisez (je n’ai trouvé cette information nulle part sur votre site, et je ne sais pas interpréter les fichiers disponibles dans le dépôt minible_hw), mais pour information, il existe une implémentation complètement libre de la carte OpenPGP pour contrôleur STM32F103 : Gnuk.

          (Je n’ai pas la moindre idée de l’effort que demanderait le portage de cette implémentation sur le contrôleur du Mooltipass, si ce n’est pas un STM32…)

          • [^] # Re: clé

            Posté par  (site web personnel) . Évalué à 2.

            Je ne sais pas quel microcontrôleur vous utilisez (je n’ai trouvé cette information nulle part sur votre site, et je ne sais pas interpréter les fichiers disponibles dans le dépôt minible_hw)

            Pareil, je me demande bien ce qu'ils utilisent, surtout pour le "secure MCU".

  • # Qui de la mobilité ?

    Posté par  . Évalué à 1. Dernière modification le 03 août 2020 à 11:05.

    L'outil et le concept semblent prometteurs.
    Qu'en est il en mobilité ? Si je veux accéder à mes mots de passe sur téléphone, puis je connecter le device en usb et accéder aux identifiants ?

    [Edit] Commentaire envoyé trop vite, leur site mentionne un usage sur smartphone avec une démonstration ici : https://www.themooltipass.com/ressources/android.mp4

    • [^] # Re: Qui de la mobilité ?

      Posté par  . Évalué à 2.

      Effectivement c'est possible mais ça a l'air super contraignant et lourd comme procédure…

    • [^] # Re: Qui de la mobilité ?

      Posté par  . Évalué à 2.

      Merci! La connectivité bluetooth rend les choses beaucoup plus faciles… dans la vidéo principale de la campagne kickstarter vous pourrez voir ce cas de figure :)

    • [^] # Re: Qui de la mobilité ?

      Posté par  . Évalué à 1.

      Il me semble que ça marche en BLE…

  • # Commentaire supprimé

    Posté par  . Évalué à -2.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: Sur la garantie de conformité d'un dispositif matériel numérique (même libre)

      Posté par  (site web personnel) . Évalué à 5.

      TL;DR

      Je préconise l'adoption de l'expression consacrée « matériel authentiquement libre et contrôlé » pour me référer à ce type de protocole de conception / fabrication / livraison. Le mot authentiquement renvoie à la disponibilité d'absolument tous les détails de conception ; le mot contrôlé renvoie aux audits, aux preuves formelles, et à la supervision de la fabrication et de la livraison.

      Pour rappel, il existe un projet nommé Libre Silicon

      vala ça c'est fait ;-)

      • [^] # Commentaire supprimé

        Posté par  . Évalué à -10.

        Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Re: Sur la garantie de conformité d'un dispositif matériel numérique (même libre)

          Posté par  (site web personnel) . Évalué à 5.

          fais gaffe : samwang-13 — ton prochain pseudo — risque de ne pas te porter plus de chance, même si tu n'es pas superstitieux car ça porte malheur :p

          bref, j'espère ne pas avoir trop trahi ton propos, j'ai essayé d'en extraire ce qui m'en paraissait les 2 points intéressants (et je ne t'ai pas moinssé : je surfe à -42 de toute façon et je préfère relever le positif plutôt que sanctionner tes logorrhées que je prends parfois le temps de lire).

          (et non dépliable au sein de la page)

          bin, si : suffit de cliquer sur le [-], non ?

          • [^] # Re: Sur la garantie de conformité d'un dispositif matériel numérique (même libre)

            Posté par  . Évalué à 3.

            bin, si : suffit de cliquer sur le [-], non ?

            Malheureusement non :
            Messages masqués

            Il faut cliquer sur le titre du message replié pour y accéder. Et du coup on quitte la lecture en cours.
            Je comprends qu'on replie les messages moinssés mais c'est quand même dommage qu'il faille carrément changer de page pour les lire. Je surfe aussi à -42 mais sachant que les nouveaux postent à 0 par défaut (sauf dans les forums), leurs messages sont masqués par défaut et difficilement accessibles pour tous les non-connectés.

          • [^] # Re: Sur la garantie de conformité d'un dispositif matériel numérique (même libre)

            Posté par  . Évalué à 3.

            Le [-], c'est pour replier, c'est un [+] pour déplier. Dans tous les cas, ça n'apparaît que si on est connecté. C'est vrai que ça n'est pas très pratique pour le lecteur de passage, mais est-ce vraiment si gênant que ça ?

            Personnellement, je ne moinsse que très rarement aussi. Il faut vraiment que ça aille loin pour que j'en arrive à vouloir pénaliser les propos de quelqu'un.

  • # Commentaire supprimé

    Posté par  . Évalué à -7. Dernière modification le 04 août 2020 à 09:58.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # Sauvegardes ?

    Posté par  . Évalué à 4.

    Comment faites-vous pour sauvegarder la smartcard et /ou les mots de passe ? J'ai vu qu'il y a des exports fichier, mais ils restent très évasifs, ils parlent juste d'exports fichiers dans le cloud, à l'opposé de la sécurité hors-ligne tant vantée.
    Est-ce qu'on peut facilement imprimer un listing de mots de passes en clair pour avoir une copie physique en cas de pépin ?
    Est-ce que les exports fichiers sont chiffrés ? Si oui, y-a-t’il des détails d'implem là dessus ? Ca pourrait être une source de grosses faiblesses.
    Est-ce qu'on peut cloner facilement la smartcard pour en faire une copie de sauvegarde ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.