一种移动支付安全保护的实现方法及其系统与流程

文档序号:15818762发布日期:2018-11-02 22:54阅读:243来源:国知局
一种移动支付安全保护的实现方法及其系统与流程

本发明涉及移动支付的安全加密技术领域,具体来说,涉及一种移动支付安全保护的实现方法及其系统,尤其是对客户支付过程中签名私钥的保护。

背景技术

随着智能手机和移动互联网技术的飞速发展,人们越来越多地使用各种移动终端从事电子商务活动。作为移动电子商务主要支付手段的移动支付,也得到了迅猛发展。移动支付也称为手机支付,就是允许用户使用其移动终端对所消费的商品或服务进行账务支付的一种服务方式。移动支付主要分为近场支付和远程支付两种,所谓近场支付是指用手机刷卡的方式坐车、买东西等,十分便利。远程支付是指通过发送支付指令进行的支付方式,待验证用户身份后对用户的银行账户扣款,以完成支付。例如,支付宝、易付宝、微信支付等都属于远程支付。

尽管移动支付方式给我们的日常消费带来了极大的便利,但同时也存在着安全隐患。一旦设备丢失,不法分子可以通过反编译等先进的破解技术窃取用户的密码信息,尤其是没有较好防护措施的支付签名私钥,这将可能给用户带来大量且广泛的财产损失。

当前移动终端远程支付的私钥存储,第一种方法是其依赖于本地用户口令存储在移动终端。第一种方法需要单独设置一条口令来保护私钥,用户体验很差。第二种方法是将用户的私钥一部分存储在移动终端,另一部分存储在服务端。第二种方法在理论上增加了秘钥的安全性,但在支付环节涉及到本地和服务端两个解密验证操作,不仅增加了移动端的资源消耗,而且需要联网才能支付。第三种方法是将用户私钥存储在服务端。第三种方法依赖于服务端的安全,虽然避免了本地存储的不安全性,但同样造成了用户支付必须联网,无法进行离线支付的弊端。同时,签名私钥独立存储在服务端,用户一旦有支付误操作或者口令被不法分子冒用,造成服务端有不法的嫌疑,背离采用私钥的初衷。



技术实现要素:

针对目前对移动支付便捷性和安全性的要求,本发明实施例提出一种移动支付安全保护的实现方法及其系统,以提高移动支付的安全性能和用户体验。

为解决上述技术问题,本发明实施例采用以下技术方案:

第一方面,本发明实施例提供一种移动支付安全保护的实现方法,包括:

接收并发送用户输入的待验证工作密码至服务器中进行验证;

接收服务器的验证结果;如待验证工作密码通过验证,则利用密钥导出函数和所述待验证工作密码,计算第一中间密码,通过所述第一中间密码解密存储在客户端中的第一加密私钥,得到私钥;进行含有所述私钥的移动支付。

结合第一方面,作为第一种可实现的方案,所述的方法还包括初始化操作:

根据所接收的工作密码和私钥,计算第一加密私钥;根据所述工作密码和所述私钥,生成备用密码和随机数;

根据所述备用密码和所述私钥,计算第二加密私钥;根据所述随机数,计算初始校验密码;

将所述第一加密私钥和所述第二加密私钥存储到客户端中;将所述备用密码、所述随机数和所述初始校验密码存储到服务器中。

结合第一方面的第一种可实现的方案,作为第二种可实现的方案,所述计算第一加密私钥,具体包括:

利用密钥导出函数和所述工作密码,计算第一中间密码;利用对称加密函数、所述第一中间密码和所述私钥,计算第一加密私钥;

所述计算第二加密私钥,具体包括:

利用密钥导出函数和所述备用密码,计算第二中间密码;利用对称加密函数、所述第二中间密码和所述私钥,计算第二加密私钥;

所述计算初始校验密码,具体包括:

利用哈希消息认证码函数、所述随机数和所述第一中间密码,计算初始校验密码。

结合第一方面的第一种可实现的方案,作为第三种可实现的方案,所述服务器进行验证的过程为:

利用哈希消息认证码函数、所述随机数和所述待验证工作密码,计算校验密码;比较所述校验密码和所述初始校验密码,如果相等,则验证通过;如果不同,则验证不通过。

结合第一方面的第一种可实现的方案,作为第四种可实现的方案,所述的方法,还包括:

核实用户身份后,从服务器中调取所述备用密码;

根据所述备用密码和密钥导出函数,计算第二中间密码;

通过所述第二中间密码解密第二加密私钥,得到私钥;

根据所述私钥和新的工作密码,重新进行初始化操作,生成新的第一加密私钥、新的第二加密私钥、新的备用密码、新的随机数和新的初始校验密码;并将所述新的第一加密私钥和新的第二加密私钥存储到客户端;将所述新的备用密码、新的随机数和新的初始校验密码存储到服务器中。

第二方面,本实施例还提供一种移动支付安全保护的实现系统,包括:

发送模块:用于接收并发送用户输入的待验证工作密码至服务器中进行验证;

解密模块:用于接收服务器的验证结果,如待验证工作密码通过验证,则利用密钥导出函数和所述待验证工作密码,计算第一中间密码,通过所述第一中间密码解密存储在客户端中的第一加密私钥,得到私钥;

支付模块:用于进行含有所述私钥的移动支付。

结合第二方面,作为第一种可实现的方案,所述的系统还包括初始化操作模块,所述初始化操作模块包括:

第一计算子模块:用于根据所接收的工作密码和私钥,计算第一加密私钥;

生成子模块:用于根据所述工作密码和所述私钥,生成备用密码和随机数;

第二计算子模块:用于根据所述备用密码和所述私钥,计算第二加密私钥;

第三计算子模块:用于根据所述随机数,计算初始校验密码;

第一存储子模块:用于将所述第一加密私钥和所述第二加密私钥存储到客户端中;

第二存储子模块:用于将所述备用密码、所述随机数和所述初始校验密码存储到服务器中。

结合第二方面的第一种可实现的方案,作为第二种可实现的方案,所述第一计算子模块,具体用于利用密钥导出函数和所述工作密码,计算第一中间密码;利用对称加密函数、所述第一中间密码和所述私钥,计算第一加密私钥;

所述第二计算子模块,具体用于利用密钥导出函数和所述备用密码,计算第二中间密码;利用对称加密函数、所述第二中间密码和所述私钥,计算第二加密私钥;

所述第三计算子模块,具体用于利用哈希消息认证码函数、所述随机数和所述第一中间密码,计算初始校验密码。

结合第二方面的第一种可实现的方案,作为第三种可实现的方案,所述的系统,还包括验证模块:用于利用哈希消息认证码函数、所述随机数和所述待验证工作密码,计算校验密码;比较所述校验密码和所述初始校验密码,如果相等,则验证通过;如果不同,则验证不通过。

结合第二方面的第一种可实现的方案,作为第四种可实现的方案,所述的系统,还包括密码重置模块,用于重置工作密码;所述密码重置模块包括:

调取子模块:用于核实用户身份后,从服务器中调取所述备用密码;

计算子模块:用于根据所述备用密码和密钥导出函数,计算第二中间密码;

解密子模块:用于通过所述第二中间密码解密第二加密私钥,得到私钥;

初始化操作子模块:用于根据所述私钥和新的工作密码,重新进行初始化操作,生成新的第一加密私钥、新的第二加密私钥、新的备用密码、新的随机数和新的初始校验密码;并将所述新的第一加密私钥和新的第二加密私钥存储到客户端;将所述新的备用密码、新的随机数和新的初始校验密码存储到服务器中。

本发明实施例的移动支付安全保护的实现方法及其系统,可以在保证支付便捷性的基础上,采用本地私钥“加盐”加密,满足移动支付的安全需求。本发明实施例的实现方法,接收并发送用户输入的待验证工作密码至服务器中进行验证;如待验证工作密码通过验证,则利用密钥导出函数和所述待验证工作密码,计算第一中间密码,通过所述第一中间密码解密存储在客户端中的第一加密私钥,得到私钥。第一加密私钥存储在客户端中。利用第一中间密码解密第一加密私钥得到私钥。该解密过程也在客户端中进行。这样提高了移动支付的安全性能。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本发明实施例方法的实现构架图;

图2是本发明实施例方法的流程框图;

图3是本发明实施例方法中工作密码没有通过验证时的信息流图;

图4是本发明实施例方法中进行初始化操作的流程框图;

图5是本发明实施例方法中进行初始化操作的信息流图;

图6是本发明实施例方法中正常进行业务操作时的信息流图;

图7是本发明实施例方法中工作密码通过验证时的信息流图;

图8是本发明实施例系统的结构框图。

具体实施方式

下面结合附图,对本发明实施例的技术方案进行详细的说明。

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

本发明实施例的方法可以在如图1所示的系统中实现。该系统包括客户端和服务器。客户端为手机等可移动的智能装置。用户向客户端输入待验证的工作密码。服务器对待验证的工作密码进行验证,并将验证结果发送给客户端。如待验证工作密码通过验证,则客户端对存储在客户端中的第一加密私钥进行解密,得到私钥。服务器可以为单台机器,也可以多台机器形成集群。

本发明实施例的一种移动支付安全保护的实现方法,如图2所示,包括:

s10接收并发送用户输入的待验证工作密码至服务器中进行验证;

s20接收服务器的验证结果;如待验证工作密码通过验证,则利用密钥导出函数kdf和所述待验证工作密码,计算第一中间密码k1,k1=kdf(p1),通过所述第一中间密码k1解密存储在客户端中的第一加密私钥ek1,得到私钥pvk;进行含有所述私钥pvk的移动支付。

上述步骤中,第一加密私钥ek1存储在客户端中,对第一加密私钥ek1进行解密的过程也在客户端中进行。客户端通常由用户掌控。因此,将第一加密私钥ek1存储在客户端中,利于提高移动支付的安全性能。对待验证工作密码进行验证的工作可以在服务器中进行。服务器将验证结果反馈给客户端。图3所示,当待验证工作密码没有通过验证时,向客户端反馈错误信息。

作为优选例,如图4所示,所述方法,还包括初始化操作:

根据所接收的工作密码p1和私钥pvk,计算第一加密私钥ek1;根据所述工作密码p1和所述私钥pvk,生成备用密码p2和随机数sk;

根据所述备用密码p2和所述私钥pvk,计算第二加密私钥ek2;根据所述随机数sk,计算初始校验密码vk;

将所述第一加密私钥ek1和所述第二加密私钥ek2存储到客户端中;将所述备用密码p2、所述随机数sk和所述初始校验密码vk存储到服务器中。

通过上述初始化操作,在客户端中设置了第一加密私钥ek1和第二加密私钥ek2。第一加密私钥ek1和第二加密私钥ek2对应的私钥是相同的。如图5所示,将用户工作密码和备用密码首先通过密码导出函数得到两个加密密钥,同时用一个随机数对工作密码进行散列等变化,得到工作密码的初始校验码,再将两个加密密钥对待保护的私钥分别进行加密,并把两个加密后的私钥存储在客户端,把备用密码、随机数和初始校验码存储在服务系统上,完成初始化工作。

上述实施例的方法中,在客户端中,可以用工作密码对私钥进行加密存储,保证私钥的安全。所述工作密码可以是支付系统的支付密码。工作密码既不存储在客户端中,也不存储在服务器中。工作密码由用户记忆。不知晓工作密码,就无法解密私钥,也就不能进行正常签名等业务操作。用工作密码和备用密码对私钥进行加密后,生成的第一加密私钥和第二加密私钥存储到客户端中,没有存储在服务端中,从而保证了用户拥有私钥的独立性。服务端中不存储用户的签名私钥,确保采用公钥体制的“非否认性”和“抗抵赖性”,确保用户利用私钥签名的法律和合规范效力。

作为优选例,所述计算第一加密私钥,具体包括:

利用密钥导出函数kdf和所述工作密码p1,计算第一中间密码k1,k1=kdf(p1);利用对称加密函数f、所述第一中间密码k1和所述私钥pvk,计算第一加密私钥ek1,ek1=f(k1,pvk)。

作为优选例,所述计算第二加密私钥,具体包括:

利用密钥导出函数kdf和所述备用密码p2,计算第二中间密码k2,k2=kdf(p2);利用对称加密函数f、所述第二中间密码k2和所述私钥pvk,计算第二加密私钥ek2,ek2=f(k2,pvk)。

作为优选例,所述计算初始校验密码,具体包括:

利用哈希消息认证码函数hmac、所述随机数sk和所述第一中间密码k1,计算初始校验密码vk,vk=hmac(sk,k1)。

上述初始化操作过程实现了加密。同时,将加密后的第一加密私钥和所述第二加密私钥存储到客户端中,而不是服务器中,增加了安全性能。

上述实施例中,步骤s10中,服务器验证待验证工作密码的过程,如图6所示,具体包括:将接收的待验证工作密码px发送至服务器中,利用哈希消息认证码函数hmac、所述随机数sk和所述待验证工作密码px,计算校验密码vkx,vkx=hmac(sk,px);比较所述校验密码vkx和所述初始校验密码vk,如果相等,则验证通过;如果不同,则验证不通过。当验证不通过时,服务器向客户端反馈错误提示。验证工作是在服务器中进行的。服务器中存储有备用密码、随机数和初始校验密码。用户通过移动客户端输入待验证工作密码后,移动终端将待验证工作密码发送到服务器中进行验证。

如果待验证工作密码通过验证,则在客户端进行支付行为。更具体的说,客户端利用密钥导出函数和所述待验证工作密码,计算第一中间密码;通过第一中间密码解密存储在客户端的第一加密私钥,得到私钥;最后进行含有所述私钥的移动支付。

为提高安全性能,用户使用移动支付的过程中,常常需要更改工作密码。为此,本实施例的实现方法,如图7所示,还包括:

核实用户身份后,从服务器中调取所述备用密码p2至客户端中;

根据所述备用密码p2和密钥导出函数kdf,计算第二中间密码k2,k2=kdf(p2);

通过所述第二中间密码k2解密第二加密私钥ek2,得到私钥pvk;

根据所述私钥pvk和新的工作密码,重新进行初始化,生成新的第一加密私钥、新的第二加密私钥、新的备用密码、新的随机数和新的初始校验密码;并将所述新的第一加密私钥和新的第二加密私钥存储到客户端;将所述新的备用密码、新的随机数和新的初始校验密码存储到服务器中。

当工作密码变更时,第一加密私钥、第二加密私钥、备用密码、随机数和初始校验密码都需要基于工作密码进行变更。在变更之前,首先需要核实用户身份。核实用户身份的方法可利用sms短信验证用户身份,或者视频在线方式验证用户身份等。这属于现有技术。在核实无误后,从服务器中调取所述备用密码至客户端中。客户端根据备用密码和密钥导出函数,计算第二中间密码;通过第二中间密码解密已存储在客户端上的第二加密私钥,得到私钥。无论工作密码更改与否,私钥都是保持不变的。在客户端中,根据私钥和新的工作密码,重新进行初始化操作,生成新的第一加密私钥、新的第二加密私钥、新的备用密码、新的随机数和新的初始校验密码,并将新的第一加密私钥和新的第二加密私钥存储到客户端,将新的备用密码、新的随机数和新的初始校验密码存储到服务器中。

在正常情况下,用户可以直接通过工作密码解密出私钥,并进行私钥的签名等相关操作。当用户变更工作密码时,则可以通过生成校验码和服务端存储的初始校验码比较判定,并通过例如sms等其他方式取回用户的备用密码,通过备用密码和用户变更过的工作密码再次完成初始化操作,从而进行新的正常情况的工作。

上述实施例的方法充分利用常规支付系统的支付用户已有密码,在保护好用户本地私钥,同时支持用户已有密码变更时,仍能良好运行。

上述实施例的方法,kdf表示密钥导出函数,kdf(x)通常采用加盐的方式对x进行若干散列加密形成一个加密的密钥。f表示一分组对称加密函数,f(k,pvk)表示使用k来加密私钥pvk。hmac表示哈希消息认证码函数,hmac(sk,p)表示p的消息认证码,sk表示认证密钥。

如图8所示,本发明实施例还提供一种移动支付安全保护的实现系统,包括:

发送模块:用于接收并发送用户输入的待验证工作密码至服务器中进行验证;

解密模块:用于接收服务器的验证结果,如待验证工作密码通过验证,则利用密钥导出函数和所述待验证工作密码,计算第一中间密码,通过所述第一中间密码解密存储在客户端中的第一加密私钥,得到私钥;

支付模块:用于进行含有所述私钥的移动支付。

上述系统中,第一加密私钥存储在客户端中。解密模块对第一加密私钥进行解密的过程也在客户端中进行。客户端通常由用户掌控。因此,将第一加密私钥存储在客户端中,利于提高移动支付的安全性能。

作为优选例,上述系统还包括初始化操作模块,所述初始化操作模块包括:

第一计算子模块:用于根据所接收的工作密码和私钥,计算第一加密私钥;

生成子模块:用于根据所述工作密码和所述私钥,生成备用密码和随机数;

第二计算子模块:用于根据所述备用密码和所述私钥,计算第二加密私钥;

第三计算子模块:用于根据所述随机数,计算初始校验密码;

第一存储子模块:用于将所述第一加密私钥和所述第二加密私钥存储到客户端中;

第二存储子模块:用于将所述备用密码、所述随机数和所述初始校验密码存储到服务器中。

上述初始化操作模块完成对私钥加密。通过第一计算子模块计算第一加密私钥;第二计算子模块计算第二加密私钥,并将第一加密私钥和第二加密私钥通过第一存储子模块存储在客户端中。通过对第一加密私钥进行解密得到私钥,从而进行移动支付。生成子模块生成的备用密码和随机数,第三计算子模块计算的初始校验密码都通过第二存储子模块存储到服务器中。备用密码用于在重置工作密码时,对客户端上的第二加密私钥进行解密。初始化操作模块将第一加密私钥和第二加密私钥存储在客户端中,提高了移动支付的安全性能。

作为优选,所述第一计算子模块,具体用于利用密钥导出函数和所述工作密码,计算第一中间密码;利用对称加密函数、所述第一中间密码和所述私钥,计算第一加密私钥;

所述第二计算子模块,具体用于利用密钥导出函数和所述备用密码,计算第二中间密码;利用对称加密函数、所述第二中间密码和所述私钥,计算第二加密私钥;

所述第三计算子模块,具体用于利用哈希消息认证码函数、所述随机数和所述第一中间密码,计算初始校验密码。

在上述实施例中,验证待验证工作密码是在服务器中进行的。所述系统还包括验证模块:用于利用哈希消息认证码函数、所述随机数和所述待验证工作密码,计算校验密码;比较所述校验密码和所述初始校验密码,如果相等,则验证通过;如果不同,则验证不通过。

通过比较校验密码和已存储在服务器中的初始校验密码,获得待验证工作密码是否与预先设定的工作密码一致的结果。如果校验密码和初始校验密码一致,则待验证工作密码为预先设定的工作密码;如果校验密码和初始校验密码不一致,则待验证工作密码不是预先设定的工作密码,验证也就不通过。

作为优选例,所述的系统还包括密码重置模块,用于重置工作密码。所述密码重置模块包括:

调取子模块:用于核实用户身份后,从服务器中调取所述备用密码;

计算子模块:用于根据所述备用密码和密钥导出函数,计算第二中间密码;

解密子模块:用于通过所述第二中间密码解密第二加密私钥,得到私钥;

初始化操作子模块:用于根据所述私钥和新的工作密码,重新进行初始化操作,生成新的第一加密私钥、新的第二加密私钥、新的备用密码、新的随机数和新的初始校验密码;并将所述新的第一加密私钥和新的第二加密私钥存储到客户端;将所述新的备用密码、新的随机数和新的初始校验密码存储到服务器中。

当工作密码变更时,第一加密私钥、第二加密私钥、备用密码、随机数和初始校验密码都需要基于工作密码进行变更。通过调取子模块从服务器中调取所述备用密码至客户端中。计算子模块根据备用密码和密钥导出函数,计算第二中间密码。解密子模块通过第二中间密码解密已存储在客户端上的第二加密私钥,得到私钥。无论工作密码更改与否,私钥都是保持不变的。在客户端中,初始化操作子模块根据私钥和新的工作密码,重新进行初始化操作,生成新的第一加密私钥、新的第二加密私钥、新的备用密码、新的随机数和新的初始校验密码。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1