高级计算基础设施安全管理系统与中间件安全探讨
ACI系统概述
高性能并行计算机大多由运行Linux操作系统的高性能SMP PC组成。基于分布式数据库和网络技术构建的ACI系统,其软件架构涵盖了安全系统、并行开发工具、性能分析工具、并行应用程序、应用级检查点系统、用户管理系统、任务管理系统和资源管理系统。ACI架构具有以下显著特点:
1.
基于Web技术的集成接口
:采用Web技术构建的集成接口,让ACI系统易于交互,并且不受计算机硬件和操作系统的限制。
2.
以Java为主的开发语言
:主要使用Java进行开发,这使得ACI软件系统能够轻松迁移到其他操作系统或硬件上。同时,在对性能敏感的方面也会采用C语言。
3.
基于数据库的信息存储与管理
:借助数据库进行信息存储和管理,复杂的索引结构和高性能的搜索操作,让数据库的访问速度比文件系统更快。
4.
采用Linux操作系统
:所有计算节点都采用Linux操作系统,其开源特性和丰富的软件支持,使得安全机制能够嵌入Linux内核,提升了ACI系统的安全性。
作为一种互联网基础设施,ACI测试床必须满足资源用户的安全需求,具备抵御非法攻击和破坏以及灾后系统恢复的能力。然而,增强安全能力可能会影响大规模分布式应用的性能,因此需要引入动态并行安全技术来降低安全开销。
安全管理系统需求
为了支持用户在地理上分布的并行计算机上安全地开发和执行应用程序,ACI的安全解决方案需要具备以下新能力:
1. 管理大规模分布式计算中并行进程间安全逻辑通信链路的传输。
2. 管理用户与Web用户界面之间安全交互的传输。
3. 管理用户和资源的身份验证。
4. 降低安全解决方案的开销,以保证大规模分布式应用的性能。
5. 在意外灾难后恢复并行任务的执行。
6. 确保操作系统的完整性。
为了同时满足安全、高性能和便捷性的要求,需要引入新的安全策略和方法。为此,我们提出了具有三级结构的安全管理系统TH - SMS,可针对不同级别的ACI基础设施应用不同的安全策略和工具,让用户能够更轻松、无缝地访问资源。
TH - SMS的三级结构
- 接口安全管理 :负责互联网用户与Web用户界面之间的安全管理,防止用户与界面之间的信息泄露或伪造,抵御非法攻击和入侵。
- 用户安全管理 :将用户的安全等级和资源限制存储在数据库中,在用户访问ACI资源时,防止非法访问,并根据不同的访问权限对用户进行限制。
- 任务安全管理 :监控并行任务的运行状态,对并行任务之间的通信数据进行加密,禁用恶意任务。为了在意外灾难后恢复任务,会对并行任务的中间执行映像进行检查点操作,同时确保操作系统的完整性。此外,采用动态并行安全技术降低安全开销,保证任务的性能。
TH - SMS的实现
接口安全管理
在ACI测试床中,接口安全管理系统主要关注两个方面:
1. 防止来自互联网的非法攻击和入侵。
2. 防止非法信息泄露和伪造。
为实现这些安全能力,我们采用了两种成熟的安全技术:
-
防火墙技术
:在TH - SMS中引入防火墙技术,将高性能计算机网络与互联网隔离。只有经过验证的服务才能通过防火墙,其他无效服务将被阻止。防火墙在Linux操作系统内核中实现,无需硬件支持,配备两个网络接口卡,分别连接互联网和本地高速网络。通过在Linux内核中制定特殊的安全策略,严格检查来自互联网的每个数据包,有效稳定地防止非法攻击和入侵。
-
SSL和SSH技术
:采用Security Sockets Layer (SSL)和Secure SHell (SSH)技术,对互联网用户与ACI软件系统之间的HTTP、Telnet和FTP协议通信通道进行加密。
-
HTTP通道安全
:采用SSL和HTTPS协议,使用OpenSSL、Apache和mod - SSL软件构建安全的Web服务器。同时,建立认证机构 (CA) 对证书签名请求进行签名,为安全的Apache Web服务器提供有效的证书。
-
Telnet和FTP通道安全
:采用OpenSSH软件对Telnet和FTP会话中的所有信息进行加密,有效消除网络监听、连接劫持等网络级攻击。
用户安全管理
TH - SMS中的用户安全管理用于保护合法用户的权益,防止非法用户和非法资源访问。用户访问ACI测试床资源的流程如下:
1. 用户申请有效账户进入ACI系统。
2. 用户安全管理系统检查用户信息后,通过安全的HTTPS或带有PGP签名的安全电子邮件向用户发送安全账户和认证信息。
3. 用户的安全等级、访问资源的权限等信息会记录在防火墙后的数据库中。
4. 当用户提交任务时,系统会检查数据库中存储的用户安全信息。如果用户有权访问任务所需的资源,系统将允许执行该任务;否则,任务提交请求将被拒绝。
任务安全管理
任务安全管理系统主要关注以下几个方面:
1. 对任务的中间执行映像进行检查点操作。
2. 对互联网连接的高性能计算机之间的通信数据进行并行加密。
3. 防止恶意任务的执行。
4. 监控SUID程序,保护计算机软件的完整性。
为实现这些目标,我们采用了以下技术:
-
KCKPT和TH - MPI
:ACI中的长期分布式计算由大量PC组成,存在较高的失败和意外灾难风险。为克服这些问题,我们在TH - SMS中提供了应用级检查点技术,存储任务的中间执行映像。为降低检查点开销,开发了操作系统内核支持的检查点技术KCKPT和操作系统内核集成的容错MPI - TH - MPI。通过动态内核模块和无磁盘检查点技术,有效降低了检查点开销,并且TH - MPI支持使用共享动态库的程序。
-
DP - VPN
:在ACI测试床中,用户任务可能同时在不同地理位置的节点上执行,需要对通信数据进行加密。为解决传统VPN技术加密开销大的问题,我们开发了动态并行虚拟专用网络 (DP - VPN) 技术。DP - VPN在IP层实现,提供高性能的安全点对点连接,对高性能并行计算机之间传输的数据在Linux内核的IP层进行并行加密。其主要处理步骤如下:
1. 为并行计算机中的每个计算节点开发动态路由表。初始化时,将节点i的默认路由器设置为路由器j(j = i mod N)。当添加或删除路由器时,重新计算并重置每个计算节点的路由表,并将消息发送给本地资源管理器。
2. 及时收集网络信息。使用SNMP协议收集地理分布的并行计算机之间的网络信息,并发送给本地资源管理器。所有资源管理器同步网络信息,及时保存最佳网络路由信息。
3. 开发地理分布的并行计算机之间路由器的动态路由表。通过本地资源管理器获取最佳网络路由信息来构建路由表。
同时,我们采用IPSec作为基本的VPN安全协议,增强FreeSWAN以支持DP - VPN,并设置路由和安全策略。通过使用sXid监控SUID程序的状态,使用Tripwire保护计算机软件的完整性,以及在Linux内核中添加安全补丁支持不可执行栈,进一步提升了系统的安全性。
相关工作对比
目前,现有的分布式计算安全技术对ACI中的复杂安全问题关注较少,主要关注客户端/服务器计算环境。例如,Kerberos和DCE基于传统的客户端/服务器计算模式,对动态资源和高性能并行计算关注不足,不适合ACI系统的安全问题。Legion项目虽然目标与ACI系统相似,但并非所有应用都采用其定义的面向对象架构,且只定义了高级安全模型,未涉及实际架构和协议,存在许多低级安全问题未得到解决。相比之下,TH - SMS针对ACI的特殊安全问题,为不同级别的ACI应用提供了不同的安全解决方案,能够同时保证高性能和安全性。
下面是ACI测试床资源访问流程的mermaid流程图:
graph LR
A[用户申请账户] --> B[用户安全管理系统检查信息]
B --> C{信息是否有效}
C -- 是 --> D[发送安全账户和认证信息]
C -- 否 --> E[拒绝申请]
D --> F[记录用户信息到数据库]
G[用户提交任务] --> H[检查用户安全信息]
H --> I{用户是否有权限}
I -- 是 --> J[执行任务]
I -- 否 --> K[拒绝任务]
| 对比项 | Kerberos | DCE | Legion项目 | TH - SMS |
|---|---|---|---|---|
| 计算模式 | 传统客户端/服务器 | 传统客户端/服务器 | - | 适应ACI动态资源和高性能并行计算 |
| 安全架构 | - | - | 高级安全模型,无实际架构和协议 | 三级结构,针对不同级别ACI应用 |
| 对ACI适用性 | 不适用 | 不适用 | 部分适用,存在低级安全问题 | 适用,解决复杂安全问题 |
高级计算基础设施安全管理系统与中间件安全探讨
中间件安全分析
中间件概述
为了隐藏分布式系统中对象调用的复杂性,在应用程序和底层技术之间引入了中间件层。它作为目标对象的客户端代理,通过标准化的对象接口定义语言和通信协议,实现了应用程序的可移植性、灵活性和技术独立性。然而,中间件架构可能无法以适合表达安全策略的方式表示系统参与者,导致安全策略需要使用底层安全技术的加密标识符,这与中间件隐藏机制特定细节的目标相冲突。
中间件安全需求与CORBA
以广泛使用的Common Object Request Broker Architecture (CORBA) 为例,它是一种中间件架构。在介绍中间件、CORBA架构和设计目标以及相关术语的基础上,我们需要明确中间件的安全需求。CORBA安全服务规范总结了一些主要的安全特性,但在实践中,中间件架构可能无法很好地满足安全策略的表达需求。
加密在中间件安全中的角色
加密在中间件安全中扮演着重要角色。在中间件安全架构中,需要考虑加密机制的位置和使用的标识符选择。不同的标识符选择会影响中间件的抽象目标和安全性。
中间件安全问题与解决方案探讨
问题分析
当中间件层没有合适的主体表示时,安全策略不得不使用底层加密机制的可验证标识符。但这种做法打破了中间件隐藏机制特定细节(包括底层加密机制)的目标。例如,在CORBA架构中,就存在这样的问题。下面是中间件安全问题的简单mermaid流程图:
graph LR
A[应用程序] --> B[中间件层]
B --> C[底层技术]
D[安全策略] --> E{中间件层是否有合适主体表示}
E -- 否 --> F[使用底层加密标识符]
F --> G[打破中间件抽象目标]
潜在解决方案及问题
对于上述问题,可能存在一些解决方案,但这些解决方案也可能带来新的问题。虽然我们以CORBA为基础进行讨论,但这些分析适用于一般的中间件。
现有安全技术与ACI及中间件的适配性总结
| 安全技术 | 对ACI适用性 | 对中间件安全问题解决情况 | 特点 |
|---|---|---|---|
| Kerberos | 不适用,基于传统客户端/服务器模式,对动态资源和高性能并行计算关注少 | 未解决中间件因主体表示问题带来的安全策略表达难题 | 依赖传统密码学和AS/TGS组合 |
| DCE | 不适用,基于传统客户端/服务器模式,对动态资源和高性能并行计算关注少 | 未解决中间件因主体表示问题带来的安全策略表达难题 | 基于传统共享密钥密码学和可信第三方 |
| Legion项目 | 部分适用,存在低级安全问题未解决 | 只定义高级安全模型,未解决中间件底层安全策略表达问题 | 基于面向对象软件技术,但并非所有应用采用其架构 |
| TH - SMS | 适用,针对ACI特殊安全问题提供解决方案 | - | 采用三级结构,为不同级别ACI应用提供安全策略 |
结论
ACI测试床作为先进的分布式系统,为用户提供了使用地理分布的高性能计算机和数据库的便利。为确保其安全性,我们设计并实现了具有三级结构的安全管理系统TH - SMS,通过在不同级别实施不同的安全策略和技术,全面保障了系统安全。同时,引入KCKPT和DP - VPN等技术降低了安全开销。在中间件安全方面,虽然现有安全技术在解决ACI和中间件安全问题上存在不足,但我们对问题进行了深入分析,并探讨了潜在的解决方案。未来,我们将进一步完善TH - SMS,使其能够支持更多异构架构和动态网络连接的操作系统,同时继续探索更好的中间件安全解决方案,以满足不断发展的计算环境的安全需求。
超级会员免费看
7万+

被折叠的 条评论
为什么被折叠?



