翻译:中国科学技术大学信息安全专业老师 第三部分分布式系统 第10章分布式系统安全 如果存在一个单一的策略,一个单一的系统管理,一个单一的安全执行系统,则计算机 安全就容易实现。但是,正如你已经注意到的,即使在相当有利的环境下,直截了当地实现 计算机安全也是不实际的。当然,集中式的安全要比分布式的情况好得多 在这一章里,我们使用“分布式系统”(异构或者联合系统)作为通过网络连接的计算 机集合( collection,集合,聚集:收集,汇集:【ST】类集)的模型。分布式系统的各个组 成部分可能分布在不同的组织机构里,在不同的职权管理下,且使用不同的安全策略进行管 理。在一个真正的分布式系统中,用户并不想知道服务的位置,也不想知道他们正在使用的 对象所在的地点。 本章内容 了解在分布式系统中发生的基本安全问题 说明在过去几年来分布式系统安全发生的变化,未来要达到的目标。 考察在分布式系统的哪一个系统层次上实现安全机制最合适 理解当前引入的分布式系统安全机制的承诺和缺陷。 10.1概述 无论何时,你改变了计算机的运行环境,都必须对已经建立的安全机制的适用性进行重 新评估。当你把计算机从集中式系统移植到一个分布式系统的时候,对于安全来说,存在 个很明显的冲击。当检查分布式系统安全的时候,有必要理解所有的在集中式系统中内含的 安全假设,这些假设是实现集中式系统安全的基础。 为了了解这些改变会怎样影响你,让我们看一下通过口令的身份认证。当用户在一个终 端上工作,并且这个终端固定地连接到一台主机上的时候,口令是非常有用的。在这种情况 下,你可以有正当的理由相信,在终端和主机之间的连接是安全的,并且不可能窃听口令, 更改或插入消息,或者被别人接管一次会话。而在分布式系统中,对于通信链路安全这样基 本的假设几乎是不成立的。然而,口令认证仍然是分布式系统最常用的认证机制 十几年前,分布式系统安全主要关注的是认证机制。今天,你可以用防火墙来保护你的 内部网络的周边环境,用安全体系来保护对分布式对象的访问。从分布式系统的特征来看, 些更深一层的问题出现了:对用户权限的授予或者撤销、信任机制、安全性和其他的分布 式系统的特性(如可靠性和可用性)之间的相互作用。为了综述分布式系统安全的现状,我 们从研究分布式系统中的一般安全策略和安全实施开始 10.1.1安全策略 在分布式系统中,当用户访问一个对象的时候,他们不需要登录到被访问对象所在的结 点上。这就出现了一些问题 第1页共16页 创建时间:2002/223152100
翻译:中国科学技术大学信息安全专业老师 第 1 页 共 16 页 创建时间:2002/12/23 15:21:00 第三部分 分布式系统 第 10 章 分布式系统安全 如果存在一个单一的策略,一个单一的系统管理,一个单一的安全执行系统,则计算机 安全就容易实现。但是,正如你已经注意到的,即使在相当有利的环境下,直截了当地实现 计算机安全也是不实际的。当然,集中式的安全要比分布式的情况好得多。 在这一章里,我们使用“分布式系统”(异构或者联合系统)作为通过网络连接的计算 机集合(collection,集合,聚集;收集,汇集;【ST】类集)的模型。分布式系统的各个组 成部分可能分布在不同的组织机构里,在不同的职权管理下,且使用不同的安全策略进行管 理。在一个真正的分布式系统中,用户并不想知道服务的位置,也不想知道他们正在使用的 对象所在的地点。 本章内容 ·了解在分布式系统中发生的基本安全问题。 ·说明在过去几年来分布式系统安全发生的变化,未来要达到的目标。 ·考察在分布式系统的哪一个系统层次上实现安全机制最合适。 ·理解当前引入的分布式系统安全机制的承诺和缺陷。 10.1 概 述 无论何时,你改变了计算机的运行环境,都必须对已经建立的安全机制的适用性进行重 新评估。当你把计算机从集中式系统移植到一个分布式系统的时候,对于安全来说,存在一 个很明显的冲击。当检查分布式系统安全的时候,有必要理解所有的在集中式系统中内含的 安全假设,这些假设是实现集中式系统安全的基础。 为了了解这些改变会怎样影响你,让我们看一下通过口令的身份认证。当用户在一个终 端上工作,并且这个终端固定地连接到一台主机上的时候,口令是非常有用的。在这种情况 下,你可以有正当的理由相信,在终端和主机之间的连接是安全的,并且不可能窃听口令, 更改或插入消息,或者被别人接管一次会话。而在分布式系统中,对于通信链路安全这样基 本的假设几乎是不成立的。然而,口令认证仍然是分布式系统最常用的认证机制。 十几年前,分布式系统安全主要关注的是认证机制。今天,你可以用防火墙来保护你的 内部网络的周边环境,用安全体系来保护对分布式对象的访问。从分布式系统的特征来看, 一些更深一层的问题出现了:对用户权限的授予或者撤销、信任机制、安全性和其他的分布 式系统的特性(如可靠性和可用性)之间的相互作用。为了综述分布式系统安全的现状,我 们从研究分布式系统中的一般安全策略和安全实施开始。 10.1.1 安全策略 在分布式系统中,当用户访问一个对象的时候,他们不需要登录到被访问对象所在的结 点上。这就出现了一些问题:
翻译:中国科学技术大学信息安全专业老师 你怎样认证用户? 什么是访问控制判决的基础? 为了回答这两个问题,可以有三种选择。用户认证和特殊访问控制可以基于 用户身份 用户操作来源的网络地址 用户正在使用的分布式服务,即访问操作 Unⅸx在像印或者 telnet远程访问服务中采取了第一种选择。fp程序在两个Unⅸ系统 之间传输文件。 telnet程序创建一个远程的虚拟终端。这两种程序都提示用户输入用户名和 口令。 rlogin程序的工作过程类似于 telnet;它自动传送当前用户的用户名,仅仅提示用户 输入口令。在所有这三种情况下,可以使用正常的Unⅸx访问控制,但是网络通信引入了新 的脆弱性。在这一章,我们将讨论一些更加有效的认证方案 如果访问控制的决策是基于用户身份的,那么用户的身份和访问权限是怎样联系在一起 传播呢?在Unix环境下,你必须决定对于用户(比如,root)的特权可以做什么,以及来 自远程结点的程序(例如,一个SUID程序)的特权和所有权可以做什么?在多级安全的情 况下,你可能发现在分布式系统的结点之间,这些标签方案表示的意思是不相同的。因此橙 皮书( Orange book)和红皮书( Red book)给出了在结点之间数据传输的策略,这将维护 安全标签的不同粒度( granularities) 在有些糟糕的情况下,分布式系统中的访问操作可能呈现出新的含义( meaning)。想象 如下一种情况,当你发送一个读远程服务器上数据的请求时,服务器将把数据写到连接到你 的系统的输出通道上。服务器应该用哪种访问规则,哪些用来读访问或者哪些用来写访问 你可以决定来自于系统中的某些结点的用户不必再次进行认证。在Unix中,你可以在 rhosts文件中详细说明这些可信任的主机。你也可以定义可信任用户,他们不必提供口令且 允许使用rsh(远程shel)命令。这些特点提供了一个非常简单的单站式签到( single sign on) 系统,但是它严酷地依赖于消息认证的质量和初始化时允许用户进入一个可信任域的主体认 证,如同8.7.1节示例说明的那样。在 Windows ni中,这种信任关系提供了一种更完善的 方式,它使得在可信任域中的用户可以访问信任域中的任何资源(见7.54节)。 10.1.2授权 在分布式系统中,受控调用照字面上的意义( literally,,字面上(简直))呈现出新的特性 ( dimension,尺寸(量纲,维数)。一个用户可以在本地结点登录,然后在远程结点上执行一 个程序。为了获得对远程结点上资源的访问,这个程序将需要相关的访问权限。在典型情况 下( typically,代表性地,作为特色地),程序将被赋予( endow)用户的访问权限,然后以 这个权限在远程结点上运行。这个过程称为授权( delegation,授权:代理)。 在远程结点上的程序,现在以用户授予的所有访问权限运行。在一个分布式系统中,用 户对于把他所有的权限给予到一个没有什么控制权的结点上,可能会感觉到不太舒服。如果 远程结点上存在弱保护,攻击者就可能攫取用户的访问权限,并且为了一些非法的目的使用 这些权限。因此,你可能更喜欢这样的系统,在系统中用户自己可以控制那种他们授予的权 限,责任机制能够用来鉴别访问权限的授权使用 对于流行的服务来说,你可以创建代理用户( proxy user)来处理远程服务请求。你首 先检査远程用户是否被授予了( entitle,给与权利(命名),(常与to连用)授权)运行这种服 务的权限,然后让代理执行请求的动作,且用代理自己的权限而不是远程用户授予的权限运 10.1.3安全执行 第2页共16页 创建时间:2002/223152100
翻译:中国科学技术大学信息安全专业老师 第 2 页 共 16 页 创建时间:2002/12/23 15:21:00 ·你怎样认证用户? ·什么是访问控制判决的基础? 为了回答这两个问题,可以有三种选择。用户认证和特殊访问控制可以基于: ·用户身份; ·用户操作来源的网络地址; ·用户正在使用的分布式服务,即访问操作。 Unix 在像 ftp 或者 telnet 远程访问服务中采取了第一种选择。ftp 程序在两个 Unix 系统 之间传输文件。telnet 程序创建一个远程的虚拟终端。这两种程序都提示用户输入用户名和 口令。rlogin 程序的工作过程类似于 telnet;它自动传送当前用户的用户名,仅仅提示用户 输入口令。在所有这三种情况下,可以使用正常的 Unix 访问控制,但是网络通信引入了新 的脆弱性。在这一章,我们将讨论一些更加有效的认证方案。 如果访问控制的决策是基于用户身份的,那么用户的身份和访问权限是怎样联系在一起 传播呢?在 Unix 环境下,你必须决定对于用户(比如,root)的特权可以做什么,以及来 自远程结点的程序(例如,一个 SUID 程序)的特权和所有权可以做什么?在多级安全的情 况下,你可能发现在分布式系统的结点之间,这些标签方案表示的意思是不相同的。因此橙 皮书(Orange Book)和红皮书(Red Book)给出了在结点之间数据传输的策略,这将维护 安全标签的不同粒度(granularities)。 在有些糟糕的情况下,分布式系统中的访问操作可能呈现出新的含义(meaning)。想象 如下一种情况,当你发送一个读远程服务器上数据的请求时,服务器将把数据写到连接到你 的系统的输出通道上。服务器应该用哪种访问规则,哪些用来读访问或者哪些用来写访问? 你可以决定来自于系统中的某些结点的用户不必再次进行认证。在 Unix 中,你可以在 rhosts 文件中详细说明这些可信任的主机。你也可以定义可信任用户,他们不必提供口令且 允许使用 rsh(远程 shell)命令。这些特点提供了一个非常简单的单站式签到(single sign on) 系统,但是它严酷地依赖于消息认证的质量和初始化时允许用户进入一个可信任域的主体认 证,如同 8.7.1 节示例说明的那样。在 Windows NT 中,这种信任关系提供了一种更完善的 方式,它使得在可信任域中的用户可以访问信任域中的任何资源(见 7.5.4 节)。 10.1.2 授权 在分布式系统中,受控调用照字面上的意义(literally,字面上(简直))呈现出新的特性 (dimension,尺寸(量纲,维数))。一个用户可以在本地结点登录,然后在远程结点上执行一 个程序。为了获得对远程结点上资源的访问,这个程序将需要相关的访问权限。在典型情况 下(typically,代表性地, 作为特色地),程序将被赋予(endow)用户的访问权限,然后以 这个权限在远程结点上运行。这个过程称为授权(delegation,授权;代理)。 在远程结点上的程序,现在以用户授予的所有访问权限运行。在一个分布式系统中,用 户对于把他所有的权限给予到一个没有什么控制权的结点上,可能会感觉到不太舒服。如果 远程结点上存在弱保护,攻击者就可能攫取用户的访问权限,并且为了一些非法的目的使用 这些权限。因此,你可能更喜欢这样的系统,在系统中用户自己可以控制那种他们授予的权 限,责任机制能够用来鉴别访问权限的授权使用。 对于流行的服务来说,你可以创建代理用户(proxy user)来处理远程服务请求。你首 先检查远程用户是否被授予了(entitle,给与权利(命名),(常与 to 连用)授权)运行这种服 务的权限,然后让代理执行请求的动作,且用代理自己的权限而不是远程用户授予的权限运 行。 10.1.3 安全执行
翻译:中国科学技术大学信息安全专业老师 旦你解决( sort out)了你的策略,你就已经决定了如何执行他们。必须回答下面的显 而易见的问题: ·在哪儿认证一个用户 ·在哪儿做访问控制的决策? 这些“哪儿”可以用两种方式来解释。你可以考虑在1.4.4节提到的第五个设计决策:决 定是否执行集中安全或者局部安全。在第一种情况下,你可以采用像 Kerberos(1022节) 样的认证服务器( authentication servers)和通行票授予服务器( ticket-granting servers), 或者安装一个防火墙来控制对内部网络的访问(134节)。在第二种方式中,各个结点的操 作系统负责安全执行,比如数字设备公司ODEC)的分布式系统安全体系结构(10.22节)。另 外一个可选方案是,你可以从1.42节提出的第二种设计决策中获得启示,然后决定在最合 适的层次上实现分布式系统的安全。我们在104节中讨论这个问题。 102认证 不经过任何保护的口令在网络上传输是一个非常明显的脆弱性。发掘这种脆弱性可以容 易地自动实现。口令嗅探器 sniffers是一个网络程序,它可以侦听通信流,从中提取出包含 口令的包和其他与安全相关的信息。因此。作为走向分布式系统安全的第一步,我们应该考 察更好的认证方案。下面介绍的这两种方案是集中安全实施方案和局部安全实施方案的实 例 10.2.1 Kerberos认证 Kerberos系统是美国麻省理工学院MT在二十世纪80年代的雅典娜( Athena)项目中 开发出来的。雅典娜为MT的校园学生提供了计算资源,但是它的范围已经超出了MT的 校园范围,包括了一些附加的管理功能,比如财会功能。由 Kerberos声明的危险和威胁, 如在文献【103】中描述的,有: 这种环境对敏感数据或者高度风险(risk,危险;风险)的操作是不适合的,如银行事 务处理、机密的政府数据、学生成绩、对危险实验的控制等等。这些危险主要是不能控制非 授权的当事人使用资源,对系统或用户资源完整性的破坏,大规模地侵犯个人隐私,比如偶 然地完全浏览个人文件。 因此 Kerberos在其后被广泛地接受了。有几个工业标准采用了 Kerberos作为分布式系 统的认证系统,值得注意地是作为RFC151080发布。 Kerberos在分布式系统中认证需要 服务的客户( client)。认证是围绕通行票( ticket,票(标签,证明书);票证,入场券)和集中 式安全服务器的概念建立的。术语“主体”(“ principals”)代表客户(用户)和参与网络通 信的服务器 Kerberos认证服务器(KAS):认证登录的主体,然后发给其通行票。在一般情况 下,通行票只在一次登录会话中有效,可以让主体从通行票授予服务器获得其他的通行票 认证服务器有时也被称为“密钥分发中心”(KDC) 通行票授予服务器(TGSs):向主体发布通行票,用来访问要求认证的网络服务 Kerberos来自于 Needham- -Schroeder密钥交换协议(12.3.2节)。像DES这样的对称密 码系统常常被用来加密数据。用户名和口令用来认证用户,但是口令不能通过网络进行传输 因特网RFC1510给出了 Kerberos版本5的一个详细规范说明,包括当一个协议运行不能继 续时发出的出错信息等。下面的简单描述省略了在 Kerberos消息中的一些数据域,并且仅 仅处理了协议运行成功地完成时的情况。将使用下面列出的约定: 第3页共16页 创建时间:2002/223152100
翻译:中国科学技术大学信息安全专业老师 第 3 页 共 16 页 创建时间:2002/12/23 15:21:00 一旦你解决(sort out)了你的策略,你就已经决定了如何执行他们。必须回答下面的显 而易见的问题: ·在哪儿认证一个用户? ·在哪儿做访问控制的决策? 这些“哪儿”可以用两种方式来解释。你可以考虑在 1.4.4 节提到的第五个设计决策;决 定是否执行集中安全或者局部安全。在第一种情况下,你可以采用像 Kerberos(10.2.2 节) 一样的认证服务器(authentication servers)和通行票授予服务器(ticket-granting servers), 或者安装一个防火墙来控制对内部网络的访问(13.4 节)。在第二种方式中,各个结点的操 作系统负责安全执行,比如数字设备公司(DEC)的分布式系统安全体系结构(10.2.2 节)。另 外一个可选方案是,你可以从 1.4.2 节提出的第二种设计决策中获得启示,然后决定在最合 适的层次上实现分布式系统的安全。我们在 10.4 节中讨论这个问题。 10.2 认 证 不经过任何保护的口令在网络上传输是一个非常明显的脆弱性。发掘这种脆弱性可以容 易地自动实现。口令嗅探器 sniffers 是一个网络程序,它可以侦听通信流,从中提取出包含 口令的包和其他与安全相关的信息。因此。作为走向分布式系统安全的第一步,我们应该考 察更好的认证方案。下面介绍的这两种方案是集中安全实施方案和局部安全实施方案的实 例。 10.2.1 Kerberos 认证 Kerberos 系统是美国麻省理工学院 MIT 在二十世纪 80 年代的雅典娜(Athena)项目中 开发出来的。雅典娜为 MIT 的校园学生提供了计算资源,但是它的范围已经超出了 MIT 的 校园范围,包括了一些附加的管理功能,比如财会功能。由 Kerberos 声明的危险和威胁, 如在文献【103】中描述的,有: 这种环境对敏感数据或者高度风险(risk,危险;风险)的操作是不适合的,如银行事 务处理、机密的政府数据、学生成绩、对危险实验的控制等等。这些危险主要是不能控制非 授权的当事人使用资源,对系统或用户资源完整性的破坏,大规模地侵犯个人隐私,比如偶 然地完全浏览个人文件。 因此 Kerberos 在其后被广泛地接受了。有几个工业标准采用了 Kerberos 作为分布式系 统的认证系统,值得注意地是作为 RFC 1510[80] 发布。Kerberos 在分布式系统中认证需要 服务的客户(client)。认证是围绕通行票(ticket,票(标签,证明书);票证, 入场券)和集中 式安全服务器的概念建立的。术语“主体”(“principals”)代表客户(用户)和参与网络通 信的服务器。 ·Kerberos 认证服务器(KAS):认证登录的主体,然后发给其通行票。在一般情况 下,通行票只在一次登录会话中有效,可以让主体从通行票授予服务器获得其他的通行票。 认证服务器有时也被称为“密钥分发中心”(KDC)。 ·通行票授予服务器(TGSs):向主体发布通行票,用来访问要求认证的网络服务。 Kerberos 来自于 Needham-Schroeder 密钥交换协议(12.3.2 节)。像 DES 这样的对称密 码系统常常被用来加密数据。用户名和口令用来认证用户,但是口令不能通过网络进行传输。 因特网 RFC 1510 给出了 Kerberos 版本 5 的一个详细规范说明,包括当一个协议运行不能继 续时发出的出错信息等。下面的简单描述省略了在 Kerberos 消息中的一些数据域,并且仅 仅处理了协议运行成功地完成时的情况。将使用下面列出的约定:
翻译:中国科学技术大学信息安全专业老师 用户A的秘密( cryptographic,【修】密码,加密)密钥, 它是从用户A的口令通过单向算法计算得到的:KAS有一个K的备份 由TGS和KAS共享的秘密密钥 K 由服务器B和TGsS共享的秘密密钥 由KAS创建,在A和TGS之间使用的会话密钥 由TGS创建,在A和B之间使用的会话密钥 ek(x) 使用密钥K加密后的数据包X ounces(随机难题),用于阻止重放攻击的序列号 通行票的截止日期(使用期限) T,T2,T3,T:通行票或者认证者的创建时间 A对TGS使用的通行票,由KAS创建 Ticket,b A对B使用的通行票,由TGS创建 图10.1 Kerberos认证协议 图101表明了当客户( client)A要访问服务器B,在A和B之间建立相互认证时必须 发生的步骤: 消息(1)A→KAS A,IGS,L, N 消息(2)KAS→A eka(TGs,Ka/gs Tickera, /gs, L1 N1) 消息(3)A→TGs A,B, L,, N2, Ticket, g, eKargs (A, 3) 消息(4)TGS→ A eK、(B,Kab, Ticket,L2,N2) 消息(5)A→B kab(a, t), Ticket. b 消息(6)B→A kab(l4) 为了开始一次会话,用户A在本地主机上登录,他输入用户名和口令,然后向通行票 授予服务器请求服务。包含A的标识、TGS的名字、请求的通行票的截止日期和序列号 ( nonce)的消息(1),然后以明文的形式发送到KAS。KAS生成会话密钥K.ts和通行票 第4页共16页 创建时间:2002/223152100
翻译:中国科学技术大学信息安全专业老师 第 4 页 共 16 页 创建时间:2002/12/23 15:21:00 Ka : 用户 A 的秘密(cryptographic,【修】密码,加密)密钥, 它是从用户 A 的口令通过单向算法计算得到的;KAS 有一个 Ka 的备份 Ktgs : 由 TGS 和 KAS 共享的秘密密钥 Kb : 由服务器 B 和 TGS 共享的秘密密钥 Ka,tgs : 由 KAS 创建,在 A 和 TGS 之间使用的会话密钥 Ka,b : 由 TGS 创建,在 A 和 B 之间使用的会话密钥 eK(X ) : 使用密钥 K 加密后的数据包 X N1, N2: nounces(随机难题),用于阻止重放攻击的序列号 L1, L2: 通行票的截止日期(使用期限) T1,T2 ,T3 ,T4 : 通行票或者认证者的创建时间 Ticketa,tgs: A 对 TGS 使用的通行票,由 KAS 创建 Ticketa,b : A 对 B 使用的通行票,由 TGS 创建 图 10.1 Kerberos 认证协议 图 10.1 表明了当客户(client)A 要访问服务器 B,在 A 和 B 之间建立相互认证时必须 发生的步骤: 消息(1)A → KAS A ,TGS , L1 , N1 消息(2)KAS → A ( , , , , ) TGS K , Ticket , L1 N1 eKa a tgs a tgs 消息(3)A → TGS A , B , L2, N2 ,Ticketa,tgs, ( , ) , A T3 eKa tgs 消息(4)TGS → A ( , , , , ) , B K , Ticket , L2 N2 eKa tgs a b a b 消息(5)A → B ( , ) , A T4 eKa b ,Ticketa,b 消息(6)B → A ( ) , T4 eKa b 为了开始一次会话,用户 A 在本地主机上登录,他输入用户名和口令,然后向通行票 授予服务器请求服务。包含 A 的标识、TGS 的名字、请求的通行票的截止日期和序列号 (nonce)的消息(1),然后以明文的形式发送到 KAS。KAS 生成会话密钥 Ka,tgs 和通行票
翻译:中国科学技术大学信息安全专业老师 (Ka,/gs,A, 1,L) 使用用户A的秘密密钥Ka对会话密钥、通行票、和序列号N进行加密,而且在消息(2) 中返回给A。在A的主机端,K。可以从口令重建,并得到会话密钥Kag客户A然后创 建一个认证符( authenticator,,鉴别码)Ka,g(A,7),而且在消息(3)中把这个认证符、 通行票、要求的截止日期L2、下一步的序列号N2和服务器的名字都发送到TGS。TGS用 密钥K来解密通行票,并且与本地时钟比较验证通行票的有效性。然后,他用从通行票 中得到的密钥K。检查认证符。如果所有的验证都成功了,TGS生成会话密钥K和通行 票 Ticket=ek,(Kab, A, T2, L) 在消息(4)中,会话密钥K,和通行票 Ticket被送到A,使用A和TGS共享的会话密 钥加密。客户A存储该加密的通行票,解密新的会话密钥Kab。在消息(5)中,A要求B 有一个认证会话。这个消息包含 Ticket和一个由会话密钥kab构造的认证符。B解密通 行票,检查它的有效性,提取出会话密钥Kab。下一步,B用密钥Ka,b解密出认证符。在 成功的解密和验证时间有效的情况下,B在消息(6)中用接收到的最后时间标记给出应答, 采用会话密钥进行加密。A解密时间标记,将它同自己保存的备份T进行比较。如果相等, 则B就被认证了 撤销 如何撤销主体的访问权限呢?KAS和TGS的系统管理员必须更新他们的数据库,这样 访问权限对主体来说不再有效。这个访问权限对下一次的会话无效,即这个主体再次登录系 统,或者从TGS请求一个通行票时。而这个主体已经拥有的通行票在超时以前都有效。例 如,KAS通行票通常有大约一天的生存期。这是另外一个 TOCTTOU问题的例子 现在你不得不面临一个在方便和安全两个方面平衡的问题。如果TGS给出一个失效期 太迟的通行票,主体则不需要频繁访问TGS,同时TGS可以偶尔离线,对用户方面也没有 什么影响。然而,访问权限的撤销将有一个较长的时延影响。如果TGS提供的通行票具有 个较短的生命期,主体必须更有规律地更新他们的通行票,安全服务器的可用性对于系统 性能来说变得越来越重要了 邻域 Kerberos认证服务器是 Kerberos领域的核心。一个 Kerberos领域( realm),就是一个单 一的管理范围,控制着对一个服务器集合的访问。为了准备和运行 Kerberos,主体必须向 第5页共16页 创建时间:2002/223152100
翻译:中国科学技术大学信息安全专业老师 第 5 页 共 16 页 创建时间:2002/12/23 15:21:00 ( , , , ) , K , A T1 L1 Ticketa tgs = eKtgs a tgs 。 使用用户 A 的秘密密钥 Ka 对会话密钥、通行票、和序列号 N1 进行加密,而且在消息(2) 中返回给 A。在 A 的主机端, Ka 可以从口令重建,并得到会话密钥 Ka,tgs 。客户 A 然后创 建一个认证符(authenticator,鉴别码) ( , ) Ka,tgs A T3 ,而且在消息(3)中把这个认证符、 通行票、要求的截止日期 L2 、下一步的序列号 N2 和服务器的名字都发送到 TGS。TGS 用 密钥 Ktgs 来解密通行票,并且与本地时钟比较验证通行票的有效性。然后,他用从通行票 中得到的密钥 Ka,tgs 检查认证符。如果所有的验证都成功了,TGS 生成会话密钥 Ka,b 和通行 票 ( , , , ) , K , A T2 L2 Ticketa b = eKb a b 。 在消息(4)中,会话密钥 Ka,b 和通行票 Ticketa,b 被送到 A,使用 A 和 TGS 共享的会话密 钥加密。客户 A 存储该加密的通行票,解密新的会话密钥 Ka,b 。在消息(5)中,A 要求 B 有一个认证会话。这个消息包含 Ticketa,b 和一个由会话密钥 Ka,b 构造的认证符。B 解密通 行票,检查它的有效性,提取出会话密钥 Ka,b 。下一步,B 用密钥 Ka,b 解密出认证符。在 成功的解密和验证时间有效的情况下,B 在消息(6)中用接收到的最后时间标记给出应答, 采用会话密钥进行加密。A 解密时间标记,将它同自己保存的备份 T4 进行比较。如果相等, 则 B 就被认证了。 撤销 如何撤销主体的访问权限呢?KAS 和 TGS 的系统管理员必须更新他们的数据库,这样, 访问权限对主体来说不再有效。这个访问权限对下一次的会话无效,即这个主体再次登录系 统,或者从 TGS 请求一个通行票时。而这个主体已经拥有的通行票在超时以前都有效。例 如,KAS 通行票通常有大约一天的生存期。这是另外一个 TOCTTOU 问题的例子。 现在你不得不面临一个在方便和安全两个方面平衡的问题。如果 TGS 给出一个失效期 太迟的通行票,主体则不需要频繁访问 TGS,同时 TGS 可以偶尔离线,对用户方面也没有 什么影响。然而,访问权限的撤销将有一个较长的时延影响。如果 TGS 提供的通行票具有 一个较短的生命期,主体必须更有规律地更新他们的通行票,安全服务器的可用性对于系统 性能来说变得越来越重要了。 邻域 Kerberos 认证服务器是 Kerberos 领域的核心。一个 Kerberos 领域(realm),就是一个单 一的管理范围,控制着对一个服务器集合的访问。为了准备和运行 Kerberos,主体必须向