Microsoft CSP分析与设计 Microsoft CSP分析与设计

Microsoft CSP分析与设计

  • 期刊名字:科技创新导报
  • 文件大小:825kb
  • 论文作者:朱节中
  • 作者单位:南京信息工程大学
  • 更新时间:2020-09-25
  • 下载次数:
论文简介

sclence end Tecnolay Inveor Horo科技创新导报学术论坛Microsoft CSP分析与设计朱节中(南京信息工程大学江苏南京 210044)摘要:本文分析了Windows32平台的数字加密与数字签名体系,深人阐述了加密签名算法的标准的CSP接口,基本组成,以及CSP的具体实现方法。关键词:系统安全CSP USB 电子钥匙数据加密中图分类号: G623.58文献标识码:A文章编号: 1674-098(2007)11(C)-0141-021引言存储和算法实现等方面。在Windows系统中应用程序编程接口(Crypto API), 为应用程序PKI是- -个用公钥概念与技术来实施,并PKI的应用实现途径之一就是开发相应的进行数据加密和数据签名服务。提供一套安全服务的具有一-般通用性的安全基CSP. 为了和我国密码算法标准想结合,自行Crypto API 架构”如图1所示,共有五个础设施"。它涉及到多个实体之间的协作过开发了具有自主知识产权的CSP,它不仅兼容部分组成: 基本加密函数、证书编解码函数和程:认证机构、注册机构、证书库、密钥备目前使用的一些通用加密算法如DS A、证书库管理函数、简单消息雨数、低层消息份与恢复服务器、证书吊销处理系统,PKIDES, SHAI 和HMAC,而且还兼容我国的加函数。其中前三个可用于对敏感信息进行加应用接口和最终用户等。支撑PKI安全技术密算法。本文就如何开发CSP进行了探讨并密或箢 名处理,保证网络中信息传输的隐秘性,的核心是公钥密码技术,每个用户使用一-对或给出 了相应的设计方案和实现实例。后两者通过对证书的使用,保证网络信息交流者多对公私密钥对,PKI使用数字证书对公钥的可管理性。进行管理并实现其公开性.依赖其它硬件设备2微软数字加密与签名体系基本加密函数用来链接和建立CSP操作来保证私钥的安全性和保密性。为适应网络数据安全需要.微软32位平台句柄,选择特定类型的CSP模块,生成、保存因此智能卡, USB电子钥匙在PKI中越来提供了一套符合PKI规范的微软数字加密与签和管理密钥,设置和提取密钥参数等。证书编越广泛地应用于身份识别,访问控制、密钥名体 系结构(如图1".利用微软提供的统一解码函数用来计算数据摘要,加密和解密数据。证书库管理函数用来管理数字证书集合。简单消息函数用来加解密消息和数据.签名消息和数据、以及验证消息和数据签名Applcsdon的有效性。低级消息函数用来实现简单消息函数,提供对消息操作更为细致的控制。CSP服务体系从系统结构,系统调用层次方面来看,分为相互独立的三层(如图2CSP服务分层体系):Certhcata Encade/DecodeLon Mns1)最底层是加密服务提供层,即具体的- -个CSP,它是加密服务提供机构提供的独立模cnptograpnic Functons块,担当真正的数据加密工作.包括使用不同的加密和签名算法产生密钥,交换密钥、进行數| Microont RSA 800-。SrmerPCoand据加密以及产生数据摘要、数字化签名。它是独立于应用层和操作系统,其提供的通用的Kay DaubKamy Dutab:sKay DatabSPI编程接口,与操作系统层进行交互,有些CSP使用特殊硬件-起担当加密工作,而有些则通阳1微软数字加密与签名体系过RPC分散其功能,以达到更为安全。2)中间 层,即操作系统(OS)层,在此是指具体的Win9X.NT和2K及更高版本的32位操应用程序A应用程序B应用程序C应用层作平台,在CSP体系中,以及为应用层提供统一的API接口,为加密服务提供层提供SPI接口,CryptoAPI操作系统层为应用层隔离了底层CSP和具体加密实现细节.用户可独立各个CSP进行交互。系统层操作系统它担当一-定管理功能, 包括定期验证CSP等。CryptoSPI.3)应用层,也就是任一一用户进程或线程具体通过调用操作系统层提供的Crypto API使厂徽软RSA服务智能卡服务防篡改服务服务用加密服务的应用程序。CSP#1CSP#2CSP#3提供层根据CSP服务分层体系,应用程序不必关心底层CSP的具体实现细节,利用统-的API图2CSP服务分层体系接口进行编程,而由操作系统通过统-的SPI接口来与具体的加密服务提供者进行交互,由SPI接门其他的厂商根据服务编程接口SPI实现加密、签名算法,有利于实现数字加密与数字签名。1I应用程序中要实现数字加密与数字签名算法实现时,一般是调用微软提供的应用程序编程接口1Crypto API。应用程序不能直接与加密服务提供者(CSP)通信,只能通过Crypto API操作案钥库中国煤化工-过Crypto SPI系统服务接二倍。CSP才是真正实现所密钔容器广4密钥宿器.MYHCNMHG:模块。图3CSP组成3 CSP基本组成科技创新导报Science and Technology Innovation Hereld141007_ NO.33科技创新导报IScience and Technology Innovation Herald学术论坛表1用户认证的三个区域NS Ie 4/5/6 MS OUTLOOK I文号工内容I预留空间]管理11| 厂商密码长度高层API12广商密21营理员密码长度_微软CryptoAPI22管理员密码16费3.1用户密码长度NJU_ CSP专用API(蟎点2)PKCS411证41| 41用户空码计次器T51序列号标志52二I序列号码20HS资源簀理6.1令牌名长度NJU设备驱动良6.2令牌名32|(端点1)| PC/SC驱动1密钥容器名长度I 172密钥容器名64标准USB设备驱动(蜥点0)31 I公胡标志长度82公明标志硬件身份钥硬件; 9.1 I彩明标志长度; 92工私朗标志阳4 CSP设计框架,10.1 I随机数sed长厦 1CSP要求" Cache2是 Ceache匹配 否返回错误证102一个松锅初始化?壹陆ID码? |SCARD 用NOT AUTHENTICATED11.1 I雹钥参数长度PIN码否更是I 112] 密钥参数4012.1公私钥对长度更.i1ny>3< 6oche 0公钥花钥对384能认证卡_CONTEXT用13.1根证书2k执行||尸[132 i模证书长厦用户按将输入PIN码和对应| 认141用户证书能认证卡?登陆ID存入Cache证142 I用户证书长度从用户UI请束PIN4.3用户PIN码SCARD_ . CANCLLED BY _USER当一个应用要求访问用户私钥或其他身份信息时,必须首先使用用户身份识别码(PIN)来图S用户界面获取PIN认证用户,如图5用户界面获取PIN。通过了CSP为Windows平台上加解密运算的最JsB Key, CSP的动态库就是一 一个框架,一 般认证的程序允许访问身份密钥中的用户敏感数核心层实现,是真正执行加密工作的独立的模的函数实现是在 CSP的动态库中,而主要隔数据。 用户程序对身份密钥中用户敏感数据的块。CSP与Windows的接口以DLL形式实现,的核心是在硬件中实现,在 CsP的动态库中只访问必须在一 一个事务中完成。事务开始前,身CSP是真正执行加密工作的独立模块。是函数的框架,如:加/解密,散列数据.验证签份钥处 于未认证状态,事务结束后,身份密钥仍按照CSP的不同实现方法,可分为纯软件名等,这是因为私钥一般不导出,这些函数的实然返回未认证状态。 为了避免每-次操作鄒实现与带硬件的实现,其中带硬件的实现CSP现主要在硬件设备中,保密性好。要求用户输入PIN,应该在CSP内部缓存用户按照硬件芯片不同,可以分为使用智能卡芯片(3)CSP 的密钥库及密钥容器,每-一个加密PIN. 所有关于用户PIN的显示和操作都必(内置加密算法)的加密型和不使用智能卡芯片服务提供程序都有 一个独立的密钥库,它是一须从这 个缓中直接获得:并且这个缓存的的存储型两种,与计算机的接口现在一-般都用个 CSP内部数据库,此数据库包含一个和多个PIN 必须与特定登录用户和特定用户身份密钥USB,所以把CSP硬件部分称为USB Key.分属于每个独立用户的容器,每个容器都用一同步关联, 一旦登录用户改变或身份密钥从主物理上一个CSP由这几部分组成:动态链↑独立的标识符进行标识。不同的密钥容器机中取出, 就必须清除相应的PIN缓存。接库,签名文件,签名文件保证提供者经过了认内存放不同用户的签名密钥对与交换密钥对以证,操作系统能识别CSP,操作系统可利用其定及X.509数字证书。出于安全性考虑,私钥一5 结语期验证CSP,保证其未被篡改。还可以使用辅般 不可以被导出。带硬件实现的CSP ,CSP的CSP函数接口的标准虽然都是统-的,但助的DLL实现CSP.辅助的DLL不是CSP的密钥库 及密钥容器放在硬件存储器中,纯软的是在智能 卡,USB电子钥匙上的实现方案却多一部分,但是包含CSP调用的函数.辅助的CSP实现是放在硬盘上的文件中。种多样。本文详细介绍了CSP结构与开发技术,给出了一种带硬件设备实现的CSP的开发DLL也必须被签名,并且签名文件必须可用,每个DLL在装载库之前被验证签名,每个CSP都4 CSP实现方案。目前,该实现方案完成,已捌试成功,所有一个名字和一一个类型。若有硬件实现,则4.1 总体框架有动态库获得了微软的签名。在嵌入式系统CSP还包括硬件装置。CSP 逻辑上主要由以为了兼容NetScape浏览器等所支持的的数字加密 与数字签名中也有非常大的用处。下部分组成(如图3CSP组成):PKCS# 11在实现微软的CSP时采取了如图(1)微软提供的SPI接口函数实现。在微4CSP设计框架。在实现PKCS#11的基础参考文献软提供的SPI接口中共有23个基本密码系统函上,通过调用PKCS#11接口实现微软CSP服1 PKCS公钥密码学标准。美国RSA数据安数由应用程序通过CAPI调用,CSP必须支持务编程接口。这样在其它操作系统平台上实全公司, 1999.这些函数,这些函数提供了基本的功能。现PKCS时也就方便了很多。,121 凯故开省帮肋Microsoft MSDN. NET(2)加密签名算法实现。如果是纯软件实4.2 系统存储数据中国煤化工现的CSP与用存储型的USB Key 实现的身份钥智能卡中需要存储的CSP,这些函数就在CSP的DLL或辅助DLL中1所示,包括设备认证。密码认证MYHCNMHG实现;带硬件设备实现的CSP ,并且用加密型的大区域。.142科技创新导报 Science and Technology Innovation Herald

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。