对称加密算法
- 主流对称加密算法都很快、都很强
- 对称加密的意思是加密和解密采用同样的秘钥
- AES最为常用,全面替代了DES算法,DES有效秘钥长度为48位,AES最高可达256位、加密速度很快、强度高
- 如何实现可靠的传递秘钥?
非对称加密算法
- 加解密采用不同的秘钥,一般一个称为公钥、另一个是私钥,秘钥相互之间无法推导
- 一般比对称算法要慢得多,要实现相同的加密强度,所要求的秘钥长度也更长(主流应用均在1024位以上)
- 常用的算法:RSA/DSA
- 可以解决秘钥传递的问题和数字签名的问题
哈希算法
- 制作数据摘要、没有保密能力
- 不可逆算法(无法从摘要反推出源文)
- 唯一性:源文只要修改一个字,整个摘要都会变化,所谓破解,就是提高碰撞的概率
- 目前安全应用多采用SHA256、MD6等方法,产生更长的摘要
尽管DES已经变得脆弱,但DES芯片的大量生产,使得DES服役期延长,为提高安全强度,通常使用独立密钥的三级DES,能提供约128位秘钥的安全性,但运算速度较慢(但可以硬件加速)。
公开信道上的传递秘钥问题
密码学、安全协议设计中的重要理论问题
信道是公开的,存在攻击者(Malice)
- 攻击者的目的是不被通信双方发现的监听、篡改、仿冒数据,但不是为了阻断信道,或直接入侵通信双方的系统
- 可以接收到信道上的所有公开信息,但不能直接破解加密的数据
- 可以伪造、篡改信道上的数据,但由于不能破解加密数据,因此只能篡改
- 可以存储信道上的数据,并且重发出去
为了防止Malice
- 机密性:需要加密数据,但任何(常见)传递加密秘钥的信道也都是不安全的
- 完整性:需要确定数据发出之后,不会被修改,即需要数字签名
- 真实性:确实是来自于通信的某一方,比如含有只有通信某一方才知道的秘密信息
- 新鲜性:确实是通信的对方目前正在表达的信息,比如“买入”和“卖出”股票,两个信息都是真实的,但哪个是目前需要表达的?需要引入时间戳等机制。
挑战握手响应机制
PAP机制:用户明文发送用户名密码,服务器进行验证(二次握手)
CHAP(Challenge Handshake Authentication Protocol)
- 一种系统登陆方式(三次握手)
- 避免明文传送用户密码
- 避免用户密码被猜测
- 随机数机制:防止重放攻击(新鲜性)