书城教材教辅电子商务安全与实训
32285200000022

第22章 身份鉴别机制

鉴别机制是以交换信息的方式来确认实体真实身份的一种安全机制。鉴别机制可支持构成鉴别服务。鉴别服务的目的是防止其他实体占用和独立操作实体的身份。某一实体伪称是另一实体的行为被称做假冒,鉴别机制可用来对抗假冒威胁。当然,并不是所有的鉴别服务方式都与假冒方式具有对应关系。

身份鉴别的机制包括:非密码的鉴别机制和基于密码算法的鉴别机制。

4.2.1非密码的鉴别机制

非密码的鉴别机制包括:口令机制、一次性口令机制、质询应答机制、基于地址的机制、基于个人特征的机制与个人鉴别令牌。

1.口令机制

这是最简单的认证方式,当用户访问某项服务时,只需提供用户ID和口令,服务器检查用户口令是否正确。虽说只用简单口令认证就可以阻止不少威胁,但由于在开放式系统中,窃听者很容易探听到明文方式传输的口令,也就很容易成功地伪装成该用户。这种方式不可能充分满足安全需求,但由于它简单,方便,在短时间之内还不会完全消失。

口令机制又称做通行字机制,它是最广泛研究和使用的身份鉴别法。通常为长度为5~8位的字符串。口令机制的选择原则是要选择易记、难猜和抗分析能力强的口令。

使用简单口令认证方式,服务器方出于安全的考虑,一般不在本地存储口令的明文形式,而利用某种加密/Hash算法,对口令生成一个单向散列函数值存储。对用户传来的口令,服务器方使用同一算法进行计算,将计算结果与预先存储的内容进行比较,如相同则可认为该用户可信。

口令系统有许多脆弱点,最严重的脆弱点是外部泄露和口令猜测,另外还有线路窃听、危及验证者和重放等攻击方式。

(1)对付外部泄露和口令猜测的措施。

外部泄露是指未授权的人借助外部网络或系统操作获取口令。有许多方法导致这种情况发生。例如,用户为防忘掉口令将口令写到一个不安全的地方(如身份证上或墙上);用户在一个未受保护的管理文件中存储口令;通过社会工程方法从系统管理者或其他合法用户那里获得别人的口令等。

在使用口令机制时,为了防止外部泄露,可以采用如下的措施:

严格组织管理办法和执行手续;

确保定期改变口令;

确保每个口令只与一个人有关;

确保输入的口令以不可理解的形式出现在终端上;

使用易记的口令,不要写在纸上;

定期对用户和系统管理者进行安全意识的教育和培训,增强其安全意识。

口令的易被猜测性是一个严重的脆弱点。如果倾向于用特定的字母串作为口令,那么攻击者首先试用这些常见的字母串就可以猜出口令。短口令系统也是很脆弱的,因为短口令的搜索范围较小。往往用户为了易记和方便而选择短口令。特别严重的安全问题可能是由系统安全安装时为标准用户/账户名所设置的预设口令引起的。另一种潜在的问题是,使用与用户的名字,账户或诸如生日等用户特征密切相关的口令。口令猜测攻击就利用了这些弱点。在使用口令机制时,对付口令猜测的措施主要有:

严格限制非法登录的次数;

口令验证中插入实时延迟;

规定口令的最小长度,如至少6~8位;

防止用户特征相关口令;

确保口令定期改变;

取消安装系统时所用的预设口令;

使用机器产生的口令;

定期对用户和系统管理者进行安全意识教育、培训。

避免外部泄露所采取的措施与避免口令猜测所采取的措施之间有一定的冲突。避免口令猜测所采取的方法往往导致用户拥有较少的口令选择机会。如果口令很难记的话,用户就倾向于把它记录下来。可见,口令系统的设计者和管理者要折中考虑这些措施。

(2)对付线路窃听的措施。

除了外部泄露和口令猜测外,口令系统最严重的脆弱性是线路窃听。窃听者监视一个合法用户的登录过程是一件很平常的事,这样做既不难又不需要花太大代价。如果该过程包含一个未被保护的口令或可推导出未保护的口令的数据,那么攻击者就可以冒充合法用户进行假冒攻击。使用口令保护机制可以对付这种类型的攻击。实际上,使用单向函数就可以对付窃听口令这种攻击。

(3)对付危及验证者的措施。

对口令系统的另一个潜在威胁是,通过内部攻击危及验证者的口令文件或者数据库。因为这种攻击也许会危及到系统所能验证的所有口令,所以应避免这种攻击。前面介绍的保护口令机制为对抗这种攻击提供了某些措施,因为存储的值是单向变换口令后的值,没有暴露口令。

(4)对付重放攻击的措施。

上面所介绍的机制都不能对抗对通信线路的主动攻击——重放攻击。如果一个用户的口令没有改变,那么攻击者可以用它所观察到的鉴别交换信息很容易地假冒该用户。保护口令可被扩展为对抗重放攻击的方案。

2.一次性口令机制

一次性口令仅仅使用一次,每一次会话请求都需要不同的口令,一旦这次会话结束,口令也随之失效。

一次性口令机制确保在每次认证中所使用的口令不同,以对付重放攻击。在使用一性口令机制时,确定口令的方法有:

(1)两端共同拥有一串随机口令,在该串的某一位置保持同步;

(2)两端共同使用一个随机序列生成器,在该序列生成器的初态保持同步;

(3)使用时间戳,两端维持同步的时钟。

在上述三种方法中,方法(1)被限制用于人工控制的环境之中,方法(2)和方法(3)在现代网络环境中有潜在的应用。一次性口令机制虽然大大提高了认证安全性,但由于它只在系统连接登录时工作,因此不能完全解决安全问题。

3.质询应答机制

这种机制直接来源于军队系统,哨兵提问来人,根据对方的应答判断是否自己人。在这类认证系统中,用户、服务器约定一个计算函数和密钥,同样要求该计算函数为单向函数。当用户连接到服务器上时,服务器随机生成一个不重复的问题(自变量),用户根据约定的计算函数和密钥计算出应答,并将其传回服务器进行认证。

4.基于地址的机制

基于地址的机制假定声称者的可鉴别性是以呼叫的源地址为基础的。在大多数的数据网络中,呼叫地址的辨别都是可行的,并且在电话网络上也正是利用了ANI(自动识别号)属性的形式。在不能可靠地辨别地址时(例如确定的电话网络),可以用一个呼叫回应设备来获得呼叫的源地址。一个验证者对每一个主体都保持一份合法呼叫地址的文件。在一次鉴别中,验证者或者对呼叫地址做合法性检查,或者清除源呼叫并向一个合法地址回呼。

这种机制有些潜在问题,最大的问题是在一个临时的环境里维持一个连续的主机(例如一个人或一套设备)和网络地址的联系,地址的转换可能非常频繁,以致转换系统变得代价昂贵,不可操作和不安全。

值得注意的是,基于地址的机制自身不能被作为可靠的鉴别机制,但可以作为其他鉴别机制的有用补充。

5.基于个人特征的机制

生物认证技术是一项新兴的安全技术,也是21世纪最有发展潜力的技术之一。生物认证技术将信息技术与生物技术相结合,具有巨大的市场发展潜力。比尔·盖茨曾预言:“以人类生物特征——指纹、语音、面相等方式进行验证的生物识别技术在今后数年内将成为IT产业最为重要的技术革命”。可见其发展前景和市场潜力之巨大。

通过识别用户的生理特征来认证用户的身份是安全性极高的身份认证方法。研究和经验表明,人的指纹、掌纹、面孔、发音、虹膜、视网膜等都具有唯一性和稳定性的特征,即每个人的这些特征都与别人不同且终身不变,因此可以据此进行身份识别。基于这些特征,人们发展了多种生物识别技术,如指纹识别、声音识别、手迹识别、视网膜扫描、手形及掌纹等。

在大多数情况下,在网络环境中应用这些技术的任何一种,所导致的结果可以被认为是应用了一种特殊的口令鉴别技术,但与传统的口令鉴别不一样,它不具有可转让性、可伪造性和假冒性。

指纹、掌形、虹膜等生物特征识别技术与上述两种传统的身份鉴别技术相比,基于人体生物特征识别技术的安全性显然要高得多。从统计意义上来说,人类的指纹、掌形、虹膜等生理特征都存在着唯一性,因而这些特征都可以成为鉴别用户身份的依据。基于指纹识别技术的门禁/出入控制系统(指纹锁)数年前已经研制成功并投放市场。从指纹锁的实际应用情况来看,该技术还存在着如下几个方面的问题:

要求用户配合的程度高。用户在指纹采集过程中需要直接接触指纹采集仪,容易产生被侵犯的感觉,导致用户对指纹识别技术的接受度降低。

部分用户的指纹难以采集,存在着较高的系统拒绝录入率问题。

实验表明,合法用户的指纹存在着被他人复制的可能,这无疑降低了整个系统的安全性。

系统若出现异常情况,单凭指纹信息难以得知进入人员的真实身份。这给系统的审计、核查带来了难度。

掌形、虹膜识别技术的识别精度一般来说比指纹识别系统要高,但仍然存在着要求用户配合的程度高、侵犯性较强、使用专用设备、价格昂贵等缺点。

生物识别技术对信息安全领域具有重要意义,随着互联网的飞速发展,电子商务、电子政务等网络应用也得到了广泛的应用。在虚拟的网络环境里如何确认用户的真实身份,成了网络应用的关键所在。自2005年4月1日起,我国首部《电子签名法》正式实施,从而为电子商务等应用提供了法律保障。现有电子银行的安全机制完全依赖于用户账号/密码/CA数字证书。反病毒专家认为,尽管网上银行应用了多种安全防范机制,如CA数字证书、防火墙、入侵检测等,从理论上讲是安全的,但是这种安全机制主要应用在服务器上,对客户端的安全却疏于防范。因此,许多类似于网银大盗的木马病毒都是通过客户端盗取用户账号和密码,从而盗取网上银行资金的。账号/密码作为一种私密信息,理应仅为合法用户一人掌握但实际上却可以被复制/传播,不管这种传播是有意还是无意泄露、是合法还是非法盗取。CA数字证书的窃取难度虽然较大,但仍然无力阻止物理上可接触该证书的非法攻击或某类“黑客”攻击。一旦非法人员窃取合法的账号/密码/CA数字证书后,网上银行交易系统的安全机制便形同虚设,事后审计结果也无从知晓交易人员的真实身份。因此,账号/密码/CA数字证书机制实际上无法防止他人非法盗取或非法授权。随着网络病毒和“黑客”工具的泛滥,网上银行的安全形势将面临更加严峻的挑战。

6.个人鉴别器件

有各种类型的物理器件用于支持鉴别“某人拥有某物品”这一事实,但通常要与一个口令或个人识别号PIN结合使用。最简单的器件具有存储功能。例如,除了用户记住的口令外,用此器件存储辅助的口令,这样的一个器件本质上相当于一个电子钥匙。为了便于读取器件的内容,一般需要一个特殊的界面。

更复杂的器件能支持一次性口令或者质询应答机制。这些器件通常是功能齐全且通过以下部件与外部世界接触:键盘,拥有者用此部件输入序列,诸如PIN和口令;显示器,显示输出值,如一次性口令或者质询应答。拥有者将所显示的值作为鉴别序列的一部分,重新输入网络终端,甚至可以将复杂的器件嵌入处理器和自己的网络通信设备(如智能卡)。这种器件通常还利用其他密码鉴别方法。

磁卡是目前已广泛应用的一种用以证实身份的个人鉴别器件,但是磁卡存在一些缺点。磁卡仅有数据存储能力,而无数据处理能力,没有对其记录的数据进行保护的机制,因而伪造和复制磁卡比较容易。由于存在着电子卡被借用、冒用的可能,因此人员出入的原始记录难以进行事后审计,从而导致系统的审计核查机制失效;据有关统计,目前基于电子卡证件的门禁/出入控制系统占据了市场的大部分份额。

随着微处理器的发展,出现了智能卡。智能卡又称CPU卡,是一种镶嵌有单片机芯片的IC卡。卡上的单片机芯片包含中央处理器CPU,随机存储RAM,电擦除可编程存储器EEPROM,只读存储器ROM和I/O接口。因此智能卡被誉为最小的个人计算机。芯片操作系统COS是芯片资源的管理者和安全保密的基础。由于CPU卡不仅具有数据存储能力,数据处理能力,而且有操作系统的软件支持因而安全保密性好。目前,智能卡在越来越多的应用领域取代了磁卡。

用磁卡和智能卡,作为用户的身份凭证进行身份认证,其理论根据都是通过验证用户拥有什么来实现用户的身份认证。

如果仅仅只靠磁卡和智能卡这种物理持有物,作为用户的身份凭证进行身份认证,尚有不足,因为如果磁卡和智能卡丢失,则捡到磁卡和智能卡的人就可假冒真正的用户。事实上,一般每个卡的持有者都要拥有一个个人识别号PIN,PIN就是持卡人的口令,PIN不能写到卡上,持卡人必须牢记,并严格保密。PIN可由金融机构来产生并分配给持卡人,方法是选用一个密码函数,从持卡人的账号等数据产生PIN。如果选用的密码是强的,那么产生的PIN也将是强的。这种方法的优点是不需要保存PIN的任何记录,只是在需要时从账号计算产生。缺点是账号不变,则PIN也不能改变。另一种方法是利用一个随机函数来产生随机数作为PIN。这种方法的优点是不存在PIN和账号之间的关联,缺点是发行机构必须保存PIN的记录。系统通过验证持卡人是否持有真实的卡且知道正确的PIN来达到认证持卡人身份的目的。

4.2.2基于密码算法的鉴别

基于密码的鉴别机制的基本原理是:因为申请者知道某一秘密密钥,从而使验证者相信,声称者正是其所声称的实体。对称密码技术和非对称密码技术都可以被用来实现鉴别。

基于密码算法的鉴别主要包括采用对称密码算法的机制、采用公开密码算法的机制与采用密码校验函数的机制。

1.基于对称密码算法的鉴别机制

基于对称密码技术的最简单的方法,是申请者和验证者共享一个验证密钥。申请者使用该密钥加密或封装某一消息。如果验证者能成功地解密消息或验证封装是正确的,那么验证者相信,消息来自申请者。加密或封装的消息的内容通常包括一个非重复值,以对抗重放攻击。可以使用一个质询和应答协议,在这种情况下,验证者首先给申请者发送一个包含非重复值的口令消息,该非重复值也包含在返回给验证者的加密或封装消息之中。

采用对称密码算法进行身份鉴别时,会遭遇消息重放的威胁,主要有如下几点:

(1)简单重放。攻击者简单复制一条消息,以后再重新发送它。

(2)可被日志记录的复制器。攻击者可以在一个合法有效的时间窗内重放一个带时间戳的消息。

(3)不能被检测到的复制品。这种情况可能出现,原因是原始信息已经被拦截,无法到达目的地,而只有重放的信息到达目的地。

(4)反向重放,不做修改。向消息发送者重放。当采用传统对称加密方式时,这种攻击是可能的,因为消息发送者不能简单地识别发送的消息和收到的消息在内容上的区别。

针对这种情况,可采用的对策主要是利用非重复值的使用:

序列号:对付重放攻击的一种方法是在认证交换中使用一个序数来给每一个消息报文编号。仅当收到的消息序数顺序合法时才接受,但这种方法要求双方必须保存上次消息的序号。

时间戳:A接受一个新消息且该消息包含一个时间戳,该时间戳在A看来,是足够接近A所知道的当前时间;这种方法要求不同参与者之间的时钟同步。

验证者发送随机者(如质询):该随机值不可预测,不重复。

2.基于公开密码算法的鉴别机制

基于公开密码算法的鉴别机制与基于对称密码算法的鉴别机制类似。申请者使用他的私有密钥签署某一消息,验证者使用申请者的公开密钥验证签名。如果签名能够被正确地验证,则验证者相信:申请者正是他所声称的实体。另外,消息也可以包含一个非重复值对抗重放攻击。

3.基于密码校验函数的机制

在密码校验函数机制中,待鉴别的实体通过表明它拥有某个秘密鉴别密钥来证实其身份。它可由该实体以其密钥和特定数据作输入,使用密码校验函数获得密码校验值来达到。