zl程序教程

您现在的位置是:首页 >  前端

当前栏目

Network HTTPS

HTTPS Network
2023-09-14 09:14:49 时间

加密分两种 : 对称加密,非对称加密

  • 对称加密算法 : 加密/解密都用相同的密钥
  • 非对称加密算法 : 加密/解密用的密钥不相同。公钥加密,只有私钥才能解密。私钥加密,只有公钥才能解密
  • 对称加密算法比非对称加密算法,效率要高些

数字证书

权威部门颁发的证书 (Certificate)

  • 证书里面有公钥 , 证书的所有者,证书的发布机构,证书的有效期
  • 生成证书要发送证书请求给一个权威机构 (CA (Certificate Authority) ) 认证
  • 大 CA (root CA) : 通过层层授信背书,保证非对称加密模式运转
  • 另种证书 (Self-Signed Certificate) : 自己给自己签名

HTTPS 工作模式

  • 客户端发送 Client Hello 消息到服务器,以明文传输 TLS 版本信息、加密套件候选列表、压缩算法候选列表、随机数
  • 返回 Server Hello 消息 , 告诉客户端,服务器用的协议版本、加密套件、压缩算法,随机数
  • 服务器把证书发给客户端
  • 客户端验证证书可信后,客户端把随机数字 Pre-master,发送 Client Key Exchange,用证书的公钥加密,发送给服务器,服务器用私钥解密
  • 客户端/服务器都有三个随机数 (自己、对端,Pre-Master 随机数)。通过三个随机数,产生相同对称密钥
  • 有了对称密钥,客户端发送 Change Cipher Spec,以后都用对称密钥进行加密
  • 再发送 Encrypted Handshake Message,将数据用对称密钥加密,发送给服务器进行握手验证
  • 服务器也发送 Change Cipher Spec,以后都用对称密钥进行加密,也发送 Encrypted Handshake Message 消息
  • 当握手结束后,就用对称密钥进行加密传输

image.png

重放/篡改

  • 防止重放 : 用 Timestamp 和 Nonce 随机数联合起来,做成不可逆的签名保证
  • 防止篡改 : 用签名保证不可篡改性