KR20090012244A - 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법, 애플리케이션 프로그래밍 인터페이스, 및 클라이언트컴퓨팅 장치 - Google Patents

클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법, 애플리케이션 프로그래밍 인터페이스, 및 클라이언트컴퓨팅 장치 Download PDF

Info

Publication number
KR20090012244A
KR20090012244A KR1020087028345A KR20087028345A KR20090012244A KR 20090012244 A KR20090012244 A KR 20090012244A KR 1020087028345 A KR1020087028345 A KR 1020087028345A KR 20087028345 A KR20087028345 A KR 20087028345A KR 20090012244 A KR20090012244 A KR 20090012244A
Authority
KR
South Korea
Prior art keywords
server
client
credentials
user
policy
Prior art date
Application number
KR1020087028345A
Other languages
English (en)
Other versions
KR101414312B1 (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 KR20090012244A publication Critical patent/KR20090012244A/ko
Application granted granted Critical
Publication of KR101414312B1 publication Critical patent/KR101414312B1/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
    • 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
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

자격 증명 보안 지원 제공자(Cred SSP; credential security support provider)는 임의의 애플리케이션이 클라이언트 측 보안 지원 제공자(SSP; Security Support Provider) 소프트웨어를 통하여 클라이언트로부터 사용자의 자격 증명들을 서버 측 SSP를 통하여 대상 서버로 안전하게 위임하는 것을 가능하게 한다. Cred SSP는 정책들의 세트에 부분적으로 기초하는 안전한 해법을 제공한다. 그 정책들은 임의의 유형의 사용자 자격 증명들에 대한 것일 수 있고 주어진 위임 상황, 네트워크 조건, 신뢰 수준 등에 대하여 적절한 위임이 발생할 수 있도록 광범위한 공격들을 완화하도록 상이한 정책들이 설계된다. 또한, 신뢰되는 서브시스템, 예를 들면, LSA(Local Security Authority)의 신뢰되는 서브시스템만이 명백한 텍스트 자격 증명들에 액세스할 수 있고, 따라서 서버 측의 Cred SSP API들의 호출 애플리케이션과 상기 클라이언트 측의 Cred SS API들의 호출 애플리케이션의 어느 쪽도 명백한 텍스트 자격 증명들에 액세스할 수 없다.
네트워크 보안, 자격 증명(credential), Cred SSP(credential security support provider), 정책

Description

클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법, 애플리케이션 프로그래밍 인터페이스, 및 클라이언트 컴퓨팅 장치{POLICY DRIVEN, CREDNTIAL DELEGAT10N FOR SINGLE SIGN ON AND SECURE ACCESS TO NETWORK RESOURCES}
본 발명은 네트워크화된 컴퓨팅 환경에서 애플리케이션, 리소스 및/또는 서비스에 대한 싱글 사인 온(single sign on) 및 안전한 액세스를 위한 정책 구동의 자격 증명 위임에 관한 것이다.
때때로, 클라이언트를 통하여 액세스되는 서버 애플리케이션은 그 서버 애플리케이션에 의해 가능하게 되는 시나리오들을 지원하기 위하여 클라이언트의 사용자의 자격 증명들(credentials)이 서버에 위임될 것을 요구한다. 그러한 위임 상황에서는, 사용자가 단순히 서버 애플리케이션의 로컬 사용자로서 로그인할 때 이용 가능한 기능을 서버 애플리케이션이 에뮬레이트하기 위하여 서버 측에서 원격 터미널의 사용자의 패스워드가 요구된다.
그러나, 서버 애플리케이션의 능력들에의 액세스를 위해 클라이언트로부터 서버 애플리케이션으로 자격 증명들을 위임하는 현재의 시스템들은 충분히 안전하지 않은데, 즉 클라이언트로부터 서버로 사용자의 자격 증명들을 위임/전송하는 경우에 불충분한 보호가 존재하여, 그 사용자의 자격 증명들이 특정 공격 형태들에 대해 취약한 상태로 방치된다. 현재는, 예를 들면, 서버 또는 클라이언트 측의 호출 애플리케이션은 때때로 사용자의 명백한 텍스트 자격 증명들에 액세스할 수 있고, 따라서 사용자의 자격 증명들은 다소 불안전하다. 또한, 임의의 유형의 사용자 자격 증명들, 즉, 사용자 이름/패스워드, 스마트카드 핀, 일회용 패스코드(OTP; one time passcode) 등에 적용되는, 클라이언트로부터 서버로의 사용자 자격 증명들의 위임을 제어하고 제한하기 위한 정책 구동의 방법(policy-driven method)이 현재는 전무하다.
본 발명에 관하여 아래에서 더 상세히 설명되는 바와 같이, 현재의 기술 수준에서의 이들 및 그 밖의 결함들을 개선하는 것이 바람직할 것이다.
<발명의 요약>
전술한 내용에 비추어, 본 발명은 네트워크화된 컴퓨팅 환경에서 임의의 애플리케이션이 클라이언트 측 보안 지원 제공자(SSP; Security Support Provider) 소프트웨어를 통하여 클라이언트로부터 사용자의 자격 증명들을 서버 측 SSP를 통하여 대상(target) 서버로 안전하게 위임하는 것을 가능하게 하는 자격 증명 보안 지원 제공자(Cred SSP; credential security support provider)를 제공한다. 일 실시예에서, 상기 Cred SSP는 상기 클라이언트의 운영 체제의 일부로서 포함될 수 있는 보안 지원 제공자 인터페이스(SSPI; Security Provider Provider Interface)를 통하여 사용자가 이용할 수 있게 된다. 본 발명의 상기 Cred SSP는 클라이언트로부터 서버로의 사용자의 자격 증명들의 위임을 제어하고 제한하는 데 이용되는, 광범위한 공격들에 대하여 안전한 디폴트 정책(default policy)을 포함하는, 정책 들의 세트에 부분적으로 기초하는 안전한 해법을 제공한다. 그 정책들은 임의의 유형의 사용자 자격 증명들에 대한 것일 수 있고 주어진 위임 상황, 네트워크 조건, 신뢰 수준 등에 대하여 적절한 위임이 발생할 수 있도록 광범위한 공격들을 완화하도록 상이한 정책들이 설계된다. 또한, 신뢰되는 서브시스템, 예를 들면, LSA(Local Security Authority)의 신뢰되는 서브시스템만이 명백한 텍스트 자격 증명들에 액세스할 수 있고, 따라서 서버 측의 Cred SSP를 이용하는 SSPI API들의 호출 애플리케이션과 상기 클라이언트 측의 Cred SSP를 이용하는 SSPI API들의 호출 애플리케이션의 어느 쪽도 명백한 텍스트 자격 증명들에 액세스할 수 없다.
본 발명의 다른 특징들은 아래에서 설명된다.
네트워크화된 컴퓨팅 환경에서 리소스에 대한 싱글 사인 온 및 안전한 액세스를 위한 정책 구동의 자격 증명 위임에 대하여 첨부 도면들을 참조하여 더 설명한다.
도 1은 클라이언트로부터 서버로의 자격 증명들의 안전한 위임을 가능하게 하는 본 발명의 자격 증명 보안 지원 제공자 아키텍처의 블록도 개관이다.
도 2A 및 2B는 터미널 서버에 자격 증명들을 위임하기 위한 자격 증명 보안 지원 제공자 아키텍처의 예시적이고 비제한적인 구현을 도시한다.
도 3은 본 발명의 자격 증명 보안 지원 제공자 아키텍처에 의해 이용되는 예시적이고 비제한적인 프로토콜의 흐름도이다.
도 4는 본 발명의 자격 증명 보안 지원 제공자 아키텍처에 의해 이용되는 프 로토콜의 예시적이고 비제한적인 구현의 흐름도이다.
도 5는 본 발명에 따라서 그룹 정책에 기초하여 클라이언트로부터 서버로의 자격 증명들의 안전한 위임을 가능하게 하는 자격 증명 보안 지원 제공자 아키텍처의 블록도 개관이다.
도 6은 본 발명에 따라서 공격의 위협에 따른 정책 수준에서 고려될 수 있는 3가지 상이한 유형의 자격 증명들의 블록도 개관이다.
도 7A는 본 발명이 구현될 수 있는 예시적인 네트워크 환경을 나타내는 블록도이다.
도 7B는 본 발명이 구현될 수 있는 예시적이고 비제한적인 컴퓨팅 시스템 환경을 나타내는 블록도이다.
개관
상기 배경기술에서 전술한 바와 같이, 서버 시나리오들을 지원하기 위하여 사용자의 자격 증명들이 서버에 위임될 것을 요구하는 몇몇 클라이언트/서버 애플리케이션들이 있다. 터미널 서버(Terminal Server)는, 때때로 클라이언트 측에서 그의 기능을 에뮬레이트하기 위하여 서버 측에서 사용자의 패스워드가 사용되는, 하나의 그러한 예이다. 그러나, 전술한 바와 같이, 종래 기술의 위임 기법들은 사용자의 자격 증명들이 서버에 송신될 때 사용자의 자격 증명들에 대한 충분한 보호를 제공하지 않는다.
본 발명의 Cred SSP는, 때때로 "보안 서비스 제공자(security service provider)"라고도 불리는, 새로운 "보안 지원 제공자(security support provider)"로, 그것은 클라이언트의 운영 체제의 현존하는 서비스 지원 제공자 인터페이스(SSPI) 인프라를 통하여 이용 가능하게 될 수 있다. 본 발명의 Cred SSP는 애플리케이션이 예를 들면 클라이언트 측 SSP 소프트웨어를 통하여 클라이언트로부터 사용자의 자격 증명들을 예를 들면 서버 측 SSP 소프트웨어를 통하여 대상 서버로 위임하는 것을 가능하게 한다. 예시적이고 비제한적인 실시예에서, 본 발명의 Cred SSP는 터미널 서버에 포함될 수 있다. 그러나, 본 발명의 Cred SSP는 다른 애플리케이션들에 의해 이용될 수도 있고, 적용 가능한 운영 체제를 이용하여 임의의 내부 또는 제3자 애플리케이션이 이용 가능하게 될 수도 있다.
Cred SSP 해법은 클라이언트로부터 서버로의 사용자 자격 증명들의 위임을 제어하고 제한하는 데 이용될 수 있는 정책들의 세트를 제공하는 보다 안전한 해법이다. 정책들은 클라이언트의 머신 상에서 실행하는 악성 소프트웨어(malware)를 포함한, 광범위한 공격들을 취급하도록 설계된다. 본 발명의 Cred SSP는, 클라이언트 머신이, 디폴트로, 광범위한 공격들을 완화할 수 있게 하는 정책 설정을 통한 특별한 구성인, "시큐어 바이 디폴트(secure by default)" 정책을 포함한다. 본 발명의 정책들의 세트는 사용자 이름/패스워드, 스마트 핀, 일회용 패스코드(OTP) 등을 포함하지만, 이들에 제한되지 않는, 임의의 유형의 사용자 자격 증명들을 보호하는 데 적용 가능하다. 본 발명의 Cred SSP는, 신뢰되는 서브시스템만이 명백한 텍스트 자격 증명들에 액세스할 수 있기 때문에, 서버 또는 클라이언트 측의 (Cred SSP API의) 호출 애플리케이션은 명백한 텍스트 자격 증명들에 액세스할 수 없도록 사용자의 자격 증명들을 보호한다.
예를 들면, 마이크로소프트의 터미널 서버(TS)는 애플리케이션들의 서빙 및 마이크로소프트의 윈도즈 운영 체제 제품들의 "데스크톱" 경험을 터미널/클라이언트에게 허가(authorize)하기 위하여 때때로 사용자들에게 그 터미널/클라이언트에서 사인 온 자격 증명들(sign on credentials)을 제공하고 그 사인 온 자격 증명들을 서버에 위임할 것을 요구하는 서버/클라이언트 제품의 일례이다. TS는 일반적으로 3개의 주요 부분, 즉, 멀티유저 코어 서버(multi-user core server), 윈도즈 데스크톱 인터페이스가 서버에 의해 터미널들에 송신될 수 있게 하는 원격 데스크톱 프로토콜(RDP; Remote Desktop Protocol), 및 각 터미널에서 실행하는 클라이언트 소프트웨어를 포함하는 것으로 간주된다. 본 발명의 비제한적인 일 실시예에서, 본 발명의 자격 증명 보안 지원 제공자의 프로토콜들은 터미널 서버 소프트웨어와 관련하여 구현될 수 있다.
보충 컨텍스트
다양한 실시예들 중 일부는 여기에서 인증 및 자격 증명 위임 기술 분야의 통상의 기술을 가진 자에 의해 일반적으로 이해되는 용어들을 참조하여 설명된다. 이 섹션은 해당 기술 분야의 통상의 기술을 가진 자의 지식을 대신하도록 의도된 것이 아니고 비포괄적인 개관으로 간주되어야 하겠지만, 그럼에도 불구하고, 이 섹션은 아래에서 더 상세히 설명되는 본 발명의 다양한 실시예들의 동작의 컨텍스트에서 이용되는, 특정 용어들에 데한 어떤 추가의 컨텍스트 및 배경을 유리하게 제공한다고 생각된다.
따라서 해당 기술 분야의 통상의 기술을 가진 자가 일반적으로 알고 있는 다음의 용어들, 즉 커베로스(Kerberos), 윈도즈 NT LAN(Local Area Network) 관리자(NTLM), 단순 보호(Simple and Protected) GSSAPI(Generic Security Service Application Program Interface) 교섭 메커니즘(Negotiation Mechanism)(간략하게 SPNEGO), LSA(Local Security Authority), SSPI(Security Support Provider Interface) 및 SSL(Security Sockets Layer) 프로토콜 및 예시적인 윈도즈 인증 인프라(Windows Authentication Infrastructure)에 대한 추가의 컨텍스트 및 배경이 제공된다.
커베로스(Kerberos)
커베로스는 컴퓨터 네트워크에서 서비스에 대한 요청을 인증하기 위한 안전한 방법이다. 하데스(Hades)의 입구를 지키는 신화의 머리 3개 달린 개로부터 그 이름을 차용한, 커베로스는 서버로부터 특정 서비스를 요청하는 데 이용될 수 있는 암호화된 "티켓(ticket)"을 사용자가 인증 프로세스로부터 요청하게 하고, 따라서 사용자의 암호가 네트워크를 통과할 필요가 없도록 한다. 커베로스는 사용자에 의한 클라이언트에서의 로그인 요청을 포함한 서버에의 액세스를 허용하는 클라이언트 및 서버 측 소프트웨어를 포함한다. 그러나, 서버는 그의 애플리케이션, 리소스 및/또는 서비스에의 액세스에 대한 요청을 승낙하기 전에 커베로스 "티켓"을 요구한다. 적당한 커베로스 티켓을 얻기 위하여, 클라이언트에 의해 인증 서버(AS; Authentication Server)에 인증 요청이 행해진다. AS는, 사용자 이름으로부터 획득된 사용자의 패스워드에 기초하는, 역시 암호화 키인, "세션 키(session key)", 및 요청된 서비스를 나타내는 임의 값(random value)을 생성한다. 이러한 점에서, 세션 키는 효과적으로 "티켓-승인 티켓(ticket-granting ticket)"이다.
다음으로, 획득된 티켓-승인 티켓은 티켓-승인 서버(TGS; ticket-granting server)에 전송된다. TGS는 물리적으로는 AS와 동일한 서버일 수 있지만, 기능적으로는 상이한 서비스를 수행한다. TGS는 요청된 서비스에 대하여 서버에 송신될 수 있는 티켓을 반환한다. 서비스는 티켓이 무효하다면 티켓을 거절하거나, 또는 티켓을 유효 티켓으로서 인정하여 서비스를 수행한다. TGS로부터 수신된 티켓은 타임-스탬프(time-stamp)되기 때문에, 그 티켓은 사용자가 서버의 서비스를 사용하는 것을 재인증할 필요 없이 특정 시간 기간 내에서는 동일한 티켓을 이용한 추가의 요청을 허용한다. 한편, 티켓을 제한된 시간 기간 동안 유효하게 함으로써 허가된 사용자 이외의 누군가가 그 티켓을 재사용할 수 있게 될 가능성이 더 작아진다. 해당 기술 분야의 통상의 기술을 가진 자라면 인터페이스, 프로토콜, 페이로드(payload) 및 드라이버 수준에서의 커베로스 인증 프로세스의 상세는 훨씬 더 복잡할 수 있고 또한 사용자 프로시저는 구현에 따라 다소 변할 수 있다는 것을 알 수 있다.
윈도즈 NT LAN 관리자(NTLM)
커베로스의 대안으로, NTLM은 다양한 마이크로소프트 네트워크 프로토콜 구현에서 이용되고 NTLM 보안 지원 제공자(NTLMSSP)에 의해 지원되는 인증 프로토콜이다. 원래는 안전한 분산 컴퓨팅 환경(DCE; Distributed Computing Environment)/원격 프로시저 호출(RPC; Remote Procedure Call) 통신의 인증 및 교섭을 위해 사용된, NTLM은 통합 싱글 사인-온 메커니즘(integrated single sign-on mechanism)으로서도 이용된다.
NTLM은 인증을 위해 도전-응답(challenge-response) 메커니즘을 채용하고, 여기서 클라이언트들은 서버에 패스워드를 송신하지 않고 그들의 ID(identity)를 증명할 수 있다. 도전-응답 메커니즘은, 일반적으로 타입 1(교섭), 타입 2(도전) 및 타입 3(인증)이라고 불리는, 3개의 메시지를 포함한다. 고수준에서, NTLM에 의하여, 우선, 클라이언트가 클라이언트에 의해 지원되고 서버에 요청되는 특징들의 목록을 포함하는 타입 1 메시지를 서버에 송신한다. 서버는 서버에 의해 생성된 도전 및 서버에 의해 지원되고 동의되는 특징들의 목록을 포함하는 타입 2 메시지로 클라이언트에 응답한다. 클라이언트는 타입 2 도전에 대한 하나 이상의 응답 및 클라이언트 사용자의 도메인 및 사용자 이름을 포함하는 클라이언트에 관한 몇개의 정보를 갖는 타입 3 메시지로 도전에 응답한다. 타입 3 메시지 내의 응답(들)은 클라이언트 사용자가 계정 패스워드를 알고 있음을 서버에게 증명하기 때문에 중요한 것이다.
안전한 채널(Schannel)
Schannel이라고도 알려진 안전한 채널(Secure Channel)은, 암호화를 통하여 ID 인증 및 강화된 통신 보안을 제공하는 보안 프로토콜들의 세트를 포함하는 보안 지원/서비스 제공자(SSP)이다. Schannel은 주로 하이퍼텍스트 전송 프로토콜(HTTP) 통신을 위해 강화된 보안을 요구하는 인터넷 애플리케이션들을 위해 이용된다. Schannel 보안 프로토콜에 의해 서버 인증이 요구되고, 서버 인증에서는 서버가 그의 ID의 증명을 클라이언트에 제공한다. 따라서, Schannel 프로토콜들은 서버를 인증하고, 옵션으로, 클라이언트를 인증하는 데 이용될 수 있는 Schannel 자격 증명들을 이용한다. 클라이언트 인증은 서버에 의해 언제라도 요청될 수 있다. Schannel 자격 증명들은 X.509 인증서들이다. 인증서들로부터의 공개 및 개인 키 정보는 서버를 인증하고, 옵션으로, 클라이언트를 인증하는 데 이용된다. 이 키들은 또한 클라이언트와 서버가 세션 키들을 생성 및 교환하는 데 필요한 정보를 교환하는 동안에 메시지 무결성(message integrity)을 제공하는 데 이용된다. Schannel은 아래에서 더 상세히 언급되는 SSL 및 TLS 프로토콜들을 구현한다.
SPNEGO(Simple and Protected GSSAPI Negotiation Mechanism)
SPNEGO는 피어들이 어느 GSSAPI(Generic Security Service Application Program Interface) 메커니즘들이 공유되는지를 결정하고, 하나를 선택한 다음 그 공유되는 GSSAPI 메커니즘과의 보안 컨텍스트를 확립하기 위한 표준 GSSAPI 의사-메커니즘이다. SPNEGO에 대한 사양은 1998년 12월, "GSS-API Negotiation Mechanism"이라는 명칭의, 인터넷 엔지니어링 태스크 포스(Internet Engineering Task Force)의 드래프트 RFC 2478에서 확인될 수 있다.
SPNEGO의 사용은, 예를 들면, "HTTP Negotiate" 확장명(extension)에서 발견될 수 있고, 이 확장명은 브라우징 소프트웨어인 인터넷 익스플로러(Internet Explorer)에서 처음 구현되었고 윈도즈 통합 인증(Windows Integrated Authentication)으로 알려진 싱글 사인-온(single sign-on) 능력을 제공한 인증 확장명이다. SPNEGO의 교섭 가능한 서브메커니즘들은 NTLM 및 커베로스를 포함하고, 이것들은 둘 다 액티브 디렉터리(Active Directory)를 이용한다.
GSSAPI는 상이한 보안 메커니즘들의 위에 계층화될 수 있는 일반(generic) 인터페이스를 제공함으로써, 통신하는 피어들이 동일한 보안 메커니즘에 대한 GSSAPI 자격 증명들을 취득하는 경우에, 그들 사이에 보안 컨텍스트가 확립될 수 있도록 한다. 그러나, GSSAPI는 GSSAPI 피어들이 그들이 공통의 보안 메커니즘을 갖고 있는지를 확증할 수 있는 방법을 규정하지는 않는다.
SPNEGO는 GSSAPI 피어들이 그들의 자격 증명들이 공통의 GSSAPI 보안 메커니즘(들)을 공유하는지를 대역 내에서(in-band) 판정하고, 만일 그렇다면, 선택된 공통의 보안 메커니즘에 대한 통상의 보안 컨텍스트 확립을 야기할 수 있게 하여, 상이한 보안 메커니즘들, 주어진 보안 메커니즘 내의 상이한 옵션들, 또는 몇몇 보안 메커니즘들로부터의 상이한 옵션들의 교섭을 허용한다. 이것은 복수의 보안 메커니즘들을 지원하는 GSSAPI 구현들에 기초하는 애플리케이션들에 있어서 매우 유익하다. 일단 공통의 보안 메커니즘이 식별되면, 그 보안 메커니즘은 또한 그의 컨텍스트 확립 동안에 메커니즘 특정의 옵션들을 교섭할 수 있다.
SPNEGO에 의하면, 교섭 데이터는 컨텍스트-수준 토큰들 내에 캡슐화(encapsulate)된다. 따라서, GSSAPI의 호출자들은 교섭 토큰들의 존재를 알 필요가 없고, 단지 의사-보안 메커니즘만을 알면 된다.
SPNEGO의 교섭 모델은 다음과 같이 작용한다. 발의자(initiator)는 하나의 보안 메커니즘 또는 보안 메커니즘들의 정리된 목록을 제안하고, 대상(target)은 제안된 보안 메커니즘을 수락하거나, 제안된 세트로부터 하나를 선택하거나, 또는 제안된 값(들)을 거부한다. 그 후 대상은 발의자에게 그의 선택을 통지한다.
그의 기본 형태에서, 이 프로토콜은 추가 라운드 트립(extra-round trip)을 요구한다. 네트워크 연결 설정은 임의의 네트워크 인프라의 중요한 성능 특징이고, WAN 연결(link), 패킷 무선 네트워크 등을 통한 추가 라운드 트립들은 실제로 차이를 낼 수 있다. 그러한 추가 라운드 트립을 피하기 위하여, 발의자에 대한 선호 메커니즘의 초기 보안 토큰은 초기 토큰 내에 삽입될 수 있다. 대상 선호 메커니즘이 발의자의 선호 메커니즘과 일치하는 경우에는, 교섭 프로토콜을 이용함으로써 추가의 라운드 트립이 초래되지 않는다.
SPNEGO는 또한 대상에 의해 선택된 기반(underlying) 메커니즘이 무결성 보호의 능력이 있는 경우에 교섭을 보호하는 기법을 제공한다. 발의자에 의해 제안된 모든 메커니즘들이 무결성 보호를 지원하는 경우 또는 선택된 메커니즘이 무결성 보호를 지원하는 경우에는, 양쪽 피어들에 의해 지원되는 적절한 메커니즘이 선택되었음을 보장하기 때문에, 교섭 메커니즘은 보호된다.
LSA(Local Security Authority)
일반화된 개념이면서도, LSA는 로컬 및 원격 로그온 양쪽 모두에 대하여 사용자들의 유효성을 검사하는 책임이 있는 마이크로소프트의 윈도즈 운영 체제 기술들을 위한 로그온 프로세스의 중요한 구성 요소이다. LSA는 또한 로컬 보안 정책을 유지한다.
머신에 대해 로컬, 상호작용, 로그온 중에, 사람은 그의 이름과 패스워드를 로그온 다이얼로그에 입력한다. 이 정보는 LSA에 전달되고, 그 후 LSA는 적절한 인증 패키지를 호출한다. 패스워드는 일방향 해시 함수를 이용하여 비가역적인 비밀 키 포맷으로 송신된다. 그 후 LSA는 사용자의 계정 정보에 대하여 보안 계정 관리자(SAM; Security Account Manager)에 쿼리한다. 제공된 키가 SAM 내의 것과 일치한다면, SAM은 사용자의 보안 ID(SID; Security Identifier) 및 사용자가 속하는 임의의 그룹의 SID들을 반환한다. 그 후 LSA는 이들 SID를 이용하여 보안 액세스 토큰(들)을 생성한다. 이 설명은 머신에 대해 사용자를 인증하기 위해 커베로스 서비스 티켓이 획득되는 도메인 계정에 대립되는 것으로서, 로컬 계정을 갖는 사용자의 경우에도 적용된다.
SSPI(Security Support Provider Interface)
SSPI는 사용자를 인증하는, 즉 사용자가 그 사용자가 주장하는 사람임을, 또는 적어도, 사용자가 특정 사층자 계정과 관련된 비밀, 예를 들면, 패스워드를 알고 있음을 확인하는 메커니즘을 정의한다.
그러한 인증된 접속을 위해 이용되는 자격 증명들은, (1) 클라이언트와 서버 머신들 간의 현존하는 인증된 연결(link)(예를 들면, 현존하는 드라이브 매핑)에 대한 자격 증명들, (2) 클라이언트 사용자의 계정에 대한 자격 증명들, 만일 서버가 이 계정과 관련된 SID를 인지하고 있다면; 이것은 클라이언트와 서버 양쪽 모두가 동일한 도메인을 신뢰하고, 또한 사용자 계정은 그 도메인으로부터의 것임을 의미함, (3) 서버 상의 로컬 계정에 대한 네이티브(raw) 자격 증명들(예를 들면, 이름 및 패스워드), 만일 그것이 클라이언트 사용자의 이름 및 패스워드와 일치한다면(이 경우, 클라이언트 사용자의 계정 및 그가 서버 상에서 사용하는 계정은 별개이다) 및 (4) 사용자에 의해 명시적으로 전달되는 자격 증명들(예를 들면, 이름 및 패스워드)일 수 있다. SSPI는 호출 애플리케이션들(클라이언트 및 서버 프로세스들)에게 기반 보안 제공자가 만족될 때까지 데이터 블록들을 앞뒤로 송신하도록 요구함으로써 작용한다.
보안 동적 연결 라이브러리(DLL; dynamic link library)를 로딩하고 패키지(NTLM, 커베로스 등의 보안 제공자에 대한 다른 용어)를 선택한 후에, 클라이언트는 로컬 또는 클라이언트 SSPI를 초기화하고 서버에 송신할 제1 데이터 세트를 검색한다. 한편, 서버는 서버 SSPI를 초기화하였고 제1 데이터 세트를 수신한 후에, 서버는 그것을 SSPI에 공급하고, SSPI는 그 제1 데이터 세트를 처리하여 제2 데이터 세트를 생성한다. 반환 시에, 서버는 결과의 제2 데이터 세트에 대한 체크 를 수행하고 만일 그 데이터가 0보다 크다면, 서버는 그 제2 데이터 세트를 클라이언트에 송신하고, 클라이언트는 그것을 클라이언트 SSPI에 공급한다. 그 후 클라이언트 SSPI는 제3 데이터 세트가 서버에 송신될 것을 요청하거나, 또는 인증이 완료되었음을 애플리케이션에 알린다. 이것은 클라이언트 및 서버 SSPI들 양쪽 모두가 상대로부터 수신된 데이터에 만족할 때까지 계속된다.
이 시점에서, 서버는 (그 중에서도 특히) 클라이언트의 사용자 이름에 대하여 쿼리될 수 있는 컨텍스트 핸들(context handle)을 보유한다. 클라이언트에 의해 사용되는 옵션들에 따라서, 서버는 또한 그 컨텍스트를 이용하여 클라이언트를 가장하여 서명하거나 메시지를 암호화하는 등등을 행하는 것이 허용될 수 있다. 수행될 수 있는 옵션 단계가 하나 더 있다. 송신-수신 사이클을 끝내기 위해, 일부 보안 제공자들은 CompleteAuthToken(CAT)이라고 불리는 사전 정의된 완료 단계를 요청할 수 있다.
SSL(Secure Sockets Layer) 및 TLS(Transport Layer Security) 프로토콜
SSL(Secure Sockets Layer) 프로토콜 및 TLS(Transport Layer Security) 프로토콜, 그를 계승하는 것은, 양쪽 모두 Schannel에 의해 구현되는 것으로서, 인터넷 상에서 안전한 통신을 제공하는 암호화 프로토콜들이다. SSL 3.0과 TLS 1.0 간에는 약간의 차이가 있지만, 프로토콜은 여전히 실질적으로 동일하다. "SSL"이라는 용어는 컨텍스트에 의해 명백해지지 않는 한 때때로 양쪽 모두의 프로토콜을 가리킨다.
SSL/TLS 프로토콜들은 암호화를 통하여 인터넷 상에서 종점 인증(endpoint authentication) 및 통신 개인 정보(communication privacy)를 제공한다. 통상의 사용 시에, 클라이언트들에 공개 키 인프라(PKI; public key infrastructure) 전개를 통하여 상호 인증이 수행될 수 있다 하더라도, 클라이언트가 인증되지 않은 채로 있는 동안에 서버는 인증된다(즉, 그의 ID가 보장된다). 이 프로토콜들은 클라이언트/서버 애플리케이션들이 도청, 부당 변경(tampering), 및 메시지 위조를 방지하도록 설계된 방식으로 통신할 수 있게 한다.
예시적이고 비제한적인 윈도즈 인증 인프라
하나의 예시적이고 비제한적인 인증 인프라는 SSP(Security Service/Support Provider) 소프트웨어를 통하여 상이한 인증 방법들을 지원하는 윈도즈 운영 체제 기술들에 의해 제공된다.
하나의 구현에서, 윈도즈는 위에서 설명된 3가지 주요 SSP들, 즉 커베로스, NTLM 도전/응답 및 Schannel 보안 프로토콜을 지원한다. 커베로스는 윈도즈 2000에서의 디폴트 인증 방법이지만, 다른 방법들은 보안 지원 제공자 인터페이스, 즉 SSPI를 통하여 이용될 수 있다. 또한, 예를 들면, 윈도즈는 디지털 인증서를 이용한 인증 서비스를 제공하기 위해 다음의 네트워크 SSP들, 즉 분산 패스워드 인증(DPA; Distributed Password Authentication) - 인터넷 인증 프로토콜, 확장 가능한 인증 프로토콜(EAP; Extensible Authentication Protocol) - 포인트-투-포인트(PPP) 프로토콜의 확장 및 SSL, TLS 및 개인 통신 기술(Private Communication Technology)을 포함하는 개인 키 기반 프로토콜들을 이용할 수 있다.
네트워크 리소스들에 대한 싱글 사인 온 및 안전한 액세스를 위한 정책 구동의 자격 증명 위임
전술한 바와 같이, 본 발명은 애플리케이션이 클라이언트 측 SSP 소프트웨어를 통하여 클라이언트로부터 사용자의 자격 증명들을 서버 측 SSP를 통하여 대상 서버로 위임하는 것을 가능하게 하는 강화된 자격 증명 보안 지원 제공자(Cred SSP)를 제공한다. 본 발명의 Cred SSP는 적용 가능한 SSPI, 예를 들면, 운영 체제 애플리케이션 플랫폼과 통합된 SSPI를 이용하여 임의의 제3자 애플리케이션 또는 운영 체제의 임의의 네이티브 애플리케이션에 의해 이용될 수 있다.
도 1은 호출 애플리케이션(들)에 명백한 텍스트 자격 증명들을 노출시키지 않고서, 클라이언트로부터 서버로의 자격 증명들의 안전한 위임을 가능하게 하는 본 발명의 Cred SSP 아키텍처의 블록도 개관이다. 일 실시예에서, Cred SSP는, 클라이언트 컴퓨팅 장치 또는 서버 컴퓨팅 장치 중 어느 한쪽에 대하여, 2개의 패키지의 세트로서, 즉 장치 D의 클라이언트(또는 애플리케이션) 측 CredSSP 패키지 Client-Side_CredSSP 및 LSA 측 CredSSP 패키지 LSA_CredSSP의 세트로서 구현된다.
클라이언트 측 패키지 Client-side_CredSSP는 클라이언트 측 보안 지원 제공자 인터페이스 Client-side_CredSSP Interface I1의 호출자들에게 노출되어, Schannel 교섭을 제공하고 Schannel 패키지 기능을 노출시킴은 물론, LSA-side CredSSP Interface I2를 통하여 LSA 측 패키지 LSA_CredSSP와 통신하는 클라이언트 측 보안 지원 제공자이다. 본 발명에 따르면, 사용자 프로세스에서 Schannel 교섭 및 기능을 취급함으로써 LSA에 의한 수행에 비하여 보다 빠른 메시지 암호화(encryptMessage) 및 메시지 암호해독(decryptMessage) 동작들을 용이하게 한다.
본 발명에 따르면, LSA 패키지 LSA_CredSSP는 SPNEGO 교섭 및 자격 증명 암호화/암호해독 및 자격 증명 전달을 제공함은 물론, 상술한 본 발명의 정책들의 세트에 따라서 정의된 정책들에 대비하여 정책 체크를 수행한다.
전술한 바와 같이, 그리고 예시적이고 비제한적인 실시예에서 도 2A 및 2B에서 도시된 바와 같이, 본 발명은 터미널 서버(250)에 자격 증명들을 위임하는 터미널 서버 클라이언트(200)와 관련하여 구현될 수 있다.
도 2A에서 도시된 바와 같이, 터미널 서버 클라이언트(200)의 구현은 프로세스 경계(220)를 가로질러 데이터를 송신하는 것을 포함하는 로컬 프로시저 호출(LPC)(215)을 이용하여 안전한 인증 라이브러리(205)를 통하여 LSA 서버 프로세스(225)와 상호작응한다. 함수들(210)은 안전한 인증 라이브러리(205)에서 실행되고 SSL.ISC(Secure Sockets Layer/Initialize Security Context) 함수 및 SSL.EM(Secure Sockets Layer/Encrypt Message) 함수를 포함하는 CredSSP.ISC(CredSSP Initialize Security Context) 함수를 포함할 수 있다. 함수들(230)은 LSA 서버 프로세스(225)에서 실행되고 SPNEGO.ISC(SPNEGO/Initialize Security Context) 함수 및 SPNEGO.EM(SPNEGO/Encrypt Message) 함수를 포함하는 CredSSP.ISC(CredSSP Initialize Security Context) 함수를 포함할 수 있다.
도 2B에서 도시된 바와 같이, 터미널 서버(250)의 구현은 프로세스 경계(270)를 가로지르는 것을 포함하는 로컬 프로시저 호출(LPC)(265)을 이용하여 안전한 인증 라이브러리(255)를 통하여 LSA 서버 프로세스(275)와 상호작용한다. 함수들(260)은 안전한 인증 프로세스(205) 상에서 실행되고 SSL.ASC(Secure Sockets Layer/Accept Security Context) 함수 및 SSL.DM(Secure Sockets Layer/Decrypt Message) 함수를 포함하는 CredSSP.ASC(CredSSP Accept Security Context) 함수를 포함할 수 있다. 함수들(280)은 LSA 서버 프로세스(275)에서 실행되고 SPNEGO.ASC(SPNEGO/Accept Security Context) 함수 및 SPNEGO.DM(SPNEGO/Decrypt Message) 함수를 포함하는 CredSSP.ASC(CredSSP Accept Security Context) 함수를 포함할 수 있다.
본 발명의 Cred SSP에 의해 이용되는 예시적이고 비제한적인 프로토콜이 도 3의 흐름도에서 예시적인 방식으로 도시되어 있다. 단계(300)에서는, 클라이언트와 서버 사이에 초기 SSL/TLS 핸드셰이크가 발생한다. 단계(305)에서는, SPNEGO 교섭이 발생하여 인증 메커니즘(예를 들면, 커베로스 또는 NTLM, 또는 클라이언트와 서버가 이해하는 다른 적합한 교섭 메커니즘)을 선택한다. 단계(310) 및 단계(315)에서는, 교섭된 인증 메커니즘을 이용하여, 서버는 클라이언트에게 인증되고, 클라이언트는 서버에게 인증된다.
만일, 단계(320)에서, 단계(310) 및/또는 단계(315)에 따라 클라이언트와 서버 사이에 적절한 인증이 성취되면, 단계(330)에서 모든 장래의 트래픽에 대하여 공유 비밀(예를 들면, 공유 키)이 확립된다. 그러나, 유리하게도, 만일, 단계(320)에서, 클라이언트와 서버 사이에 적절한 인증이 확립되지 않았다면, 단계(325)에서 어떤 세션도 생성되지 않고, 많은 계산상의 비용 및 트래픽이 회피된다. 과거에는, 예를 들면, 터미널 서버의 과거 구현들에 있어서는, 인증을 수행하는 시도가 세션이 생성된 후에 시작되었기 때문에 인증을 수행하는 데 보다 많은 비용이 들었다. 그와 대비하여, 본 발명의 Cred SSP의 프로토콜에 따르면, SPNEGO 선택된 인증 메커니즘에 따른 클라이언트와 서버의 인증이 성취되지 않는 한 클라이언트와 서버 사이의 세션이 생성되지 않는다.
따라서, 단계(320)에서 선택된 인증 메커니즘을 이용하여 적절한 인증이 수행되었다고 가정하여, 단계(330)에서 클라이언트와 서버 사이의 모든 장래의 트래픽에 대하여 공유 키가 확립된다. 그러나, 단지 임계 인증이 발생하였다는 이유만으로 서버가 반드시 클라이언트에 의해 신뢰된다는 것을 의미하지는 않는다. 따라서, 이 시점에서, 클라이언트와 서버 사이에 세션이 생성되었지만, 서버는 신뢰되는 또는 신뢰되지 않는 것으로 간주될 수 있다. 따라서, 본 발명의 그룹 정책(335)를 이용하여, 클라이언트 머신 상의 LSA Cred SSP는 단계(340)에서 정책 체크를 수행하여 사용자 자격 증명들을 위임할지의 여부를 결정한다. 만일 서버가 신뢰되지 않는다면, 단계(345)에서, 자격 증명들은 위임되지 않는다. 만일 단계(340)의 정책 체크마다 서버 관계가 신뢰된다면, 악성 소프트웨어 개체가 서버의 거동 및 공개 키를 흉내내는 "중간자(man-in-the-middle)" 공격을 피하는 것을 돕기 위해, 단계(350)에서 서버의 공개 키를 인증한다. 따라서, 만일 단계(350)에서 서버의 공개 키가 인증되지 않는다면, 단계(355)에서의 중간자 공격의 위험에 따라 자격 증명들이 위임되지 않는다. 단계(360)에서는, LSA의 신뢰되는 서브시스템에 의해서만 이해되는 암호화 포맷이 자격 증명들에 적용된다. 단계(465)에서는, 암호화된 자격 증명들이 클라이언트로부터 서버로 위임된다. LSA의 신뢰되는 서브시스템만에 의해서만 암호화 포맷이 이해되게 함으로써, 유리하게도, 본 발명의 LSA 및 Cred SSP에 대한 클라이언트 및 서버 상의 호출 애플리케이션들은 명백한 텍스트 자격 증명들에 부적당하게 액세스할 수 없다.
도 4는 본 발명의 자격 증명 위임 프로토콜의 보다 상세한 구현을 예시적이고 비제한적인 흐름도로서 도시한다. 단계(400)에서는, 클라이언트와 서버 사이에 SSL/TLS 핸드셰이크가 완료되고, 클라이언트와 서버 사이에 SSL/TLS 암호화 키 KSSL/TLS가 확립된다. Kpub는 서버 인증서 내의 공개 키이다. 그 후, 단계(410)에서는, 암호화된 SSL/TLS 채널을 통하여, SPNEGO 패키지를 이용하여 클라이언트와 서버의 상호 인증이 완료된다. 클라이언트/서버 신뢰 관계에 따라서, 커베로스 또는 NTLM 패키지 중 어느 한쪽이 교섭되어 이용된다. NTLM이 교섭되는 경우, 서버는 패스워드에 대한 지식을 클라이언트에 증명하지만, 동일 도메인 내의 다른 서버들은 그 패스워드에 액세스할 수 있다는 것에 유의한다. Kspnego는 SPNEGO 교환의 완료 시에 양측에 의해 공유되는 NTML 세션 키 또는 커베로스 서브세션 중 어느 한쪽이다.
단계(420)에서는, 클라이언트 머신 상의 LSA Cred SSP가 서버의 서비스 주체 이름(SPN; service principal name), 서버 인증 정보(PKI/KRB 대 NTLM) 및 그룹 정책 설정들에 기초하여 정책 체크를 수행하여 사용자의 자격 증명들을 서버에 위임할지의 여부를 결정한다. 그 후, 단계(430)에서는, KSSL/TLS가 대상 서버에 속하고 중간자가 아니라는 것이 다음의 예시적인 인증 교환을 수행함으로써 확인된다:
C → S: {{Kpub}Kspnego} KSSL/TLS
S → C: {{Kpub + 1}Kspnego} KSSL/TLS
KSSL/TLS는 모든 클라이언트/서버 통신을 암호화하는 데 이용된다는 것에 유의한다. 또한, 이 서버 인증 단계는, PKI 기반 신뢰가 없다면, 커베로스 또는 NTLM에 기초할 수 있다. 설명된 바와 같이, SSL/TLS 인증된 채널을 커베로스 기반 인증에 안전하게 바인딩하는 것은 SSL/TLS의 위에서 수행될 수 있다. 달리 말하자면, 본 발명은 SSL/TLS 교섭된 마스터/세션 키를 인증하기 위해 커베로스 기반 자격 증명들을 안전하게 이용할 수 있고, 이것은 SSL/TLS 클라이언트와 SSL/TLS 서버 사이에 PKI 신뢰가 없는 경우에 특히 유용할 수 있다.
마지막으로, 단계(440)에서는, 다음의 상징적인 데이터 교환에 따라 본 발명의 신뢰되는 LSA 서브시스템을 제외한 어떤 것도 명백한 텍스트 자격 증명을 리뷰하지 못하게 하는 방식으로 사용자의 자격 증명들(예를 들면, 패스워드)이 서버에 위임될 수 있다:
C → S: {{Password}Kspnego} KSSL/TLS
전술한 바와 같이, 예를 들면, 도 3 및 4의 단계(340)(및 그룹 정책(335)) 및 단계(420)에서는, 각각, 광범위한 보안 공격들을 완화하도록 본 발명에 따라 클라이언트의 자격 증명들의 위임을 제어하고 제한하기 위해 정책들이 이용된다. 전술한 바와 같이, 본 발명의 LSA 패키지는 SPNEGO 교섭, 자격 증명 암호화/암호해독 및 자격 증명 전달을 제공한다. 본 발명의 LSA 패키지는 또한 본 발명에 따라서 정의된 정책들에 대비하여 정책 체크를 수행한다. 본 발명의 그룹 정책 설정의 목적은 악당의 관리 제어 하에 또는 공격자에 복종하여 허가되지 않은 서버, 예를 들면, 머신에 사용자의 자격 증명들이 위임되지 않도록 하는 것이다. 예를 들면, PKI, 커베로스 또는 NTLM 인증에 기초하여, 클라이언트와 서버 사이에 인증을 용이하게 하기 위해 신뢰가 존재할 수 있지만, 그러한 신뢰는 사용자의 자격 증명 없이 대상 서버가 신뢰된다는 것을 의미하지는 않는다. 따라서, 본 발명은 위임된 자격 증명들에 의해 대상 서버가 신뢰될 수 있다는 것을 보증하는 정책 협의(policy consultation)를 포함한다.
도 5는 호출 애플리케이션(들)에 명백한 텍스트 자격 증명들을 노출시키지 않고, 클라이언트로부터 서버로의 자격 증명들의 안전한 위임을 가능하게 하는 본 발명의 Cred SSP 아키텍처의 예시적이고 비제한적인 블록도이다. 도 1과 유사하게, Cred SSP는 클라이언트 C와 서버 S 양쪽 모두에서 2개의 패키지의 세트로서, 즉, 클라이언트 측 패키지 및 LSA 측 패키지의 세트로서 구현된다. 클라언트 C에서, 이것은 클라이언트 측 CredSSP 및 LSA 측 CredSSP로 변환된다. 서버 S에서, 이것은 클라이언트 측 CredSSP' 및 LSA 측 CredSSP'로 변환된다. 도 5는, 본 발명에 따르면, 사용자의 명백한 텍스트 자격 증명들은 서버(510)의 서버 애플리케이션, 리소스 또는 서비스 ARS를 요청하는 클라이언트(500)의 호출 애플리케이션 CA에 결코 저장되지 않고 그 호출 애플리케이션 CA가 액세스할 수 없다는 것을 도시한다. LSA들의 신뢰되는 서브시스템 부분을 분할하는 점선은 사용자의 명백한 텍스트 자격 증명들에 액세스할 수 있다. 즉, 암호화/암호해독하는 능력이 있다. 또한, 도 5는, 아래에서 더 상세히 설명되는 바와 같이, 클라이언트 머신 상의 LSA 측 CredSSP가 본 발명의 그룹 정책들 GP를 참고하는 것을 도시한다.
이와 관련하여, 아래 표 3에서 도시된, 그룹 정책 설정들은 사용자의 자격 증명들에 의해 어느 서버들이 신뢰되는지를 정의하고, 거기서 각 설정은 서비스 주체 이름(SPN)들의 목록이고; 일 실시예에서는, 와일드 카드들이 허용된다. 문자열 인식 기술 분야의 통상의 기술을 가진 자라면 알 수 있는 바와 같이, 와일드카드는 '*'와 같은 문자들을 나타내고, 그것은 SPN들의 알파벳에서 허용되는 임의의 문자 또는 문자열을 대표할 수 있다. 따라서, 본 발명에 따르면, Cred SSP(클라이언트 측)는 서버가 클라이언트에 인증되고 서버의 SPN이, 예를 들면, 아래 표 3에서 도시된 그룹 정책(GP) 설정들에 의해 정의된 바와 같이, 정책 체크를 통과하는 경우에만 사용자의 자격 증명들을 위임한다.
아래 표 3에서 정의된 사용자 자격 증명들을 위임하기 위한 정책 설정들은 표 1에서 열거된 공격들을 포함하지만, 그에 제한되지 않는, 각종의 공격들을 완화하도록 설계되어 있다.
정책 설정들이 완화하는 공격 유형들
1 트로이 목마(Trojan) 또는 악성 소프트웨어(malware)는 관리자(admin) 모드가 아니라, 예를 들어, 제한 사용자 모드(Limited User Mode)에서는, 클라이언트 머신 상에서 실행할 수 있다.
2 관리자에 의해 구성될 수 있는 디폴트 GP 설정 대 다른 GP 값들(와일드 카드의 오용을 포함함).
3 도메인 이름 서비스(DNS) 중독(poisoning). 클라이언트가 호스트 이름을 분석(resolve)할 경우, 그것은 악당 서버(rogue server)와 통신할 수 있다.
4 커베로스 키 배포 센터(KDC; Kerberos Key Distribution Center)에 대한 서비스 공격들의 거부
본 발명에 따라서 정의된(아래 표 3에서 예시적이고 비제한적인 방식으로 정의된) 정책들 중 어느 것이 주어진 상황에 적용되는지에 대한 판정은 도 3 내지 5와 관련하여 위에서 설명된 클라이언트와 서버 사이에 교섭된 인증 프로토콜 및 자격 증명들의 유형에 좌우된다. 도 6은 본 발명에 따라서 정책이 기초할 수 있는, 새로운 자격 증명들(Fresh Credentials), 디폴트 자격 증명들(Default Credentials), 및 저장된 자격 증명들(Saved Credentials)을 포함하는, 3가지 예시적인 유형의 자격 증명들을 보여준다. 새로운 자격 증명들은 CredUI(610)와 같은 자격 증명 사용자 인터페이스를 통하여 실시간으로 입력되는 자격 증명들이다. 저장된 자격 증명들은 새로운 자격 증명들로서 이전에 입력되었고, 예를 들면, 제한된 시간 기간 동안, CredMan(600)과 같은 자격 증명 관리자에 의한 추가의 재사용을 위해 저장되어 있는 자격 증명들이다. 저장된 자격 증명들은 보안 관점에서 새로운 자격 증명들보다 취약하다고 생각된다. 한층 덜 안전한 것은 디폴트 자격 증명들이고, 이것은 그 이름이 암시하는 바와 같이 다른 자격 증명들을 이용하는 다른 지시가 없는 경우에 LSA(620)에 의해 사용되도록 지정되는 디폴트 자격 증명들이다. 예를 들면, 디폴트 자격 증명들은 로그온 시에 입력되는 자격 증명들을 포함할 수 있다. 디폴트 자격 증명들은, 특정 웹 사이트 자격 증명들과 같이, 향상된 보안을 필요로 하지 않는, 특정 상황에서는 괜찮을 수 있다. 또한, 덜 안전하기는 하지만, 디폴트 자격 증명들은 LSA(620)가 즉시 이용할 수 있다는 이점이 있다. 따라서, 도 6에 도시된 바와 같이 터미널 서버 클라이언트 TSC에 의한 요청과 관련하여 이용될 수 있는 3가지 유형의 자격 증명들이 있다. 표 2는 이 예시적이고 비제한적인 실시예에서 고려되는 3가지 유형의 자격 증명들, 즉 새로운, 저장된 및 디폴트 자격 증명들을 제시한다.
자격 증명들의 유형
새로운 자격 증명 CredUI와 같은 사용자 인터페이스를 통하여 수집되어 SSPI에 직접 전달되는(예를 들면, AcquireCredentialsHandle 호출 내로 전달되는) 사용자의 자격 증명들
디폴트 자격 증명 사용자가 처음에 시스템에 사인 온할 때 사용자에 의해 최초에 제공된 자격 증명들
저장된 자격 증명 자격 증명 관리자(예를 들면, CredMan)에 저장하기 위해 사용자가 선택한 특정 대상 서버에 대한 자격 증명들
위에서 언급된 바와 같이, 아래 표 3은 본 발명에 따른 클라이언트에 의해 서버로의 사용자 자격 증명들의 위임을 제어/제한하기 위한 그룹 정책(GP) 설정들의 예시적이고 비제한적인 세트를 포함한다. 컴퓨터 네트워킹 기술 분야의 통상의 기술을 가진 자라면 알 수 있는 바와 같이, Termsrv/*는 SPN들의 세트를 대표하고 여기서 서비스는 Termsrv이고 순방향 슬래시 "/" 뒤에 명명된 호스트 머신은 * 와일드카드와 일치하는 임의의 대상 서버일 수 있다.
사용자 자격 증명들의 위임을 제어/제한하기 위한 그룹 정책 설정들
# GP 설정 (SPN들의 목록) 디폴트 값 코멘트
1 AllowDefCredentials 의미: 디폴트 자격 증명들에 의해 인증할 때 패스워드가 리스트된 대상들에 전달될 수 있다 널(NULL) 디폴트 설정: 디폴트로, 디폴트 자격 증명들(사용자가 처음에 사인 온할 때 입력된 것들)의 위임은 어떤 머신에 의해서도 허용되지 않는다. 이는 정책 체크가 실패할 것이므로 (모든 다른 요소들, 즉, 인증 스킴에 관계없이) (LUA 모드에서) 클라이언트 머신 상에서 실행하는 악성 소프트웨어는 Cred SSP에 호출함으로써 디폴트 자격 증명들을 위임하지 못할 것임을 의미한다.
2 AllowSavedCredentials 의미: 저장된 자격 증명들에 의해 인증할 때 패스워드가 리스트된 대상들에 전달될 수 있다 Termsrv/* 디폴트 설정: 이 디폴트 값은 임의의 머신 상에서 실행하는 터미널 서비스에 사용자의 저장된 자격 증명들이 위임되는 것을 허용한다. 이것은 사용자가 이전에 로그인하여 그의 자격 증명들을 CredMan에 저장하기 위해 선택한 서버들에 적용된다. (대상 서버 이름은 사용자의 자격 증명들과 함께 CredMan에 저장된다).
3 AllowFreshCredentials 의미: 새로운 자격 증명들에 의해 인증할 때 패스워드가 대상에 전달될 수 있다 Termsrv/* 상기 설정들과 비교하여, AllowFreshCredentials에 의하면, (AllowSavedCredentials 및 AllowDefCredentials 정책 설정들이 인에이블되지 않았다고 가정할 때, 사용자에게 먼저 프롬프트되지 않고) 악성 소프트웨어가 조용한 로그인(silent login)을 수행할 가능성이 없다.
4 DenyDefCredentials 의미: 디폴트 자격 증명들에 의해 인증할 때 패스워드가 리스트된 대상들에 전달될 수 없다 이 설정은 사용자의 디폴트 자격 증명들이 어느 서버들에 위임될 수 있는지를 더 제한하기 위해 이용되고, 그 자체로 악용(exploit)의 기회를 제공하지 않는다. 그러나, 관리자는 DenyDefCredentials 및 AllowDefCredentials 설정들의 조합을 통하여 디폴트 자격 증명들에 대한 정책을 구성할 때 여전히 신중을 기하여야 한다. 만일 AllowDefCredentials가 광범한 서버들의 세트를 커버할 경우에는, DenyDefCredentials를 통하여 표현되는 예외들의 목록은 주어진 환경 내의 모든 신뢰되지 않는 서버들을 포괄적으로 커버할 수 없다. 이것은 새로운 서버들이 온라인으로 될 때, 시간에 걸쳐서 특별한 문제가 될 수 있다. 또한, 관리 권한을 갖는 악성 소프트웨어가 DenyDefCredentials 목록으로부터 신뢰되지 않는 서버들을 제거할 수 있다. 그러나, 그러한 경우에 사용자의 패스워드를 획득하는 다수의 방법이 있기 때문에 관리 권한을 갖는 악성 소프트웨어는 "게임 오버" 조건이다.
5 DenySavedCredentials 의미: 저장된 자격 증명들에 의해 인증할 때 패스워드가 리스트된 대상들에 전달될 수 없다 이 설정은 사용자의 저장된 자격 증명들이 어느 서버들에 위임될 수 있는지를 더 제한하기 위해 이용되고, 그 자체로 악용의 기회를 제공하지 않는다.
6 DenyFreshCredentials 의미: 새로운 자격 증명들에 의해 인증할 때 패스워드가 리스트된 대상들에 전달될 수 없다 이 설정은 사용자의 새로운 자격 증명들이 어느 서버들에 위임될 수 있는지를 더 제한하기 위해 이용되고, 그 자체로 악용의 기회를 제공하지 않는다.
7 AllowDefCredentialsWhenNTLMOnly 의미: 유일한 인증 패키지가 NTLM이고, 사용자가 디폴트 자격 증명들에 의해 인증하면, 패스워드가 리스트된 대상들에 전달될 수 있게 한다 커베로스 및 PKI 기반 신뢰는 NTLM보다 더 강력한 인증 방법을 제공하기 때문에, 디폴트로, 이 설정은 오프이다.
8 AllowSavedCredentialsWhenNTLMOnly 의미: 유일한 인증 패키지가 NTLM이고, 사용자가 저장된 자격 증명들에 의해 인증하면, 패스워드가 리스트된 대상들에 전달될 수 있게 한다 Termsrv/*(조인되지 않음) 널(조인됨) NTLM 프로토콜의 고유의 취약성에 대처하기 위해, 사용자 자격 증명들의 위임은 도메인 조인되지 않은 머신들에 의해서만 디폴트로 허용된다(이 경우, 대상 독립 실행형 머신에 의해 서버 인증이 달성되는 것이 보증된다). 디폴트로, 도메인 조인된 경우에 대하여, NTLM은 그 자체로 허용되지 않는다(서버 인증은 커베로스 또는 PKI에 기초한다).
9 AllowFreshCredentialsWhenNTLMOnly 의미: 유일한 인증 패키지가 NTLM이고, 사용자가 새로운 자격 증명들에 의해 인증하면, 패스워드가 리스트된 대상들에 전달될 수 있게 한다 Termsrv/*
요약하면, 본 발명의 Cred SSP 해법은 클라이언트로부터 서버로의 사용자 자격 증명들의 위임을 제어하고 제한하는 데 이용될 수 있는 정책들의 세트를 제공함으로써 과거보다 더 안전한 해법을 제공한다. 표 3의 예시적이고 비제한적인 정책들의 세트가 예시하는 바와 같이, 정책들은 클라이언트의 머신 상에서 실행하는 악성 소프트웨어(malware)를 포함한, 광범위한 공격들을 취급하도록 설계된다. 또한, 본 발명의 Cred SSP는, 클라이언트 머신이, 디폴트로, 광범위한 공격들을 완화할 수 있게 하는 정책 설정을 통한 특별한 구성인, "시큐어 바이 디폴트(secure by default)" 정책을 포함한다. 또한, 본 발명의 정책들의 세트는 사용자 이름/패스워드, 스마트 핀, 일회용 패스코드(OTP) 등을 포함하지만, 이들에 제한되지 않는, 임의의 유형의 사용자 자격 증명들을 보호하는 데 적용 가능하다. 본 발명의 Cred SSP는, LSA의 신뢰되는 서브시스템만이 명백한 텍스트 자격 증명들에 액세스할 수 있기 때문에, 서버 또는 클라이언트 측의 (Cred SSP API의) 호출 애플리케이션에게는 결코 명백한 텍스트 자격 증명들에의 액세스가 제공되지 않기 때문에 사용자의 자격 증명들에 대한 추가적인 보호를 제공한다.
예시적인 네트워크화된 및 분산된 환경
해당 기술 분야의 통상의 기술을 가진 자라면 본 발명이 컴퓨터 네트워크의 일부로서 또는 분산된 컴퓨팅 환경에서 전개될 수 있는 임의의 컴퓨터 또는 기타 클라이언트 또는 서버 장치와 관련하여 구현될 수 있다는 것을 알 수 있다. 이와 관련하여, 본 발명은, 임의의 수의 메모리 또는 저장 장치들, 및 본 발명에 따른 클라이언트로부터 서버로 자격 증명들을 위임하기 위한 프로세스들과 관련하여 이용될 수 있는, 임의의 수의 저장 장치들 또는 볼륨들을 가로질러 발생하는 임의의 수의 애플리케이션들 및 프로세스들을 갖는 임의의 컴퓨터 시스템 또는 환경에 관계가 있다. 본 발명은 원격 또는 로컬 저장 장치를 갖는, 네트워크 환경 또는 분산된 컴퓨팅 환경에서 전개된 서버 컴퓨터들 및 클라이언트 컴퓨터들을 갖는 환경에 적용될 수 있다. 본 발명은 또한 원격 또는 로컬 서비스 또는 프로세스들과 관련하여 정보를 생성하고, 수신하고, 송신하기 위한, 프로그래밍 언어 기능, 해석 및 실행 능력들을 갖는 독립 실행형 컴퓨팅 장치들에도 적용될 수 있다.
분산된 컴퓨팅은 컴퓨팅 장치들과 시스템들 사이에 교환에 의해 컴퓨터 리소스들 및 서비스들의 공유를 제공한다. 이들 리소스들 및 서비스들은 정보의 교환, 파일 등의 개체들에 대한 캐시 저장 및 디스크 저장을 포함한다. 분산된 컴퓨팅은 네트워크 연결을 이용하여, 클라이언트들이 그들의 집합적인 능력을 이용하여 기업 전체에 이익이 되도록 할 수 있다. 이와 관련하여, 각종의 장치들이 본 발명의 클라이언트로부터 서버로 자격 증명들을 위임하기 위한 시스템들 및 방법들을 관련시킬 수 있는 애플리케이션들, 개체들 또는 리소스들을 가질 수 있다.
도 7A는 예시적인 네트워크화된 또는 분산된 컴퓨팅 환경의 개략도를 제공한다. 분산된 컴퓨팅 환경은 컴퓨팅 개체들(10a, 10b 등) 및 컴퓨팅 개체들 및 장치들(110a, 110b, 110c 등)을 포함한다. 이들 개체들은 프로그램, 메서드, 데이터 저장소, 프로그램 가능한 로직 등을 포함할 수 있다. 개체들은 PDA, 오디오/비디오 장치, MP3 플레이어, 퍼스널 컴퓨터 등의 동일한 또는 상이한 장치들의 부분들을 포함할 수 있다. 각 개체는 통신 네트워크(14)를 경유하여 다른 개체와 통신할 수 있다. 이 네트워크는 자체로서 도 7A의 시스템에 서비스를 제공하는 다른 컴퓨팅 개체들 및 컴퓨팅 장치들을 포함할 수 있고, 자체로서 복수의 상호접속된 네트워크들을 나타낼 수 있다. 본 발명의 양태에 따르면, 각 개체(10a, 10b 등 또는 110a, 110b, 110c 등)는 본 발명에 따른 클라이언트로부터 서버로 자격 증명들을 위임하기 위한 시스템들 및 방법들과 함께 이용하기에 적합한 API, 또는 다른 개체, 소프트웨어, 펌웨어 및/또는 하드웨어를 이용할 수 있는 애플리케이션을 포함할 수 있다.
또한 110c 등의 개체는 다른 컴퓨팅 장치(10a, 10b 또는 110a, 110b 등) 상에서 호스팅될 수 있다는 것을 알 수 있다. 따라서, 도시된 물리적 환경은 컴퓨터 등의 연결된 장치들을 보여줄 수 있지만, 그러한 도시는 단지 예시에 불과하고 물리적 환경은 대안적으로 PDA, 텔레비전, MP3 플레이어 등의 다양한 디지털 장치들, 인터페이스, COM 개체 등의 소프트웨어 개체들을 포함하는 것으로 도시되거나 설명될 수도 있다.
분산된 컴퓨팅 환경을 지원하는 각종의 시스템, 컴포넌트, 및 네트워크 구성들이 있다. 예를 들면, 컴퓨팅 시스템들은 유선 또는 무선 시스템에 의해, 로컬 네트워크 또는 널리 분산된 네트워크에 의해 서로 연결될 수 있다. 현재는, 널리 분산된 컴퓨팅을 위한 인프라를 제공하고 다수의 상이한 네트워크들을 포함하는 인터넷에 다수의 네트워크가 연결되어 있다. 그 인프라들 중 어떤 것이라도 본 발명에 따라 클라이언트로부터 서버로 자격 증명들을 위임하는 것에 부수적으로 행해지는 예시적인 통신을 위해 이용될 수 있다.
가정용 네트워킹 환경에서는, 예를 들면, 전력선, 데이터(무선 또는 유선 모두), 음성(예를 들면, 전화) 및 엔터테인먼트 매체 등, 각각이 고유의 프로토콜을 지원할 수 있는 적어도 4개의 다른 종류의 네트워크 전송 매체가 있다. 전등 스위치 및 가전제품 등의 대부분의 가정용 제어 장치들은 연결을 위해 전력선을 이용할 수 있다. 데이터 서비스는 광대역으로서(예를 들면, DSL 또는 케이블 모뎀) 가정에 들어갈 수 있고 무선(예를 들면, HomeRF 또는 802.11B) 또는 유선(예를 들면, Home PNA, Cat 5, 이더넷, 심지어 전력선) 연결을 이용하여 가정 내에서 액세스 가능하다. 음성 트래픽은 유선(예를 들면, Cat 3) 또는 무선(예를 들면, 휴대 전화)으로서 가정에 들어갈 수 있고 Cat 3 배선을 이용하여 가정 내에서 분배될 수 있다. 엔터테인먼트 매체, 또는 다른 그래픽 매체는 위성 또는 케이블을 통하여 가정에 들어갈 수 있고 전형적으로 동축 케이블을 이용하여 가정 내에서 분배된다. IEEE 1394 및 DVI도 미디어 장치들의 클러스터들을 위한 디지털 상호접속들이다. 이들 네트워크 환경들 및 프로토콜 표준으로서 출현할 수 있는, 또는 이미 출현한 다른 것들 모두는 상호접속되어 인트라넷과 같은 네트워크를 형성할 수 있고, 그 네트워크는 인터넷과 같은 광역 네트워크를 경유하여 외부 세계에 연결될 수 있다. 요컨대, 데이터의 저장 및 송신을 위한 각종의 상이한 소스들이 존재하고, 따라서, 나아가서, 컴퓨팅 장치들은 본 발명에 따른 클라이언트로부터 서버로의 자격 증명들의 위임 동안과 같은 때에, 프로그램 개체들에 부수적으로 액세스되거나 이용되는 데이터 등의 데이터를 공유하는 방법들을 요구할 것이다.
일반적으로 인터넷은 컴퓨터 네트워킹의 기술 분야에서 잘 알려져 있는 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 프로토콜 제품군(suite of protocols)을 이용하는 네트워크들 및 게이트웨이들의 컬렉션을 가리킨다. 인터넷은 사용자들이 네트워크(들)를 통하여 상호작용하고 정보를 공유할 수 있게 하는 네트워크 프로토콜들을 실행하는 컴퓨터들에 의해 상호접속된 지리적으로 분산된 원격 컴퓨터 네트워크들의 시스템으로서 기술될 수 있다. 그러한 광범위한 정보 공유 때문에, 인터넷과 같은 원격 네트워크들은 지금까지 일반적으로 개방형 시스템으로서 발전되었고, 그러한 개방형 시스템을 이용하여 개발자들은 특별히 제한 없이 특수화된 동작들 또는 서비스들을 수행하기 위한 소프트웨어 애플리케이션들을 설계할 수 있다.
따라서, 네트워크 인프라는 클라이언트/서버, 피어-투-피어, 또는 하이브리드 아키텍처 등의 네트워크 토폴로지들의 호스트를 가능하게 한다. "클라이언트"는 그것과 관계가 없는 다른 클래스 또는 그룹의 서비스들을 이용하는 클래스 또는 그룹의 멤버이다. 따라서, 컴퓨팅에 있어서, 클라이언트는 다른 프로그램에 의해 제공되는 서비스를 요청하는 프로세스, 즉 대략 명령들 또는 태스크들의 세트이다. 클라이언트 프로세스는 다른 프로그램 또는 서비스 자체에 관한 어떤 운영 상세(working details)도 "알" 필요 없이 요청된 서비스를 이용한다. 클라이언트/서버 아키텍처, 특히 네트워크화된 시스템에 있어서, 통상적으로 클라이언트는 다른 컴퓨터, 예를 들면, 서버에 의해 제공되는 공유 네트워크 리소스들에 액세스하는 컴퓨터이다. 예로서, 도 7A에 도시에서, 컴퓨터들(110a, 110b 등)은 클라이언트로서 간주될 수 있고 컴퓨터들(10a, 10b 등)은 서버로서 간주될 수 있고, 서버들(10a, 10b)은 클라이언트 컴퓨터들(110a, 110b 등)에 복제되는 데이터를 유지한다. 그러나, 상황에 따라서, 어떤 컴퓨터라도 클라이언트, 서버, 또는 양쪽 모두로 간주될 수 있다. 이들 컴퓨팅 장치들 중 어느 것이라도 데이터를 처리하거나 또는 본 발명에 따른 클라이언트로부터 서버로의 자격 증명들의 위임을 관련시킬 수 있는 서비스 또는 태스크를 요청할 수 있다.
전형적으로 서버는 인터넷과 같은 원격 또는 로컬 네트워크를 통하여 액세스 가능한 원격 컴퓨터 시스템이다. 클라이언트 프로세스는 제1 컴퓨터 시스템에서 활성일 수 있고, 서버 프로세스는 제2 컴퓨터 시스템에서 활성일 수 있고, 통신 매체를 통하여 서로 통신하여, 분산된 기능을 제공하고 복수의 클라이언트들이 서버의 정보 수집 능력들을 이용할 수 있게 한다. 본 발명의 클라이언트로부터 서버로 자격 증명들을 위임하기 위한 기법들에 따라서 이용되는 임의의 소프트웨어 개체들은 복수의 컴퓨팅 장치들 또는 개체들에 걸쳐서 분산될 수 있다.
클라이언트(들) 및 서버(들)는 프로토콜 계층(들)에 의해 제공되는 기능을 이용하여 서로 통신한다. 예를 들면, 하이퍼텍스트 전송 프로토콜(HTTP)은 월드 와이드 웹(WWW), 또는 "웹(the Web)'과 관련하여 이용되는 일반적인 프로토콜이다. 전형적으로, 인터넷 프로토콜(IP) 주소와 같은 컴퓨터 네트워크 주소 또는 URL(Universal Resource Locator)과 같은 다른 참조는 서버 또는 클라이언트 컴퓨터들을 서로에 대해 식별하기 위해 이용된다. 네트워크 주소는 URL 주소라고 불릴 수 있다. 통신은 통신 매체를 통하여 제공될 수 있다. 예를 들면, 클라이언트(들) 및 서버(들)는 고용량 통신을 위해 TCP/IP 접속(들)을 통하여 서로 연결될 수 있다.
따라서, 도 7A는 본 발명이 이용될 수 있는, 예시적인 네트워크화된 또는 분산된 환경을 도시하고, 여기서 서버(들)는 네트워크/버스를 통하여 클라이언트 컴퓨터(들)와 통신한다. 더 상세하게는, 본 발명에 따르면 다수의 서버들(10a, 10b 등)이, LAN, WAN, 인트라넷, 인터넷 등일 수 있는, 통신 네트워크/버스(14)를 통하여, 예를 들면 포터블 컴퓨터, 핸드헬드 컴퓨터, 씬(thin) 컴퓨터, 네트워크화된 가전제품, 또는 VCR, TV, 오븐, 전등, 전열기 등의 다른 장치와 같은 다수의 클라이언트 또는 원격 컴퓨팅 장치들(110a, 110b, 110c, 110d, 110e 등)과 상호접속된다. 따라서 본 발명은 그와 관련하여 서버에 사용자 자격 증명들을 위임하기에 바람직한 임의의 컴퓨팅 장치에 적용될 수 있다.
예를 들어, 통신 네트워크/버스(14)가 인터넷인 네트워크 환경에 있어서, 서버들(10a, 10b 등)은 클라이언트들(110a, 110b, 110c, 110d, 110e 등)이 HTTP 등의 다수의 알려진 프로토콜들 중 임의의 프로토콜을 통하여 그와 통신하는 웹 서버들일 수 있다. 분산 컴퓨팅 환경의 특징일 수 있듯이, 서버들(10a, 10b 등)은 클라이언트들(110a, 110b, 110c, 110d, 110e 등)로서 기능할 수도 있다.
전술한 바와 같이, 통신은 유선 또는 무선, 또는 적절한 경우 그의 조합일 수 있다. 클라이언트 장치들(110a, 110b, 110c, 110d, 110e 등)은 통신 네트워크/버스(14)를 통하여 통신할 수도 아닐 수도 있고, 그와 관련된 독립적인 통신을 가질 수도 있다. 예를 들면, TV 또는 VCR의 경우, 그의 제어에 네트워크화된 양태가 있을 수도 있고 아닐 수도 있다. 각 클라이언트 컴퓨터(110a, 110b, 110c, 110d, 110e 등) 및 서버 컴퓨터(10a, 10b 등)는 다양한 애플리케이션 프로그램 모듈들 또는 개체들(135a, 135b, 135c 등)을 구비할 수 있고 또한 다양한 유형의 저장 요소들 또는 개체들에의 연결 또는 액세스를 구비할 수 있고, 그러한 저장 요소들 또는 개체들에 걸쳐서 파일들 또는 데이터 스트림들이 저장되거나 또는 그러한 저장 요소들 또는 개체들에 파일들 또는 데이터 스트림들의 부분(들)이 다운로드되거나, 전송되거나, 이동될 수 있다. 컴퓨터들(110a, 110b, 110c, 110d 등) 중 어느 하나 이상의 컴퓨터는 본 발명에 따라서 처리된 또는 저장된 데이터를 저장하기 위한 데이터베이스 또는 메모리(20) 등의 데이터베이스(20) 또는 다른 저장 요소의 유지 관리 및 업데이트의 책임이 있을 수 있다. 따라서, 본 발명은 컴퓨터 네트워크/버스(14)에 액세스하고 그와 상호작용할 수 있는 클라이언트 컴퓨터들(110a, 110b 등)과, 클라이언트 컴튜터들(110a, 110b 등) 및 다른 유사 장치들, 및 데이터베이스(20)와 상호작용할 수 있는 서버 컴퓨터들(10a, 10b 등)을 갖는 컴퓨터 네트워크 환경에서 이용될 수 있다.
예시적인 컴퓨팅 장치
전술한 바와 같이, 본 발명은 장치의 제2 애플리케이션들로부터의 간섭으로부터 제1 애플리케이션을 보호하는 것이 바람직할 수 있는 임의의 장치에 적용된다. 그러므로, 핸드헬드, 포터블 및 기타 컴퓨팅 장치 및 모든 종류의 컴퓨팅 장치들이 본 발명과 함께, 즉 장치가 자격 증명들을 서버에 위임하기를 원할 수 있는 어디서든(예를 들면, 이동 전화 등의 포터블 장치를 통한 GSM 네트워크) 이용하기 위해 고려된다. 따라서, 도 7B에서 후술되는 아래의 범용 원격 컴퓨터는 하나의 예일 뿐이고, 본 발명은 네트워크/버스 상호 운용성 및 상호작용을 갖는 임의의 클라이언트와 함께 구현될 수 있다. 따라서, 본 발명은 매우 적은 수의 또는 최소의 리소스들이 관련되는 네트워크화된 호스팅된 서비스들의 환경에서, 예를 들면, 클라이언트 장치가 단지 가전제품 내에 배치된 개체와 같이, 네트워크/버스에의 인터페이스로서 기능하는 네트워크화된 환경에서 구현될 수도 있다.
필수 사항은 아니지만, 본 발명은 부분적으로 장치 또는 개체에 대한 서비스의 개발자에 의해 이용되는 운영 체제를 통하여 구현될 수 있고, 및/또는 본 발명의 구성 요소(들)와 관련하여 작용하는 애플리케이션 소프트웨어 내에 포함될 수 있다. 소프트웨어는 클라이언트 워크스테이션, 서버 또는 기타 장치와 같은 하나 이상의 컴퓨터에 의해 실행되는, 프로그램 모듈 등의 컴퓨터 실행가능 명령들의 일반적인 컨텍스트에서 기술될 수 있다. 해당 기술 분야의 숙련자라면 본 발명은 다른 컴퓨터 시스템 구성 및 프로토콜에 의해 실시될 수도 있다는 것을 알 것이다.
도 7B는 이렇게 본 발명이 구현될 수 있는 적합한 컴퓨팅 시스템 환경(100a)의 예를 도시하고 있으나, 위에서 명백해진 바와 같이, 컴퓨팅 시스템 환경(100a)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100a)은 예시적인 운영 환경(100a)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안 된다.
도 7B와 관련하여, 본 발명을 구현하는 원격 장치는 컴퓨터(110a) 형태의 범용 컴퓨팅 장치를 포함한다. 컹퓨터(110a)의 컴포넌트들은 처리 장치(120a), 시스템 메모리(130a), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120a)에 연결시키는 시스템 버스(121a)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121a)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스, 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다.
컴퓨터(110a)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110a)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가 능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110a)에 의해 액세스될 수 있고고 원하는 정보를 저장하는 데 이용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 임의의 정보 전달 매체를 포함한다.
시스템 메모리(130a)는 판독 전용 메모리(ROM) 및/또는 랜덤 액세스 메모리(RAM)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110a) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)이 메모리(130a)에 저장될 수 있다. 메모리(130a)는 통상적으로 또한 처리 장치(120a)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 메모리(130a)는 또한 운영 체제, 애플리케이션 프로그램, 기타 프로그램 모듈, 및 프로그램 데이터를 포함할 수 있지만 이에 제한되는 것은 아니다.
컴퓨터(110a)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 예를 들면, 컴퓨터(110a)는 비이동식, 비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브, 이동식, 비휘발성 자기 디스크에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브, 및/또는 CD-ROM 또는 기타 광 매체 등의 이동식, 비휘발성 광 디스크에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브를 포함할 수 있다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브는 통상적으로 인터페이스와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121a)에 접속되고, 자기 디스크 드라이브 및 광 디스크 드라이브는 통상적으로 인터페이스와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121a)에 접속된다.
사용자는 키보드 및 통상적으로 마우스, 트랙볼(trackball) 또는 터치 패드라고 불리는 포인팅 장치 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110a)에 입력할 수 있다. 다른 입력 장치로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스(121a)에 연결된 사용자 입력(140a) 및 관련 인터페이스(들)를 통해 처리 장치(120a)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 그래픽 서브시스템도 시스템 버스(121a)에 접속될 수 있다. 모니터 또는 다른 유형의 디스플레이 장치도 출력 인터페이스(150a) 등의 인터페이스를 통해 시스템 버스(121a)에 접속되고, 출력 인터페이스(150a)는 비디오 메모리와 통신할 수 있다. 모니터 외에, 컴퓨터는 스피커 및 프린터 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 인터페이스(150a)를 통해 접속될 수 있다.
컴퓨터(110a)는 원격 컴퓨터(170a)와 같은 하나 이상의 다른 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 또는 분산된 환경에서 동작할 수 있다. 원격 컴퓨터(170a)는 장치(110a)와는 다른, 미디어 능력 등의 능력들을 가질 수 있다. 원격 컴퓨터(170a)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드, 또는 임의의 다른 원격 미디어 소비 또는 전송 장치일 수 있고, 컴퓨터(110a)와 관련하여 상술된 구성요소들 중의 임의의 것 또는 그 전부를 포함할 수 있다. 도 7B에 도시된 논리적 접속으로는 LAN(local area network) 또는 WAN(wide area network)이 있지만, 기타 네트워크/버스를 포함할 수도 있다. 이러한 네트워킹 환경은 가정, 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110a)는 네트워크 인터페이스 또는 어댑터를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110a)는 통상적으로 인터넷과 같은 WAN을 통해 통신을 설정하기 위한 네트워크 컴포넌트(네트워크 카드, 모뎀 등) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는, 네트워크에의 접속 수단은 입력(140a)의 사용자 입력 인터페이스, 또는 기타 적절한 메커니즘을 통해 시스템 버스(121a)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(110a) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 도시되고 설명된 네트워크 접속은 예시적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
예시적인 분산 컴퓨팅 프레임워크 또는 아키텍처
퍼스널 컴퓨팅의 수렴 및 인터넷에 비추어 다양한 분산 컴퓨팅 프레임워크들이 개발되었고 개발되고 있다. 개인이든 업무용 사용자이든 다 같이 애플리케이션들 및 컴퓨팅 장치들에 대한 심리스하게(seamlessly) 상호 운용 가능하고 웹이 가능한 인터페이스를 구비하고 있어, 컴퓨팅 활동은 점점 더 웹 브라우저 또는 네트워크 지향화되고 있다.
예를 들면, MICROSOFT®의 관리형 코드 플랫폼(managed code platform), 즉, .NET은 웹 기반 저장 및 다운로드 가능한 장치 소프트웨어 등의, 서버, 빌딩-블록 서비스를 포함한다. 일반적으로 말해서, .NET 플랫폼은 (1) 컴퓨팅 장치들의 전체 범위를 함께 동작시키고 그것들 모두에서 사용자 정보가 자동으로 업데이트되고 동기화되게 하는 능력, (2) HTML보다는 XML의 더 많은 사용에 의해 가능해지는, 웹 페이지들의 증가된 상호작용 능력, (3) 예를 들면, 전자 메일 등의 다양한 애플리케이션, 또는 Office.NET 등의 소프트웨어의 관리를 위한 중심 시작점으로부터 사용자로의 제품들 및 서비스들의 커스터마이즈된 액세스 및 전달을 특징으로 하는 온라인 서비스, (4) 정보에의 액세스는 물론, 사용자들과 장치들 사이의 정보의 동기화의 효율 및 용이성을 증대시키는 중앙 집중식 데이터 저장, (5) 전자 메일, 팩스, 및 전화 등의 다양한 통신 매체를 통합하는 능력을 제공하고, (6) 개발자를 위해서는, 재사용 가능한 모듈들을 생성함으로써, 생산성을 증대시키고 프로그래밍 오류의 수를 감소시키는 능력, 및 (7) 다수의 기타 크로스-플랫폼 및 언어 통합 특징도 제공한다.
여기서 일부 예시적인 실시예들은 컴퓨팅 장치 상에 상주하는 애플리케이션 프로그래밍 인터페이스(API) 등의, 소프트웨어와 관련하여 설명되지만, 본 발명의 하나 이상의 부분들은 운영 체제, 또는 "중간자(middle man)" 개체, 컨트롤 개체, 하드웨어, 펌웨어, 중간 언어(intermediate language) 명령 또는 개체 등을 통하여 구현될 수도 있고, 따라서 본 발명에 따른 클라이언트로부터 서버로 자격 증명들을 위임하는 방법들은 .NET 코드 등이 관리형 코드에 의해 가능해지는 언어들 및 서비스들 모두에 포함되거나, 그 모두에서 지원되거나 또는 그 모두를 통하여 액세스될 수 있고, 다른 분산 컴퓨팅 프레임워크들에서도 지원될 수 있다.
애플리케이션들 및 서비스들이 본 발명의 클라이언트로부터 서버로 자격 증명들을 위임하는 시스템들 및 방법들을 이용할 수 있게 하는, 예를 들면, 적절한 API, 툴 키트, 드라이버 코드, 운영 체제, 컨트롤, 독립 실행형 또는 다운로드 가능한 소프트웨어 개체 등의, 본 발명의 구현하는 다수의 방법들이 존재한다. 본 발명은 API(또는 기타 소프트웨어 개체)의 관점으로부터는 물론, 본 발명에 따라 다운로드된 프로그램을 수신하는 소프트웨어 또는 하드웨어 개체로부터도 본 발명의 사용을 고려한다. 따라서, 여기서 설명된 발명의 다양한 구현들은 소프트웨어로 구현될 뿐만 아니라, 전적으로 하드웨어로 구현되는, 부분적으로 하드웨어로 구현되고 부분적으로 소프트웨어로 구현되는 양태들을 가질 수 있다.
전술한 바와 같이, 본 발명의 예시적인 실시예들은 다양한 컴퓨팅 장치들 및 네트워크 아키텍처들과 관련하여 설명되었지만, 기초가 되는 개념들은 클라이언트로부터 서버로 자격 증명들을 위임하는 것이 바람직한 임의의 컴퓨팅 장치 또는 시스템에 적용될 수 있다. 예를 들면, 본 발명의 알고리즘(들) 및 하드웨어 구현들은 장치 상의 개별 개체로서, 다른 개체의 일부로서, 재사용 가능한 컨트롤로서, 서버로부터 다운로드 가능한 개체로서, 장치 또는 개체와 네트워크 사이의 "중간자"로서, 분산된 개체로서, 메모리 내의 하드웨어로서, 전술한 것들 중 임의의 것의 조합 등으로서 제공된, 컴퓨팅 장치의 운영 체제에 적용될 수 있다. 여기서는 다양한 선택들을 대표하는 것으로 예시적인 프로그래밍 언어, 이름 및 예들이 선택되었지만, 이들 언어, 이름 및 예들은 제한적인 것이 아니다. 해당 기술 분야의 통상의 기술을 가진 자라면 본 발명의 다양한 실시예들에 의해 달성되는 동일한, 유사한 또는 등가의 기능을 달성하는 개체 코드 및 명칭을 제공하는 다수의 방법이 있다는 것을 알 것이다.
전술한 바와 같이, 여기서 설명된 다양한 기법들은 하드웨어 또는 소프트웨어와 관련하여, 또는, 적절한 경우, 그 둘의 조합과 관련하여 구현될 수 있다. 따라서, 본 발명의 방법들 및 장치, 또는 그의 특정 양태들 또는 부분들은, 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 머신 판독가능 저장 매체 등의, 유형 매체에 구현된 프로그램 코드(즉, 명령들)의 형태를 취할 수 있고, 그 프로그램 코드가 컴퓨터 등의 머신에 로딩되어 실행될 때, 머신은 본 발명을 실시하기 위한 장치가 된다. 프로그램 가능한 컴퓨터 상에서의 프로그램 코드 실행의 경우에, 컴퓨팅 장치는 일반적으로 프로세서, 그 프로세서에 의해 판독 가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 요소들을 포함함), 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함한다. 예를 들면, 데이터 처리 API, 재사용 가능한 컨트를 등의 사용을 통하여, 본 발명의 클라이언트로부터 서버로 자격 증명들을 위임하는 방법들을 구현하거나 이용할 수 있는 하나 이상의 프로그램들은 바람직하게는 컴퓨터 시스템과 통신하는 고수준 절차 또는 개체 지향 프로그래밍 언어로 구현된다. 그러나, 그 프로그램(들)은 원한다면 어셈블리 또는 기계 언어로 구현될 수 있다. 어느 경우든, 그 언어는 컴파일된 또는 번역된 언어일 수 있고, 하드웨어 구현과 결합될 수 있다.
본 발명의 방법들 및 장치는 또한, 어떤 전송 매체를 통하여, 예를 들면, 전기 배선 또는 케이블링을 통하여, 광섬유를 통하여, 또는 임의의 다른 전송 형태를 통하여 전송되는 프로그램 코드의 형태로 구현된 통신을 통하여 실시될 수도 있고, 그 프로그램 코드가 수신되어, EEPROM, 게이트 어레이, 프로그램머블 로직 디바이스(PLD; programmable logic device), 클라이언트 컴퓨터 등의 머신에 로딩되어 그에 의해 실행될 때, 그 머신은 본 발명을 실시하기 위한 장치가 된다. 범용 프로세서 상에서 실행될 때, 그 프로그램 코드는 프로세서와 결합하여 본 발명의 기능을 불러내도록 동작하는 고유의 장치를 제공한다. 또한, 본 발명과 관련하여 이용되는 임의의 저장 기법들은 변함없이 하드웨어와 소프트웨어의 조합일 수 있다.
본 발명은 다양한 도면들의 바람직한 실시예들과 관련하여 설명되었지만, 다른 유사한 실시예들이 이용될 수 있고 또는 설명된 실시예들에 있어서 그로부터 일탈하지 않고 본 발명의 동일한 기능을 수행하기 위한 변형 및 추가가 이루어질 수 있다. 예를 들면, 본 발명의 예시적인 네트워크 환경들은 피어 투 피어 네트워크화된 환경과 같은 네트워크화된 환경의 컨텍스트에서 설명되었지만, 해당 기술 분야의 숙련자라면 본 발명은 그것에 제한되지 않고, 본 출원에서 설명된 방법들은, 유선이든 무선이든 관계없이, 게이밍 콘솔, 핸드헬드 컴퓨터, 포터블 컴퓨터 등의 임의의 컴퓨팅 장치 또는 환경에 적용될 수 있고, 통신 네트워크를 통하여 접속되고, 그 네트워크를 가로질러 상호작용하는 임의의 수의 그러한 컴퓨팅 장치들에 적용될 수 있다. 또한, 특히 무선 네트워크화된 장치들의 수가 계속해서 증가함에 따라서, 핸드헬드 장치 운영 체제 및 기타 애플리케이션 특정 운영 체제를 포함하는 각종의 컴퓨터 플랫폼이 고려된다는 점에 유의해야 할 것이다.
예시적인 실시예들은 특정 프로그래밍 언어 구성들의 컨텍스트에서 본 발명을 이용하는 것을 언급하고 있으나, 본 발명은 그와 같이 제한되지 않고, 오히려 임의의 언어로 구현되어 클라이언트로부터 서버로 자격 증명들을 위임하는 방법을 제공할 수 있다. 또한, 본 발명은 복수의 처리 칩들 또는 장치들에서 또는 그들을 가로질러 구현될 수 있고, 저장도 유사하게 복수의 장치들을 가로질러 실행될 수 있다. 그러므로, 본 발명은 임의의 단일 실시예에 제한되어서는 안 되고, 오히려 첨부된 청구항들에 따라서 폭 및 범위가 해석되어야 한다.

Claims (22)

  1. 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들(user credentials)을 위임하는 방법으로서,
    상기 클라이언트로부터 상기 서버로의 사용자 자격 증명들의 위임을 관련시키는 상기 네트워크화된 컴퓨팅 환경 내의 서버의 애플리케이션, 서비스 또는 리소스에 대한 클라이언트로부터의 요청;
    상기 클라이언트와 상기 서버 간의 핸드셰이크(handshake)를 개시하는 단계;
    상기 클라이언트와 상기 서버 간의 통신을 인증하기 위한 인증 메커니즘으로서 이용하기 위해 상기 클라이언트와 서버 간에 공유되는 인증 패키지를 선택하기 위해 교섭하는 단계;
    상기 선택된 인증 패키지를 상기 인증 메커니즘으로서 이용하여 상기 서버 및 상기 클라이언트를 상호 인증하는 단계;
    상기 상호 인증 단계에 따라서 상호 인증이 발생하였는지를 판정하고, 만일 상호 인증이 발생하였다면, 상기 클라이언트와 상기 서버 간에 통신되는 메시지들의 암호화를 위한 공유 비밀(shared secret)을 확립하는 것을 포함하여 상기 클라이언트와 서버 간에 세션을 확립하는 단계;
    상기 요청에 대한 상기 자격 증명들을 송신하기 전에, 상기 서버가 상기 사용자의 자격 증명들을 이용하여 신뢰될 수 있는지를 판정하기 위해 사용자 자격 증명들에 대하여 정의된 적어도 하나의 사전 정의된 정책에 따라 정책 체크를 수행하 는 단계; 및
    만일 상기 서버가 신뢰될 수 있다면, 상기 클라이언트로부터 상기 서버의 상기 요청된 애플리케이션, 서비스 또는 리소스에 액세스하기 위해 상기 사용자의 자격 증명들을 상기 서버에 송신하는 단계
    를 포함하는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  2. 제1항에 있어서, 상기 적어도 하나의 사전 정의된 정책은 클라이언트로부터 서버로의 사용자 자격 증명들의 위임을 제어하고 제한하는 데 이용되는 복수의 정책들인, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  3. 제2항에 있어서, 상기 복수의 정책들은 상기 클라이언트 상에서 실행하는 트로이 목마(Trojan) 또는 악성 소프트웨어(malware), 상기 클라이언트의 관리자에 의해 구성 가능한 디폴트 그룹 정책 설정들 및 그룹 정책 값들, 악당 서버(rogue server)에 대한 분석(resolution) 및 서비스 공격들의 거부를 피하는 도메인 이름 서비스(DNS) 중독(poisoning) 중 적어도 하나를 포함하는 광범위한 공격들의 완화를 취급(address)하는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  4. 제2항에 있어서, 상기 복수의 정책들은 상기 서버의 서비스 주체 이름(SPN; service principal name)들의 목록에 기초하여 위임을 허용하거나 거부하는 것 중 적어도 하나를 행하는 정책들을 포함하는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  5. 제1항에 있어서, 상기 수행하는 단계는 상기 인증 메커니즘의 상대적인 강도에 따라서 정책 체크를 수행하는 단계를 포함하는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  6. 제1항에 있어서, 상기 수행하는 단계는 사용자 자격 증명들의 유형에 기초하여 정의된 적어도 하나의 사전 정의된 정책에 따라서 정책 체크를 수행하는 단계를 포함하는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  7. 제6항에 있어서, 상기 수행하는 단계는 상기 사용자 자격 증명들이 새로운(fresh) 자격 증명들인지, 저장된(saved) 자격 증명들인지, 디폴트(default) 자격 증명들인지에 기초하여 정의된 적어도 하나의 사전 정의된 정책에 따라서 정책 체크를 수행하는 단계를 포함하는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  8. 제1항에 있어서, 상기 사용자의 자격 증명들을 송신하는 단계는 로컬 보안 시스템의 신뢰되는 서브시스템만이 명백한 텍스트 포맷의 상기 사용자의 자격 증명들에 액세스할 수 있는 포맷으로 상기 사용자의 자격 증명들을 송신하는 단계를 포함하는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  9. 제8항에 있어서, 상기 정책 체크를 수행하는 단계는 LSA(local security authority)에 의해 수행되고 상기 신뢰되는 서브시스템은 상기 LSA의 신뢰되는 서브시스템인, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  10. 제1항에 있어서, 상기 클라이언트와 상기 서버 간에 상기 세션을 확립한 후에, 상기 서버의 공개 키를 인증하는 단계를 더 포함하는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  11. 제1항에 있어서, 상기 단계들은 보안 지원 제공자 인터페이스(SSPI; security support provider interface)를 통하여 상기 요청을 행하는 상기 클라이언트가 이용할 수 있게 되는 자격 증명 보안 지원 제공자 컴포넌트(credential security support provider component)를 통하여 수행되는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  12. 제1항에 있어서, 상기 초기 핸드셰이크는 SSL(secure sockets layer) 또는 TLS(transport layer security) 프로토콜에 따른 핸드세이크인, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  13. 제1항에 있어서, 상기 교섭하는 단계는 SPNEGO[Simple and Protected GSSAPI(Generic Security Service Application Program Interface) Negotiation Mechanism] 교섭을 이용하여 교섭하는 단계를 포함하는, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  14. 제1항에 있어서, 상기 선택된 인증 패키지는 커베로스(Kerberos) 또는 NTML[NT LAN(Local Area Network) Manager] 중 어느 하나인, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  15. 제1항에 있어서, 상기 공유 비밀은 공유 세션 키인, 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
  16. 제1항의 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 갖는 컴퓨터 실행가능 인터페이스 모듈들을 포함하는 애플리케이션 프로그래밍 인터페이스.
  17. 클라이언트 컴퓨팅 장치로서,
    네트워크화된 컴퓨팅 환경 내의 서버의 애플리케이션, 서비스 또는 리소스에 대한 클라이언트 컴퓨팅 장치로부터의 요청을 처리하기 위한 자격 증명 보안 지원 제공자 컴포넌트(credential security support provider component)를 포함하고, 상기 요청은 상기 클라이언트 컴퓨팅 장치로부터 상기 서버로의 사용자 자격 증명들의 위임을 관련시키고;
    상기 자격 증명 보안 지원 제공자 컴포넌트는 상기 클라이언트와 상기 서버 간의 핸드셰이크를 개시하고, 상기 클라이언트와 상기 서버 간의 통신을 인증하기 위한 인증 패키지로서 이용하기 위해 상기 클라이언트와 서버 간에 공유되는 보안 지원 제공자(security support provider)의 선택을 교섭하고, 상기 인증 패키지를 이용하여 상기 서버 및 상기 클라이언트를 상호 인증하는 단계들을 수행하고;
    만일 상호 인증이 발생하였다면, 상기 자격 증명 보안 지원 제공자는 상기 클라이언트와 서버 간에 세션을 확립하고 상기 세션에 따라서 상기 클라이언트와 상기 서버 간에 통신되는 메시지들의 암호화를 위한 공유 비밀을 확립하고, 상기 클라이언트 컴퓨팅 장치로부터 상기 서버로의 사용자 자격 증명들의 위임을 제어하고 제한하는 데 이용되는 적어도 하나의 사전 정의된 정책에 따라서 정책 체크를 수행하고, 상기 정책 체크가 통과되는 경우에만 상기 클라이언트로부터 상기 서버의 상기 요청된 애플리케이션, 서비스 또는 리소스에 액세스하기 위해 상기 사용자의 자격 증명들을 상기 서버에 송신하는 클라이언트 컴퓨팅 장치.
  18. 제17항에 있어서, 상기 자격 증명 보안 지원 제공자는 LSA(local security authority)의 신뢰되는 서브시스템만이 명백한 텍스트 포맷으로 디코딩할 수 있는 포맷으로 상기 사용자의 자격 증명들을 송신하는 클라이언트 컴퓨팅 장치.
  19. 제17항에 있어서, 상기 적어도 하나의 사전 정의된 정책은 상기 클라이언트 상에서 실행하는 트로이 목마(Trojan) 또는 악성 소프트웨어(malware), 상기 클라이언트의 관리자에 의해 구성 가능한 디폴트 그룹 정책 설정들 및 그룹 정책 값들, 악당 서버(rogue server)에 대한 분석(resolution) 및 서비스 공격들의 거부를 피하는 도메인 이름 서비스(DNS) 중독(poisoning) 중 적어도 하나를 포함하는 광범위한 공격들 중 어느 하나 또는 그 이상의 완화를 취급(address)하는 클라이언트 컴퓨팅 장치.
  20. 제17항에 있어서, 상기 적어도 하나의 사전 정의된 정책은 상기 인증 메커니즘의 상대적인 강도에 기초한 위임 정책을 포함하는 클라이언트 컴퓨팅 장치.
  21. 제17항에 있어서, 상기 적어도 하나의 사전 정의된 정책은 상기 사용자 자격 증명들이 새로운(fresh) 자격 증명들인지, 저장된(saved) 자격 증명들인지, 디폴트(default) 자격 증명들인지에 기초한 위임 정책을 포함하는 클라이언트 컴퓨팅 장치.
  22. 서버의 리소스들에 대한 싱글 사인(single sign)의 일부로서 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법으로서,
    상기 서버의 리소스들의 세트에 액세스하기 위해 클라이언트의 사용자 인터페이스 컴포넌트의 싱글 사인을 통하여 사용자의 자격 증명들을 수신하는 단계; 및 그에 응답하여,
    TLS(transport layer security)에 따라서 상기 클라이언트와 상기 서버 간의 핸드셰이크를 개시하는 단계;
    상기 클라이언트와 상기 서버 간의 통신을 인증하기 위한 인증 메커니즘으로서 이용하기 위해 상기 클라이언트와 서버 간에 공유되는 인증 패키지를 선택하기 위해 교섭하는 단계;
    상기 선택된 인증 패키지를 상기 인증 메커니즘으로서 이용하여 상기 서버 및 상기 클라이언트를 상호 인증하는 단계;
    만일 상호 인증이 발생하였다면, 상기 클라이언트와 상기 서버 간에 통신되는 메시지들의 암호화를 위한 공유 비밀을 확립하는 것을 포함하여 상기 클라이언트와 서버 간에 세션을 확립하는 단계;
    상기 리소스들의 세트에 액세스하기 위해 상기 사용자의 자격 증명들을 상기 서버에 안전하게 위임하는 단계
    를 포함하는, 서버의 리소스들에 대한 싱글 사인의 일부로서 네트워크화된 컴퓨팅 환경에서 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법.
KR1020087028345A 2006-05-26 2007-05-25 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법, 애플리케이션 프로그래밍 인터페이스, 및 클라이언트컴퓨팅 장치 KR101414312B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/441,588 US7913084B2 (en) 2006-05-26 2006-05-26 Policy driven, credential delegation for single sign on and secure access to network resources
US11/441,588 2006-05-26
PCT/US2007/012512 WO2007139944A2 (en) 2006-05-26 2007-05-25 Policy driven, credential delegation for single sign on and secure access to network resources

Publications (2)

Publication Number Publication Date
KR20090012244A true KR20090012244A (ko) 2009-02-02
KR101414312B1 KR101414312B1 (ko) 2014-07-04

Family

ID=38750973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087028345A KR101414312B1 (ko) 2006-05-26 2007-05-25 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법, 애플리케이션 프로그래밍 인터페이스, 및 클라이언트컴퓨팅 장치

Country Status (17)

Country Link
US (1) US7913084B2 (ko)
EP (1) EP2021938B1 (ko)
JP (1) JP5139423B2 (ko)
KR (1) KR101414312B1 (ko)
CN (1) CN101449257B (ko)
AU (1) AU2007267836B2 (ko)
BR (1) BRPI0711702A2 (ko)
CA (1) CA2654381C (ko)
CL (1) CL2007001510A1 (ko)
IL (1) IL194962A (ko)
MX (1) MX2008014855A (ko)
MY (1) MY148801A (ko)
NO (1) NO20084500L (ko)
RU (1) RU2439692C2 (ko)
TW (1) TWI439103B (ko)
WO (1) WO2007139944A2 (ko)
ZA (1) ZA200809318B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101102855B1 (ko) * 2010-04-26 2012-01-10 엔에이치엔(주) 게임 클라이언트 독립적인 게임 인증을 제공하기 위한 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
KR101430792B1 (ko) * 2010-10-14 2014-08-18 캐논 가부시끼가이샤 정보 처리 장치, 그 제어 방법 및 컴퓨터 판독가능한 저장 매체

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10181953B1 (en) 2013-09-16 2019-01-15 Amazon Technologies, Inc. Trusted data verification
EP1466261B1 (en) 2002-01-08 2018-03-07 Seven Networks, LLC Connection architecture for a mobile network
US7742582B2 (en) 2005-02-17 2010-06-22 Core Systems (Ni) Limited Offender message delivery system
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8028325B2 (en) * 2005-08-08 2011-09-27 AOL, Inc. Invocation of a third party's service
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
JP2008052578A (ja) * 2006-08-25 2008-03-06 Seiko Epson Corp アクセス制御装置、画像表示装置及びプログラム
US8467527B2 (en) 2008-12-03 2013-06-18 Intel Corporation Efficient key derivation for end-to-end network security with traffic visibility
US8528058B2 (en) * 2007-05-31 2013-09-03 Microsoft Corporation Native use of web service protocols and claims in server authentication
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8291481B2 (en) * 2007-09-18 2012-10-16 Microsoft Corporation Sessionless redirection in terminal services
US8387130B2 (en) * 2007-12-10 2013-02-26 Emc Corporation Authenticated service virtualization
US8539568B1 (en) 2007-10-03 2013-09-17 Courion Corporation Identity map creation
WO2009076447A1 (en) * 2007-12-10 2009-06-18 Courion Corporaton Policy enforcement using esso
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8434149B1 (en) * 2007-12-21 2013-04-30 Symantec Corporation Method and apparatus for identifying web attacks
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US9218469B2 (en) * 2008-04-25 2015-12-22 Hewlett Packard Enterprise Development Lp System and method for installing authentication credentials on a network device
US8943560B2 (en) 2008-05-28 2015-01-27 Microsoft Corporation Techniques to provision and manage a digital telephone to authenticate with a network
US8799630B2 (en) * 2008-06-26 2014-08-05 Microsoft Corporation Advanced security negotiation protocol
TW201011587A (en) * 2008-09-03 2010-03-16 Wayi Internat Digital Entertainment Co Ltd Computer tied-in system and its method
US7941549B2 (en) * 2008-09-16 2011-05-10 Microsoft Corporation Protocol exchange and policy enforcement for a terminal server session
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8413210B2 (en) * 2008-12-09 2013-04-02 Microsoft Corporation Credential sharing between multiple client applications
US20100175113A1 (en) * 2009-01-05 2010-07-08 International Business Machine Corporation Secure System Access Without Password Sharing
US8392982B2 (en) * 2009-03-20 2013-03-05 Citrix Systems, Inc. Systems and methods for selective authentication, authorization, and auditing in connection with traffic management
US8458732B2 (en) * 2009-08-19 2013-06-04 Core Systems (Ni) Limited Inmate information center for correctional facility processing
US8555054B2 (en) 2009-10-12 2013-10-08 Palo Alto Research Center Incorporated Apparatus and methods for protecting network resources
US8156546B2 (en) * 2009-10-29 2012-04-10 Satyam Computer Services Limited Of Mayfair Centre System and method for flying squad re authentication of enterprise users
TW201126371A (en) * 2010-01-27 2011-08-01 Hui Lin Online gaming authentication framework and method
US20110231670A1 (en) * 2010-03-16 2011-09-22 Shevchenko Oleksiy Yu Secure access device for cloud computing
US9160738B2 (en) 2010-05-27 2015-10-13 Microsoft Corporation Delegation-based authorization
US8688994B2 (en) 2010-06-25 2014-04-01 Microsoft Corporation Federation among services for supporting virtual-network overlays
US20120017274A1 (en) * 2010-07-15 2012-01-19 Mcafee, Inc. Web scanning site map annotation
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
EP3651028A1 (en) 2010-07-26 2020-05-13 Seven Networks, LLC Mobile network traffic coordination across multiple applications
US8505083B2 (en) 2010-09-30 2013-08-06 Microsoft Corporation Remote resources single sign on
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
AU2010246354B1 (en) * 2010-11-22 2011-11-03 Microsoft Technology Licensing, Llc Back-end constrained delegation model
EP2636268B1 (en) 2010-11-22 2019-02-27 Seven Networks, LLC Optimization of resource polling intervals to satisfy mobile device requests
US9237155B1 (en) 2010-12-06 2016-01-12 Amazon Technologies, Inc. Distributed policy enforcement with optimizing policy transformations
US9258312B1 (en) 2010-12-06 2016-02-09 Amazon Technologies, Inc. Distributed policy enforcement with verification mode
CN103403707B (zh) * 2010-12-28 2017-11-14 思杰系统有限公司 用于数据库代理请求交换的系统和方法
WO2012094675A2 (en) 2011-01-07 2012-07-12 Seven Networks, Inc. System and method for reduction of mobile network traffic used for domain name system (dns) queries
US20120254972A1 (en) * 2011-04-04 2012-10-04 International Business Machines Corporation Trust system
US20120271903A1 (en) 2011-04-19 2012-10-25 Michael Luna Shared resource and virtual resource management in a networked environment
GB2505585B (en) 2011-04-27 2015-08-12 Seven Networks Inc Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
GB2493473B (en) 2011-04-27 2013-06-19 Seven Networks Inc System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US8973108B1 (en) * 2011-05-31 2015-03-03 Amazon Technologies, Inc. Use of metadata for computing resource access
US8769642B1 (en) * 2011-05-31 2014-07-01 Amazon Technologies, Inc. Techniques for delegation of access privileges
DE102011077218B4 (de) 2011-06-08 2023-12-14 Servicenow, Inc. Zugriff auf in einer Cloud gespeicherte Daten
US8719571B2 (en) * 2011-08-25 2014-05-06 Netapp, Inc. Systems and methods for providing secure multicast intra-cluster communication
US9203613B2 (en) 2011-09-29 2015-12-01 Amazon Technologies, Inc. Techniques for client constructed sessions
US9197409B2 (en) 2011-09-29 2015-11-24 Amazon Technologies, Inc. Key derivation techniques
US9178701B2 (en) 2011-09-29 2015-11-03 Amazon Technologies, Inc. Parameter based key derivation
US9038155B2 (en) 2011-12-02 2015-05-19 University Of Tulsa Auditable multiclaim security token
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
WO2013086225A1 (en) 2011-12-06 2013-06-13 Seven Networks, Inc. A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
US9009250B2 (en) 2011-12-07 2015-04-14 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9021021B2 (en) 2011-12-14 2015-04-28 Seven Networks, Inc. Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US8909202B2 (en) 2012-01-05 2014-12-09 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US8739308B1 (en) 2012-03-27 2014-05-27 Amazon Technologies, Inc. Source identification for unauthorized copies of content
US9215076B1 (en) 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US8892865B1 (en) 2012-03-27 2014-11-18 Amazon Technologies, Inc. Multiple authority key derivation
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US20130268656A1 (en) 2012-04-10 2013-10-10 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
US9660972B1 (en) 2012-06-25 2017-05-23 Amazon Technologies, Inc. Protection from data security threats
US9258118B1 (en) 2012-06-25 2016-02-09 Amazon Technologies, Inc. Decentralized verification in a distributed system
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9176838B2 (en) 2012-10-19 2015-11-03 Intel Corporation Encrypted data inspection in a network environment
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US20140177497A1 (en) 2012-12-20 2014-06-26 Seven Networks, Inc. Management of mobile device radio state promotion and demotion
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
WO2014193396A1 (en) * 2013-05-30 2014-12-04 Intel Corporation Adaptive authentication systems and methods
US9407440B2 (en) 2013-06-20 2016-08-02 Amazon Technologies, Inc. Multiple authority data security and access
US9521000B1 (en) 2013-07-17 2016-12-13 Amazon Technologies, Inc. Complete forward access sessions
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
CN104468074A (zh) * 2013-09-18 2015-03-25 北京三星通信技术研究有限公司 应用程序之间认证的方法及设备
US9237019B2 (en) 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with keys
US9311500B2 (en) 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9112846B2 (en) * 2013-10-11 2015-08-18 Centrify Corporation Method and apparatus for transmitting additional authorization data via GSSAPI
US10243945B1 (en) 2013-10-28 2019-03-26 Amazon Technologies, Inc. Managed identity federation
US10575347B2 (en) 2013-11-04 2020-02-25 Microsoft Technology Licensing, Llc Delivery of shared WiFi credentials
US9420007B1 (en) 2013-12-04 2016-08-16 Amazon Technologies, Inc. Access control using impersonization
US9369461B1 (en) 2014-01-07 2016-06-14 Amazon Technologies, Inc. Passcode verification using hardware secrets
US9292711B1 (en) 2014-01-07 2016-03-22 Amazon Technologies, Inc. Hardware secret usage limits
US9374368B1 (en) 2014-01-07 2016-06-21 Amazon Technologies, Inc. Distributed passcode verification system
US9270662B1 (en) 2014-01-13 2016-02-23 Amazon Technologies, Inc. Adaptive client-aware session security
US9467441B2 (en) * 2014-02-25 2016-10-11 Dell Products, L.P. Secure service delegator
US10771255B1 (en) 2014-03-25 2020-09-08 Amazon Technologies, Inc. Authenticated storage operations
US9413738B2 (en) * 2014-06-19 2016-08-09 Microsoft Technology Licensing, Llc Securing communications with enhanced media platforms
US9258117B1 (en) 2014-06-26 2016-02-09 Amazon Technologies, Inc. Mutual authentication with symmetric secrets and signatures
US10326597B1 (en) 2014-06-27 2019-06-18 Amazon Technologies, Inc. Dynamic response signing capability in a distributed system
US11275861B2 (en) * 2014-07-25 2022-03-15 Fisher-Rosemount Systems, Inc. Process control software security architecture based on least privileges
US9942229B2 (en) * 2014-10-03 2018-04-10 Gopro, Inc. Authenticating a limited input device via an authenticated application
US10225245B2 (en) 2014-11-18 2019-03-05 Auth0, Inc. Identity infrastructure as a service
TW201619866A (zh) 2014-11-20 2016-06-01 萬國商業機器公司 客製化資訊設備的方法
CN104660583B (zh) * 2014-12-29 2018-05-29 国家电网公司 一种基于Web加密服务的加密服务方法
CN104780154B (zh) 2015-03-13 2018-06-19 小米科技有限责任公司 设备绑定方法和装置
TWI563412B (en) * 2015-04-30 2016-12-21 Taiwan Ca Inc System for using trust token to make application obtain digital certificate signature from another application on device and method thereof
US10122692B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Handshake offload
US10122689B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Load balancing with handshake offload
WO2017079980A1 (zh) * 2015-11-13 2017-05-18 华为技术有限公司 一种计费欺诈的检测方法及装置
US10075424B2 (en) * 2016-03-28 2018-09-11 Airwatch Llc Application authentication wrapper
CN106101054A (zh) * 2016-04-29 2016-11-09 乐视控股(北京)有限公司 一种多系统的单点登录方法和集中管控系统
US10372484B2 (en) * 2016-06-27 2019-08-06 Microsoft Technology Licensing, Llc Secured computing system
US10116440B1 (en) 2016-08-09 2018-10-30 Amazon Technologies, Inc. Cryptographic key management for imported cryptographic keys
US10387681B2 (en) * 2017-03-20 2019-08-20 Huawei Technologies Co., Ltd. Methods and apparatus for controlling access to secure computing resources
RU2658894C1 (ru) * 2017-07-26 2018-06-25 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ управления доступом к данным с защитой учетных записей пользователей
CN107451477A (zh) * 2017-07-28 2017-12-08 腾讯科技(深圳)有限公司 一种恶意程序检测的方法、相关装置及系统
US11032287B1 (en) * 2018-07-02 2021-06-08 Amazon Technologies, Inc. Delegated administrator with defined permission boundaries in a permission boundary policy attachment for web services and resources
CN110971576A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 一种安全认证的方法和相关装置
US11956275B2 (en) * 2018-10-11 2024-04-09 Micro Focus Llc Asymmetric-man-in-the-middle capture based application sharing protocol traffic recordation
US11477238B1 (en) 2018-10-16 2022-10-18 Styra, Inc. Viewing aggregate policies for authorizing an API
US11038881B2 (en) * 2018-11-01 2021-06-15 Cisco Technology, Inc. Anonymously generating an encrypted session for a client device in a wireless network
US11258756B2 (en) * 2018-11-14 2022-02-22 Citrix Systems, Inc. Authenticating to a hybrid cloud using intranet connectivity as silent authentication factor
TWI746920B (zh) * 2019-01-04 2021-11-21 臺灣網路認證股份有限公司 透過入口伺服器跨網域使用憑證進行認證之系統及方法
US11323480B2 (en) * 2019-05-07 2022-05-03 Cisco Technology, Inc. Policy enforcement and introspection on an authentication system
TWI791144B (zh) * 2020-03-17 2023-02-01 林金源 具會員身分等級之帳號管理系統
CN112887359B (zh) * 2020-12-31 2022-12-02 北京思特奇信息技术股份有限公司 一种跨域session共享方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228291B2 (en) * 2000-03-07 2007-06-05 International Business Machines Corporation Automated trust negotiation
US20020150253A1 (en) * 2001-04-12 2002-10-17 Brezak John E. Methods and arrangements for protecting information in forwarded authentication messages
US7243370B2 (en) * 2001-06-14 2007-07-10 Microsoft Corporation Method and system for integrating security mechanisms into session initiation protocol request messages for client-proxy authentication
CN1400779A (zh) * 2001-08-06 2003-03-05 平实数位股份有限公司 具有安全性的网络交易方法
KR20030033630A (ko) * 2001-10-24 2003-05-01 주식회사 오앤이시스템 커버로스 기반의 인증에이전트를 이용한 단일인증 시스템
US7644275B2 (en) * 2003-04-15 2010-01-05 Microsoft Corporation Pass-thru for client authentication
JP2005123996A (ja) * 2003-10-17 2005-05-12 National Institute Of Information & Communication Technology デバイス間において認証用情報を委譲する情報処理方法及び情報処理システム
US8140054B2 (en) * 2003-10-31 2012-03-20 Electronics And Telecommunications Research Institute Method for authenticating subscriber station, method for configuring protocol thereof, and apparatus thereof in wireless portable internet system
CN1635738A (zh) * 2003-12-26 2005-07-06 鸿富锦精密工业(深圳)有限公司 通用认证授权服务系统及方法
US7181761B2 (en) * 2004-03-26 2007-02-20 Micosoft Corporation Rights management inter-entity message policies and enforcement
US20090055642A1 (en) * 2004-06-21 2009-02-26 Steven Myers Method, system and computer program for protecting user credentials against security attacks
IL165416A0 (en) * 2004-11-28 2006-01-15 Objective data regarding network resources

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101102855B1 (ko) * 2010-04-26 2012-01-10 엔에이치엔(주) 게임 클라이언트 독립적인 게임 인증을 제공하기 위한 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
KR101430792B1 (ko) * 2010-10-14 2014-08-18 캐논 가부시끼가이샤 정보 처리 장치, 그 제어 방법 및 컴퓨터 판독가능한 저장 매체

Also Published As

Publication number Publication date
MX2008014855A (es) 2008-12-01
AU2007267836B2 (en) 2011-08-25
BRPI0711702A2 (pt) 2011-11-29
RU2008146517A (ru) 2010-05-27
IL194962A (en) 2014-03-31
EP2021938B1 (en) 2014-01-01
TW200810488A (en) 2008-02-16
EP2021938A2 (en) 2009-02-11
IL194962A0 (en) 2009-08-03
WO2007139944A3 (en) 2008-02-14
KR101414312B1 (ko) 2014-07-04
AU2007267836A1 (en) 2007-12-06
JP2009538478A (ja) 2009-11-05
CL2007001510A1 (es) 2008-01-25
EP2021938A4 (en) 2012-04-04
JP5139423B2 (ja) 2013-02-06
WO2007139944A2 (en) 2007-12-06
TWI439103B (zh) 2014-05-21
CA2654381A1 (en) 2007-12-06
MY148801A (en) 2013-05-31
CA2654381C (en) 2016-11-01
NO20084500L (no) 2008-11-26
CN101449257A (zh) 2009-06-03
US7913084B2 (en) 2011-03-22
ZA200809318B (en) 2010-02-24
CN101449257B (zh) 2011-05-11
RU2439692C2 (ru) 2012-01-10
US20070277231A1 (en) 2007-11-29

Similar Documents

Publication Publication Date Title
KR101414312B1 (ko) 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법, 애플리케이션 프로그래밍 인터페이스, 및 클라이언트컴퓨팅 장치
JP5038531B2 (ja) 信頼できる機器に限定した認証
Ertaul et al. Security Challenges in Cloud Computing.
JP4965558B2 (ja) ピアツーピア認証及び権限付与
US20210409403A1 (en) Service to service ssh with authentication and ssh session reauthentication
US9781096B2 (en) System and method for out-of-band application authentication
US20040093519A1 (en) Network protecting authentication proxy
EP2165499A2 (en) A method of preventing web browser extensions from hijacking user information
JP2009538478A5 (ko)
US11611541B2 (en) Secure method to replicate on-premise secrets in a cloud environment
Maidine et al. Cloud Identity Management Mechanisms and Issues
Sobh et al. Performance improvements on the network security protocols
Ogala & Mughele, SE (2022)
Vijayan Extending OAuth2. 0 for Kerberos-like authentication to avoid Internet phishing attacks
Prasetijo et al. Firewalling a Secure Shell Service

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
FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 6