Descifrar correo pgp entrante con procmail

Descifrar correo pgp entrante con procmail

Actualmente tengo un servidor Postfix en ejecución que entrega el correo entrante a través de procmail. Eso funciona bien, pero ahora quiero descifrar cualquier correo entrante que esté cifrado con pgp automáticamente. Así que he creado una regla de procmail para activar gnupg.

Este es mi .procmailrc actual:

:0 fw
* ^Subject: encryptme
| /usr/bin/gpg --decrypt | mail -s "ENCRYPTED: $subject" [email protected]

Ahora el correo se descifra con éxito y se envía a[correo electrónico protegido]pero con el asunto vacío (el correo solo muestra "ENCRIPTADO: ") y con la dirección de correo electrónico del servidor como remitente. Y, por supuesto, el correo descifrado contiene partes del encabezado del correo electrónico.

Content-Type: multipart/mixed; boundary="713bkotRlnRGA7FAhJANoI0IsDpX3ws8N"

--713bkotRlnRGA7FAhJANoI0IsDpX3ws8N
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

Just a test.

--713bkotRlnRGA7FAhJANoI0IsDpX3ws8N--

¿Existe alguna posibilidad de descifrar el correo entrante de esta manera automáticamente y "limpiar" (solo el mensaje descifrado) sin software adicional como GNU Anubis? ¿Y cuál es una buena regla para que procmail active el programa (en lugar del asunto)?

Espero que esta información sea suficiente para que alguien pueda ayudarme.

Respuesta1

En otras palabras, gpg --decryptquiere un archivo, no un mensaje de correo electrónico. Un mensaje de correo electrónico normalmente consta de varias partes MIME (su ejemplo muestra un mensaje multipart/mixedcon una sola parte del cuerpo, pero el concepto aún se mantiene), que no son archivos. Debe pasar solo la carga útil cifrada, no el contenedor MIME, gpgo buscar un contenedor u opción que ayude gpga analizar el contenedor MIME.

Una búsqueda rápida en Google mostró un contenedor Perl MIME simple que hace esto:

En caso de que el enlace falle, reinventar la misma rueda nuevamente no debería ser un desafío importante; básicamente necesitas identificar la parte MIME que contiene una carga útil cifrada, decodificarla (probablemente esté base64codificada, a menos que use gpgla propia "armadura ASCII") y pasarla a gpg. La existencia de una carga útil cifrada es probablemente un buen desencadenante, pero tal vez el contenedor simplemente debería pasar a través de cualquier cosa que no contenga una carga útil cifrada, y usted alimentaría todo al contenedor.

Tangencialmente, no hay nada que defina $subjecten Procmail o en sus reglas. Puedes hacer algo como esto:

:0
* ^Subject:[    ]\/[^   ].*
{ subject=$MATCH }

... donde el espacio en blanco entre los corchetes debe ser un espacio y una tabulación.

información relacionada