mercredi 27 juillet 2016

OpenPGP card, la carte à puce pour sécuriser les emails

OpenPGP card est un concept intéressant pour sécuriser les échanges par email. L’idée est de stocker dans une carte à puce les clés privées GnuPG, de sorte que d’une part elles ne soient pas sur le PC (donc moins vulnérables, même si les clés privées GnuPG sont stockées sur le PC chiffrées via une passphrase), que d’autre part elles ne soient jamais communiquées à l’extérieur de la puce, et enfin qu’elles soient protégées par un code PIN à 3 essais qui ensuite bloque la carte (déblocage possible via un code PIN administrateur).
GnuPG peut être paramétré pour utiliser cette carte à puce, que l’on insèrera dans un lecteur PCSC, au lieu du traditionnel fichier clé privée protégé par passphrase. Ainsi paramétré, GnuPG demandera à l’utilisateur son code PIN plutôt que sa passphrase.
La puce réalise des opérations cryptographiques, c’est un passage obligé si l’on veut qu’elle ne communique rien de secret à l’extérieur, mais elle en fait le minimum vu sa faible puissance de calcul. Dans une opération de déchiffrement, par exemple, elle ne fait que calculer (et communiquer au PC) la clé de session symétrique à utiliser ; c’est ensuite le PC qui déchiffre le message à l’aide de cette clé de session.
Cette initiative rejoint mon idée initiale de chiffrer des communications à l’aide d’une carte à puce, système pour lequel j’ai déjà réfléchi à des spécifications et que je compte implémenter sur une Silvercard. A deux bémols près.
Premier bémol, OpenPGP card n’est qu’une spécification que tout un chacun peut implémenter sur la carte à puce de son choix. Quelques implémentations sur des cartes à puce réelles ont été faites, comme sur la BasicCard, mais ces cartes ne semblent pas si faciles à dégoter. La piste la plus simple semble être de devenir Fellow de la FSF (Free Software Foundation) et ainsi avoir la possibilité d’obtenir cette Fellowship Smartcard. Après, il faut se cogner tout le paramétrage de GnuPG, sans se tromper car sinon on est vite fait de générer une faille de sécurité. Bref, c’est pas gagné.
Deuxième bémol, non seulement la spécification montre que les concepteurs de la carte à puce ont succombé aux sirènes des cartes modernes à base de fichiers plus compliqués les uns que les autres (le concept de fichiers étant complètement inutile à mon avis, les cartes de la génération d’avant fonctionnaient très bien sans le moindre fichier), mais ils ont aussi fait de leur concept un fourre-tout qui dépasse du cadre initial de la simple protection hard des clés privées. Du coup, l’implémentation de la spécification sur une carte comme la Silvercard, par exemple, est impossible. Seules les cartes « bêtes de course » sont éligibles.
Le concept est intéressant (la preuve, j’ai la même idée), mais la simplicité n’est pas au rendez-vous :
  • Cartes pré-programmées difficiles à trouver
  • Spécification trop compliquée, donc implémentation difficile
  • Paramétrage et utilisation pour informaticiens
Il y a moyen de faire beaucoup plus simple.
Update : j’ai trouvé un revendeur US qui propose la carte à 15$. A voir.

2 liens intéressants pour approfondir le sujet :
http://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-123/Utilisation-de-smartcards-GnuPG-V2-au-quotidien-Partie-1

Publié le 27 juillet 2016 par Alan Cartman


Aucun commentaire: