密钥定义
密钥就是一个巨大的数字。密码技术里密钥概念重要的是密钥空间的大小。密钥空间大小由密钥长度决定。常见的DES密钥长度是7字节,DES-DES2和DES-DES3密钥长度分别是14字节和21字节,AES密钥长度是128,192或256比特。
需注意的是,密钥和明文具有同等价值。如果明文价值百万,那么能破解该明文的密钥应具有相同价值。
各种密钥
- 对称密码密钥:加密和解密使用同一密钥。也叫做共享密钥密码。
- 公钥密码密钥:加密和解密使用不同密钥。加密的叫做公钥,解密的叫做私钥。公钥和私钥也称作密钥对。
- 消息认证码(MAC)的密钥:发送者和接收者使用共享的密钥进行认证。MAC只能由持有合法密钥的人计算。将MAC附加在通信报文后,识别通信内容是否被篡改或者伪装。缺点:MAC泄露有篡改和伪装的风险。
- 数字签名的密钥:签名的生成和验证使用不同的密钥。持有私钥的人生成签名,公钥用作验证。
- 会话密钥:通信中只能使用一次的密钥。如:访问https://开头的网页,Web服务器和浏览器之间会进行SSL/TLS的加密通信,这个通信使用的密钥就仅限于当此通信,属于会话密钥。优点:就算被截获也只能破译本次通信的内容,其他通信的机密性不被破坏。
- 主密钥:一直重复使用的密钥。
- 用于加密内容的密钥(Contents Encrypting Key, CEK):内容加密密钥。会话密钥常做CEK。
- 用于加密密钥的密钥(Key Encrypting Key, KEK):密钥加密密钥。主密钥常做KEK。有点:减少需要报关的密钥数量。
密钥管理
- 密钥生成:随机数生成、口令生成(Password Based Encryption, PBE)。
- 配送密钥:对称算法密钥就面临密钥配送问题,因为加密和解密使用相同密钥。可以采用事先共享密钥,使用密钥分配中心,使用公钥密码等。
- 密钥更新:一种提高通信机密性的技术。这种技术具有后向安全性(单向散列函数具有单向性,反算比较困难),可以防止破译过去的通信内容。
- 密钥保存:当密钥需要重复使用时,需要考虑密钥保存问题。会话密钥不考虑。
- 作废密钥。
SSL/TLS定义
SSL/TLS是一种在Web服务器中广泛使用的协议。SSL全称是Secure Socket Layer,TLS全称是Transport Layer Security。
-
客户端和服务器
Web浏览器和Web服务器遵循HTTP超文本传输协议来通信, Web浏览器也叫做HTTP客户端,Web服务器也叫做HTTP服务器。我们可以使用SSL/TLS承载HTTP,通过两种协议的叠加,可以对HTTP的通信(请求和响应)进行加密,防止窃听。 -
SSL/TLS的工作
工作过程需要保证三点:(1)发送过程不能被窃听;(2)发送过程不能被篡改;(3)最后能确认发送者;1,2,3点分别对应的是密钥的机密性、完整性、认证问题。 -
SSL和TLS的区别
TLS是SSL的后续版本,增加了AES对称密码算法,删除了DES,增加了针对CBC攻击的对策。