Partie 6 · Sécurité, conformité et vie privée
Tokens OTP
Garder ses codes à usage unique dans un coffre personnel chiffré dans le navigateur, les ranger par client et les partager avec son téléphone.
L'application Tokens OTP range les codes à usage unique qui servent de deuxième facteur à vos accès. Elle s'adresse à toute personne qui détient des accès pour elle-même ou pour des clients, et à l'organisation qui veut savoir ce qu'elle détient sans jamais pouvoir le lire. Le coffre est personnel : la graine de chaque code est chiffrée dans votre navigateur, par une clé tirée d'une phrase de passe qui ne part jamais. Le résultat : vos codes tiennent dans Symbifox, rangés par client et par mandat, et le serveur reste incapable d'en produire un seul.
Vue d'ensemble#
Deux écrans, deux usages. Mon coffre est l'écran vivant : il s'ouvre par une phrase de passe, affiche les codes, les copie, et se referme seul après cinq minutes sans activité. L'Inventaire est la liste au sens d'Odoo : il sert à ranger, à filtrer et à retrouver, jamais à produire un code.

Un token est un compte protégé : un émetteur, un compte, un type, et la graine chiffrée qui produit le code. Deux types existent, le code qui change toutes les trente secondes et le code à compteur, qui avance d'un cran à chaque usage. Un coffre appartient à une personne et une seule; il porte les tokens, les clés d'accès enrôlées et les codes de relève.
Le principe du module tient en une phrase : produire un code exige la graine en clair, donc ce moment n'arrive jamais sur le serveur. Symbifox ne garde que du chiffré et un témoin, ce qui lui permet de dire « mauvaise phrase » sans rien savoir de la bonne. Émetteur et compte, eux, restent lisibles à dessein : c'est ce qui permet de chercher, de trier et de tenir l'inventaire.
Le rangement s'appuie sur deux applications voisines. Un token pointe vers un Client de l'application Contacts et vers un Projet; la fiche du contact et celle du projet comptent alors les tokens qui leur sont rattachés, par un bouton d'accès rapide.
Configuration#
Accès et droits#
Un seul groupe existe, Utilisateur. Il ouvre l'application, le coffre de la personne et son inventaire. Il n'ouvre rien chez les autres : une règle limite chaque coffre à son propriétaire, et une personne qui tente d'ouvrir le token d'une autre reçoit un refus d'accès, administration comprise.

Le coffre exige une connexion sécurisée. Servi sans HTTPS, il refuse de fonctionner et le dit en un bandeau, plutôt que d'échouer champ par champ.
Paramètres#
Le module n'ajoute aucun réglage aux Paramètres généraux. Tout ce qui se règle appartient au coffre lui-même : la phrase de passe, les clés d'accès et les codes de relève, tous trois gérés depuis Mon coffre.
Données de base#
Rien n'est à créer d'avance, à trois réserves près. Choisissez votre phrase de passe et rangez-la ailleurs que dans le service que ces codes protègent. Décidez de vos regroupements : sans étiquette, c'est le client qui sert de regroupement, et à défaut l'émetteur dès qu'il porte plus d'un token. Enfin, les clients et les projets auxquels vous rattacherez vos tokens doivent exister dans Contacts et dans Projet.
Premiers pas#
Ce parcours crée votre coffre et y range un premier code. Il se fait entièrement dans votre navigateur, sur une adresse en HTTPS.
- Ouvrez Tokens OTP › Mon coffre.
- Saisissez la phrase de passe qui ouvrira ce coffre, puis confirmez-la.
- Ajoutez un token en collant l'adresse de configuration que le service vous donne à la place de son code QR, ou en saisissant ses éléments à la main.
- Vérifiez l'Émetteur et le Compte proposés, puis enregistrez le token.
- Créez un code de relève et rangez-le hors ligne, dans une enveloppe ou un coffre-fort.
- Ouvrez Tokens OTP › Inventaire et sélectionnez le token que vous venez de créer.
- Renseignez Client, Projet et Regroupement, puis enregistrez.
Résultat : le code paraît dans Mon coffre et se copie d'un geste; l'inventaire, lui, montre à qui ce token appartient et pour quel mandat. La graine, elle, n'a jamais quitté votre navigateur autrement que chiffrée.
Tâches courantes#
Ajouter un token à la main#
Le cas courant est le service qui affiche un code QR sans donner de texte : il offre presque toujours une clé à recopier.
- Ouvrez Tokens OTP › Mon coffre et saisissez votre phrase de passe.
- Demandez l'ajout d'un token, puis choisissez la saisie manuelle.
- Saisissez l'Émetteur et le Compte, puis collez la clé fournie par le service.
- Vérifiez le Type, l'Algorithme, le nombre de Chiffres et la Période (s).
- Enregistrez.
Résultat : le token paraît dans le coffre et produit son code. La graine est chiffrée avant d'être envoyée; le serveur ne reçoit que le chiffré et son vecteur.
Retrouver et copier un code#
Un coffre qui compte des dizaines d'accès se parcourt au clavier, pas à la souris.
- Ouvrez Mon coffre et saisissez votre phrase de passe.
- Tapez les premières lettres de l'émetteur ou du compte.
- Appuyez sur Entrée pour copier le code affiché.
- Appuyez sur Échap pour refermer le coffre.
Résultat : le code est dans le presse-papiers et la date de dernière utilisation du token est mise à jour, ce qui fait remonter les accès dont vous vous servez vraiment.
Ranger un token par client et par mandat#
Le rangement se fait depuis l'inventaire, pas depuis le coffre : ces champs ne touchent pas à la graine.
- Ouvrez Tokens OTP › Inventaire et sélectionnez le token.
- Renseignez Client et Projet.
- Saisissez au besoin un Regroupement, par exemple « Production » ou le nom d'une équipe.
- Cochez Sensible pour que le code reste masqué jusqu'à ce qu'on le demande.
- Enregistrez.
Résultat : la fiche du contact et celle du projet comptent ce token dans leur bouton d'accès rapide, et le coffre le range sous son regroupement.
Enrôler une clé d'accès#
Une clé d'accès ouvre le coffre par une empreinte, un visage ou une clé matérielle, au lieu de la phrase.
- Ouvrez Mon coffre et saisissez votre phrase de passe.
- Ouvrez le panneau des clés d'accès et demandez l'ajout d'un appareil.
- Nommez l'appareil, par exemple « portable » ou « clé jaune ».
- Confirmez avec votre phrase de passe.
- Touchez le capteur ou insérez la clé.
Résultat : l'appareil ouvre désormais le coffre. La clé du coffre n'a pas changé, donc aucune graine n'a été rechiffrée; l'enrôlement redemande la phrase exprès, parce qu'ajouter un moyen d'ouvrir un coffre se confirme par ce qu'on sait.
Poser un code de relève#
Une clé d'accès est liée à un appareil et à un domaine. Le code de relève, lui, tient dans une enveloppe et survit au portable.
- Ouvrez Mon coffre et saisissez votre phrase de passe.
- Demandez la création d'un code de relève.
- Indiquez où il sera rangé, par exemple « enveloppe au coffre-fort ».
- Copiez le code affiché et rangez-le immédiatement hors ligne.
Résultat : le code ouvre le coffre comme la phrase. Il est montré une seule fois et n'est jamais envoyé au serveur : rien nulle part ne permet de le retrouver. Cinq codes au plus par coffre.
Importer un coffre existant#
L'import reconnaît la provenance au contenu du fichier, sans que vous ayez à la déclarer.
- Ouvrez Mon coffre et saisissez votre phrase de passe.
- Demandez l'import, puis choisissez le fichier : un export Symbifox, un export de Google Authenticator ou un export du gestionnaire de codes de Nextcloud.
- Saisissez la phrase qui protège ce fichier, s'il est chiffré.
- Confirmez la reprise.
Résultat : les tokens entrent dans votre coffre, déchiffrés puis rechiffrés dans la page. Les rattachements reviennent par le nom, et seulement quand le nom désigne un seul client ou un seul projet de l'instance.
Exporter son coffre#
L'export sert à changer d'instance ou à garder une copie hors ligne.
- Ouvrez Mon coffre et saisissez votre phrase de passe.
- Demandez l'export.
- Choisissez une phrase propre au fichier, différente de celle du coffre.
- Enregistrez le fichier produit.
Résultat : un fichier chiffré, relisible sur une autre instance puisqu'il ne dépend pas de la clé du coffre. Il n'existe aucun export en clair, et c'est délibéré.
Retirer un token sans le détruire#
Retirer est réversible; détruire ne l'est pas, et se demande en deux gestes.
- Ouvrez Mon coffre et saisissez votre phrase de passe.
- Mettez le token à la corbeille.
- Pour le rendre, sortez-le de la corbeille; pour l'effacer, confirmez la destruction.
Résultat : un token à la corbeille ne paraît plus dans la liste des codes, garde sa date de mise au rebut, et rien ne le détruit tout seul.
Apparier l'application mobile#
L'application mobile lit les codes QR par la caméra, ce que le navigateur du poste ne fait pas.
- Ouvrez Symbifox dans le navigateur de votre téléphone et connectez-vous.
- Ouvrez Tokens OTP › Mon coffre et demandez l'appariement d'un appareil.
- Laissez l'application prendre le relais et nommez l'appareil.
- Ouvrez votre coffre sur le téléphone avec votre phrase de passe.
Résultat : le téléphone lit les codes QR, chiffre la graine sur place et l'envoie déjà scellée. Les codes copiés sur le téléphone remontent dans le tri par usage, et le compteur d'un code à compteur avance là où le code a été produit. Le reste du parcours mobile est décrit au chapitre Applications mobiles et extension.
Retrouver ce qu'on détient pour un client#
C'est la question du jour où quelqu'un part, ou du jour où un client demande des comptes.
- Ouvrez Tokens OTP › Inventaire.
- Regroupez par Client, ou saisissez son nom dans la recherche.
- Lisez la colonne Dernière utilisation pour repérer les accès dormants.
Résultat : la liste de ce que vous détenez pour ce client, avec le projet et le regroupement de chaque token. Le même compte s'obtient depuis la fiche du contact, par son bouton d'accès rapide.
Les menus, un à un#
Tokens OTP › Mon coffre : l'écran du coffre, servi dans la page plutôt que par le serveur. Il s'ouvre par la phrase de passe ou par une clé d'accès enrôlée, affiche les codes avec les favoris en tête, offre la recherche au clavier, l'ajout, l'import, l'export, les clés d'accès, les codes de relève et la corbeille. Sur la démo, servie sans HTTPS, il n'affiche qu'un bandeau d'avertissement.

Tokens OTP › Inventaire : la liste des tokens de votre coffre, avec les colonnes Émetteur, Compte, Regroupement, Client, Projet, Sensible et Dernière utilisation, plus l'étoile des favoris en tête de ligne. Regroupez par client ou par projet pour un état des lieux. L'écran est vide tant que votre coffre l'est, et son texte d'aide rappelle que les tokens s'ajoutent depuis Mon coffre : cet inventaire sert à les ranger, pas à les créer.
Référence#
Champs du formulaire Token#
| Champ | Description | Obligatoire ou par défaut |
|---|---|---|
| Compte | Le compte protégé, tel que le service le nomme | Obligatoire |
| Émetteur | Le service qui délivre le code | Facultatif |
| Type | Code à durée, ou code à compteur | Obligatoire |
| Algorithme, Chiffres, Période (s) | Les réglages que le service impose | Repris de l'adresse de configuration |
| Compteur | Position d'un code à compteur, avancée là où le code est produit | Codes à compteur seulement |
| Client, Projet | Le rattachement qui range le token et alimente les compteurs des fiches | Facultatifs |
| Regroupement | Étiquette libre; à défaut, le client sert de regroupement | Facultatif |
| Favori | Remonte le token en tête, au-dessus des regroupements | Décoché |
| Sensible | Le code reste masqué jusqu'à ce qu'on le demande, et n'est pas copié par mégarde | Décoché |
| Dernière utilisation | Posée à chaque code copié; c'est elle qui fait remonter les accès utiles | Calculée |
| Graine chiffrée, Vecteur | Le chiffré produit par le navigateur; le serveur ne peut pas le lire | Obligatoires |
| Mis à la corbeille | Depuis quand le token est retiré; rien ne le détruit tout seul | Vide |
Rapports et exports#
L'application ne produit aucun rapport imprimable. Le seul fichier qui sort du coffre est son export chiffré, protégé par une phrase choisie à l'export. L'inventaire s'exporte par ailleurs comme toute liste de Symbifox, mais il ne contient aucune graine lisible.
Automatisations#
Une passe horaire retire les appariements d'appareils restés en chemin. Le reste tient dans la page : le coffre se referme seul après cinq minutes sans activité, la date de dernière utilisation s'inscrit à chaque code copié, et le compteur d'un code à compteur avance à l'endroit où le code a été produit, poste ou téléphone.
Pages publiques et portail#
Le module n'expose aucune page publique. Les adresses qu'il sert à l'application mobile, pour l'appariement, l'enrôlement d'une clé d'accès et l'enregistrement d'un token, exigent toutes une session ouverte. Seule une sonde d'habillage répond avant la connexion, et elle ne rend que le nom de la société et deux couleurs.
Modules qui enrichissent cette application#
Aucun module satellite ne s'ajoute à Tokens OTP. Le module s'appuie en revanche sur l'application Projet, qui fournit le champ Projet du token, et sur Contacts pour le champ Client; sans elles, le rangement perd ses deux axes. Les compteurs qui paraissent sur la fiche d'un contact et sur celle d'un projet viennent de ce module et ne comptent que vos propres tokens.
Comprendre#
Qui produit, détient. Un code à usage unique se calcule à partir d'une graine en clair. Un service qui produit vos codes détient donc vos secrets, quoi qu'il en dise. Ce module déplace le calcul dans votre page : le serveur n'a ni la clé, ni de quoi la dériver, et aucune bibliothèque de chiffrement n'est même chargée de son côté.
Pourquoi aucune empreinte de la phrase n'est gardée. Conserver un condensat de la phrase donnerait à qui lit la base un meilleur point de départ que le chiffré lui-même. À la place, le coffre garde un témoin : un texte connu, chiffré avec la clé, qui permet de dire « mauvaise phrase » sans rien révéler de la bonne.
Pourquoi les icônes sont embarquées. Une trentaine de services courants ont leur icône dans le module. Aucune n'est récupérée sur le web : la requête révélerait au service, et à qui regarde le réseau, la liste des comptes que vous protégez. Ce qui n'est pas reconnu reçoit une pastille de couleur calculée à partir du nom.
Pourquoi une clé d'accès ne remplace pas la phrase. Une clé d'accès est liée à un appareil et à une origine : celle enrôlée sur un domaine n'ouvrira pas le coffre depuis un autre, ni depuis une extension de navigateur. Elle scelle une copie de la clé du coffre, elle ne la remplace pas. La phrase reste le recours, et le code de relève est la seule façon de survivre à sa perte.
Pourquoi il n'existe aucun export en clair. Un fichier de graines lisibles oublié dans un dossier de téléchargements est un coffre ouvert dont plus personne ne se souvient trois mois plus tard. L'export est donc toujours chiffré, sous une phrase distincte de celle du coffre, pour qu'il se relise ailleurs sans dépendre de cette instance.
Ce que le module ne fait pas. Le partage d'un token entre deux personnes n'existe pas : il exigerait un chiffrement par enveloppe, où la clé de chaque token est scellée pour chaque destinataire. La lecture d'un code QR par la caméra n'existe pas non plus sur le poste; l'application mobile s'en charge, et sur poste il faut coller le contenu du code.
Ce que le serveur voit tout de même. L'émetteur et le compte sont en clair, à dessein : sans eux, ni recherche, ni tri, ni inventaire. Une personne qui administre l'instance peut donc voir qu'un token existe et le retirer, jamais lire le code qu'il produit.
Dépannage#
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Le bandeau « Chiffrement indisponible » remplace le coffre | La page est servie sans connexion sécurisée | Ouvrez Symbifox en HTTPS; le chiffrement du navigateur n'existe pas autrement |
| L'inventaire est vide alors que des collègues ont des tokens | Chaque coffre n'appartient qu'à son propriétaire | C'est le comportement attendu; demandez à la personne de produire son propre inventaire |
| La phrase de passe est refusée | Le témoin du coffre ne correspond pas à la phrase saisie | Vérifiez la disposition du clavier; à défaut, ouvrez le coffre avec un code de relève ou une clé d'accès |
| Aucun moyen d'ouvrir le coffre ne fonctionne | La phrase est perdue et aucun code de relève n'a été posé | Les tokens sont perdus; refaites-les depuis chaque service, puis posez un code de relève |
| La clé d'accès n'est pas proposée | Elle a été enrôlée sur un autre domaine ou sur un autre appareil | Ouvrez le coffre avec la phrase, puis enrôlez une clé sur cet appareil |
| Le coffre se referme pendant le travail | Fermeture automatique après cinq minutes sans activité | Rouvrez-le; c'est le comportement prévu, sur tous les appareils |
| Des lignes sont refusées à l'import | Graines en clair, doublons ou entrées illisibles | Corrigez le fichier source; le module refuse plutôt que d'accepter en silence |
| Le champ Projet reste introuvable | L'application Projet n'est pas installée | Installez Projet, ou rangez les tokens par Client et Regroupement |
Voir aussi#
- Applications mobiles et extension : l'application qui lit les codes QR et ouvre votre coffre sur le téléphone.
- Contacts : la fiche client d'où se lit le compte des tokens détenus.
- Projet : le mandat auquel un token se rattache.
- Transferts sécurisés : les codes à usage unique qui gardent un envoi, à ne pas confondre avec ce coffre.
- Sensibilisation à la sécurité : la formation qui accompagne la double authentification.