1 / 54

第四章 认证应用

第四章 认证应用. 四川大学 曾雪梅 zengxm@scu.edu.cn. 主要内容. Kerberos X.509 认证服务. 4.1 KERBEROS. 希腊神话中 , 一只长有多个头的狗,是地狱入口的守护者. 4.1 KERBEROS (2). 用户希望访问服务器上的服务 . 几类威胁存在 : 用户伪装成其他用户进行操作 . 用户可以改变网络工作站的网络地址以冒充另一个工作站 . 用户窃取交换信息并使用重放攻击 . 使用假冒服务器从而骗得用户的机密信息。. 集中式认证服务器. 集中认证. AIX. linux. Solaris.

gladys
Download Presentation

第四章 认证应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第四章 认证应用 四川大学 曾雪梅 zengxm@scu.edu.cn

  2. 主要内容 • Kerberos • X.509 认证服务

  3. 4.1 KERBEROS 希腊神话中,一只长有多个头的狗,是地狱入口的守护者

  4. 4.1 KERBEROS(2) • 用户希望访问服务器上的服务. • 几类威胁存在: • 用户伪装成其他用户进行操作. • 用户可以改变网络工作站的网络地址以冒充另一个工作站. • 用户窃取交换信息并使用重放攻击. • 使用假冒服务器从而骗得用户的机密信息。

  5. 集中式认证服务器 集中认证 AIX linux Solaris Intranet WINDOWS

  6. 4.1 KERBEROS(3) • 对服务器验证用户及用户验证服务器提供集中的身份验证服务. • 仅依赖于常规加密,没有使用公钥加密 • 两个版本: version 4 and 5 • 版本4 使用 DES

  7. 4.1.1 推动因素 • 个人计算机安全管理: p74 • 分布式结构的安全管理使用方法: • 依赖于每个独立的客户工作站;每个服务器实施基于用户ID的安全策略 • 客户机向服务器认证自己,相信客户机的自身身份验证 • 用户向每个被调用的服务请求证明身份,而且要求服务器向客户证明身份 • 在一个分布式的Client/Server体系机构中,引入一个可信任的第三方(Kerberos服务器),让其提供认证服务。

  8. 4.1.1 推动因素(2) • 安全:使网络窃听者不能获得必要的信息来伪装成另一客户。 • 可靠:对所有以Kerberos进行访问控制的服务来说,客户无法通过Kerberos服务器的认证就意味着无法获得所需要的服务。 • 透明:用户除了需要输入一个口令外,不必知道鉴别过程的存在以及细节。 • 可伸缩:可支持大量用户和服务器。(采用模块化、Client/Server结构)

  9. Kerberos 应用 • Kerberos 第5版 是Windows 2000 中最基本的安全协议,是默认的用户和服务器验证提供者。 • Linux 、Unix 类系统也都支持Kerberos协议。 • 作为网络环境的双向鉴别协议。

  10. 4.1.2 Kerberos版本4 • 简单的认证对话 对付伪装身份威胁的方法: • 由每个服务器在客户/服务器模式中,能确认申请服务的客户机身份 • 使用身份验证服务器(authentication server),它管理所有用户的密钥。AS和每台服务器共享唯一的密钥。

  11. 三个概念 • 鉴别服务器(AS):它将所有用户的口令集中存放在本地数据库中;而且它与每一个应用服务器共享一个唯一的密钥。(密钥通过物理的或其他安全的方式分发) • 客户端(C):代替用户与服务器进行信息交换。 • 票据(Ticket) :身份或权利的证明。 Ticket 由 AS 以数据报形式发放给 C

  12. 1.简单的认证对话(2) • Terms: • C = 客户机 • AS = 认证服务器 • V =服务器 • IDc = C上用户的标识符 • IDv = V的标识符 • Pc = C上用户的口令 • ADc = C的网络地址 • Kv = AS和V共享的加密密钥 • TS =时间戳 • || = 连接

  13. 共享密钥Kv 1.简单的认证对话(3) 4.查找数据库,检查是否提供了与该用户ID相符的口令,是否允许访问服务器V 3. 用户ID、服务器ID、用户口令 认证服务器AS 5. Ticket 客户机C 1. 希望向服务器V请求服务 6.IDC、Ticket 2. 请用户输入口令 服务器V Ticket = EKv[IDc|| ADc || IDv] 7.解密Ticket,验证用户ID

  14. 1.简单的认证对话(4) • C AS: IDc ||Pc || IDv • AS  C: Ticket • C  V: IDc || Ticket Ticket = EKv[IDc ||ADc || IDv] • 两个最突出问题: • 用户每次访问一种新服务就需要一个新的票据,导致用户多次输入口令。 • 用明文传递的用户口令会被窃听。

  15. 1.简单的认证对话(5) 解决方案: • 票据授予服务器 (TGS) • 票据授予服务器向已经通过TGS鉴别的用户发放服务Ticket。 • Ticket 重用,设置生命期。

  16. 2. 更加安全的认证对话 Ktgs 用户每次登陆系统 • C AS: IDc || IDtgs • AS  C: EKc[Tickettgs] Tickettgs = EKtgs[IDc ||ADC || IDtgs|| TS1||Lifetime1]票据授予票据 Kv • 访问每种服务 • (3) C  TGS:IDC||IDV||Tickettgs • TGS  C: Ticketv • Ticketv = EKv[IDc||ADC || IDv|| TS2||Lifetime2]服务授予票据 每次服务会话 (5) C  V: IDC|| Ticketv TGS:票据授予服务器(ticket-granting server)

  17. 2. 更加安全的认证对话(3) • 解决的问题: • 每次会话用户只需要输入一次口令;保护了用户口令 • 问题一: • 与票据授予票据的生存期有关 • 如果生存期短  要求用户重复输入口令 • 如果生存期长  更大的机会进行重放攻击 • 对手捕获了服务授予票据并且在票据过期之前使用,对手就能够访问相应的服务 • 问题二: • 要求服务器向用户认证自己

  18. 2. 更加安全的认证对话(4) 解决方案: • 会话密钥(Session Key) • 鉴别码

  19. 3. 版本4 认证对话 认证服务交换:以获得票据授予票据 • C AS: IDc || IDtgs ||TS1 • AS  C: EKc [Kc,tgs|| IDtgs || TS2 || Lifetime2 || Tickettgs] Tickettgs = EKtgs[KC,tgs||IDC||ADC || IDtgs || TS1||Lifetime1] • 票据授予服务交换: 以获得服务授予票据 • (3) C  TGS: IDv ||Tickettgs ||Authenticatorc • TGS  C: EKc,tgs[Kc, v|| IDv || TS4 || Ticketv] • Ticketv = EKv[KC,V||IDC||ADC || IDv || TS4||Lifetime4] • Authenticatorc=EKC,tgs[IDC||ADC||TS3] • 客户/服务器认证交换:以获得服务 • (5) C  V: Ticketv || Authenticatorc • V  C: EKc,v[TS5 +1] • Authenticatorc=EKc,v[IDC||ADC||TS5]

  20. 每当用户登录会话 kerberros (1)请求票据授予票据 认证服务器 (AS) (2)票据+会话密钥 票据授予服 务器(TGS)

  21. 每当用户登录会话 kerberros 请求票据授予票据 认证服务器 (AS) 票据+会话密钥 票据授予服 务器(TGS) (3)请求服务授予票据 (4)票据+会话密钥 每当开始某种类型的服务

  22. kerberros 认证服务器 (AS) 票据授予服 务器(TGS) (5)请求服务 (6)提供服务器鉴别码 每当进行服务会话时 Ticketv = EKv[KC,V||IDC||ADC || IDv|| TS4||Lifetime4]

  23. 2.AS在数据库中验证用户的访问权限,创建票据授予票据和会话密钥。对结果使用来自用户口令的密钥进行加密2.AS在数据库中验证用户的访问权限,创建票据授予票据和会话密钥。对结果使用来自用户口令的密钥进行加密 每当用户登录会话 kerberros 1.用户登录工作站,在主机上请求服务 请求票据授予票据 认证服务器 (AS) 票据+会话密钥 票据授予服 务器(TGS) 请求服务授予票据 票据+会话密钥 4. TGS解密票据和鉴别码,验证请求,然后为所请求的服务器创建票据 每当开始某种类型的服务 3. 工作站提示用户输入口令,使用用户的口令解密到来的消息,然后向TGS发送票据和包含用户名、用户网络地址和时间的鉴别码 请求服务 6. 服务器验证票据和鉴别码是否匹配,然后授予服务访问。如果需要进行相互认证,服务器返回一个鉴别码 提供服务器鉴别码 每当进行服务会话时 5. 工作站向服务器发送票据和鉴别码 Kerberos概括图

  24. 4. Kerberos域和多重Kerberi • Kerberos域的环境要求: • 所有用户注册到Kerberos服务器上,服务器拥有用户的有关信息 • 所有服务器注册到Kerberos服务器上,Kerberos服务器与每个服务器共享保密密钥 • Kerberos提供多域身份鉴别机制,并要求: • 每个互操作的领域的Kerberos服务器都与其它领域的服务器共享保密密钥,这两个Kerberos服务器必须相互注册

  25. 1.为本地TGS请求票据 2.用于访问本地TGS的票据 3.为远程TGS请求票据 4.用于访问远程TGS的票据 信任 7.请求远程服务器 5.为访问远程服务器的票据 6. 远程服务器的票据 请求另一个域中的服务 域A Kerberos 客户机 Kerberos 服务器 域B

  26. 4. Kerberos域和多重Kerberi(3) • CAS : IDC || IDtgs || TS1 (2) ASC : EKc[Kc,tgs || IDtgs || TS2 || Lifetime2 || Tickettgs] (3) CTGS : IDrem || Tickettgs || AuthenticatorC (4) TGSC :Kc,tgs [KC,tgsrem || IDtgsrem || TS4 || Tickettgsrem ] (5) CTGSrem : IDVrem || Tickettgsrem || AuthenticatorC (6) TGSrem C : Kc,tgsrem [KC,Vrem || IDVrem || TSb || TicketVrem ] (7) C  Vrem : TicketVrem || AuthenticatorC

  27. 4.1.3 Kerberos版本5 • Kerberos版本4和版本5的区别 • 加密系统的依赖性 (V.4 DES) • Internet 协议的依赖型 • 消息字节排序 • 票据生命期 • 认证转发 • 域间认证

  28. 4.1.3 Kerberos版本5(2) • 版本4的缺陷 • 双重加密 • PCBC加密 • 会话密钥 • 口令攻击 AS  C: EKc[Kc,tgs|| IDtgs || TS2 || Lifetime2 || Tickettgs]

  29. 4.4 Kerberos加密技术 • 口令到密钥的转化 • 转换步骤 (1)把字符串转换成位串 转换 保存 加密密钥 口令使用7位ASCII码 Kerberos数据库 • S=“abcdefg…” • b[0]=s[0]的第0位 • b[1]=s[0]的第1位 • b[6]=s[0]的第6位 • b[7]=s[1]的第0位

  30. b[0] b[1] … b[54] b[55] b[101] b[100] … b[57] b[56] …….. b[kn] b[kn+1]… b[n-1] b[kn+55] 4.4 Kerberos加密技术 • 转换步骤 (2)将各位以“扇折”的形式对齐各位,将位串长度压缩成56位,然后按位执行异或操作。形成DES输入密钥

  31. 4.4 Kerberos加密技术 (3)采用DES的密钥块链接模式和密钥来加密原始口令

  32. 3. 传播密码块链接模式 4.4 Kerberos加密技术 CBC模式

  33. PCBC模式 (P106)

  34. 4.2 X.509认证服务 • X.500标准的一部分 • X.509定义了一个使用X.500目录向其用户提供认证服务的框架。 • 目录用作公钥证书的存储库. • X.509得到了广泛的应用:S/MIME, IP 安全, SSL/TLS 、SET. • X.509以公钥加密和数字签名为基础。推荐使用RSA算法.

  35. 4.2.1 证书 • X.509的核心是与每个用户关联的公钥证书 • 证书由可信的CA产生,由CA或用户放在目录中 • 目录服务器仅向用户提供证书的地址

  36. 版本 证书序列号 算法 参数 签名算法 标识符 X.509证书结构 版本1 发放者名称 在此之后 在此之前 版本2 有效期 主体名称 算法 参数 密钥 主体公钥 信息 版本3 发放者唯一标识符 主体唯一标识符 扩展 算法 参数 被加密 所有版本 签名

  37. 4.2.1 证书(3) • 标准使用下列符号来定义证书: CA<<A>>=CA{V,SN,AI,CA,TA,A,AP} 其中,Y<<X>>=由认证中心Y发给用户X的证书 Y{I}=Y的符号I,其中包含I及附加于I的加密的hash代码; CA使用其私钥签名证书

  38. 密钥管理——数字证书 认证机构CA 证书 拥有者 H 签署后 的证书 • 证书的本质:公钥,密钥所有者的用户ID,以及由信任的第三方认证机构CA(Certificate Authority)签署的块构成证书 没有签署 的证书: 用户ID、 公钥 摘要 E CA的私钥 签名 接收者 用CA的公钥验证证书

  39. 1. 获取用户证书 • 由 CA产生的证书具有下列特征: • 任何可以访问CA公钥的用户都能够验证已经认证了的用户公钥. • 除了认证中心以外,任何当事人在CA没有检测到证书更改时都不能更改证书. • 一旦B拥有了A的证书,B就能确信用A的公钥加密的消息可以防止窃听,用A的私钥标记的消息是不能被伪造的

  40. A B 1. 获取用户证书(2) X2<<B>> X1<<A>> x2 x1 X1<<X2>> 安全地交换了公钥 X2<<X1>> A使用了一个证书链来获得B的公钥,表示为: X1<<X2>>X2<<B>>

  41. 具有N个元素的证书链表示如下: X1<<X2>>X2<<X3>>……XN<<B>> 链中每个CA对(Xi, Xi+1)都必须为彼此创建证书 • CA层次: • 每个CA的目录项包含 • 两种类型的证书: • 前向证书 • 反向证书

  42. 2. 废除证书 • 废除原因: • 用户的私钥已经泄漏. • 用户不再由这个CA认证. • 假定CA的证书已经泄漏. CA维护一张列表,包含由CA发出的已经撤销但没有过期的证书 接受证书时,必须判断证书是否已经废除

  43. 算法 参数 签名算法 标识符 发放者名称 撤销证书列表 此次更新日期 下次更新日期 用户证书序列号 撤销日期 已撤销 证书 …... 已撤销 证书 用户证书序列号 撤销日期 算法 参数 被加密 签名

  44. 1. A{tA,rA,IDB,sgnData,EKUb[Kab]} A B 4.2.2 认证过程 • 单向认证 • 证实的内容: • 用户A的身份和消息是由A产生的 • 消息是供B使用的 • 消息的完整性和原始性(消息没有多次发送) 时间戳:预防延迟消息传输的攻击 临时值:用于检测重放攻击

  45. 2. 双向认证 证实的内容: • B的身份和应答消息是由B产生的 • 消息是供A使用的 • 应答消息的完整性和原始性 1. A{tA,rA,IDB,sgnData,EKUb[Kab]} A B 2. B{tB,rB,IDA,rA,sgnData,EKUa[Kba]}

  46. 3. 三向认证 最后一条消息从A发往B,包含了临时值rB的签名副本,可以检测重放攻击 1. A{tA,rA,IDB,sgnData,EKUb[Kab]} A B 2. B{tB,rB,IDA,rA,sgnData,EKUa[Kba]} 3. A{rB}

  47. 4.3 公钥基础设施 • PKI(Public Key Infrastructure)是一个用公钥技术来实施和提供安全服务的具有普适性的安全基础设施 • 一个基础设施可视作一个普适性基础,它的目的是,只要遵循需要的原则,不同的实体就可以方便地作用基础设施提供的服务 • 电子通信基础设施(网络)允许不同机器之间为不同的目的交换数据 • 电力供应基础设施可以让各种电力设备获得运行所需要的电压和电流

  48. PKI标准化文档包括X.509、PKIX、PKCS等

  49. 为什么需要PKI?

More Related