KR20100020947A - 캐스케이딩 인증 시스템 - Google Patents

캐스케이딩 인증 시스템 Download PDF

Info

Publication number
KR20100020947A
KR20100020947A KR1020097024518A KR20097024518A KR20100020947A KR 20100020947 A KR20100020947 A KR 20100020947A KR 1020097024518 A KR1020097024518 A KR 1020097024518A KR 20097024518 A KR20097024518 A KR 20097024518A KR 20100020947 A KR20100020947 A KR 20100020947A
Authority
KR
South Korea
Prior art keywords
authentication
plan
user
target server
current
Prior art date
Application number
KR1020097024518A
Other languages
English (en)
Other versions
KR101120810B1 (ko
Inventor
릭 알렌 해밀턴 2세
브라이언 마셜 오코넬
존 파베시
키스 레이몬드 워커
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 KR20100020947A publication Critical patent/KR20100020947A/ko
Application granted granted Critical
Publication of KR101120810B1 publication Critical patent/KR101120810B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

일반적으로 말하면, 다른 서버들에 대한 이전의 인증들에 기초하여 서버에 대해 사용자를 인증하기 위한 시스템들, 방법들 및 매체들을 개시하고 있다. 서버에 대해 사용자를 인증하는 방법의 실시 예들은 상기 서버에 대해 상기 사용자를 인증하도록 하는 요청을 수신하는 단계와 상기 사용자를 인증하는 것이 인증 계획에 매치시키는 것을 요구하는 지를 결정하는 단계를 포함한다. 만일 계획이 요구 된다면, 상기 방법은 또한 인증 기록들을 갖는 저장된 인증 계획을 접근하는 단계를 포함한다. 여기서 각각의 인증 기록은 다른 서버에 대한 사용자의 접근과 관련된 예상 정보를 갖고 있다. 상기 방법은 또한 사용자의 현재 인증 계획의 표시를 인증 저장부로부터 수신하는 단계를 포함한다. 여기서 상기 계획은 인증 기록들을 갖고있으며 각각의 기록은 사용자 접근과 관련된 현재 정보를 갖고 있다. 상기 방법의 실시 예들은 또한 상기 저장된 인증 계획을 상기 수신된 현재 인증 계획과 비교하여 그들이 매치되는 지를 결정하고, 매치에 응답하여, 상기 사용자를 인증한다.

Description

캐스케이딩 인증 시스템{CASCADING AUTHENTICATION SYSTEM}
본 발명은 데이터 처리 시스템의 분야에 관한 것으로, 특히 사용자가 다른 서버들에 대하여 이전에(previous) 받은 인증들에 기초하여 하나의 서버에 대하여 사용자들을 인증하는 캐스케이딩 인증 시스템을 구현하기 위한 시스템, 방법 및 매체에 관한 것이다.
컴퓨터 시스템들은 현대의 기술 분야에서 잘 알려져 있고 오늘날 현대 사회의 여러 부분에서 컴퓨터 파우어를 제공할 목적으로 널리 사용되어 왔다. 반도체 처리 공정에서 기술이 발달되어 감에 따라, 컴퓨터 아키텍쳐는 계속적으로 컴퓨터의 하드웨어의 성능을 더욱 향상시키는 방향으로 발전해 나가고 있고, 그러한 하드웨어 성능의 향상을 잘 활용할 수 있도록 컴퓨터 소프트웨어도 더욱 정교하게 진화해 나가고 있으며, 그 결과 컴퓨터 시스템들은 그 복잡성과 파우어가 계속적으로 증가되고 있다. 따라서, 컴퓨터 시스템들은 대단히 정교한 장치들로 진화하여 여러 다른 형태로 나타나고 있다.
많은 조직들이 전자 상거래 웹사이트들(e-commerce websites)을 제공하는 것, 복잡한 다수-사용자 응용 프로그램들(complex multi-user applications)을 제공하는 것, 대규모 데이터베이스를 유지관리 하는 것, 혹은 기타 리소스 인텐시브 업무들(other resource-intensive tasks)을 수행하는 것과 같은 상당히 복잡한 업무들을 처리하기 위해 서버 컴퓨터 시스템들을 이용하고 있다. 상당한 컴퓨팅 니즈(computing needs)를 가지고 있는 조직들은 종종 여러 개의 서버들을 갖고 있는데, 이들은 로컬 에어리어 네트워크(LAN)이라는 네트워크를 통해서 서로 통신을 하면서 광범위하게 다양한 업무들을 처리한다. 이들 시스템들에서, 개인 사용자들은 서버들을 이용하여 다양한 시스템 자원들, 예를 들어 응용 프로그램들, 데이터베이스들, 혹은 기타 다른 리소스들에 접근할 수 있고, 그 결과 시스템 리소스들은 다수의 사용자들에 의해서 공유될 수 있다.
사용자들은 종종 다수 레벨들로 된 인증들(authentications at multi levels) 을 성공적으로 통과함으로써(by successfully navigating) 그들의 목표 서버(target server)(즉, 그들이 접근하려는 소프트웨어가 있는 서버)에 도달한다. 예를 들면, 어떤 사용자가 목표 서버(즉, 목표 데이터베이스)에 접근하려면, 제일 먼저 자신이 사용하는 컴퓨터의 운용체계에 대하여 인증을 통과해야 할 것이고, 그 다음은 회사 네트워크(a corporate network)에 접근하기 위하여 인터넷으로부터의 가상 사설 네트워크(VPN)에 대한 인증을 통과해야 하고, 그 다음은 랩(a lab)에 접근하기 위하여 방화벽(a firewall)에 대한 인증을 통과해야 하며, 마지막으로 그 랩에 있는 기계에 상주하는 데이터베이스에 대한 인증을 통과해야 한다. 다른 인증 스텝들(other authentication steps), 예를 들어 원격 기계에 대한 로그인(login)을 위한 원격 제어 세션(a remote control session), SSH 혹은 Telnet을 갖는 원격 셀 세션(a remote shell session), 혹은 기타 스텝들도 가능하다.
그러나, 인증 단계들을 캐스케이딩하는 그러한 시스템은 해커가 목표 서버로부터의 층들(layers) 생략(skip)하고 가능한 한 아주 적은 수의 층들(few layers)로부터 시도할 수 있기 때문에 보안상 위험을 초래할 수 있다. 예를 들어, 만일 어떤 사람이 특정 사용자로 가장하고자 한다면, 다수의 세트들(multiple sets) 보다는 차라리 한 세트의 신용들(one set of credentials)을 추측하거나 획득하는 편이 훨씬 더 쉬울 것이다(각 층마다 다른 신용들을 요구한다고 가정할 때). 따라서, 부분적 내부자(insider in part)로서 승인받지 않은 접근을 획득하는 편이 더 쉽다. 왜냐하면 그편이(통과해야 할) 층들이 더 적기 때문이다. 한 예시적인 사례에 의하면, 하나의 시스템이 인증을 위해 4개의 층을 가지고 있다고 할 때 : 외부벽(outer wall)은 해커를 차단하는데 95%의 성공 기회를 갖고 있지만, 내부벽(inner wall)은 93%, 시큐어 시스템(a secure system)은 90%, 애플리케이션-레벨 인증은 85%를 갖고 있다고 한다. 외부로부터 애플리케이션까지 누적적 확률을 계산하는 방법은 1에서 각 포인트에서 해커를 차단할 성공 기회를 뺀 다음, 이를 시스템 전체를 통해 캐스케이드 하면 되며, 이렇게 하여 계산된 확률값(해커의 성공확률값)은(0.05)(0.07)(0.10)(0.15) = 0.0000525 이다. 이와는 대조적으로, 이 예에서 애플리케이션에 직접 접근하는 내부자는 인증의 이전 레벨들을 피하기 때문에 애플리케이션에 침투하는데 15%(0.15)의 성공 기회를 갖게 될 것이다.
시스템 설계자들은 내부자로 위장하여 인증의 레벨들을 건너뛰려는 해커들의 문제를 해결하려고 노력해 왔다. 한가지 알려진 해결책은 규정된 주소(the specified address)에 대한 접근을 제한하기 위하여 정의된 IP(a defined IP) 혹은 MAC주소(MAC address)로부터만 인증을 허용하는 것이다. 그러나, 이 해결 방안은 종종 실용적이지 못하며, 특히 VPN이 개입될 때 그러하다. 더욱이, 이 해결 방안은 승인된 기계가 공유될 때는 충분한 해결책이 되지 못하며, 인증 층들의 모두를 완전히 이용하지도 못하며, 따라서 쉽게 속임을 당할 수 있다. 다른 알려진 해결책은 스마트 카드 혹은 다른 디바이스와 같은 추가의 인증을 요구하는 것이다. 그러나, 이 해결 방안은 상당한 하부구조 비용을 요하고 사용자 불편을 가중시킨다. 다수의 층들의 각 층마다 개별 스마트카드를 요구하는 다수의 층들로 된 인증을 사용자가 받아야만 하는 경우에는 이들 두 가지 문제점들은 악화될 것이다.
위에서 확인한 그러한 문제들은 다른 서버들에 대한 이전의 인증에 기초하여 서버에 대한 사용자 인증을 하는 시스템들, 방법들 및 매체들에 의해서 대부분 해결된다. 서버에 대하여 사용자를 인증하는 방법의 실시 예들은 서버에 대하여 사용자를 인증하라는 요청을 수신하는 단계 및 사용자 인증이 인증 계획(authentication plan)에 매치시키는 것(match)을 요구하는 지를 결정하는 단계를 포함할 수 있다. 만일 계획이 요구된다면, 상기 방법은 또한 인증 기록들을 갖는 저장된 인증 계획에 접근하는 단계를 포함할 수 있다. 여기서 각각의 인증 기록은 목표 서버보다 인증의 이전 층에서(at previous layer) 다른 특정 서버에 대한 사용자 접근과 관련된 예상 정보(expected information)를 갖고 있다. 상기 방법은 또한 상기계획이 인증 기록들을 갖고 있는 인증 저장부로부터 사용자의 현재 인증 계획의 표시를 수신하는 단계를 포함할 수 있다. 여기서, 각각의 인증 기록은 목표 서버보다 인증의 이전 층에서 특정의 다른 서버에 대한 사용자 접근과 관련한 현재 정보를 가지고 있다. 상기 방법의 실시 예들은 또한 저장된 인증 계획을 수신된 현재의 인증 계획과 비교하여 그들이 매치되는지를 결정하고 매치되는 것에 응답하여, 상기 사용자를 인증하는 단계를 포함할 수 있다.
본 발명의 다른 실시 예는 컴퓨터 프로그램 제품을 제공하는 것이다. 이 제품은 컴퓨터 판독 가능 프로그램을 기록한 컴퓨터 사용 가능 매체를 포함한다. 여기서, 컴퓨터 판독 가능 프로그램은, 컴퓨터상에서 실행되었을 때, 컴퓨터가 사용자를 서버에 인증시키는 일련의 동작들을 수행하도록 한다. 상기 일련의 동작들은 일반적으로 사용자를 서버에 인증하도록 하는 요청을 수신하는 단계와 상기 사용자를 인증하는 것이 인증 계획에 매치시키는 것을 요구하는 지를 결정하는 단계를 포함한다. 만일 계획이 요구된다면, 상기 일련의 동작들은 또한 인증 기록들을 갖는 저장된 인증 계획에 접근하는 단계를 포함할 수 있다. 여기서 각각의 인증 기록은 목표 서버보다 인증의 이전 층(layer)에서 다른 특정 서버에 대한 사용자 접근과 관련된 예상 정보(expected information)를 갖고 있다. 상기 일련의 동작들의 실시 예들은 또한 상기 계획이 인증 기록들을 갖고 있는 인증 저장부로부터 상기 사용자의 현재 인증 계획의 표시를 수신하는 단계를 포함할 수 있다. 여기서, 각각의 인증 기록은 목표 서버보다 인증의 이전 층에서 특정의 다른 서버에 대한 사용자 접근과 관련한 현재 정보를 가지고 있다. 상기 일련의 동작들의 실시 예들은 또한 저장된 인증 계획을 수신된 현재의 인증 계획과 비교하여 그들이 매치되는지를 결정하고 매치되는 것에 응답하여, 상기 사용자를 인증하는 단계를 포함할 수 있다.
본 발명의 다른 실시 예는 캐스케이딩 인증 시스템을 제공한다. 캐스케이딩 인증 시스템은 인증 계획 관리자(authentication plan manager)를 보유하는 목표 서버를 포함할 수 있다. 여기서 이 계획 관리자는 목표 서버에 대한 접근을 요청하는 사용자와 관련된 저장된 인증 계획에 접근한다. 한편 상기 저장된 인증 계획은 하나 혹은 그 이상의 인증 기록들을 포함하며, 각각의 기록은 목표 서버보다 인증의 이전 층(layer)에서 다른 특정 서버에 대한 사용자 접근과 관련된 예상 정보를 갖는다. 상기 캐스케이딩 인증 시스템은 또한 인증 저장부를 포함할 수 있다. 여기서 이 저장부는 상기 사용자와 관련된 현재의 인증 계획을 저장한다. 한편 상기 현재 인증 계획은 하나 혹은 그 이상의 인증 기록들을 포함하며, 각각의 기록은 목표 서버보다 인증의 이전 층(layer)에서 다른 특정 서버에 대한 사용자 접근과 관련된 예상 정보를 갖는다. 상기 캐스케이딩 인증 시스템의 실시 예들은 또한 인증 저장부 관리자(authentication store manager)를 포함할 수 있다. 여기서 이 저장부 관리자는 특정 사용자와 관련된 현재 인증 계획을 목표 서버의 인증 계획 관리자에게 제공하며, 상기 목표 서버의 인증 계획 관리자는 상기 사용자에 대한 저장된 인증 계획과 상기 사용자에 대한 현재의 인증 계획 사이의 비교에 기초하여 사용자를 인증할 것인지를 결정한다.
본 발명의 다른 실시 예들은 사용자를 목표 서버에 대하여 인증하는 방법을 제공한다. 상기 방법의 실시 예들은 목표 서버에 대한 인증의 이전 층(layer)에서 하나 혹은 그 이상의 서버들을 위한 인증 스텝(step)을 수행하는 단계와 인증 저장부에 각 수행된 인증 단계에 대한 인증 이벤트 기록을 저장하는 단계를 포함한다. 상기 방법의 실시 예들은 또한 상기 목표 서버에 대하여 인증하도록 시도하는 단계를 포함한다. 여기서, 상기 목표 서버는 상기 사용자와 관련된 인증 계획을 요구한다. 상기 방법의 실시 예들은 또한 상기 목표 서버에 대한 접근이 승인되었는지의 표시를 수신하는 단계를 포함한다.
상기 인증 계획들의 각 인증 기록은 서버 식별자(a server identifier) 및 인증 이벤트 팩트(authentication event fact)를 포함하는 것이 바람직하다. 더욱 바람직한 것은 상기 인증 저장부는 암호화된 데이터베이스(encrypted database)로 하는 것이다. 여전히 더 바람직한 것은 상기 인증 저장부 관리자는 상기 목표 서버에 대한 접근을 요구하는 사용자의 사용자 컴퓨터 시스템 비휘발성 메모리에서 실행되는 것이다. 여전히 더 바람직한 것은 상기 인증 저장부 관리자는 신뢰할 수 있는 제 3자의 컴퓨터 시스템에서(on a trusted third party computer system) 수행되는 것이다. 여전히 더 바람직한 것은, 상기 목표 서버에 대한 접근이 승인되지 않았다는 표시의 수신에 응답하여, 상기 목표 서버와 인증 계획의 미스매치(mismatch)가 해결되는 것이다(resolved).
본 발명의 실시 예들의 특징들은 아래의 상세 설명을 읽고 첨부된 도면들을 참조함으로써 명백하게 알 수 있을 것이다. 동일 참조번호는 유사한 요소들을 표시한다.
도 1은 본 발명의 실시 예들에 따라, 사용자 컴퓨터 시스템, 다수의 목표 서버들 및 인증 저장부를 갖는 캐스케이딩 인증 시스템에 관한 환경을 묘사한다.
도 2는 캐스케이딩 인증 시스템의 콤포넨트로 사용하기에 적합한 컴퓨터 시스템의 하나의 실시 예의 블록도이다.
도 3은 본 발명의 실시 예들에 따른 인증 계획 관리자의 소프트웨어 콤포넨트의 개념도이다.
도 4는 본 발명의 실시 예들에 따른 인증 저장부 관리자의 소프트웨어 콤포넨트의 개념도이다.
도 5는 본 발명의 실시 예들에 따른 특정 사용자 및 목표 서버를 위한 인증 계획을 작성하는 플로우 차트의 예이다.
도 6은 본 발명의 실시 예들에 따른 목표 서버에 대한 사용자에 의한 인증 플로우 차트의 예이다.
도 7은 본 발명의 실시 예들에 따른 목표 서버에 의한 사용자 인증 플로우 차트의 예이다.
첨부된 도면들에 묘사된 본 발명의 예시적 실시 예들에 대한 상세한 설명은 아래와 같다. 예시적 실시 예들은 본 발명을 명확히 설명하기 위해 상세히 기술하였다. 그러나, 그러한 상세한 설명은 본 발명의 예상되는 다양한 실시 예들(variations)을 제한하려는 의도가 아니라, 오히려 그러한 모든 다양한 수정들(modifications), 균등 실시 예들(equivalents), 대체 실시 예들(alternatives)이 첨부된 청구항 들에 의해서 정의되는 바와 같이 본 발명의 정신과 범위 내에 있음을 알리는 것이 그 목적이다. 또한 아래의 상세한 설명들은 당업자들에게 그러한 실시 예들이 명확히 이해될 수 있도록 계획되었다.
먼저, 다른 서버들에 대한 이전의 인증들에 기초하여 사용자를 서버에 인증하기 위한 시스템들, 방법들 및 매체들 관하여 설명한다. 서버에 대하여 사용자를 인증하는 방법의 실시 예들은 사용자를 서버에 대하여 인증하도록 하는 요청을 수신하는 단계와 사용자를 인증하는 것이 인증 계획을 매치시키는 것을 요구하는 지를 결정하는 단계를 포함할 수 있다. 만일 계획이 요구된다면, 상기 방법은 또한 인증 기록들을 갖는 저장된 인증 계획에 접근하는 단계를 포함할 수 있다. 여기서 각각의 인증 기록은 목표 서버보다 인증의 이전 층에서(at previous layer of authentication) 다른 특정 서버에 대한 사용자 접근과 관련된 예상 정보(expected information)를 갖고 있다. 상기 방법은 또한 상기 계획이 인증 기록들을 갖고 있는 인증 저장부로부터 사용자의 현재 인증 계획의 표시를 수신하는 단계를 포함할 수 있다. 여기서, 각각의 인증 기록은 목표 서버보다 인증의 이전 층에서 특정의 다른 서버에 대한 사용자 접근과 관련한 현재 정보(current information)를 가지고 있다. 상기 방법의 실시 예들은 또한 저장된 인증 계획을 수신된 현재의 인증 계획과 비교하여 그들이 매치되는지를 결정하고 매치되는 것에 응답하여, 상기 사용자를 인증하는 단계를 포함할 수 있다.
여기서 설명하는 실시 예들의 시스템과 방법은 다른 서버들에 대하여 이전에 행하여진 다른 인증들을 사용하여 목표 서버에 대한 사용자의 인증을 효과적으로 또한 효율적으로 실시하는 것을 가능하게 한다. 여기서 설명하는 실시 예들에 따른 목표 서버들은 사용자를 인증하기 전에 이미 확립된 인증 계획에 따라 인증의 이전 층들(previous layers)을 확인하고 요구하는 능력을 갖고있다. 이러한 해결책은 해커들 혹은 다른 사람들이, 예를 들어 내부자(an insider)인체 하면서, 인증의 이전 층들을 우회(bypassing)하려고 할 때 그러한 시도를 막는데 도움이 되며, 목표 서버의 전체적인 보안 능력을 증가시킨다. 층으로 이루어진 인증 시스템(a tiered authorization system)의 내부 층들(inside layers)은 이전 층들의 인증 계획들(authorization schemes of previous layers)로부터 더 직접적으로 혜택을 받을 수 있기 때문에, 따라서 이들 내부 층들은 이전의 시스템들(previous systems)보다 더욱 안전하게 될 수 있다. 사업상 혹은 사용자에 의해 요구된 규칙들(business or user specified rules) 때문에 사용자가 인증에 관한 다수의 정의된 층들(multiple defined layers of authentication)를 통과해야 하는 경우, 여기서 개시된 시스템 및 방법은 보안을 향상할 수 있는데, 특히 내부자들로부터 보안을 강화할 수 있다.
일반적으로, 본 발명의 실시 예들을 구현하기 위해 실행되는 루틴들(the routines)은 특정 애플리케이션, 콤포넨트, 프로그램, 모듈, 오브젝트, 혹은 명령 시퀀스의 일부(part) 일 수 있다. 본 발명의 컴퓨터 프로그램은 통상적으로 다수의 명령들로 구성된다. 이들 명령들은 이를 저장하고 있는 컴퓨터(the native computer)에 의해서 번역되어 기계 판독 가능 형식으로 바뀌어서 마침내 실행 가능 명령들이 된다. 또한, 프로그램들은 변수들(variables) 및 데이터 구조들(data structures)을 포함하는데, 이들은 위치상으로(locally) 그 프로그램에 속하거나(reside to) 혹은 메모리에 혹은 저장장치들에 존재한다. 또한, 여기서 설명하는 다양한 프로그램들은 본 발명의 구체적인 실시 예에 구현된 애플리케이션에 기초하 여서도 확인될 수 있다. 그러나, 여기서 특정 프로그램 전문용어(nomenclature)가 사용된다면 이는 단지 편의를 위해 사용되는 것이며, 따라서 본 발명이 그러한 프로그램 전문용어로 확인되는 혹은 암시되는 그런 특정 애플리케이션에만 사용하는 것으로 제한되는 것은 아님을 밝혀둔다.
하드웨어 및/혹은 소프트웨어의 특정 구성들을 참조하여 아래에 설명되는 본 발명의 구체적인 실시 예들은 다른 실질적으로 균등한 하드웨어, 소프트웨어 시스템, 매뉴얼 오퍼레이션들, 혹은 이들의 조합들을 가지고 효과적으로 구현될 수 있음을 당업자들도 알 수 있을 것이다. 본 발명은 완전히 하드웨어 형태의 실시 예로, 완전히 소프트웨어 형태의 실시 예로, 혹은 하드웨어와 소프트웨어 양자 모두를 구성요소로 포함하는 형태로 실시될 수 있다. 본 발명의 바람직한 실시 예는 소프트웨어로 구현될 수 있는데, 이는 펌웨어, 상주 소프트웨어(resident software), 마이크로코드 등에 한정되지는 않는다.
여기서 설명하는 본 발명의 특징들(aspects of the invention)은 저장되거나 컴퓨터 판독 가능 매체에 담겨서 배포되거나 인터넷 혹은 무선 네트워크를 포함하는 기타 네트워크를 통해서 전자적으로 배포될 수 있다. 본 발명의 특징들과 특별히 관련된 데이터 구조들 및 데이터 전송(무선 전송을 포함한다)도 또한 본 발명의 범위 내에 포함된다. 더 나아가서, 본 발명은 컴퓨터 프로그램 제품의 형태가 될 수도 있다. 이 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체로부터 접근 가능하며, 컴퓨터(혹은 모든 명령 실행 시스템)에 의해서 혹은 연결하여 사용되는 프로그램 코드를 제공한다. 본 발명에 대한 설명의 목적을 위하여, 컴퓨터 이용 가능 혹 은 컴퓨터 판독 가능 매체는 명령 실행 시스템, 장치, 혹은 디바이스에 의해 혹은 연결하여 사용하는 프로그램을 포함, 저장, 통신, 전파 혹은 전송하는 모든 장치가 될 수 있다. 이들 매체는 전자, 자기, 광, 전자기, 적외선, 혹은 반도체 시스템(혹은 장치 혹은 디바이스) 혹은 전달 매체(propagation medium)가 될 수 있다. 컴퓨터 판독 가능 매체의 예들에는 반도체 혹은 고체 메모리, 자기 테이프, 착탈 가능(removable) 컴퓨터 디스켓, 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 강체(rigid) 자기 디스크 및 광 디스크가 있다. 광 디스크들의 현재 예들에는 콤팩트 디스크 - 리드 온리 메모리(CD-ROM), 콤팩트 디스크-리드/라이트(CD-R/W) 및 DVD가 있다.
여기서 설명하는 각 소프트웨어는 모든 종류의 데이터 프로세싱 시스템, 예를 들어 개인용 컴퓨터, 서버 등에서 동작될 수 있다. 프로그램 코드를 저장 및/혹은 실행하기에 적합한 데이터 프로세싱 시스템은 시스템 버스를 통해 메모리 요소들과 직접적으로 혹은 간접적으로 결합된 적어도 하나의 프로세서를 포함한다. 메모리 요소들은 프로그램 코드의 실행 동안 사용되는 로컬 메모리, 대용량 저장장치(bulk storage), 및 캐시 메모리들을 포함할 수 있다. 여기서 캐시 메모리들은 프로그램 실행 동안 대용량 저장장치로부터 코드가 검색되는 회수를 줄이기 위하여 적어도 일부 프로그램 코드의 일시적 저장 공간을 제공하기 위한 것이다. 입력/출력(I/O) 디바이스들(키보드들, 표시장치들, 포인팅 디바이스들, 등이 포함되나 이에 한정되지 않음)은 직접적으로 혹은 I/O제어기들을 통해서 시스템에 결합될 수 있다. 네트워크 어댑터들(network adapters)이 또한 시스템에 결합될 수 있다. 이 어댑터들은 무선 네트워크들을 포함하여 사설(private) 혹은 공중(public) 네트워크들을 통하여 데이터 처리시스템이 다른 데이터 처리 시스템에 혹은 원격 프린터들 혹은 저장 디바이스들에 결합할 수 있도록 해 준다. 현재 이용 가능한 형태의 몇 안 되는 네트워크 어댑터들에는 모뎀들, 케이블 모뎀들 및 이더넷 카드들(Ethernet cards)이 있다.
이제 도면들을 살펴보면, 도 1은 사용자 컴퓨터 시스템, 다수의 목표 서버들, 및 인증 저장부를 갖는 본 발명의 실시 예들에 따른 캐스케이딩 인증 시스템을 위한 환경을 묘사한다. 여기서 묘사된 실시 예에서, 캐스케이딩 인증 시스템(100)은 사용자 컴퓨터(102) 및 다수의 목표 서버들(106)을 네트워크(104)를 통한 통신에 포함한다. 이하에서 설명하겠지만, 목표 서버들(106)은 기계 분류 센스에서가 아니라 소프트웨어 센스에서의 서버들이며, 따라서 접근을 위해서는 인증이 요구되는 그러한 소프트웨어 실체(즉, 애플리케이션, 운영체제, 네트워크 인터페이스, 등)로 간주될 수 있다. 사용자 컴퓨터 시스템(102) 및/혹은 목표 서버들(106)은 또한 네트워크(104)를 통해서 인증 저장부(108)과 통신할 수 있다.
사용자 컴퓨터(102)의 사용자는 특정 목표 서버(106)에 접근하기를 소망할 수 있다. 이 특정 서버는 일련의 목표서버들(106)에서 하나 혹은 그 이상의 층들(layers) 아래에 있는, 예를 들어 방화벽 목표서버(106) 및 운영체제 인증 프로토콜에 의해서 보호되는 데이터베이스 목표 서버(106)일 수 있다. 아래에서 더욱 상세히 설명되겠지만, 여기 개시된 시스템은 특정 목표 서버(106)에 대한 인증을 제공하기 전에 목표 서버(106)의 더 낮은 레벨들(lower levels)에서 인증들에 관한 정보를 요구할 수 있어서 유리하다. 다시 말하면 데이터베이스 목표 서버(106)에 대한 인증을 하기 전에 방화벽 혹은 운영 체제 목표 서버들에 대한 사용자의 인증에 관한 정보를 요구하기 때문에 유리하다. 이를 달성하기 위해서, 목표 서버(106)는 이전에 저장된 인증 계획을 사용자의 현재 인증들에 관한 정보와 비교하여 그들이 매치되는지를 결정할 수 있어야 한다. 만일 그들이 매치되지 않는다면, 목표 서버(106)는 접근을 거절할 것이다. 왜냐하면 그러한 사용자는 인증의 다수 레벨들(multiple levels)을 건너뛰려는(skip) 내부자(insider)로 간주 될 수 있기 때문이다. 그러나 그들이 매치되면, 사용자는 목표 서버(106)에 대해 인증이 주어질 것이다. 인증 계획들은 하나 혹은 그 이상의 정의된 인증 스텝들(one or more defined authentication steps)을 포함할 수 있는데, 이들은 사용자가 인증을 통과하기 전에 반드시 수행되어야 한다. 예를 들어, 어떤 인증 계획은 사용자가 서버 B의 인증을 통과하기 전에 서버 A에서 인증을 반드시 통과하도록 요구할 수 있다. 여기서, 서버 B는 서버 A와 독립적이고, 사용자의 신용들(credentials)이 완전할 경우 사용자가 인증을 통과하도록 허락한다. 어떤 인증 계획은 필요한 만큼 혹은 사용자 혹은 목표 서버가 소망하는 만큼 많은 스텝들을 요구할 수 있다.
사용자들은 본 발명의 실시 예들에 따라 인증을 통해 목표 서버(106)에 대한 접근을 편리하게 획득하기 위해 사용자 컴퓨터(102)를 사용할 수 있다. 사용자 컴퓨터 시스템(102)는 컴퓨터 프로그램을 실행할 수 있는 개인용 컴퓨터 시스템, 혹은 다른 컴퓨터 시스템, 예를 들어 개인용 컴퓨터, 워크스테이션, 서버, 노트북 혹은 랩탑 컴퓨터, 데스크탑 컴퓨터, PDA, 휴대폰, 무선 디바이스, 혹은 셋탑 박 스(set-top box)가 될 수 있다. 사용자는 사용자 인터페이스를 통해서 사용자 컴퓨터 시스템(102)을 사용할 수 있다. 예를 들어, 목표 서버(106)에 대한 접근을 요청하거나 혹은 그러한 접근 요청이 목표 서버(106)으로부터 승인되었는 지에 관한 정보를 수신할 수 있다. 사용자 컴퓨터 시스템(102)는 정보를 전송하고 수신하기 위해 네트워크(104)와 통신할 수 있다.
사용자 컴퓨터 시스템(102)은 캐스케이딩 인증을 용이하게 수행하기 위해서 인증 저장부 관리자(112)를 포함할 수 있다. 인증 저장부 관리자(112)는 도 4에서 상세히 설명할 것이지만, 목표 서버들(116) 및/혹은 인증 저장부(108) 사이의 대화(interaction)를 위해 제공될 수 있다. 인증 저장부 관리자(112)는, 예를 들어, 각각의 수행된 인증 스텝에 대한 인증 이벤트 기록을 인증 저장부(108)에 저장할 수 있다. 인증 저장부 관리자(112)는 또한 목표 서버들(106)과 대화할 수 있는데, 예를 들어, 목표 서버(106)가 접근을 승인 혹은 거절할 때, 인증 계획을 요청 혹은 수립할 때, 혹은 인증 계획과 사용자의 현재 인증들 사이의 미스매치의 해결을 요청할 때이다. 따라서, 인증 저장부 관리자(112)는 인증 정보(authorization information)를 요청하는 다양한 목표 서버들(106)의 인증 메커니즘을 위해서 그러한 정보의 신뢰받은 소스(a trusted source)로서 역할을 수행할 수 있다.
네트워크(104)는 인터넷, 인트라넷, LAN, WAN, 이더넷 네트워크, 무선 네트워크, 전화 네트워크, 사설 네트워크, 광대역 케이블 네트워크와 같은 데이터 통신 채널 혹은 채널들의 조합이면 아무 종류라도 가능하다. 한 예에서, LAN이 사용자 컴퓨터 시스템(102)과 목표 서버들(106)사이의 네트워크(104)으로서 특히 유용할 수 있다. 즉, LAN은 기업 환경(in a corporate environment)에서 조직 내의 통신을 편리하게 한다. 다른 예들에서, 네트워크(104)는 인터넷이 그 역할을 수행하여 사용자 컴퓨터(102)를 웹에 기초한(web-based) 인증 저장부(108)에 접속할 수 있다. 그러나, 당 분야에서 통상의 지식을 가진 자는 여기서 설명한 본 발명이 어떤 종류의 데이터 통신 채널 혹은 그들의 조합을 사용하여 본 발명의 범위와 정신을 벗어남이 없이 구현될 수 있음을 알 수 있을 것이다.
전술한 바와 같이, 목표 서버들(106)은 소프트웨어 실체들이며, 각 목표 서버(106)의 리소스들에 접근하기 위해서는 이들에 대하여 인증이 요구되고 승인될 수 있다. 목표 서버들(106)은 다양한 종류의 소프트웨어 실체들을 포함할 수 있다. 예를 들어, 운영 체제들, 데이터베이스들, 방화벽들, 가상 사설 네트워크들(VPNs), 네트워크들, 애플리케이션들, 기타 실체들을 포함할 수 있다. 하나 혹은 그 이상의 목표 서버들(106)은 애플리케이션 서버와 같은 서버 컴퓨터 시스템들 상에서뿐만 아니라(도 2에서 설명하는) 컴퓨터 시스템과 같은 어떤 종류의 컴퓨터 시스템에서도 구현될 수 있다. 도 1에서 보듯이, 목표 서버들(106)은 여러 층들로(in layers) 포개진 형태로(nested) 구성할 수 있다. 이렇게 구성함으로써 내부 목표 서버(inner target server)(106)에 접근하려면 바깥의(outer) 더 낮은 레벨의 목표 서버들(106)(도 1)에 대한 접근을 먼저 요청해야 한다. 이 예에서, 예를 들어, 레벨 3에 있는 목표 서버(106)에 접근하려면 레벨 1 및 레벨 2에 있는 목표 서버들(106)에 대한 접근 또한 요구하여야 한다.
각각의 목표 서버(106)는 목표 서버(106)에 대한 접근을 요청하는 사용자와 관련된 저장된 인증 계획에 접근하는 인증 계획 관리자(110)를 포함할 수 있다. 상기 저장된 인증 계획은 하나 혹은 그 이상의 인증 기록들을 포함할 수 있다. 각각의 기록은 상기 목표서버(106) 보다 이전 층에서(at previous layer) 다른 목표 서버(106)에 대한 사용자의 접근과 관련한 예상 정보(expected information)를 갖고 있다. 인증 계획 관리자(110)는 인증 저장부 관리자(112)로부터 사용자의 현재 인증 상황을 나타내는 현재의 인증 계획을 제공할 수 있다(인증 저장부 관리자는 현재 인증 계획을 인증 저장부(108)로부터 접근할 수 있다). 인증 계획 관리자(110)는 또한 저장된 인증 계획과 현재의 인증 계획 사이의 비교에 기초하여 사용자를 인증할 것인 지를 결정할 수 있다. 예상되는 저장된 인증 계획(the expected stored authentication plan)을 현재의 인증 계획과 비교함으로써, 인증 계획 관리자(110)는 사용자가 목표 서버(106)의 더 낮은 레벨들에서 적절히 인증되었는지를 확인할 수 있으며 그들의 다른 신용들(예를 들어 패스워드들)이 정확하다 할지라도 그러한 사용자에 대한 접근이 거부될 수도 있는데, 그 결과 목표 서버(106)에 대한 보안은 향상될 수 있다.
어떤 목표 서버들(106)은, 예를 들어, 오래된 시스템들(legacy systems)은 인증 계획 관리자(110)를 갖고 있지 않을 수 있으며 따라서 관련 인증 계획들을 요청할 수 없지만, 이들 목표 서버들(106)로부터의 인증들은 그들의 보안을 강화하기 위하여 여전히 다음에 오는(subsequent) 목표 서버들(106)에 의해서 사용될 수 있다. 따라서 여기서 개시한 시스템은 이 시스템을 구현하고 있지 않은 목표 서버(106)가 인증 정보를 요청하지 않고 대신에 인증을 정상적으로 수행할 때 기존의 인프라스트럭쳐들(existing infrastructures)과도 호환된다(compatible). 도 1에서 보듯이, 하나의 캐스케이딩 인증 시스템(100)에서 일부 목표 서버들(106)은 인증 계획 관리자(110)를 가질 수 있고(따라서 여기서 개시한 시스템을 구현하고 있을 수 있다), 한편 다른 서버들은 갖지 않을 수 있다.
인증 저장부(108)는 모든 종류의 저장 디바이스들 혹은 그들의 조합을 포함할 수 있다. 이들에는 휘발성 혹은 하드 드라이브들 같은 비휘발성 스토리지, 스토리지 에어리어 네트워크들(storage area networks), 메모리, 고정 혹은 착탈 가능 스토리지, 혹은 기타 스토리지 디바이스들이 포함될 수 있다. 일부 실시 예들에서 인증 저장부(108)는 암호화된 데이터베이스일 수 있다. 이종의(disparate) 로컬 및 원격 인증 정보를 가지고 있는 이 데이터베이스는 인증을 요청하는 모든 승인된 인증 메커니즘을 대신하여 인증 저장부 관리자(112)와 같은 신뢰받는 소스(a trusted source)에 의하여 기록되고 판독될 수 있다. 인증 저장부(108)는 캐스케이딩 인증 시스템(100)이 있는 곳이면 어디든지 위치할 수 있는데, 예를 들어 스탠드 얼론 콤포넨트로서(a stand-alone component)(아마도 신뢰받는 제3자에 의해서 원격 서버 혹은 서버들의 네트워크 상에 구현되는) 혹은 사용자 컴퓨터 시스템(102) 혹은 인증 저장부 관리자(112)의 일부로서 존재할 수 있다.
도 2는 캐스케이딩 인증 시스템의 콤포넨트로써 사용하기에 적합한 컴퓨터 시스템(200)의 한 실시 예를 표시하는 블록도이다. 컴퓨터 시스템(200)은 다른 형태로도 가능하다. 여기서 생각하는 컴퓨터와 다른 능력을 갖는 이들 능력을 넘어서는 그런 컴퓨터를 포함할 수도 있다. 다른 실시 예들에서, 이들은 워크스테이션들, 서버들, 메인프레임 컴퓨터들, 노트북 혹은 랩탑 컴퓨터들, 데스크탑 컴퓨터들, PDA들, 핸드폰들, 무선 디바이스들, 셋톱 박스들, 혹은 기타 장치들과 같은 프로세싱 디바이스들 혹은 그들의 조합이 될 수 있다. 컴퓨터 시스템(200)의 적어도 일부 콤포넨트들은 이들을 전기적으로 상호 접속하는 수단을 제공하기 위하여 다층 평면 혹은 마더보더 상에 장착될 것이다(이것 자체는 샤시 상에 장착될 것이다). 컴퓨터 시스템(200)은 하나 혹은 그 이상의 목표 서버들(106), 사용자 컴퓨터 시스템(102), 및/혹은 인증 저장부(108)을 구현하기 위하여 사용될 수 있다.
도시된 실시 예에서, 컴퓨터 시스템(200)은 버스(212) 혹은 다른 인터커넥트(interconnect)에 접속된 프로세서(202), 스토리지(204), 메모리(206), 사용자 인터페이스 어댑터(208), 및 표시장치 어댑터(210)를 포함한다. 버스(212)는 프로세서(202)와 다른 콤포넨트들 사이의 통신과 콤포넨트들 사이의 통신을 용이하게 한다. 프로세서(202)는 명령들을 실행하기 위해서 하나 혹은 그 이상의 시스템 중앙 처리 유니트들(CPUs) 혹은 프로세서들을 포함할 수 있다. 프로세서(202)는 스토리지(204)를 사용할 수 있는데, 여기서 스토리지(204)는 하나 혹은 그 이상의 하드 드라이브들 같은 비휘발성 스토리지, 테이프 드라이브들, 디스켓 드라이브들, CD-ROM 드라이브, DVD-ROM 드라이브 등이 될 수 있다. 프로세서(202)는 또한 버스(212), 예를 들어 메모리 제어기 허브(MCH)를 통해서 메모리(206)에 접속될 수 있다. 시스템 메모리(206)는 랜덤 억세스 메모리(RAM) 혹은 이중 데이터 레이트(DDR) 동기 동적 랜덤 억세스 메모리(SDRAM)와 같은 휘발성 메모리를 포함할 수 있다. 여기 개시된 시스템에서, 예를 들어, 프로세서(202)는 인증 저장부 관리 자(112)의 기능들, 예를 들어, 인증 저장부(108)과 대화하는(interacting) 그런 기능들을 수행하는 명령들을 실행할 수 있고 계산하는 동안 정보를 혹은 계산 후의 결과들을 스토리지(204) 혹은 메모리(206)에 일시적으로 혹은 영구적으로 저장할 수 있다. 인증 저장부 관리자(112)의 모든 부분들은 자신의 루틴들이 실행되는 동안(during execution of its routines), 예를 들어, 메모리(206)에 저장될 수 있다.
사용자 인터페이스 어댑터(208)은 프로세서(202)를 마우스(220) 혹은 키보드(222)와 같은 사용자 인터페이스 디바이스들에 접속할 수 있다. 사용자 인터페이스 어댑터(208)은 또한 터치 패드들, 터치 센시티브 스크린들, 전자 펜들, 마이크로폰들 등과 같은 다른 형태의 사용자 인터페이스들과도 접속할 수 있다. 예를 들어, 목표 서버(106)에 대한 접근을 요청하거나 혹은 인증 계획의 충돌(conflict)의 해결을 요청하는 클라이언트인 사용자는 컴퓨터 시스템들과 대화하기 위해서 키보드(222)와 마우스(220)를 사용할 수 있다. 버스(212)는 또한 표시장치 어댑터(210)를 통하여 LCD 디스플레이 혹은 CRT 모니터와 같은 표시장치에 프로세서(202)를 접속할 수 있다.
도 2에서 인증 저장부 관리자(112)는 프로세서(202)에 위치하는 것으로 묘사되어 있지만, 이 분야에서 통상의 지식을 가진 자는 다른 대안들도 가능하다는 것을 이해할 것이다. 바람직한 실시 예들에서, 인증 저장부 관리자(112)는 해킹의 가능성을 최소화하기 위해 보안의 충분한 레벨(a sufficient level of security)을 갖는 위치에서 실행될 수 있다. 인증 저장부 관리자(112)는 인증 저장부(108)로부 터 정확한 정보를 제공해야 하기 때문에, 신뢰할 수 있는 파티(a trusted party)에 의해서 신뢰할 수 있는 암호화(trusted encryption)로 구현되는 것이 바람직하고 또한 각각의 목표 서버(106)와는 이들 기록들의 위조를 방지하도록 인증된 개인 키들(private keys)(혹은 다른 적합한 암호화 방법)을 교환하는 것이 바람직하다. 따라서, 인증 저장부 관리자(112)는, 도 2에서 묘사된 것처럼, 하드웨어(BIOS)의 하위 레벨(low level)에, 운영 체제(즉, 커널)에, 혹은 VeriSign Inc. 혹은 기업(corporate) 경량 디렉토리 억세스 프로토콜(Lightweight Directory Access Protocol : LDAP) 디렉토리 익스텐션(directory extention)과 같은 제3 파티에 의해서 구현될 수 있다. 방화벽들과 네트워크 비지빌리티(network visibility)의 기타 제한된 정도 때문에 대리(proxy) 인증 저장부 관리자들(112)는 네트워크들을 거쳐 필드 요청들(field requests)까지 다리를 놓아 줄 것이 요구될 수 있다.
도 3은 본 발명의 일부 실시 예들에 따른 인증 계획 관리자(110)의 소프트웨어 콤포넨트들을 개념적으로 보여주는 도면이다. 전술한 바와 같이(더 상세히는 도 7과 관련하여 설명할 것이다), 인증 계획 관리자(110)는 인증 저장부(108)에서 발견된 저장된 인증 계획과 사용자의 현재 인증들에 기초하여 사용자를 인증할 수 있다. 인증 계획 관리자(110)는 인증 저장부 관리자 인터페이스 모듈(302), 사용자 컴퓨터 시스템 인터페이스 모듈(304), 인증 계획 저장소(306) 및 인증 모듈(308)을 포함할 수 있다. 인증 저장부 관리자 인터페이스 모듈(302)는 인증 저장부 관리자(112)를 통해 인증 저장부(108)과의 통신을 제공할 수 있고, 따라서 인증 저장부(108)과 인증 계획 관리자(110)의 다른 콤포넨트들 사이에서 인터페이스로서 역 할을 수행할 수 있다. 사용자 컴퓨터 시스템 인터페이스 모듈(304)은 사용자 컴퓨터 시스템과의 통신을 제공할 수 있다. 이 통신에는 목표 서버(106)에 대한 접근 요청들을 수신하는 것과 접근이 사용자에게 승인되었는지에 관한 표시를 전송하는 것이 포함된다. 인증 저장부 관리자 인터페이스 모듈(302) 및 사용자 컴퓨터 시스템 인터페이스 모듈(304)의 기능들(functionality)은 사용자 컴퓨터 시스템(102)이 인증 저장부 관리자(112)를 포함할 때와 같은 일부 실시 예들에서 하나의 모듈로 조합될 수 있다.
인증 모듈(308)은 본 발명의 실시 예들에 따라 사용자의 인증을 용이하게 하기 위하여 다양한 기능들을 제공할 수 있다. 인증 모듈(308)은 다수의 사용자들과 관련된 인증 계획들을 인증 계획 저장소(306)에 저장하고 접근할 수 있다. 인증 모듈(308)은 인증 계획이 사용자로부터 수신되었을 때 혹은 사용자를 위하여(혹은 사용자와 관련하여) 개발되었을 때 이를 저장할 수 있고, 인증 계획 관리자(110)를 구현하는 목표 서버(106)에 대한 사용자의 접근 요청에 응답하여 저장된 인증 계획에 접근할 수 있다. 사용자 컴퓨터 시스템 인터페이스 모듈(304)가 사용자로부터 인증 요청을 수신한 후, 인증 모듈(308)은 그 사용자를 위하여 인증 계획 저장소(306)로부터 저장된 인증 계획에 접근할 수 있고 그 인증 계획을 현재 인증 계획(인증 저장부 관리자 인터페이스 모듈(302)이 수신한)과 비교할 수 있다.
도 4는 본 발명의 일부 실시 예들에 따라 인증 저장부 관리자(112)의 소프트웨어 콤포넨트들을 개념적으로 보여주는 도면이다. 전술한 바와 같이(더욱 상세히는 도 6과 관련하여 설명될 것이다), 인증 저장부 관리자(112)는 인증 저장부(108) 을 관리함으로써 다수의 목표 서버들(106)의 사용자 인증과 관련된 인증 정보를 저장하고 관리하는 일을 용이하게 할 수 있다. 인증 저장부 관리자(112)는 사용자 인터페이스 모듈(402), 인증 저장부 인터페이스 모듈(404), 서버 인터페이스 모듈(406), 인증 이벤트 모니터(408), 및 인증 계획 발생기(an authentication plan generator : 410)을 포함할 수 있다. 사용자 인터페이스 모듈(402)는 사용자와의 통신을 용이하게 할 수 있다. 이 통신에는 목표 서버(106)에 대한 접근 요청들을 수신하는 것과, 접근이 승인되었거나 거절되었다는 표시, 인증 계획이 작성되거나 수정되어야 할 필요가 있다는 표시, 혹은 다른 정보를 전송하는 것을 포함한다. 인증 저장부 인터페이스 모듈(404)는 인증 저장부(108)과의 통신을 용이하게 할 수 있다. 이 통신에는 인증 이벤트들의 표시를 인증 저장부(108)에 저장하는 것과 목표 서버(106)와 같은 인증 실체의 요청에 의하여 인증 계획들을 접근하는 것이 포함된다. 서버 인터페이스 모듈(406)은 목표 서버(106)(및 자신의 인증 계획 관리자(110))과 인증 저장부 관리자(112) 사이의 통신을 용이하게 할 수 있다. 세 인터페이스 모듈들(402),(404), 및(406)은 각각 인증 저장부 관리자(112)의 콤포넨트들과 외부 실체들(outside entities) 사이에 통신을 제공할 수 있고 그들의 기능은 실시 예에 따라서(in any fashion) 통합되거나 분산될 수 있다.
인증 이벤트 모니터(408)는 사용자의 수행된 인증 스텝들(예를 들어, 패스워드를 입력하는 것, 스마트 카드를 사용하는 것 등)을 모니터할 수 있고 그러한 스텝들의 암호화된 표시를 인증 저장부(108)에 저장할 수 있다(인증 저장부 인터페이스 모듈(408)을 통해서). 일부 실시 예들에서, 인증 이벤트 모니터(408)는 모든 인 증 단계마다 인증의 다음 층들(subsequent layers)이 요청할 수 있는 정보와 함께 저장을 위한 암호화된 이벤트 기록을 인증 저장부(108)에 생성할 수 있다. 인증 기록의 정보는 내부 관리 사용을 위한 하나 혹은 그 이상의 특별 기록 식별자(unique record identifier), 하나 혹은 그 이상의 목표 서버(106)의 식별자들(예를 들어, MAC 주소, 서버 종류, 서버 식별자, 서버 그룹, IP 주소 등), 하나 혹은 그 이상의 사용자 식별자들(예를 들어, 사용자 이름, 그룹 이름 등), 하나 혹은 그 이상의 인증 이벤트 팩트들(예를 들어, 성공적 로그인 이전의 실패한 인증 시도들의 수, 인증 저장부(108)에 국한된 타임스탬프(timestamp local to the authentication store 108) 등), 혹은 기타 정보를 포함할 수 있다.
인증 계획 발생기(410)는 사용자를 위한 인증 계획의 생성과 유지관리를 용이하게 할 수 있다. 사용자는 목표 서버(106)가 요구하거나 허락하면 인증 계획을 작성할 수 있다. 목표 서버(106)는 특정 목표 서버(106)를 위한 인증 계획에서 사용되어야 할 현재의 기록들을 그들의 인증 저장부에서 확인함으로써(by identifying current records) 인증 계획을 요구하거나 허락할 수 있다. 일부 실시 예들에서, 목표 서버(106)의 관리자(administrator)는 모든 인증 계획에서 요구되는 필수 인증 스텝들(the required authentication steps)을 미리 확정해(pre-established) 둘 수 있다. 서버 관리자는, 예를 들어, 인증 계획이 적어도 서버 종류들, BIOS, OS, VPN, 및 방화벽(FIREWALL)을 포함할 것과 또한 특정(specific) VPN 서버 그룹 혹은 방화벽 IP 주소와 같은 미리 알려진 정보를 포함할 것을 요구할 수 있다. 사용자는 또한 사용자 보호를 위해 목표 서버(106)에 의해 요구된 것 들을 넘는 추가의 스텝들이 포함될 것을 요청할 수 있다.
도 5는 일부 실시 예들에 따라 특정 사용자와 목표 서버를 위한 인증 계획을 생성하기 위한 플로우 차트(500)의 예를 보여준다. 플로우 차트(500)의 방법은, 하나의 실시 예로서, 인증 계획 관리자(110) 및 인증 저장부 관리자(112)와 같은 캐스케이딩 인증 시스템(100)의 콤포넨트들에 의하여 수행될 수 있다. 플로우 차트(500)은, 특정 서버를 위한 인증 계획을 생성하는 요청을 수신하는 단계인, 단계(502)로 시작한다. 인증 계획을 위한 상기 요청은 목표 서버(106)으로부터 수신될 수 있다. 이 요청은 사용자에게 인증 계획이 요구됨을 통지하거나 혹은 사용자로부터 특정 목표 서버(106)에 대한 인증 계획을 확정하라는 요청이 수신되었음 통지한다.
결정 블록(504)에서, 인증 저장부 관리자(112)는 모든 인증 기록들이 현재 특정 사용자와 인증의 다른 레벨들을 위해 존재하는 지를 결정할 수 있다. 만일 존재한다면, 인증 저장부 관리자(112)는 존재하는 인증 기록들의 현재 목록을(인증 저장부(108)로부터) 사용자에게 제출할 수 있다. 그러면 사용자는 목표 서버(106)를 위한 인증 계획에 포함시킬 수 있는 그들이 좋아하는 어떤 인증 이벤트들을 선택할 수 있다. 인증 저장부 관리자(112)는 단계(506)에서 인증 계획에 사용될 인증 저장부(108)의 현재 기록들을 확인할 수 있다(receive an identification of current records). 목표 서버(108)는 또한 사용자에 의해서 선택된 이것들에 더하여 사용자로부터 특정 인증 이벤트들을 요구할 수 있다. 단계(508)에서, 인증 저장부 관리자(112)의 인증 계획 발생기(410)는 사용자와 목표 서버(106)의 선호도 들(preferences)과 선택들에 기초하여 인증 계획을 생성할 수 있다.
인증 계획이 생성된 후, 그 다음 인증 저장부 관리자(112)의 서버 인터페이스 모듈(406)은 그 계획을 단계(510)에서 목표 서버(106)에 전송할 수 있다. 단계(512)에서, 목표 서버(106)는 상기 인증 계획을 수신하고, 단계(514)에서 상기 계획을 인증 계획 저장소(306)에 저장할 수 있다. 그 후 상기 방법은 종료된다. 인증 계획 저장소(306)은 일부 실시 예들에서 많은 사용자들을 위한 다양한 인증 계획들을 위한 스토리지로써 그 역할을 수행할 수 있다.
도 6은 일부 실시 예들에 따라 사용자에 의한 목표 서버에 대한 인증에 관한 플로우 차트(600)의 예를 묘사한다. 플로우 차트(600)의 방법은, 하나의 실시 예로서, 인증 저장부 관리자(112)와 같은 캐스케이딩 인증 시스템(100)의 콤포넨트들에 의하여 수행될 수 있다. 플로우 차트(600)는, 인증 저장부(108)의 인증 기록들을 갱신하는(updating) 단계인, 선택적 단계(602)로 시작한다. 인증 저장부 관리자(112)는 다양한 이유들로 인증 기록들을 갱신할 수 있다. 일부 실시 예들에서, 예를 들어, 인증 저장부 관리자(112)는 인증된 목표 서버(106)가 로그 아웃 혹은 접속이 끊어졌을 때는 언제나 혹은 인증 계획에 앞서서(earlier) 목표 서버(106)가 유사하게 로그아웃 혹은 접속이 끊어졌을 때는 언제나 인증 기록들을 삭제함으로써 무효의 정보(stale information)를 피하도록 시도할 수 있다. 이들 실시 예들에서, 인증 기록은 먼저 보고용(reporting) 혹은 사용 분석(usuage analysis)과 같은 아카이벌 목적들(archival purposes)을 위해 다른 테이블에 기록될 수 있다. 인증 저장부 관리자(112)는 정기적으로 현재 상태에 대해 목표 서버의 인증 시스템에 질문 하고, 목표 서버(106)으로부터 기록들을 지우라는 요청들을 수신하고, 그리고/혹은 사용자로부터도 그러한 요청들을 수신함에 의해서 이를 달성할 수 있다. 인증 저장부 관리자(112)는 또한 인증 계획에서 더 높은(higher) 목표 서버(106)가 로그아웃 되는 이벤트에서 혹은 그러한 서버가 사용자를 취소(revoke) 혹은 중지시키는(suspend) 이벤트에서 목표 서버들(106)을 차례로(downstream) 로그아웃함으로써 반대의 방법(the reverse methodology)도 수행할 수 있다.
단계(604)에서, 사용자 컴퓨터 시스템(102)는 여러 목표 서버들(106)을 위한 인증 스텝들을 수행할 수 있다. 이러한 인증 스텝들은 기계 하드웨어(파우어 온 패스워드를 갖는), 그들의 운영 체제, VPN, 방화벽, 데이터베이스, 등과 같은 목표 서버(106)에 대하여 성공적으로 인증 함으로서 수행된다. 단계(606)에서, 인증 저장부 관리자(112)는 암호화된 인증 기록을 사용자 인증 저장부(108)에 전술한 바와 같이 저장할 수 있다. 상기 인증 기록은 인증 스텝의 성능(performance)에 관한 정보를 포함할 수 있다. 그러한 정보의 예에는 성공의 표시, 타임스탬프, 얼마나 많은 시도들이 요구되었는지에 관한 표시, 등이 있다. 그 다음에, 결정 블록(608)에서, 사용자 컴퓨터 시스템(102)는 목표 서버(106)에 대하여 인증을 시도할 수 있다. 만일 그러한 목표 서버(106)가 인증 계획을 요구하지 않는다면, 상기 방법은 인증 스텝을 수행하고 그 수행된 스텝에 기초한 인증 기록을 저장하기 위하여 단계(604)로 복귀한다.
만일 목표 서버(106)가 인증 계획을 요구한다면, 단계(610)에서, 인증 저장부 관리자(112)는 목표 서버(106)으로부터 현재 인증 계획에 대한 요청을 수신한 다. 전술한 바와 같이, 상기 현재 인증 계획은 목표 서버(106)에 대한 인증의 이전 층들에서(at previous layers of authentication) 서버들을 위한 하나 혹은 그 이상의 인증 스텝들에 대한 인증 기록을 포함할 수 있다. 따라서, 현재 인증 계획에 포함된 상기 인증 기록들은 사용자를 위한 예상(expected) 인증 기록들이다(즉, 목표 서버(106)는 사용자가 했을것을 예상한다). 그 다음, 단계(612)에서, 인증 계획 관리자(112)는 사용자를 위해 상기 인증 계획에 접근하고, 단계(614)에서, 상기 인증 계획으로부터 예상 정보를 목표 서버(106)에 전송한다.
상기 인증 계획으로부터 상기 정보가 전송된 후, 단계(616)에서, 사용자 컴퓨터 시스템(102) 및 자신의 인증 저장부 관리자(112)는 목표 서버(106)에 의해서 접근이 승인되었는지에 관한 표시를 수신한다. 결정 블록(618)에서, 접근이 승인되었다면, 플로우 차트(600)의 방법은 종료(하고 사용자는 접근을 위해서 모든 업무를 수행한다)하거나 혹은 단계(604)에서 인증 스텝을 수행하기 위해서 단계(604)로 복귀한다. 결정 블록(618)에서, 접근이 승인되지 않았다면, 인증 저장부 관리자(112)는 그들이 승인되지 않은 인증 계획을 통해 접근하고 있음을 통지받게 될 것이다. 만일 상기 인증 계획에 변경이 필요하다면, 상기 방법은 단계(620)로 진행하여, 여기서 인증 저장부 관리자(112)는 목표 서버(106)와의 모든 인증 계획 미스매치(mismatch)를 해결하고, 그 후 상기 방법은 종료된다. 만일 상기 인증 계획에 변경이 필요하다면, 그것은 통상적으로 사용자와 협력하여(in coordination with the user) 관리자의 개입(administrator intervention)을 요구할 것이며, 이는 어떠한 형식으로(in any fashion)으로도 구현가능하고, 비밀 암호문장(a secret passphrase), 스마트카드, 혹은 기타 인증 방법을 통하는 것과 같은 추가의(extra) 인증을 요구하는 것에 의해서 구현될 수 있다. 이는 누군가가 사용자를 속여 인증 계획이 스푸퍼(혹은 해커)에게 더 쉬운 것으로 혹은 서비스 공격의 부인으로(as a denial of service attack) 변경 되도록 요구하는 것을 막는데 도움이 된다.
도 7은 일부 실시 예들에 따라 목표 서버에 의해 사용자를 인증하기 위한 플로우 차트(700)의 예를 묘사한 것이다. 플로우 차트(700)의 방법은, 한 실시 예로서, 캐스케이딩 인증 시스템(100)의 콤포넨트들, 예를 들어 목표 서버(106)의 인증 계획 관리자(110)에 의하여 수행될 수 있다. 플로우 차트(700)은 단계(702)로 시작한다. 이 단계에서 사용자를 위하여 목표 서버(106)에 대하여 인증하라는 요청을 사용자 컴퓨터 시스템(102)로부터 수신한다. 결정 블록(704)에서, 인증 계획 관리자(110)는 목표 서버(106)에 대하여 인증받기를 희망하는 특정 사용자가 확정된 인증 계획에 매치될 것을 요구하는 지를 결정할 수 있다. 만일 인증 계획이 요구되지 않는다면, 상기 방법은 단계(722)로 진행할 수 있다. 여기서, 사용자는 표준 방식으로(in a standard fashion)인증되고(즉, 그들의 인증 신용들(credentials)을 확인한다), 그 후 상기 방법은 종료된다. 만일 인증 계획이 요구된다면, 상기 방법은 단계(706)으로 진행한다.
단계(706)에서, 인증 계획 관리자(110)의 인증 모듈(308)은 사용자를 위해 저장된 인증 계획에 접근할 수 있다. 상기 인증 계획은 인증 계획 저장소(306)에 저장되어 있다. 단계(708)에서, 사용자 컴퓨터 시스템 인터페이스 모듈(304)은 인증 계획에 대한 요청을 인증 저장부 관리자(112)에 전송할 수 있다. 단계(710)에 서, 인증 계획 관리자(110)는 인증 저장부 관리자(112)로부터 인증 저장부(108)에 현재 인증 계획이 존재하는지에 관한 표시를 수신할 수 있다. 결정 블록(714)에서, 만일 현재 계획이 존재하지 않다면, 상기 방법은 단계(724)로 진행한다. 여기서, 인증 모듈(308)은 목표 서버(106)에 대한 접근을 거부하고 인증 저장부 관리자(112)와 매치하지 않는(mismatch) 모든 인증 계획을 해결하려고 시도한다. 예를 들어, 만일 그 시도가 목표 서버(106)에 대하여 인증을 받으려는 사용자의 첫번째(혹은 리세트 후) 시도라면, 목표 서버(106)에 대한 인증 계획을 개발하기 위하여 사용자와 작업하기 위해 인증 계획 작성 방법이 호출될 수 있다(invoked). 전술한 바와 같이, 다른 대안으로는, 인증을 받기 위하여 사용자에게 암호문(a passphrase)같은 추가의 인증 신용들을 제공하도록 요청할 수 있다.
결정 블록(714)에서, 만일 현재 인증 계획이 존재한다면, 단계(716)에서 인증 계획 관리자(110)는 인증 저장부 관리자(112)를 통하여 인증 저장부(108)로부터 저장된 인증 계획과 관련된 인증 기록들을 요청할 수 있다. 단계(718)에서, 인증 계획 관리자(110)는 현재 인증 계획을 수신할 수 있다(혹은 저장된 인증 계획에 매치시키는데 요구되는 현재 인증 계획의 인증 기록들의 서브세트를 수신할 수 있다).
결정 블록(720)에서, 인증 모듈(308)은 저장된 인증 계획을 수신된 현재 인증 계획과 비교하여 그들이 사용자에게 접근을 허용할 만큼 충분히 매치하는 지를 결정할 수 있다. 일부 실시 예들에서, 접근을 허용하기 위해서는 인증 모듈(308)이 저장된 인증 계획과 현재 인증 계획 사이에 정확한 매치(an exact match)를 요구할 수 있다. 다른 실시 예들에서, 인증 모듈(308)은 더 정교한 분석을 할 수 있다. 그러한 정교한 분석에는, 예를 들어, 현재 인증 계획들에서 인증 이벤트들의 타임스탬프들을 분석하는 것(그렇게 하여 시간적으로 너무 오래 전인 것들은 거절하는 것), 이전의 인증 이벤트들에 관한 인증 문제들을 분석하는 것(예를 들어, 인증 전에 너무 많은 시도들과 같은 의심스러운 패턴을 보여주는 것들은 거절하는 것), 혹은 기타 분석들이 포함될 수 있다.
결정 블록(720)에서, 만일 인증 모듈(308)이 매치가 존재한다고 결정하면, 상기 방법은 단계(722)로 진행하고, 여기서 사용자는(특정 인증 신용들을 요구하는 것과 같은) 표준 방식으로 인증되며, 그 후 상기 방법은 종료된다. 만일 매치가 존재하지 않으면, 플로우 차트(700)의 상기 방법은 단계(724)로 진행하고, 여기서, 전술한 바와 같이, 인증 계획 미스매치를 해결하고, 그 후 상기 방법은 종료된다. 따라서, 플로우 차트(700)의 상기 방법은 목표 서버(106)에 대한 사용자의 개선된 인증을 제공할 수 있는데, 그 방법은 사용자의 현재 인증들을 이전에 확립된 인증 계획과 비교하여 사용자를 표준 방식으로 인증하도록 허용하기 위한 충분한 매치를 요구함에 의하여 행한다.
본 발명이 사용자가 다른 서버들에 대하여 받은 이전의 인증들에 기초하여 새로운 서버에 대하여 사용자들을 인증하기 위한 방법들, 시스템들, 및 매체들에 관한 것이라는 것이 본 발명의 개시를 통해서 혜택을 누릴 당업자들에게 명백할 것이다. 또한 상세한 설명과 도면들에서 보여준 본 발명의 형태는 단지 예들로서 사용된 것이라는 것도 이해가 될 것이다. 아래에 첨부되는 청구항들은 본 명세서에서 개시된 실시 예들의 모든 가능한 변경들을 포함할 수 있도록 넓게 해석되도록 의도 되었다.

Claims (28)

  1. 목표 서버에 대한 사용자 인증 방법에 있어서,
    사용자를 상기 목표 서버에 대하여 인증하도록 사용자 컴퓨터 시스템으로부터 요청을 수신하는 단계 ;
    상기 사용자를 인증하는 것이 인증 계획에 매치시키는 것을 요구하는 지를 결정하는 단계 ;
    인증 계획에 매치시키는 것이 요구된다는 결정에 응답하여, 상기 사용자와 관련된 저장된 인증 계획을 접근하는 단계 - 여기서 상기 저장된 인증 계획은 하나 혹은 그 이상의 인증 기록들을 가지며, 각각의 인증 기록은 상기 목표 서버보다 인증의 이전 층에서(at a previous layer) 서버에 대한 사용자 접근과 관련된 예상 데이터(expected data)를 가짐 ;
    상기 사용자의 현재 인증 계획의 표시를 인증 저장부로부터 수신하는 단계 - 상기 현재 인증 계획은 하나 혹은 그 이상의 인증 기록들을 가지며, 각각의 인증 기록은 상기 목표 서버보다 인증의 이전 층에서(at a previous layer) 서버에 대한 사용자 접근과 관련된 현재 데이터(current data)를 가짐 ;
    상기 저장된 인증 계획이 상기 수신된 현재 인증 계획에 매치하는 지를 결정하기 위하여 그들을 비교하는 단계 ; 및
    상기 저장된 인증 계획과 상기 수신된 현재 인증 계획 사이에서 매치하는 것에 응답하여, 상기 사용자를 인증하는 단계를 포함하는
    목표 서버에 대한 사용자 인증 방법.
  2. 제 1항에서, 인증 계획에 매치시키는 것이 요구된다고 결정하는 것에 응답하여, 사용자 컴퓨터 시스템에 대한 현재 인증 계획을 위한 요청을 전송하는 단계를 더 포함하는
    목표 서버에 대한 사용자 인증 방법.
  3. 제 1항에서, 상기 저장된 인증 계획과 상기 현재의 인증 계획 사이의 미스매치(mismatch)에 응답하여, 상기 인증 계획 미스매치를 해결하는 단계를 더 포함하는 목표 서버에 대한 사용자 인증 방법.
  4. 제 3항에서, 상기 인증 계획 미스매치를 해결하는 단계는 추가의 인증 데이터를 요구하는 단계, 인증 계획을 수정하는 단계 및 인증 계획을 생성하는 단중적어도 하나를 포함하는
    목표 서버에 대한 사용자 인증 방법.
  5. 제 1항에서, 상기 저장된 인증 계획을 상기 현재 인증 계획과 비교하여 그들이 매치(match)하는지를 결정하는 단계는 각각의 인증 계획의 인증 기록들을 비교하여 인증 기록들의 적어도 하나의 규정된 서브세트(at least a specified subset)가 상기 인증 계획들 사이에서 매치하는 지를 결정하는 단계를 포함하는
    목표 서버에 대한 사용자 인증 방법.
  6. 제 1항에서, 상기 목표 서버에 대한 인증의 이전 층에서(at previous layer of authentication to the target server) 하나 혹은 그 이상의 서버들을 위한 인증 스텝을 수행하는 단계 ; 및
    각각 수행된 인증 스텝에 대한 인증 이벤트 기록을 인증 저장부에 저장하는 단계를 더 포함하는
    목표 서버에 대한 사용자 인증 방법,
  7. 제 1항에서, 상기 목표 서버에 대하여 인증을 시도하는 단계 - 상기 목표 서버는 사용자와 관련된 인증 계획을 요구함 ; 및
    상기 목표 서버에 대한 접근이 승인되었는지에 관한 표시를 수신하는 단계를 더 포함하는
    목표 서버에 대한 사용자 인증 방법.
  8. 제 1항에서, 현재 인증 계획을 상기 목표 서버에 전송하는 단계를 더 포함하되, 상기 현재 인증 계획은 상기 목표 서버에 대한 인증의 이전 층에서(at previous layer of authentication to the target server) 서버들을 위한 하나 혹은 그 이상의 수행된 인증 스텝들에 대한 저장된 인증 기록을 갖는
    목표 서버에 대한 사용자 인증 방법.
  9. 제 1항에서
    상기 목표 서버로부터 현재 인증 계획에 대한 요청을 수신하는 단계를 더 포함하는 목표 서버에 대한 사용자 인증 방법.
  10. 컴퓨터상에서 실행되도록 작성된 컴퓨터 프로그램으로서,
    사용자를 목표 서버에 대하여 인증하도록 사용자 컴퓨터 시스템으로부터 요청을 수신하는 단계 ;
    상기 사용자를 인증하는 것이 인증 계획에 매치시키는 것을 요구하는 지를 결정하는 단계 ;
    인증 계획에 매치시키는 것이 요구된다는 결정에 응답하여, 상기 사용자와 관련된 저장된 인증 계획을 접근하는 단계 - 여기서 상기 저장된 인증 계획은 하나 혹은 그 이상의 인증 기록들을 가지며, 각각의 인증 기록은 상기 목표 서버보다 인증의 이전 층에서(at a previous layer) 서버에 대한 사용자 접근과 관련된 예상 데이터(expected data)를 가짐 ;
    상기 사용자의 현재 인증 계획의 표시를 인증 저장부로부터 수신하는 단계 - 상기 현재 인증 계획은 하나 혹은 그 이상의 인증 기록들을 가지며, 각각의 인증 기록은 상기 목표 서버보다 인증의 이전 층에서(at a previous layer) 서버에 대한 사용자 접근과 관련된 현재 데이터(current data)를 가짐 ;
    상기 저장된 인증 계획이 상기 수신된 현재 인증 계획과 매치하는 지를 결정 하기 위하여 그들을 비교하는 단계 ; 및
    상기 저장된 인증 계획과 상기 수신된 현재 인증 계획 사이에서 매치하는 것에 응답하여, 상기 사용자를 인증하는 단계를 수행하도록 작성된 프로그램 코드 수단을 포함하는 컴퓨터 프로그램.
  11. 제 10항에서, 인증 계획에 매치시키는 것이 요구된다는 결정에 응답하여, 사용자 컴퓨터 시스템에 대한 현재 인증 계획을 위한 요청을 전송하는 단계를 더 포함하는 컴퓨터 프로그램.
  12. 제 10항에서, 상기 저장된 인증 계획과 상기 현재의 인증 계획 사이의 미스매치(mismatch)에 응답하여, 상기 인증 계획 미스매치를 해결하는 단계를 더 포함하는 컴퓨터 프로그램.
  13. 제 12항에서, 상기 인증 계획 미스매치를 해결하는 단계는 : 추가의 인증 데이터를 요구하는 단계, 인증 계획을 수정하는 단계 및 인증 계획을 생성하는 단계 중 적어도 하나를 포함하는 컴퓨터 프로그램.
  14. 제 10항에서, 상기 저장된 인증 계획을 상기 현재 인증 계획과 비교하여 그들이 매치하는지(match)를 결정하는 단계는 각각의 인증 계획의 인증 기록들을 비교하여 인증 기록들의 적어도 하나의 규정된 서브세트(at least a specified subset)가 상기 인증 계획들 사이에서 매치하는 지를 결정하는 단계를 포함하는 컴퓨터 프로그램.
  15. 제 10항에서, 상기 목표 서버에 대한 인증의 이전 층에서(at previous layer of authentication to the target server) 하나 혹은 그 이상의 서버들을 위한 인증 스텝을 수행하는 단계 ; 및
    각각 수행된 인증 스텝에 대한 인증 이벤트 기록을 인증 저장부에 저장하는 단계를 더 포함하는 컴퓨터 프로그램.
  16. 제 10항에서, 상기 목표 서버에 대하여 인증을 시도하는 단계 - 상기 목표 서버는 사용자와 관련된 인증 계획을 요구함 ; 및
    상기 목표 서버에 대한 접근이 승인되었는 지에 관한 표시를 수신하는 단계를 더 포함하는 컴퓨터 프로그램.
  17. 제 10항에서, 현재 인증 계획을 상기 목표 서버에 전송하는 단계를 더 포함하되, 상기 현재 인증 계획은 상기 목표 서버에 대한 인증의 이전 층에서(at previous layer of authentication to the target server) 서버들을 위한 하나 혹은 그 이상의 수행된 인증 스텝들에 대한 저장된 인증 기록을 갖는 컴퓨터 프로그램.
  18. 제 10항에서
    상기 목표 서버로부터 현재 인증 계획에 대한 요청을 수신하는 단계를 더 포함하는 컴퓨터 프로그램.
  19. 목표 서버에 대하여 사용자를 인증하는 장치에 있어서,
    사용자를 상기 목표 서버에 대하여 인증하도록 사용자 컴퓨터 시스템으로부터 요청을 수신하는 수단 ;
    상기 사용자를 인증하는 것이 인증 계획에 매치시키는 것을 요구하는 지를 결정하는 수단;
    인증 계획에 매치시키는 것이 요구된다는 결정에 응답하여, 상기 사용자와 관련된 저장된 인증 계획을 접근하는 수단 - 여기서 상기 저장된 인증 계획은 하나 혹은 그 이상의 인증 기록들을 가지며, 각각의 인증 기록은 상기 목표 서버보다 인증의 이전 층에서(at a previous layer) 서버에 대한 사용자 접근과 관련된 예상 데이터(expected data)를 가짐 ;
    상기 사용자의 현재 인증 계획의 표시를 인증 저장부로부터 수신하는 수단 - 상기 현재 인증 계획은 하나 혹은 그 이상의 인증 기록들을 가지며, 각각의 인증 기록은 상기 목표 서버보다 인증의 이전 층에서(at a previous layer) 서버에 대한 사용자 접근과 관련된 현재 데이터(current data)를 가짐 ;
    상기 저장된 인증 계획이 상기 수신된 현재 인증 계획과 매치하는 지를 결정하기 위하여 그들을 비교하는 수단 ; 및
    상기 저장된 인증 계획과 상기 수신된 현재 인증 계획 사이에서 매치하는 것에 응답하여, 상기 사용자를 인증하는 수단을 포함하는
    목표 서버에 대한 사용자 인증 장치.
  20. 제 19항에서, 인증 계획에 매치시키는 것이 요구된다고 결정하는 것에 응답하여, 사용자 컴퓨터 시스템에 대한 현재 인증 계획을 위한 요청을 전송하는 수단을 더 포함하는 목표 서버에 대한 사용자 인증 장치.
  21. 제 19항에서, 상기 저장된 인증 계획과 상기 현재의 인증 계획 사이의 미스매치(mismatch)에 응답하여, 상기 인증 계획 미스매치를 해결하는 수단을 더 포함하는 목표 서버에 대한 사용자 인증 장치.
  22. 제 21항에서, 상기 인증 계획 미스매치를 해결하는 수단은 추가의 인증 데이터를 요구하는 수단, 인증 계획을 수정하는 수단 및 인증 계획을 생성하는 수단 중 적어도 하나를 더 포함하는 목표 서버에 대한 사용자 인증 장치.
  23. 제 19항에서, 상기 저장된 계획을 상기 현재 인증 계획과 비교하여 그들이 매치하는지(match)를 결정하는 수단은 각각의 인증 계획의 인증 기록들을 비교하여 인증 기록들의 적어도 하나의 규정된 서브세트(at least a specified subset)가 상기 인증 계획들 사이에서 매치하는 지를 결정하는 수단을 포함하는
    목표 서버에 대한 사용자 인증 장치.
  24. 제 19항에서, 상기 목표 서버에 대한 인증의 이전 층에서(at previous layer of authentication to the target server) 하나 혹은 그 이상의 서버들을 위한 인증 스텝을 수행하는 수단 ; 및
    각각 수행된 인증 스텝에 대한 인증 이벤트 기록을 인증 저장부에 저장하는 수단을 더 포함하는
    목표 서버에 대한 사용자 인증 장치.
  25. 제 19항에서, 상기 목표 서버에 대하여 인증을 시도하는 수단 - 상기 목표 서버는 사용자와 관련된 인증 계획을 요구함 ; 및
    상기 목표 서버에 대한 접근이 승인 되었는지에 관한 표시를 수신하는 수단을 더 포함하는 목표 서버에 대한 사용자 인증 장치.
  26. 제 19항에서, 현재 인증 계획을 상기 목표 서버에 전송하는 수단을 더 포함하되, 상기 현재 인증 계획은 상기 목표 서버에 대한 인증의 이전 층에서(at previous layer of authentication to the target server) 서버들을 위한 하나 혹은 그 이상의 수행된 인증 스텝들에 대한 저장된 인증 기록을 갖는
    목표 서버에 대한 사용자 인증 장치.
  27. 제 19항에서
    상기 목표 서버로부터 현재 인증 계획에 대한 요청을 수신하는 수단을 더 포함하는 목표 서버에 대한 사용자 인증 장치.
  28. 목표 서버에 대한 사용자 인증 시스템에서,
    상기 목표서버에 대한 접근을 요청하는 사용자와 관련된 저장된 인증 계획을 접근하는 동작을 하는 인증 계획 관리자를 갖는 목표 서버 -- 여기서 상기 저장된 인증 계획은 하나 혹은 그 이상의 인증 기록들을 가지며, 각각의 인증 기록은 상기 목표 서버보다 인증의 이전 층에서(at a previous layer) 서버에 대한 사용자 접근과 관련된 예상 데이터(expected data)를 가짐 ;
    상기 사용자와 관련된 현재 인증 계획을 저장하는 동작을 하는 인증 저장부 - 상기 현재 인증 계획은 하나 혹은 그 이상의 인증 기록들을 가지며, 각각의 인증 기록은 상기 목표 서버보다 인증의 이전 층에서(at a previous layer) 서버에 대한 사용자 접근과 관련된 현재 데이터(current data)를 가짐 ;
    상기 목표 서버 및 상기 인증 저장부와 통신을 하고 특정 사용자와 관련된 현재 인증 계획을 상기 목표 서버의 상기 인증 계획 관리자에 제공하는 동작을 하는 인증 저장부 관리자 ; 를 포함하되 상기 목표 서버의 상기 인증 계획 관리자는 상기 저장된 인증 계획과 상기 현재 인증 계획 사이의 비교에 기초하여 사용자를 인증할 것인지를 결정하는 동작을 하는
    목표 서버에 대한 사용자 인증 시스템.
KR1020097024518A 2007-04-27 2008-04-11 캐스케이딩 인증 시스템 KR101120810B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/741,516 US8726347B2 (en) 2007-04-27 2007-04-27 Authentication based on previous authentications
US11/741,516 2007-04-27
PCT/EP2008/054412 WO2008132036A1 (en) 2007-04-27 2008-04-11 Cascading authentication system

Publications (2)

Publication Number Publication Date
KR20100020947A true KR20100020947A (ko) 2010-02-23
KR101120810B1 KR101120810B1 (ko) 2012-03-22

Family

ID=39580104

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097024518A KR101120810B1 (ko) 2007-04-27 2008-04-11 캐스케이딩 인증 시스템

Country Status (8)

Country Link
US (3) US8726347B2 (ko)
EP (1) EP2150916B1 (ko)
JP (1) JP5260634B2 (ko)
KR (1) KR101120810B1 (ko)
CN (1) CN101669128B (ko)
CA (1) CA2673950C (ko)
IL (1) IL201728A (ko)
WO (1) WO2008132036A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8726347B2 (en) 2007-04-27 2014-05-13 International Business Machines Corporation Authentication based on previous authentications
US8327430B2 (en) 2007-06-19 2012-12-04 International Business Machines Corporation Firewall control via remote system information
US8272043B2 (en) * 2007-06-21 2012-09-18 International Business Machines Corporation Firewall control system
US8272041B2 (en) * 2007-06-21 2012-09-18 International Business Machines Corporation Firewall control via process interrogation
US9355282B2 (en) * 2010-03-24 2016-05-31 Red Hat, Inc. Using multiple display servers to protect data
US8839357B2 (en) * 2010-12-22 2014-09-16 Canon U.S.A., Inc. Method, system, and computer-readable storage medium for authenticating a computing device
US8817984B2 (en) 2011-02-03 2014-08-26 mSignia, Inc. Cryptographic security functions based on anticipated changes in dynamic minutiae
US11063920B2 (en) 2011-02-03 2021-07-13 mSignia, Inc. Cryptographic security functions based on anticipated changes in dynamic minutiae
US8689304B2 (en) 2011-04-27 2014-04-01 International Business Machines Corporation Multiple independent authentications for enhanced security
US9613052B2 (en) 2012-06-05 2017-04-04 International Business Machines Corporation Establishing trust within a cloud computing system
CN103107985B (zh) * 2012-12-04 2016-01-20 百度在线网络技术(北京)有限公司 一种云端认证方法、系统及装置
US10447677B1 (en) * 2014-03-14 2019-10-15 United Services Automobile Association (Usaa) Mobile application authentication infrastructure
US9332013B2 (en) * 2014-08-28 2016-05-03 Bank Of America Corporation Neural authentication system
US9705879B2 (en) * 2014-09-17 2017-07-11 Microsoft Technology Licensing, Llc Efficient and reliable attestation
US9723002B2 (en) 2016-01-04 2017-08-01 International Business Machines Corporation Protecting access to a hardware device through use of an aggregate identity instance
GB2567335B (en) * 2016-02-25 2019-12-04 Sas Inst Inc Cybersecurity system
US10425432B1 (en) * 2016-06-24 2019-09-24 EMC IP Holding Company LLC Methods and apparatus for detecting suspicious network activity
CN107820250B (zh) * 2017-11-13 2020-07-10 北京首信科技股份有限公司 认证方法和认证服务器
JP6748667B2 (ja) * 2018-03-20 2020-09-02 楽天銀行株式会社 Api提供システム、認証サーバ、api提供方法、及びプログラム
EP3891927A4 (en) * 2018-12-03 2021-11-24 Visa International Service Association TIME-BASED RISK MANAGEMENT MECHANISMS
CN109672602B (zh) * 2019-01-03 2021-06-04 青岛聚好联科技有限公司 一种远程接入vpn的方法和设备
CN116155631B (zh) * 2023-04-21 2023-07-28 四川中电启明星信息技术有限公司 一种企业级的正反向级联认证方法及系统

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516416B2 (en) 1997-06-11 2003-02-04 Prism Resources Subscription access system for use with an untrusted network
US6754820B1 (en) 2001-01-30 2004-06-22 Tecsec, Inc. Multiple level access system
US6161182A (en) * 1998-03-06 2000-12-12 Lucent Technologies Inc. Method and apparatus for restricting outbound access to remote equipment
JP3216602B2 (ja) 1998-06-08 2001-10-09 日本電気株式会社 ユーザ認証システム
US6219790B1 (en) 1998-06-19 2001-04-17 Lucent Technologies Inc. Centralized authentication, authorization and accounting server with support for multiple transport protocols and multiple client types
JP2000259567A (ja) 1999-03-09 2000-09-22 Toshiba Corp アクセス制御装置、アクセス制御方法および記憶媒体
US6651096B1 (en) * 1999-04-20 2003-11-18 Cisco Technology, Inc. Method and apparatus for organizing, storing and evaluating access control lists
US6584505B1 (en) 1999-07-08 2003-06-24 Microsoft Corporation Authenticating access to a network server without communicating login information through the network server
US6853988B1 (en) 1999-09-20 2005-02-08 Security First Corporation Cryptographic server with provisions for interoperability between cryptographic systems
US7082532B1 (en) 1999-12-30 2006-07-25 Intel Corporation Method and system for providing distributed web server authentication
WO2001056213A1 (en) 2000-01-26 2001-08-02 Citicorp Development Center, Inc. System and method for user authentication
US7162649B1 (en) 2000-06-30 2007-01-09 Internet Security Systems, Inc. Method and apparatus for network assessment and authentication
US7194764B2 (en) 2000-07-10 2007-03-20 Oracle International Corporation User authentication
US7085934B1 (en) 2000-07-27 2006-08-01 Mcafee, Inc. Method and system for limiting processor utilization by a virus scanner
WO2002037728A1 (en) 2000-11-03 2002-05-10 Fusionone, Inc. Updating security schemes for remote client access
JP2002183089A (ja) 2000-12-11 2002-06-28 Mitsubishi Electric Corp ログイン認証装置、およびログイン認証方法
US20020133719A1 (en) 2001-03-14 2002-09-19 Jay Westerdal Method and apparatus for sharing authentication information between multiple servers
US7546629B2 (en) 2002-03-06 2009-06-09 Check Point Software Technologies, Inc. System and methodology for security policy arbitration
US8200818B2 (en) 2001-07-06 2012-06-12 Check Point Software Technologies, Inc. System providing internet access management with router-based policy enforcement
US7054944B2 (en) * 2001-12-19 2006-05-30 Intel Corporation Access control management system utilizing network and application layer access control lists
FI20021802A (fi) 2002-10-09 2004-04-10 Tycho Technologies Oy Hajautetun palomuurin hallinta
US6850943B2 (en) 2002-10-18 2005-02-01 Check Point Software Technologies, Inc. Security system and methodology for providing indirect access control
US20040103317A1 (en) * 2002-11-22 2004-05-27 Burns William D. Method and apparatus for protecting secure credentials on an untrusted computer platform
US7526800B2 (en) 2003-02-28 2009-04-28 Novell, Inc. Administration of protection of data accessible by a mobile device
JP4303952B2 (ja) 2002-12-24 2009-07-29 株式会社コムスクエア 多重認証システム、コンピュータプログラムおよび多重認証方法
US7219154B2 (en) * 2002-12-31 2007-05-15 International Business Machines Corporation Method and system for consolidated sign-off in a heterogeneous federated environment
US7603472B2 (en) 2003-02-19 2009-10-13 Google Inc. Zero-minute virus and spam detection
US20040187029A1 (en) 2003-03-21 2004-09-23 Ting David M. T. System and method for data and request filtering
US9003048B2 (en) 2003-04-01 2015-04-07 Microsoft Technology Licensing, Llc Network zones
WO2004095266A2 (en) * 2003-04-24 2004-11-04 International Business Machines Corporation Executable file creation
US8214481B2 (en) 2004-02-10 2012-07-03 Seagate Technology Llc Firewall permitting access to network based on accessing party identity
US7526792B2 (en) 2004-06-09 2009-04-28 Intel Corporation Integration of policy compliance enforcement and device authentication
JP4920878B2 (ja) * 2004-07-14 2012-04-18 日本電気株式会社 認証システム、ネットワーク集線装置及びそれらに用いる認証方法並びにそのプログラム
JP2006035631A (ja) 2004-07-27 2006-02-09 Konica Minolta Business Technologies Inc 画像形成装置および画像形成システム
US7548903B2 (en) * 2005-01-11 2009-06-16 International Business Machines Corporation Method and apparatus for automatic recommendation and selection of clustering indexes
FI20050770A (fi) * 2005-07-19 2007-01-20 Ssh Comm Security Corp Todentaminen turvakäytännön yhteydessä
US8402093B2 (en) * 2005-12-22 2013-03-19 Microsoft Corporation Workflow and in-context e-mail recipient handling
US20070172808A1 (en) * 2006-01-26 2007-07-26 Let's Go Learn, Inc. Adaptive diagnostic assessment engine
EP2002214A1 (en) 2006-03-28 2008-12-17 Norgren GmbH Displacement sensor for a rod
US7895657B2 (en) * 2006-05-05 2011-02-22 Broadcom Corporation Switching network employing virus detection
GB2443229B (en) 2006-08-23 2009-10-14 Cramer Systems Ltd Capacity management for data networks
US8239325B2 (en) * 2007-01-18 2012-08-07 Paymentone Corporation Method and system to verify the identity of a user
US8726347B2 (en) 2007-04-27 2014-05-13 International Business Machines Corporation Authentication based on previous authentications
US8327430B2 (en) 2007-06-19 2012-12-04 International Business Machines Corporation Firewall control via remote system information
US8272041B2 (en) 2007-06-21 2012-09-18 International Business Machines Corporation Firewall control via process interrogation
US8272043B2 (en) 2007-06-21 2012-09-18 International Business Machines Corporation Firewall control system

Also Published As

Publication number Publication date
CA2673950C (en) 2015-03-31
US20080271117A1 (en) 2008-10-30
CN101669128B (zh) 2012-06-20
IL201728A (en) 2016-11-30
US20150244701A1 (en) 2015-08-27
US20140068730A1 (en) 2014-03-06
KR101120810B1 (ko) 2012-03-22
US9686262B2 (en) 2017-06-20
US9094393B2 (en) 2015-07-28
JP2010525471A (ja) 2010-07-22
EP2150916B1 (en) 2015-10-28
EP2150916A1 (en) 2010-02-10
US8726347B2 (en) 2014-05-13
WO2008132036A1 (en) 2008-11-06
JP5260634B2 (ja) 2013-08-14
IL201728A0 (en) 2010-06-16
CN101669128A (zh) 2010-03-10
CA2673950A1 (en) 2008-11-06

Similar Documents

Publication Publication Date Title
KR101120810B1 (ko) 캐스케이딩 인증 시스템
US11711222B1 (en) Systems and methods for providing authentication to a plurality of devices
KR100920871B1 (ko) 네트워크 위치의 하위 위치에 대한 사용자의 인증을 위한방법 및 시스템
US8997196B2 (en) Flexible end-point compliance and strong authentication for distributed hybrid enterprises
KR100986568B1 (ko) 제1 사용자가 로컬 컴퓨팅 자원과 연관된 고유의 사용자 계정을 가질 필요 없이 제1 사용자에게 로컬 컴퓨팅 자원으로의 제어되는 액세스를 제공하기 위한 방법, 시스템 및 이 방법을 수행하는 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체
US8527754B2 (en) Authorizing information flows based on a sensitivity of an information object
US7647630B2 (en) Associating security information with information objects in a data processing system
US7793100B2 (en) Reference monitor for enforcing information flow policies
JP2006085697A (ja) 信頼できるネットワークノードへのアクセス特権を制御するための方法とシステム
US8272043B2 (en) Firewall control system
JP7403010B2 (ja) 共有化されたリソース識別
Basu et al. Strengthening Authentication within OpenStack Cloud Computing System through Federation with ADDS System
Del Vecchio et al. Evaluating Grid portal security
US11818119B1 (en) Dynamic and monitored access to secure resources
US11909731B1 (en) Dynamic and least-privilege access to secure network resources using ephemeral credentials
Gkotsis Creating a Windows Active Directory Lab and Performing Simulated Attacks
Sassetti et al. İD 9
KR101066729B1 (ko) 네트워크 위치의 하위 위치에 대한 사용자의 인증을 위한 방법 및 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee