身份认证都是通过在某个时刻询问用户某个此时只有合法用户自己才能够提供而非法用户无法提供的证据(包括只有你知道的东西或只有你唯一拥有的东西,如:U盾,虹膜,指纹等)以证明合法用户身份。
普通帐号/密码认证方式(用户身份仅仅是通过匹配的2个字符串),一旦被黑客盗取后,在某个时刻,非法用户也能提供该证据,所以是不安全的。
动态口令(动态密码):认证服务器以当前日期时间和用户登录次数为基础数据,采用一种算法,生成一个唯一字符串,作为用户身份凭证,客户端设备的时钟频率严格与服务器同步, 以当前日期时间和用户登录次数为基础数据采用相同的算法得到一个字符串,将其输入至服务器进行身份验证。
或者给用户发放一个唯一的数字证书(字符串)作为用户的身份凭证,这就是数字证书或者移动数字证书(USB Key,U盾等)。
为了加强用户身份认证,在普通静态帐户/密码基础上可以通过以下方法加强认证,确保用户身份认证的正确性。
动态密码原理:
动态密码技术采用一种动态令牌的专用硬件,内置电源、密码生成芯片和显示屏. 其中数字键用来输入用户PIN码,显示屏用于显示一次性密码。每次用户输入正确的PIN码时,都可以得到一个当前可用的一次性动态密码。
动态令牌的密码生成芯片运行专门的密码算法,它当前时间以及使用次数生成当前密码并显示在显示屏上。认证服务器采用相同的算法计算当前的有效密码。由于每次使用的密码必须由动态令牌来产生,只有合法用户才持有该硬件,所以只要密码验证通过,系统就可以认为该用户的身份是可靠的。而用户每次使用的密码都不相同,即使黑客截获了一次密码,也无法利用这个密码来仿冒合法用户的身份,因为下一次登录必须使用另外一个动态密码。
动态密码牌硬件其实就是用户身份的标识,只不过设置了一个PIN用于加密了。
一般网站的验证码类似,由服务器动态随机生成一个字符串,然后以某种方式发送给客户端(一般网站的验证码是直接通过页面传给客户端,安全性不高),再由客户端输入该字符串进行交易确认。
发送方式分2种,一种是通过某种方式告诉客户端(如手机短信密码(也称手机OPT-OneTime Password))刮刮卡等),另一种是无服务器和客户端通信,而是在客户端通过硬件设备生成某个合法口令(如:动态令牌)。
动态口令分类
技术角度:时间同步、事件同步、挑战/应答。
生成终端分类:短信密码、动态令牌、刮刮卡等,其中动态令牌包含硬件令牌和手机令牌两种形式,下面以主流的短信密码和动态令牌来说明。短信密码
短信密码以手机短信形式请求包含6位随机数的动态密码,也是一种手机动态口令形式,身份认证系统以短信形式发送随机的6/8位密码到客户的手机上,客户在登录或者交易认证时候输入此动态密码,从而确保系统身份认证的安全性。 硬件令牌
当前最主流的是基于时间同步的硬件口令牌,它每60秒变换一次动态口令,动态口令一次有效,它产生6位/8位动态数字。 手机令牌 手机令牌是用来生成动态口令的手机客户端软件,在生成动态口令的过程中,不会产生任何通信及费用,不存在通信信道中被截取的可能性,手机作为动态口令生成的载体,欠费和无信号对其不产生任何影响,由于其在具有高安全性、0成本、无需携带、获取以及无物流等优势,相比硬件令牌其更符合互联网的精神,由于以上优势,手机令牌可能会成为3G时代动态密码身份认证令牌的主流形式。
USB移动证书(USB-key):将用户的密钥或数字证书存储在USB Key硬件设备中,利用USB Key 内置的密码学算法实现对用户身份的认证。USB-key中的密钥或数字证书(其实就是一个标识字符串)唯一标识了一个用户身份。USB-key里的标识串不会改变,如果在网络传输入过程中,被人盗取的话,有机能该标识串会被破解。
USB Key的局限是只能在己安装相应驱动程序的电脑上进行操作,在其他没有 USB 插口的设备上则无法使用,使用范围相对狭窄。另外由于必须连接电脑,在已经出现相应的木马病毒的情况下,仍然存在安全隐患。USB-Key里只是保存一个证书的标识字符串,一些厂家的底端的USB-Key产品,可以被复制。
使用完后,USB-Key如果忘记拨出电脑,有被人拾走盗用风险。
数字证书:数字证书认证技术采用加密传输和数字签名技术,可以较好的保障网上信息安全。数字证书的局限是只能在己安装证书的电脑上进行操作,使用不方便。
USB key/U盾等是通过硬件实现的,必须与电脑连接。