Open Genzhen opened 4 years ago
我们知道,HTTP 协议都是明文传输内容,在早期只展示静态内容时没有问题。伴随着互联网的快速发展,人们对于网络传输安全性的要求也越来越高,HTTPS 协议因此出现。
HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
HTTPS: 采用 对称加密 和 非对称加密 结合的方式来保护浏览器和服务端之间的通信安全。
对称加密算法加密数据+非对称加密算法交换密钥+数字证书验证身份=安全
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
传统的HTTP协议通信:传统的HTTP报文是直接将报文信息传输到TCP然后TCP再通过TCP套接字发送给目的主机上。
HTTPS协议通信:HTTPS是HTTP报文直接将报文信息传输给SSL套接字进行加密,SSL加密后将加密后的报文发送给TCP套接字,然后TCP套接字再将加密后的报文发送给目的主机,目的主机将通过TCP套接字获取加密后的报文给SSL套接字,SSL解密后交给对应进程。
客户端和服务端之间的加密机制:
TLS协议是基于TCP协议之上的,图中第一个蓝色往返是TCP的握手过程,之后两次橙色的往返,我们可以叫做TLS的握手。握手过程如下:
对称加密采⽤了对称密码编码技术,它的特点是⽂件加密和解密使⽤相同的密钥加密,也就是密钥也可以⽤作解密密钥,这种⽅法在密码学中叫做对称加密算法,对称加密算法使⽤起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另⼀个对称密钥加密系统是国际数据加密算法(IDEA),它⽐ DES的加密性好,⽽且对计算机功能要求也没有那么⾼。
简要概括
对称加密:收发双方规定密钥,比如字母偏移5位加密;
与对称加密算法不同,⾮对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥 (privatekey)。 公开密钥与私有密钥是⼀对,如果⽤公开密钥对数据进⾏加密,只有⽤对应的私有密钥才能解密;如果⽤私有密钥对数据进⾏加密,那么只有⽤对应的公开密钥才能解密。因为加密和解密使⽤的是两个不同的密钥,所以这种算法叫作⾮对称加密算法。
⾮对称加密算法实现机密信息交换的基本过程是:甲⽅⽣成⼀对密钥并将其中的⼀把作为公⽤密钥向其它⽅公开;得到该公⽤密钥的⼄⽅使⽤该密钥对机密信息进⾏加密后再发送给甲⽅;甲⽅再⽤⾃⼰保存的另⼀把专⽤密钥对加密后的信息进⾏解密。甲⽅只能⽤其专⽤密钥解密由其公⽤密钥加密后的任何信息。
⾮对称加密的典型应⽤是数字签名。 常⻅的⾮对称加密算法有:RSA、ECC(移动设备⽤)、Diffie-Hellman、El Gamal、DSA(数字签名 ⽤)
简要概括
扫描下方二维码,收藏关注,及时获取答案以及详细解析,同时可解锁800+道前端面试题。