1. HTTP与HTTPS有哪些区别?
安全:
- HTTP是超⽂本传输协议,信息是明⽂传输,存在安全⻛险的问题。
- HTTPS 则解决HTTP不安全的缺陷,在TCP和HTTP⽹络层之间加⼊了SSL/TLS安 全协议,使得报⽂能够加密传输。
连接:
- HTTP连接建⽴相对简单,TCP三次握⼿之后便可进⾏HTTP的报⽂传输。
- HTTPS在TCP三次握⼿之后,还需进⾏SSL/TLS的握⼿过程,才可 进⼊加密报⽂传输。
端口:
- HTTP的端⼝号是80
- HTTPS的端⼝号是443。
开销:
- HTTPS协议需要向CA(证书权威机构)申请数字证书,来保证服务器的 身份是可信的。
2. HTTPS 解决了 HTTP 的哪些问题?
窃听⻛险,⽐如通信链路上可以获取通信内容,⽤户号容易没。
篡改⻛险,⽐如强制植⼊垃圾⼴告,视觉污染,⽤户眼容易瞎。
冒充⻛险,⽐如冒充淘宝⽹站,⽤户钱容易没。
HTTPS 在 HTTP 与 TCP 层之间加⼊了 SSL/TLS 协议,可以很好的解决了上述的⻛险:
信息加密:交互信息⽆法被窃取,但你的号会因为「⾃身忘记」账号⽽没。
校验机制:⽆法篡改通信内容,篡改了就不能正常显示,但百度「竞价排名」依然可以搜索垃圾⼴告。
身份证书:证明淘宝是真的淘宝⽹,但你的钱还是会因为「剁⼿」⽽没
2.1 HTTPS 是如何解决上⾯的三个⻛险的?
- 混合加密的⽅式实现信息的机密性,解决了窃听的⻛险。
- 摘要算法的⽅式来实现完整性,它能够为数据⽣成独⼀⽆⼆的「指纹」,指纹⽤于校验数据的完整性,解决了篡改的⻛险。
- 将服务器公钥放⼊到数字证书中,解决了冒充的⻛险。
3.HTTPS 是如何建⽴连接的?其间交互了什么?
SSL/TLS 协议基本流程:
- 客户端向服务器索要并验证服务器的公钥。
- 双⽅协商⽣产「会话秘钥」。
- 双⽅采⽤「会话秘钥」进⾏加密通信。