如何通过技术手段保证物理身份与数字身份相对应呢?在真实世界中,验证一个人的身份主要通过三种方式:一是根据你所知道的信息来证明身份(whatyouknow),假设某些信息只有某人知道,比如暗号等,通过询问这个信息就可以确认此人的身份;二是根据你所拥有的物品来证明身份(whatyou have),假设某一物品只有某人才有,比如印章等,通过出示该物品也可以确认个人的身份;三是直接根据你独一无二的身体特征来证明身份(who youare),比如指纹、面貌等。
不过,你所知道的信息有可能被泄露或者还有其他人知道,因此仅凭一个人拥有的物品判断其身份是不可靠的,这个物品有可能丢失,也有可能被人盗取,从而伪造此人的身份。
从是否使用硬件,身份认证技术可以分为软件认证和硬件认证。从认证需要验证的条件来看,身份认证技术还可以分为单因子认证和双因子认证。这里需要对单因子认证和双因子认证多说几句。仅通过一个条件来验证一个人的身份的技术称为单因子认证。由于只使用一种条件判断用户的身份,单因子认证很容易被仿冒。双因子认证通过组合两种不同条件(如通过密码和芯片组合)来证明一个人的身份,安全性有了明显提高。RSASecurID以及Safenetikey2000等都是双因子认证技术的代表产品。从认证信息来看,身份认证技术还可以分为静态认证和动态认证。现在计算机及网络系统中常用的身份认证方式主要有以下几种。
1、用户名/密码方式
用户名/密码是最简单也是最常用的身份认证方法,是基于“what youknow”的验证手段。每个用户的密码是由用户自己设定的,只有用户自己才知道。只要能够正确输入密码,计算机就认为操作者就是合法用户。实际上,由于许多用户为了防止忘记密码,经常采用诸如生日、电话号码等容易被猜测的字符串作为密码,或者把密码抄在纸上放在一个自认为安全的地方,这样很容易造成密码泄漏。即使能保证用户密码不被泄漏,由于密码是静态的数据,在验证过程中需要在计算机内存中和网络中传输,而每次验证使用的验证信息都是相同的,很容易被驻留在计算机内存中的木马程序或网络中的监听设备截获。因此用户名/密码方式一种是极不安全的身份认证方式。
2、IC卡认证
IC卡是一种内置集成电路的芯片,芯片中存有与用户身份相关的数据,IC卡由专门的厂商通过专门的设备生产,是不可复制的硬件。IC卡由合法用户随身携带,登录时必须将IC卡插入专用的读卡器读取其中的信息,以验证用户的身份。IC卡认证是基于“whatyouhave”的手段,通过IC卡硬件不可复制来保证用户身份不会被仿冒。然而由于每次从IC卡中读取的数据是静态的,通过内存扫描或网络监听等技术还是很容易截取到用户的身份验证信息,因此还是存在安全隐患。
3、动态口令
动态口令技术是一种让用户密码按照时间或使用次数不断变化、每个密码只能使用一次的技术。它采用一种叫作动态令牌的专用硬件,内置电源、密码生成芯片和显示屏,密码生成芯片运行专门的密码算法,根据当前时间或使用次数生成当前密码并显示在显示屏上。认证服务器采用相同的算法计算当前的有效密码。用户使用时只需要将动态令牌上显示的当前密码输入客户端计算机,即可实现身份认证。由于每次使用的密码必须由动态令牌来产生,只有合法用户才持有该硬件,所以只要通过密码验证就可以认为该用户的身份是可靠的。而用户每次使用的密码都不相同,即使黑客截获了一次密码,也无法利用这个密码来仿冒合法用户的身份。
动态口令技术采用一次一密的方法,有效保证了用户身份的安全性。但是如果客户端与服务器端的时间或次数不能保持良好的同步,就可能发生合法用户无法登录的问题。并且用户每次登录时需要通过键盘输入一长串无规律的密码,一旦输错就要重新操作,使用起来非常不方便。
4、生物特征认证
生物特征认证是指采用每个人独一无二的生物特征来验证用户身份的技术。常见的有指纹识别、虹膜识别等。从理论上说,生物特征认证是最可靠的身份认证方式,因为它直接使用人的物理特征来表示每一个人的数字身份,不同的人具有不同的生物特征,因此几乎不可能被仿冒。
生物特征认证基于生物特征识别技术,受到该技术成熟度的影响,采用生物特征的认证技术具有较大的局限性。首先,生物特征识别的准确性和稳定性还有待提高,特别是如果用户身体受到伤病的影响,往往导致无法正常识别,造成合法用户无法登陆。其次,由于研发投入较大和产量较小等原因,生物特征认证系统的成本非常高,目前只适合于一些安全性要求非常高的场合,如银行、部队等使用,目前还无法做到大面积推广。
5、USB Key认证
基于USBKey的身份认证方式是近几年发展起来的一种方便、安全的身份认证技术。它采用软硬件相结合、一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。USBKey是一种USB接口的硬件设备,它内置单片机或智能卡芯片,可以存储用户的密钥或数字证书,利用USBKey内置的密码算法实现对用户身份的认证。基于USBKey身份认证系统主要有两种应用模式:一是基于冲击/响应的认证模式,二是基于PKI体系的认证模式。
每个USBKey硬件都具有用户PIN码,以实现双因子认证功能。USB Key内置单向散列算法(MD5),预先在USBKey和服务器中存储一个证明用户身份的密钥,当需要在网络上验证用户身份时,先由客户端向服务器发出一个验证请求。服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为冲击)。客户端将收到的随机数提供给插在客户端上的USBKey,由USB Key使用该随机数与存储在USBKey中的密钥进行带密钥的单向散列运算(HMAC-MD5)并得到一个结果作为认证证据传送给服务器(此为响应)。与此同时,服务器使用该随机数与存储在服务器数据库中的该客户密钥进行HMAC-MD5运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户.