首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在TLS中如何实现“可靠性”?

在TLS中如何实现“可靠性”?
EN

Security用户
提问于 2021-05-11 00:01:17
回答 1查看 128关注 0票数 1

我读到,在TLS上,每个TLS记录(握手后)都是“可靠的”,这意味着它不能被篡改。

我理解握手,但我不明白如何实现“防篡改”的TLS记录或TCP数据包。

我怀疑每条记录都包括记录本身的HMAC,加上会话/主键,但我想证实这一点。

每个TLS记录是如何“签名”的?

EN

回答 1

Security用户

回答已采纳

发布于 2021-05-11 00:44:07

您所指的属性通常称为完整性。通常,TLS使用两种方法中的一种。

第一种方法是TLS 1.2中的新方法,称为AEAD (带有关联数据的认证加密)密码。这种类型的密码既加密数据,又生成身份验证标记,远程端可用来验证数据的完整性。在TLS中,最常用的密码是AES-GCM和ChaCha20-Poly1305,而AES-CCM使用频率较低.

更老的方法是将HMAC与一个独立的密码结合使用。作为会话密钥生成的一部分,生成了一组附加的MAC密钥,用于HMAC。TLS认证明文,然后对明文和MAC进行加密,而不是对数据进行加密,然后对密文进行身份验证。前一种方法意味着,如果实现者不是格外小心的话,就可以利用对填充和MAC验证的各种定时攻击。后一种方法被称为加密MAC,因为它避免了这些问题,但由于历史原因,在TLS中不常用。TLS 1.3不再允许这种机制,因为它有可能造成定时攻击。

在所有情况下,经过身份验证的数据都是相似的,包括序列号(在DTLS中是划时代的)、标头和数据。验证此附加数据(包括序列号)可防止攻击者重放数据包,这是加密协议的最佳做法。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/249240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档