Keamanan dan Enkripsi Email
Enkripsi/Mendenkripsi Pesan
Aspose.Email menyediakan fasilitas untuk mengenkripsi dan mendenkripsi pesan email menggunakan X509Certificates. Artikel ini menunjukkan cara memuat dan mengenkripsi pesan yang sudah ada atau baru menggunakan MailMessage. The Encrypt() dan Decrypt() metode mengembalikan sebuah MailMessage objek untuk efek yang diterapkan dan perlu diperhatikan saat mengenkripsi/mendenkripsi pesan. Proses mengenkripsi dan mendenkripsi pesan melibatkan langkah-langkah berikut:
- Buat pesan baru atau muat yang sudah ada
- Muat sertifikat enkripsi menggunakan objek X509Certificate
- Enkripsi pesan menggunakan sertifikat
- Kirim pesan atau simpan
- Dekripsi pesan sesuai kebutuhan
Cuplikan kode berikut menunjukkan cara mengenkripsi dan mendekripsi pesan.
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Email();
string publicCertFile = dataDir + "MartinCertificate.cer";
string privateCertFile = dataDir + "MartinCertificate.pfx";
X509Certificate2 publicCert = new X509Certificate2(publicCertFile);
X509Certificate2 privateCert = new X509Certificate2(privateCertFile, "anothertestaccount");
// Create a message
MailMessage msg = new MailMessage("atneostthaecrcount@gmail.com", "atneostthaecrcount@gmail.com", "Test subject", "Test Body");
// Encrypt the message
MailMessage eMsg = msg.Encrypt(publicCert);
if (eMsg.IsEncrypted == true)
Console.WriteLine("Its encrypted");
else
Console.WriteLine("Its NOT encrypted");
// Decrypt the message
MailMessage dMsg = eMsg.Decrypt(privateCert);
if (dMsg.IsEncrypted == true)
Console.WriteLine("Its encrypted");
else
Console.WriteLine("Its NOT encrypted");
Verifikasi Enkripsi Pesan
Aspose.Email MailMessage kelas memungkinkan Anda memeriksa apakah sebuah pesan terenkripsi atau tidak. The IsEncrypted properti dari MailMessage memungkinkan Anda memeriksanya seperti yang ditunjukkan dalam contoh kode berikut.
MailMessage mailMessageOrig = MailMessage.Load(Path.Combine(dataDir, "Message.msg"), new MsgLoadOptions());
X509Certificate2 publicCert = new X509Certificate2(publicCertFile);
X509Certificate2 privateCert = new X509Certificate2(privateCertFile, "anothertestaccount");
Console.WriteLine("Message is encrypted: {0}" , mailMessageOrig.IsEncrypted);
MailMessage mailMessage = mailMessageOrig.Encrypt(publicCert);
Console.WriteLine("Message is encrypted: {0}", mailMessage.IsEncrypted);
mailMessage = mailMessage.Decrypt(privateCert);
Console.WriteLine("Message is encrypted: {0}", mailMessage.IsEncrypted);
Memeriksa Tanda Tangan Email Aman
The SecureEmailManager kelas memungkinkan Anda memeriksa tanda tangan objek MailMessage yang aman.
The SmimeResult kelas menyimpan hasil pemeriksaan.
Metode berikut dari SecureEmailManager kelas dan potongan kode akan memungkinkan Anda memproses sebuah tanda tangan:
- SecureEmailManager.CheckSignature(MailMessage msg) metode.
- SecureEmailManager.CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt) metode.
- SecureEmailManager.CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt, X509Store store) metode.
Periksa tanda tangan pesan tanpa menyediakan sertifikat:
var eml = MailMessage.Load(fileName);
var result = new SecureEmailManager().CheckSignature(eml);
Periksa tanda tangan pesan terenkripsi dengan menyediakan sertifikat untuk dekripsi dan penyimpanan yang berisi sertifikat yang digunakan untuk verifikasi:
var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MailMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
var result = new SecureEmailManager().CheckSignature(eml, cert, store);
Tandatangani Email dengan DKIM
Aspose.Email memungkinkan penandatanganan Email dengan DKIM (DomainKeys Identified Mail). Ini memungkinkan organisasi bertanggung jawab atas pesan yang sedang dalam perjalanan (Info Lebih Lanjut). DKIM menambahkan tanda tangan digital ke header pesan email yang dapat divalidasi oleh penerima. Kunci publik pengirim memungkinkan penerima untuk memverifikasi bahwa tanda tangan cocok dengan isi pesan. The DKIMSign metode dari MailMessage kelas digunakan untuk mengatur informasi kriptografi dan tanda tangan untuk menandatangani pesan. Potongan kode berikut menunjukkan cara menandatangani email dengan DKIM.
var eml = new MailMessage("sender@gmail.com", "receiver@gmail.com", "Some subject", "Some body text");
string privateKeyFile = "key2.pem";
RSACryptoServiceProvider rsa = PemReader.GetPrivateKey(privateKeyFile);
DKIMSignatureInfo signInfo = new DKIMSignatureInfo("test", "somedomain.com");
var signedEml = eml.DKIMSign(rsa, signInfo);