Verificação por CLI do e-mail assinado digitalmente

10

Sou Alice e recebi um email assinado de Bob.

Eu uso o cliente de email da Web (por exemplo, GMail) e vejo que um dos anexos é smime.p7s.

Encontrei a opção "mostrar mensagem original" e salvei o conteúdo message.orig.

Supondo que o e-mail assinado por Bob, como posso verificá-lo na linha de comando?

(Vamos supor que Bob use a chave certificada assinada por algumas das autoridades respeitadas - não sei qual, mas suponho isso)

(Alice não deseja instalar o cliente de email com o recurso apropriado, apenas para uma mensagem)

Grzegorz Wierzowiecki
fonte
+1 para a resposta, -1 por não ter mencionado Trudy (por favor edite: P)
Avio 27/03

Respostas:

9
openssl smime -verify -in message.orig

Adicione uma opção -CAfileou -CApathpara especificar uma lista diferente de certificados confiáveis ​​do padrão do sistema.

Você pode obter informações do certificado usado para assinar o email:

openssl smime -noverify -in message.orig -pk7out |
  openssl pkcs7 -print_certs -text -noout

Ou do smime.p7s, se você já o extraiu:

openssl pkcs7 -in smime.p7s -text -inform DER -print_certs -noout
Stéphane Chazelas
fonte
ok, acabei de atualizar meu ca-certificates(Arch pacman -S ca-certificates), mas recebo um erro: Verification failure 140717529130664:error:21071065:PKCS7 routines:PKCS7_signatureVerify:digest failure:pk7_doit.c:1048: 140717529130664:error:21075069:PKCS7 routines:PKCS7_verify:signature failure:pk7_smime.c:410: Você tem alguma idéia do que isso significa? Talvez "abra a mensagem original" e depois salve a fonte, tenha feito algumas transformações na fonte da mensagem?
Grzegorz Wierzowiecki 18/10/12
Será que openssl pkcs7 -in smime.p7s -text -inform DER -print_certs -noouto trabalho (para dizer-lhe informações sobre o certificado no arquivo PK7)?
Stéphane Chazelas
Sim. (. btw Isso é muito útil comando, adicione-o à sua resposta, eu acredito que outros usuários também se beneficiarão.)
Grzegorz Wierzowiecki
O novo comando também não ajuda: pastebin.com/xNMG2gwQ
Grzegorz Wierzowiecki
Eu apenas tentei "show original" no gmail, depois usei "save page as" no firefox e o comando funcionou bem. Também notei que o gmail mostrava um cabeçalho "assinado por" ao expandi-los.
Stéphane Chazelas