首页> 中国专利> 基于Cookie和DR身份密码体制的多重身份认证方法及装置

基于Cookie和DR身份密码体制的多重身份认证方法及装置

摘要

本发明涉及身份认证领域,具体来说是一种基于Cookie和DR身份密码体制的多重身份认证方法及装置。目的在于解决现有的密钥托管问题即可信第三方掌控所有用户的私钥,一旦被恶意者攻击,所有用户的私钥都将被泄露,其安全性较低。主要方案包括以下步骤:步骤1:用户使用用户账号和PIN码进行第一身份认证,在通过第一身份认证之后,可以访问到系统的公开资源;步骤2:客户端通过Cookie文件信息建立安全信道,此后用户的认证过程中上传的所有信息都会通过该安全信道传输;第二身份认证通过后,用户可以访问到系统的核心资源;步骤3:用户根据需求使用设备信息进行第三身份认证,通过后用户可以访问到系统的敏感资源。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-09-01

    授权

    发明专利权授予

说明书

技术领域

本发明涉及身份认证领域,具体来说是一种基于Cookie和DR身份密码体制的多重身份认证方法及装置。

背景技术

在客户端向服务器发出认证请求后,服务器会要求客户端上传用户信息,服务器使用该用户信息验证该用户。用户信息在客户端和服务器的传输过程中如果使用的是明文传输,用户信息就有被盗取泄露的可能,所以要在客户端和服务器建立安全信道。

现有建立安全信道的两种方法:

基于预共享密钥的方式,客户端-服务器预先保存用于加密的对称密钥,客户端需要长时间保持密钥的安全性,一旦密钥泄露,安全信道的安全性也就不存在。

基于证书的方式,在客户端-服务器进行双向认证,客户端需要保证密钥证书的安全存储。

Cookie是在用户访问浏览器的过程中,服务器生成并暂存在用户电脑上的文本文件,由服务器设置自定义数据字段信息,更好地为用户提供安全及个性化服务,例如可以保存用户登录信息,下次登陆时可以不再输入登录信息;跟踪用户行为,向用户推荐个性化广告信息。Cookie文件中的内容由服务器生成,以“名称-值”的键值对形式进行设置。用户只有使用本机的浏览器才能使用保存到本地的历史Cookie文件,当恶意攻击者使用新的电脑登录系统时,客户端是没有Cookie文件的。

在基于身份密码体制的系统中,用户的身份信息可以直接获得,公钥通过用户的身份信息生成,而私钥则由可信的PKG得到,PKG使用自己的管理密钥和用户公钥生成私钥。这种方法存在私钥托管问题,即所有用户的私钥都由PKG所有,一旦被恶意攻击,用户的私钥都可能泄露,其安全性较低。

系统中的资源信息包含内部敏感信息以及公开信息,公开信息可以开放给所有注册过的用户访问,这部分资源不需要系统开销大的保护措施。内部敏感信息只能开放给经过实名认证的公司内部人员访问,这些资源需要更好地保护,保证系统内的核心敏感资源不会泄露。

现有技术:

申请号为201910116447.8,名称为“信息中心网络内容请求用户的身份认证方法”的发明专利公开了一种身份认证方法。使用基于身份的加密方案,包括基于身份的加密和基于身份的签名实现了接入网关对内容请求用户的认证。

现有技术缺陷:

虽然上述技术可以实现对用户的身份认证,避免用户身份等敏感信息泄露。但是存在密钥托管问题,IBE私钥是从PKG处获取的,PKG受到攻击,用户的私钥可能会被泄露。

发明内容

本发明的目的在于解决现有的密钥托管问题即可信第三方掌控所有用户的私钥,一旦被恶意者攻击,所有用户的私钥都将被泄露,其安全性较低。

为了解决上述技术问题本发明采用以下技术手段:

本发明提供了一种基于Cookie和DR身份密码体制的多重身份认证方法,其特征在于,包括以下步骤:

步骤1:用户使用用户账号和PIN码进行第一身份认证,在通过第一身份认证之后,可以访问到系统的公开资源;

步骤2:数据库内设置有客户端Cookie验证标记字段,用户根据需求发起第二身份认证时,

当客户端Cookie验证标记字段的值为“0”则直接使用用户信息进行验证,验证通过则会在服务器数据库生成一条包含两个键值对的数据,在客户端生成也包含这两个键值对信息的Cookie文件,客户端通过Cookie文件信息建立安全信道,同时将数据库内的客户端Cookie验证标记字段的值设置为“1”;

当客户端Cookie生成标记字值为“1”则客户端需要通过Cookie文件信息建立安全信道;

此后用户的认证过程中上传的所有信息都会通过该安全信道传输;

第二身份认证通过后,用户可以访问到系统的核心资源;

步骤3:用户根据需求使用设备信息进行第三身份认证,通过后用户可以访问到系统的敏感资源。

上述技术方案中,步骤1包括:

步骤1.1.客户端向服务器发出证书请求;

步骤1.2.服务器向客户端发送一个数字证书,该数字证书包含一个公钥PK1;

步骤1.3.客户端使用PK1将用户上传的用户ID和PIN码加密后返回给服务器,M1=E(ID,PIN,PK1);

步骤1.4.服务器使用私钥PK2从接收到的密文M1中取出用户ID和PIN码,(ID,PIN)=D(M1,PK2),服务器通过验证用户ID和PIN码决定用户是否通过第一身份认证,如果数据库中不包含该用户信息,认证结束;如果认证通过,则开放系统公开资源接口。

上述技术方案中,使用Cookie文件建立安全信道的步骤如下:

步骤a.客户端向服务器发出建立安全信道请求;

步骤b.服务器接收到请求后,通过用户ID找到服务器数据库内对应的数据,从数据库中找到user_id的Value值,使用哈希函数散列Value值得到哈希值h1=HASH(Value),使用哈希值h1生成对称密钥SK,服务器使用用户ID作为随机种子,使用动态随机因子产生器生成动态随机因子r1,使用对称密钥SK加密r1得到密文M2=E(r1,SK),并发送给客户端;

步骤c.客户端在接收到服务器返回的密文M2后,从存储到本地Cookie文件中取出键为user_id的对应的Value值,使用哈希函数散列该值,得到哈希值h2=HASH(Value),使用哈希值h2生成对称密钥SK,使用对称密钥SK从M2中得到明文r2=D(M2,SK),客户端再使用对称密钥SK加密r2,得到密文M3=E(r2,SK),将密文M3发送给服务器;

步骤d.服务器使用步骤b中的对称密钥SK从M3得到明文r3=D(M3,SK),将r3和r1对比,不一致则向客户端发出拒绝信息,一致则向客户端发出建立安全信道成功信息,客户端和服务器使用相同的对称密钥SK进行数据传输。

上述技术方案中,第二身份认证步骤如下:

步骤:2a.1、用户在客户端输入身份信息N1,包括手机号num1,身份证号num2,邮箱地址num3;

客户端使用身份信息N1向PKG申请私钥(私人密钥生成器),PKG验证用户身份信息,验证通过后PKG向服务器发送动态随机因子请求信息,PKG生成系统参数,系统参数包括{G

步骤:2a.2.服务器收到PKG的请求信息后,产生动态随机因子

步骤:2a.3.PKG使用服务器返回的t,将随机产生的主密钥s

步骤:2a.4.客户端使用私钥S对Cookie中键为random_id的Value值r进行签名得到签名N2,N2=H

步骤:2a.5.服务器使用对称密钥SK解密密文M4,从中取出身份信息(N1,N2)=D(M4,SK),在服务器的数据库中验证该用户的身份信息N1,验证通过则使用用户身份信息生成公钥P

上述技术方案中,步骤2的中服务器生成Cookie数据步骤如下:

管理员通过在服务器数据库中预设用户信息,这些用户信息是能通过第二身份认证用户的身份信息;

服务器数据库中还预设有初始值为“0”的客户端Cookie验证标记字段,

当客户端Cookie验证标记字段值为“0”时,在客户端上传身份信息就可以登陆到系统,同时系统为这部分用户对应产生一条数据,该数据包括有两个键值对信息,分别是user_id和random_id及其对应的值,这两个键值对也会保存在客户端的本地Cookie文件中,同时将客户端Cookie验证标记字段值设置为“1”,

客户端Cookie验证标记字段值为“1”时,使用Cookie文件中保存的这两个键值对信息进行安全认证,具体为,读取客户端本地的Cookie文件中键为user_id的Value值,建立安全信道,读取客户端本地的Cookie文件中键random_id的Value值,进行第二身份认证;

当用户通过第二身份认证后,客户端本地保存包含有这两个键值对的Cookie文件,键为user_id和键为random_id,后续第二身份验证过程中因为这部分用户客户端本地的Cookie文件中由于有键为user_id的值,所以可以建立安全信道,有random_id的值,所以可以通过第二身份认证,所以即使该用户的身份信息泄露,盗取者在新的电脑上没有Cookie文件情况下也是不能通过验证的,这里就先验证了用户,再验证了Cookie。

上述技术方案中,生成系统参数的步骤包括:

步骤a.产生素数阶为q的两个群:(G

步骤b.随机产生主密钥

步骤

保密s

上述技术方案中,第三身份认证包括以下步骤

用户根据需求申请第三身份认证,用户在客户端上传自己的主机设备信息D1,该设备信息包括硬盘序列号X1、主板序列号X2,客户端通过安全信道使用对称密钥SK加密,将D1加密后上传给服务器,D2=E(D1,SK),服务器使用对称密钥SK解密,从中取出该设备信息D1,D1=D(D2,SK),将D1哈希散列之后得到H3=Hash(D1),H3与数据库中预存的数据进行比对,如果数据库中没有该数据,则拒绝用户的请求,否则通过第三身份认证,开放系统全部资源接口。

本发明还提供了一种基于Cookie和DR身份密码体制的多重身份认证方法的存储介质。

本发明还提供了一种基于Cookie和DR身份密码体制的多重身份认证装置,包括:

第一身份认证模块:用户使用用户账号和PIN码进行第一身份认证,在通过第一身份认证之后,可以访问到系统的公开资源;

第二身份认证模块:数据库内设置有客户端Cookie验证标记字段,用户根据需求发起第二身份认证时,

当客户端Cookie验证标记字段的值为“0”则直接使用用户信息进行验证,验证通过则会在服务器数据库生成一条包含两个键值对的数据,在客户端生成也包含这两个键值对信息的Cookie文件,客户端通过Cookie文件信息建立安全信道,同时将数据库内的客户端Cookie验证标记字段的值设置为“1”;

当客户端Cookie生成标记字值为“1”则客户端需要通过Cookie文件信息建立安全信道;

此后用户的认证过程中上传的所有信息都会通过该安全信道传输;

第二身份认证通过后,用户可以访问到系统的核心资源;

第三身份认证模块:用户根据需求使用设备信息进行第三身份认证,通过后用户可以访问到系统的敏感资源。

因为本发明采用上述技术方案,因此具备以下有益效果:

一、通过使用Cookie文件对建立安全信道的过程进行改进,提出一种开销更小的安全信道建立方法。基于Cookie建立的安全信道,不需要专门的服务端的数字证书,不涉及对于证书的管理,避免了由于传输证书带来的性能开销,也不需要预先分配公钥,客户端不用保证公钥的安全性。Cookie文件是在用户访问系统资源时自动生成的,使用Cookie来建立安全信道开销更小。

二、通过使用动态随机因子对PKG私钥的产生进行改进,提出了一种更安全的私钥产生方法。PKG生成私钥的过程中需要使用到的服务器产生的动态随机因子,PKG无法自己单独生成私钥,避免了私钥的托管问题,私钥的产生更加安全。

三、通过使用多次身份认证实现对系统资源的分级管理,提出了一种系统开销更小的资源管理方案。使用多次身份认证实现系统资源分级管理,公共资源只需要一次身份认证之后就可以访问,系统的开销较小;对于核心敏感资源的访问,需要建立安全信道之后,使用更多的用户身份信息才能访问,这部分资源的系统开销较大。系统只需要对核心敏感资源实施保护,降低了系统对于资源管理的开销。

附图说明

图1为多重身份认证流程图;

图2为安全信道建立的流程图;

图3为第二身份认证的流程图;

具体实施方式

为了方便本领域技术人员更好的理解本发明的技术构思,现对本发明做如下进一步说明:

本发明提供了本发明提供了一种基于Cookie和DR身份密码体制的多重身份认证方法,包括以下步骤:

步骤1:用户使用用户账号和PIN码进行第一身份认证,在通过第一身份认证之后,可以访问到系统的公开资源;

步骤2:数据库内设置有客户端Cookie验证标记字段,用户根据需求发起第二身份认证时,

当客户端Cookie验证标记字段的值为“0”则直接使用用户信息进行验证,验证通过则会在服务器数据库生成一条包含两个键值对的数据,在客户端生成也包含这两个键值对信息的Cookie文件,客户端通过Cookie文件信息建立安全信道,同时将数据库内的客户端cookie验证标记字段的值设置为“1”;

当客户端Cookie生成标记字值为“1”则客户端需要通过Cookie文件信息建立安全信道;

此后用户的认证过程中上传的所有信息都会通过该安全信道传输;

安全信道的建立是基于Cookie中键为user_id的值来建立的。在系统开始阶段,可以理解为管理员在服务器中预先设置了能通过第二和第三身份认证的用户信息,这部分用户登录系统时,通过第二身份认证只需要上传用户信息,第一次登陆之后,服务器就会产生Cookie文件,保存在客户端本地。此后该用户再次登录到系统就需要使用Cookie建立的安全信道。

第二身份认证通过后,用户可以访问到系统的核心资源;

值得注意的是,用户在使用过程中,因为一旦客户端Cookie验证标记字段的值为“1”后,用户发起第二身份认证时,则不会在客户端本地生成Cookie文件,即通过Cookie文件实现了如类似绑定的效果,如用户在使用过程中需要更换访问设备,则需联系管理员,对客户端Cookie验证标记字段的值进行设置为“0”,用户即可在新的设备上进行发起第二身份认证,从而获得新的Cookie文件。

步骤3:用户根据需求使用设备信息进行第三身份认证,通过后用户可以访问到系统的敏感资源。

上述技术方案中,步骤1包括:

步骤1.1.客户端向服务器发出证书请求;

步骤1.2.服务器向客户端发送一个数字证书,该数字证书包含一个公钥PK1;

步骤1.3.客户端使用PK1将用户上传的用户ID和PIN码加密后返回给服务器,M1=E(ID,PIN,PK1);

步骤1.4.服务器使用私钥PK2从接收到的密文M1中取出用户ID和PIN码,(ID,PIN)=D(M1,PK2),服务器通过验证用户ID和PIN码决定用户是否通过第一身份认证,如果数据库中不包含该用户信息,认证结束;如果认证通过,则开放系统公开资源接口。

上述技术方案中,使用Cookie文件建立安全信道的步骤如下:

步骤a.客户端向服务器发出建立安全信道请求;

步骤b.服务器接收到请求后,通过用户ID找到服务器数据库内对应的数据,从数据库中找到user_id的Value值,使用哈希函数散列Value值得到哈希值h1=HASH(Value),使用哈希值h1生成对称密钥SK,服务器使用用户ID作为随机种子,使用动态随机因子产生器生成动态随机因子r1,使用对称密钥SK加密r1得到密文M2=E(r1,SK),并发送给客户端;

步骤c.客户端在接收到服务器返回的密文M2后,从存储到本地Cookie文件中取出键为user_id的对应的Value值,使用哈希函数散列该值,得到哈希值h2=HASH(Va lue),使用哈希值h2生成对称密钥SK,使用对称密钥SK从M2中得到明文r2=D(M2,SK),客户端再使用对称密钥SK加密r2,得到密文M3=E(r2,SK),将密文M3发送给服务器;

步骤d.服务器使用步骤b中的对称密钥SK从M3得到明文r3=D(M3,SK),将r3和r1对比,不一致则向客户端发出拒绝信息,一致则向客户端发出建立安全信道成功信息,客户端和服务器使用相同的对称密钥SK进行数据传输。

上述技术方案中,第二身份认证步骤如下:

步骤:2a.1、用户在客户端输入身份信息N1,包括手机号num1,身份证号num2,邮箱地址num3;

客户端使用身份信息N1向PKG申请私钥(私人密钥生成器),PKG验证用户身份信息,验证通过后PKG向服务器发送动态随机因子请求信息,PKG生成系统参数,系统参数包括{G

步骤:2a.2.服务器收到PKG的请求信息后,产生动态随机因子

步骤:2a.3.PKG使用服务器返回的t,将随机产生的主密钥s

步骤:2a.4.客户端使用私钥S对Cookie中键为random_id的Value值r进行签名得到签名N2,N2=H

步骤:2a.5.服务器使用对称密钥SK解密密文M4,从中取出身份信息(N1,N2)=D(M4,SK),在服务器的数据库中验证该用户的身份信息N1,验证通过则使用用户身份信息生成公钥P

上述技术方案中,步骤2的中服务器生成Cookie数据步骤如下:

管理员通过在服务器数据库中预设用户信息,这些用户信息是能通过第二身份认证用户的身份信息;

服务器数据库中还预设有初始值为“0”的客户端Cookie验证标记字段,

当客户端Cookie验证标记字段值为“0”时,在客户端上传身份信息就可以登陆到系统,同时系统为这部分用户对应产生一条数据,该数据包括有两个键值对信息,分别是user_id和random_id及其对应的值,这两个键值对也会保存在客户端的本地Cookie文件中,同时将客户端Cookie验证标记字段值设置为“1”.

客户端Cookie验证标记字段值为“1”时,使用Cookie文件中保存的这两个键值对信息进行安全认证,具体为,读取客户端本地的Cookie文件中键为user_id的Value值,建立安全信道,读取客户端本地的Cookie文件中键random_id的Value值,进行第二身份认证;

当用户通过第二身份认证后,客户端本地保存包含有这两个键值对的Cookie文件,键为user_id和键为random_id,后续第二身份验证过程中因为这部分用户客户端本地的Cookie文件中由于有链为user_id的值,所以可以建立安全信道,有random_id的值,所以可以通过第二身份认证,所以即使该用户的身份信息泄露,盗取者在新的电脑上没有Cookie文件情况下也是不能通过验证的,这里就先验证了用户,再验证了Cookie。

上述技术方案中,生成系统参数的步骤包括:

步骤a.产生素数阶为q的两个群:(G

步骤b.随机产生主密钥

步骤

保密s

上述技术方案中,第三身份认证包括以下步骤

用户根据需求申请第三身份认证,用户在客户端上传自己的主机设备信息D1,该设备信息包括硬盘序列号X1、主板序列号X2,客户端通过安全信道使用对称密钥SK加密,将D1加密后上传给服务器,D2=E(D1,SK),服务器使用对称密钥SK解密,从中取出该设备信息D1,D1=D(D2,SK),将D1哈希散列之后得到H3=Hash(D1),H3与数据库中预存的数据进行比对,如果数据库中没有该数据,则拒绝用户的请求,否则通过第三身份认证,开放系统全部资源接口。

本发明还提供了一种基于Cookie和DR身份密码体制的多重身份认证方法的存储介质。

本发明还提供了一种基于Cookie和DR身份密码体制的多重身份认证装置,包括:

第一身份认证模块:用户使用用户账号和PIN码进行第一身份认证,在通过第一身份认证之后,可以访问到系统的公开资源;

第二身份认证模块:数据库内设置有客户端Cookie验证标记字段,用户根据需求发起第二身份认证时,

当客户端Cookie验证标记字段的值为“0”则直接使用用户信息进行验证,验证通过则会在服务器数据库生成一条包含两个键值对的数据,在客户端生成也包含这两个键值对信息的Cookie文件,客户端通过Cookie文件信息建立安全信道,同时将数据库内的客户端Cookie验证标记字段的值设置为“1”;

当客户端Cookie生成标记字值为“1”则客户端需要通过Cookie文件信息建立安全信道;

此后用户的认证过程中上传的所有信息都会通过该安全信道传输;

第二身份认证通过后,用户可以访问到系统的核心资源;

第三身份认证模块:用户根据需求使用设备信息进行第三身份认证,通过后用户可以访问到系统的敏感资源。

其他现有技术介绍:

Cookie以”名称-值“的键值对形式进行设置,还包括以下属性,失效时间(expires/max-age),有效路径(path),作用域(domain),安全属性(secure)和httponly属性。domain和path两个属性共同决定了Cookie能被哪些页面共享,生效时间决定了该Cookie的生命周期,secure属性指定后只有在使用SSL连接时Cookie才会发送给服务器。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号