消息摘要和密码破解防范

在加密安全领域中,如果不需要保证消息可以被完整的读取出来,只需要验证消息本身,则有消息摘要这类算法。摘要算法多用于信息的比对和验证,使得在不暴露原始信息,以及缩小比对量的情况下保证结果的正确性,这里涉及的算法包括:MAC、MD5、SHA1、SHA256等。


消息摘要算法


散列函数 Hash Function 又可称为散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数具有一个基本特性:如果两个散列值是不相同的,那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果,而相应的散列函数即被称为单向散列函数。但是如果散列值相同,两个输入值可能相同也可能不同,这种情况成为散列碰撞。

密码散列函数 Cryptographic Hash Function 又可称为加密散列函数、密码散列函数,属于散列函数的一种,是一种单向函数,它将一个不定长的输入数据转换成固定大小的结果,并且以这个结果很难回推输入的数据。这种散列函数的输入数据,通常被称为消息Message,而输出的结果,经常被称为消息摘要Message Digest或摘要Digest。总的来说,密码散列函数具有如下的重要特征:
具有确定性,即同样的消息输入具有同样的散列结果
对于任何一个给定的消息,能够快速运算出散列数值
难以由一个已知的散列数值,去推算原始的消息
对于消息的任何微小的改动,都会导致散列结果的巨大改变
两个不同的消息输入,一定会产生不同的散列数值
除了被用作传统的哈希函数,而在数据索引、指纹等方面应用外,密码散列函数在信息安全方面有很多的应用,包括数字签名、消息认证码、以及各种形式的认证。


破解防范


密码只要存在一天,就会有被攻击破解的可能,而我们之前介绍了不同的加密算法,也需要根据不同的使用环境进行选择。下面举一些例子已经防范的措施:

暴力破解法 Brute-force attack 又可称为穷举法,即攻击者会系统性的尝试所有可能的密码,直到找到真正的密码为止。
破解防范:暴力破解的有效性取决于密码的长度、复杂度等,如果暴力破解的耗时过长,就会导致破解没有意义。与此相对应,为避免受到暴力破解的攻击,我们可以添加一些防护手段,比如:增加密码的长度与复杂度、在系统中限制密码试错的次数、定时修改密码等。

字典攻击防范比暴力破解优化点的一种方式叫做字典攻击Dictionary Attack,这种方法就是给密码锁定某个范围,比如英文单词、生日的数字组合等,所有的英文单词大约10万个左右,这样就可以大大缩小密码的查找范围,相比暴力破解可以缩短破译时间。
破解防范:字典攻击是根据现有或常用的组合测试破解密码,这就要求我们在设置相应的密码时要避免使用固定的单词和组合,应尽量使用无意思的字母数字符号组合在设置密码。

中间人攻击防范
中间人攻击 MITM Middle in the Middle Attack 是指攻击者秘密地传递并可能改变两方的通信,而通信双方仍然相信他们是直接通信的。
破解防范:为了抵御在不安全的通道的通信需求,我们需要一些抵御中间人攻击的一些认证技术方案:公钥基础建设PKI使用公认的数字证书认证机构CA认证通信端;延迟测试的预估时间的超出等。

碰撞攻击防范
碰撞攻击 Collision Attack 是指找出两个不同的输入值却导致同样的散列值的一种方式,目前已经可以有效地攻击MD5和SHA-1。
有效地利用碰撞,可以使得所有数据全部碰撞,人为的将哈希表变成一个退化的单链表,使得各种操作的时间均提升了一个数量级,因此大量消耗CPU资源,导致系统无法快速响应请求,从而达到拒绝服务供给Dos的目的。
破解防范:避免使用已被证明可以被有效攻击的算法,使用更高安全性的散列算法,比如SHA-2。

彩虹表防范
彩虹表 Rainbow Table 是一个用于加密散列函数逆运算的预先计算好的表,常用于破解加密过的密码散列。这种方式常用于包含有限字符固定长度纯文本密码的加密,是一种典型的以空间换时间的方式,相比暴力破解使用较少的计算能力而更多的存储空间。它可以针对各种散列算法,已被确认有效的包括MD5和SHA-1,一般主流的彩虹表都在100G以上。
破解防范:彩虹表是针对特定的算法,尤其是不对称算法,比如MD5,进行有效破解的一种方法。所以同样的,避免使用已被证明可以被有效攻击的算法,使用更高安全性的散列算法,比如SHA-2。

重放攻击防范
重放攻击 Replay Attack 是一种通过欺骗性的重复发送或者延迟有效消息的网络攻击手段。
破解防范:防止重放攻击的一个手段是在加密信息片段上附上会话ID和编号,使用这种唯一且随机的标签,使得攻击者不能简单的重放信息。其他的方法包括一次性密码、时间戳等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值