HTTPS原理
2019-06-21 本文已影响0人
DuffyHuang
讲 HTTPS 之前,我们先来回顾一下 HTTP 协议。HTTP 是一种超文本传输协议(HyperText Transfer Protocol),它是无状态的、简单快速的、基于 TCP 的可靠传输协议。在互联网上我们经常用它来完成网络通信。
既然 有了HTTP 协议,那怎么又冒出来了一个 HTTPS 呢?
我们可以简单写个http通信的demo,采用wireshark抓包一窥究竟:
POST /local HTTP/1.1
User-Agent: Jakarta Commons-HttpClient/3.1
Host: 10.100.52.128:8080
Content-Length: 42
Content-Type: application/x-www-form-urlencoded
param=f6ffb6fa-5184-4b85-986d-7fdabb28b953HTTP/1.1 200
Content-Type: text/plain;charset=UTF-8
Content-Length: 38
Date: Thu, 20 Jun 2019 02:36:09 GMT
{"resCode":"0000","resDesc":"success"}
很明显,我们发出的请求request和响应response,是完全暴露在互联网上面的。由于HTTP 是明文传输的,这就造成了很大的安全隐患:
1)通信使用明文,内容可能会被窃听;
2)不验证通信方的身份,因此有可能遭遇伪装;
3)无法证明报文的完整性,有可能已遭篡改;
在实际应用中,我们迫切地需要更加安全的网络通信环境,为了解决上述的安全隐患,这就诞生了HTTPS协议。
https-process.pngHTTPS 握手流程
参考文章:
关于证书链的一点认知
HTTPS原理和CA证书申请(满满的干货)
证书、CA、证书信任链