HengYk Blog

个人站

具有浪漫主义情调的理想主义务实青年


什么是HTTPS协议

文章参考

什么是HTTPS协议?

HTTPS

几个重要的概念

HTTPS

    HTTPS = HTTPS + SSL(Secure Socket Layer)

    HTTPS = HTTPS + TLS(Transport Layer Secure)

    HTTPS 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。

对称加密

    对称加密指加密和解密使用相同密钥的加密算法【百度百科】。

非对称加密

    公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法【百度百科】。

数字证书

    数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件【百度百科】。

数字签名

    数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明【百度百科】。
工作流程

前提

    各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥。
    CA维护了自己的一对公钥和私钥。

CA(Certificate Authority)和服务端

    1、服务端把自己的`公钥S_Key`(用于`非对称加密`)发送给`CA`;

    2、CA用自己的`私钥CA_Key_P`加密S_Key;

    3、(`Signing过程`)CA把服务器名称(网址)等信息先经过`哈希函数f_hash`处理,再使用自己的`私钥CA_Key_P`加密生成`证书签名Signature`;

    4、CA将制作完成的`数字证书`发送给服务端。

服务端和客户端

    1、客户端向服务端发起请求,服务端将自己的`数字证书`发送给客户端;

    2、(`Verification过程`)客户端使用CA的`公钥CA_Key`解密数字签名得到s1,然后使用哈希函数处理请求的服务端名称(网址)等信息得到s2,如果s1和s2匹配成功,则进行下一步操作;

    3、客户端使用CA的`公钥CA_Key`解密`服务端公钥S_Key`;

    4、客户端生成`对称加密秘钥C_Key`,接着使用服务端公钥S_Key加密C_Key,之后将加密后的数据信息c发送给服务端;

    5、服务端用自己的私钥S_Key_P解密c得到C_Key,之后就可以使用C_Key进行数据通信了。

简述上述过程

    1、认证数字证书;

    2、客户端 使用 非对称加密公钥 加密 对称加密秘钥;

    3、服务端 使用 非对称加密私钥 解密 对称加密秘钥;

    4、客户端和服务器 使用 对称加密 进行数据通信。