用集成电路卡对数据进行认证或加密的方法和系统
技术领域
本发明涉及一种信息加密技术,尤其涉及一种利用IC卡对网上银行数据进行认证的方法和系统。
背景技术
随着网上银行业务的蓬勃发展,数据安全和用户的身份认证已经成为越来越重要的课题。对于数据安全传输而言,现有技术主要采用SSL(Secure Socket Layer)协议进行,加密强度已经基本达到了“满意”的程度,而对于如何确认“网络人”的身份就有着各种各样的方法。对于网上银行而言,身份认证尤为重要。只有确认了银行用户的合法身份,才能为用户提供安全、优质、高效的服务以及更多、更全面的服务功能。否则无法保证用户和银行自身的资金安全,为用户服务更是无从谈起。如今常见的身份认证方式有口令验证方式、动态密码方式、基于PKI体系的数字证书验证方式。
【数字证书】
数字证书是网络通讯中标志通讯各方身份信息的一系列数据,其作用类似于现实生活中的身份证。它是由一个权威机构(即CA中心)发行的,人们可以在交往中用它来识别对方的身份。证书的格式遵循ITUTX.509国际标准。主要包含以下一些内容:
1、证书的版本信息;
2、证书的序列号,每个证书都有一个唯一的证书序列号;
3、证书所使用的签名算法;
4、证书的发行机构名称,命名规则一般采用X.500格式;
5、证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049;
6、证书所有人的名称,命名规则一般采用X.500格式;
7、证书所有人的公开密钥;
8、证书发行者对证书的签名。
【加密技术】
非对称加密技术又叫做公开密钥系统,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
利用非对称加密算法实现机密信息交换的基本过程是:
甲生成一对密钥并将其中的一把作为公用密钥向外公开
得到该公用密钥的乙使用该密钥对机密信息进行加密后再发送给甲。
甲再用自己保存的另一把专用密钥对加密后的信息进行解密。甲只能用其专用密钥解密由其公用密钥加密后的任何信息。
非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。
【数字签名】
对文件进行加密只解决了传送信息的保密问题,而防止他人对传输的文件进行破坏,以及如何确定发信人的身份还需要采取其它的手段,这一手段就是数字签名。在安全保密系统中,数字签名技术有着特别重要的地位,在安全服务中的源鉴别、完整性服务、不可否认服务中,都要用到数字签名技术。完善的数字签名应具备签字方不能抵赖、他人不能伪造、在公证人面前能够验证真伪的能力。
只有加入数字签名及验证才能真正实现在公开网络上的安全传输。数字签名是建立在公共密钥体制基础上,主要流程如下:
报文的发送方从报文文本中生成一个128位的散列值(报文摘要)。
发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。
然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。
接收方接收报文和签名。
报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要)。
接着再用发送方的公用密钥来对报文附加的数字签名进行解密。
比较这两个散列值。
如果两个散列值相同、那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别。
如果两个散列值不相同、那么接收方就能确认该数字签名不是发送方的。
如果第三方冒充发送方发出了一个文件,因为接收方在对数字签名进行解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,解密出来的数字签名和经过计算的数字签名必然是不相同的。这就提供了一个安全的确认发送方身份的方法。安全的数字签名使接收方可以得到保证:文件确实来自声称的发送方。鉴于签名私钥只有发送方自己保存,他人无法做一样的数字签名,因此他不能否认他参与了交易。这种方式提供了更高的安全性。
发明内容
本发明的目的在于提供一种网上银行利用集成电路卡加密、认证的装置和方法,使网上银行交易具有更高的保密性,和安全性。
为实现上述目的,本发明提供一种网上银行利用集成电路卡认证、加密的方法,其特征在于,包括如下步骤:
a)根据用户信息生成针对该用户的数字证书;
b)将所述数字证书存入将要分配给该用户的集成电路卡中;
c)用户登陆网上银行用户进行数据处理时,通过所述集成电路卡确认用户身份或数字签名。
此外,本发明还提供了一种实现上述方法的系统,包括:位于银行业务网点的终端,用于在申请数字证书时将集成电路卡的卡号等用户关键信息写入数据库中,并下载数字证书到集成电路卡中;数据库服务器,用于存储用户的信息;集成电路卡,在下载数字证书后在内存内产生密钥,并保存识别用户身份的数字证书和私人密钥,连接用户联网计算机后用于读入、分析由网上银行输入的查询数字证书的信息并反馈一个数字证书信息;用户联网计算机,用于登陆网上银行和连接网上银行认证服务器;网上银行认证服务器,用于供用户联网计算机登录,并连接网上银行应用服务器;以及网上银行应用服务器,用于连接到数据库,用以完成验证数字证书工作。
本发明可以取得如下优点和效果:
1)每次使用数字证书时都需要输入PIN码,并且规定连续输错PIN码后会自动将数字证书锁住,用户只能到柜员处对数字证书解锁。从而进一步保证了用户交易的安全,因为必须拥有该用户的IC卡数字证书和KEY的PIN码才可以进行支付。
2)可以实现在用户端自助下载数字证书。
3)可以实现在用户端自助缴纳年费并延长数字证书有效期。
4)在网上逐笔转帐、外汇汇款和贷款业务等这些敏感业务时,使用IC卡做数字签名,以保证交易的安全性、保密性和不可抵赖性。而在进行账户查询、明细查询等低风险业务时,不须使用数字证书,从而兼顾了方便性与安全性。
由上可知,由于每一个IC卡有一个唯一的卡号,并且私钥不能出内存,在确认用户身份后才进行网上交易,因此本发明具有高度的保密性和安全性。
附图说明
图1是根据本发明的利用IC卡对网上银行数据进行加密、认证系统的方框图;
图2是根据本发明的利用IC卡对网上银行数据进行加密、认证方法的流程图;
图3是本发明请求一个网上银行数字证书并取得IC卡的流程图;
图4是使用数字证书访问网上银行的过程的流程图;
图5是网上银行交易数字签名验证流程;
图6为网上银行交易网上银行内部数字签名验证流程图;以及
图7具体描述用户自助展期的流程。
具体实施方式
图1是根据本发明的利用IC卡对网上银行数据进行加密、认证系统的方框图。如图1所示,对公证书用户102是指拥有存储了证书的IC卡101的对公网上银行用户。对公证书用户102可以通过用户端浏览器访问Internet网络103连接网上银行系统,进行网上银行交易或下载数字证书。
NetSafe服务器(使用信安公司NetSafe产品)104提供用户身份认证服务,接收客户的HTTPS请求并转发到Web服务器105。Web服务器(使用微软公司IIS产品)105在现有网上银行系统实现功能为,接收用户Http请求并通过IIS插件程序(WebSphere插件)把请求转发到网上银行系统应用服务器107。应用服务器(使用IBM公司WebSphere4.0产品)107实现与用户之间的交互,并可对用户数据库111中的数据进行操作。对公柜面网点113可连接内部管理服务器112,实现申请数字证书功能,为用户下载数字证书。
CA服务器109负责签发和管理所有的证书及证书作废表CRL。CAServer使用商用的数据库来存储内部信息,使用标准的LDAP目录服务器来发布用户证书和证书作废表CRL。CA服务器提供服务,接受和处理来自内部管理服务器和管理客户端的证书管理请求。
LDAP目录服务器110用来存储和发布用户证书和证书作废表CRL。所有经过CA服务器签发的证书和作废证书均需要同步到LDAP服务器上。在用户登录过程中,Netsafe服务器需要到LDAP服务器进行对证书进行核对,检查该证书是否已经作废、状态是否正常。同样,在交易过程中,应用服务器需要访问LDAP服务器,检查证书是否合法。
用户先到柜员处申请开户,然后是请求数字证书服务,为用户制作数字证书。用户可以在用户端进行自助下载数字证书。图中NetSign组件106为用户需要用数字证书进行数字签名时的服务器。
首先由网上银行根据用户信息向用户发放存放数字证书的IC卡,需要先申请一个网上银行数字证书开户,取得IC卡。
图2是根据本发明的利用IC卡对网上银行数据进行加密、认证方法的流程图。如图2所示,在步骤S201,客户申请数字证书,根据用户信息生成数字证书,客户下载数字证书,将所述生成的数字证书用户存储在分配给所述用户的IC卡中;在步骤S202客户使用IC卡数字证书加密功能实现网上银行登录身份认,网上银行用户进行网上银行数据处理时,通过IC卡确认用户身份或数字签名;在步骤S203,客户使用IC卡数字证书签名功能实现关键数据书;在步骤S204,进行数字证书定期自助更新。
图3是本发明请求一个网上银行数字证书并取得IC卡的流程图。在图3的流程中,用户去证书网点申请数字证书。在步骤S301,系统提示用户输入身份认证数据并验证身份数据,然后用户输入基本信息,系统在步骤S302验证用户基本信息是否有误,如果有误则在步骤S303修改输入数据。如果基本信息无误系统在步骤S304提示输入IC卡号。然后在步骤S305,将序列号与用户编号相对应,并将该对应关系存储在数据库111中。
接下来,在步骤S306,连接CA服务器109调用申请数字证书接口程序,接口程序输入数字证书关键信息,例如,用户所在组、中文名称、英文名称、电话、住址、国家、地区、email、邮政编码、证件类型、证件号码等。然后在步骤S307根据接口程序返回值判断申请是否成功,如果成功,接口程序输出成功信息返回数字证书参考号授权码并存入数据库中,则申请数字证书成功进行下一步;如果接口程序输出错误信息,例如用户已经存在、email错误等,则申请数字证书失败,在步骤S311禁止下载数字证书。
然后,在步骤S308,系统初始化IC卡,选择CSP,输入PIN码,例如,清空IC卡内容并通过用户的输入操作来更新IC卡的PIN码。在步骤S309,系统连接CA服务器109调用下载数字证书接口程序,接口程序输入数字证书关键信息参考号授权码。
在步骤S309,根据接口程序返回值判断下载是否成功,接口程序输出成功信息并把数字证书写入IC卡中,则下载数字证书成功进行下一步;接口程序输出错误信息,例如参考号授权码输入错误、参考号授权码已经过期等,则下载数字证书失败,在步骤S311禁止下载数字证书。最后,在步骤S312,系统修改数据库证书状态标志位。
下面结合图4具体描述使用数字证书访问网上银行的过程。用户登录网上银行,准备进行数据交换,系统需要对用户的身份进行验证,只有合法用户才能进行数据交换。在步骤S401,用户点击网上银行链接后,浏览器发送一个连接请求给网上银行NetSafe安全服务器104,NetSafe服务器104将自己的数字证书,以及同数字证书相关的信息发送给用户浏览器。用户检查NetSafe服务器104送过来的证书是否是自己信赖的。如果是,就继续执行协议;如果不是,协议中断。NetSafe服务器104要求用户发送用户自己的数字证书。
接下来,用户浏览器提示用户选择数字证书,并输入PIN码。用户选择相应的IC卡数字证书,并输入PIN码。在步骤S402,CSP程序校验系统判断PIN码输入错误次数是否超限,如果超限在步骤S407终止登录。接下来,在步骤S403,CSP程序校验PIN码是否正确,CSP会验证PIN码输入是否正确,如果输入不正确,系统会认为用户不是被选择数字证书的真正持有者,拒绝使用IC卡数字证书,在步骤S404系统增加PIN码输入错误次数记录,协议中断,终止登录。输入正确,进行下一步。
然后,在步骤S405,验证数字证书是否有效,NetSafe服务器104收到用户浏览器发送的数字证书后,NetSafe服务器104验证用户的证书,如果没有通过验证,拒绝连接;如果通过验证,服务器获得用户的公钥。用户浏览器与NetSafe服务器104交换信息产生通话密钥,以对称密钥加密保护传输数据的安全性。最后,在步骤S406,用户通过身份验证,可以进行数据交换。
下面结合图5具体描述网上银行交易数字签名验证流程。
如图5所示,需要处理关键数据,用户成功登录网上银行后,进行处理关键数据的操作。在步骤S501使用数字证书签名,并选择做签名的数字证书。在步骤S502,用户选择做签名的数字证书后,CSP程序要求用户输入PIN码。然后在步骤S503,CSP程序校验系统判断PIN码输入错误次数是否超限,如果超限则流程转到步骤S510,终止登录。
然后在步骤S504,CSP验证PIN码输入是否正确,如果输入不正确,系统会认为用户不是被选择数字证书的真正持有者,拒绝使用IC卡数字证书,不允许做签名。如果输入正确,在步骤S506,开始处理数据,用户使用IC卡数字证书进行数字签名,首先用哈希函数从数字签名原文得到数字签名,然后采用公开密钥体系用发送方的私有密钥对数字签名进行加密,并把加密后的数字签名附加在要发送的原文后面;通过网络传输到网上银行系统(包括Web服务器、应用服务器、数据库),其中传输数据是通过SSL协议加密过的。
接下来,在步骤S507用户确认签名数据后,网上银行系统的应用服务器上的NetSign组件106开始验证数字签名,NetSign组件106用用户的公开密钥对数字签名进行解密,得到数字签名的明文;NetSign组件106用得到的明文和哈希函数重新计算数字签名,并与解密后的数字签名进行对比。如果两个数字签名是相同的,说明文件在传输过程中没有被破坏。在步骤S508,应用服务器107验证签名ID与用户登录ID是否一致,不一致,拒绝交易,如果一致,步骤S509应用服务器107对用户关键数据进行处理,并把结果写入数据库中。最后,签名成功,数据处理成功。
如图6为网上银行交易网上银行内部数字签名验证过程所设计的各个部分的框图。应用服务器107调用NetSign组件106提供的接口进行验数字签名操作,访问LDAP服务器110获得数字签名作废列表(CRL),以拒绝“黑名单用户”的交易请求;验证通过的交易请求将数字签名数据存储在数据库111后,把交易请求发往后台主机;而LDAP服务器110的CRL从CA服务器109获得。如果经过上述确认,网上银行用户的身份得以证实,网上交易继续进行。如果网上银行用户的身份没有得以证实,网上交易立即停止。
用户使用的IC卡数字证书到期后(为防止用户私钥泄漏,一般使用期限为一年,即每年更换数字证书),用户可通过Internet网络连接对公网上银行系统进行自助更新数字证书。
下面结合图7具体描述用户自助展期的流程。如图7所示,在步骤S701,有IC卡数字证书用户登录网上银行。在步骤S702,系统根据用户登录ID号从数据库中可以查出对应的数字证书的到期日(数字证书的有效期是一年,从申请之日算起),如果系统当前时间为数字证书的到期日前一个月内,系统会向用户返回提示页面,提醒用户对数字证书做延长有效期的操作。
在步骤S703,系统判断包括用户使用登录ID状态、有效期等的关键数据是否正确。如果正确,在步骤S704,系统连接CA服务器109调用更新数字证书接口程序,系统按如下方式连接CA服务器调用更新数字证书的接口程序,接口程序输入数字证书更新关键信息(证书ID、证书有效期等)。
然后在步骤S705,系统根据接口程序返回值判断更新是否成功,首先接口程序输出成功信息返回数字证书参考号授权码并存入数据库中,则更新数字证书成功进行下一步;若接口程序输出错误信息(有效期错误等),则更新数字证书失败,在步骤S713拒绝延长数字证书的有效期。
如果正确,在步骤S706,系统根据序列号从数据库中将数字证书的到期日延长一年,并准备将更新后的数字证书下载到IC卡中。在步骤S707,系统提示用户选择CSP,并输入数字证书的PIN码,用户选择CSP,并输入PIN码。
在步骤S708,CSP程序校验系统判断PIN码输入错误次数是否超限,如果超限终止登录。然后,在步骤S709,CSP会验证PIN码输入是否正确,如果输入不正确,系统会认为用户不是被选择数字证书的真正持有者,拒绝使用IC卡数字证书。如果输入正确,在步骤S711系统连接CA服务器调用下载数字证书接口程序,接口程序输入数字证书关键信息参考号授权码。
然后在步骤S712,系统根据接口程序返回值判断下载是否成功,接口程序输出错误信息(参考号授权码输入错误、参考号授权码已经过期等)则下载数字证书失败,禁止下载数字证书。最后,在步骤S714,接口程序输出成功信息并把数字证书写入IC卡中,则下载数字证书成功则已将数字证书的有效期延长。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变换或替换,都应涵盖在本发明的包含范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。