免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1008 | 回复: 1
打印 上一主题 下一主题

[FreeBSD] 计时攻击和登录系统设计 [复制链接]

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-30 20:51 |只看该作者 |倒序浏览
By Xin LI on June 21, 2012 10:22 PM | No Comments | No TrackBacks |

计时攻击是一种通过观测由于某些操作时泄露出来的时间信息来获取更多信息的攻击。由于设计和实现的不同,攻击者能够通过计时得到的信息也会不一样。简而言之,作为安全系统的设计者,必须对可能泄露信息的各种渠道有充分的了解,并针对它们采取因应措施。

今天在和人讨论的时候想到一个例子,这里记下来。

为了阻止采用 GPU 穷举,我们可能会使用一些增加轮数的散列算法。一个设计不完善的登录系统的登录流程大致如下:

从用户输入获得用户名和口令;
在数据库中从用户名查得对应的口令散列串;如果没有这个用户,直接提示"用户名或密码错误";
根据散列串中的 salt 和输入的口令,按一定的算法算出实际的散列值并比较;如果不匹配,提示"用户名或密码错误";
创建信任状。
假定我们采用了一种够慢的算法来计算散列值,上述流程的问题便是,假如用户不存在,尽管攻击者观察到的提示是一样的"用户名或密码错误",但这个提示出现的时间可能会比用户存在时慢一些。这样,这个登录系统便透露了"用户不存在"这样的信息。

补救的办法是在用户不存在时,也根据同样的算法计算一下散列串,然后再提示"用户名或密码错误";还有一种办法是增加一个随机的延时。具体采用什么样的做法,要看具体的应用场景。

FROM: https://blog.delphij.net/2012/06/post-618.html

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
2 [报告]
发表于 2012-07-01 17:05 |只看该作者
不管存不存在,都sleep(some fucking delay);

让你Y得瑟,你不是能穷举吗,算去吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP