HTTPS相比HTTP为什么安全 您所在的位置:网站首页 证书加密原理有哪些 HTTPS相比HTTP为什么安全

HTTPS相比HTTP为什么安全

#HTTPS相比HTTP为什么安全| 来源: 网络整理| 查看: 265

HTTPS(超文本传输协议[安全]) 1.HTTPS为什么叫安全的超文本传输协议

在HTTPS中,S是Security的意思,是安全的意思,而HTTP是超文本传输协议,这就不得不谈起HTTP在安全方面有什么劣势或者不足之处.

HTTP通信是明文通信,通信过程可能会被监听 不验证通信对方的身份,有可能遭遇伪装 无法验证报文的完整性,或者报文遭到篡改

除此之外,HTTP本身也具备很多缺点,比如性能低下,即使是HTTP1.1,采用管线化(管道化)技术,但是在并发请求处理的情况下,性能依旧不够.

2.通信的加密

HTTP协议中没有加密机制,但是可以通过SSL或者TLS协议组合使用,加密HTTP的通信内容.与SSL组合的HTTP也被称为HTTPS,所以HTTPS并不是应用层的一个协议,而是基于SSL/TLS 和HTTP组合的一种统称.

什么是加密?

现在将我们所有的文件都看成由字符构成的二进制文件,其中每个字符都被分配了相应的二进制编码,这也叫字符编码.定义了哪个编码对应的哪个字符,这种编码体系就叫做字符集,例如我们的ASCLL字符集,Unicode字符集,EUC字符集等,例如:现在有一个字符集,由三位字符组成,ABC. 字符 编码 A 65 B 66 C 67

转换成对应的十进制就是65 66 67,在转换成二进制,大家自行转换就行,这样展示出的数据就被称之为明文

如果是你,该如何去设计加密?

正常的加密通常需要相对的解密,而这种加密的方式需要符合逻辑,对数据进行加密其实有很多种设计思路,例如,将数据的每个字符对应的十进制+2,就比如ABC进行+2加密之后就会摇身一变CDE,如果还需要解密,即可进行逆加密就能得到原始的加密数据了 除此之位,二进制的位运算:异或,对于异或的结果是一个可逆的过程,因为他并不关心运算的结果,这种运算如果应用到二进制种的某一位进行运算之后,或者是某几位,加密的方式全权由自己决定.如果需要解密,只要知道加密的过程即可. #include #include void xor_encrypt_decrypt(char *data, char key) { size_t length = strlen(data); for (size_t i = 0; i < length; i++) { data[i] = data[i] ^ key; // 对每个字符进行异或操作 } } int main() { char plaintext[] = "Hello, world!"; // 待加密的明文数据 char encryption_key = 0xAA; // 加密密钥,可以是任意字符 // 加密 xor_encrypt_decrypt(plaintext, encryption_key); printf("加密后的数据: %s\n", plaintext); // 解密(使用同样的密钥进行解密) xor_encrypt_decrypt(plaintext, encryption_key); printf("解密后的数据: %s\n", plaintext); return 0; }

这几种举例其实都是对称加密算法,因为加密和解密的方式是一样的,这种加密解密的方式我们称之为密钥,更多的是一种实现思想或者算法

然而,我们的HTTPS可不止不于此,他不仅采用了对称加密算法,还采用了非对称加密算法(密钥不同,加密的密钥和解密的密钥不同,因此会有公钥和私钥一说).

因为在互联网中,密钥也有被拿到的风险,这样的加密方式放在传输信息中并不安全,于是通过公钥和私钥的方式进行非对称加密.

对称与非对称加密

公钥是可以公布给全世界,而私钥仅仅只有自身知道,至于互联网中常见的RSA非对称加密算法,本人才学疏浅,无法理解其原理,至于对称加密和非对称加密在HTTPS协议中哪些地方使用,需要了解HTTPS RSA握手过程才能理解.

3.信息摘要(Message Digest)和消息认证码(Message Authentication Code)

他两是什么:验证数据完整性的一把钥匙,不过两者存在一定的区别,我们先来理解信息摘要

信息摘要是:通过哈希函数对数据进行计算得到的固定长度的字符串,通常称为哈希值或摘要值。

信息摘要

常见的哈希函数包括MD5、SHA-1、SHA-256等。 信息摘要用于验证数据的完整性,即检查数据在传输过程中是否发生了任何更改。 信息摘要是单向的,无法从摘要值还原出原始数据。 信息摘要广泛应用于文件完整性检查、数字签名等领域

其实很好理解,同一份数据,如果都用相同的哈希函数进行运算,得到的哈希值是相同的,而数据如果不完整或者发生变更,哈希值便会立刻发生改变,至于双方如何知道对方使用的何种哈希函数?

协商或者协议

消息认证码:一种使用密钥对数据进行加密和校验的技术,它使用对称密钥算法,将密钥与数据进行运算生成一个固定长度的认证码

消息认证码

常见的消息认证码算法包括HMAC、CMAC、Poly1305等。 消息认证码不仅验证数据的完整性,还提供了身份验证和防止篡改的功能。

总结:两者的不同

乍一看,好像两种方式都能保证数据的完整性,只不过使用的方式和最后比对的结果的名称不同罢了,但是,消息认证码使用的是对称密钥进行运算的,这一点非常非常重要,因为对称密钥只有发送方和接收方才知道,其余人并不知道这个对称密钥.所以这就保障了消息认证码还可以确保身份.

但是我猜到应该会有人问对称密钥为什么不会被他人知道?我们前面提及在HTTPS协议中,是使用的混合加密的方式,其实这种加密方式非常巧妙,因为通过对称加密的方式既然有可能被人知道,那就需要通过非对称加密的方式,我们在HTTPS后面的大致过程中了解.

4.数字签名

既然已经有了相应的加密算法进行加密解密,也有了相应的标识去保证数据的完整性和身份的认证,那么为什么还需要数字签名去保证身份的认证???

使用的地方不同,在建立阶段通常需要数字签名去验证服务器的身份,而数据传输过程中则需要去通过消息认证码去验证.

数字签名验证数字证书的完整性和真实性,以确保服务器的身份,而数字证书是由CA机构颁发的,一般服务端需要申请HTTPS服务时,就会去申请所谓的数字证书,数字证书包含着服务端的信息以及对应的公钥.其实理解这一个过程十分不易,需要用图解的形式去了解.

签发证书的过程

于此,服务端就获得了数字证书,数字证书中包含着公钥和私钥,服务端会根据私钥生成相应的数字签名,而这个数字签名则用来验证数字证书

这就是数字签名的生成过程,其中利用到了信息摘要,这就是为什么要了解信息摘要的原因.至于客户端是如何通过数字签名是验证数字证书的完整性,身份的可靠性,其实也很好理解.

验证证书的过程

一方面服务端通过数字私钥对信息摘要进行加密运算得到数字签名,而客户端通过公钥对数字签名在反手得到信息摘要,但如果需要比对真正的信息摘要,只需要拿数字证书再进行哈希运算得到这个信息摘要,进行匹配就行,是不是很惊奇,明明两种运算的方式不同,却依然能够获得相同的信息摘要.这下便可以彻底知道数字证书和数字签名的真正关系了

因此,无论是数字证书的公钥被恶意篡改,还是签名被更改,都会导致信息摘要无法匹配,导致身份无法识别,当然这个数字证书的这个过程其实是在建立连接的过程中进行的,在实际的通信交换数据的过程中常常用到消息认证码来确保数据的可靠性.

5.HTTPS的大致过程

当你输入一个HTTPS地址并访问时,以下是大致的步骤和过程:

客户端发送HTTPS请求:你的浏览器向服务器发送一个HTTPS请求,请求访问指定的网址(例如https://www.example.com)。 服务器证书:服务器接收到请求后,会将自己的数字证书发送给客户端。该证书包含服务器的公钥、证书颁发机构的签名以及其他相关信息。 客户端验证证书:浏览器会验证服务器证书的有效性,包括检查证书的合法性、过期时间、证书链的完整性等。如果证书验证失败或存在问题,浏览器会显示警告信息。 密钥交换:如果服务器的证书验证通过,客户端会生成一个随机的对称密钥,称为会话密钥。然后,客户端使用服务器的公钥加密该会话密钥,并将其发送给服务器。 密钥解密:服务器接收到加密的会话密钥后,使用自己的私钥进行解密,得到原始的会话密钥。 安全通信建立:客户端和服务器现在都有了相同的会话密钥,用于加密和解密通信内容。双方可以使用对称密钥进行加密和消息认证码计算,以确保通信的机密性和完整性。 数据传输:客户端和服务器使用会话密钥对HTTP请求和响应进行加密和解密。数据在传输过程中使用加密算法进行保护,防止被中间人窃听或篡改。 连接关闭:当通信结束时,客户端和服务器可以选择关闭连接。 其中的第二步和第三步我们以及在上文讲过了,在客户端验证完数字证书的合法性后,便会实现密钥交换,而这个对称性密钥就是这个时候生成的,也被称为会话密钥,在被进行公钥加密之后,也只有服务端的私钥才能解密,这就保证了为什么对称性密钥一定不会被拿到的缘故,解释了前文的对称性密钥在数据传输可靠的缘故,毕竟进行数据传输的过程中,使用简单的加密解密方式通常都是时间短,效率高的.不得不说,每一种密钥的方式都恰到好处地使用到了.

以上就是HTTPS为什么安全可靠的原因了,如果需要了解TLS/SSL握手的详细内容可以查阅相关资料。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有