TLS详解

TLS加密通信,

开始使用协商的秘钥进行加密通信

  1、服务器也可以要求验证客户端,即实现双向的验证,

  2、会话缓存握手过程,为了建立握手的速度,减少协议带来的性能方面的降低和资源方面的消耗,TLS协议有两类会话缓存机制,分别是会话session ID 和会话记录session titcket 。

     Session ID有服务器端支持,协议中的标准字段,因此基本的所有服务都支持,服务区段保存会话 ID 以及协商的通信信息, Nginx中的IM内存约保存4000个session ID机器相关的信息,占服务器资源较多。 另一种就是Session ticket需要服务器和客户端都支持,术语一个扩展字段,将协商的通信信息加密之后发送给客户端保存,秘钥只有服务器知道,占用服务器的资源最少。这两者对比,主要是保存协商信息位置的不同,类似http中session与从cookie。二者都存在的情况下,(nginx实现)优先使用session_ticket

   握手过程如下:

  

(1)会话标识SessionID 

      如果客户端和服务器之间之前建立了连接,服务器会在握手成功之后返回SessionID ,并且保存默认的参数在服务器中

    如果客户端再次需要和该服务器建立连接,则在Client_hello中 session_id中携带记录信息,发送给服务器。

    服务器根据收到的session Id 检索缓存的记录,如果没有检索到缓存过期,则按照正常的握手进程进行。

    如果检索到对应点缓存激励,则返回change_cipher_spec与 encrypted_handshake_message信息,两个信息作用类似,encrypted_handshack_messag是到当前通信参数与 master_sercet的hash值。但是如果客户能够验证通过服务器加密数据,则客户端同样发送change_spec和encrypted_handshake_message信息。服务器验证数据通过,则握手建立连接成功,开始进行征程的数据加密通信。

(2)会话记录session_ticket

    如果客户端和服务器支架之前建立可连接,服务器会在new_session_ticket数据中携带加密的session_ticket信息,客户端保存。

    如果客户端再次需要和服务器建立连接,则在client_hello 中扩展字段session_ticket中携带加密信息,一起发送给服务器,服务器解密session_ticket数据,如果解密失败按照正常的握手进行。

   如果解密成功,session-ticket则返回 change_cipher_spec和encrypted_handshake_message信息,两个信息作用于session Id中类似。

    如果客户端能工验证通过服务器加密数据,则客户端同样发送change_cipher_spec和encrypted_handshake_message信息。

   服务器验证数据通过,则我哦手建立成功,开始进行正常的数据加密通信。

3、重新连接

重新建立连接,就是放弃之前建立的连接,(TLS连接) 从新进行身份认证和秘钥写上个的过程,特点是不需要断开当前的数据传输就可以重新身份认证,更新秘钥和算法,因此服务端存储和缓存的信息都可以保存,

服务器端重新建立一般情况是客户端访问受保护的数据发生,基本过程如下:

    客户端和服务端建立了有效TLS连接 ,并开始通信。

   客户端访问受保护的信息

   服务器端返回helo-request信息

   客户端收到hello_request 信息之后发送client-helo 信息,开始建立连接

(4)秘钥计算

涉及的参数 random client   random_server  Pre_master  Master sercet  key material 计算秘钥时,服务器和客户端都具体有这些基本的信息 ,计算流程如下:

 

客户端使用RSA或者Diffe-Hellman等加密算法生成Pre-Master

Pre-Master结合Random sercet 和Random-server 两个随机数进行迭代生成 ker material 下面是详细的内容解释:

   PreMaster sercet 前面两个字节是TLS的版本号,这是一个比较重要的用来核对握手数据的版本号,因为在 Client hello 阶段,客户端会发送一份加密套件列表和当前支持的TLS协议的版本号给服务端  ,而且使用的是明文传输,如果握手数据包被破解之后,攻击者很可能篡改数据包,选择一个安全性较低的加密套件和版本给服务端,从而对数据进行破解,所以服务端要对密文中解密出来的对 PerMaster 版本号跟之前的Client hello阶段版本号进行对比, 如果版本号变低,则说明数据被篡改,则立即日内至发送任何消息。

 不管是客户端还是服务器端都要使用随机数,这样生成的随机秘钥每次都会不一样,对于RAS秘钥来说,pre-master-key 本身就是一个随机数,再加上helo消息中的随随机数三个随机数通过一个秘钥导出器最终生成一个对称秘钥。一个伪随机可能不完全是伪随机,但是三个伪随机加起来可能十分接近伪随机数,

 

转载于:https://www.cnblogs.com/xinxianquan/p/10784626.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要启用TLS 1.2协议,您可以按照以下步骤进行操作: 1. 打开注册表编辑器,可以通过运行命令regedit来打开。 2. 导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols路径。 3. 在Protocols下右键,选择新建,然后选择项,创建一个名为TLS 1.2的新项。 4. 在TLS 1.2下右键,选择新建,然后选择项,创建一个名为Server的新项。 5. 在Server下右键,选择新建,然后选择DWORD值,创建一个名为Enabled的新DWORD值。 6. 双击Enabled,将数值数据设置为1,表示启用TLS 1.2协议。 7. 同样,在TLS 1.2下右键,选择新建,然后选择项,创建一个名为Client的新项。 8. 在Client下右键,选择新建,然后选择DWORD值,创建一个名为Enabled的新DWORD值。 9. 双击Enabled,将数值数据设置为1,表示启用TLS 1.2协议。 10. 完成后,关闭注册表编辑器。 通过以上步骤,您已经成功启用了TLS 1.2协议。请注意,这些步骤是为了在Windows操作系统中启用TLS 1.2协议。\[1\]同时,启用TLS 1.2协议可以提高安全性,因为它使用了ECDHE来增强随机性,并且具有前向安全性。与RSA相比,ECDHE在服务器密钥泄露的情况下更加安全,因为之前的连接对应密钥无法被解密,从而保护了数据的安全性。此外,进行Finished校验也是非常必要的,以防止传输过程中的篡改。\[2\]\[3\] #### 引用[.reference_title] - *1* [windows server 2008 r2 中IIS启用TLS 1.2(安装SSL后用TLS 1.2)](https://blog.csdn.net/weixin_32210881/article/details/119262828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [HTTPS之TLS1.2连接详解](https://blog.csdn.net/qq_40276626/article/details/120396330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值