去年一名当时只有17岁的青少年Graham Clark针对Twitter内部员工展开电话鱼叉式网络钓鱼攻击,取得了多名Twitter员工的凭证,这起事件让Twitter痛定思痛,要求内部员工只能使用安全密钥作为双因素认证(2FA)的途径,并于本周对外分享了整个过程。
由于Twitter员工得以永远选择远程工作,因此Twitter是统一采购适用的实体密钥并发送至全球的超过5,500名员工,选择的是YubiKey 5 NFC及YubiKey 5C NFC密钥,因为它们同时支持采用USB的笔记本,以及采用NFC的Android或iOS设备。
除了通过YubiKey的传送服务将密钥寄至美国、加拿大与欧洲地区之外,其地地区的员工则凭借当地的合作伙伴传送。
此外,Twitter也于内部系统添加对安全密钥的支持,例如该系统原本就支持WebAuthn,但现在也添加对系统认证的支持,包括苹果的FaceID/TouchID,微软的Windows Hello,以及Android内置的实体密钥,以增加使用密钥的便利性,也不致于对尚未收到实体密钥的员工造成困扰。
接着身居世界各地的员工就必须注册密钥,之后Twitter再关闭旧有的2FA系统,强制员工于内部网络使用安全密钥,整个流程在3个月内完成。
在这期间Twitter处理了许多意外与难题,像是在疫情期间吃紧的物流有时会把密钥寄丢,也必须开发机制来关注员工的密钥注册状况,并提供必要的技术支持,同时鼓励员工扩大采用安全密钥,就算离职了还是可保有安全密钥来保护自己的个人账号。
Twitter也发现了不少安全密钥生态体系值得改善的地方,例如虽然有越来越多的系统支持安全密钥,但仍有些不足,像是某些桌面应用程序经常通过嵌入式浏览器来加载SSO登录画面,但这些嵌入式浏览器解决方案却不支持WebAuthn协议,Twitter认为,在理想的状态下,桌面的应用程序应该采用系统默认的浏览器,因为它们在SSO登录流程中皆支持安全密钥。
此外,若要替换密钥也是个挑战,Twitter发给每个员工两个实体密钥,一个是主要密钥,另一个作为备份使用,再利用SSO来减少员工注册密钥的数量。不过,Twitter期待会有更好的方法来帮助员工或用户添加或移除密钥,也建议可提供更友善的WebAuthn接口。