美文网首页
初识Https

初识Https

作者: 048f398ea7b5 | 来源:发表于2017-03-07 10:10 被阅读19次

HTTPS = HTTP (应用层) + SSL/TLS(传输层)

https协议通信图

那什么是SSL/TLS呢?

SSL = Secure Sockets Layer (现在技术上称为传输层安全协议(TLS))用于在客户端与服务器之间进行加密通信。

那SSL是如何工作的呢?

how ssl work 

步骤一:协商算法。

1.客户端生成随机数RNC(Random Client),发送SSL算法信息(密码套件)和RNC

2.服务端生成随机数RNS,并且发送服务端支持的SSL算法信息(服务单支持的密码套件)和RNS

协商算法

步骤二:验证证书

客户端用已知的CA列表来认证证书

验证证书

步骤三:密钥协商

目的:构建主密钥Master Secret

密钥协商

步骤四:构建回话密钥

构建会话密钥

步骤五:正式加密交互

正式加密交互

再来说一说证书。

为什么需要证书?

服务器证明自己是靠谱的。

举个例子。假如我们要去买一颗价值不菲的钻石,那么我们肯定很关心我们想买的钻石的真伪,但是我们对甄别钻石的真伪不是很在行,那么我们怎么办?其实每颗钻石都有一个证书,这个证书就是为了证明钻石的真伪的。那么第一个问题来了,我们怎么知道这个钻石的证书不是伪造的呢?每个证书都是由机构颁发的。那第二个问题来了,我怎么知道这个机构是不是权威的机构呢?而且第二个问题整个问题的关键所在。因为如果机构有问题,那么下面的所有的东西都可能是假的。要想得到客户的信任,那么这个机构肯定是得到业界的认可。

在Https验证证书也是这样的,怎么验证证书是合法的,首先证书是由受信任的数字证书颁发机构CA[Certificate Authority] 颁发的,为什么要说是受信任的呢?并不是所有CA机构签发的SSL证书都受浏览器信任,不受浏览器信任的SSL证书会报错该证书不受信任。如果该CA机构被WebTrust机构认证,那么该CA机构是被信任的。

服务器证书包含什么内容?

1、web站点的名称和主机名

2、web站点的公开密钥

3、签名颁发机构的名称

4、来自签名颁发机构的签名

证书链和根证书

有时一个被信任的证书机构可能授权另一个证书机构颁发证书,也就是说会出现多个认证层级,这样就出现了证书链。

证书链

证书的类型

1、X.509证书通常用于包含一个公钥

2、PKCS12证书通常用来包含一个私钥,PKCS12需要密码才能打开

WireShark解析SSL过程

wireShark解析ssl

Server Key Exchange

这个消息是用来发送密钥交换算法相关参数和数据的。这里要提前提一下,就是根据密钥交换算法的不同,传递的参数也是不同的。 常用的密钥交换算法:RSA、DH(Diffie-Hellman)、ECDH(Elliptic curve Diffie–Hellman)

Finished(Encrypted Handshake Message)

这个包表明握手已经完成,并且对之前发过的数据进行加密发送给对方做校验,防止被篡改。同时也验证一下,加密算法、密钥工作是否正常


参考

1、图解SSL/TLS协议http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html

2、SSL/TLS协议运行机制的概述http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

3、数字签名是什么?http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

4、Https到底是啥玩意儿http://www.toutiao.com/a6263385790367678721/

5、http://www.aneasystone.com/archives/2016/04/java-and-https.html

相关文章

网友评论

      本文标题:初识Https

      本文链接:https://www.haomeiwen.com/subject/ozmsgttx.html