基于 PKI技术的网上移动购物系统
摘要 作为一套完整的 Internet 安全解决方案,PKI技术在电子商务市场被广泛应用。本文设计并实现了一种基于PKI技术的网上移动购物系统,它将PKI技术与移动通信相结合,对购物信息进行数字签名加密。此系统实现了移动身份认证服务,确保了购物信息的安全性、完整性和不可否认性。
关键词 PKI;动态口令;购物系统;移动通信;SSL协议
0 引言
随着人们越来越多的使用网络,包括有线网络和无线网络,去实体商店的传统购物方式越来越多的转变为在网上进行,网上购物这种新兴方式有取代传统购物的趋势。据新生代市场监测机构2007年的调查,沃尔玛、家乐福等大型卖场,一个门店一天的平均客流量低于1.5万人,而淘宝网每天的用户流量将近900万人[1]
为了确保网上信息的安全传输,人们进行了多年的研究,目前,被广泛采用的是公钥基础设施(Public Key Infrastructure,PKI)技术。PKI技术采用数字证书管理公钥,通过第三方的可信任机
认证中心 (Certificate Authority,CA),把用户的公钥和用户的其他标识信息捆绑在一起,Internet网上验证用户的身份。
1 PKI 及动态口令技术简介
PKI(Public Key Infrastructure),公开密钥体系”,PKI 是一种基于公开密钥体制的密钥管理平台,通过采用认证技术确保电子合同的完整性和抗抵赖性,通过对信息进行加密确保信息在传输过程中的保密性,同时,通过采用基于 PKI/CA 结构及用户口令,可有效的对系统中的用户进行身份认证,防止系统中出现非法用户和伪造信息。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。其中,CAPKI的核心执行机构,PKI的主要组成部分,业界人士通常称它为认证中心,它是保证电子商务、电子政务、网上银行、网上证券等交易的权威性、可信任性和公正性的第三方机构。
动态口令(Dynamic Password),又称一次性口令(0TP-One Time Password),是相对于传统的静态口令而说的。它一般由某种终端设备,根据动态口令生成算法产生的随动态参数变化而变化的口令。动态口令是变化的密码,其变化来源于产生密码的运算因子是变化的。动态口令的生成算法一般都采用双运算因子,一是用户身份的识别码,是固定不变的,如用户的私有密钥;
是变动因子[2]
本文中将用户已注册成功的口令作为用户身份的识别码,并选定随机数作为变动因子, 使得每次认证的用户口令不同,同时,结合 Hellman 算法原理,在认证用户和 AS 间安全交换一个密钥。
2 购物系统的实现
2.1 系统结构
传统网上购物系统的结构非常简单,如图 1 所示[3]
1 传统网上购物系统的结构图
用户通过个人电脑或移动终端的浏览器,向购物网站发送购物请求信息,购物网站对购物请求进行相应的响应,完成交易行为。基于PIK技术的网上购物系统的结构,如图 2 所示。
2 基于 PIK技术的网上购物系统的结构图
与传统网上购物系统相比,系统增加了移动身份认证平台(Key Center),来加强交易的安全性,完整性和不可否认性。移动身份认证平台包括代理服务器(TR)和认证服务(CA)。代理服务器主要完成截获用户发向购物网站平台认证的连接请求,将其转发到认证服务器进行用户的身份认证,它是实现客户端和认证服务器认证连接转发的中间环节,当用户认证成功后为用户建立访问购物网站平台的透明代理。使用代理服务器的主要目的是保证在正常传输信息时,实现用户信息数据库与认证服务器的分离,充分保证用户信息的安全。认证服务器主要完成与客户端的认证工作。各种用户的身份认证信息和本地的一些安全参数信息,都存放在用户信息数据库中。
每一个用户拥有一个认证令牌,认证令牌主要用于认证服务器发送的随机动态数字和种子值,通过一个随机函数生成算法,计算出相应的动态口令,每个随机数都是唯一的,并且决不重复使用。这样就保证了每次认证过程均生成一个唯一的与认证令牌对应的不可预测的令牌码,提供给认证客户端。认证客户端将此码与用户码一起提交给认证服务器端, 验证用户的身份。
2.2 系统工作流程
在注册过程完成之后,如果用户希望访问购物网站平台的资源,必须首先通过认证服务器的认
证。用户可以利用认证令牌中的认证信息向Key Center证明自己的身份。客户端与移动身份认证平台(KC)之间需要完成,如图 3 所示的3个步骤以完成两者之间的身份认证。
3 客户端与移动身份认证平台之间的认证过程
登陆过程:
当用户在客户端登录并向服务平台Server发出资源访问请求时,系统提示用户输入用 户名和口令,并将输入结果( UserID,Psw)发送给代理服务器。其中客户端与代理服务器之间采用安全传输通道SSL,代理服务器将该认证请求连接转发到认证服务器,代理服务器和认证服务器之间采用明文传输TCP/IP协议。
认证服务器首先验证用户名和口令,如果正确,认证服务器和客户端按照基于动态口令机制的认证协议进行双向的身份认证。如果不正确,传回提示用户重新输入的信息,让用户端重新输入。
认证过程:
此认证协议的具体认证过程如下:
其中符号:K_pub表示公钥,K_pri表示私钥,y为整数、表示用户注册的口令的种子值,TS表示时间戳,EK为基于用户口令的散列码,Ka,b为由KC生成的ab间安全交换报文共享密钥,IDiI的身份标示,lifetime为生存期。
step 1:User -> CA : EK_Pub_CA [M1;IDuser ;X;TS]
M1 = EK_Pri_user [IDuser ;d]
X=gx mod n /* xuser 选取的一个随机整数。*/
d=gxy mod n/* y为用户口令种子值。*/
用户端将本次的动态密码d用自己的私钥加密成数据包M1 ,再同IDuserx计算得到得 X一并用CA的公钥加密后发送给CA。发送完毕后,客户端会将Xd备份,并启动计时器,若超过一定时间T后仍无收到CA的应答数据包则丢弃Xd ,或在T范围之内收到CA应答数据包进行验证后丢弃该随机数Xd
CA收到客户端发过来的认证数据包后,先用自己的私钥对收到的消息进行解密,得到用用户私
钥加密的数据包M1,以及IDuser XCA根据得到的IDuser ,在数据库中查对应用户的公钥K_pub 。用此公钥解密M1,得到IDuser 和本次的动态密码dCA根据数据库中对应的本次用户口令种子值,还原用户注册信息,并进行比较。若不同,拒绝客户端的请求,向客户端发送拒绝数据包;若相同,接受客户端的请求,进入第2步。
step 2 : CA -> User : EK_Pub_User [M2;IDuser ; X;R;R1;TS ]
R= YS X
R1 = YS网上购物的网站⊕ X y
M2= EK_d[Kuser_TR ; IDTR ; R; R1; Lifetime; Ticket]
Ticket=EK_Pub_TR [KUser_TR ; IDUser ; IDTR ; TS; Lifetime]
CA收到消息后核对客户端的ID,用与客户端协商的秘密密钥解密KUser(X)得到XCA选择一个随机数 x<n ,计算:YS= gXmod n ;同时查用户下一次将对应的口令种子值y,计算:R,R1
CA向客户端发送数据包,即将IDUser,IDTR, TS, R,R1,Lifetime,K_user_TR 和令牌ticket用基
于本次动态密码d来加密,而后连同客户端发送过来的X用客户端的公钥K加密,其中TicketTR的公钥加密。
客户端在范围之内收到CA应答数据包后,先用自己的私钥解密得到M2,IDUser X。将X和本身暂存的 X 进行比较,若不等则中断认证,相等则取出 d 解密M2得到与 TR 的共享密钥同时用R R1得到下一次认证时要用到的新的种子值y,并更新。下一次认证时根据新的种子值y计算动态密码。
Step3:将认证结果发送给代理服务器,此次认证结束。
当用户身份为合法用户时,代理服务器为客户端发起的连接请求中继到服务平台,从而建立客户端和服务平台的透明代理,客户端此时就可以访问服务平台的资源了。如果用户身份为非法用户,认证失败,同时客户端的访问请求连接被拒绝。
3 结论
本文介绍了基于 PKI技术的网上购物系统,使用 PKI 技术确保了购物信息的安全性、完整性和不可否认性。这样用户不需要更换SIM,就能方便地确保自己信息的安全,而购物网站则可以
通过移动身份认证平台,来确认购物信息是哪个用户提交的,让购物信息具有不可否认性。
参考文献
[1]news.iresearch/0200/20080331/78433.shtml.
[2]黄冠利,胡益.基于PKI的数字签章安全系统设计[J].计算机安全,2008.
[3]中广瑞波公司.PKI-SIM 安全认证卡系统简要说明.