Flexible Plans For Your Business

Principes de la signature électronique

Cette semaine, on a conclu avec succès la dernière phase de l’implémentation de la signature numérique au niveau de la plateforme casaurba.ma. Elle consiste à intégrer le service d'horodatage électronique Barid e-Sign fournie par Barid Al-Maghrib (Poste Maroc) dans le workflow de la signature des documents échangés avec la plateforme. Je pense que c'est une occasion pour partager notre retour d'expérience sur ce sujet, que j’estime très important à la dématérialisation de nos processus administratifs. J’espère aussi démystifier un peu ce sujet très technique, qui par constat, reste difficilement abordable par la plupart des intervenants, même ceux avec un profil technique ou un background scientifique.

Par Youness CHARA | Senior Architect Karaz | Ribatis

Karaz e-Sign

Pourquoi la signature Electronique est-elle importante ?

CASAURBA.ma est une plateforme web (accessible en ligne) qui prend en charge la gestion d’un ensemble de services relatifs à l’urbanisme au niveau de toute la région Casablanca Settat, tels les autorisations de construction, les permis d’habiter et les dérogations. La plateforme, basée sur les technologies Karaz (Karaz BPM, Karaz BizRules, Karaz ECM…), permet une collaboration étendue entre tous les acteurs (Citoyens, Architectes, Maîtres d’ouvrage, Localités Administratives, Guichets uniques, Commission d’instruction…), pour assurer des services totalement dématérialisés, où tous les échanges de documents sont en format numérique.

La signature numérique joue un rôle essentiel dans la dématérialisation de ces services administratifs. Concrètement, elle permet de :
• Transformer un document en un acte juridique (approuver le contenu et en assumer la responsabilité) ;
• Identifier et Authentifier le(s) signataire(s) du document et
• Vérifier que le contenu du document n’a pas été altéré depuis l’opposition de la signature. 

Ces propriétés sont utilisées pour démontrer l’intégrité, l’authenticité et l’origine des documents délivrés par la plateforme, même quand ils sont tirés en dehors du contexte de la plateforme. Elles leur confèrent aussi une valeur juridique probante.
Au-delà de la simple signature des documents, le même mécanisme de la signature numérique peut être utilisé pour sécuriser la collaboration des acteurs clés en assurant leur authentification et la non répudiation de leurs actions. En effet, pour chacune des actions critiques (y compris l’accès à la plateforme), une demande textuelle est créée et signée à la volée par son acteur puis persistée par la plateforme pour parer à toute future répudiation (en cas de litige).
Notons aussi que, sans la signature numérique, la dématérialisation perdra toute sa pertinence, puisqu’on ne pourra alors dématérialiser que des documents sans valeur juridique. 

Comment ça marche ?

Le mécanisme de la signature numérique est basé sur le principe du certificat électronique. Le certificat électronique est un ensemble de fichiers dont une partie est publique et l’autre est privée.

La partie publique contient les éléments suivants :
• Eléments d’identification : nom, fonction, entité organisationnelle, email, date début et date fin de la validité… ;
• Clé publique associée au certificat : utilisée pour décrypter la signature;
• Signature de ces éléments par l’autorité qui a émis le certificat.

La partie publique du certificat est incorporée dans toutes les signatures numériques apposées par ces certificats. C’est ce qui permet de vérifier les signatures numériques indépendamment de leurs certificats.

La partie privée du certificat est utilisée à la création de la signature. Elle n’est pas transmise avec la signature. Elle doit être gardée secrète et protégée par le porteur du certificat. En effet, toute personne malveillante ayant accès à cette partie privée, peut signer des documents au nom du porteur du certificat. Le caractère non répudiable de la signature électronique repose en partie sur l’engagement du porteur de certificat à protéger la partie privée.

Les deux parties du certificat (privée et publique) jouent des rôles complémentaires dans la génération et la vérification de signature. Elles sont utilisées comme clés (privée et publique) du cryptage asymétrique mis en jeu par ces deux processus.

La génération et la vérification de la signature électronique, exploitent deux types de transformations mathématiques bien connues :
• Le hachage : c’est une transformation irréversible qui convertit un texte de taille quelconque, en un code de taille fixe (256, 512, 1024 ou 2048 bits, selon le type de hachage choisi). On parle d’empreinte de hachage.
• Le cryptage asymétrique : c’est un cryptage basé sur des clés publiques et privées.

Pour entreprendre un processus de signature électronique, on doit spécifier un algorithme de hachage (MD5, SHA1, SHA256…) et un autre algorithme pour le cryptage asymétrique (RSA, ECC, DSA, ECDSA…).

La qualité de l’algorithme de hachage est liée à la taille du code généré. Plus le code est long, moins on aura de collision. Le but étant qu’un changement de texte d’origine, même avec un seul caractère, produise un code de hachage différent.

D’un autre côté, la force du cryptage dépend essentiellement de la taille des clés mises en jeu. A nos jours, un cryptage type RSA-2048bit est considéré très sûr.

Processus de Génération de signature électronique

Techniquement, la signature d’un document est juste la compilation du document d’origine, la partie publique du certificat du signataire et le code hache du document crypté par la clé privée du signataire. Ainsi, la génération de signature électronique peut se faire en trois étapes :
1. Le document à signer est haché pour générer un code de hachage ;
2. Le code hache est crypté en utilisant la clé privée du certificat du signataire ;
3. Le document d’origine, le code hache crypté et la partie publique du certificat sont compilés en un seul document. C’est ce qu’on appelle un document signé. 

e-Signature generation

Processus de vérification de signature

Pour vérifier la signature d’un document,
1. On extrait du document signé : le document d’origine, le code hache crypté et la clé publique ;
2. On recalcule la hache du document d’origine (extrait du document signé) ;
3. On décrypte le code hache crypté (extrait du document signé) en utilisant la clé publique ;
4. On compare alors le code hache calculé avec le code décrypté, s’ils sont identiques, la signature est considérée valide. 

e-Signature Verify

Pourquoi ça marche ?

Pour falsifier ou altérer un document protégé par une signature électronique, un hacker qui n’a pas accès à la clé privée du signataire, n’a théoriquement que trois options :
1. La première option est de récupérer le document d’origine puis changer le contenu (ou le remplacer par un autre), de sorte que les deux textes (l’original et le corrompu) aient la même empreinte de hachage.
2. La deuxième option, consiste à crypter l’empreinte de hachage du texte corrompu, de sorte que son décryptage par la clé publique soit égal au code hache calculé pour le nouveau contenu.
3. La dernière option consiste à remplacer le vrai certificat du signataire par un faux certificat.

Le fait que la transformation en hache (le hachage) est irréversible et très sensible au changement des textes en entrée, rend la première option impraticable.
Le mécanisme du cryptage asymétrique est désigné en sorte que, pour un texte quelconque, seul le détenteur de la clé privée peut directement générer un cryptage dont le décryptage par la clé publique (dual de la clé privée) est égal au texte d’origine. En pratique, au lieu de générer directement le bon cryptage, le hacker va essayer de tenter toutes les combinaisons possibles et choisir celle dont le décryptage est bon. C’est ce qu’on appelle une attaque par force brute.
Le temps moyen de réussite de ce genre d’attaque dépend de :
• La force de calcul dont dispose le malfaiteur ;
• Le temps moyen de décryptage (qui dépend de la taille de la clé publique) ;
• Le nombre de combinaisons possibles qui suit une loi exponentielle de la longueur du code de hachage en bites (i.e. : 2^256 pour un hachage de type SHA-256).

En général, les tailles de la clé publique et du hachage sont choisies de telle façon que le temps moyen d’aboutissement d’une attaque par force brute utilisant toutes les ressources de calculs de la planète, soit largement supérieur à la date de validité du certificat. Craquer une signature dont la date de validité est dépassée, n’as pas beaucoup d’intérêt.
Vous remarquerez que les certificats de durée de validité de deux ans ont, en général, des clés codées sur 2048 bits alors que ceux dont la validité dépasse les dix ans, ont des clés codées sur 4096 bits.

La troisième option, est en pratique, au moins aussi difficile que la deuxième. En effet la crédibilité du certificat est définie par une certaine récurrence, appelée chaine de confiance ou chaine de certificat. Le contenu de chaque certificat doit être signé par l’émetteur du certificat. Comme la signature électronique contient aussi le certificat (partie publique) du signataire, on construit alors une chaine de certificats telle qu’illustrée par le schéma ci-dessous : 

e-Sign Chaine de confiance

La chaine s’arrête au niveau du certificat racine (aussi appelée Autorité Racine), qui doit être officiellement reconnue et acceptée par toutes les parties prenantes (en particulier au niveau juridique).
Du coup, falsifier un certificat, revient à imiter la signature d’au moins une autorité dans la chaine de certificat. Ce qui nous ramène à l’option 2, mais avec des clés plus longues, donc un temps de crack plus long. 

Mise en oeuvre

En pratique, les utilisateurs signataires de la plateforme casaurba.ma récupèrent leurs certificats numériques de la poste (Poste Maroc) sous forme de supports USB. Le procédé de procuration consiste à saisir un formulaire détaillé en ligne, imprimer le dossier de demande (saisi en ligne), le signer, légaliser la signature manuscrite, attacher les copies conformes des pièces requises puis déposer le dossier dans l’agence Al Barid Bank la plus proche. Une fois la demande est traitée (une à deux semaine), le signataire reçoit par poste le code de protection de son certificat et une invitation pour aller récupérer le support physique du certificat à l’agence où il a déposé la demande.

Une fois muni de son certificat, le signataire doit activer l’habilité de signature électronique de son profil au niveau de la plateforme casaurba.ma et ce en téléchargeant le client Karaz-ESign.

Karaz e-Sign est un utilitaire Karaz (Karaz est le système sous-jacent de la plateforme CASAURBA) qui s’installe dans les postes clients (Windows ou Mac) des utilisateurs Karaz et prend en charge le processus de signature électronique pour tout échange avec la plateforme distante, en utilisant le certificat de l’utilisateur.

En effet, l’utilitaire Karaz e-Sign permet de : 
• Détecter automatiquement les demandes de signature numérique émises par la plateforme ;
• Vérifie que le certificat branché, correspond bien à l’utilisateur sollicité par la plateforme ;
• Acquérir l’aval du signataire avant d’entreprendre le processus de la signature ;
• Gérer les workflows signatures multiples et parallèles pour les documents nécessitant plusieurs signatures ;
• Gérer plusieurs rôles, plusieurs cachets et mentions de signature pour le même utilisateur ;
• Gérer l’historique des documents signés.

Karaz e-Sign peut être aussi utilisé pour l’authentification forte lors de l’accès à la plateforme par les utilisateurs critiques dont les actions ont une valeur juridique (tels les membres des commissions d’instruction).

D’autre part, la vérification de la validité des signatures numériques des documents échangés se fait à la plateforme d’une manière automatique à chaque chargement de fichier signé. 

What's next ?

Dans cette première partie, on a vu le principe de la signature numérique, une approche de son intégration dans une plateforme e-gov telle que casaurba.ma. Dans la deuxième partie on abordera la problématique de l’horodatage, son utilité, son mécanisme et son intégration dans une plateforme e-Gov.