一种防重放攻击的加密方法技术

技术编号:15519613 阅读:139 留言:0更新日期:2017-06-04 09:24
本发明专利技术提供了一种防重放攻击的加密方法,包括:发送端设定当前时间戳及以时间戳为基准的有效时间段,在有效时间段内分别对明文及对应随机生成的第一随机数进行加密及发送,加密后的明文和第一随机数在以时间戳为基准的有效时间段内保持不变;接收端在时间段内接收并解密加密后的明文及与对应的第一随机数,其中,在以时间戳为基准的有效时间段内,将存储的仍在有效时间段内所有第一随机数与解密后的第一随机数一一比对,如果均不同则保存解密后的明文及对应的第一随机数并存储该解密后的第一随机数以及记录解密后的第一随机数的有效期;否则,删除解密后的第一随机数以及记录解密后的第一随机数的有效期。本发明专利技术可以防御重放攻击。

Encryption method for preventing replay attack

The present invention provides a method of encryption, anti replay attacks include: sending time stamp and to set the current timestamp as the base of the effective time period, in the effective period of time were the first random number of plaintext and corresponding randomly generated encrypted and sent encrypted plaintext and the first random number remains unchanged in the effective time to time stamp for reference; receiving a first random number, in the end of period of time to receive and decrypt encrypted plaintext and the corresponding one in the valid period to time stamp for the benchmark, the storage is still in the effective period of the first random number and decryption after all the first random Shuyiyi alignment, if different valid plaintext decrypted and stored corresponding to the first random number and stores the decrypted first random number and record the decrypted random number first; Otherwise, the first random number after decryption is deleted, and the validity period of the first random number after decryption is recorded. The invention can defend replay attack.

【技术实现步骤摘要】
一种防重放攻击的加密方法
本专利技术属于网络安全
,具体地说,尤其涉及一种防重放攻击的加密方法。
技术介绍
1946年世界上出现了第一台电子计算机,互联网的雏形ARPANET也出现了几十年了,电子计算机和互联网经过了长足的发展,已经遍布全世界并具有数量众多的用户和网站以及其他应用。随着互联网的发展,网络安全问题也越来越严重。入侵与反入侵、网络攻击与防御措施愈演愈烈,互联网的安全时刻经受着考验。信息安全包含计算机安全与网络安全,而网络安全又包含很多方面:1、内容保护:主要是通过加密技术来实现,以防止非授权的访问;2、完整性保护:防止信息遭到篡改的技术;3、身份认证:能够认证用户的身份,防止未注册用户使用服务的技术;4、安全传输:如何建立安全传输通道的技术;5、权限管理:限制用户行为的技术,保障用户只在权限许可范围内申请服务。除此之外还有一些例如入侵检测和入侵防护等。安全是永无止境的,现在的网络安全现状对于安全技术提出了更高的要求。网络攻击有很多种形式,其中常见的有:1、中间人攻击:通过欺骗客户端与服务器,在客户端与服务器之间扮演一个“中间人”的角色而同时得到两方面的信息的攻击形式;2、重放攻击:通过使用其他方式得来的以前的消息伪装成正确的新鲜的消息来获取信息的攻击形式;3、密码猜测攻击:通过在线或离线的方式猜测用户的密码的攻击形式。重放攻击是最基本、最常用和危害性最大的一种攻击认证协议的形式。重放攻击也称为新鲜性攻击,即攻击者通过重放消息或消息片段达到对主体进行欺骗的攻击行为,其主要用于破坏认证正确性。在重放攻击的分析中我们假设认证协议使用的加密体制是安全的,即客户端与服务端之间使用密钥加密的消息是可靠的,攻击者无法解密出来。攻击者通过重放或者转发本回合中的消息或其它回合的消息进行攻击。重放攻击可以根据层次来分类:同一协议同一消息步同一消息块层次,攻击者可能使用相同的消息块(同一个协议或者不同的协议)伪装成正确的消息块来发起攻击。同一协议同一消息步不同消息块层次,攻击者可能利用同一消息步不同消息块间的相似性重用消息块来发起可能的攻击。同一协议不同消息步层次,攻击者可能利用不同消息步中消息块的相似性来发起重放攻击。这里的相似性包括消息内容的相似性和加密密钥的相似性。在协议间这个层次,攻击者可能会利用协议间的一些消息块的相似性来设计攻击协议,或者探寻协议本身的漏洞,从而实现重放攻击。上文的一些名词解释:协议:指的是通信协议,是客户端与服务端双方约定好的消息格式以及其他内容。消息步:指的是通信协议中的一步,也就是一条消息:从服务端发给客户端或者从客户端发给服务端的消息。消息块:指的是消息步中的具体分块,同一消息步中可能有明文、密文的消息块,也可能有加密密钥不同的消息块。攻击结果有下面的一些情况:1、攻击者冒充服务器用已知道会话密钥的旧消息发给申请密钥的实体,结果攻击者知道双方的会话密钥;2、攻击者冒充申请密钥实体的一方,用已知道会话密钥的旧消息去欺骗另一方,用冒充身份与另一方共享会话密钥;3、攻击者通过发起几个回合的申请密钥得到不同会话密钥的加密消息,然后重新组合不同会话密钥的加密消息发给申请会话密钥的实体,让申请密钥的双方得到的密钥不一致,达到攻击的效果;4、攻击者阻止一些消息,让申请密钥的一方认为他们的密钥申请成功,但另一方根本不知道,甚至完全没有参与,实现攻击。现有的对于重放攻击的防御方式主要有时间戳、随机数、消息计数几种。时间戳是一个代表当前时间的数字或者其他形式的数据,它的作用是标识这一条消息是什么时候发出的,而消息的接收端仅仅接收时间戳代表的时刻足够接近当前时刻的消息。它能够防御重放攻击的原理是重放的消息将远离当前时刻,通过时间戳的方式,就能够将正确的消息与重放消息区分出来。虽然这种方式要求通信的各方保持至少是相对宽松的时钟同步,但它仍然是广泛使用的防御重放攻击的手段。它简单有效,设置一个正确消息的时间窗口即可。但是如果重放的消息就在当前的时间窗口内,那么就要耗费比较大的代价去辨别正确与重放的消息了。随机数是使用随机数算法生成的,它的主要特点是无法预测、在较长时间内不会重复。它能够防御重放攻击的原理是由于它无法预测而且不会重复,那么重放的消息必定含有相同的随机数,利用这样的特性可以加以检测,就能够将正确的消息与重放消息区分出来。这种方式对于随机数算法的要求很高,而在实际应用的随机数算法中,无法预测、不会重复仅是理想情况,实际上仅能在一定程度上做到这一点。消息计数指的是对于同一协议中的每条消息/消息块都进行计数,通常是要求协议的另一方必须返回当前消息计数+1的消息计数,或者其他能够预测的有规律的消息计数。通过这种方式,与随机数类似,每条消息都是唯一的,就能够正确区分正确的消息与重放消息。这种方式的缺陷是很难在安全和维护代价之间找到平衡,安全则维护复杂,维护简单则安全性不足。目前的防重放攻击的方法与重放攻击有很多研究,但都有各自的缺陷,对于安全与运行、维护很难找到平衡,而且也不能完美地防御重放攻击。如果单独使用以上三种方法防御重放攻击,则它们都有各自的缺陷;联合使用虽然加强了安全性,却难以兼顾各方面的性能。虽然在一般环境下它们的安全性足够,但是对于安全要求严格的场合,它们就无法满足要求,这时候我们需要一种能够完美地防御重放攻击的系统。
技术实现思路
为解决以上问题,本专利技术提供了一种防重放攻击的加密方法,用以防御重放攻击。根据本专利技术的一个实施例,提供了一种防重放攻击的加密方法,包括:发送端设定当前时间戳及以所述时间戳为基准的有效时间段,在所述有效时间段内分别对明文及对应随机生成的第一随机数进行加密及发送,加密后的明文和第一随机数在以所述时间戳为基准的有效时间段内保持不变;接收端在所述时间段内接收并解密加密后的明文及与对应的第一随机数,其中,在以所述时间戳为基准的有效时间段内,将存储的仍在所述有效时间段内所有第一随机数与解密后的第一随机数一一比对,如果均不同则保存解密后的明文及对应的第一随机数并存储该解密后的第一随机数以及记录解密后的第一随机数的有效期;否则,删除解密后的第一随机数以及记录解密后的第一随机数的有效期。根据本专利技术的一个实施例,所述发送端对明文及对应随机生成的第一随机数进行加密进一步包括以下步骤:对初始密钥进行第一轮加密并取哈希值以获得第一密钥;将当前时间戳和第一密钥组合后进行第二轮加密并取哈希值以获得第二密钥;根据第二密钥生成第二随机数;采用第一密钥对第二随机数进行加密以产生加密流;采用所述加密流对明文及对应随机生成的第一随机数进行加密。根据本专利技术的一个实施例,将当前时间戳和第一密钥组合包括将当前时间戳附加于第一秘钥后。根据本专利技术的一个实施例,所述发送端生成所述第一随机数进一步包括以下步骤:对第一随机量、当前时间戳和用户ID进行第一轮加密并取哈希值以获得第三密钥;将第二随机量与第三密钥组合后进行第二轮加密并取哈希值以获得第四密钥;根据第四密钥生成第三随机数;采用第三密钥对第三随机数进行加密以产生所述第一随机数,所述第一随机数与明文一一对应并保持不变。根据本专利技术的一个实施例,将第二随机量与第三密钥组合包括将第二随机量附加在第三秘钥后或第三秘钥上。根据本专利技术的一个实施例,根据第二密钥本文档来自技高网
...
一种防重放攻击的加密方法

【技术保护点】
一种防重放攻击的加密方法,包括:发送端设定当前时间戳及以所述时间戳为基准的有效时间段,在所述有效时间段内分别对明文及对应随机生成的第一随机数进行加密及发送,加密后的明文和第一随机数在以所述时间戳为基准的有效时间段内保持不变;接收端在所述时间段内接收并解密加密后的明文及与对应的第一随机数,其中,在以所述时间戳为基准的有效时间段内,将存储的仍在所述有效时间段内所有第一随机数与解密后的第一随机数一一比对,如果均不同则保存解密后的明文及对应的第一随机数并存储该解密后的第一随机数以及记录解密后的第一随机数的有效期;否则,删除解密后的第一随机数以及记录解密后的第一随机数的有效期。

【技术特征摘要】
1.一种防重放攻击的加密方法,包括:发送端设定当前时间戳及以所述时间戳为基准的有效时间段,在所述有效时间段内分别对明文及对应随机生成的第一随机数进行加密及发送,加密后的明文和第一随机数在以所述时间戳为基准的有效时间段内保持不变;接收端在所述时间段内接收并解密加密后的明文及与对应的第一随机数,其中,在以所述时间戳为基准的有效时间段内,将存储的仍在所述有效时间段内所有第一随机数与解密后的第一随机数一一比对,如果均不同则保存解密后的明文及对应的第一随机数并存储该解密后的第一随机数以及记录解密后的第一随机数的有效期;否则,删除解密后的第一随机数以及记录解密后的第一随机数的有效期。2.根据权利要求1所述的方法,其特征在于,所述发送端对明文及对应随机生成的第一随机数进行加密进一步包括以下步骤:对初始密钥进行第一轮加密并取哈希值以获得第一密钥;将当前时间戳和第一密钥组合后进行第二轮加密并取哈希值以获得第二密钥;根据第二密钥生成第二随机数;采用第一密钥对第二随机数进行加密以产生加密流;采用所述加密流对明文及对应随机生成的第一随机数进行加密。3.根据权利要求2所述的方法,其特征在于,将当前时间戳和第一密钥组合包括将当前时间戳附加于第一秘钥后。4.根据权利要求2或3所述的方法,其特征在于,所述发送端生成所述第一随机数进一步包括以下步骤:对第一随机量、当前时间戳和用户ID进行第一轮加密并取哈希值以获得第三密钥;将第二随机量与第三密钥组合后进行第二轮加密并取哈希值以获得第四密钥;根据第四密钥生成第三随机数;采用第三密钥对第三随机数进行加密以产生所述第一随机数,所述第一随机数与明文一一对应并保持不变。5.根据权利要求4所述的方法,其特征在于,将第二随机量与第三密钥组合包括将第二随机量附加在第三秘钥后或第三秘钥上。6.根据权利要求2所述的方法,其特征在于,根据第二密钥生成第二机数进一步包括以下步骤:根据明文长度设定第一缓冲区长度和第二缓冲区长度,其中,所述第一缓冲区长度为四分之一明文长度,所述第二缓冲区长度为四分之一明文长度加上31字节;基于所述第一缓冲区长度、PMMLCG算法和所述第二秘钥生成第...

【专利技术属性】
技术研发人员:杨成张楠吴晓雨朱亚平
申请(专利权)人:中国传媒大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1