计算机网络

 

 

 

 

 

 

 

 

 

 为什么必须进行三次握手?

 

 

 

 

 

 

 

 

 

TCP首部结构:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.3 拥塞控制

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TLS协议原理以及加密算法

 加密算法

 

 

https加密演变过程:

 

 

 

 

 

 (2)同时非对称加密加密性能比较低,能加密的数据长度有限。

 

 

https使用非对称加密和对称加密结合的方式:

(1)第 ③ 步时,客户端说:(咱们后续回话采用对称加密吧,这是对称加密的算法和对称密钥)这段话用公钥进行加密,然后传给服务器

(2)服务器收到信息后,用私钥解密,提取出对称加密算法和对称密钥后,服务器说:(好的)对称密钥加密

(3)后续两者之间信息的传输就可以使用对称加密的方式了

遇到的问题:

(1)客户端如何获得公钥 (通过SSL证书)

(2)如何确认服务器是真实的而不是黑客(验证证书是否合法)

 

 

 

SSL证书包括的具体内容有:

(1)证书的发布机构CA(Certificate Authority,即证书颁发机构)

(2)证书的有效期

(3)公钥

(4)证书所有者

(5)签名

 数字签名的作用:

如何放防止数字证书被篡改?

我们把证书原本的内容生成一份“签名”,比对证书内容和签名是否一致就能判别是否被篡改。这就是数字证书的“防伪技术”,这里的“签名”就叫数字签名

数字签名的制作过程:

  1. CA机构拥有非对称加密的私钥和公钥。
  2. CA机构对证书明文数据T进行hash。
  3. 对hash后的值用私钥加密,得到数字签名S。

 

浏览器验证过程:

  1. 拿到证书,得到明文T,签名S。
  2. 用CA机构的公钥对S解密(由于是浏览器信任的机构,所以浏览器保有它的公钥。详情见下文),得到S’。
  3. 用证书里指明的hash算法对明文T进行hash得到T’。
  4. 显然通过以上步骤,T’应当等于S‘,除非明文或签名被篡改。所以此时比较S’是否等于T’,等于则表明证书可信。

 

HTTPS一定安全吗

不一定,没有绝对的安全。

中间人攻击是黑客们在用户和真正服务器中间伪造一个服务器,从中转发数据,就可以顺利获取数据和篡改数据。

dns与ssl证书

无法理解,dns到现在还是明文传输的!明文传输!明文!(这样做可能是为了性能的考虑)也就是无论你访问的是http还是https,dns服务器返回的都是明文的ip地址,经常听到的dns污染,就是网络窃取到dns的明文ip,再篡改为有恶意的ip,例如你想访问baidu.com,dns本应该告诉你baidu.com的服务器在39.156.69.**,但黑客们却篡改为66.66.66.**,然后你就顺利地访问了黑客的服务器。虽然DNSSec有意识地对dns加签名防篡改,但依然无法解决最后一站的DNS攻击,即递归DNS服务器到用户电脑依然是无签名明文ip。 

dns明文,跟https攻击有什么关系? 没有关系!就算dns污染了,在验证ssl证书这一步就被中断了,因为黑客服务器上根本没有ssl证书,无法取得用户浏览器的信任。 那么,然而,但是,如果黑客们拥有了ssl证书呢?!情况就完全改变了,拥有ssl就能局部小规模中间人攻击。拥有ssl再加上dns污染,就能够大规模实施中间人攻击。 黑客们怎么才能拥有ssl证书? 目前绝大部分国内用户(根据多零程序员的观察,甚至还包括一些国内大型金融机构、国有银行),都在使用国外的ca机构颂发的ssl证书!

那么ssl证书在国外,会有什么问题吗?相当于你们家里的开门钥匙寄存在邻居,虽然邻居口头承诺不开你的门,但是你会放心吗?

如果国外的ca机构人品不好,或者他们的数据安全防御做得不好,那么dns+ssl大规模中间人攻击条件就成立了。

 

 

 

 

整理自https://javaguide.cn/home/

posted on 2021-12-22 20:47  nisico  阅读(36)  评论(0)    收藏  举报

导航