揭秘Token的工作原理

随着去年“棱镜门”事件曝光,人们才开始发现自己的隐私都被NSA监听,无论是生活中用到的通讯设备,还是工作中用到的PC,以及现在流行的各种端设备,都一一被指出安全问题,越来越多的个人或者企业也意识到了自己的安全工作没有做到位,当然也不排除那种有带有私心的范儿们。其实这一切都归咎于科技的高速发展,促使着人们学会去改进,而不是停滞不前。唠叨了这么多还是说明一点问题安全对于人们是多么的重要,IT是一个信息化时代,少不了的红黑帽之间的较量,正是由于这个原因就造就了各种大牛级的人物出现。

接下来提到的Token(令牌)使用的RSA加密无非就是一种安全钥匙,目前也广泛的运用在各种企业,比如国家银行、私企、事业单位等等。下面我们就来一起探讨一下这个神奇的令牌是怎样实现安全认证的。

首先说到Token,有必要先了解一下RSA是什么?RSA是基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。具体可以移步 这里 观摩。通过了解RSA我们知道它也并不是万能的,因为早在之前就已经有人将RSA-155(512bits)成功分解,花了五个月时间(约8000 MIPS 年)和224 CPU hours 在一台有3.2G中央内存的Cray C916计算机上完成。2002年,RSA-158也被成功因数分解。2009年12月12日,编号为 RSA-768 (768bits,232 digits)数也被成功分解。北京时间2013年2月15日上午消息,据《纽约时报》周二报道,欧美数学家和密码学家偶然发现,被全世界广泛应用的公钥加密算法RSA存在漏洞。因此RSA的破解也只是一个时间问题,但是目前为止还没有科学家能够破解RSA足够长的加密秘钥,因此相对来说还是比较安全的,不然为啥银行还要用它~~

我们常看见的Token可以算是银行的令牌,Token上有一个LED的显示屏,显示的数字每一分钟变化一次,其实也就是它内部芯片每分钟都会使用一种算法,组合该因子与当前时间,生成一个随机的数字。当然在银行内部服务器也需要采取和这个Token同一种算法产生该随机数字,以便保证Token和银行内部服务器生成的口令单一认证,就像每个客户都有了世界上独一无二的身份认证,来保证用户使用Token的安全性。服务器端和每个对应的Token都使用同样的一套算法,可以自定义计算生成秘钥的时间间隔。每批次生产的Token都拥有唯一的序列号,和有效时间,然后服务器端和Token执行相同的计算程序,在设定好的相同的更新时间计算出新的一组数字,这样就达到了认证的目的,当然也还是有人会问,如果不一致怎么办,其实在有效期内Token还是较安全的,如果发现Token无法认证,基本上应该是它和银行内部服务器的心跳出现了差异,因此导致无法验证通过,这样的Token只能返厂,不过还是有一部分厂家会将Token的心跳时间设置较大,以便保证即使出现心跳差异也能够继续使用,当然这个心跳设置的时间周期越短对于用户来说越安全。

(The End)

坚持原创技术分享,您的支持将鼓励我继续创作!