首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双因素认证熵

双因素认证熵
EN

Security用户
提问于 2014-09-21 02:43:36
回答 2查看 540关注 0票数 3

我有两个独立的认证方法A和B,其熵分别为a和b。假设A的折衷没有提供任何关于B的信息,A和B的双因素认证的熵是a+b吗?

EN

回答 2

Security用户

发布于 2014-09-21 14:44:04

那得看情况。如果你猜得对但B猜错了,系统会告诉你A是正确的吗?如果是,则为A + B,其平均猜测数为(A + B) / 2。如果你不知道哪一个是错的,熵是A * B,猜测的平均数是A * B / 2

为了说明原因,请考虑下面的示例: A=4,B=2。如果我们依次尝试这些选项,并知道哪一个是正确的,它将如下所示:

代码语言:javascript
复制
A=0, B=0 A ERR; B ERR
A=1, B=1 A ERR; B ERR
A=2, B=2 A ERR; B OK
A=3, B=2 A ERR; B OK
A=4, B=2 A OK; B OK
(5 attempts)

如果我们不知道哪个是正确的,就会这样:

代码语言:javascript
复制
A=0, B=0 ERR
A=1, B=0 ERR
A=2, B=0 ERR
A=3, B=0 ERR
A=4, B=0 ERR
A=5, B=0 ERR
A=6, B=0 ERR
A=7, B=0 ERR
A=8, B=0 ERR
A=9, B=0 ERR
A=0, B=1 ERR
A=1, B=1 ERR
A=2, B=1 ERR
A=3, B=1 ERR
A=4, B=1 ERR
A=5, B=1 ERR
A=6, B=1 ERR
A=7, B=1 ERR
A=8, B=1 ERR
A=9, B=1 ERR
A=0, B=2 ERR
A=1, B=2 ERR
A=2, B=2 ERR
A=3, B=2 ERR
A=4, B=2 OK
(24 attempts)
票数 3
EN

Security用户

发布于 2014-09-22 04:05:54

我们用比特来度量认证系统的熵。如果一个系统的熵是S位,这就意味着,在探索了2种不同的可能性之后,系统一定是被打破的。

假设方法A的熵是a=30比特,方法B的熵是b=40比特。我们还假设身份验证方法A后面跟着方法B(顺序并不重要)。如果系统通知用户故障是由于方法A或方法B造成的,则系统的熵为max(a,b) = max(30, 40 ) =40位。这是因为攻击者可以先破坏方法A,这需要2^30次试验。破坏A之后,攻击者可以通过探索2^40种可能性(反之亦然)尝试破坏B。由于2^40 >> 2^30,整个系统的熵为2^40。

但是,如果由于方法A或方法B而导致的身份验证失败没有通知攻击者,则系统的总熵为a+b = 30+40 = 70位。这是因为对于方法A的每一种可能性,攻击者都必须尝试方法B的所有可能性,即2^30 * 2^40 = 2^70。

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

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

复制
相关文章

相似问题

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