
a2b2d509a570f910409f9aa8c280779f.ppt
- Количество слайдов: 84
计算机系统安全 第 5章 身份认证 1
一、认证的基本原理 在现实生活中,我们个人的身份主要是通过各 种证件来确认的,比如:身份证、户口本等。 认证是对网络中的主体进行验证的过程,用户 必须提供他是谁的证明,他是某个雇员,某个 组织的代理、某个软件过程(如交易过程)。 认证( authentication )是证明一个对象的身份 的过程。 与决定把什么特权附加给该身份的授权( authorization )不同。 2
• 问题的提出 –身份欺诈 • 鉴别需求: 某一成员(声称者)提交一 个主体 的身份并声称它是那个主体。 • 鉴别目的: 使别的成员(验证者)获得对声称 者所声称的事实的信任。 3
一、认证的基本原理 通常有三种方法验证主体身份。 1)是只有该主体了解的秘密,如口令、密钥; 2)是主体携带的物品,如智能卡和令牌卡; 3)是只有该主体具有的独一无二的特征或能 力,如指纹、声音、视网膜图或签字等。 单独用一种方法进行认证不充分 4
一个成熟的身份认证系统应该具有以下特征: 1、验证者正确识别对方的概率极大。 2、攻击者伪装以骗取信任的成功率极小。 3、通过重放攻击进行欺骗和伪装的成功率极小。 4、实现身份认证的算法计算量足够小。 5、实现身份认证所需的通信量足够小。 6、秘密参数能够安全存储。 7、对可信第三方的无条件信任。 8、可证明安全性。 5
计算机系统采取的身份认证方法有很多 • 比如口令认证、 • 智能卡认证、 • 基于生物特征的认证、 • 双因素认证、 • 基于源地址的认证、 • 数字证书和安全协议等。 6
身份认证系统架构包含三项主要组成元件: 认证服务器(Authentication Server) 负责进行使用者身份认证的 作,服务器上存放使用者 的私有密钥、认证方式及其他使用者认证的信息。 认 证 系 统 用 户 端 软 件 (Authentication Software) Client 认证系统用户端通常都是需要进行登陆(login)的设备 或系统,在这些设备及系统中必须具备可以与认证服务 器协同运作的认证协定。 认证设备(Authenticator) 7 认证设备是使用者用来产生或计算密码的软硬件设备。
1)口令机制 用户名/口令认证技术:最简单、最普遍的身份识别 技术,如:各类系统的登录等。 口令具有共享秘密的属性,是相互约定的代码,只有 用户和系统知道。例如,用户把他的用户名和口令送 服务器,服务器操作系统鉴别该用户。 口令有时由用户选择,有时由系统分配。通常情况下, 用户先输入某种标志信息,比如用户名和ID号,然后 系统询问用户口令,若口令与用户文件中的相匹配, 用户即可进入访问。 口令有多种,如一次性口令;还有基于时间的口令 8
第 5讲 认证 2)数字证书 这是一种检验用户身份的电子文件,也是企业 现在可以使用的一种 具。这种证书可以授权 购买,提供更强的访问控制,并具有很高的安 全性和可靠性。 非对称体制身份识别的关键是将用户身份与密 钥绑定。CA(Certificate Authority)通过为 用户发放数字证书(Certificate)来证明用户 公钥与用户身份的对应关系。 9
验证者向用户提供一随机数;用户以其私钥KS对随机 数进行签名,将签名和自己的证书提交给验证方;验 证者验证证书的有效性,从证书中获得用户公钥KP, 以KP验证用户签名的随机数。 10
第 5讲 认证 3)智能卡 网络通过用户拥有什么东西来识别的方法,一般是用智 能卡或其它特殊形式的标志,这类标志可以从连接到计 算机上的读出器读出来。访问不但需要口令,也需要使 用物理智能卡。 智能卡技术将成为用户接入和用户身份认证等安全要求 的首选技术。用户将从持有认证执照的可信发行者手里 取得智能卡安全设备,也可从其他公共密钥密码安全方 案发行者那里获得。这样智能卡的读取器必将成为用户 接入和认证安全解决方案的一个关键部分。 11
第 5讲 认证 4)主体特征认证 目前已有的设备包括:视网膜扫描仪、声音验 证设备、手型识别器等。安全性高。 例如:系统中存储了他的指纹,他接入网络时, 就必须在连接到网络的电子指纹机上提供他的 指纹(这就防止他以假的指纹或其它电子信息 欺骗系统),只有指纹相符才允许他访问系统。 更普通的是通过视网膜膜血管分布图来识别, 原理与指纹识别相同,声波纹识别也是商业系 统采用的一种识别方式。 12
第 5讲 认证 用户名/口令具有实现简单的优点,但存在以下安全 缺点: 1、大多数系统的口令是明文传送到验证服务器的, 容易被截获。某些系统在建立一个加密链路后再进行 口令的传输以解决此问题,如配置链路加密机。 2、口令维护的成本较高。为保证安全性,口令应当 经常更换。另外为避免对口令的字典攻击,口令应当 保证一定的长度,并且尽量采用随机的字符。但缺点 是难于记忆。 3、口令容易在输入的时候被攻击者偷窥,而且用户 无法及时发现。 13
5)双因素认证 • 身份认证有三个要素, 所知道的内容:需要使用者记忆身份认证内 容,例如密码和身份证号等。 所拥有的物品:使用者拥有的特殊认证加强 机制,例如智能卡,射频卡,磁卡等物理 设备。 所具备的特征:使用者本身拥有的惟一特征, 例如指纹、人脸、声音等 14
这三个要素都有被攻击或破坏的可能: • 1、用户所知道的内容可能被别人猜出或者被 用户自己忘记; • 2、用户所拥有的物品可能被丢失或被偷盗; • 3、用户所具备的特征是最为安全的因素,但 是实施起来代价昂贵,一般用在顶级安全需求 中。 • 把前两种要素结合起来的身份认证机 制就称为双因素认证。如自动提款机 采取的认证方式就是双因素认证 15
二、基于口令的身份认证 1、安全与不安全的口令 UNIX系统口令密码都是用 8位(新的是 13位)DES算法进 行加密的,即有效密码只有前8位,所以一味靠密码 的长度是不可以的。安全的口令要求: 1) 位数>6位。 2) 大小写字母混合。 3)字母与数字混合。 4) 口令有字母、数字以外的符号。 16
第 5讲 认证 不安全的口令则有如下几种情况: (1)使用用户名(帐号)作为口令。 (2)使用用户名(帐号)的变换形式作为口令。 将用户名颠倒或者加前后缀作为口令,比如说 著名的黑客软件John,如果你的用户名是fool, 那么它在尝试使用fool作为口令之后,还会试 着使用诸如fool 123、loof 123、lofo等作为 口令,只要是你想得到的变换方法,John也会 想得到。 17
(3)使用自己或者亲友的生日作为口令。这种 口令很脆弱,因为这样往往可以得到一个 6位 或者8位的口令,但实际上可能的表达方式只 有100× 12× 31=37200种。 (4)使用常用的英文单词作为口令。这种方法 比前几种方法要安全一些。一般用户选择的英 文单词几乎都落在黑客的字典库里。 (5)使用 5位或 5位以下的字符作为口令。 18
加强口令安全的措施: A、禁止使用缺省口令。 B、定期更换口令。 C、保持口令历史记录,使用户不能循环使用 旧口令。 D、用口令破解程序测试口令。 19
2、口令攻击的种类 计算资源依靠口令的方式来保护的脆弱性: 网络数据流窃听。由于认证信息要通过网络传 递,并且很多认证系统的口令是未经加密的明 文,攻击者通过窃听网络数据,就很容易分辨 出某种特定系统的认证数据,并提取出用户名 和口令。口令被盗也就是用户在这台机器上的 一切信息将全部丧失,并且危及他人信息安全, 计算机只认口令不认人。最常见的是电子邮件 被非法截获。 20
认证信息截取/重放(Record/Replay) 有的系统会将认证信息进 行简单加密后进行传输,如果攻击者无法用第一种方式推算 出密码,可以使用截取/重放方式。攻击者仍可以采用离线方 式对口令密文实施字典攻击; 对付重放的方法有: 1在认证交换中使用一个序数来给每一个消息报文编号 ,仅当 收到的消息序号合法时才接受之; 2使用时间戳 (A接受一个新消息仅当该消息包含一个 A认为是 足够接近 A所知道的时间戳 ); 3询问 /应答方式 (A期望从 B获得一个新消息 ,则先发给 B一 个临时值 ,并要求后续从 B收到的消息包含正确的这个临时 值) 21
第 5讲 认证 字典攻击:由于多数用户习惯使用有意义的单词或数 字作为密码,某些攻击者会使用字典中的单词来尝试 用户的密码。所以大多数系统都建议用户在口令中加 入特殊字符,以增加口令的安全性。 穷举尝试(Brute Force): 这是一种特殊的字典攻击, 它使用字符串的全集作为字典。如果用户的密码较短, 很容易被穷举出来,因而很多系统都建议用户使用长 口令。 窥探: 攻击者利用与被攻击系统接近的机会,安装 监视器或亲自窥探合法用户输入口令的过程,以得到 口令。 22
第 5讲 认证 社交 程: 攻击者冒充合法用户发送邮件或打电话 给管理人员,以骗取用户口令。比如,在终端上发现 如下信息: Please enter your user name to logon: Your password: 这很可能是一个模仿登录信息的特洛伊木马程序,他 会记录口令,然后传给入侵者。 垃圾搜索: 攻击者通过搜索被攻击者的废弃物,得 到与攻击系统有关的信息,如果用户将口令写在纸上 又随便丢弃,则很容易成为垃圾搜索的攻击对象。 23
第 5讲 认证 口令猜中概率公式: P=L • R/S L:口令生命周期 R:进攻者单位时间内猜测不同口令次数 S:所有可能口令的数目。 为降低猜中的概率: 1减少口令使用寿命 ,即提高口令更换的频率 ; 2降低进攻者单位时间内猜测尝试口令的次数 ; 3增加可能口令的数目 ,即提高口令的字符个数。 然而 ,口令的频繁更换增加了用户的负担 ,也为资深入侵者 提供了条件 (为了便于记忆 ,人们往往选择与其个人相关的口 令 ,如某重要的日期 ),口令字符个数的增加也会增加用户的 负担且不会对资深入侵者有更大影响 ,因此 ,手段 2应是较 为有效的防猜中手段。 24
第 5讲 认证 1. 选择很难破译的加密算法 让硬件解密商品不能发挥作用。 2. 控制用户口令的强度(长度、混合、大小写) 3. 掺杂口令 先输入口令,然后口令程序取一个 12 位的随 机数(通过读取实时时钟)并把它并在用户输入 的口令后面。然后加密这个复合串。最后把 64 位的加密结果连同 12 位的随机数一起存入口 令文件。 25
第 5讲 认证 4. 不要暴露账户是否存在的信息 例:打入一个用户名后,不论账户是否存 在,都在相同时间里要求输入口令。 5. 限制口令尝试次数。 6. 系统中只保存口令的加密形式 26
第 5讲 认证 7. 一次性口令(OTP:One Time Password) 在登录过程中加入不确定因素,使每次登录过 程中传送的信息都不相同,以对付重放攻击。 确定口令的方式: 1)声称者与验证者两端共同拥有一串随机口 令,在该串的某一位置保持同步。用于人 控 制环境中。 2)两端共同使用一个随机序列生成器,在序 列生成器的初态保持同步。 3)使用时间戳,两端维持同步的时钟。 27
第 5讲 认证 三、基于智能卡的身份认证 1、智能卡的安全性 IC卡是英文 “智能卡”等。 这种集成电路卡,是随着Integrated Circuit(集成电路)卡的 缩写,也称“MEMORY CARD”和“SMART CARD”,中文译 作“聪明卡”、“智慧卡”和半导体技术的发展以及社会对信息 的安全性和存储容量要求的日益提高而应运而生的。它是一 种将具有加密、存储、处理能力的集成电路芯片嵌装于塑料 基片上而制成的卡片,它的外型与普通的信用卡十分相似, 具体尺寸为: 长: 85. 6 mm 、 宽: 54 mm 、 厚: 0. 8 mm IC卡可简单地分为三种类型: 存储卡、逻辑加密卡、CPU卡。 28
第 5讲 认证 IC卡优点: 存储容量大 、体积小而轻、保密性强、网络要 求低 数据可靠性高 IC卡防磁、防静电、防潮、耐温、 抗干扰能力强,一张IC卡片可重复读写十万次, 卡中数据可保存几十年。 IC卡读写操作通过电信号传输来完成,因而对 计算机的实时性、敏感性要求降低。内部数据 保密性、可靠性好,读写稳定可脱机 作,易 于安装维护; 29
第 5讲 认证 2、基于智能卡的认证机制 在基于Web的电子商务应用中,Java applet与智 能卡之间的通信是:应用程序与读卡器通信,而读 卡器将使用上面介绍的标准与智能卡通信。在用户 进行商务交易前,服务器首先使用智能卡完成用户 身份的认证。 身份认证过程中为了产生变动的密码一般采用双运 算因子的计算方式,也就是加密算法的输入值有两 个数值,其一为用户密钥、另一为变动因子,由于 用户密钥为固定数值,因此变动因子必须不断变动 才可以算出不断变动的动态密码。服务器及智能卡 必须随时保持相同的变动因子,才能算出相同的动 态密码。 30
第 5讲 认证 1)询问/应答认证 变动因子是由服务器产生的随机数字。认证 过程如下: 1)登录请求。客户机首先向服务器发出登录 请求,服务器提示用户输入用户ID和PIN 。 2)询问。用户提供ID给服务器,然后服务器 提供一个随机串X(Challenge)给插在客户 端的智能卡作为验证算法的输入,服务器则根 据用户ID取出对应的密钥K后,利用发送给客 户机的随机串X,在服务器上用加密引擎进行 运算,得到运算结果RS。 31
第 5讲 认证 3)应答。智能卡根据X与内在密钥K使用硬 件加密引擎运算,也得到一个运算结果RC, 并发送给服务器。 4)验证。比较RS和RC便可确定用户的合法 性。 由于密钥存在于智能卡中,运算过程也是在 智能卡中完成,密钥认证是通过加密算法来 实现的,因而极大地提高了安全性。并且每 当客户端有一次服务申请时,服务器便产生 一个随机串给客户,即使在网上传输的认证 数据被截获,也不能带来安全上的问题。 32
第 5讲 认证 三、基于智能卡的身份认证 33
第 5讲 认证 询问/应答身份认证的优点: 1. 没有同步的问题。 2. 一片认证卡可以用来存取被不同认证服务 器所保护的系统。 3. 最安全的认证方式。 缺点: 1. 使用者必须按较多的按钮,操作较繁复。 2. 比较多输入的失误。 34
第 5讲 认证 2)时间同步认证 变动因子使用服务器端与客户端的同步时间值。 认证过程如下: 1)用户向服务器发出登录请求,服务器提示用户 输入用户ID和用户PIN。 2)服务器根据用户ID取出对应的密钥K,使用K与 服务器时间T计算动态密码RS。 3)智能卡根据内在的密钥K与客户机时间T使用相 同的专用算法计算动态密码RC,并发送给服务器。 4)服务器比较RS与RC,如果相同则用户合法。 35
第 5讲 认证 三、基于智能卡的身份认证 时间同步认证卡在一个固定期间中(通常是一分钟)产生同一 个动态密码,依据时间的流逝产生不同的密码。 36
第 5讲 认证 时间同步身份认证 优点: 易于使用。 缺点: 1. 时间同步困难,可能造成必须重新输入新密 码。软体认证卡采用PC的时刻,很可能随时 被修改。常常需要与服务器重新对时。 2. 2. 不如Challenge/Response认证更安全 37
第 5讲 认证 3)事件同步认证卡依据认证卡上的私有密钥产生 一序列的动态密码,如果使用者意外多产生 了几组密码造成不同步的状态,服务器会自 动重新同步到目前使用的密码,一旦一个密 码被使用过后,在密码序列中所有这个密码 之前的密码都会失效。 38
第 5讲 认证 三、基于智能卡的身份认证 39
第 5讲 认证 事件同步的身份认证 优点: 1. 容易使用。 2. 由于使用者无法知道序列数字,所以安 全性高,序列号码绝不会显示出来。 缺点: 如果没有PIN号码的保护及认证卡借给别人 使用时,会有安全的疑虑。 40
第 5讲 认证 四、基于生物特征的身份认证 对用户固有的某些特征进行测量,如指纹、 声音或签字。这些需要特殊硬件,这就限制 了生物技术只能用在比较少的环境中。其吸 引人的地方是生物识别绝不可能丢失和被偷 窃。实际上,存在着某些局限性。传统的安 全常识认为认证数据应有规则地进行变化。 而使用指纹阅读器难于做到这一点。某些方 法也遭到了用户的反对。还有,因为生物技 术具有极为本质的特点,因此不可能给出准 确的答案。 41
第 5讲 认证 没有两个签字是绝对相同的,即使来自一个 人,还有一些莫明其妙的影响,例如疲劳程 度、心境状况和健康状况等。在匹配算法中 必须建立某些公差。假如某个调用者经认证 只有93%的可信度,是否让其登录? 某些系统使用智能卡存储每个用户的生物技 术数据。这避免了需要主机数据库,而是依 赖于卡的安全性来防止窜改。在用户和智能 卡之间的协议中,结合了来自主机的随机质 询,因而避免了重播攻击。 42
第 5讲 认证 四、基于生物特征的身份认证 优点: 1. 绝对无法仿冒的使用者 认证技术。 缺点: 1. 较昂贵。 2. 不够稳定(辩识失败率高 )。 43
第 5讲 认证 身份的零知识证明 通常的身份认证都要求传输口令或身份 信息(尽管是加密传输)。如果不传输这些信 息,身份也能得到证明就好了,这就需要零 知识证明技术(The proof of zero knowledge) 。 零知识证明是这样一种技术,被认证方P掌 握某些秘密信息,P想设法让认证方V相信 他确实掌握那些信息,但又不想让V也知道 那些信息。 44
第 5讲 认证 解释零知识证明的通俗例子是洞穴问题。 如图:有一个洞,设P知道咒语,可打开C和D 之间的秘密门,不知道者都将走入死胡同中,那 么P如何向V出示证明使其相信他知道这个秘密, 但又不告诉V有关咒语。 45
第 5讲 认证 P如何使V相信自己掌握了洞穴的秘密: 1)V站在A点。 2)P进入洞中任意一点C或D。 3)当P进洞之后,V走到B点。 4)V叫P: “从左边出来”或“从右边出来”。 5)P按要求实现(以咒语,即解数学难题)。 6)P和V重复执行(1)~(5)共n次。 被认证方P掌握的秘密信息一般是长期没有解决的猜想问 题的证明,但能通过具体的步骤来验证它的正确性。 46
Kerberos 认证系统 47
问题 • 在一个开放的分布式网络环境中,用户通过 作站访问服务器上提供的服务。 – 服务器应能够限制非授权用户的访问并能够鉴别对 服务的请求。 – 作站无法可信地向网络服务证实用户的身份,即 作站存在三种威胁。 • 一个 作站上一个用户可能冒充另一个用户操作; • 一个用户可能改变一个 作站的网络地址,从而 冒充另一台 作站 作; • 一个用户可能窃听他人的信息交换,并用回放攻 击获得对一个服务器的访问权或中断服务器的运 行。 48
Kerberos的解决方案 • 在一个分布式的client/server体系机构中 采用一个或多个Kerberos服务器提供一个 鉴别服务。 49
第 5讲 Kerberos认证 网络环境 Security Server User 1 File server User 2 Printing server . . . Attacker 50
第 5讲 Kerberos认证 潜在的攻击 • 窃听 • 重放: 利用先前的标签信息,获得以后 对系统的访问权。 • 假冒用户 • 伪装机器 51
第 5讲 Kerberos认证 一、Kerberos 简介 Kerberos:希腊神话“三个头的狗——地狱之门守护者” 希望有三个功能:身份认证、记账、审核。 Kerberos针对分布式环境,一些 作站可能安装于不安 全场所,而且用户也并非是完全可信的。 客户在登录时,需要认证。用户必须获得由认证服务器 发行的许可证,才能使用目标服务器上的服务。 许可证提供被认证的用户访问一个服务时所需的授权资 格。 所有客户和服务器间的会话都是暂时的。 52
第 5讲 Kerberos认证 1、Kerberos的产生背景 在网络系统中,用户需要从多台计算机得到服 务,控制访问的方法有三种: a. )认证 作由用户登录的计算机来管理,服务 程序不负责认证,这对于封闭式网络是可行的 方案。 b. )收到服务请求时,对发来请求的主机进行认 证,对每台认证过的主机的用户不进行认证。 半开放系统可用此方法。每个服务选择自己信 任的计算机,在认证时检查主机地址来实现认证。 53
第 5讲 Kerberos认证 C) 在开放式系统中,主机不能控制登录它的每一个用 户,另外有来自系统外部的假冒等情况发生,以上两 种方法都不能保证用户身份的真实性,必须对每一个 服务请求,都要认证用户的身份。 开放式系统的认证的要求: 1. ) 安全性:没有攻击的薄弱环节。 2. )可靠性:认证服务是其他服务的基础,要可靠,不 能瘫痪。 3. ) 透明性:用户觉察不到认证服务,只是输入口令。 4. )可扩展性:支持加入更多的服务器。 54
第 5讲 Kerberos认证 2、什么是Kerberos:为网络通信提供可信第三方服务 的面向开放系统的认证机制. 每当用户C申请得到某服务程序S的服务时, 用户和服务程序会首先向Kerberos要求认证 对方的身份,认证建立在用户和服务程序对 Kerberos信任基础上。在申请认证时,C和S 都是Kerberos认证服务的用户,为了和其它 服务的用户区别,Kerberos用户统称为当事 人(principle),principle可以是用户或者某项 服务。 55
第 5讲 Kerberos认证 当用户登录到 作站时,Kerberos对用户进行 初始认证,此后用户可以在整个登录时间得到 相应的服务。Kerberos不依赖用户的终端或请 求服务的安全机制,认证 作由认证服务器完 成。时间戳技术被应用于防止重放攻击。 Kerberos保存当事人及其密钥的数据库。共享 密钥只被当事人和Kerberos知道,当事人在登 记 时 与 Kerberos商 定 。 使 用 共 享 密 钥 , Kerberos可以创建消息使一个当事人相信另一 个当事人的真实性。Kerberos还产生一种临时 密钥,称做对话密钥,通信双方用在具体的通 信中。 56
第 5讲 Kerberos认证 Kerberos提供三种安全等级。 1) 只在网络开始连接时进行认证,认为连接 建立起来后的通信是可靠的。认证式网络文 件系统(Authenticated network file system) 使 用此种安全等级。 2) 安全消息传递:对每次消息都进行认证 作,但是不保证每条消息不被泄露。 3) 私有消息传递:不仅对每条消息进行认证, 而且对每条消息进行加密。Kerberos在发送 密码时就采用私有消息模式。 57
第 5讲 Kerberos认证 二、Kerberos原理 1、Kerberos的组成 MIT为雅典娜(Athena)计划开发的认证系统。组成: Kerberos应用程序库:应用程序接口,包括创建和读 取 认 证 请 求 , 以 及 创 建 safe message 和 private message的子程序。 加密/解密库:DES等。 Kerberos数据库:记载了每个Kerberos 用户的名字, 私有密钥,截止信息(记录的有效时间,通常为几年) 等信息。 数据库管理程序:管理Kerberos数据库 58
第 5讲 Kerberos认证 KDBM服务器(数据库管理服务器):接受客户端的请 求对数据库进行操作。 认证服务器(AS):存放一个Kerberos数据库的只读 的副本,用来完成principle的认证,并生成会话密钥 . 数据库复制软件:管理数据库从KDBM服务所在的 机器,到认证服务器所在的机器的复制 作,为了 保持数据库的一致性,每隔一段时间就需要进行复 制 作. 用户程序:登录Kerberos,改变Kerberos密码,显 示和破坏Kerberos标签(ticket)等 作。 应用程序: 59
第 5讲 Kerberos认证 Kerberos的主要认证模型如下: 出于实现和安全考虑,Kerberos认证服 务被分配到两个相对独立的服务器。 认证服务器AS:它同时应该连接并维护一个 中央数据库存放用户口令、标识等) 票据许可服务器TGS(Ticket Granting Server)。 整个系统将由四部分组成:AS,TGS, Client,Server。 60
第 5讲 Kerberos认证 Ticket Granting Server Kerberos Database Server Workstation Authentication Server Kerberos Key Distribution Service 61
第 5讲 Kerberos认证 Kerberos 有 两 种 证 书 : 票 据 ticket和 认 证 符 authenticator。这两种证书都要加密,但加密的 密钥不同。 Ticket用来安全地在AS和S之间传递用户的身份, 同时保证使用ticket的用户必须是ticket中指定的 用户。 Ticket的组成: C/S的标识,client的地址,时间戳,生存时间, 会话密钥五部分组成。Ticket一旦生成,在life指 定的时间内可以被client多次使用来申请同一个 server的服务。 62
第 5讲 Kerberos认证 Authenticator:提供信息与ticket中的信息进行比 较,一起保证发出ticket的用户就是ticket中指定 的用户。认证符有下列部分组成: client的名字,client的地址,记录当前时间的时 间戳。authenticator只能在一次服务请求中使用, 每 当 client向 server申 请 服 务 时 , 必 须 重 新 生 成 Authenticator。 63
第 5讲 Kerberos认证 通过三阶段六步操作,用户C和服务V互相验证彼此 的身份,并且拥有只有C和V两者知道的会话密钥 Kc, v,以后的通信都可以通过会话密钥得到保护。 Kerberos 用户C AS DB TGS 服务器V 64
第 5讲 Kerberos认证 2、Kerberos 作原理 常用术语的简写: C:客户机 AS:认证服务器 V:服务器 IDc、IDv、IDtgs 分别为C、V、TGS的身份 ADc: 用户的网络地址 TSi:第i个时戳 Lifetime: 第I个有效期限 Pc:C上的用户口令 65
第 5讲 Kerberos认证 Kc:C和AS的共享密钥 Kv:V和TGS的共享密钥 Ktgs: TGS 和AS的共享密钥 Kc, tgs:C与TGS的共享密钥 Kc, v:C与V的共享密钥 66
第 5讲 Kerberos认证 用户C请求服务S的整个Kerberos认证过程 1)认证服务交换 用户C向AS发出请求,以获取访问TGS的令牌( 票据许可证):Tickettgs 得到初始化令牌的 作在用户登录 作站时进 行,在用户看来和登录分时系统是完全相同 的。登录时用户被要求输入用户名,输入后 系统向AS发送一条包含用户和TGS服务两者 名字的请求,以及时戳TS 1(表示是新请求)。 67
AS检查用户有效,则随机产生用户和TGS 通 信 的 会 话 密 钥 Kc, tgs, 并 创 建 令 牌 Tickettgs ,令牌包含用户名,用户地址, TGS服 务 名 , 当 前 时 间 (时 戳 TS 2) , 有 效时间,还有刚才创建的会话密钥。然 后 将 令 牌 用 Ktgs加 密 。 AS向 C发 送 加 密 过的令牌Tickettgs和会话密钥Kc, tgs,发 送 的 消 息 用 只 有 用 户 和 认 证 服 务 器 A知 道的Kc来加密,Kc值基于用户密码。 68
第 5讲 Kerberos认证 用户机器收到AS回应后,要求用户输入密码, 将密码转化为DES密钥Kc,然后将AS发回的 信 息 解 开 , 保 存 令 牌 Tickettgs和 会 话 密 钥 Kc, tgs,为了安全, 用户密码Pc和密钥Kc则被 丢弃。 当用户的登录时间超过了令牌的有效时间时, 用户的请求就会失败,这时系统会要求用户 使用kinit程序重新申请令牌Tickettgs。用户运 行klist命令可以查看自己所拥有的令牌的当前 状态。 69
第 5讲 Kerberos认证 2) C从TGS得到所请求服务的令牌Ticketv。 一个令牌只能申请一个特定的服务,所以用 户必须为每一个服务V申请新的令牌,用户可 以从TGS处得到服务令牌Ticketv 。 用户程序首先向TGS发出申请令牌的请求。 请求信息中包含V的名字,上一步中得到的请 求TGS服务的加密令牌 Tickettgs,还有加密过 的认证符Authenticatorc 。认证符含有:用户 身份、网址、时戳。认证符与ticket不同,只 用一次且有效期短。 70
第 5讲 Kerberos认证 如果有效,TGS生成用于C和V之间通信的会 话密钥Kc, v,并生成用于C申请得到V服务的 令牌Ticketv,其中包含C和V的名字,C的网络 地址,当前时间,有效时间和会话密钥Kc, v 。 令牌 Ticketv的有效时间是初始令牌 Tickettgs 剩 余的有效时间和所申请的服务缺省有效时间中 最短的时间。 TGS用 C和 TGS之 间 的 会 话 密 钥 Kc, tgs 加 密 Ticketv和会话密钥Kc, v,然后发送给用户C。C 得到回答后,用Kc, tgs解密,得到所请求的令 牌Ticketv和会话密钥Kc, v 。 71
第 5讲 Kerberos认证 (3) 客户机与服务器之间认证交换。 C向 V发 送 服 务 许 可 票 据 Ticketv 和 认 证 符 Authenticatorc ,V收到后用Kv 解密Ticketv ,然 后用Kc, v解密认证符。比较得到的用户名,网络地 址,时间等信息,判断C的身份,请求是否有效。用 户和服务程序之间的时钟必须同步在几分钟的时间 段内,当请求的时间与系统当前时间相差太远时, 认为请求是无效的,用来防止重放攻击。为防止重 放攻击,V通常保存一份最近收到的有效请求的列表, 当收到一份请求与已经收到的某份请求的令牌和时 间完全相同时,认为此请求无效。 72
(3) 客户机与服务器之间认证交换。 当 C也 想 验 证 V的 身 份 时 , V将 收 到 的 时 间 戳 加 1,并用会话密钥Kc, v加密后发送给用户, 用 户 收 到 回 答 后 , 用 Kc, v解 密 后 对 增 加 的 时戳进行验证,从而确定V的身份。 此后,客户与服务器之间通过共享的会话密 钥秘密通信。 73
Kerberos V 5的改进 Ø 加密算法的多样化 Ø 票据有效期延长 28*5分钟 任意 Ø 允许认证转发 C可让V 1代表自己访问V 2 Ø 多区域认证关系简化 74
第 5讲 Kerberos认证 3、Kerberos数据库管理 认证 作由AS实现,它从Kerberos数据库中 读取用户的信息来完成认证 作,对数据库 操作是只读的。对数据库的更新和管理操作 由另外的服务来完成,称做KDBM(Kerberos Database Management Service)。KDBM只能 运行在主Kerberos服务器上,机器上维护可 写的Kerberos数据库,而其他的认证服务程 序则可运行在从Kerberos服务器上,机器上 维护Kerberos的只读备份,完成认证 作, 数据库复制软件用来完成从主机到从机的复 制 作。 75
第 5讲 Kerberos认证 1) KDBM服务程序(KDBM server) 用于添加principle、改变其密码。KDBM服务请求是独 一无二的,所以请求KDBM服务不需要向tgs申请令牌, 而采用认证中的第一步和第三步,直接向认证服务器申 请认证,这样做的目的是为了要求用户输入原来的密码。 当用户不在时,别人可能会篡改用户的密码,尤其是超 级用户,可以更改任何人的密码,所以要在申请KDBM 服务时输入用户的密码。 当KDBM收到请求时,比较请求的发出者和被操作者, 当两者相同时,操作被允许。当两者不同时,在存取控 制列表中寻找发出者的存在,如果存在,操作被允许, 否则,操作被拒绝。 KDBM存放所有请求的日志,防止异常情况发生。 76
第 5讲 Kerberos认证 2) kadmin和kpasswd命令 Kadmin命令只能被Kerberos超级用户使用, 用 来 添 加 principle和 更 改 principle的 密 码 。 Kadmin运行时会要求输入超级用户密码,当 一个用户为Kerberos超级用户时,会在原来 的 用 户 上 创 建 一 个 admin实 例 (instance), admin实例的密码可以与原来用户的密码不同, kadmin要求输入 admin实例的密码。 Kpasswd命令被principle用来修改Kerberos密 码,同样要求输入用户原来的密码完成认证 作。 77
第 5讲 Kerberos认证 3) 数据库复制 为了提高系统的效率和可靠性,Kerberos在 master上存放数据库,而在slave上存放数据 库的只读副本。这样当master出现异常情况时, 系统还可以完成日常的认证 作,并且多台 认证服务器的使用减少了瓶颈的发生。但维 持数据库的多个副本带来了如何保持各个副 本间数据一致性的问题。有一个简单有效的 办法可以解决这个问题,那就是每隔一个小 时就进行一次从master到slave的转储 作。 78
第 5讲 Kerberos认证 为了保证数据库不被窃听和篡改,Kerberos 使用以下措施:数据库中principle的所有密码 在存储时都用Kerberos数据库专用密钥进行 加密,这样在传输过程中即使被偷听,偷听 者也无法得到想要的信息; 在传输之前先传输 校验和,这样当有多出的冒充信息或者接收 信息被篡改时,可以通过比较校验和及时发现。 79
第 5讲 Kerberos认证 Kerberos的局限性: 1.时间同步问题: 因为整个Kerberos的协议 都严重地依赖于时钟,而实际证明,要求在 分步式系统环境中实现良好的时钟同步,是 一个很难的课题。如果能够实现一种基于安 全机制的时间服务,或是研制一种相对独立 于计算机和网络环境、且基于一种或几种世 界标准时钟的,能够准确进行时间转化和时 间服务的联机物理时钟,这种问题将得到较 好的解决; 80
第 5讲 Kerberos认证 2.口令猜测问题: Kerberos的口令没有进行额外的特殊处理, 以至于即使用强力攻击(即穷举法)的时间 复杂度仅和口令的长度成比例,这将形成一 个两难的局面:或是增加密钥长度换取更高 的安全,但这会造成用户的使用困难(可以 参照口令短语方式解决此困难)和增加系统 加/解密开销。 81
第 5讲 Kerberos认证 3.认证域之间的信任问题:认证域之间的多 级跳跃过程复杂且不明确,相互信任和协调 不方便。若各Kerberos区域形成复杂或不规 则的网状结构,则要求方便的域间服务,将 付出极大的代价,即系统的可扩充性不强。 针对这种无序的状况,应有规划有目的地建 立起全球一体化的分层(树状)结构,形成 良好的信任链条。 82
第 5讲 Kerberos认证 4.重放攻击的问题: 长票的生存期较长,容易被重放攻击; 对短票而言,如果攻击者技术高明,也有机 会重放攻击,况且攻击者可以着手破坏系统 的时钟同步性。我们建议,在Kerberos引入 序列号循环机制,即让传送的消息带上一定 的序列号,这些序列号在由系统循环地赋予 消息,再结合系统原有的生存期控制,将有 效地保证一定的时间段里只能存在唯一的合 法消息,从而消除了重放的可能性。当然, 这必须付出一定的系统开销代价。 83
第 5讲 Kerberos认证 5.密钥的存储问题: Kerberos认证中心 要求保存大量的共享私钥,无论是管理还是 更新都有很大的困难,需要特别细致的安全 保护措施(甚至应采用硬件/物理方法),将 付出极大的系统代价。 6.系统程序的安全性、完整性问题: 对 Kerberos系统程序进行攻击,特别是恶意篡 改登录程序,是有效的攻击方法。所以,必 须花一定的系统代价去防范对认证系统本身 的集中攻击。其中,建立高性能的防火墙和 进行日志是必要的。 84
a2b2d509a570f910409f9aa8c280779f.ppt