KR101720160B1 - 인간의 개입이 없는 어플리케이션들을 위한 인증 데이터베이스 커넥티비티 - Google Patents

인간의 개입이 없는 어플리케이션들을 위한 인증 데이터베이스 커넥티비티 Download PDF

Info

Publication number
KR101720160B1
KR101720160B1 KR1020107029804A KR20107029804A KR101720160B1 KR 101720160 B1 KR101720160 B1 KR 101720160B1 KR 1020107029804 A KR1020107029804 A KR 1020107029804A KR 20107029804 A KR20107029804 A KR 20107029804A KR 101720160 B1 KR101720160 B1 KR 101720160B1
Authority
KR
South Korea
Prior art keywords
target resource
credentials
computer
spm
requestor
Prior art date
Application number
KR1020107029804A
Other languages
English (en)
Other versions
KR20110034622A (ko
Inventor
알렉산더 시드니 맨틀 제임스
데이비드 아담스 가르니
Original Assignee
이르데토 비.브이.
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 이르데토 비.브이. filed Critical 이르데토 비.브이.
Publication of KR20110034622A publication Critical patent/KR20110034622A/ko
Application granted granted Critical
Publication of KR101720160B1 publication Critical patent/KR101720160B1/ko

Links

Images

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 Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

커스텀 데이터베이스 커넥티비티 컴포넌트(custom database connectivity component)는 하나의 네이티브 데이터베이스 커넥티비티 컴포넌트(native database connectivity component)와 하나의 크리덴셜 매니저(credential manager)와 함께 배치된다. 이 커스텀 커넥티비티 컴포넌트는, 리퀘스터 어플리케이션과 통신하기 위한 하나의 리퀘스터 인터페이스(requestor interface), 상기 크리덴셜 매니저와 통신하기 위한 하나의 크리덴셜 서비스 인터페이스(credential service interface), 네이티브 커넥티비티 컴포넌트들과 통신하기 위한 하나의 네이티브 데이터베이스 커넥티비티 인터페이스(native database connectivity interface), 그리고 리퀘스터로부터의 요청을 상기 크리덴셜 매니저에 대한 하나의 적절한 API 콜(Application Program Interface call)로 변환시기는 방법을 결정하기 위한 하나의 의사결정형 엔진(decision engine)을 가진다. 이 커스텀 커넥티비티 컴포넌트는 리퀘스터 어플리케이션에 인증되고 권한부여된 데이터베이스 연결을 제공한다. 이 컴포넌트는 리퀘스터 어플리케이션으로의 코드 변경을 필요로 하지 않고서, 실시간으로 데이터베이스, 또는 다른 타겟 리소스, 크리덴셜들을 투명하게(transparently) 검색한다.

Description

인간의 개입이 없는 어플리케이션들을 위한 인증 데이터베이스 커넥티비티{AUTHENTICATED DATABASE CONNECTIVITY FOR UNATTENDED APPLICATIONS}
발명의 분야
본 발명은 컴퓨터 시스템들을 위한 보안 시스템들(security systems)에 관한 것이다. 더욱 상세하게는, 본 발명은, 특히, 인간의 개입 없이 소프트웨어 어플리케이션(software applications)의 리소스들(resources)에 대한 액세스(access)를 승인하기 위한, 크리덴셜 관리(credential management)를 위한 방법들과 시스템들에 관한 것이다.
발명의 배경
컴퓨터 시스템들에 대한 계속적인 의존성 증가는 부수적으로 컴퓨터 보안에 대한 우려의 증가를 가져왔다. 컴퓨터들과 컴퓨터 리소스들 [예컨대, 다른 프로그램 또는 어플리케이션에 액세스하는 프로그램 또는 어플리케이션]에 대한 액세스를 제한하기 위한 잘 알려진 방법의 하나는 패스워드들을 사용하는 것이다. 하드-코딩된 어플리케이션 패스워드들(hard-coded application passwords)은, 타겟(target)이 제공하는 리소스들 및/또는 데이터에 대한 액세스를 획득하기 위해, 하나의 어플리케이션 [리퀘스터(requester)]이 다른 어플리케이션 또는 서비스(service) [타겟], 예컨대, 데이터베이스를 인증하게 하는 실사용 방법론(de-facto methodology)을 제공한다.
그러나, 하드-코딩된 패스워드들은 악의적인 뷰잉(malicious viewing)이 가능한 클리어-텍스트 정보(clear-text information)로 남아있기 때문에 패스워드들의 하드-코딩은 데이터에 심각한 취약성을 초래한다. 그러한 패스워드들은 또한 개발자들(developers)에 대한 배포(distribution)를 필요로 하고, 그들을 변경할 필요가 없도록 긴 유효 기간(validity periods)을 가진다. 이러한 배려사항들은 보안상 결함의 취약성을 증가시킬 뿐이다.
패스워드 변경 정책(password change policies)을 가지는 조직들(organizations)의 경우에, 하드-코딩된 패스워드들은 반복적인 소프트웨어 유지보수 문제를 수반하는 결함을 가진다. 또한, 인간의 재개발 노력과 관련된 비용이 상당하며, 동기화 오차 및 타이밍(synchronization errors and timing)으로 인한 어플리케이션 동작 중지(application outages) 가능성이 있다.
이러한 결함들에도 불구하고, 전체 기업 어플리케이션들의 거의 90%가 하드-코딩된 패스워드를 사용한다. 하드-코딩된 패스워드들을 포함하는 새로운 어플리케이션들이 개발되어 배치되고(deployed) 있다. 제3자(third-party) [벤더(vendor)] 어플리케이션들은 기업들로 하여금 하드-코딩된 패스워드들을 포함하는 시스템들을 수용하고 배치하도록 강요한다. 데이터센터 어플리케이션들(datacenter applications)의 70%는 데이터베이스 지향(database driven)이다.
사용자 아이디 관리 시스템들(User Identity Management systems)은 시스템들에 대한 개인들의 인증(authentication) 및 권한부여(authorization)를 제공하지만, 이들 솔루션들(solutions)을 인간의 개입이 없는 어플리케이션들(unattended applications)의 목적들을 위해 사용하는데 상당한 어려움들이 있는데: 그들은 인증을 위해 사용자 매뉴얼 인터액션(user manual interaction)에 의존하고; 그들은 인증 크리덴셜들(authentication credentials)의 복구(recovery)를 위해 사용자 매뉴얼 인터액션에 의존하며; 그들은 인간의 개입이 없는 스크립트들(unattended scripts) 및 어플리케이션들에 의한 자동적인 사용을 위한 관리 능력들(management capabilities)과 크리덴셜 액세스를 포함하지 않고; 그들은 변조 방지(tamper resistance)를 제공하지 않으며; 그들은 정적 또는 동적 분석(static or dynamic analysis)에 대한 방어(defence)를 제공하지 않고; 그리고 그들은 피고용인들(employees)을 일반적으로 신뢰할 수 있다고 가정하는데, 이것은 내부자 공격(insider attacks)의 만연으로 인해 명백히 지지할 수 없는 가정이다.
다른 가능성은 프로비저닝 시스템들(provisioning systems)의 사용이다. 프로비저닝 시스템들은 서버들(servers)에 소프트웨어 구성 업데이트들(software configuration updates)과 운영 체계(operating system)를 푸시하는(push) 능력을 제공한다. 그러나, 이들 솔루션들을 인간의 개입이 없는 어플리케이션들의 목적들을 위해 사용하는데 상당한 어려움들이 있는데: 그들은 인간의 개입이 없는 스크립트들과 어플리케이션들에 의한 사용을 위한 크리덴셜들의 실행-시간 검색(run-time retrieval)을 포함하지 않으며; 그들은 인간의 개입이 없는 스크립트들과 어플리케이션들에 의한 자동적인 사용을 위한 크리덴셜 액세스와 관리 능력들을 포함하지 않고; 그들은 변조 방지를 제공하지 않으며; 그리고 그들은 정적 또는 동적 분석에 대한 방어를 제공하지 않는다.
다른 선택은 공개 키 기반구조들(Public Key Infrastructures)의 사용이다. 공개 키 기반구조는 하나의 포괄적이고 세련된 인증 및 권한부여 솔루션(authentication and authorization solution)을 만드는데 필요한 컴포넌트들(components)을 제공한다. 그러나, 이들 솔루션들을 인간의 개입이 없는 어플리케이션들의 목적들을 위해 사용하는데 상당한 어려움들이 있는데: 그들은 저장 동안에(while in memory) 키잉 장치들(keying materials)을 보호하지 않으며; 그들은 인증 크리덴셜들에 대한 액세스를 위한 사용자 인터액션에 의존하고; 그들은 인간의 개입이 없는 스크립트들과 어플리케이션들에 의한 자동적인 사용을 위한 크리덴셜 액세스와 관리 능력들을 포함하지 않으며; 그들은 변조 방지를 제공하지 않고; 그들은 정적 또는 동적 분석 또는 어플리케이션 코드(application code)의 변조에 대한 방어를 제공하지 않으며; 그들은 기업들을 위한 인증 패러다임(authentication paradigm)을 급격히 변화시키고(dramatically shift) 더 많은 통합 및 배치 노력들(integration and deployment efforts)을 초래하며; 그리고 인증자(authenticator)와 피인증자(authenticatee) 모두가 인증 목적들을 위해 PKI를 사용하도록 변경되어야(modified) 한다.
다른 가능성은 케르베로스 인증 프로토콜(Kerberos authentication protocol)의 사용이다. 이 케르베로스 인증 프로토콜은 하나의 포괄적이고 세련된 인증 및 권한부여 솔루션을 만드는데 필요한 컴포넌트들을 제공한다. 그러나, 이 솔루션을 인간의 개입이 없는 어플리케이션들의 목적들을 위해 사용하는데 상당한 어려움들이 있는데: 그것은 메모리에 있는 동안 키잉 메터리얼들을 보호하지 않으며; 그것은 인증 크리덴셜들에 대한 액세스를 위한 사용자 인터액션에 의존하고; 그것은 인간의 개입이 없는 어플리케이션들에 의한 인증을 위한 하드-코딩된 패스워드들에 의존하며; 그것은 인간의 개입이 없는 스크립트들과 어플리케이션들에 의한 자동적인 사용을 위한 크리덴셜 액세스와 관리 능력들을 포함하지 않고; 그것은 변조 방지를 제공하지 않으며; 그것은 정적 또는 동적 분석 또는 어플리케이션 코드의 변조에 대한 방어를 제공하지 않고; 그것은 기업들을 위한 인증 패러다임을 급격히 변화시키며 더 많은 통합 및 배치 노력들을 초래하고; 그리고 그것은 인증자와 피인증자 모두가 인증 목적들을 위해 케르베로스(Kerberos)를 사용하도록 변경될 것을 필요로 한다.
그러므로, 어플리케이션들이 리소스들에 액세스할 수 있도록 이들 어플리케이션들의 자동 인증(unattended authentication)을 가능하게 할 시스템들과 방법들이 필요하다. 이상적으로, 그러한 시스템들과 방법들은, 만약 보안 수준이 높지 않으면, 유사한 것을 제공하면서 하드-코딩된 패스워드들의 결점들을 피한다.
발명의 요약
따라서, 본 발명의 목적은 종래 기술의 단점들을 제거하거나 경감시킨 패스워드 해제(password release)를 위한 신규한 방법과 시스템을 제공하는 것이다.
본 발명의 한 측면에 의하면, 하나의 타겟 리소스(target resource)에 액세스하기 위한 보안 크리덴셜들(secure credentials)을 제공하기 위한 컴퓨터-실행 방법(computer-implemented method)이 제공된다. 이 방법은, 하나 또는 그보다 많은 프로세서들(processors)에 실행될 때, 하나 또는 그보다 많은 프로세서들로 하여금 다음의 단계들을 수행하게 한다. 타겟 리소스에 대한 연결 요청(connection request)을 리퀘스터 어플리케이션(requestor application)으로부터 수신한다. 이 요청은 그 다음에, 예컨대, 구문 분석(parsing)에 의해, 해독되어(decoded), 리퀘스터 어플리케이션을 인증하고 타겟 리소스에 액세스하기 위한, 사용자명(username)과 패스워드와 같은, 보안 크리덴셜들(secure credentials)을 검색하기(retrieve) 위해 크리덴셜 매니저(credential manager)에 의해 요구되는 정보를 추출한다. 크리덴셜 매니저는 타겟 리소스를 위한 크리덴셜들을 관리하고 저장한다. 추출된 정보는 그 다음에 크리덴셜들을 검색하기 위해 크리덴셜 매니저에게 보안 통신(전달)된다(securely communicated). 이 보안 통신(secure communication)은, 예를 들어, 크리덴셜 매니저에게로의 또는 그로부터의 통신들을 암호화하는 것을 포함하여 구성된다. 크리덴셜 매니저로부터 검색된 크리덴셜들을 사용할 때, 타겟 리소스에 대한 네이티브 타겟 리소스 연결 요청(a native target resource connection request)이 발생된다. 이 네이티브 타겟 리소스 연결 요청은 그 다음에 네이티브 타겟 리소스 커넥티비티 컴포넌트(native target resource connectivity component)에게 전달되어 리퀘스터 어플리케이션과 타겟 리소스 사이의 연결(connection)을 확립한다(establish).
본 발명의 실시예들에 의하면, 본 발명의 방법은 자바 데이터베이스 커넥티비티(Java Database Connectivity: JDBC) 어플리케이션 프로그래밍 인터페이스들(Application Programming Interfaces: APIs)을 실행할 수 있다. 연결 요청을 수신하는 단계는, 크리덴셜 매니저로부터 크리덴셜들을 검색하기 위한 하나의 타겟 앨리어스(target alias)와 하나의 타겟 리소스 URL(Uniform Resource Locator)을 포함하는 하나의 JDBC URL을 수신하는 것을 포함하여 구성되고, 네이티브 타겟 리소스 연결 요청을 발생시키는 단계는 검색된 크리덴셜들을 타겟 리소스 URL과 패키징하여(packaging) 하나의 네이티브 JDBC URL을 제공하는 것을 포함하여 구성된다.
본 발명의 다른 실시예들에 의하면, 본 발명의 방법은 개방형 데이터베이스 커넥티비티 (Open Database Connectivity: ODBC) API들을 실행할 수 있는데, 여기서, 연결 요청을 수신하는 단계는, 네이티브 타겟 리소스 커넥티비티 컴포넌트를 위한 하나의 연결 스트링(connection string)과 크리덴셜 매니저로부터 크리덴셜들을 검색하기 위한 하나의 타겟 앨리어스(target alias)를 포함하는 하나의 ODBC 연결 요청을 수신하는 것을 포함하여 구성되고, 네이티브 타겟 리소스 연결 요청을 발생시키는 단계는 검색된 크리덴셜들을 연결 스트링과 패키징하는 것을 포함하여 구성된다.
본 발명의 다른 측면에 의하면, 하나의 타겟 리소스에 액세스하기 위한 보안 크리덴셜들을 제공하기 위해 컴퓨터 실행가능 명령어들(computer executable instructions)을 저장하는 컴퓨터-판독가능 매체(computer-readable medium)를 포함하여 구성되는 컴퓨터 프로그램 제품(computer program product)이 제공된다. 명령어들은 실행될 때, 하나 또는 그보다 많은 프로세서들로 하여금 다음의 기능 모듈들(functional modules)을 실행하게 한다. 리퀘스터 인터페이스(requestor interface)는 타겟 리소스를 식별하는(identifying) 타겟 리소스 정보와 리퀘스터 어플리케이션(requestor application)을 인증하는데 필요한 구성 정보(configuration information)를 포함하는 하나의 연결 요청을 수신하기 위해 리퀘스터 어플리케이션과 통신하도록 실행된다. 크리덴셜 서비스 인터페이스(credential service interface)는, 타겟 리소스를 위한 크리덴셜들을 관리하고 저장하는 크리덴셜 매니저와 보안 통신하도록 실행된다. 네이티브 데이터베이스 커넥티비티 인터페이스(native database connectivity interface)는, 타겟 리소스와의 연결을 확립하는 하나의 네이티브 데이터베이스 커넥티비티 컴포넌트(native database connectivity component)와 통신하도록 실행된다. 그리고, 의사결정형 엔진(decision engine)은, 리퀘스터 인터페이스, 크리덴셜 서비스 인터페이스 및 네이티브 데이터베이스 커넥티비티 인터페이스 각각과 통신하도록 실행된다. 이 의사결정형 엔진은, 상기 요청을 해독하여, 리퀘스터 어플리케이션을 인증하고 타겟 리소스에 액세스하기 위한 보안 크리덴셜들을 검색하기 위해 타겟 리소스를 위한 크리덴셜들을 관리하고 저장하는 크리덴셜 매니저에 의해 요구되는 구성 정보와 타겟 리소스의 아이덴티티(identity)를 결정하고(determine); 크리덴셜들을 검색하기 위해 추출된 정보를 크리덴셜 매니저에게 보안 통신하며; 검색된 크리덴셜들을 포함하는, 타겟 리소스에 대한 하나의 네이티브 데이터베이스 연결 요청(native database connection request)을 발생시키고; 그리고 이 네이티브 데이터베이스 연결 요청을 네이티브 데이터베이스 커넥티비티 컴포넌트에게 전달하여 연결을 확립하는 기능을 한다.
첨부 도면들과 함께 본 발명의 특정 실시예들에 대한 다음의 설명을 검토함에 따라 본 발명의 다른 측면들과 특성들이 이 분야의 통상의 지식을 가진 자들에게 명백하게 될 것이다.
이제 본 발명의 실시예들을 첨부된 도면들을 참조하여, 단지 하나의 예로서, 설명하기로 하는 바, 도면들 중에서:
도 1은, 종래 기술의 크리덴셜 관리를 위한 시스템의 블록 다이어그램(block diagram)이고;
도 2는, 본 발명의 하나의 실시예에 의한 데이터베이스 커넥티비티 컴포넌트를 사용하는 시스템의 블록 다이어그램이며;
도 3은, 본 발명의 하나의 실시예에 의한 데이터베이스 커넥티비티 컴포넌트와 크리덴셜 매니저를 사용하는 데이터베이스 연결의 흐름도(flowchart)이고; 그리고
도 4는, 본 발명의 하나의 실시예에 의한 데이터베이스 커넥티비티 컴포넌트의 블록 다이어그램이다.
발명의 상세한 설명
도 1은, 발명의 명칭이 "인간의 개입이 없는 어플리케이션들을 위한 인증 크리덴셜들의 단순화된 관리(Simplified Management of Authentication Credentials for Unattended Applications)"이고, 그 전체 내용들이 본 명세서의 참고문헌을 이루는, 미국 특허출원 제11/640,371호 (미국 특허공개 제2008/0148373호)에 기술되어 있는, 종래 기술의 크리덴셜 관리를 위한 시스템(10)을 설명한다. 리퀘스터 노드(requestor node)(12)는, 그것에 상주하는(resident) 하나의 서버 패스워드 매니저 (server password manager: SPM) 모듈(14), 하나의 리퀘스터 어플리케이션(16) 그리고, 선택적으로, 하나의 보안 캐시 모듈(secure cache module)(18)을 가진다. 리퀘스터 노드(12)는, 패스워드 인증 시스템(password authority system)을 실행하는 크리덴셜 매니저(CM) 노드(20)와 통신한다. CM 노드(20)는 그것에 상주하는 하나의 CM 모듈(22)과 하나의 데이터 저장 모듈(data store module)(24)을 가진다. 리퀘스터 노드(12)는 타겟 노드(28)의 리소스들(26)에 대한 액세스를 요청하기 위해 CM 노드(20)와 통신한다. VPN(virtual private network: 가상 사설망) 모듈(30)은, CM 노드(20)와 리퀘스터 노드(12)의 어느 한쪽 또는 양쪽 모두와의 통신들을 관리하기(govern) 위해 타겟 노드(28)에 선택적으로 상주할 수 있다.
리퀘스터 노드(12), CM 노드(20), 및 타겟 노드(28)는, 모두 하나의 컴퓨터 네트워크의 노드들이며, 단일 기계 서버들(single machine servers)이거나 상호 연결된 서버들의 하나의 컬렉션(collection)일 수 있다. 도 1의 다양한 모듈들은, 그들의 명령어들을 실행하기 위해 노드들의 하드웨어(hardware)와 상호작용하는 소프트웨어 모듈들(software modules)이다.
CM 노드(20)는 리소스들(26)에 액세스하는데 필요한 크리덴셜들을 저장하는 데이터 저장부(data store)(24)를 제어하는 CM 모듈(22)로 작동한다. 리퀘스터 어플리케이션(16)은, 리소스들(26)에 대한 액세스가 필요할 때, 이들 크리덴셜들에게 리소스들에 대한 액세스를 획득하도록 요청하여야 한다. 리퀘스터 어플리케이션의 요청은 리퀘스터 어플리케이션(16)과 동일한 노드에 상주하는 SPM 모듈(14)에게 통신(전달)된다(communicated). SPM 모듈(14)은 이 요청을 수신하여, 이 요청으로부터 관련 정보를 추출하고, 그 정보를 CM 모듈로의 전송(transmission)을 위해 하나의 요청 패키지(request package)로 패키징한다. SPM 모듈(14)은 CM 모듈(22)에 의해 발생되어 앞서 SPM 모듈(14)에게 통신된 암호화 키들(encryption keys)을 사용하여 이 요청 패키지를 암호화한다. SPM 모듈(14)은 또한 리퀘스터 노드(12)와 관련된 핑거프린트 데이터(fingerprint data)를, 암호화된 요청 패키지와 함께, 전송한다.
크리덴셜들을 타겟 리소스들(26)에게 통신하기 위해, CM 모듈(22)은, 액세스가 승인(granted access)될 리퀘스터 어플리케이션(16)의 ID(identification)와 함께, 이들 크리덴셜들을 직접 타겟 리소스들(26)로 보낼 수 있다. 이와 달리, 리퀘스터 어플리케이션(16)이 타겟 리소스들(26)에 액세스하기 위해 이들 크리덴셜들을 직접 사용할 수 있도록, CM 모듈(22)이 크리덴셜들을 SPM 모듈(14)로 되돌려 보낼(return) 수 있다. CM 모듈(22)은 또한 변경된 크리덴셜들, 예컨대, 패스워드들과 암호화 키들에 관한 업데이트들(updates)을 위해 타겟 리소스들(26) 및 그것의 관련 SPM 모듈(32)과 통신할 수 있다.
리퀘스터 노드(12)의 SPM 모듈(14)은, 타겟 리소스들에 대한 미래의 액세스들이 CM 모듈(22)을 통할 필요가 없도록, 리퀘스터 어플리케이션(16)을 위한 크리덴셜들을 저장하기 위해 보안 캐시(18)를 사용할 수 있음을 알아야 한다. 마찬가지로, CM 모듈(22)과의 통신들을 암호화/해독하기 위해 CM 모듈(22)에 의해 발생되고 SPM 모듈(14)에 의해 사용되는 암호화 키들이 또한 보안 캐시(18)에 저장될 수 있다.
안전하게 작동하기 위해, 각 SPM 모듈(14, 32)은, 위에 약술한 프로세스(process)를 실행할 수 있으려면, CM 모듈(22)에 대해 그 자신을 식별시키고(identify itself) CM 모듈(22)과의 통신에 사용하기 위한 고유 암호화 키들(unique encryption keys)을 수신한다. 이러한 셋업 단계(setup stage)의 일환으로서, 각 SPM 모듈(14, 32)은 무슨 리소스들이 타겟 리소스들일 수 있고, 무슨 어플리케이션들이 리퀘스터 어플리케이션들일 수 있는지, 그리고 이들 리소스들과 어플리케이션들에 관한 세부사항들을 포함하는, 그것의 노드(12, 28)에 관한 데이터를 모은다. SPM 모듈(14, 32)은 또한 노드에 설치된 하드웨어 및 그 노드를 유일하게 식별할(uniquely identify) 다른 구성 정보와 같은, 그것의 노드에 대한 구성 정보를 모은다. [일련 번호들(serial numbers), 노드에 설치된 어플리케이션들, 설치된 하드웨어와 소프트웨어 양쪽의 버전 번호들(version numbers)을 포함할 수 있는] 이 구성 정보는 그 다음에 그 노드의 하나의 "핑거프린트"로서 사용될 수 있다. 하나의 노드에 수집될 수 있는 핑거프린트 데이터는, 그 다음에 그 특정 노드에 관한 다른 정보와 함께, 검증(validation)을 위해 CM 노드(20)로 보내질 수 있다. 일단 검증되면, 하나의 리퀘스터 노드와 그것에 상주하는 SPM 모듈이, CM 모듈(22)에 등록된 리소스들에 대한 액세스를 요청할 수 있다. 물론, CM 모듈(22)에 등록된 노드들에 상주하는 리퀘스터 어플리케이션들만이 타겟 리소스들(26)에 액세스하도록 허용된다. 하나의 노드의 새로운 어플리케이션들은, 등록하여야 하고, 타겟 리소스들에 대한 액세스를 요청할 수 있기에 앞서서 CM 모듈(22)에 의해 검증되어야 한다.
리소스들에 액세스하는데 필요한 크리덴셜들에 대한 액세스를 획득하기 위해, 각 SPM 모듈은 그것의 노드에 상주하는 리퀘스터 어플리케이션이 액세스를 요청할 때마다 그것의 노드의 핑거프린트 데이터를 제공하여야 한다는 것을 알아야 한다. 위에 기술한 바와 같이, 이 핑거프린트 데이터는 리퀘스터 어플리케이션에 의한 타겟 리소스 액세스 요청과 관련된 정보와 함께 CM 모듈(22)로 전송된다. CM 모듈(22)이 그러한 핑거프린트 데이터를 수신할 때, CM 모듈(22)은 데이터 저장부(24)로부터 그 특정 노드에 대한 등록 데이터를 검색하여 리퀘스터 노드로부터 수신된 핑거프린트 데이터가 리퀘스터 노드가 최초로 검증되었을 때 수신된 핑거프린트 데이터와 매칭하는(match) 지를 확인할(check) 수 있다. 만약 이들이 매칭되면, SPM 모듈이 그것이 목적하는 그것이며, 추가적인 확인이 진행될 수 있다. 만약 이들이 매칭하지 않으면, 리소스 액세스 요청이 거부된다. 그러한 요청 거부는, 리퀘스터 노드가 초기 등록/검증 프로세스(initial registration/validation process)를 거쳐야 한다는 것을 의미한다.
일단 (그것에 상주하는 SPM 모듈을 통해) 리퀘스터 노드 또는 (만약 리퀘스터 노드 하나 당 하나 보다 많은 SPM 모듈이 있다면) SPM 모듈이 CM 모듈(22)에 의해 검증되면, CM 모듈은 CM 모듈(22)과 SPM 모듈 또는 리퀘스터 노드 사이의 통신들에 사용될 암호 키들(cryptographic keys)을 발생시킨다는 것을 또한 알아야 한다. 이들 암호 키들은, 일단 하나의 카피(copy)가 관련 SPM 모듈/리퀘스터 노드로 보내지면, CM 모듈에 의한 사용을 위해 데이터 저장부(24)에 보존된다. 하나의 리퀘스터 노드는, 그것에 상주하는 하나 보다 많은 SPM 모듈을 가질 수 있으며, 각 SPM 모듈은 리퀘스터 노드의 적어도 하나의 리퀘스터 어플리케이션을 위한 타겟 리소스 액세스의 관리를 담당하는 것이 자명하다. 그러한 구성을 위해, 각 SPM 모듈은 CM 모듈과 통신하는데 사용하기 위한 그 자신의 일련의 암호 키들을 가질 수 있다. 더 뛰어난 보안을 위해, 각 리퀘스터 어플리케이션은 둘 사이의 통신을 할 때 사용하기 위한 CM 모듈과 공유되는 그 자신의 암호화 키들을 가지는 구성(configuration)을 가질 수 있다.
각 리퀘스터 어플리케이션은, 그것의 관련 SPM 모듈 및 거기에 상주하는 노드와 함께, 등록되고 CM 모듈로 검증된다. 타겟 리소스들에 대한 액세스를 획득하기 위해, 리퀘스터 어플리케이션은 그러한 액세스를 요청하고, 그리고 그것이 검증과 등록을 모색하였을(sought) 때 CM 모듈로 처음에 전송하였던 데이터를 전송한다. 그러한 데이터는, 그것의 어플리케이션 명(application name), 그것의 어플리케이션 파일 저장 위치(application file storage location), 그것의 어플리케이션 실행 경로(application execution path), 그것의 어플리케이션 ID(identification), 그것의 어플리케이션 일 방향 해쉬 값(application one-way hash value), 그것의 세션 인증 키(session authorization key), 그리고 그것이 상주하는 노드의 머신 핑거프린트(machine fingerprint)를 포함할 수 있다. 물론, 시스템의 구성에 따라, 상술한 것의 여하한 서브세트(subset)가, 추가적인 데이터(extra data)와 함께 또는 추가적인 데이터 없이, 리소스들에 대한 액세스를 획득하기 위해 사용될 수도 있다.
CM 노드(20)의 데이터 저장부(24)에 대해서 말하면, 데이터 저장부는 하나의 데이터베이스의 형태일 수 있다. 임계 값들(critical values)은 데이터베이스의 데이터베이스 필드(database field)에 저장하기 위해 하나의 강력한 암호(strong cipher)를 사용하여 암호화될 수 있다. 중요 암호화 데이터(critical encrypted data)는, 하나의 길고 강력한 패스워드를 사용하여, 데이터베이스의 일환인 하나의 사설 데이터베이스(private database)로 기록될 수 있다. 이 사설 데이터베이스는 그 다음에 하나의 관리 대칭 키(managed symmetric key)를 사용하여 암호화되는 하나의 패스워드를 사용하여 보호될 수 있다. 이 관리 키는 그 다음에 특별한 방식으로 또는 예정된 방식으로(in an ad hoc or scheduled manner) 변경되도록 하나의 공개 데이터베이스 테이블(public database table)에 놓일 수 있다.
CM 모듈의 기록 보존 임무들(record keeping duties)을 단순화하기 위해 앨리어스들의 컨셉(concept)이 사용될 수 있다. 각 타겟 리소스 [예컨대, 타겟 서버의 하나의 어플리케이션]가 하나의 특정 앨리어스와 결합될(associated) 수 있다. 타겟 리소스의 크리덴셜들 [예컨대, 계정(account)과 패스워드]도 또한 앨리어스와 결합된다. 타겟 리소스에 대한 액세스를 요청할 수 있는 잠재적 리퀘스터 어플리케이션(potential requestor application)은, 등록될/검증될 때, 그 리퀘스터 어플리케이션의 액세스 권리들(access rights) 그리고 타겟 리소스에 대한 액세스를 위한 크리덴셜들의 해제(release)에 필요한 여하한 런-타임 기준(run-time criteria)과 함께 앨리어스에 매핑된다(mapped). 이것은 크리덴셜들을 검색하기 위한 간접지정 수준(level of indirection)을 도입하는데 - 그것은 리퀘스터 어플리케이션에 영향을 주지 않고서 크리덴셜들을 변경시킨다. 그러므로, 특정 리소스에 액세스하는데 필요한 크리덴셜들의 변경 여부를 리퀘스터 어플리케이션들에 개별적으로 통지할 필요가 없다.
위에 언급한 바와 같이, SPM 모듈(14)은 앞서 액세스된 리소스들이 동일한 노드의 다른 리퀘스터 어플리케이션들에 의해 액세스될 수 있도록 보안 캐시(secure cache)(18)를 사용할 수 있다. 이것은 리퀘스터 어플리케이션들을 위한 리소스들에 대한 더욱 빠른 액세스를 가능하게 할 것이다. 보안 캐시(18)를 사용하기 위해, CM 모듈(22)로부터 수신된 크리덴셜들이 보안 캐시(18)에 세이브될(saved) 수 있다. SPM 모듈(14)과 같은 노드에 있는 리퀘스터 어플리케이션(16)이, 자신을 위한 크리덴셜들이 보안 캐시(18)에 저장되어 있는 리소스들에 대한 액세스를 요청하면, SPM 모듈(14)은 리퀘스터 어플리케이션을 로컬 인증할(authenticate locally) 수 있고 필수 크리덴셜들(necessary credentials)을 제공할 수 있다. 물론, 보안상의 이유로, 보안 캐시의 콘텐츠들(contents)은 암호화될 수 있고, 이 콘텐츠들은 미리 정해진 양의 시간이 경과한 후에 자동적으로 삭제될 수 있다는 점에서 시간 제한적일 수 있다. 그러한 스킴(scheme)은 스테일 크리덴셜들(stale credentials)이 절대로 무기한 저장되지 않도록 크리덴셜들이 반드시 주기적으로 액세스될 필요가 있게 한다.
리소스들에 액세스하기 위해 사용된 크리덴셜들 (예컨대, 패스워드들과 암호화 키들)이 최신의 것임을 보장하기 위해, CM 모듈이 이들 리소스들을 위한 크리덴셜들을 변경할 수 있다. CM 모듈(22)은, 리소스들 (예컨대, 소프트웨어 어플리케이션)과 통신하여 리소스들에 액세스하는데 필요한 크리덴셜들을 변경할 수 있다. 일단 크리덴셜들이 변경되면, 새로운 크리덴셜들이 CM 모듈(22)에게 통신될 수 있다. CM 모듈(22)은 그 다음에 데이터 저장부(24)의 관련 기록들을 업데이트한다(update).
도 1에 도시된 시스템은 인간의 개입이 없는 어플리케이션들을 위한 보안 크리덴셜 관리(secure credential management)를 제공한다. 그러나, 이 분야의 통상의 지식을 가진 자들이 알 수 있는 바와 같이, SPM 모듈들(14, 32)은 리퀘스터 어플리케이션 및 타겟 노드(28)와 통합되어야 하며, 이것은 숙련된 프로그래머들 그리고 리퀘스터 어플리케이션(16)의 코드에 대한 변경을 필요로 한다. 레거시 어플리케이션들(legacy applications)을 가동시키는 대기업내의 보안 패스워드 인증 시스템들(secure password authority systems)의 채택을 촉진하기 위해서는, 그에 따라, 전문적인 레코딩(specialized recoding) 또는 프로그래밍 지식을 필요로 하지 않고서 패스워드 인증 시스템과 접속하는(interface) 수단을 제공하는 것이 바람직하다.
일반적으로, 본 발명은, 리퀘스터 어플리케이션을 기록할 필요 없이, 하나의 SPM 타겟 리소스 커넥티비티 컴포넌트 [이하 "SPM 커넥티비티 컴포넌트"라 함]를 설치하고 구성함으로써 인간의 개입이 없는 리퀘스터 어플리케이션들(unattended requestor applications)을 위한 데이터베이스 연결들(database connections)을 인증하는 것이 가능한 방법과 시스템을 제공한다. SPM 데이터베이스 커넥티비티 컴포넌트는, 타겟 리소스를 위한 요청들을 인터셉트하고(intercept), 이 요청들을 크리덴셜 매니저가 인식가능한 형태로 다시 패키징하고(repackage), 크리덴셜 매니저로부터의 보안 크리덴셜들에 액세스하고, 그리고 크리덴셜들을 타겟 리소스에게 전달한다. 크리덴셜 매니저는, 예를 들어, CloakWare® 서버 패스워드 매니저(Server Password Manager) 또는 다른 유효한 크리덴셜 매니저들과 같은, 위에 설명한 CM 노드일 수 있다.
도 2는, 본 발명의 하나의 실시예의 전체 시스템 아키텍쳐(overall system architecture)를 도시한 것이다. 리퀘스터 노드(requestor node)(100)는 그것에 상주하는 하나의 리퀘스터 어플리케이션(102)을 가지는데, 이 어플리케이션은 타겟 노드(106)에 상주하는 타겟 리소스(들)(104)에 대한 액세스를 필요로 한다. 도 2에 도시되어 있는 바와 같이, 리퀘스터 어플리케이션(102)과 네이티브 타겟 리소스 커넥티비티 컴포넌트(110) [이하 "네이티브 커넥티비티 컴포넌트"라 함] 사이에 놓인, SPM 커넥티비티 컴포넌트(108)는, 타겟 리소스(104)에 대한 액세스를 위한 리퀘스터 어플리케이션(102)으로부터의 요청들을 인터셉트하고, 그들을 리퀘스터 노드(102)에 상주하거나 크리덴셜 매니저(CM) 노드(114)에 상주하는 크리덴셜 매니저(CM)(112)에게 보낸다(route). 네이티브 커넥티비티 컴포넌트들은, 예를 들어, JDBC 또는 ODBC와 같은, 표준 데이터베이스 연결 어플리케이션 프로그래밍 인터페이스들 (APIs)을 실행함으로써 리퀘스터 어플리케이션에 데이터베이스 연결들을 제공하는, 공지된 컴포넌트들이다. 이 연결들은 데이터베이스 특정적(database specific)일 수 있다.
크리덴셜 매니저(112)는 리퀘스터 노드(100)에 배치되거나 리퀘스터 노드(100)에 유효한 컴포넌트이다. 크리덴셜 매니저(112)는 로컬 리퀘스터 어플리케이션들(local requestor applications)을 위한 크리덴셜 요청들을 조정한다(coordinate). 크리덴셜 매니저(112)는 다양한 종류의 리퀘스터 어플리케이션들에 API's를 제공하는 것이 일반적이다. 하나의 실시예에서, CM 노드(114)는 도 1과 관련하여 위에 설명된 컴포넌트들과 기능성(functionality)을 포함한다. 리퀘스터 노드(100), CM 노드(114), 및 타겟 노드(106)는 모두 하나의 컴퓨터 네트워크의 노드들이며, 단일 기계 서버들이거나 상호 연결된 서버들의 하나의 컬렉션일 수 있다. 도 2의 다양한 모듈들은, 노드들의 하드웨어와 상호작용하여 그들의 명령어들을 실행하는 소프트웨어 모듈들이다.
SPM 커넥티비티 컴포넌트(108)를 사용하는 크리덴셜 관리 시스템의 전체 동작(operation)이, 도 2와 관련하여, 도 3에 설명되어 있다. 리퀘스터 어플리케이션(102)이 데이터베이스와 같은, 타겟 리소스(104)에 대한 연결을 요청한다(단계 150). SPM 커넥티비티 컴포넌트(108)가 이 요청을 가로채거나(intercept) 수신하고(단계 152), 그리고 이 연결 요청을 해독한다(단계 154). SPM 커넥티비티 컴포넌트가 그 다음에 크리덴셜 매니저(112)로부터 크리덴셜들을 요청한다(단계 156). 크리덴셜 매니저(112)가 이 요청을 인증하고, 이 요청을 수행할(fulfill) 필수 크리덴셜들을 SPM 커넥티비티 컴포넌트(108)로 되돌려 보낸다(단계 158). SPM 커넥티비티 컴포넌트(108)가 크리덴셜 매니저(112)에 의해 공급된 크리덴셜들을 사용하는 네이티브 커넥티비티 컴포넌트(110)를 통한 네이티브 데이터베이스 연결을 초기화한다(initialize)(단계 160). 네이티브 커넥티비티 컴포넌트(110)가 그 다음에 타겟 리소스들(104)을 호스팅하는(host) 외부 타겟 시스템(external target system)에 대한 연결을 확립하거나 확립하려는 시도를 한다(단계 162). 만약 크리덴셜들이 유효하고, 연결이 확립되면, 타겟(104)에 대한 확립된 연결이 리퀘스터 어플리케이션(102)에게 반환된다(return)(단계 164). 만약 연결을 확립하려는 시도가 성공하지 못하면, 선택적 재시도(optional retry)가 실행될 수 있다. 추가적인 크리덴셜들이 크리덴셜 매니저(112)로부터 검색되고, 단계 156에서 시작되는 연결 재시도를 한다. 허용가능한 재시도 횟수는 디자인 선택(design choice)의 문제이다.
도 4에 나타나 있는 바와 같이, SPM 커넥티비티 컴포넌트(108)는 소프트웨어 모듈이다. 그것은 네이티브 데이터베이스 커넥티비티 컴포넌트(110) 및 크리덴셜 매니저(112)와 함께 배치된다. SPM 커넥티비티 컴포넌트(108)는, 리퀘스터 어플리케이션(102)과 통신하기 위한 하나의 리퀘스터 인터페이스(requestor interface)(180), 크리덴셜 매니저(112)와 통신하기 위한 하나의 크리덴셜 서비스 인터페이스(credential service interface)(182), 네이티브 커넥티비티 컴포넌트들과 통신하기 위한 하나의 네이티브 타겟 리소스 커넥티비티 인터페이스(native target resource connectivity interface)(184), 보안 매니저(security manager)로부터의 업데이트들(updates)을 가능하게 하는 하나의 보안 인터페이스(security interface)(186), 그리고 리퀘스터로부터의 요청을 크리덴셜 매니저(112)에 대한 적절한 API 콜(Application Program Interface call)로 변환시키는 방법을 결정하기 위한 하나의 의사결정형 엔진(188)을 포함하여 구성된다.
SPM 커넥티비티 컴포넌트는 리퀘스터 어플리케이션에 대해 인증되고 권한부여된 데이터베이스 연결을 제공한다. SPM 커넥티비티 컴포넌트는, 네이티브 커넥티비티 컴포넌트들이 동적으로 로딩되는(dynamically loaded) 리퀘스터 어플리케이션에 대한 코드 변경들을 필요로 하지 않고서, 실시간으로 데이터베이스, 또는 다른 타겟 리소스, 크리덴셜들을 검색하는, 데이터베이스 커넥티비티 컴포넌트의 역할을 한다. SPM 커넥티비티 컴포넌트는 리퀘스터 어플리케이션들을 위한 데이터베이스 연결들을 위한 모든 액세스를 인증하고 권한부여한다.
SPM 커넥티비티 컴포넌트(108)의 작동(functioning)은 실행 예들(example implementations)과 관련하여 최상으로 이해될 수 있다. 두 예시적인 실시예들, 즉, JDBC SPM 커넥티비티 컴포넌트와 ODBC SPM 커넥티비티 컴포넌트가 아래에 설명되어 있다. 이 예들은 비-제한적이며 예시만을 위한 것이다. 이 예들은 이 분야의 통상의 지식을 가진 자가 예상할 수 있듯이, 자바 프로그래밍과의, 그리고 JDBC 및 ODBC 연결들과의 친화성(familiarity)을 가진다.
JDBC는, 클라이언트(client)가 데이터베이스에 어떻게 액세스할 수 있는지를 정의하는, 자바 프로그래밍 언어(Java programming language)를 위한 API이다. 그것은 데이터베이스의 데이터를 질의하고(query) 업데이트하기 위한 방법들을 제공한다. JDBC는 커스텀 자바 데이터소스 오브젝트(custom Java DataSource object)를 사용한다. DataSource object는 데이터 소스를 자바 프로그래밍 언어로 표시한 것이다. 기본 용어들에 있어서, 데이터 소스는 데이터를 저장하기 위한 설비(facility)이다. 그것은 대기업을 위한 복합 데이터베이스(complex database) 만큼 복잡할(sophisticated) 수 있거나 행(rows)과 열(columns)을 가지는 하나의 파일(file) 만큼 단순할 수 있다. 데이터 소스는 원격 서버(remote server)에 상주할 수 있거나 로컬 데스크탑 머신(local desktop machine)에 있을 수 있다. 어플리케이션들은 하나의 연결을 사용하여 하나의 데이터 소스에 액세스하고, 데이터소스 오브젝트(DataSource object)는 DataSource instance(데이터소스 인스턴스)가 나타내는 특정 데이터 소스에 대한 연결들을 위한 하나의 팩토리(factory)로 생각될 수 있다. 커스텀 자바 데이터소스 오브젝트(custom Java DataSource object)는 데이터 소스 또는 타겟 리소스에 대한 콜(call)을 캡슐화하고(encapsulate), 크리덴셜 매니저(112)에 투명하게 액세스하여(transparently access) 데이터 소스에 액세스하는데 필요한 보안 크리덴셜들을 검색한다.
SPM 커넥티비티 컴포넌트(108)의 역할은 데이터베이스 연결 획득(database connection acquisition)에 있어서의 인증의 투명한 관리(transparent management)이다. 이 기능성과 특성 능력(functionality and feature capability)을 달성하기 위해, 본 명세서에서 "SPM Proxy Driver(SPM 프록시 드라이버)"라 부르는, 프록시 JDBC Driver 클래스가 제공되고, 이것이 의사결정형 엔진(188)을 실행한다. 이 프록시 Driver 클래스는 true underlying JDBC 연결 관리와 Driver 활용에 필요하고, 네이티브 커넥티비티 컴포넌트(native connectivity component)(110)에 의해 관리되는 모든 정보를 암호화하는 하나의 특별히 정의된 URL에서 작동한다. 이 프록시 클래스는 구성(configuration) 동안에 사용자에 의해 여하한 데이터베이스를 위한 Driver 클래스로 지정된다(specified). 사용자는 그 다음에 표준 방식으로(in a standard way) 필요한 JDBC URL 정보를 암호화할 수 있다. 실행에서, JDBC Proxy Driver는 하나의 노멀 JDBC 드라이버(normal JDBC driver)로서 작용하나, 델리게이트 JDBC 드라이버 호출들(delegated JDBC driver invocations)을 투명하게(transparently) 실행하고 크리덴셜 매니저(112)를 호출한다. 프록시 JDBC Driver 클래스는, 그 세부사항들이 아래에 제공되어 있는, SPM JDBC URL로 불리울 하나의 특수화된 JDBC URL 엔코딩(specialized JDBC URL encoding)을 사용한다. 기능적으로, SPM Proxy Driver는 모든 요건들을 준수하며, 자바 JDBC 드라이버 클래스(Java JDBC Driver class)에 적용되는 모든 사용 규칙들(conventions of use)을 따른다.
필수 크리덴셜들을 보안 검색하여 타겟 리소스에 액세스하기 위해, 사용자 지정 URL 속성(custom designated URL property)이 SPM 앨리어스(SPM Alias)를 선언하기(declare) 위해 사용된다. 위에 설명한 바와 같이, 각 타겟 리소스 (예컨대, 하나의 타겟 서버의 어플리케이션)는 하나의 특정 앨리어스와 결합될 수 있다. 또한 타겟 리소스의 크리덴셜들 (예컨대, 계정과 패스워드)은 앨리어스와 결합된다. 등록될/검증될(validated) 때, 타겟 리소스에 대한 액세스를 요청하는, 잠재적 리퀘스터 어플리케이션(potential requestor application)은, 그 다음에 그 리퀘스터 어플리케이션의 액세스 권리들 그리고 타겟 리소스에 대한 액세스를 위한 크리덴셜들의 해제에 필요한 여하한 런-타임 기준(run-time criteria)과 함께 앨리어스에 맵핑된다(mapped). 이것은 크리덴셜들을 검색하기 위한 간접지정 수준을 도입하는데 - 그것은 리퀘스터 어플리케이션에 어떤 영향도 주지 않고서 크리덴셜들을 변경시킨다. 그러므로, 특정 리소스에 액세스하는데 필요한 크리덴셜들의 변경 여부를 리퀘스터 어플리케이션들에 개별적으로 통지할 필요가 없다.
사용자 지정 URL 속성은 SPM Proxy Driver가 true (target) JDBC Driver로 사용하여야 하는 정확한 드라이버 클래스를 선언하는 것으로 정의된다. 모든 연결 시도들에서, 사용자/패스워드와 같은, 크리덴셜들을 크리덴셜 매니저(112)로부터 얻는다. SPM Proxy Driver는 모든 호출자-제공 사용자/패스워드 인스턴스들(caller-supplied user/password instances)을 무시한다. SPM Proxy Driver는 또한 바람직하게는 크리덴셜 매니저(112)의 호출(invocation)에 있어서의 실패(failure) 또는 오류(error)의 경우들(cases)을 다룰 수 있다. 이러한 경우들을 처리하기 위해, 반드시 SQLException으로부터 유도되는, 특정 SPM에 국한되는 예외들(certain SPM specific exceptions)이 정의될 수 있다.
SPM JDBC 프럭싱(proxying)을 위한 코어 클래스(core class)는, Java.sql.Driver 인터페이스를 실행하고, 모든 요구되는 서비스 실행들(required service implementations)을 포함하는, SPM Proxy Driver 클래스이다. SPM Proxy Driver 클래스는 모든 SPM JDBC URL's을 관리한다. 더욱 구체적으로: 하나의 드라이버 매니저로 등록된 SPM Proxy Driver 클래스의 하나의 단일 인스턴스(single instance)가 모든 SPM JDBC URL's을 관리한다. 이것은 여러 데이터베이스들이 하나의 단일 SPM Proxy Driver 인스턴스를 통해 동시에 액세스될 수 있다는 것을 의미한다.
SPM JDBC URL은, Driver를 프럭싱하고 크리덴셜 매니저(112)를 통해 크리덴셜들을 처리하고 관리하기 위한 추가 정보와 함께 하나의 true JDBC URL를 암호화하는, 커스텀 JDBC URL이다. SPM JDBC URL 포맷(format)은 다음과 같이 정의되며:
Figure 112010087745130-pct00001
위에서,
spm: 은, 문자 그대로 접두어 "spm:"이고;
[url] 은,
Figure 112010087745130-pct00002
과 같은 사용자 특정적인(user specific) true JDBC (base) URL 이며;
각 Pi는, true JDBC URL의 속성, 그렇지 않으면 SPM 특유 속성(SPM distinguished properties) SPMAlias 또는 SPMDriver에 대한 속성명(property name)이고;
SPMAlias는 Pi 리스트(list)에 나타나야 한다. 그것의 값(value)은 사용자/패스워드 룩업(lookup)에 사용하려 의도된 SPM Alias이어야 하고; 그리고
SPMDriver는 Pi 리스트에 나타날 수 있고, 만약 그렇다면, 그것은 [url] 값을 위한 하나의 유효(valid) JDBC Driver이어야 한다.
SPM 속성들은 true JDBC Driver가 값들을 획득할 수 있는 자바 속성 맵(Java Properties map)으로 번역된다(rendered).
의사결정형 엔진(188)은 SPM Proxy Driver 클래스내에서 실행되고, SPM JDBC URL을 그것이 내부적으로 사용할 관련 파트들(relevant parts)로 해독하거나 구문 분석한다(parse). 이들 파트들은 다음과 같다:
1. 지정된(specified) SPM JDBC URL로 정의되는, Original URL:
2. 오직 상기 [url] fragment(프레그먼트)로서 정의되는, Base URL:
3. SPMAlias와 SPMDriver 발생이 제거된 (또한 사용자와 패스워드 발생이 제거된) SPM JDBC URL로 정의되는, Driver URL:
4. 필요한 SPMAlias 속성(required SPMAlias property)의 값으로서 정의되는, SPM Alias:
5. 만약 존재하면 SPMDriver 속성의 값으로 정의되고, 그렇지 않으면 널(null)로 정의되는, Driver Class Name(드라이버 클래스 이름).
그것은 하나의 URL 파라미터(parameter)가 적용되는 그것의 모든 서비스들의 SPM Proxy Driver 클래스에 의해 수신될 SPM JDBC URL이다. SPM Proxy Driver 클래스는, 만약 존재하면, 속성 SPMDriver의 값으로 명명된(named) 클래스의 인스턴스를 사용함으로써, 또는 그렇지 않으면, [url] (Base URL)을 승인하는(accept) 드라이버에 대한 룩업(lookup)에 의해, SPM JDBC URL 연결(connect)를 요청하기 위해 타겟 JDBC Driver를 획득하여 홀딩한다(hold). 어느 경우에나, DriverManager 클래스를 통한 룩업에 의해 타겟 Driver의 획득이 일어날 수 있다. 그리고, Java.sql.Driver 인터페이스를 실행할 때, SPM Proxy Driver는, JdbcDriverUrlEntry 클래스의 하나의 인스턴스에서, 리퀘스터 어플리케이션 또는 서버의 구성 또는 핑거프린트 정보와 같은, 하나의 주어진 SPM JDBC URL에 대한 연결들을 확립하기 위해 필요한 데이터 모두를 저장한다. JdbcDriverUrlEntry 인스턴스들은 SPM JDBC URL에 의해 키잉된(keyed) 캐시(cache)에 저장될 수 있다.
SPM 커넥티비티 컴포넌트의 JDBC 실행은, 어플리케이션을 레코딩하지 않고서 크리덴셜 매니저(112)의 기능성(functionality)을 그들의 어플리케이션들에 통합시키기 위해 사용자들에 의해 사용될 수 있는, 자바 라이브러리(Java library) [예컨대, JavaDoc를 가지는 jar 파일]을 제공한다. 사용에서, 최종 사용자(end user)만이 드라이버와 관련 클래스들을 구비한 라이브러리를 리퀘스터 어플리케이션 서버(requestor application Server)의 클래스경로(classpath)에 추가하고; 그리고 SPM JDBC URL을 지정하는(specifying) SPM Proxy JDBC 드라이버들을 사용하기 위해 리퀘스터 어플리케이션 서버에 데이터소스들(DataSources)을 구성할(configure) 필요가 있다. 더욱 구체적으로, SPM JDBC Driver를 사용하기 위해, 구성 파일(configuration file)의 속성들(attributes)은 연결-url(connection-url)을 앞서 지정된 대로 설정하도록, 그리고 드라이버-클래스를 SPM JDBC Driver로 설정하도록 변경된다(modified).
SPM Proxy Driver 클래스와 그 계열 클래스들(its affiliated classes)은 개별적으로 배치될(deployed) 수 있는 하나의 독립 컴포넌트(isolated component)를 구성한다. 그것은 cspmclient.jar library, 통합될 때 아마도 log4j [또는 다른 로깅 시스템(logging system)], 그리고 SPM JDBC URL을 통한 구성에서 선언된 벤더-특이성(vendor-specific) JDBC Driver 클래스들에 대한 통합 의존성(integration dependencies)을 가진다.
연결 요청은 하나의 URL 그리고 일련의 속성들을 제공하는 리퀘스터 어플리케이션(102)에 의해 이루어진다. 이 요청은 SPM Proxy Driver에 의해 수신되는데, 이것은 수신된 URL이 SPM JDBC URL이고 그래서 클래스에 의해 처리되는지를 먼저 확인한다(check). 만약 URL이 SPM JDBC URL이 아니면, 연결 요청은 실패한다. 만약 URL이 SPM JDBC URL이면, JdbcDriverUrlEntryCache로부터 필요한 JdbcDriverUrlEntry 인스턴스가 얻어진다. JdbcUrlDriverEntryCache 쿨래스의 ssociateDriver 서비스는 JdbcUrlDriverEntry 인스턴스에 SPM JDBC URL과 결합된 타겟 JDBC Driver를 배치시킬 책임이 있다. 캐시 엔트리(cache entry)가 존재하지 않으면 이 시점에서 그것이 만들어진다.
되풀이되는 각각의 시도에서, 사용자명 및 패스워드와 같은, 필수 보안 크리덴셜들을 검색하기 위해 크리덴셜 매니저(112)가 호출된다. 크리덴셜 매니저(112) 그리고 SPM Proxy Driver에 의해 구현되는(embodied) SPM 커넥티비티 컴포넌트 사이의 통신은 비공인 관계자들(unauthorized parties)에 의한 탐지(detection) 또는 가로채기(interception)를 피하기 위해 암호화되는 것이 바람직하다. 암호화는, 크리덴셜 매니저(112)와 SPM Proxy Driver 사이에 미리 협상되고(negotiated), 그것은 예를 들어, 암호화 키들의 변경을 포함할 수 있다. 크리덴셜 매니저(112)는 타겟 리소스(26)와의 연결을 확립하는데 필요한 보안 크리덴셜들을 반환한다(return). 각 시도에서, 하나의 연결을 획득하기 위해 네이티브 타겟 JDBC 드라이버에 대한 호출이 그 다음에 이루어진다. 사용된 파라미터들은 JdbcDriverUrlEntry 인스턴스로부터 병합된 속성들과 리퀘스터 어플리케이션(102)에 의해 제공된 속성들을 포함하는 속성 오브젝트(properties object)와 베이스 JDBC URL이다. 병합된 속성들에서, 하드-코딩된 사용자명 및 패스워드와 같은, 크리덴셜들은, 크리덴셜 매니저(112)로부터 반환된 값들로 겹쳐쓰기된다(overwritten). 만약 연결이 획득되면, 연결이 즉시 리퀘스터 어플리케이션(102)에게 반환된다. 그렇지 않으면, 도 3과 관련하여 위에 설명한 바와 같이 재시도가 개시될 수 있거나, SQLException이 호출자(caller)에게 보내질 수 있다.
연결 획득을 위한 이러한 낮은-레벨의 드라이버 관리는, [예컨대, 크리덴셜 매니저(112)에 의해] 그의 데이터베이스 패스워드가 변경된 사용자를 위해 획득된 모든 새로운 연결들이 새로운 패스워드를 사용하여 이루어짐을 의미한다. 이 작용(action)은 아무런 인식(knowledge) 또는 중재(intervention) 없이 소유 데이터 소스(owning data source)에 의해 자동적으로 일어난다. SPM JDBC 드라이버에 의한 그러한 연결 관리는 데이터베이스 패스워드 변경들이 데이터 소스의 활동들(activities)에 대해 완전히 투명함(completely transparent)을 보장한다.
ODBC 실행에서, 커스텀 SPM ODBC 드라이버가 제공된다. ODBC는 데이터베이스 관리 시스템들과 같은, 타겟 리소스들에 액세스하기 위한 표준 소프트웨어 API 메소드(standard software API method)을 제공한다. 이 드라이버는 데이터베이스에 대한 연결 요청이 리퀘스터 어플리케이션(102)으로부터 이루어질 때 크리덴셜 매니저(112)로부터 크리덴셜들을 검색하기 위해 하나의 크리덴셜 매니저 COM 오브젝트를 사용한다. 이 요청은 그 다음에 네이티브 타겟 ODBC 드라이버에게 전달되어 이행(transition)을 완료한다. 바람직하게는, SPM ODBC 드라이버는 하위 호환성(backward compatibility)을 위해 몇몇 deprecated ODBC 1.0 함수들과 모든 ODBC 2.0 함수들(functions)을 실행한다.
SPM JDBC Driver의 경우와 마찬가지로, SPM ODBC Driver는 의사결정형 엔진(188)을 실행한다. SPM ODBC Driver 연결 스트링은, 다음 정보를 포함한다: Driver - SPM ODBC Driver의 이름; Alias - 크리덴셜들을 검색할 때 크리덴셜 매니저(112)로 보내는 타겟 앨리어스(target Alias); 그리고 TargetDriver - 타겟 드라이버를 위한 연결 스트링. 이 TargetDriver 스트링은 타겟 드라이버가 필요로 하는 모든 정보를 포함하나, 사용자 ID 및/또는 패스워드를 포함하지 않는다.
SPM ODBC Driver는 다음의 3 함수들에 기능성을 추가하기 위해 필요하다:
SQLConnect - 미리 정의된 DSN을 사용하여 데이터베이스에 대한 연결을 만든다;
SQLDriverConnect - 하나의 연결 스트링을 사용하여 데이터베이스에 대한 연결을 만든다; 그리고
ConfigDSN - 하나의 DSN을 만들거나, 변경시키거나 삭제함.
SQLConnect 함수는 7 파라미터들을 가진다. 제1 파라미터는 API 함수 SQLConnect를 호출할 때 패스된다(passed). 제2 및 제3 파라미터들은 구성(the configuration)을 검색하기 위해 사용된다. 나머지 4 파라미터들, 사용자명 및 패스워드는 무시된다. 드라이버의 SQLConnect 함수가 호출될(called) 때, 그것은: Target Alias와 Target DSN를 검색하고; Target Alias를 사용하는 크리덴셜들을 검색하고; 그리고 크리덴셜 매니저로부터 검색된 크리덴셜들과 Target DSN을 패스하는(passing) API 함수 SQLConnect 함수를 호출할 것이다.
SQLDriverConnect 함수는 8 파라미터들을 가진다. 제3 및 제4 파라미터들은 구성 정보를 검색하기 위해 사용된다. 나머지 파라미터들은 API 함수 SQLDriverConnect가 호출될 때 아래로 패스된다. 드라이버의 SQLDriverConnect 함수가 호출될 때, 그것은: 연결 스트링으로부터 Target Alias와 Target Driver를 추출하고; Target Alias를 사용하여 크리덴셜들을 검색하고; Target Driver 연결 스트링의 하나의 카피(copy)를 만들고 그리고 크리덴셜 매니저(112)로부터 검색된 크리덴셜들 (사용자 id 및 패스워드)을 추가하고; 그리고 Target Driver 연결 스트링의 업데이트 카피(update copy)를 패스하는 API 함수 SQLDriverConnect 함수를 호출할 것이다.
전술한 기술에는, 설명의 목적을 위해, 매우 많은 세부사항들이 본 발명의 실시예들의 완전한 이해를 제공하기 위해 기술되어 있다. 그러나, 이러한 특정 세부사항들이 본 발명을 실시하기 위해 필수적인 것은 아님을 이 분야의 통상의 지식을 가진 자에게 명백할 것이다. 다른 경우들에는, 잘 알려진 전기 구조물들(electrical structures)과 회로들(circuits)이 본 발명을 모호하게 하지 않기 위해 블록 다이어그램 형태(block diagram form)로 나타나 있다. 예를 들어, 특정 세부사항들은 본 명세서에 설명되어 있는 본 발명의 실시예들이 소프트웨어 루틴(software routine), 하드웨어 회로(hardware circuit), 펌웨어(firmware), 또는 그 조합(combination)으로 구현되는지의 여부에 관하여는 규정되어 있지 않다.
본 발명의 실시예들은 [컴퓨터-판독가능 매체(computer-readable medium), 프로세서-판독가능 매체, 또는 거기에 통합된 컴퓨터-판독가능 프로그램 코드를 가지는 컴퓨터 사용가능 매체(computer usable medium)]로도 불리우는] 기계-판독가능 매체(machine-readable medium)에 저장된 소프트웨어 제품이라 할 수 있다. 기계-판독가능 매체는, 디스켓(diskette), CD-ROM(compact disk read only memory), [휘발성 또는 비휘발성] 메모리 장치(memory device), 또는 유사 저장 메커니즘(similar storage mechanism)을 포함하는, 자기적, 광학적, 또는 전기적 저장 매체를 포함하는, 여하한 적절한 유형 매체(tangible medium)일 수 있다. 기계-판독가능 매체는, 실행될 때, 프로세서로 하여금 본 발명의 실시예에 의한 방법의 단계들을 수행하게 하는, 다양한 세트의 명령어들, 코드 시퀀스들(code sequences), 구성 정보, 또는 다른 데이터를 포함할 수 있다. 이 분야의 통상의 지식을 가진 자들은 상술한 본 발명의 실행에 필요한 다른 명령어들과 동작들(operations)이 또한 기계-판독가능 매체에 저장될 수 있음을 알게 될 것이다. 기계-판독가능 매체로부터 구동하는 소프트웨어는 설명된 임무들을 수행하기 위해 회로(circuitry)와 접속할 수 있다.
본 발명을 이해한 자는 상술한 것들의 다른 구조들과 실시예들 또는 변형들이 다음의 특허청구범위에 정의된 본 발명의 범위내에 있는 것으로 의도됨을 이제 알 수 있을 것이다.

Claims (20)

  1. 하나 또는 그보다 많은 프로세서들(processors)에 실행될 때 상기 하나 또는 그보다 많은 프로세서들로 하여금, 타겟 리소스(target resource)에 액세스하기 위한 보안 크리덴셜들(secure credentials)을 제공하기 위한 컴퓨터-실행 방법(computer-implemented method)으로서;
    리퀘스터 노드(requestor node)에서 실행하는 인간의 개입이 없는 리퀘스터 스크립트(unattended requestor script)로부터, 상기 타겟 리소스를 식별하는 타겟 리소스 정보(target resource information); 및 상기 인간의 개입이 없는 리퀘스터 스크립트의 노드를 인증하는데 필요한 상기 리퀘스터 노드와 관련된 구성 정보(configuration information)로서 상기 리퀘스터 노드를 고유하게(uniquely) 식별하는 핑거 프린트 정보를 포함하는 구성 정보;의 두 정보를 포함하는, 상기 타겟 리소스에 대한 연결 요청(connection request)을 수신하는 단계;
    상기 연결 요청을 해독하여(decoding), 상기 리퀘스터 스크립트를 인증하고 상기 타겟 리소스에 액세스하기 위한 상기 보안 크리덴셜들을 검색하기 위해 상기 타겟 리소스를 위한 크리덴셜들을 관리하고 저장하는 크리덴셜 매니저(credential manager)에 의해 요구되는 정보를 추출하는 단계;
    상기 추출된 정보를 상기 크리덴셜 매니저에게 보안 통신(전달)하여(securely communicating) 상기 크리덴셜들을 검색하는 단계;
    상기 검색된 크리덴셜들을 포함하는, 상기 타겟 리소스에 대한 하나의 네이티브 타겟 리소스 연결 요청(native target resource connection request)을 발생시키는 단계; 및
    상기 네이티브 타겟 리소스 연결 요청을 하나의 네이티브 타겟 리소스 커넥티비티 컴포넌트(native target resource connectivity component)에게 전달하여(pass) 상기 인간의 개입이 없는 리퀘스터 스크립트와 상기 타겟 리소스 사이의 연결을 확립하는 단계;를 수행하게 하는, 컴퓨터-실행 방법(computer-implemented method).
  2. 제1항에 있어서, 상기 요청을 해독하는 단계가 상기 요청을 구문 분석하는(parsing) 것을 포함하여 구성되는, 컴퓨터-실행 방법.
  3. 제1항에 있어서, 상기 추출된 정보를 상기 크리덴셜 매니저에게 보안 통신하는 단계가 상기 크리덴셜 매니저와의 통신들을 암호화하는 것을 포함하여 구성되는, 컴퓨터-실행 방법.
  4. 제1항에 있어서, 자바 데이터베이스 커넥티비티(Java Database Connectivity: JDBC) 어플리케이션 프로그래밍 인터페이스들(Application Programming Interfaces: APIs)을 실행하는, 컴퓨터-실행 방법.
  5. 제4항에 있어서, 상기 연결 요청을 수신하는 단계가, 상기 크리덴셜 매니저로부터 상기 크리덴셜들을 검색하기 위한 하나의 타겟 앨리어스(target alias) 그리고 하나의 타겟 리소스 URL(Uniform Resource Locator)을 포함하는 하나의 JDBC URL을 수신하는 것을 포함하여 구성되는, 컴퓨터-실행 방법.
  6. 제5항에 있어서, 상기 네이티브 타겟 리소스 연결 요청을 발생시키는 단계가 상기 검색된 크리덴셜들을 상기 타겟 리소스 URL과 패키징하여(packaging) 하나의 네이티브 JDBC URL을 제공하는 것을 포함하여 구성되는, 컴퓨터-실행 방법.
  7. 제1항에 있어서, 개방형 데이터베이스 커넥티비티 (Open Database Connectivity: ODBC) API들을 실행하는, 컴퓨터-실행 방법.
  8. 제7항에 있어서, 상기 연결 요청을 수신하는 단계가, 상기 네이티브 타겟 리소스 커넥티비티 컴포넌트를 위한 하나의 연결 스트링(connection string)과 상기 크리덴셜 매니저로부터 상기 크리덴셜들을 검색하기 위한 하나의 타겟 앨리어스를 포함하는 하나의 ODBC 연결 요청을 수신하는 것을 포함하여 구성되는, 컴퓨터-실행 방법.
  9. 제8항에 있어서, 상기 네이티브 타겟 리소스 연결 요청을 발생시키는 단계가 상기 검색된 크리덴셜들을 상기 연결 스트링과 패키징하는 것을 포함하여 구성되는, 컴퓨터-실행 방법.
  10. 제1항에 있어서, 상기 크리덴셜들이 사용자명(username)과 패스워드를 포함하는, 컴퓨터-실행 방법.
  11. 하나 또는 그보다 많은 프로세서들에 의해 실행될 때 상기 하나 또는 그보다 많은 프로세서들로 하여금 제1항 내지 제10항 중의 어느 한 항의 방법을 실행하게 하는, 컴퓨터 실행가능 명령어들(computer executable instructions)을 저장하는 컴퓨터-판독가능 매체(computer-readable medium).
  12. 제1항에 있어서, 상기 구성 정보가, 상기 리퀘스터 노드에 설치된 하나 이상의 하드웨어, 상기 리퀘스터 노드의 일련 번호, 상기 리퀘스터 노드에 설치된 어플리케이션들, 또는 상기 리퀘스터 노드에 설치된 소프트웨어 및 하드웨어의 버전 번호들을 포함하는, 컴퓨터-실행 방법.
  13. 하나 또는 그보다 많은 프로세서들에 의해 실행될 때 상기 하나 또는 그보다 많은 프로세서들로 하여금 제12항의 방법을 실행하게 하는, 컴퓨터 실행가능 명령어들(computer executable instructions)을 저장하는 컴퓨터-판독가능 매체(computer-readable medium).
  14. 제1항 내지 제10항 및 제12항 중 어느 한 항의 컴퓨터-실행 방법을 수행하기 위한 장치.


  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020107029804A 2008-05-30 2009-06-01 인간의 개입이 없는 어플리케이션들을 위한 인증 데이터베이스 커넥티비티 KR101720160B1 (ko)

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
KR20110034622A KR20110034622A (ko) 2011-04-05
KR101720160B1 true KR101720160B1 (ko) 2017-04-10

Family

ID=41376526

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107029804A KR101720160B1 (ko) 2008-05-30 2009-06-01 인간의 개입이 없는 어플리케이션들을 위한 인증 데이터베이스 커넥티비티

Country Status (7)

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

Families Citing this family (33)

* 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
EP3069231B1 (en) * 2013-11-13 2020-11-04 Palo Alto Networks, Inc. Automated sdk ingestion
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
US11003718B2 (en) 2018-06-12 2021-05-11 Secureworks Corp. Systems and methods for enabling a global aggregated search, while allowing configurable client anonymity
US10785238B2 (en) 2018-06-12 2020-09-22 Secureworks Corp. Systems and methods for threat discovery across distinct organizations
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
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
KR100748697B1 (ko) * 2006-03-17 2007-08-13 삼성전자주식회사 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템
JP2008059187A (ja) * 2006-08-30 2008-03-13 Idea Collaborations Co Ltd プロキシを用いたネットワーク認証システム

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
US6052785A (en) * 1997-11-21 2000-04-18 International Business Machines Corporation Multiple remote data access security mechanism for multitiered internet computer networks
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
GB2418757B (en) 2003-07-07 2006-11-08 Progress Software Corp Multi-platform single sign-on database driver
KR100483700B1 (ko) * 2003-12-03 2005-04-19 주식회사 잉카인터넷 온라인 게임 클라이언트 보안을 위한 실시간 프로세스 불법 접근 및 조작 차단 방법
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
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
KR100748697B1 (ko) * 2006-03-17 2007-08-13 삼성전자주식회사 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템
JP2008059187A (ja) * 2006-08-30 2008-03-13 Idea Collaborations Co Ltd プロキシを用いたネットワーク認証システム

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101720160B1 (ko) 인간의 개입이 없는 어플리케이션들을 위한 인증 데이터베이스 커넥티비티
CA2672775C (en) Simplified management of authentication credentials for unattended applications
US9141822B2 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
JP5205380B2 (ja) アプリケーションおよびインターネットベースのサービスに対する信頼されるシングル・サインオン・アクセスを提供するための方法および装置
US8549326B2 (en) Method and system for extending encrypting file system
US9130920B2 (en) Monitoring of authorization-exceeding activity in distributed networks
KR101302135B1 (ko) 위탁 서비스를 위한 데이터의 부분 암복호화 방법 및 그 장치
WO2011089788A1 (ja) 機密情報漏洩防止システム、機密情報漏洩防止方法及び機密情報漏洩防止プログラム
JP2017539017A (ja) サービスとしてのアイデンティティインフラストラクチャ
US20150121498A1 (en) Remote keychain for mobile devices
JP2008502251A (ja) プロセスを使用するキーストアを有するコンピュータ装置及びコンピュータ装置を動作させる方法
US11757877B1 (en) Decentralized application authentication
WO2023077999A1 (zh) 一种应用访问控制方法、装置、计算机设备及存储介质
US11157610B2 (en) Method for accessing a secure computer resource by a computer application
Del Vecchio et al. Evaluating Grid portal security
US20100180329A1 (en) Authenticated Identity Propagation and Translation within a Multiple Computing Unit Environment
Heijmink et al. Secure single sign-on
CN116032616A (zh) 身份验证方法以及相关设备
CN116166409A (zh) 一种资源创建方法、装置、电子设备及存储介质
JP2019212270A (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム
Wainwright Securing Apache
JP2010218264A (ja) 情報処理システム、データベースアクセス方法、及び、プログラム

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant