INN

Signer : le stylet, et l'accord du porteur

Faire signer un bénéficiaire à la tablette XP-Pen, et empêcher qu'un collègue appose votre signature enregistrée sans votre accord validé sur votre téléphone.

Deux besoins, une même page, parce qu'ils se rencontrent au même endroit — le moment où quelqu'un signe :

  1. faire signer une personne présente, au stylet, sur une tablette qu'on lui tend ;
  2. empêcher qu'on signe à sa place quand la personne n'est pas là, en exigeant son accord depuis son téléphone.

Le premier est un confort de saisie. Le second ferme un trou réel du registre des signatures, et change un comportement existant : lisez le paragraphe « Ce qui change le jour du déploiement ».

1. Le stylet (XP-Pen et assimilés)

Rien à installer, rien à brancher côté logiciel

Une tablette à stylet est un périphérique de pointage standard. Le pilote du fabricant l'expose au système, le système la donne au navigateur, et le navigateur la livre en PointerEvent — les mêmes événements que la souris et le doigt. Le cadre de signature du dashboard les écoutait déjà : il n'y a aucune intégration XP-Pen à faire, et il n'y en aura jamais.

Ce qui a été ajouté ne fait pas « marcher » la tablette. Ça fait qu'un trait au stylet ressemble à une signature au lieu d'un gribouillis à la souris.

Ce qui a été ajoutéCe que ça change concrètement
Pression (pressure)Pleins et déliés. C'est la différence visible entre une signature et un tracé de souris.
Événements fusionnés (getCoalescedEvents)Une tablette échantillonne à 200 Hz, un écran rafraîchit à 60 : le navigateur regroupe les positions intermédiaires. On les récupère, sinon les courbes rapides d'un paraphe deviennent des segments droits.
Rejet de la paumeSur une tablette à écran, la main repose sur la surface. Dès qu'un stylet s'est manifesté, les points tactiles sont ignorés.
LissageCourbes quadratiques par les milieux, au lieu d'une polygonale.
Plein écranLe cadre s'agrandit à toute la fenêtre — c'est le mode « je tends l'écran au bénéficiaire ».
Export à résolution fixe1500 × 500, quel que soit l'écran. Une signature faite sur un téléphone et une autre faite sur une tablette de 24 pouces sortent identiques à l'impression.

Le pilote XP-Pen : deux modes, et il faut le savoir

Le panneau de configuration XP-Pen propose (sous Windows) d'activer ou non Windows Ink :

  • Windows Ink activé — le navigateur reçoit pointerType: "pen" avec la pression. C'est le mode recommandé : les pleins et déliés fonctionnent, et le rejet de la paume aussi ;
  • Windows Ink désactivé — la tablette se présente comme une souris. Tout continue de fonctionner, mais le trait est d'épaisseur constante et la paume n'est plus distinguée.

Le cadre ne suppose jamais la présence de pression : son absence dégrade l'apparence du trait, elle ne casse rien.

Le geste, au comptoir

  1. ouvrir le bon, cliquer la place à signer (Bénéficiaire, Caisse, Direction) ;
  2. choisir Signer ici plutôt que Signature enregistrée ;
  3. cliquer Plein écran, tendre la tablette ;
  4. la personne signe, on referme, on valide.

Le fond du cadre est blanc en clair comme en sombre, et c'est délibéré : la signature finit sur un bon imprimé sur du papier. En mode sombre, un fond sombre faisait signer un trait presque noir sur un fond presque noir.

2. L'accord du porteur

Le trou qu'on ferme

Le registre des signatures (migration 00067) a rendu les paraphes réutilisables : on les dépose une fois, ils s'apposent partout. Il n'a jamais dit qui, à part le porteur, avait le droit de s'en servir.

En pratique : n'importe quel compte pouvant signer un bon ouvrait la liste « Signature enregistrée », y trouvait le paraphe d'un collègue, et l'apposait. Le dialogue affichait « ne l'apposez qu'avec l'accord de la personne ».

Une phrase à l'écran n'est pas un contrôle.

Les trois réponses du porteur

Chacun règle sa signature depuis Mon profil → Ma signature (dashboard) ou depuis l'application mobile. Trois positions, et une seule est le défaut :

RéglageCe que ça veut dire
PersonneLe paraphe ne sort qu'avec son porteur. Un collègue qui en a besoin doit le faire tracer sur place.
Sur mon accord (défaut)Un collègue peut le demander pour un document précis. Rien ne s'appose avant l'accord.
Toute l'entrepriseOuvert : n'importe quel collègue habilité l'appose sans rien demander. Chaque apposition reste journalisée à son nom.

Ne pas confondre avec l'apposition automatique

L'apposition automatique (le mandat) dit « ma signature part seule sur mes documents » — le bon dont je suis bénéficiaire, ma fiche de paie.

La délégation dit « un collègue peut la choisir pour un document que je ne connais pas ».

Ce sont deux questions distinctes, et les lier ferait qu'accepter de gagner du temps sur sa propre paie ouvrirait son paraphe à toute la maison.

Corriger, ou changer de signataire

On se trompe de nom : deux Mbarga dans la liste, un homonyme, une ligne cliquée trop vite. Deux gestes, depuis l'écran d'attente du bon :

  • Corriger le motif — le texte change, la personne est reprévenue, et le défi est remis à zéro : un accord donné sur l'ancien texte ne vaut plus. C'est ce qui empêche d'obtenir un accord sur « 150 000 FCFA » puis de le faire servir sur « 1 500 000 » ;
  • Changer de signataire — la demande est annulée (elle disparaît du téléphone de celui qu'elle ne regardait pas) et on revient au choix, sans fermer le dialogue ni ressaisir le bon.

Une demande ne se réaffecte pas : elle porte sur un paraphe précis, et la transférer reviendrait à interroger quelqu'un d'autre sous un identifiant que le premier a déjà vu. Le journal garde les deux gestes plutôt qu'une ligne qui aurait changé de destinataire en cours de route.

Le parcours d'une demande

Comptable (dashboard)          Porteur (téléphone)
        │
        │  choisit le paraphe d'un collègue
        │  → le bouton dit « Demander l'accord »
        ├──────────────────────────────►  notification
        │                                 « X demande votre signature »
        │  écran d'attente                        │
        │  (le dialogue reste ouvert)             │
        │                                 Profil → Demandes de signature
        │                                 lit le motif : « Bon de décaissement
        │                                 n° 412 — 150 000 FCFA — loyer mars »
        │                                         │
        │                                 ┌───────┴────────┐
        │                                 │                │
        │                              Refuser        Valider
        │                             (immédiat)   → empreinte / visage / code
        │                                 │                │
        ◄─────────────────────────────────┴────────────────┘
        │
        │  accord reçu → la signature s'appose toute seule

Le comptable n'a rien à ressaisir : le dialogue attend et termine le geste dès l'accord reçu.

Les garde-fous, et pourquoi ils existent

  • Un accord ne sert qu'une fois. Il vaut pour ce document, pas pour le suivant. Sans cette borne, un accord valable deux heures aurait autorisé deux heures d'appositions successives : le porteur croirait avoir consenti à un bon, il en aurait signé dix ;
  • Un accord expire (2 h par défaut, SIGNATURE_REQUEST_TTL_MS). Un accord sans date n'est pas un accord, c'est une procuration ;
  • Seul le porteur décide. Pas l'administrateur, pas le directeur, pas le demandeur. Un accord donné par quelqu'un d'autre n'aurait pas plus de valeur que l'ancienne phrase d'avertissement — il serait pire, parce qu'il aurait l'air d'un contrôle ;
  • Recliquer ne renvoie pas la demande. Une seule demande vivante par (signature, demandeur, document) : faire sonner trois fois le même téléphone pour le même bon, c'est apprendre aux gens à valider sans lire ;
  • Fermer sa délégation annule les demandes en cours. Quelqu'un qui verrouille parce qu'il vient de voir passer une demande douteuse voulait justement faire disparaître celle-là ;
  • Sans compte identifié, on refuse. Un contrôle de consentement qui s'ouvre quand on ne sait pas qui demande n'est pas un contrôle.

3. Les deux façons d'accorder

Le porteur reçoit la notification dans son compte. Il a deux chemins, et ils ne valent pas la même chose — le journal enregistre lequel a servi.

Depuis le compteDepuis l'application
OùDashboard, Mon profilApplication mobile, Demandes de signature
Ce qu'il fautUne session authentifiéeEmpreinte, visage ou code de l'appareil
Facteur journalisésessionbiometric / passcode
ForceLe compte, rien de plusLe compte et l'appareil

Le chemin « depuis le compte » existe parce que le porteur est déjà devant son écran quand la notification arrive : lui faire sortir son téléphone pour un geste qu'il peut faire là serait une friction sans contrepartie. Il est plus faible, et c'est écrit tel quel plutôt que maquillé.

Refuser ne demande rien, nulle part — ni défi, ni contrôle local. Fermer une porte n'a jamais eu besoin d'une preuve d'identité, et exiger une empreinte pour dire non ferait d'un capteur défaillant une porte qu'on ne peut plus fermer.

Ce que « c'est chiffré » veut dire ici, exactement

Trois mécanismes distincts, souvent confondus dans une même phrase. Ils ne protègent pas des mêmes choses.

Le défi — contre le rejeu. 32 octets tirés au sort à la création de la demande, à usage unique. Toute décision doit le présenter, et il est consommé au passage. Une charge utile capturée (journal de proxy, onglet resté ouvert) ne resservira pas. Il n'est jamais rendu au demandeur : le livrer à celui qui demande reviendrait à lui donner de quoi fabriquer sa propre approbation.

Le sceau — contre la réécriture en base. HMAC-SHA256 posé par le serveur sur (demande, porteur, décision, facteur, appareil, horodatage, défi). Il ne protège pas d'un serveur compromis — rien ne le peut, puisque c'est lui qui détient la clé. Ce qu'il apporte est précis : quiconque a un accès SQL peut changer denied en approved, mais pas recalculer le sceau. Le journal cesse d'être un mot dans une table.

Le secret d'appareil — pour que le facteur soit constaté. Le téléphone tire un secret, le range dans son trousseau (Keychain / Keystore) en exigeant l'authentification à la lecture, et l'enrôle auprès du serveur qui n'en garde que l'empreinte SHA-256. Pour valider, l'application doit le relire — et le système ne le rend qu'après une empreinte, un visage ou le code.

Le contrôle local et la récupération du secret sont donc le même geste. C'est tout le point : il n'y a plus d'espace entre « le système a dit oui » et « je l'annonce au serveur », donc plus rien à sauter.

Ce que ce n'est toujours pas

Une signature cryptographique du porteur. Le secret est partagé avec le serveur et prouve l'appareil, pas la personne ; et un accord donné depuis le compte n'en présente aucun.

Le jour où l'on voudra cette garantie-là, il faudra une paire de clés matérielles par appareil et une vérification asymétrique. C'est un autre chantier, et il ne faut pas laisser croire qu'il est fait.

On écrit donc « validé depuis votre téléphone », jamais « signature biométrique ». Nommer les choses exactement est la moitié du travail.

Un téléphone sans verrouillage

Ne peut rien garantir, et n'est pas enrôlé — l'écran le dit, avec la marche à suivre. Le porteur accorde alors depuis son compte, avec le facteur session. Laisser passer un enrôlement décoratif aurait été pire que de ne rien avoir.

3 bis. Le paraphe de la direction — une main, pas un cachet

Tout ce qui précède valait pour la signature d'un salarié. Le paraphe de l'entreprise — celui qui s'imprime sur la ligne « Direction » des bons de caisse — en était exclu, au motif qu'un paraphe de société n'appartient à personne.

C'était faux : ce trait est la main du directeur, imprimée sous son nom. Il était donc, seul de toute la maison, sans aucune des protections décrites ci-dessus.

Ce qui change pour lui

AvantMaintenant
L'apposition automatique posait son paraphe sur tous les bons, sans qu'il le sacheElle demande : il reçoit la demande, valide, et le bon se signe dans la seconde
N'importe quel compte pouvant signer un bon le choisissait dans la listeSa délégation décide, comme pour n'importe quel salarié
Son verrou ne s'ouvrait que par l'éditeur du logicielIl rouvre le sien, en le prouvant

Les bons que le directeur saisit lui-même partent signés, sans rien lui demander : on ne se demande pas l'autorisation à soi-même.

Qui est « le directeur » ?

Le compte qui a déposé le paraphe, quand il porte le rôle dg — le registre le retient. Pour une maison déjà installée, c'est le compte de direction unique de la société.

Plusieurs comptes de direction, ou aucun qui soit rattaché : « Mail du DG » tranche. Le compte de direction qui porte cette adresse est celui que l'entreprise désigne, et il porte la signature. Sans correspondance, personne n'est désigné, et INN le dit plutôt que de choisir au hasard — faire valider un bon par le mauvais directeur est pire que de ne rien pouvoir valider. Il suffit alors que le directeur redépose sa signature depuis son compte.

Rouvrir son propre verrou

Paramètres → Entreprise → Paraphe → Rouvrir mon verrou, un motif, puis une preuve : la clé de cet ordinateur, ou une validation depuis l'application.

La session seule ne suffit pas, et c'est le point : le directeur est déjà connecté. Lui donner le verrou d'un clic reviendrait à ne plus en avoir, et le remplacement du trait qui engage la société tiendrait à un onglet resté ouvert dans un bureau. Le créneau dure quinze minutes — la plus courte des quatre durées : il sert un geste, pas une séance.

Un salarié garde l'ancienne règle — son créneau s'ouvre par un administrateur — et ce n'est pas une inégalité : il a une autorité au-dessus de lui dans la maison. Le directeur n'en a pas.

La caisse ne change pas

Le paraphe de la caisse reste ce qu'il est : un poste. Le tiroir change de main sans que la signature change de sens, et c'est le comptable qui la dépose. Il n'y a personne dont ce serait le consentement à donner.

Un directeur n'a pas de fiche employé

Il ne pointe pas : la page « Mon pointage » ne le concerne pas. Trois conséquences en découlaient, toutes corrigées du même coup — les demandes qui l'attendent s'affichent sur son profil et dans l'application même sans fiche, et les courriels de demande de signature partent à « Mail du DG » (Paramètres → Entreprise), à défaut à l'adresse de son compte.

Cet ordre-là n'est pas un détail : le compte d'un directeur est presque toujours créé par quelqu'un d'autre, avec l'adresse de ce quelqu'un d'autre. « Mail du DG » est l'adresse que l'entreprise donne comme étant celle de sa direction, et une demande de signature s'adresse à la fonction.

Le reste du courrier ne change pas : un bulletin, un congé, un document vont à l'adresse de la PERSONNE — sa fiche, puis son compte.

Un groupe : les filiales héritent du paraphe de la mère

Une filiale qui n'a pas déposé la signature de sa direction utilise celle de sa société mère — sur ses bons, ses lots et ses visas. Le directeur du groupe dépose donc son paraphe une fois, depuis la société mère (ou sans société choisie : c'est la mère qui le reçoit). Une filiale peut déposer le sien ; il remplace alors celui de la mère chez elle seulement. La caisse n'est pas héritée : chaque société a la sienne.

3 ter. Faire signer plusieurs bons d'un coup

Dans Comptabilité, cochez les bons, puis Faire signer dans la barre de sélection. Deux choix, et aucun n'est pré-rempli : la place (direction, caisse, bénéficiaire) et qui signe — la direction, la caisse, ou tout salarié qui a déposé sa signature. Cinquante bons au plus par envoi.

Ce qui se passe ensuite dépend de qui signe, et la boîte le dit avant l'envoi :

  • La caisse signe tout de suite, sur tous les bons, sans vérification : c'est un poste, il n'y a personne à qui demander ;
  • Une personne reçoit une seule notification pour tout le lot, et les demandes s'ajoutent à sa file « Demandes de signature ». Elle les valide toutes d'un geste — « Tout valider » — avec une seule empreinte sur son téléphone, ou la clé de son ordinateur. Chaque bon se signe à la validation. Si c'est vous qui signez avec votre propre signature, les bons se signent tout de suite.

Un bon dont la place est déjà signée reste tel quel. Un bon modifié après l'envoi ne se signe pas à la validation : l'accord portait sur l'ancien texte.

Tout valider demande une vraie preuve. Depuis le tableau de bord, une demande seule peut s'accorder par la session ; un lot, non — il faut la clé de l'ordinateur ou le téléphone. Et si une seule demande a été corrigée depuis l'affichage, rien n'est validé : on recharge, on relit, on recommence.

Les demandes d'un lot restent ouvertes 24 heures (deux heures pour une demande ordinaire) : elles attendent que le signataire ouvre son téléphone, pas que le comptable reste devant son écran.

Retrouver les bons à signer. Le filtre « À signer » du registre montre les bons dont une place est encore vide (« Sans la direction », « Sans la caisse », « Sans le bénéficiaire ») : on coche la page, puis « Faire signer ».

La relance. Une personne qui n'a pas validé un lot est prévenue une seule fois, quand il reste moins de six heures avant l'expiration de ses demandes.

INNIA peut envoyer un lot de demandes (« demande à la direction de signer les bons 412 à 430 »). Elle ne signe jamais : c'est la validation de la personne qui appose. Elle refuse la caisse, qui n'a besoin d'aucun accord — ce lot-là se fait depuis la Comptabilité.

4. Les clés matérielles

Les trois mécanismes ci-dessus ont une limite commune, et elle était écrite : aucun n'est une signature du porteur. Le secret d'appareil est partagé — le serveur en détient une copie, donc un serveur compromis pourrait fabriquer une approbation.

Les clés matérielles lèvent ça.

Ce qui change

Une paire de clés dont la privée naît dans le Secure Enclave (iOS, macOS), le Keystore matériel (Android), le TPM (Windows Hello) ou une clé physique, et n'en sort jamais. Le serveur ne détient que la publique : il lui manque de quoi signer, donc il vérifie au lieu de croire.

C'est la différence entre « je te crois » et « je vérifie », et c'est la seule des quatre étapes qui la franchisse.

FacteurCe que le serveur faitUn serveur compromis peut…
sessionConstate une session authentifiée…tout
passcode / biometricCompare un secret partagé…fabriquer un accord
passkeyVérifie une signature…rien : il n'a pas la clé privée

Le défi est celui de la demande

Ce n'est pas une authentification générique : la signature produite par l'enclave porte sur ce document. Un accord ne se recycle pas d'un bon à l'autre, et une correction du libellé — qui régénère le défi — invalide une assertion commencée sur l'ancien texte.

userVerification: 'required'

La ligne qui compte. Sans elle, une clé pourrait signer sur simple présence (un doigt posé, sans reconnaissance). Le drapeau UV de l'assertion fait foi : le serveur le constate dans la signature, il ne le lit plus dans un champ que le client remplit.

Enregistrer une clé

Mon profil → Ma signature → Clé de validation → Enregistrer cet appareil.

Le bloc n'apparaît que si le navigateur sait faire et si le déploiement a une URL publique configurée. Un bouton qui échoue au clic est pire qu'un bouton absent : il fait chercher une panne là où il n'y a qu'une configuration.

Passkey synchronisée ≠ clé d'appareil

Une passkey rangée dans iCloud ou le gestionnaire Google suit le compte, pas l'appareil : quiconque ouvre ce trousseau peut signer. C'est un choix de l'utilisateur que le serveur ne commande pas — mais il le constate (backed_up) et l'affiche dans la liste des clés, parce que « la clé est dans mon téléphone » et « la clé est dans un nuage » ne sont pas la même promesse.

⚠️ Ce qui n'est pas encore en place : le mobile

Le RP ID est le domaine du dashboard. Une clé enregistrée depuis un navigateur ne vaut donc que là. L'application mobile a besoin de son propre enrôlement, et cela exige une association de domaine publiée :

  • iOS — entitlement Associated Domains (webcredentials:<domaine>) et un fichier apple-app-site-association servi à la racine du domaine ;
  • Android — un assetlinks.json portant l'empreinte SHA-256 du certificat de signature EAS.

Tant que ce n'est pas déployé, le téléphone garde le chemin du secret d'appareil (biometric / passcode) : plus faible que passkey, plus fort que session, et dit comme tel dans le journal.

5. INNIA peut demander (jamais apposer)

L'assistant porte quatre capacités, dans leur propre groupe :

CapacitéType
list_signature_signatorieslecture — qui a déposé, et ce que ça coûtera
list_my_signature_requestslecture — ce que j'ai demandé, et où ça en est
request_signature_useécriture — passe par une card de confirmation
cancel_signature_requestécriture — annuler une demande partie par erreur

Demander est un geste sans effet sur le document : rien ne s'appose, le porteur reste seul maître. C'est exactement l'aller-retour que l'assistant supprime bien — « il me faut l'accord de Fondja sur le bon 412 » plutôt qu'ouvrir l'écran, chercher la ligne, cliquer.

Apposer n'est pas là et n'y sera pas. Une signature engage quelqu'un ; le geste doit rester celui d'un humain devant un document qu'il regarde.

La demande part sous le compte connecté, jamais « sous celui d'INNIA » qui n'existe pas : le porteur lit « Bakary demande votre signature », parce que c'est Bakary qui la demande. On n'accorde pas sa signature à un logiciel.

Ce qui n'est pas concerné

  • Le paraphe de la caisse. Il appartient à un poste, pas à une personne : le tiroir change de main sans que la signature change de sens. C'est le rôle du compte qui en tient la porte, et il n'existe personne dont ce serait le consentement à donner. (Le paraphe de la direction en relevait aussi jusqu'à la 2.62 ; c'est une main, et il suit désormais la règle commune — voir § 3 bis.) ;
  • Sa propre signature. On ne s'autorise pas soi-même ;
  • L'apposition automatique. Le consentement y a été donné une fois, explicitement, par le porteur. Un bon de salaire part toujours signé de son bénéficiaire.

6. Ce qui change le jour du déploiement

Toutes les signatures déjà déposées passent en « Sur mon accord ». C'est volontaire : garder l'ancien comportement en défaut aurait laissé le trou ouvert pour tout l'existant, c'est-à-dire pour tout le monde.

Concrètement, à partir du déploiement :

  • prendre le paraphe d'un collègue dans la liste attend désormais son accord. Le bouton le dit avant le clic ;
  • rien d'autre ne bouge : les bons de salaire continuent de sortir signés (apposition automatique), le paraphe de la caisse continue de s'apposer, et signer sur place n'a jamais rien demandé. (Depuis la 2.62, celui de la direction DEMANDE au lieu de s'apposer — voir § 3 bis.)

Ce qu'il faut annoncer aux équipes

  1. aux porteurs de signature : vous recevrez des demandes sur votre téléphone ; si vous préférez que ça continue comme avant, réglez votre signature sur Toute l'entreprise ;
  2. au service comptable : le bouton « Apposer » devient « Demander l'accord » sur les paraphes des collègues ; le dialogue attend et termine tout seul ;
  3. aux personnes sans smartphone : leur signature ne pourra pas être apposée à distance. Deux options — la régler sur Toute l'entreprise, ou signer sur place à la tablette. L'écran le dit explicitement quand la fiche n'a aucun compte relié.

Sur cette page