电商安全:身份认证

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

030903009纪佳钰身份认证是在计算机网络中确认操作者身份的过程。基于如下一个或几个因素:用户所知道的东西:例如口令、密码等,用户拥有的东西,例如印章、智能卡(如信用卡等);用户所具有的生物特征:例如指纹、声音、视网膜、签字、笔迹等。计算机网络世界中一切信息包括用户的身份信息都是用一组特定的数据来表示的,计算机只能识别用户的数字身份,所有对用户的授权也是针对用户数字身份的授权。如何保证以数字身份进行操作的操作者就是这个数字身份合法拥有者,也就是说保证操作者的物理身份与数字身份相对应,身份认证就是为了解决这个问题,作为防护网络资产的第一道关口,身份认证有着举足轻重的作用。身份认证的几个相关概念1.认证(Authentication)在做任何动作之前必须要有方法来识别动作执行者的真实身份。认证又称为鉴别、确认。身份认证主要是通过标识和鉴别用户的身份,防止攻击者假冒合法用户获取访问权限。2.授权(Authorization)授权是指当用户身份被确认合法后,赋予该用户进行文件和数据等操作的权限。这种权限包括读、写、执行及从属权等。3.审计(Auditing)每一个人都应该为自己所做的操作负责,所以在做完事情之后都要审计。身份认证分为单向认证和双向认证。如果通信的双方只需要一方被另一方鉴别身份,这样的认证过程就是一种单向认证。在双向认证过程中,通信双方需要互相认证对方的身份。然后今天我主要是讲身份认证的一种技术:S/Key一次性口令认证系统S/Key一次性口令系统是一个基于MD4和MD5的一次性口令生成方案(一次性口令认证(OTP)系统是为了防止黑客通过一次成功的口令窃取而永久地获得系统访问权而设计的一种身份认证技术)。他可以对访问者的身份与设备进行综合验证。S/Key协议的操作是基于客户端/服务器端模式。客户端可以是任何设备,如普通的PC或者是有移动商务功能的手机。而服务器一般都是运行Unix系统。最新的S/Key口令协议在RFC2289文挡中定义。假如A要向B进行身份鉴别,一次性口令协议如下:首先A向出示B自己的ID,请求认证。B发给A一个挑战。挑战(challenge)由一个种子(seed)值和一个迭代值(iteration)组成。迭代值是一个计数器,每向B进行身份验证就减少一次。A根据挑战和自己口令生成一个通行证。计算方法如下:(1)将种子和口令串接起来。(2)将串接的字符串用散列函数进行迭代值(迭代值为一整数)次散列,产生消息摘要。(3)将消息摘要转换成可以打印的字符作为通行证。A向B提供通行证请求身份认证。B收到通行证后,把通行证再散列一次,其值同上次A成功登录的口令(或初始口令)比较,如果相同则通过验证并保存这次成功通过验证的通行证,否则验证不通过。ABID挑战(种子值+通行证)通行证1)将种子和口令串接起来。(2)将串接的字符串用散列函数进行迭代值(迭代值为一整数)次散列,产生消息摘要。(3)将消息摘要转换成可以打印的字符作为通行证。B收到通行证后,把通行证再散列一次,其值同上次A成功登录的口令(或初始口令)比较,如果相同则通过验证并保存这次成功通过验证的通行证,否则验证不通过。验证三步实现S/Key身份认证。其实从理论上说,S/Key身份认证很容易实现,只要通过三个步骤就可以轻易实现。第一步:连接请求人在客户端上,往往就是用户自己的主机,输入账户名。若利用S/Key的专业术语,这个用户名又叫做通行短语。当用户打开这个客户端,S/Key服务器也同时传送过来一个种子。这个种子往往是以明文的形式传输。第二步:客户端会多次应用安全哈希函数,产生一个64位的安全性口令。通常情况下,客户端会进行多达98次的哈希函数运算,以提高口令的安全性,增加其破译难度。哈希是一种加密校验和或消息完整性代码(MIC),每一方都必须通过计算才能验证消息。例如,发送计算机使用哈希函数和共享密钥计算消息的校验和,并在数据包中将其包含进来。接收计算机必须对接收的消息和共享密钥执行同样的哈希函数,并将其与原始消息(包含在发送方的数据包中)加以比较。如果消息已经在传输过程中更改,哈希值会不同,将拒收数据包。所以,哈希运算本身就是一种安全的口令计算方法。若通过98次的运算而得出的口令,可以说,其安全程度是非常高的。第三步:输出函数会把这个64位的一次性口令以明文的形式显示给用户。然后用户在登陆界面中输入这个一次性口令。登陆程序就会把这个口令传递给登陆服务器,服务器就会对此进行验证。若一致的话,用户则就可以进行正常的访问。否则的话,服务器就会拒绝用户登陆。不过让用户手工输入64位的密码可能会比较吃力。所以,有些S/Key工具,提供了直接复制粘贴的功能,避免了用户手工输入的麻烦。S/Key一次性口令由于将口令用单向散列函数次数不同,使的每次通过验证的通行证都不同,可以防止非法人员简单地通过窃取的口令,冒充合法人员的攻击。但是,我们也很容易看出所存在的安全问题。假如C是个黑客,他想冒充A进行身份。C可以用如下方法达到目的:当B向A发出挑战时,C窃取下来,假如挑战中的迭代值为m,C将迭代值修改为一个较小的整数k,km,把修改后的挑战发给A。A根据修改的挑战计算出一个通行证OTP,向B提交验证。(B验证不通过。)C窃取出OPT,将OPT散列m-k次,生成通行证,用于冒充A进行验证。B通过验证。C冒充成功。C下一次冒充将窃取的OPT散列m-k-1次,生成通行证也能通过验证。这样可以冒充m-k次。C也可以将B发给A发出的挑战中的迭代值修改较小的数,然后通过窃取A计算的通行证进行离线攻击。ABID被修改的挑战(种子值+迭代值)错误的通行证optccC窃取m并自己保留着,再改成k发给A拒绝AC窃取opt,由之前的k可得到算法,加上自己之前窃取的m可得到正确的通行证冒充A,发出opt通过优点:OTP系统的安全依赖于安全哈希函数的不可逆性。这样的函数必须是正向易于计算的,但是反过来计算不可行。监视一次口令传输的监听者不能产生下一个需要的口令,因为要做到这些就意味着哈希函数的逆运算。一是这个身份认证解决方案,可以有效解决重放攻击。重放攻击是指攻击者通过某种方式在网络连接中获取他人的登陆账户与口令,然后利用它多某个网络资源的访问权限。而现在S/Key协议分配给访问者的口令每次都不同,所以,就可以有效解决口令泄漏问题。因此,可以避免重放攻击。其次,现在有不少基于这个解决方案的免费工具,也非常的实用。所以,有一定基础的安全管理人员,可以非常方便的掌握这个解决方案。如此的话,这个S/Key解决方案对于企业来说,可能是免费的。或者只需要添加一些硬件方面的投资即可。缺点:需要手工进行初始化。一般在S/KEY服务器上有一个文件,它存储着每个用户上一次成功登陆的一次性口令。服务器端在进行验证的时候,会把接收到的一次性口令输入到安全哈希函数中进行运算。如果运算出来的结果跟上一次的一次性口令一致的话,认证就成功了。然后服务器就会把这个一次性口令存入到这个表中,等待下一次验证。但是,当用户每进行一次登陆,则客户端执行哈希函数应用程序的个数就会减少一个。也就是说,在客户端上生成的一次性口令是有限的,而不是无限制的。S/Key就是通过这种方式保证口令的唯一性。可是,这也会造成用户的困扰,如当一次性口令用完时,就需要用户对S/Key服务进行初始化,以避免用户不能够重复登陆的情况。谢谢大家!!!

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功