用于用户身份验证的智能卡 - PIN 复杂性的配置是否重要?

信息安全 智能卡
2021-09-11 14:38:19

在我们的公司域中,我们现在可以使用智能卡和 4 位数字 PIN 登录 Windows。同样的智能卡也用于签署电子邮件。

我的理解是,对域的身份验证不直接涉及 PIN,仅使用存储在智能卡上的私钥来散列给定值,然后域控制器使用公钥对其进行验证。PIN 仅用于“解锁”对智能卡内私钥的访问。

假设我想加强身份验证的凭据(类似于在使用密码的域中增加最小长度和复杂性)。鉴于固定数量的无效 PIN 条目将导致智能卡自我锁定,并且智能卡的设计(例如防篡改)可防止对其包含的私钥进行任何其他访问,这一点更为重要:

  • 我控制密钥长度、算法和证书到期的能力?
  • 我能否控制 PIN 长度、字符集和复杂性?
2个回答

只要卡实施锁定策略,例如在 3 次错误的 PIN 尝试后销毁密钥材料,我会说 4 位数的 PIN 是安全的。只需确保有适当的程序让员工尽快报告被盗卡,以便吊销他们的证书,以应对攻击者知道 PIN 的最坏情况,例如使用受损的 PIN 键盘或键盘记录器。

这种身份验证的可能过程如下:

该卡包含一个序列号和一个加密的私钥。当您在终端中输入您的卡时,它会将序列号发送到系统(银行或公司认证服务器)并接收(不依赖于序列号,因此此过程的顺序并不重要)一个挑战码。这个挑战码需要通过存储在卡上的私钥进行加密,为此,首先需要对密钥进行解密,因此您需要输入您的 PIN。加密的质询被发送到系统,然后系统可以用公钥解密这个回复,并验证你就是你所说的那个人。

这个系统的优雅之处在于你不能暴力破解它,因为每张卡有 10000 个可能的私钥。(这是一种简化,因为您可以通过大量暴力破解来排除一些问题,但这会让我们远离问题。)系统跟踪失败登录的数量然后禁用该特定密钥就足够了。因此,实际上没有内置防篡改功能,因为这会使卡片更加昂贵。

我希望你能从这个解释中得出你的答案,简而言之:

  • 更高的熵 PIN 将减少幸运随机“猜测”的机会。
  • 更长的密钥长度/算法/证书到期将使给定一组已知的挑战-响应对的暴力破解更加困难。