保密、认证和完整性
约 10 分钟
校验能发现传输错误,却不一定能防坏人修改;把消息加密能隐藏内容,却不能自动证明发送者是谁。安全通信至少要区分三个目标:保密性、认证、完整性。
保密性:别人看不懂
发送方用密钥把明文变成密文,合法接收方再还原。没有密钥的人即使截获信号,也不应轻易读懂内容。把编码规则公开并不等于泄密,现代安全依靠密钥,而不是指望别人不知道算法。
认证:确认是谁发的
有人冒充 A 队发「需要十个篮球」,内容即使加密也可能造成麻烦。认证要证明消息来自拥有正确凭据的一方。生活中的密码、门禁卡、短信验证码都在做身份确认,但凭据一旦泄露,系统仍会被骗。
完整性:途中没有被改
安全校验码或数字签名能让接收方发现消息被篡改。普通奇偶校验防的是偶然噪声,不足以抵抗故意修改,因为攻击者也会重新计算简单校验。不同威胁需要不同工具。
最小权限与隐私
通信系统不应收集完成任务不需要的信息。器材室只需知道队伍、物品和数量,不需要每个队员的家庭住址。数据越少,泄露时伤害越小;保存时间也应有界限。
安全没有一次完成
设备可能丢失、密钥可能泄露、软件会发现漏洞。要能更新密钥、撤销失效身份、记录异常,并让使用者知道发生了什么。把所有安全寄托在一串永不更换的密码上,并不可靠。
练一练:分别给出一个破坏保密性、认证和完整性的例子,并为操场通信选择最需要优先保护的目标。
小纸条
加密、认证、完整性校验分别解决什么问题?