支持FIDO U2F与FIDO2标准,OpenSK开源安全密钥便捷提升安全防护

FIDO是个让用户能安全、快速登录网络服务的协议,它能在维持简单操作的前提下,降低网络钓鱼、密码被破解等安全风险,继Solo和Somu这些开源实体密钥之后,Google也同样以开源的形式推出OpenSK,让用户能自行制作密钥设备。

FIDO(Fast IDentity Online)是种免密码的身份认证协议,它需以实体密钥搭配使用,通过非对称加密技术来保护用户登录网络服务的过程,不会受到网络钓鱼攻击,坚固的密码机制也能降低被破解的风险。

通过FIDO申请账号的时候,系统会要求用户连接并通过指纹、按钮或是输入两步验证的PIN码,解锁对应的FIDO验证器(可能是USB密钥或与移动设备)。然后验证器就会产生一对非对称密钥,并将公钥上传至网络端与账号绑定,而私钥与相关本地端身份验证信息(如指纹)则只存储于验证器内。

在登录服务的时候,系统一样会要求连接并解锁验证器,接着网络端会发送一段字符串给至本地端,系统会将字符串以私钥加密后回传至网络端,如此一来如果网络端以公钥解开后确认字符串相符,就能确定用户确实持有验证器,而用户也能确定网络端确实是当初申请账号的网站,而不是钓鱼网站。

Solo是款开源且支持FIDO2的实体密钥验证器。(图片来源:Solokeys,下同)

Somu则是以采用Solo固件的超迷你验证器。

通过FIDO申请账号时,系统会将公钥上传至网络端,并将私钥保留在本地端。(图片来源:FIDO,下同)

登录账号时,用户与网络端会互相比对彼此是否拥有正确的公、私钥。

为了发挥促进FIDO研发与普及的目的,Google推出开源的OpenSK作为研究平台,希望吸引研究人员、厂商,以及硬件玩家、创客使用,让更多人能接触FIDO。

目前OpenSK还处于初期开发阶段,研发团队选择以Nordic的推出的验证器为参考平台(价格约为美金10元),可以在刷入OpenSK的固件后使用。

选择它的原因除了价格低廉外,它也具有专用硬件加密核心并支持NFC,低功耗蓝牙、USB等FIDO2的所有主要传输协议,并可能于日后推广硬件的兼容性。

OpenSK采用具有坚固内存安全性与高性能抽象化Rust语言编写,并在TockOS操作系统上执行,通过沙盒架构隔离系统核心、驱动程序与安全密钥应用程序,以构建深度防御机制,增加系统安全性。

同时,研发团队也提供保护套的3D打印文件,用户可以自行制作验证器的保护套。

OpenSK的登录实际操作展示,登录网站时只要插入USB。

有兴趣的读者可以自行DIY制作OpenSK验证器。(图片来源:Google,下同)

目前研发团队已经将OpenSK的源码上传至GitHub,有兴趣的读者可以在那边找到更多相关信息,并跟随安装教学的指示刷写验证器固件,亲自动手尝试OpenSK。