前台网络高级篇(一)HTTPS
HTTP是Web中常见的通信方式,无状态,简单易用。当然,它的不足之处也非常显著:
- 通信使用明文,内容可能被窃听
- 不验证通信方的身份,有可能遭遇假装
- 无法证实报文的完整性,所以报文有可能被篡改
为理解决HTTP协议的痛点,采用通信加密的方式,继而出现HTTPS协议。
1. HTTPS
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层解决加密信息的模块。
服务端和用户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
image
1.1 SSL加密
- SSL是Netscape公司所提出的安全保密协议,在浏览器(如Internet Explorer、Netscape Navigator)和Web服务器(如Netscape的Netscape Enterprise Server、ColdFusion Server等等)之间构造安全通道来进行数据传输
- SSL运行在TCP/IP层之上、应用层之下,为应用程序提供加密数据通道
- 采用了RC4、MD5以及RSA等加密算法,使用40 位的密钥,适用于商业信息的加密。
- Netscape公司相应开发了HTTPS协议并内置于其浏览器中,HTTPS实际上就是SSL over HTTP,它使用默认端口443,而不是像HTTP那样使用端口80来和TCP/IP进行通信。
- HTTPS协议使用SSL在发送方把原始数据进行加密,而后在接受方进行解密,加密和解密需要发送方和接受方通过交换共知的密钥来实现,因而,所传送的数据不容易被网络黑客截获和解密。
加密技术有两种:
- 公开密钥加密(非对称密钥加密):加密算法是公开的,而密钥是保密的.加密和解密都会用到密钥(使用一对非对称的密钥,一把私钥一把公钥)。
- 共享密钥加密(对称密钥加密):以共享密钥方式加密时必需将密钥也发给对方。
https采用共享密钥加密和公开密钥加密两者并用的混合加密机制,具体加密方式参考第二节。
SSL不仅提供加密解决,而且使用证书,来确定对方的非假装的。
1.2 数字证书
证书是由值得信任的第三方机构颁发,用以证实服务器和用户端是实际存在的。
image
2. HTTPS 通信步骤
HTTP+加密+认证+完整性保护=HTTPS。上节提到,“https采用共享密钥加密和公开密钥加密两者并用的混合加密机制”,解释一下,就是用公开密钥加密传递密钥,用共享密钥加密算法加密报文内容。
为什么HTTPS要采用混合加密呢?
由于公开密钥加密的解决速度要远远慢于共享密钥加密,所以,在通信最频繁的环节 – “报文加密”,采用了共享密钥。那么,更加安全的公开密钥加密,就非常适合“报文密钥”的传递来。
具体加密,解密,验证步骤如下:
image
用户端发起HTTPS请求
客户在浏览器里输入一个https网址,而后连接到server的443端口(默认HTTP的端口号为80,HTTPS的端口号为443)。服务端的配置
采用HTTPS协议的服务器必需要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要用户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提醒页面。
这套证书其实就是一对公钥和私钥。传送证书
这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。用户端解析证书
这部分工作是有用户端的TLS来完成的。
首先会验证公钥能否有效,比方颁发机构,过期时间等等,假如发现异常,则会弹出一个警告框,提醒证书存在问题。
假如证书没有问题,那么就生成一个随即值。而后用证书对该随机值进行加密。传送加密信息
这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后用户端和服务端的通信即可以通过这个随机值来进行加密解密了。服务段解密信息
服务端用私钥解密后,得到了用户端传过来的随机值(私钥),而后把内容通过该值进行对称加密。
所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好用户端和服务端都知道这个私钥,所以只需加密算法够彪悍,私钥够复杂,数据就够安全。传输加密后的信息
这部分信息是服务段用私钥加密后的信息,可以在用户端被复原用户端解密信息
用户端用之前生成的私钥解密服务段传过来的信息,于是获取理解密后的内容。整个过程第三方即便监听到了数据,也束手无策
微信公众号:

J
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 前台网络高级篇(一)HTTPS