课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于浏览器相信大家应该不陌生了吧。而我们在访问互联网的时候,大家应该能够看到,有些网站的前面是http,有些网站的前面反而是https,为什么会有这样的区别呢?下面我们就一起来了解一下其中的原因吧。
1. 数据传输过程
浏览器发送支持的加密方式给服务器
服务器选取一种加密方式,返回服务器的证书给浏览器,证书包含:网站域名,非对称加密的公钥,证书的颁发机构等
客户端验证证书是否合法。
如果证书合法或者用户同意使用不合法的证书,客户端随机生成一个随机密码TOKEN。
使用服务器返回的公钥加密随机密码,得到加密后的字符串TOKEN_EN
使用TOKEN(对称加密方法)加密一段握手信息(MSG),得到EN_MSG。
对MSG进行hash加密,得到HASH_MSG
把TOKEN_EN,HASH_MSG,EN_MSG一起发回给服务端
服务端使用密钥解密TOKEN_EN,得到TOKEN
服务端使用TOKEN解密EN_MSG,得到握手信息MSG,对MSG进行hash加密,得到HASH_MSG_,并验证是否与客户端发来的HASH_MSG一样。
服务端生成一段握手信息MSG1,使用TOKEN进行加密,得到EN_MSG1。使用hash加密,得到HASH_MSG1,把EN_MSG1和HASH_MSG1发送给客户端。
服务端使用TOKEN解密EN_MSG1,得到握手信息MSG1,对MSG进行hash加密,得到HASH_MSG1_,并验证是否与服务端发来的HASH_MSG1一样。
这样,握手阶段就结束了,握手阶段的作用:1. 验证服务端的证书 2. 客户端和服务端约定一个对称加密的秘钥,也就是TOKEN
后面所有的数据传输,都是发送方使用对称加密后,发送给接收方,接收方再进行解密,这样就可以保证,传输的过程中,1. 明文不会泄漏,2. 明文不会被篡改。这样就可以保证传输的安全性
最后的对MSG和MSG1的加密和解密,主要是用于测试的,也就是测试服务端和客户端的TOKEN,加密方式是不是都是一致的,这样可以保证后面的数据传输不会出错。
常用的加密方式:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256
非对称加密用于客户端和服务端协商TOKEN,这样可以做到只有服务端和客户端知道TOKEN的明文,使用密文来传输,防止被别人看到TOKEN
对称加密用于对HTTP传输的数据进行加密,发送方使用对称加密进行加密得到密文,传输密文给接收方,接收方解密后得到明文,这样传输的过程中,其他人看不到明文
HASH加密用于协商TOKEN后,客户端和服务端的传输测试,主要作用是判断加密前的数据和加密后再被解密得到的数据,是否一样。也就是验证测试是否通过。其实也可以不用hash加密,测试的时候直接发送明文,但是相对来说,安全性会差一点。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!