请在Chrome、Firefox、IE8+等现代浏览器浏览本站。 本博客所有文章为原创,图片不加水印,随意转载,但请注明来源,谢谢!

Yubikey与termius结合使用的一些记录

运维 kxjhwbb 21℃ 0评论

Yubikey与termius结合使用的一些记录

最近买了2个yubikey 5c nfc。

使用过程发现了一些有意思的问题,用termius在ios上设置好key之后导入到服务器,只需要nfc拍一下就能登录,之后用安卓测试,发现必须插上手机,而且需要设置PIN后才能使用。

设置好PIN后发现即使是在IOS上使用,也需要输入PIN才可以了,没有学过加密,百思不得其解。

后面大概明白是因为安卓的要求是必须有pin才可以用,并发现fido在yubikey的设置里还分【fido2】和【fido u2f】,而需要pin的便是fido2。

我又尝试了一下在WINDOWS下将key的fido2禁用,神奇的事情发生了:在ios下恢复了拍一下nfc就可以登录,而在安卓上也只需要插着key摁一下不再需要输入pin就可以登录了。

陷入了沉思:所以这个pin的意义是什么呢?本来以为是保护key用的,但按我的测试,如果有人捡到了我的yubikey,是不是只需要禁用fido2就可以正常使用了?

随后又做了一系列测试,参考了一些说明(What does “Store on Device” mean in the FIDO2 key generation form? – Support Portal

最终明白了pin的作用是保护开启Store on device模式的passkeys用的,而ios和安卓进行key设置默认是不打开Store on device的,也就是说默认是需要 私钥+物理key 才可以访问。

如果选择了Store on device ,则有点类似于银行u盾的感觉,私钥放在了物理key里,真正是只要捡到了物理yubikey就可以访问了,所以才需要一个额外的pin来进行保护这些私钥。

一些自问自答:

Q:为什么一开始苹果设置key之后不需要pin就可以用

A:因为yubikey默认不设置fido2的pin,在安卓上使用才会被激活设置这个pin

 

Q:为什么安卓设置之后,苹果也需要输入PIN

A:我想大概是因为FIDO2的优先级在先,FIDO U2F再后,所以即便其实使用的是FIDO U2F,只要FIDO2开启的情况下,苹果也会要求输入PIN

 

Q:我想在苹果和安卓都不输入PIN使用

A:只需要在苹果或者安卓上设置好key(默认是用ECDSA,not store),然后在WINDOWS的yubico authenticator关掉fido2功能就完成了,这种模式其实是走的FIDO U2F

 

Q:我想在苹果和安卓都必须输入PIN,而且禁用FIDO2则无法使用,必须使用FIDO2模式

A:在Windows的termius上设置key,选择ECDSA,Store on device,这种模式必须FIDO2才可以完成,每次都必须输入PIN,但注意不要进入我前面的那种误会,实际上FIDO U2F不需要输入PIN并不代表捡到key就可以访问你的服务器了,U2F模式不需要输入PIN是因为KEY在你的电脑/IOS/安卓上,不在物理key里,我忽略了KEY其实上被termius同步的。

PS:选择这种模式的好处是私钥存到物理key里了,输入pin可以调用,坏处就像termius说的:Using a key stored on the authenticator is generally less secure than using its local copy. An attacker will need to get access to both the authenticator and the locally stored key, if you’re using a locally stored key, and just the authenticator, if you’re using a key stored on an authenticator.

但是通常物理key的pin会在N次输入错误后清理数据,所以我感觉这个倒是应该不用太担心,喜欢每次输入PIN,强行上FIDO2模式可以这么操作。

 

Q:为什么不可以选择ED25519?

A:我测试了,这种算法在ios和安卓下均无法正常使用,原因未知。另外ED25519无论是否开启store都必须FIDO2~

 

结论:

Not store模式并不存在不安全的情况,因为私钥存在你的其他设备上。 store模式下物理key其实也有保护措施。

fido2向下兼容u2f,所以ECDSA+not store,禁用fido2启用u2f可以登,禁用u2f启用fido2也一样可以登(要输pin)。这种模式我个人建议直接禁用fido2吧,就不用每次都输入pin了。

而ECDSA+store则必须开fido2才可以登,u2f开不开都无所谓。如果你实在是担心别人同时捡到你的手机和yubikey,而且你的手机还没有设置锁屏密码,那务必用这种模式,会多一个额外的pin验证。必须在windows才可以设置,查了下据说是因为ios和安卓都没有往key里写东西的api,WINDOWS才有。

 

ECDSA ED25519 ECDSA(Store) ED25519(Store)
必须FIDO2
安卓IOS 可用 不可用 可用 不可用
WINDOWS 可用 可用 可用 可用
设置方法 安卓ios默认这样设 Windows可设置 Windows可设置 Windows可设置
喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址