基于USBKEY的银行ATM认证系统(一)
详细内容
摘要:对当前ATM应用中的安全缺陷进行了分析,设计了一个基于USBKEY的身份认证系统,并对系统的组成及其功能进行了阐述。讨论了基于USBKEY的认证系统的工作原理,并对身份认证系统的安全性进行了剖析。设计的认证系统克服了传统口令认证的弱点,解决了ATM应用中持卡人身份认证的安全问题。
关键词:TM,PKI,USBKEY,认证系统
1当前ATM应用的安全隐患分析
当前,ATM应用的操作过程如下所述。持卡人将银行卡插入ATM,经过ATM的读卡机检查是否为合法的银行卡后提示输入用户的身份识别码(PIN码),ATM对PIN码格式进行校验无误后,提示用户输入交易类型和交易额,并将这些请求信息发网银行主机。银行主机对请求信息进行校验,验证操作者是否是该卡的合法持卡人。若银行主机对请求信息校验无误后则进行相应的账务处理并向ATM发出响应信息,ATM则根据主机的响应信息进行单据打印、吐现金、退卡等处理,至此一个完整的ATM交易结束。
以上可以看出,现有的ATM应用对持卡人身份的合法性判断主要采用输入数字的PIN码法,该方法存在多种安全隐患:(1)网络数据流窃听:在ATM与银行主机之间,通过网络传递的交易请求信息是未经加密或经过简单加密处理的信息,容易被攻击者通过窃听技术窃取用户信息。(2)穷举尝试:攻击者使用有意义的数字作为密码来不断尝试持卡人的密码。如果持卡人的密码是未经过改动的初始密码或一个特殊、容易被分析的数字,则密码很容易被攻击者穷举出来。(3)窥探:攻击者利用与ATM接近的机会,通过安装监视器或亲自窥探合法用户输入口令的过程等方式,以得到持卡人的口令。(4)按键侧录:该程序会使持卡人在使用ATM的同时同步向外发送报告,使持卡人的所有操作都一览无遗,攻击者可以很轻易地获得持卡人的口令。(5)垃圾搜索:攻击者通过搜索合法者持卡人使用过的废弃物,如打印单据等,得到与被攻击系统有关的信息。(6)网络钓鱼:犯罪分子通常会给用户发送一封看似合法的电子邮件或手机短信,要求对方提供银行账号和密码。如果用户将自己的银行账号和密码告之对方,犯罪分子就可以通过自制的银行卡到ATM机上提款。
为解决现有ATM应用的安全隐患,最有效和最直接的办法是防止犯罪分子获取持卡人的口令。然而随着社会的发展,高科技知识的普及,犯罪分子的手段越来越高明,持卡人的口令经常被窃取。因此如何保证在犯罪分子非法获取口令后,持卡人的经济利益不受损害,成为值得研究的热点问题。
2认证系统实现的理论基础
2.1PKI
公钥基础设施PKI是利用非对称密码算法来实现并提供安全服务的具有通用性的密钥管理平台。
完整的PKI系统具有认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等五个基本构成部分。认证机构:证书的签发机构,是整个PKJ的核心,是PKJ应用中权威的、可信任的、公正的第三方机构;数字证书库:用于存储己签发的数字证书及公钥,用户可由此获得所需的其他用户的证书及公钥;密钥备份及恢复系统:对用户的解密密钥进行备份,当丢失时进行恢复,签名私钥为确保其唯一性而不作备份;证书作废系统:证书由于某种原因需要作废,终止使用,通过证书撤销列表CRL来实现;应用接口(API):完整的PKI必须提供良好的应用接口系统,使得各种应用能够以安全、一致、可信的方式与PKI交互。
2.2数字证书
数字证书是公开密钥体系的密钥管理媒介,是权威性的电子文档,形同网络环境中的身份证,用于证明某一主体的身份以及其公开密钥的合法性,又称为数字ID。数字证书将证书持有者的身份信息和其所拥有的公钥进行绑定,还包含CA对该证书的签名,该签名保障了证书,也即主体身份的合法性和有效性。证书和对应的私钥一起可以提供诸如身份认证完整性、机密性和不可否认性等安全服务。
2.3数字签名
签名是证明当事者的身份和数据真实性的一种信息,起到确认、核准、生效和负责任等作用。一个完善的数字签名应满足以下三个条件:
(1)签名者事后不能抵赖自己的签名;
(2)任何其他人不能伪造签名;
(3)如果当事人双方关于签名的真伪发生争执,能够在公正的仲裁者面前通过验证签名来确认其真伪。
利用公开密钥密码可以实现满足以上条件的数字签名,以下是一个通用的数字签名模型;
设e,Kd)>是一个公开密钥密码,M、C分别是明文和密文,E、D分别是加密算法和解密算法,Ke,Kd分别是公钥和私钥。用户A施加数字签名,用户B验证数字签名。
(1)A、B向CA申请证书,故各自的公开密钥Ke均在共享的证书库中,以此作为对方及仲裁者验证签名的依据之一;
(2)A用自己保密的签名密钥KdA对明文M进行签名;SA=D(M,KdA),SA即为A对M的签名。A将SA发送给B,并将SA留底;
(3)B收到SA后,在证书库中查阅A公开的验证签名密钥KeA,对签名进行验证:
E(SA,KeA)=E(D(M,KdA),KeA)=M
验证签名就是恢复明文的过程。如果能恢复出正确的M,则说明SA是A的签名,否则不是。B将收到的SA留底,并用氏B签名一个回送A的回执。
(4)A收到回执后同样验证签名并留底。
由于只有A才拥有签名密钥KdA,而且由公开的KeA在计算上不能求出KdA,所以在第二步的签名操作只有A才能进行,任何其他人都不能做。所以,KdA就相当于A的印章或指纹,SA就是A对M的签名。对此A不能抵赖,任何其他人不能伪造。如果A和B对于签名的真伪发生争执,则他们应向CA出示留底的签名数据,即可验证签名,解决纠纷。
2.4USBKEY
USBKEY从智能卡技术上发展而来,是结合了现代密码学技术、智能卡技术和USB技术的新一代身份认证产品。
USBKEY的内嵌芯片和芯片操作系统(COS)需要提供私钥的生成、安全存储和公钥密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,USBKEY成为数字证书和签名私钥的安全载体。由于数字证书包括证书拥有者的个人信息、证书拥有者的公钥、公钥的有效期、颁发数字证书的CA、CA的数字签名等,所以网上双方经过相互验证数字证书后,即可确认对方身份的合法性。在进行数字签名时,用来签名的私钥在KEY中产生并保存在KEY中,任何情况不能读出,签名的过程在KEY中完成,比传统方式下在主机端用私钥实现签名更安全可靠。
3基于USBKEY的认证系统
3.1认证系统的构成
认证系统主要由USBKEY、认证服务器等几部分组成。USBKEY中下载有持卡人个人数字证书和用来签名的私钥。认证服务器:放置在银行内部,与银行的业务主机协同工作并提供对用户端身份进行认证的专用网络服务器,它同时也完成存储和管理用户数据的功能。
3.2身份认证的工作原理
每个USBKEY硬件都具有用户PIN码,以实现双因子认证功能。USBKEY内置加密算法,预先在USBKEY中存储一个证明用户身份的私钥,当持卡人需要对ATM进行操作时,首先是身份认证,先由ATM向认证服务器发出一个验证请求。认证服务器接到此请求后生成一个随机数并通过网络传输给ATM。ATM将收到的随机数提供给插在USB接口上的USBKEY,由USBKEY使用持卡人私钥将该随机数进行加密运算并得到一个结果作为认证证据传送给认证服务器。认证服务器使用存储在服务器数据库中的该持卡人公钥对传回的数据进行解密运算,如果解密后的结果与服务器初始传给ATM的随机数一致,则认为该持卡人是一个合法用户。