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:

  1. Buat pesan baru atau muat yang sudah ada
  2. Muat sertifikat enkripsi menggunakan objek X509Certificate
  3. Enkripsi pesan menggunakan sertifikat
  4. Kirim pesan atau simpan
  5. 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:

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);