一种基于cpk的双向认证及数据交互安全保护方法

xiaoxiao2020-10-23  22

一种基于cpk的双向认证及数据交互安全保护方法
【技术领域】
[0001]本发明涉及互联网的通信数据交互安全保护领域,具体涉及一种基于CPK的双向认证及数据交互安全保护方法。
【背景技术】
[0002]随着互联网快速的发展,基于互联网的各类用户服务层出不穷,网络已经深入到用户生活的各个方面,用户经常通过网络使用与生活、工作及娱乐息息相关的各类服务。互联网用户所有数据交互如何使其更为可信安全就显得尤为重要。数据加密是保证数据安全传递的唯一使用有效的方法。根据密钥类型的不同可以分为两类:对称加密算法和非对称加密算法。对称加密算法使用相同的密钥(对称密钥)进行数据的加密和解密,加解密数据速度快,主要缺点是由于是单一密钥,长期使用时系统安全性较差,不便于在开放式网络环境下使用。非对称加密算法(公钥加密)使用一对不同的密钥(即非对称密钥,包括一个公钥,可以公开;另一个是私钥,由用户本人秘密保管),由于是双钥密码,破译非常困难,系统安全性很高,因此特别适合于在开放式网络环境下使用,其主要缺点是算法复杂,加解密数据的速度和效率都比较低。
[0003]现有的很多用户服务器都是采用单一的加密方式进行数据的交互,并且对用户或用户设备都只进行单向认证。现有的单向认证方式通过假设认证双方中有一方是可信的,即用户服务器侧被认为是可信的,仅验证用户设备身份,并不验证服务器身份。而在现今的互联网上,病毒、钓鱼网站、木马、黑客等严重威胁着用户数据交互的安全,用户的数据资料等泄漏的事情时常发生。常用的这种单向安全认证和单一的加密方式的安全性受到了威胁,其系统的安全性较差。

【发明内容】

[0004]本发明为解决现有的技术问题,提出一种基于CPK的双向认证及数据交互安全保护方法,利用CPK标识认证技术并整合非对称加密算法和对称加密算法的优点对互联网的用户服务器与用户设备进行双向认证及数据交互保护。
[0005]CPK技术作为一种新型的非对称的密码技术,是一种先进的标识认证体制,具有很好的安全性和易用性,可以方便地实现点对点的离线认证,无须CA认证中心,可实现点对点的静态密钥交换。CPK同时可以兼容在线验证,用户识别后,可以根据需要进行在线的后继处理,系统部署简洁方便,升级灵活。
[0006]为达到上述目的,本发明的实施例采用的如下技术方案:
[0007]—种基于CPK的双向认证及数据交互安全保护方法,适用于互联网的用户服务器与用户设备之间的双向认证及所有数据的交互保护,其特征在于包括:
[0008]用户服务器(SI)接收用户设备(Dl)发来的基于用户标识的用户登录请求,产生随机数a并用CPK标识认证技术生成随机数a的CPK标识公私钥对,将用用户的CPK标识公钥加密的随机数a的CPK标识公私钥对和用用户的CPK标识公钥加密的SI的签名信息下传到D1。用户设备(Dl)将收到的加密数据用用户的CPK标识私钥解密得到随机数a的CPK标识公私钥对和SI的签名信息。用户设备(Dl)用SI的CPK标识公钥验证SI的CPK标识私钥的签名是否合法来完成对用户服务器(Si)的认证。
[0009]若用户服务器(SI)认证合法,用户设备(Dl)通过接受用户输入的SI的用户登录口令并将其转换成用户登录口令的hash值,并用随机数a的CPK标识公钥对用户登录口令的hash值进行加密,将加密后的数据发给SI。用户服务器(SI)用存在系统中的随机数a的CPK标识私钥对其解密得到用户登录口令的hash值并与存在SI系统的用户登录口令的hash值进行对比验证来完成对用户设备(Dl)的认证。若验证通过,SI再产生一个随机数b,用作对称加密的加密密钥,用用户的CPK标识公钥将随机数b加密后发送给Dl ;若验证失败,则将用用户的CPK标识公钥加密的登录失败数据发送给Dl。
[0010]用户设备(Dl)用已存的用户的CPK标识私钥解密出验证结果。若双向认证通过,即可登录成功;若双向认证失败,则登录失败。用户登录成功后,用户设备(Dl)与用户服务器(SI)之间所有的数据都是用随机数b来做会话密钥,进行双向全密态的服务数据交互。
[0011]所述的用户服务器(SI)中保存有用于认证鉴权的多组数据,每一条所述的多组数据包括用户标识、用户私有标识、基于用户私有标识产生的用户的CPK标识公私钥对中的CPK标识公钥、用户登录口令、用户登录口令的hash值和关联的电话终端号码及附加认证鉴权数据。用户私有标识包括但不限于:身份证号码、电话号码、姓名、终端设备的ID号坐寸ο
[0012]所述的用户设备中存有基于用户私有标识产生的用户的CPK标识公私钥对中的CPK标识私钥。用户的CPK标识私钥用于对用户的CPK标识公钥加密的数据进行解密。用户设备包括但不限于:电脑、智能手机、PDA、智能网关等。
[0013]所述的用户标识对于用户服务器(SI)具有唯一性。用户服务器(SI)接收到用户设备(Dl)发来的基于用户标识的用户登录请求后,SI验证该用户标识是否为系统的有效用户标识。若为有效的用户标识的登录请求,则继续双向认证。若为无效的用户标识的登录请求,则退出双向认证。用户标识包括但不限于:用户名、身份证号码、电话号码、姓名等。
[0014]所述的用户设备(Dl)用SI的私有标识计算出SI的CPK标识公钥,用SI的CPK标识公钥验证SI的CPK标识私钥的签名是否合法。若服务器认证通过,则继续双向认证。若服务器认证失败,则退出双向认证。SI的私有标识包括但不限于:设备的ID号、服务器标识等。
[0015]所述的随机数a和随机数a的CPK标识公私钥对具有随机性和时效性。即用户服务器(SI)在每一次新的用户登录请求时,产生的随机数a和随机数a的CPK标识公私钥对都是仅供这次登录使用。用户在用户设备上接收到用户登录口令请求,需在约定的时间内输入用户登录口令;若用户在约定的时间内输入用户登录口令并验证成功,则双向认证通过;若超过约定的时间或用户登录口令验证失败,则基于此次登录请求产生的随机数a和随机数a的CPK标识公私钥对将被丢弃,作废处理,双向认证失败。用户若要继续登录SI,需重新发起新的用户登录请求。用户服务器(SI)再产生新的随机数a和随机数a的CPK标识公私钥对。
[0016]所述用户服务器(SI)产生随机数b具有定时更换性。即用户设备(Dl)与用户服务器(SI)自行约定更换会话密钥的时间。当Dl与SI双向认证成功后,SI会根据双方约定的时间预先产生新的随机数b并用用户的CPK标识公钥对其加密后安全下传给用户设备(Dl)。
[0017]所述的用户设备(Dl)与用户服务器(SI)之间传递的是用户登录口令产生的用户登录口令的hash值或相应的散列函数计算值。
[0018]所述的用户设备(Dl)与用户服务器(SI)是基于互联网或移动运营商网络连接并交互数据。
【附图说明】
[0019]图1为本发明的用户服务器与用户设备之间双向认证及数据交互安全保护流程图
【具体实施方式】
[0020]为使本发明的目的、技术方案和优点更加清楚明白,下面将结合实施例和附图,对本发明进一步详细说明。
[0021]本发明提供一种互联网的用户服务器(SI)与用户设备(Dl)之间的双向认证及所有数据交互安全保护的方法,利用现有的CPK标识认证技术实现所有数据的全过程全密态的信息交互。
[0022]当用户需要使用该用户服务器(SI)时,用户需要在SI上注册,提交SI所需求的用户标识和认证的用户私有信息。用户私有信息包括用户标识、用户登录口令、身份证号、电话终端号码、邮箱以及其他的识别认证用户私有信息,具体看Si的类型而会有所不同。用户服务器(Si)根据用户私有信息提取出用户私有标识,并将用户私有标识用CPK标识认证技术生成用户的CPK标识公私钥对安全下 发给用户。用户私有标识包括但不限于:身份证号码、电话号码、姓名、终端设备的ID号等。
[0023]用户服务器(SI)中保存有用于认证鉴权的多组数据,每一条所述的多组数据包括用户私有标识、用户的CPK标识公钥、随机数a的CPK标识公私钥对(临时产生,每次随机)、随机数b (定时保存,约定变更)、用户登录口令、用户登录口令的hash值和关联的电话终端号码及附加鉴权信息。用户服务器中也包含标准PCI接口的CPK签名板卡,该CPK签名板卡用于向用户设备提供SI的签名信息以验证用户服务器身份的合法性。SI的签名信息包括SI的私有标识、SI的CPK私钥的签名信息等。
[0024]在用户服务器(SI)中有一个对应随机数的私有协议,用于对产生的随机数的CPK标识公私钥对和随机数加以高速配对,并将随机数的CPK标识公私钥对和随机数与用户标识临时绑定。当Si收到很多基于随机数的CPK标识公钥和随机数的加密的信息,可快速找到其对应的随机数的CPK标识私钥和随机数进行解密。
[0025]用户若想通过用户设备(Dl)登录用户服务器(SI)进行数据交互,用户需要在用户设备(Dl)上面安装用户服务器(SI)提供的相应的服务应用系统。用户设备上的服务应用系统用于提供用户输入用户标识和用户登录口令,将用户输入的SI的用户登录口令转换成用户登录口令的hash值并用接收到的随机数a的公钥加密后通过互联网(专线、VPN方式以及其他方式)或移动运营商的网络上传给SI ;用于接收SI的加密信息并对其进行解密展现给用户,其中包括对服务器的真实性认证;用于用户设备(Dl)和用户服务器(SI)之间双向认证和所有数据交互的加解密:其提供的功能还包括用户登录初始口令的修改坐寸O
[0026]用户设备里面保存了用户的CPK标识私钥、随机数a的CPK标识公私钥对(由SI临时产生安全下传给用户设备,临时保存,每次随机)、随机数b (由SI产生安全下传给用户设备,定时保存并变更)。用户的CPK标识私钥用于对用户的CPK标识公钥加密的数据进行解密。用户的CPK标识私钥是用用户设备的开机口令或者开屏口令来进行加密保护的。用户设备包括但不限于:电脑、智能手机、PDA、智能网关等。
[0027]用户通过用户设备(Dl)上的SI服务应用系统登录用户服务器(SI)进行用户设备和用户服务器的双向认证。用户服务器(SI)对用户设备(Dl)的认证分为两个步骤:一是先认证用户设备(Dl)提供的用户标识是否有效。用户服务器(SI)接收到用户设备(Dl)发来的基于用户标识的用户登录请求后,SI验证该用户标识是否为系统的有效用户标识。若为有效的用户标识的登录请求,则SI产生随机数a并用CPK标识认证技术生成随机数a的CPK标识公私钥对,将用用户的CPK标识公钥加密的随机数a的CPK标识公私钥对和用用户的CPK标识公钥加密的SI的签名信息下传到D1。若为无效的用户标识的登录请求,则返回错误信息并退出双向认证。二是当SI被用户设备认证合法后,SI再认证用户设备提供的用户登录口令的hash值是否正确。SI用收到的用户设备发来用户登录口令的hash值与存在SI系统的该值进行对比验证来完成对用户设备(Dl)的身份真实性的认证。
[0028]在SI与Dl的双向认证中,用户设备(Dl)需要先对用户服务器(SI)的身份进行认证,只有在合法的用户服务器(Si)的前提下,用户才会输入用户的登录口令以提供给SI来验证其身份的真实性。用户设备(Dl)用接收到的SI的签名信息中的SI的私有标识计算出SI的CPK标识公钥,用SI的CPK标识公钥验证SI的CPK标识私钥的签名是否合法。若服务器认证通过,则用户设备(Dl)才接受用户输入的SI的用户登录口令并将其转换成用户登录口令的hash值,并用随机数a的CPK标识公钥对用户登录口令的hash值进行加密,将加密后的数据发给SI。若服务器认证失败,则退出双向认证。SI的私有标识包括但不限于:设备的ID号、服务器标识等。
[0029]用户服务器(SI)在每一次新的用户登录请求时,产生的随机数a和随机数a的CPK标识公私钥对都是仅供这次登录使用。用户在用户设备上接收到用户登录口令请求,需在约定的时间内输入用户登录口令;若用户在约定的时间内输入用户登录口令并验证成功,则双向认证通过;若超过约定的时间或用户登录口令验证失败,则基于此次登录请求产生的随机数a和随机数a的CPK标识公私钥对将被丢弃,作废处理,双向认证失败。用户若要继续登录SI,需重新发起新的用户登录请求;用户服务器(SI)再产生新的随机数a和随机数a的CPK标识公私钥。
[0030]当SI与Dl的双向认证通过后,SI再产生一个随机数b,用作对称加密的加密密钥,用用户的CPK标识公钥将随机数b加密后发送给Dl ;若双向认证失败,则将用用户的CPK标识公钥加密的认证失败数据发送给Dl。用户设备(Dl)用已存的用户的CPK标识私钥解密出验证结果。若双向认证通过,即可登录成功;若双向认证失败,则登录失败。用户登录成功后,用户设备(Dl)与用户服务器(SI)之间所有的数据都是用随机数b来做会话密钥,进行双向全密态的服务数据交互。用户设备(Dl)与用户服务器(SI)自行约定更换会话密钥(随机数b)的时间。当Dl与SI双向认证成功后,SI会根据双方约定的时间预先产生新的随机数b并用用用户的CPK标识公钥将其加密后下传给用户设备(Dl)。
[0031]参照图1,本发明基于CPK标识认证技术的双向认证及数据交互安全保护方法包括以下步骤:
[0032]步骤101:用户在网络终端(电脑、智能网关及智能终端等)上打开用户服务器(Si)提供的服务应用系统的双向认证通道,输入用户标识发起用户设备双向认证的登录请求。
[0033]步骤102:用户服务器(SI)收到用户设备登录请求后,SI验证该用户标识是否为系统的有效用户标识。若为无效的用户标识的登录请求,则返回错误信息并退出双向认证。若为有效的用户标识的登录请求,SI产生一个随机数a和SI的签名信息,并利用CPK标识认证技术产生出这个随机数a的CPK标识公私钥对并临时保存(仅供这次用户登录验证用),用用户的CPK标识公钥将随机数a的CPK标识公私钥对和SI的签名信息加密后通过互联网(专线、VPN方式以及其他方式)或移动运营商的网络安全下传给用户设备。
[0034]步骤103:用户设备(Dl)将收到信息用用户的CPK标识私钥解密得到随机数a的CPK标识公私钥对和SI的签名信息并临时保存起来,用收到的SI的私有标识计算出SI的CPK标识公钥,用SI的CPK标识公钥验证SI的CPK标识私钥的签名是否合法。若用户服务器认证失败,则退出双向认证。若用户服务器认证通过,用户在其用户设备上输入的Si所需要的用户登录口令。用户设备将用户登录口令转换成用户登录口令的hash值,并用接收到的随机数a的CPK标识公钥将用户登录口令的hash值加密后通过互联网(专线、VPN方式以及其他方式)或移动运营商的网络安全发送给用户服务器(SI)。
[0035]步骤104:用户服务器(SI)用已存的随机数a的CPK标识私钥解密得到用户登录口令的hash值,将解密得到用户登录口令的hash值和存在系统中的用户登录口令hash值进行对比验证。若验证通过,SI再产生一个随机数b用作登录成功后数据交互的会话密钥,用用户的CPK标识公钥将随机数b加密后发送给用户设备(Dl);若验证失败,则将用用户的CPK标识公钥加密的双向认证失败信息发送给用户设备并退出双向认证。
[0036]步骤105:用户设备用用户的CPK标识私钥解密得到验证结果。若用户登录成功后,用户设备(Dl)与用户服务器(SI)之间所有的服务数据都是用随机数b来做会话密钥,进行双向全密态的服务数据交互。SI会根据用户服务器与用户设备的约定时间,产生新的随机数b,预先用用户的CPK标识公钥加密后发送给用户设备(Dl ),用于双方定时的更换会话密钥以保证数据交互的安全性。
[0037]在双向认证的过程,若出现任何一方认证失败,都会退出认证。用户若要继续登录SI,需重新发起新的用户登录请求,需重复步骤101?步骤105,用户服务器(SI)再产生新的随机数a和新的随机数a的CPK标识公私钥对及双向认证通过后新的随机数b。
[0038]本发明用CPK算法产生的随机数的CPK标识公私钥对的数量能力,从全球互联网用户的数量级来看可以认为是无穷的(按CPK理论体系算法,用IG的种子公私钥长度,能产生出10的1000次方个CPK标识公私钥对,其足够海量)。
[0039]基于CPK标识认证体制的特点,整个双向认证过程交互的信息都是用CPK公钥加密数据,用CPK私钥来解密数据;CPK私钥来签名数据,CPK公钥验证签字数据。双向认证成功后所有数据信息的交互都是用有定时更换的随机数做会话密钥进行双向数据的全流程全密态数据的传递交互。
[0040]由于本发明技术的应用和实施十分广泛,只要是需要进行身份识别和数据交互的用户设备与用户服务器之间都能够采用此方法实现设备系统之间的双向安全认证及所有服务数据的安全交互。以上所述,仅为本发明的优选实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
【主权项】
1.一种基于CPK的双向认证及数据交互安全保护方法,适用于互联网的用户服务器与用户设备之间的双向认证及所有数据的交互保护,其特征在于包括: 用户服务器(SI)接收用户设备(Dl)发来的基于用户标识的用户登录请求,产生随机数a并用CPK标识认证技术生成随机数a的CPK标识公私钥对,将用用户的CPK标识公钥加密的随机数a的CPK标识公私钥对和用用户的CPK标识公钥加密的SI的签名信息下传到Dl ;用户设备(Dl)将收到的加密数据用用户的CPK标识私钥解密得到随机数a的CPK标识公私钥对和SI的签名信息,Dl用SI的CPK标识公钥验证SI的CPK标识私钥的签名是否合法来完成对用户服务器(SI)的认证; 若用户服务器(SI)认证合法,用户设备(Dl)通过接受用户输入的SI的用户登录口令并将其转换成用户登录口令的hash值,并用随机数a的CPK标识公钥对用户登录口令的hash值进行加密,将加密后的数据发给SI ;用户服务器(SI)用存在系统中的随机数a的CPK标识私钥对其解密得到用户登录口令的hash值并与存在SI系统的用户登录口令的hash值进行对比验证来完成对用户设备(Dl)的认证; 若验证通过,SI再产生一个随机数b,用作对称加密的加密密钥,用用户的CPK标识公钥将随机数b加密后发送给Dl ;若验证失败,则将用用户的CPK标识公钥加密的登录失败数据发送给Dl ; 用户设备(Dl)用已存的用户的CPK标识私钥解密出验证结果,若双向认证通过,即可登录成功;若双向认证失败,则登录失败;用户登录成功后,用户设备(Dl)与用户服务器(SI)之间所有的数据都是用随机数b来做会话密钥,进行双向全密态的服务数据交互。2.如权利要求1所述的一种基于CPK的双向认证及数据交互安全保护方法,其特征在于:上述中的CPK,就是组合公钥体制(Combined Public Key Cryptosystem,简称CPK),是在椭圆曲线密码(ECC算法)上,由组合矩阵和分割密钥序列构成,是一种先进的标识认证体制。3.如权利要求1所述的一种基于CPK的双向认证及数据交互安全保护方法,其特征在于:在所述用户服务器(Si)中保存有用于认证鉴权的多组数据,每一条所述的多组数据包括用户标识、用户私有标识、基于用户私有标识产生的用户的CPK标识公私钥对中的CPK标识公钥、用户登录口令、用户登录口令的hash值和关联的电话终端号码及附加认证鉴权数据;用户私有标识包括但不限于:身份证号码、电话号码、姓名、终端设备的ID号等。4.如权利要求1所述的一种基于CPK的双向认证及数据交互安全保护方法,其特征在于:在所述用户设备中存有基于用户私有标识产生的用户的CPK标识公私钥对中的CPK标识私钥;用户的CPK标识私钥用于对用户的CPK标识公钥加密的数据进行解密;用户设备包括但不限于:电脑、智能手机、PDA、智能网关等。5.如权利要求1所述的一种基于CPK的双向认证及数据交互安全保护方法,其特征在于:所述的用户标识对于用户服务器(Si)具有唯一性,用户服务器(SI)接收到用户设备(Dl)发来的基于用户标识的用户登录请求后,SI验证该用户标识是否为系统的有效用户标识,若为有效的用户标识的登录请求,则继续双向认证;若为无效的用户标识的登录请求,则退出双向认证;用户标识包括但不限于:用户名、身份证号码、电话号码、姓名等。6.如权利要求1所述的一种基于CPK的双向认证及数据交互安全保护方法,其特征在于:所述的用户设备(DI)用SI的私有标识计算出SI的CPK标识公钥,用SI的CPK标识公钥验证SI的CPK标识私钥的签名是否合法,若服务器认证通过,则继续双向认证;若服务器认证失败,则退出双向认证;S1的私有标识包括但不限于:设备的ID号、服务器标识等。7.如权利要求1所述的一种基于CPK的双向认证及数据交互安全保护方法,其特征在于:所述的随机数a和随机数a的CPK标识公私钥对具有随机性和时效性,即用户服务器(SI)在每一次新的用户登录请求时,产生的随机数a和随机数a的CPK标识公私钥对都是仅供这次登录使用;用户在用户设备上接收到用户登录口令请求,需在约定的时间内输入用户登录口令,若用户在约定的时间内输入用户登录口令并验证成功,则双向认证通过;若超过约定的时间或用户登录口令验证失败,则基于此次登录请求产生的随机数a和随机数a的CPK标识公私钥对将被丢弃,作废处理,双向认证失败;用户若要继续登录SI,需重新发起新的用户登录请求;用户服务器(SI)再产生新的随机数a和随机数a的CPK标识公私钥对。8.如权利要求1所述的一种基于CPK的双向认证及数据交互安全保护方法,其特征在于:所述用户服务器(SI)产生随机数b具有定时更换性,即用户设备(Dl)与用户服务器(SI)自行约定更换会话密钥的时间;当Dl与SI双向认证成功后,SI会根据双方约定的时间预先产生新的随机数b并用用户的CPK标识公钥对其加密后安全下传给用户设备(Dl)。9.如权利要求1所述的一种基于CPK的双向认证及数据交互安全保护方法,其特征在于:所述的用户设备(Dl)与用户服务器(SI)之间传递的是用户登录口令产生的用户登录口令的hash值或相应的散列函数计算值。10.如权利要求1所述的一种基于CPK的双向认证及数据交互安全保护方法,其特征在于:所述的用户设备(Dl)与用户服务器(SI)是基于互联网或移动运营商网络连接并交互数据。
【专利摘要】本发明提供一种基于CPK的双向认证及数据交互安全保护方法。该方法用于用户服务器(S1)与用户设备(D1)之间的双向认证及所有数据的交互保护。S1接收D1发来的用户登录请求,产生随机数a、随机数a的CPK标识公私钥对和S1的标识私钥签名信息并将其加密后下传D1。D1用S1的标识公钥验证其签名信息是否合法来完成对S1的认证。S1用收到D1的用户登录口令的hash值与已存该值进行对比验证来完成对D1的认证。若双向认证通过,S1再产生一个随机数b将其加密后发送给D1;否则返回双向认证失败信息。用户双向认证成功后,D1与S1之间所有的数据都是用随机数b来做会话密钥,进行双向全密态的数据交互。
【IPC分类】H04L9/32, H04L29/06
【公开号】CN104901935
【申请号】CN201410498404
【发明人】陈谦, 孟俊, 邱银娟
【申请人】易兴旺, 陈谦, 胡浩, 孟俊
【公开日】2015年9月9日
【申请日】2014年9月26日

最新回复(0)