Open ChuChencheng opened 4 years ago
启用 HTTPS 就安全了吗?
实际上,用户在输入网址时,大多数时候是不会带上 https://
的,例如要打开 Google ,我们一般直接输入 google.com
,而不是输入完整的 https://www.google.com/
这时候,有的站点会进行一次重定向,从 http
重定向到 https
。但是在这重定向的过程中,还是用 http 的,这样还是有上面说到的问题。
这时候可以考虑使用 HSTS
参考: HSTS详解
概念
HTTPS 是在 HTTP 上建立 SSL 加密层,对传输数据进行加密,是 HTTP 的安全版。
主要作用:
为什么需要 HTTPS
既然是基于 HTTP ,那说明 HTTP 肯定是在安全方面存在问题的:
HTTPS 如何解决上述问题
HTTPS 不是一种新的协议,实际上是在 HTTP 与 TCP 之间采用了 SSL 进行加密。
HTTPS = HTTP + TLS/SSL
解决可能被窃听的问题
采用非对称加密与对称加密结合来保证
当发起一个 https 请求时:
解决报文完整性问题
采用数字签名
数字签名的作用:
过程:
解决身份伪装
看了上面两个问题的解决,会发现个问题,客户端如何安全地得到非对称加密的公钥的?
实际上,单靠客户端与服务端两端,是无法保证的,因为在传输公钥的过程中也可能被拦截篡改。
这时需要引入可信的第三方机构来做这件事。
过程:
HTTPS 的工作流程
知道了 HTTPS 是如何解决上述三个问题的,基本能知道 HTTPS 的工作流程了。
HTTP 与 HTTPS 的区别
参考