描述
简单身份验证协议受到反射攻击如果恶意用户可以使用目标机器来模仿一个可信用户。
扩展描述
相互认证协议要求每个方应对随机挑战由另一方用pre-shared密钥加密它。通常,然而,这样的协议采用相同的pre-shared关键通信与许多不同的实体。恶意用户或攻击者很容易妥协这个协议不具有正确的键采用反映对协议的攻击。
反射攻击利用相互身份验证方案为了欺骗目标暴露秘密,另一个有效的用户之间共享。在一个基本的相互认证方案中,一个秘密是有效的用户和服务器;这允许他们进行身份验证。以便他们可以验证这个共享的秘密显然没有发送线,他们利用一个Diffie-Hellman-style计划每取一个值,然后请求的散列值作为键的共享的秘密。在反映攻击中,攻击者声称自己是一个有效的用户和从服务器请求一个随机值的哈希。当服务器返回这个值和请求自己的散列值,攻击者打开另一个连接到服务器。这一次,哈希要求攻击者是在第一次连接服务器的请求。当服务器返回这个散列值,它是用于第一次连接,对攻击者成功的模仿合法用户进行身份验证。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
委员会:这个弱点是指一个不正确的设计与架构相关的安全策略。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
访问控制
|
反射攻击的主要结果与目标机器成功的身份验证——作为一个模拟的用户。 |
|
利用的可能性
示范例子
示例1
下面的例子显示出,需求不足。
unsigned char * simple_digest (char * alg, char * buf unsigned int len, int *克拉){
const EVP_MD * m; EVP_MD_CTX ctx; unsigned char *受潮湿腐烂; OpenSSL_add_all_digests (); 如果(!(m = EVP_get_digestbyname (alg)))返回NULL; 如果(!(ret = (unsigned char *) malloc (EVP_MAX_MD_SIZE)))返回NULL; EVP_DigestInit (ctx, m); EVP_DigestUpdate (ctx、缓冲区、兰); EVP_DigestFinal (ctx ret,克拉); 返回受潮湿腐烂; } unsigned char * generate_password_and_cmd (char * password_and_cmd) {
simple_digest (sha1、密码strlen (password_and_cmd) … ); }
字符串命令=新的字符串(“一些cmd执行&密码”)MessageDigest ence = MessageDigest.getInstance (SHA); encer.update (command.getBytes (" utf - 8 ")); byte[]消化= encer.digest ();
观察到的例子
参考 |
描述 |
|
产品认证成功如果用户提供的MD5哈希匹配的散列数据库;这可以被重放攻击。 |
潜在的缓解措施
阶段:体系结构和设计
使用不同的密钥的发起者和应答器或不同类型的发起者和应答器面临的挑战。 |
阶段:体系结构和设计
在继续之前让发起者证明其身份。 |
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
笔记
维护
以多种方式使用术语“反射”CWE和社区内,所以它的使用应该检查。
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
扣 |
|
|
反射攻击的身份验证协议 |
OWASP十大2007 |
A7 |
CWE更具体 |
破碎的认证和会话管理 |
引用
|
(ref - 62)马克·多德约翰麦克唐纳和贾斯汀Schuh。“软件安全评估的艺术”。第二章,“确认”不足,38页。1版。艾迪生卫斯理》2006。 |
|