可以防止来自yubikey的PIV导出(私钥)?

Rya*_*yan 1 yubico

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

有没有办法阻止出口PIV的私钥?据我所知,PIV管理密钥只保护设备不被修改,但没有做任何事情来保护包含的内容不被导出.

如果这是准确的,YubiKey似乎并不像PIV 2FA设备那样,因为2因素假设"你拥有的东西",我插入设备的任何机器(或在后台运行的软件)都可以功能齐全的软拷贝.

我在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进行身份验证

Rya*_*yan 5

TL; DR

YubiKey不允许导出私钥,只允许导出公共证书.相反,我在YubiKey PIV经理中删除了(我看到的)一个错误.它不会正确删除私钥.

Kudos Yubico

首先,虽然我要指出我在YubiKey中看到的一个错误,但我不得不说,我对Yubico提供的最终用户支持印象非常深刻.我引述:

我们试图帮助提交支持案例的每个人.即使是隔壁的白发奶奶

正确清除PIV私钥

由于"删除证书"未从YubiKey中删除私钥,因此重新加载公钥(可由YubiKey导出)会生成功能性PIV接口.

我能够证明其他两种方法,实际上清除私有密钥:

方法1:加载不同的证书

我在以下时无法进行身份验证:

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

方法1.1:生成随机证书

最近我意识到这是最简单的方法.在"YubiKey PIV Manager"中只需按几下按钮.

方法2:"重置"PIV模块

我在以下时无法进行身份验证:

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

    • 我用这个命令重置: yubico-piv-tool -areset
    • 奇怪的是,我先锁定了我的密码和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
      
      Run Code Online (Sandbox Code Playgroud)

这是一个Bug吗?

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

Yubico建议在将设备传递给其他用户之前,"重置"是建议的操作.

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

这是我设想的糟糕情景:

  • 我加载了我的公钥/私钥对
  • 我从设备中删除了我的公钥(但是默默地保留私钥)
  • 我重置了管理员密码
  • 我将设备交给其他人使用
  • 第二个人上传我的公共证书并获得我的公共/私人对的工作副本