vlambda博客
学习文章列表

HTTPS是对称加密还是非对称加密?

你知道,HTTPS用的是对称加密还是非对称加密?


HTTPS灵魂拷问

1)为什么用了 HTTPS 就是安全的?

2)HTTPS 的底层原理如何实现?

3)用了 HTTPS 就一定安全吗?


不用担心,本文将在解答“HTTPS到底用的是对称加密还是非对称加密?”的同时层层深入,从原理上把 HTTPS 的安全性讲透,您也将同时理解上述问题。


① 证书验证阶段:

1)浏览器发起 HTTPS 请求;

2)服务端返回 HTTPS 证书;

3)客户端验证证书是否合法,如果不合法则提示告警。


② 数据传输阶段:

1)当证书验证合法后,在本地生成随机数;

2)通过公钥加密随机数,并把加密后的随机数传输到服务端;

3)服务端通过私钥对随机数进行解密;

4)服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输。


1、为什么数据传输是用对称加密?


首先:非对称加密的加解密效率是非常低的,而 http 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的。


HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。


2、为什么需要 CA 认证机构颁发证书?


首先我们假设不存在认证机构,任何人都可以制作证书,这带来的安全风险便是经典的“中间人攻击”问题。


证书防止”中间人“攻击,同时可以为网站提供身份证明。


浏览器如何验证证书的合法性?浏览器发起 HTTPS 请求时,服务器会返回网站的 SSL 证书,浏览器需要对证书做以下验证:


1)验证域名、有效期等信息是否正确

2)判断证书来源是否合法

3)判断证书是否被篡改

4)判断证书是否已吊销


3、使用 HTTPS 会被抓包吗?


会被抓包,HTTPS 只防止用户在不知情的情况下通信被监听,如果用户主动授信,是可以构建“中间人”网络,代理软件可以对传输内容进行解密。