0x02.Cryptographic Failures(失败的加密)
1. 页面给的意思是让我们熟悉几种加密方式,往后走第二个是base64加密,直接解码复制粘贴

2.往后走,他给了其他几种编码,最重要的是xor解码
XOR(异或)加密是一种基础的对称加密方式,其核心逻辑是明文与密钥逐位异或得到密文,解密时密文与同一密钥再次异或即可还原明文。由于XOR操作具有自反性,因此加密与解密使用相同算法。
所以要破解xor编码,就要穷举他的密钥,这边成功找到了他的密钥为”_“(下划线)

3.再往后是哈希值,因为hash是不可逆的,但是目前网络上有很强大的彩虹表,就是将各种字符串的hash值进行计算后存起来,然后在提供明文查询,而且在题目里明确表示没有加Salt,因此我们在网上随便找个破解MD5的网站进行解密

4.这里讲的是对称加密和非对称加密这里简单介绍
对称加密(Symmetric Encryption)
核心原理:加密与解密使用同一密钥(如K),算法是公开的,安全性依赖密钥保密性。
典型算法:
- AES(高级加密标准):128/192/256位密钥,高效安全,全球通用(如TLS/SSL、文件加密)。
- DES/3DES:56位密钥(已不安全,易被暴力破解),3DES通过三次DES加密增强安全性(逐步淘汰中)。
- ChaCha20:基于流加密,抗侧信道攻击,常用于移动端和物联网(如TLS 1.3)
工作流程:
加密:
Ciphertext=E(Plaintext,K)
解密:
Plaintext=D(Ciphertext,K)
非对称加密(Asymmetric Encryption)
核心原理:基于数学难题(如大整数分解、椭圆曲线离散对数),使用公钥(Public Key)加密,私钥(Private Key)解密;或私钥签名,公钥验证。
典型算法:
- RSA:基于大整数分解,支持加密和签名,广泛用于数字证书、SSH密钥。
- ECC(椭圆曲线加密):基于椭圆曲线离散对数,同等安全下密钥更短(如256位ECC≈3072位RSA),效率更高(如比特币、TLS 1.3)。
- DSA/ECDSA:专用于数字签名(如区块链交易签名)。
工作流程:
加密:
Ciphertext=E(Plaintext,PK)
(仅私钥持有者可解密)
签名:
Signature=Sign(Hash(Data),SK)
,验证:
Verify(Hash(Data),Signature,PK)
混合加密
核心思想:结合对称与非对称加密优势,解决“安全+效率”矛盾。
典型应用:
- TLS/SSL:
- 非对称加密交换临时对称密钥(如ECDHE密钥协商)。
- 对称加密(如AES-GCM)加密实际数据。
- 哈希(如SHA-256)验证数据完整性。
- PGP/GPG:用RSA加密对称密钥,对称加密加密邮件内容。
5.签名
签名作为数字世界的“防伪印章”,通过密码学技术确保数据完整性、身份认证与不可否认性。
1. RAW签名:最基础的数字签名
- 原理:
- 发送方(A)对原始数据计算哈希值(如SHA-256),用私钥加密该哈希生成签名。
- 接收方(B)用公钥解密签名得到哈希值,同时重新计算数据哈希值,两者比对一致则验证通过。
- 典型流程:
数据 → 哈希 → 私钥加密 → 签名;验证:数据 → 哈希 → 公钥解密签名 → 比对哈希。
- 特点:
- 需单独传输数据、签名、公钥证书三要素,适合简单场景(如API接口签名)。
- 安全性依赖私钥保密性与哈希算法强度(如SHA-256抗碰撞性)。
- 场景:软件开发包签名、命令行工具验证(如GPG签名)、自定义协议安全扩展。
2. CMS签名:标准化的“数字信封”
- 原理:
- 基于PKCS#7标准,将数据、签名、证书(含公钥)打包为单一文件(如.p7s/.p7m),支持S/MIME格式。
- 接收方通过解析CMS容器,自动获取公钥并验证证书链有效性(如是否由可信CA签发、是否过期/吊销)。
- 优势:
- 集成数据与签名,简化传输流程;支持多级证书链验证,增强信任传递。
- 广泛用于电子邮件加密(S/MIME)、文档数字签名(如Adobe PDF签名)。
- 案例:企业合同电子签章系统,通过CMS格式确保合同内容与签名不可分割。
3. SOAP签名:XML负载的“动态防护”
- 原理:
- 针对SOAP XML消息的特殊性(如可能包含动态时间戳、会话ID),采用XML Signature标准(如WS-Security)。
- 允许对XML的不同部分(如Body、Header)单独签名,支持多签名方协作(如多方会签场景)。
- 哈希计算需排除非内容元素(如时间戳),通过Canonicalization(规范化)确保相同内容生成一致哈希。
- 特点:
- 灵活适配复杂XML结构,支持消息级身份认证与防篡改。
- 常用于企业服务总线(ESB)、B2B集成平台的安全通信。
4. 电子邮件签名:身份认证的“数字身份证”
- 原理:
- 发送方使用私钥对邮件内容(含头部、正文、附件)进行签名,接收方通过公钥证书验证。
- 依赖第三方CA(如DigiCert、GlobalSign)颁发邮件签名证书,绑定发件人邮箱与公钥。
- 邮件客户端(如Outlook、Thunderbird)自动验证签名并显示“发件人已验证”标识。
- 价值:
- 防止钓鱼攻击(如伪造发件人地址),确保邮件来源可信;
- 支持法律证据留存(如电子合同邮件确认)。
5. PDF/Word签名:文档的“永久性防篡改标记”
- 原理:
- Adobe PDF使用PDF Signature标准,Microsoft Word使用数字签名功能,将签名嵌入文档元数据。
- 签名过程:计算文档哈希 → 私钥加密哈希 → 将签名与证书写入文档特定区域。
- 打开文档时,阅读器(如Adobe Reader)自动验证签名有效性(如证书状态、文档是否被修改)。
- 场景:
- 政府公文、法律合同、财务报告等需要长期存证的文件;
- 支持时间戳服务(如RFC 3161),确保签名时间可信。
对比总结:选择签名的关键考量
| 维度 | RAW签名 | CMS签名 | SOAP签名 | 邮件签名 | PDF/Word签名 |
|---|---|---|---|---|---|
| 集成度 | 低(需三要素) | 高(自包含) | 中(XML嵌入) | 中(邮件头嵌入) | 高(文档内嵌) |
| 适用数据类型 | 任意二进制 | 任意二进制 | XML负载 | 邮件内容 | 文档内容 |
| 验证复杂度 | 中(需公钥) | 低(自动验证) | 高(需解析XML) | 中(依赖客户端) | 低(自动验证) |
| 典型场景 | API接口 | 电子合同 | 企业服务集成 | 安全邮件 | 政府公文 |
题目提供一个private RSA key,把这个RSA key的modulus作为十六进制字符串,然后计算一个signature。这个作业需要一些openssl经验,直接写python脚本实现
核心代码:
try:
# 加载私钥
private_key = serialization.load_pem_private_key(
private_key_pem.encode(),
password=None,
backend=default_backend()
)
# 生成公钥
public_key = private_key.public_key()
print("你的公钥是:")
print(public_key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
).decode())
# 提取公钥的modulus
modulus = public_key.public_numbers().n
print("\n您的modulus为:")
print(hex(modulus)[2:]) # 移除'0x'前缀
# 使用私钥对示例数据签名
data = b"hello world" # 示例数据
signature = private_key.sign(
data,
padding.PSS(
mgf=padding.MGF1(hashes.SHA256()),
salt_length=padding.PSS.MAX_LENGTH
),
hashes.SHA256()
)
6. default
因为我用的不是docker,所以一时半会也没找到解决此问题的办法(出题人口味独特)此问题其实就是默认配置问题,默认端口暴露,未加密私钥,默认管理员密码,和配置文件等。
未完待续...
3648

被折叠的 条评论
为什么被折叠?



