https

发布时间 2023-03-29 10:54:38作者: zhengbiyu

基本概念

对称加密

通信双方使用同一个密钥进行加密解密。
例:AES。

非对称加密

服务端用私钥加密,客户端用公钥解密。
公钥加密的数据只能用私钥解密,私钥加密的数据只能用公钥解密。
例:RSA。

摘要

通过摘要算法为原文生成固定长度的内容摘要,且摘要无法被逆向得到原文,不同的内容极大概率(绝大多数接近 100%,取决于摘要算法的碰撞程度)会生成不同的摘要。
例:MD5摘要算法,对1M的数据和对1字节的数据都会生成128位数字。

签名

将原文生成摘要,再用自己的私钥加密摘要,得到一个密文串,这个串就是原文的数字签名(DIgital Sign)。
公钥解密(数字签名) == 签订合同时的原文摘要 == 摘要算法(当前原文) == 当前摘要

证书

证明公钥的正确性,防止有人冒充服务端将自己的公钥给客户端,与客户端通信。

CA

证明证书的公信力,相当于服务端说这是我的证书,但是客户端说我凭什么相信你,需要第三方机构证明证书的可信度。
tips:CA和证书避免中间人攻击。

信任链

在我们打开一个网站时,X机构颁发的证书会随着https的握手下载到本地,浏览器会查找操作系统中,是否已经安装过该机构的证书,如果安装了,那么会通过证书的公钥解密证书的签名,得到网站的摘要,再通过摘要算法得到摘要,比较算出的摘要和接收的摘要是否一致。如果一致,那么就可以信任这张证书。如果没有操作系统没有安装,会查看证书的签发方的证书是否安装在操作系统,直到找到根证书。根证书的特点就是:没有机构为它签名,只要操作系统中有根证书,那么根证书签发的证书就可信。
tips:所以不要乱安装盗版操作系统,可能有恶意的根证书。

HTTPS

https在http基础上增加了SSL/TLS协议加密,通过CA证书的公钥使用非对称加密交换对称密钥,后续使用交换的对称密钥对数据进行对称加密(因为非对称加密比对称加密开销大)。