PPassKeeper, interface de stockage de données sensibles.

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
13
27
nov.
2008
Sécurité
Que vous soyez développeur ou simple utilisateur, la sauvegarde de données sensibles telles que les mots de passe est source de soucis.
En tant qu'utilisateur, on aime avoir le choix. C'est d'autant plus vrai en sécurité où chacun a ses propres exigences et sa propre topologie.
En tant que développeur, stockages variés et plus sécurisés riment avec moins de portabilité.

Pour essayer de concilier les deux mondes, la bibliothèque "PPasskeeper" voit le jour.

La version 0.9 venant tout juste de sortir (version que je considère comme étant la bêta 1), n'hésitez pas à l'essayer via son utilitaire de gestion de mot de passe graphique ou en ligne de commande.
Je n'ai pu tester la bibliothèque que sous Linux et Windows (XP et Vista), de plus, la liste des modules est assez courte (KWallet, registre Windows et fenêtres de demande de mot de passe en GTK, Win32 ou Qt).
PPassKeeper (Portable Password Keeper) est une interface portable de stockage de données sensibles.

Son rôle est de permettre aux utilisateurs de choisir la méthode de stockage qu'ils préfèrent sans pour autant demander aux développeurs de faire des sacrifices sur la portabilité et la complexité de leurs applications.
Ainsi, PPassKeeper permet de faire abstraction des systèmes de sauvegarde de données sensibles et offre aux développeurs une interface en C, portable et simple à utiliser. Son principe s'applique aussi bien aux blobs (données binaires) qu'aux chaînes de caractères.

Pour être portable, PPassKeeper repose sur une architecture de type greffons (tel que GStreamer), chaque greffon (appelé module) étant lié à un système de stockage particulier.
Le gros avantage de cette architecture est que la liste des modules peut être faite à l'exécution, ainsi, des développeurs indépendants peuvent faire des modules de sauvegarde (libres ou propriétaires).
De même, les utilisateurs peuvent ajouter/supprimer des modules à souhait sans avoir à recompiler les programmes utilisant PPasskeeper.

Concernant la licence d'utilisation, la LGPL v2 a été adoptée car elle permet aux applications propriétaires de se lier avec.
Comme toute bibliothèque, PPassKeeper essaye d'adopter une interface évolutive.

Si vous voulez en savoir plus, je vous invite à visiter le trac de PPasskeeper à l'adresse http://ppasskeeper.mupuf.org.

Aller plus loin

  • # Pas mal

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

    Justement, hier mon chef galérait pour retrouver le mot de passe root sur un de nos serveurs... A force d'avoir 36000 machines et logins, on finit par se mélanger les pinceaux !

    En revanche, je viens d'essayer l'application sous Windows XP, et autant je n'ai eu aucun problème pour stocker des entrées de type "application" ou "item", autant je n'ai pas réussi à enregistrer la moindre entrée de type "network", quel que soit le module sélectionné juste au-dessus. Bon, en même temps c'est une version beta, donc ça ne peut pas être forcément parfait...

    <pensée récursive>
    A terme, l'application sera sans doute protégée par mot de passe, pour s'assurer que personne ne puisse y jeter un oeil... Mais dans ce cas, il faudra bien stocker ce mot de passe quelque part ?!...
    </pensée récursive>
    • [^] # Re: Pas mal

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

      Cool, c'est déjà pas mal que l'install marche :)

      Pour le stockage Network, y a t'il une erreur de générée ?
      Si c'est possible, un petit ticket sur http://ppasskeeper.mupuf.org/newticket, décrivant le problème un peu plus en détail, serait apprécié.

      Concernant la pensée récursive. Si un système de stockage (représenté par les modules) ne nécessite pas de mot de passe, aucun mot de passe ne sera demandé. En somme, tout système non sécurisé est .... non sécurisé.
      Cependant, l'idée de faire un mot de passe pour accéder à l'application n'est pas bête et va faire l'objet d'une petite entrée dans la roadmap.

      Merci pour le test.
      • [^] # Re: Pas mal

        Posté par  . Évalué à 2.

        Pourquoi pas garder le système de module pour la protection de l'application ? Comme ça on pourrait avoir :
        - mot de passe
        - biométrie
        - token usb...
        • [^] # Re: Pas mal

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

          On garde le système de module pour la protection (j'ai de toute façon pas le choix), on rajouterai juste un autre mot de passe pour empêcher les modules non sécurisés de pouvoir être accédés directement.

          Remarque pertinente pour la biométrie.
      • [^] # Re: Pas mal

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

        Concernant mon incapacité à enregistrer un mot de passe "network", non, aucun message n'est apparu. La fenêtre demandant de renseigner un nom user-AT-host:port apparaît, et lorsque je renseigne le nom et que je confirme, la fenêtre se ferme sans que l'item ne s'ajoute à aucune des listes, ni dans les autres modules...
  • # A suivre

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

    C'est très intéressant, j'ai cherche il y a quelque temps un équivalent à pins (gestionnaire de passe mais pour Windows) sans succès... Je l'ajoute à ma liste des programmes à tester.

    Au contraire comment se passe l'accès au programme ? Il est lui même protégé par un mot de passe ? Quid de la qualité de sécurisation de ce dernier...

    Born to Kill EndUser !

    • [^] # Re: A suivre

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

      L'accès au programme est direct, pas de demande de mot de passe. Cependant, pour lister les modules tels que KWallet ou GKeyring, il faut taper la passphrase.
      Les Wallets/Keyrings sont sécurisés par nature, pour ceux là, aucun problème.

      Pour ce qui est des modules non sécurisés (Enregistrement dans un fichier texte/base de registre), le programme ne demande aucun mot de passe. Ceci est du au fait que ces système ne sont PAS sécurisés. Ils ne sont là que pour autoriser un failback si aucun système de stockage n'est présent/détecté.

      PPassKeeper est une librairie qui n'a pour but que de faciliter l'accès aux différents systèmes de stockage sécurisé.
      La seule solution pour avoir un mot de passe d'accès aux modules serait de crypter un fichier connu avec un algorithme ayant pour clé le mot de passe. De cette manière, tout le monde pourrait profiter de cette "sécurisation" pour éviter les accès direct aux modules non-sécurisés.

      J'attend les commentaires de personnes plus apte à discuter de sécurité que moi.
      Cependant, je note l'idée et je vais voir ce que je peux faire. Bien entendu, par défaut, la librairie n'aurait pas besoin de mot de passe pour y accéder. Cela devra être une initiative personnelle.
  • # Keepass

    Posté par  . Évalué à 2.

    Sur Windows, j'utilise KeePass ( http://keepass.info/ ). Développé en .NET, il fonctionne aussi avec Mono.

    La fonction qui tue, c'est la saisie automatique : Tu ouvre Keepass, tu choisis le user/mot de passe et tu appuie sur CTRL-V , il se réduit et tape le user/mdp dans la fenêtre derrière!

    Par contre, si j'ai bien compris, PPassKeeper permet de stocker dans autre chose qu'un fichier, et ne se limite pas qu'aux mots de passe?
  • # moé

    Posté par  . Évalué à 0.

    C'est bien gentil les outils de gestion de passe, mais bon c'est pas comme si ça n'existait pas :) (cf keepassx)

    Par contre ce qui manque vraiment je trouve c'est un friendly pinger [http://www.kilievich.com/fpinger/] en GTK+ ou Qt interfaçable avec un outil de gestion de passe, et je ne parle pas d'une usine à gaz en web ..
  • # PPasskeeper n'est PAS un outil de gestion de mot de passe

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

    Je tiens à préciser que PPassKeeper n'est PAS un outil de gestion de mot de passe.

    C'est une librairie qui permet aux développeurs de ne pas s'occuper de la partie stockage de mot de passe (ou tout autre données binaires), et de laisser aux utilisateurs le soin de choisir comment ils veulent sauvegarder.

    Il se trouve que nous avons un utilitaire qui permet d'accéder à tout les mots de passe stockés, mais ce n'est PAS le projet.

    Le but de PPassKeeper est de fournir une interface commune valable pour les outils de stockages existant. C'est une tentative d'abstraction des systèmes de stockage de données sensibles.

    Pour vous en souvenir, pensez libppasskeeper, ça devrait aider.

    Voilà, je tenais à le préciser.
  • # La même en réseau

    Posté par  . Évalué à 1.

    Salut,
    Pas mal l'appli mais je recherche le même genre mais en web et multiutilisateur, ça existe ?

    Je souhaite stocker des mots de passe ou des données sensibles mais les partager où qu'ils soient entre mes collègues via notre LAN/WAN.
    Je sais que côté sécu c'est prendre un risque d'où mon intérêt pour trouver une application bétonnée.

    Merci
    • [^] # Re: La même en réseau

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

      Salut,

      Alors, fondamentalement, PPK ne sait rien faire par lui même, il sait juste lister des modules et faire le lien avec les programmes utilisateurs de la lib.
      Il faudrait donc créer un module pour ppk qui communiquerait avec un serveur de façon à stocker les données de façon sécurisée.
      Pour ce qui est de la sécurité lors du transfert, je suppose qu'une connexion SSL suffirait pour empêcher le snifing.
      En définitive, ce genre d'appli en web est tout à fait possible et est même une très bonne idée de module. Merci.

      Pour ce qui est de faire un système multi-utilisateur, ça dépend de chaque module.
      Je peux dire que les modules SaveToFile sont multi-users. Par contre, pour ce qui est du KWallet ou prochainement du Gnome Keyring, je ne sais pas ...

      Merci, bonne soirée

Suivre le flux des commentaires

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