1、6 August 2022第四章 身份认证技术第1页第四章第四章 身份认证技术身份认证技术 内容提要内容提要n消息认证n身份认证方法 n身份认证协议 6 August 2022第四章 身份认证技术第2页本章要点认证的三项主要内容:消息认证,身份验证和数字签名。认证的三项主要内容:消息认证,身份验证和数字签名。两种主要认证模式:单向验证和双向验证。两种主要认证模式:单向验证和双向验证。三类认证函数:信息加密函数、信息认证码、散列函数。三类认证函数:信息加密函数、信息认证码、散列函数。散列函数应用于数据完整性检查的六种使用方法。散列函数应用于数据完整性检查的六种使用方法。三类常见身份认证手段分析:
2、口令认证、持证认证和生物识别。三类常见身份认证手段分析:口令认证、持证认证和生物识别。四个常用身份认证协议分析:一次一密机制、四个常用身份认证协议分析:一次一密机制、X.509X.509认证协议、认证协议、KerberosKerberos认证协议、零知识身份识别机制。认证协议、零知识身份识别机制。6 August 2022第四章 身份认证技术第3页消息认证概念 n消息认证是信息的合法接收者对消息的真伪进行判定的技术。消息认证的内容包括:n信息的来源n信息的完整性n信息的序号和时间6 August 2022第四章 身份认证技术第4页消息认证的方法 n一、信息的来源认证常用的方法有两种:n一种方法
3、是通信双方事先约定发送消息的数据加密密钥,接收者只需证实发送来的消息是否能用该密钥还原成明文就能鉴定发送者。如果双方使用同一个数据加密密钥,那么只需在消息中嵌入发送者的识别符即可。n另一种方法是通信双方事先约定各自发送消息所使用的通行字,发送消息中含有此通行字并进行加密,接收者只需判别消息中解密的通行字是否等于约定的通行字就能鉴定发送者。为了安全起见,通行字应该是可变的。n二、信息的完整性认证方法的基本途径有两条:n消息的完整性检验的常用方法是:消息发送者在消息中加入一个认证码并经过加密后发送给接收者检验,接收者利用约定的算法对解密后的消息进行运算,将得到的认证码与收到的认证码进行比较,若两者
4、相等,则接收,否则拒绝接收。n采用消息认证码(MAC)。MAC法利用函数f(x)(f(x)必须满足一定的条件)和密钥k将要发送的明文x或密文y变换成r比特的消息认证码f(x,k)或称其为认证符附加在x或y之后发出,通常将f选为带密钥的杂凑函数。n采用篡改检测码(MDC)。MDC法利用函数f(x)(f(x)必须满足一定的条件)将要发送的明文x变换成r比特的篡改检测码f(x)附加在x之后一起加密;。当然,也可以只对篡改检测码f(x)加密。通常将f选为不带密钥的杂凑函数。n三、信息的序号和时间n消息的序号和时间性的认证主要是阻止消息的重放攻击。常用的方法有:消息的流水作业号、链接认证符,随机数认证法
5、和时间戳等。6 August 2022第四章 身份认证技术第5页消息认证模式 n单向验证:是从甲到乙的单向通信。它建立了甲乙双方身份的证明以及从甲到乙的任何通信信息的完整性。n 单向验证过程如下:n(1)甲产生一个随机数Ra。n(2)甲构造一条消息,M=(Ta,Ra,Ib,d)。其中,Ta是甲的时间标记,Ib是乙的身份证明,d为任意的一条数据信息。为安全起见,数据可用乙的公开密钥Eb加密。n(3)甲将(Ca,Da(M))发送给乙。(Ca 为甲的证书,Da为甲的私人密钥。)n(4)乙确认Ca并得到Ea。他确认密钥没有过期。(Ea为甲的公开密钥)n(5)乙用Ea去解密Da(M),这样既证明了甲的签
6、名又证明了所签发信息的完整性。n(6)为准确起见,乙检查M中的Ib。n(7)乙检查M中的Ta以证实消息是刚发来的。n(8)作为一个可选项,乙对照旧随机数数据库检查M中的Ra以确保消息不是重放的旧消息。6 August 2022第四章 身份认证技术第6页双向验证 n双向验证:与单向验证类似,但增加了来自乙的应答。它保证是乙而不是冒名顶替者送来的应答。它还保证双方通信的机密性并可防止攻击。n双向验证除了完成一个从甲到乙的单向验证(上面的18步),还包括一个从乙到甲的类似的单向验证:n(9)乙产生另一个随机数Rb。n(10)乙构造一条消息,Mm=(Tb,Rb,Ia,Ra,d)。其中,Tb是乙的时间标
7、记,Ia是甲的身份证明,d为任意的数据。为确保安全,可用甲的公开密钥对数据加密。Ra是甲在第一步产生的随机数。n(11)乙将Db(Mm)发送给甲。(Db为乙的私人密钥)n(12)甲用Eb去解密Db(Mm),以确认乙的签名和消息的完整性。(Eb为乙的公开密钥)n(13)为准确起见,甲检查Mm中的Ia。n(14)甲检查Mm中的Tb,并证实消息是刚发送来的。n(15)作为可选项,甲可检查Mm中的Rb以确保消息不是重放的旧消息。6 August 2022第四章 身份认证技术第7页认证函数 n可用来做认证的函数分为三类:n(1)信息加密函数(Message encryption function):用完
8、整信息的密文作为对信息的认证。n(2)信息认证码MAC(Message Authentication Code):对信源消息的一个编码函数。n(3)散列函数(Hash Function):一个公开的函数,它将任意长的信息映射成一个固定长度的信息。6 August 2022第四章 身份认证技术第8页信息加密函数 6 August 2022第四章 身份认证技术第9页信息认证码MAC 6 August 2022第四章 身份认证技术第10页散列函数 6 August 2022第四章 身份认证技术第11页6 August 2022第四章 身份认证技术第12页第四章第四章 身份认证技术身份认证技术 内容提
9、要内容提要n消息认证n身份认证方法 n身份认证协议 6 August 2022第四章 身份认证技术第13页身份认证概念 n身份认证又叫身份识别,它是通信和数据系统的正确识别通信用户或终端的个人身份的重要途径。n身份认证是安全系统中的第一道关卡,如图44所示,用户在访问安全系统之前,首先经过身份认证系统识别身份,然后访问监控器根据用户的身份和授权数据库决定用户是否能够访问某个资源。访问控制器访问控制器安全管理员管理用户身份验证资源资源授权数据库授权数据库访问控制6 August 2022第四章 身份认证技术第14页口令认证 n口令认证的过程如下口令认证的过程如下:n计算机系统给每个用户分配一个标
10、识(唯一的ID),每一个用户选择一个供以后注册证实用的口令n计算机系统将所有用户的身份标识和相应的口令存入口令表n口令选择原则口令选择原则n口令一般是长度为58的字符串,由数字、字母、特殊字符、控制字符等组成。口令的选择应满足以下的几个原则:n容易记忆n不易猜中n不易分析n口令的管理口令的管理n采用单向函数实现口令管理时识别过程如下:n用户将口令传送给计算机;n计算机完成口令单向函数值的计算;n计算机把单向函数值和机器存储的值比较。6 August 2022第四章 身份认证技术第15页一次性口令n一次性口令机制(OTP)确保在每次鉴别中所使用的口令不同,以对付重放攻击。nOTP的主要思路是:在
11、登录过程中加入不确定因素,使每次登录过程中传送的信息都不相同,以提高登录过程安全性。n确定口令的方法:n(1)口令序列n(2)挑战/回答n(3)时间同步n(4)事件同步n一次性口令的生成方式有以下几种:n(1)Token Card(硬件卡)n(2)Soft Token(软件)n(3)IC卡6 August 2022第四章 身份认证技术第16页持证认证 n持证(token)是一种个人持有物,它的作用类似于钥匙,用于启动电子设备。使用比较多的是一种嵌有磁条的塑料卡,磁条上记录有用于机器识别的个人信息。这类卡通常和个人识别号(PIN)一起使用。这类卡易于制造,而且磁条上记录的数据也易于转录,因此要设
12、法防止仿制。n现在常用的持证是智能卡。智能卡带有微处理器和存储器,存储着用户个性化的秘密信息。n基于智能卡的认证方式是一种双因素的认证方式(PIN智能卡)。双因素有很多种,如密钥/时间,网络管理中的帐号密码IP或帐号密码机器MAC码等。6 August 2022第四章 身份认证技术第17页生物识别生物识别 n生物识别依据人类自身所固有的生理或行为特征。生理特征与生俱来,多为先天性的,如指纹、眼睛虹膜、脸像等;行为特征则是习惯使然,多为后天性的,如笔迹、步态等。正是因为这些别人很难具有的个人特征可以作为个人身份识别的重要依据。n生物识别因此包括指纹识别、虹膜识别、脸像识别、掌纹识别、声音识别、签
13、名识别、笔迹识别、手形识别、步态识别及多种生物特征融合识别等诸多种类,其中,虹膜和指纹识别被公认为最可靠的生物识别方式。6 August 2022第四章 身份认证技术第18页第四章第四章 身份认证技术身份认证技术 内容提要内容提要n消息认证n身份认证方法 n身份认证协议 6 August 2022第四章 身份认证技术第19页n一个安全的身份识别协议至少应满足以下两个条件:n(1)识别者A能向验证者B证明他的确是An(2)在识别者A向验证者B证明他的身份后,验证者B不能获得A的任何有用的信息,B不能模仿A向第三方证明他是A6 August 2022第四章 身份认证技术第20页一次一密机制 n一次
14、一密系统(one-time system):理论上不可攻破的密码系统。n一次一密机制主要有两种实现方式:n(1)采用请求/应答方(Challenge/Response)。n 第一种方法是随机信息个人化数据,第二种是同步时钟信息个人化数据。n(2)询问-应答式协议n验证者提出问题(通常是随机选择一些随机数,称作口令),由识别者回答,然后验证者验证其真实性。nSchnorr身份认证机制(基于请求/应答方式)6 August 2022第四章 身份认证技术第21页一个简单的一次一密系统n假定明文:M=(m0,m1,m2,.,mn-1)n算法:Ci=Eki(mi)=(mi+Ki)(mod 26)0=in
15、n密文:C=(C0,C1,C2,.,Cn-1)n密钥:K=(K0,K1,K2,.,Kn-1)是一个随机序列,密钥只使用一次,且密钥长度等于明文序列的长度,即|K|=|M|n举例:n明文是 send helpn对应的数字等价形式为18,4,13,3,7,4,11,15n明文:M=(18,4,13,3,7,4,11,15),n=8n假定随机密钥序列为:K=(5,13,1,0,7,2,20,16)n根据上述算法可以得出密文:C=(23,17,14,3,14,6,5,5),或等价地C=(X,R,O,D,D,O,G,F,F)n如果知道密钥序列K,就可以很容易地将密文C还原。如果不知道密钥序列,该例的密钥
16、序列共有268n理论上不可攻破的密码系统只有这一种。在实际应用中,该系统却受到很大的限制:n首先,分发和存储这样大的随机密钥序列(它和明文信息等长),确保密钥的安全是困难的。n其次,如何生成真正的随机序列也是一个问题。n因此,人们转而寻求实际上不可攻破的密码系统:它们在理论上虽然可以攻破的,但真正要攻破它们,所需的计算机资源(例如所需要的计算机时间和容量)超出了实际上的可能性。6 August 2022第四章 身份认证技术第22页X.509认证协议 nX.509对每个用户选择的公钥提供所谓的“证书”。用户的证书是由可信的证书机构(CA)产生,并存放于X.500目录之中。n版本(V):用来区分X
17、.509不同年份的版本;n特定编号(SN):由CA给予每一个证书的一个特殊号码;n识别方法(AI):用于产生证书所用的方法以及一切参数;n颁布者(CA):CA的识别名字;n有效期(TA):包括两个日期,在所指定的两个时间之间有效;n使用者(A):证书拥有者的识别名字;n公钥信息(TP):被证明的公钥值,加上使用这把公钥的方法的名称;n数字签名:对这份格式中所有其它信息先用杂凑函数产生杂凑值,再用CA的密钥签 6 August 2022第四章 身份认证技术第23页Kerberos认证协议 nKerberos是在麻省理工学院(MIT)的Athena项目中开发的。它的名字取自希腊神话;Kerbero
18、s是守卫地域之门的一只三头犬。Kerberos把用户的请求变成验证过程的一张加密的“入场券”,然后验证过程再向服务器提出特定服务的请求。用户的密码不一定要通过网络。Kerberos的版本(客户端或服务器)可以在MIT下载到,或者你也可以购买商业版本。nKerberos协议是以认证服务器、Ticket散发服务器、客户机及应用服务器的服务等四方模型为基础,并假设服务器都是在安全的环境下进行工作。6 August 2022第四章 身份认证技术第24页Kerberos认证过程n(1)客户向认证服务器发送请求,需要某应用服务器服务的证书;认证服务器响应请求,发给用客户的密钥加密的证书。证书包括服务器的票
19、(Ticket)和会话密钥n(2)如果客户得到的Ticket是Ticket散发服务器的,客户机必须再向Ticket散发服务器换取应用服务器的Ticket;客户机将应用服务器的Ticket送往应用服务器n(3)应用服务器和客户机拥有了同一个会话密钥,可以用于它们之间的认证和加密了6 August 2022第四章 身份认证技术第25页零知识身份识别 n使用零知识证明来作身份证明最先是由Uriel Feige,Amos Fiat 和 Adi Shamir提出的。通过使用零知识证明,用户能够证明她知道她的私钥,并由此证明她的身份。n零知识的基本思想是:证明者P掌握某些秘密信息,P想设法让认证方V相信他确实掌握那些信息,但又不想让V也知道那些信息(如果连V都不知道那些秘密信息,第三者想盗取那些信息当然就更难了)。