基于多层级GPU集群的Domino专用口令破解系统的制作方法

文档序号:10618240阅读:277来源:国知局
基于多层级GPU集群的Domino专用口令破解系统的制作方法
【专利摘要】本发明公开了一种基于多层级GPU集群的Domino专用口令破解系统,本发明包括多个不同层级的服务器节点和大量不同层级的GPU计算节点,所述服务器节点用于口令空间划分、任务传输、结果汇总等事宜;所述计算节点用于开展Domino算法的GPU破解,其破解过程为将分配给计算节点的所有口令分别与Domino值中的盐S进行Domino计算,如果计算得出的值与Domino值中的散列值H相同,则认定为密码破解成功;如果计算得出的值与散列值H不相同,则更换口令继续尝试,直到所有的口令全部计算比对完成。本发明能够稳定运行并发挥高性能,总体破解速度能够达到约4亿个口令/秒左右;用户提交的解密任务,能够合理分解到各个GPU计算节点上开展计算,分配合理均衡。
【专利说明】
基于多层级GPU集群的Domi no专用口令破解系统
技术领域
[0001]本发明涉及密码破解技术领域,尤其涉及一种基于多层级GPU集群的Domino专用口令破解系统。【背景技术】
[0002]Lotus/notes是一种常用的邮件服务器软件系统,因其功能完善、安全性好而得到大量使用。因此该邮件系统也成为了侦查取证的一个重要目标。
[0003]Lotus/notes中用于保护用户口令的算法名为Domino算法,这是一种特殊的加盐散列算法,具有较高的安全性,用户口令经过该算法计算后,会生成一个由盐(S)和散列值 (H)构成的Domino值。这种算法目前尚未发现明显缺陷,因此只能依靠暴力攻击的方法对 Domino值进行破解(即使用大量口令进行尝试直到找到真正的口令为止),而且随着人们安全意识的提高,越来越多的用户选择使用复杂密码作为口令,这些现状导致密码破解需要的计算量相当大。
[0004]对Domino算法的破解已经有不少的研究成果,最有名的软件是John the ripper, 它支持CPU上对用户口令的Domino值进行基于暴力、字典等方式的攻击,在单核CPU上的破解速度约为15万个口令/秒左右。
[0005]图像处理器GPU(Graphic Process Unit)的高性能数据处理能力的发展,为 Domino高速破解提供了新的有效途径。另一款著名的破解软件hashcat近期提供了对 Domino算法的GPU计算的支持,其速度能够达到单卡约1000万个口令/秒左右。
[0006]综上,目前对Domino算法的支持停留在单机CPU破解以及单机GPU破解节点,破解能力有限且扩展性差。
【发明内容】

[0007]针对现有技术中的密码破解系统破解速度低、破解能力有限、扩展性差的技术问题,本发明公开了一种基于多层级GPU集群的Domino专用口令破解系统。
[0008]为了实现上述目的,本发明的技术方案如下:基于多层级GPU集群的Domino专用口令破解系统,其特征在于,系统最上层包括一个服务器节点,其下层可连接若干个GPU计算节点和子服务器节点,所述子服务器节点下面可以连接再下层的若干个GPU计算节点和子服务器节点,以此类推形成多层级系统;在系统的数据层面,用户在最上层服务器节点上提交Domino密码破解任务,然后等待下层节点来请求任务,一旦收到请求,则根据情况切分出一个任务片交给发出请求的节点;每个GPU 计算节点在没有计算任务时,向上层服务器发出需要计算任务的请求,该服务器如果不是最上层服务器,则由该服务器向其上级服务器发出请求,依此类推直到从顶层服务器上获取到任务后逐级传递给发出请求的GPU计算节点;计算节点完成计算后逐级上报自己的计算结果并最终汇总到最上层的服务器节点,接着计算节点发出请求开始下一个任务片的计算,以此循环直到将用户的计算任务全部完成为止。
[0009]GPU计算节点是一套CPU+GPU联合工作的计算机系统,其中CPU负责与服务器通讯工作,包括获取破解任务、提交任务计算结果,同时还负责为GPU工作进行破解数据准备和计算结果收集整理等工作;GPU则纯粹负责开展并行计算,将所有指定的口令全部计算比对一遍。
[0010]在GPU上,其拥有大量处理核心,每个核心可以并行验算一个口令,口令的尝试过程如下:首先将Domino值进行解析转换,得到盐S以及散列值H ;将盐S和尝试口令进行 Domino计算生成一个新的散列值,最后将这个散列值与之前解析得到的散列值H进行比较,如果相同则说明尝试的口令就是正确的口令,如果不相同则不是。
[0011]本发明包括多个不同层级的服务器节点和大量不同层级的GPU计算节点,所述服务器节点用于口令空间划分、任务传输、结果汇总等事宜;所述计算节点用于开展Domino 算法的GPU破解,其破解过程为将分配给计算节点的所有口令分别与Domino值中的盐S进行Domino计算,如果计算得出的值与Domino值中的散列值H相同,贝lj认定为密码破解成功;如果计算得出的值与散列值H不相同,则更换口令继续尝试,直到所有的口令全部计算比对完成。
[0012]本发明基于多层级GPU集群的Domino专用口令破解系统,经过长时间整体系统运行,切实大幅提高了 Domino 口令的破解计算能力。在搭建的测试系统中,GPU计算节点的数量包含近40个,系统能够稳定运行并发挥高性能,总体破解速度能够达到约4亿个口令 /秒左右;用户提交的解密任务,能够合理分解到各个GPU计算节点上开展计算,分配合理均衡。整套系统通过长时间运行稳定没有出现其他问题。
[0013]本发明的特点可参阅本案图式及以下较好实施方式的详细说明而获得清楚地了解。【附图说明】
[0014]图1为本发明基于多层级GPU集群的Domino专用口令破解系统整体架构图。
[0015]图2为基于多层级GPU集群的Domino专用口令破解系统网络拓扑图。
[0016]图3为Domino算法口令计算比对流程图。【具体实施方式】
[0017]为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施例进一步阐述本发明。
[0018]参见图1-3,基于多层级GPU集群的Domino专用口令破解系统,系统最上层包括一个服务器节点,其下层可连接若干个GPU计算节点和子服务器节点,所述子服务器节点下面可以连接再下层的若干个GPU计算节点和子服务器节点,以此类推形成多层级系统; 在系统的数据层面,用户在最上层服务器节点上提交Domino密码破解任务,然后等待下层节点来请求任务,一旦收到请求,则根据情况切分出一个任务片交给发出请求的节点;每个 GPU计算节点在没有计算任务时,向上层服务器发出需要计算任务的请求,该服务器如果不是最上层服务器,则由该服务器向其上级服务器发出请求,依此类推直到从顶层服务器上获取到任务后逐级传递给发出请求的GPU计算节点;计算节点完成计算后逐级上报自己的计算结果并最终汇总到最上层的服务器节点,接着计算节点发出请求开始下一个任务片的计算,以此循环直到将用户的计算任务全部完成为止。
[0019]GPU计算节点是一套CPU+GPU联合工作的计算机系统,其中CPU负责与服务器通讯工作,包括获取破解任务、提交任务计算结果,同时还负责为GPU工作进行破解数据准备和计算结果收集整理等工作;GPU则纯粹负责开展并行计算,将所有指定的口令全部计算比对一遍。
[0020]在GPU上,其拥有大量处理核心,每个核心可以并行验算一个口令,口令的尝试过程如下:首先将Domino值进行解析转换,得到盐S以及散列值H ;将盐S和尝试口令进行 Domino计算生成一个新的散列值,最后将这个散列值与之前解析得到的散列值H进行比较,如果相同则说明尝试的口令就是正确的口令,如果不相同则不是。
[0021]以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。
【主权项】
1.基于多层级GPU集群的Domino专用口令破解系统,其特征在于,系统最上层包括 一个服务器节点,其下层可连接若干个GPU计算节点和子服务器节点,所述子服务器节点 下面可以连接再下层的若干个GPU计算节点和子服务器节点,以此类推形成多层级系统; 在系统的数据层面,用户在最上层服务器节点上提交Domino密码破解任务,然后等待下层 节点来请求任务,一旦收到请求,则根据情况切分出一个任务片交给发出请求的节点;每个 GPU计算节点在没有计算任务时,向上层服务器发出需要计算任务的请求,该服务器如果不 是最上层服务器,则由该服务器向其上级服务器发出请求,依此类推直到从顶层服务器上 获取到任务后逐级传递给发出请求的GPU计算节点;计算节点完成计算后逐级上报自己的 计算结果并最终汇总到最上层的服务器节点,接着计算节点发出请求开始下一个任务片的 计算,以此循环直到将用户的计算任务全部完成为止。2.根据权利要求1所述的基于多层级GPU集群的Domino专用口令破解系统,其特征 在于,所述GPU计算节点是一套CPU+GPU联合工作的计算机系统,其中CPU负责与服务器通 讯工作,包括获取破解任务、提交任务计算结果,同时还负责为GPU工作进行破解数据准备 和计算结果收集整理等工作;GPU则纯粹负责开展并行计算,将所有指定的口令全部计算 比对一遍。3.根据权利要求1所述的基于多层级GPU集群的Domino专用口令破解系统,其特 征在于,在GPU上,其拥有大量处理核心,每个核心可以并行验算一个口令,口令的尝试过 程如下:首先将Domino值进行解析转换,得到盐S以及散列值H ;将盐S和尝试口令进行 Domino计算生成一个新的散列值,最后将这个散列值与之前解析得到的散列值H进行比 较,如果相同则说明尝试的口令就是正确的口令,如果不相同则不是。
【文档编号】G06F21/62GK105989279SQ201510078276
【公开日】2016年10月5日
【申请日】2015年2月13日
【发明人】吴华, 赵新宇, 谢鑫君, 朱智慧, 黄玉磊, 罗顺, 卢晶
【申请人】上海通用识别技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1