1、目录v3.1 消息认证消息认证v3.2 身份认证身份认证v3.3 口令机制口令机制v3.4 零知识证明零知识证明v3.5 其他身份认证机制其他身份认证机制v3.6 单点登录技术单点登录技术密码学的基本概念 v认证(认证(Authentication)又称又称鉴别鉴别w 是验证通信对象是原定者而不是冒名顶替者是验证通信对象是原定者而不是冒名顶替者(身份认证身份认证),),w 或者确认收到的消息是希望的而不是伪造的或者确认收到的消息是希望的而不是伪造的或被篡改过的(或被篡改过的(消息认证消息认证)。)。v认证技术的实现通常要借助于加密和数字签名认证技术的实现通常要借助于加密和数字签名等密码学的技术
2、。实际上,数字签名本身也是等密码学的技术。实际上,数字签名本身也是一种认证技术,它可用来鉴别消息的来源。一种认证技术,它可用来鉴别消息的来源。3.1 消息认证v消息认证是一个过程,用来验证接收消息的真消息认证是一个过程,用来验证接收消息的真实性(的确是由它所声称的实体发来的)和完实性(的确是由它所声称的实体发来的)和完整性(未被篡改、插入、删除),同时还可用整性(未被篡改、插入、删除),同时还可用来验证消息的顺序性和时间性(未重排、重放、来验证消息的顺序性和时间性(未重排、重放、延迟)。延迟)。v利用对称加密体制实现消息认证利用对称加密体制实现消息认证v利用公钥加密体制实现消息认证利用公钥加密
3、体制实现消息认证v利用散列函数实现消息认证利用散列函数实现消息认证 v利用利用MAC实现消息认证实现消息认证利用对称加密体制实现消息认证MEKEK(M)DMKBobAlice发送方发送方A和接收方和接收方B事先共享一个密钥事先共享一个密钥提供保密、提供认证提供保密、提供认证不能提供签名不能提供签名利用对称加密体制实现消息认证v(1)它能提供鉴别:可确认消息只能发自)它能提供鉴别:可确认消息只能发自A,传输途中未被更改;传输途中未被更改;v(2)提供保密性:因为只有)提供保密性:因为只有A和和B知道密钥知道密钥k;v(3)不能提供数字签名:接收方可以伪造消息,)不能提供数字签名:接收方可以伪造消
4、息,发送方可以抵赖消息的发送发送方可以抵赖消息的发送 利用公钥加密体制实现消息认证 公钥加密:保密性MEKaEKa(M)DMKaBobAlice提供保密提供保密不能提供认证不能提供认证利用公钥加密体制实现消息认证 私钥加密:认证与签名MDKbEKb(M)EMKbBobAlice提供认证提供认证提供签名提供签名利用公钥加密体制实现消息认证私钥签名再公钥加密:保密、认证与签名MDKaEKa(Dkb(M)DKaEKbDkb(M)Dkb(M)EKbMBobAlice提供保密、提供认证提供保密、提供认证提供签名提供签名利用公钥加密体制实现消息认证先公钥加密再私钥签名:保密、认证与签名MEKbEKb(Ek
5、a(M)EKbDKaEa(M)Eka(M)DKaMBobAlice提供保密、提供认证、提供签名提供保密、提供认证、提供签名较少使用,先对消息加密再签名不合常理较少使用,先对消息加密再签名不合常理利用散列函数实现消息认证 v回顾散列函数的特性回顾散列函数的特性w 哈希函数、摘要函数哈希函数、摘要函数w 输入:任意长度的消息报文输入:任意长度的消息报文 Mw 输出:一个固定长度的散列码值输出:一个固定长度的散列码值 H(M)w 是报文中所有比特的函数值是报文中所有比特的函数值w 单向函数单向函数Hash函数的分类v根据是否使用密钥根据是否使用密钥w 带秘密密钥的带秘密密钥的Hash函数函数:消息的
6、散列值由只有通信双消息的散列值由只有通信双方知道的秘密密钥方知道的秘密密钥K来控制。此时,散列值称作来控制。此时,散列值称作MAC。w 不带秘密密钥的不带秘密密钥的Hash函数:消息的散列值的产生无函数:消息的散列值的产生无需使用密钥。此时,散列值称作需使用密钥。此时,散列值称作MDC。vHash函数需满足以下条件:函数需满足以下条件:w 输入输入x可以为任意长度,输出为固定长度可以为任意长度,输出为固定长度w 正向计算容易,反向计算困难正向计算容易,反向计算困难w 抗冲突性抗冲突性(无冲突性)无冲突性)利用散列函数实现消息认证散列函数的基本用法(a)M|H(M)HKHM比较比较EKMDMBo
7、bAliceEK(M|H(M)提供保密、提供认证提供保密、提供认证利用散列函数实现消息认证散列函数的基本用法(b)M|KEK(H(M)HHM比较比较EDBobAliceK提供认证提供认证利用散列函数实现消息认证散列函数的基本用法(c)M|KbDKb(H(M)HHM比较比较DEBobAliceKb提供认证提供认证利用散列函数实现消息认证散列函数的基本用法(d)M|KDKb(H(M)HHM比较比较EDBobAliceKMMDKbEKbEk(M|DKb(H(M)提供保密提供保密提供认证提供认证利用散列函数实现消息认证散列函数的基本用法(e)M|H(M|S)|HM比较比较BobAliceSS|H提供认
8、证提供认证利用散列函数实现消息认证散列函数的基本用法(f)M|H(M|S)|KHM比较比较EKMDMBobAliceEK(M|H(M|S)SS|H提供保密提供保密提供认证提供认证利用MAC实现消息认证v消息认证码:消息认证码:w 使用一个密钥生成一个使用一个密钥生成一个固定大小的短数据固定大小的短数据块,并将该数据块加载到消息后面,块,并将该数据块加载到消息后面,称称MAC(或密码校验和)(或密码校验和)MACCk(M)w MAC函数类似于加密函数,函数类似于加密函数,但不需要可逆但不需要可逆性性。因此在数学上比加密算法被攻击的弱。因此在数学上比加密算法被攻击的弱点要少点要少利用MAC实现消息
9、认证MAC的基本用法:消息认证AliceBobM|KCK(M)CKCM比较比较提供认证提供认证不能提供保密、签名不能提供保密、签名利用MAC实现消息认证MAC的基本用法:与明文有关的认证M|K1CK(M)CK2CM比较比较EK2MDK1MAliceBob提供保密、提供认证提供保密、提供认证利用MAC实现消息认证MAC的基本用法:与密文有关的认证M|K1CK1(Ek2(M)CCM比较比较EK2K1MMDK2BobAliceEk2(M)提供保密、提供认证提供保密、提供认证目录v3.1 消息认证消息认证v3.2 身份认证身份认证v3.3 口令机制口令机制v3.4 零知识证明零知识证明v3.5 其他身
10、份认证机制其他身份认证机制v3.6 单点登录技术单点登录技术身份认证v身份认证的定义:身份认证的定义:w 声称者向验证者出示自己的身份的证明过程声称者向验证者出示自己的身份的证明过程w 证实客户的真实身份与其所声称的身份是否相符证实客户的真实身份与其所声称的身份是否相符的过程的过程v身份认证又叫身份鉴别、实体认证、身份识别身份认证又叫身份鉴别、实体认证、身份识别v认证目的:认证目的:使别的成员(使别的成员(验证者验证者)获得对声称者所声称的事)获得对声称者所声称的事实的信任。身份认证是获得系统服务所必须的第一实的信任。身份认证是获得系统服务所必须的第一道关卡。道关卡。身份认证的依据 v用户所知
11、道的某种信息(用户所知道的某种信息(Something the user knows),如口令或某个秘密。),如口令或某个秘密。v用户拥有的某种物品(用户拥有的某种物品(Something the user possesses),如身份证、银行卡、密钥盘、),如身份证、银行卡、密钥盘、IP地址等。地址等。v用户具有的某种特征(用户具有的某种特征(Something the user is or how he/she behaves),如指纹、虹膜、),如指纹、虹膜、DNA、脸型等。、脸型等。同时使用两种依据的认证叫做同时使用两种依据的认证叫做双因素双因素(Two-factor)认证)认证方式方
12、式身份认证系统的组成 v 一方是出示证件的人,称为示证者一方是出示证件的人,称为示证者P(Prover),又称声,又称声称者称者(Claimant)。v 另一方验证者另一方验证者V(Verifier),检验声称者提出的身份的正,检验声称者提出的身份的正确性和合法性,决定是否满足其要求。确性和合法性,决定是否满足其要求。v 第三方是可信赖者第三方是可信赖者TP(Trusted third party),可信赖者可信赖者TP声称者声称者P验证者验证者V鉴别信息鉴别信息身份认证的分类 v身份认证可分为身份认证可分为单向认证单向认证和和双向认证双向认证。w 单向身份认证是指通信双方中只有一方向另单向身
13、份认证是指通信双方中只有一方向另一方进行认证一方进行认证w 双向身份认证是指通信双方相互进行认证双向身份认证是指通信双方相互进行认证 v身份认证还可分为身份认证还可分为非密码的认证机制非密码的认证机制和和基于密基于密码算法的认证机制码算法的认证机制。目录v3.1 消息认证消息认证v3.2 身份认证身份认证v3.3 口令机制口令机制v3.4 零知识证明零知识证明v3.5 其他身份认证机制其他身份认证机制v3.6 单点登录技术单点登录技术口令机制 v口令是目前使用最广泛的的身份认证机制。从口令是目前使用最广泛的的身份认证机制。从形式上看,口令是字母、数字或特殊字符构成形式上看,口令是字母、数字或特
14、殊字符构成的字符串,只有被认证者知道。的字符串,只有被认证者知道。v提示:银行卡密码、邮箱登录密码、保险柜密提示:银行卡密码、邮箱登录密码、保险柜密码等,准确地说应该叫口令,因为密码(密钥)码等,准确地说应该叫口令,因为密码(密钥)是用来加密信息的,而口令是用来作为某种鉴是用来加密信息的,而口令是用来作为某种鉴别的秘密别的秘密 口令的基本工作过程 v第一步:系统提示用户输入用户名和口令第一步:系统提示用户输入用户名和口令 v第二步:用户输入用户名和口令,使用户名和第二步:用户输入用户名和口令,使用户名和口令以明文形式传递到服务器上,口令以明文形式传递到服务器上,客户机客户机确确 定定取取 消消
15、登录屏幕登录屏幕用户名:用户名:密密 码:码:客户机客户机登录请求登录请求服务器服务器ID=adminPassword=tang4口令的基本工作过程v第三步:服务器验证用户名和口令第三步:服务器验证用户名和口令v第四步:服务器通知用户第四步:服务器通知用户 ID Passwordtade df324rest hr45admin tang4 服务器服务器用户鉴别程序用户鉴别程序ID=adminPassword=tang4用户数据库用户数据库客户机客户机登录成功登录成功服务器服务器欢迎欢迎admin,您可以,您可以1.查看账户查看账户2.转账汇款转账汇款口令机制的身份认证模型v该口令认证模型包括声
16、称者和验证者,上图中该口令认证模型包括声称者和验证者,上图中的客户机是声称者,而保存有用户数据库的服的客户机是声称者,而保存有用户数据库的服务器是验证者务器是验证者 ID口令口令ID口令口令比较比较声称者声称者验证者验证者口令机制面临的威胁ID口令口令ID口令口令比较比较声称者声称者验证者验证者危及验证危及验证者的攻击者的攻击线路窃听线路窃听重放攻击重放攻击对付线路窃听的措施v必须在客户端对口令进行加密,可以使用单向必须在客户端对口令进行加密,可以使用单向散列函数在客户端对口令进行加密,而服务器散列函数在客户端对口令进行加密,而服务器端也只保存口令的散列值端也只保存口令的散列值 IDpIDp比
17、比较较声称者声称者验证者验证者f口令口令pID数据库中存放的是加密的口令口令经口令经MD5算算法加密后的密文法加密后的密文对付字典攻击v存在的缺陷是:由于散列函数的算法是公开的,攻击存在的缺陷是:由于散列函数的算法是公开的,攻击者可以设计一张者可以设计一张p p和和pp的对应表(称为口令字典),的对应表(称为口令字典),其中其中p p是攻击者猜测的所有可能的口令,然后计算每是攻击者猜测的所有可能的口令,然后计算每个个p p的散列值的散列值pp。接下来,攻击者通过截获鉴别信息。接下来,攻击者通过截获鉴别信息pp,在口令字典中查找,在口令字典中查找pp对应的口令对应的口令p p,就能以很,就能以很
18、高的概率获得声称者的口令,这种方式称为高的概率获得声称者的口令,这种方式称为字典攻击字典攻击。v对付这种攻击的方法可以将单向散列函数对对付这种攻击的方法可以将单向散列函数对IDID和口令和口令p p的连接串求散列值,即的连接串求散列值,即p=f(pp=f(p,id),id)。这样攻击者。这样攻击者截获鉴别信息截获鉴别信息pp后,必须针对每个后,必须针对每个IDID单独设计一张单独设计一张(p,id(p,id)和和pp的对应表,大大增加了攻击的难度的对应表,大大增加了攻击的难度 对付线路窃听和字典攻击IDpIDp比较比较声称者声称者验证者验证者f口令口令pID对付危及验证者的攻击v对口令系统的另
19、一个潜在威胁是,通过内部攻对口令系统的另一个潜在威胁是,通过内部攻击危及验证者的口令文件或数据库,如不怀好击危及验证者的口令文件或数据库,如不怀好意的系统管理员可能会窃取用户数据库中的口意的系统管理员可能会窃取用户数据库中的口令从事非法用途。这种攻击会危及到系统中所令从事非法用途。这种攻击会危及到系统中所有用户的口令。有用户的口令。v对付危及验证者的攻击的措施:对付危及验证者的攻击的措施:w 首先应保证用户口令不能以明文形式存放在验证端数首先应保证用户口令不能以明文形式存放在验证端数据库中。前面介绍的对付线路窃听的措施为对抗这种据库中。前面介绍的对付线路窃听的措施为对抗这种攻击提供了好处攻击提
20、供了好处 w 将单向散列函数应用于验证系统,而不是声称系统将单向散列函数应用于验证系统,而不是声称系统 对付危及验证者的措施对付危及验证者的措施 IDpIDp比比较较声称者声称者验证者验证者口令口令pIDf 同样,由于未保护的口令在网络上传输,上同样,由于未保护的口令在网络上传输,上述方案容易受到线路窃听的攻击。所以,我们述方案容易受到线路窃听的攻击。所以,我们应该综合前两个方案的优点。应该综合前两个方案的优点。对付窃听和危及验证者的措施对付窃听和危及验证者的措施 IDpIDq比较声称者验证者口令pIDhf 把口令加密传输可以让攻击者无法知道真把口令加密传输可以让攻击者无法知道真实的口令,可是
21、,这对聪明的攻击者并不造实的口令,可是,这对聪明的攻击者并不造成麻烦。成麻烦。他只需把监听的消息录制下来,再用其它的他只需把监听的消息录制下来,再用其它的软件把口令的散列值原封不动的重放给验证软件把口令的散列值原封不动的重放给验证者进行认证,而验证者看到正确的口令散列者进行认证,而验证者看到正确的口令散列值就认为是登录成功的用户,这样攻击者就值就认为是登录成功的用户,这样攻击者就可以冒名顶替受害者,从认证者处获取服务可以冒名顶替受害者,从认证者处获取服务了,我们称这种形式的攻击为了,我们称这种形式的攻击为重放攻击重放攻击。重放攻击重放攻击声称者验证者 f密码pnr ID nID f ID p比
22、较对付重放攻击的一种方法对付重放攻击的一种方法掺入一个随机数掺入一个随机数n,使线路上传输的认证,使线路上传输的认证信息每次都不相同信息每次都不相同 上述方案中的上述方案中的n是一个非重复值,认证方负责是一个非重复值,认证方负责检查检查n是否以前曾被用过。若用过,则请求被拒是否以前曾被用过。若用过,则请求被拒绝。非重复值可用的实现方法有时戳,随机数等。绝。非重复值可用的实现方法有时戳,随机数等。若用时戳方法的话,则两边要维护时钟的同若用时戳方法的话,则两边要维护时钟的同步。很明显,时戳的精度越高,抵抗攻击的强度步。很明显,时戳的精度越高,抵抗攻击的强度也越好。也越好。若用随机数的话,认证方必须
23、保存以往用过若用随机数的话,认证方必须保存以往用过的所有随机数,避免重复,随着服务次数的增加,的所有随机数,避免重复,随着服务次数的增加,这张表会越来越大这张表会越来越大。对付重放攻击的方法比较对付重放攻击的方法比较声称者验证者 ID p fnn f密码p r IDID比较对付重放攻击的另一种方法对付重放攻击的另一种方法该案称为挑战该案称为挑战-应答机制,较好的抵抗了重应答机制,较好的抵抗了重放攻击。但付出的代价是增加了一次通信放攻击。但付出的代价是增加了一次通信对付重放攻击-要求输入验证码对付重放攻击的三种方法 v 加随机数。双方记住使用过的随机数,如发加随机数。双方记住使用过的随机数,如发
24、现报文中有以前使用过的随机数,就认为是重现报文中有以前使用过的随机数,就认为是重放攻击。缺点是需要额外保存使用过的随机数,放攻击。缺点是需要额外保存使用过的随机数,v 加时间戳。该方法优点是不用额外保存其他加时间戳。该方法优点是不用额外保存其他信息;缺点是认证双方需要准确的时间同步,信息;缺点是认证双方需要准确的时间同步,同步越好,受攻击的可能性就越小。同步越好,受攻击的可能性就越小。v 加流水号。就是双方在报文中添加一个逐步加流水号。就是双方在报文中添加一个逐步递增的整数,只要接收到一个不连续的流水号递增的整数,只要接收到一个不连续的流水号报文(太大或太小),就认定有重放威胁报文(太大或太小
25、),就认定有重放威胁 v在实际中,常将方法在实际中,常将方法和和组合使用组合使用 基于挑战-应答的口令机制 用户用户服务器服务器认证请求(用户名、认证请求(用户名、IP)挑战(随机数挑战(随机数R)应答(应答(EH(P)(R))认证结果认证结果通过共享秘密进行身份认证方式的总结v 出示口令方式。申请者直接将口令提交给验证者,验出示口令方式。申请者直接将口令提交给验证者,验证者检查口令。该方式的缺点是口令存在被线路窃听、证者检查口令。该方式的缺点是口令存在被线路窃听、被重放且不能双向认证(申请者无法判断验证者是否确被重放且不能双向认证(申请者无法判断验证者是否确实知道口令)的缺点。实知道口令)的
26、缺点。不具有认证的不可传递性不具有认证的不可传递性ID口令口令ID口令口令比较比较声称者声称者验证者验证者通过共享秘密进行身份认证方式的总结v 不出示口令方式。申请者用口令加密一个消不出示口令方式。申请者用口令加密一个消息,将加密的消息发给验证者,验证者用口令息,将加密的消息发给验证者,验证者用口令解密,如果得到消息明文则验证通过。该方式解密,如果得到消息明文则验证通过。该方式解决了口令被窃听和不能双向认证的缺陷,但解决了口令被窃听和不能双向认证的缺陷,但仍存在被重放的缺点。仍存在被重放的缺点。v 挑战挑战应答方式。验证者发一个随机数给申应答方式。验证者发一个随机数给申请者,申请者用口令加密该
27、随机数给验证者。请者,申请者用口令加密该随机数给验证者。该方式解决了以上所有三个问题,但增加了一该方式解决了以上所有三个问题,但增加了一次通信次通信 口令的维护和管理措施 v1.对付口令外部泄露的措施对付口令外部泄露的措施 v(1)对用户或者系统管理员进行教育、培训,)对用户或者系统管理员进行教育、培训,增强他们的安全意识;增强他们的安全意识;v(2)建立严格的组织管理和执行手续;)建立严格的组织管理和执行手续;v(3)确保每个口令只与一个人有关;)确保每个口令只与一个人有关;v(4)确保输入的口令不显示在屏幕上;)确保输入的口令不显示在屏幕上;v(5)使用易记的口令,不要写在纸上;)使用易记
28、的口令,不要写在纸上;v(6)定期改变口令,不要让所有系统都使用相)定期改变口令,不要让所有系统都使用相同的口令同的口令 口令的维护和管理措施v对付口令猜测的措施对付口令猜测的措施 v(1)严格限制非法登录的次数;)严格限制非法登录的次数;v(2)口令验证中插入实时延时)口令验证中插入实时延时v(3)规定口令的最小长度,如至少)规定口令的最小长度,如至少68位;位;v(4)防止使用与用户特征相关的口令)防止使用与用户特征相关的口令v(5)确保口令定期改变;)确保口令定期改变;v(6)更改或取消系统安装时的默认口令)更改或取消系统安装时的默认口令v(7)使用随机数产生器产生的口令会比用户自)使用
29、随机数产生器产生的口令会比用户自己选择的口令更难猜测己选择的口令更难猜测 目录v3.1 消息认证消息认证v3.2 身份认证身份认证v3.3 口令机制口令机制v3.4 零知识证明零知识证明v3.5 其他身份认证机制其他身份认证机制v3.6 单点登录技术单点登录技术零知识证明v零知识证明(零知识证明(Zero knowledge proof)技术可)技术可使信息的拥有者无须泄露任何信息就能向验证使信息的拥有者无须泄露任何信息就能向验证者或者任何第三方证明它拥有该信息。者或者任何第三方证明它拥有该信息。v即当示证者即当示证者P掌握某些秘密信息,掌握某些秘密信息,P以某种有效以某种有效的数学方法,使验
30、证者的数学方法,使验证者V确信确信P知道该秘密,但知道该秘密,但P又不需要泄露该秘密给又不需要泄露该秘密给V 零知识证明DCBA零知识证明的实现v 此洞穴问题可转换成数学问题此洞穴问题可转换成数学问题,设设p和和q是两个大素数,是两个大素数,n=pq。假设用户。假设用户A知道知道n的因子,如果用户的因子,如果用户A想向用户想向用户B证明他知道证明他知道n的因子,但却不想向的因子,但却不想向B泄露泄露n的因子,则的因子,则用户用户A和用户和用户B可以执行下面的零知识证明协议。可以执行下面的零知识证明协议。v 1)用户)用户B随机选取一个大整数随机选取一个大整数x,计算,计算yx4 mod n。用
31、。用户户B将计算结果将计算结果y告诉用户告诉用户A。v 2)用户)用户A计算计算zy1/2 mod n,并将结果,并将结果z告诉用户告诉用户B。v 3)用户)用户B验证验证zx2 mod n是否成立。是否成立。v 4)上述协议重复多次,若用户)上述协议重复多次,若用户A每次都能正确地计算每次都能正确地计算y1/2 mod n,则用户,则用户B就可以相信用户就可以相信用户A知道知道n的因子的因子p和和q。目录v3.1 消息认证消息认证v3.2 身份认证身份认证v3.3 口令机制口令机制v3.4 零知识证明零知识证明v3.5 其他身份认证机制其他身份认证机制v3.6 单点登录技术单点登录技术其他身
32、份认证的机制 v一次性口令一次性口令OTP(One Time Password)是变)是变动的口令,其变动来源于产出口令的运算因子动的口令,其变动来源于产出口令的运算因子是变化的是变化的 如如Lamport提出的基于散列链的一次性口令提出的基于散列链的一次性口令v基于地址的机制基于地址的机制 v基于设备的机制基于设备的机制 v 基于个人特征的机制基于个人特征的机制 目录v3.1 消息认证消息认证v3.2 身份认证身份认证v3.3 口令机制口令机制v3.4 零知识证明零知识证明v3.5 其他身份认证机制其他身份认证机制v3.6 单点登录技术单点登录技术单点登录v单点登录(单点登录(Single
33、Sign On),简称),简称SSO,是,是指用户只需向网络进行一次身份认证,以后再指用户只需向网络进行一次身份认证,以后再无需另外验证身份,便可访问所有被授权的网无需另外验证身份,便可访问所有被授权的网络资源络资源 v单点登录的好处单点登录的好处(1)方便用户的使用)方便用户的使用(2)更合理有效的管理用户)更合理有效的管理用户(3)提高了系统的整体安全性)提高了系统的整体安全性 单点登录系统的分类 v经纪人模型(经纪人模型(Broker-Based SSO)v代理模型代理模型(Agent-Based SSO)v网关模型(网关模型(Gateway-Based SSO)单点登录系统的一般实现技
34、术 v 单点登录的技术实现机制:当用户第一次访问应用系统单点登录的技术实现机制:当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭效验,如果通过效验,应该返回给用户一个认证的凭证证Ticket;用户再访问别的应用的时候,就会将这个;用户再访问别的应用的时候,就会将这个Ticket带上,作为自己认证的凭据带上,作为自己认证的凭据 v 所有应用系统共享一个身份认证系统;所有应用系统共享一个身
35、份认证系统;v 所有应用系统能够识别和提取所有应用系统能够识别和提取Ticket信息;信息;v 应用系统能够识别已经登录过的用户,能自动判断当前应用系统能够识别已经登录过的用户,能自动判断当前用户是否登录过,从而完成单点登录的功能。用户是否登录过,从而完成单点登录的功能。单点登录的实例v微软的微软的Passport技术技术vMIT的的Kerberos认证协议认证协议vOASIS的的SAML标准标准Kerberos认证协议 vKerberos协议的主要特点协议的主要特点v1)采用对称密码体制,而未采用公钥密码体制,)采用对称密码体制,而未采用公钥密码体制,Kerberos与网络上的每个实体(用户
36、和应用服与网络上的每个实体(用户和应用服务器)共享一个不同的密钥,是否知道该密钥务器)共享一个不同的密钥,是否知道该密钥便是身份的证明;便是身份的证明;v2)为客户机)为客户机/服务器应用程序提供身份认证服务,服务器应用程序提供身份认证服务,而不能被浏览器而不能被浏览器/服务器程序采用;服务器程序采用;v3)具有可伸缩性,能够支持大数量的用户和服)具有可伸缩性,能够支持大数量的用户和服务器进行双向认证。务器进行双向认证。Kerberos数据库Kerberos用户(C)认证服务器(AS)票据许可服务器(TGS)应用服务器(V)Kerberos认证模型Kerberos共享密钥和认证初步方案 共享用
37、户口令KC共享对称密钥KV用户(C)应用服务器(V)认证服务器(AS)IDC,IDVEKc(Ticket)用户(C)应用服务器(V)认证服务器(AS)IDC,Ticket。图3.24 Kerberos共享密钥初步方案图3.25 Kerberos认证初步方案引入TGSv这样就完全解决了应用服务器这样就完全解决了应用服务器V认证用户的问题,认证用户的问题,但不能实现单点登录。但不能实现单点登录。v引入票据许可服务器引入票据许可服务器TGS(Ticket-Granting Server),让认证服务器),让认证服务器AS 并不直接向用户发并不直接向用户发放访问应用服务器的票据(服务许可票据),放访问
38、应用服务器的票据(服务许可票据),而是由而是由 TGS向用户发放。用户在向用户发放。用户在AS处认证成功处认证成功后,后,AS发放一张票据许可票据发放一张票据许可票据Tickettgs给用户,给用户,票据许可票据相当于购票许可证。票据许可票据相当于购票许可证。引入TGS后Kerberos共享密钥方案 共享用户口令KC共享对称密钥KV用户(C)应用服务器(V)票据许可服务器(TGS)认证服务器(AS)共享对称密钥Ktgs引入TGS后Kerberos的认证方案IDC,IDtgs用户(C)应用服务器(V)票据许可服务器(TGS)认证服务器(AS)TickettgsEKc(Tickettgs)Tick
39、etvIDC|Ticketv引入会话密钥v但图中但图中TGS与用户之间没有共享任何密钥,因与用户之间没有共享任何密钥,因此此TGS无法对发送给用户的无法对发送给用户的TicketV加密,这导加密,这导致攻击者可以截获票据,然后将票据重放给致攻击者可以截获票据,然后将票据重放给V以以冒充用户骗取服务。冒充用户骗取服务。v为此,为此,Kerberos引入了会话密钥,由引入了会话密钥,由AS为用户为用户与与TGS之间生成一会话密钥之间生成一会话密钥Kc,tgs,将这个密钥,将这个密钥与与Tickettgs一起用一起用Kc加密后分发给用户,同时将加密后分发给用户,同时将这个密钥放在这个密钥放在Tick
40、ettgs里分发给里分发给TGS,(Tickettgs就是包含就是包含Kc,tgs的的Tickettgs,Tickettgs=EKtgsKc,tgs,IDC,ADC,IDtgs)。这里,)。这里,AS起到了起到了为用户和为用户和TGS分发对称密钥的作用。分发对称密钥的作用。引入会话密钥后Kerberos认证方案IDC,IDtgs用户(C)应用服务器(V)票据许可服务器(TGS)认证服务器(AS)EKc(Kc,tgs,Tickettgs)EKc,tgs(Ticketv)Ticketv Tickettgs(含Kc,tgs)Kerberos认证模型的最终方案 IDC,IDtgs用户(C)应用服务器(
41、V)票据许可服务器(TGS)认证服务器(AS)EKc(Kc,tgs,Tickettgs)EKc,tgs(KC,V,Ticketv)Ticketv(含Kc,v)|EKc,vIDC|ADC|TS5EKc,v(TS5+1)Tickettgs(含Kc,tgs)Kerberos认证过程总结v在认证过程中,总共使用了在认证过程中,总共使用了5个对称密钥,分个对称密钥,分别是别是Kc、Ktgs、Kv、Kc,tgs、Kc,v,其中,其中2个会话密个会话密钥每次都是由钥每次都是由AS或或TGS临时生成的,这样每次临时生成的,这样每次使用的密钥都不同,防止了对票据的重放。使用的密钥都不同,防止了对票据的重放。v实
42、际上,实际上,Kerberos为防止票据重放,还在传为防止票据重放,还在传输的消息中和票据中每次都加入了时间戳。输的消息中和票据中每次都加入了时间戳。v用户登录后的整个过程仅使用一张票据许可用户登录后的整个过程仅使用一张票据许可票据,而每请求一次服务需使用一张服务许可票据,而每请求一次服务需使用一张服务许可票据票据 SAML标准 vSAML即安全断言标记语言,英文全称是即安全断言标记语言,英文全称是Security Assertion Markup Language。它是。它是一种基于一种基于XML语言的,用于在不同的安全域语言的,用于在不同的安全域(Security domain)之间传输认
43、证和授权信息)之间传输认证和授权信息的框架。的框架。vSAML的出现大大简化了的出现大大简化了SSO,并被,并被OASIS(Organization for the Advancement of Structured Information Standards,结构化信,结构化信息标准推进组织)批准为息标准推进组织)批准为SSO的执行标准的执行标准 提示vSAML所能做的只是在服务器之间传递诸如所能做的只是在服务器之间传递诸如“某某个用户已经登录了个用户已经登录了”这样的信息(断言),因这样的信息(断言),因此此SAML并不是一个完整的身份认证方案(这有并不是一个完整的身份认证方案(这有别于别
44、于Kerberos),),SAML也不是一个认证权威也不是一个认证权威机构,它根本不能对用户进行认证,只是能传机构,它根本不能对用户进行认证,只是能传输认证信息。输认证信息。v为了在这些不同类的网站之间交换认证信息,为了在这些不同类的网站之间交换认证信息,就必须使认证信息有一套标准的格式,这样不就必须使认证信息有一套标准的格式,这样不同的网站才都能识别,而且这些认证信息的传同的网站才都能识别,而且这些认证信息的传输和交换必须要考虑安全性输和交换必须要考虑安全性 SAML中的基本概念 vSAML认为认证信息是关于主体(认为认证信息是关于主体(Subject)的)的一组断言(一组断言(Assert
45、ions)。其中的主体是在某)。其中的主体是在某一认证域中有唯一标识的实体,如用户一认证域中有唯一标识的实体,如用户 vSAML框架的核心是框架的核心是断言断言,断言是由,断言是由SAML权威权威发出的一组数据,该数据可以看作发出的一组数据,该数据可以看作SAML权威对权威对某个主体进行认证的动作,或者是关于某个主某个主体进行认证的动作,或者是关于某个主体的属性信息,还可以是主体为了访问某个服体的属性信息,还可以是主体为了访问某个服务而向权威发出申请后得到的授权决定。务而向权威发出申请后得到的授权决定。SAML规范中的三种断言 v 属性断言(属性断言(Attribute Assertions)
46、:负责装):负责装载主体属性信息的断言,如主体的载主体属性信息的断言,如主体的ID、地址等、地址等信息。信息。v 认证断言(认证断言(Authentication Assertions):):负责装载主体被成功认证信息的断言,如用户负责装载主体被成功认证信息的断言,如用户A已通过认证。已通过认证。v 授权决定断言(授权决定断言(Authorization Decision Assertions):用来装载授权决定信息的断言,):用来装载授权决定信息的断言,如授权用户如授权用户A访问除邮件服务以外的所有资源访问除邮件服务以外的所有资源 SAML的各部分及其关系配置配置(SAML协议、绑定和断言如
47、何支持一个特定的应用)协议、绑定和断言如何支持一个特定的应用)绑定绑定(定义(定义SAML请求如何映射到具体的消息交换之类的传输协议请求如何映射到具体的消息交换之类的传输协议协议协议(处理断言的请求(处理断言的请求/应答方式)应答方式)断言(认证、属性和授权信息)断言(认证、属性和授权信息)SAML认证过程Subject(主体)服务提供方(信任方)服务提供方2(信任方2)认证提供方(断言方)1 请求凭证2 返回凭证3 服务请求+凭证6 响应请求 4 SAML 请求 5 SAML 断言 SAML认证过程v 主体(主体(Subject)向)向 IDP 请求凭证(方式是提交用户请求凭证(方式是提交用
48、户名名/密码);密码);v IDP(认证提供方)通过验证主体提供的信息,来确(认证提供方)通过验证主体提供的信息,来确定是否提供凭证给主体;定是否提供凭证给主体;v 假如主体的验证信息正确,他将获取由假如主体的验证信息正确,他将获取由IDP提供的凭提供的凭证,然后将凭证和服务请求一起提交给信任方证,然后将凭证和服务请求一起提交给信任方SP;v SP接收到主体的凭证,它在提供服务之前必须验证接收到主体的凭证,它在提供服务之前必须验证次凭证。于是,它产生了一个次凭证。于是,它产生了一个 SAML请求,要求请求,要求IDP对对凭证断言;凭证断言;v 凭证是凭证是 IDP 产生的,它当然知道凭证的内容
49、,于是产生的,它当然知道凭证的内容,于是它回应一个它回应一个SAML断言给断言给SP;v SP信任信任IDP的的SAML 断言,它会根据断言结果确定是断言,它会根据断言结果确定是否为主体提供服务否为主体提供服务 SAML的安全机制 vSAML定义了一个定义了一个XML 签名(签名(XML Signature)元素以标识认证中心。该元素可以包含一个带元素以标识认证中心。该元素可以包含一个带有公钥、到期日和使用策略的有公钥、到期日和使用策略的 X.509证书。证书。vSAML 要求在传输断言和消息时使用要求在传输断言和消息时使用 SSL 加密,加密,以专门防止断言被拦截。以专门防止断言被拦截。vS
50、AML 提供了数字签名机制,该机制使断言具提供了数字签名机制,该机制使断言具有有效时间范围,以防止断言以后被重播有有效时间范围,以防止断言以后被重播 习题v 1.确定用户身的份称为确定用户身的份称为()v A.身份认证身份认证B.访问控制访问控制C.授权授权D.审计审计v 2.下列哪项技术不能对付重放攻击下列哪项技术不能对付重放攻击()v A.线路加密线路加密B.一次性口令机制一次性口令机制v C.挑战挑战应答机制应答机制D.往认证消息中添加随机数往认证消息中添加随机数v 3.有些网站的用户登录界面要求用户输入用户名、密码的同时,还有些网站的用户登录界面要求用户输入用户名、密码的同时,还要输入