Resumo

  • A RFC 2015 usou multipart/signed para manter a primeira parte MIME legível e a assinatura PGP destacada na segunda, incluindo os cabeçalhos de conteúdo no cálculo.
  • O preço da legibilidade era a estabilidade: sete bits, CRLF, codificação de transferência, linhas From e espaços finais precisavam ser resolvidos antes de assinar.
  • Uma verificação válida relaciona bytes, assinatura e chave; identidade, mandato, intenção, entrega e resultado pertencem a outras camadas de evidência.

O arranjo corrigia uma limitação anterior. Em formas application/pgp, recuperar o corpo podia exigir que o programa entendesse estruturas internas do PGP. A RFC 1847 havia definido um contêiner de segurança neutro com exatamente duas partes. A RFC 2015 colocou a entidade assinada na primeira e application/pgp-signature na segunda. Um agente MIME podia reconhecer o conteúdo mesmo sem implementar PGP.

A separação não liberava a primeira parte para edição. Para texto, o remetente escolhia a representação, convertia as linhas para CRLF, aplicava Content-Transfer-Encoding, acrescentava cabeçalhos MIME e então assinava cabeçalhos e dados codificados. Os cabeçalhos entravam na prova porque alterar o tipo ou a codificação muda a interpretação dos mesmos octetos.

O SMTP de sete bits transformava isso em problema de interoperabilidade. Um gateway podia converter material de oito bits para Quoted-Printable ou Base64 diante de um próximo salto antigo. A entrega melhorava, mas a entrada do hash mudava. A representação assinada precisava, portanto, já ser a representação segura para transporte.

A RFC 2015 chamou atenção para duas mutações discretas. Sistemas de caixa postal podiam inserir > antes de uma linha iniciada por From ; outros caminhos removiam espaços no fim da linha. A RFC 3156 refinou depois a restauração de CRLF, a proteção de espaços e o limite da linha final. Nenhuma dessas mudanças precisava alterar o que a pessoa lia.

Dados apenas criptografados podiam reter oito bits, pois o destinatário recuperava o objeto de um bloco OpenPGP opaco. Na assinatura destacada, o destinatário já possuía a parte legível e tinha de reproduzir a mesma sequência para o hash. Assinar e depois criptografar mantinha a disciplina na entidade interna.

A RFC 2480 explicitou a decisão do gateway diante de um destino sem MIME: transportar o multipart intacto ou desmontá-lo para expor conteúdo utilizável, destruindo a validade da assinatura. Nesse último modo, assinatura e aviso deveriam permanecer. Verificar ou assinar novamente no gateway criava outra custódia de chaves e outro ponto de confiança, razão para ficar desativado por padrão.

O resultado criptográfico é importante, mas estreito. O sucesso registra que uma entidade foi reconstruída e conferida com uma chave pública. Outra política precisa dizer quem controla a chave. O resultado não prova sozinho autoria humana, autoridade organizacional, entrega, visualização ou execução de uma promessa. A falha também não identifica ataque: conversão, armazenamento, chave incorreta e erro de construção produzem o mesmo sinal.

A contribuição duradoura da RFC 2015 foi tornar operacional uma pergunta anterior à assinatura: quais bytes o caminho aceita preservar?

Fontes