计算机网络(应用层https)

时间:2024-03-06 08:36:46

加密

http其实是在http的基础上添加软件层实现传统意义上的加密解密,从而保证数据在传输过程的安全性。http绑定的端口号是80,https绑定的端口号是443,在发送数据的时候选择了不同的端口号,报文会转给相应的协议。

上面的7就是一种密钥, 而异或可以理解为一种加密算法,而且是一种对称密钥,用同一个密钥进行加密和解密。其算法公开,但是只要密钥不同就可以了,加密和解密很快。而非对称加密需要公钥(全网公开)、私钥(只能自己拥有),公钥和私钥是相对的。如果公钥加密只能私钥解密(也就只有我能解密),如果私钥加密只能公钥解密(也就是所有人都可以解密)。

数据摘要由于很难反推出原信息,所以摘要通常用来做数据对比的。摘要信息经过加密,就得到了数字签证。

加密的缺陷

对称加密的问题是如何保持客户端和服务端的密钥共享,也就是客户端和服务器可以看到这之间约定好的对称密钥。而非对称加密可以让服务器生成一对公钥和私钥,然后服务器以明文的方式将公钥发给客户端对数据进行加密,这时候从客户端到服务器的信道看起来还算安全,因为只有服务器可以对客户端的进行解密,但是如果服务器要向客户端发送数据呢,这时候一定不能用私钥加密,安全性仍然有问题。于是我们双方都是用非对称加密,客户端也会生成一套公钥和私钥,通过铭文的方式将公钥发给服务器,将来服务器发给客户端的响应用客户端生成的公钥进行加密,该方法缺点是效率比较低而且仍有安全问题。 非对称加密+对称加密如下(解决了上一个问题效率低的问题):

安全问题如下:

路由器也可以看成一个中间人,安全问题的核心原因是客户端无法认证公钥是否合法如果客户端可以知道公钥M不是来源于服务器而是非法的中间人上面的问题就解决了。解决方法就是CA证书。

CA证书

ca颁发过程

ca验证 

ca证书的意义是保证客户端收到的消息并没有被篡改,验证了证书的合法性就验证了公钥的合法性,这就解决了上面客户端无法验证公钥合法性的问题。但是如果证件人用自己的真证书进行整个掉包呢,这个理论上是可行的,但是证书上包含了域名等服务器的认证信息,如果整体掉包,客户端依旧可以通过证书域名和我像访问的域名识别出来。

非对称加密+对称加密+ca证书

为什么ca机构不直接对明文数据进行加密,而是对明文数据进行数据摘要再进行加密。原因是:缩小签名密文的长度,加快数字签名的验证签名的运算速度。而且优先加密算法对于报文的长度是有要求的,我们是没有办法去确认明文数据的长度的。这套ca证书的认证方式也适用于别的数据的认证。

ca和浏览器内置了一对非对称的公钥和私钥,客户端和服务器端内置了一套非对称的公钥和私钥以及一对对称的公钥和私钥。