Welcome

首页 / 软件开发 / .NET编程技术 / .NET安全: 使用.NET Framework 2.0在您的应用程序中支持证书

.NET安全: 使用.NET Framework 2.0在您的应用程序中支持证书2011-11-17 msdn Dominick Baier本文讨论:

Windows 证书存储区

.NET 中的证书类

验证、SSL、Web 服务和代码 签名

对数据进行签名和加密

本文使用了以下技术:

.NET Framework 2.0

证 书在 Microsoft® .NET Framework 中应用十分广泛,从安全通信到代码签名再到安全策略。.NET Framework 2.0 改进了对证书的支持,为使用证书进行符合标准的加密操作添加了一个全新的命名空间。 在本文中,我将讨论证书和 Windows® 证书存储区的背景知识。同时我还会为您介绍证书 API 的使 用方法和 Framework 如何使用这些 API 实现安全功能。

“证书”实际上是一种 ASN.1 (Abstract Syntax Notation One) 编码的文件,它包含一 个公钥和其他有关该密钥及其所有者的信息。另外,证书具有有效期,并通过另一密钥(所谓的颁发者) 进行签名,该密钥能保证这些属性的真实性,最重要的是,保证公钥本身的真实性。您可以将 ASN.1 看 成是一种二进制 XML。与 XML 一样,它也具有编码规则、强类型和标记;但是,这些都是二进制值,通 常没有可打印字符与之对应。

要使这种文件能够在系统之间互换,需要一种标准的格式。这种标 准格式即 X.509(当前为第 3 版),RFC 3280 (tools.ietf.org/html/rfc3280)) 中对其进行了描述。 虽然 X.509 并未规定证书中嵌入的密钥类型,但 RSA 算法是目前使用最为普遍的非对称加密算法。

首先让我们回顾一下这种算法的历史由来。“RSA”这一名称是发明该算法的三个人的姓氏 首字母缩写:Ron Rivest、Adi Shamir 和 Len Adleman。他们成立了一家名为 RSA Security 的公司, 该公司发布了几个名为公钥加密标准 (PKCS) 的标准文档。这些文档对加密技术的几个方面进行了介绍。

其中最流行的文档之一,即 PKCS #7,为已签名和加密的数据定义了一种名为加密消息语法 (CMS) 的二进制格式。目前 CMS 广泛应用于众多流行的安全协议,其中包括安全套接字层 (SSL) 和安全 多用途 Internet 邮件扩展 (S/MIME)。由于它是一种标准,因此当应用程序需要在几方之间交换已签名 和加密的数据时,它也是一种可供选择的格式。您可以从 RSA Laboratories 网站 (www.rsasecurity.com/rsalabs/node.asp?id=2124) 获得这些 PKCS 文档。