生物指纹识别技术技术在访问控制的哪个环节中起作用

基于指纹认证技术的WEB访问控制
&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&
& 今天是:&&& 欢迎您光临[3edu教育网]!本站资源完全免费,无须注册,您最希望得到的,正是我们最乐于献上的。
◆您现在的位置:&&>>&&>>&&>>&&>>&&>>&论文正文
基于指纹认证技术的WEB访问控制
基于指纹认证技术的WEB访问控制
&&&&将本站加入收藏,以便日后访问。&&&&
基于指纹认证技术的WEB访问控制
(Based-on-Fingerprint-Identification Control of Access to WEB)
陈建校 石理
(西南交通大学 计算机与通信工程学院 四川成都 610031)
在网络安全方面,自动认证和密钥封装起着决定性的作用,直接关系到整个网络通信的安全强度。公钥密钥体制提供了一个较为安全的方法来进行信息交换和网络通信,但是,依然缺乏高度安全的自动认证系统。太复杂的口令容易忘记,然而,太简单的口令又容易被非法分子、黑客破译。个人的一些生物特征具有唯一性而且在生之日是不会变的。这些特性使得生物特征能够较好地应用到自动认证系统中。随着因特网用户的增多和因特网本身的发展,需要严格地控制网上高密度数据信息的访问权限。为此,本文分析了目前WEB访问控制现状,提出了基于指纹认证与密钥体制相结合的WEB访问控制方法,并分析了该控制方法的优缺点。
关键词:指纹认证;WEB访问控制;网络安全;密钥体制;
使用指纹自动认证技术,可以通过用户的指纹和按印行为来进行身份认证,从而避免了记忆口令的必要性。同时,这也要求被认证的本人亲自到现场,才能进行个人身份认证。指纹特征与公钥密钥和私钥密钥体制的结合使用,能够为WEB访问控制和电子商务提供强有力的安全性保障。在安全性方面,使用生物技术与其他技术相结合的方法是一个趋势。然而,生物特征技术中发展最为成熟的是指纹识别技术。指纹鼠标和指纹键盘的问世,高性能的指纹特征提取和比对算法,给基于指纹认证技术WEB访问控制技术提供了及时而又可行的必要条件。相信在随着指纹识别技术的发展,指纹鼠标和指纹键盘的大批量生产和出售,价格一定会降到大众可以接受的范围内,这样,通过指纹认证来控制对WEB的安全而有效的访问将会被广泛地采用。
2 WEB访问控制现状
目前,对WEB访问权限进行控制的方法是,给用户分配一个口令,或者给某一台计算机分配一定的权限。这样,只有拥有此口令的任何用户都可以执行该分配的权限,或者是只有此计算机拥有执行该分配的权限。用户名和口令都在WEB服务器上集中管理。这两种控制方法的缺陷是:对于使用口令控制法,用户口令不宜太长,否则会增加用户的记忆负担,但口令又不能太短,而且很容易遗忘口令,如果记载在介质上,又可能被窃取;后一种方法更不安全,任何人都可以在该计算机上执行被分配的权限,这是我们不愿意接受的状况。而且,无论是那一种方法,口令或者计算机的MAC地址在网上的传输一般都是没有明文传输,而不是密文传输,这很容易被黑客窃取。当然,有时,较为安全的传输是采用密文方式传输的。本文所提出的方法是比原来安全传输认证方式更为安全的方法,同时不需要记忆口令,又不会被任何人滥用自己权限的办法,来解决WEB安全访问控制问题。
《基于指纹认证技术的WEB访问控制》一文由3edu教育网www.3edu.net摘录,版权归作者所有,转载请注明出处!
【温馨提示】3edu教育网所有资源完全免费,仅供学习和研究使用,版权和著作权归原作者所有,如损害了您的权益,请与站长联系修正。
上一篇论文: 下一篇论文:指纹识别方案介绍_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
指纹识别方案介绍
&&超详细的介绍方案
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩20页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢下次自动登录
现在的位置:
& 综合 & 正文
本章中,你将会学习以下内容:
· 识别的方法和技术
· 生物识别技术
· 认证的方法、模型和技术
· 选择性访问控制、强制性访问控制和非选择性访问控制
· 稽核(Accountability)、监控和审计实践
· 发射安全和技术
· 访问控制实践和技术中可能遇到的安全威胁
信息安全的根本所在就是通过控制信息资源如何被访问来防范资源泄漏或未经授权的修改。访问控制的实现手段在本质上来讲都是处于技术的、物理的或管理的层面。
访问控制是一种安全手段,它控制用户和系统与其他的系统和资源进行通信和交互。它能够保护系统和资源免受未经授权的访问,并且在认证过程成功结束之后授权访问的等级。尽管我们经常认为用户是需要网络资源和信息的实体,但是还有许多其他类型的实体需要访问其他的作为访问控制的目标的网络实体和资源。在访问控制的环境中正确地理解主体和客体的概念是非常重要的。
访问是在主体和客体之间的一种信息的传输。主体是一个主动的实体,它提出对客体中的对象或数据的访问要求。主体可以是能够访问信息的用户、程序、进程。当程序访问文件时,程序是主体而文件是客体。客体是含有被访问信息的被动实体。客体可以是一台计算机,一个数据库,一个文件,一个计算机程序,目录,甚至是一个数据库中的一个表中的一个数据区。当你在数据库中查询信息的时候,你就是一个主动实体,而数据库就是一个被动客体。图4-1给出了主体和客体的关系。
访问控制包含的范围很广,它涵盖了几种不同的对计算机系统、网络和信息资源进行访问控制的机制。因为它是防范计算机系统和资源被非授权访问的第一道防线,所以其地位非常重要。提示用户输入用户名和密码才能使用该计算机的过程就是一种访问控制。一旦用户登录之后访问文件时,文件可能有一个包含能够访问它的用户和组的列表,如果用户不在这个列表上面,那么用户的访问要求被拒绝。用户的访问权限主要基于其身份、访问等级、和/或组成员身份。访问控制给予组织控制、限制、监控以及保护资源的可用性、完整性和机密性等能力。
主体是访问客体的主动实体;客体是被访问的被动实体
各种安全控制中三个主要的安全原则就是可用性、完整性和机密性。图4-2显示了这三个特性。这些已经在第3章接触过了,由于各章的核心内容都从一个特定的方面来和这些原则联系在一起,所以这些原则是贯穿整本书的主题。在第3章中,安全管理规程包含了确定那些能够破坏公司资源的可用性、完整性和机密性的威胁,并且还寻求经济有效的保护措施。本章将主要讨论三个原则被破坏的途径,包括如何通过访问控制的方法和技术来保护这些原则不受破坏。
安全的三个主要特性:可用性、完整性和机密性
嗨!我是可用的。答:不过没人需要你。
信息、系统和资源必须在时间上能够保证用户的使用,这样才不会影响工作的进程。对于用户来说,当他们在开展工作或完成他们的任务时,许多信息需要能够及时的访问到并且能够获取到。当信息不可访问时这一点就显得尤为突出。管理员都经历过因为这样或那样的原因某个文件服务器或某个常用数据库不能访问的遭遇。为了保证资源能够始终得到访问,一般采用容错和恢复机制。如果需要访问的数据没有准备好,那么用户的生产力就会受到影响。
信息有许多属性,例如准确性、相关性、时间性、机密性和安全性。对股票经纪人来讲,可能获取准确且及时的消息非常重要,这样他就能在合适的时间以合适的价格进行股票交易。股票经纪人并不关心信息的机密性,它是很容易获得的。一个主要依靠苏打配方来赚钱的软饮料公司可能关心的是这种商业秘密的机密性,并且需要采取安全措施来进行保密。
信息必须是准确的、完整的和不受非授权修改的。如果一种安全机制提供完整性,它将保护数据免受非授权的修改,同时如果发生了一些非法的修改,那么这种安全机制会警告用户或者将修改过的数据丢弃。举个例子,假设一个用户向网上银行提交一个请求来交纳他的水电费24.56美元。这个用户需要确定这个交易的完整性,即交易是没有受到非法修改,所以用户不会付出240.56美元。数据的完整性非常重要。如果一封机密的电子邮件从国务卿送往总统时被中途获取,然后进行了修改,在没有安全机制限制或警告总统已经被修改的情况下会怎么样呢?总统没有得到“我们盼望您和夫人今晚来拜访并和我们一起喝酒”的信息,而是得到了“我们轰炸了利比亚”的信息,那么结果就截然相反了。
这是我的秘密你不能知道。答:我根本不想知道。
机密性就是保护信息不对非授权的个人、程序以及进程泄漏。一些信息可能比其他信息更加敏感,需要更高级别的机密性。控制机制需要规定谁能够访问该数据以及一旦可以访问后能够对该数据进行什么样的操作。这些活动都需要被控制、审计和监控。需要机密保护的各类信息包括医疗记录、资金账户信息、犯罪记录、程序源代码、交易秘密和军事作战计划等等。能够提供机密性的安全机制包括加密、逻辑和物理上的访问控制、传输协议、数据库视图和流量控制等等。
对公司来讲,对数据进行分类是非常重要的,这样才能保证保护这些信息具有很高的优先级,才能保持它们的机密性。如果这些信息没有被分离出来,那么非常重要和非常次要的信息会具有同样的安全等级,这就要浪费大量的人力和物力。当公司在交易的过程中需要共享客户信息或签订经济合同时,可能需要在虚拟专用网技术中采用IPSec加密协议来对传输的数据进行加密。这肯定会占用一定的硬件资源、人力和财力,增加总的开销,但是通知今天食堂的特色菜就不需要同样级别的安全等级了。所以,保护数据机密性的第一步就是确定哪些信息是机密的,机密到什么程度,然后采用相应的安全策略来保护它。
不同的安全机制能够提供不同的可用性、完整性和机密性。我们需要保护数据的分类,需要评估安全的目标以确保采用合适的安全机制,因此就提出了这个问题并要对它进行仔
细的考虑。许多公司没有按照这些步骤来做,而是直接购买了最近冲击市场的“gee-whiz”产品,结果浪费了大量的人力和物力。
标识、认证、授权和稽核
对于用户来讲,如果他肯定是他所声称的那个人,他还有必需的证书,并且他被授予了一定的权利或特权能够完成某个操作,那么他就可以访问某类资源。一旦这些步骤成功完成,这个用户就能够访问和使用网络资源,不过还需要跟踪这个用户的活动并且能够对他的行为进行稽核。标识是一种能够确保主体(用户、程序或进程)就是它所宣称的那个实体的方法。标识可以通过一些证明来确认,这些证明可以是用户名或账号。为了能够正确的认证,用户还需要提供进一步的证明,这些证明可以是密码、口令、密钥、个人身份号码(PIN)、生物特征或令牌。这些证明将会和已经存储的这个主体的信息进行比较。如果这些证明和存储的信息匹配,那么主体就通过了认证,但是这还没有结束,一旦主体提供了证明并且通过了认证,主体将要访问的系统需要确定这个主体是否具备相应的权限来完成它将要执行的操作。系统会检查访问控制的真值表或比较安全列表来确认主体是否真的能够访问它需要访问的资源和执行它试图完成的操作。如果主体能够访问该资源,那么主体就被授权。尽管标识、认证和授权都有自己完整和互补的定义,但是它们在访问控制过程中都有自己明确的作用。一个用户可能能够顺利地通过网络的标识和认证,但是他可能不能被授权访问文件服务器上的文件。另一方面,用户能够被授权访问文件服务器上的文件,但是如果他不能被标识或认证,那么这些资源还是不能获得。图4-3解释了这三步必须都发生,主体才能访问到客体。
词语“逻辑的”和“技术的”在这个上下文中可以互换使用。可以想像,CISSP考试将替换使用逻辑控制和技术控制。
主体访问客体必需的三步:标识、认证和授权
主体在一个系统或者域内的行为需要具有一定的责任性。确保责任性惟一的方法就是主体能够被惟一地标识,并且主体的行为被记录在案。
逻辑访问控制是用于标识、认证、授权和稽核的工具。它是执行对系统、程序、进程和信息的访问控制策略的软件组件。逻辑访问控制能够嵌入到操作系统、应用程序、附加安全包,或在数据库和通信管理系统内。使访问控制和系统同步完成,并且没有对原有的性能产生影响,同时还保证所有的弱点都被覆盖,这是非常具有挑战性的。当然,如果这些很容易实现的话,那么安全专家就不能够赚大钱了。
如果资源是有价值的,它们需要被保护并且只能被一部分人访问到。
一个人的身份需要在认证的过程中确定。认证通常包含有两步:输入公共信息(用户名、工作证号、账号或部门ID),然后输入私人信息(固定的密码、智能令牌、可标识的密码、一次性密码、个人身份号码或数字签名)。在这两步中,输入公共信息是一个标识的过程,而输入私人信息是一个认证的过程。认证和标识所使用的每一项技术都有其优缺点,所以需要在特殊的环境中正确地对其进行评估,以便于采用正确的策略。
标识和认证
你这次是谁?
如果一个人(通过用户ID或类似的值)被确认了,那么他肯定通过了认证,也就是说他证明了他是谁。一般来讲,有三种认证的方式:他知道的内容,他持有的证明,他就是这个人。他知道的内容可以是一个密码,个人身份号码,母亲的乳名,或一把锁的暗码。通过他知道的内容来进行认证是最经济的。这种方法的不利的方面就是其他人也能很容易获得这个信息然后能够对系统进行非授权的访问。持有的证明包括钥匙、门卡或证章。这种方法在使用工具或者设备时常常使用。这种方法的缺点是证明容易丢失或被盗,从而也能导致非授权的访问。他就是这个人指的就是生物认证识别,它比前两者有意思一些。在这三种认证方式之外,加强认证(strong
authentication)包括其中的两种认证方式。使用生物识别技术并不能提供一个强有力的认证,这是因为它只是三种认证方式中的一种。生物识别技术只是证明了他是这个人,但是没有证明他知道什么,也没有认证他有没有证明。对于加强认证,生物识别技术必须和其他两种认证方式中的一种或两种结合起来使用。许多情况下都是进行生物扫描之前先输入个人身份号码。这就满足了“他知道什么”这一项。相反,在进行生物识别之前,可能需要刷一下磁卡,这就满足了“他有什么证明”这一项。不管采用什么识别系统,加强认证都必须至少包含三项中的两项。这也被称为双因子认证。
下面的内容主要解释当前常用的各种认证方式。
生物标识技术
生物标识技术是一种个人标识技术,它通过每个人所具有的惟一特征进行标识,这是准确标识的最有效且最准确的技术之一。生物标识技术是一个复杂的技术,所以它的花费要比其他类型的认证技术昂贵得多。系统首先扫描出人的特征,然后将这个特征和早期制作好的特征记录进行比较。因为这个系统检查人的指纹、视网膜或人的声音的特征,所以这种方法非常灵敏。系统必须能够准确地重复地测量出生物的或生理的特征。这一类的灵敏度也会导致假阴性或假阳性,系统必须经过仔细的校准,以确保假阴性和假阳性发生的概率非常低,从而使检测结果尽可能的准确。
生物标识技术可以利用
一个人的几种生理特征
生物认证系统拒绝一个已经授权的个人,称为第一类错误;当系统接受了一个本应该被拒绝的冒名顶替者,称为第二类错误。我们的目标就是要减少每一类错误发生的次数。当比较不同的生物认证系统时人们使用许多不同的变量,但是其中最重要的变量是:等误判率(crossover error rate,CER)。这个比例是一个百分数,它代表系统的错误拒绝和错误接受的比例相同时的比例值。在标定一个系统的准确度的时候,等误判率是非常重要的参数,一个CER值为3的系统要比CER值为4的系统的准确性高得多。
这个CER值有什么用呢?假如你准备买一个生物认证(Biometric)系统,你希望有一种办法比较不同系统的精确性。你可以查不同厂商的推销材料(一般都说自己的产品最好),另一种办法是通过比较CER值来确定一个产品是否比其他产品更精确,通常可以相信厂商提供的指标。当某个厂商告诉你,“我们的产品绝对没有第二类错误”,这表明他们的产品绝对不让一个冒充者通过认证。但是如果你问他关于第一类错误,他不好意思地回答,“我们产品的第一类错误率大约为90%”,这表明可能会有90%的合法用户不能通过认证。这可能会影响公司的生产率。因此,你可以问他们产品的CER值,即当第一类错误和第二类错误相等时的错误率,来理解产品的整体精确性。
不同场合有不同的安全级别,每个级别都规定只能接受多少个第一类和第二类错误发生。例如军事机构虽然可以允许一定的第一类错误,但绝对不能接受任何第二类错误的发生。因为所有生物认证系统都可以调,如果调低第二类错误率会导致第一类错误的增加。该军事机构明显希望把第二类错误率调到零,也就是说他们要承受更高的第一类错误率。
生物标识技术是一种非常昂贵的认证技术,它的广泛推广面临着许多障碍,这包括用户的可接受程度,前期特征记录非常耗时,还有工作效率的问题。通常人们都不愿意让一台机器去扫描自己的视网膜,或扫描自己的手掌的轮廓。对这种系统的冷漠导致了在社会上生物标识系统未能广泛使用。在特征记录提取时,用户总是被要求测量多次以获得清晰而且准确的个人特征。但是由于用户已经习惯了获得一个密码然后迅速地输入,所以他们对这种费时费力的特征提取不感兴趣。当一个系统标识用户的时候,可能系统需要用户反复的检查才能完成认证过程。如果系统没有读出清晰的视网膜图像或没有获得完整的声音特征,那么用户就必须再重复一遍标识过程。这样,工作效率就非常低了,用户也就失去了耐心,因而系统的可接受程度大打折扣。
检查个人生物特征的时候有许多不同类型的生物标识系统,每一个系统都必须经过特征提取阶段,获得生物数据然后存储在一个参考文件中。这个参考文件最后用于认证那些想通过标识的人,接下来我们对不同的生物标识系统以及需要提取的生理特征做一个总体的介绍。
指纹是由一些曲线和分叉以及一些非常微小的特征构成。正是这些微小的特征使得每一个人都具有明显的惟一的指纹特征。当一个人把他的手指放在认证装置上时,装置读出他的指纹并且和参考文件中的数据进行比较,如果两个非常吻合,那么这个人的身份就得到了确认。
指纹系统存储了完整的指纹,这样会包含很多信息,占用大量的硬盘资源并且在用户想通过认证时很难快速地完成比较过程。指纹扫描技术提取指纹中的一些特征并且存储这些特征信息,这样就占用了少量的硬盘资源并且获得了快速的数据库查询和比较。
手掌含有丰富的信息,它有许多特征都可以用于人的标识,手掌有折痕,起皱,还有凹槽,这些对于每一个人都是惟一的。手掌的扫描还包括每个手指的指纹,当把手放在认证装置上面时,就能扫描到这些信息,这些信息和参考文件中的信息进行比较,系统就能够识别出这个人的身份,确认或者拒绝。
人的手的形状(手的长度、宽度和手指)表示了手的几何特征,这个特征对于不同的人也显著不同,可以用于生物认证系统中进行识别。当一个人把手放在识别装置上,装置上面还有放手指的凹槽。系统读出手指以及整个手形的信息并且和参考文件中的数据进行比较,从而完成认证过程。
视网膜扫描
视网膜扫描系统扫描眼球后方的视网膜上面的血管的图案,这个图案也是对于不同的人完全不同。摄像头投射一束光进入眼睛,然后拍摄这个图案,最后和参考文件中的原有的信息进行比较。
虹膜是眼睛中位于瞳孔周围的一圈彩色的部分。虹膜有其独有的图案、分叉、颜色、环状、光环以及皱褶。这些特征中的每一项被获取之后然后和特征记录时收集到的信息进行比较。
当使用虹膜特征扫描生物认证技术时,光学部件必须放在合适的位置以至于太阳没有照入到光圈中,所以必须在室内完成该操作。
当一个人签名的时候,通常都会以同样的方式和速度完成。签名产生的电信号可以被生物认证系统捕获。在文件的签名过程中引起的物理移动产生电信号,这个信号提供了惟一的特征,它对于不同的人也完全不同。在动态签名中所含有的信息要比静态签名包含的信息多,所以有很多变量可以更准确地标识和认证一个人是否就是他所声称的那个人。
动态签名与数字签名不同。数字签名只是某个人的签名的电子复制,它不捕捉签名的速度、签名者握笔的方式,以及签名者签名时产生的压力,因此它不是生物特征识别系统。
动态键盘输入
动态签名获取的是人签名时所产生的信号,而动态键盘输入方法则是获取当人敲击特定字符串时所产生的电信号,当输入特定的字符串的时候,认证系统会捕获这种行为的速度和运动。每个人都有一个特殊的方式和速度。这类认证和输入密码相比较显得非常有效,因为输入密码只是简单地获得了密码。重复一个人的打字行为要比获得一个密码困难得多。
不同人的声音模式会存在一些微小的差别。识别系统就是先捕获声音,然后和参考文件中的信息进行比较,从而区别一个人与其他的人。在特征库记录的过程中,使被记录者说几个不同的单词。然后在他被认证的时候,识别系统将这些单词混杂在一起,然后让他再次读出给出的一系列单词,这可起到威慑作用,其他人肯定不敢通过录音,然后再播放录音来获得非授权的访问。
认证系统扫描人的脸部可以记录许多属性和特征。人都有不同的骨骼结构、鼻梁、眼眶、额头和下颚形状。这些特征在脸部扫描的过程中都被捕获然后和参考文件中的早期扫描下来的记录进行比较。如果信息完全吻合,那么这个人就被准确地认证了。
手形扫描主要是检查人手和手指的大小和宽度。而在手形拓扑扫描中拍摄到的是手的侧视图。手形拓扑主要检查沿着整个手形及其弯曲部分的不同的起伏形状。待认证的人把手放在认证装置上时,摄像头偏移到手的一侧,从不同的视角拍摄了手的图像,这与手形扫描相比可以获得更多的信息。
Biometrics Research: biometrics.cse.msu.edu
The Biometric Digest:
National Biometric Test Center: www.engr.sjsu.edu/biometrics
使用口令字是系统识别和系统认证最常用的方式之一。口令字是一个受保护的字符串,通常用于个人的认证。如前所述,认证基于三种方式:他知道的内容,他持有的证明,他就是这个人。口令字是属于“他知道的内容”这种方式。
口令字管理
通向我的最庄严的、最秘密的、最重要的信息的密码是什么?答:口令字。
尽管口令字是认证机制中最常用的方式之一,但是它也被认为是现有的安全机制中最脆弱的机制之一。为什么?一般用户都选择一些很容易猜到的口令字(配偶的名字,生日或狗的名字),并且用户也喜欢把口令字告诉别人,或多次把口令字写在一个贴条上并把它贴在键盘旁边。对于许多用户来说,除非他们的机器被黑客侵入或者秘密的信息被窃取使得他们大喊大叫暴怒之外,安全经常都不是他们使用计算机时最重要的事情或感兴趣的事情。
这时我们需要引入口令字管理。如果生成了合适的口令字,口令字还能够升级,能够完全保密,那么口令字就能够提供有效的安全保障。口令字生成器可以用于给用户产生口令字。这就使得用户不会只是用一些简单的字符例如“Bob”或“Spot”作为口令字。但是如果口令字生成器给用户提供了一个“kdjasijew284802h”的口令字,那么用户肯定会把口令字写在纸条上面,然后把它贴在显示器上面,这就违背了整个想法的原则。如果口令字生成器能够起作用的话,那么应该生成一些可能拼写的但又不是单词的口令字来帮助用户记忆,并且不要太复杂,否则用户就会又记到纸上去了。
如果用户能够自己指定口令字,那么操作系统必须使这些口令字满足一定的要求才算有效。操作系统可能要求口令字必须包含一定的字符数,和用户ID无关,还要包含特殊的字符,包含大小写,不容易被猜测到等等。操作系统还要跟踪该用户所产生的所有口令字,确保这些口令字不相同,并且要求用户周期性地更改其口令字,在这样的环境下这些措施使得攻击者很难猜测或者获取口令字。
如果一个攻击者在寻找口令字,那么他就可以尝试一些技术,例如监控、访问口令字文件、蛮力攻击、字典式攻击和社交工程等等。监控是指监听网络流量,然后捕获有用的信息,特别是用户输入的口令字,这个口令字能够被攻击者获取并在其他时候使用。可以访问的口令字文件一般都在认证服务器上,该文件包含许多用户的口令字,如果该文件被损坏,那么就会带来很大的破坏。这个文件必须使用访问控制机制和单向加密来进行保护。蛮力攻击是指使用工具通过组合许多可能的字符、数字和符号来循环反复地猜测口令字。字典式攻击是指使用含有成千上万的单词的字典文件和用户的口令字进行不断的比较直到匹配出用户的口令字。
还有一些技术可以为口令字及其使用提供另外的安全保护。当用户每次成功登录时,系统都会显示一条消息,告诉用户他上一次登录的日期和时间,他上一次登录的网络地址,以及是否有登录失败的记录。这些可以提醒用户是否有可疑的情况出现,是否有人想冒充他的身份。管理员可以设置操作参数以允许一定的失败登录的次数,否则用户的账号就被锁定,这也被称作“限制级”。如果达到了登录失败的次数的上限(或限制级),那么用户可能会被锁定5分钟或一天。这决定于系统管理员对其管理机制的考虑。也可以使用一个跟踪审计来跟踪用户账号的使用,成功和失败的登录次数的记录。这个记录需要包括日期、时间、用户名以及用户登录时所使用的工作站。
口令字的寿命需要比较短并且比较实际。口令字的寿命越短,那么口令字就越安全,越不容易被入侵者猜到。但是如果寿命非常短,那么会导致不必要的管理负担,而且也会使用户忘记到底哪个口令字是可用的。所以必须在安全性和实用性两方面取得平衡。
就像生活中的许多事情一样,教育是一把关键的钥匙。口令字的意义、口令字的保护和口令字的产生都应该放在安全教育里面,这样用户才能理解他们需要做些什么,为什么要保护口令字以及口令字如何会被盗用。其实用户应该是安全小组的一个外延,而不是处在对立的一面。
口令字检验器
许多组织使用字典式攻击的工具来对其用户产生的口令字进行测试,找出比较脆弱的口令字。这样可以使整个系统对常用来窃取口令字的字典式攻击或穷举法攻击不敏感。许多情况下网络管理员使用的工具和想要破获口令字的攻击者使用的工具完全一样,许多安全工具都具有这种双重身份。它们经常被安全专家和IT员工用来测试他们的系统的弱点,并且希望在攻击者找到这些弱点之前掩盖这些弱点。而攻击者则使用同样的工具在安全专家修复这些弱点之前找到这些弱点。这是一个永不停止的猫和老鼠赛跑的游戏。
如果一个工具被称为口令字检验器,那么它是一种安全专家用于检查口令字的安全性的工具。如果一个工具被称为口令字破译器,它经常被用于黑客攻击。但是,很多情况下,这两个工具是同一个工具。
口令字的时效
许多系统都让管理员给用户的口令字设置一个使用期限,强迫用户经过一段时间后就更改口令字。系统还记录最近使用过的5~10个口令字,使用户不能使用早先用过的口令字。
限制登录次数
可以设置一个失败记录次数的上限阈值。如果达到了这个阈值,那么用户的账号就被锁定一段固定的时间,这个锁定需要管理员手动地解除。这可以免受字典式攻击或穷举法攻击,这些攻击就是持续地试用口令字直到找到正确的用户名和口令字为止。
有感知的口令字(cognitive passwords)
你母亲的名字是什么?答:Shucks,我不记得了;我把它记在了一个地方。
有感知的口令字就是基于事实或判断的信息,它可以用来识别一个人的身份。用户可能要根据他的生活经历来回答几个问题。口令字可能非常难记住,但是对一个人来说他母亲的乳名或他毕业的学校校名可能是很容易记住的。当把这些信息登记之后,用户就能通过回答这些问题来进行认证,而不需要去记住一个口令字。这个认证过程对于那种用户无需每天使用的服务来说是最好的方式,它要比其他认证方式持续有效的时间长。这也可以用于桌面帮助服务,用户可以通过有感知的口令字来通过认证,在这种方法下处于帮助桌面的人可以确保和他对话的就是这个用户,并且需要帮助的用户不需要记住他可能三个月才使用一次的口令字。
一次性口令字
一次性口令字适合多少次?答:一次。
一次性口令字也叫做动态口令字。它在用户认证的时候使用,当口令字使用之后就失效再也不能使用了。因此,如果黑客获得了这个口令字,它不能被重用。动态口令字主要用于需要比静态口令字的安全等级高的安全机制当中。一次性口令字一共有两种:同步和异步。两种类型都由一个与服务器或工作站上的认证服务进行通信的令牌装置产生。下面的几节将讨论这些概念。
令牌装置又叫口令字生成器,它通常是一个便携式的装置,有一个LCD显示屏和一个按键面板。这个装置和用户使用的计算机硬件是分开的。令牌装置和认证服务必须是同步进行的,为了能够进行用户认证,就要使用相同的质询/应答方式。令牌装置提供给用户一串字符作为登录计算机使用的口令字。只有令牌装置和认证服务知道这些字符的意思,因为这两个是同步的,所以令牌装置产生的口令字正好和认证服务需要的口令字相符。这个口令字是一个一次性口令字,也叫做令牌,使用一次之后就失效了。
同步令牌装置和认证服务同步地使用时间或事件作为认证过程的内部标志。如果同步是基于时间的,那么在令牌装置和认证服务器上面必须具有准确的相同时间。令牌装置上面的时间值经密钥加密成口令字之后提交给用户,用户输入其用户名和该口令字到计算机中,然后计算机提交给进行认证服务的服务器。认证服务器对该口令字进行解密然后和期望的口令字进行比较,如果二者相符,那么用户就可以使用计算机和资源了。
如果令牌装置是基于事件的同步,那么用户需要初始化计算机上面的登录序列,然后按下令牌装置上面的一个按键,这就使令牌装置和认证服务进入下一个认证值。令牌装置对这个值进行加密然后显示给用户,用户将其ID和加密后的口令字输入计算机进行认证。对于时间或事件同步,令牌装置和认证服务都必须使用相同的密钥来进行加密和解密。
异步产生令牌的令牌装置使用一种质询/应答方式来和认证服务进行通信。在这种情况下,计算机首先显示给欲登录的用户一个来自认证服务的质询字符串,然后用户将这个质询字符串输入便携式的令牌装置中,令牌装置然后返回给用户一个字符串,最后用户将这个字符串输入到计算机中进行认证。如果输入的字符串和计算机期望的字符串匹配,那么用户就通过了认证,具体过程如图4-4所示。和同步的方式一样,这种异步的方法也产生一次性口令字,这个口令字有时候也称为令牌。
同步和异步令牌装置的实际的使用可能因生产厂商而异,但是重要的一点在于异步方式是基于质询/应答方式,而同步方式则基于时间同步或事件同步的机制。
1. 工作站显示出质询字符串。
2. 用户输入质询字符串和个人身份号码到令牌装置。
3. 令牌装置提供给用户一个不同的值。
4. 用户输入新的字符串到工作站。
5. 新字符串送往服务器上进行认证。
6. 和服务器上产生的字符串比较进行认证服务。
7. 用户通过认证,被允许访问工作站。
使用令牌装置的认证包括工作站、令牌装置和认证服务
如果用户在输入一次性口令字时共享了他的认证信息(用户名或ID),这两种令牌装置都会容易被冒充。令牌装置可能会断电或因其他故障而导致不能成功认证。但是,这类系统不容易被偷看、监听或口令字猜测。
如果用户在获取一次性口令前必须向令牌装置中输入口令字或PIN,强认证便发生了,因为用到了两个因子——用户知道的(PIN)和用户持有的(令牌装置)。
RSA SecurID: /products/securid
Token-based authentication: /.html
另一种身份识别的方式是提供私钥或数字签名。私钥和数字签名可以用在需要使用密码的地方。密码实际上是最脆弱的认证方式,当它在网络中传输的时候很容易被窃听。而私钥和数字签名认证主要用在那些比密码安全保护的安全等级更高的环境中。
私钥是一串加密字符,它只能被一个人持有,它决不能泄露给外部方面。而数字签名则使用私钥对哈希值(消息摘要)加密。使用私钥对哈希值进行加密的过程称为对一个消息数字签名。附于消息上的数字签名表明该消息来自特定的源头,并且消息在传输过程中未被更改。
公钥可以提供给任何人,这就是它为什么叫公钥的原因。我们将在第8章全面讨论公钥,私钥,数字签名和公钥基础设施(PKI)。不过现在我们已经了解到私钥和数字签名是另外的可以进行身份认证的一种安全机制。
口令词(passphrase)在认证过程中取代密码。之所以叫做词(phrase),就是因为一般它的字符长度要比口令字长一些。用户将该口令词输入到应用程序中,然后应用程序将这个词翻译成一个实际口令字(virtual password)。如果用户想通过一个应用程序例如PGP公钥加密程序的认证,他需要输入一个口令词,不妨假设为:“StickWithMeKidAndYouWillWear Diamonds”,应用程序将这个字符串转换为一个实际口令字,然后将这个口令字用于实际的认证过程。口令词比口令字更安全,因为它比较长,因而更不容易被攻击者获得。在许多情况下,用户记住一个口令词要比记住一个口令字容易一些。不过,口令词也有缺点,就是在认证过程中输入时间较长。
存储卡和智能卡的主要区别在于处理功能。存储卡可以存储信息,但是不处理信息。智能卡使用一些必要的硬件和逻辑来处理信息。存储卡存储有用户的认证信息,所以用户只需输入用户ID和PID之后就可以提交存储卡进行认证,如果二者匹配并且通过了认证服务,那么用户就通过了认证。在大多数情况下,标识数据被从存储卡中拉出,并随同PIN前往后端认证服务器。存储卡的一个例子就是进入某个房间时使用刷卡进行认证,用户首先输入自己的PIN,然后在读卡机上刷一下卡,如果卡和PIN能够匹配,那么读卡机就闪出绿灯,这样就可以进入到该房间。另外一个例子就是自动提款机(ATM),如果Buffy需要从她的账户中提出40美元,那么她需要输入账号,然后在ATM机读一下她的ATM卡。
存储卡可以用于计算机中,但是它需要有一个能够处理信息的读卡装置。这个读卡装置就增加了处理过程的费用,特别是每一台计算机都要安装这样的装置的时候。并且产生PIN和制作存储卡的开销也会增加整个认证过程的费用。存储卡提供了比密码更安全的认证机制,这是因为攻击者需要弄到卡并且知道PIN才能达到目的。系统管理员需要根据实际的情况来平衡这种基于存储卡的认证机制的优点和缺点。
我的智能卡要比你的存储卡更聪明。
由于智能卡本身就有一个微处理器和集成电路,所以智能卡有信息处理的能力。存储卡就没有这类硬件,所以也没有这种功能。由于智能卡能够处理存储在其中的信息,因而它提供了双因子认证,这是因为它需要用户输入PIN才能打开智能卡。这就意味着用户必须要提供“他知道的”(PIN)和“他拥有的”(智能卡)。
使用智能卡进行认证时,用户将卡插入到读卡机上并输入PIN,读卡机单向的对PIN进行转换然后将它存在读卡机上。读卡机然后在智能卡上进行同样的单向转换,然后比较这两个转换后得到的值。如果两个值匹配,那么读卡机对想使用该计算机的用户进行了认证。这种计算机上的认证可以是一次性的密码,或是通过质询/应答的方式,或是通过提供给用户一个用于PKI环境的私钥。
存储卡和智能卡
可用于认证用户
存储在智能卡上的信息只有当PIN输入正确时才能读出。这个事实以及卡的复杂性使得反向工程以及篡改密钥的方法不能生效。所以如果George丢失了他用于在网络上面进行认证的智能卡,捡到这个卡的人需要知道PIN才能从事破坏活动。还可以对智能卡进行编程,使之加密存储的信息,并检测任意的篡改事件。当检测到篡改时,存储在智能卡上的信息会被自动擦除。
和存储卡一样,使用智能卡的缺点也是配置读卡机,生成PIN以及制作智能卡的总的开销比较大。因为使用了额外的集成电路和微处理器,智能卡本身要比存储卡昂贵得多。
JavaWorld, " Smart Cards: APrimer": /javaworld/jw-12-1997/
jw-12-javadev.html
既然我知道你是谁了,那让我们看看我同不同意你做你想做的事情。
刚开始,认证和授权之间的区别可能有一点令人混淆。尽管这两个概念完全不同,但是它们需要互相配合才能完成让用户访问一个资源。认证是一个证明用户持有证明他身份的过程,系统可能知道了你是谁,但是它就允许你做你想做的事情吗?这个过程需要经过授权才能完成。
授权是每一个操作系统的核心组件,但是应用程序、附加安全工具包以及网络资源本身都可以提供类似的授权功能。如果Marge通过了系统的认证服务,她要求查看文件系统中的一个电子数据表格。当她找到了这个文件,然后用鼠标双击该文件的图标时,她看到的不是一个鼠标指针而是一个沙漏。此时系统正在检查Marge是否有权限来查看该表格的内容,同时也检查看Marge是否有修改、删除、移动和复制该文件的权限。一旦系统找到了这个访问控制矩阵,发现Marge确实具有查看该文件的权限,文件就被打开了。是否让Marge查看该文件的决定主要基于访问准则。访问准则是认证的根本所在。
你能够执行那个操作仅仅是因为我们喜欢你,而你戴了一顶好玩的帽子。
我们已经讨论了访问控制的基础。当规定一个主体对一个客体或者资源能够或者不能够进行访问时,这个话题将会涉及到非常小的细节问题。这种做法非常有用主要是因为网络管理员和安全专家当要求他们进行保护配置的时候,希望能够对资源进行充分的控制,而非常细节的问题可以使他们对每一个用户进行非常准确的控制。如果对资源的访问控制进行了完全的控制导致不存在有效的访问,这也是很失败的。这些选择非常有限,并且管理员也不能把控制权完全交给用户,这样就没有保护而言了。相反,有许多不同的方法来控制资源的访问。如果它们被充分的理解并且被合理的使用,那么可以提供非常合适的控制等级。
将访问权限交给主体是基于一种信任,这种信任是一种类似公司对主体的信任,并且主体需要知晓这种信任。公司完全信任地把文件和资料交给Joyce,这并不意味着她满足了需要知晓的原则从而能够获取到公司的纳税申报单和利润表单。如果Maynard满足了需要知晓的原则可以访问员工的工作记录,这并不意味着公司就信任他并把公司所有的资料都可以让他访问。这类的事情需要确定下来并整理到访问准则中去。不同的访问准则可以划分为角色、组、位置、时间和事务类型。
角色的访问原则在用户完成一类特殊的任务的时候,是一种非常有效的方式。这个角色是基于一项工作的安排或作用。如果公司里面有一个专门审计事件和审计日志的人,那么该角色需要对这类文件的读的权限,但是该角色不需要完全的控制权限,如删除、修改等等。
组是另外一种非常有效的分配访问控制权限的方法。如果几个用户同时需要对相同的信息资源进行相同安全等级的访问,那么将这几个人放在一个小组,然后将访问准则应用到这个小组而不是一个一个地分配给组里的每一个成员。如果一台打印机只是提供给一个组使用,当一个用户访问这台打印机时,他的组成员的身份将被审查。这是通过一种逻辑访问控制的机制来实现访问控制的一种方法。
物理或逻辑的位置也能够用于限制对资源的访问。一些文件可能只对能够登录到某台计算机上的用户使用,这意味着该用户可以物理地位于这台计算机上或从另外一台计算机远程登录到该计算机上。这个限制要通过几个服务器的配置来限制非授权的用户登录或是对服务器进行远程配置。
逻辑位置限制可以通过网络地址进行限制。如果一个网络管理员想保证只接受来自网络中一定范围的入侵检测管理终端的请求,则可以通过软件进行配置,拒绝所有来自该范围之外的请求。域名解析服务将一个域名解析成IP地址的配置过程实际上也是一个逻辑位置控制的例子。
一天的某一段时间或一个星期中的某天是另一个常用于访问控制的机制。如果安全专家希望保证没有人能够在晚8点到早4点访问薪水文件,这个配置可以通过限制这段时间的访问来实现。如果安全专家还想在银行关门的时间内不能进行银行交易,他可以通过这种逻辑控制机制来进行配置以限制周日这类行为禁止发生。
事务类型的限制可以用来控制在特殊功能作用下哪些数据可以访问以及对这些数据可以执行何种操作。在线的银行信息系统可以让一个用户查看他的账户余额,但是可能在他获得某种级别的访问权之前不允许他进行转账业务。一个银行出纳员可能可以把一张2000美元的支票兑换成现金,但是如果他想为客户兑换更多的现金,那么他必须让上级主管来输入访问密码。一个数据库管理员可能为人力资源部门建立一个数据库,但是有可能不允许阅读数据库中的秘密文件。这些都是通过事务类型的访问来进行访问控制的例子。
默认为拒绝访问
如果你不确定,就说“不”。
访问控制机制应该默认为拒绝访问,以提供必要的安全等级并且确保没有安全漏洞。对用户和组的访问控制有很大范围的控制级别,这取决于应用程序和/或操作系统。用户可能有读取、改写、删除、完全控制和无控制权等多种权限。如果安全机制默认为拒绝访问,这就意味着如果对于一个用户或者组没有明确标明权限配置,那么用户就不能够访问该资源。如果访问没有被明确允许,那么它肯定就是明确禁止了。安全的核心就是免受攻击,所以这是一种处理访问控制的最安全的方法。换句话说,所有的访问控制都应该基于从零访问开始的概念,并在这之上构建。不同于先给予所有权限,然后基于需知(need-to-know)原则取舍,更好的办法是从零开始,然后基于需知原则添加特权。
这里谈谈大多数访问控制列表(ACL)如何工作在路由器或包过滤的防火墙上。图4-5中显示的是从子网A可以访问子网B,而子网D则不可以访问子网A,子网B可以访问子网A。其他的没有标出的访问都默认为禁止访问。如果子网D想访问B,因为这没有在路由器的访问控制列表中明确标出,所以这个访问是禁止的。
没有明确标出允许的操作将会被禁止
如果你需要知道,我将告诉你。如果你不需要知道,那么离我远点儿。
需要知晓(need-to-know)的原则和最小特权的原则类似。管理员只希望用户在完成公司里面的工作时能够获得必要的权限即可。给用户提供更多的权限结果只会让你感到头疼,用户有可能滥用这些分配给他的权限。管理员希望只给用户最小的但是又能够刚好顺利完成工作所需的权限。这种管理就要基于用户需要知晓的内容以及必要的权限要求。管理员会配置访问控制机制使用户访问需要知晓的信息,但是也仅限于这一点点信息,从而实现了最小特权访问。
例如,如果管理层决定了复印工Dan需要知道他要复印的文件在什么地方以及如何打印它们,这就满足了Dan的需要知晓的原则。现在管理员可以给Dan他需要复印的文件的完全控制权,但是实际上这没有满足最小特权的原则。管理员应该限制Dan的权限,让他只能读取和打印必要的文件,其他的权限就没有了。否则的话,如果Dan意外地删除了整个文件服务器上面的文件,那么你认为哪个管理层应该负主要责任?答案肯定是分配访问权限的管理员。
决定用户安全需求以及访问如何被授权是非常重要的一件事情。是管理员或IT员工来配置访问控制以及安全策略来满足这些安全需求,但是决定用户的安全需求不是他们的事情。如果有一个专门的安全部门,那么管理层将负最终的责任,所以他们应该首先做出正确的判断和决定。
对于所有的事情我只想记住一个用户名和一个口令字。
大多数情况下,公司的员工需要在一天内访问许多台机器和资源才能完成他的任务。这就需要用户记住许多台计算机的用户名和口令字。在理想的情况下,用户只需要输入一个用户名和一个口令字就可以访问他工作的网络内部的所有资源。实际上这是非常难实施和非常难控制的。
因为客户/服务器技术的大量繁殖,网络已经由集中控制网络发展为导构的、分布式的网络环境。开放系统的发展以及大量应用程序、操作平台和操作系统的出现使得用户必须记住许多用户名和口令字才能够访问他所在的网络的不同资源。尽管不同的用户名和口令字提供了非常好的安全保障,但是它们经常对安全管理也不是很有利,并且给管理和维护网络的员工带来了很多的麻烦和开销。
一些网络管理员可能会说许多时间都花在了给那些忘记口令字的用户重设口令字。当忘记的口令字需要重新设置时,不只一个员工的工作受到了影响。重设口令字的网络管理员也不能从事其他的工作,并且如果口令字没有重设,员工也不能完成他的任务。许多帮助台的员工抱怨他们的时间主要花在那些忘记了口令字的用户身上。系统管理员也不得不管理在不同平台上面的用户账号,并且需要以保证安全策略整体性的方式来协同工作。有时候这种复杂性可能会导致非常失败的访问控制管理,产生许多安全漏洞,这是因为用户名和口令字可能通常被抄写下来并且贴在显示器或键盘的旁边。这种做法首先就破坏了使用口令字的目的。所以尽管在使用口令字上面花了大量的时间,但是这些并没有给我们提供更多的安全保障。
为了解决管理不同的网络环境、安全考虑和用户的习惯问题所带来的高成本,有人提出了单点登录(single sign-on)功能的概念。这种功能允许用户提交一次口令字后可以使用主域和备份域的所有资源。这大大减少了用户在访问资源时进行认证的时间,同时也让管理员非常容易地控制用户的访问。它通过减少用户抄写口令字的可能性和减少管理员增删用户账号以及修改访问权限的时间提高了安全性。当管理员想删除或挂起某个账号时,可以很容易实现,而不用去每一个平台上面进行操作。
所以这就是一种乌托邦式的理想情况,登录一次就可以畅通无阻。但是使这个泡沫破灭的是什么呢?可能主要是协同工作的问题。对于实际的单点登录,每个平台、应用程序和资源都需要接受相同的认证信息,并且使用相同的格式以及对它们的含义进行相同的解释。当Steve登录到NT 4.0工作站上面,通过混合模式的Windows 2000域控制器进行了认证,这需要认证才能访问苹果机、运行VisionFS的Unix服务器、大型主机服务器、MICR打印服务器以及在和绘图仪连接的备份域上面的Windows 98计算机。如果能够实现的话,这将是一个非常好的主意。
单点登录技术使用户
登录一次就可以访问
域内的所有资源
在单点登录环境中也存在一个安全问题,那就是一旦用户进入之后,他就可以在里面为所欲为了。如果攻击者能够通过破获或创建一个用户名来侵入到网络中,那么他就可以访问网络中的所有资源了。
有许多种单点登录的实现方案。每一种都有其优缺点和特性。很少看见一个实际存在的单点登录环境。但是你会发现许多计算机和资源使用相同的认证信息,而其他的资源则需要管理员的进一步授权或者是用户的进一步认证才能访问。下一节中将涉及到几种非常流行的单点登录的方法。
Single Sign-On Deployment Guide: /docs/manuals/security/SSO
The Open Group, "Single Sign-On":www.opengroup.org/security/sso
最简单的单点登录系统使用包含有每一个用户的ID、口令字和每一个平台的登录命令的批处理文件或者脚本。当用户需要访问资源的时候,脚本会在后台运行,并且执行同样的命令和操作,这些命令和操作是用户在认证时必须执行的。脚本使用宏语言来重放用户的键盘输入,提供工作在内核的命令。尽管这对于用户来说非常容易操作,但是管理员和工作人员要从事更多的事前工作。首先要编写脚本,当用户更改了ID或口令字时,脚本必须进行升级。因为这些脚本包含有认证信息,所以它们必须放在受保护的地方,脚本的传输也必须小心地操作。随着平台的升级与改变,那么脚本也许要进行相应的升级,才能保证用户的计算机、脚本以及资源的接口完全匹配。
Sam,在服务器前面有一只三头的狗!
Kerberos是希腊神话中守卫在地狱门口的一只三头狗的名字。这对于提供认证服务和信息保护的安全系统而言是一个重要的名字。Kerberos是一种认证协议,它在20世纪80年代中期作为MIT的“雅典娜”项目的一部分被设计出来。支持Kerberos协议的产品越来越多,所以它很有可能用来当做“看门狗”。
希腊神话中的三头狗Kerberos
保卫着通向地狱的大门
Kerberos是一个分布式环境中单点登录系统的实例,它也是多网络系统的一个实际标准。Kerberos能够和许多安全技术相互结合,这给公司在需要完全的安全策略时提供了灵活性和可扩展性。但是,这种开放的机制提出了协作性的问题。当厂商有很大的自由度来开发自己的产品时,那么这就意味着没有两个厂商能够完全生产出同样的产品。这就带来协作性和兼容性的问题。
Kerberos使用对称密钥加密体系,提供端对端的安全,这意味着在用户和服务程序之间传递保护信息时并不需要中间组件。尽管允许使用口令字进行认证,但是它在设计时已经消除了对网络传输口令字的需要。许多Kerberos实现方案都使用密钥而不是口令字。
Kerberos的主要组件
密钥分发中心(KayDistribution Center,KDC)是Kerberos系统中最重要的一个组件。KDC包含有所有的用户和服务的密钥。它具有密钥分发功能以及认证功能。客户和服务都非常信任KDC的完整性,这是Kerberos安全的基础。
KDC将安全服务提供给称为主体(Principals)的实体对象。这些主体可以是用户、应用程序或服务。KDC和每一个实体共享一个密钥(密钥可以用来加密和解密)。当它们共享一个密钥时,就意味着KDC使用密钥对数据进行加密,然后将它传给主体,主体再使用密钥对数据进行解密和处理。因为只有KDC和主体共享这个密钥,所以它们之间的通信可以免受网络窃听分析。KDC有一个数据库,库中包含有域内所有主体的认证信息以及它和每一个主体共享的密钥。
KDC产生的票证(ticket)用于一个主体(假设为用户)需要通过认证来访问另一个主体(假设为打印服务器)。票证就是用于主体对主体的认证。如果Emily需要使用打印服务器,她需要向打印服务器证明她就是她所宣称的那个人,并且她能被授权访问打印机。所以Emily需要向KDC申请一个票证。KDC授予Emily一个票证,然后Emily将这个票证提交给打印服务器,如果打印机认可这个票证,那么Emily就可以利用打印服务了。
KDC给一组组件和主体提供安全服务,这个组称为Kerberos的域(realm)。在这个域内KDC对所有的用户、应用程序和服务来讲都是可信任的认证服务器。KDC可以对一个域或几个域均有效。域使管理员能够逻辑地将资源和用户分组。
到目前为止,我们认识了向KDC进行认证的主体(用户或服务),KDC有一个数据库,数据库中包含有其域内每一个主体的信息。KDC持有和分发密钥和票证。票证用于主体之间的相互认证。那么它是怎么工作的呢?
Kerberos认证过程
用户和KDC共享一个密钥,而服务和KDC又共享另外一个密钥。用户和服务在开始时没有共享密钥,这样用户信任KDC是因为它们共享了一个密钥,它们之间可以对互相传递的数据进行加密和解密。同样的过程对于服务和KDC也是如此。一旦用户对服务进行了认证,它们就共享一个密钥,这个密钥可以使它们对相互通信的数据进行加密和解密。这就是Kerberos进行数据传输保护的工作过程。
那么你可能想知道具体的工作步骤,下面我们来看看:
1. Emily需要给她的侄子Katie打印一个非常重要的“生日快乐”的标语。
2. Emily机器上面的Kerberos客户程序提示她输入用户名,Emily输入了用户名,客户程序将这个用户名随同她申请的打印服务程序的名字传送给了KDC。
3. 作为KDC的一部分的票证授予服务接收到这个请求,并确认Emily和打印服务都在其数据库内。如果都在数据库内,KDC给Emily和打印服务程序都提供一个会话密钥。会话密钥的一部分使用服务程序的密钥进行加密,而另一部分则使用Emily的密钥进行加密。因为只有KDC和主体共享密钥,所以可以确保这个会话密钥来自于KDC。
4. KDC产生一个含有会话密钥的实例的服务票证,再将这个票证返回给Emily计算机上的客户端。客户软件提示Emily输入密码,一旦她输入了,客户端就将其转换为能够解密票证中会话密钥的密码。如果Emily没有输入正确的密码,客户端就不能生成正确的密码来解密票证,这就意味着Emily不能够通过认证和使用打印服务。但是,Emily是一个聪明的女孩,她记住了密码。
5. Emily计算机上面的客户端软件将票证中她的部分进行了解密,这就给她提供了一个会话密钥的复制,然后将这个票证送往打印服务端来对Emily进行认证。这个打印服务提供了必要的密钥来对票证解密,所以打印服务端也有了一个会话密钥的复制。
6. 所以客户端软件为Emily进行了票证解密,同时打印服务端也对票证解密并和Emily拥有完全相同的票证复制。Emily现在就通过了打印服务的认证,它们可以使用相同的会话密钥来对互相传送的数据进行加密和解密。
7. Emily现在就可以打印Katie的生日祝福标语了。这样你也可以坐下来喝杯水了。
所以用户Emily向KDC申请一个票证然后提供给打印服务,这个票证将会让她通过打印服务的认证,让她使用该服务。KDC确认了它知道Emily和打印服务,再把票证送给Emily。Emily然后将该票证送给打印服务端,这样她就被允许做她想要做的事情。图4-6简单地给出了这个过程的示意图。
认证服务(AS)是KDC中用于认证主体的部分,而票证授予服务(TGS)是KDC用于生成票证并把票证发送给主体的部分。必须要认识到会话密钥和密钥是不同的,密钥是KDC和主体之间进行共享的,而会话密钥则是两个主体之间进行共享的。会话密钥在需要的时候生成并在会话结束时销毁。这是Kerberos的一个非常基本的工作方式。有许多不同的安全技术可以嵌入到Kerberos结构框架中,并可以进行多种参数的多种配置。
用户在能够使用资源之前需要从KDC那儿获得一个票证
如果Kerberos实现配置为使用一个鉴别程序(authenticator),用户将向打印服务器发送用共享的会话密钥加密的身份信息和时间戳。打印服务器将解密这个信息,并将之与KDC发送来的、关于这个请求用户的身份数据进行比较。如果数据相同,打印服务器就允许用户发送打印作业。
时间戳用于防御重放攻击。打印服务器将会把送来的时间戳与自己的内部时间进行比较。这可以判别票证是否被攻击者嗅探和复制了,并在一段时间后重新提交,以伪装成合法用户获取未授权访问。
那么我们为什么要谈论Kerberos?这是因为它是单点登录的一个实例。用户需要输入一次用户名和密码并且只需要一次。票证可以依据管理员的设置而具有时间限制。多数情况下票证的生命周期是8个小时,所以第二天来的时候可能用户就需要再次输入认证信息了。
Kerberos的弱点
Kerberos通过使用它的加密算法和加密过程提供了数据的机密性,并提供了对资源的访问控制。它不能保护一台计算机或服务的可用性,这属于另外一种安全服务。下面列举了Kerberos可能存在的一些弱点:
· KDC是一个单一故障点。如果KDC出错,那么没有人能够访问所需的资源,所以在大多数情况下用户就不能正常工作。
· KDC必须能够以实时的方式处理大量请求。
· 密钥要暂时性地存放在用户的工作站上,这意味着入侵者有可能获得这个密钥。
· 会话密钥被解密然后驻留在用户的服务器或密码列表的缓存中,同样入侵者也可以获取这个密钥。
· Kerberos对于密码猜测非常脆弱。KDC并不能发现一个字典式攻击正在发生。
· 如果没有应用加密功能,Kerberos不能保护网络流量。
· 当用户改变密码时,Kerberos就改变了密钥,KDC用户数据库需要进行更新。
Kerberos FAQ:www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html
Kerberos papers and documentation: www.mit.edu/afs/athena.mit.edu/astaff/project
/kerberos/www/papers.html
SESAME(Secure European System for Applications in a Multi-vendorEnvironment)项目是另外一种单点登录技术,开发它的目的就是用来弥补Kerberos的一些不足。SESAME使用对称和非对称密码技术来保护数据交换以及进行主体试图访问网络资源时的认证。(Kerberos是一个严格基于对称密码的技术,而SESAME同时基于对称和非对称密码技术)。
Kerberos使用票证来做认证,而SESAME使用有特权属性证书(PrivilegedAttribute Certificates,PAC),其中包含主体的身份,允许访问范围,允许访问时间段和PAC的有效期限。PAC有数字签名,所以客体可以证实该PAC来自一个可信任的认证服务器,该服务器叫做有特权属性服务器(PAS)。该PAS与Kerberos系统中的KDC扮演一样的角色。当一个用户成功地通过认证服务(AS)时,他拿到一个令牌(token)并交给PAS。该PAS就给他生成一个PAC,用来交给被访问的资源(参见图4-7)。
一个安全标签由一个分类和不同的类别组成
SESAME in a Nutshell: www.cosic.esat.kuleuven.ac.be/sesame/html/sesame_what.html
SESAME links: www.cosic.esat.kuleuven.ac.be/sesame/html/sesame_links.html
无盘计算机,有时
&&&&推荐文章:
【上篇】【下篇】}

我要回帖

更多关于 生物指纹识别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信