HTTPS

本文深入探讨了密码学的基础概念,包括明文、密文、密钥及其在对称加密、非对称加密和Hash加密中的应用。同时,详细解析了HTTPS如何结合这两种加密方式,确保数据传输的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

密码学基础

明文: 明文指的是未被加密过的原始数据。

密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。

密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥,分别应用在对称加密和非对称加密上。

加密算法分为对称加密、非对称加密和Hash加密算法。

对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。
其加密过程如下:明文 + 加密算法 + 私钥 => 密文
解密过程如下:密文 + 解密算法 + 私钥 => 明文
对称加密中用到的密钥叫做私钥,私钥表示个人私有的密钥,即该密钥不能被泄露。
其加密过程中的私钥与解密过程中用到的私钥是同一个密钥,这也是称加密之所以称之为“对称”的原因。由于对称加密的算法是公开的,所以一旦私钥被泄露,那么密文就很容易被破解,所以对称加密的缺点是密钥安全管理困难。

非对称加密:非对称加密也叫做公钥加密。非对称加密与对称加密相比,其安全性更好。对称加密的通信双方使用相同的密钥,如果一方的密钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。
被公钥加密过的密文只能被私钥解密,过程如下:
明文 + 加密算法 + 公钥 => 密文密文 + 解密算法 + 私钥 => 明文
被私钥加密过的密文只能被公钥解密,过程如下:
明文 + 加密算法 + 私钥 => 密文密文 + 解密算法 + 公钥 => 明文
由于加密和解密使用了两个不同的密钥,这就是非对称加密“非对称”的原因。
非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
在非对称加密中使用的主要算法有:RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线加密算法)等。

Hash加密:Hash算法是一种单向密码体制,即只有加密过程,没有解密过程。

HTTPS

HTTP协议存在三个安全缺陷:

  1. 通信使用明文,内容可能会被窃听;
  2. 不验证通信方的身份,因此有可能遭遇伪装;
  3. 不对数据进行完整性检测,因此数据有可能已遭篡改;

HTTPSSSL作为HTTP应用层的子层,通过SSL协议来加强安全性,实现HTTP数据的安全传输。其中上层的HTTP协议只负责提供或接收HTTP数据包,而SSL协议负责数据的加密解密工作。

HTTPS实现了以下安全特征:

  1. 客户端与服务器的双向身份认证;

    客户端与服务器在传输HTTPS数据之前需要对双方的身份进行认证,认证过程通过交换各自的数字证书的方式实现。

  2. 传输数据的机密性;

    通信的以下部分会被加密保护:

    • 浏览器请求的服务器端文档的URL;
    • 浏览器请求的服务器端文档内容;
    • 用户在浏览器端填写的表单内容;
    • 在浏览器和服务器之间传递的Cookie
    • HTTP消息头。
  3. 传输数据的完整性检验。

    HTTPS通过消息验证码的方式对传输数据进行数字签名,从而实现了数据的完整性检验。

HTTPS为了兼顾安全与效率,同时使用了对称加密和非对称加密。数据是被对称加密传输的,对称加密过程需要客户端的一个密钥,为了确保能把该密钥安全传输到服务器端,采用非对称加密对该密钥进行加密传输,总的来说,对数据进行对称加密,对称加密所要使用的密钥通过非对称加密传输。

非对称加密的过程:

  1. 客户端给出协议版本号、一个客户端随机数A以及客户端支持的加密方式;
  2. 服务端确认双方使用的加密方式,并给出数字证书、一个服务器生成的随机数B
  3. 客户端确认数字证书有效,生成一个新的随机数C(Pre-master-secret),使用证书中的公钥对C加密,发送给服务端,服务端使用自己的私钥解密出C
  4. 客户端和服务器根据约定的加密方法,使用三个随机数ABC,生成对话秘钥,之后的通信都用这个对话秘钥进行加密。

HTTPHTTPS的区别如下:

  1. HTTPS协议需要到CA申请证书,大多数情况下需要一定费用;
  2. HTTP是超文本传输协议,信息采用明文传输,HTTPS则是具有安全性SSL加密传输协议;
  3. HTTPHTTPS端口号不一样,HTTP80端口,HTTPS443端口;
  4. HTTP连接是无状态的,而HTTPS采用HTTP+SSL构建可进行加密传输、身份认证的网络协议,更安全;
  5. HTTP协议建立连接的过程比HTTPS协议快。因为HTTPS除了TCP三次握手,还要经过SSL握手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值