E‑mailbeveiliging en versleuteling

Berichten versleutelen/ontsleutelen

Aspose.Email biedt de mogelijkheid om e‑mailberichten te versleutelen en te ontsleutelen met X509Certificates. Dit artikel toont hoe een bestaande of nieuwe boodschap kan worden geladen en versleuteld met MailMessage. De Encrypt() en Decrypt() methoden retourneren een MailMessage object voor de toegepaste effecten en moet in acht worden genomen bij het versleutelen/ontsleutelen van berichten. Het versleutelen en ontsleutelen van berichten omvat de volgende stappen:

  1. Maak een nieuw bericht aan of laad een bestaand bericht
  2. Laad een versleutelingscertificaat met het X509Certificate‑object
  3. Versleutel het bericht met het certificaat
  4. Verzend het bericht of sla het op
  5. Ontcijfer het bericht zoals vereist

Het volgende codefragment laat zien hoe je berichten kunt versleutelen en ontcijferen.

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

Berichtversleuteling verifiëren

Aspose.Email MailMessage klasse stelt u in staat te controleren of een bericht versleuteld is of niet. De IsEncrypted eigenschap van MailMessage stelt u in staat dit te controleren zoals getoond in het volgende code‑voorbeeld.

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

Handtekening van beveiligde e‑mails controleren

De SecureEmailManager klasse stelt u in staat de handtekening van beveiligde MailMessage‑objecten te controleren.

De SmimeResult klasse slaat de resultaten van de controle op.

De volgende methoden van de SecureEmailManager klasse en een code‑fragment stellen u in staat een handtekening te verwerken:

Controleer de handtekening van een bericht zonder een certificaat op te geven:

var eml = MailMessage.Load(fileName);
var result = new SecureEmailManager().CheckSignature(eml);

Controleer de handtekening van een versleuteld bericht door het certificaat voor ontsleuteling en de store met de certificaten die voor de verificatie worden gebruikt, op te geven:

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

E‑mails ondertekenen met DKIM

Aspose.Email maakt ondertekening van e‑mail met DKIM (DomainKeys Identified Mail) mogelijk. Dit laat een organisatie verantwoordelijkheid nemen voor een bericht dat onderweg is (Meer info). DKIM voegt een digitale handtekening toe aan de e‑mailheader die door ontvangers kan worden gevalideerd. De publieke sleutel van de afzender stelt de ontvanger in staat te verifiëren dat de handtekening overeenkomt met de inhoud van het bericht. De DKIMSign methode van de MailMessage klasse wordt gebruikt om de cryptografische en handtekeninginformatie in te stellen voor het ondertekenen van het bericht. Het volgende code‑fragment toont hoe u e‑mails ondertekent met 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);