(计算机软件与理论专业论文)wpkcs#11安全平台的设计和cryptoki的实现.pdf_第1页
(计算机软件与理论专业论文)wpkcs#11安全平台的设计和cryptoki的实现.pdf_第2页
(计算机软件与理论专业论文)wpkcs#11安全平台的设计和cryptoki的实现.pdf_第3页
(计算机软件与理论专业论文)wpkcs#11安全平台的设计和cryptoki的实现.pdf_第4页
(计算机软件与理论专业论文)wpkcs#11安全平台的设计和cryptoki的实现.pdf_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

w p k c s # 1 i 安全平台的设计和c r y p t o k i 的实现 中文摘要 随着网络通信技术的飞速发展,信息安全是网络应用不可回避的 问题,密码学是解决这个问题的根本方法。许多软硬件开发商,为了 保证自己产品的安全,开发了基于复杂且种类繁多的加密算法的安全 模块,由于没有统一的技术标准,安全模块的体系结构和接口各不相 同,因而用户使用困难,得不到良好的安全服务。 公开密钥密码学标准( p u b l i ck e yc r y p t o g r a p h ys t a n d a r d ) p k c s 是r s a 数据安全公司为公开密码学提供的一个工业标准接口,其中 的第十一个规范p k c s # 1 i 是密码标记的a p i 标准。该标准详细规定 了一个称为c r y p t o k i 的编程接口,并给出了一个通用的逻辑模型,这 使得它的实现可移植于各种密码设备,用户不需要知道详细的技术细 节,就可以完成加密操作。总的说来,p k c s # i i 协议有两个目标: 1 屏蔽各种安全实现之间的差异,向用户提供统一接口,使安 全服务的具体实现方法对用户透明; 2 使用户可以在多个安全服务实现之间共享资源。 g p k c s # l l 是p k c s # 1 1 协议所指定的参考实现,但它相对于 p k c s # 1 l 协议具有滞后性,还没有完全实现p k c s # i i 规范中定义的 全部接口功能,且其设计过于烦琐,实现过程中存在一些错误和陷阱, 用户和开发商还不能使用g p k c s 撑1 1 来完成p k c s # 1 l 规范中定义的 接口功能。因此我们以g p k c s # 1 1 为原型开发w p k c s # 1 l ,重点是将 它移植到w i n d o w s 平台上,对某些重要性的补充和c r y p t o k i 静态库 与w t o k e n 库的开发。 w p k c s 捍1 1 是电子科技大学计算机学院为卫士通公司加密卡开 发的基于w i n d o w s 的一组a p i 安全接口,该接口遵守r s a 公司提出 的p k c s # 1 1 规范。本文详细介绍了w p k c s # 1 1 的设计和实现,其中 主要介绍了c r y p t o k i 静态库的开发以及它和w t o k e n 动态库的关联。 ! 呈垦曼! ! ! ! 壅全! 鱼盟垦茎塑曼! 兰坠! ! ! 箜壅翌 在设计和实现w p k c s # 1 1 的过程中,借鉴了g p k c s # 1 l 中成熟和合 理的技术,并对g p k c s # 1 l 进行修改、扩充与优化。与g p k c s 捍1 1 比较,w p k c s # 1 l 具有以下特点: 1 。支持多线程、多进程。 2 用户登录和s e s s i o n 的用户状态变化更符合p k c s # 1 1 规范。 3 实现了对象的访问控制。 4 t o k e no b j e c t 的共享方式更简单、直观。 5 实现了p k c s # 1 l 规范中对c r y p t o k i 库的主要安全功能。 w p k c s # 1 i 可以使用各种不同的安全实现来完成p k c s # i i 规范 定义的接口功能,在本项目中使用了卫士通安全模块的实现来完成这 些任务,这一实现应包括安全模块自身a p i 中提供的全部功能在 p k c s # 1 l 规范接口上的映射。 在这个项目中,我参与了项目的总体结构设计,负责c r y p t o k i 库的设计和开发工作,罗建超同学负责w t o k e n 库的设计和开发工作, 许立同学负总责。 关键词tp k c s # 1 1 ,g p k c s # 1 l ,w p k c s # 1 1 ,s e s s i o n ,o b j e c t , s l ot t o k e n 2 w p k c s # l i 安全平台的设计和c r y p t o k i 的实现 a b s t r a c t w i t ht h e r a p i dd e v e l o p m e n t o fn e t w o r ka n dc o m m u n i c a t i o n t e c h n i q u e ,i n f o r m a t i o ns e c u r i t y b e c o m e sa ni n e v i t a b l e p r o b l e m i n n e t w o r ka p p l i c a t i o n ,a n dc r y p t o g r a p h yi saf u n d a m e n t a lw a yo fs o l v i n g t h e p r o b l e m i n o r d e rt o g u a r a n t e e t h e s e c u r i t y o fp r o d u c t s ,m a n y s o f t w a r e h a r d w a r ed e v e l o p e r sh a v eo p e n e du ps e c u r i t ys o f t w a r eb a s e d o n c o m p l e xa n dv a r i o u sc r y p t o g r a p h ya l g o r i t h m h a v i n g n ou n i f o r m t e c h n i q u es t a n d a r d ,s t r u c t u r e s a n di n t e r f a c e so fs e c u r i t ys o f t w a r eb y d i f f e r e n t d e v e l o p e r s a r ed i f f e r e n c ee a c h o t h e r ,w h i c hm a k e s d i f f i c u l t t o u s ea n ds h a r i n gs e c u r i t ys e r v i c ed i f f i c u l ti m p o s s i b l e p u b l i ck e yc r y p t o g r a p h ys t a n d a r d ( p k c s ) i sa ni n d u s t r i a ls t a n d a r d i n t e r f a c ep r o v i d e db yr s a c o m p a n yf o rp u b l i cc r y p t o g r a p h y ,o fw h i c h t h ee l e v e n t hs t a n d a r d - - p k c s # l1i sa p i ss t a n d a r do fc i p h e rm a r k ,i t s t i p u l a t e s ap r o g r a mi n t e r f a c ec a l l e dc r y p t o k iw h i c hc a nb eu s e df o r e v e r yp o r t a b l ec i p h e re q u i p m e n t ,a n d ag e n e r a ll o g i cs t r u c t u r e sw h i c h c a n a c c o m p l i s ho p e r a t i o n s o f s e c u r i t y o nt h e p o r t a b l ee q u i p m e n t w i t h o u tk n o w i n gt h ed e t a i l so fi n t e r n a l s i na l l ,t h ep r o t o c o lh a st w o g o a l s : i h i d i n g t h ed i f f e r e n c ea n d p r o v i d i n gt h eu n i f o r mi n t e r f a c e 2 s h a r i n g t h er e s o u r c e a m o n gt h em u l t i p l e d i f f e r e n t s e c u r i t y s e r v i c e g p k c s # 11i st h er e f e r e n c ei m p l e m e n t a t i o no fp k c s # 1 1 ,b u ti th a s d e l a y e de f f e c tc o m p a r et op k c s # i ia n dd o e s n tc o m p l e t e l yr e a l i z ea l l i n t e r f a c ef u n c t i o n sd e f i n e di nt h ep k c s # 11 ,m o r e o v e ri t sd e s i g ni ss o c u m b e r s o m e ,a n dt h e r ea r es om u c he r r o ra n dt r a p ,u s e ra n dd e v e l o p e r s c a n ,tu s eg p k c s # 11t or e & 1 i z et h ei n t e r f a c ef u n c t i o n sd e f i n e di nt h e 3 w p k c s # i i 安全平台的设计和c r y p t o k i 的实现 p k c s # 11 s ow ed e c i d e t o d e v e l o p t h ew p k c s # 11b a s e do n g p k c s # 1 1 ,w i t hm a j o r i n p o r t i n g t ow i n d o w s o p e r a t i o ns y s t e m , e x p a n d i n gc r y p t o k il i b r a r ya n dd e v e l o p i n gw t o k e n d l l w p k c s # 11i sas e to fa p i so fs e c u r i t yi n t e r f a c eb a s e do ns e c u r i t y s e r v i c eo fw e s t o n e c o m p a n yi nw i n d o w s ,a n dt h ei n t e r f a c ew h i c hi s d e v e l o p e db yc o l l e g eo fc o m p u t e ri nu n i v e r s i t yo fe l e c t r o n i cs c i e n c e a n dt e c h n o l o g ya b i d e sb yt h ep k c s # 1 1 ,i nt h i sp a p e r ,w ei n t r o d u c et h e d e s i g n a n dr e a l i z a t i o no fw p k c s # 1 1i nd e t a i l ,w p k c s # 1 1i n c l u d e s c r y p t o k il i b r a r yw h i c h i ss t a t i ca n dw t o k e nd l lw h i c hi sd y n a m i c ,i n t h ec o u r s eo fd e s i g n i n ga n dr e a l i z i n gw p k c s # 1 1 ,w ed r a wr i p ea n d r e a s o n a b l et e c h n i q u ef r o mg p k c s # 1 1 ,a n dm o d i f y , e x p a n da n do p t i m i z e g p k c s # 1 1 c o m p a r e dw i t hg p k c s # 1 1 ,w p k c s # i ih a st h ef o l l o w i n g c h a r a c t e r i s t i c s : 1 s u p p o r t i n gm u l t i p l ep r o c e s s e sa n dm u l t i p l et h r e a d s 2 u s e rl o g g i n ga n du s e rs t a t e c h a n g i n g a r em o r ec o n f o r mt o p k c s 群1 1 3 r e a l i z i n gt h ea c c e s sc o n t r o lo fo b j e c t 4 t h es h a r ef a s h i o no ft o k e n o b j e c t i sd i f f e r e n c ee a c h o t h e r ,w h i c ho fw p k c s # 1 1i sm o r es i m p l ea n da p p e a r a n c e 5 r e a l i z i n gm a j o rs e c u r i t yo fc r y p t o k ii np k c s # 1 is t a n d a r d w p k c s # 11c a na c c o m p l i s hi n t e r f a c ef u n c t i o nd e f i n e di np k c s # 11 b yu s i n gd i f f e r e n ts e c u r i t ys e r v i c e i nt h i sp r o j e c tw ea c c o m p l i s ht h e s e t a s k s b ye n c r y p t i o n c a r dw h i c h p r o v i d i n g t h e s e c u r i t y s e r v i c eo f w e s t o n e t h er e a l i z a t i o ns h o u l di n c l u d em a p p i n gt h ea p io fs e c u r i t y s e r v i c ei t s e l fo np k c s 群1 1s t a n d a r di n t e r f a c e i nt h i sp r o j e c t ,ip a r t i c i p a t eo v e r a l ls t r u c t u r ed e s i g no ft h ep r o j e c t a n dia mr e s p o n s i b l ef o rt h ed e s i g na n dd e v e l o p m e n to ft h ec r y p t o k i l i b r a r y a tt h es a m et i m e ,l u o j i a o c h a oi s i nc h a r g eo ft h ed e s i g na n d 4 w p k c s # i i 安全平台的设计和c r y p t o k i 的实现 d e v e l o p m e n to ft h e w t o k e nd l l ,a n dx u l ii sr e s p o n s i b l ef o ra l l k e y w o r d s - p k c s # 1 1 ,g p k c s # 1 1 , w p k c s # 1 l ,s e s s i o n , o b j e c t ,s l o t ,t o k e n 独创性声明 本人声明所里交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意 签名;日期:年月日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文 ( 保密的学位论文在解密后应遵守此规定) 签名:导师签名: 日期:年月日 w p k c s # l i 安全平台的设计和c r y p t o i k 库实现 第一章序言 1 1 数据加密的缘由 随着现代通讯技术的发展和迅速普及,特别是随着由通信与计算 机相结合而诞生的计算机互联网络全面进入千家万户,使得信息共享 应用日益广泛与深入。世界范围的信息革命激发了人类历史上最活跃 的生产力,但同时也使得信息安全的问题日渐突出而且情况也越来越 复杂。 就拿世界上最大的网络一因特网来说,它一方面是危险的,而且 这种危险是t c p i p 协议所固有的,一些基于t c p i p 的服务也是极不 安全的;另一方面,因特网给众多的商家带来了无限的商机,因为因 特网把全世界连在了一起,走向因特网就意味着走向了世界。为了使 因特网变得安全和充分利用其商业价值,人们选择了数据加密和基于 加密技术的身份认证。 加密在网络上的作用就是防止有价值信息在网络上被拦截和窃 取。一个简单的例子就是密码的传输。计算机密码极为重要,许多安 全防护体系是基于密码的,密码的泄露就安全体系的全面崩溃。通过 网络进行登录时,所键入的密码以明文的形式被传输到服务器,而网 络上的窃听是一件极为容易的事情,所以很有可能黑客会嗅探并窃得 用户的密码,如果用户是r o o t 用户或a d m i n i s t r a t o r 用户,那后果将 是极为严重的,网络上的数据被嗅探和劫持。 解决这个方式就是加密,加密后的口令即使被黑客获得也是不可 读的,除非加密密钥或加密方式十分脆弱,黑客破解。不管怎样,加 密的使用使黑客不会轻易获得口令。 身份认证是基于加密技术的,它的作用就是用来确定用户是否是 真实的。简单的例子就是电子邮件,当用户收到一封电子邮件时,邮 件上面标有发信人的姓名和信箱地址,很多人可能会简单地认为发信 人就是信上说明的那个人,但实际上伪造一封电子邮件对于一个通常 ! ! 鉴! ! ! ! 塞全! 鱼堕堡生翌竺! z 21 11 1 壁壅墨 人来说是极为容易的事。在这种情况下,用户需要用电子邮件源身份 认证技术来防止电子邮件伪造,这样就有理由认为写信的人就是信头 上说明的人,有些站点提供入站f t p 和w w w 服务,当然用户通常 接触的这类服务是匿名服务,用户的权力要受到限制,但也有这类服 务不是匿名的,如公司为了信息交流提供用户的合作伙伴非匿名的 f t p 服务,或开发小组把他们的w e b 网页上载到用户的w w w 服务 器上,现在的问题就是,用户如何确定正在访问用户的服务器的人就 是用户认为的那个人,身份认证也可以为这一个好的解决方案。 有些时候,用户可能需要对一些机密文件进行加密,不一定因为 要在网络间进行传输该文件,而是担心有人窃得计算机密码而获得该 机密文件,对文件实行加密,从而实现多重保护显然会使用户感到安 心,例如,在u n i x 系统中可以用c r y p t ( 3 ) 命令对文件进行加密,尽 管这种加密手段已不是那么先进,甚至有被破解的较大可能性。 总之,信息安全是网络应用不可避免的问题,从大的方面来说, 信息安全闯题已威胁到国家的政治、经济、军事、文化、意识形态等 领域。因此,很早就有人提出了“信息战”的概念并将信息武器列为 继原子武器、生物武器、化学武器之后的第四大武器。从小的方面说, 信息安全问题也是人们能否保护自己隐私的关键。 信息安全研究所涉及的领域相当广泛。从消息的层次来看,包括 消息的完整性( 既保证消息的来源、去向、内容真实无误) 、保密性 ( 即保证消息不会被非法泄露和扩散) 、不可否认性( 即保证消息的 发送和接受者无法否认自己所做过的行为) 等。从网络的层次来看, 包括可靠性( 即保证网络和信息系统随时可用,运行过程中不出现故 障,若遇到意外打击能够尽量减少损失并尽早恢复正常) ,可控性( 即 保证营运者对网络和信息系统有足够的控制和管理能力) ,互操作性 ( 即保证协议和系统能够互相连接) ,可计算性( 即能保证准确跟踪 实体运行达到审计和识别的目的) 等。还有许多其他层次的领域。由 此可见,信息安全实际上是一个多学科的综合研究课题。其边界很难 确定。 2 w p k c $ # 1 1 安全平台的设计和c r y p t o i k 库实现 1 2 数据加密技术 数据加密是保障信息安全的重要条件,作为保障信息安全的一种 方式,数据加密起源于公元前2 0 0 0 年。埃及人是最先使用特别的象 形文字作为信息编码的入。随着时间推移,巴比伦、美索不达米亚和 希腊文明都开始使用一些方法来保护他们的书面信息。对于j u l i a s c a e s a r ( 凯撒大帝) 的使用,也曾用于历次战争中,包括美国独立战 争、美国内战和两次世界大战。最广为人知的编码机器是g e r m a n e n i g m a 机,在第二次世界大战中德国人利用它创建了加密信息。此 后,由于a l a nt u r i n g 和u l t r a 计划以及其他人的努力,终于对德国人 的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码, 当时人们并没有想到计算机给今天带来的信息革命。随着计算机的发 展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不 断地研究出了新的数据加密方式,如私有密钥算法和公开密钥算法。 可以说,是计算机推动了数据加密技术的发展。 1 2 1 数据加密的概念 尽管加密或为了安全目对信息解码这个概念十分简单,但在这里 仍霈对其进行解释。数据加密的基本过程包括对称为明文的原来可读 信息进行翻译,译成称为密文或密码的代码形式。该过程的逆过程为 解密,即将该编码信息转化为其原来的形式的过程。 1 2 2 数据加密原理和机制 在计算机上实现的数据加密,其加密或解密变换是由密钥控制实 现的。密钥( k e y ) 是用户按照一种密码体制随机选取,它通常是一 随机字符串,是控制明文和密文变换的唯一参数。加密指把明文信息 i n 通过变换e 得到密文c ,即c = e ( i n ,k ) 。其中参数k 称为密钥。从密 文c 恢复明文i n 的过程称为解密,解密运算是加密运算的逆运算, 同样也需要密钥k 。依据加密密钥和解密密钥是否相同,可以分为对 , w p k c s # 1 1 安全平台的设计和c r y p t o i k 库实现 称加密算法和非对称加密算法两类。其中非对称加密算法也称之为公 钥加密算法。 1 2 2 1 对称密码加密系统 对称加密算法指加密密钥和解密密钥相同的加密算法,其结构如 下图 明文m 密钥k密钥k 图1 - 1 :对釉嘲燃 明文m 上图中加密密钥k 和解密密钥k 是相同的。目前常用的对称加密算 法有d e s 、i d e a 、r c 5 等。在众多的对称加密算法中影响最大的上 d e s 。 1 2 2 2 公开密码加密系统 公开加密算法指加密密钥和解密密钥不相同的加密算法,即有一 个密钥对,分别称为公钥d 和私钥e 。如果用公钥加密数据,则只能 用相对应的私钥进行解密。反之如果用私钥加密数据,则只能用相对 应的公钥才能解密成功。 明文m 公钥d私钥e 明文m 图1 - 2 非对称加密算法 公钥加密系统是现代密码学的基础。它主要依靠n p 完全类问题 保证几乎不可能由加密密钥推导出解密密钥。比较著名的公钥密码算 4 w p k c s # i i 安全平台的设计和c r y p t o i k 库实现 法有:r s a 、背包密码、m c e l i e c e 密码、d i f f e - h e l l m a n 、r a b i n 、 o n g f i a t s h a m i r 、零知识证明算法、椭圆曲线算法等。最有影响的公 钥加密算法是r s a ,它能够抵抗到目前为止的所有密码攻击。 1 2 3 数字签名和身份认证 加密只是解决了数据的保密问题,要防止数据在传输过程中被恶 意篡改以及对数据源进行身份认证和防止用户对发送过的数据抵赖, 就必须引入数字签名技术。数字签名技术利用了非对称算法的特性, 用户用自己的私钥对要发送的数据加密作为数字签名,然后把明文和 签名一起发送。接收者收到后,用发送者的公钥对签名数据解密,在 和明文对比,如果相同,说明数据没有被修改,否则说明数据在传输 过程中被篡改了。同时,通过数字签名,可以确定数据的来源,并可 以防止发送者否认发送过的数据,这样就实现了身份认证和防抵赖功 能。 由于非对称算法运算量比对称算法大得多,因此对所有数据进行 私钥加密作为签名效率很低。在真正的应用中采用的方式是:首先对 数据使用某种消息摘要( m e s s a g ed i g e s t 或h a s h ) 算法进行处理。产生 很短的消息摘要,再对消息摘要进行私钥加密作为数字签名,就大大 提高了运算速度。该过程如下图: 图l - 3 :数字签名流程 接收者收到数据和签名后,用同样的算法算出数据的消息摘要,并用 发送者的公钥对签名进行解密,最后把解密结果和上一步得到的消息 摘要比较,就可以对签名进行校验。常用的消息摘要算法有s h a 、 m d 5 等。数字签名和校验过程如图1 - 3 和卜4 。 5 w p k c s # i l 安全平台的设计和c r y p t o l k 库实现 图1 4 :数字签名验证流程 1 2 4 个人证书和p k i 如果使用数字签名保证数据完整性,校验签名的用户必须得到签 名者的公钥,并且保证得到的公钥是正确可靠的。为了保证这一点, 就必须采用p k i ( p u b l i ck e yi n f r a s t r u c t u r e ) 规范。p k i 是应用于 i n t e r n c t 环境下,保证信息安全的规范。p k i 使用i t ux 5 0 9 个人证 书来保证公钥的可靠性。个人证书把用户的个人信息和公钥绑定在一 起。需要校验其他用户签名时,先取得签名者的证书,从证书的个人 信息中可以验证签名者的身份,再用证书中的公钥校验签名。为了保 证证书本身的可靠性,证书必须由专门的机构一认证机关 c a ( c e r t i f i c a t ea u t h o r i t y ) 颁发。c a 颁发的证书中有c a 的数字签名, 而c a 证书是可以通过可靠的途径获取的。 1 3 数据加密设备 为了有效的解决金融、保险、证券行业网络互联的安全保密问题, 并且通过硬件实现对信息的加、解密等功能,各种加密机、加密卡便 应运而生。不管是加密机还是加密卡,一般会提供多种应用开发接口, 如x 5 0 9 证书接口、p k c s # l l 接口、c d s a 接口。下面对加密机、机 密卡进行简单的介绍。 6 w p k c s # i i 安全平台的设计和c r y p t o i k 库实现 1 3 1 加密机 加密机是一种独立的计算机系统,以类似于网桥或路由器的方式 介入网中,隔离内部网络与外部网络的联系,对内部网络与外部网络 间的信息访问进行安全控制和密码处理。加密机的工作原理结构图如 下: 图i 一5 加密机原理结构图 从上图可以看出,加密机和主机之间使用t c p i p 协议通信,所以加 密机对主机的类型和主机操作系统无任何特殊的要求,从逻辑上来 看,加密机主要有四个功能模块 硬件加密部件一硬件加密部件主要的功能是实现各种密码算 法,安全保存密钥。 7 w p k c s # 1 1 安全平台的设计和c r y p t o i k 库实现 密钥管理菜单一用户通过密钥管理菜单来管理加密机的密钥, 管理密钥管理员和操作员的口令卡。 加密机后台进程一加密机启动后自动启动后台进程,并检查操 作员口令卡、启动加密部件。加密机后台进程接收来自前台a p i 的信息,为应用系统提供加密、数字签名的等安全服务。所有 运算通过硬件加密部件进行。 加密机前台a p i 一加密机前台a p i 是给应用系统提供的加密 开发接口,应用系统通过把加密机前台a p i 使用加密的加密服 务,加密机前台a p i 是以标准c 库的形式提供。加密机前台 a p l 支持p k c s # 1 l 、c d s a 、b s a f e 、证书接1 2 ,可以方便的集 成到应用系统中。 1 3 2 加密卡 加密卡是一个加密接口,是应用在普通微机和服务器上的加密 硬件设备,类似于网卡或显卡。加密卡的工作原理结构图如下: 图1 - 6 加密卡原理结构图 从逻辑上来看,加密卡主要有五个功能模块 e e p r o m 一容量一般为8 k 字节或更多,用来安全保存主密 b ! ! 坠! ! ! ! ! 窒全! 鱼堕垦盐塑曼! ! ! ! ! 塞塞墨 钥、r s a 密钥对,加电后,主密钥、r s a 密钥对由e e p r o m 调 入密码运算器中,在密码运算器中运算。 随机数发生器一加密卡使用的随机数发生器,为生成密钥和 产生管理员与操作员口令提供高质量的随机数。 i c 卡读写器一i c 卡读写器用来读写密钥管理员和操作员的口 令,i c 卡读写器直接和s j y 0 2 0 3 加密卡连接,不经过主机环境, 保证口令不被截取。 密码运算器一密码程序在密码运算器中运行,执行数据加密 和数字签名等密码运算。 密码程序一密码程序存储在e p r o m 中,以密文的形式存放, 在加电后,加载进密码运算器中,解密恢复出明文再运行。 用户要使用该卡进行加密任务,必须提供相应环境下的驱动程序。 值得注意的是,一般的加密卡均需对应用系统提供标准的开发接 口,如:c d s a 接口、p k c s # 1 l 接口、b s a f e 接口、x 5 0 9 证书接 口。 1 4 加密设备和应用程序之间的接口 当前,国内许多科研单位开发了高强度的加密算法,这些加密算 法或者以纯软件的形式,或者以加密卡的形式提供给用户。不同加密 服务提供者提供的加密接口往往各不相同,这就给用户带来了不便。 因此,出现了有关加密a p i 的国际标准和规范,使得呈现给用户的加 密a p i 有几种统一的形式。目前有关加密a p i 的国际标准和规范主 要有: 1 g s s a p iv 2 0 : 2 g c s - a p i : 3 c d s a a p i : 4 r s ap k c s # 1 lc r y p t o g r a p h i ct o k e ni n t e r f a c es t a n d a r dv 2 0 1 ; 5 r s ab s a f ea p i ; 6 微软c r y p t o a p i v 2 0 。 9 w p k c s # 1 1 安全平台的设计和c r y p t o i k 库实现 其中,c d s a 、r s ap k c s # 1 l 和微软c r y p t o a p i 在实际中应用得较 多,也是p k i 推荐使用的加密a p i 。 1 5p k c s # 1 1 的现状及发展趋势 p k c s # 1 1 是著名的r s a 公司提出的安全平台规范,但不是国际 标准。基于r s a 公司在信息安全领域的重要影响及p k c s # 1 1 规范自 身的合理性,p k c s # 1 1 规范在信息安全领域的影响逐渐扩大,业已成 了事实上的安全接口标准之一。 在国外,许多重要的公司如:i b m 、c s i c o 等均在其加密设备上 提供p k c s 拌l l 安全接口,在众多的安全接口标准中,c d s a 、r s a p k c s # 1 1 和微软c r y p t o a p i 在实际中应用得较多,也是p k i 推荐使用 的加密a p i 。 在国内,由于我国信息产业的发展相对滞后,信息安全领域的研 发晚于西方发达国家,提供加密设备的国内信息安全公司大多数还没 提供具有自主知识产权的p k c s # 1 l 安全接口。电子科技大学是国内 较早涉及信息安全领域的高校之一,早在1 9 9 4 年,以计算机学院周 明天教授为首的一批著名计算机专家开始涉入信息安全领域,对数据 加密、网络安全、中间件、p k i 、p m i 等课题开展研发工作,并取得 丰硕成果。其中在数据加密方面,周明天教授一直关注r s a 公司的 技术前沿,作为周老师的硕士研究生,在他的指导下,我于2 0 0 1 展 开对p k c s # 1 1 的研究工作。 随着信息安全技术和计算机软硬件技术的发展,p k c s # 1 1 已在不 断的发展和完普,r s a 公司不定期地发布p k c s # 1 1 的新版本,公布 p k c s # l l 规范的最新研究成果。本文的开发工作是以p k c s # 1 1 的最 新版本v 2 1 1 为基础。 1 6 课题来源和文章安排 本课题来源于电子科技大学与卫士通公司合作的项目,卫士通公 司提供加密卡和相关的安全模块( c s p ) ,由“电子科技大学一一卫士 l o w p k c s # 1 1 安全平台的设计和c r y p t o i k 库实现 通联合安全实验室”为卫士通公司的加密卡开发基于w i n d o w s 的a p i 安全接口。 本文第二章简要介绍p k c s # 1 1 规范和g p k c s # 1 l ,第三章讲述 w p k c s # 1 1 的设计,包括总体设计和详细设计,总体设计中主要介绍 了w p k c s # 1 1 的需求规定和总体结构模型。详细设计中主要介绍了 c r y p t o k i 库和w t o k e n 库中用到的数据结构及c r y p t o k i 库和w t o k e n 库的接口设计、日志文件的处理、内存分配和回收技术、同步机制的 实现方式等:第四章主要介绍了c r y p t o k i 库和w t o k e n 库的实现;第 五章是全文总结;最后是附录、参考文献和致谢。 w p k c s # i l 安全平台的设计和c r y p t o i k 库实现 第二章p k c s # 1 1 规范 2 1p k c s # 11 规范概述 公开密钥密码学标准( p u b l i c k e yc r y p t o g r a p h ys t a n d a r d ) p k c s 是r s a 数据安全公司为公开密码学提供的一个工业标准接口,其中 的第十一个规范p k c s # 1 1 是密码标记的a p 标准。 p k c s 撑l l 是一套用于应用程序和加密设备之间的接口,它使应用 程序能够通过一致的接口访问加密设备完成加密任务,同时也可实现 资源共享,使一个设备可以被多个应用程序访问,一个应用程序也可 以访问多个设备。该标准详细规定了一个称为c r y p t o k i 的编程接口, c r y p t o k i 是p k c s 群1 1a p i 的一种实现,读音是c r y p t o k e y ,表示 c r y p t o g r a p h i c t o k e n i n t e r f a c e ,它给出了一个通用的逻辑模型,用户不 需要知道详细的技术细节,就可以用于各种可移植的密码设备完成加 密操作。 c r y p t o k i 允许建立到保存了密码信息并执行密码功能的设备接 口( 譬如智能卡、智能磁盘或者p c m c i a 卡) 链接。它通过将应用 程序从密码设备细节的分离来提供应用程序的可移植性。应用程序的 隔离还提供了安全性层,因为所有的密码信息驻留在设备里。c r y p t o k i a p i 提供了应用程序和各种可移植密码设备之间的标准编程接口。 2 2c r y p t o k i 的体系结构 2 2 1c r y p t o k i 的通用结构 c r y p t o k i 由p k c s # l la p i 、s l o t 管理器、以及t o k e n 动态链接库 a p i 的函数链接指针和大量的内部函数组成。s l o t 管理器作为守护进 程来运行以控制向应用程序提供的t o k e n 槽数,并且使用一个共享内 存区域与应用程序交互。每个设备有一个相关联的t o k e n 并将t o k e n w p k c s # 1 1 安全平台的设计和c r y p t o i k 库实现 插入到s l o t 管理器数组中的一个s l o t 槽。共享内存区域允许在应用程 序之间进行状态信息的适当共享以帮助确保与p k c s 拌1 1 规范保持 一致。其体系结构如图 习 习 一土一 一一土一。 其它安全层次其它安全层次 设备竞争与同步 图2 - i 的通用模型 c r y p t o k i 提供了通过s l o t 到加密设备的接口。每个s l o t 对应于 系统中的物理读卡器或者是其它类似的物理接口。当有加密设备( 如 i c 卡) 被插入到读卡器中,s l o t 中就出现对应的t o k e n 。也就是说, t o k e n 对应于i c 卡一类的加密设备。但s l o t 和t o k e n 只是个逻辑 上的概念,因此它们不一定仅对应于读卡器和i c 卡,也可能对应于 其它的加密设备,甚至是纯软件模块;并有可能多个s l o t 对应于同一 个物理读卡器。当然重点是系统中有若干个s l o t ,应用程序可以通过 这些s l o t 来访问t o k e n 以完成安全任务。c r y p t o k i 的目的就是提供统 一的接口,使各种加密设备不管其具体的技术实现有何不同。在逻辑 上看起来都一样。c r y p t o k i 把这些具体问题都隐藏起来,应用程序可 以使用这种统一的接口来调用加密设备的功能,而不用直接面对加密 设备的接口。甚至不用知道系统中有那些加密设备存在。c r y p t o k i 可 w p k c s # 1 i 安全平台的设计和c r y p t o i k 库实现 以被实现为支持接口功能的库,应用程序链接到库上,从而调用 c r y p t o k i 的功能。 2 2 2s l o t 从图2 1 可以看出,s l o t 在c r y p t o k i 中有着重要的作用,固定数 量的进程可以被附加到s l o t ,因此须使用共享内存中的一个静态表来 记录当前连接到该s l o t 的进程数目。s l o t 在初始化时设置该共享内 存并确保只有活动应用进程保持注册。当一个进程附加到一个s l o t 并打开一个会话,s l o t 将告知后来的进程已有一个会话打开并将锁定 特定的函数调用,如果它们需要独占地访问给定t o k e n ,s l o t 不断地 搜索它在共享内存中的区域以确定附加到t o k e n 的进程是否真的在 运行。如果一个附加的进程异常终止,s l o t 将在那个进程终止之后被 “打扫干净”,并被释放供其它进程使用。 2 2 3t o k e n t o k e n 动态链接库是主a p i 的插件模块。它们提供超出主a p i 函数之外的特定于t o k e n 的函数。可以通过为设备构建t o k e n 的动 态链接库来支持特定设备。每个t o k e n 的动态链接库必须至少提供 一个特定于t o k e n 的初始化函数。如果该设备是智能设备,譬如支持 多种机制的硬件适配器,t o k e n 的动态链接库可以变得简单,因为设备 能存储大多数会话信息。如果设备只执行简单的密码功能,则所有对 象必须由软件来管理。这种灵活性使得t o k e n 的动态链接库可以支 持任何密码设备。 c r y p t o k i 中的t o k e n 用于存储o b j e c t ( 这个o b j e c t 不是面向对象 中的对象) 并在o b j e c t 上执行安全任务,c r y p t o k i 定义了三种o b j e e t , 分别为d a t a 、c e r t i f i c a t e 、k e y ,其中d a t ao b j e c t 由应用程序定义, c e r t i f i e a to b j e e t 用于存储各种证书,k e yo b j e c t 用于存储各种密钥, 包括私钥、公钥、加密密钥。0 b j e e t 如下图所示: 1 4 w p k c s # 1 i 安全平台的设计和c r y p t o i k 库实现 o b j e c t 一j r 1 d a t a k e y c e r t i f i c a t e p u b l i ck e yp r i v a t ek e ys e c r e tk e y 图2 - 2o b j e c t 的层次结构图 o b j e c t 也可以由它们的生命期和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论