HTTPS与HTTP相比有什么区别?
HTTPS保证安全的原理是什么?
HTTPS是如何建立连接的?
巨人的肩膀
3.1 HTTP 常见面试题 | 小林coding
HTTP与HTTPS的区别
- HTTP是超文本传输协议,传输的内容是明文(HTTP1.1及之前版本)。HTTPS在TCP与HTTP层之间引入SSL/TLS安全协议,传输的报文都是加密传输的
- HTTP建立连接简单,TCP三次握手后即可进行报文传输。而HTTPS在TCP三次握手之后,还需要进行SSL/TLS复杂的交互过程之后,才可以进行加密报文传输
- HTTP占用80端口,HTTPS占用443端口
- HTTPS协议需要向CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。
HTTPS安全的原理
通过混合加密的方式保证报文的机密性,采用了对称加密和非对称加密两种方式结合的加密方式
- 在通信建立前采用非对称加密的方式交换会话密钥
- 在通信过程中使用对称加密(会话密钥)的方式加密报文
看懂了下面的SSL的原理你就懂了。
SSL原理
数字证书,这张图直接看懂:
HTTPS建立连接
本来想用文
还是一张图弄懂:
- 首先是TCP的三次握手,建立TCP连接
- 然后客户端向服务器发送请求,请求中包含了客户端支持的TLS版本、一个随机数、密码套件
- 服务器接收到请求,将客户端发送过来的随机数保留下来,然后响应,响应内容:服务器生成的随机数、数字证书、确认TLS版本、确认密码套件
- 客户端接收到响应后,将服务器生成的随机数保留下来,然后验证数字证书的权威,然后从数字证书中取出公钥,重新生成一个随机数pre-master,利用公钥对报文进行加密。报文中的内容:新生成的随机数pre-master、加密通信算法改变的通知、对之前的数据生成一个摘要交给服务器验证。同时,利用这三个随机数计算出会话密钥
- 服务接收到请求后,将客户端的第二个随机数保留下来,然后对加密通信算法改变通知进行确认,验证客户端摘要的正确性。同样,服务器也有了这三个随机数,能够生成同样的会话密钥
至此,SSL的加密通信已建立,接下来所有的报文都会利用会话密钥进行加密,因为这个会话密钥是相同的,所以在加密、解密时效率很高。