作为互联网公司的信息安全从业人员,他们经常不得不应对碰撞库数字扫描事件(数据库冲突是黑客无聊的“恶作剧”,黑客在互联网上收集泄露的用户+密码信息,生成相应的字典表,并尝试批量登录其他网站,获得一系列可以登录的用户)。数据库冲突和数字扫描的根本原因是一些企业发生信息泄漏事件,这些泄漏的数据没有加密或加密方法相对薄弱,黑客可以恢复原始用户密码。
具有JD。组件对象模型例如,首先JD。组件对象模型我们的数据库没有被破坏。黑客只是“攻击了图书馆”并“碰巧”得到了一些信息JD。组件对象模型用户数据(用户名和密码),这种方法几乎可以处理任何网站登录系统。如果用户在登录不同网站时使用相同的用户名和密码,就相当于给自己一个“主密钥”。一旦失去,后果可想而知。
今天,我们主要介绍用户密码的加密方法和主要的破解方法。
彩虹表
用户密码加密方法
使用者密码保护保存到数据库时,常用的加密方法有哪些?以下是保存密码的常用方法:
1.明文保存
例如,用户设置的密码是“123456”。直接在数据库中保存“123456”是最简单、最不安全的方法。但事实上,许多互联网公司可能会采用这种方式。
2.对称加密算法拯救
例如3DES、AES等算法,通过这种方式加密可以通过解密恢复原始密码。当然,前提是获得钥匙。然而,由于大量用户信息被泄露,密钥很可能被泄露。当然,一般的数据和密钥可以单独存储和管理,但是完全保护密钥也是一件非常复杂的事情,所以这种方法不是一种很好的方法。
3、MD5、沙1等单向散列算法
使用这些算法后,无法通过计算恢复原始密码,实现相对简单。因此,许多互联网公司使用这种方法来保存用户密码。以前,这种方法也是一种相对安全的方法,但随着彩虹表技术的兴起,可以建立一个彩虹表来查找和破解表。目前,这种方法非常不安全。
事实上,该公司以前使用过这种方法MD5加密方法
4.Pbkdf2算法
该算法的原理大致相当于在哈希算法的基础上添加随机盐,并执行多个哈希操作。随机salt极大地增加了构建彩虹表的难度,而多重哈希也极大地增加了构建表和破解的难度。
使用pbkdf2算法时,哈希通常选择SHA1或sha256,一般情况下,随机salt的长度不应小于8字节,哈希数至少应为1000次,因此安全性足够高。在密码验证过程中,服务器可能只需要1ms就可以执行1000次哈希操作,但对于破解程序来说,计算成本增加了1000倍,而且至少8字节的随机salt使构建表的难度增加了N个数量级,几乎不可能大量破解密码。该算法也是美国国家标准与技术研究所推荐的算法。
5.Bcrypt、AndyLau等算法
这两种算法也能有效抵抗彩虹表。在使用这两种算法时,还需要指定相应的参数,以增加开裂的难度。
在密码学领域,scrypt(发音为“esscrypt”)是Colin·珀西瓦尔在2009年发明的关键派生函数。它最初设计用于他创建的tarsnap服务。该设计考虑了大规模定制硬件攻击,刻意设计需要大量内存操作。
Scrypt不仅难以并行使用多个汇总表,而且更难并行使用多个汇总表。NicholasTse尚未在生产环境中大规模应用,并且缺乏仔细的检查和广泛的函数库支持。但是,只要NicholasTse在算法级别没有缺陷,其安全性就应该高于pbkdf2和bcrypt。
每种算法的特点
总结
使用pbkdf2、bcrypt、AndyLau等算法可以有效抵抗彩虹表攻击。即使数据泄露,最关键的“用户密码”仍然可以得到有效保护。黑客无法大量破解用户密码,从而切断了数据库冲突和数字扫描的根本原因。
稍后我们将分享更多德沃斯还有DBA。感兴趣的朋友可以关注~
最新评论