加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_扬州站长网 (https://www.0514zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

联邦学习密码学系列之(二)网络加密HTTPS

发布时间:2022-11-09 12:39:07 所属栏目:安全 来源:
导读:  探究事物要探究本质,所以接下来我计划将HTTPS交互的通信本质和大家分享下。HTTPS 整个通信过程可以分为以下阶段:

  1. 握手协商阶段

  i. SSL/TLS版本以及相关信息协商阶段。

  ii. 非对称加
  探究事物要探究本质,所以接下来我计划将HTTPS交互的通信本质和大家分享下。HTTPS 整个通信过程可以分为以下阶段:
 
  1. 握手协商阶段
 
  i. SSL/TLS版本以及相关信息协商阶段。
 
  ii. 非对称加密秘钥协商阶段。
 
  2. 数据传输阶段。
 
  这个事情大家可以这么理解,数据传输阶段就是可以理解为类似HTTP的传输(不过是使用了随机动态生成的对称秘钥),握手协商阶段经历两个小的阶段,1)协商TLS版本以及相关信息阶段,主要功能是协商双方都支持的版本与算。 2)非对称加密秘钥协商阶段,主要功能是通过非对称加密随机协商后续需要使用的对称秘钥。里面涉及到了数字CA证书(需要专门的机构颁发),证书可以理解为公钥的载体,并且通过数字签名技术保障不被篡改。这个在后面会有讲解。
 
  说到这里大家可能会问,为啥这么麻烦,直接使用非对称加密不就好了,我的理解是计算效率问题,这块有兴趣的读者可以自己做下测试。
 
  1.3 握手协商阶段1.3.1 SSL/TLS介绍
 
  SSL 和 TLS 协议可以为通信双方提供安全通道,从而保证通信的安全性和数据完整性。TLS 协议是从Netscape SSL 3.0协议演变而来的,不过这两种协议并不兼容,SSL 已经逐渐被 TLS 取代,所以下文就以 TLS 指代整个安全的协商。
 
  1. SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。
 
  2. TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。
 
  SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的。
 
  1.3.2 SSL/TLS 握手过程
 
  下面来看 TLS 握手的详细过程,是如何一步一步实现安全性的,下面的描述比较粗略,实际的交互过程比较复杂,大概需要发送十几个包。下面从整体流程上进行描述。
 
  1. "Client hello"消息:客户端通过发送"Client Hello"消息向服务器发起握手请求,该消息包含了可用版本号、当前时间、客户端随机数、会话ID、可用的密码套件清单、可用的压缩方式清单等能力。
 
  2. "Server Hello"消息:服务器发送"Server Hello"消息对客户端进行回应,该消息包含了数字证书,使用的版本号、当前时间、服务器随机数、会话ID、使用的密码套件、使用的压缩方式
 
  3. 验证:客户端对服务器发来的证书进行验证,确保对方的合法身份,验证过程可以细化为以下几个步骤:
 
  a) 检查数字签名
 
  b) 检查证书的状态等
 
  4. "Premaster Secret"字符串:客户端向服务器发送另一个随机字符串"Premaster Secret (预主密钥)",这个字符串是经过服务器的公钥加密过的,只有对应的私钥才能解密。
 
  5. 使用私钥:服务器使用私钥解密"Premaster Secret"。
 
  6. 生成共享密钥:客户端和服务器均使用 Client Random,Server Random 和 Premaster Secret,并通过相同的算法生成相同的共享密钥 KEY。
 
  7. 客户端就绪:客户端发送经过共享密钥 KEY加密过的"Finished"信号。
 
  8. 服务器就绪:服务器发送经过共享密钥 KEY加密过的"Finished"信号。
 
  9. 达成安全通信:握手完成,双方使用对称加密进行安全通信。
 
  1.3 数据传输阶段
 
  到目前为止,整个通道完成了证书验证阶段,握手成功,双方可以愉快的使用协商出来的动态的对称秘钥进行通信通道的加密。
 
  2数字签名
 
  数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。
 
  数字签名是个加密的过程,数字签名验证是个解密的过程。
 
  1. 服务器对证书内容进行信息摘要计算 (常用算法有 SHA-256等),得到摘要信息,再用私钥把摘要信息加密,就得到了数字签名
 
  2. 服务器把数字证书连同数字签名一起发送给客户端
 
  3. 客户端用公钥解密数字签名,得到摘要信息
 
  4. 客户端用相同的信息摘要算法重新计算证书摘要信息,然后对这两个摘要信息进行比对,如果相同,则说明证书未被篡改,否则证书验证失败,数据可能已经被篡改。
 
  3 数字证书
 
  我们知道,摘要算法用来确保数据没有被篡改,非对称加密算法可以对数据进行加解密,签名算法可以确保数据完整性和抗否认性,把这些算法集合到一起,并搞一套完善的标准,这就是数字证书。
 
  数字证书可以防止中间人攻击,因为它采用链式签名认证,即通过根证书(Root CA)去签名下一级证书,这样层层签名,直到最终的用户证书。而Root CA证书内置于操作系统中,所以,任何经过CA认证的数字证书都可以对其本身进行校验,确保证书本身不是伪造的。
 
  具体做法就是服务器不直接向客户端发送公钥,而是要求受信任的第三方,也就是证书认证机构 (Certificate Authority, 简称 CA)将公钥合并到数字证书中,然后服务器会把公钥连同证书一起发送给客户端,私钥则由服务器自己保存以确保安全。数字证书存储的是公钥,以及相关的证书链和算法信息。
 
  私钥必须严格保密服务器内容加密,如果数字证书对应的私钥泄漏,就会造成严重的安全威胁。如果CA证书的私钥泄漏,那么该CA证书签发的所有证书将不可信。数字证书服务商DigiNotar就发生过私钥泄漏导致公司破产的事故
 
  1 番外篇
 
  最近静悟对自己也进行了反思,这一段时间,放松了对自己的要求,对于行业的思考与技术分享做的少了些。工作之余沉浸在自己要精进的两个方向领域,进行了推导与实践,缺乏对外的输出。
 
  个人介绍:杜宝坤,京东联邦学习9N-FL的技术负责人,从0到1带领团队构建了京东的联邦学习解决方案,实现电商领域的首款支持超大规模的工业化联邦学习解决方案,支持超大规模样本PSI隐私对齐、安全的树模型与神经网络模型等众多模型支持,并且实现了业务侧的落地,开创了新的业务增长点,产生了显著的业务效益。个人喜欢研究技术,一直走的技术路线。从毕业到现在的15年一直没有放松对自己技术的打磨,基于从全链路思考与决策技术规划的考量,研究的领域比较多,从架构、数据到算法与算法框架均有涉及。
 
  1 番外篇
 
  最近静悟对自己也进行了反思,这一段时间,放松了对自己的要求,对于行业的思考与技术分享做的少了些。工作之余沉浸在自己要精进的两个方向领域,进行了推导与实践,缺乏对外的输出。
 
  个人介绍:杜宝坤,京东联邦学习9N-FL的技术负责人,从0到1带领团队构建了京东的联邦学习解决方案,实现电商领域的首款支持超大规模的工业化联邦学习解决方案,支持超大规模样本PSI隐私对齐、安全的树模型与神经网络模型等众多模型支持,并且实现了业务侧的落地,开创了新的业务增长点,产生了显著的业务效益。个人喜欢研究技术,一直走的技术路线。从毕业到现在的15年一直没有放松对自己技术的打磨,基于从全链路思考与决策技术规划的考量,研究的领域比较多,从架构、数据到算法与算法框架均有涉及。
 
  最后附上个人的邮箱地址与个人的技能树(样样通、样样松,大抵说的就是我这种人了。本质是怕哪天那个方向不行了,我还可以混口饭吃,技能树我叫习惯了,但是现在突然发现叫技能树有点不够大气,以后我要改叫技能有向无环图,这次还是这么叫吧,我比较懒),欢迎对技术有追求的同学联系我,大家一起席地论道、切磋技艺,期望最终能效仿先贤华山论剑(论剑的地点最好是在烧烤店,啤酒烤串自由那种,哈哈)。
 

(编辑:应用网_扬州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!