引用本文:刘成,罗杰,臧今宇.一种基于异构集群的在线密码破解系统[J].通信技术,2019, 52(08):1992-1997.

摘要

市面上的密码破解软件多为单机版,需要用户安装、设置软件,使用成本较高;或需要 用户自行搭建服务器或机房,物理系统的建设和维护成本很高。为了解决上述问题,提出了一种 基于异构集群的在线密码破解系统。该系统基于B/S架构,通过WEB页面提供在线破解能力, 易于使用;基于PBS系统,实现了多种密码破解所需的调度模式;设计了 GPU代理程序,弥补了 PBS系统的不足;基于CUDA的GPGPU异构计算集群,实现了数百倍的性能提升。

关键词:集群系统;在线密码破解;GPU; PBS; CUDA

内容目录:

0  引  言

1 系统需求分析

1.1  GPGPU异构集群

1.2  并行计算编程框架

1.3  集群作业管理系统

1.4  WEB管理服务

1.5   任务执行程序

2  系统设计

2.1  搭建基础设施

2.2   PBS系统的使用

2.3   WEB管理服务

2.4  任务执行程序设计

3  系统实例

3.1  任务提交

3.2  任务队列

3.3  密码破解任务加速比

4  结  语

引  言

随着互联网技术的发展,越来越多的设备和应 用接入互联网,特别是5G技术的日渐成熟,使万 物互联[1]时代近在咫尺。互联网使信息传递更为便 捷,为了解决随之而来的信息安全风险,密码学技 术也得到了空前的发展和运用。

密码学技术与我们的生活息息相关,比如设置 个人电脑登录密码能够保护我们的电脑数据安全;设置网站登录口令能够保护我们的网站数据安全;设置数据库访问密码能够保护数据库的数据安全等。同时,在现实生活中许多不法分子也利用密码 学技术,传递犯罪信息并隐藏犯罪证据,从事违法 犯罪勾当,给国家安全和社会稳定带来很大的威胁。

二战时期德军的Enigma密码机与其破解过程, 已成为密码学中密码技术与密码破解技术相互较量 的经典案例。密码学技术与密码破译技术就像一对 挛生兄弟一样,在相互较量中伴随成长。现代密码 技术建立在求解数学难题基础上,密码算法公开, 经过了充分的验证,已很难从算法自身的漏洞出发 进行破解。利用高性能计算对密文进行暴力破解⑵ 已成为密码破解的常规手段。

暴力破解需要强大的计算能力。通用计算机大 致经历了以下发展过程:

(1) 从单核到多核,再到众核

从1971年第一块微处理器4004在Intel公司 诞生CPU的集成晶体管数和时钟频率逐年上升。随着时钟频率超过3GHz,单核处理器开始消耗过 多的功率,单核处理器的发展遇到瓶颈。2005年 AMD、Intel相继推出双核CPU, CPU的发展步入 多核心时代。2018年10月,Intel发布的最新消费 级处理器——第九代酷睿i9-9900K——已有8个核 心,时钟频率最高可达5GHzo

不同于CPU作为通用处理器存在,GPU( Graphics Processing Unit,图形处理器)从一诞生起就专注于 解决图形渲染问题,而图形处理所特有的并行化处 理特性,使得GPU具备并行计算的潜质。本世纪初, 可编程特性被引入GPU, GPGPU(GPU通用计 算)时代到来,其中以NVIDIA公司推出的CUDA (Compute Unified Device Architecture,统一计算设 备架构)为代表。由于一张GPGPU ±往往集成了 成百上千个计算核心,因此被称为众核处理器。比 如NVIDIA公司最新发布的消费级显卡Geforce RTX 2080 集成了 2944 个 CUDA Cores。

(2)从同构到异构

CPU和GPU各有所长:CPU适合做通用计算, 如逻辑性强的算法、业务管理、任务调度、人机交 互等任务;GPU适合做并行计算,如图像处理、科 学计算等大并发任务。大型的复杂计算往往需要同 时使用CPU和GPU,在这种情况下CPU+GPU的异 构计算机得到广泛应用。

(3) 从单机到集群

单机受限于整机设计,计算能力到达一定水平 后就很难提升,且后期难以升级。计算机集群区能 够通过局域网或互联网将单机能力较差的计算节点 组成一个系统,具有很强的可扩展性,能够较方便 地获得较低成本的综合算力。

密码破解系统需要强大的算力,而异构集群系 统能够提供性价比高、易扩展的算力。因此,基于 异构集群系统构建密码破解系统便成了很自然的选 择。当前密码破解系统多为单机版,硬件系统、软 件系统的安装和使用都较为复杂,通过B/S架构向 用户提供在线密码破解服务,可让用户省去机房建 设和维护的成本以及软件的部署和安装成本。基于 以上因素的考虑,研究并实现了一种基于异构集群 的在线密码破解系统。

1 系统需求分析

与一般的高性能计算集群相比,在线密码破解 系统有其自身的特点,例如:

(1) 破解算法属于计算密集型任务。

(2)每个破解算法具备多种破解模式。

(3 )以Web方式提供在线破解能力。

为了满足以上需求,该系茹頰以下组成部分:

(1) GPGPU异构集群。

(2)并行计算编程框架。

(3)集群作业管理系统。

(4)Web管理服务。

(5) 计算节点的任务执行程序。

线密码破解系统的系统组成见图lo

图1  在线密码破解系统组成图

1.1  GPGPU异构集群

GPGPU异构集群为满足密码破解系统的需求, 应具有以下特点:

(1)1个管理节点+N个计算节点

管理节点负责集群状态监控和作业管理。计算节点负责执行来自管理节点的任务分片。管理节点 将任务分解为任务分片队列,以实现多个计算节点 的并行计算。

(2)计算资源可扩展、可替换

通过增加计算节点上的GPU卡,或在集群系 统中增加计算节点,快速增加计算资源。当发现计 算节点异常后,也可通过快速更换计算节点保障破 解任务的正常运行。

图2是计算机集群系统的网络拓扑图。

图2计算机集群系统网络拓扑图

1.2  并行计算编程框架

为使用GPGPU进行高性能计算,应使用相 应的并行计算编程框架囹。包括NVIDIA提出的 CUDA编程框架,AMD提出的Brook++编程环境, OpenCL联盟提出的OpenCL并行编程模型。其中 CUDA和OpenCL使用更为广泛。

CUDA是NVIDIA公司推出的一种并行计算架 构,它是一种高级编程语言,开发者能够很快上手, 所编写出的程序可以在NVIDIA GPU上高速运行。

CUDA架构只支持NVIDIA公司的产品,而 OpenCL并行编程框架则支持多核CPU、GPU、 FPGA、多核DSP系统等多种并行计算架构。

由于本系统GPU全部为NVIDIA系列,考虑到 CUDA编程语言更容易,且在NVIDIA显卡上运行 效率更高,本系统采用CUDA并行编程框架。

1.3  集群作业管理系统

为了使计算机集群的计算资源得到充分利用, 需根据计算机节点情况和任务的资源需求情况对任 务进行合理调度。目前有十几种不同的作业管理系 统叫其中 LSF、LOADLEVELER, PBS、CONDOR 是当今最具代表性和影响力的几种集群作业管理 系统。其中PBS、CONDOR是研究性质的软件, LSF、LOADLEVELER是商用软件,它们的主要功 能为集群系统监控和作业调度等。表1是几种作业 管理系统的比较。

    表1作业系统比较      

其中PBS和LSF综合比分最高。LSF被公认为 是市场上最成功的集群作业管理系统,在功能和可 用性上有较强的优势;PBS为开源项目,可根据项 目自身特点对其进行定制化开发,其成本和可定制 化更有优势。综合考虑,本系统使用PBS进行密码 破解集群作业管理。

1.4  WEB管理服务

WEB管理服务是集群作业管理系统与用户间 的人机交互接口,主要提供集群任务管理、资源管 理、日志报表、集群监控、系统设置等功能。

(1) 任务管理

任务管理提供任务管理、任务查询功能。其中, 任务管理功能包含新建任务、任务状态管理等;任 务查询可对历史任务进行多条件联合检索。

(2)资源管理

资源管理是为任务提交提供基础数据的功能模 块。包括彩虹表管理,字典管理,算法管理等功能。

(3) 日志报表

日志报表功能包括报表管理,操作日志,访问 日志等功能。

(4) 集群监控功能

集群监控功能包括硬件资源监控、警报系统等 功能。硬件资源监控可查看系统中CPU、GPU、内存、存储以及网络的使用情况;警报系统提供了当系统 资源使用过高时告警功能。

(5)系统设置功能

系统设置功能包括系统设置以及用户设置功 能。系统设置提供了为集群配置、在线升级等功能;用户设置提供了用户管理和权限管理的功能。

1.5   任务执行程序

密码破解任务最终会下发到各个计算节点,由 计算节点的任务执行程序执行。任务执行程序包含 代理程序和密码破解程序两个部分。以下是任务执 行程序具有的功能:

(1)因为PBS未能提供对GPU的状态监控能 力,可通过代理程序将GPU状态信息实时传送给 WEB管理服务。

(2)因为PBS可将任务分片调度到计算节点, 而不能直接调度到计算节点上的GPU计算单元(_ 般有多个GPU计算单元),可通过代理程序将任务 分片进一步狮,交给多个GPU计算单元并行处理。

(3)为了实现破解算法的可扩展性,可将破 解算法设计成单个可执行程序的形式,交由代理程 序调用。

2 系统设计

2.1  搭建基础设施

基于第1节的需求分析,搭建了一套GPU集群, 其配置如表2所示。

表2集群系统配置

计算节点和管理节点通过交换机连接,形成一 个高速局域网。利用NFS ( Network File System,网 络文件系统)将管理节点上的字典文件、彩虹表文 件、计算节点可执行程序(计算节点代理程序、密 码破解程序)共享给8个计算节点使用。

2.2   PBS系统的使用

PBS系统由Server (服务进程)、Scheduler (调度进程)和Mom (执行进程)组成,Server和

Scheduler位于管理节点用于任务调度控制,Mom 位于计算节点用于任务执行。PBS系统的工作流程 如下:

(1)由用户发起破解任务分片执行事件, Server开始一个调度周期。

(2 ) Server向Scheduler发送一个调度命令。

(3 ) Scheduler向Mom请求可用资源信息。

(4 ) Mom返回给Scheduler 一个资源信息。

(5 ) Scheduler得到资源信息后,向Server请 求作业信息。

(6)Server收到请求后,将作业信息发给 Scheduler, Scheduler根据作业信息和调度策略产生 执行作业的策略。

(7 ) Scheduler发送执行作业请求至Servero

(8 ) Server接收请求后,发送作业至Mom执 行作业。

(9)Mom收到执行命令后将任务交给计算节 点执行程序执行。

(10 )计算节点执行程序将结果反馈给Mom。

(11 ) Mom将执行结果反馈给Server,完成一 个调度周期。

2.3   WEB管理服务

WEB管理服务提供作业调度功能,其工作流 程如下:

(1)用户通过Web界面创建密码破解任务, 提交后存入任务数据库中。

(2)对任务进行分割,分割后的任务分片放 入任务分片队列中。

(3)任务分片队列周期性读取任务分片并将 任务分片提交给计算节点执行,直到任务分片队列 执行完成。

在破解任务执行过程中,计算节点将执行进度、 破解速度、执行结果等数据及时反馈给管理节点, 管理节点及时更新任务分片队列。

在计算节点执行任务分片的同时,管理节点会 实时监控任务分片的执行情况和计算节点的工作状 态,如发现异常,将修改任务分片状态,在下一次 任务分片轮询过程中重新执行。

2.4  任务执行程序设计

位于计算节点上的密码破解任务执行程序由计 算节点代理程序和密码破解程序组成。其中代理程 序对管理节点的任务调度指令进行监听和解析,调 用相应密码破解算法,在密码破解过程中将任务信息以及GPU硬件的状态信息及时反馈给管理节点。

3 系统实例

3.1  任务提交

用户通过浏览器登录密码破解Web管理服务 后,打开新建任务窗口,按照提示设置密码破解任 务所需的属性、计算资源、破解任务所需文件、破 解模式、任务空间等,点击提交后完成密码破解任 务的创建,如图3所示。

图4 密码破解任务提交界面

3.2  任务队列

密码破解任务创建成功后,将在任务列表中显 7K任务信息,包括任务当前状态、任务属性、速度、 进度等,如图4所示。

图4 密码破解任务列表界面

3.3  密码破解任务加速比

以2.1节集群为例,分别使用其中的纯CPU作 为计算集群和GPU作为计算集群,对几个常用密 码破解算法的性能做出比较,见表3。

表3密码破解算法速度比较

4 结语

针对密码破解系统的现状和需求,提出了基于 异构集群系统的在线密码破解系统的解决方案。该 方案通过B/S架构向用户提供在线密码破解能力, 让用户省去机房建设和维护成本以及软件的部署和 安装成本;通过构建异构集群系统,以及异构集群 系统上的软件系统——集群作业管理系统和计算节 点执行程序——实现了对异构集群系统计算资源 (特别是GPU计算资源)的高效利用,实现了密 码破解任务150倍提速。后期还可通过扩大集群系 统规模,通过进一步挖掘计算节点CPU的计算资 源等手段为密码破解任务提速。

作者简介

刘成,硕士,工程 师,主要研究方向为网络安全;

罗 杰,硕士,工程师, 主要研究方向为网络安全;

臧今宇,学士,主要 研究方向为网络安全。

选自《通信技术》219年第8期(为便于排版,已省去原文参考文献)

声明:本文来自信息安全与通信保密杂志社,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。