关于SSL协议

来源:百度文库 编辑:神马文学网 时间:2024/04/19 17:54:42
SSL协议使用不对称加密技术实现会话双方之间信息的安全传递。可以保证信息的保密性、完整性,并且会话双方能鉴别对方身份。下面是一个通过浏览器与Web网站建立HTTPS连接时,浏览器与Web服务器之间经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接的具体过程,如下:  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 mitm(中间人攻击,Man In The Middle)攻击的工具,具体实现是这样的:1、攻击软件通过arp或http代理截取http流量
2、当客户端服务器请求https页面时,攻击软件截获证书,并使用该证书的相关信息及自己产生的public key生成新的证书替换服务器的证书,并把新证书发给客户端。
3、客户端使用收到证书中的public对数据进行加密并传送给服务器。
4、攻击软件使用之前自己生成的private key进行解密,并使用服务器的public key 进行加密后传送到服务器。
5、攻击软件使用服务器的public key 解密服务器返回的数据,并使用自己生存的private key 对数据进行加密后传给客户端。大概就是这样,浏览器如果遇到ssl MITM攻击会提示证书错误:A proper web browsing client will warn the user of a certificate problems if any of the
following are not true:
A. the certificate has been signed by a recognized certificate authority
B. the certificate is currently valid and has not expired
C. the common name on the certificate matches the DNS name of the server其中A是关键。在局域网中防范此类攻击,技术上首先杜绝ARP欺骗的发生,另外要教育用户在使用Https网站时注意证书错误提示。
还有就是不能让用户使用那些乱七八糟的浏览器,那些浏览器安全性不高而且可能留有后门。这种中间人攻击理论上不可避免,除非服务器对客户端进行验证,如我们网银使用的数字证书就是用来对客户端进行验证避免受到中间人攻击。 中间人攻击,用户会收到证书无效的警告。用户如果忽略警告,那么简单的说,HTTPS等于HTTP如果用户不忽略警告,那么HTTPS可以防止网络上的窃听。当然也存在一些类似最近发现的SSL prefix攻击的一些漏洞,在一定条件下可以达到一定程度的攻击。但是还是比HTTP好多了