1、初级阶段:信息裸传算法
2、进阶阶段:传输密文安全
服务端和客户端先约定好加密算法,加密密钥。网络
3、中级阶段:服务端为每一个用户生成密钥加密
客户端和服务端提早约定好加密算法,在传递消息前,先协商密钥内存
4、再进阶阶段:客户端肯定密钥,密钥再也不传输get
使用“具有用户特性的东西”做为加密密钥,例如:用户密码的散列值,无需在网络传输。class
5、高级阶段:一次一密,密钥协商进阶
特色:每次通讯前,进行密钥协商,一次一密请求
在客户端发起安全信道创建请求后:密码
-
服务端随机生成公私钥对(公钥pk1,私钥pk2),并将公钥pk1传给客户端
(注意:此时黑客能截获pk1)
-
客户端随机生成公私钥对(公钥pk11,私钥pk22),并将公钥pk22,经过pk1加密,传给服务端
(注意:此时黑客能截获密文,也知道是经过pk1加密的,但因为黑客不知道私钥pk2,是没法解密的)
服务端收到密文,用私钥pk2解密,获得pk11
-
服务端随机生成对称加密密钥key=X,用pk11加密,传给客户端
(注意:同理,黑客由密文没法解密出key)
客户端收到密文,用私钥pk22解密,可到key=X
至此,安全信道创建完毕,后续通信用key=X加密,以保证信息的安全性
黑客定理一:网络上传递的数据是不安全的,属于黑客公共场所,能被截取
黑客定理二:客户端的代码是不安全的,属于黑客本地范畴,能被逆向工程,任何客户端与服务端提早约定好的算法与密钥都是不安全的
黑客定理三:用户客户端内存是安全的,属于黑客远端范畴,不能被破解
对于不一样加密方法明:
-
明文消息传递如同裸奔,不安全
-
客户端和服务端提早约定加密算法和密钥,不安全(好多公司都是这么实现的=_=)
-
服务端随机生成密钥,发送给客户端,不安全
-
一人一密,客户端使用“具有用户特性的东西”做为加密密钥,弱安全
-
一次一密,三次握手创建安全信道,安全
-