《信息认证技术》PPT课件.ppt

上传人:小飞机 文档编号:5578653 上传时间:2023-07-30 格式:PPT 页数:102 大小:324.50KB
返回 下载 相关 举报
《信息认证技术》PPT课件.ppt_第1页
第1页 / 共102页
《信息认证技术》PPT课件.ppt_第2页
第2页 / 共102页
《信息认证技术》PPT课件.ppt_第3页
第3页 / 共102页
《信息认证技术》PPT课件.ppt_第4页
第4页 / 共102页
《信息认证技术》PPT课件.ppt_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《《信息认证技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《信息认证技术》PPT课件.ppt(102页珍藏版)》请在三一办公上搜索。

1、信息安全概论,信息认证技术,信息认证技术,验证信息的发送者是否是合法的,即实体认证,包括信源、信宿的认证与识别。数字签名身份识别技术验证消息的完整性以及数据在传输和存储过程中是否会被篡改、重放或延迟。,数字签名,每天都在使用签名,如签订合同,在银行取款,批复文件等等,但这些都是手写签名。数字签名以电子方式存储签名消息,是在数字文档上进行身份验证的技术。通过电子设备实现快速、远距离交易,用于商业系统。,数字签名的特性,签名是可信的签名是不可复制的 签名的消息是不可改变的签名是不可抵赖的,数字签名的功能,否认伪造篡改冒充,数字签名实现方式,Hash签名通过一个单向函数(Hash)对要传送的报文进行

2、处理,用以认证报文来源。公钥签名技术用户使用自己的私钥对原始数据的哈希摘要进行加密,接受者使用公钥进行解密,与摘要进行匹配以确定消息的来源。,对称加密算法进行数字签名,Hash函数单密钥实现简单性能好安全性低,公钥加密算法进行数字签名与验证,用单向函数对报文变换,得到数字签名。利用私钥进行加密。接收方公钥解密,得到数字签名的明文。用单向函数对报文变换,得到数字签名。比较签名验证身份。加密强度高。第三方认证。,公钥体制,选择两个素数p和q,令n=pq。随即选择加密密钥e,使得e和(p-1)(q-1)互素,则n,e作为公钥。求出正数d使其满足:ed=1 mod(n)=(p-1)(q-1)即:d=e

3、-1 mod(p-1)(q-1)则d作为密钥,p和q舍弃,但不可泄漏。,签名:S=Md mod n验证:M=Se mod n,DSS,美国数字签名标准DSAElgamal算法,盲签名(数字信封),对一个文件进行签名,而不想让签名者知道文件的内容。完全盲签名盲签名盲签名算法,数字信封的功能类似于普通信封。普通信封在法律的约束下保证只有收信人才能阅读信的内容;数字信封则采用密码技术保证了只有规定的接收人才能阅读信息的内容。盲签名如图3-10所示。,数字信封中采用了对称密码体制和公钥密码体制。信息发送者首先利用随机产生的对称密码加密信息,再利用接收方的公钥加密对称密码,被公钥加密后的对称密码被称之为

4、数字信封。在传递信息时,信息接收方要解密信息时,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息。这样就保证了数据传输的真实性和完整性。将数字签名和数字信封结合起来,完成一个完整的数据加密和身份认证过程,如图3-11所示。,群签名,在群体密码中,有一个公用的公钥,群体外面的人可以用他向群体发送加密消息,密文收到后要由群体内部的子集共同进行解密。只有群体的成员能代表群体签名接收到签名的人可以用公钥验证签名,但是不能知道由群体的那个成员所签。发生争议的时候,可由群体的成员或可信赖的机构识别群签名的签名者,一、身份识别技术的基本原理(身份认证),在现实生活中,我们个人的

5、身份主要是通过各种证件来确认的,比如:身份证、户口本等。认证是对网络中的主体进行验证的过程,用户必须提供他是谁的证明,他是某个雇员,某个组织的代理、某个软件过程(如交易过程)。认证(authentication)是证明一个对象的身份的过程。与决定把什么特权附加给该身份的授权(authorization)不同。,第5讲 认证,一、认证的基本原理,通常有三种方法验证主体身份。1)是只有该主体了解的秘密,如口令、密钥;2)是主体携带的物品,如智能卡和令牌卡;3)是只有该主体具有的独一无二的特征或能力,如指纹、声音、视网膜图或签字等。单独用一种方法进行认证不充分,第5讲 认证,身份认证系统架构包含三项

6、主要组成元件:认证服务器(Authentication Server)负责进行使用者身份认证的工作,服务器上存放使用者的私有密钥、认证方式及其他使用者认证的信息。认证系统用户端软件(Authentication Client Software)认证系统用户端通常都是需要进行登陆(login)的设备或系统,在这些设备及系统中必须具备可以与认证服务器协同运作的认证协定。认证设备(Authenticator)认证设备是使用者用来产生或计算密码的软硬件设备。,第5讲 认证,1)口令机制用户名/口令认证技术:最简单、最普遍的身份识别技术,如:各类系统的登录等。口令具有共享秘密的属性,是相互约定的代码,只

7、有用户和系统知道。例如,用户把他的用户名和口令送服务器,服务器操作系统鉴别该用户。口令有时由用户选择,有时由系统分配。通常情况下,用户先输入某种标志信息,比如用户名和ID号,然后系统询问用户口令,若口令与用户文件中的相匹配,用户即可进入访问。口令有多种,如一次性口令;还有基于时间的口令,第5讲 认证,2)数字证书这是一种检验用户身份的电子文件,也是企业现在可以使用的一种工具。这种证书可以授权购买,提供更强的访问控制,并具有很高的安全性和可靠性。非对称体制身份识别的关键是将用户身份与密钥绑定。CA(Certificate Authority)通过为用户发放数字证书(Certificate)来证明

8、用户公钥与用户身份的对应关系。,第5讲 认证,验证者向用户提供一随机数;用户以其私钥KS对随机数进行签名,将签名和自己的证书提交给验证方;验证者验证证书的有效性,从证书中获得用户公钥KP,以KP验证用户签名的随机数。,第5讲 认证,3)智能卡网络通过用户拥有什么东西来识别的方法,一般是用智能卡或其它特殊形式的标志,这类标志可以从连接到计算机上的读出器读出来。访问不但需要口令,也需要使用物理智能卡。智能卡技术将成为用户接入和用户身份认证等安全要求的首选技术。用户将从持有认证执照的可信发行者手里取得智能卡安全设备,也可从其他公共密钥密码安全方案发行者那里获得。这样智能卡的读取器必将成为用户接入和认

9、证安全解决方案的一个关键部分。,第5讲 认证,4)主体特征认证目前已有的设备包括:视网膜扫描仪、声音验证设备、手型识别器等。安全性高。例如:系统中存储了他的指纹,他接入网络时,就必须在连接到网络的电子指纹机上提供他的指纹(这就防止他以假的指纹或其它电子信息欺骗系统),只有指纹相符才允许他访问系统。更普通的是通过视网膜膜血管分布图来识别,原理与指纹识别相同,声波纹识别也是商业系统采用的一种识别方式。,第5讲 认证,用户名/口令具有实现简单的优点,但存在以下安全缺点:1、大多数系统的口令是明文传送到验证服务器的,容易被截获。某些系统在建立一个加密链路后再进行口令的传输以解决此问题,如配置链路加密机

10、。2、口令维护的成本较高。为保证安全性,口令应当经常更换。另外为避免对口令的字典攻击,口令应当保证一定的长度,并且尽量采用随机的字符。但缺点是难于记忆。3、口令容易在输入的时候被攻击者偷窥,而且用户无法及时发现。简单和安全是互相矛盾的两个因素。,第5讲 认证,1、安全与不安全的口令 UNIX系统口令密码都是用8位(新的是13位)DES算法进行加密的,即有效密码只有前8位,所以一味靠密码的长度是不可以的。安全的口令要求:1)位数6位。2)大小写字母混合。3)字母与数字混合。4)口令有字母、数字以外的符号。,第5讲 认证,二、基于口令的身份认证,不安全的口令则有如下几种情况:(1)使用用户名(帐号

11、)作为口令。(2)使用用户名(帐号)的变换形式作为口令。将用户名颠倒或者加前后缀作为口令,比如说著名的黑客软件John,如果你的用户名是fool,那么它在尝试使用fool作为口令之后,还会试着使用诸如fool123、loof、loof123、lofo等作为口令,只要是你想得到的变换方法,John也会想得到。,第5讲 认证,(3)使用自己或者亲友的生日作为口令。这种口令很脆弱,因为这样往往可以得到一个6位或者8位的口令,但实际上可能的表达方式只有1001231=37200种。(4)使用常用的英文单词作为口令。这种方法比前几种方法要安全一些。一般用户选择的英文单词几乎都落在黑客的字典库里。(5)使

12、用5位或5位以下的字符作为口令。,第5讲 认证,加强口令安全的措施:A、禁止使用缺省口令。B、定期更换口令。C、保持口令历史记录,使用户不能循环使用旧口令。D、用口令破解程序测试口令。,第5讲 认证,2、口令攻击的种类 计算资源依靠口令的方式来保护的脆弱性:网络数据流窃听。由于认证信息要通过网络传递,并且很多认证系统的口令是未经加密的明文,攻击者通过窃听网络数据,就很容易分辨出某种特定系统的认证数据,并提取出用户名和口令。口令被盗也就是用户在这台机器上的一切信息将全部丧失,并且危及他人信息安全,计算机只认口令不认人。最常见的是电子邮件被非法截获。,第5讲 认证,认证信息截取/重放(Record

13、/Replay)有的系统会将认证信息进行简单加密后进行传输,如果攻击者无法用第一种方式推算出密码,可以使用截取/重放方式。攻击者仍可以采用离线方式对口令密文实施字典攻击;对付重放的方法有:1在认证交换中使用一个序数来给每一个消息报文编号,仅当收到的消息序号合法时才接受之;2使用时间戳(A接受一个新消息仅当该消息包含一个 A认为是足够接近 A所知道的时间戳);3询问/应答方式(A期望从 B获得一个新消息,则先发给 B一个临时值,并要求后续从 B收到的消息包含正确的这个临时值),第5讲 认证,字典攻击:由于多数用户习惯使用有意义的单词或数字作为密码,某些攻击者会使用字典中的单词来尝试用户的密码。所

14、以大多数系统都建议用户在口令中加入特殊字符,以增加口令的安全性。穷举尝试(Brute Force):这是一种特殊的字典攻击,它使用字符串的全集作为字典。如果用户的密码较短,很容易被穷举出来,因而很多系统都建议用户使用长口令。窥探:攻击者利用与被攻击系统接近的机会,安装监视器或亲自窥探合法用户输入口令的过程,以得到口令。,第5讲 认证,社交工程:攻击者冒充合法用户发送邮件或打电话给管理人员,以骗取用户口令。比如,在终端上发现如下信息:Please enter your user name to logon:Your password:这很可能是一个模仿登录信息的特洛伊木马程序,他会记录口令,然后

15、传给入侵者。垃圾搜索:攻击者通过搜索被攻击者的废弃物,得到与攻击系统有关的信息,如果用户将口令写在纸上又随便丢弃,则很容易成为垃圾搜索的攻击对象。,第5讲 认证,口令猜中概率公式:P=LR/SL:口令生命周期 R:进攻者单位时间内猜测不同口令次数S:所有可能口令的数目。为降低猜中的概率:1减少口令使用寿命,即提高口令更换的频率;2降低进攻者单位时间内猜测尝试口令的次数;3增加可能口令的数目,即提高口令的字符个数。然而,口令的频繁更换增加了用户的负担,也为资深入侵者提供了条件(为了便于记忆,人们往往选择与其个人相关的口令,如某重要的日期),口令字符个数的增加也会增加用户的负担且不会对资深入侵者有

16、更大影响,因此,手段 2应是较为有效的防猜中手段。,第5讲 认证,1.选择很难破译的加密算法让硬件解密商品不能发挥作用。2.控制用户口令的强度(长度、混合、大小写)3.掺杂口令 先输入口令,然后口令程序取一个 12 位的随机数(通过读取实时时钟)并把它并在用户输入的口令后面。然后加密这个复合串。最后把 64 位的加密结果连同 12 位的随机数一起存入口令文件。,第5讲 认证,4.不要暴露账户是否存在的信息 例:打入一个用户名后,不论账户是否存在,都在相同时间里要求输入口令。5.限制口令尝试次数。6.系统中只保存口令的加密形式,第5讲 认证,7.一次性口令(OTP:One Time Passwo

17、rd)在登录过程中加入不确定因素,使每次登录过程中传送的信息都不相同,以对付重放攻击。确定口令的方式:1)声称者与验证者两端共同拥有一串随机口令,在该串的某一位置保持同步。用于人工控制环境中。2)两端共同使用一个随机序列生成器,在序列生成器的初态保持同步。3)使用时间戳,两端维持同步的时钟。,第5讲 认证,三、基于智能卡的身份认证,1、智能卡的安全性IC卡是英文“智能卡”等。这种集成电路卡,是随着Integrated Circuit(集成电路)卡的缩写,也称“MEMORY CARD”和“SMART CARD”,中文译作“聪明卡”、“智慧卡”和半导体技术的发展以及社会对信息的安全性和存储容量要求

18、的日益提高而应运而生的。它是一种将具有加密、存储、处理能力的集成电路芯片嵌装于塑料基片上而制成的卡片,它的外型与普通的信用卡十分相似,具体尺寸为:长:85.6 mm、宽:54mm、厚:0.8mmIC卡可简单地分为三种类型:存储卡、逻辑加密卡、CPU卡。,第5讲 认证,IC卡优点:存储容量大、体积小而轻、保密性强、网络要求低 数据可靠性高 IC卡防磁、防静电、防潮、耐温、抗干扰能力强,一张IC卡片可重复读写十万次,卡中数据可保存几十年。IC卡读写操作通过电信号传输来完成,因而对计算机的实时性、敏感性要求降低。内部数据保密性、可靠性好,读写稳定可脱机工作,易于安装维护;,第5讲 认证,2、智能卡技

19、术规范1)ISO 7816描述智能卡底层接口标准,定义读卡器和智能卡之间如何传递字节流。此标准主要是定义了塑料基片的物理和尺寸特性(7816/1),触点的尺寸和位置(7816/2),信息交换的底层协议描述(7816/3),7816/4论述了跨行业的命令集。2)PC/SC(Personal Computer/Smart Card)工作组 Microsoft联合其它几家公司推出了称为PC/SC 的智能卡应用程序标准,用于Win32平台的个人计算机与智能卡之间实现互通信。PC/SC 工作组于1996年五月成立,目的在于规范一个开放的Windows接口。PC/SC 工作组持有对PC-ICC互操作规范的

20、所有权。,第5讲 认证,3)OpenCard 框架 由IBM,Netscape,NCI和Sun在1997年3月27日提出的用于网络环境的智能应用框架。目的是支持智能卡应用程序在网络计算机、PC机、ATM和GSM平台上实现应用互操作。OpenCard 还提供了到PC/SC的接口。4)Java Card 论坛1996年10月推出了Java Card API规范,目前版本为2.1.1,1997年4月27日,Java Card论坛正式宣布成立。Java Card论坛的成立目的是完善Java Card API规范,使之最终成为多应用智能卡的首选编程语言。,第5讲 认证,Java Card就是能够运行Ja

21、va程序的智能卡。Java Card在出厂时就在ROM中烧入了操作系统、Java Card虚拟机、API类库和可选的applets,随后,初始化和个人化向EEPROM 中写入数据。所谓Java Card 规范,主要是定义了Java作为一种独立于平台的编程技术在智能卡上的应用。Java Card API与正式的国际标准(如ISO7816)和工业规范标准(如Europay/Master Card/Visa)兼容。也就是说Java applet能够直接运行在遵循ISO7816标准的智能卡之上。,第5讲 认证,第5讲 认证,3、基于智能卡的认证机制在基于Web的电子商务应用中,Java applet与

22、智能卡之间的通信是:应用程序与读卡器通信,而读卡器将使用上面介绍的标准与智能卡通信。在用户进行商务交易前,服务器首先使用智能卡完成用户身份的认证。身份认证过程中为了产生变动的密码一般采用双运算因子的计算方式,也就是加密算法的输入值有两个数值,其一为用户密钥、另一为变动因子,由于用户密钥为固定数值,因此变动因子必须不断变动才可以算出不断变动的动态密码。服务器及智能卡必须随时保持相同的变动因子,才能算出相同的动态密码。,第5讲 认证,1)询问/应答认证 变动因子是由服务器产生的随机数字。认证过程如下:1)登录请求。客户机首先向服务器发出登录请求,服务器提示用户输入用户ID和PIN。2)询问。用户提

23、供ID给服务器,然后服务器提供一个随机串X(Challenge)给插在客户端的智能卡作为验证算法的输入,服务器则根据用户ID取出对应的密钥K后,利用发送给客户机的随机串X,在服务器上用加密引擎进行运算,得到运算结果RS。,第5讲 认证,3)应答。智能卡根据X与内在密钥K使用硬件加密引擎运算,也得到一个运算结果RC,并发送给服务器。4)验证。比较RS和RC便可确定用户的合法性。由于密钥存在于智能卡中,运算过程也是在智能卡中完成,密钥认证是通过加密算法来实现的,因而极大地提高了安全性。并且每当客户端有一次服务申请时,服务器便产生一个随机串给客户,即使在网上传输的认证数据被截获,也不能带来安全上的问

24、题。,三、基于智能卡的身份认证,第5讲 认证,第5讲 认证,询问/应答身份认证的优点:没有同步的问题。一片认证卡可以用来存取被不同认证服务器所保护的系统。最安全的认证方式。缺点:使用者必须按较多的按钮,操作较繁复。比较多输入的失误。,第5讲 认证,2)时间同步认证 变动因子使用服务器端与客户端的同步时间值。认证过程如下:1)用户向服务器发出登录请求,服务器提示用户输入用户ID和用户PIN。2)服务器根据用户ID取出对应的密钥K,使用K与服务器时间T计算动态密码RS。3)智能卡根据内在的密钥K与客户机时间T使用相同的专用算法计算动态密码RC,并发送给服务器。4)服务器比较RS与RC,如果相同则用

25、户合法。,三、基于智能卡的身份认证,第5讲认证,时间同步认证卡在一个固定期间中(通常是一分钟)产生同一个动态密码,依据时间的流逝产生不同的密码。,第5讲认证,时间同步身份认证优点:易于使用。缺点:时间同步困难,可能造成必须重新输入新密码。软体认证卡采用PC的时刻,很可能随时被修改。常常需要与服务器重新对时。2.不如Challenge/Response认证更安全,第5讲认证,3)事件同步事件同步认证卡依据认证卡上的私有密钥产生一序列的动态密码,如果使用者意外多产生了几组密码造成不同步的状态,服务器会自动重新同步到目前使用的密码,一旦一个密码被使用过后,在密码序列中所有这个密码之前的密码都会失效。

26、,三、基于智能卡的身份认证,第5讲认证,第5讲认证,事件同步的身份认证优点:容易使用。由于使用者无法知道序列数字,所以安全性高,序列号码绝不会显示出来。缺点:如果没有PIN号码的保护及认证卡借给别人使用时,会有安全的疑虑。,四、基于生物特征的身份认证,第5讲认证,对用户固有的某些特征进行测量,如指纹、声音或签字。这些需要特殊硬件,这就限制了生物技术只能用在比较少的环境中。其吸引人的地方是生物识别绝不可能丢失和被偷窃。实际上,存在着某些局限性。传统的安全常识认为认证数据应有规则地进行变化。而使用指纹阅读器难于做到这一点。某些方法也遭到了用户的反对。还有,因为生物技术具有极为本质的特点,因此不可能

27、给出准确的答案。,第5讲认证,没有两个签字是绝对相同的,即使来自一个人,还有一些莫明其妙的影响,例如疲劳程度、心境状况和健康状况等。在匹配算法中必须建立某些公差。假如某个调用者经认证只有93%的可信度,是否让其登录?某些系统使用智能卡存储每个用户的生物技术数据。这避免了需要主机数据库,而是依赖于卡的安全性来防止窜改。在用户和智能卡之间的协议中,结合了来自主机的随机质询,因而避免了重播攻击。,四、基于生物特征的身份认证,第5讲认证,优点:绝对无法仿冒的使用者认证技术。缺点:较昂贵。不够稳定(辩识失败率高)。,身份的零知识证明,第5讲认证,通常的身份认证都要求传输口令或身份信息(尽管是加密传输)。

28、如果不传输这些信息,身份也能得到证明就好了,这就需要零知识证明技术(The proof of zero knowledge)。零知识证明是这样一种技术,被认证方P掌握某些秘密信息,P想设法让认证方V相信他确实掌握那些信息,但又不想让V也知道那些信息。,第5讲认证,解释零知识证明的通俗例子是洞穴问题。如图:有一个洞,设P知道咒语,可打开C和D之间的秘密门,不知道者都将走入死胡同中,那么P如何向V出示证明使其相信他知道这个秘密,但又不告诉V有关咒语。,第5讲认证,P如何使V相信自己掌握了洞穴的秘密:1)V站在A点。2)P进入洞中任意一点C或D。3)当P进洞之后,V走到B点。4)V叫P:“从左边出来

29、”或“从右边出来”。5)P按要求实现(以咒语,即解数学难题)。6)P和V重复执行(1)(5)共n次。被认证方P掌握的秘密信息一般是长期没有解决的猜想问题的证明,但能通过具体的步骤来验证它的正确性。,杂凑函数,HASH函数把任意长的输入串变化为固定长的输出串的一种函数数字指纹有密钥控制无密钥控制,要求,输入长度任意。输出长度固定。计算性能好。单一性,常见单项杂凑函数,MD-4MD-5SHA,MD-5,明文分组,采用填充方法使其成为512bit的整数倍。每轮输出128bit,分四组。Hmd-5运算。,认证模式,认证是对网络中的主体进行验证的过程认证(authentication)是证明一个对象的身

30、份的过程。用户认证:基于使用者本身的认证。会话认证:对于用户访问服务权限的认证。客户认证:一般基于源地址而不是基于用户的访问授权的认证。,Kerberos 认证系统,问题,在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。服务器应能够限制非授权用户的访问并能够鉴别对服务的请求。工作站无法可信地向网络服务证实用户的身份,即工作站存在三种威胁。一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。,Kerberos的解决方案,在一个分布式的

31、client/server体系机构中采用一个或多个Kerberos服务器提供一个鉴别服务。,网络环境,第5讲Kerberos认证,SecurityServer,Fileserver,Printingserver,.,User 1,User 2,.,Attacker,第5讲Kerberos认证,窃听重放:利用先前的标签信息,获得以后对系统的访问权。假冒用户伪装机器,潜在的攻击,一、Kerberos 简介,第5讲Kerberos认证,Kerberos:希腊神话“三个头的狗地狱之门守护者”希望有三个功能:身份认证、记账、审核。Kerberos针对分布式环境,一些工作站可能安装于不安全场所,而且用户也

32、并非是完全可信的。客户在登录时,需要认证。用户必须获得由认证服务器发行的许可证,才能使用目标服务器上的服务。许可证提供被认证的用户访问一个服务时所需的授权资格。所有客户和服务器间的会话都是暂时的。,第5讲Kerberos认证,1、Kerberos的产生背景在网络系统中,用户需要从多台计算机得到服务,控制访问的方法有三种:a.)认证工作由用户登录的计算机来管理,服务程序不负责认证,这对于封闭式网络是可行的方案。b.)收到服务请求时,对发来请求的主机进行认证,对每台认证过的主机的用户不进行认证。半开放系统可用此方法。每个服务选择自己信任的计算机,在认证时检查主机地址来实现认证。,第5讲Kerber

33、os认证,C)在开放式系统中,主机不能控制登录它的每一个用户,另外有来自系统外部的假冒等情况发生,以上两种方法都不能保证用户身份的真实性,必须对每一个服务请求,都要认证用户的身份。开放式系统的认证的要求:1.)安全性:没有攻击的薄弱环节。2.)可靠性:认证服务是其他服务的基础,要可靠,不能瘫痪。3.)透明性:用户觉察不到认证服务,只是输入口令。4.)可扩展性:支持加入更多的服务器。,第5讲Kerberos认证,2、什么是KerberosKerberos:为网络通信提供可信第三方服务的面向开放系统的认证机制.每当用户C申请得到某服务程序S的服务时,用户和服务程序会首先向Kerberos要求认证对

34、方的身份,认证建立在用户和服务程序对Kerberos信任基础上。在申请认证时,C和S都是Kerberos认证服务的用户,为了和其它服务的用户区别,Kerberos用户统称为当事人(principle),principle可以是用户或者某项服务。,第5讲Kerberos认证,当用户登录到工作站时,Kerberos对用户进行初始认证,此后用户可以在整个登录时间得到相应的服务。Kerberos不依赖用户的终端或请求服务的安全机制,认证工作由认证服务器完成。时间戳技术被应用于防止重放攻击。Kerberos保存当事人及其密钥的数据库。共享密钥只被当事人和Kerberos知道,当事人在登记时与Kerber

35、os商定。使用共享密钥,Kerberos可以创建消息使一个当事人相信另一个当事人的真实性。Kerberos还产生一种临时密钥,称做对话密钥,通信双方用在具体的通信中。,第5讲Kerberos认证,Kerberos提供三种安全等级。1)只在网络开始连接时进行认证,认为连接建立起来后的通信是可靠的。认证式网络文件系统(Authenticated network file system)使用此种安全等级。2)安全消息传递:对每次消息都进行认证工作,但是不保证每条消息不被泄露。3)私有消息传递:不仅对每条消息进行认证,而且对每条消息进行加密。Kerberos在发送密码时就采用私有消息模式。,二、Ker

36、beros原理,第5讲Kerberos认证,1、Kerberos的组成MIT为雅典娜(Athena)计划开发的认证系统。组成:Kerberos应用程序库:应用程序接口,包括创建和读取认证请求,以及创建safe message 和private message的子程序。加密/解密库:DES等。Kerberos数据库:记载了每个Kerberos 用户的名字,私有密钥,截止信息(记录的有效时间,通常为几年)等信息。数据库管理程序:管理Kerberos数据库,第5讲Kerberos认证,KDBM服务器(数据库管理服务器):接受客户端的请求对数据库进行操作。认证服务器(AS):存放一个Kerberos数

37、据库的只读的副本,用来完成principle的认证,并生成会话密钥数据库复制软件:管理数据库从KDBM服务所在的机器,到认证服务器所在的机器的复制工作,为了保持数据库的一致性,每隔一段时间就需要进行复制工作用户程序:登录Kerberos,改变Kerberos密码,显示和破坏Kerberos标签(ticket)等工作。应用程序:,第5讲Kerberos认证,Kerberos的主要认证模型如下:出于实现和安全考虑,Kerberos认证服务被分配到两个相对独立的服务器。认证服务器AS:它同时应该连接并维护一个中央数据库存放用户口令、标识等)票据许可服务器TGS(Ticket Granting Ser

38、ver)。整个系统将由四部分组成:AS,TGS,Client,Server。,第5讲Kerberos认证,Server,Server,Server,Server,Ticket Granting Server,Authentication Server,Workstation,Kerberos Key Distribution Service,第5讲Kerberos认证,Kerberos 有两种证书:票据ticket和认证符authenticator。这两种证书都要加密,但加密的密钥不同。Ticket用来安全地在AS和S之间传递用户的身份,同时保证使用ticket的用户必须是ticket中指定的

39、用户。Ticket的组成:C/S的标识,client的地址,时间戳,生存时间,会话密钥五部分组成。Ticket一旦生成,在life指定的时间内可以被client多次使用来申请同一个server的服务。,第5讲Kerberos认证,Authenticator:提供信息与ticket中的信息进行比较,一起保证发出ticket的用户就是ticket中指定的用户。认证符有下列部分组成:client的名字,client的地址,记录当前时间的时间戳。authenticator只能在一次服务请求中使用,每当client向server申请服务时,必须重新生成Authenticator。,第5讲Kerberos

40、认证,通过三阶段六步操作,用户C和服务V互相验证彼此的身份,并且拥有只有C和V两者知道的会话密钥Kc,v,以后的通信都可以通过会话密钥得到保护。,AS,TGS,DB,用户C,服务器V,Kerberos,第5讲Kerberos认证,2、Kerberos工作原理常用术语的简写:C:客户机 AS:认证服务器 V:服务器IDc、IDv、IDtgs 分别为C、V、TGS的身份ADc:用户的网络地址TSi:第i个时戳Lifetime:第I个有效期限Pc:C上的用户口令,第5讲Kerberos认证,Kc:C和AS的共享密钥Kv:V和TGS的共享密钥Ktgs:TGS 和AS的共享密钥Kc,tgs:C与TGS的

41、共享密钥Kc,v:C与V的共享密钥,第5讲Kerberos认证,用户C请求服务S的整个Kerberos认证过程1)认证服务交换 用户C向AS发出请求,以获取访问TGS的令牌(票据许可证):Tickettgs得到初始化令牌的工作在用户登录工作站时进行,在用户看来和登录分时系统是完全相同的。登录时用户被要求输入用户名,输入后系统向AS发送一条包含用户和TGS服务两者名字的请求,以及时戳TS1(表示是新请求)。,AS检查用户有效,则随机产生用户和TGS通信的会话密钥Kc,tgs,并创建令牌Tickettgs,令牌包含用户名,用户地址,TGS服务名,当前时间(时戳TS2),有效时间,还有刚才创建的会话

42、密钥。然后将令牌用Ktgs加密。AS向C发送加密过的令牌Tickettgs和会话密钥Kc,tgs,发送的消息用只有用户和认证服务器A知道的Kc来加密,Kc值基于用户密码。,第5讲Kerberos认证,用户机器收到AS回应后,要求用户输入密码,将密码转化为DES密钥Kc,然后将AS发回的信息解开,保存令牌Tickettgs和会话密钥Kc,tgs,为了安全,用户密码Pc和密钥Kc则被丢弃。当用户的登录时间超过了令牌的有效时间时,用户的请求就会失败,这时系统会要求用户使用kinit程序重新申请令牌Tickettgs。用户运行klist命令可以查看自己所拥有的令牌的当前状态。,第5讲Kerberos认

43、证,2)C从TGS得到所请求服务的令牌Ticketv。一个令牌只能申请一个特定的服务,所以用户必须为每一个服务V申请新的令牌,用户可以从TGS处得到服务令牌Ticketv。用户程序首先向TGS发出申请令牌的请求。请求信息中包含V的名字,上一步中得到的请求TGS服务的加密令牌Tickettgs,还有加密过的认证符Authenticatorc。认证符含有:用户身份、网址、时戳。认证符与ticket不同,只用一次且有效期短。,第5讲Kerberos认证,如果有效,TGS生成用于C和V之间通信的会话密钥Kc,v,并生成用于C申请得到V服务的令牌Ticketv,其中包含C和V的名字,C的网络地址,当前时

44、间,有效时间和会话密钥Kc,v。令牌Ticketv的有效时间是初始令牌Tickettgs 剩余的有效时间和所申请的服务缺省有效时间中最短的时间。TGS用C和TGS之间的会话密钥Kc,tgs 加密Ticketv和会话密钥Kc,v,然后发送给用户C。C得到回答后,用Kc,tgs解密,得到所请求的令牌Ticketv和会话密钥Kc,v。,第5讲Kerberos认证,(3)客户机与服务器之间认证交换。C向V发送服务许可票据Ticketv 和认证符Authenticatorc,V收到后用Kv 解密Ticketv,然后用Kc,v解密认证符。比较得到的用户名,网络地址,时间等信息,判断C的身份,请求是否有效。

45、用户和服务程序之间的时钟必须同步在几分钟的时间段内,当请求的时间与系统当前时间相差太远时,认为请求是无效的,用来防止重放攻击。为防止重放攻击,V通常保存一份最近收到的有效请求的列表,当收到一份请求与已经收到的某份请求的令牌和时间完全相同时,认为此请求无效。,(3)客户机与服务器之间认证交换。当C也想验证V的身份时,V将收到的时间戳加1,并用会话密钥Kc,v加密后发送给用户,用户收到回答后,用Kc,v解密后对增加的时戳进行验证,从而确定V的身份。此后,客户与服务器之间通过共享的会话密钥秘密通信。,Kerberos V5的改进加密算法的多样化票据有效期延长 28*5分钟任意允许认证转发 C可让V1

46、代表自己访问V2多区域认证关系简化,第5讲Kerberos认证,3、Kerberos数据库管理认证工作由AS实现,它从Kerberos数据库中读取用户的信息来完成认证工作,对数据库操作是只读的。对数据库的更新和管理操作由另外的服务来完成,称做KDBM(Kerberos Database Management Service)。KDBM只能运行在主Kerberos服务器上,机器上维护可写的Kerberos数据库,而其他的认证服务程序则可运行在从Kerberos服务器上,机器上维护Kerberos的只读备份,完成认证工作,数据库复制软件用来完成从主机到从机的复制工作。,第5讲Kerberos认证,

47、1)KDBM服务程序(KDBM server)用于添加principle、改变其密码。KDBM服务请求是独一无二的,所以请求KDBM服务不需要向tgs申请令牌,而采用认证中的第一步和第三步,直接向认证服务器申请认证,这样做的目的是为了要求用户输入原来的密码。当用户不在时,别人可能会篡改用户的密码,尤其是超级用户,可以更改任何人的密码,所以要在申请KDBM服务时输入用户的密码。当KDBM收到请求时,比较请求的发出者和被操作者,当两者相同时,操作被允许。当两者不同时,在存取控制列表中寻找发出者的存在,如果存在,操作被允许,否则,操作被拒绝。KDBM存放所有请求的日志,防止异常情况发生。,第5讲Ke

48、rberos认证,2)kadmin和kpasswd命令Kadmin命令只能被Kerberos超级用户使用,用来添加principle和更改principle的密码。Kadmin运行时会要求输入超级用户密码,当一个用户为Kerberos超级用户时,会在原来的用户上创建一个admin实例(instance),admin实例的密码可以与原来用户的密码不同,kadmin要求输入 admin实例的密码。Kpasswd命令被principle用来修改Kerberos密码,同样要求输入用户原来的密码完成认证工作。,第5讲Kerberos认证,3)数据库复制为了提高系统的效率和可靠性,Kerberos在mas

49、ter上存放数据库,而在slave上存放数据库的只读副本。这样当master出现异常情况时,系统还可以完成日常的认证工作,并且多台认证服务器的使用减少了瓶颈的发生。但维持数据库的多个副本带来了如何保持各个副本间数据一致性的问题。有一个简单有效的办法可以解决这个问题,那就是每隔一个小时就进行一次从master到slave的转储工作。,第5讲Kerberos认证,为了保证数据库不被窃听和篡改,Kerberos使用以下措施:数据库中principle的所有密码在存储时都用Kerberos数据库专用密钥进行加密,这样在传输过程中即使被偷听,偷听者也无法得到想要的信息;在传输之前先传输校验和,这样当有多

50、出的冒充信息或者接收信息被篡改时,可以通过比较校验和及时发现。,第5讲Kerberos认证,Kerberos的局限性:1时间同步问题:因为整个Kerberos的协议都严重地依赖于时钟,而实际证明,要求在分步式系统环境中实现良好的时钟同步,是一个很难的课题。如果能够实现一种基于安全机制的时间服务,或是研制一种相对独立于计算机和网络环境、且基于一种或几种世界标准时钟的,能够准确进行时间转化和时间服务的联机物理时钟,这种问题将得到较好的解决;,第5讲Kerberos认证,2口令猜测问题:Kerberos的口令没有进行额外的特殊处理,以至于即使用强力攻击(即穷举法)的时间复杂度仅和口令的长度成比例,这

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号