08Seguridad · Criptografía

dsig

Firma de mensajes GPG para Vencord/Vesktop. Certificación de autoría de cada mensaje.

Firma mensajes de Discord con su clave GPG. Verifica la autoría, evita la suplantación. Formatos de pie de página compactos e invisibles.

TypeScriptGPG / OpenPGPVencordDiscord
Último commit del repositorio

Cargando últimos commits…

Pruebas

142

Líneas de prueba

1,817

Líneas fuente

3,782

Tamaño de pie de página

113 chars

01

Problema

Discord no tiene firma de mensajes nativa. Cualquiera puede hacerse pasar por cualquier persona copiando su nombre para mostrar y su avatar. No existe una forma criptográfica de verificar que un mensaje fue realmente escrito por el autor reclamado.

02

Modelo de amenaza

Invariantes
Manipulación de mensajesDETECTED
Suplantación de autorBLOCKED
Repetir ataquesNONCE
Compromiso claveOUT DE SCOPE
aislamiento del agente gpgTHROWAWAY GNUPGHOME
03

Decisiones clave

Codificación invisible

Las firmas se codifican como caracteres invisibles Unicode (espacios de ancho cero, no unidos) agregados al mensaje, probados con el comportamiento real del cliente de Discord.

Canonicalización de contenidos

Normalización de NFC, conversión de CRLF a LF, colapso de espacios en blanco. Evita omisiones triviales mediante la normalización Unicode o diferencias de final de línea.

aislamiento del agente gpg

La verificación utiliza un GNUPGHOME desechable para evitar que la verificación acceda a la clave de firma. Cada operación de verificación se ejecuta de forma aislada.

Solo escritorio por diseño

Los navegadores web no pueden acceder a gpg-agent. El complemento es solo para escritorio (Vencord/Vesktop) porque el modelo de seguridad requiere acceso a clave local.

04

Compensaciones

  • Solo para escritorio (la web no puede acceder a gpg-agent)
  • Requiere configuración del par de claves GPG
  • Algunos clientes pueden eliminar la codificación invisible
  • El compromiso clave está fuera del alcance (limitación estándar GPG)