安全与密码学笔记
一、信息安全的核心目标
机密性 (Confidentiality)
- 数据仅能被授权方访问,防止未经授权的信息泄露。
- 工具:加密算法(如 AES、RSA)。
完整性 (Integrity)
- 确保数据在传输或存储过程中未被篡改。
- 工具:哈希函数(如 SHA-256)、数字签名。
可用性 (Availability)
- 确保授权用户能按需访问数据或系统。
- 威胁:DDoS 攻击、系统故障。
身份认证 (Authentication)
- 验证用户或系统的真实身份。
- 方法:密码、生物识别、双因素认证(2FA)。
不可否认性 (Non-repudiation)
- 防止参与者事后否认其行为。
- 工具:数字签名(如 ECDSA)。
二、密码学基础
1. 对称加密(Symmetric Cryptography)
- 特点:加密与解密使用同一密钥。
- 典型算法:
- AES(Advanced Encryption Standard):块加密,支持 128/192/256 位密钥。
- ChaCha20:流加密,常用于移动端和 TLS。
- 优点:速度快,适合大数据加密。
- 缺点:密钥分发困难(需安全信道传输密钥)。
2. 非对称加密(Asymmetric Cryptography)
- 特点:使用公钥加密、私钥解密。
- 典型算法:
- RSA:基于大数分解难题,广泛用于数字签名和密钥交换。
- ECC(椭圆曲线加密):更短的密钥实现同等安全性。
- 应用场景:
- HTTPS 中的 TLS 握手(如 RSA 密钥交换)。
- 比特币地址生成(ECC 算法)。
3. 哈希函数(Hash Function)
- 特性:单向性、抗碰撞性、雪崩效应。
- 用途:
- 验证文件完整性(如下载文件的 SHA-256 校验)。
- 密码存储(结合盐值防止彩虹表攻击)。
- 常见算法:SHA-3、BLAKE3。
4. 数字签名(Digital Signature)
- 流程:
- 发送方用私钥对数据哈希值加密生成签名。
- 接收方用公钥解密签名,验证哈希是否匹配。
- 应用:软件发布验证(如 Git commit 签名)、区块链交易。
三、密码学的实际应用
1. HTTPS 与 TLS 协议
- 混合加密机制:
- 非对称加密协商会话密钥。
- 对称加密传输实际数据。
- 证书体系:CA(证书颁发机构)验证服务器公钥合法性。
2. 区块链与密码学
- 比特币中的密码学:
- ECC 生成钱包地址。
- SHA-256 保证区块一致性(工作量证明)。
- 智能合约安全:形式化验证防止代码漏洞。
3. 密码管理实践
- 密码强度建议:
- 长度 >12 字符,混合大小写、数字、符号。
- 避免重复使用密码。
- 工具推荐:
- 密码管理器(如 Bitwarden、1Password)。
- 双因素认证(Google Authenticator、YubiKey)。
四、现代密码学的挑战
1. 量子计算的威胁
- Shor 算法:可破解 RSA、ECC 等依赖数论难题的算法。
- 应对方案:
- 后量子密码学(如基于格的加密算法 Kyber)。
- 量子密钥分发(QKD)。
2. 侧信道攻击(Side-Channel Attacks)
- 原理:通过功耗、电磁辐射等物理信息推断密钥。
- 防护:恒定时间编程、硬件隔离。
3. 社会工程学与钓鱼攻击
- 案例:伪造登录页面窃取用户凭证。
- 防御:用户教育、多因素认证(MFA)。
五、经典攻击与防御
1. 中间人攻击(MitM)
- 场景:公共 WiFi 下拦截 HTTPS 流量。
- 防御:证书绑定(Certificate Pinning)、HSTS 协议。
2. 暴力破解与字典攻击
- 防御:
- 密码加盐哈希(如 bcrypt、Argon2)。
- 账户锁定策略。
3. 重放攻击(Replay Attack)
- 案例:重复发送合法请求(如转账交易)。
- 防御:时间戳、一次性令牌(Nonce)。
六、学习资源推荐
- 书籍:
- 《应用密码学》(Bruce Schneier)
- 《图解密码技术》(结城浩)
- 在线课程:
- Coursera《Cryptography I》(斯坦福大学)
- Khan Academy 密码学入门。
- 实践工具:
- OpenSSL 命令行工具。
- Cryptool(可视化密码学实验平台)。
总结:密码学是信息安全的基石,需结合理论理解与实践防护。随着技术演进(如量子计算),持续学习与更新防护手段至关重要。