Day 10 - 密码破解 101

出於书本 Chapter 7. Passwords

第十天了,可喜可贺可喜可贺
/images/emoticon/emoticon01.gif

写在前面

密码破解,是其中一种最简单、以及常见用来获得存取未经授权的电脑与网路方式的方式。理论上,越长、或是强度越强的密码较难被破解。但是使用者或是网路管理者通常会忽略这件事。

外部攻击者与恶意的内部使用者有很多能获得密码的方式。举例,用问的、使用肩窥 (shoulder surfing) 的方式,或是在本机端使用密码破解软件。如果要透过网获得密码,攻击者可以使用远端破解工具,键盘侧录程序 (keylogger) 或是网路分析器 (network analyzers)。

密码弱点

普遍能分成两类

  • 组织或个人的:指的是缺乏密码管理策略或是个人缺乏安全性意识
  • 技术上的:指的是使用了加密强度较低的演算法或是不安全的密码存放

破解密码

非技术类的方式

  • 社交工程
    • 最受欢迎的非技术方式
    • 使用教育训练提升员工的安全性意识作为防范
  • 肩窥 (Shoulder surfing)
    • 透过偷看尝试做登入的使用者的键盘或是萤幕,撷取密码
    • 鼓励使用者注意周遭的情况,确保没有任何可疑人物朝向自己看之後,再尝试做登入
  • 推断 (Inference)
    • 透过使用者的资讯,比如生日、电话号码等来推测使用者的密码
    • 最好的防范方式就是不要在密码里带有任何个人资讯
  • 脆弱的认证方式 (Weak authentication)
    • 旧式作业系统的密码很容易被取得,甚至用 ESC 键跳过
    • 一但能登入该作业系统,很容易能够使用系统密码破解工具 [1] 找出如 VPN 连线或萤幕保护程序的密码
    • 防范方式 ⇒ 升级作业系统

技术类的方式

使用程序决定所有可能的密码组合来猜测密码,主要的有字典式攻击 (dictionary attack)、暴力攻击(brute-force attack) 和彩虹表攻击 (rainbow attack)。

密码如何存放?

通常会以 one-way hash 或是加密的形式存放在电脑系统中,举例像是 DES 或 MD5。这些被 hash 过後的密码的长度会是固定的,但是一样的字串被 hash 过後的字串还是ㄧ样。所以,理论上,密码是无法被加密。後来有一种称作加盐 (salt) 的方式,透过加点随机的东西来增加点乱度。

以 Windows 为例,密码通常存在於 Security Account Manager (SAM) 资料库以及本地端或是洒在 Domain Controller 的 Active Directory (AD)

明天来继续看这主要的三种技术类以及其他的密码攻击方式。

[1] 这里是以 Elcomsoft 的 Proactive System Password Recovery 作为范例,这是一套 Windows 上的开机密码破解工具。能够恢复多种类型 Windows 密码甚至产品金钥等隐藏讯息。某些无法及时恢复的密码,可以制定字典进行暴力破解。目前只支援到 Windows 8.1 与 Windows server 2012。作者在这一讨论密码的这个章节提起这套工具至少三次,可见锺爱程度 XD

[2] 以这篇文章被撰写的时间点 2021 九月为止,Windows 系统已经出到 Windows 10 与 Windows server 2022。


<<:  Day25:Dynamic Programming(DP) - 动态规划(上)

>>:  Day 13 实作调色盘App(1/3)

电路级(Circuit-level)授权策略不是常见的服务网格授权策略类型

以下是 NIST SP 800-204B 的摘录: 可以通过配置身份验证和存取控制策略来实施对微服务...

26.Computed vs Methods

比较下面两个用法: <!-- computed --> <div>{{ re...

GPU程序设计(2) -- 多执行绪

前言 GPU可以利用平行处理的方式,缩短执行时间,因此,这一次就来介绍多执行绪的程序设计方法及应用。...

资安学习路上-渗透测试实务4

初始控制 会利用某些手段达成RCE(Remote code execution,远端代码执行),方法...

Day28 人物骨架 - 分层动作篇

本篇文章的Unreal engine 4 版本为 4.25.3 认识了骨架之後当然要让角色动起来,因...