首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止会话固定: MAC还是Hash?

防止会话固定: MAC还是Hash?
EN

Security用户
提问于 2015-02-03 17:58:58
回答 1查看 240关注 0票数 0

这篇博客文章描述了一种预防会话固定攻击的方法(特别是ASP.Net )。其思想是会话id应该以可验证的方式绑定到用户的身份,这意味着给定的会话id对攻击者和受害者都无效。其建筑用途:

代码语言:javascript
复制
select random nonce
session_id = nonce || MAC(nonce || username).

对于运行在集群上的应用程序来说,分发或更改MAC密钥可能不方便。如果MAC被未键散列替换,会丢失什么?

代码语言:javascript
复制
select random nonce
session_id = nonce || Hash(nonce || username).

这确实意味着攻击者可以生成对给定身份有效的会话id,但仍然不能同时接受攻击者和受害者的会话id。这种方法有缺点吗?

EN

回答 1

Security用户

发布于 2016-07-23 17:21:06

Q1 -防止会话固定- MAC还是Hash?

Q2 -如果MAC被未键散列替换,会丢失什么?

Q3 -这种方法是否有一个弱点(用散列代替MAC )?

您通过跨多个服务器使用MAC来识别密钥管理的缺点,而对于未键散列,唯一的缺点是由于散列函数的公共性质增加了会话伪造的风险。因此,就更安全的选项而言,MAC选项更适合于防止伪造会话。然而,正如您所指出的,在这两种情况下,会话固定仍然可以发生。我看到的加强会话id的其他方法是调整会话到期,并将用户代理作为MAC函数的输入。我认为Q1、Q2和Q3部分地断言或假设在会话id创建中使用MAC是防止会话固定的“解决方案”。我认为,重要的是要注意到一套全面的策略,以防止会议固定。然而,在ASP.Net环境中,一个非常重要的问题是不能在用户之后重用旧的会话ids,这是会话固定利用的一个巨大漏洞。

请参阅https://support.microsoft.com/en-us/kb/899918

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/80791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档