HTTPS原理
Posted cynchanpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPS原理相关的知识,希望对你有一定的参考价值。
第一、什么是HTTPS
HTTPS是安全的HTTP,使用HTTPS时,全部的HTTP请求和对应数据在发送到网络之前都要进行加密。HTTPS在HTTP之下TCP之上提供了SSL网络安全层。
第二、HTTPS具有的特征
1、server认证
2、client认证
3、完整性(server和client的数据不会被改动)
4、加密性(server和client的对话是加密的,无需操心被窃听)
5、高效率,在client和server执行一个高效的算法
6、普适性,基本上全部client和server都支持这种协议
7、管理的扩展性
HTTPS将HTTPS协议与一组强大的对称、非对称和基于证书的加密技术结合在一起,是的HTTPS不仅非常安全、并且灵活。HTTPS在将报文发送给TCP之前,先发送给SSL安全成
第三、工作流程
1.基于port的连接
假设发现是HTTP開始。client就会打开一条到serverport80的链接,并向其发送HTTP命令
假设是HTTPS開始,client就会打开一条到serverport443的链接,然后与server握手,以二进制格式与server交换一些SSL安全參数,附上加密的HTTP命令
2. SSL作用
I. SSL握手:在实际的传输数据開始钱前,通讯两方进行身份认证、协商加密算法、交换加密密钥等。
II. 为高层协议提供数据封装、压缩、加密等基本功能的支持,维护数据的完整性,确保数据在传输过程中不被改变。
3.SSL握手过程
(1)用户浏览器将其SSL版本、加密设置參数、与session有关的数据以及其他一些必要信息发送到server。
(2)server将其SSL版本、加密设置參数、与session有关的数据以及其他一些必要信息发送给浏览器。同一时候发给浏览器的还有server的证书。假设配置server的SSL须要验证用户身份。还要发出请求要求浏览器提供用户证书。
(3)client检查server证书,假设检查失败,提示不能建立SSL连接。假设成功。那么继续
(4)client浏览器为本次会话生成pre-master secret,并将其用server公钥加密后发送给server
(5)假设server要求鉴别客户身份,client还要再对另外一些数据签名后并将其与client证书一起发送给server。
(6)假设server要求鉴别客户身份,则检查签署客户证书的CA是否可信。假设不在信任列表中,结束本次会话。假设检查通过。server用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret
(7)client与server均使用此master secret生成本次会话的会话密钥(对称密钥)。在两方SSL握手结束后传递不论什么消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,可以显著提高两方会话时的运算速度 (8)client通知server此后发送的消息都使用这个会话密钥进行加密。
并通知serverclient已经完毕本次SSL握手。
(9)server通知client此后发送的消息都使用这个会话密钥进行加密。并通知clientserver已经完毕本次SSL握手。
(10)本次握手过程结束,会话已经建立。两方使用同一个会话密钥分别对发送以及接受的信息进行加、解密
在SSL通讯中,首先採用非对称加密交换信息,使得server获得浏览器端提供的对称加密的密钥。然后利用该密钥进行通讯过程中信息的加密和解密。为了保证消息在传递过程中没有被篡改,能够加密HASH编码来确保信息的完整性。
4. server证书
SSL支持双向认证,将server证书承载回client。再将client证书回送给server,而如今client能够没有证书。可是server必须有安全证书,
server证书是一个显示了组织的名称、地址、serverDNS域名以及其它信息派生证书。client能够检測证书的安全性
5. 网站证书的有效性检測
大部分浏览器对server证书做校验的验证步骤:
I. 日期检測
II. 签名颁发者可信度检測
III. 签名检測
IV. 网站身份检測
6. HTTPSclient
openSSL开源软件来编写HTTPSclient
以上是关于HTTPS原理的主要内容,如果未能解决你的问题,请参考以下文章