08Sécurité · Cryptographie

dsig

Signature de message GPG pour Vencord / Vesktop. Attestation de paternité pour chaque message.

Signez les messages Discord avec votre clé GPG. Vérifie la paternité, empêche l’usurpation d’identité. Formats de pied de page compacts et invisibles.

TypeScriptGPG / OpenPGPVencordDiscord
Dernier commit du dépôt

Chargement des derniers commits…

Essais

142

Lignes de test

1,817

Lignes sources

3,782

Taille du pied de page

113 chars

01

Problème

Discord n'a pas de signature de message native. N'importe qui peut usurper l'identité de n'importe qui en copiant son nom d'affichage et son avatar. Il n’existe aucun moyen cryptographique de vérifier qu’un message a bien été écrit par l’auteur revendiqué.

02

Modèle de menace

Invariants
Falsification des messagesDETECTED
Usurpation d'identité d'auteurBLOCKED
Rejouer les attaquesNONCE
Compromis cléOUT DE SCOPE
isolement de l'agent gpgTHROWAWAY GNUPGHOME
03

Décisions clés

Encodage invisible

Les signatures sont codées sous forme de caractères invisibles Unicode (espaces de largeur nulle, non-participants) ajoutés au message, testés par rapport au comportement réel du client Discord.

Canonisation du contenu

Normalisation NFC, conversion CRLF en LF, réduction des espaces. Empêche les contournements triviaux via la normalisation Unicode ou les différences de fin de ligne.

isolement de l'agent gpg

La vérification utilise un GNUPGHOME jetable pour empêcher la vérification d'accéder à la clé de signature. Chaque opération de vérification s'exécute de manière isolée.

Conçu uniquement pour ordinateur de bureau

Les navigateurs Web ne peuvent pas accéder à gpg-agent. Le plugin est uniquement destiné au bureau (Vencord/Vesktop) car le modèle de sécurité nécessite un accès par clé locale.

04

Compromis

  • Ordinateur de bureau uniquement (le Web ne peut pas accéder à gpg-agent)
  • Nécessite la configuration de la paire de clés GPG
  • L'encodage invisible peut être supprimé par certains clients
  • Le compromis clé est hors de portée (limitation standard GPG)