首页
社区
课程
招聘
[翻译]深入了解MD4,MD5,SHA哈希密码算法与破解技术
发表于: 2017-3-4 07:24 15249

[翻译]深入了解MD4,MD5,SHA哈希密码算法与破解技术

2017-3-4 07:24
15249

此文前几日发在我的知乎专栏微博并得到不错的阅读量和赞赏、

微博阅读已破两百万


----------------------你就当上面是个广告好了,版主可删-----------------------------

简介
密码(password)是最广泛使用的认证系统之一,防止未经授权的用户访问系统,无论是离线还是在线。在大多数系统中,密码是通过加密存储的,以便为每个用户提供安全性。然而,在这些密码的加密之内,仍然存在漏洞。本文将回顾关于密码哈希(hash)函数的学术和出版文献,特别指出MD4,MD5,SHA算法以及在Linux操作系统中使用Salt字符串。

在此之后,洞察密码破解的方法为检验(reviews),确定字典攻击,暴力攻击和彩虹表(Rainbow Table)的使用。本次审查将允许更深入地了解安全功能和可能的漏洞在此机制内进行调查后。调查将使用UNIX开发的软件John Ripper和RainbowCrack来查看最常见的密码破解方法之一。

John Ripper是一个密码破解器,它将多密码密码破解技术组合到一个程序中,更具体地说,利用字典攻击和强力方法来识别用户的密码,并且可以针对各种密码加密算法运行。暴力和字典攻击生成所有可能的明文密码,因为它处理和比较哈希与目标哈希,一旦匹配的密码可以识别。彩虹表攻击是一种以空间换时间的黑客攻击方法,它将进行预计算,并把结果存储在所谓的彩虹表中。

彩虹表(彩虹表如何工作?)包含目标密码哈希运行直到它达到匹配的纯文本/散列链的列表。调查将首先主要在Linux操作系统中使用John Ripper; 对该系统中的密码文件运行字典/强力攻击,其使用SHA512算法。在Windows操作系统将调查Rainbow攻击,以从MD5哈希函数提取密码。我们将调查这两个软件,以允许解释哈希函数和密码破解技术在现代操作系统及其中的文件系统。下列调查突出并解释了使用破解技术作为访问用户系统的手段突出显示了在入侵方法和计算机取证中的使用。此外,这将提供对密码哈希算法的安全功能的进一步了解,并识别关键计算机网络安全中的漏洞,允许我们批判性地评估,理解和部署这些方法。

哈希函数(MD4,SHA,MD5和DES)和Salt字符串

所有系统通常都需要使用用户名和密码进行身份验证。解释了获得访问的典型实例分为两个阶段:

认证(Authentication) - 这是系统检查标识符的地方; 这可能是一个电子邮件地址或用户名。然后它将根据系统的密码文件检查密码,如果匹配正确,则允许访问。

授权(Authorisation) - 这是系统根据其数据库检查标识符或密码,以识别用户在该系统中的权限级别。

所以大多数系统都以加密格式存储和发送密码,以最大限度地防御潜在的攻击和漏洞。大多数系统包含使用输入字符串创建输出字符串的单向函数。

哈希算法是加密口令的最受欢迎的方法。当用户以明文形式创建密码时,它通过散列算法运行以产生存储在文件系统中的密码文本。三种最广泛使用的算法是MD5,SHA和RIPEMD; 然而所有算法都来自MD4的格式

总结了所使用的主要算法:

·MD4:具有3轮16步,输出位长度为128位。

·MD5:具有4轮16步,输出位长128位。

·SHA-1:具有4个20阶的步长和160位的输出位长度。

·RIPEMD-160:具有5轮16步,输出位长160位。

·SHA-256:具有64轮单步,输出位长度为256位。

·SHA-384:实际上与SHA-512相同,除了输出被截断为383位。

·SHA-512:具有80个单步的轮数和512位的输出位长度。

Linux和Windows之间的安全特性的主要区别是UNIX系统使用Salt Strings。如(Whitaker和Newman,2005)所述,salt字符串生成随机生成的值,该值随着使用密码哈希处理的每个密码存储。这允许为系统中的每个密码提供额外的安全性,特别是对于简单密码或重用密码。

调查字典和彩虹攻击密码哈希

首先,我们将使用John The Ripper来研究Linux内字典攻击和暴力攻击的功能。大多数Linux系统可以选择使用哪个哈希函数来存储密码,在Linux系统中,使用的哈希算法在文件/etc/login.defs中定义,以查看我们可以执行的算法:

这里,这使我们可以看到如何存储哈希函数和盐串。例如,如果散列与$ 1 $一起存储在它的前面,我们将知道它使用MD4算法来生成散列。为了运行字典攻击,我们必须在文本文件中具有目标密码哈希。这可以通过复制密码哈希值,只要你有权限,但也可以使用功能,如Linux中的Unshadow命令,在我们安装了John

运行命令:

这现在创建一个文本文件,密码哈希/ etc / shadow到文件passwd.1,我们需要对字典运行


John中,存储了用于攻击的词典字典,需要更大的词典以允许更快的解密和对更复杂的密码的攻击

包含已保存的哈希值的密码文件现在通过John运行。John从之前显示的字典中获取字符串,并计算每个可能的值,直到找到与目标哈希的完全匹配,识别密码。我们现在通过发出以下命令来执行此操作:


可以看出,我们现在已经加载了6个密码散列(因为这个系统上有6个用户)。出于本调查的目的,我们只想识别dfluser的密码。之后john运行字典攻击,它就会识别匹配

并将其存储

根据密码的复杂性,这可能需要不同的时间。正如你可以看到,在Linux中运行使用John的字典攻击对于简单的密码是相对有效的,并且使用这种字典攻击方法可以很容易地在Windows和Linux文件系统上使用。例如,如果被攻击者想要从另一个系统(如Windows)或SQL文件


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (23)
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2017-3-4 08:00
0
雪    币: 349
活跃值: (125)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
kanxue 感谢分享
加个精撒 - -
2017-3-4 09:30
0
雪    币: 349
活跃值: (125)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4

John the Ripper - usage examples 

可以参照这个来获取john相关配置文件

2017-3-5 04:54
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
写的非常细致,感谢!
2017-3-5 07:29
0
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
linso John the Ripper - usage examples 可以参照这个来获取john相关配置文件
精华鼓励!
2017-3-5 09:29
0
雪    币: 562
活跃值: (4347)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
mark
2017-3-6 10:32
0
雪    币: 216
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
上面有好几张图挂了
2017-3-14 15:39
0
雪    币: 349
活跃值: (125)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
9
Gkey 上面有好几张图挂了
这个编辑器挺难用的,转知乎看吧https://zhuanlan.zhihu.com/p/25446848
2017-3-19 05:58
0
雪    币: 184
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
准备学习一下
2017-5-20 17:35
0
雪    币: 92
活跃值: (519)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
翻译辛苦了。有点机翻的感觉
2017-5-20 18:25
1
雪    币: 207
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
啧啧啧,刚回国就这么得瑟,做了减法的人果然就是不一样
2017-5-20 18:52
0
雪    币: 222
活跃值: (185)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13
感谢!楼主
2017-6-9 13:46
0
雪    币: 325
活跃值: (186)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
引用自知乎的图挂了
2017-6-15 17:01
0
雪    币: 223
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
图挂了
2017-6-20 15:41
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16

呵呵,有时间看看,估计很难破解,穷举可能是唯一,故这谈不上真正意义的“破解”
菜农经过30年不懈的努力,终于终结了CRC!
http://www.21ic.com/tools/HotWC3_V1.23.html

上传的附件:
2017-6-27 15:36
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
楼主讲的很详细
2017-8-26 14:06
0
雪    币: 2785
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
上面有好几张图挂了 
2017-11-2 09:33
0
雪    币: 349
活跃值: (125)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
19
Howsk 啧啧啧,刚回国就这么得瑟,做了减法的人果然就是不一样[em_27]
你怕是嫉妒我数字比你大
2017-12-6 09:19
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
,,,,
2017-12-12 00:09
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
请教      对于软件破解      病毒分析相关的安全    对于常用的加密算法应该要学到什么程度      是会调用库的相应接口进行开发还是需要对算法有很深的了解,并自己动手实现一遍
2017-12-24 11:16
0
雪    币: 40
活跃值: (680)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
写了一个穷举居然还两百万阅读?    oclHashcat  都没用?
2017-12-27 10:14
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
果然是精华贴,赞
2017-12-31 19:24
0
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
穷举是一个了解加密算法的途径,至少能了解的更全面
2017-12-31 19:26
0
游客
登录 | 注册 方可回帖
返回
//