为啥一个消息在认证或认证密钥建立协议中必须是新鲜的
新鲜消息主要是针对重放攻击(replay attack)的防范.
=====================================================
但认证协议或者带认证的密钥协商协议(authenticated key exchange protocol, AKE)安全分析,尤其是在形式化安全证明里(formal security proof), “新鲜”(freshness)的定义所涵盖的内容远比“防replay”复杂。
简单来说,如果参与协议的一方是新鲜(fresh)的,那么他所持有的隐秘会话信息才有被攻击的价值。(not trivially breakable)。这里注意,freshness并不针对消息,而是针对参与协议双方的状态。(Section 3 , https://eprint.iacr.org/2000/014 )
假设参与认证密钥协商协议(AKE)的是Alice和Bob双方。(注1)
如果Alice不新鲜,意思是说下面这些事情至少有一件在Alice身上发生了
- 攻击者拿到了Alice所持有的long term secret,比如认证用的密码(password),预共享密钥(pre-shared key)或者Alice的数字签名私钥(
)- 攻击者拿到了Alice与Bob当前新生成会话密钥
- 攻击者拿到了Bob所持有的long term secret- 攻击者得到了Alice在产生新会话密钥时,所使用的所有随机量,比如nonce值或者
所对应的x (注2)以TLS 1.2 所使用的TLS_DHE_XXXX 加密套件(cipher suite)为例。The Transport Layer Security (TLS) Protocol Version 1.2
考虑要求对双方都进行认证的情况,那么Alice持有公私钥对
,Bob会知道Alice的公钥。反之Bob也持有自己的公私钥对,Alice持有Bob的公钥(注3)
接下来我们依次查看上面的四种Alice不再新鲜的情况,注意攻击者的目的是算出会话密钥
:
如果攻击者已事先掌握Alice的私钥,那么他显然可以冒充Alice和Bob通信,即可以计算出正确的会话密钥
如果攻击者直接拿到
, 呃 ......如果攻击者事先持有Bob的公钥,那么他也可以冒充Bob,得到会话密钥
拿到内部状态,则攻击者可以算出pre-master secret, 进而可以算出master secret, 以及从master secret导出的会话密钥 【为啥一个消息在认证或认证密钥建立协议中必须是新鲜的】
很明显,一旦攻击者拿到这些信息, 无论协议本身设计如何完善,都是没办法防御攻击的。也就是说,如果协议参与中的一方“不新鲜”,则有比攻击协议简单得多的方式来获取会话信息。另外,这种信息窃取一般都是透过对计算机系统本身的攻击来完成的。
因此,用freshness来隔离这些trivial cases可以让我们更集中在协议本身的安全性上,比如保证
如果攻击者篡改了Alice和Bob发送的消息,最终Alice和Bob一定会发现,并且不会使用由篡改过的消息生成的会话密钥;如果攻击者拿到无关群众的私钥,比如Oscar的私钥
,不会对Aliceh-Bob的通信产生威胁;如果攻击者拿到过去Alice和Bob曾经产生的
, 不会对
推荐阅读
- 同比■同比增长7.1%!2021年的第一个节你花了多少钱?
- “他是我第一个会说普通话的老师”:一对师生折射青海山村蝶变
- ■个税扣缴新方式来了!对年收入不超过6万元的人来说是个好消息
- 有必要重新开个C店吗
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 大学再有三个月就结束了,没学到知识,参加一个软件测试培训机构好吗
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|长安UNI-K又将开创一个新的"引力"纪元?
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
