3.1.2 认证

3.1.2 认证

当用户登录计算机、自动柜员机、电话银行系统,或者其他通信终端时,如何确认该用户是谁呢?加密保护只能防止被动攻击,而主动攻击比被动攻击更复杂,造成的危害更大,后果更严重。认证可以防止对信息的主动攻击。

1.认证基础

身份认证就是某个实体证明他/她就是他/她所说的某个身份的过程。通过认证可以将一个实体绑定为信息安全系统内部的一个身份。认证与身份鉴别的区别在于,认证协议中A可以向B证明他是A,但是任何其他人都无法向B证明他也是A,即其他人不能在B面前冒充A;身份鉴别协议中A可以向B证明他是A,但是B无法从中得到额外的信息,以便向其他人证明他也是A,即B不能在其他人面前冒充A。

认证的方法主要有四种:

(1)实体知道什么,如身份证号码、个人识别码(Personal Identification Number,PIN)、出生日期(Date Of Birth,DOB)等。

(2)实体拥有什么,如证章、信用卡、ID卡和密钥等。

(3)实体是什么,如指纹、声音、虹膜等。

(4)实体在哪儿,如特定的大门、特殊的终端、特别的访问设备等。

认证系统最少由三个部分组成,如图3-1所示。第一部分,认证信息集合A,用于生成和存储认证信息的集合;第二部分,补充信息集合C,系统用于存储并验证认证信息的集合;第三部分,补充函数集合F,根据认证信息生成补充信息的函数集合,即对f∈F,f:A→C。

图3-1 认证原理图

CA颁发的证书可以标识身份。这种证书主要有三种:第一种,如对E-mail地址的认证;第二种,如通过在线数据库对实名和地址的鉴定;第三种,如调查服务机构对背景的检测。认证的目的有很多,其中有两个主要目的是访问控制和可追查性。实现可追查性要依赖日志与审计两种技术。

2.单向认证技术、双向认证技术和可信第三方认证技术

单向认证是A、B双方在网上通信时,B只需要认证A的身份即可。在简单的认证协议中,往往一方是主动提问并验证对方的身份,而另一方则处于被动的地位接受检验,许多访问控制所用的认证协议就属于此类。但是,在很多网络应用的场合,通信的双方实际上是完全对等的实体,他们同样有权要求验证对方的身份以维护自身的利益。这就是所谓的双向认证问题。

双向认证是A、B双方在网上通信时,B不但要认证A的身份,A也要认证B的身份。双向认证不是两个单向认证协议的简单重复。如果所用的加密算法和密钥是安全的,那么相应的协议可以认为是安全的。但是,如果将挑战-应答认证协议用两次,用于双向认证时它却很容易被攻击者钻空子。

可信第三方认证也是一种通信双方互相认证的方式,但是,认证过程必须借助于一个双方都信任的可信第三方。当双方进行通信时,彼此必须先通过可信第三方的认证,然后相互交换密钥,再通信。由这种借助于可信第三方的认证方法变化而来的认证协议相当多,其中典型的例子就是Kerberos认证协议。