答案 0 :(得分:1)
ErrCounter >= limit
比ErrCounter == limit
强。您将毫无风险地获得收益。
这是出于安全考虑。问题在于,在其中一种状态(甚至处于过渡状态)下,可能还有其他原因使ErrCounter
递增,或者在开始进程时ErrCounter
可能已经等于限制(顺便说一句,还是会导致拒绝,但没关系)。
让我们以生活为例。想象一下这两种情况(假设limit = 3
):
持卡人已经在其他地方(例如在商店中)尝试使用Trice,但未使用正确的图钉。现在ErrCounter = 3
。持卡人决定再次尝试在ATM中进行尝试。自动柜员机读取ErrCounter
(作为Authentication
的一部分),并且由于CheckPin
失败(自动由于先前的尝试过多而导致),现在ErrCounter
再次递增(因此{ {1}})。如果情况不佳,您可以无限循环地尝试一次。
卡已复制(例如,您现在可以通过任何NFC电话对其进行处理)。想象一下,两个人要提取大笔钱,以便他们同时在两台ATM上工作。不幸的是,他们发现自己都遇到了两次错误输入PIN的情况。假设ATM读取当前ErrCounter = 4
作为ErrCounter
的一部分。因此,我们得到了(括号中的结果Authentication
):
ErrCounter
)上输入了错误的PIN码ErrCounter = 1
)上输入了错误的PIN码ErrCounter = 2
)上输入了错误的PIN。合作伙伴1的尝试(通过电话)现在被拒绝ErrCounter = 3
)上输入了错误的PIN。如果没有ErrCounter = 4
,它将再次进行无限次尝试。随着不平等的加剧,这种尝试也被拒绝了。