`
ihuashao
  • 浏览: 4755029 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多

COM(Componet Object Model)是微软开发的一项具有位置透明性、语言无关性、版本升级鲁棒性等特征的系统级别的面向对象组件技术,它通过接口方式定义并实现不同软件模块之间的通信与协作功能。COM+在COM、DCOM(Distributed COM)和MTS(Microsoft Transaction Server)基础上进一步优化了组件管理环境与事务服务,并提供队列组件、事件模型、负载均衡、对象缓存、内存数据库以及安全机制等服务内容扩展。COM+把COM模型推向了更高层次,使得其成为了企业级别分布式软件开发领域的重要技术。
COM+的安全性依赖Windows的安全特性来验证调用者的身份以及相关授权,COM+还使用可靠的编码技术和相应目录配置来确保服务组件的部署的安全。


以下说明COM+应对一些常见威胁的对策
网络
在 Web 和应用程序之间使用 Internet 协议安全性 (IPSec) 加密通道。该解决方案常用于 Internet 数据中心。服务组件还支持远程过程调用 (RPC) 数据包级身份验证。该技术可提供基于数据包的加密,常用于确保与基于桌面的客户端的通信安全。

未经授权的访问
通过启用基于 COM+ 角色的授权(在默认情况下,它在 Microsoft Windows 2000 系统中禁用),可禁止匿名用户的访问,并提供基于角色的授权,从而控制了对服务组件展示的受限操作的访问。

无约束的委派
如果在 Windows 2000 系统中启用委派来许可远程服务器使用客户端模拟令牌访问网络资源,这种委派就是无约束的。这意味着,用户可创建无限多网络跃点 (network hop)。Microsoft Windows Server 2003 引入了受约束的委派。

配置数据泄漏
很多应用程序都使用对象构造函数字符串在 COM+ 目录中保存敏感数据(如数据库连接字符串)。这些字符串在对象创建时由 COM+ 检索并传递给该对象。如果要在目录中保存敏感的配置数据,请首先加密数据。

抵赖
如果用户否认执行了某项操作或事务,而您又没有足够的证据反驳,则产生抵赖威胁。必须在所有应用程序层执行审核工作。服务组件应在中间层记录用户的活动。通常,服务组件有访问原始调用者身份的权限,因为前端的 Web 应用程序常在企业服务方案中启用模拟。

编写的代码应具备以下一些安全特性
基于角色的授权
对于使用 COM+ 角色的基于角色的有效授权,请确保原始调用者的安全上下文用于调用服务组件。这样就能基于调用者的组成员身份执行基于角色的粒度授权。如果 ASP.NET Web 应用程序调用服务组件,则表示该 Web 应用程序要在调用您的组件前模拟它的调用者。

敏感数据保护
如果服务组件要处理敏感数据,则必须确保这些信息在网络中传输时非常安全。如果应用程序不在安全的 Internet 数据中心 (IDC) 环境(由 IPSec 提供传输级加密)中运行,可选择使用 RPC 加密。为此,必须使用数据包隐私性身份验证级别。

审核要求
要解决抵赖问题,必须记录企业服务组件执行的敏感事务。在设计时,应考虑需要审核的操作类型,以及应记录的详细信息。其中应至少包括启动事务的身份信息和执行事务的身份信息(二者可能相同,也可能不同)。

应用程序激活类型
在设计时,可决定激活服务组件的方式。可使用 Dllhost.exe 进程的实例激活,也可在客户端进程中运行。服务器应用程序在 Dllhost.exe 实例的进程外运行。库应用程序在客户端进程的地址空间中运行。由于缺少进程间的通信,使用库应用程序的效率更高。但是,库应用程序的可配置性较差,且不受进程级隔离的保护。很多安全设置(如身份验证和模拟级别)都继承自客户端进程。

事务
如果打算使用分布式事务,请考虑在何处启动事务,以及在防火墙分隔的组件和资源管理器间运行事务的后果。在本方案中,防火墙必须支持 Microsoft 分布式事务处理协调器 (DTC) 通信。

如果您的物理部署体系结构包括一个中间层应用程序服务器,通常应尽量从应用程序服务器中的企业服务启动事务,而不是从前端 Web 应用程序启动。

代码访问安全性
通常,使用服务组件的应用程序都是完全信任的。因此,代码访问安全性在授权调用代码方面作用有限。但是,企业服务要求调用代码必须有必要的权限来调用非托管代码。结果,您将无法直接从部分信任的 Web 应用程序中调用数据至企业服务应用程序。ASP.NET 的部分信任级别(高、中等、低和最低)不授予非托管代码权限。如果要从部分信任应用程序中调用服务组件,必须通过沙盒 (sandbox) 来处理调用您组件的特权代码。有关详细信息,请参阅本模块后面的代码访问安全性注意事项。

身份验证
企业服务应用程序使用 Windows 身份验证。具体是 NTLM 验证还是 Kerberos 验证由客户端和服务器操作系统决定。Windows 2000 或 Windows Server 2003 环境使用 Kerberos 身份验证。
在构建服务组件时,首要问题是确保所有的调用都进行了身份验证,从而防止匿名用户访问组件功能。

总结
企业服务 (COM+) 安全性要依赖 Windows 安全性来验证调用者的身份并进行授权。授权是使用含 Windows 组或用户帐户的 COM+ 角色来配置并控制的。与企业服务应用程序和服务组件相关的大多数威胁都可通过可靠的编码技术和正确的目录配置来解决。

开发人员必须使用声明性属性来设置服务组件的安全配置。这些属性决定了应用程序首次在企业服务中注册(常使用 Regsvcs.exe)时的配置方式。

并不是所有的安全配置设置都可使用属性来设置。管理员必须为服务器应用程序指定运行身份。此外,管理员还必须在部署时根据 Windows 组或用户帐户填充角色。

整理自:

微软《构建安全型服务组件》

张志军《一种高性能的分布式工作流系统实现框架》

分享到:
评论

相关推荐

    Visual C++实践与提高-COM和COM+篇『PDF』

    1.2.4 更多的新名词:Windows DNA和COM+ 1.2.5 远程对象:ORBs和DCOM 1.2.6 COM的最新版本:COM+ 1.3 COM技术现状 1.3.1 COM与CORBA 1.3.2 COM与Enterprise Java Beans 1.3.3 Windows之外的COM 小结 第2章 从...

    COM+编程参考 COM+开发人员参考库之第2卷

    10. **案例分析与实践**:作为开发人员参考库的一部分,书中的案例和实践部分应包含实际的应用场景,帮助读者理解和应用COM+技术。 总的来说,"COM+编程参考 COM+开发人员参考库之第2卷"应该是一本深入探讨COM+技术...

    深入理解 COM+组件技术

    COM+(Component Object Model Plus)是微软提出的一种组件模型,它是COM(Component Object Model)的扩展,旨在提供更高级别的服务,包括事务处理、安全、生命周期管理、并发控制等。本篇文章将深入探讨COM+组件...

    Sql 2005 安装失败 com+组件问题

    #### 二、Com+组件问题的表现形式及原因分析 1. **表现形式**: - 在安装过程中提示与 Com+相关的错误。 - 安装程序无法继续执行,提示错误代码“8004E00F”。 - 无法成功注册某些服务或组件。 2. **原因分析**...

    安装 sqlserver com+解决方法

    在IT领域中,SQL Server与COM+服务的集成可以为应用程序提供更为强大的数据处理功能,尤其是在需要事务处理、消息队列等高级特性时。然而,在实际部署过程中可能会遇到各种问题,比如安装配置上的挑战。本篇文章将...

    C# COM+编程指南(书籍与源码)

    9. **源码分析**:书中的源码实例将帮助你更好地理解理论知识,通过实际操作加深对COM+和C#结合使用的理解。 10. **案例研究**:可能包含实际的案例研究,展示如何在企业级应用中使用C#和COM+,比如数据库访问、...

    《COM++技术内幕》PDF

    书中内容覆盖了COM++的基础知识,包括COM++的组成、接口定义、类工厂、聚合、继承以及安全性和事务性。这些内容为读者提供了一个全面了解COM++的视角,帮助读者建立起扎实的理论基础。 同时,本书也详细介绍了COM++...

    COM+Event.zip_COM_com+_delphi com_event_truckcca

    5. **安全性**:利用COM+的安全特性,如角色基础的访问控制,确保组件和服务的安全。 6. **事务处理**:如果需要保证数据一致性,可以利用COM+的事务支持。 7. **性能优化**:合理配置COM+服务,如缓存策略和池大小...

    COM+ 编程指南

    5. **安全性**:COM+提供了一系列的安全特性,包括身份验证、授权和加密等,以确保组件间的通信安全。 6. **多线程模型**:COM+支持两种多线程模型——单线程和多线程,根据组件的需求选择合适的模型,以达到最佳的...

    com与com+从入门到精通包含源码和pdg格式阅读器

    8. **源码分析**:书中包含的源码可以帮助读者深入理解COM和COM+的实现细节,通过实际案例学习组件的编写和使用。 9. **PDG阅读器**:PDG是一种特定的电子书格式,压缩包内附带的阅读器可以让用户打开和阅读PDG格式...

    撰写高效率的MTS/COM+ 组件和 MTS/COM+应用系统

    例如,没有充分利用MTS/COM+ 提供的高级特性,或者是在架构设计时过于依赖传统的主从架构思维模式。 2. **网络延迟**: 分布式应用的一个常见问题是网络延迟。当数据需要跨多个服务器传输时,网络延迟会显著影响...

    COM+组件中实现基于角色的安全性例

    综上所述,COM+提供了丰富的安全特性,使得在分布式系统中管理权限和访问控制变得更加方便和安全。通过深入理解并正确使用基于角色的安全性、身份许可和客户模拟,开发者能够构建出更健壮、更安全的应用程序。

    深入理解COM+,潘爱民翻译

    9. **案例分析**:作为一个入门教程,书中的案例分析将帮助读者将理论知识应用到实际项目中,加深对COM+的理解。 10. **PDF格式与阅读**:选择PDF格式使得书籍易于阅读和分享,可以在各种设备上查看,包括电脑、...

    MAC_组件应用程序设计—COM+应用程序设计

    ### MAC_组件应用程序设计—COM+应用程序设计 #### COM+应用程序设计概述 ...以上是对COM+应用程序设计中几个关键知识点的详细介绍和分析,旨在帮助读者更好地理解和掌握COM+组件模型的应用设计。

    Inside COM+ Source

    COM+,全称为Component ...通过阅读和分析这些代码,你可以深入理解COM+的工作原理,掌握如何利用其特性来构建实际的应用程序。同时,它也可以帮助你解决在实践中遇到的具体问题,提升你的编程技巧和解决问题的能力。

    ASP第15章COM+应用程序

    - **安全性**:通过内置的安全模型,COM+能够为组件提供多层次的安全保障。 - **组件管理**:自动管理组件的部署、配置和版本控制。 - **对象缓冲**:通过对象缓冲池来提高组件的复用率和系统的整体性能。 #### 五...

    com+实验资料

    COM+(Component Object Model Plus)是微软提出的一种组件服务技术,它是COM(Component Object Model)的扩展,旨在提供更高级别的服务,如事务处理、安全、并发控制和生命周期管理等。这个实验资料主要介绍了如何...

    C#COM+程序设计E

    3. **安全性与隐私保护**:随着网络安全和个人隐私保护意识的提高,未来在C#与COM+集成方面的工作也将更加注重安全性和隐私保护机制的设计与实施。 综上所述,《C# COM+程序设计》这本书不仅为读者提供了丰富的理论...

    C# COM+ Programming(英文

    - COM+提供了一套完善的安全机制,包括身份验证、授权和加密等。 - 开发者可以通过配置文件轻松地为自己的组件添加这些安全功能。 6. **并发与多线程支持**: - COM+支持多种线程模型,如单线程单元(STA)、多...

    ATA COM+组件应用程序设计 真题三

    COM+的关键特性包括: 1. **事务处理**:COM+提供了全局事务支持,允许跨越多个组件的复杂操作要么全部成功,要么全部失败。这对于数据库操作和其他需要原子性的业务逻辑至关重要。 2. **安全性**:通过集成的身份...

Global site tag (gtag.js) - Google Analytics