2

使用Yubico PIV 工具YubiKey PIV 管理器,我可以将我的客户端 TLS 证书加载到 PIV 插槽中,并使用它在 Firefox 中进行身份验证。这很棒。然而...

有什么方法可以防止 PIV 的私钥被导出?据我所知,PIV 管理密钥仅保护设备不被修改,但不保护包含的内容不被导出。

如果这是准确的,那么 YubiKey 似乎并不能真正用作 PIV 2FA 设备,因为 2-factor 假定“您拥有的东西”,并且我将设备插入的任何机器(或在后台运行的软件)都可以制作功能齐全的软拷贝。

我在 Yubico 论坛上交叉发布了这个问题。

以下是我演示问题的方式:

  1. 通过“YubiKey PIV Manager”(my-cert.crt)导出的证书
  2. 通过“YubiKey PIV Manager”从 YubiKey 删除证书
  3. 通过“YubiKey PIV Manager”(my-cert.crt)导入的证书
  4. 重新启动 Firefox(加载了 OpenSC)
  5. 我仍然能够通过 PIV 进行身份验证
4

1 回答 1

7

TL;博士

YubiKey 不允许导出私钥,只允许导出公共证书。相反,我正在演示(我所看到的)YubiKey PIV Manager中的一个错误。它不会正确删除私钥。

荣誉尤比科

首先,虽然我要指出我认为 YubiKey 中的一个错误,但我不得不说,我对 Yubico 提供的最终用户支持印象深刻。我引用:

我们试图帮助提交支持案例的每个人。就连隔壁的白发奶奶

正确清除 PIV 私钥

由于“删除证书”没有从 YubiKey 中删除私钥,因此重新加载公钥(可以通过 YubiKey 导出)导致 PIV 接口功能正常。

能够演示另外两种实际清除私钥的方法:

方法 1:加载不同的证书

当我:

  1. 加载我的证书并从 yubikey (my-cert.crt) 导出一个副本
  2. 加载了不同的 pfx/p12 文件
  3. 已加载 my-cert.crt

方法 1.1:生成随机证书

我最近意识到这是最简单的方法。只需在“YubiKey PIV 管理器”中按下几个按钮。

方法 2:“重置”PIV 模块

当我:

  1. 加载我的证书并从 yubikey (my-cert.crt) 导出一个副本
  2. “重置”我的 yubikey PIV 模块

    • 我用这个命令重置:yubico-piv-tool -areset
    • 奇怪的是,我首先锁定了我的 PIN 和 PUK。运行以下命令并输入错误输入 3 次以上的最简单方法(在 PUK 的情况下,您必须输入有效的新 PIN 和错误的 PUK。呃。):

      # Use to lock out PIN
      yubico-piv-tool -averify-pin
      # Use to lock out PUK
      yubico-piv-tool -aunblock-pin
      

这是一个错误吗?

考虑到其他两种重置私钥的方法有多痛苦,“删除证书”是迄今为止从设备中“擦除”证书的最简单方法。没有任何迹象表明其他两种方法是必要的。

Yubico 建议“重置”是在将设备交给其他用户之前的推荐操作。

就个人而言,我认为这是一个错误,但我不知道 Yubico 是否已售出。

这是我设想的糟糕场景:

  • 我加载我的公钥/私钥对
  • 我从设备中删除了我的公钥(但默默地保持私钥完好无损)
  • 我重置了管理员 PIN
  • 我把设备交给别人使用
  • 第二个人上传我的公共证书并获得我的公共/私人对的工作副本
于 2017-07-13T05:33:02.203 回答