SSL证书之TLS安全3:SSL/TLS术语和基础知识

要了解传输层安全性(TLS)和安全套接字层(SSL)协议的工作原理,您必须首先了解某些基本概念。SSL / TLS使用的主要机制是使用密码套件的非对称加密。这些术语和相关术语解释如下。

加密

加密是将人类可读的消息(明文)转换为加密的、非人类可读的格式(密文)的过程。加密的主要目的是确保只有授权的接收者才能解密和读取原始消息。当双方之间使用任何媒体交换未加密的数据时,第三方可以拦截并读取所交换的通信信息。

如果交换包含敏感信息,则意味着失去保密性。此外,如果第三方能够拦截和读取消息,那么它们可能会篡改数据。这意味着它们可以改变正在交换的信息,因此会损害消息的完整性。

想象一下,使用未加密的Web浏览器连接发送付款。付款包括您的银行帐户详细信息以及您授权的金额。攻击者可以使用中间人攻击来篡改发送到Web服务器的信息,并将金额从100美元更改为10000美元。银行接收到的是来自第三方篡改数据而不是您的原始数据,这意味着没有真实性。如果您使用加密的安全会话,攻击者可能仍然能够拦截流量,但他们将无法读取或篡改数据。

对称加密

对称加密是使用同一密钥加密和解密数据的过程。如果Thomas想向Bob发送信息,他将使用共享密钥加密数据,Bob将使用相同的密钥解密数据。

对称密钥加密的最大问题是交换数据的双方必须拥有共享密钥。如果该共享密钥被暴露,攻击者将能够解密使用该密钥加密的所有通信。这就是为什么共享密钥必须使用已经建立的,安全的加密通信信道在各方之间分配的原因。对称加密的另一个缺点是您不能对消息的发送者进行身份验证,这会损害真实性。

对称加密的优点:

  1. 快速、资源利用率低
  2. 操作简单
  3. 安全

对称加密的缺点:

  1. 用于加密/解密的相同密钥
  2. 密钥必须使用已建立的安全通道分发
  3. 密钥管理/分发困难
  4. 无法对用户进行身份验证

非对称加密

非对称加密(也称为公钥加密)使用密钥对:公钥和私钥。这些加密密钥是唯一相关的。这意味着使用密钥对中的一个密钥加密的内容只能使用另一个密钥解密。顾名思义,公钥可以与任何人共享。私钥必须只有所有者知道。


您还可以使用非对称加密通过签名对发送者进行身份验证。如果Bob使用他的私钥签署了一条消息,那么使用Bob的公钥验证签名的人就可以确定Bob是发送者。

非对称加密的优点:

  1. 密钥分发很容易
  2. 真实性
  3. 完整性
  4. 安全

非对称加密的缺点:

  1. 比对称加密慢
  2. 需要更多资源

密码

密码是用于加密和解密数据的方法/算法。TLS协议允许您使用许多不同的方法/算法。它们作为称为密码套件的包提供。这样的包对于每个任务都有不同的方法/算法。

分组密码

如果使用块密码,数据将被拆分为固定长度的块(例如64位或128位块),然后进行加密。如果最后一个数据块的长度小于指定的块长度,则算法使用填充来填充空白空间,通常使用随机数据填充块。常见的分组密码包括AES、Blowfish、3DES、DES和RC5。

填充

分组密码具有指定的固定长度,大多数块密码要求输入数据是其大小的倍数。最后一个块通常包含不符合此要求的数据。在这种情况下,填充(通常是随机数据)用于使其达到所需的块长度。

初始化向量(IV)

初始化向量是加密方法中使用的随机(或伪随机)固定大小输入。IV的主要目的是启动加密方法。在诸如密码块链接(CBC)的密码模式中,每个块与前一个块进行异或。在第一个块中,没有先前的块与XOR。初始化向量用作第一个块的输入以开始该过程。

如果IV对于每条消息都是唯一的,则称为nonce,这意味着它只能使用一次。随机数应该是不可预测的。它还用于防止攻击者通过猜测IV来解密所有消息。如果使用随机数,则可以使用相同的密钥将相同的明文加密成不同的密文。

分组密码操作模式

分组密码操作模式定义使用密码编码的块之间的关系。创建了不同的模式以使攻击者更难以猜测消息的原始内容。

电子密码簿(ECB)

使用ECB时,每个数据块都是单独加密的,然后按原始顺序连接起来。由于块不相互依赖,因此可以进行并行处理。没有必要进行IV。ECB的主要问题是如果相同的数据块被加密,它将始终生成相同的密文。这使攻击者更容易根据重复模式猜测原始数据。

密码块链接(CBC)

使用CBC时,每个块在加密前与先前的密文进行异或。这样就消除了重复模式的问题。需要一个IV来加密第一个明文块。由于块被链接,因此无法进行并行处理。CBC的一个主要缺点是:如果消息的一部分被篡改或丢失,则消息的其余部分将丢失。

密码反馈(CFB)

CFB方法将块密码转换为自同步流密码。这意味着,如果消息的一部分被篡改或丢失,密码可能会在几个块之后同步,而消息的其余部分不一定会丢失。

输出反馈(OFB)

OFB方法创建同步流密码。该技术保留了纠错码。加密和解密过程完全相同。

计数器模式(CTR)

CTR方法类似于OFB,因为它还创建了同步流密码。但是,它为每个块使用计数器和nonce,并且不将块链接在一起。因此,可以并行加密和解密块。

流密码

流密码一次加密一个位或字节的数据。每个位都用不同的密钥加密。流密码在现代密码学中并不常用。流密码的一个流行示例是RC4密码。

消息验证码(MAC)

消息认证码(MAC)是一种用于检查消息真实性和完整性的方法。它接受两个输入参数:密钥和任意长度的消息。结果称为标记。收件人还具有密钥,可以使用它检测对邮件内容的任何更改。MAC有时被称为校验和、加密校验和或保护校验和。

如果发送方的mac标签和接收方的计算mac标签匹配,则没有人篡改消息。如果不匹配,则有人在传输过程中更改了消息。

基于哈希的消息认证码(HMAC)

HMAC是一种使用散列函数的MAC。以下是使用SHA256哈希算法的HMAC示例。

HMAC_SHA256("s3cr3tk3y","Hello World") = 2d9615ee921dab63c7c4c839842703fe338db46fdf17593a681bcee2c52721de

下图显示了HMAC功能的工作原理: