18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 电子商务 > 移动商务智能安全(下篇):消息摘要与密码破解防范

移动商务智能安全(下篇):消息摘要与密码破解防范

时间:2023-03-22 02:56:01 | 来源:电子商务

时间:2023-03-22 02:56:01 来源:电子商务

点击链接阅读:移动商务智能安全(上篇):加密算法之对称与非对称

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

消息摘要算法

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

密码散列函数 Cryptographic Hash Function 又可称为加密散列函数、密码散列函数,属于散列函数的一种,是一种单向函数,它将一个不定长的输入数据转换成固定大小的结果,并且以这个结果很难回推输入的数据。这种散列函数的输入数据,通常被称为消息Message,而输出的结果,经常被称为消息摘要Message Digest或摘要Digest。总的来说,密码散列函数具有如下的重要特征:

除了被用作传统的哈希函数,而在数据索引、指纹等方面应用外,密码散列函数在信息安全方面有很多的应用,包括数字签名、消息认证码、以及各种形式的认证。

MD5

消息摘要算法 MD5 Message Digest Algorithm 是一种密码散列函数,可以产生出一个128位,即16字节的散列值,用于确保信息的完整性。MD5由MD4、MD3、MD2改进而来,主要是增强了算法的复杂度和不可逆性。MD5目前已被证实无法防止碰撞攻击,所以不适用于安全性认证,即不可用于SSL公开密钥认证、数字签名等方面。但是MD5具有简单、稳定、快速的特征,所以在一些普通数据的错误检查应用中依然被广泛应用,比如文件下载的MD5校验和。

MD5以512位分组处理输入的信息,每一组又被划分为16个32位子分组,经过特定的程序流程,生成四个32位分组数据,最终这四组数据结合成128位的散列值作为最终的结果。

SHA

安全散列算法 SHA Secure Hash Algorithms 包括一个密码散列函数家族,是FIPS所认证的安全散列算法。

SHA-0:1993年发布,160位散列函数,存着严重缺陷被很快撤回,为SHA-1的前身。

SHA-1:1995年发布,160位散列函数,类似于MD5的算法,在很多安全协议中广为使用,比如TLS、SSL、SSH等,被视为MD5的后继者,2015年被Google正式宣布攻破。

SHA-2:2001年发布,拥有两组散列函数,包括32位字的SHA-256以及64位字的SHA-512,它还包括各种变种SHA-224、SHA-384、SHA-512/224、SHA-512/256(后缀数字即散列位数),尚未被有效攻破,但算法与SHA-1类似。

SHA-3:2005年发布,支持SHA-2的相同散列长度,但内部结构得到很大的更新,作为一个未来可替换的加密散列算法存在。

目前主流使用SHA-2,比如SHA-256,其算法过程与MD5类似:

与MD5类似,简单地说,SHA256算法的核心就是用512位的信息块来改变256位链接变量的状态,最终的状态即是256输出散列值。

MAC

消息认证码 MAC Message Authentication Code,又称为消息鉴别码、文件消息认证码、讯息鉴别码、信息认证码等,是指经过特定算法后产生的一小段信息,通过验证消息传递过程中是否遭到更改以检查某段消息的完整性,以及作为消息来源的身份验证的一种方式,确认消息的来源。

MAC不会对信息保密,若要同时实现保密认证,需要同时对信息进行加密。在实际应用中,通常会使用带密钥的散列函数HMAC,或者块密码的带认证工作模式CBC-MAC。

HMAC

密钥散列消息认证码 HMAC Keyed Hash Message Authentication Code 使用密码散列函数,结合一个加密密钥,计算生成消息认证码。HMAC既可以用来保证数据的完整性,也可以用作某个消息的身份验证。

MD5、SHA都可以作为HMAC的散列算法被使用,相应的HMAC算法就可以被称为 HMAC-MD5, HMAC-SHA。

编码

Base64

Base64 是一种基于64个可打印字符来表示二进制数据的表示方法,2的6次方为64,即以6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即三个字节可表示4个可打印字符。

Base64严格意义不能算是一种加密方式,只是将文本变得不那么可以直接看出来而已。

在Base64中可打印字符包括A-Z、a-z、0-9,总计62,再加上可能因系统而不同的两个可打印字符。Base64常用于处理文本数据的场合,处理一些二进制数据,比如MIME的email、在XML中存储数据等。

MIME

在MIME格式的电子邮件中,Base64可以将二进制的字节序列数据编码成ASCII字符序列构成的文本,使用时除了字母和数字外,加上加号"+"和斜杠"/",共计64个字符,等号"="用作后缀。另外,在电子邮件中,每76个字符后需要加一个回车换行,另外使用"="补足尾部不足3字节的部分。

破解防范

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

暴力破解防范

暴力破解法 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和编号,使用这种唯一且随机的标签,使得攻击者不能简单的重放信息。其他的方法包括一次性密码、时间戳等。

数据来源:

Wikipedia MD5: https://en.wikipedia.org/wiki/MD5

Wikipedia SHA-2: https://en.wikipedia.org/wiki/SHA-2

Wikipedia MAC: https://en.wikipedia.org/wiki/Message_authentication_code

Wikipedia HMAC: https://en.wikipedia.org/wiki/Hash-based_message_authentication_code

Wikipedia Base64: https://en.wikipedia.org/wiki/Base64

我们会每周推送商业智能、数据分析资讯、技术干货和程序员日常生活,欢迎关注我们的本站公众号“微策略中国”或微信公众号“微策略 商业智能"。

关键词:密码,防范,商务,安全,移动

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭