S/MIME(Secure/Multipurpose Internet Mail Extensions)は、電子メールにデジタル署名を行うために使用されるプロトコルです。S/MIME署名により、受信者は次の2つの重要な点を確認することができます。すなわち、そのメッセージが本当に主張されている送信者から送信されたものであること、および送信中に内容が改ざんされていないことです。
4D 21 R5 では、SMTPTransporter クラスを使用することで、送信メールに S/MIME 署名を簡単に追加できます。その仕組みは以下の通りです。
「メールに署名する」とはどういう意味でしょうか? 簡単に言えば、メールに S/MIME パートが追加されることを意味します。このパートには、送信者の秘密鍵で暗号化された CRC が含まれています。 メールを受信する際、サーバーは想定される送信者の公開鍵を使用してこれを復号化できます。これにより、送信者の真正性とメールの完全性の両方が検証されます。
S/MIMEで署名されたメールを送信するには、証明書とその関連する秘密鍵が必要です。これらは通常、PKCS#12ファイルにまとめられており、拡張子は.p12または.pfxが一般的です。証明書はキーストアに保存するか、ディスクから直接読み込むことができます。
証明書を用意できれば、メールに署名するには、ほんの数行のコードを追加するだけで済みます:
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)
これだけで完了です!
受信者がメッセージを開くと、そのメールクライアントは S/MIME 署名を検出し、送信者の証明書を使用して検証を行います。検証に成功すれば、受信者はそのメールが期待通りの送信者によって署名され、署名以降に改ざんされていないことを確信できます。 S/MIME署名は、メール通信のセキュリティと信頼性を強化するためのシンプルかつ効果的な方法であり、4D 21 R5では、ごくわずかな追加コードでこの機能を有効にできます。
この機能が、皆様のメールのセキュリティ向上に役立つことを願っています。ご質問がございましたら、4D公式フォーラムにてお気軽に私までご連絡ください。
追伸:一部のメールクライアントでは、メールの署名に関する情報が表示されない場合があります。特にウェブメールではその傾向が強いです。Thunderbird や Mac Mail では、正しい情報が表示されています。
PPS:メールに署名するには、認証局(CA)が発行した証明書が必要です。 OpenSSLを使って自分で作成することも可能ですが、その場合は受信側のメールソフトの「信頼された証明書」に、その認証局の証明書を追加する必要があります。最も簡単な解決策は、世界的に認知されている認証局から証明書を取得することです。中には、このような証明書を無料で発行しているところもあります(例:Actalis)。
現在、この投稿へのコメント機能は利用できません。