IC卡数字签名实现过程怎么实现

基于数字签名的圈存系统和方法
专利名称基于数字签名的圈存系统和方法
技术领域本发明涉及网上银行的安全通信领域,特别涉及一种基于数字签名的圈存系统和方法。
技术背景随着计算机网络的迅速发展,网上银行正日益深入人心,并以其便利性和通用性正逐渐 取代原有的货币支付模式。所谓"网上银行"是以互联网为媒介,为客户提供金融服务的电 子银行产品。网上银行是信息时代的产物,它的诞生,使原来必须到银行柜台办理业务的客 户,通过互联网便可直接进入银行,随意进行账务查询、转账、外汇买卖、银行转账、网上 购物、账户挂失等业务,客户真正做到足不出户办妥一切银行业务。网上银行服务系统的开 通,对银行和客户来说,都将大大提高工作效率,让资金创造最高效益,从而降低生产经营 成本。PKI (Public Key Infrastructure,公钥基础设施)是利用公钥理论和技术建立的提供安全 服务的基础设施。用户可利用PKI平台提供的服务进行安全的电子交易、通信和互联网上的 各种活动。PKI技术采用证书管理公钥,通过第三方的可信任机构一CA认证中心把用户的公 钥和用户的其他标识信息捆绑在一起,在互联网上验证用户的身份。目前,通用的办法是采 用建立在PKI基础之上的数字证书,通过把要传输的数字信息进行加密和签名,保证信息传 输的机密性、真实性、完整性和不可否认性,从而保证信息的安全传输。PKI是基于公钥算 法和技术,为网上通信提供安全服务的基础设施。是创建、颁发、管理、注销公钥证书所涉 及到的所有软件、硬件的集合体。其核心元素是数字证书,核心执行者是CA认证机构。当前作为网上银行电子钱包载体的存储媒介主要是各种智能卡(IC卡),如公交IC卡、 校园一"^通、PBOC (People's Bank Of China,中国人民银行)电子钱包等。通过智能卡刷卡 进行消费等交易活动,方便、省时、安全。然而随着用卡的领域和行业越来越多,人们手中 的智能卡也越来越多,这就随之产生了一个新的问题智能卡的圈存过程。所谓"圈存"是指 把个人账户资金充入IC卡的过程。在现有技术中,IC卡的持有者通常需要到指定地点才能进行充值,需要花费大量的精力 和时间,在一定程度上给使用电子钱包的用户带来了不便。且现有技术中,圈存流程是通过
银行内网完成的,目前尚无一种安全可靠的方法使圈存操作通过公网以远程的方式来完成。 发明内容为了解决现有技术中传统电子钱包的圈存方式给广大用户带来诸多不便的问题,以及尚 未有一种技术能够通过公共网络来实现远程圈存信息的交互,本发明提供了一种基于数字签 名的圈存系统和方法。一种基于数字签名的圈存系统,所述系统包括客户端和服务端,所述客户端包括对话 模块、第一验证模块、用户身份验证模块、第一业务执行模块、智能密钥模块和第一存储模 块,所述服务端包括第二存储模块、第二验证模块、第二业务执行模块和签名模块;所述对话模块,用于显示需要所述客户端用户确认的信息,及显示错误提示信息;所述第一验证模块,用于验证所述服务端是否合法;所述用户身份验证模块,用于收到用户输入的身份识别信息后,验证用户的身份识别信 息是否合法;所述第一业务执行模块,用于所述用户身份验证模块验证用户的身份识别信息合法后, 允许用户输入圈存操作信息,向所述服务端发送圈存操作请求数据包,并接收所述服务端返 回的圈存允许命令数据包,以及收到所述服务端返回的圈存允许命令数据包后,进行圈存操 作,并记录操作日志以及最终实现在交易终端的交易过程;所述智能密钥模块,用于签名/加密所述客户端向所述服务端发送的通信信息及圈存操作 请求数据包,及解密/验证所述服务端向所述客户端发送的通信信息及圈存允许命令数据包;所述第一存储模块,用于存储与所述服务端信息通信时,签名通信信息所用到的私钥, 以及所述服务端的证书信息及公钥;所述第二存储模块,用于存储用户账户信息、用户身份信息和用于与所述客户端进行信 息通信时,签名通信信息所用到的私钥,以及所述客户端的证书信息及公钥;所述第二验证模块,用于验证所述客户端是否有效,以及收到所述客户端发送的圈存操 作请求数据包后,根据所述第二存储模块中存储的所述用户账户信息和用户身份信息验证所 述圈存操作请求数据包是否合法;所述第二业务执行模块,用于在所述第二验证模块验证所述圈存操作请求数据包合法后, 从所述用户账户中扣除圈存金额,并向所述客户端返回圈存允许命令数据包,所述圈存允许 命令数据包中包括交易时间和圈存金额;所述签名模块,用于签名/加密所述服务端向所述客户端发送的通信信息及圈存允许命令
数据包,及解密/验证所述客户端向所述服务端发送的通信信息及圈存操作请求数据包。 所述服务端还包括取消圈存模块,用于收到所述客户端发送的错误操作信息后,取消本次圈存操作,将所 述第二业务执行模块从所述用户账户中扣除的圈存金额补回,并改写操作日志。 所述第一业务执行模块具体包括初始化操作命令生成单元,用于所述用户身份验证模块验证用户的身份识别信息合法后, 允许用户输入圈存操作信息,将所述圈存操作信息打包,生成圈存初始化操作命令;操作确认信息发送单元,用于所述初始化操作命令生成单元生成圈存初始化操作命令后, 根据所述圈存初始化操作命令向所述用户发送操作确认信息;判断单元,用于判断所述用户的确认信息是否无误;圈存请求发送单元,用于所述判断单元的判断结果为所述用户确认信息无误时,通过计 算机向所述服务端发送圈存操作请求数据包,所述圈存操作请求数据包中包括用户账户和圈 存金额;圈存操作执行单元,用于收到所述服务端返回的圈存允许命令数据包后,进行圈存操作, 并记录操作曰志。所述客户端还包括交易通知模块,用于完成圈存操作,并记录本次操作日志后,向所述服务端发送交易执 行信息数据包;相应地,所述服务端还包括圈存确认模块,用于接收到所述客户端发送的交易执行信息数据包后,判断所述交易执 行信息数据包中的信息是否正确,如果正确,通知所述用户圈存成功,否则,取消本次圈存 操作,将从所述用户账户中扣除的金额补回,并改写操作日志,通知所述用户信息错误。所述系统还包括智能卡设备,用于向所述客户端发送存款余额信息,验证所述用户是否合法,如果合法, 从所述客户端获取圈存金额。 所述客户端还包括提示模块,用于当所述智能卡设备验证所述用户为非法用户时,提示所述用户信息错误; 圈存金额发送模块,用于当所述智能卡设备验证所述用户为合法用户时,向所述智能卡 设备发送圈存操作金额。所述提示模块为具有语音提示功能的发声模块或具有显示功能的显示模块。
所述智能卡设备为接触式智能卡设备或非接触式智能卡设备。 所述智能卡设备为非接触式智能卡设备,包括第一天线模块,用于向所述客户端发送存款余额信息,以及感应并接收所述客户端发送 的圈存金额;第一射频模块,用于通过调制/解调方式将来自所述客户端发送的圈存金额信息由电磁波 信号转换为数字信息,然后发送给所述第一天线模块,以及将所述第一天线模块接收的存款 余额信息转换为电磁波信号,然后发送给所述客户端;电子货币存储模块,用于存储所述第一天线模块接收的圈存金额;相应地,所述客户端还包括第二天线模块,用于向所述向非接触式智能卡设备发送圈存金额信息,以及感应并接收 所述向非接触式智能卡设备发送的存款余额信息;第二射频模块,用于通过调制/解调方式将所述非接触式智能卡设备发送的存款余额信息 由电磁波信号转换为数字信息,然后发送给所述第二天线模块,以及将所述第二天线模块接 收的圈存金额信息转换为电磁波信号,然后发送给所述非接触式智能卡。所述通信信息包括用户身份识别信息和校验码。一种基于数字签名的圈存方法,所述方法包括步骤A:客户端与服务端建立连接;步骤B:所述客户端收到用户输入的圈存操作信息后,对所述圈存操作信息打包,生成 圈存初始化操作命令,向所述用户发送操作确认信息;步骤C:所述用户确认信息无误后,所述客户端将圈存操作请求数据包签名,并发送至 所述服务端;所述圈存操作请求数据包中包括所述用户的账户和圈存金额;步骤D:所述服务端接收并验证所述圈存操作请求数据包是否完整,如果完整,从所述 用户的账户中扣除所述圈存金额,并记录本次操作日志,签名圈存允许命令数据包,发送至 所述客户端,然后执行步骤E;否则,通过对话设施提示用户信息错误;步骤E:所述客户端接收并验证所述圈存允许命令数据包是否完整,如果完整,进行圈 存操作,并记录操作日志,签名交易执行信息数据包,发送至所述服务端;否则,对话设施 提示用户服务端不合法;步骤F:所述服务端验证所述交易执行信息数据包中的圈存交易信息是否完整,如果完 整,提示所述用户圈存成功;否则,取消本次圈存操作,将从所述用户的账户扣除的金额补 回,并改写操作日志,提示所述用户圈存失败。 所述步骤B还包括用户向所述客户端输入身份识别信息,所述客户端判断所述身份识别信息是否合法,如 果合法,允许用户输入圈存操作信息,否则,提示用户所述身份识别信息错误。所述步骤C中所述客户端将圈存操作请求数据包签名的步骤还包括所述客户端加密已 签名的圈存操作请求数据包;相应地,所述步骤D中所述服务端接收并验证所述圈存操作请求数据包是否完整的步骤 还包括所述服务端解密所述圈存操作请求数据包。所述步骤D中签名圈存允许命令数据包的步骤还包括所述服务端加密己签名的圈存允 许命令数据包;相应地,所述步骤E中所述客户端接收并验证所述圈存允许命令数据包是否完整的步骤 还包括所述客户端解密所述圈存允许命令数据包。所述步骤E中签名交易执行信息数据包的步骤还包括所述客户端加密已签名的交易执 行信息数据包;相应地,所述步骤F中所述服务端验证所述交易执行信息数据包中的圈存交易信息是否 完整的步骤还包括所述服务端解密所述交易执行信息数据包。 所述方法还包括步骤G:所述用户将智能卡设备靠近所述客户端的有效读卡区;步骤H:所述客户端读取所述智能卡设备中的剩余存款,通过所述客户端的提示模块输 出所述剩余存款,提示所述用户输入所述智能卡设备的用户识别信息;步骤I:所述用户输入所述用户识别信息后,判断所述用户识别信息是否正确,如果正确, 向所述智能卡设备发送圈存操作的金额,否则,提示所述用户错误信息。所述步骤G还包括所述智能卡设备和所述客户端进行相互认证,相互认证通过后,执行所述步骤H;否则, 提示用户错误信息。本发明提供的技术方案的有益效果是 一方面用户在使用电子钱包进行圈存业务时,不 必到指定银行的自动柜员机或银行柜面终端机上联机操作,给用户减少了圈存的繁琐,利用 本发明提供的技术方案实现了电子货币业务与PKI的网上银行的绑定,极大地增强了网络交 易的安全性和可靠性;另一方面,本发明安全便利地实现了通过公共网络来完成本地机与服 务端圈存信息的交互技术。最后,本发明提供的技术可以实现两种消费形式,即用户直接持 客户端实现消费和用户持智能卡实现消费,这在一定程度上增强了系统的灵活性和通用性,
为网上银行用户的自助充值和消费带来了极大的便利。
图1是本发明实施例1提供的一种基于数字签名的圈存系统的结构示意图;图2是本发明实施例1提供的另一种基于数字签名的圈存系统的结构示意图;图3是本发明实施例2提供的USB Key与网上银行服务器间圈存操作前的方法流程图;图4是本发明实施例2提供的USB Key与网上银行服务器间圈存操作的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进 一步地详细描述。本发明实施例提供的技术方案中的用户为电子钱包用户,服务端为网上银行服务器,客 户端为客户端计算机和连接在客户端计算机上的USB K或者客户端为客户端计算机和连 接在客户端计算机上的USB Key以及非接触式IC卡。本实施例中的USB Key是一种带有 USB接口的小型硬件装置,内带处理器和存储器,通过计算机的数据通讯接口与计算机连接。以下实施例中提供的USB Key具有电子钱包的功能,由网上银行统一发放到用户手中, 使电子货币的载体以USB Key的形式出现,本实施例中的网上银行服务器和USB Key已经 与PKI的网络实现了绑定,因此网上银行服务器以及发放到用户处的USB Key中已经存储了 合法的认证信息(例如数字证书、公钥、名称),用户通过USB Key内部对其合法身份的 认证,且圈存操作请求数据包和圈存允许命令数据包及服务端与客户端均通过验证,用户就 可对该USB Key进行在线充值操作,顺利完成圈存业务。实施例1:参见图1,本实施例提供了一种基于数字签名的圈存系统,该系统包括客户端100和 网上银行服务器200,客户端100包括第一验证模块1011、用户身份验证模块1012、第一业 务执行模块1013、智能密钥模块1014、第一存储模块1015和对话模块1021,网上银行服务 器200包括第二存储模块201 、第二验证模块202、第二业务执行模块203和签名模块204。优选地,第一验证模块1011、用户身份验证模块1012、第一业务执行模块1013、智能 密钥模块1014和第一存储模块1015集成于USB KeylOl:第一验证模块1011,用于验证网上银行服务器200是否合法;用户身份验证模块1012,用于收到用户输入的身份识别信息后,验证用户的身份识别信
息是否合法第一业务执行模块1013,用于用户身份验证模块1012验证用户的身份识别信息合法后, 允许用户输入圈存操作信息,通过计算机102向网上银行服务器200发送圈存操作请求数据 包,圈存操作请求数据包中包括用户账户和圈存金额,第一业务执行模块1013在收到网上银 行服务器200返回的圈存允许命令数据包后,进行圈存操作,并记录操作日志;智能密钥模块1014,用于签名加密计算机102向网上银行服务器200发送的通信信息及 圈存操作请求数据包,及解密/验证网上银行服务器200向USB KeylOl发送的通信信息及圈 存允许命令数据包;其中,通信信息包括用户身份识别信息和校验码;第一存储模块1015,用于存储计算机102与网上银行服务器200信息通信时,签名通信 信息所用到的私钥,以及网上银行服务器200的证书信息和其公钥。对话模块1021,集成于计算机102,用于显示需要USB KeylOl用户确认的信息,及显 示提示错误;实际应用中,对话模块1021还可以包含在USBKey101中,以液晶屏幕的形式 出现。第二存储模块201,用于存储用户账户信息、用户身份信息,以及USBKeylOl的证书信 息和其公钥;第二验证模块202,用于收到USBKeylOl发送的圈存操作请求数据包后,根据第二存储 模块201中存储的USB KeylOl的证书信息验证USB KeylOl是否有效;圈存操作请求数据 包中包括交易时间和圈存金额;第二业务执行模块203,用于第二验证模块202验证USBKey101有效后,从用户账户中 扣除圈存金额,并向USB KeylOl返回圈存允许命令数据包;圈存允许命令数据包中包括交 易日期、交易时间和圈存金额;签名模块204,用于签名/加密网上银行服务器200向USB KeylOl发送的通信信息及圈 存允许命令数据包,及解密/验证USBKey101向网上银行服务器200发送的通信信息及圈存 操作请求数据包。在第二存储模块201中存储有用户信息、数字证书、交易日志,用于实现电子钱包功能, 其内部实现了数字证书和网上银行服务器200用户账户的绑定;在网上银行服务器200中还 配置了与圈存应用相关的基本信息,基本信息包括网上银行电子交易的业务类别及相关标 准和规范。网上银行服务器200还包括取消圈存模块,用于收到USB KeylOl发送的错误操作信息后,取消本次圈存操作,将
第二业务执行模块203从用户账户中扣除的金额补回,并改写操作日志。 其中,第一业务执行模块1013具体包括初始化操作命令生成单元,用于用户身份验证模块1012验证用户的身份识别信息合法 后,允许用户输入圈存操作信息,将圈存操作信息打包,生成圈存初始化操作命令;操作确认信息发送单元,用于初始化操作命令生成单元生成圈存初始化操作命令后,根 据圈存初始化操作命令向用户发送操作确认信息;判断单元,用于判断用户的确认信息是否无误;圈存请求发送单元,用于判断单元的判断结果为用户确认信息无误时,通过计算机102 向网上银行服务器200发送圈存操作请求数据包,圈存操作请求数据包中包括用户账户和圈 存金额;圈存操作执行单元,用于收到服务端返回的圈存允许命令数据包后,进行圈存操作,并 记录操作日志。为了确保交易能够顺利完成,以及保证USB Keyl01和网上银行服务器200中的交易一 致,USBKeylOl还包括交易通知模块,用于完成圈存操作,并记录本次操作日志后,向网上银行服务器200发 送交易执行信息数据包;相应地,网上银行服务器200还包括圈存确认模块,用于接收到USB KeylOl发送的交易执行信息数据包后,判断交易执行 信息数据包中的信息是否正确,如果正确,通知用户圈存成功,否则,取消本次圈存操作, 将从用户账户中扣除的金额补回,并改写操作日志,通知用户信息错误,圈存失败。本实施例提供的USB KeylOl可以为带有电子钱包功能的USB Key、 USB Token或带有 USB接口的卡。USBKey与计算机通过串行接口、 USB接口、红外接口、蓝牙接口或射频接 口相连。参见图2,上述USB KeylOl通过网上银行服务器200进行圈存完成后,如果想将USB KeylOl中某个银行卡上的金额转到其他智能卡设备上,例如,转到公交IC卡上,则在图1 提供的系统基础上,基于数字签名的圈存系统还包括智能卡设备103,用于向USBKeylOl发送存款余额信息,验证用户是否合法,如果合法, 从USB KeylOl获取圈存金额。为了增强安全性,智能卡设备103和USB KeylOl间可以先进行相互认证,可以通过比 较预先相互存储的标识码来实现,具体过程为- USBKeylOl读取智能卡设备103中的标识码,并将该标识码与其内部存储的合法智能卡设备103的标识码进行比较,通过判断二者是否一致来验证智能卡设备103是否有效,在本实施例中,智能卡设备103的标识码为智能卡设备103的卡号;智能卡设备103接收USB Keyl01发送的标识码,并将该标识码与其内部存储的合法USBKeyl01的标识码进行比较,通过判断二者是否一致来验证USBKeylOl是否有效,在本实施例中,USBKeylOl的标识码为USBKeylOl的硬件序列号。为了使USBKeylOl与智能卡设备103间的圈存操作更完善,USBKeylOl还包括 提示模块1016,用于当智能卡设备103验证用户为非法用户时,提示用户信息错误; 圈存金额发送模块1017,用于当智能卡设备103验证用户为合法用户时,向智能卡设备103发送圈存操作金额。提示模块1016为具有语音提示功能的发声模块或具有显示功能的显示模块。 上述智能卡设备103可以为接触式智能卡设备或非接触式智能卡设备。 如果上述智能卡设备103为非接触式智能卡设备,该非接触式智能卡设备包括 第一天线模块,用于向USB KeylOl发送存款余额信息,以及感应并接收USB KeylOl发送的圈存金额;第一射频模块,用于通过调制/解调方式将来自USBKeylOl发送的圈存金额信息由电磁 波信号转换为数字信息,然后发送给第一天线模块,以及将第一天线模块发送的数字信息转 换为电磁波信号,然后发送给USB KeylOl;电子货币存储模块,用于存储第一天线模块接收的圈存金额;相应地,USBKeylOl还包括第二天线模块,用于向非接触式智能卡设备发送圈存金额信息,以及感应并接收向非接 触式智能卡设备发送的存款余额信息;第二射频模块,用于通过调制/解调方式将非接触式智能卡设备发送的存款余额信息由电 磁波信号转换为数字信息,然后发送给第二天线模块,以及将第二天线模块接收的圈存金额 信息转换为电磁波信号,发送给非接触式智能卡。图2中的智能卡设备103也可以设置在USB KeylOl的内部,即与USB KeylOl集成为 一体,智能卡设备103和USB Keyl01也可以为独立的物理设备,如图2所示。实施例2:本实施例提供了一种基于数字签名的圈存方法,USBKey和计算机共同组成客户端,应 用图1提供的基于数字签名的圈存系统,分别参见图3和图4,其中,图3为圈存操作前过
程,图4为USB Key与网上银行服务器间圈存执行过程,其中USB Key预置了私钥、网上 银行服务器及其公钥,网上银行服务器中预置了私钥、USBKey证书信息及其公钥,优选地, USBKey集成了用户验证、服务端验证、业务执行、智能处理和存储等功能,该方法具体包 括以下步骤步骤301:客户端计算机与网上银行服务器建立连接;步骤302:用户通过USBKey开始圈存操作,USB Key通过计算机提示用户输入身份识 别信息,用户通过计算机向USB Key中输入身份识别信息;在本实施例中,用户身份信息包括用户自定义密码、用户生物特征信息,如用户指纹 信息、用户虹膜图像信息等等;步骤303: USB Key内部验证用户输入的身份识别信息是否为合法信息,若合法,执行 步骤304;否则,执行步骤305;步骤304:允许用户访问USB Key内部的操作系统,用户向USB Key中输入圈存操作信 息,执行步骤306;圈存操作信息包括交易金额;步骤305:提示用户身份识别信息错误,并结束;步骤306: USBKey收到用户输入的圈存操作信息,将圈存操作信息打包,向USB Key 内部的控制单元发送圈存初始化操作命令;步骤307: USBKey内部的控制单元收到圈存初始化操作命令后,通过输出装置向用户 发送操作确认信息;步骤308:用户是否确认本次操作,若用户确认USBKey发送的操作确认信息无误,则 执行步骤309,否则执行步骤304;本步骤中的USBKey需要等待用户确认操作信息,等待的时间可以根据需要设定,如果 在设定的等待时间内,用户没有进行确认,则认为操作确认信息不正确,执行步骤304,等 待用户重新操作;步骤309: USB Key用其私钥签名圈存操作请求数据包,并通过计算机向网上银行服务 器发送圈存操作请求数据包。在本实施中,USBKey向网上银行服务器发送的圈存操作请求数据包中的信息包括用 户身份信息、电子钱包余额、交易帐户的卡号、圈存金额、联机交易序号、密钥版本号、算 法标识、伪随机数。实际应用中,USBKey还可以加密私钥签名的圈存操作请求数据包后,再通过计算机向
网上银行服务器发送圈存操作请求数据包。参见图4, USB Key与网上银行服务器间的圈存操作如下步骤309: USB Key用其私钥签名圈存操作请求数据包,并通过计算机向网上银行服务 器发送圈存操作请求数据包;实际应用中,USBKey还可以对用私钥签名圈存操作请求数据包进行加密,再通过计算 机向网上银行服务器发送圈存操作请求数据包;步骤310:网上银行服务器收到客户端发送的签名圈存操作请求数据包后,用对应公钥验证该圈存操作请求数据包是否完整,如果完整,则执行步骤311,否则执行步骤312;实际应用中,网上银行服务器验证客户端发送签名圈存操作请求数据包是否完整前还可以包括解密签名圈存操作请求数据包的过程;实际应用中,如果验证成功,则网上银行服务器和USBKey均合法,网上银行服务器还 可以根据其存储的USB Key证书信息,检验该通过认证的USB Key的证书信息是否过期、 被篡改等等;步骤311:网上银行服务器根据圈存交易金额信息从用户的账户中扣除相应的圈存金额, 通过客户端计算机向USBKey发送用其私钥签名的圈存允许命令数据包,并记录本次操作日 志,执行步骤313;在本实施例中,圈存允许命令数据包中的信息包括交易日期(主机)、交易时间(主机) 和圈存金额;实际应用中,网上银行服务器通过客户端计算机向USBKey发送用其私钥签名的圈存允 许命令数据包前还可以包括加密签名圈存允许命令数据包的过程;步骤312:网上银行服务器通过客户端计算机向用户提示信息错误,并结束;步骤313: USB Key收到网上银行服务器返回的签名圈存允许命令数据包后,验证圈存 允许命令数据包是否完整,如果完整,则执行步骤314,否则执行步骤315;实际应用中,USB Key验证网上银行服务器发送的签名圈存操作请求数据包前还可以包 括解密签名圈存操作请求数据包的过程;实际应用中,如果完整,网上银行服务器和USBKey均合法,USB Key还可以根据其存 储的网上银行服务器证书信息,检验该通过认证的网上银行服务器的证书信息是否过期、被 篡改等等;步骤314: USB Key内部进行圈存操作,记录本次操作日志,并向网上银行服务器发送 签名后的交易执行信息数据包,执行步骤316;
实际应用中,USBKey向网上银行服务器发送签名后的交易执行信息数据包前,还可以 包括加密签名后的交易执行信息数据包的过程;步骤315: USB Key通过客户端计算机向网上银行服务器发送错误操作信息,网上银行 服务器取消本次圈存操作,将已经从用户账户中扣除的款项补回,改写操作日志,并结束;步骤316:网上银行服务器验证USB Key发送的交易执行信息数据包中的圈存交易信息 是否完整,如果完整,则执行步骤317,否则执行步骤318;实际应用中,网上银行服务器验证的签名USBKey发送的交易执行信息数据包中的圈存 交易信息是否完成前,还可以包括解密签名的交易执行信息数据包的过程;步骤317:网上银行服务器提示用户圈存成功;步骤318:网上银行服务器取消本次圈存操作,将已经从用户账户中扣除的金额补回,改写操作日志,并通过客户端计算机向用户提示圈存失败。当用户需要将USBKey内存储的银行卡上的款项转到智能卡设备上时,还需要进行以下 操作,以下操作以将USB Key内存储的银行卡上的款项转到非接触式IC卡上为例进行说明1) 用户将非接触式IC卡靠近USBKey有效读卡区,两者进行有效性认证,若均通过有 效性认证,则USBKey将读取非接触式IC卡中的剩余存款,并通过计算机或USB Key的显 示模块输出剩余存款,并提示用户输入非接触式IC卡的用户识别信息;否则,USBKey通过 计算机或其上的显示模块向用户提示出错信息。在本实施例中,非接触式IC卡与USB Key之间的有效性认证是通过比较标识码来实现 的,具体过程为-USB Key读取非接触式IC卡中的标识码,并将该标识码与其内部存储的合法IC卡的标 识码进行比较,通过判断二者是否一致来验证非接触式IC卡是否有效;非接触式IC卡接收USB Key发送的标识码,并将该标识码与其内部存储的合法USB Key 的标识码进行比较,通过判断二者是否一致来验证USB Key是否有效;如果USB Key内部验证从非接触式IC卡中读取的标识码错误,或非接触式IC卡内部验 证USB Key发送的标识码错误,或USB Key内部验证从非接触式IC卡中读取的标识码以及 非接触式IC卡内部验证USB Key发送的标识码均错误,则都属于验证有效性失败。在本实施例中,USB Key的标识码为USB Key的硬件序列号;非接触式IC卡的标识码 为非接触式IC卡的卡号。2) 用户输入非接触式IC卡的用户识别信息,非接触式IC卡内部判断用户输入的信息是 否正确,若正确,USBKey向非接触式IC卡发送圈存操作金额,至此,用户完成圈存的全过
程,用户可利用该非接触式IC卡实现刷卡消费过程;否则,USBKey通过发声模块向用户提示错误信息。在本实施例中,用户识别信息为用户自定义的密码。本发明实施例提供的技术方案一方面使得用户在使用电子钱包进行圈存业务时,不必到 指定银行的自动柜员机或银行柜面终端机上联机操作,给用户减少了不必要的繁琐,利用本 发明提供的技术方案实现了电子货币业务与PKI的网上银行的绑定,极大地增强了网络交易 的安全性和可靠性;另一方面,本发明安全便利地实现了通过公共网络来完成本地机与服务 端圈存信息的交互技术。最后,本发明提供的技术可以实现两种消费形式,即用户直接持客 户端实现消费和用户持智能卡实现消费,这在一定程度上增强了系统的灵活性和通用性,为 网上银行用户的自助充值和消费带来了极大的便利。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之 内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于数字签名的圈存系统,其特征在于,所述系统包括客户端和服务端,所述客户端包括对话模块、第一验证模块、用户身份验证模块、第一业务执行模块、智能密钥模块和第一存储模块,所述服务端包括第二存储模块、第二验证模块、第二业务执行模块和签名模块;所述对话模块,用于显示需要所述客户端用户确认的信息,及显示错误提示信息;所述第一验证模块,用于验证所述服务端是否合法;所述用户身份验证模块,用于收到用户输入的身份识别信息后,验证用户的身份识别信息是否合法;所述第一业务执行模块,用于所述用户身份验证模块验证用户的身份识别信息合法后,允许用户输入圈存操作信息,向所述服务端发送圈存操作请求数据包,并接收所述服务端返回的圈存允许命令数据包,以及收到所述服务端返回的圈存允许命令数据包后,进行圈存操作,并记录操作日志以及最终实现在交易终端的交易过程;所述智能密钥模块,用于签名/加密所述客户端向所述服务端发送的通信信息及圈存操作请求数据包,及解密/验证所述服务端向所述客户端发送的通信信息及圈存允许命令数据包;所述第一存储模块,用于存储与所述服务端信息通信时,签名通信信息所用到的私钥,以及所述服务端的证书信息及公钥;所述第二存储模块,用于存储用户账户信息、用户身份信息和用于与所述客户端进行信息通信时,签名通信信息所用到的私钥,以及所述客户端的证书信息及公钥;所述第二验证模块,用于验证所述客户端是否有效,以及收到所述客户端发送的圈存操作请求数据包后,根据所述第二存储模块中存储的所述用户账户信息和用户身份信息验证所述圈存操作请求数据包是否合法;所述第二业务执行模块,用于在所述第二验证模块验证所述圈存操作请求数据包合法后,从所述用户账户中扣除圈存金额,并向所述客户端返回圈存允许命令数据包,所述圈存允许命令数据包中包括交易时间和圈存金额;所述签名模块,用于签名/加密所述服务端向所述客户端发送的通信信息及圈存允许命令数据包,及解密/验证所述客户端向所述服务端发送的通信信息及圈存操作请求数据包。
2. 如权利要求1所述的基于数字签名的圈存系统,其特征在于,所述服务端还包括- 取消圈存模块,用于收到所述客户端发送的错误操作信息后,取消本次圈存操作,将所 述第二业务执行模块从所述用户账户中扣除的圈存金额补回,并改写操作曰志。
3. 如权利要求l所述的基于数字签名的圈存系统,其特征在于,所述第一业务执行模块 具体包括初始化操作命令生成单元,用于所述用户身份验证模块验证用户的身份识别信息合法后, 允许用户输入圈存操作信息,将所述圈存操作信息打包,生成圈存初始化操作命令;操作确认信息发送单元,用于所述初始化操作命令生成单元生成圈存初始化操作命令后, 根据所述圈存初始化操作命令向所述用户发送操作确认信息;判断单元,用于判断所述用户的确认信息是否无误;圈存请求发送单元,用于所述判断单元的判断结果为所述用户确认信息无误时,通过计 算机向所述服务端发送圈存操作请求数据包,所述圈存操作请求数据包中包括用户账户和圈 存金额;圈存操作执行单元,用于收到所述服务端返回的圈存允许命令数据包后,进行圈存操作, 并记录操作日志。
4. 如权利要求l所述的基于数字签名的圈存系统,其特征在于,所述客户端还包括 交易通知模块,用于完成圈存操作,并记录本次操作日志后,向所述服务端发送交易执行信息数据包;相应地,所述服务端还包括圈存确认模块,用于接收到所述客户端发送的交易执行信息数据包后,判断所述交易执 行信息数据包中的信息是否正确,如果正确,通知所述用户圈存成功,否则,取消本次圈存 操作,将从所述用户账户中扣除的金额补回,并改写操作日志,通知所述用户信息错误。
5. 如权利要求l所述的基于数字签名的圈存系统,其特征在于,所述系统还包括 智能卡设备,用于向所述客户端发送存款余额信息,验证所述用户是否合法,如果合法,从所述客户端获取圈存金额。
6. 如权利要求5所述的基于数字签名的圈存系统,其特征在于,所述客户端还包括 提示模块,用于当所述智能卡设备验证所述用户为非法用户时,提示所述用户信息错误 圈存金额发送模块,用于当所述智能卡设备验证所述用户为合法用户时,向所述智能卡 设备发送圈存操作金额。
7. 如权利要求6所述的基于数字签名的圈存系统,其特征在于,所述提示模块为具有语 音提示功能的发声模块或具有显示功能的显示模块。
8. 如权利要求5所述的基于数字签名的圈存系统,其特征在于,所述智能卡设备为接触 式智能卡设备或非接触式智能卡设备。
9. 如权利要求8所述的基于数字签名的圈存系统,其特征在于,所述智能卡设备为非接 触式智能卡设备,包括第一天线模块,用于向所述客户端发送存款余额信息,以及感应并接收所述客户端发送 的圈存金额;第一射频模块,用于通过调制/解调方式将来自所述客户端发送的圈存金额信息由电磁波 信号转换为数字信息,然后发送给所述第一天线模块,以及将所述第一天线模块接收的存款 余额信息转换为电磁波信号,然后发送给所述客户端;电子货币存储模块,用于存储所述第一天线模块接收的圈存金额;相应地,所述客户端还包括第二天线模块,用于向所述向非接触式智能卡设备发送圈存金额信息,以及感应并接收 所述向非接触式智能卡设备发送的存款余额信息;第二射频模块,用于通过调制/解调方式将所述非接触式智能卡设备发送的存款余额信息 由电磁波信号转换为数字信息,然后发送给所述第二天线模块,以及将所述第二天线模块接 收的圈存金额信息转换为电磁波信号,然后发送给所述非接触式智能卡。
10. 如权利要求1所述的基于数字签名的圈存系统,其特征在于,所述通信信息包括用 户身份识别信息和校验码。
11. 一种基于数字签名的圈存方法,其特征在于,所述方法包括 步骤A:客户端与服务端建立连接;步骤B:所述客户端收到用户输入的圈存操作信息后,对所述圈存操作信息打包,生成 圈存初始化操作命令,向所述用户发送操作确认信息;步骤C:所述用户确认信息无误后,所述客户端将圈存操作请求数据包签名,并发送至 所述服务端;所述圈存操作请求数据包中包括所述用户的账户和圈存金额;步骤D:所述服务端接收并验证所述圈存操作请求数据包是否完整,如果完整,从所述 用户的账户中扣除所述圈存金额,并记录本次操作日志,签名圈存允许命令数据包,发送至 所述客户端,然后执行步骤E;否则,通过对话设施提示用户信息错误;步骤E:所述客户端接收并验证所述圈存允许命令数据包是否完整,如果完整,进行圈 存操作,并记录操作日志,签名交易执行信息数据包,发送至所述服务端;否则,对话设施 提示用户服务端不合法;步骤F:所述服务端验证所述交易执行信息数据包中的圈存交易信息是否完整,如果完 整,提示所述用户圈存成功;否则,取消本次圈存操作,将从所述用户的账户扣除的金额补 回,并改写操作日志,提示所述用户圈存失败。
12. 如权利要求ll所述的基于数字签名的圈存方法,其特征在于,所述步骤B还包括 用户向所述客户端输入身份识别信息,所述客户端判断所述身份识别信息是否合法,如果合法,允许用户输入圈存操作信息,否则,提示用户所述身份识别信息错误。
13. 如权利要求ll所述的基于数字签名的圈存方法,其特征在于,所述步骤C中所述客 户端将圈存操作请求数据包签名的步骤还包括所述客户端加密已签名的圈存操作请求数据 包;相应地,所述步骤D中所述服务端接收并验证所述圈存操作请求数据包是否完整的步骤 还包括所述服务端解密所述圈存操作请求数据包。
14. 如权利要求11所述的基于数字签名的圈存方法,其特征在于,所述步骤D中签名 圈存允许命令数据包的步骤还包括所述服务端加密已签名的圈存允许命令数据包;相应地,所述步骤E中所述客户端接收并验证所述圈存允许命令数据包是否完整的步骤 还包括所述客户端解密所述圈存允许命令数据包。
15. 如权利要求ll所述的基于数字签名的圈存方法,其特征在于,所述步骤E中签名交 易执行信息数据包的步骤还包括所述客户端加密已签名的交易执行信息数据包;相应地,所述步骤F中所述服务端验证所述交易执行信息数据包中的圈存交易信息是否 完整的步骤还包括所述服务端解密所述交易执行信息数据包。
16. 如权利要求ll所述的基于数字签名的圈存方法,其特征在于,所述方法还包括 步骤G:所述用户将智能卡设备靠近所述客户端的有效读卡区;步骤H:所述客户端读取所述智能卡设备中的剩余存款,通过所述客户端的提示模块输 出所述剩余存款,提示所述用户输入所述智能卡设备的用户识别信息;步骤I:所述用户输入所述用户识别信息后,判断所述用户识别信息是否正确,如果正确, 向所述智能卡设备发送圈存操作的金额,否则,提示所述用户错误信息。
17. 如权利要求16所述的基于数字签名的圈存方法,其特征在于,所述步骤G还包括 所述智能卡设备和所述客户端进行相互认证,相互认证通过后,执行所述步骤H;否则,提示用户错误信息。
本发明公开了一种基于数字签名的圈存系统和方法,属于网上银行的安全通信领域。所述系统包括客户端和服务端。所述方法包括客户端与服务端建立连接;客户端将圈存操作请求数据包签名,并发送至服务端;服务端验证圈存操作请求数据包是否完整,如果完整,从用户账户中扣除圈存金额,并记录本次操作日志,签名圈存允许命令数据包,发送至客户端;客户端验证圈存允许命令数据包是否完整,如果完整,进行圈存操作,并记录操作日志,签名交易执行信息数据包,发送至服务端;服务端判断交易执行信息数据包中的圈存交易信息是否完整,如果完整,提示用户圈存成功。本发明增强了网络交易的安全性和可靠性。
文档编号G06Q40/00GKSQ
公开日日 申请日期日 优先权日日
发明者于华章, 舟 陆 申请人:北京飞天诚信科技有限公司

我要回帖

更多关于 c语言实现数字签名 的文章

 

随机推荐