>> In a future unit, we'll learn how attackers can get possession
of a database containing hashed passwords.

>>在以后的单元中,我们将学习攻击者如何获得包含散列密码的数据库。

For now, we'll just assume they haven't.

现在,我们假设它们没有。

The first possible attack is a brute force attack which might be necessary
when dealing with complex passwords.

第一种可能的攻击是蛮力攻击,在处理复杂密码时可能需要蛮力攻击。

Complex passwords have some or all of the following characteristics:
Changed in regular time intervals, like 180 days; a minimum length, for instance,
10 characters; using at least three of the following categories: Upper case letters,
lower case letters, numbers, symbols, can't be reused or at least going back
in the history of a number of recent passwords.

复杂密码具有以下部分或全部特征:定期更改密码,比如180天;最小长度,例如,10个字符;至少使用以下三种类型中的三种:大写字母、小写字母、数字、符号,不能重复使用,或者至少不能追溯到最近密码的历史。

This is why there's a minimum time frame for a password, in some cases,
to prevent users from entering 10 passwords so they can get back to their favorite one.

这就是为什么在某些情况下,密码有最小的时间限制,以防止用户输入10个密码,这样他们就可以回到自己喜欢的密码。

In May 2017, NIST, the National Institute of Standards and Technology, drafted guidelines
that dealt a big blow to complex passwords.

2017年5月,美国国家标准与技术研究院(NIST)起草了一份指南,对复杂的密码进行了重大打击。

NIST recommended to remove periodic password change requirements and to remove the need
for required character groups of uppercase letters, lowercase letters, numbers and symbols.

NIST建议取消定期修改密码的要求,并取消对大写字母、小写字母、数字和符号的字符组的需要。

NIST recommended to add the screening of possible passwords
against password lists and known compromised passwords.

NIST建议根据密码列表和已知的密码添加可能的密码筛选。

The belief is that overly complex passwords and passwords
that change too frequently are too hard for users to remember
and these users will resort to writing them down.

他们认为,过于复杂的密码和变化太频繁的密码对用户来说太难记了,他们会把密码写下来。

Furthermore, keystroke logging, phishing, and social engineering attacks work just as well
on lengthy complex passwords as they do on simple ones.

此外,击键记录、钓鱼和社会工程攻击对复杂的长密码和简单密码的效果一样好。

So let's talk about doing this brute force attack.

让我们来谈谈这种蛮力攻击。

One method involves iterating through all possible lowercase letters, uppercase letters,
numbers, and symbols for all lengths.

一种方法涉及遍历所有长度的所有可能的小写字母、大写字母、数字和符号。

That could take forever.

这可能需要很长时间。

To speed things up, you can restrict the iterations to a minimum length
and maximum length of characters.

为了加快速度,可以将迭代限制为字符的最小长度和最大长度。

Another restriction for speed involves the character sets, which could be just letters,
just lowercase letters, just uppercase letters, just numbers, just symbols,
or some combination of different character sets.

速度的另一个限制涉及字符集,字符集可以是字母、小写字母、大写字母、数字、符号或不同字符集的某种组合。

You could even use a program like Crunch which uses all the previously mentioned restrictions
but also gives you more control over specifics.

您甚至可以使用像Crunch这样的程序,它使用前面提到的所有限制,但也为您提供了对细节的更多控制。

Examples include allowing just certain characters from a single character set
or multiple character sets as well as including a known string, like a birthdate.

示例包括只允许来自单个字符集或多个字符集的特定字符,以及包含已知的字符串,如生日。

Crunch's generated word list can be dynamically passed to a program
that attempts to crack the passwords.

Crunch生成的单词列表可以动态传递给试图破解密码的程序。

The Crunch word list can also be saved to a file and later passed
to a password-cracking program, like "John the Ripper."

关键字列表也可以保存到一个文件中,然后传递给一个密码破解程序,比如“开膛手约翰”(John The Ripper)。

John the Ripper, though, can do a brute force attack on its own, without any input file.

不过,开膛手约翰可以在不需要任何输入文件的情况下自行进行蛮力攻击。

For the actual cracking, the generated words are hashed and the hashes are compared
to the stolen password-hash database file.

对于实际的破解,将生成的单词进行哈希,并将哈希值与被盗的密码哈希数据库文件进行比较。

If a generated hash matches a hash from the stolen database,
the attacker can simply associate the matching hash with its plain text input.

如果生成的哈希值与被盗数据库中的哈希值匹配,攻击者可以简单地将匹配的哈希值与其纯文本输入关联起来。

Remember, algorithms for hashing, like algorithms for encryption, are never secret.

记住,哈希算法,就像加密算法一样,从来都不是秘密。

Seeing a hashed password database is, in most cases, all you need to determine the algorithm
since the lengths of the hashes are fixed for each function,
like MD5, SHA-1, SHA-256, and SHA-512.

在大多数情况下,只需要查看散列密码数据库就可以确定算法,因为每个函数(如MD5、SHA-1、SHA-256和SHA-512)的散列长度都是固定的。

The pro to a brute force attack is that you are guaranteed
to find the matching hash trying all possible characters.

使用蛮力攻击的好处是,您可以确保在尝试所有可能的字符时找到匹配的散列。

The con is you might not be alive to see it.

问题是你可能没有活着看到它。

The time needed to parse through tons and tons of permutations and combinations
of letters is a reason why you might decide to go the route
of a dictionary attack or a rainbow table attack.

解析大量字母排列和组合所需的时间是您可能决定采用字典攻击或彩虹表攻击的原因之一。

Long and strong passwords render such an attack useless since hackers don't want to tie
up so many resources in cracking passwords for hours, days, weeks, months, and years.

长而强的密码使这样的攻击毫无用处,因为黑客不希望占用这么多资源来破解密码,时间长达数小时、数天、数周、数月甚至数年。

转载于:https://www.cnblogs.com/sec875/articles/10015910.html

Unit 2: Password Cracking 2.1 Password Cracking Brute Force Attacks相关推荐

  1. Unit 2: Password Cracking 2.1 Password Cracking Introduction to Password Cracking

    >> A past IBM cybersecurity intelligence index report concluded that 95% of security breaches ...

  2. INPUT type=password 元素 | input type=password 对象

    INPUT type=password 元素 | input type=password 对象     属性 描述 ACCESSKEY accessKey 设置或获取对象的快捷键. ATOMICSEL ...

  3. 关于mysql修改密码 set password for root@localhost = password(‘xxx‘);报错解决方法

    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456'); ERROR 1064 (42000): You have an ...

  4. SET PASSWORD FOR ‘root‘@localhost=PASSWORD(‘XXXX‘);报错

    原因:数据库版本较高 老版本 SET PASSWORD FOR 'root'@localhost=PASSWORD('XXXXX'); 新版本 SET PASSWORD FOR root@localh ...

  5. mysql5.7修改密码set password for ‘root‘@‘localhost‘=password(‘123456‘);

    mysql5.7修改密码 set password for 'root'@'localhost'=password('123456');

  6. mysqladmin: unable to change password; error: ‘Your password does not satisf

    装完mysql启动服务,第一次使用需要重置密码,显示我输入的密码"123456"太简单,在个人练习过程中,不想把密码设置太复杂 # grep password /var/log/m ...

  7. flask 8用户认证_Salted Password Hashing

    原文:https://crackstation.net/hashing-security.htm 翻译:deepL 红字部分的翻译有空再想想 Salted Password Hashing - Doi ...

  8. 2020测试工具索引

    初次发布文章时,共收集435个工具! 这些测试工具均为博主人肉爬虫出来的,数据来源于: 百度.Google 各大博客.门户网站.论坛 个人测试经验 在整理过程中,我会尽量去官网找到官方对该工具的描述, ...

  9. BlackArch-Tools

    BlackArch-Tools 简介安装在ArchLinux之上添加存储库从blackarch存储库安装工具替代安装方法BlackArch Linux Complete Tools List 简介 B ...

最新文章

  1. $cfg_dbtype = mysql_多库操作2:终于实现多个数据库操作
  2. Java爬虫https网页内容报错SSLHandshakeException信任(忽略)所有SSL证书
  3. 【新星计划】MATLAB-定义函数
  4. easyui 如何为标签动态追加属性实现渲染效果
  5. 疑似小米10系列真机谍照首曝光:挖孔双曲面屏设计无疑
  6. C++ shared_ptr make_shared是什么意思
  7. 汇编语言学习之DOSBox+MASM 安装及使用教程
  8. 【开发环境准备】更新板载ESP8285固件
  9. 子龙山人Learn Emacs in 21 Days: day 7 学习笔记
  10. Cisco Webex share screen 显示黑屏解决方法
  11. LeetCode罗马数字转整数
  12. EF Core注意事项
  13. linux下proc文件夹详解
  14. 信息安全——密码学(上)
  15. 关于Android 8.0/9.0 之后获取wifi名称为空的解决方法
  16. 哈工大威海计算机学院教师,计算机学院青年教师齐元凯在《IEEE T-PAMI》上发表论文...
  17. Ubuntu7.10安装Antivir和dazuko纪实
  18. 华为鸿蒙系统荣耀30s,华为鸿蒙操作系统2.0版支持的设备清单流出,荣耀30s
  19. 智慧水务平台建设方案
  20. LDREX and STREX

热门文章

  1. 使用 IBM Network Advisor 监视 SAN 交换机性能
  2. 黑科技智能校服问世,网友惊呼幸亏毕业早!
  3. C语言通过Socket实现Siri控制电脑
  4. 7.无线射频基础知识介绍_无线射频工作特性
  5. Van Emde Boas Trees
  6. 激光诱导击穿光谱联合激光诱导荧光技术(LIBS-LIF)在环境监测上的元素分析应用
  7. C语言改变变量指定位置值
  8. Java SE 001 Java SE入门
  9. 125w短波通信距离_短波车载通信近距离盲区的解决途径
  10. 他能一举拿下阿里的offer,靠的绝对不止运气!