La problématique du "batch signing"

PencilDans le monde électronique actuel, il est difficile d'imaginer des transactions sécurisées où aucun adversaire ou attaquant ne vienne les perturber. Le scénario réaliste est le cas typique d'un message électronique envoyé entre un émetteur et un receveur. Ce message va passer par tout un tas de routeurs dont certains seront contrôlés par des personnes malintentionnées. Ces routeurs pourront potentiellement altérer le message en transit si ce dernier n'est pas protégé avec un mécanisme d'intégrité. Par exemple, si Alice envoie un message non-protégé à Bob lui donnant rendez-vous à 19h dans un café, alors Oscar peut simplement intercepter le message et changer l'heure du rendez-vous, empêchant ainsi les deux amis de se rencontrer.

Un des mécanismes les plus connus pour assurer l'intégrité d'un message est la signature électronique. Le blog du 8 mars 2016 de mon collègue Bert Vanhalst explique déjà les opportunités et obstacles de la signature électronique. La figure ci-dessous dépeint comment le schéma de signature fonctionne. Reprenons l'exemple d'Alice qui souhaite envoyer un message ("data" dans la figure ci-dessous) à Bob. Pour ce faire, Alice a tout d'abord besoin d'une paire de clés publique/privée et d'un certificat électronique contenant la clé publique d'Alice et attestant que la paire de clés d'Alice est authentique.

Alice signe son message de la façon suivante :

  1. Tout d'abord, elle applique une fonction de hachage à son message et obtient ainsi un hash du message.
  2. Ensuite, elle chiffre le hash avec sa clé clé privée (connue d'elle seule) et obtient la signature de son message.
  3. Enfin, elle attache la signature et son certificat au message, et envoie le tout (i.e. "digitally signed data" dans la figure ci-dessous) à Bob.

Lorsque Bob reçoit le "digitally signed data", il vérifie la signature de la façon suivante :

  1. D'un côté, il applique la fonction de hachage sur le message en clair d'Alice (i.e. "data"), et obtient un hash que nous nommeront H1.
  2. De l'autre côté, il vérifie la signature d'Alice en déchiffrant la signature avec la clé publique d'Alice (qui se trouve dans le certificat joint), et il recouvre le hash contenu dans la signature.
  3. Enfin, il vérifie si ce hash est égal à H1. Si tel est le cas, alors la signature est vérifiée, ce qui veut dire que le message original envoyé par Alice a gardé son intégrité.

Nous ne détaillerons pas dans ce blog ni les certificats électroniques, ni les fonctions de hachage. Pour plus d'information à ce sujet, le lecteur intéressé trouvera de plus amples informations ici pour les certificats électroniques et ici pour les fonctions de hachage.

Schémas de signature digitale. (Crédit: Acdx (own work)[Creative Commons Attribution-Share Alike 3.0 Unported], via Wikimedia Commons)

Schémas de signature digitale.
(Crédit: Acdx (own work)[Creative Commons Attribution-Share Alike 3.0 Unported], via Wikimedia Commons)

En Belgique, tout citoyen a la possibilité de signer électroniquement des messages ou documents grâce à sa carte d'identité électronique, ou eID. En effet, l'eID est une carte à puce qui intègre tous les standards technologiques de cryptographie à clé publique (i.e. Public-Key Infrastructure (PKI) en anglais). Chaque eID possède donc une paire de clés publique/privée et un certificat électronique qui identifie et authentifie de façon unique chaque citoyen.

Lorsqu'un citoyen souhaite signer un document, il rentre simplement son code PIN et la démarche expliquée dans la figure ci-dessus s'applique. S'il souhaite signer 100 documents (méthode appelée "signature en lot", ou "batch signing" en anglais), il doit taper 100 fois son code PIN. Ceci n'est clairement pas ergonomique. Malheureusement à l'heure actuelle, la seule autre solution facilitant le processus du citoyen est d'utiliser un logiciel qui met tout bonnement en cache le code PIN tapé et qui réutilise ce cache pour signer automatiquement les 100 documents. Ceci n'est clairement pas acceptable en terme de sécurité. En effet, l'utilisateur perd la maîtrise du code PIN, et plusieurs scénarios catastrophes sont imaginables. Par exemple, un logiciel malveillant pourrait s'en servir pour signer des documents autres que les 100 documents désignés par le citoyen. Ou bien le cache contenant le code PIN pourrait être volé et utilisé à mauvais escient.

Il n'existe à l'heure actuelle aucun standard pour le batch signing où le citoyen ne doit rentrer qu'une seule fois son code PIN tout en en gardant sa maîtrise. Si une solution fait surface, nous vous la présenterons dans un prochain blog.

UPDATE 06/10/2016 : Depuis la publication de ce post, Smals Research a publié SmalsBeSign, un software qui résout le problème évoqué ci-dessus. Le logiciel SmalsBeSign ainsi que toute l'explication sur son fonctionnement sont disponibles sur la page web dédiée.

This entry was posted in Security and tagged by Tania Martin. Bookmark the permalink.
avatar

About Tania Martin

Consultante Recherche chez Smals depuis septembre 2013, spécialisée en cryptologie. Avant de rejoindre Smals, elle était chercheur et assistante d'enseignement à l'UCL où elle a obtenu son doctorat en sciences de l’ingénieur. A quitté Smals en juin 2017.

One thought on “La problématique du "batch signing"

  1. Merci pour ce poste. Il existe cependant des solutions qui peuvent limiter la durée de vie de la session en obligeant aléatoirement une ressaisie du code pin dura,t la session de batch signing. De ce fait, si une usurpation est réalisée comme décrite dans ce post, il devient difficile de faire face à une interruption aléatoire de service obligeant la ressaisie du code pin après 100 ou 2 signatures selon le facteur aléatoire. En cas d'erreur de saisie du code pin lors de l'interruption aléatoire du service, doit alors déclencher une procédure de vérification de l'identité de l'utilisateur. Si cette vérification échoue, un processus doit prendre la main pour permettre la remise en cause de l'ensemble des signatures réalisées depuis la dernière saisie du code pin par l'utilisateur. C'est en cela que le time stamping fiable est indispensable.

Leave a Reply

Your email address will not be published.