“确保Web安全的HTTPS”

    科技2022-07-10  101

    (What)什么是HTTPS?

    HTTP + 加密 + 认证 + 完整性保护 = HTTPS。HTTP加上加密处理和认证以及完整性保护后即是HTTPS。

    一道题:HTTP和HTTPS的区别? 答:

    HTTP协议运行TCP之上,所有传输的内容都是明文的;HTTPS运行SSL/TLS之上,SSL/TLS运行TCP之上,所有传输的内容都经过加密的。HTTP默认端口为80,HTTPS默认端口为443。

    HTTPS是身披SSL外壳的HTTP,看一个图吧(╹▽╹)

    (Why)为什么要使用HTTPS?

    HTTP的缺点HTTPS保证安全机制通信使用明文(不加密),内容可能会被窃听内容加密 、通信加密不验证通信方的身份,可能遭遇伪装。例:DoS攻击SSL提供的证书无法证明报文的完整性,可能已遭篡改。例:中间人攻击(MITM)SSL提供的摘要功能

    注: 内容加密的缺点:1. 客户端和服务端需同时具备加密和解密机制;2. 内容仍有被篡改的风险。

    (How)HTTPS的通信过程?

    ① 客户端向服务器发起请求,请求中包含客户端支持的SSL版本、加密组件列表(加密方法(算法))

    ② 服务器端接收到请求后发送ServerHello报文,报文中包含SSL版本、确认双方使用的加密方法(算法) ③ 发送Certificate报文,包含公开密钥证书(公开密钥 + 数字签名) ④ SSL握手协商部分结束

    ⑤ 客户端确认服务器证书有效后。发送回应报文,生成共享密钥【随机密码串(Pre-master secret)】,用步骤③得到的公钥进行加密发送到服务端 ⑥ 发送报文,提示服务器,之后通信采用共享密钥加密【Pre-master secret密钥加密】 ⑦ SSL握手协商部分结束,这次握手是否成功,以服务器能否正确解密为准

    ⑧ 服务端使用私密解密,并使用共享密钥加密数据,发送到客户端 ⑨ 客户端使用共享密钥解密数据

    ⑩ SSL加密建立完成

    对着上述步骤看一个图吧(〃‘▽’〃)

    参考资料

    《图解HTTP》

    Processed: 0.013, SQL: 8