码迷,mamicode.com
首页 > 其他好文 > 详细

HTTPS原理

时间:2014-07-04 08:20:06      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:des   style   http   使用   数据   工作   

第一、什么是HTTPS
HTTPS是安全的HTTP,使用HTTPS时,所有的HTTP请求和相应数据在发送到网络之前都要进行加密,HTTPS在HTTP之下TCP之上提供了SSL网络安全层,
第二、HTTPS具有的特征
1、服务器认证
2、客户端认证
3、完整性(服务器和客户端的数据不会被修改)
4、加密性(服务器和客户端的对话是加密的,无需担心被窃听)
5、高效率,在客户端和服务器运行一个高效的算法
6、普适性,基本上所有客户端和服务器都支持这样的协议
7、管理的扩展性
HTTPS将HTTPS协议与一组强大的对称、非对称和基于证书的加密技术结合在一起,是的HTTPS不仅很安全、而且灵活。HTTPS在将报文发送给TCP之前,先发送给SSL安全成
第三、工作流程
1.基于端口的连接
如果发现是HTTP开始,客户端就会打开一条到服务器端口80的链接,并向其发送HTTP命令
如果是HTTPS开始,客户端就会打开一条到服务器端口443的链接,然后与服务器握手,以二进制格式与服务器交换一些SSL安全参数,附上加密的HTTP命令
2. SSL作用
I. SSL握手:在实际的数据传输开始钱前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
II. 为高层协议提供数据封装、压缩、加密等基本功能的支持,维护数据的完整性,确保数据在传输过程中不被改变。
3.SSL握手过程
(1)用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。 
(2)服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。
(3)客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续
(4)客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发送给服务器
(5)如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。
(6)如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret
(7)客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度 (8)客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。
(9)服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。
(10)本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密
在SSL通讯中,首先采用非对称加密交换信息,使得服务器获得浏览器端提供的对称加密的密钥,然后利用该密钥进行通讯过程中信息的加密和解密。为了保证消息在传递过程中没有被篡改,可以加密HASH编码来确保信息的完整性。
为了说明的方便,在本文中称客户端为B,服务器端为S。   
 STEP 1: B—〉S(发起对话,协商传送加密算法)  你好,S!我想和你进行安全对话,我的对称加密算法有DES,RC5,我的密钥交换算法有RSA和DH,摘要算法有MD5和SHA。  
 STEP 2: S—〉B(发送服务器数字证书)  你好,B!那我们就使用DES-RSA-SHA这对组合进行通讯,为了证明我确实是S,现在发送我的数字证书给你,你可以验证我的身份。  
 STEP 3: B—〉S(传送本次对话的密钥)  (检查S的数字证书是否正确,通过CA机构颁发的证书验证了S证书的真实有效性后。生成了利用S的公钥加密的本次对话的密钥发送给S)  S, 我已经确认了你的身份,现在将我们本次通讯中使用的对称加密算法的密钥发送给你。
 STEP 4: S—〉B(获取密钥)  (S用自己的私钥解密获取本次通讯的密钥)。 B, 我已经获取了密钥。我们可以开始通信了。  
 STEP 5: S<—>B(进行通讯)
4.  服务器证书
SSL支持双向认证,将服务器证书承载回客户端,再将客户端证书回送给服务器,而现在客户端可以没有证书,但是服务器必须有安全证书,
服务器证书是一个显示了组织的名称、地址、服务器DNS域名以及其他信息派生证书,客户端可以检测证书的安全性
5. 站点证书的有效性检测
大部分浏览器对服务器证书做校验的验证步骤:
I.  日期检测
II. 签名颁发者可信度检测
III. 签名检测
IV. 站点身份检测
6. HTTPS客户端
openSSL开源软件来编写HTTPS客户端


HTTPS原理,布布扣,bubuko.com

HTTPS原理

标签:des   style   http   使用   数据   工作   

原文地址:http://blog.csdn.net/richard_rufeng/article/details/34431731

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!