封装和签名的 CMS/PKCS #7 邮件
CMS/PKCS #7 可以同时为邮件进行签名和封装。因为受保护的邮件可以嵌套,所以可以实现此目的。通过分别应用 SignedCms 邮件和 EnvelopedCms 邮件主题中所述的所有安全服务,对邮件进行数字签名和封装,从而保护邮件。
使用 S/MIME 安全标准的电子邮件是同时签名和封装邮件的应用程序的示例。S/MIME 指定同时对电子邮件进行签名和加密的能力。如果应用程序对数据身份验证和数据保密性的要求很高,请组合使用数字签名和数字封装。
尽管这两种安全服务可以按任意顺序应用,但是最好先为邮件签名,然后再封装。由于尚未加密,所以已签名的数据是可理解的。
组合使用 SignedCms 和 EnvelopedCms 类对邮件进行签名和封装。例如,应用程序要求先为邮件签名,然后再封装。使用 SignedCms 类为邮件签名,如 SignedCms 邮件主题中所述。调用 System.Security.Cryptography.Pkcs.SignedCms.Encode 方法来对 SignedCms 邮件编码。这样可以生成字节数组形式的编码。使用该字节数组作为输入,构造 ContentInfo 对象。使用 ContentInfo 对象作为输入,构造 EnvelopedCms 对象。
SignedCms 对象中现在嵌套了一个 EnvelopedCms 对象作为其内部内容。现在,按照 EnvelopedCms 邮件中所述为邮件进行封装。
有关为邮件进行签名和封装的代码示例,请参阅如何:签名和封装邮件主题。
请参见
概念
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。