http://code.google.com/p/password-mixer/
Antiy Password Mixer(APM)是安天实验室针对当前拖库等安全威胁发布的一套安全算法应用范例,适用于中小规模的BBS、SNS、留言板、网页游戏等常见的Web应用,以及其它可能通过网页进行用户注册、认证与密码管理的网站应用场景。APM面向Web应用的规划、开发和维护者,可以解决Web后台大多数身份认证和关键信息加密保存的需求。
APM基于GNU GPL v2协议开放源码,目前已经发布了Python、PHP和Ruby版。我们还为APM提供后续的更新和对应的支持服务。
APM的特色包括:
- 简单,低代价的集成方案,能够容易的集成到现有的企业环境中
- 可有效对抗 统计攻击、普通暴力破解、GPU加速破解、基于云计算的破解
- 具备加密单向不可还原数据和支持解密明文信息两种使用模式
- 正确的经过严格代码审查的编程实现
分析
当前,攻守方面已经呈现极大地不平衡性,即使采用传统的标准HASH算法加密的站点,一旦数据库失窃,其实已经等于90%以上的密码泄露。为什么会如此?
让我们来看看,攻击者拥有哪些资源:
- 已经泄露的,数以亿计用户的明文密码。
- 体积以T计的彩虹表,已经覆盖14位以下数字字母组合的密码的MD5。
- 成本急剧降低的GPU加速和分布式计算资源
- 可以廉价获取的合法超算资源、云计算资源
- 数量以十万计的僵尸网络
尽管有这些前车之鉴,为什么多数网站都无法自己解决好账号密码相关的加密问题呢?
- 企业很难聘到合格的懂安全的程序员。
- 网络流传的解决方案 , 大部分是网友自己开发,缺少专业的设计和评估。
- 缺少专业的安全人才, 计算机科班的成才率很低。
- 普通依靠野蛮生长成才的技术牛人,因为缺少基础的专业知识,常犯低级错误.很难正确的实现一个安全方案.不正确的实现提供了虚假的安全结果。虚假的安全危害更大。
- 大部分程序员不可能一直跟踪最新的安全技术进展。
APM解决了哪些问题
一人一密、一站一密:对于使用了APM的网站来说,即使两个用户密码相同,其加密的结果是不同的。对于使用了APM的不同网站来说,用户使用完全相同的信息和口令注册,加密结果也是不同的。
高速低负载加密与验证:一些网站不加密的原因是担心加密相关处理消耗服务服务器资源,影响用户体验,这是我们首先需要解决的。
抗暴力生成:由于APM*一人一密、一站一密的特点,采用暴力生成密文的方法,对每个站点都需要从头开始。而如果合理的存放相关参数,在只获取数据库的情况下,仅凭Antiy Password Mixer的开源代码,是无法构造有效生成器的。
抗查表攻击:同上,由于APM使暴力生成的变得没有意义,因此也没有查表资源可以使用。
抗统计分析:对于那些使用自制HASH算法,使用其他HASH算法的站点来说,攻击者亦无须破解,只要根据HASH值进行排序,然后与高频密码表进行比对,就可以使大部分用户的密码处于不安全的状况。但经过APM处理过的口令是空间均匀分布的,完全没有统计价值。
变成快羊:我们相信您听过一句格言——狼只咬最慢的羊。APM并不能解决拖库的问题,但APM让拖库的价值变得很小。无论如何,全球采用APM的站点都是少数,因此,当你的库对攻击者失去意义,他自然就会去寻找更慢的羊。
APM不能解决哪些问题及我们的建议
| 威胁 | 说明 | 建议 |
| 用户端失密 | 用户自身因中了木马流失了密码,或把密码告诉其他人,录入时被偷窥等等。 | 加强用户安全知识普及。 |
| 钓鱼网站 | 用户登录了假冒的网站而被套走了密码。 | 网站加强搜索,以发现对自身钓鱼的网站。 |
| 一号通 | 通过其他网站流出的用户名和密码来尝试使用了APM的网站。 | 增加一个采用不同ID登陆失败的频度控制机制。提升探测难度。 |
| 通讯窃取 | 通讯过程的被工作者监听、ICP被ARP欺骗监听等等。 | 使用HTTPS代替HTTP做登陆验证,但这样会增加服务器的负载。 |