HTTP握手过程
注意:
首先通过非对称加密建立通信过程
在握手阶段,为什么使用3个随机数,一方面防止「随机数 C」被猜出,另一方增加Session Key随机性
Client发出支持的「对称/非对称加密」算法
Server返回选用的「对称/非对称加密」算法
Client对算法进行确认
Server对算法进行确认
根据Wireshak结果,对TLS进一步剖析。TCP三次握手建立连接,作为礼貌,Client先打招呼"Client Hello"。里面包含了Client的版本号、所支持的密码套件和随机数,如下图所示:
ClientHello
Server端表示尊重,回复"ServerHello",同时进行版本校对,给出随机数(Server Random),从Client算法列表中选择一个密码套件,在这里选择的"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"。
cipher Suite
这里的"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"什么意思呢?
密码套件选择椭圆曲线加RSA、AES、SHA256。
双方通过证书验证身份。因为本机服务器选用了ECDHE算法,为了实现密钥交换算法,它会发送证书后把椭圆曲线的公钥(ServerParams)连带"Server Key Exchange"消息发送出去
Server Key Exchange
意思是,刚才混合加密套件比较复杂,给你个算法参数,好好记住,别弄丢了。