一次性口令技术

abloz 2005-07-15
2005-07-15

为了解决固定口令的诸多问题,安全专家提出了一次性口令(OTP:One Time Password)的密码体制,以保护关键的计算资源。  

  OTP的主要思路是:在登录过程中加入不确定因素,使每次登录过程中传送的信息都不相同,以提高登录过程安全性。例如:登录密码=MD5(用户名+密码 +时间),系统接收到登录口令后做一个验算即可验证用户的合法性。
考虑到存在数据库中的密码是经过MD5加密的,我们可以采用下面这种方式来处理:
考虑到时间限制,我们可心要求用户在输完自己的用户名和密码之后,输入当前时间的分钟在他提交表单时,我们把服务器的分钟存入session。

我们在获得密码后,先取出密码的后两位,还就是用户输入的分钟,然后分别对用户输入的密码和分钟进行MD5加密,再从数据库中取出已用MD5加密的密码并把session中存的时间用MD5加密,最后就是比较了。

这里有个麻烦的地方,就是服务器上的时间得和客户端的时间对应起来,这是不可能的。所以我们只能取其中一个时间,要么是服务端的时间,要么是客户端的时间。需要在页面上动态显示服务器的时间,或者如果能通过服务器端环境变量获得客户端的时间也能解决这个问题。


如非注明转载, 均为原创. 本站遵循知识共享CC协议,转载请注明来源