`

WSS - Https - 握手协议

阅读更多

<!--[if !supportLists]-->   <!--[endif]-->SSL协议的握手过程 为了便于更好的认识和理解 SSL 协议,这里着重介绍 SSL 协议的握手协议。SSL 协议既用到了公钥加密技术(非对称)又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术。SSL 的握手协议非常有效的让客户和服务器之间完成相互之间的身份认证,其主要过程如下:


  ①客户端的浏览器向服务器传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。

<!--[if !supportLists]-->   <!--[endif]-->
  ②服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书

 

<!--[if !supportLists]-->   <!--[endif]-->  ③客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。

<!--[if !supportLists]-->   <!--[endif]-->  ④用户端随机产生一个用于后面通讯的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤②中的服务器的证书中获得)对其加密,然后将加密后的“预主密码”传给服务器。

<!--[if !supportLists]-->   <!--[endif]--> 
  ⑤如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密码”一起传给服务器。

 

<!--[if !supportLists]-->   <!--[endif]-->   ⑥如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的CA 是否可靠,发行CA 的公钥能否正确解开客户证书的发行 CA 的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,服务器将用自己的私钥解开加密的预主密码,然后执行一系列步骤来产生主通讯密码(客户端也将通过同样的方法产生相同的主通讯密码)。


  ⑦服务器和客户端用相同的主密码即通话密码,一个对称密钥用于 SSL 协议的安全数据通讯的加解密通讯。同时在 SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。


  ⑧客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。


  ⑨服务器向客户端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。


  ⑩SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。

<!--[if !supportLists]-->   <!--[endif]--> 

分享到:
评论
1 楼 gaoyuanyuan121 2012-05-09  
很详细,学习了~

相关推荐

    展示tio-websocket的用法,t-io官方提供的唯一tio-websocket示范教程,包括wss和监控等高级特性

    本文将深入探讨`tio-websocket`的使用方法,它是由`t-io`官方提供的唯一WebSocket示例教程,涵盖了包括WSS安全连接和监控在内的高级特性。`t-io`是一个高性能、易用的Java NIO框架,而`tio-websocket`是其专门针对...

    ut-wss:Websocket服务器

    在WebSocket协议中,服务器与客户端首先通过HTTP握手建立WebSocket连接,之后双方就可以通过这个连接进行双向数据传输,而无需反复进行HTTP请求和响应的交换。JavaScript作为前端开发的主要语言,其在浏览器端可以...

    易语言-六间房直播WSS包解密,加密

    2. **解析TLS握手**:WSS包是通过TLS加密的,因此我们需要理解TLS握手过程,包括证书交换、密钥协商等,以便于后续的解密。 3. **提取密钥**:从TLS握手信息中,我们可以提取出用于加密和解密的数据密钥。 4. **...

    WebSocket实例

    WebSocket协议的标识符为ws(非加密)和wss(加密),这两个协议基于TCP/IP,但提供了更高级别的握手和帧格式。在建立连接时,客户端会发起一个HTTP Upgrade请求,转换现有的HTTP连接为WebSocket连接。服务器响应...

    C#实现WebSocket源码(c#写的服务端html写的客户端)

    WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。 它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以...(6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

    Node.js-WebSocket协议译文

    WebSocket协议的核心在于它的握手过程,即HTTP升级机制。当客户端浏览器发起一个WebSocket连接请求时,会发送一个特殊的HTTP请求,请求头中含有"Upgrade"字段,表明要升级到WebSocket协议。服务器响应并同意升级后,...

    Html5 WebSocket c++ 握手 库

    在WebSocket中,握手过程是建立连接的关键步骤,确保了客户端和服务器之间的通信协议一致。 首先,让我们深入理解WebSocket握手的过程。当客户端想要与WebSocket服务器建立连接时,它会发送一个HTTP Upgrade请求。...

    基于websocket协议的简易视频直播

    它通过握手协议建立连接,并使用ws或wss(加密)作为URL协议标识。 2. 握手过程:WebSocket连接的建立需要经过HTTPUpgrade头进行握手。客户端首先发送一个HTTP请求,包含Upgrade和Connection头,服务器响应并确认...

    易语言-WebSocket协议通信

    生成握手加密用WebSocket-Key,并与WebSocket服务器连接2.加密数据3.实现登陆与聊天功能程序中只使用了精易模块,请自行导入.程序界面比较简陋主要是实现通信部分,有需求的可以自行完善其他功能另:对WebSoket感兴趣但...

    CEF拦截一切网站的WSS完整代码

    这通常涉及到解析URL,建立TCP连接,以及实现WebSocket握手协议。 4. 数据拦截和处理:在WebSocket连接建立后,可以拦截发送和接收的数据帧,进行日志记录、修改、转发或阻止。 5. 错误处理和断开连接:确保正确...

    Html5 WebSocket 基于c++ 的握手库

    1. **握手协议**:理解WebSocket握手协议,包括发送Upgrade请求,设置Connection、Sec-WebSocket-Key等关键头部字段,以及验证服务器返回的Sec-WebSocket-Accept响应。 2. **数据帧处理**:WebSocket数据传输通过...

    Android 实现WebSocket长连接

    Android 实现WebSocket长连接 ...7、协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。 ———————————————— 原文链接:https://blog.csdn.net/lou_liang/article/details/123879895

    websocket c++服务器,浏览器握手成功

    首先,客户端通过发送一个HTTP/HTTPS请求来发起握手,这个请求包含了Upgrade头,表明客户端希望升级到WebSocket协议。服务器收到请求后,如果同意升级,会返回一个HTTP响应,同样包含Upgrade头,以及一个Sec-...

    PHP 实现 WebSocket 协议原理与应用详解

    本文实例讲述了PHP 实现 WebSocket 协议原理与应用。分享给大家供大家参考,具体如下: ... WebSocket 是什么?...在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行

    易语言-抢单WS协议

    在“易语言-抢单WS协议”这个主题中,我们主要关注的是如何利用易语言来实现抢单功能,并且这个功能是基于WebSocket(WS)协议的。 WebSocket协议是一种在客户端和服务器之间建立长连接的协议,常用于实时通信,如...

    WebSocket协议中文版

    为了确保客户端和服务器能够协商一致地建立WebSocket连接,协议定义了一个初始握手过程。此过程通过HTTP协议完成,但与普通的HTTP请求有所不同。客户端首先发送一个包含特定Upgrade头的GET请求至服务器;服务器响应...

    WebSocket测试软件(可支持SSL)

    对于`wss`连接,软件会进行SSL/TLS握手,验证服务器证书的有效性,建立安全的加密通道。 "WebSocketClient"可能是该测试软件的主要执行程序或配置文件,它可能包含了一系列功能,如发送测试消息、接收服务器响应、...

    WebSocketClient请求的jar包

    总结,WebSocketClient和Java-WebSocket库是Android开发中实现WebSocket长连接的关键工具,它们提供了在移动设备上与WebSocket服务器通信的能力,支持安全的WSS协议。开发者应了解WebSocket的基本原理,掌握Java-...

    webSocket 服务器端的简单实现

    WebSocket 是一种在客户端和服务器之间建立长连接的协议,它为双向通信提供了低延迟、高效的数据传输方式。在Web开发中,WebSocket常用于实时应用,如在线聊天、股票报价、实时游戏等,使得数据更新无需频繁地进行...

Global site tag (gtag.js) - Google Analytics