3
4 算机安全 2008.12 学术.技术 1 引言 由于移动公网的广泛发允㘉䤢霞夑忇媩侂徰夝徶歺D兾殏媬侂蠅夑忇媩侎ꒁ壚敊媤侅枣㥙觓 移动终端作为固网上业务段+猓㰙燎洤辀H鴚 来越常见。然而,移动终段僚㔈龝探鴚 GPRS/CDMA 的移 动公网接入业务服务器宠龓䔥醵爺ꑽ箲㸞跬鴚 没有执行任何安全保护措施的情况下,移动终端就唁爃H鴚 服务器进行数据传输,很祁㨎㘇婻棋駙㔎有 用心的人截取或者篡改,如果这些数据涉及到商业敏段鴚 息,这将对双方的利益带巨商ꑽ甀㸑䔠鍄酝辀端 虽然体积小巧,方便携带,也容易丢失和被盗,再加上设 备的非授权使用,授权用户宠垢嶮䔙,这 些全都会带来安全威胁。唁槡蕴ꅾ辀辆爃%鴚 务器的访问过程增加安全牺鈄㘅㨕苻䰪樣髵㸶鴚 IPSec VPN 技术是目前普遍使用的方法,牺暻醌包墨鴚 上建立一个私有隧道,然勾醯惑方的数 据传输。这样,安全性确实勾箹擹月㨕鲘鴚 没有智能卡的帮助,安祁㨐ꑽꎉ䐓㸝醠允针对 这种情况,设计了一个基于智能卡的移动 IPSec VPN 安 全接入终端系统,本文重宠呔頤䀞夑曥侂嬪擭徰夑曥侎槦盦㸶 2 相关背景 2.1 智能卡与 PC/SC 规范 智能卡是一张内含嵌入式集成电聊㨘暩꒤鴚 小的塑料卡,具有储存信牺嘻火ꑹ允棋齐云荖扰 能力强,储存可靠,读写设备简宠允閝慆┟粤鱩剐鴚 快,脱机工作能力强,易于携带等特点。本系统所使用宠鴚 智能卡是一张特制的内含有交 密钥对,签名密钥对勾鴚 书用以提供加解密、认证等服务的电子卡。 PC/SC 规范是一套为集成电路卡 (ICC) 与个人计算 机系统设计进行交互的规范,能够让智能卡方便地访问 CSP 在基于智能卡的移动终端中的开发与应用 摘 要:IPSec VPN 技术因其方便、安全性高等特点,成为现在普遍采唁篍洬荲㘈腉㸞盵暶㨙篍䈚玜㼙挵鴚 式集成电路芯片的信用卡┫ꒇ䠟嶦曚憉媩侅允ヰ冱醣卡内冇憅曘,能够使加密操作在卡内进行,从而保证私钥不牺 卡,大大提高了安全性。IPSec VPN 和智能卡的结合在网络允㐇(&燷O㸞盵暵䵁辝夑曥侂絀夗媤侂攺夗媤侂徰夑曥侙盰 Crypto API 向应用程序提供各种网络安全应用。该文在移宠疗頤䀒蚱尐枣忈媤侟^鈀呗苴探盵暬夑曥侂嬪擭徰夑曥侎鰓 过程。 关键词:智能卡;加解密服务提供者;加解密接口;移动安全 Development a,鍂腉Ⅶ箲靷靷轞覰罫箲鷕覰閁鍂Ⅶ閁蔂Ⅶ嬪擭彜Ⅶ覰鍂Ⅶ鱙醟箲髵鷕Ⅶ罫箲髵腉Ⅶ NIE Min, TAN Cheng-xiang, WANG Hai-han,蛓鴚 ( Dept of El,荋罫鷕閁髵鍂覰罫Ⅶ箲鍂腉Ⅶ匥nformation En,蚉覰鍂荋荋髵覰鍂蚉汕暤閁鍂蚉啛i Univers ity,Shang Hai,Ⅶ凫越祝戤越吒汕彜务挙务嬪蠬覰鍂箲拎鴚 Abstract: IPSec VPN has become a prevalent method of increasing network security, since it is easy to use and can offer high safety. Containing embedded integrate circuit chips, Smart Card , as big as a credit card, is an electronic card which includes key pairs and certificate. As encryption operation is done inside and the private key does not need to be exported ,the security can increase greatly. The combination of IPSec VPN and Smart Card in network has been applied increasingly widely. Smart Card and software based on CSP can offer various services in network security field through Microsoft's Crypto API. This article introduces the design and development procedure of Smart Card based on CSP in the backgr,閁龎鍂腉Ⅶ閁蔂Ⅶ醟閁絊覰轞荱 secure termi,鍂箲轞Ⅶ鱙㘂鱙鷕荋醟Ⅶ腉荋鷧ailedly. Key words: Smart Card;C,擭彞爛嬪髵㘂靷鷕閁Ⅶ瘍彜匎爛婥閁絊覰轞荋Ⅶ鱙荋罫龎髵覰鷕㘭鴚 (同济大学 电子与信息工程学院,上海 201804)  聂旻,谭成翔,汪海��Tj

CSP在基于智能卡的移动终端中的开发与应用read.pudn.com/downloads158/ebook/706085/PKICSP.pdf · IPSec VPN and Smart Card in network has been applied increasingly widely

  • Upload
    dophuc

  • View
    223

  • Download
    2

Embed Size (px)

Citation preview

Page 1: CSP在基于智能卡的移动终端中的开发与应用read.pudn.com/downloads158/ebook/706085/PKICSP.pdf · IPSec VPN and Smart Card in network has been applied increasingly widely

4 算机安全 2008.12

学术.技术

1 引言

由于移动公网的广泛发展和手机 PDA的大力普及,

移动终端作为固网上业务服务器的访问接入终端也变得越

来越常见。然而,移动终端通过基于GPRS/CDMA的移

动公网接入业务服务器的过程存在着较大的安全风险。在

没有执行任何安全保护措施的情况下,移动终端就与业务

服务器进行数据传输,很容易导致双方传输的数据被别有

用心的人截取或者篡改,如果这些数据涉及到商业敏感信

息,这将对双方的利益带来巨大的损失。并且,移动终端

虽然体积小巧,方便携带,也容易丢失和被盗,再加上设

备的非授权使用,授权用户的不合理或者恶意的行为,这

些全都会带来安全威胁。因而,寻找给移动终端和业务服

务器的访问过程增加安全性的解决方案是人们追求的目标。

IPSec VPN技术是目前普遍使用的方法,先在公共网络

上建立一个私有隧道,然后才在这个隧道上进行双方的数

据传输。这样,安全性确实会得到一定的提高,但是如果

没有智能卡的帮助,安全性还是会大打折扣。因此,针对

这种情况,设计了一个基于智能卡的移动 IPSec VPN安

全接入终端系统,本文重点介绍该系统中CSP 的开发。

2 相关背景

2.1 智能卡与 PC/SC 规范

智能卡是一张内含嵌入式集成电路芯片的信用卡般大

小的塑料卡,具有储存信息量大,数据保密性好,抗干扰

能力强,储存可靠,读写设备简单,使用灵活,操作速度

快,脱机工作能力强,易于携带等特点。本系统所使用的

智能卡是一张特制的内含有交换密钥对,签名密钥对和证

书用以提供加解密、认证等服务的电子卡。

PC/SC规范是一套为集成电路卡 (ICC) 与个人计算

机系统设计进行交互的规范,能够让智能卡方便地访问

CSP在基于智能卡的移动终端中的开发与应用

摘 要:IPSec VPN 技术因其方便、安全性高等特点,成为现在普遍采用的一种增加网络安全性的方法。智能卡是一张内含嵌入

式集成电路芯片的信用卡般大小的电子卡,它将密钥对与证书封在卡内,能够使加密操作在卡内进行,从而保证私钥不需出

卡,大大提高了安全性。IPSec VPN 和智能卡的结合在网络中应用已经越来越广泛。智能卡软硬件相结合的 CSP 能够通过微软的

Crypto API 向应用程序提供各种网络安全应用。该文在移动安全终端系统的背景下,详细介绍了基于智能卡的 CSP 的设计与开发

过程。

关键词:智能卡;加解密服务提供者;加解密接口;移动安全

Development and application of CSP in smart card based mobile terminal

NIE Min, TAN Cheng-xiang, WANG Hai-hang

( Dept of Electornic and Information Engineering,TongJi University,Shang Hai 201804,P.R.China)

Abstract: IPSec VPN has become a prevalent method of increasing network security, since it is easy to use and can offer high safety.

Containing embedded integrate circuit chips, Smart Card , as big as a credit card, is an electronic card which includes key pairs and certificate.

As encryption operation is done inside and the private key does not need to be exported ,the security can increase greatly. The combination of

IPSec VPN and Smart Card in network has been applied increasingly widely. Smart Card and software based on CSP can offer various services in

network security field through Microsoft's Crypto API. This article introduces the design and development procedure of Smart Card based on CSP

in the background of mobile secure terminal system detailedly.

Key words: Smart Card;CSP;Crypto API;Mobile security

(同济大学 电子与信息工程学院,上海 201804) 

聂旻,谭成翔,汪海航

Page 2: CSP在基于智能卡的移动终端中的开发与应用read.pudn.com/downloads158/ebook/706085/PKICSP.pdf · IPSec VPN and Smart Card in network has been applied increasingly widely

52008.12 计算机安

学术.技术

Window 平台。其主要优点就是让应用程序不必为了与

智能卡通信而去了解智能卡读卡器的细节,应用程序通过

PC/SC规范和智能卡读卡器通信,后者再通过 ISO7816

与智能卡进行通信来获取智能卡提供的服务,其传输的包

结构是TPDU。

1.2 Crypto API 体系结构与 CSP

Crypto API 是微软提供的一套公共接口,包含了一

系列的函数,为应用程序提供加解密、数字签名、哈希等

安全服务,而应用程序不必关心其具体实现。不同的供应

商可以开发独立的加密模块,这些模块成为加密服务提供

者(Cryptographic Service Provider CSP),完成密钥

生成 /交换、加解密、数字签名、认证等服务的真正模块。

微软默认的CSP 是 RSA Based Provider,使用RSA公

司的加密算法。一个系统中可以加载多个CSP 模块,它

们相互独立。应用程序可以使用任意一个CSP 模块,而

不必关心它的具体实现,每个CSP 都对 Crypto API 进

行不同的实现。

Crypto API 的体系结构如图 1所示。

图 1 Crypto API 的体系结构

从图 1可以看出,它分为应用层:系统层和加密服务

提供层。处于应用层的应用程序通过Crypto API 来调

用 CSP 模块提供的各种服务。

3 软硬件结合的CSP开发

本文介绍的移动安全接入终端系统在WINCE下开发,

使用WINDOW MOBILE 5.0 SDK。系统分两层,彼此

间相互独立,上层进行拨号,下层给上层提供CSP 支撑,

上下两层通过系统来整合。CSP 可以基于软件实现,也

可以基于硬件实现,还可以基于软硬件结合实现。基于

软件实现的CSP,其使用的密钥对及算法与操作系统有

关,安全性不高;而基于硬件实现的CSP 虽然安全性较高,

但是费用昂贵;而基于软硬件实现的CSP,由于将密钥

对生成和加解密操作与操作系统分离,所以其密钥的管理

和加解密比基于软件的CSP 安全提高了很多,而与安全

性方面没有多少关系的部分使用软件实现,费用比基于硬

件实现的CSP 降低了许多,可以说是一种比较折中的选择。

本系统使用的CSP 采用软硬件结合的方案,目标是

提供一个基于 SDIO 智能卡的CSP。哈希、解密等功能是

不需要硬件实现的,因此这些部分可以用软件实现。而

WINCE系统中包含了这部分的软实现,所以在设计中可

以利用现有资源,只在需要硬实现的部分才对卡进行操作,

这样既提高了性能又不影响安全性。

在对卡的调用中,命令和响应报文要符合 ISO

7816-4 标准,因此需要一个将数据根据智能卡指令组装

成智能卡可识别的APDU的程序,由此程序负责数据格

式的转换。

根据以上设计原理的分析,可得图 2所示的 CSP 系

统结构图。

图 2 CSP 系统结构图

将 CSP 的实现分为 3 个模块:CSP 主程序模块、

CSP 图形界面模块、CSP 智能卡访问模块

图 3 CSP 实现的模块

(1)CSP 主程序模块

主程序模块是CSP 的核心模块,实现CSP 中的业务

逻辑并以Crypto SPI 标准接口形式提供。主程序模块通

过调用图形界面模块的相应图形界面实现与用户的交互

(在 CRYPT_SLIENT 标志未设置时)。主程序模块对智

Page 3: CSP在基于智能卡的移动终端中的开发与应用read.pudn.com/downloads158/ebook/706085/PKICSP.pdf · IPSec VPN and Smart Card in network has been applied increasingly widely

6 算机安全 2008.12

学术.技术

能卡的访问及数据传送都是通过智能卡访问模块来实现的。

(2)CSP 图形界面模块

图形界面模块负责CSP 与用户的交互实现。主要有

卡片初始化时的 PIN 码设置界面和程序运行中提示用户

输入 PIN码以验证其合法性的界面。

(3)CSP 智能卡访问模块

智能卡访问模块是CSP 使用智能卡上服务的实现模

块。它负责与智能卡建立连接,数据传输,释放连接等。

它接收主程序模块的智能卡访问请求,并根据请求组织相

应的APDU发送到智能卡,以及从卡上获取返回的结果,

最终将结果数据提交给主程序模块。

将CSP划分成 3个模块,可以降低程序各个模块之间

的耦合度,实现起来比较灵活。如果需要更改程序界面就

不需要去改变CSP主程序模块。同样,当使用另外一种智

能卡时,只需要替换相应的智能卡实现模块,而不需要去

改变主程序模块和程序界面,这样就可以很方便地将第三

方的智能卡实现模块加载进来,实现对多智能卡的支持。

CSP 主程序模块以DLL形式提供,是实现CSP 的关

键,其中的各个类都有具体的功能职责,并且通过组合和

关联关系形成一定的层次关系。此外在CSP 中,还有其

他的辅助函数定义,如块加密时的编码与解码函数等。其

类设计如下:

(1) CContext

CContext 类对应了一个用户上下文对象,在逻辑上

相当于密钥库。它通过组合关系包括了CSP 中的其他类

对象,并通过这些类对象来进行相应的操作。CContext

作为用户上下文对象,是提供Crypto SPI 中 23 个接口

函数实现的对象。

(2) CContainer

CContainer 类对应了一个密钥容器,一个用户上下

文往往包含多个密钥容器。CContainer 对象中会缓存其

包括的证书信息,这里缓存交换密钥对证书和签名密钥对

证书两个证书。

(3) CCard

CCard 类代表了扩展卡类型。在这个类中封装了所

有对卡的安全操作,包括验证、加解密、存储管理等。一

个CCard 对象会缓存对应扩展卡上的所有密钥容器对象,

这样要访问密钥容器的相关信息就会变得方便、快捷。

(4) CRSAProvider

CRSAProvider 类是用于调用系统提供的CSP 的。

它负责获取系统提供CSP 的句柄,利用此句柄调用相关

的功能实现以及释放得到的句柄。

(5)CPPManager

CPPManager类也是一个辅助控制类,它的定义只是为

了使得程序更加清晰。它的功能是根据CPGetProvParam中

参数的不同值取得CSP的相关信息。

(6) CHandleTable

CHandleTable 类是一个辅助存储类,它用于存储

CSP 中密钥容器等对象的句柄。它采用Hash 表结构来存

储对象句柄,并且提供了相应的增加、删除、读取等功能。

CSP 编写测试完成后,必须要让微软对其CSPDLL

进行签名,这样该CSP 才能装进操作系统内。这步比较

简单,只需要将其 DLL 与一个资源描述文件作为附件

发往 [email protected] 就可以了,签名周期一般

为 3天。完成签名后,CSP 就可以安装到系统中工作了。

在Windows Mobile 5.0 系统中,需在注册表中注册该

CSP,CSP 安装完成,以后可以通过Crypto API 接口调

用CSP 提供的安全服务了。

4 结束语

本文不仅对微软加密体系进行了详细的分析,而且结

合移动安全终端系统,对智能卡上的CSP 的开发进行了

充分的介绍和分析。CSP 通过标准的Crypto SPI 接口嵌

入到微软加密体系中,使用户可以通过Crypto API 接口

来使用智能卡上所提供的高安全性的加密服务,来满足日

益增加的网络安全需求。

参考文献:

[1] 黄禄 , 郑晓军 , 须文波 . 利用 W i n d o w C r y p t o A P I 实现

WPKI 的方法 [J] 计算机工程 ,2004 (12) ;108-110.

[2] 王爱英 . 智能卡技术 [M]. 北京,清华大学出版社,2000.

[3] 李彪,张申生 . 动态公开密钥基础设施的构造和应用,

上海交通大学学报,2002,36(9):1291-1293.

[4] 张井和,吴令陪,张其善等 . 一种利用智能卡实现公

钥基础设施核心服务的方案,遥测遥控,2003,24(2):

46-50.

作者简介:聂 (1982-),男,研究生,主要研究领域:网络

安全;谭成翔,同济大学计算机系教授,研究员,博士生导师;

汪海航,同济大学计算机系教授,博士生导师。

收稿日期:2008-04-30