O S/MIME (Secure/Multipurpose Internet Mail Extensions) é um protocolo utilizado para assinar digitalmente e-mails. Uma assinatura S/MIME ajuda os destinatários a verificar duas coisas importantes: que a mensagem provém realmente do remetente indicado e que o seu conteúdo não foi alterado durante o trânsito.
Com o 4D 21 R5, a classe SMTPTransporter facilita a adição de uma assinatura S/MIME aos seus e-mails enviados. Eis como funciona.
O que significa «assinar um e-mail»? Em termos simples, significa que é adicionada uma parte S/MIME ao e-mail. Esta parte contém um CRC encriptado com a chave privada do remetente. Ao receber o e-mail, o servidor pode utilizar a chave pública do remetente esperado para o descodificar. Ao fazê-lo, valida tanto a autenticidade do remetente como a integridade do e-mail.
Para enviar um e-mail assinado com S/MIME, necessita de um certificado e da respetiva chave privada. Normalmente, estes vêm agrupados num ficheiro PKCS#12, geralmente com a extensão .p12 ou .pfx. Pode armazenar o certificado no seu armazenamento de chaves ou carregá-lo diretamente do disco.
Assim que tiver o seu certificado, assinar um e-mail requer apenas algumas linhas de código adicionais:
var $transporter : 4D.SMTPTransporter
var $options ; $result : Object
$options:=New object
//Enter the information for the SMTP server
// Enable S/MIME signing
$options.certificate:=File("myCertificateFile.p12")
$options.certificatePassword:="certificatePasswordOrNothingIfBlank"
$transporter:=4D.SMTPTransporter.new($options)
$email:=New object
//Enter the content of the email
$result:=$transporter.send($email)
É tão simples quanto isso!
Quando o destinatário abre a mensagem, o seu cliente de e-mail consegue detetar a assinatura S/MIME e verificá-la utilizando o certificado do remetente. Se a verificação for bem-sucedida, o destinatário pode ter a certeza de que o e-mail foi assinado pelo remetente esperado e não foi alterado desde que foi assinado. A assinatura S/MIME é uma forma simples, mas eficaz, de reforçar a segurança e a fiabilidade das suas comunicações por e-mail e, com o 4D 21 R5, a sua ativação requer muito pouco código adicional.
Espero que esta funcionalidade o ajude a melhorar a segurança dos seus e-mails. Se tiver alguma dúvida, não hesite em contactar-me no fórum oficial da 4D.
PS: Alguns clientes de e-mail não fornecem informações sobre a assinatura de um e-mail, o que é especialmente verdade no caso dos webmails. O Thunderbird e o Mac Mail apresentam as informações corretas.
PPS: Para assinar um e-mail, vai precisar de um certificado emitido por uma autoridade certificadora. Pode criar um você mesmo com o OpenSSL, mas isso implica adicionar o certificado da autoridade certificadora aos certificados de confiança do software de e-mail do destinatário. A solução mais simples é obter um certificado junto de uma autoridade certificadora reconhecida a nível global. Algumas até emitem esses certificados gratuitamente (por exemplo, a Actalis).
De momento, não é possível deixar comentários nesta publicação.