首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AEAD中相关认证数据的目的是什么?

AEAD中相关认证数据的目的是什么?
EN

Security用户
提问于 2018-02-06 23:41:30
回答 1查看 10.9K关注 0票数 26

认证加密(AE)和关联数据认证加密(AE的变体)是一种同时对数据提供机密性、完整性和真实性保证的加密形式。

来源:维基百科

我最近注意到,几个SSL检查程序开始指出AEAD。但是,AE和AEAD之间有什么区别,与加密连接的“关联认证数据”的目的是什么?为什么不全部加密,而不是“认证”它呢?

EN

回答 1

Security用户

回答已采纳

发布于 2018-02-07 01:14:19

通常情况下,关联数据(下称"AD")的目的是将密文绑定到应该出现的上下文中,这样就可以检测到并拒绝尝试将有效的密文“剪切并粘贴”到不同的上下文中。

例如,假设我对插入到密钥/值数据库中的值进行加密,并将记录密钥用作AD。那有什么用?首先,机械的意思是,当我解密这个值的时候,我必须给出和AD相同的密钥,否则解密就会因为真实性错误而失败。因此,我的应用程序必须执行该步骤,以便正确解密任何数据。

其次,也是更深层次的一点是,通过使用AD密钥,我挫败了一种内部人员--比如数据库管理员--可以对我的应用程序进行的攻击:在数据库中获取两条记录并交换它们的值。如果没有AD,应用程序将很高兴地解密这些密钥,并盲目地假定它读取了这些密钥的正确值。如果使用AD键,应用程序将立即注意到这些值是不真实的--尽管攻击者从未实际修改它们--因为它们发生在错误的上下文中。这只是许多可能的例子中的一个,但关联数据的应用程序往往具有这种风格。

人们经常从示例中忽略的一个重要细节是,相关的数据不一定需要用密文存储或传输。诚实的各方都能够正确推断的任何与上下文相关的非秘密值都可以作为关联数据使用。例如,如果各方正在执行一项复杂的协议,该协议是以状态机的形式制定的,这样每个正确的当事方都可以告诉自己的状态以及诚实的对手方应处的状态,那么这些状态--尽管它们隐含在协议中--可以用作AD。这就是让AEAD套件对像TLS这样的协议设计者如此有吸引力的东西--它是一种可以用来降低安全协议复杂性的工具。

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

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

复制
相关文章

相似问题

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