题外话:此篇隶属于理论计算机(TCS)系列。
昨天, RSA 实验室的首席科学家 Burt Kaliski (同时也是副总裁)给我们做了一个讲座,关于最新的 One-Time Password 的一些应用。开始讲的时候还不觉得有啥,后来想了一下,这玩艺儿还是挺有用的,怪不得 RSA Lab 对之这么看重。
One-Time Password ,就是给用户端一个 Token (可以是一个小电子设备的形式),与服务器段共享了一个 seed ,利用这个 seed ,双方在相同时间能产生一个相同的 password (比如使用 hash 函数处理 seed + time——hash 函数介绍见从 hash 函数到王小云的 MD5 破解),用户利用 Token 生成的密码登录服务器,服务器进行对比验证。
目前密码体系的不安全之处在于数据传输可能被监听,用户客户端可能存在木马,用户可能随手写下密码造成密码泄露等等。而利用上面的 One-Time Password ,即使这个密码被人非法获取,也不会造成损失。所以,这玩艺儿在银行的密码管理中是非常有用的,听说有银行已经开始使用此类技术。
Burt Kaliski 此次讲座讲了 One-Time Password 的四个应用:
- How to authenticate to a laptop computer with an OTP token -- without storing long-term secrets on the computer
- How to use the same token to authenticate to multiple servers -- without sharing secrets among the servers or relying on a third party
- How to set up a strong, shared key between parties that only share a short OTP value
- How to protect OTPs against malware and MITM attacks
这些比较技术化,不详述。
关于 RSA 实验室: RSA 即鼎鼎有名的 RSA 公钥密码体系,在密码界举足轻重。讲座完毕之后,有人问起 RSA 的前途, Burt 说 RSA 公钥密码体系已经发明 30 年了,估计还能用 30 年,因为估计 30 年后量子计算机已经有所突破(量子计算机下, RSA 公钥密码体系所依赖的大数分解已经被证明是不安全的)。
记得 Yao 以前也多次提到,在未来 15 到 20 年,量子计算机必有所突破,是将来的大热门啊。也许我也应该去玩这个。
参考:
- RSA Lab 上的 One-Time Password 主页
- 2nd Trustworthy Interfaces for Passwords and Personal Information Workshop
Q. E. D.