Journal Ce que serait un agent cryptographique parfait

Posté par  (site Web personnel) .
√Čtiquettes¬†: aucune
1
29
déc.
2010
Vous connaissez sans doute d√©j√† les agents PGP et SSH¬†: ce sont des logiciels qui permettent de conserver des clefs priv√©es en m√©moire, pour effectuer les t√Ęches de signature ou de d√©chiffrement num√©rique pour les programmes qui le demandent, sans avoir √† recharger la clef √† chaque fois.

Je vais décrire ce que serait pour moi un agent parfait, par rapport aux agents existants que je connais : OpenSSH ssh-agent (agent SSH), GnuPG agent (agent SSH et PGP), GNOME Keyring (trousseau de mots de passe et agent SSH) et Seahorse (agent PGP et proxy d'agent SSH).

Un seul agent, simple à lancer

Certains agents cryptographiques cumulent les fonctions d'agent PGP et SSH¬†: c'est plus pratique. D'autres n'ont qu'une seule de ces deux fonctions : ce n'est pas bien compliqu√© non plus. Mais la palme de la complexit√© revient √† GNOME : ce bureau a deux agents, GNOME Keyring et Seahorse, dont les fonctions se recoupent ; ils sont en outre compliqu√©s √† lancer, puisqu'il faut d'abord lancer leurs programmes, puis leur demander de ¬ę¬†d√©marrer ¬Ľ effectivement en les appelant √† nouveau avec une option du style ¬ę¬†--start¬†¬Ľ.

Un bon agent cryptographique devrait avoir des fonctions clairement identifiées, soit agent SSH, soit agent PGP, soit les deux, et pouvoir se lancer en une seule commande.

Chargement automatique des clefs à la demande

Avec un agent PGP, dès qu'une requête de signature ou de déchiffrement arrive, l'agent charge la clef privée, en demandant au besoin le mot de passe à l'utilisateur.

Avec les agents SSH, ce n'est généralement pas le cas, et il faut charger manuellement les clefs dans l'agent, avec la commande ssh-add. Seul GNOME Keyring s'en démarque en chargeant tout seul la clef à la première demande.

Un agent cryptographique parfait devrait charger toutes les clefs automatiquement à la demande.

Demande de confirmation à l'utilisation d'une clef

En g√©n√©ral, les agents SSH et PGP conservent les clefs pendant un temps fini ou infini, et permettent √† tout programme qui en fait la demande de les utiliser. La fonction PGP de Seahorse s'en d√©marque, en demandant une confirmation de ce style : ¬ę¬†Un programme souhaite utiliser une clef priv√©e en m√©moire, l'autorisez-vous ? ¬Ľ. C'est bien mais pas parfait, vu qu'il n'indique pas de quel programme il s'agit.

Un agent cryptographique parfait devrait demander confirmation pour toute utilisation d'une clef en mémoire, en précisant le programme qui le demande (PID, nom).

Conclusion

Je n'ai pas trouvé de logiciel répondant à toutes ces contraintes. Celui qui s'en approche le plus est Seahorse comme agent PGP, mais il a l'inconvénient de ne pas prendre en charge les cartes à puces. Pour l'agent SSH, GNOME Keyring est convenable, mais ne demande jamais confirmation, et est compliqué au possible à lancer.

Si quelqu'un envisage de coder un nouvel agent, voici donc des idées…
  • # L'agent cryptographique parfait existe deja

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†-4.

    Il s'appelle Perl

    Vu qu'il y a 325326333 manieres differentes d'ecrire le meme code, tu peux reconnaitre l'auteur a coup sur a la maniere dont il a ecrit le code, et selon la maniere dont il l'a ecrit, personne d'autre ne pourra le comprendre a part la personne qui a le convertisseur Perl -> C approprie (on appelle cela la cle de nos jours)
  • # Huh ? retour vers le futur ou quoi ?

    Post√©¬†par¬† (site Web personnel) . √Čvalu√©¬†√†¬†3.

    Alors chez moi seahorse n'est qu'une interface pour les clefs du keyring gnome, qui démarre tout seul comme un grand via "Applications au Démarrage"

    Et l'agent SSH seahorse est deprecated depuis gnome 2.22
    • [^] # Re: Huh ? retour vers le futur ou quoi ?

      Post√©¬†par¬† (site Web personnel) . √Čvalu√©¬†√†¬†2.

      Ah, c'est possible, j'ai peut-être manqué l'information, qui n'est pas évidente à trouver. Le simple faite que GNOME Keyring et Seahorse agent existent et se recoupent suffit à semer le trouble.
    • [^] # Re: Huh ? retour vers le futur ou quoi ?

      Post√©¬†par¬† (site Web personnel) . √Čvalu√©¬†√†¬†1.

      Bon, au temps pour moi, la situation entre GNOME Keyring et Seahorse était assez embrouillée pour que je m'y perde.

      Donc, GNOME Keyring daemon, c'est un agent SSH uniquement. Et Seahorse agent, c'est un agent PGP qui peut faire proxy d'agent SSH mais je ne sais pas trop à quoi ça sert et cette fonctionnalité est de toute façon dépréciée.

      Bref, pour avoir les fonctionnalités d'agent SSH et PGP avec les logiciels de GNOME, il faut lancer le démon GNOME Keyring, le lancer une seconde fois avec l'option --start, et lancer aussi Seahorse.
      • [^] # Re: Huh ? retour vers le futur ou quoi ?

        Post√©¬†par¬† (site Web personnel) . √Čvalu√©¬†√†¬†4.

        Nope,

        1/ Gnome Keyring:
        Infrastructure générique de stockage pour des clefs, passwords, certificats, ...

        http://live.gnome.org/GnomeKeyring

        2/ Seahorse
        Application pour gérer les clefs et mot de passes stockés dans le keyring, remplacant du gnome-keyring-manager, toutes les fonctions 'd'agents' de seahorse sont deprecated et intégrées directement dans gnome-keyring

        http://live.gnome.org/Seahorse (semble pas a jour)

        Roadmap de gnome-keyring
        http://live.gnome.org/GnomeKeyring/Goals


        >Bref, pour avoir les fonctionnalités d'agent SSH et PGP avec les
        >logiciels de GNOME, il faut lancer le démon GNOME Keyring, le
        >lancer une seconde fois avec l'option --start, et lancer aussi
        >Seahorse.
        Mouais je sais pas quel est ta config mais gnome-keyring est normalement integré au login sur toutes les versions récentes et
        dévérouillé automatiquement via pam-keyring

        Enfin la beauté de l'opensource est de proposer a tout un chacun de faire evoluer lui-même directement ou indirectement les soft, le meilleur endroit pour discuter de tes remarques sur les avertissements et fonctionnements des agents gnome serait plutot la/les mailling lists associées au projet
        • [^] # Re: Huh ? retour vers le futur ou quoi ?

          Post√©¬†par¬† (site Web personnel) . √Čvalu√©¬†√†¬†0.

          2/ Seahorse
          Application pour gérer les clefs et mot de passes stockés dans le keyring, remplacant du gnome-keyring-manager, toutes les fonctions 'd'agents' de seahorse sont deprecated et intégrées directement dans gnome-keyring


          On en reparlera le jour o√Ļ GNOME Keyring daemon fera agent PGP‚Ķ
          • [^] # Re: Huh ? retour vers le futur ou quoi ?

            Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

            On en reparlera le jour o√Ļ GNOME Keyring daemon fera agent PGP‚Ķ
            C'est le cas en 2.32. Je ne sais pas si c'est au point mais ça fonctionne pour le peu de tests que j'ai fait. L'option est activable via gconf-editor ou avec l'option --components=gpg
  • # Ca ne r√©pond pas parfaitement √† ta question mais...

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

    As-tu pensé à regarder du coté de Kerberos v5 ?
    La logique est légèrement différente de celles que tu cherches à obtenir, mais ca permet de débloquer des clefs SSH ou PGP à la demande, par application. Couplé avec du SASL du PAM et une bonne gestion des token ca fait tout ce que tu demandes.

    Par contre l'installation est un peu lourdingue si c'est juste pour un desktop seul.
    • [^] # Re: Ca ne r√©pond pas parfaitement √† ta question mais...

      Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

      Par contre l'installation est un peu lourdingue si c'est juste pour un desktop seul.

      Un peu, oui. Très légèrement. Ceci dit, si quelqu'un se sent de pré-packager un Kerb adapté à cet usage, ça pourrait marcher.
  • # keychain

    Post√©¬†par¬† (site Web personnel) . √Čvalu√©¬†√†¬†2.

    Personnellement j'utilise keychain ( http://www.funtoo.org/en/security/keychain/intro/ ) qui semble répondre à certaines des demandes:
    il supporte gpg et ssh (en lançant les agents ssh et gpg adéquats)
    il chargera à la demande la clé.
    En revanche il ne demandera pas confirmation pour l'utilisation d'une clé précise.

Suivre le flux des commentaires

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