85.1.50. pepsi-secure-link¶
inspect and manage messages held in the portal
- Section du manuel:
1
85.1.50.1.1. Nom¶
pepsi-secure-link - CLI d’opérateur pour le portail de repli à liens sécurisés.
85.1.50.1.2. Synopsis¶
85.1.50.1.3. Description¶
pepsi-secure-link inspecte et gère les messages détenus dans le portail de repli à liens sécurisés (voir pepsi-stage-secure-link(1) et pepsi-httpd(1)). C’est un outil d’opérateur, pas une étape.
Les options globales (-c/--config, -L/--log, -v) viennent avant la sous-commande. Lancé en tant que root, l’outil adopte le compte de service pepsi et s’authentifie donc auprès de PostgreSQL en tant que rôle propriétaire de la file d’attente.
85.1.50.1.4. Ce qu’il peut et ne peut pas montrer¶
Il rapporte qui et quand, jamais quoi. Il n’existe aucune sous-commande qui affiche un message stocké, aucun indicateur --decrypt et aucune clé de séquestre : la clé de contenu est dérivée avec Argon2id du PIN du destinataire, d’un sel par message et d’un poivre côté serveur, et le PIN n’est jamais stocké. Rien de ce que détient un administrateur — la base de données, le poivre, les deux ensemble — ne la reconstruit.
Ainsi, lorsqu’un destinataire perd le PIN, l’expéditeur envoie de nouveau le message ; un nouveau PIN est émis et un nouveau lien envoyé par courrier. Il n’y a pas de « renvoyer le PIN », car le PIN n’existe nulle part ailleurs qu’entre les mains des correspondants.
85.1.50.1.5. Commandes¶
- list
Les messages en attente, les plus récents d’abord : jeton, expéditeur, destinataire, expiration, nombre de lectures, nombre d’échecs de PIN et tout verrouillage.
--expiredmontre en plus les messages arrivés à échéance mais pas encore élagués.--limitplafonne le listage (50 par défaut) et--jsonimprime les mêmes champs en JSON.- show TOKEN
Les métadonnées d’un message plus son journal d’accès : quand chaque tentative a eu lieu, depuis quelle adresse, et comment elle s’est terminée (
read,bad-pin,locked,reply). Le journal est plafonné par message par[pepsi-secure-link] ACCESS_LOG_ROWS, qui est aussi le nombre de lignes qu’afficheshow, et est supprimé avec le message.- revoke TOKEN
Détruit un message. Cela ne remet pas le courrier dans la file d’attente — cela le retire, et le lien du destinataire cesse de fonctionner. Si c’était une erreur, l’expéditeur renvoie le message.
- prune
Supprime chaque message passé son expiration, et avec lui l’unique copie. Destiné à une tâche cron quotidienne ou à un timer systemd, comme
pepsi-tlsrpt prune.--grace-hoursconserve un peu plus longtemps les messages expirés. Un déploiement qui n’élague jamais conserve à jamais du texte chiffré illisible dans la base de données : le portail refuse déjà un jeton expiré, c’est donc un problème de taille de base plutôt que de confidentialité, mais cela reste un problème.
85.1.50.1.6. Privilèges¶
L’outil s’exécute sous le rôle de base pepsi, à qui sont accordés INSERT et DELETE sur pepsi.secure_message et SELECT sur chacune de ses colonnes sauf ciphertext. C’est pourquoi list et show fonctionnent et pourquoi rien ici ne peut afficher un message, fût-ce par accident ; pepsi-setup vérifie cette limite contre la base de données en service à chaque exécution.
85.1.50.1.7. Code de sortie¶
0 en cas de succès, non nul en cas d’erreur (y compris show/revoke pour un jeton qui n’existe pas).
85.1.50.1.8. Voir aussi¶
pepsi-stage-secure-link(1), pepsi-stage-encrypt(1), pepsi-httpd(1), pepsi-setup(1), pepsi.conf(5)