WPKI作为PKI在无线通信环境下的优化,可以有效保征信息安全、身份证明、信息完整性和不可抵赖性,而WPKI技术的核心优化则是数据文件加密算法。椭圆曲线加密算法以其短密钥的特点,具有安全性能更高、计算量小、处理速度快、存储空间占用小及带宽要求低优点,比传统的RSA等公钥加密算法更适于WPKI的安全应用。
一、椭圆曲线加密算法概述
1、椭圆曲线的定义
设K为域,域K上的Weierstrass方程为:
其中ai∈K,定义变量如下:
当△≠0,域K上点集为:
其中ai∈K,{O}为无穷远点,称为域K上的椭圆曲线。
在实际的密码学应用中,主要研究和应用的椭圆曲线方程有以下2种:
(1)有限域上的椭圆曲线Fq(表示q个元素的有限域):y2=x3+ax+b,其中a、b∈Fq,满足4a3+27b2≠0。
(2)有限域上椭圆曲线F2m:y2+xy=x3 +ax2+b,其中a,b∈F2m,满足b≠0。
2、基本运算
在K为实数域的时候,从几何角度理解椭圆曲线的加法运算比较直观。如图1即为椭圆曲线上不同两点P(x1,y1)和Q(x2,y2)的加法:连接点P和Q交曲线E于另一点,过该点作平行于纵坐标轴的直线与曲线E相交于点R(x3,y3),则尺为P和Q两点之和,记为R=P+Q。
特殊情况下,当P和Q为同一点时,过点尸作曲线E的切线与曲线交于一点,过该点作平行于纵坐标轴的直线与曲线E相交于点R(x3,y3),记为:尺=P+P=[2]P,称为椭圆曲线的倍点运算,如图2所示;若切线和纵坐标轴平行即交曲线于无穷远处,则P+P=O,即点P是椭圆曲线E上阶为2的点。
由倍点运算更进一步,可以得到椭圆曲线的标量乘运算定义:Q=[k]P,即k个点P相加得到的结果,该运算是构成椭圆曲线加密体制的基础,也是涉及效率问题的关键步骤。
3、典型椭圆曲线加密体制
在椭圆曲线构成的Abel群Ep(a,b)上考虑方程Q=kP,其中P,Q∈Ep(a,b),k<p,则由Q和P比较容易计算Q,而对给定的Q和P计算忌则是困难的,此为椭圆曲线上的离散对数问题(ECLDP)。
EC-Diffie-Hellman密钥交换协议:选取有限域K、椭圆曲线E/K及基点P∈E(K)。K,E P为公开信息,若A与日想进行密钥交换,执行的具体步骤如下:
(1)A产生1个E上的点m,日产生1个E上的点,z,分别作为自己的私钥。
(2)A计算KA=mP,曰计算KB=nP。
(3)A把KA传送给曰,同时B把KB传送给A。
(4)A计算:Kc=YyiKB;Bob计算:Kc=YiKA,Kc即为A和B所商定的密钥。
二、WPKI体系结构
WPKI的主要组件包括:终端实体应用程序(EE);PKI门户(PKI Portal);认证中心(CA);目录服务(PKI Directory);WAP网关,在应用模型中还涉及数据提供服务器等设备,WPKI的体系结构如图3所示。
1、终端实体EE
EE依赖WMLSCrypt API实现密钥管理和加密运算,包括产生、存储并允许访问用户公钥/密钥对;初始证书申请;证书更新请求、证书撤消请求;查询、恢复和撤消证书信息;验证证书和读取证书内容;产生和验证数字签名。
2、PKIPortal
理论上功能类似于PKI中的RA功能,一般作为手机终端和PKI之间的连接桥梁,负责将WAP客户的需求转换给PKI中RA和CA。 PKI Portal内嵌RA功能,实现与无线网络中的WAP设备和有线网络中的CA互相操作。
3、WAP网关
在WAPIX中需要WAP网关来处理客户与源服务器之间的协议转换工作。WAP网关使用WAP协议与客户通信,使用标准Internet协议与源服务器通信。WAP2.0标准则有了较大的改进,但仍兼容10标准,在WAP2.0中客户与源服务器之间可以直接使用HTTP/1.1通信,当然,配置1个WAP代理还可以完成其他一些处理工作,主要则是对移动服务功能的增强。
三、椭圆曲线加密体制在WPKI中的应用
1、 WTLS证书
WPKI为减小公钥证书存储空间,一种机制是定义新的证书格式——WTLS证书格式,比X.509证书格式尺寸(大小约2K,对于仅有8k容量大小的SIM卡来而言仍属负担)明显减小,另一种机制是在证书的储存上引入大于iOO bytes的椭圆曲线加密算法,能用占较小内存的密钥,使得证书总尺寸缩小。同时,WPKI对IETF PKIX证书格式中的一些字段尺寸做了限制,但由于WPKI是PKIX的子集,此举可保证这些PKI标准互操作的可能性。
2、 WIM
无线应用协议识别模块(WAP Identity Module,WIM)主要用于储存和处理用于用户识别和身份认证的信息。WIM主要在无线终端内的智能卡上实现,而智能卡自身硬件的资源极为有限,因此用其实现安全系统面临着存储器容量和计算能力方面受到的限制。
将椭圆曲线加密体制应用于智能卡的具体优点有如下几方面:
(1)卡密钥生成
在使用其他现有的公开密钥体制的应用中,密钥是在安全的环境中装进或注进卡中,而在卡上生成密钥基本上是不可行的,使用椭圆曲线加密体制生成小密钥对所需的时间很短,因此如果有好的随机数发生器,则可在智能卡上外加一个计算能力非常有限的设备就可以生成密钥对。
(2)不需要协处理器
传统RSA等公钥加密体制包含太多的运算,因而需要称为“密码协处理器”的专用硬件设备,密码协处理器不但占用了宝贵的空间,还增加了大约20~6到30~6的芯片成本。而使用椭圆曲线加密体制则减少了处理时间,算法且能在可用的ROM中实现,因而不需要额外的硬件。
(3)可升级
智能卡应用需要越来越强的安全性(使用更长的密钥),而椭圆曲线加密体制只需要较少的附加系统资源就可增强安全性,这意味着如使用椭圆曲线加密体制,智能卡能够提供更高的安全性而不需要增加另外的成本。
3、WTLS协议
WTIS是用于提供移动设备到WAP网关的通信安全。WTIS协议从TLS1.O演化而来,并针对无线信道和嵌入式系统的特殊要求作了一些修改。
WTLS定义了ECDH和ECDSA作为可选的加密算法之一。ECDH用于交换密钥协商信息,而ECDSA用于对密钥协商信息进行数字签名,如客户机在向服务器发送连接请求的同时,提议使用ECDH-ECDSA加密算法进行密钥协商,ClientHello中加密算法信息内容就包括椭圆曲线参数,其中还包括曲线方程系数、伽罗瓦域定义参数、生成元G和阶r,如果服务器同意使用这种算法,ServerHelIoM就会向客户机发送含有ECDH公钥和ECDSA公钥的服务器证书,然后客户机向服务器发送自己的DH公钥,这些信息都经过ECDSA算法签名的。这样双方通过ECDH算法可以安全地协商出1个秘密值,再通过1个伪随机数产生方法,从这个秘密值中产生安全连接所需的全部参数。
四、实现身份认证
1、初始化
(1) CA选择椭圆曲线参数
CA选取有限域Fq上的椭圆曲线E: y2=x3+ax+b,即给出1组椭圆曲线参数(q,a,b,G)。整数q表示1个有限域Fq;a,b∈Fq定义1条椭圆曲线;G表示1个基点。
对于以上各参数有如下要求:要选择一条足够安全的椭圆曲线,其留要大于2 160,a,b由CA随机选取,但保证a,b∈Fq及4a3 +27b2≠0(mod g);其基点G(G.x,G.y)也是由CA选取的椭圆曲线E:y2= x3+ ax十b上的点,这些参数都被写入椭圆曲线参数文件,可以被任何用户所访问。
(2) EE申请证书
a、EE在WIi中产生公钥、私钥对:用户S随机选取整数ks作为其私钥,计算Gs=ksG(点积运算),则Gs为用户的公钥。
b、 EE向PKI Portal申请证书:EE获得根CA证书,WTLS中采用ECDH-ECDSA算法建立安全通道,传递用户S的公钥Gs。
c 、PKI Portal验证通过后,向CA转发证书申请。
d、CA生成证书:CA中心对Gs产生数字签名,记为Ds(Gs),再产生证书C={Gs,Ds(Gs)),存入PKI Directory,并取得证书URL。
e、颁发证书:CA通过RA将证书URL返回EE。
2、身份认证流程
WPKI标准提供了WTLS Class2、WTLS Class3和SignText 3种功能模式,在此则采用WTLSClass3模式:
(1)用户在客户端签署交易后,并发送交易内容、数字签名和用户证书的URL到服务器(逻辑上通过WAP网关);
(2)服务器根据证书的URL向证书数据库验证用户证书(如果用户证书已经在证书数据库中);
(3)如果有需要,证书数据库将发送用户证书到服务器;
(4)服务器签署交易,并发送交易内容、数字签名和服务器证书到EE(逻辑上通过WAP网关);
EE利用根CA证书对服务器证书验证通过,从而在EE和服务器间建立WTLS会话。WAP网关只起路由器的作用,移动终端与应用服务器之间的通信对WAP网关是透明的,其流程如图4所示。
小知识之WPKI
WPKI即“无线公开密钥体系”,它是将互联网电子商务中PKI(PublicKeyInfrastrcture)安全机制引入到无线网络环境中的一套遵循既定标准的密钥及证书管理平台体系,用它来管理在移动网络环境中使用的公开密钥和数字证书,有效建立安全和值得信赖的无线网络环境。