- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.Net应用程序证书的使用方法
证书在 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 (/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 网站 (/rsalabs/node.asp?id=2124) 获得这些 PKCS 文档。
如何获得一个证书
目前有几种方法可以获取证书。在交换文件时,证书通常以两种格式之一出现。扩展名为 .cer 的文件是采用 X.509v3 格式的已签名 ASN.1 文件。这些文件中包含着我之前提到的一个公钥和额外的信息。您要将这些文件中包含的内容提供给业务合作伙伴或朋友,以便他们能够使用公钥为您加密数据。
此外,您可能会遇到扩展名为 .pfx(个人信息交换,Personal Information Exchange)的文件。.pfx 文件包含一个证书和与之对应的私钥(PKCS #12 标准对该格式有所说明)。这类文件是高度敏感的,通常用于导入服务器上的密钥对或用于备份目的。在导出密钥对时,Windows 提供用密码加密 .pfx 文件;而在导入密钥对时,您必须再次提供此密码方可导入。
您还可以生成自己的证书。证书的生成方式通常取决于其使用方式。在对等方身份不明的常规 Internet 环境下,您通常要向某个商业证书颁发机构 (CA) 申请证书。该方法的优点在于这些已知的 CA 已经得到 Windows 和其他任何支持证书及 SSL 的 OS(包括浏览器)的信任。因此不必进行 CA 密钥的交换。
对于 B2B 和 Intranet 环境,您可以使用内部 CA。Windows 2000 和 Windows Server? 2003 中包含了证书服务。配合 Active Directory? 一起使用,此功能允许您在组织内轻松地分发证书。(稍后我将介绍如何从私有 CA 申请证书。)
在开发过程中,有时您可能会发现,刚才提到的方法不起作用了。例如,如果您出于测试的需要希望很快获得一个证书,可以使用 makecert.exe。该工具包随附于 .NET Framework SDK 中,能够生成证书和密钥对。在 IIS 资源工具包中也有一个与之类似的名为 selfssl.exe 的工具。它专门用于创建 SSL 密钥对,而且使用这种密钥,只需一个步骤即可对 IIS 进行配置。
Windows 证书存储区
证书和与之对应的私钥可存储在各种设备上,例如硬盘、智能卡和 USB 令牌。Windows 提供了一个名为证书存储区的抽象层,用于统一证书的访问方式,不管这些证书存储在何处。只要硬件设备具有 Windows 支持的加密服务提供程序 (CSP),就可以使用证书存储区 API 访问其上存储的数据。
证书存储区位于用户配置文件的深处。这样就
文档评论(0)