对称加密
通信双方使用同一个密钥进行加密解密。
非对称加密
服务端用私钥加密,客户端用公钥解密。
公钥加密的数据只能用私钥解密,私钥加密的数据只能用公钥解密。
HTTPS
交换密钥时采用非对称加密,之后使用密钥进行对称加密。非对称加密开销比对称加密大。
摘要
通过摘要算法为原文生成固定长度的内容摘要,且摘要无法被逆向得到原文,不同的内容极大概率(绝大多数接近 100%,取决于摘要算法的碰撞程度)会生成不同的摘要。
例:MD5摘要算法,对1M的数据和对1字节的数据都会生成128位数字。
签名
将原文生成摘要,再用自己的私钥加密摘要,得到一个密文串,这个串就是原文的数字签名(DIgital Sign)。
公钥解密(数字签名) == 签订合同时的原文摘要 == 摘要算法(当前原文) == 当前摘要。
证书
证明公钥的正确性,防止有人冒充服务端将自己的公钥给客户端,与客户端通信。
CA
证明证书的公信力,相当于服务端说这是我的证书,但是客户端说我凭什么相信你,需要第三方机构证明证书的可信度。
信任链
在我们打开一个网站时,X机构颁发的证书会随着https的握手下载到本地,浏览器会查找操作系统中,是否已经安装过该机构的证书,如果安装了,那么会通过证书的公钥解密证书的签名,得到网站的摘要,再通过摘要算法得到摘要,比较算出的摘要和接收的摘要是否一致。如果一致,那么就可以信任这张证书。如果没有操作系统没有安装,会查看证书的签发方的证书是否安装在操作系统,直到找到根证书。根证书的特点就是:没有机构为它签名,只要操作系统中有根证书,那么根证书签发的证书就可信。
tips:所以不要乱安装盗版操作系统,可能有恶意的根证书。