菜农认为网站数据库应该存储的注册信息

[复制链接]
3882|24
手机看帖
扫描二维码
随时随地手机跟帖
hotpower|  楼主 | 2011-12-26 08:38 | 显示全部楼层 |阅读模式
本帖最后由 hotpower 于 2011-12-26 12:12 编辑

正在研究HotWC3的碰撞问题,因为任何哈希函数存在着碰撞问题,例如王晓云教授研究MD5碰撞的成果。

但是论坛或邮箱都可以用验证码来阻止穷举散列数的频率,输入密码错误次数锁定并发送绑定邮箱或绑定手机通知用户。

这些都可以防范。

但是存储散列值应该说比存储密文密码要安全的多,但单向散列函数故有的碰撞特性任何人都无法回避。

为了在输入流中隐含更多的各方信息,例如散列数中同时隐含了用户和网站各自的信息例如:

用户持有:用户名和用户密码
网站持有:用户名和网站特定码和散列值。

其中:散列值=哈希函数(用户名,用户密码,网站特定码)

这样做后,用户或网站都必须同时知道对方的信息而且要知道算法。
这样将降低碰撞的概率,逼迫其在知道用户名和网站特定码及算法的前提下攻击用户密码。

由于论坛或邮箱登陆输入信息是以流的方式出现,故可以再附加用户密码的长度信息。
由于散列函数碰撞可以用短密码长度得到同样的散列值,故测试用户密码注册长度也是
一种安全机制。但同时又告诉了黑客重要的信息。

用户持有:用户名和用户密码
网站持有:用户名及用户密码注册长度和网站特定码和散列值。

其中:散列值=哈希函数(用户名,用户密码,用户密码注册长度,网站特定码)

为了解决密码找回问题,故网站数据库应该存储下列信息(字段):

1.用户名
2.用户密码注册长度
3.网站特定码
4.散列值
5.绑定邮箱
6.绑定手机
7.密码找回提问(是个漏洞,可以考虑废除)


特别注意:此研究可以将包括算法等都公开,只是用户密码一项不公开。
HotPower@126.com 2011.12.26

相关帖子

hotpower|  楼主 | 2011-12-26 08:41 | 显示全部楼层
本帖最后由 hotpower 于 2011-12-26 12:00 编辑

HotWC3网上单向散列函数验证:http://www.hotpage.net.cn/HotPower_HotAjax.html

论坛密码.gif .

用户hotpower手持:
用户名:hotpower,用户密码:250

网站www.21ic.com掌握:
网站特定码:www.21ic.com
用户名:hotpower
用户密码注册长度:3
散列数:8917DEF303D5B0E3 【上图中点击运算后的“结果”】


再举例:
论坛密码2.gif

用户程序匠人手持:
用户名:程序匠人,用户密码:250*250

网站www.21ic.com掌握:
网站特定码:www.21ic.com
用户名:程序匠人
用户密码注册长度:7
散列数:12EE81D2FECE8CED 【上图中点击运算后的“结果”】

再举例:
论坛密码3.gif

用户水清音手持:
用户名:水清音,用户密码:GGMM

网站www.21ic.com掌握:
网站特定码:www.21ic.com
用户名:水清音
用户密码注册长度:4
散列数:4BEAEE34E6B8789B 【上图中点击运算后的“结果”】

从上面的三个例子可以看出“密码注册长度”是非常重要的,只有满足这个条件之一的才是真正的散列数。
假若不限定密码注册长度,那么会有千百万个碰撞发生,伪造的概率将急剧增大且缩短攻击次数即攻击时间。

使用特权

评论回复
Cortex-M0| | 2011-12-26 08:42 | 显示全部楼层
路过帮顶~~~

使用特权

评论回复
hotpower|  楼主 | 2011-12-26 09:03 | 显示全部楼层
本帖最后由 hotpower 于 2011-12-26 10:37 编辑

用户密码注册长度相当重要,虽然间接地告诉了黑客用户密码的长度,但是同时增大了碰撞的难度。
这样迫使黑客只能用同样长度的字符或数字来制造碰撞即伪造。

使用特权

评论回复
hq_y| | 2011-12-26 09:05 | 显示全部楼层
啥也不懂只好顶贴:'(:victory::lol

使用特权

评论回复
hotpower|  楼主 | 2011-12-26 09:35 | 显示全部楼层
啥也不懂只好顶贴:'(:victory::lol
hq_y 发表于 2011-12-26 09:05


晕,总之出了用户本人外,任何人包括网管及黑客等都休想知道用户持有的密码。
除非他穷举碰撞,而且必须知道密码串的长度,故密码串长度也应该用密文存储。

使用特权

评论回复
流泪鲨鱼| | 2011-12-26 09:44 | 显示全部楼层
:)

使用特权

评论回复
Swallow_0322| | 2011-12-26 09:46 | 显示全部楼层
顶!

使用特权

评论回复
plc_avr| | 2011-12-26 10:13 | 显示全部楼层
顶!估计现在网站没几个这样做的。都有后门。

使用特权

评论回复
hotpower|  楼主 | 2011-12-26 10:24 | 显示全部楼层

关于散列数查表问题

本帖最后由 hotpower 于 2011-12-26 11:44 编辑

实际存储方式有问题。
首先要明白一个概念性的问题:
加密只有解密(**)的问题,散列只有碰撞(伪造)的问题。


对于一个散列数,实际碰撞会很多的,且有一定规律可寻,正如王晓云教授找到MD5碰撞的规律。


我们可以用一个日常生活来举例,攻破巨型数据库查表问题:


某日必定对应一个星期,例如今天是周一。
星期的周期是7天,即每7天为某星期几。
但是星期几却不知某个具体的某日。


假若用数据库来存储星期散列数0~6(周日周一~周六),那么要存储多少日期???
故无法实现,即使可行也不现实。


HotWC3单向散列函数就是基于碰撞实现的,某个散列值对应巨多的原文信息。
即多对一的问题,就是日期和星期的关系。无法查表。


而且原文信息变长,这是散列函数的特性。
任意长度的原文信息都会经过散列函数被散列为固定长度的散列值。
从一个方向运算很容易,而从另一个方向运算很难。

故只有知道了用户密码才很容易计算出散列值,反之从散列值还原出用户密码几乎不可能实现。因为碰撞很多,而只有一个是对的。


菜农的CRC安全密码就是基于碰撞实现的。

使用特权

评论回复
zoomone| | 2011-12-26 10:28 | 显示全部楼层
深奥

使用特权

评论回复
hotpower|  楼主 | 2011-12-26 10:29 | 显示全部楼层
这种网站不存储密码方式的密码找回可以用绑定邮箱和手机重新设置新密码
因为大家都没有密码了。
网站没有密码,个人丢失了。那么只能通过其他途径设置新密码

使用特权

评论回复
原野之狼| | 2011-12-26 11:31 | 显示全部楼层
这个帖子写得好

使用特权

评论回复
highgear| | 2011-12-26 11:54 | 显示全部楼层
这个贴子技术性很强,但问题的关键不是在于密码的加密,而是在于数据库不被泄露。

让贼偷不到才是好技术,当然,增加打开被偷走的钱包的难度也是不错的技术。

使用特权

评论回复
hotpower|  楼主 | 2011-12-26 12:07 | 显示全部楼层
本帖最后由 hotpower 于 2011-12-26 12:16 编辑
这个贴子技术性很强,但问题的关键不是在于密码的加密,而是在于数据库不被泄露。

让贼偷不到才是好技术,当然,增加打开被偷走的钱包的难度也是不错的技术。 ...
highgear 发表于 2011-12-26 11:54


俺此研究是所有信息公开即数据库公开,只有用户密码这一项不公开~~~
俺近日论战密码,因为俺和王育民教授约好,俺写,若他老人家认为可行,就帮俺找密界高人~~~

欢迎大家讨论,增强俺的信心~~~谢谢参与。

http://www.baidu.com/s?wd=%CD%F5%D3%FD%C3%F1%BD%CC%CA%DA&rsv_bp=0&rsv_spt=3&inputT=8438

http://www.baidu.com/s?bs=%CD%F5%D3%FD%C3%F1%BD%CC%CA%DA&f=8&rsv_bp=1&rsv_spt=3&wd=%CD%F5%D3%FD%C3%F1+hotpower&inputT=5576

使用特权

评论回复
huangqi412| | 2011-12-26 12:32 | 显示全部楼层
慢慢看

使用特权

评论回复
hotpower|  楼主 | 2011-12-26 13:20 | 显示全部楼层
革命风暴结束,继续欢迎参与讨论~~~

使用特权

评论回复
Cortex-M0| | 2011-12-26 13:25 | 显示全部楼层
哈哈~~~

继续革命~~~

使用特权

评论回复
abin0415| | 2011-12-26 13:55 | 显示全部楼层
MARK

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:[url=http://www.21ic.com/tools/HotWC3_V1.23.html]

1538

主题

21697

帖子

505

粉丝