密码学基础

深入理解密码学在安全领域的实际应用。掌握编码与加密的区别,识别各类密码哈希算法,并学会使用 OpenSSL 和 GPG 进行对称与非对称加密。

网络安全工程师网络安全

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

密码工具解决的是不同的安全问题:编码改变数据表示,哈希用于检测变化,对称加密用共享秘密保护数据,非对称密码学则区分公钥和私钥。本实践课程帮助你厘清这些边界,并在 Linux 终端中实际运用每种机制。

你将处理 Base64、URL 编码和十六进制数据,生成并验证文件哈希,判断可能的密码哈希格式,并使用 OpenSSL 与 GPG 加密文件。最终调查挑战会把 Base64 解码、分离签名验证、算法识别和 AES 解密串联成一套基于证据的工作流程。

你将学到什么

  • 使用命令行工具编码和解码 Base64、百分号编码 URL 与十六进制数据
  • 解释编码为何解决兼容性问题而不能提供机密性
  • 生成 MD5、SHA-1 和 SHA-256 摘要,并观察输入变化对结果的影响
  • 创建并校验 SHA-256 校验和文件,以检测文件是否被修改
  • 从结构化数据中提取哈希,并结合长度、字符集和 hashid 推测算法
  • 将可能的哈希类型映射到 Hashcat 模式,而不执行密码恢复
  • 使用 OpenSSL AES-256-CBC 和 PBKDF2 密码派生来加密与解密文件
  • 生成 GPG 密钥对、执行公钥加密,并验证分离式数字签名

本课程适合谁

本中级课程适合需要建立编码、哈希与加密数据处理实践基础的网络安全学习者、分析人员、系统管理员和开发者。课程重视命令行实验与安全含义分析,而非数学证明或自行实现密码算法。

前置要求: 能够使用 Linux 终端、读取文件、组合管道命令并重定向输出。了解文件、密码以及公钥/私钥的基本概念会有所帮助;无需编程能力或高等数学基础。

学习环境: 交互式 Ubuntu 22.04 终端,包含预置样本文件,并可使用 Python、Base64、xxd、OpenSSL、GPG、校验和工具和 hashid。练习所用的密钥、密码和数据仅供实验使用。

常见问题

Base64 是一种加密吗?

不是。Base64、URL 编码和十六进制都是无需秘密密钥即可还原的数据表示方式。课程会展示它们可以多么容易地被解码,并将其与基于密钥的加密进行对比。

仅凭长度识别哈希,就能确定它使用了哪种算法吗?

不能。长度和字符集能提供有用线索,hashid 也会给出可能的格式,但多种算法可能具有相似外观。可靠判断还需要结合来源应用和存储格式等上下文。

课程会破解密码哈希吗?

不会。你将提取哈希、评估可能的算法,并记录对应的 Hashcat 模式,为授权的密码审计做准备。密码猜测与恢复不在本课程范围内。

实验中的密码配置可以直接用于生产环境的密钥管理吗?

不可以。为了聚焦操作流程,实验使用简单密码、无口令保护的训练私钥和自动信任设置,并会明确指出这些便利性配置。真实私钥与秘密需要更强的保护、身份验证和组织级密钥管理措施。

教师

labby
Labby
Labby is the LabEx teacher.