安全模型与框架
CIA三元组模型(理论+案例+常见问题)
CIA三元组是信息安全的核心模型,分别代表机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。
1. 机密性(Confidentiality)
机密性是指信息只能被授权用户访问,防止敏感数据泄露给未授权人员。常用技术包括对称/非对称加密(如AES、RSA)、访问控制列表(ACL)、数据脱敏与分级授权等。
- 实际案例:银行系统通过SSL/TLS加密用户交易数据,防止中间人窃听。
- 实际案例:企业内部文件服务器设置权限,只有特定部门能访问敏感文档。
代码示例:对敏感数据加密(Python)
from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher = Fernet(key)
token = cipher.encrypt(b'重要数据')
print(token)常见问题: 密码泄露、弱口令攻击、未加密传输等。
2. 完整性(Integrity)
完整性保证信息在存储、传输过程中未被未授权篡改。常用技术有哈希算法(如SHA-256)、数字签名、消息认证码(MAC)等。
- 实际案例:软件分发时提供SHA256校验码,用户下载后校验文件完整性。
- 实际案例:金融交易系统通过数字签名防止交易数据被篡改。
代码示例:计算文件哈希值(Python)
import hashlib
with open('file.txt', 'rb') as f:
data = f.read()
print(hashlib.sha256(data).hexdigest())常见问题: 数据包被篡改、数据库注入攻击、文件被恶意修改。
3. 可用性(Availability)
可用性确保授权用户在需要时能及时访问信息和资源。常用技术有冗余备份、负载均衡、DDoS防护等。
- 实际案例:大型网站部署多台服务器和CDN,防止单点故障。
- 实际案例:银行系统定期备份数据,防止硬件损坏导致数据丢失。
代码示例:服务健康检查(Python)
import requests
try:
r = requests.get('https://example.com', timeout=3)
print('服务可用' if r.status_code == 200 else '服务异常')
except Exception:
print('服务不可用')常见问题: 拒绝服务攻击(DoS/DDoS)、硬件故障、自然灾害。