CN102089767B - 无人值守应用程序的经认证数据库连接 - Google Patents

无人值守应用程序的经认证数据库连接 Download PDF

Info

Publication number
CN102089767B
CN102089767B CN200980126751.5A CN200980126751A CN102089767B CN 102089767 B CN102089767 B CN 102089767B CN 200980126751 A CN200980126751 A CN 200980126751A CN 102089767 B CN102089767 B CN 102089767B
Authority
CN
China
Prior art keywords
target resource
voucher
application program
request
spm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200980126751.5A
Other languages
English (en)
Other versions
CN102089767A (zh
Inventor
詹姆斯·亚历山大·悉尼·曼特勒
加尼·戴维·亚当斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ai Dide Technology Co., Ltd.
Original Assignee
Irdeto Canada Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Irdeto Canada Corp filed Critical Irdeto Canada Corp
Publication of CN102089767A publication Critical patent/CN102089767A/zh
Application granted granted Critical
Publication of CN102089767B publication Critical patent/CN102089767B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

结合本地数据库连接组件和凭证管理器使用定制的数据库连接组件。该定制的连接组件具有:用于与请求方应用程序通信的请求方接口,用于与凭证管理器通信的凭证服务接口,用于与本地连接组件通信的本地数据库连接接口,以及用于确定如何将来自请求方的请求转换为对凭证管理器适当的API呼叫的决策引擎。该定制的连接组件为请求方应用程序提供认证和授权的数据库连接。该组件实时透明地服务检索数据库或其他目标资源、凭证,而不需要请求方应用程序改变代码。

Description

无人值守应用程序的经认证数据库连接
技术领域
本发明涉及用于计算机系统的安全系统。更具体地,其涉及用于凭证管理的方法和系统,特别是涉及在没有人工干预的情况下准许对软件应用程序的资源进行访问的方法和系统。
背景技术
对计算机系统不断上升的依赖也已伴随着引起了对于计算机安全的关注度上升。一种限制访问计算机和计算机资源(例如一个程序或应用程序访问另一个程序)的已知方法是使用口令。硬编码的应用程序口令提供实际方法(de-facto methodology),从而允许一个应用程序(请求方)对于诸如数据库的另一个应用程序或服务(目标)的认证,以便获得对目标所提供的资源和/或数据的访问。
然而,由于硬编码口令仍然是易受恶意察看的明码信息,因此口令的硬编码对于数据造成了显著的弱点。这种口令也要求分配给开发人员,且具有较长的有效期以适应其缺乏变化。这些考虑的因素反而增加了破坏安全的弱点。
对那些利用口令变化策略的组织来说,硬编码口令具有劣势,原因在于其需要反复出现软件维护问题。同样地,人员再次开发软件会牵连相当大成本,并且由于同步误差和定时还有可能中断应用程序。
尽管有这些缺点,但全部企业应用程序中约百分之九十仍然使用硬编码口令。正在开发并应用包含硬编码口令的新应用程序。第三方(供应商)应用程序迫使企业接受和应用包含硬编码口令的系统。70%的数据中心应用程序是数据库驱动。
虽然用户身份管理系统为系统提供个人认证和授权,但对于无人值守应用程序而使用这些方案存在显著的困难:这些方案依赖用户手动交互以便认证;这些方案依赖用户手动交互以便恢复认证凭证;这些方案不包括用于无人值守的脚本和应用程序自动使用的凭证访问和管理能力;这些方法不提供防篡改功能;这些方案不提供对静止或动态分析的防御;以及这些方案假设雇员通常值得信任,但由于内部攻击盛行因此该假设显然不成立。
另一种可能是使用供应系统(provisioning system)。供应系统提供将操作系统和软件配置向服务器进行更新的能力。然而,对于无人值守应用程序而使用这些解决方案存在显著的困难:这些方案不包括用于无人值守脚本和应用程序的凭证的运行时间检索;这些方案不包括无人值守脚本和应用程序自动使用的凭证访问和管理能力;这些方案不提供防篡改功能;以及这些方案不提供对静止或动态分析的防御。
另一种选择是使用公钥基础设施。公钥基础设施提供创建全面而简洁的认证和授权解决方案所必需的组件。然而,对于无人值守应用程序而使用这些解决方案存在显著的困难:这些方案不保护在存储器中的关键材料;这些方案依赖用户交互来访问认证证书;这些方案不包括无人值守脚本和应用程序自动使用的凭证访问和管理能力;这些方案不提供防篡改能力;这些方案不提供对静止或动态分析以及篡改应用程序代码的防御;这些方案显著地转变企业的认证模式并招致付出更大整合和配置努力;以及必须修改认证器和认证这两者从而将PKI用于认证。
另一种可能是使用Kerberos认证协议。Kerberos认证协议提供创建全面而简洁的认证和授权解决方案所必须的组件。然而,对于无人值守应用程序而使用此方案存在显著的困难:此方案不能保护在存储器中的关键材料;此方案依赖用户交互来访问认证凭证;此方案依赖于用于无人值守应用程序的认证的硬编码口令;此方案不包括无人值守自动脚本和应用程序自动使用的凭证访问和管理能力;该方案不提供防篡改功能;此方案不提供对静止或动态分析或篡改应用程序代码的防御;此方案显著地转变企业的认证模式并招致付出较大整合和配置努力;以及此方案要求必须修改认证器和认证从而将Kerberos用于认证。
因此,需要一种系统及方法,其允许应用程序进行无人值守认证,从而这些应用程序能够访问资源。理想地,这种系统和方法可以规避硬编码口令的缺点,同时(如果没有更高的安全等级)提供类似的安全等级。
发明内容
因此,本发明的目的是提供一种新颖的口令发布方法和系统,其避免或缓解现有技术的缺点。
根据一个方面,提供了一种计算机执行方法,其提供访问目标资源的安全凭证。当在一个或更多个处理器上执行该方法时,使得一个或多个处理器执行如下步骤。从请求方应用程序接收对目标资源的连接请求。然后,对该请求进行解码(诸如通过解析),以提取凭证管理器对于请求方应用程序进行认证及检索安全凭证(诸如用户名及口令)所需的信息,用于访问目标资源。凭证管理器管理并存储用于目标资源的凭证。然后,所提取的信息被安全传输地至凭证管理器以检索凭证。例如,该安全传输可包括对于向凭证管理器及来自凭证管理器的通信进行加密。使用从凭证管理器检索的凭证,生成对目标资源的本地目标资源连接请求。然后,将本地目标资源连接请求传递至本地目标资源连接组件以建立请求方应用程序与目标资源之间的连接。
根据实施方式,该方法可实现Java数据库连接(JDBC)应用程序编程接口(API)。接收连接请求包括从凭证管理器接收用于检索凭证的目标别名(target alias)和包含目标资源URL的JDBC统一资源定位符(URL),并且生成本地目标资源连接请求包括利用目标资源URL对检索到的凭证进行打包以提供本地JDBC URL。
根据进一步的实施方式,该方法可实现开放数据库连接(ODBC)API,其中,接收连接请求包括从凭证管理器接收包含用于检索凭证的目标别名的ODBC连接请求,和用于本地目标资源连接组件的连接字符串,并且生成本地目标资源连接请求包括利用连接字符串对检索到的凭证进行打包。
根据另一方面,提供了计算机程序产品,其包括存储计算机可执行指令以提供用于访问目标资源的安全凭证的计算机可读介质。执行该指令时,使得一个或多个处理器实现如下功能模块。实现请求方接口,从而与请求方应用程序通信以接收连接请求,该连接请求包括识别目标资源的目标资源信息以及对请求方应用程序进行认证所必需的配置信息。实现凭证服务接口,从而与凭证管理器(其管理并存储用于目标资源的凭证)安全地通信。实现本地数据库连接接口,从而与本地数据库连接组件(其建立与目标资源的连接)进行通信。以及,实现决策引擎,从而与请求方接口、凭证服务接口以及本地数据库连接接口中的每一个进行通信。决策引擎用于对请求进行解码,从而确定目标资源的身份和凭证管理器对请求方应用程序进行认证及检索用于访问目标资源的安全凭证所需要的配置信息,凭证管理器管理并存储用于目标资源的凭证;将提取的信息安全地传输至凭证管理器以检索凭证;生成对于目标资源(包括检索到的凭证)的本地数据库连接请求;以及将本地数据库连接请求传递至本地数据库连接组件以建立连接。
结合附图参阅本发明具体实施方式的下列描述,本发明的其他方面和特征对本领域技术人员将变得显而易见。
附图说明
下面参考附图,仅通过示例方式来描述本发明的实施方式,其中:
图1是现有技术中用于凭证管理的系统的框图;
图2是使用根据本发明实施方式的数据库连接组件的系统的框图;
图3是使用根据本发明实施方式的数据库连接组件和凭证管理器的数据库连接的流程图;以及
图4是根据本发明实施方式的数据库连接组件的框图。
具体实施方式
图1示出题为“Simplified Management of Authentication Credentials forUnattended Applications”的美国申请第11/640,371(美国公开第2008/0148373号)号中所描述的用于凭证管理的现有技术系统10,其全部内容结合于此作为参考。请求方节点12上存在服务器口令管理器(SPM)模块14、请求方应用程序16及可选地,安全缓存模块18。请求方节点12与实现口令授权系统的凭证管理器(CM)节点20进行通信。请求方节点12与CM节点20通信以请求访问目标节点28上的资源26。可选地,VPN(虚拟专用网络)模块30存在于目标节点28上以管理与CM节点20和请求方节点12中的一个或两者的通信。
请求方节点12、CM节点20、以及目标节点28都是计算机网络中的节点,并可以是单台机器服务器或互连服务器的集合。图1中多种模块是软件模块,其与节点的硬件相互作用以执行指令。
CM节点20对控制数据存储器24(其存储访问资源26所需的凭证)的CM模块22进行操作。当请求方应用程序16需要访问资源26时,必须请求这些凭证从而获得对资源的访问。请求方应用程序的请求传输至SPM模块14(其与请求方应用程序16存在于相同节点上)。SPM模块14接收请求,从请求中提取出相关信息,并将该信息打包为请求包以便传输到CM模块。SPM模块14使用由CM模块22生成并预先传输至SPM模块14的加密密钥来加密该请求包。SPM模块14也利用经加密的请求包传输与请求方节点12相关的指纹数据。
为了将凭证传输至目标资源26,CM模块22可将这些凭证连同要被准许访问的请求方应用程序16的身份直接发送至目标资源26。可选地,CM模块22可将凭证返回到SPM模块14,从而请求方应用程序16可直接使用这些凭证来访问目标资源26。CM模块22也可与目标资源26及其相关联的SPM模块32通信以便更新关于改变的凭证,如口令和加密密钥。
应该注意,请求方节点12中的SPM模块14可使用安全缓存18存储请求方应用程序16的凭证,从而将来不需要通过CM模块22就可对目标资源进行访问。类似地,由CM模块22生成并由SPM模块14用于加密/解密与CM模块22通信的加密密钥也可存储在安全缓存18中。
为了安全地操作,在能够执行上述处理之前,SPM模块14、32中的每一个必须向CM模块22对其自身进行识别并接收唯一的加密密钥用于与CM模块22进行通信。作为该设置阶段的一部分,每个SPM模块14、32均收集关于其节点12、28的数据,这些数据包括何种资源可以是目标资源、何种应用程序可以是请求方应用程序、以及关于这些资源和应用程序的详细资料。SPM模块14、32还收集其节点的配置信息(诸如安装在节点上的硬件)和唯一识别该节点的其他配置信息。然后,可以将配置信息(其可包括序列号、安装在节点上的应用程序、安装的软件和硬件这两者的版本号)用作节点的“指纹”。然后,一个节点上收集的指纹数据连同关于该特定节点的其他信息一起被发送到CM节点20以便验证。一旦验证,请求方节点和存在于其上的SPM模块可请求访问向CM模块22注册的资源。当然,仅仅是存在于向CM模块22注册的节点上的请求方应用程序才被允许访问目标资源26。节点上的新应用程序在能够请求访问目标资源之前必须注册并由CM模块22验证。
应该注意,为了获得对于访问资源所需的凭证进行访问,每次存在于节点上的请求方应用程序要求访问时,每个SPM模块均必须提供其节点指纹数据。如上所述,该指纹数据连同与请求方应用程序的目标资源访问请求相关联的相关信息一起被传输到CM模块22。当CM模块22接收这种指纹数据时,CM模块22可从数据存储器24检索该特定节点的注册数据,以检查从请求方节点接收的指纹数据是否与最初验证该请求方节点时接收的指纹数据相匹配。如果匹配,则SPM模块是其所号称的模块并可继续进一步的检查。如果不匹配,则资源访问请求被拒绝。拒绝这种请求意味着请求方节点必须经历初始注册/验证处理。
应当进一步注意,一旦请求方节点(通过存在于其上的SPM模块)或SPM模块(如果每个请求方节点存在一个以上的SPM模块)被CM模块22验证,则CM模块生成将用于在CM模块22与SPM模块或请求方节点之间的通信的密钥。一旦副本已经发送到相关SPM模块/请求方节点,这些密钥就被保存在数据存储器24中,以便由CM模块使用。应当清楚,请求方节点可具有存在于其上的多于一个的SPM模块,其中每个SPM模块负责管理请求方节点上至少一个请求方应用程序的目标资源访问。对于这种配置,每个SPM模块均可具有其自身的密钥集,用于与CM模块通信。对于更高的安全性,可具有如下配置,其中每个请求方应用程序具有与CM模块共享的、其自身的加密密钥,以便在这两者之间通信时使用。
每个请求方应用程序连同其关联的SPM模块及其存在于之上的节点一起由CM模块来注册并验证。为了获得对目标资源的访问,请求方应用程序请求这种访问并传输数据(在其寻求验证和注册时,该数据最初被传输到CM模块)。这种数据可以包括应用程序名称、应用程序文件存储位置、应用程序执行路径、应用程序身份(ID)、应用程序单向哈希值、会话授权密钥,以及其存在于其上的节点的机器指纹。当然,取决于系统配置,任何上述子集(具有或不具有额外数据)都可用于获得对资源的访问。
关于CM节点20中的数据存储器24,该数据存储器可以是数据库形式。为了存储在数据库的数据库字段中,可用强密码对关键值进行加密。可用长、强口令将关键的经加密数据写入专用数据库,该专用数据库是数据库的一部分。然后,可利用口令(使用管理的对称密钥对该口令进行加密)来保护该专用数据库。接下来,经管理的密钥可存入公共数据库表中,以允许密钥以特别或预定方式改变。
为了简化CM模块的记录保持任务,可使用别名概念。每个目标资源(如目标服务器上的应用程序)可与特定别名关联。还与别名关联的是目标资源的凭证(例如帐户和口令)。在对可能请求访问目标资源的潜在请求方应用程序进行注册/验证时,该应用程序连同请求方应用程序的访问权以及任何释放对于访问目标资源的凭证所需要的运行标准被映射到别名。这引入了对于检索凭证的一定程度的间接性,其允许凭证改变而对请求方应用程序无任何影响。因此,如果访问特定资源所需的凭证改变,不必逐个通知请求方应用程序。
如上所述,SPM模块14可使用安全缓存18,以便同一节点上的其他请求方应用程序可以对先前已访问的资源进行访问。这允许请求方应用程序更快的访问资源。为了使用安全缓存18,从CM模块22接收的凭证可保存在安全缓存18中。如果与SPM模块14在同一节点上的请求方应用程序16请求访问其凭证已经存储在安全缓存18中的资源,则SPM模块14可本地认证请求方应用程序并提供所需凭证。当然,出于安全原因,可加密安全缓存的内容,且该内容可以是时间限制的(因为该内容可在预定的时间量后被自动删除)。这种方案确保凭证需被周期性访问,从而绝不会不确定地存储失效凭证。
为了确保用于访问资源的凭证(例如,口令和加密密钥)是最新的,CM模块可改变用于这些资源的凭证。CM模块22可与资源(例如,软件应用程序)进行通信从而改变访问该资源所需的凭证。一旦凭证已经被改变,就将新凭证传输至CM模块22。然后,CM模块22更新数据存储器24中的相关记录。
图1中所示的系统提供了用于无人值守的应用程序的安全凭证管理。然而,正如本领域技术人员理解的那样,SPM模块14,32必须与请求方应用程序和目标节点28集成,这需要熟练程序员并改变请求方应用程序16的代码。因此,为了在运行遗留应用程序的大型企业中鼓励采用安全口令授权系统,期望提供一种装置来与口令授权系统接口,而不需要专业记录或编程知识。
大体上,本发明提供一种方法和系统,利用该方法和系统可通过安装和配置SPM目标资源连接组件(以下称为“SPM连接组件”)来认证无人值守的请求方应用程序的数据库连接,而无需重新编码请求方应用程序。SPM数据库连接组件拦截对目标资源的请求,按照对于凭证管理器可理解的形式对请求进行再打包,访问来自凭证管理器的安全凭证,并将凭证传递至目标资源。例如,凭证管理器可以是上述CM节点,诸如服务器口令管理器或其他可用凭证管理器。
图2示出本发明实施方式的整体系统架构。请求方节点100使存在于其上的请求方应用程序102访问存在于目标节点106上的目标资源104。介于请求方应用程序102与本地目标资源连接组件110(以下称为“本地连接组件”)之间的SPM连接组件108拦截来自请求方应用程序102的、对于目标资源104进行访问的请求,并将该请求路由到存在于请求方节点102、或存在于CM节点114上(如图所示)的凭证管理器(CM)112。本地连接组件是已知组件,其通过执行诸如JDBC或ODBC的标准数据库连接应用程序编程接口(API)来为请求方应用程序提供数据库连接。该连接可以是数据库专用的。
凭证管理器112是请求方节点100所配置或可利用的组件。凭证管理器112协调本地请求方应用程序的凭证请求。凭证管理器112通常提供API以便改变请求方应用程序类型。在实施方式中,CM节点114包括上面关于图1描述的组件和功能。请求方节点100、CM节点114、以及目标节点106都是计算机网络中的节点并可以是单台机器服务器或互连服务器的集合。图2中各种模块是软件模块,这些软件模块与节点的硬件相互作用以执行其指令。
参考图2,在图3中示出了使用SPM连接组件108的凭证管理系统的整体操作。请求方应用程序102请求对诸如数据库的目标资源104的连接(步骤150)。SPM连接组件108拦截或接收此请求(步骤152),并对连接请求进行解码(步骤154)。然后,SPM连接组件请求来自凭证管理器112的凭证(步骤156)。凭证管理器112对该请求进行认证,并返回必须的凭证从而实现SPM连接组件108的请求(步骤158)。SPM连接组件108使用凭证管理器112提供的凭证通过本地连接组件110来初始化本地数据库连接(步骤160)。然后,本地连接组件110建立、或试图建立至驻存目标资源104的外部目标系统的连接(步骤162)。如果凭证是有效的,则建立连接,并且所建立的至目标104的连接返回到请求方应用程序102(步骤164)。如果试图建立连接不成功,则可执行任选的再尝试。从凭证管理器112检索进一步的凭证,且试图在步骤156处开始再连接尝试。可接受的再尝试次数是设计选择的问题。
如图4所示,SPM连接组件108是软件模块。其结合本地数据库连接组件110和凭证管理器112使用。SPM连接组件108包括用于与请求方应用程序102通信的请求方接口180、用于与凭证管理器112通信的凭证服务接口182、用于与本地连接组件通信的本地目标资源连接接口184、用于允许从安全管理器更新的安全接口186、以及用于确定如何将请求方的请求转换为适当API对凭证管理器112呼叫的决策引擎188。
SPM连接组件为请求方应用程序提供认证并授权的数据库连接。在本地连接组件是动态加载的情况下,SPM连接组件用作数据库连接组件,其实时检索数据库、或其他目标资源、凭证,而不需要请求方应用程序代码变化。SPM连接组件认证和授权请求方应用程序的数据库连接的所有访问。
可参考示例性实施例来最佳地理解SPM连接组件108的功能。下面描述两个示例性实施例:JDBC SPM连接组件,以及ODBC SPM连接组件。这些实施例是非限制性的,而仅是说明性的。该实施例假定通晓Java编程,以及JDBC和ODBC连接,这对本领域技术人员是可预期的。
JDBC是Java编程语言的API,其定义客户如何访问数据库。其提供用于查询和更新数据库中数据的方法。JDBC使用定制的Java DataSource对象。在Java编程语言中,DataSource对象是数据源的表示。在基本术语中,数据源是存储数据的设施。数据源对于大型公司来说可以与复杂数据库一样繁杂,或与具有数行和数列的文件一样简单。数据源可以存在于远程服务器上,或可以位于本地桌面机器上。应用程序使用连接来访问数据源,且DataSource对象可以当作是DataSource实例表示的特定数据源的连接代理。定制的Java DataSource对象将对于数据源或目标资源的呼叫进行封装,且透明地访问凭证管理器112从而检索访问数据源所需的安全凭证。
SPM连接组件108的作用是透明管理数据库连接获取中的认证。为了实现该功能和特征能力,设置了本文中称为SPM代理驱动器的代理JDBC驱动器类并实现决策引擎188。代理驱动器类在专门定义的URL上进行操作,该URL对由本地连接组件110管理的真正底层JDBC连接管理和Driver利用所需的所有信息进行编码。该代理类由用户在配置期间指定为任何数据库的Driver类。然后,用户可以按照标准方式对必要的JDBCURL信息进行编码。在执行中,JDBC代理驱动器与正常JDBC驱动器一样运行,但透明地执行委派的JDBC驱动器调用,并呼叫凭证管理器112。代理JDBC驱动器类使用被称为SPM JDBC URL的专用JDBC URL编码,其细节在下面给出。功能性地,SPM代理驱动器服从所有要求并遵从所有用于Java JDBC驱动器类的使用惯例。
为了安全地检索访问目标资源所需的凭证,用户指定的URL属性用于声明SPM别名。如上所述,每个目标资源(例如,目标服务器上的应用程序)可与特定别名关联。还与别名关联的是目标资源凭证(例如,帐户和口令)。在注册/验证请求访问目标资源的潜在请求方应用程序时,将其连同请求方应用程序的访问权以及释放访问目标资源的凭证所需要的运行标准一起映射到别名。这引入对于检索凭证的一定程度间接性,其允许改变凭证而对请求方应用程序无任何影响。因此,如果访问特定源所需的凭证改变,不必逐个通知请求方应用程序。
对用户指定的URL属性进行定义以声明SPM代理驱动器应用为真实(目标)JDBC驱动器的确切驱动器类。在所有连接尝试中,从凭证管理器112获得诸如用户/口令的凭证。SPM代理驱动器忽略所有呼叫方提供的用户/口令实例。优选地,SPM代理驱动器还可以处理调用凭证管理器112中故障或错误情况。为了处理这些情况,可定义必须从SQL Exception获得的一些SPM特定异常。
SPM JDBC代理的核心类是SPM代理驱动器类,其实现java.sql.Driver接口并包含所有要求的服务实现。SPM代理驱动器管理所有SPM JDBC URL。更具体地,向驱动器管理器注册的SPM代理驱动器类的单个例子管理所有SPM JDBC URL。这意味着不同数据库可同时通过单个SPM代理驱动器实例来访问。
SPM JDBC URL是定制的JDBC URL,其通过凭证管理器112对真实的JDBC URL连同用于代理驱动器及处理和管理凭证的附加信息进行编码。SPM JDBC URL格式定义为:
Spm:[url];P1=V1;...;Pn=Vn其中
Spm是文字前缀“spm:”;
[url]是用户特定的真实JDBC(base)URL,如
Jdbc:hsqldb:hsql://localhost:9001/cspml
每个Pi均是真实JDBC URL的属性的属性名称,否则是SPM区分的属性SPMAlias或SPMDriver之一;
SPMAlias必须出现在Pi列表中,其值必须是用于用户/口令查询的预期SPM别名(SPMAlias);以及
SPMDriver可出现在Pi列表中,且如果这样的话,必须是对[url]值有效的JDBC驱动器(JDBC Driver)。
SPM属性被提供给Java属性映射,真实JDBC驱动器可从该映射获得值。
在SPM代理驱动器类中实现决策引擎188,且将SPM JDBC URL解码或解析为内部使用的相关部分。这些部分是:
1.Original URL:按规定定义为SPM JDBC URL。
2.Base URL:仅定义为上面的[url]片段。
3.Driver URL:在任何出现SPMAlias和SPMDriver移走(也可出现移走用户和口令)情况下,定义为SPM JDBC URL。
4.SPMAlias:定义为需要的SPMAlias属性的值。
5.Driver Class Name:如果有,则定义为SPMDriver属性的值,否则为空。
在SPM JDBC URL所有应用URL参数的服务中,其被SPM ProxyDriver类接收。SPM Proxy Driver类获得并保持目标JDBC Driver,从而通过使用由属性SPMDriver的值(如果存在)命名的类的例子调用SPM JDBCURL连接,否则通过查询接受[url](Base URL)的驱动器来调用SPM JDBCURL连接。在任一情形中,目标Driver的获得可通过查询DriverManager类发生。并且,实现java.sql.Driver接口,SPM Proxy Driver存储建立给定SPM JDBC URL的连接所需的所有数据,如在JdbcDriverUrlEntry类的例子中请求方应用程序或服务器的配置或指纹信息。JdbcDriverUrlEntry例子可存储在由SPM JDBC URL加密的缓存中。
SPM连接组件的JDBC实现提供Java库(例如,具有JavaDoc的jar文件),用户可使用该Java库将凭证管理器112的功能集成到其应用程序中,而无需再编码该应用程序。在使用中,终端用户仅需要将具有驱动器的库和关联的类添加到请求方应用程序服务器的类路径;并配置请求方应用程序服务器中DataSource从而使用规定SPM JDBC URL的SPM ProxyJDBC驱动器。更具体地,为了使用SPM JDBC Driver,修改配置文件中的属性从而按先前规定地设置连接url,并将驱动器类设置为SPM JDBCDriver。
SPM Proxy Driver类及其所属类形成可分开应用的独立组件。在集成时,其具有对于cspmclient.jar库(可能地,log4j(或其他登录系统))的集成依赖,以及通过SPM JDBC URL在配置中声明的供应商指定的JDBCDriver类。
连接请求由提供URL和属性集的请求方应用程序102做出。该请求由SPM Proxy Driver接收,其首先检查接收的URL是否为SPM JDBC URL且因此由类处理。如果URL不是SPM JDBC URL,则连接请求失败。如果URL是SPM JDBC URL,则从JdbcDriverUrlEntryCache获得所需的JdbcDriverUrlEntry例子。JdbcUrlDriverEntryCache类的associateDriver服务负责定位与JdbcUrlDriverEntry例子中SPM JDBC URL关联(绑定)的目标JDBC Driver。如果缓存条目(cache entry)不存在,则在此刻创建缓存条目。
呼叫凭证管理器112从而在每个重复的尝试中检索必要的安全凭证,诸如,用户名和口令。优选地,对于由SPM Proxy Driver实现的凭证管理器112与SPM连接组件之间的通信进行加密,以避免未授权方对其进行检测或拦截。在凭证管理器112与SPM Proxy Driver之间预先协商该加密,并可以(例如)涉及加密密钥的交换。凭证管理器112返回与目标资源26建立连接所需的安全凭证。在每次尝试时,呼叫本地目标JDBC驱动器以获得连接。所用参数是base JDBC URL和包含来自JdbcDriverUrlEntry例子的合并属性以及由请求方应用程序102提供的属性的属性对象。在合并属性中,由凭证管理器112返回的值来改写诸如硬编码的用户名和口令的凭证。如果获得一个连接,则连接立即返回到请求方应用程序102。否则,发起如上面参考图3描述的再尝试,或可向呼叫方发出SQLException。
对于连接请求的低水平驱动器管理意味着对于数据库口令已经改变(如,通过凭证管理器112)的用户所获得的所有新连接是使用新口令实现的。该动作自动发生,而无需任何知识或任何自身数据源的干预。这种由SPM JDBC驱动器的连接管理确保数据库口令变化对数据源活动是完全透明的。
在ODBC实现中,提供定制的SPM ODBC驱动器。ODBC提供用于访问目标资源的标准软件API方法,如数据库管理系统。当请求方应用程序102请求连接到数据库时,驱动器使用凭证管理器COM对象以检索来自凭证管理器112的凭证。然后,该请求传递到本地目标ODBC驱动器从而完成转换。优选地,SPM ODBC驱动器实现所有ODBC 2.0功能以及用于后向兼容的某些降级ODBC 1.0功能。
如同SPM JDBC Driver,SPM ODBC Driver实现决策引擎188。SPMODBC Driver连接字符串包含如下信息:Driver-SPM ODBC Driver的名称;Alias-在检索凭证时发送到凭证管理器112的目标别名;以及TargetDriver-目标驱动器的连接字符串。TargetDriver字符串含目标驱动器所需的所有信息,但不含用户Id和/或口令。
SPM ODBC Driver需要对这三个函数添加功能:SQLConnect-使用预定义的DSN创建对数据库的连接;SQLDriverConnect-使用连接字符串创建对数据库的连接;以及ConfigDSN-创建、修改或删除DSN。
SQLConnect函数具有7个参数。当调用API函数SQLConnect时传递第一个参数。第二个参数和第三个参数用于检索配置。剩余的四个参数、用户名和口令被忽略。当调用驱动器的SQLConnect函数时,将进行以下步骤:检索Target Alias和Target DSN;使用Target Alias检索凭证;以及调用API函数SQLConnect函数来传递Target DSN和从凭证管理器检索的凭证。
SQLDriverConnect函数具有8个参数。第三和第四个参数用于检索配置信息。剩余的参数在API函数SQLDriverConnect被调用时被下传。当驱动器的SQLDriverConnect被调用时,将进行以下步骤:从连接字符串提取Target Alias和Target Driver;使用Target Alias检索凭证;创建TargetDriver连接字符串的副本并添加从凭证管理器112检索的凭证(用户id和口令);以及调用传递Target Driver连接字符串的更新副本的API函数SQLDriverConnect函数。
在前面的描述中,为了解释,给出大量细节以便提供对本发明实施方式的透彻的理解。然而,对本领域技术人员来说显而易见的是,这些特定细节不是实施本发明所必需的。在其他情形中,为了使本发明易于理解,已知的电气结构和电路是以框图的形式示出的。例如,没有提供关于本文描述的本发明实施方式是否是作为软件程序、硬件电路、固件、或其组合实现的特定细节。
本发明的实施方式可表示为存储在机器可读介质(也称为计算机可读介质、处理器可读介质、或具有在其中包含的计算机可读程序代码的计算机可用介质)中的软件产品。机器可读介质可以是任何合适的有形介质,包括磁性、光学、或电气存储介质,包括磁盘、光盘只读存储器(CD-ROM)、存储器器件(易失性或非易失性)、或类似存储器。机器可读介质可包含指令、代码序列、配置信息、或其他数据的各种集合,其在被执行时,使处理器执行根据本发明实施方式的方法的步骤。本领域技术人员可以理解实现所述的本发明必须的其他指令和操作也可存储在机器可读介质中。从机器可读介质运行的软件可与电路接口从而执行所述任务。
理解本发明的人员可设想上面的替换结构和实施方式或变化,所有这些都落在权利要求限定的本发明的范畴内。

Claims (10)

1.一种提供访问目标资源的安全凭证的计算机实现方法,所述方法在一个或多个处理器上执行时使所述一个或多个处理器执行以下步骤:
接收来自无人值守的请求方应用程序对所述目标资源的连接请求,所述连接请求包括识别所述目标资源的目标资源信息以及对所述请求方应用程序进行认证所必需的配置信息,其中,所述请求方应用程序的所述配置信息是唯一识别所述请求方应用程序的节点的指纹信息;
对所述请求进行解码,以提取凭证管理器对所述请求方应用程序进行认证并检索用于访问所述目标资源的所述安全凭证所需的所述配置信息和所述目标资源信息,所述凭证管理器管理并存储用于所述目标资源的凭证;
将提取的所述信息安全地传递至所述凭证管理器以检索所述凭证;
生成对所述目标资源的本地目标资源连接请求,所述本地目标资源连接请求包括检索的所述凭证;以及
将所述本地目标资源连接请求传递至本地目标资源连接组件以建立所述请求方应用程序与所述目标资源之间的连接,
其中,在连接尝试中,从所述凭证管理器检索所述凭证。
2.根据权利要求1所述的方法,其中,对所述请求进行解码包括解析所述请求。
3.根据权利要求1所述的方法,其中,将提取的所述信息安全地传递至所述凭证管理器包括对与所述凭证管理器的通信进行加密。
4.根据权利要求1所述的方法,其中,所述方法实现Java数据库连接应用程序编程接口。
5.根据权利要求4所述的方法,其中,接收所述连接请求包括接收包含目标资源URL的Java数据库连接统一资源定位符和用于从所述凭证管理器检索所述凭证的目标别名。
6.根据权利要求5所述的方法,其中,生成所述本地目标资源连接请求包括用所述目标资源URL打包检索的所述凭证以提供本地Java数据库连接统一资源定位符。
7.根据权利要求1所述的方法,其中,所述方法执行开放数据库连接API。
8.根据权利要求7所述的方法,其中,接收所述连接请求包括接收包含用于从所述凭证管理器检索所述凭证的目标别名的开放数据库连接连接请求,和用于所述本地目标资源连接组件的连接字符串。
9.根据权利要求8所述的方法,其中,生成所述本地目标资源连接请求包括用所述连接字符串打包检索的所述凭证。
10.根据权利要求1所述的方法,其中,所述凭证包括用户名和口令。
CN200980126751.5A 2008-05-30 2009-06-01 无人值守应用程序的经认证数据库连接 Expired - Fee Related CN102089767B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5755708P 2008-05-30 2008-05-30
US61/057,557 2008-05-30
PCT/CA2009/000759 WO2009143631A1 (en) 2008-05-30 2009-06-01 Authenticated database connectivity for unattended applications

Publications (2)

Publication Number Publication Date
CN102089767A CN102089767A (zh) 2011-06-08
CN102089767B true CN102089767B (zh) 2015-01-21

Family

ID=41376526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980126751.5A Expired - Fee Related CN102089767B (zh) 2008-05-30 2009-06-01 无人值守应用程序的经认证数据库连接

Country Status (7)

Country Link
US (1) US8839414B2 (zh)
EP (1) EP2281263A4 (zh)
JP (1) JP5635978B2 (zh)
KR (1) KR101720160B1 (zh)
CN (1) CN102089767B (zh)
CA (1) CA2725992C (zh)
WO (1) WO2009143631A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2363806A1 (en) * 2010-03-03 2011-09-07 Software AG Connection handler and method for providing applications with heterogeneous connection objects
US8935705B2 (en) 2011-05-13 2015-01-13 Benefitfocus.Com, Inc. Execution of highly concurrent processing tasks based on the updated dependency data structure at run-time
US20130132372A1 (en) * 2011-11-17 2013-05-23 Benefitfocus.Com Systems and methods for dynamic service integration
US11281690B1 (en) * 2013-02-27 2022-03-22 Amazon Technologies, Inc. Dynamic identification and retrieval of connection strings
JP6029553B2 (ja) * 2013-08-22 2016-11-24 日立オートモティブシステムズ株式会社 車両制御装置
JP6343900B2 (ja) * 2013-10-10 2018-06-20 富士通株式会社 通信端末、通信処理方法および通信処理プログラム
US9417932B2 (en) 2013-10-28 2016-08-16 International Business Machines Corporation Launching and managing unattended application programs
JP6559694B2 (ja) * 2013-11-13 2019-08-14 パロ・アルト・ネットワークス・インコーポレーテッドPalo Alto Networks Incorporated 自動sdk受容
GB2523350A (en) * 2014-02-21 2015-08-26 Ibm Implementing single sign-on in a transaction processing system
US9811263B1 (en) * 2014-06-30 2017-11-07 Altera Corporation Memory controller architecture with improved memory scheduling efficiency
US10798077B1 (en) * 2015-01-23 2020-10-06 Hewlett-Packard Development Company, L.P. Securely authenticating untrusted operating environments
US10348866B2 (en) * 2016-02-19 2019-07-09 Wuhan Mbaas Computing Co. Ltd. Apparatus, system and method to provide IoT cloud backend service
US10841337B2 (en) 2016-11-28 2020-11-17 Secureworks Corp. Computer implemented system and method, and computer program product for reversibly remediating a security risk
US20180225325A1 (en) * 2017-02-07 2018-08-09 International Business Machines Corporation Application resiliency management using a database driver
CN107071052B (zh) * 2017-02-17 2021-08-24 尹智帅 一种给物联网设备提供云后端服务的装置、系统和方法
US10735470B2 (en) 2017-11-06 2020-08-04 Secureworks Corp. Systems and methods for sharing, distributing, or accessing security data and/or security applications, models, or analytics
US10594713B2 (en) 2017-11-10 2020-03-17 Secureworks Corp. Systems and methods for secure propagation of statistical models within threat intelligence communities
US10931630B2 (en) * 2017-11-16 2021-02-23 Servicenow, Inc. System and method for connecting using aliases
US10785238B2 (en) 2018-06-12 2020-09-22 Secureworks Corp. Systems and methods for threat discovery across distinct organizations
US11003718B2 (en) 2018-06-12 2021-05-11 Secureworks Corp. Systems and methods for enabling a global aggregated search, while allowing configurable client anonymity
US10693968B2 (en) * 2018-09-12 2020-06-23 Pivotal Software, Inc. Secure binding workflow
US11442899B2 (en) * 2019-03-19 2022-09-13 Servicenow, Inc. Systems and methods for improved application programing interface (API) retry handling
US11374938B2 (en) * 2019-04-23 2022-06-28 Jpmorgan Chase Bank, N.A. Database-agnostic secure structured database connector
US11310268B2 (en) 2019-05-06 2022-04-19 Secureworks Corp. Systems and methods using computer vision and machine learning for detection of malicious actions
US11418524B2 (en) 2019-05-07 2022-08-16 SecureworksCorp. Systems and methods of hierarchical behavior activity modeling and detection for systems-level security
US11381589B2 (en) 2019-10-11 2022-07-05 Secureworks Corp. Systems and methods for distributed extended common vulnerabilities and exposures data management
US11522877B2 (en) 2019-12-16 2022-12-06 Secureworks Corp. Systems and methods for identifying malicious actors or activities
CN111339552B (zh) * 2020-02-12 2022-05-17 厦门网宿有限公司 一种数据库访问方法及装置
CN116361755A (zh) * 2020-06-28 2023-06-30 支付宝(杭州)信息技术有限公司 应用程序登录验证方法、装置、设备和存储介质
US11588834B2 (en) 2020-09-03 2023-02-21 Secureworks Corp. Systems and methods for identifying attack patterns or suspicious activity in client networks
US11528294B2 (en) 2021-02-18 2022-12-13 SecureworksCorp. Systems and methods for automated threat detection
US12034751B2 (en) 2021-10-01 2024-07-09 Secureworks Corp. Systems and methods for detecting malicious hands-on-keyboard activity via machine learning
US12015623B2 (en) 2022-06-24 2024-06-18 Secureworks Corp. Systems and methods for consensus driven threat intelligence
CN116244361B (zh) * 2022-12-23 2023-10-10 北京柏睿数据技术股份有限公司 一种数据库连接动态持久化处理的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052785A (en) * 1997-11-21 2000-04-18 International Business Machines Corporation Multiple remote data access security mechanism for multitiered internet computer networks
CN1624617A (zh) * 2003-12-03 2005-06-08 株式会社因卡网络 阻断对游戏进程非法访问以及操作游戏进程的方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006018A (en) * 1995-10-03 1999-12-21 International Business Machines Corporation Distributed file system translator with extended attribute support
US6006333A (en) 1996-03-13 1999-12-21 Sun Microsystems, Inc. Password helper using a client-side master password which automatically presents the appropriate server-side password to a particular remote server
US5937159A (en) 1997-03-28 1999-08-10 Data General Corporation Secure computer system
US6668327B1 (en) * 1999-06-14 2003-12-23 Sun Microsystems, Inc. Distributed authentication mechanisms for handling diverse authentication systems in an enterprise computer system
JP2002157226A (ja) * 2000-11-16 2002-05-31 Nec Corp パスワード集中管理システム
JP2002278931A (ja) 2001-03-21 2002-09-27 Sony Communication Network Corp ログイン管理方法およびシステム
JP4109874B2 (ja) 2002-02-05 2008-07-02 キヤノン株式会社 情報処理装置、その制御方法、プログラム及び記録媒体
US7178163B2 (en) 2002-11-12 2007-02-13 Microsoft Corporation Cross platform network authentication and authorization model
US7644275B2 (en) 2003-04-15 2010-01-05 Microsoft Corporation Pass-thru for client authentication
US7363487B2 (en) * 2003-07-01 2008-04-22 International Business Machines Corporation Method and system for dynamic client authentication in support of JAAS programming model
WO2005008456A2 (en) 2003-07-07 2005-01-27 Progress Software Corporation Multi-platform single sign-on database driver
JP2006005980A (ja) 2004-06-15 2006-01-05 Fujitsu Access Ltd 電源回路
US7581248B2 (en) * 2004-06-28 2009-08-25 International Business Machines Corporation Federated identity brokering
JP2006059280A (ja) * 2004-08-24 2006-03-02 Mitsubishi Electric Corp 電子機器
US7788497B2 (en) 2005-01-13 2010-08-31 Bea Systems, Inc. Credential mapping of WebLogic and database user ids
EP1712975A1 (en) * 2005-04-14 2006-10-18 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Method and system for authenticating a terminal or terminal user
KR100748697B1 (ko) * 2006-03-17 2007-08-13 삼성전자주식회사 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템
JP2008059187A (ja) * 2006-08-30 2008-03-13 Idea Collaborations Co Ltd プロキシを用いたネットワーク認証システム
US8424077B2 (en) 2006-12-18 2013-04-16 Irdeto Canada Corporation Simplified management of authentication credentials for unattended applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052785A (en) * 1997-11-21 2000-04-18 International Business Machines Corporation Multiple remote data access security mechanism for multitiered internet computer networks
CN1624617A (zh) * 2003-12-03 2005-06-08 株式会社因卡网络 阻断对游戏进程非法访问以及操作游戏进程的方法

Also Published As

Publication number Publication date
EP2281263A1 (en) 2011-02-09
CN102089767A (zh) 2011-06-08
KR101720160B1 (ko) 2017-04-10
JP5635978B2 (ja) 2014-12-03
EP2281263A4 (en) 2011-08-03
CA2725992A1 (en) 2009-12-03
WO2009143631A1 (en) 2009-12-03
CA2725992C (en) 2018-01-16
US20110093937A1 (en) 2011-04-21
KR20110034622A (ko) 2011-04-05
US8839414B2 (en) 2014-09-16
JP2011522315A (ja) 2011-07-28

Similar Documents

Publication Publication Date Title
CN102089767B (zh) 无人值守应用程序的经认证数据库连接
US10728044B1 (en) User authentication with self-signed certificate and identity verification and migration
CN108173850B (zh) 一种基于区块链智能合约的身份认证系统和身份认证方法
Namasudra et al. Time saving protocol for data accessing in cloud computing
US10484385B2 (en) Accessing an application through application clients and web browsers
US7647627B2 (en) System and methods for secure service oriented architectures
US8832047B2 (en) Distributed document version control
CN111783075A (zh) 基于密钥的权限管理方法、装置、介质及电子设备
CN104718526A (zh) 安全移动框架
JP6543743B1 (ja) 管理プログラム
CN104506487A (zh) 云环境下隐私策略的可信执行方法
CN103095720A (zh) 一种基于会话管理服务器的云存储系统的安全管理方法
CN113037736B (zh) 一种认证鉴权方法、装置、系统及计算机存储介质
Satybaldy et al. Decentralized identity management for E-health applications: State-of-the-art and guidance for future work
CN116980166A (zh) 基于互联网的数据传输管理系统
CN112487400A (zh) 基于多页面的单点登录方法、装置、电子设备及存储介质
Shafqat et al. Identity matrix: architecture framework for trusted cloud computing through cloud intellect
Berdonces Bonelo OpenID Connect Client Registration API for Federated Cloud Platforms
TW554275B (en) Management device and method for managing a remote database
Lakshmiraghavan et al. Securing ASP. NET Web API
Behan Open Personal Identity as a Service
JP2010218264A (ja) 情報処理システム、データベースアクセス方法、及び、プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: IRDETO B. V.

Free format text: FORMER OWNER: IRDETO CANADA CORP.

Effective date: 20150601

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150601

Address after: Holland Hoofddorp

Patentee after: Ai Dide Technology Co., Ltd.

Address before: Ontario, Canada

Patentee before: Irdeto Canada Corp

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150121

Termination date: 20200601

CF01 Termination of patent right due to non-payment of annual fee