《身份认证分析》PPT课件.ppt

上传人:sh****n 文档编号:13176626 上传时间:2020-06-06 格式:PPT 页数:83 大小:306KB
返回 下载 相关 举报
《身份认证分析》PPT课件.ppt_第1页
第1页 / 共83页
《身份认证分析》PPT课件.ppt_第2页
第2页 / 共83页
《身份认证分析》PPT课件.ppt_第3页
第3页 / 共83页
点击查看更多>>
资源描述
1,第七章身份认证,计算机系统安全,2,一、认证的基本原理,在现实生活中,我们个人的身份主要是通过各种证件来确认的,比如:身份证、户口本等。认证是对网络中的主体进行验证的过程,用户必须提供他是谁的证明,他是某个雇员,某个组织的代理、某个软件过程(如交易过程)。认证(authentication)是证明一个对象的身份的过程。与决定把什么特权附加给该身份的授权(authorization)不同。,第七讲认证,3,一、认证的基本原理,通常有三种方法验证主体身份。1)是只有该主体了解的秘密,如口令、密钥;2)是主体携带的物品,如智能卡和令牌卡;3)是只有该主体具有的独一无二的特征或能力,如指纹、声音、视网膜图或签字等。单独用一种方法进行认证不充分,第七讲认证,4,身份认证系统架构包含三项主要组成元件:认证服务器(AuthenticationServer)负责进行使用者身份认证的工作,服务器上存放使用者的私有密钥、认证方式及其他使用者认证的信息。认证系统用户端软件(AuthenticationClientSoftware)认证系统用户端通常都是需要进行登陆(login)的设备或系统,在这些设备及系统中必须具备可以与认证服务器协同运作的认证协定。认证设备(Authenticator)认证设备是使用者用来产生或计算密码的软硬件设备。,第七讲认证,5,1)口令机制用户名/口令认证技术:最简单、最普遍的身份识别技术,如:各类系统的登录等。口令具有共享秘密的属性,是相互约定的代码,只有用户和系统知道。例如,用户把他的用户名和口令送服务器,服务器操作系统鉴别该用户。口令有时由用户选择,有时由系统分配。通常情况下,用户先输入某种标志信息,比如用户名和ID号,然后系统询问用户口令,若口令与用户文件中的相匹配,用户即可进入访问。口令有多种,如一次性口令;还有基于时间的口令,第七讲认证,6,2)数字证书这是一种检验用户身份的电子文件,也是企业现在可以使用的一种工具。这种证书可以授权购买,提供更强的访问控制,并具有很高的安全性和可靠性。非对称体制身份识别的关键是将用户身份与密钥绑定。CA(CertificateAuthority)通过为用户发放数字证书(Certificate)来证明用户公钥与用户身份的对应关系。,第七讲认证,7,验证者向用户提供一随机数;用户以其私钥KS对随机数进行签名,将签名和自己的证书提交给验证方;验证者验证证书的有效性,从证书中获得用户公钥KP,以KP验证用户签名的随机数。,第七讲认证,8,3)智能卡网络通过用户拥有什么东西来识别的方法,一般是用智能卡或其它特殊形式的标志,这类标志可以从连接到计算机上的读出器读出来。访问不但需要口令,也需要使用物理智能卡。智能卡技术将成为用户接入和用户身份认证等安全要求的首选技术。用户将从持有认证执照的可信发行者手里取得智能卡安全设备,也可从其他公共密钥密码安全方案发行者那里获得。这样智能卡的读取器必将成为用户接入和认证安全解决方案的一个关键部分。,第七讲认证,9,4)主体特征认证目前已有的设备包括:视网膜扫描仪、声音验证设备、手型识别器等。安全性高。例如:系统中存储了他的指纹,他接入网络时,就必须在连接到网络的电子指纹机上提供他的指纹(这就防止他以假的指纹或其它电子信息欺骗系统),只有指纹相符才允许他访问系统。更普通的是通过视网膜膜血管分布图来识别,原理与指纹识别相同,声波纹识别也是商业系统采用的一种识别方式。,第七讲认证,10,用户名/口令具有实现简单的优点,但存在以下安全缺点:1、大多数系统的口令是明文传送到验证服务器的,容易被截获。某些系统在建立一个加密链路后再进行口令的传输以解决此问题,如配置链路加密机。2、口令维护的成本较高。为保证安全性,口令应当经常更换。另外为避免对口令的字典攻击,口令应当保证一定的长度,并且尽量采用随机的字符。但缺点是难于记忆。3、口令容易在输入的时候被攻击者偷窥,而且用户无法及时发现。简单和安全是互相矛盾的两个因素。,第七讲认证,11,1、安全与不安全的口令UNIX系统口令密码都是用8位(新的是13位)DES算法进行加密的,即有效密码只有前8位,所以一味靠密码的长度是不可以的。安全的口令要求:1)位数6位。2)大小写字母混合。3)字母与数字混合。4)口令有字母、数字以外的符号。,第七讲认证,二、基于口令的身份认证,12,不安全的口令则有如下几种情况:(1)使用用户名(帐号)作为口令。(2)使用用户名(帐号)的变换形式作为口令。将用户名颠倒或者加前后缀作为口令,比如说著名的黑客软件John,如果你的用户名是fool,那么它在尝试使用fool作为口令之后,还会试着使用诸如fool123、loof、loof123、lofo等作为口令,只要是你想得到的变换方法,John也会想得到。,第七讲认证,13,(3)使用自己或者亲友的生日作为口令。这种口令很脆弱,因为这样往往可以得到一个6位或者8位的口令,但实际上可能的表达方式只有1001231=37200种。(4)使用常用的英文单词作为口令。这种方法比前几种方法要安全一些。一般用户选择的英文单词几乎都落在黑客的字典库里。(5)使用5位或5位以下的字符作为口令。,第七讲认证,14,加强口令安全的措施:A、禁止使用缺省口令。B、定期更换口令。C、保持口令历史记录,使用户不能循环使用旧口令。D、用口令破解程序测试口令。,第七讲认证,15,2、口令攻击的种类计算资源依靠口令的方式来保护的脆弱性:网络数据流窃听。由于认证信息要通过网络传递,并且很多认证系统的口令是未经加密的明文,攻击者通过窃听网络数据,就很容易分辨出某种特定系统的认证数据,并提取出用户名和口令。口令被盗也就是用户在这台机器上的一切信息将全部丧失,并且危及他人信息安全,计算机只认口令不认人。最常见的是电子邮件被非法截获。,第七讲认证,16,认证信息截取/重放(Record/Replay)有的系统会将认证信息进行简单加密后进行传输,如果攻击者无法用第一种方式推算出密码,可以使用截取/重放方式。攻击者仍可以采用离线方式对口令密文实施字典攻击;对付重放的方法有:1在认证交换中使用一个序数来给每一个消息报文编号,仅当收到的消息序号合法时才接受之;2使用时间戳(A接受一个新消息仅当该消息包含一个A认为是足够接近A所知道的时间戳);3询问/应答方式(A期望从B获得一个新消息,则先发给B一个临时值,并要求后续从B收到的消息包含正确的这个临时值),第七讲认证,17,字典攻击:由于多数用户习惯使用有意义的单词或数字作为密码,某些攻击者会使用字典中的单词来尝试用户的密码。所以大多数系统都建议用户在口令中加入特殊字符,以增加口令的安全性。穷举尝试(BruteForce):这是一种特殊的字典攻击,它使用字符串的全集作为字典。如果用户的密码较短,很容易被穷举出来,因而很多系统都建议用户使用长口令。窥探:攻击者利用与被攻击系统接近的机会,安装监视器或亲自窥探合法用户输入口令的过程,以得到口令。,第七讲认证,18,社交工程:攻击者冒充合法用户发送邮件或打电话给管理人员,以骗取用户口令。比如,在终端上发现如下信息:Pleaseenteryourusernametologon:Yourpassword:这很可能是一个模仿登录信息的特洛伊木马程序,他会记录口令,然后传给入侵者。垃圾搜索:攻击者通过搜索被攻击者的废弃物,得到与攻击系统有关的信息,如果用户将口令写在纸上又随便丢弃,则很容易成为垃圾搜索的攻击对象。,第七讲认证,19,口令猜中概率公式:P=LR/SL:口令生命周期R:进攻者单位时间内猜测不同口令次数S:所有可能口令的数目。为降低猜中的概率:1减少口令使用寿命,即提高口令更换的频率;2降低进攻者单位时间内猜测尝试口令的次数;3增加可能口令的数目,即提高口令的字符个数。然而,口令的频繁更换增加了用户的负担,也为资深入侵者提供了条件(为了便于记忆,人们往往选择与其个人相关的口令,如某重要的日期),口令字符个数的增加也会增加用户的负担且不会对资深入侵者有更大影响,因此,手段2应是较为有效的防猜中手段。,第七讲认证,20,1.选择很难破译的加密算法让硬件解密商品不能发挥作用。2.控制用户口令的强度(长度、混合、大小写)3.掺杂口令先输入口令,然后口令程序取一个12位的随机数(通过读取实时时钟)并把它并在用户输入的口令后面。然后加密这个复合串。最后把64位的加密结果连同12位的随机数(叫做salt)一起存入口令文件。,第七讲认证,21,4.不要暴露账户是否存在的信息例:打入一个用户名后,不论账户是否存在,都在相同时间里要求输入口令。5.限制口令尝试次数。6.系统中只保存口令的加密形式,第七讲认证,22,7.一次性口令(OTP:OneTimePassword)在登录过程中加入不确定因素,使每次登录过程中传送的信息都不相同,以对付重放攻击。确定口令的方式:1)声称者与验证者两端共同拥有一串随机口令,在该串的某一位置保持同步。用于人工控制环境中。2)两端共同使用一个随机序列生成器,在序列生成器的初态保持同步。3)使用时戳,两端维持同步的时钟。,第七讲认证,23,三、基于智能卡的身份认证,1、智能卡的安全性IC卡是英文IntegratedCirtuit(集成电路)卡的缩写,也称“MEMORYCARD”和“SMARTCARD”,中文译作“聪明卡”、“智慧卡”和“智能卡”等。这种集成电路卡,是随着半导体技术的发展以及社会对信息的安全性和存储容量要求的日益提高而应运而生的。它是一种将具有加密、存储、处理能力的集成电路芯片嵌装于塑料基片上而制成的卡片,它的外型与普通的信用卡十分相似,具体尺寸为:长:85.6mm、宽:54mm、厚:0.8mmIC卡可简单地分为三种类型:存储卡、逻辑加密卡、CPU卡。,第七讲认证,24,IC卡优点:存储容量大、体积小而轻、保密性强、网络要求低数据可靠性高IC卡防磁、防静电、防潮、耐温、抗干扰能力强,一张IC卡片可重复读写十万次,卡中数据可保存几十年。IC卡读写操作通过电信号传输来完成,因而对计算机的实时性、敏感性要求降低。内部数据保密性、可靠性好,读写稳定可脱机工作,易于安装维护,而磁卡系统离不开网络;,第七讲认证,25,2、智能卡技术规范1)ISO7816描述智能卡底层接口标准,定义读卡器和智能卡之间如何传递字节流。此标准主要是定义了塑料基片的物理和尺寸特性(7816/1),触点的尺寸和位置(7816/2),信息交换的底层协议描述(7816/3),7816/4论述了跨行业的命令集。2)PC/SC(PersonalComputer/SmartCard)工作组Microsoft联合其它几家公司推出了称为PC/SC的智能卡应用程序标准,用于Win32平台的个人计算机与智能卡之间实现互通信。PC/SC工作组于1996年五月成立,目的在于规范一个开放的Windows接口。PC/SC工作组持有对PC-ICC互操作规范的所有权。,第七讲认证,26,3)OpenCard框架由IBM,Netscape,NCI和Sun在1997年3月27日提出的用于网络环境的智能应用框架。目的是支持智能卡应用程序在网络计算机、PC机、ATM和GSM平台上实现应用互操作。OpenCard还提供了到PC/SC的接口。4)JavaCard论坛1996年10月推出了JavaCardAPI规范,目前版本为2.1.1,1997年4月27日,JavaCard论坛正式宣布成立。JavaCard论坛的成立目的是完善JavaCardAPI规范,使之最终成为多应用智能卡的首选编程语言。,第七讲认证,27,JavaCard就是能够运行Java程序的智能卡。JavaCard在出厂时就在ROM中烧入了操作系统、JavaCard虚拟机、API类库和可选的applets,随后,初始化和个人化向EEPROM中写入数据。所谓JavaCard规范,主要是定义了Java作为一种独立于平台的编程技术在智能卡上的应用。JavaCardAPI与正式的国际标准(如ISO7816)和工业规范标准(如Europay/MasterCard/Visa)兼容。也就是说Javaapplet能够直接运行在遵循ISO7816标准的智能卡之上。,第七讲认证,28,第七讲认证,3、基于智能卡的认证机制在基于Web的电子商务应用中,Javaapplet与智能卡之间的通信是:应用程序与读卡器通信,而读卡器将使用上面介绍的标准与智能卡通信。在用户进行商务交易前,服务器首先使用智能卡完成用户身份的认证。身份认证过程中为了产生变动的密码一般采用双运算因子的计算方式,也就是加密算法的输入值有两个数值,其一为用户密钥、另一为变动因子,由于用户密钥为固定数值,因此变动因子必须不断变动才可以算出不断变动的动态密码。服务器及智能卡必须随时保持相同的变动因子,才能算出相同的动态密码。,29,第七讲认证,1)询问/应答认证变动因子是由服务器产生的随机数字。认证过程如下:1)登录请求。客户机首先向服务器发出登录请求,服务器提示用户输入用户ID和PIN。2)询问。用户提供ID给服务器,然后服务器提供一个随机串X(Challenge)给插在客户端的智能卡作为验证算法的输入,服务器则根据用户ID取出对应的密钥K后,利用发送给客户机的随机串X,在服务器上用加密引擎进行运算,得到运算结果RS。,30,第七讲认证,3)应答。智能卡根据X与内在密钥K使用硬件加密引擎运算,也得到一个运算结果RC,并发送给服务器。4)验证。比较RS和RC便可确定用户的合法性。由于密钥存在于智能卡中,运算过程也是在智能卡中完成,密钥认证是通过加密算法来实现的,因而极大地提高了安全性。并且每当客户端有一次服务申请时,服务器便产生一个随机串给客户,即使在网上传输的认证数据被截获,也不能带来安全上的问题。,31,三、基于智能卡的身份认证,第七讲认证,32,第七讲认证,询问/应答身份认证的优点:没有同步的问题。一片认证卡可以用来存取被不同认证服务器所保护的系统。最安全的认证方式。缺点:使用者必须按较多的按钮,操作较繁复。比较多输入的失误。,33,第七讲认证,2)时间同步认证变动因子使用服务器端与客户端的同步时间值。认证过程如下:1)用户向服务器发出登录请求,服务器提示用户输入用户ID和用户PIN。2)服务器根据用户ID取出对应的密钥K,使用K与服务器时间T计算动态密码RS。3)智能卡根据内在的密钥K与客户机时间T使用相同的专用算法计算动态密码RC,并发送给服务器。4)服务器比较RS与RC,如果相同则用户合法。,34,三、基于智能卡的身份认证,第七讲认证,时间同步认证卡在一个固定期间中(通常是一分钟)产生同一个动态密码,依据时间的流逝产生不同的密码。,35,第七讲认证,时间同步身份认证优点:易于使用。缺点:时间同步困难,可能造成必须重新输入新密码。软体认证卡采用PC的时刻,很可能随时被修改。常常需要与服务器重新对时。2.不如Challenge/Response认证更安全,36,第七讲认证,3)事件同步事件同步认证卡依据认证卡上的私有密钥产生一序列的动态密码,如果使用者意外多产生了几组密码造成不同步的状态,服务器会自动重新同步到目前使用的密码,一旦一个密码被使用过后,在密码序列中所有这个密码之前的密码都会失效。,37,三、基于智能卡的身份认证,第七讲认证,38,第七讲认证,事件同步的身份认证优点:容易使用。由于使用者无法知道序列数字,所以安全性高,序列号码绝不会显示出来。缺点:如果没有PIN号码的保护及认证卡借给别人使用时,会有安全的疑虑。,39,四、基于生物特征的身份认证,第七讲认证,对用户固有的某些特征进行测量,如指纹、声音或签字。这些需要特殊硬件,这就限制了生物技术只能用在比较少的环境中。其吸引人的地方是生物识别绝不可能丢失和被偷窃。实际上,存在着某些局限性。传统的安全常识认为认证数据应有规则地进行变化。而使用指纹阅读器难于做到这一点。某些方法也遭到了用户的反对。还有,因为生物技术具有极为本质的特点,因此不可能给出准确的答案。,40,第七讲认证,没有两个签字是绝对相同的,即使来自一个人,还有一些莫明其妙的影响,例如疲劳程度、心境状况和健康状况等。在匹配算法中必须建立某些公差。假如某个调用者经认证只有93%的可信度,是否让其登录?某些系统使用智能卡存储每个用户的生物技术数据。这避免了需要主机数据库,而是依赖于卡的安全性来防止窜改。在用户和智能卡之间的协议中,结合了来自主机的随机质询,因而避免了重播攻击。,41,四、基于生物特征的身份认证,第七讲认证,优点:绝对无法仿冒的使用者认证技术。缺点:较昂贵。不够稳定(辩识失败率高)。,42,身份的零知识证明,第七讲认证,通常的身份认证都要求传输口令或身份信息(尽管是加密传输)。如果不传输这些信息,身份也能得到证明就好了,这就需要零知识证明技术(Theproofofzeroknowledge)。零知识证明是这样一种技术,被认证方P掌握某些秘密信息,P想设法让认证方V相信他确实掌握那些信息,但又不想让V也知道那些信息。,43,第七讲认证,解释零知识证明的通俗例子是洞穴问题。如图:有一个洞,设P知道咒语,可打开C和D之间的秘密门,不知道者都将走入死胡同中,那么P如何向V出示证明使其相信他知道这个秘密,但又不告诉V有关咒语。,44,第七讲认证,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掌握的秘密信息一般是长期没有解决的猜想问题的证明,但能通过具体的步骤来验证它的正确性。Feige-Fiat-Shamir零知识身份识别协议1986年受到美国军方干预,45,Kerberos认证系统,46,网络环境,第七讲Kerberos认证,SecurityServer,Fileserver,Printingserver,.,User1,User2,.,Attacker,47,第七讲Kerberos认证,窃听重放:利用先前的标签信息,获得以后对系统的访问权。假冒用户伪装机器,潜在的攻击,48,一、Kerberos简介,第七讲Kerberos认证,Kerberos:希腊神话“三个头的狗地狱之门守护者”希望有三个功能:身份认证、记账、审核。Kerberos针对分布式环境,一些工作站可能安装于不安全场所,而且用户也并非是完全可信的。客户在登录时,需要认证。用户必须获得由认证服务器发行的许可证,才能使用目标服务器上的服务。许可证提供被认证的用户访问一个服务时所需的授权资格。所有客户和服务器间的会话都是暂时的。,49,第七讲Kerberos认证,1、Kerberos的产生背景在网络系统中,用户需要从多台计算机得到服务,控制访问的方法有三种:a.)认证工作由用户登录的计算机来管理,服务程序不负责认证,这对于封闭式网络是可行的方案。b.)收到服务请求时,对发来请求的主机进行认证,对每台认证过的主机的用户不进行认证。例:rlogin和rsh程序。半开放系统可用此方法。每个服务选择自己信任的计算机,在认证时检查主机地址来实现认证。,50,第七讲Kerberos认证,C)在开放式系统中,主机不能控制登录它的每一个用户,另外有来自系统外部的假冒等情况发生,以上两种方法都不能保证用户身份的真实性,必须对每一个服务请求,都要认证用户的身份。开放式系统的认证的要求:1.)安全性:没有攻击的薄弱环节。2.)可靠性:认证服务是其他服务的基础,要可靠,不能瘫痪。3.)透明性:用户觉察不到认证服务,只是输入口令。4.)可扩展性:支持加入更多的服务器。,51,第七讲Kerberos认证,2、什么是KerberosKerberos:为网络通信提供可信第三方服务的面向开放系统的认证机制.每当用户C申请得到某服务程序S的服务时,用户和服务程序会首先向Kerberos要求认证对方的身份,认证建立在用户和服务程序对Kerberos信任基础上。在申请认证时,C和S都是Kerberos认证服务的用户,为了和其它服务的用户区别,Kerberos用户统称为当事人(principle),principle可以是用户或者某项服务。,52,第七讲Kerberos认证,当用户登录到工作站时,Kerberos对用户进行初始认证,此后用户可以在整个登录时间得到相应的服务。Kerberos不依赖用户的终端或请求服务的安全机制,认证工作由认证服务器完成。时间戳技术被应用于防止重放攻击。Kerberos保存当事人及其密钥的数据库。共享密钥只被当事人和Kerberos知道,当事人在登记时与Kerberos商定。使用共享密钥,Kerberos可以创建消息使一个当事人相信另一个当事人的真实性。Kerberos还产生一种临时密钥,称做对话密钥,通信双方用在具体的通信中。,53,第七讲Kerberos认证,Kerberos提供三种安全等级。1)只在网络开始连接时进行认证,认为连接建立起来后的通信是可靠的。认证式网络文件系统(Authenticatednetworkfilesystem)使用此种安全等级。2)安全消息传递:对每次消息都进行认证工作,但是不保证每条消息不被泄露。3)私有消息传递:不仅对每条消息进行认证,而且对每条消息进行加密。Kerberos在发送密码时就采用私有消息模式。,54,二、Kerberos原理,第七讲Kerberos认证,1、Kerberos的组成MIT为雅典娜(Athena)计划开发的认证系统。组成:Kerberos应用程序库:应用程序接口,包括创建和读取认证请求,以及创建safemessage和privatemessage的子程序。加密/解密库:DES等。Kerberos数据库:记载了每个Kerberos用户的名字,私有密钥,截止信息(记录的有效时间,通常为几年)等信息。数据库管理程序:管理Kerberos数据库,55,第七讲Kerberos认证,KDBM服务器(数据库管理服务器):接受客户端的请求对数据库进行操作。认证服务器(AS):存放一个Kerberos数据库的只读的副本,用来完成principle的认证,并生成会话密钥数据库复制软件:管理数据库从KDBM服务所在的机器,到认证服务器所在的机器的复制工作,为了保持数据库的一致性,每隔一段时间就需要进行复制工作用户程序:登录Kerberos,改变Kerberos密码,显示和破坏Kerberos标签(ticket)等工作。应用程序:,56,第七讲Kerberos认证,Kerberos的主要认证模型如下:出于实现和安全考虑,Kerberos认证服务被分配到两个相对独立的服务器。认证服务器AS:它同时应该连接并维护一个中央数据库存放用户口令、标识等)票据许可服务器TGS(TicketGrantingServer)。整个系统将由四部分组成:AS,TGS,Client,Server。,57,第七讲Kerberos认证,Server,Server,Server,Server,TicketGrantingServer,AuthenticationServer,Workstation,KerberosKeyDistributionService,58,第七讲Kerberos认证,Kerberos有两种证书:票据ticket和认证符authenticator。这两种证书都要加密,但加密的密钥不同。Ticket用来安全地在AS和S之间传递用户的身份,同时保证使用ticket的用户必须是ticket中指定的用户。Ticket的组成:C/S的标识,client的地址,时间戳,生存时间,会话密钥五部分组成。Ticket一旦生成,在life指定的时间内可以被client多次使用来申请同一个server的服务。,59,第七讲Kerberos认证,Authenticator:提供信息与ticket中的信息进行比较,一起保证发出ticket的用户就是ticket中指定的用户。认证符有下列部分组成:client的名字,client的地址,记录当前时间的时间戳。authenticator只能在一次服务请求中使用,每当client向server申请服务时,必须重新生成Authenticator。,60,第七讲Kerberos认证,通过三阶段六步操作,用户C和服务V互相验证彼此的身份,并且拥有只有C和V两者知道的会话密钥Kc,v,以后的通信都可以通过会话密钥得到保护。,AS,TGS,DB,用户C,服务器V,Kerberos,61,第七讲Kerberos认证,2、Kerberos工作原理常用术语的简写:C:客户机AS:认证服务器V:服务器IDc、IDv、IDtgs分别为C、V、TGS的身份ADc:用户的网络地址TSi:第i个时戳Lifetime:第I个有效期限Pc:C上的用户口令,62,第七讲Kerberos认证,Kc:C和AS的共享密钥Kv:V和TGS的共享密钥Ktgs:TGS和AS的共享密钥Kc,tgs:C与TGS的共享密钥Kc,v:C与V的共享密钥,63,第七讲Kerberos认证,用户C请求服务S的整个Kerberos认证过程1)认证服务交换用户C向AS发出请求,以获取访问TGS的令牌(票据许可证):Tickettgs得到初始化令牌的工作在用户登录工作站时进行,在用户看来和登录分时系统是完全相同的。登录时用户被要求输入用户名,输入后系统向AS发送一条包含用户和TGS服务两者名字的请求,以及时戳TS1(表示是新请求)。,64,AS检查用户有效,则随机产生用户和TGS通信的会话密钥Kc,tgs,并创建令牌Tickettgs,令牌包含用户名,用户地址,TGS服务名,当前时间(时戳TS2),有效时间,还有刚才创建的会话密钥。然后将令牌用Ktgs加密。AS向C发送加密过的令牌Tickettgs和会话密钥Kc,tgs,发送的消息用只有用户和认证服务器A知道的Kc来加密,Kc值基于用户密码。,65,第七讲Kerberos认证,用户机器收到AS回应后,要求用户输入密码,将密码转化为DES密钥Kc,然后将AS发回的信息解开,保存令牌Tickettgs和会话密钥Kc,tgs,为了安全,用户密码Pc和密钥Kc则被丢弃。当用户的登录时间超过了令牌的有效时间时,用户的请求就会失败,这时系统会要求用户使用kinit程序重新申请令牌Tickettgs。用户运行klist命令可以查看自己所拥有的令牌的当前状态。,66,1.CAS:IDC|IDtgs|TS12.ASC:EKcKc,tgs|IDtgs|TS2|Lifetime2|Tickettgs其中:Tickettgs=EKtgsKc,tgs|IDc|ADc|IDtgs|TS2|Lifetime2说明:1.不输入C的口令,就不能解开来自AS的信息2.TS1时戳用来防止重放攻击;3.Kc由用户口令导出;4.Kc,tgs是C和TGS间的会话密钥。,67,第七讲Kerberos认证,2)C从TGS得到所请求服务的令牌Ticketv。一个令牌只能申请一个特定的服务,所以用户必须为每一个服务V申请新的令牌,用户可以从TGS处得到服务令牌Ticketv。用户程序首先向TGS发出申请令牌的请求。请求信息中包含V的名字,上一步中得到的请求TGS服务的加密令牌Tickettgs,还有加密过的认证符Authenticatorc。认证符含有:用户身份、网址、时戳。认证符与ticket不同,只用一次且有效期短。,68,第七讲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。,69,第七讲Kerberos认证,3.CTGS:IDv|Tickettgs|AuthenticatorcAuthenticatorc=EKc,tgsIDc|ADc|TS3说明:TGS拥有Ktgs,可以解密Tickettgs,然后使用从Tickettgs得到的Kc,tgs来解密Authenticatorc将认证符中的数据与票据中的数据比较,以验证票据发送者就是票据持有者。4.TGSC:EKc,tgsKc,v|IDv|TS4|TicketvTicketv=EKvKc,v|IDc|ADc|IDv|TS4|Lifetime4,70,(3)客户机与服务器之间认证交换。当C也想验证V的身份时,V将收到的时间戳加1,并用会话密钥Kc,v加密后发送给用户,用户收到回答后,用Kc,v解密后对增加的时戳进行验证,从而确定V的身份。此后,客户与服务器之间通过共享的会话密钥秘密通信。,71,第七讲Kerberos认证,3、Kerberos数据库管理认证工作由AS实现,它从Kerberos数据库中读取用户的信息来完成认证工作,对数据库操作是只读的。对数据库的更新和管理操作由另外的服务来完成,称做KDBM(KerberosDatabaseManagementService)。KDBM只能运行在主Kerberos服务器上,机器上维护可写的Kerberos数据库,而其他的认证服务程序则可运行在从Kerberos服务器上,机器上维护Kerberos的只读备份,完成认证工作,数据库复制软件用来完成从主机到从机的复制工作。,72,第七讲Kerberos认证,2)kadmin和kpasswd命令Kadmin命令只能被Kerberos超级用户使用,用来添加principle和更改principle的密码。Kadmin运行时会要求输入超级用户密码,当一个用户为Kerberos超级用户时,会在原来的用户上创建一个admin实例(instance),admin实例的密码可以与原来用户的密码不同,kadmin要求输入admin实例的密码。Kpasswd命令被principle用来修改Kerberos密码,同样要求输入用户原来的密码完成认证工作。,73,第七讲Kerberos认证,3)数据库复制为了提高系统的效率和可靠性,Kerberos在master上存放数据库,而在slave上存放数据库的只读副本。这样当master出现异常情况时,系统还可以完成日常的认证工作,并且多台认证服务器的使用减少了瓶颈的发生。但维持数据库的多个副本带来了如何保持各个副本间数据一致性的问题。有一个简单有效的办法可以解决这个问题,那就是每隔一个小时就进行一次从master到slave的转储工作。,74,第七讲Kerberos认证,为了保证数据库不被窃听和篡改,Kerberos使用以下措施:数据库中principle的所有密码在存储时都用Kerberos数据库专用密钥进行加密,这样在传输过程中即使被偷听,偷听者也无法得到想要的信息;在传输之前先传输校验和,这样当有多出的冒充信息或者接收信息被篡改时,可以通过比较校验和及时发现。,75,第七讲Kerberos认证,Kerberos的局限性:1时间同步问题:因为整个Kerberos的协议都严重地依赖于时钟,而实际证明,要求在分步式系统环境中实现良好的时钟同步,是一个很难的课题。如果能够实现一种基于安全机制的时间服务,或是研制一种相对独立于计算机和网络环境、且基于一种或几种世界标准时钟的,能够准确进行时间转化和时间服务的联机物理时钟,这种问题将得到较好的解决;,76,第七讲Kerberos认证,2口令猜测问题:Kerberos的口令没有进行额外的特殊处理,以至于即使用强力攻击(即穷举法)的时间复杂度仅和口令的长度成比例,这将形成一个两难的局面:或是增加密钥长度换取更高的安全,但这会造成用户的使用困难(可以参照口令短语方式解决此困难)和增加系统加/解密开销。,77,第七讲Kerberos认证,3认证域之间的信任问题:认证域之间的多级跳跃过程复杂且不明确,相互信任和协调不方便。若各Kerberos区域形成复杂或不规则的网状结构,则要求方便的域间服务,将付出极大的代价,即系统的可扩充性不强。针对这种无序的状况,应有规划有目的地建立起全球一体化的分层(树状)结构,形成良好的信任链条。,78,第七讲Kerberos认证,4重放攻击的问题:长票的生存期较长,容易被重放攻击;对短票而言,如果攻击者技术高明,也有机会重放攻击,况且攻击者可以着手破坏系统的时钟同步性。我们建议,在Kerberos引入序列号循环机制,即让传送的消息带上一定的序列号,这些序列号在由系统循环地赋予消息,再结合系统原有的生存期控制,将有效地保证一定的时间段里只能存在唯一的合法消息,从而消除了重放的可能性。当然,这必须付出一定的系统开销代价。,79,第七讲Kerberos认证,5密钥的存储问题:Kerberos认证中心要求保存大量的共享私钥,无论是管理还是更新都有很大的困难,需要特别细致的安全保护措施(甚至应采用硬件/物理方法),将付出极大的系统代价。6系统程序的安全性、完整性问题:对Kerberos系统程序进行攻击,特别是恶意篡改登录程序,是有效的攻击方法。所以,必须花一定的系统代价去防范对认证系统本身的集中攻击。其中,建立高性能的防火墙和进行日志是必要的。,80,X.509认证业务,Kerberos认证:基于对称密钥体制X.509认证:基于公开密钥体制X.509认证过程:假设通信双方都知道对方的公钥,或者双方都从目录服务器获得对方的公钥证书。认证过程有三种:1)单向身份认证:用户A将消息发往B,以向B证明:A的身份、消息是由A产生的;消息的意欲接收者是B;消息的完整性和新鲜性。,81,AB:IDA|ESA(TA|RA|IDB|EPB(KAB)说明:IDA、IDB:A和B的身份标识。ESA:用A的私钥加密EPB:用B的公钥加密TA:A产生消息的时戳,包括产生时间、截止时间RA:A产生的不会重复的随机数,防止重放、伪造;B在收到的消息截止时间内要一直保存RA。KAB:双方欲建立的会话密钥B要验证:A的证书的有效性;A的签名;消息完整性;接收者是否为B;时戳是否是当前时间;RA有无重复,A,B,单向身份认证,82,在单向认证基础上,B向A做出应答,以证明:B的身份、应答是B产生的;应答的意欲接收者是A;应答消息是完整的和新鲜的。AB:IDA|ESA(TA|RA|IDB|EPB(KAB)BA:ESB(TB|RB|RA|IDA|EPA(KBA)应答消息包含由A发来的一次性随机数RA,以使应答消息有效。TB、RB是B的时戳和随机数KBA:双方的会话密钥,A,B,双向身份认证,83,在双向认证基础上,A再向B做出应答,即构成三向身份认证。AB:IDA|ESA(TA|RA|IDB|EPB(KAB)BA:ESB(TB|RB|RA|IDA|EPA(KBA)AB:ESA(RB|IDB)三向身份认证的目的是将收到的对方发来的一次性随机数又返回给对方,因此双方不需要检查时戳只要检查对方的一次性随机数即可判断出重放攻击。在通信双方无法建立时钟同步时,就要用此方法。,A,B,三向身份认证,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!