TLS过程(DH 非对称加密)

作者&投稿:干欧 (若有异议请与网页底部的电邮联系)
~

TLS 的目的便是解决数据的
一、Record 记录协议 (对称加解密)

二、HandShake 握手,挥手
验证通讯双方身份
交换加解密的安全套件
协商加密解密参数

当一个TLS会话建立好之后,会使用对称加密的密钥去通信,那么如何实现事先将对称加密的密钥传递给TLS会话的另一方呢。利用的就是非对称加密。分对称加密比对称加密慢数千倍,所以只是使用对称加密传递之后加密使用的对称加密的密钥。之后的加密安全性靠的是对称加密来解决。

非对称加密是有一把公钥和一把私钥,公钥可以公开,而私钥不能。
用公钥加密成密文,再将密文用私钥解密就能实现加解密过程。
而用私钥加密,公钥解密就是签名认证过程。
常见的非对称加密方式分为两大类

RSA 没有向前安全性,也就是需要每次的对称加密密钥的传递都是基于 公钥加密,服务端私钥解密。如果服务端的私钥丢失了,那几年前的通信数据都有可能被解密。所以这是极度不安全的,私钥的地位太重了,如果每次的加解密都是临时生成的密码来解决安全性,才不会对私钥的安全性有如此强的依赖。在2013年的棱镜门事件中,某个CA机构迫于美国政府压力向其提交了CA的私钥,这就是十分危险的。如果向前不安全,那么之前利用该CA私钥都会全部遭殃。所以这里说的是更安全的 DH类非对称加密。

下图就是DH密钥交换的TLS握手过程

DH 密钥交换协议,Diffile-Hellman key Exchange,简称 DH 或 DHE 。它可以让双方在完全没有对方任何预先信息的条件下通过一个不安全的信道创建一个密钥。

1、客户端浏览器随机生成一个值Ra,计算Pa(x,y) = Ra*Q(x,y), Q(x,y)为全世界公认的某个椭圆曲线算法的基点。将Pa(x,y)发送至服务器。

2、服务器随机生成一个值Rb,计算 Pb(x,y) = Rb * Q(x,y)。将Pb(x,y)发送到客户端浏览器。

3、客户端计算Sa(x,y) = Ra * Pb(x,y),服务器计算Sb(x,y)=Rb*Pa(x,y)

4、算法保证了Sa=Sb=S, 提取其中的S的x向量作为密钥。

为了解决上述DH的问题,引入了ECC椭圆曲线,进而进化为 ECDHE 算法,称为 Elliptic Curve Diffie-Hellman Key Exchange。ECC和RSA 在288字节的长度下,破解RSA需要煮沸一勺水的能量,而破解相同位数的ECC 就需要煮沸整个地球水的能量。RSA 为了提高安全性,只能靠增大密钥位数。尴尬的是现在的超算越来越厉害。量子计算下秀尔算法可8h内轻松破解2048位的RSA。RSA只能再增大密钥位数,但是再增大位数,移动端设备就惨了,你增大的密钥是运营商要收取流量费用的,而且加解密太费电。
ECC 的数学原理是椭圆曲线和离散对数。椭圆曲线很复杂。为了提升性能,还需要选择一个椭圆曲线,但是它不是真正的椭圆形,下面有图可以看到,只是运算上用到了椭圆算法。
但是ECC也有很多问题,1、ECC 可能有后门,如NSA(美国国家安全局发布的一套算法),这个算法就是被怀疑被植入后门了。2、而且ECC很多的算法都被注册专利了,一不小心就要吃官司,其专利大部分都被黑莓注册。

ECC 椭圆曲线的定义

ECC 的算法原理过于复杂,这里表示我也看不懂。点到为止吧。(以后看懂了再来补充)

这里的抓包结果就是用的EC DH E 算法来进行密钥交换的。这里选择的曲线是 secp256r1, 在这个曲线中,基点和参数已经给出了,PubKey 也给出了。
在 TLS1.3 中,一般使用的 X25519 曲线 (蒙哥马利曲线)




河间市18699202961: 简述DH算法 -
车试多维: DH组的本质是使用非对称密钥来加密对称密钥. DH算法过程: 1、相互产生密钥对 2、交换公钥 3、用对方的公钥和自己的私钥运行DH算法——得到另外一个密钥X

河间市18699202961: 公钥真实性两种机制 -
车试多维: 一、基础知识: 1、互联网上中间人攻击通常用的三种方式:1)窃听 2)数据篡改 3)会话劫持 2、数据加密的常用的三种方式有:对称加密、非对称加密、单向加密. 3、ssl:secure socket layer,安全的套接字层. 4、TLS:Transport Layer ...

河间市18699202961: 什么是TLS协议 -
车试多维: 安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性.该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake).较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上...

河间市18699202961: https如何进行加密传输 -
车试多维: HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息.TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非...

河间市18699202961: openssl 如何使用 -
车试多维: 为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用.1.对称加密算法OpenSSL一共提供了8种对称...

河间市18699202961: 非对称加密的代表例子有哪些? -
车试多维: 非对称加密主要算法: RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法). 使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法.经典的非对称加密算法如RSA算法等安全性都相当高. 非对称加密的典型应用是数字签名.

河间市18699202961: 什么是非对称加密
车试多维: 非对称加密算法(asymmetric cryptographic algorithm)又名“公开密钥加密算法”,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey).公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密.因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法.

河间市18699202961: 什么是SSL握手 -
车试多维: SSL协议的握手过程是这样的:SSL 协议既用到了公钥加密技术(非对称加密)又用到了对称加密技术,SSL对传输内容的加密是采用的对称加密,然后对对称加密的密钥使用公钥进行非对称加密.这样做的好处是,对称加密技术比公钥加密技...

河间市18699202961: 几种常用加密算法比较 -
车试多维: 几种对称性加密算法:AES,DES,3DES DES是一种分组数据加密技术(先将数据分成固定长度的小数据块,之后进行加密),速度较快,适用于大量数据加密,而3DES是一种基于DES的加密算法,使用3个不同密匙对同一个分组数据块进行3...

河间市18699202961: 电子商务非对称加密的原理 -
车试多维: 电子商务非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey).公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网