Descriptografa o correio pgp recebido com o procmail

2

Atualmente, tenho um servidor Postfix em execução que entrega mensagens recebidas por meio do procmail. Isso funciona bem, mas agora eu quero descriptografar todos os e-mails recebidos que são criptografados com o pgp automaticamente. Então eu criei uma regra do procmail para acionar o gnupg.

Este é o meu atual .procmailrc:

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

Agora, o e-mail foi descriptografado com sucesso e enviado para [email protected], mas com um assunto vazio (o e-mail mostra apenas "ENCRYPTED:") e o endereço de e-mail do servidor como o remetente. E, claro, o e-mail descriptografado contém partes do cabeçalho do e-mail.

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 alguma possibilidade de descriptografar mensagens recebidas desta forma automaticamente e "limpo" (apenas a mensagem descriptografada) sem software adicional como o GNU Anubis? E qual é uma boa regra para o procmail acionar o programa (insted do assunto)?

Espero que esta informação seja suficiente para alguém me ajudar.

    
por user2626702 07.09.2013 / 15:03

1 resposta

0

Em tantas palavras, gpg --decrypt quer um arquivo, não uma mensagem de e-mail. Uma mensagem de email normalmente consiste em várias partes MIME (seu exemplo mostra um multipart/mixed com apenas uma parte do corpo, mas o conceito ainda é válido), que não são arquivos. Você precisa passar apenas a carga criptografada, não o contêiner MIME, para gpg ou encontrar um wrapper ou opção que ajude gpg analisar o wrapper MIME.

O Quick googling criou um simples wrapper Perl MIME que faz isso:

No caso do link ficar ruim, reinventar a mesma roda novamente não deve ser um desafio significativo; Basicamente, você precisa identificar a parte MIME que contém uma carga criptografada, decodificá-la (provavelmente base64 codificado, a menos que use a "armadura ASCII" de gpg ) e passá-la para gpg . A existência de uma carga criptografada provavelmente é um bom gatilho, mas talvez o wrapper deva simplesmente passar por qualquer coisa que não contenha uma carga criptografada, e você alimentaria tudo para o wrapper.

Tangencialmente, não há nada que defina $subject no Procmail ou nas suas regras. Você pode fazer algo assim:

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

... onde o espaço entre os colchetes deve ser um espaço e uma tabulação.

    
por 09.09.2013 / 10:18