什么是OTP
OTP(One-Time password)
OTP试图解决用户选择强壮密码时的一些问题。大多数OTP基于双要素认证原则运行。要认证一个系统,你需要拥有一个令牌卡和你的个人识别码(PIN personal identification number)。生成和同步密码的方法随OTP系统的不同而不同。在一种比较流行的OTP方法中,令牌卡在一个时间间隔内(通常为 60S)生成登陆密码。这个看上去随机的数字串实际上与OTP服务器和令牌上运行的数学算法紧密相关。一个由令牌生成的登录密码可能类似这样:4F40D974。PIN要么与算法一起使用生成登录密码(随后变成OTP),要么与登陆密码一起使用。 使用由算法和PIN生成登录密码的系统防止个人反复嗅探网络后获得用户的PIN。OTP用以下方法改进了密码: >用户再也不能选择弱密码 >用户只要记住PIN,而不用记住传统的强密码 > 一旦密码被使用一次,线路上嗅探到的密码就已经失效 当然没有大面积的密码系统使用OTP是有原因的,OTP也有一些缺点: > 用户需要拥有令牌卡进行认证 >OTP需要一台额外的服务器接受来自认证服务器中继的请求 >使用OTP输入一个密码比输入一个用户需要记住的密码时间花费更高 > 在大型网络中OTP价格不菲 当考虑OTP总体评价时,它显然是一种有价值的技术,只是不能到处使用。大多数的机构选择将OTP用于他们安全策略中的关键系统,或用在密码破解尝试较多的地方。对于一个典型的机构,该地方以为着是财务和人力资源系统,也可以是拨号或虚拟专用网这样的远程系统。 一次性可编程 OTP(One Time Programable) 随着嵌入式应用的越来越广泛,产品的安全也显得越来越重要。一方面是为了保护硬件设计,另外一方面也是为了产品本身的安全,防止被HACKED.在嵌入式系统当中,所有的代码和系统数据都是被存储在FLASH芯片内部的。FLASH芯片的特点是可多次擦写,而且掉电数据不会丢失。为了保护FLASH中的数据,越来越多的FLASH厂商在FLASH内部提供了一种特殊的寄存器:OTP寄存器。OTP=ONE TIME PROGRAMMABLE,意思是这个寄存器是只可以编程一次的,编程后就再也不可以修改了。OTP寄存器和FLASH数据区域很类似,1能被改写为0,但0永远也不能写成1.如果有一个32位的OTP寄存器,出产的值是0xFFFFFFFF,如果用户通过编程,将OTP寄存器的值写为0xFFFFFFFE后,那OTP寄存器再也不能在改写为0xFFFFFFFF了;当然,这个OTP寄存器的值还可以改写为0xFFFFFFFD或其它。。。。。为了给OTP寄存器提供保护,一般这类FLASH芯片还会提供一个LOCK寄存器。LOCK寄存器也是ONE TIME PROGRAMMABLE的。LOCK寄存器的每一位对应于一个OTP寄存器。如果与OTP寄存器对应LOCK寄存器的位(BIT)被从1写为0,就意味着这个被锁住的OTP寄存器在也不能进行写操作了。即使OTP的当前值为0XFFFFFFFF,它的值也永远不可以被改写了。通过OTP寄存器与LOCK寄存器,用户可以在OTP里保存一些特定的信息,例如软件版本号,硬件版本号,秘钥等信息。同时,这类FLASH芯片内部还会有另外一个OTP寄存器,这个寄存器在出产的时候就被厂家编程过了,写入特定的序列号,并LOCK住。如果有需要,FLASH厂商也可以根据客户的需要写入特定的序列号。这样,每个芯片都会有一个不一样的ID号,避免被复制。除了FLASH芯片,很多CPU厂商,也在CPU内部提供类似的OTP寄存器,供用户使用,利于开发更安全的应用。象一些比较大的厂商,例如TI,FREESCALE等,他们往往是不公开某些芯片的数据手册的。如果要获得他们的数据手册,一是要有大量的订货,同时也需要签署一定的保密协议。OTP本身并不能提供绝对安全的应用。但OTP的提供,有利于开发商开发和部署更安全的应用,保护自己和客户的利益。象很多大的厂商,例如NOKIA,MOTOROAL,SAMSUNG和SONYERRICSON等,都需要根据客户(运营商)的要求,开发一些只能在自己的网络里使用的手机。其中很多软件和硬件的保护都是基于OTP来实现的。 otp令牌种类 生成强身份认证一次性密码 (OTP) 的凭证多种多样,如如威瑞信(VeriSign)在国内通过天威诚信提供安全卡、 安全令牌, 手机访问方式和 SMS 访问方式等多种令牌方式。 OPT即Open Telecom Platform(开放电信平台).不过,这实在是一个冲浪漫了误解的糟糕的名字,实际上它远比这个名字听起来的要通用的多。他是一个应用程序操作系统,还包括大量库和程序用来构建大规模的分布式容错系统。OTP最初是由瑞典的Ericsson公司开发的,它的设计目标就是用来构造容错系统。 OTP包含了很多强大的工具,比如说,一个完备的Web服务器、FTP服务器、CORBA ORB等,他们全部都是用Erlang写成的。OTP还包含构建电信应用程序所需要的高级工具,比如实现了H248、SNMP以及一个ASN.1到Erlang的交叉编译器。 用OTP来写程序,最为核心的概念是OTP中的行为(behavior)。一个行为封装了某种常见的行为模式,你也可以把这些行为理解成为某种应用程序框架,可以通过毁掉模块来定制这些框架。 OTP的强大之处在于,他依靠行为引入了容错,扩容以及动态代码升级等许多重要的特性。换句话说,在行为基础上变成,程序员不再需要考虑容错之类的事务,行为已经帮你保定了这些问题,放心的写回调模块就行。以Java世界作为对照,行为就好比是一个J2EE容器。 OTP 其他意义 one time programmable 一次性可编程 |