{"meta":{"id":"https:\/\/api.iclient.ifeng.com\/ipadtestdoc?aid=ucms_7yJiOE53vfO","type":"doc","o":"1","documentId":"ucms_7yJiOE53vfO"},"body":{"newStatus":"1","documentId":"ucms_7yJiOE53vfO","staticId":"ucms_7yJiOE53vfO","title":"来自 Google 的硬件安全密钥怎么样?Titan Security Key 使用体验","shareTitle":"来自 Google 的硬件安全密钥怎么样?Titan Security Key 使用体验","thumbnail":"http:\/\/d.ifengimg.com\/w150_h106_q100\/x0.ifengimg.com\/ucms\/2020_30\/2EDD5BC71F0A16C9D94BB231C5C4FA84BE9F8F60_w698_h392.jpg","source":"少数派","author":"","editorcode":"weMedia","editTime":"2020-07-22 17:02:25","updateTime":"2020\/07\/22 17:02:25","wapurl":"http:\/\/\/\/feng.ifeng.com\/c\/7yJiOE53vfO","introduction":"","wwwurl":"http:\/\/\/\/feng.ifeng.com\/c\/7yJiOE53vfO","commentsUrl":"ucms_7yJiOE53vfO","commentCount":0,"text":"
Matrix 精选<\/p>
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。<\/p>
文章代表作者个人观点,少数派仅对标题和排版略作修改。<\/p>
前段时间,我在 TuTu 生活志 的 视频中 ,看到了 Titan Security Key,并对这款来自 Google 的硬件安全密钥产生了兴趣。<\/p>
在购买和使用了一个多月后,通过本文,我来简单谈一谈我的使用感受。<\/p>
关于硬件安全密钥<\/p>
什么是硬件安全密钥<\/p>
硬件安全密钥将认证信息存储在独立硬件上,用于代替密码,或者提供一种 双因素验证 机制。<\/p>
如果用户开启了基于硬件安全密钥的双因素验证,输入密码后,必须连接密钥再次确认,才能正常登录。这种机制为账号提供了额外的一层保护。<\/p>
硬件安全密钥一般基于 FIDO 协议,网站可使用 WebAuthn API 访问密钥。FIDO 和 WebAuthn 均为开放的标准:<\/p>
How FIDO Works – Standard Public Key Cryptography & User Privacy<\/p>
WebAuthn.io<\/p>
本文介绍的 Titan Security Key,并不是唯一一个硬件安全密钥。在它出现之前,YubiKey 已经受到了不少人的欢迎。另外,我们常用的银行 U 盾,也属于硬件安全密钥的一种(只不过使用了私有协议)。<\/p>
越来越多的厂商和组织 已经开始支持硬件安全密钥,包括 Google、Apple、阿里巴巴、华为等。<\/p>
为什么需要硬件安全密钥?<\/p>
目前已经有不少网站支持了双因素验证,在输入密码之后,还需要输入一个六位动态验证码。<\/p>
验证码一般可以通过两种方式获取:通过短信接收,或者通过 Google 身份验证器 等 App 获取(基于 RFC 6238 TOTP)。这两种方式在安全性上,都有一定的欠缺。<\/p>
对于短信 ,手机上的 GSM 协议是一个「古老」的协议,通信内容比较容易被监听。此外,手机或 SIM 卡丢失,也会让其他人随意获取验证码:<\/p>
GSM 短信窃听解决方案设计与实现 – 博客 – 腾讯安全应急响应中心<\/p>
对于 基于 TOTP 的双因素验证 ,安全性相比短信有较大提升。但与硬件安全密钥相比,仍存在一些安全弱点:<\/p>
OTP vs. U2F: Strong To Stronger | Yubico<\/p>
Why You Should Never Use Google Authenticator Again<\/p>
Google Online Security Blog: New research: How effective is basic account hygiene at preventing hijacking<\/p>
另外,攻击者还可以通过网络钓鱼 、 社会工程学等方式,获取临时验证码。而硬件安全密钥较难被其他人物理接触,一定程度上减轻了这些问题。<\/p>
密钥忘带、丢失怎么办?<\/p>
对于密钥忘带、丢失等情况,可通过准备两个或多个安全密钥的形式解决:<\/p>
一个挂在钥匙扣上,和钥匙一起随身携带<\/p>
另一个做为备份密钥,放在家中或异地保存<\/p>
大多数网站都支持添加多个硬件安全密钥。下文中介绍的 Google 高级保护计划,还会强制要求用户添加至少两个硬件密钥。<\/p>
关于 Titan Security Key<\/p>
Titan Security Key 是来自 Google 的硬件安全密钥,由 飞天诚信 和 Yubico 代工。<\/p>
根据接口和协议的不同,这款安全密钥分为三个版本:<\/p>
蓝牙 \/NFC\/USB 版本<\/p>
USB-A\/NFC 版本<\/p>
USB-C 版本<\/p>
此外,Google 还提供了 蓝牙 \/NFC\/USB 和 USB-A\/NFC 打包的版本,一次购买即可同时拥有主备两个密钥。我购买的就是这个版本:<\/p>
<\/p>
Titan Security Key 包装及其内容(两个打包的版本)<\/p>
Google 高级保护计划<\/p>
Google 高级保护计划为用户账号提供了更强大的安全保护措施:<\/p>
高级保护计划<\/p>
借助高级保护计划增强帐号的安全性 – Android 设备 – Google 帐号帮助<\/p>
为 Google 账号开启高级保护计划后,能够获得如下方面的安全性增强:<\/p>
登录 Google 账号时,必须使用硬件安全密钥进行双因素验证,原有的双因素验证(手机验证码、TOTP 动态验证码等)全部失效,无法继续使用<\/p>
禁止第三方应用访问 Gmail 或 Google Drive(Apple Mail、Thunderbird 等常用邮件客户端除外)<\/p>
在 Android 设备上,禁止安装 Google Play 之外的应用<\/p>
如果密钥丢失或忘记密码,恢复账号需要额外的验证步骤<\/p>
当然,这些安全性的提升,也会带来便利性和灵活性的降低。是否要打开 Google 高级保护计划,就要看个人取舍了。<\/p>
为了避免密钥丢失导致账号无法访问,Google 要求用户至少准备两个硬件安全密钥。所以,两个打包的 Titan Security Key 套装,就成了最适合 Google 高级保护计划的硬件。<\/p>
<\/p>
设置 Google 高级保护计划,需要添加两个安全密钥<\/p>
另外,作为 Google 的「亲儿子」,Titan Security Key 在 Google 账号中,能显示专属的图标,方便区分不同的密钥:<\/p>
<\/p>
Google 账号页面,能够根据型号,显示 Titan Security Key 的专属图标<\/p>
对于 G Suite 企业版账号,管理员还可以设置更加灵活的安全策略,例如允许或禁止特定的第三方应用(例如 Spark 邮件客户端 )访问 Gmail。(当然,这样做也会一定程度上削弱 Google 账号的安全性。)<\/p>
<\/p>
在 G Suite 管理后台中,设置允许 Spark 邮件客户端访问 Gmail<\/p>
移动设备兼容性<\/p>
对于不少人来说,手机、平板等移动设备,已经成为生活中必不可少的一部分。所以,是否能够方便地在移动设备上使用,也是选择硬件安全密钥的一个重要考虑因素。<\/p>
Google 自家的 Android,对 Titan Security Key 的支持也是最为全面的。对于 USB、蓝牙、NFC 三种协议,Android 都能提供完整的支持。<\/p>
<\/p>
在 Android 上使用 Titan Security Key,支持蓝牙、USB、NFC 三种模式<\/p>
从 2019 年开始,Apple 也开始在 macOS、iOS、iPadOS 上逐步支持硬件安全密钥:<\/p>
What’s New in Authentication – WWDC 2019 – Videos – Apple Developer<\/p>
对于 iPhone,除了使用 闪电转 USB 相机转换器 等配件,也可以直接使用 NFC 无线连接。当然,对于 iPad Pro,使用 USB-C 接口连接也是比较方便的。<\/p>
用户也可以在 iPhone 和 iPad 上,通过蓝牙方式连接 Titan Security Key,但必须通过 Google Smart Lock App 连接,且只能登录 Google 账号,不支持第三方网站。<\/p>
<\/p>
在 iPhone 上使用 Titan Security Key,支持 USB 和 NFC<\/p>
顺便提一下,在刚刚结束的 WWDC20 上,Apple 还为 Safari 带来了基于 WebAuthn API 的 Face ID\/Touch ID 认证功能。对于没有硬件安全密钥的用户,今后也可以通过指纹或人脸识别,实现更方便的双因素验证了。<\/p>
Meet Face ID and Touch ID for the web – WWDC 2020 – Videos – Apple Developer<\/p>
在第三方服务中使用:1Password、Dropbox 等<\/p>
由于 FIDO 和 WebAuthn 是一套开放的标准,目前已经有不少的互联网服务,支持通过硬件安全密钥进行双因素验证。<\/p>
通过如下链接,可以了解到各个互联网服务对双因素验证的支持情况:<\/p>
Two Factor Auth<\/p>
经过测试,大部分网站都能完美兼容 Titan Security Key,包括 WordPress.com、Dropbox、Twitter 等:<\/p>
<\/p>
使用 Titan Security Key 登录 Dropbox<\/p>
常用密码管理器的网页版,例如 1Password 和 Bitwarden,也能通过 Titan Security Key 进行双因素验证:<\/p>
<\/p>
使用 Titan Security Key 登录网页版 1Password<\/p>
在我的测试中,只有 Microsoft 账号(OneDrive、Office 365、Outlook 等)不兼容 Titan Security Key。<\/p>
Microsoft 账号利用硬件安全密钥的方式,与其他网站不太一样:直接利用硬件安全密钥进行免密码登录,而不是双因素验证。与此同时,Microsoft 也对硬件安全密钥提出了更多的要求,例如需要支持 FIDO2 标准等:<\/p>
Azure Active Directory 无密码登录(预览版) | Microsoft Docs<\/p>
Microsoft-compatible security key – Microsoft 365 Security | Microsoft Docs<\/p>
而 Titan Security Key 不支持 FIDO2,所以也就无法用于登录 Microsoft 账号了:<\/p>
<\/p>
使用 Titan Security Key 无法登录 Microsoft 账号<\/p>
同时,大部分客户端软件,例如 macOS 版本的 1Password,以及 Dropbox 的 iOS App,都不支持硬件安全密钥。开源的 KeePass 密码管理器,也没有支持 Titan Security Key 的插件:<\/p>
<\/p>
在 Dropbox iOS App 上,无法使用 Titan Security Key 进行登录<\/p>
高级玩法<\/p>
SSH<\/p>
OpenSSH 8.2 带来了 FIDO\/U2F 支持,可选择 ecdsa-sk 或 ed25519-sk 两种密钥类型,实现双因素验证。Titan Security Key 只支持 ecdsa-sk。<\/p>
u2f – SSH Authentication with Fido2 \/ Yubico Security Key – Super User<\/p>
对于 macOS,可通过 Homebrew 安装最新版的 OpenSSH(brew install openssh)。<\/p>
安装新版 OpenSSH 后,使用 ssh-keygen -t ecdsa-sk 生成密钥对,并上传到服务器上,即可实现双因素验证。后续登录服务器时,必须连接硬件安全密钥,才能正常登录。<\/p>
# 生成密钥对 $ ssh-keygen -t ecdsa-sk -f .\/id_ecdsa_sk Generating public\/private ecdsa-sk key pair. You may need to touch your authenticator to authorize key generation. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in .\/id_ecdsa_sk Your public key has been saved in .\/id_ecdsa_sk.pub # 登录服务器,必须连接硬件安全密钥,才能正常登录 $ ssh -i .\/id_ecdsa_sk blanboom@172.16.15.12 Confirm user presence for key ECDSA-SK SHA256:XXX Welcome to Ubuntu 20.04 LTS (GNU\/Linux 5.4.0-33-generic x86_64) blanboom@blanboom-ubuntuvm:~$<\/p>
Windows Hello<\/p>
在 2019 年,Windows Hello 也开始支持硬件安全密钥 。但实测不兼容 Titan Security Key:<\/p>
<\/p>
Windows Hello 不支持 Titan Security Key<\/p>
这是因为 Windows Hello 和 Microsoft 账户一样,也必须使用符合要求的 FIDO2 密钥,才能正常登录。具体请参考前文中关于 Microsoft 账户的内容。<\/p>
Linux 与 macOS 登录<\/p>
在 Linux 上设置 Titan Security Key,步骤会稍微麻烦一点:需要安装 libpam-u2f,并修改配置文件。具体配置方法请参考如下文章:<\/p>
login – How to configure a U2F key(such as a YubiKey) for system wide 2-Factor Authentication? – Ask Ubuntu<\/p>
经测试,Titan Security Key 能够完美地在 Ubuntu 20.04 LTS 上运行。无论是首次登录,还是使用 sudo 命令,都能正常兼容。<\/p>
<\/p>
在 Ubuntu 上成功设置 Titan Security Key<\/p>
macOS 也可以通过 Titan Security Key 进行双因素验证,设置步骤和 Linux 大同小异:<\/p>
TREZOR\/U2F Login into Your macOS (Updated) | by Bach N. | Trezor Blog<\/p>
但是,对于启用了 FileVault 全盘加密的 Mac, 开机首次登录时并没有真正进入 macOS,所以不方便使用 Titan Security Key。(一种变通的解决方法,是先对硬盘进行加密,设置一个独立的加密密码,再安装 macOS。但开机时需要多输入一次硬盘加密密码。)<\/p>
购买建议<\/p>
目前,YubiKey 是市面上最流行的硬件安全密钥。那么,在 YubiKey 和 Titan Security Key 之间,我们应该如何挑选最适合自己的硬件安全密钥?<\/p>
先来看下 Titan Security Key 的优点:<\/p>
来自 Google,内置由 Google 设计的固件(不过闭源固件对一部分人来说并不是优点)<\/p>
部分型号支持蓝牙,可通过蓝牙连接移动设备(但在 iOS 上仅能通过 Google Smart Lock App 登录 Google 服务,不支持登录第三方服务)<\/p>
提供两个密钥打包的套装,只需要购买一份套装,就可以方便地开启 Google 高级保护计划<\/p>
在 Google 账号中添加 Titan Security Key,能够为不同型号的密钥显示不同的图标<\/p>
而 YubiKey 5 系列 的特色如下:<\/p>
具有更丰富的型号。其中,YubiKey 5Ci 拥有 USB-C 和 Lightning 双接口,同时兼容 iPhone、iPad,以及新款的电脑和 Android 设备,无需转接<\/p>
支持最新的 FIDO2 标准<\/p>
能够模拟键盘,自动输入密码或 TOTP 动态验证码。即使网站不支持硬件安全密钥,也能通过 YubiKey 登录<\/p>
支持 PGP Smartcard 等功能<\/p>
拥有更丰富的生态。例如 KeePass 密码管理器有 KeeChallenge 插件,安装后即可支持 Yubikey<\/p>
所以,在选购硬件安全密钥时,如果仅仅是为了使用 Google 高级保护计划,来自 Google 的 Titan Security Key 是最合适的选择;但如果想将密钥用在更多不同的场景中,功能丰富的 YubiKey 5 更值得购买。<\/p>","img":[{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/F84DC25B0C9D9D148B6A75C12C00CA0FBA6A64BB_size106_w1024_h838.jpeg","size":{"width":"640","height":"523"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/6D4BCAE1DCF783102AAC658083C4B008B9B8031A_size233_w1024_h851.png","size":{"width":"640","height":"531"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/D8DC075ECDAD45DBA62E05B48C5B89E23831EB47_size218_w1024_h759.png","size":{"width":"640","height":"474"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/26A48ABA768024641A3E603BFD3580A6607D276B_size218_w1024_h769.png","size":{"width":"640","height":"480"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/C4F9A8D9D84DE80EE549C332EFC87186D9695D33_size85_w576_h1024.png","size":{"width":"576","height":"1024"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/76096E41F4215D821ACA07A9E5D26809D705F572_size547_w766_h1024.png","size":{"width":"640","height":"855"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/B1CBC91D0B1556AAA10D909B7C6F94EA565C23A4_size300_w1024_h749.png","size":{"width":"640","height":"468"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/378215F6BF2BE5AABF25ABB5121DDEDA6AF4CE0B_size220_w1024_h763.png","size":{"width":"640","height":"476"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/6C306736E668C87BA0B38EA3BB2D55D672D6D891_size310_w1024_h754.png","size":{"width":"640","height":"471"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/B873EB65A571120D84821C2E3758EDA8B11F7FBF_size48_w828_h627.png","size":{"width":"640","height":"484"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/59364509A20C693863CD992637E37044766047AC_size327_w1024_h917.png","size":{"width":"640","height":"573"}},{"url":"http:\/\/d.ifengimg.com\/mw640_q100\/x0.ifengimg.com\/res\/2020\/67683E3C482441FC9AECFF146F2AE7EF15DCA872_size210_w1024_h836.png","size":{"width":"640","height":"522"}}],"summary":"Matrix精选Matrix是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选Matrix最优质的文章,展示来自用户的最真","sharesummary":"Matrix精选Matrix是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选Matrix最优质的文章,展示来自用户的最真","commentType":"0","wemediaEAccountId":"411","showclient":"0","shareurl":"https:\/\/ishare.ifeng.com\/c\/s\/v002eVk2Dyq8EniZFK2wGcIuAmLfuPQ5NL--TWliO-_CsaG3I__","praise":"4","like_num":"4"}}