DataDirect Connect® 数据访问中间件安全性简化业务流程应用程序





0/5 (0投票)
互联网安全顾问小组审查了 DataDirect Technologies Connect 产品线的基于标准的数据访问组件。DataDirect Connect 产品提供对各种关系数据库的高性能访问,并包含各种重要的安全功能。
应用程序安全和 DataDirect Connect®
许多人了解应用程序安全的需求。在分布式应用环境中,安全地验证用户和保护网络传输数据的价值是显而易见的。但是,安全如何与 ODBC、JDBC™ 和 ADO.NET 等数据访问接口相关联,可能并不清楚。实际上,安全扮演着关键角色,因为这些数据访问中间件技术控制着应用程序和数据库之间通信的各个方面。中间件组件负责建立和管理从应用程序到数据库的连接,结束从应用程序到数据库的请求,然后将数据从数据库传输回应用程序。
中间件执行的一些常见任务包括:
- 连接和语句池化
- 连接故障转移和负载均衡
- 数据库和标准 API 规范之间的数据转换
- 元数据支持
- 国际化和代码页支持
- 线程管理
- 数据缓存
- 缓冲
- 吞吐量套接字管理
当今的应用程序利用了许多不同的应用程序拓扑。在某些情况下,应用程序在桌面客户端上运行,并通过网络连接到数据库。在其他情况下,应用程序托管在中间层服务器上,并连接到在另一组服务器上运行的数据库。其他需要考虑的应用程序拓扑因素包括应用程序是在内网还是公共互联网上运行,以及物理分布的程度。为了满足分布式组织的需求,应用程序通常不限于内部使用。相反,它们高度分布式,导致数据和应用程序使用广泛分布。鉴于数据库中间件访问层的关键作用,安全地实现中间件并提供分布式应用程序所需的安全功能非常重要。
为了满足这些基本的应用程序需求,数据访问中间件必须提供强大的身份验证和数据加密机制。应用程序安全的明智基础包括用于身份验证的 Kerberos、用于授权的目录服务以及用于保护传输中数据的 SSL。尽管许多开发人员期望中间件提供商提供此类功能,但供应商通常不会将其集成到产品中。DataDirect Technologies 将这些安全选项作为标准功能包含在其 DataDirect Connect 产品线中,从而使以易于维护的方式提供强大的应用程序安全变得容易。
什么是数据安全?
安全专业人员传统上将数据安全定义为机密性、完整性和可用性。对于中间件而言,当发送方和接收方确信所有数据都已正确传输并且数据访问仅限于预期方时,数据是安全的。数据安全降低了业务风险,但并未消除风险。
企业需要保护数据的原因有很多。其中一些原因很明显,例如保护专有信息。组织越来越多地被要求保护与其业务合作伙伴和客户相关的数据。如果一个组织需要通过与业务合作伙伴合作来扩展其业务,那么保护传输中的信息(将跨越多个业务边界的信息)非常重要。用户和应用程序之间传输信息的安全性也促进了否则不可能实现的应用程序。中间件中包含的数据安全使企业更加灵活,并不可避免地带来更高的利润。
即使不将数据库视为竞争优势的公司也意识到,数据库被泄露可能导致灾难,使组织面临巨大的经济损失。臭名昭著的 T.J. Maxx 信用卡事件导致超过 1.5 亿美元的损失,近年来还有数百起类似事件。在当前的商业环境中,安全漏洞往往导致客户信任丧失和巨大的经济责任风险。
安全本质上是关于有效降低风险。有效降低风险意味着您的安全方法不依赖于单一的保护点,例如防火墙。有效降低风险需要一种分层安全方法,以解决数据可能受到损害的多种方式。随着犯罪分子将精力越来越多地集中在针对任何有价值的基于计算机的信息上,企业 IT 部门应该仔细检查所有有效的方法,以减少数据丢失或泄露的风险。正如 T.J. Maxx 事件所证明的那样,最昂贵的安全损失之一是入侵者能够访问受信任的网络并监控数据传输。如果入侵者成功地使未经授权的计算机看起来是授权和受信任的,他们就可以长期访问网络,可能造成毁灭性后果。
DataDirect Connect 产品线通过强制执行授权控制和保护网络传输的数据来帮助保护公司的信息资产。安全可靠的身份验证限制了授权错误的可能性,防止外部人员和未经授权的内部人员访问您的网络或受信任的应用程序。DataDirect Connect 产品线通过提供在应用程序和数据库之间加密数据库信息的能力来保护传输中的数据。由于组织可以利用此功能阻止内部和外部用户窃听敏感信息,因此公司可以放心地建立业务关系并在互联网上安全地共享信息。
如今,多层应用程序已成为常态,因为开发人员已将功能职责分离到离散的组件或层中。这一进展导致了更高效的开发模式,但它使必须跨越多层的因素(例如日志记录和安全性)复杂化。虽然面向方面编程 (AOP) 提供了一种编程范式,有助于管理与应用程序层相关的横切关注点,但 Kerberos 提供了一种基于标准的安全身份验证机制。Kerberos 包括支持用户委托的能力。授权委托意味着用户界面在操作业务对象时代表用户行事。
Java RMI、SOAP、SAML 和其他编程标准的一大失败在于它们没有提供授权委托。没有授权委托,开发人员必须退回到自定义解决方案,创建专有、脆弱的架构,需要以巨大的成本进行持续更新。只有 Kerberos 允许开发安全、可扩展和健壮的多层应用程序。DataDirect Connect 提供了市场上最一致的启用 Kerberos 的数据访问中间件实现。
什么是单点登录 (SSO)?
传统上,良好的安全程序要求密码不能在多个应用程序中重复使用。如果密码被泄露,所有使用相同密码的系统和应用程序都将被泄露。用户被迫在他们的商业和专业生活中创建、存储或记住越来越多的密码。单点登录 (SSO) 消除了对多个应用程序密码的需求。SSO 不再是使用相同密码的多个账户,而是代表用户管理所有应用程序的账户凭据。
SSO 显著降低了账户被泄露的可能性。此外,它还降低了与密码重置相关的 IT 运营成本。同样重要的是,SSO 允许组织轻松恢复和管理用户信息,例如员工离职或限制涉及安全事件的个人。要使应用程序参与 SSO,应用程序中的所有组件或层,包括数据库访问中间件,都必须协同工作以启用 SSO。Kerberos 现已被接受为实现支持 SSO 的身份验证过程的首选方法。
满足监管要求
组织必须遵守大量的法规。虽然现有法规很少被取消,但新法规经常出现,并且许多法规在精确定义组织如何实现合规性方面是模糊的。监管要求始终要求数据保护和用户身份验证。DataDirect Connect 和面向方面编程是满足各种当前和未来监管要求的理想解决方案。它们应被视为任何安全程序的关键组成部分。
管理应用程序开发风险
当您在网络架构中引入中间件层时,会增加开发工作中的风险。这种风险通过减少其他开发、运营和维护风险的收益来抵消。DataDirect Connect 产品线通过使用一套基于标准的通用 API(例如 ODBC、JDBC™ 和 ADO.NET)来保护应用程序免受特定数据库供应商的束缚。DataDirect Connect 提供可互操作的接口。这些接口消除了为不同平台和数据库管理系统重新编码软件的需要,从而增加了应用程序的可移植性、可靠性和寿命。
防火墙不足
谈到安全和风险时,许多开发人员认为将入侵者挡在网络之外足以满足安全要求。防火墙和一般周边安全是任何安全计划的关键组成部分。但是,它们只解决了部分必要的安全要求。
臭名昭著的 T.J. Maxx 信用卡盗窃案之所以成功,是因为有人破坏了公司的外围安全。虽然有些防火墙集成了 VPN 功能,可能提供一些加密能力,但这种加密无法处理传输到非同构系统的数据。同样,它也无法保护组织内部传输的数据。
此外,防火墙不执行身份管理。因此,它们不为网络内运行的系统和应用程序提供身份验证。仅凭防火墙无法满足身份管理特定的监管要求。
面向服务架构 (SOA)
越来越多的组织正在转向面向服务架构 (SOA),以提高其 IT 工作的灵活性和敏捷性。在许多情况下,数据服务和数据访问层是 SOA 计划不可或缺的基础技术。这些技术为底层异构数据源提供了一致的访问。由于许多应用程序和 Web 服务共享一个共同的数据服务或数据访问层,因此架构的安全性和可扩展性至关重要。使用 DataDirect Connect 产品的数据服务受益于内置的安全功能,例如 Kerberos 和 SSL。
身份管理是权利管理的基础
数据和应用程序通常部署在异构环境中。应用程序的权限管理必须解决数据通常跨越各种应用程序、防火墙、操作系统、数据库管理系统等事实。如果没有集成的身份管理框架,实施权限管理可能非常困难。当不同的系统拥有自己的身份管理框架时,断言统一的权限管理是困难的。DataDirect Connect 中的身份管理实现依赖于行业标准 Kerberos,该标准在大多数平台上都可用。Kerberos 能够运行一个单一的身份管理系统。权限管理可以通过多种方式部署,其中之一是使用面向方面编程或 AOP。AOP 可以在编译时或运行时实现。在 .NET 和 Java 等托管代码环境中,使用运行时 AOP 很简单,但在 C 或 C++ 环境中,AOP 更困难。使用 AOP 的优势在于它能够实现关于所有可执行对象的策略。
操作系统身份验证和单点登录
Kerberos 和 NTLM 简介
Kerberos 长期以来一直是 Microsoft Windows® 的默认身份验证方法,取代了早期的 NT LAN Manager (NTLM) 协议。选择 Kerberos 是因为它被广泛使用且安全。另一方面,NTLM 是一种专有技术,其安全价值值得怀疑。许多数据库驱动程序,例如 Microsoft SQL Server 2005 的驱动程序,在应用程序跨域时会默默地回退到 NTLM。重要的是要确保身份验证机制不会默默地回退到 NTLM,因为这可能会带来严重的安全后果。
本文档的其余部分将重点关注 Kerberos,因为它已成为事实上的标准,并且比 NTLM 更安全。Kerberos 也称为 RFC 4537,由麻省理工学院在 20 世纪 80 年代创建,此后已被 Microsoft 采纳为标准机制(自 Windows 2000 起),Microsoft 现在支持 GSS-API (RFC 1964)。
Kerberos 得名于希腊神话中地狱的三头看门狗,它有三个基本组成部分:
- 客户端,可以是进程或用户
- 一个授权服务器,称为密钥分发中心 (KDC)
- 服务提供商,例如数据库、Web 服务器或其他 N 层业务服务
Kerberos 建立在第三方信任的原则之上。客户端和服务提供商使用相互信任的 KDC 来建立信任关系。我们将在这里重点介绍几个关键元素,以说明底层机制。
当应用程序客户端想要访问特定服务(例如关系数据库)时,它必须向提供商请求该服务。为了建立信任关系,应用程序客户端和数据库服务提供商都需要某种保证,即另一方不是冒充合法实体的黑客。它们通过使用受信任的第三方 KDC 来建立这种信任关系。
目前,我们将重点关注身份验证和身份管理。Kerberos 与特定用户所拥有的授权关系不大,但会向其他授权实体提供管理员创建的列表。Kerberos 更多的是一种身份管理和数据安全工具,而不是授权机制。Microsoft Windows 通过 Active Directory 提供授权,从而为 Kerberos 提供了必要的补充。
客户端从 KDC 获取服务的票据,服务器在继续之前验证它。另一方面,客户端验证服务器以确保服务器未被欺骗。这也在 KDC 的帮助下完成。没有密码通过网络发送,而是只有客户端、KDC 或服务提供商可能知道的秘密数据的哈希值。此信息存储在加密头中,每个参与方负责解密和验证其所需的信息。KDC 的某些数据使用只有 KDC 知道的密码进行加密。当来自其他源的消息发送给它时,它可以打开此部分以检查篡改和真实性,因此不可能通过操纵数据包内容来颠覆 KDC 或其他实体。
但请注意,票据会过期。特权票据(例如带有实例 `root` 的票据)会在几分钟内过期。具有更普通特权的票据可能有效期为几个小时或一天,具体取决于安装策略。如果您的登录会话超过时间限制,您将必须重新向 Kerberos 进行身份验证以获取新票据。Kerberos 提供身份验证和消息完整性 (`KRB_SAFE`) 加密 (`KRB_PRIV`)。除了卓越的安全性之外,Kerberos 比 NTLM 还有另外两个优点:它更快并提供委托功能。它之所以更快,是因为该协议比 NTLM 简单,需要的服务器往返次数更少。它通过允许用户表示服务可以代表他们行事来提供委托。
Microsoft SSPI 与 GSS 标准 Kerberos
大多数 Microsoft 扩展已合并到 RFC 4757 中。Sun 的 Java SE 6.0 提供了业界功能最强大的 Kerberos/GSS 实现。Kerberos 支持使用 AES-128(带有 JCE 加密策略的 AES-256)、RC4-HMAC(来自 Microsoft)、3DES CBCSHA1、DES-CBC-CRC 或 DEX-CBC-MD5 对数据包进行加密。
Kerberos 也支持 IPv6。UNIX、Linux、Mac OS X 和 Microsoft Windows(通过 KfW 和 SSPI)都原生支持 GSS-API。主要的 Kerberos 实现包括 MIT Heimdal 和 Sun Java 发行版。总的来说,建议公司在设置 Kerberos 时寻求专家帮助。
Kerberos 功能概述
凭证委托
关于数据库连接和 Kerberos,有时您可能希望应用程序在连接和通过数据库进行身份验证时使用实际最终用户的凭据(而不是与执行应用程序的机器关联的用户 ID)。Kerberos 通过委托与最终用户关联的凭据来支持此功能,以便这些凭据可用于数据库身份验证。
Kerberos 通过允许应用程序代码设置“可转发”标志,并仅允许指定服务器配置为代表原始客户端执行操作来提供委托。其他竞争技术需要获取原始用户的证书,这可能导致应不惜一切代价避免的安全漏洞。或者,服务提供商可以自行授权并通过日志机制记录实际用户。在后一种方案中,原始用户的身份被销毁或更改。这使得构建多层应用程序本身就不安全,超出了糟糕的编码、遗留要求等带来的常见问题。换句话说,非 Kerberos 系统本身存在缺陷,或者具有专有性且使用受限。
Kerberos 还支持在域或领域之间传输信任的能力。这些领域必须具有已建立的信任关系。Windows 通过与任何其他控制器上下一个级别的域控制器建立信任关系,在树或林中设置此信任关系。
在林之间建立信任非常困难,必须在积累大量经验后才能尝试。一种方法是将来自另一个组织的 KDC 识别为票据授予服务器。然后,用户获取一个票据以获取该服务器,以便访问其他域中的服务。一旦他们拥有外部域的服务票据,他们就可以从其他域请求服务。信任是传递的:如果 Alice 信任 Bob,而 Bob 信任 Carroll,那么 Alice 将信任 Carroll。这可能符合意图,也可能不符合。修改此行为需要更改源代码。
重新认证
重新认证是 DataDirect Connect 所独有的。它在使用连接池提供可伸缩连接时非常有用。重新认证有效地创建了一个共享资源池。Kerberos 的一些实现希望为每次访问重新颁发票据。尽管这是正常做法,但如果为每个 URL 生成重新认证请求,这样做可能会严重降低性能。DataDirect Connect 会缓存认证,如果当对象已在池中时发出另一个请求,则该对象会被重用。此修改显著提高了性能。
总结:Kerberos 身份验证和 SSO
DataDirect Connect 的数据库驱动程序中间件方法支持 Kerberos,以安全地验证从应用程序到关系数据库的用户访问。无论您的应用程序是利用客户端-服务器还是多层网络架构拓扑,这都很重要。DataDirect 支持 SSO,并且可选地支持委托和重新身份验证,而无需对操作环境或额外的应用程序代码提出新的要求。鉴于 Kerberos 在 Windows、UNIX 和 Linux 平台以及 Microsoft SQL Server、Oracle、DB2 和 Sybase ASE 等数据库中得到广泛支持,这种方法为消费者提供了透明的中间件解决方案,具有良好的支持和性能。
在利用基于网格的架构时,委托绝对至关重要,在这种架构中,多个 CPU 可以处理同一请求的不同部分。网格架构具有可扩展性,并支持多媒体丰富事务所需的许多功能。例如,当使用多线程跟踪而不是串行栅格图像操作时,复杂的渲染和混搭运行得更快。应用程序中间件能够对网格环境中的各种计算资源进行身份验证和正确委托凭据至关重要。
数据加密
加密和 SSL 简介
SSL 协议是建立安全数据传输的完善机制。尽管它主要用于双方彼此不了解的情况,但 SSL 也可以用于不依赖对称密钥列表的应用程序场景。在互联网环境中,它利用开放标准 HTTPS 端口,而不是通常关闭的 Kerberos 端口 (88)。
SSL 会话以公钥握手开始,其中用户和服务器的证书相互检查。如果密钥、时间戳和授权完整,则交换用于 DES 或 AES 的对称密钥。然后使用此密钥加密会话。SSL 确实有虚拟用户的概念,但没有委托。在分配操作系统资源以实施安全时,这一事实至关重要。通过委托,操作系统以与策略一致的方式参与保护对象。对于虚拟用户,应用程序负责实施策略。即使没有编码错误,维护此类系统的复杂性也令人望而却步。
SSL 功能概述
SSL 使用公钥交换 (PKI) 在双方之间提供身份验证,其中一方或双方实际上可以是计算机上运行的服务。每个方都有一个两部分密钥。一部分是公钥,直接或通过 LDAP 等数据库分发。密钥的另一部分始终是私有的,并且永远不会被任何人使用或通过网络发送。
SSL 支持多种加密标准,并具有根据功能、策略和法律限制进行选择的机制。SSL 支持 RSA、Blowfish、SHA、IDEA、DES、Diffie-Helman、Cast RC2/4/5 和 AES 加密标准,具有不同长度的密钥。由于每个 Internet 浏览器都支持 SSL,因此它已成为用于加密 Web 浏览器与提供应用程序页面的应用程序/Web 服务器之间流动数据的主要机制。从数据库中间件的角度来看,本文描述了如何使用 SSL 在数据库服务器和应用程序之间加密数据。
使用 DataDirect Connect 进行加密
由于 DataDirect Connect 提供对 SSL 的集成支持,因此利用 DataDirect Connect 的应用程序可以选择自动加密应用程序和数据库之间流动的数据。这样做显著降低了与最常见的行业数据盗窃相关的风险。
尽管开发人员可以通过其他方式实现加密,但 DataDirect Connect 将加密支持作为其核心功能的一部分。更重要的是,DataDirect Connect 加密依赖于经过充分测试且在所有常见计算机架构上广泛可用的开发库。这种方法简化了实施过程,降低了已开发应用程序和架构的长期风险,并最大程度地降低了开发工作的复杂性。
结论
DataDirect Connect 产品线提供无处不在的安全性,包括通过 Kerberos 支持 SSO 和通过 SSL 进行数据加密。互联网安全顾问小组认为,这些安全功能使得使用 DataDirect Connect 产品开发的任何应用程序都比使用竞争产品开发的应用程序更安全。强烈建议公司在应用程序开发的初始设计阶段考虑 DataDirect Connect。
DataDirect Connect 解决方案的优势在于,该产品线使用标准计算机配置原生支持的标准安全协议。另一个证明点是 DataDirect Connect 技术经过充分测试,并被许多公司和 ISV 广泛使用。这种对 DataDirect Connect 的验证最大程度地降低了与开发和部署工作相关的风险。
DataDirect Connect 提供了一个成熟的数据访问中间件产品线,可满足实施业务流程的功能要求。通过在异构客户端和异构关系数据库之间提供无缝连接,DataDirect Connect 提供了一个解决方案,可降低开发和运营成本,同时提供极大的灵活性。通过在其软件中集成对 Kerberos 和加密等安全功能的支持,DataDirect Connect 以指数级方式提高了应用程序的安全性。如前所述,Kerberos 提供身份管理,同时将恶意系统排除在网络之外。仅这些功能就可以防止导致关键信息被盗以及个人和组织声誉受损的计算机犯罪,这些损失可能比数据丢失更严重。身份管理意味着用户凭据可以轻松地在异构环境中传递。如果没有此功能,用户通常会被授予过多的访问权限,从而助长内部滥用。
同样,Kerberos 降低了入侵者进入网络的风险,因为他们的系统将不被网络识别。即使攻击者能够访问合法系统,他们也需要克服另一个障碍才能在网络上建立凭据。
将 DataDirect Connect 产品集成到应用程序中后,整个事务都将受到保护。如果没有 DataDirect Connect,则需要将各种产品集成在一起,否则整个过程将在没有任何安全措施的情况下执行。您只需阅读任何近期版本的《计算机世界》或《信息周刊》即可了解可能的结果。DataDirect Connect 提供的安全功能本可以防止许多近期备受关注的安全事件,包括犯罪分子窃取 4500 多万张信用卡号码,给 T.J. Maxx 造成超过 1.5 亿美元损失的事件。DataDirect Connect 的安全功能与当今严苛的 IT 环境中部署的应用程序直接相关。
安全因素不仅是技术考量。强大的安全也可以成为关键的业务推动者。随着 Web 2.0 和其他数据与应用程序框架的实施,安全必须成为一个基本的设计关注点。使用 DataDirect Connect 产品可以为您的组织提供无处不在的安全保护。总而言之,DataDirect Connect 解决方案帮助组织减少或消除开发、运营、安全和监管风险。通过提供这种普遍的安全保障,组织降低了损失和责任风险。随着基于计算机的犯罪和损失的增长,DataDirect Connect 必须被视为所有开发工作的可行选择。