Journal Ce que serait un agent cryptographique parfait

Posté par (page perso) .
Tags : aucun
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…

Suivre le flux des commentaires

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