HTTPS 的全称是 HTTP over SSL
简单的理解就是在之前的HTTP传输上增加了SSL协议的加密能力
说到对网络传输数据的加密,必须要先说安全套接字层(Secure Socket Layer,SSL).SSL协议工作于传输层和应用层之间,为应用提供数据的加密传输。
通过对称加密算法对数据进行加密,比如DES,即在一个主站和用户之间可以使用相同的密钥对传输内容进行加解密。是否可以认为这样就完全没有风险呢?答案显然是否定的。因为密钥几乎没有什么保密性可言,如果域每一个用户之间都约定一个独立的密钥,如何把密钥传输给对方,又是一个安全难题。
一种全新的算法RSA出现了。它把密码革命性地分为公钥和私钥,由于两个密钥各不相同,所以称为非对称加密。
非对称加密的安全性是基于大质数分解的困难性,在非对称的加密中公钥和私钥是一对大质数函数。计算两个大质数的乘积是简单的,但是这个过程的逆运算(即将这个乘积分解为两个质数)是非常苦难的。
一方发送消息时,使用另一方的公钥进行加密生成密文。收到密文的一方在用私钥进行解密,这样一来,传输就相对安全了。
但是非对称加密并不是完美的,它有一个很明显的缺点就是加密和解密耗时长,只适合对少量数据进行处理。因此实际中,非对称加密和对称加密同时使用。
但是又考虑到网络中可能存在冒充的情形,因此需要一个具有公信力的组织来真名身份,这就是CA(Certificate Authority)的作用,CA就是办法HTTPS证书的组织。HTTPS是当前网站的主流文本传输协议,在基于HTTPS进行连接时,就需要数字证书。
公钥和个人信息-------Hash算法----》消息摘要-----CA私钥加密------》数字签名
公钥和个人信息+数字签名 -----》数字证书
在整个HTTPS的传输过程中,主要分为两部分:首先是HTTPS的握手,然后才是数据的传输。前者是建立一个HTTPS的通道,并确定连接使用的加密套件及数据传输使用的密钥。而后者主要使用密钥对数据加密并传输。