2024/9/16电子科技大学电子科技大学 计算机科学与工程学院计算机科学与工程学院 计算系统与网络安全Computer System and Network SecurityComputer System and Network Security2024/9/16X.509认证协议Kerberos认证协议第7章 协议安全技术(认证协议)身份认证技术回顾2024/9/16X.509认证协议Kerberos认证协议第7章 协议安全技术(认证协议)身份认证技术回顾2024/9/16回顾:身份认证l身份认证的定义:l声称者向验证者出示自己的身份的证明过程l证实客户的真实身份与其所声称的身份是否相符的过程l身份认证又叫身份鉴别、实体认证、身份识别l认证目的: 使别的成员(验证者)获得对声称者所声称的事实的信任身份认证是获得系统服务所必须的第一道关卡2024/9/16回顾:身份认证(续)l身份认证可以分为本地和远程两类l本地:实体在本地环境的初始化鉴别(就是说,作为实体个人,和设备物理接触,不和网络中的其他设备通信)l远程:连接远程设备、实体和环境的实体鉴别l实体鉴别可以是单向的也可以是双向的。
l 单向认证是指通信双方中只有一方向另一方进行鉴别l 双向认证是指通信双方相互进行鉴别2024/9/16回顾:身份认证(续)l身份认证系统的组成:l认证服务器l认证系统用户端软件l认证设备l认证协议示证者可信第三方验证者APAPAP攻击者2024/9/16回顾:身份认证(续)l常见的协议lPAPlCHAPlKerberoslX.5092024/9/16口令认证协议PAPlPAP:Password Authentication Protocoll 用于用户向PPP(Point-to Point Protocol )服务器证明自己的身份l仅在链路建立初期进行认证,一旦完成认证,以后即不再进行认证2024/9/16口令认证协议PAP(续)Authentication-Request Messages(Send Until Response)Authentication-Response MessageClientServerUsernames and PasswordsAre Sent in the ClearPAP的两次消息交换2024/9/16口令认证协议PAP(续)C023表示PAPCode 1 Authenticate-Request 2 Authenticate-Ack 3 Authenticate-Nak Identifier: one octet 唯一标识消息 Length: two octets 包含Code, Identifier, Length and Data fields 的长度Data: 具体格式取决于Code取值PPP中PAP的协议格式2024/9/16口令认证协议PAP(续)Authenticate-Request Code=2:Authenticate-Ack Code=3:Authenticate-Nak PPP中PAP的协议格式2024/9/16口令认证协议PAP :总结lPAP采用两次消息交换完成认证过程Authentication-Request Messages(Send Until Response)Authentication-Response MessageClientServerUsernames and PasswordsAre Sent in the Clear2024/9/16挑战-应答认证协议CHAPlCHAP: Challenge Handshake Authentication Protocoll用于用户与PPP服务器之间的认证l在链路建立初期进行认证l与PAP不同,以后可以再次进行认证2024/9/16挑战-应答认证协议CHAP(续)CHAP AuthenticationChallenge MessageResponse MessageHash (Challenge Message + Secret)ClientServerServer computes hash of challenge message plus secretIf equals the response message, authentication is successfulResponse MessageSuccess or failuresecret secret CHAP的三次消息交互2024/9/16挑战-应答认证协议CHAP(续)C223: Challenge-Handshake Authentication Protocol Algorithm :0-4 unused (reserved)5 MD5 [3] CHAP协议格式2024/9/16挑战-应答认证协议CHAP(续)Data:取决于Code的内容Code :1 Challenge2 Response 3 Success 4 Failure CHAP协议格式2024/9/16挑战-应答认证协议CHAP(续)Value:对于Challenge,其值为一随机数对于Response:是哈希函数运算结果Code :1 Challenge2 Response Name:系统名用户查找“Secrete”CHAP协议格式2024/9/16挑战-应答认证协议CHAP(续)Message:取决于具体实现,一般为可读字符Code :3 Success 4 Failure CHAP协议格式2024/9/16挑战-应答认证协议CHAP:总结CHAP AuthenticationChallenge MessageResponse MessageHash (Challenge Message + Secret)ClientServerServer computes hash of challenge message plus secretIf equals the response message, authentication is successfulResponse MessageSuccess or failuresecret secret 2024/9/16X.509认证协议Kerberos认证协议第7章 协议安全技术(认证协议)身份认证技术回顾2024/9/16l是美国麻省理工学院(是美国麻省理工学院(MIT)开发的一种身份鉴)开发的一种身份鉴别服务。
别服务 l“Kerberos”的本意是希腊神话中守护地狱之门的本意是希腊神话中守护地狱之门的守护者的守护者 lKerberos提供了一个集中式的认证服务器结构,提供了一个集中式的认证服务器结构,认证服务器的功能是实现用户与其访问的服务器认证服务器的功能是实现用户与其访问的服务器间的相互鉴别间的相互鉴别 lKerberos建立的是一个实现身份认证的框架结构建立的是一个实现身份认证的框架结构 l其实现采用的是对称密钥加密技术,而未采用公其实现采用的是对称密钥加密技术,而未采用公开密钥加密开密钥加密 l公开发布的公开发布的Kerberos版本包括版本版本包括版本4和版本和版本5 Kerberos2024/9/16Kerberos设计目标l安全性安全性–能够有效防止攻击者假扮成另一个合法的授权用户能够有效防止攻击者假扮成另一个合法的授权用户l可靠性可靠性–分布式服务器体系结构,提供相互备份分布式服务器体系结构,提供相互备份l对用户透明性对用户透明性l可伸缩可伸缩–能够支持大数量的客户和服务器能够支持大数量的客户和服务器2024/9/16l基本思路:基本思路:–使用一个(或一组)独立的使用一个(或一组)独立的认证服务器认证服务器((AS —Authentication Server),来为网络中的),来为网络中的用户(用户(C))提供身份认证服务;提供身份认证服务; –认证服务器认证服务器 (AS),用户口令由,用户口令由 AS 保存在数据库中;保存在数据库中;–AS 与每个与每个服务器(服务器(V))共享一个惟一共享一个惟一保密密钥(保密密钥(Kv))(已被安全分发)。
已被安全分发)l会话过程会话过程::Kerberos设计思路(1) C AS: IDC || PC || IDv(2) AS C: Ticket(3) C V : IDC || Ticketl其中: Ticket = EKv[IDC || ADC || IDv]2024/9/16l会话过程会话过程::Kerberos设计思路(续)Ticket = EKv[IDC , ADC , IDv]CASV (1) IDC , PC , IDvTicket IDC , TicketIDC:用户C的标识PC :用户口令IDv:服务器标识ADC:用户网络地址搜索数据库看用户是否合法如果合法,验证用户口令是否正确如果口令正确,检查是否有权限访问服务器V用与AS共享密钥解密票据检查票据中的用户标识与网络地址是否与用户发送的标识及其地址相同如果相同,票据有效,认证通过用户认证服务器应用服务器2024/9/16Kerberos设计思路(续)电影院我要买票你的电影票这是我的电影票电影院售票处观众2024/9/16Kerberos设计思路(续)电影院我要买票,这是我的信用卡密码你的电影票这是我的电影票电影院售票处观众问题之一:信用卡问题问题:如何买票答案:出示信用卡卡号和密码2024/9/16Kerberos设计思路(续)电影院你的电影票这是我的电影票电影院售票处这是我的电影票这是我的电影票观众问题之二:票的有效期问题我要买票,这是我的信用卡密码2024/9/16Kerberos设计思路(续)电影院甲你的电影票这是我的电影票电影院售票处电影院乙这是我的电影票???观众问题之三:多个电影院问题我要买票,这是我的信用卡密码2024/9/16Kerberos设计思路(续)上述协议的问题:(1)口令明文传送(2)票据的有效性(多次使用)(3)访问多个服务器则需多次申请票据(即口令多次使用)如何解决上述协议问题?2024/9/16l问题:问题:–用户希望输入口令的次数最少。
用户希望输入口令的次数最少–口令以明文传送会被窃听口令以明文传送会被窃听l解决办法解决办法– 票据重用(票据重用(ticket reusable)– 引入票据许可服务器(引入票据许可服务器(TGS - ticket-granting server))l用于向用户分发服务器的访问票据;用于向用户分发服务器的访问票据;l认证服务器认证服务器 AS 并不直接向客户发放访问应用服务器并不直接向客户发放访问应用服务器的票据,而是由的票据,而是由 TGS 服务器来向客户发放服务器来向客户发放Kerberos设计思路(续)2024/9/16Kerberos设计思路(续)电影院售票处电影院乙购票许可证这是我的购票许可证你的电影票这是我的电影票许可证部门观众我要买票,这是我的信用卡密码问题:解决了重复使用信用卡问题,但是其他两个问题没有解决引入了许可证可信问题2024/9/16l两种票据两种票据–票据许可票据(票据许可票据(Ticket granting ticket))l客户访问客户访问 TGS 服务器需要提供的票据,目的是为了服务器需要提供的票据,目的是为了申请某一个应用服务器的申请某一个应用服务器的 “服务许可票据服务许可票据”;;l票据许可票据由票据许可票据由 AS 发放;发放;l用用 Tickettgs 表示访问表示访问 TGS 服务器的票据;服务器的票据;lTickettgs 在用户登录时向在用户登录时向 AS 申请一次,可多次重复申请一次,可多次重复使用;使用;–服务许可票据(服务许可票据(Service granting ticket))l是客户时需要提供的票据;是客户时需要提供的票据;l用用 TicketV 表示访问应用服务器表示访问应用服务器 V 的票据。
的票据Kerberos的票据2024/9/16Kerberos设计思路(续)电影院售票处电影院共享信用卡信息:不用向许可证部门初始信用卡密码初始电影票共享“购票许可证”信息:不用出示信用卡及密码共享“电影票” 信息:不用多次购买许可证许可证部门观众购买电影票最后一个问题:票的有效期问题电影院电影院解决方法:时间2024/9/16Kerberos设计思路(续)票据许可服务器(TGS)服务器(V)具有有效期的Ticket共享对称密钥Ktgs共享对称密钥Kv认证服务器(AS)用户(C)共享用户口令Kc购买具有有效期的Ticket2024/9/16Kerberos设计思路(续)票据许可服务器(TGS)服务器(V)认证服务器(AS)用户(C)我想看电影EKc{Ektgs{购票许可证}}Ektgs{购票许可证}Ekv{票}Ekv{票}共享对称密钥Ktgs共享对称密钥Kv共享用户口令KcKcKcKtgsKvKtgsKv2024/9/16Kerberos设计思路(续)票据许可服务器(TGS)服务器(V)认证服务器(AS)用户(C)我想看电影EKc{Ektgs{购票许可证,时间限制}}Ektgs{购票许可证,时间限制}Ekv{票,时间限制}Ekv{票,时间限制}共享对称密钥Ktgs共享对称密钥Kv共享用户口令Kc可能被盗用KcKcKtgsKvKtgsKv2024/9/16Kerberos设计思路(续)票据许可服务器(TGS)服务器(V)认证服务器(AS)用户(C)我想看电影EKc{Kc,tgs, Ektgs{含Kc,tgs的购票许可证,时间限制}}Ektgs{含Kc,tgs的购票许可证,时间限制}EKc,tgs{Ekv{票,时间限制}}Ekv{票,时间限制}共享对称密钥Ktgs共享对称密钥Kv共享用户口令KcKc,tgs问题:单向认证KcKcKtgsKvKtgsKv2024/9/16Kerberos设计思路(续)票据许可服务器(TGS)服务器(V)认证服务器(AS)用户(C)我想看电影EKc{Kc,tgs, Ektgs{含Kc,tgs的购票许可证,时间限制}}Ektgs{含Kc,tgs的购票许可证,时间限制}EKc,tgs{Kc,v,Ekv{含Kc,v的票,时间限制}}Ekv{含Kc,v的票,时间限制}共享对称密钥Ktgs共享对称密钥Kv共享用户口令KcKc,tgsKc,vEkc,v{时间限制}KcKcKtgsKvKtgsKv2024/9/16Kerberos V4协议描述:第一阶段票据许可服务器(TGS)服务器(V)认证服务器(AS)用户(C)IDC, IDtgs,TS1EKc{Kc,tgs,IDtgs,TS2, LT2, Tickettgs}Tickettgs=EKtgs{KC,tgs, IDC, ADC, IDtgs, TS2, LT2}KcKcKtgsKvKtgsKvKc,tgs2024/9/16Kerberos V4协议描述:第二阶段票据许可服务器(TGS)服务器(V)认证服务器(AS)用户(C)IDV,Tickettgs, AUCEKC,tgs{KC,V,IDV,TS4, TicketV}Tickettgs=EKtgs{KC,tgs, IDC, ADC, IDtgs, TS2, LT2}TicketV=EKV{KC,V, IDC, ADC, IDV, TS4, LT4}AUC=EKC,tgs{IDC, ADC, TS3}KcKcKtgsKvKtgsKvKc,tgsKc,v2024/9/16Kerberos V4协议描述:第三阶段票据许可服务器(TGS)服务器(V)认证服务器(AS)用户(C)TicketV, AUCEKC,V{TS5+1}Tickettgs=EKtgs{KC,tgs, IDC, ADC, IDtgs, TS2, LT2}TicketV=EKV{KC,V, IDC, ADC, IDV, TS4, LT4}AUC=EKc,v{IDC, ADC, TS5}KcKcKtgsKvKtgsKvKc,tgsKc,v2024/9/16Kerberos V4Kerberos V4协议描述:共享密钥及会话密钥协议描述:共享密钥及会话密钥票据许可服务器(TGS)服务器(V)Kc认证服务器(AS)用户(C)Kc,tgsKC,VKcKcKtgsKvKtgsKvKc,tgsKc,v2024/9/16Kerberos设计思路票据许可服务器(TGS)服务器(V)认证服务器(AS)用户(C)IDC, IDtgs,TS1EKc{Kc,tgs,IDtgs,TS2, LT2, Tickettgs}IDV,Tickettgs, AUCEKc,tgs{Kc,V,IDV,TS4, TicketV}TicketV, AU’CEKC,V{TS5+1}Tickettgs=EKtgs{KC,tgs, IDC, ADC, IDtgs, TS2, LT2}TicketV=EKV{KC,V, IDC, ADC, IDV, TS4, LT4}AUC=EKC,tgs{IDC, ADC, TS3}KcKcKtgsKvKtgsKvKc,tgsKc,vAU‘C=EKcv{IDC, ADC, TS5}2024/9/16Kerberos(V4)协议交互过程2024/9/16l依赖性依赖性–加密系统的依赖性(加密系统的依赖性(DES)、对)、对 IP 协议的依赖性和对协议的依赖性和对时间依赖性。
时间依赖性l字节顺序:没有遵循标准字节顺序:没有遵循标准l票据有效期票据有效期–有效期最小为有效期最小为5分钟,最大约为分钟,最大约为21小时小时, 往往不能满足往往不能满足要求要求l认证转发能力认证转发能力–不允许签发给一个用户的鉴别证书转发给其他工作站不允许签发给一个用户的鉴别证书转发给其他工作站或其他客户使用或其他客户使用Kerberos(V4)协议的缺陷2024/9/16Kerberos(V4)协议的缺陷(续)l领域间的鉴别领域间的鉴别–管理起来困难管理起来困难l加密操作缺陷加密操作缺陷–非标准形式的非标准形式的 DES 加密(传播密码分组链接加密(传播密码分组链接 PCBC)方式,易受攻击)方式,易受攻击l会话密钥会话密钥–存在着攻击者重放会话报文进行攻击的可能存在着攻击者重放会话报文进行攻击的可能l口令攻击口令攻击–未对口令提供额外的保护,攻击者有机会进行口令未对口令提供额外的保护,攻击者有机会进行口令攻击攻击2024/9/16l加密系统加密系统–支持使用任何加密技术支持使用任何加密技术l通信协议通信协议–IP 协议外,还提供了对其他协议的支持协议外,还提供了对其他协议的支持。
l报文字节顺序报文字节顺序–采用抽象语法表示(采用抽象语法表示(ASN.1)和基本编码规则()和基本编码规则(BER)来)来进行规范进行规范Kerberos(V5)协议的改进2024/9/16Kerberos(V5)协议的改进(续)l票据的有效期票据的有效期–允许任意大小的有效期,有效期定义为一个开始时允许任意大小的有效期,有效期定义为一个开始时间和结束时间间和结束时间l鉴别转发能力鉴别转发能力l更有效的方法来解决领域间的认证问题更有效的方法来解决领域间的认证问题l口令攻击口令攻击–提供了一种预鉴别(提供了一种预鉴别(preauthentication)机制,使)机制,使口令攻击更加困难口令攻击更加困难2024/9/16Kerberos 领域(realm)l构成:一个完整的构成:一个完整的 Kerberos 环境包括一个环境包括一个 Kerberos 服务器,一组工作站和一组应用服务器服务器,一组工作站和一组应用服务器lKerberos 服务器数据库中拥有所有参与用户的服务器数据库中拥有所有参与用户的 UID 和口令散列表和口令散列表lKerberos服务器必须与每一个服务器之间共享一个服务器必须与每一个服务器之间共享一个保密密钥。
保密密钥l所有用户均在所有用户均在 Kerberos 服务器上注册服务器上注册l所有服务器均在所有服务器均在 Kerberos 服务器上注册服务器上注册l领域的划分是根据网络的管理边界来划定的领域的划分是根据网络的管理边界来划定的2024/9/16Kerberos 领域间的互通l跨领域的服务访问跨领域的服务访问–一个用户可能需要访问另一个一个用户可能需要访问另一个 Kerberos 领域中应领域中应用服务器;用服务器;–一个应用服务器也可以向其他领域中的客户提供网一个应用服务器也可以向其他领域中的客户提供网络服务l领域间互通的前提领域间互通的前提– 支持不同领域之间进行用户身份鉴别的机制;支持不同领域之间进行用户身份鉴别的机制;– 互通领域中的互通领域中的 Kerberos 服务器之间必须共享一个服务器之间必须共享一个密钥;密钥;– 同时两个同时两个 Kerberos 服务器也必须进行相互注册服务器也必须进行相互注册2024/9/16远程服务访问的认证过程2024/9/16X.509认证协议Kerberos认证协议第7章 协议安全技术(认证协议)身份认证技术回顾2024/9/16l由由ITU-T制定的制定的 lX.509是是ITU-T的的X.500(目录服务)系列建议(目录服务)系列建议中的一部分中的一部分 lX.500是一套有关目录服务的建议,而是一套有关目录服务的建议,而X.509定定义了目录服务中向用户提供认证服务的框架。
义了目录服务中向用户提供认证服务的框架 lX.509协议的实现基于公开密钥加密算法和数字协议的实现基于公开密钥加密算法和数字签名技术签名技术 X.509认证2024/9/16l证书由可信证书权威机构(证书由可信证书权威机构(CA - Certficate Authority)创建)创建–用户或用户或 CA 将证书存放在目录服务器中;将证书存放在目录服务器中;–表示法:证书机构表示法:证书机构 Y 颁发给用户颁发给用户 X 的证书表示为的证书表示为 Y<>lCA<> 表示表示 CA 颁发给用户颁发给用户 A 的证书lCA 用其私有密钥对证书进行了签名用其私有密钥对证书进行了签名–用户可用用户可用 CA 的公开密钥验证证书的有效性;的公开密钥验证证书的有效性;–任何拥有任何拥有 CA 公开密钥的用户都可以从证书中提取被该证书公开密钥的用户都可以从证书中提取被该证书认证的用户的公开密钥;认证的用户的公开密钥;–除了除了CA外,任何用户都无法伪造证书或篡改证书的内容;外,任何用户都无法伪造证书或篡改证书的内容;–由于证书是不可伪造的,可将证书存放数据库(即目录服务)由于证书是不可伪造的,可将证书存放数据库(即目录服务)中,而无需进行特殊的保护。
中,而无需进行特殊的保护 X.509认证协议中的证书2024/9/16X.509认证协议中的证书格式2024/9/16X.509认证协议中的证书的获得l通信双方通信双方 A 和和 B 如何获得对方的证书如何获得对方的证书–小型网络中,共同信任同一个小型网络中,共同信任同一个 CAl通过访问公共目录服务获取对方的证书,或直接传递通过访问公共目录服务获取对方的证书,或直接传递–大型网络,大型网络, 多个多个 CA,层次化管理层次化管理lCA 之间交换公开密钥(即交换证书)之间交换公开密钥(即交换证书)2024/9/16l撤销的情况:撤销的情况:–证书过期;证书过期; –在证书过期之前申请将在证书过期之前申请将其作废l例如,用户密钥被泄例如,用户密钥被泄露,露,CA的密钥被泄露,的密钥被泄露,或者用户不再使用某或者用户不再使用某一个一个CA颁发的证书等颁发的证书等 X.509认证协议中的证书的吊销2024/9/16X.509认证协议的消息交互过程l单向认证单向认证 AliceBob可选2024/9/16X.509认证协议中的证书格式l双向认证双向认证 AliceBob2024/9/16X.509认证协议中的证书格式(续)l三向认证三向认证 AliceBob2024/9/16X.509认证协议V3的功能扩展l密钥和策略信息密钥和策略信息–这类扩展用于指示有关主体和颁发者的附加信息和这类扩展用于指示有关主体和颁发者的附加信息和与证书相关的策略。
与证书相关的策略l证书主体和颁发者的属性证书主体和颁发者的属性–这类扩展支持可选主体名字或颁发者名字这类扩展支持可选主体名字或颁发者名字l证书路径约束证书路径约束–这类扩展字段用于在签发给这类扩展字段用于在签发给CA的证书中包含一定的的证书中包含一定的约束 2024/9/16教材与参考书l教材:教材:–张世永,网络安全原理与应用,科学出版社,张世永,网络安全原理与应用,科学出版社,2003 l参考书参考书–阙喜戎阙喜戎 等等 编著,信息安全原理及应用,清华大学出版社编著,信息安全原理及应用,清华大学出版社–Christopher M.King, Curitis E.Dalton, T. Ertem Osmanoglu(常(常晓波等译)晓波等译). 安全体系结构的设计、部署与操作,清华大学出版安全体系结构的设计、部署与操作,清华大学出版社,社,2003(Christopher M.King, et al, Security Architecture, design, deployment & Operations )–William Stallings,密码编码学与网络安全-原理与实践(第三,密码编码学与网络安全-原理与实践(第三版),电子工业出版社,版),电子工业出版社,2004–Stephen Northcutt,, 深入剖析网络边界安全,机械工业出版社,深入剖析网络边界安全,机械工业出版社,2003–冯登国,计算机通信网络安全,冯登国,计算机通信网络安全,2001–Bruce Schneier, Applied Cryptography, Protocols, algorithms, and source code in C (2nd Edition)( 应用密码学应用密码学 -协议、算法与-协议、算法与C源程序,源程序, 吴世忠、祝世雄、张文政等译吴世忠、祝世雄、张文政等译)–蔡皖东,网络与信息安全,西北工业大学出版社,蔡皖东,网络与信息安全,西北工业大学出版社,20042024/9/16Any Question? Q&A。