可以防止从 yubikey 导出 PIV(私钥)吗?
Possible to prevent PIV export (private keys) from yubikey?
使用 Yubico PIV Tools and YubiKey PIV Manager,我可以将我的客户端 TLS 证书加载到 PIV 插槽中,并使用它在 Firefox 中进行身份验证。这很棒。然而...
有什么办法可以防止PIV的私钥被导出吗?据我所知,PIV管理密钥只是保护设备不被修改,但是没有任何东西可以保护包含的内容不被导出。
如果这是准确的,YubiKey 似乎并不能真正用作 PIV 2FA 设备,因为 2-factor 假定 "something you have",并且我将设备插入的任何机器(或软件 运行在后台)可以制作功能齐全的软拷贝。
我在 Yubico 论坛 cross-posted 这个问题。
以下是我演示问题的方式:
- 通过 "YubiKey PIV Manager" (my-cert.crt)
导出的证书
- 已通过 "YubiKey PIV Manager"
从 YubiKey 删除证书
- 通过 "YubiKey PIV Manager" (my-cert.crt)
导入的证书
- 重新启动 Firefox(加载 OpenSC)
- 我仍然能够通过 PIV 进行身份验证
TL;DR
YubiKey 不允许导出私钥,只允许导出 public 证书。相反,我在展示(我所看到的)YubiKey PIV Manager 中的一个错误。它没有正确删除私钥。
Yubico 的荣誉
首先,虽然我要指出我认为 YubiKey 中的错误,
我不得不说,我对提供的最终用户支持印象深刻
尤比科。我引用:
we try to help everyone who submits a support case. even the white haired grandma next door
正确清除PIV私钥
由于"Delete certificate"没有从YubiKey中删除私钥,
重新加载 public 密钥(可以由 YubiKey 导出)导致
功能性 PIV 接口。
我能够演示另外两种实际上做清除的方法
私钥:
方法 1:加载不同的证书
我在以下情况下无法进行身份验证:
- 加载了我的证书并从 yubikey (my-cert.crt) 导出了一份副本
- 加载了不同的 pfx/p12 文件
- 加载我的-cert.crt
方法 1.1:生成随机证书
最近恍然大悟,这是最简单的方法。只需在 "YubiKey PIV Manager".
中按下几个按钮
方法 2:"Reset"PIV 模块
我在以下情况下无法进行身份验证:
- 加载了我的证书并从 yubikey (my-cert.crt) 导出了一份副本
"Reset" 我的 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
这是一个错误吗?
考虑到其他两种重置私钥的方法有多痛苦,
"Delete certificate" 是迄今为止 "wiping" 您的证书最简单的方法
从设备。没有任何迹象表明其他两种方法是必要的。
Yubico 建议 "reset" 是通过之前的推荐操作
设备关闭给另一个用户。
就我个人而言,我认为这是一个错误,但我不知道 Yubico 是否已售出。
这是我设想的糟糕情况:
- 我加载我的 public/private 密钥对
- 我从设备中删除了我的 public 密钥(但默默地保持私钥完好无损)
- 我重置了管理员密码
- 我把设备交给别人使用
- 第二个人上传了我的 public 证书并获得了我的 public/private 对的工作副本
使用 Yubico PIV Tools and YubiKey PIV Manager,我可以将我的客户端 TLS 证书加载到 PIV 插槽中,并使用它在 Firefox 中进行身份验证。这很棒。然而...
有什么办法可以防止PIV的私钥被导出吗?据我所知,PIV管理密钥只是保护设备不被修改,但是没有任何东西可以保护包含的内容不被导出。
如果这是准确的,YubiKey 似乎并不能真正用作 PIV 2FA 设备,因为 2-factor 假定 "something you have",并且我将设备插入的任何机器(或软件 运行在后台)可以制作功能齐全的软拷贝。
我在 Yubico 论坛 cross-posted 这个问题。
以下是我演示问题的方式:
- 通过 "YubiKey PIV Manager" (my-cert.crt) 导出的证书
- 已通过 "YubiKey PIV Manager" 从 YubiKey 删除证书
- 通过 "YubiKey PIV Manager" (my-cert.crt) 导入的证书
- 重新启动 Firefox(加载 OpenSC)
- 我仍然能够通过 PIV 进行身份验证
TL;DR
YubiKey 不允许导出私钥,只允许导出 public 证书。相反,我在展示(我所看到的)YubiKey PIV Manager 中的一个错误。它没有正确删除私钥。
Yubico 的荣誉
首先,虽然我要指出我认为 YubiKey 中的错误, 我不得不说,我对提供的最终用户支持印象深刻 尤比科。我引用:
we try to help everyone who submits a support case. even the white haired grandma next door
正确清除PIV私钥
由于"Delete certificate"没有从YubiKey中删除私钥, 重新加载 public 密钥(可以由 YubiKey 导出)导致 功能性 PIV 接口。
我能够演示另外两种实际上做清除的方法 私钥:
方法 1:加载不同的证书
我在以下情况下无法进行身份验证:
- 加载了我的证书并从 yubikey (my-cert.crt) 导出了一份副本
- 加载了不同的 pfx/p12 文件
- 加载我的-cert.crt
方法 1.1:生成随机证书
最近恍然大悟,这是最简单的方法。只需在 "YubiKey PIV Manager".
中按下几个按钮方法 2:"Reset"PIV 模块
我在以下情况下无法进行身份验证:
- 加载了我的证书并从 yubikey (my-cert.crt) 导出了一份副本
"Reset" 我的 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
- 我用这个命令重置:
这是一个错误吗?
考虑到其他两种重置私钥的方法有多痛苦, "Delete certificate" 是迄今为止 "wiping" 您的证书最简单的方法 从设备。没有任何迹象表明其他两种方法是必要的。
Yubico 建议 "reset" 是通过之前的推荐操作 设备关闭给另一个用户。
就我个人而言,我认为这是一个错误,但我不知道 Yubico 是否已售出。
这是我设想的糟糕情况:
- 我加载我的 public/private 密钥对
- 我从设备中删除了我的 public 密钥(但默默地保持私钥完好无损)
- 我重置了管理员密码
- 我把设备交给别人使用
- 第二个人上传了我的 public 证书并获得了我的 public/private 对的工作副本