专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » 点击这里:Open Pegasus 中的安全体系 »正文

点击这里:Open Pegasus 中的安全体系

来源: 发布时间:星期六, 2009年12月19日 浏览:0次 评论:0
  1. 概述

  Pegasus 安全体系中主要包括 3个方面:认证->授权->通信安全本文将详细介绍这 3部分内容希望能为正在学习和研究 Pegasus 朋友更好了解 Pegasus 提供帮助同时也希望能对其他分布式系统安全架构提供参考价值

  2. Pegasus中安全认证过程

  认证是在允许用户访问系统的前对用户进行身份合法性验证过程Pegasus 提供了 3种认证方式:本地认证基本认证以及证书认证各自有其适用范围

  本地认证是基于进程间套接字来实现当客户端需要访问本地系统资源时候不再需要提供用户名口令

  基本认证需要检查 HTTP 报文头携带用户名口令因此这种方式只能用在口令可以明文传送地方安全级别比较低

  证书认证是基于 SSL 认证方式具有很高保密性在 Pegasus 中绝大部分操作都建议使用证书认证方式

  同时为了能使用户可以根据具体情况和需求灵活选择种适合自己认证方式Pegasus 提供了套管理机制对这 3种认证方式进行统管理

  2.1 Pegasus 中认证管理

  对Pegasus而言可以将用户分为两种:本地用户和远程用户

  本地用户即运行Pegasus 服务器端所在系统上用户在这种情况下上述 3种认证方式均适用本段我们主要介绍本地认证原理对于基本认证以及证书认证将在远程用户认证方式中详细介绍本地认证是基于系统内连接不经过网络端口建立连接时所使用是进程间套接字这种连接虽然使用HTTP基本认证机制即简单使用用户名和密码来验证但此时用户已经登录于系统的上了因此不再需要提供密码减少了密码被盗取危险Pegasus服务器端接受系统本身在用户登录时已经做过认证结果因此在本地客户端请求中仅包含用户登录名而不包括相应口令Pegasus服务器端使用客户端所在进程所关联用户名

  远程用户顾名思义就是和Pegasus服务器端不在同系统上用户需要通过网络经HTTP 或者HTTPS端口来进行访问服务器端会通过用户请求以及本身配置来选择使用相应认证方式HTTP端口只能选择使用基本认证而HTTPS端口对基本认证和证书认证方式都适用当然在某些情况下服务器端亦可以选择不对客户端进行认证Pegasus对此为用户提供了多种可配置性选择

  用户可以将基于SSL证书认证方式配置成以下几种角色:

  唯认证方式在这种情况下不再使用基本认证方式只允许使用基于SSL证书认证方式同时使用SSL数据加密机制

  当用户提供证书时使用但当用户不提供时就使用基本认证方式SSL数据加密机制在这种情况下依然被使用

  证书认证被禁止在此种情况下只能使用基本认证方式

  不需要认证此时无论客户端有无提供证书或是用户名口令都将通过服务器端认证

  以上我们讨论是服务器端对客户端进行认证方式对于客户端同样也可以对服务器端合法性进行验证

  2.2 Pegasus客户端认证

  Pegasus中客户端可以通过服务器端证书对其身份进行认证

  sslcontext是建立客户端连接时所需使用到个数据结构当其结构中包含有个信任库以及个有效认证回调客户端便相应具有了验证服务器端能力在这种情况下如果服务器端证书过期或是不在客户端信任库中连接便会被中止当然在大多数情况下客户端都不会检查服务器端证书

  服务器端证书并不会自动更新如果其证书过期可以通过删除证书再重启方式这样相应便会生成个新证书并带有365天有效期限

  3. Pegasus中授权过程

  授权紧跟认证是对用户进行某项操作权限授予过程Pegasus中当访问系统资源对象以及运行命令时候都会涉及到用户权限授予和检查

  3.1 资源对象授权

  从Pegasus角度来看系统资源对象分为两种:静态资源和动态资源静态资源存储在资源库(repository)中而动态资源则被统接口包装为独立模块下文中我们称其为Provider.

  资源库在Pegasus中用来存放静态类以及对象从安全角度来看对资源库访问并不会涉及到系统资源改动然而资源库操作有可能会改变某些架构定义这会影响到客户端所看到CIM模型因此资源库操作应该受到定限制Pegasus 中采用访问控制原理来进行管理

  Provider做为服务器端出口以及操作系统个插件需要拥有非常高安全保障Provider 授权及检查主要包括以下两方面:

  客户端用户是否有权限去运行个有关 Provider 操作

  根据用户上下文决定 Provider 是否有权限执行它所请求操作服务器端可以将 Provider 运行在几种区别用户上下文的中即 Provider 被以及请求操作上下文目前支持 4种用户方式:请求者指定用户特权用户服务器端所在用户这为开发者提供了种选择可以提高或降低 Provider 本身安全级别从而加强对系统资源安全管理

  在以下两种情况下发向ProviderCIM请求并没有携带通过认证用户:

  当服务器端禁止了认证过程

  事件(indication)在服务器端内部传送即服务器端将 CIM 事件对象从个 provider 传递到另个 provider 中

  3.2 命令授权

  Pegasus 目前实现中所有已认证用户均可去使用 Pegasus 所提供命令没有任何机制去限制个用户这显然不够安全

  如果对命令进行授权管理将会安全很多

  Pegasus 中大部分命令都是以客户端形式通过和服务器端建立本地连接进行通信这类命令首先需通过本地认证然后向服务器端发送请求在这种情况下可以对客户端进行授权检查看客户端用户是否具有某种特殊权限要注意是这种检查应该在服务器端进行恶意者很容易会模拟个客户端执行和该命令相同操作从而对系统资源信息进行非法盗取或恶意破坏做为其他些非客户端命令有关用户授权检查可以在命令本身进行

  4. Pegasus 中通信安全

  通信是有关数据传输怎样把数据以种高保密安全方式传送出去保证数据私密性并避免未授权用户恶意更改便是通信安全需要考虑问题般来说有 3种方式:对称密钥加密方式公钥加密协商加密方式

  Pegasus 中数据可以通过 HTTP 以及 HTTPS 端口进行传输HTTP 端口不具有安全性在对安全方面有很高要求情况下不推荐使用这种方式我们在此将具体讨论基于 SSL 数据传输方式对于客户端主动请求以及服务器端事件机制均支持这种传输方式Pegasus 中基于 SSL 数据传输流程(协商加密方式为例)如下表所示:

  Pegasus 中基于 SSL 数据传输流程



  查看原图(大图)



  5. 整理总结

  本文介绍了 Open Pegasus 主要安全机制主要涉及认证授权以及通信安全 3个方面首先Pegasus 提供了多种认证方式并对其提供统管理为用户提供选择同时提供多方面授权并通过SSL来实现数据通信安全 3方面共同组建了套安全可信体系架构

  本文对 Pegasus 安全体系给出了较详细介绍帮助读者更进了解其内部原理同时对构建其他分布式工程安全体系具有参考价值



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: