Bloomberg Anywhere的B-unit token工作原理是怎么样

和一般的两步验证差不多,B-Unit能生成两种Token,6位纯数字Token和4位英文字母Token。其中6位Token的安全性应该低于4位英文字母Token。先说6位的Token,这个基本上就是标准的两步验证。计算结果依赖于B-Unit的内部序列号,和当前时间。但不依赖于服务器端信息和指纹信息。流程大概是这样的,你打开B-Unit,扫描指纹通过后,B-Unit依据序列号k和当前时间t用一个函数f计算出一个6位数字v,大致是v=f(k,t)的样子。服务器端也进行同样的计算,得到相同的值(时间参数t隔一段十几秒才变动一次,所以相隔时间不长的话,服务器端得到的是相同值。)。你从B-Unit上读到 v值,输入终端,终端传给服务器,服务器和自己计算出来的值进行比对。相同认为合法,不同认为不合法。至于4位的Token。其实也是不依赖指纹信息的,但是依赖于服务器信息。B-Unit背面左上角仔细看的话会发现有一个透明小窗,里面有个类似CCD的传感器。服务器在需要4位Token验证的时候,会产生一段随机数据s,编码为闪光信号传到Terminal或者PC屏幕上。B-Unit通过指纹验证后,CCD会接收并解码闪光信号从而得到数据s。然后用另一个算法h,加入时间值t和序列号k后算出4位Token值a。服务器端用同样算法和同样数据a=h(s,k,t)计算得到自己的a值,和你的输入进行比对。一样是相同认为用户合法,不相同认为用户不合法。至于指纹,是不参与计算的。但是指纹是硬件强制检查的。不通过指纹验证,硬件不会进入下一步计算v值或a值。


    推荐阅读