|
身份验证协议 要为应用中使用的高级协议提供安全基础,具有强鲁棒性的加密算法实现尤其重要。像传输层安全 (TLS) 这样的较高层级协议通常使用一组定义的加密算法(称为密码套件)来执行运算。在 TLS 中,从约定的密码套件提取的算法有助于确保物联网设备客户端与主机服务器之间的通信会话实现身份验证和机密性。TLS 1.2[8] 会通过一个特定事务处理序列,在进行数据交换之前,协商参数、执行身份验证和交换会话密钥(图 3)。 图 3:TLS 1.2 会话创建协议使用约定密码套件提供的各种算法进行身份验证、密钥交换和持续的数据交换。(图片来源:Texas Instruments) 鉴于安全证书中包含每个参与者各自的公钥,可通过验证安全证书,确定服务器以及客户端(可选)的身份以确保实现身份验证。在此期间,每个参与者都会发送一条使用其私钥加密的消息。由于接收到的公钥仅能解密用其关联私钥加密的消息,因此每个参与者都可以确认证书提供者实际拥有该证书。 在下一个 TLS 阶段,参与者执行一系列事务处理,以创建共享会话密钥。该共享会话密钥随后会用来加密实际的消息流量,从而确保该会话消息交换的机密性。 多种协议选择使开发人员可以优化此通用 TLS 会话的创建过程,但有时会影响整体安全性。此外,在参数交换过程中,开发人员可以使用不同的密码套件,为各个协议阶段选择合适的 TLS 1.2 支持算法组合,具体包括: - 密钥构建:RSA、DH、ECDH
- 身份验证:RSA、DSA、ECDSA
- 加密法:3DES、AES
- 消息验证:SHA
最新版本的 TLS 为 TLS 1.3[9],该协议规定先执行密钥交换以更好地保护会话创建过程,从而增加了额外的安全性。更重要的是,TLS 1.3 在很大程度上弃用了 TLS 1.2 的密码套件,转而使用更强大的算法,包括基于 HMAC 的提取和扩展密钥派生函数 (HKDF),以及带有关联数据的认证加密 (AEAD) 算法。AEAD 算法满足了确保消息真实性、完整性和机密性的广泛需求。这些算法通过将加密消息与 MAC 绑定实现上述要求,而加密与 MAC 可按照串行方式(图 4,左)、并行方式(图 4,右)或两者并用方式生成。 图 4:AEAD 使用先加密后生成 MAC(左)与同时加密和生成 MAC(右)方式,分别进行串行或并行 MAC 计算,然后将 MAC 与密文绑定从而提供身份验证与机密性。(图片来源:维基百科)
|