CN112235105B - 一种抗中间人攻击的动态口令认证方法 - Google Patents

一种抗中间人攻击的动态口令认证方法 Download PDF

Info

Publication number
CN112235105B
CN112235105B CN202011154370.2A CN202011154370A CN112235105B CN 112235105 B CN112235105 B CN 112235105B CN 202011154370 A CN202011154370 A CN 202011154370A CN 112235105 B CN112235105 B CN 112235105B
Authority
CN
China
Prior art keywords
server
user
password
kyo
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011154370.2A
Other languages
English (en)
Other versions
CN112235105A (zh
Inventor
王少辉
王平
邓志辉
王志伟
王化群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Posts and Telecommunications filed Critical Nanjing University of Posts and Telecommunications
Priority to CN202011154370.2A priority Critical patent/CN112235105B/zh
Publication of CN112235105A publication Critical patent/CN112235105A/zh
Application granted granted Critical
Publication of CN112235105B publication Critical patent/CN112235105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种抗中间人攻击的动态口令认证方法,主要包括注册阶段和登录阶段,本发明的设计基于RSA困难问题,并能够有效抵御中间人攻击和离线口令猜测攻击,相对于现有的口令认证方案,本发明:在认证过程中减少了用户和服务器执行加解密运算的次数,提高了认证效率;可以方便地解决了用户的异地登陆问题,而且不用将登陆信息存放在公用电脑上,登陆过程更加安全;能够有效抵御对口令的暴力破解攻击和中间人攻击,同时增加了双向认证,解决了伪服务器攻击的问题。

Description

一种抗中间人攻击的动态口令认证方法
技术领域
本发明涉及信息安全领域,特别是涉及一种抗中间人攻击的动态口令认证方法。
背景技术
口令认证技术面世以来,由于其便捷性,相对安全性,被广泛应用到我们生活的方方面面。从网站账户的登陆,到便捷的手机支付,随时随地都能见到口令的身影。但是随着认证技术的广泛使用,它也带来了一系列隐患。由于口令本身密钥空间有限,导致其容易遭受在线或离线的猜测攻击以及中间人攻击。
解决这些安全隐患的一个方法是使用一次性口令技术,也称动态口令技术。经典的动态口令技术如S/KEY,存在登陆次数有限制的问题,随后的设计SAS以及其更新版本则存在明文传输的问题。目前动态口令认证协议的设计要么无法抵御口令猜测攻击或中间人攻击,要么无法实现双向认证,并且便捷性差。
发明内容
有鉴于此,本发明的目的在于提供一种抗中间人攻击的动态口令认证方法,本发明主要解决的问题是:目前动态口令认证协议的设计要么无法抵御口令猜测攻击或中间人攻击,要么无法实现双向认证,并且便捷性差。
为实现上述的目的,本发明提供一种抗中间人攻击的动态口令认证方法,包括:注册阶段和登录阶段;
所述注册阶段包括如下步骤:
步骤S101、用户向服务器提出注册请求,并且通过安全信道将账号名和口令发送给服务器,账号名为id,口令为ρ;
服务器通过公钥加密算法生成公私钥对pks和sks,然后将pks和sks发送给用户;
步骤S102、用户接收服务器发送的公钥pks,通过口令生成器KYO生成x0,x0为动态口令,同时产生一对大素数q和p,计算:
n=q×p (1)
Figure GDA0003633652400000011
Figure GDA0003633652400000012
得到:
Figure GDA0003633652400000021
然后生成短消息M0,在计算
Figure GDA0003633652400000022
并且记录注册账户时的时间t:t=τ0
最后,用户生成一对非对称密钥pkc和skc,并且产生一个随机数rc,然后用户通过pks加密pkc,即
Figure GDA0003633652400000023
再使用skc加密rc
Figure GDA0003633652400000024
得到
Figure GDA0003633652400000025
Figure GDA0003633652400000026
Figure GDA0003633652400000027
发送至服务器;
步骤S103、服务器接收用户端发送的
Figure GDA0003633652400000028
然后判断id是否已经存在数据库中,若存在,则给出提示,该id已经注册,若不存在,则使用sks解密
Figure GDA0003633652400000029
得到
Figure GDA00036336524000000210
再使用pkc解密
Figure GDA00036336524000000211
得到
Figure GDA00036336524000000212
再比较rc
Figure GDA00036336524000000213
是否相等;
若不相等,则说明pkc被更改,则注册行为失败,断开连接;
若相等,服务器使用pkc解密
Figure GDA00036336524000000214
得到
Figure GDA00036336524000000215
Figure GDA00036336524000000216
存入服务器的数据库中,最后服务器向用户发出注册成功的信息;
步骤S104、用户接收到注册成功的信息后,利用口令生成器KYO中的F函数,所述F函数为回调函数,计算:
Figure GDA00036336524000000217
Figure GDA00036336524000000218
Figure GDA00036336524000000219
Fσ(ρ)=γ (6)
在公式(3)至公式(6)中,σ1S,U表示KYO中F函数回调xi的种子参数,σ2S,U表示KYO中F函数回调skc的种子参数,σ3S,U表示KYO中F函数回调Mi的种子参数,ρ表示为口令,M0表示短消息,γ表示KYO中PW文件校验用户口令ρ的随机数,
将登录信息(k,σ,γ)存储在PW文件中,并且将相关信息存储在文件T中;
所述相关信息为:
(S,U,k,σ1S,U,σ2S,U,σ3S,U) (7)
公式(7)中,S表示服务器的标识,U表示用户的标识,k表示KYO中T文件的索引;
所述登录阶段包括如下步骤:
步骤S201、用户将配套的智能卡插入终端设备,并且在终端设备中输入id和ρ;
步骤S202、智能卡通过KYO中的函数运算得到:
Figure GDA0003633652400000031
Figure GDA0003633652400000032
Figure GDA0003633652400000033
公式(8)至公式(10)中,i表示为用户第i次在服务器中登录账号,σ1S,U表示KYO中F函数回调xi的种子参数,σ2S,U表示KYO中F函数回调skc的种子参数,σ3S,U表示KYO中F函数回调Mi的种子参数,ρ表示为口令;
并且计算:
Figure GDA0003633652400000034
然后生成xi和随机短消息Mi,计算
Figure GDA0003633652400000035
并且记录此时的登录时间τi
最后,使用skc加密
Figure GDA0003633652400000036
得到
Figure GDA0003633652400000037
计算哈希值
Figure GDA0003633652400000038
发送
Figure GDA0003633652400000039
至服务器;
步骤S203、服务器收到
Figure GDA00036336524000000310
判断id是否已经存在数据库中,若不存在,则认证失败,断开连接;
若存在,服务器使用pkc,τi解密
Figure GDA00036336524000000311
得到:
Figure GDA00036336524000000312
公式(12)中,
Figure GDA00036336524000000313
表示为使用用户的公钥pkc解密
Figure GDA00036336524000000314
Figure GDA00036336524000000315
表示字符串的异或操作,τi表示为登录时间;
服务器计算哈希值
Figure GDA00036336524000000316
然后判断
Figure GDA00036336524000000317
与Tokenc中的哈希值是否相等,即是判断:
Figure GDA00036336524000000318
Figure GDA00036336524000000319
是否相等,
若不相等,则断开连接,认证失败;
若相等,则认证成功后,服务器将数据库中存储的
Figure GDA00036336524000000320
替换为
Figure GDA00036336524000000321
此时服务器中的Tokens更新为
Figure GDA00036336524000000322
最后服务器计算哈希值
Figure GDA00036336524000000323
再用pkc加密
Figure GDA00036336524000000324
得到
Figure GDA00036336524000000325
Figure GDA00036336524000000326
发送给用户。
进一步的,所述F函数选用SHA-256哈希函数,表达式为:
Fσ(ρ)=truncate32(SHA-256(σ||ρ))mod2l (13)
公式(13)中,||是字符连接操作,l为大于零的正整数,σ为回调函数的种子参数,truncate32操作符将结果从左边截断到前32位,结果为无符号大端数。
本发明的有益效果是:
1、本发明动态性的实现基于RSA困难问题,相较于基于离散对数困难问题的设计,本发明在认证过程中减少了用户和服务器执行加解密运算的次数,提高了认证效率。
2、本发明使用基于智能卡的移动认证架构,不仅方便地解决了用户的异地登陆问题,而且不用将登陆信息存放在公用电脑上,登陆过程更加安全。
3、本发明能够有效抵御对口令的暴力破解攻击和中间人攻击,同时增加了双向认证,解决了伪服务器攻击的问题。
附图说明
图1为本发明注册阶段各个执行主体之间信息交互的结构图。
图2为本发明登录阶段各个执行主体之间信息交互的结构图。
图3为本发明注册阶段的流程框图。
图4为本发明登录阶段的流程框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
也为了更清楚的说明本发明的实施例,我们先介绍和本实施例相关的两个重要技术:
技术1:KYO
KYO又称口令生成器,它的作用主要有两个:一是通过种子参数σ及γ校验用户输入口令ρ。二是通过回调函数F回调每次登录的动态口令xi,这样用户实际的口令ρ无需在信道传输,也无需保存在服务端。
本专利用户端KYO需要回调的参数包括:动态口令xi,用户私钥skc和短消息Mi,对于服务器S,用户U,KYO选取种子σ1S,U,使
Figure GDA0003633652400000041
选取种子σ2S,U,使
Figure GDA0003633652400000042
选取种子σ3S,U使
Figure GDA0003633652400000043
最后选取一对种子σ和γ使Fσ(ρ)=γ作为口令ρ的校验参数。
KYO将元组(k,σ,γ)储存在文件PW中,其中k作为文件T的索引。并且将元组(S,U,k,σ1S,U,σ2S,U,σ3S,U)在文件T中。PW文件和T文件保存在用户的电脑中。
当用户输入口令ρ到口令生成器KYO时,KYO通过文件PW校验口令ρ。首先KYO找到存放在PW文件的元组(k,σ,γ),使用σ,γ来校验口令ρ。如果输入的口令ρ满足Fσ(ρ)=γ,则口令校验通过。KYO继续通过在PW文件中的元组(k,σ,γ)中的索引k来找到对应的文件T中的元组(S,U,k,σ1S,U,σ2S,U,σ3S,U)。使用参数σ1S,U和函数
Figure GDA0003633652400000051
回调产生xi,使用参数σ2S,U和函数
Figure GDA0003633652400000052
回调产生skc,使用参数σ3S,U和函数
Figure GDA0003633652400000053
回调产生Mi。KYO不需要改变用户口令ρ就能随时用xi替换xi-1,因为很容易就可以找到一组种子使得
Figure GDA0003633652400000054
和Fσ'(ρ)=γ'。
技术2:哈希函数
哈希函数也可以称作单项散列函数或者杂凑函数,是指将任意长的信息m映射为固定长度的信息h(m)的一类函数。常见的哈希函数有MD5,SHA-256,SHA-512等。哈希函数有以下重要性质:
单向性:给定一个哈希值,很难找到这个哈希值所对应的原像值。
抗弱碰撞性:对于任意给定的消息x,找到满足y≠x且H(x)=H(y)的消息y在计算上是不可行的。
抗强碰撞性:找到任何满足H(x)=H(y)的不同消息对(x,y)在计算上是不可行的。
实施例1,参见图1至图4,本实施例为解决口令认证技术安全性和便捷性的问题,提出了一个基于智能卡的动态口令认证协议的新设计,本实施例利用了RSA困难问题以及智能卡技术,提高认证效率。
为了更清楚以及简要的描述,本实施例中引入用户Alice的概念,用户Alice即表示使用者Alice本人,也表示使用者Alice的移动终端或者固定终端,移动终端可以是智能手机,平板,掌上电脑,固定终端可以是台式电脑等等,在本实施例中,二者视为同一执行主体。
一种抗中间人攻击的动态口令认证方法,包括:注册阶段和登录阶段;
参见图1和图2,注册阶段包括如下步骤:
假设用户Alice在网站注册,并且她的账号名为id,口令为ρ,
步骤S101、用户Alice向服务器S提出注册请求,输入手机号和email,点击注册,并且将账号名和口令发送给服务器S,账号名为id,口令为ρ;
服务器S通过公钥加密算法生成公私钥对pks和sks,然后通过email或者短信将pks和sks发送给用户;
步骤S102、用户Alice接收服务器发送的公钥pks,通过口令生成器KYO生成x0,x0为动态口令,同时产生一对大素数q和p,计算:
n=q×p (1)
Figure GDA0003633652400000061
Figure GDA0003633652400000062
得到:
Figure GDA0003633652400000063
然后生成短消息M0,在计算
Figure GDA0003633652400000064
并且记录注册账户时的时间t:t=τ0
最后,用户Alice生成一对非对称密钥pkc和skc,并且产生一个随机数rc,然后用户Alice通过pks加密pkc,即
Figure GDA0003633652400000065
再使用skc加密rc
Figure GDA0003633652400000066
得到
Figure GDA0003633652400000067
Figure GDA0003633652400000068
Figure GDA0003633652400000069
发送至服务器S;
步骤S103、服务器S接收用户Alice发送的
Figure GDA00036336524000000610
然后判断id是否已经存在数据库中,若存在,则给出提示,该id已经注册,若不存在,则使用sks解密
Figure GDA00036336524000000611
得到
Figure GDA00036336524000000612
再使用pkc解密
Figure GDA00036336524000000613
得到
Figure GDA00036336524000000614
再比较rc
Figure GDA00036336524000000615
是否相等;
若不相等,则说明pkc被更改,则注册行为失败,断开连接;
若相等,服务器S使用pkc解密
Figure GDA00036336524000000616
得到
Figure GDA00036336524000000617
Figure GDA00036336524000000618
存入服务器S的数据库中,最后服务器S向用户Alice发出注册成功的信息;
步骤S104、用户Alice接收到注册成功的信息后,利用口令生成器KYO中的F函数,F函数为回调函数,计算:
Figure GDA00036336524000000619
Figure GDA00036336524000000620
Figure GDA00036336524000000621
Fσ(ρ)=γ (6)
在公式(3)至公式(6)中,σ1S,U表示KYO中F函数回调xi的种子参数,σ2S,U表示KYO中F函数回调skc的种子参数,σ3S,U表示KYO中F函数回调Mi的种子参数,ρ表示为口令,M0表示短消息,γ表示KYO中PW文件校验用户口令ρ的随机数,
将登录信息(k,σ,γ)存储在PW文件中,并且将相关信息存储在文件T中;
相关信息为:
(S,U,k,σ1S,U,σ2S,U,σ3S,U) (7)
公式(7)中,S表示服务器的标识,U表示用户的标识,k表示KYO中T文件的索引;
参见图2和图4,登录阶段包括如下步骤:
步骤S201、用户Alice将配套的智能卡插入终端设备,并且在终端设备中输入id和ρ;
步骤S202、智能卡通过KYO中的函数运算得到:
Figure GDA0003633652400000071
Figure GDA0003633652400000072
Figure GDA0003633652400000073
公式(8)至公式(10)中,i表示为用户Alice第i次在服务器中登录账号,σ1S,U表示KYO中F函数回调xi的种子参数,σ2S,U表示KYO中F函数回调skc的种子参数,σ3S,U表示KYO中F函数回调Mi的种子参数,ρ表示为口令;
并且计算:
Figure GDA0003633652400000074
然后生成xi和随机短消息Mi,计算
Figure GDA0003633652400000075
并且记录此时的登录时间τi
最后,使用skc加密
Figure GDA0003633652400000076
得到
Figure GDA0003633652400000077
计算哈希值
Figure GDA0003633652400000078
发送
Figure GDA0003633652400000079
至服务器S;
步骤S203、服务器S收到
Figure GDA00036336524000000710
判断id是否已经存在数据库中,若不存在,则认证失败,断开连接;
若存在,服务器S使用pkc,τi解密
Figure GDA00036336524000000711
得到:
Figure GDA00036336524000000712
公式(12)中,
Figure GDA00036336524000000713
表示为使用用户Alice的公钥pkc解密
Figure GDA00036336524000000714
Figure GDA00036336524000000715
表示字符串的异或操作,τi表示为登录时间;
服务器S计算哈希值
Figure GDA0003633652400000081
然后判断
Figure GDA0003633652400000082
与Tokenc中的哈希值是否相等,即是判断:
Figure GDA0003633652400000083
Figure GDA0003633652400000084
是否相等,
若不相等,则断开连接,认证失败;
若相等,则认证成功后,服务器S将数据库中存储的
Figure GDA0003633652400000085
替换为
Figure GDA0003633652400000086
此时服务器S中的Tokens更新为
Figure GDA0003633652400000087
最后服务器S计算哈希值
Figure GDA0003633652400000088
再用pkc加密
Figure GDA0003633652400000089
得到
Figure GDA00036336524000000810
Figure GDA00036336524000000811
发送给用户Alice。
具体的说,在本实施例中,F函数选用SHA-256哈希函数,表达式为:
Fσ(ρ)=truncate32(SHA-256(σ||ρ))mod2l (13)
公式(13)中,||是字符连接操作,l为大于零的正整数,σ为回调函数的种子参数,truncate32操作符将结果从左边截断到前32位,结果为无符号大端数
本实施例中涉及大量的符号及其数学运算,表1对实施例1中的符号和数学运算进行了总结和描述。
表1本专利使用的符号及描述
Figure GDA00036336524000000812
Figure GDA0003633652400000091
我们对实施例中提供方案的安全性进行说明。
首先给出方案设计基于的困难性假设。
1、CDH假设
给定一个q阶乘法群(循环群)G及其生成元g,CDH假设指出,给定ga,gb不存在多项式时间的概率算法可以计算得到gab
2、RSA假设
给定一个随机生成的RSA模数n,指数r及随机数
Figure GDA0003633652400000092
不存在多项式时间的概率性算法能输出
Figure GDA0003633652400000093
使得yr=zmodn成立。
结论1:本发明可有效抵御离线口令猜测攻击和被动攻击。
证明:
(1)若离线猜测攻击者获得了注册阶段的
Figure GDA0003633652400000094
攻击者想要登录成功就必须获得y0,而
Figure GDA0003633652400000095
故想得到y0就必须得到x0
Figure GDA0003633652400000096
使用非对称密钥加密,除非拥有保存在服务端的pkc,而密钥pkc使用了服务器的密钥pks加密,所以攻击者很难获得密钥pkc,因此攻击者也无法得到
Figure GDA0003633652400000097
再者,即使攻击者获得了
Figure GDA0003633652400000098
根据CDH假设,想要从
Figure GDA0003633652400000099
得到x0也是困难的。假如给与攻击者足够的时间采取暴力破解的方式得到了x0,此时用户已经完成多次登陆操作,要想登录成功必须获得下一次登录的xi。显然,攻击者无法凭借得到的x0来完成登录。
所以该方法面对离线猜测攻击和被动中间人攻击是安全的。
(2)离线猜测攻击者即使获得了登陆阶段的
Figure GDA00036336524000000910
也无法成功登录用户的账户。攻击者从Tokenc得到了yi-1,是无法登录成功的。因为下一次登录将需要yi的值。再者根据前面的证明,攻击者也很难从
Figure GDA00036336524000000911
中获得xi来进行下一次登录。
结论2:本发明可有效抵御主动中间人攻击。
证明:
假定攻击者能够获得第i次登录的
Figure GDA00036336524000000912
通过如下分析可以看出Tokenc很难被伪造,这样本专利面对主动中间人攻击是安全的。第一,攻击者如果没有获得skc,他只能将
Figure GDA0003633652400000101
替换为*,显然在登陆过程解密阶段就会登陆失败。第二,即使攻击者获得了skc并且将
Figure GDA0003633652400000102
但是由于增加了校验哈希值
Figure GDA0003633652400000103
的操作,所以一旦发现
Figure GDA0003633652400000104
被替换就能发现服务器遭到了攻击。第三,无论攻击者将
Figure GDA0003633652400000105
伪造为
Figure GDA0003633652400000106
的形式或者将
Figure GDA0003633652400000107
伪造成*形式,都无法通过校验函数
Figure GDA0003633652400000108
的校验。这样就保证了攻击者既无法成功登录也无法将*替换成登录信息,从而用户在下一次登录不会出现登录失败。
结论3:本发明实现了服务器和用户的双向认证,从而可有效抵御伪服务器攻击。
证明:
在用户登陆阶段,用户向服务器发送
Figure GDA0003633652400000109
通过校验
Figure GDA00036336524000001010
来验证用户。再通过服务器发送给用户的
Figure GDA00036336524000001011
来验证服务器。前面已经指出攻击者无法通过主动攻击来假冒合法用户,所以服务器可以验证用户的合法性。下面说明用户端可有效校验服务器的合法性。在校验服务器的时候,服务器发送
Figure GDA00036336524000001012
到用户端,用户端通过回调
Figure GDA00036336524000001013
并使用τi计算哈希值
Figure GDA00036336524000001014
再使用skc解密,对比两个哈希值是否相等,相等则服务器是合法的。由于服务器的
Figure GDA00036336524000001015
是通过用户端发送的
Figure GDA00036336524000001016
中的τi
Figure GDA00036336524000001017
来计算的,而要得到
Figure GDA00036336524000001018
就必须使用密钥skc来解密Tokenc中的
Figure GDA00036336524000001019
否则攻击者无法伪造正确的哈希值
Figure GDA00036336524000001020
这样攻击者就无法通过用户端的验证。
所以,该方法可以实现安全的双向认证。
结论4:本发明能够有效抵御重放攻击。
证明:
假如攻击者能够获得用户前i次登录服务器S过程中的
Figure GDA00036336524000001021
信息,当攻击者重放第j(j<=i)次的登录信息
Figure GDA00036336524000001022
来进行第i+1次登录时,由于第i+1次登录需要使用yi
Figure GDA00036336524000001023
才能登陆成功,所重放攻击无法成功。
综上可知,本专利不仅能有效解决目前方案中主动中间人攻击时用户无法登录的问题,还通过提供双向认证以抵御伪服务器攻击。除此之外,本专利只使用了一次加解密操作,而现有方案在认证过程中需进行三次加解密操作,可以看出本发明提升了口令认证协议的认证效率。
本发明未详述之处,均为本领域技术人员的公知技术。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

Claims (2)

1.一种抗中间人攻击的动态口令认证方法,其特征在于,包括:注册阶段和登录阶段;
所述注册阶段包括如下步骤:
步骤S101、用户向服务器提出注册请求,并且将账号名和口令发送给服务器,账号名为id,口令为ρ;
服务器通过公钥加密算法生成公私钥对pks和sks,然后将pks和sks发送给用户;
步骤S102、用户接收服务器发送的公钥pks,通过口令生成器KYO生成x0,x0为动态口令,同时产生一对大素数q和p,计算:
n=q×p (1)
Figure FDA0003633652390000011
Figure FDA0003633652390000012
得到:
Figure FDA0003633652390000013
然后生成短消息M0,在计算
Figure FDA0003633652390000014
并且记录注册账户时的时间t,t=τ0
最后,用户生成一对非对称密钥pkc和skc,并且产生一个随机数rc,然后用户通过pks加密pkc,即
Figure FDA0003633652390000015
再使用skc加密rc
Figure FDA0003633652390000016
得到
Figure FDA0003633652390000017
Figure FDA0003633652390000018
Figure FDA0003633652390000019
发送至服务器;
步骤S103、服务器接收用户发送的
Figure FDA00036336523900000110
然后判断id是否已经存在数据库中,若存在,则给出提示,该id已经注册,若不存在,则使用sks解密
Figure FDA00036336523900000111
得到
Figure FDA00036336523900000112
再使用pkc解密
Figure FDA00036336523900000113
得到
Figure FDA00036336523900000114
再比较rc
Figure FDA00036336523900000115
是否相等;
若不相等,则说明pkc被更改,则注册行为失败,断开连接;
若相等,服务器使用pkc解密
Figure FDA00036336523900000116
得到
Figure FDA00036336523900000117
Figure FDA00036336523900000118
存入服务器的数据库中,最后服务器向用户发出注册成功的信息;
步骤S104、用户接收到注册成功的信息后,利用口令生成器KYO中的F函数,所述F函数为回调函数,计算:
Figure FDA0003633652390000021
Figure FDA0003633652390000022
Figure FDA0003633652390000023
Fσ(ρ)=γ (6)
在公式(3)至公式(6)中,σ1S,U表示KYO中F函数回调xi的种子参数,σ2S,U表示KYO中F函数回调skc的种子参数,σ3S,U表示KYO中F函数回调M0的种子参数,ρ表示为口令,M0表示短消息,γ表示KYO中PW文件校验用户口令ρ的随机数,xi为动态口令;
将登录信息(k,σ,γ)存储在PW文件中,并且将相关信息存储在文件T中,其中,σ为回调函数的种子参数;
所述相关信息为:
(S,U,k,σ1S,U,σ2S,U,σ3S,U) (7)
公式(7)中,S表示服务器的标识,U表示用户的标识,k表示KYO中T文件的索引;
所述登录阶段包括如下步骤:
步骤S201、用户将配套的智能卡插入终端设备,并且在终端设备中输入id和ρ;
步骤S202、智能卡通过KYO中的F函数运算得到:
Figure FDA0003633652390000024
Figure FDA0003633652390000025
Figure FDA0003633652390000026
公式(8)至公式(10)中,σ1S,U表示KYO中F函数回调xi的种子参数,σ2S,U表示KYO中F函数回调skc的种子参数,σ3S,U表示KYO中F函数回调Mi的种子参数,ρ表示为口令;
并且计算:
Figure FDA0003633652390000031
然后生成xi和随机短消息Mi,计算
Figure FDA0003633652390000032
并且记录此时的登录时间τi
最后,使用skc加密
Figure FDA0003633652390000033
得到
Figure FDA0003633652390000034
计算哈希值
Figure FDA0003633652390000035
发送
Figure FDA0003633652390000036
至服务器;
步骤S203、服务器收到
Figure FDA0003633652390000037
判断id是否已经存在数据库中,若不存在,则认证失败,断开连接;
若存在,服务器使用pkc,τi解密
Figure FDA0003633652390000038
得到:
Figure FDA0003633652390000039
公式(12)中,
Figure FDA00036336523900000310
表示为使用用户的公钥pkc解密
Figure FDA00036336523900000311
Figure FDA00036336523900000312
表示字符串的异或操作,τi表示为登录时间;
服务器计算哈希值
Figure FDA00036336523900000313
然后判断
Figure FDA00036336523900000314
与Tokenc中的哈希值是否相等,即是判断:
Figure FDA00036336523900000315
Figure FDA00036336523900000316
是否相等,
若不相等,则断开连接,认证失败;
若相等,则认证成功后,服务器将数据库中存储的
Figure FDA00036336523900000317
替换为
Figure FDA00036336523900000318
此时服务器中的Tokens更新为
Figure FDA00036336523900000319
最后服务器计算哈希值
Figure FDA00036336523900000320
再用pkc加密
Figure FDA00036336523900000321
得到
Figure FDA00036336523900000322
Figure FDA00036336523900000323
发送给用户。
2.根据权利要求1所述的一种抗中间人攻击的动态口令认证方法,其特征在于,所述F函数选用SHA-256哈希函数,表达式为:
Fσ(ρ)=truncate32(SHA-256(σ||ρ))mod2l (13)
公式(13)中,||是字符连接操作,l为大于零的正整数,σ为回调函数的种子参数,truncate32操作符将结果从左边截断到前32位,结果为无符号大端数。
CN202011154370.2A 2020-10-26 2020-10-26 一种抗中间人攻击的动态口令认证方法 Active CN112235105B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011154370.2A CN112235105B (zh) 2020-10-26 2020-10-26 一种抗中间人攻击的动态口令认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011154370.2A CN112235105B (zh) 2020-10-26 2020-10-26 一种抗中间人攻击的动态口令认证方法

Publications (2)

Publication Number Publication Date
CN112235105A CN112235105A (zh) 2021-01-15
CN112235105B true CN112235105B (zh) 2022-07-29

Family

ID=74109346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011154370.2A Active CN112235105B (zh) 2020-10-26 2020-10-26 一种抗中间人攻击的动态口令认证方法

Country Status (1)

Country Link
CN (1) CN112235105B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624739A (zh) * 2012-03-30 2012-08-01 奇智软件(北京)有限公司 一种适用于客户端平台的认证授权方法和系统
CN106230840A (zh) * 2016-08-04 2016-12-14 南京邮电大学 一种高安全性的口令认证方法
CN110166225A (zh) * 2019-06-27 2019-08-23 南京航空航天大学 一种口令具有时效且认证次数不受限的动态口令认证方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624739A (zh) * 2012-03-30 2012-08-01 奇智软件(北京)有限公司 一种适用于客户端平台的认证授权方法和系统
CN106230840A (zh) * 2016-08-04 2016-12-14 南京邮电大学 一种高安全性的口令认证方法
CN110166225A (zh) * 2019-06-27 2019-08-23 南京航空航天大学 一种口令具有时效且认证次数不受限的动态口令认证方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Key Replicating Attack on Certificateless Authenticated Key Agreement Protocol;M. Hou;《2009 Asia-Pacific Conference on Information Processing, 2009, pp. 574-577, doi: 10.1109/APCIP.2009.277.》;20090719;全文 *

Also Published As

Publication number Publication date
CN112235105A (zh) 2021-01-15

Similar Documents

Publication Publication Date Title
JP4837729B2 (ja) 暗号認証方法、コンピュータシステム及びデータキャリア
CN102026195B (zh) 基于一次性口令的移动终端身份认证方法和系统
US8422670B2 (en) Password authentication method
JP2001313634A (ja) 通信方法
CN106789032B (zh) 服务器与移动设备间秘密共享的单一口令三方认证方法
CN109379176B (zh) 一种抗口令泄露的认证与密钥协商方法
Chen et al. Security analysis and improvement of user authentication framework for cloud computing
CN110719172B (zh) 区块链系统中的签名方法、签名系统以及相关设备
Yin et al. Two‐Round Password‐Based Authenticated Key Exchange from Lattices
US8954728B1 (en) Generation of exfiltration-resilient cryptographic keys
Yoon et al. A new authentication scheme for session initiation protocol
Pu et al. Secure verifier-based three-party password-authenticated key exchange
Gentry et al. Password authenticated key exchange using hidden smooth subgroups
CN116032655B (zh) 一种可抵御计时攻击的身份鉴别方法以及系统
CN112235105B (zh) 一种抗中间人攻击的动态口令认证方法
Song et al. Hardening password-based credential databases
Tan Privacy‐Preserving Two‐Factor Key Agreement Protocol Based on Chebyshev Polynomials
Odelu et al. A secure effective dynamic group password-based authenticated key agreement scheme for the integrated EPR information system
EP1440549B1 (en) Authentication of a remote user to a host in a data communication system
Harkins Secure pre-shared key (PSK) authentication for the internet key exchange protocol (IKE)
Wang et al. A ntru-based access authentication scheme for satellite terrestrial integrated network
Kiefer Advancements in password-based cryptography
Yoon et al. Attacks and solutions of Yang et al.'s protected password changing scheme
Shojaie et al. Improving EAP-TLS performance using cryptographic methods
JP5392741B2 (ja) Rsaをベースとしたパスワード認証方式及びその応用

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant