在状态机图中,我不明白为什么条件是 ErrCounter >= limit 。我认为写 ErrCounter == limit 很好。
问问题
55 次
1 回答
1
ErrCounter >= limit
强于ErrCounter == limit
。你有没有风险的收益。
这是为了安全起见。问题是可能还有其他一些东西会增加ErrCounter
其中一种状态(甚至是转换中)的时间,或者ErrCounter
在启动过程时可能已经等于限制(顺便说一句,这无论如何都会导致拒绝,但没关系)。
让我们把它变成一个生活的例子。想象一下这两种情况(假设limit = 3
):
持卡人已经在其他一些地方(例如在商店)尝试过三次,但未能使用正确的密码。现在
ErrCounter = 3
。持卡人决定在 ATM 上再试一次。ATM 读取ErrCounter
(作为 的一部分Authentication
)和CheckPin
失败的(由于太多早期尝试而自动)现在ErrCounter
再次增加(所以ErrCounter = 4
)。对于弱案例,您可以在无限循环中一次又一次地尝试。卡是重复的(你知道,现在它可以通过任何 NFC 手机处理)。想象一下,两个人想要提取大量资金,因此他们同时在两台 ATM 上工作。不幸的是,他们发现自己处于两个人都两次输入错误密码的情况。假设 ATM 读取电流
ErrCounter
作为Authentication
. 所以我们有(在括号结果ErrCounter
):- 合作伙伴 1 在 ATM1 上输入了错误的 PIN (
ErrCounter = 1
) - 合作伙伴 2 在 ATM2 上输入了错误的 PIN (
ErrCounter = 2
) ErrCounter = 3
合作伙伴 1 在 ATM1 ( )上输入了错误的 PIN 。合作伙伴 1 的尝试(使用手机)现已被拒绝- 合作伙伴 2 在 ATM2 上输入了错误的 PIN (
ErrCounter = 4
)。如果没有>=
,它将再次进行无限循环的尝试。随着更强的不等式,该尝试也被拒绝。
- 合作伙伴 1 在 ATM1 上输入了错误的 PIN (
于 2019-04-29T19:07:38.057 回答