网站大量收购独家精品文档,联系QQ:2885784924

CSP的开发流程.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CSP的开发流程

CSP的开发流程 当前,国内许多科研单位开发了高强度加密算法,这些加密算法或者以纯软件形式,或者以加密卡形式提 供给用户。不同加密服务提供者提供的加密接口往往各不相同,这就给用户带来不便。因此,出现了有关加 密API国际标准和规范,呈现给用户加密API有几种统一形式。目前有关加密API国际标准和规范主要有:GSS-APIV2.0、GCS-API、CDSA、RSAPKCS#11CryptographicTokenInterfaceStandardV2.01、RSAB SAFEAPI、微软CryptoAPIV2.0。其中,CDSA、RSAPKCS#11和微软CryptoAPI在实际中应用得较多,也是PKI推荐使用的加密API。以下主要讨论微软CryptoAPI是如何调用加密服务提供(CSP)以及如何开发基于微软CryptoAPI加密服务提供。 1 加密体系结构 MicrosoftCryptoAPI是“Microsoftcryptographicapplicationprogramminginterface”的简称,是Microsoft公司提出的安全加密应用框架和服务。Windows系列操作系统,都支持MicrosoftCryptoAPI。与其他安全加密 应用框架一样,MicrosoftCryptoAPI也遵循一系列PKI标准和规范。应用开发者可以比较简便、快速地开发出标准、通用和易于扩展的安全加密应用。CryptoAPI功能是为应用程序开发者提供在Win32环境下使用加密、验证等安全服务时标准加密接口。微软CryptoAPI体系结构见图1。CryptoAPI之上是应用程序,之下是CSP。CSP是一个真正执行加密功能独 立模块,典型的CSP有微软RSABaseProvider。目前任何一个加密服务提供者若想成为微软合法CSP,就必须获得微软授予的一个签名文件,该签名文件保证了微软CryptoAPI识别该CSP。对于Microsoft合法CSP,微软会提供与其CryptoAPI接口规范。微软提供CSP安装程序会将该CSP各个文件安放到相应目录下,并在注册表中按CSP的类型和名称为该CSP注册。CryptoAPI使用系统注册表存储CSP数据库,CSP数 据库中记录了所有已安装到计算机中的CSP。 2 CryptoAPI调用底层CSP服务方式 微软CryptoAPI从2方面保证安全通信:必威体育官网网址性和验证。CSP是真正执行加密工作独立的模块。物理上一个CSP由2部分组成:一个动态链接库,一个签名文件。若加密算法用硬件实现,则CSP还包括硬件装置。 CryptoAPI函数调用底层CSP函数时,首先使用函数CryptAcquireContext,给出欲选择CSP名称参数和类型参数即可,该函数返回一个指向被选择的CSP句柄。CSP有一个密钥库。密钥库用于存储密钥,每个密钥库包括一个或多个密钥容器(keycontainers)。每个密钥容器中含属于一个特定用户所有密钥对。每个密钥容器被赋予唯一名字;以这个名字做函数CryptAcquireContext参数,从而获得指向这个密钥容器句柄。CSP将永久保存密钥容器,包括保存每个密钥容器中公/私钥对(会话密钥除外)。在交换密钥时,或密钥需要离开CSP(即导出密钥)时,就存在选择什么样数据结构存储密钥问题。微软CryptoAPI采用KeyBlob数据结构存储离开了CSP内部的密钥。密钥总是在CSP内部被安全地保存,应用程序只能通过句柄访问密钥,而KeyBlob则例外。当使用 CryptExportKey函数从CSP中导出密钥时,KeyBlob被创建。之后某一时间,使用CryptImportKey函数将密钥导入到其 他CSP中(不同机器上的不同CSP)。因此,KeyBlob是在不同CSP之间安全传送密钥载体。KeyBlob有一个标准信息头和位于信息头之后一段表示密钥本身的数据组成。应用程序不访问KeyBlob内部,而是把KeyBlob当作一个透明对象。 由于公/私钥对私钥部分需要绝对必威体育官网网址,所以私钥要用对称加密算法加密。加密PrivateKeyBlob时,除了BLOBHEADER之外所有部分都要加密。但加密所用算法和密钥(或密钥参数)不与该KeyBlob存储在一起,应用程序负责管理这些信息。 3 CSP程序开发 进行CSP程序开发,首先选择和实现CSP支持加密算法和数据格式;确定好加密算法和数据格式后,应该清楚CSP实现的函数及函数流程,在了解这些之后,具体程序设计较为容易。 1)开发CSP基本流程。 选择和实现CSP要支持每一个加密算法和数据格式后,创建一个CSP过程如下: 1创建CSP.dll,导出CrytoSPI函数接口。 2开发CSP安装程序,创建合适注册表项。 3测试所开发出CSP.dll的实现功能。

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档