KR20170062529A - 빠른 스마트 카드 로그온 및 연합된 풀 도메인 로그온 - Google Patents

빠른 스마트 카드 로그온 및 연합된 풀 도메인 로그온 Download PDF

Info

Publication number
KR20170062529A
KR20170062529A KR1020177011978A KR20177011978A KR20170062529A KR 20170062529 A KR20170062529 A KR 20170062529A KR 1020177011978 A KR1020177011978 A KR 1020177011978A KR 20177011978 A KR20177011978 A KR 20177011978A KR 20170062529 A KR20170062529 A KR 20170062529A
Authority
KR
South Korea
Prior art keywords
client device
smart card
server
certificate
authentication
Prior art date
Application number
KR1020177011978A
Other languages
English (en)
Other versions
KR102036758B1 (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 KR20170062529A publication Critical patent/KR20170062529A/ko
Application granted granted Critical
Publication of KR102036758B1 publication Critical patent/KR102036758B1/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
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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
    • 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/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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/3234Cryptographic 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 involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3263Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

빠른 그리고 보다 효과적인 스마트 카드 로그온을 위한, 그리고 원격 컴퓨팅 환경에서 클라이언트 장치 풀 도메인 접근을 제공하는 방법 및 시스템이 기술된다. 빠른 스마트 카드 로그온을 위하여, 시스템은 인증을 위하여 사용되는 서버 장치와 클라이언트 장치 사이의 작업(예를 들어, 사용자 인증서를 스마트 카드 또는 사인 데이터로부터 호출하는 것(fetching)과 같은 인터랙션들) 갯수를 감소시킬 수 있다. 빠른 스마트 카드 로그온을 실행하기 위하여 사용되는 요소들은 연합된 풀 도메인 로그온의 실행을 위하여 사용될 수 있다. 단기(ephemeral)로 이루어질 수 있는 가상 스마트 카드 크리덴셜은 외부의 인증 이벤트(예를 들어, SAML(Security Assertion Markup Language) 인증정보 제공자, TLS 또는 SSL 상의 스마트 카드 인증, 및 생체인증 또는 AD 패스워드 없는 OTP와 같은 대안의 인증 크리덴셜들)의 승인에 근거하여 발행될 수 있다.

Description

빠른 스마트 카드 로그온 및 연합된 풀 도메인 로그온 {FAST SMART CARD LOGON AND FEDERATED FULL DOMAIN LOGON}
본 출원은 " FAST SMART CARD LOGON AND FEDERATED[연합된] FULL DOMAIN LOGON "란 명칭으로 2014년 9월 30일에 출원된 계류중인 미국 출원 일련번호 제62/057,344호의 우선권을 주장한다.
본 개시내용은 클라이언트 상에서 스마트 카드 를 사용하여 원격 컴퓨팅 환경으로의 로깅(logging)하는 것 및/또는 클라이언트에게 풀 도메인 프리빌리지를 제공하는 것과 관련하여 기술되었다.
전통적으로, 스마트 카드 인증(authentication)은 서버(인증) 장치와 클라이언트 장치 사이의 많은 상호작용(interactions)들을 포함한다. 원격 컴퓨팅 환경들에서, 많은 인터랙티브들은 서버와 클라이언트 사이의 연결 지연속도(latency)의 증가로 인하여 크게 느려진다. 게다가, 원격 컴퓨팅 세션(session)으로 로그온을 시도하는 클라이언트 장치들은 풀 도메인 프리빌리지들이 주어지지 않을 수도 있다.
여기에 기술된 다양한 관점들의 간략화된 요약이 아래에 제시된다. 이 요약은 포괄적인 개요가 아니고, 키 또는 중요 요소를 식별하거나, 또는 청구항들의 범위를 서술하고자 할 의도는 아니다. 하기의 요약은 단순히 후에 제공되는 상세한 설명에 대한 도입부로서 간략화된 형태로 일부 개념을 제시한다.
상술한 종래 기술의 한계를 극복하고, 본 명세서를 읽고 이해함으로써 명백하게 될 다른 한계를 극복하기 위하여, 여기에 기술된 사항들은 스마트 카드와 같은 수단을 통한 더 빠르고 더 효과적인 로그온 방법 및 시스템들, 그리고 클라이언트 장치에 원격 컴퓨팅 환경의 풀 도메인 억세스를 제공하기 위한 방법 및 시스템들과 관련하여 기술된다.
빠른 스마트 카드 로그온은 지연속도를 저감하고 보안성을 향상시킬 수 있다. 예를 들어, 상기 시스템은 인증을 위하여 사용되는 서버 장치와 클라이언트 장치 사이의 작업(operation)들(예를 들어, 상호작용)의 수를 감소시킬 수 있다. 이 작업들은 스마트 카드 또는 서명 데이터로부터 사용자 인증서를 호출(fetching)하는 것을 포함한다. 또한, 빠른 스마트 카드 로그온은 네트워크 상에서 PIN(또는 다른 크리덴셜(credential))의 전송을 선택적으로 회피함으로써, 그리고, PIN 캐칭을 위한 재분류(resorting) 없이 로그온하는 실제의 원격 컴퓨팅 환경에 스마트 카드를 사용하는 인증 이벤트(예를 들어, 보안 소켓 계층(SSL, Secure Sockets Layer) 또는 전송 계층 보안(TLS, Transport Layer Security) 인증)으로부터 싱글 사인 온(single sign on)을 가능하게 하기 위하여 보안성을 향상시킬 수 있다.
빠른 스마트 카드 로그온의 실시에 사용되는 요소들은, 또한, 연합된 풀 도메인 로그온을 실시하기 위하여 사용될 수 있다. 임시(ephemeral[단기의])일 수 있는 가상 스마트 카드 크리덴셜은 외부 인증 이벤트의 수락(acceptance)에 근거하여 발행될(issued) 수 있다. 외부 인증 이벤트들의 예는 SAML(Security Assertion Markup Language) 인증정보 제공자(identity Provider)에서 로그온, TLS 또는 SSL상의 스마트 카드 인증, 및 바이오메트릭스(biometrics) 또는 AD 패스워드가 없는 OTP(one-time password)와 같은 다른 대안의 인증 크리덴셜들을 포함한다. 또한, 빠른 스마트 카드 로그온으로부터의 인증서 작업 차단(interception) 요소들은 PC/SC API 레벨에서 스마트 카드를 완전히 에뮬레이팅하지 않는 가상 스마트 카드와의 상호작용을 가능하게 하도록 사용될 수 있다. 상기 가상 스마트 카드는 원격 컴퓨팅 환경 또는 고도로(highly) 보호된 분리 서버 상에서 로컬적으로(locally) 생성될 수 있다.
이러한 그리고 추가적인 실시예들은 이하의 상세히 기술된 사항들과 함께 그 장점들이 쉽게 이해될 수 있다.
여기에 기술된 측면들 및 그 장점들은 유사한 참조 부호들이 유사한 특징들을 표시하는 이하의 첨부 도면들을 고려하여 이하의 상세한 설명을 참조함으로써 더 완전하게 이해될 수 있다.
도 1은 본 발명의 하나 이상의 실시예에 따라 사용될 수 있는 예시적인 컴퓨터 시스템 아키텍처를 도시한다.
도 2는 본 발명의 하나 이상의 실시예에 따라 사용될 수 있는 예시적인 원격-액세스 시스템 아키텍처를 도시한다.
도 3은 본 발명의 하나 이상의 실시예에 따라 사용될 수 있는 예시적인 가상화된(하이퍼바이저) 시스템 아키텍쳐를 도시한다.
도 4는 본 발명의 하나 이상의 실시예에 따라 사용될 수 있는 예시적인 클라우드-기반 시스템 아키텍쳐를 도시한다.
도 5는 예시적인 기업 모빌리티 관리 시스템을 도시한다.
도 6은 다른 기업 모빌리티 관리 시스템을 도시한다.
도 7은 본 발명의 하나 이상의 실시예에 따른 스마트 카드 로그온을 위한 예시적인 시스템을 나타낸다.
도 8은 본 발명의 하나 이상의 실시예에 따른 빠른 스마트 카드 로그온을 위한 예시적인 시스템을 나타낸다.
도 9는 본 발명의 하나 이상의 실시예에 따른 빠른 스마트 카드 로그온을 위한 다른 예시적인 시스템을 나타낸다.
도 10은 본 발명의 하나 이상의 실시예에 따른 빠른 스마트 카드 로그온을 위한 또 다른 예시적인 시스템을 나타낸다.
도 11은 본 발명의 하나 이상의 실시예에 따른 연합된 로그온을 위한 시스템을 나타낸다.
도 12A는 본 발명의 하나 이상의 실시예에 따른 연합된 로그온을 위한 다른 시스템을 나타낸다.
도 12B는 본 발명의 하나 이상의 실시예에 따른 연합된 로그온을 위한 또 다른 시스템을 나타낸다.
도 12C는 본 발명의 하나 이상의 실시예에 따른 연합된 로그온을 위한 다른 시스템을 나타낸다.
도 13은 본 발명의 하나 이상의 실시예에 따른 어플리케이션 스토어, 크리덴셜 매퍼 및 시각화 에이전트 사이의 상호작용을 나타낸다.
도 14는 본 발명의 하나 이상의 실시예에 따른 연합된 로그온을 위한 또 다른 시스템을 나타낸다.
도 15는 본 발명의 하나 이상의 실시예에 따른 크리덴셜 매핑 서비스를 제공하기 위한 시스템을 나타낸다.
다양한 실시예들의 이하의 설명에서는 실시예의 일부분을 형성하며, 본원에서 설명된 실시예들이 실시될 수 있는 예시적인 다양한 실시예들이 도시되는 앞서 식별된 첨부 도면들을 참조한다. 본원에서 설명된 범위로부터 벗어나지 않고, 다른 실시예들이 활용될 수 있고 구성 및 기능이 수정될 수 있다는 것이 이해되어야 한다. 다양한 실시예들은 다른 실시예들을 가능하게 하며 다양한 상이한 방식들로 실시되거나 또는 수행될 수 있다.
본원에서 사용되는 어법 및 전문용어가 설명을 위한 것이며 제한으로서 간주되지 않아야 한다는 것이 이해되어야 한다. 오히려, 본원에서 사용되는 문구들 및 용어들은 그들의 가장 넓은 해석 및 의미가 부여되어야 한다. "포함하는" 및 "구성하는" 및 이의 변형들의 사용은 이후에 리스트되는 항목들 및 이의 균등물들 뿐만아니라 추가 항목들 및 이의 균등물들을 포함하는 것으로 의미된다. "장착되는", "연결되는", "커플링되는", "포지셔닝되는", "연동되는"이라는 용어들 및 유사한 용어들의 사용은 직접적으로 및 간접적으로 장착하는, 연결하는, 커플링하는, 포지셔닝하는 및 연동하는 것을 포함하는 것으로 의도된다.
컴퓨팅 아키텍처
컴퓨터 소프트웨어, 하드웨어 및 네트워크들은 특히 스탠드얼론(standalone), 네트워크화, 원격-액세스(원격 데이크탑으로도 알려짐), 가상화 및/또는 클라우드-기반 환경들을 비롯하여 다양한 상이한 시스템 환경들에서 활용될 수 있다. 도 1은 스탠드얼론 및/또는 네트워크화 환경에서, 본원에서 설명된 하나 이상의 실시예들을 구현하기 위하여 사용될 수 있는 시스템 아키텍처 및 데이터 프로세싱 디바이스의 일례를 예시한다. 다양한 네트워크 노드들(103, 105, 107 및 109)은 광역 통신망(WAN)(101), 예컨대 인터넷을 통해 상호 연결될 수 있다. 사설 인트라넷들, 기업 네트워크들, LAN들, 도시권 통신망(MAN), 무선 네트워크들, 개인 네트워크(PAN)들 등을 포함하는 다른 네트워크들이 또한 또는 대안적으로 사용될 수 있다. 네트워크(101)는 예시적 목적이며, 더 적은 수의 컴퓨터 네트워크들로 또는 더 많은 수의 컴퓨터 네트워크들로 대체될 수 있다. 근거리 통신망(LAN)은 임의의 공지된 LAN 토폴로지 중 하나 이상을 가질 수 있으며, 이더넷과 같은 다양한 상이한 프로토콜들 중 하나 이상을 사용할 수 있다. 디바이스들(103, 105, 107, 109) 및 다른 디바이스들(도시안됨)은 트위스트 페어 와이어들, 동축 케이블, 광섬유들, 라디오 파들 또는 다른 통신 매체를 통해 네트워크들 중 하나 이상의 네트워크에 연결될 수 있다.
본원에서 사용되고 도면들에 도시된 바와같은 "네트워크"란 용어는 원격 저장 디바이스들이 하나 이상의 통신 경로들을 통해 함께 커플링되는 시스템들 뿐만아니라 가끔씩 저장 능력을 가지는 이러한 시스템들에 커플링될 수 있는 스탠드-얼론 디바이스들을 지칭한다. 결과적으로, 용어 "네트워크"는 "물리적 네트워크" 뿐만아니라 "콘텐츠 네트워크"를 포함하며, "콘텐츠 네트워크"는 모든 물리적 네트워크들에 걸쳐 상주하는 데이터로 구성되며, 단일 엔티티로 여겨질 수 있다.
컴포넌트들은 데이터 서버(103), 웹 서버(105) 및 클라이언트 컴퓨터들(107, 109)을 포함할 수 있다. 데이터 서버(103)는 본원에서 설명된 하나 이상의 실시예들을 수행하기 위한 제어 소프트웨어 및 데이터베이스들의 전체 액세스, 제어 및 관리를 제공한다. 데이터 서버(103)는 웹 서버(105)에 연결될 수 있으며, 웹 서버(105)를 통해 사용자들은 요청된 데이터와 인터랙티브하여 이 데이터를 획득한다. 대안적으로, 데이터 서버(103)는 그 자체적으로 웹 서버로서 작용할 수 있고 인터넷에 직접 연결될 수 있다. 데이터 서버(103)는 네트워크(101)(예컨대, 인터넷)를 통해, 직접 또는 간접 연결을 통해 또는 일부 다른 네트워크를 통해 웹 서버(105)에 연결될 수 있다. 사용자들은 웹 서버(105)에 의해 호스팅되는 하나 이상의 외부적으로 노출된 웹 사이트들을 통해 데이터 서버(103)에 연결하기 하여 원격 컴퓨터들(107, 109)을 사용하여, 예컨대 웹 브라우저들을 사용하여 데이터 서버(103)와 인터랙티브할 수 있다. 클라이언트 컴퓨터들(107, 109)은 데이터 서버(103)에 저장된 데이터에 액세스하기 위하여 데이터 서버(103)와 협력하여 사용될 수 있거나 또는 다른 목적들을 위해 사용될 수 있다. 예컨대, 클라이언트 디바이스(107)로부터, 사용자는 기술분야에서 공지된 인터넷 브라우저를 사용하여 또는 컴퓨터 네트워크(예컨대, 인터넷)를 통해 웹 서버(105) 및/또는 데이터 서버(103)와 통신하는 소프트웨어 애플리케이션을 실행함으로써 웹 서버(105)에 액세스할 수 있다.
서버들 및 애플리케이션들은 동일한 물리적 머신들상에서 결합될 수 있고, 개별적인 가상 또는 논리 어드레스들을 보유할 수 있거나 또는 개별 물리 머신들상에 상주할 수 있다. 도 1은 사용될 수 있는 네트워크 아키텍처의 단지 하나의 예를 예시하며, 당업자는, 본원에서 추가로 설명되는 바와같이, 사용된 특정 네트워크 아키텍처 및 데이터 프로세싱 디바이스들이 변경될 수 있으며, 이들이 제공하는 기능이 부차적이라는 것을 인식할 것이다. 예컨대, 웹 서버(105) 및 데이터 서버(103)에 의해 제공되는 서비스들은 단일 서버상에서 결합될 수 있다.
각각의 요소(103, 105, 107, 109)는 임의의 타입의 공지된 컴퓨터, 서버 또는 데이터 프로세싱 디바이스일 수 있다. 데이터 서버(103)는 예컨대 레이트 서버(rate server)(103)의 전체 동작을 제어하는 프로세서(111)를 포함할 수 있다. 데이터 서버(103)는 RAM(113), ROM(115), 네트워크 인터페이스(117), 입력/출력 인터페이스들(119)(예컨대, 키보드, 마우스, 디스플레이, 프린터 등) 및 메모리(121)를 더 포함할 수 있다. I/O(119)는 데이터 또는 파일들을 판독하고, 기록하며, 디스플레이하며 그리고/또는 프린트하기 위한 다양한 인터페이스 유닛들 및 드라이브들을 포함할 수 있다. 메모리(121)는 데이터 프로세싱 디바이스(103)의 전체 동작을 제어하기 위한 운영체제 소프트웨어(123), 본원에서 설명된 실시예들을 수행하도록 데이터 서버(103)에 명령하기 위한 제어 로직(125), 및 본원에서 설명된 실시예들과 함께 사용될 수 있거나 또는 본원에서 설명된 실시예들과 함께 사용되지 않을 수 있는 2차 기능, 지원 기능 및/또는 다른 기능을 제공하는 다른 애플리케이션 소프트웨어(127)를 추가로 저장할 수 있다. 제어 로직은 또한 데이터 서버 소프트웨어(125)로서 본원에서 지칭될 수 있다. 데이터 서버 소프트웨어의 기능은 제어 로직으로 코딩된 규칙들에 기초하여 자동적으로 만들어지거나 또는 사용자가 시스템내에 입력을 제공함으로써 수동적으로 만들어지거나 또는 사용자 입력(예컨대, 질의들, 데이터 업데이트들 등)에 기초한 자동 프로세싱의 조합으로 만들어진 동작들 또는 결정들을 지칭할 수 있다.
제 1 데이터베이스(129) 및 제 2 데이터베이스(131)를 포함하는 메모리(121)는 또한 본원에서 설명된 하나 이상의 실시예들의 수행시에 사용되는 데이터를 저장할 수 있다. 일부 실시예들에서, 제 1 데이터베이스는 (예컨대, 개별 테이블, 보고 등으로서) 제 2 데이터베이스를 포함할 수 있다. 즉, 시스템 설계에 따라, 정보는 단일 데이터베이스에 저장될 수 있거나 또는 상이한 논리적, 가상적 또는 물리적 데이터베이스들로 분리될 수 있다. 디바이스들(105, 107, 109)은 디바이스(103)와 관련하여 설명된 것과 유사한 또는 상이한 아키텍처를 가질 수 있다. 당업자는 본원에서 설명된 데이터 프로세싱 디바이스(103)(또는 디바이스들(105, 107, 109))의 기능이 예컨대 다수의 컴퓨터들에 걸쳐 프로세싱 로드를 분배하기 위하여, 즉 지리적 위치, 사용자 액세스 레벨, 서비스 품질(QoS) 등에 기초하여 트랜잭션(transaction)들을 분리하기 위하여, 다수의 데이터 프로세싱 디바이스들에 걸쳐 분산될 수 있다는 것을 인식할 것이다.
하나 이상의 실시예들은 본원에서 설명되는 바와같이 컴퓨터-사용가능 또는 판독가능 데이터 및/또는 컴퓨터-실행가능 명령들로, 예컨대 하나 이상의 컴퓨터들 또는 다른 디바이스들에 의해 실행되는 하나 이상의 프로그램 모듈들로 구현될 수 있다. 일반적으로, 프로그램 모듈들은 컴퓨터 또는 다른 디바이스의 프로세서에 의해 실행될 때 특정 태스크(task)들을 수행하거나 또는 특정 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 모듈들은 실행을 위해 나중에 컴파일링되는 소스 코드 프로그래밍 언어로 쓰여질 수 있거나 또는 HTML 또는 XML와 같은 (그러나, 이에 제한되지 않음) 스크립팅 언어(scripting language)로 쓰여질 수 있다. 컴퓨터 실행가능 명령들은 비휘발성 저장 디바이스와 같은 컴퓨터 판독가능 매체상에 저장될 수 있다. 하드 디스크들, CD-ROM들, 광 저장 디바이스들, 자기 저장 디바이스들 및/또는 이들의 임의의 조합을 포함하는 임의의 적절한 컴퓨터 판독가능 저장 매체가 활용될 수 있다. 더욱이, 본원에서 설명된 바와 같은 데이터 또는 이벤트들을 나타내는 다양한 전송(비-저장) 매체는 금속 와이어들, 광섬유들, 및/또는 무선 전송 매체(예컨대, 에어(air) 및/또는 공간)와 같은 신호-전도 매체(signal-conducting media)를 통해 이동하는 전자기 파들의 형태로 소스와 목적지사이에서 이동될 수 있다. 본원에서 설명된 다양한 실시예들은 방법, 데이터 프로세싱 시스템 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 다양한 기능들은 소프트웨어, 펌웨어 및/또는 하드웨어 또는 하드웨어 균등물들, 예컨대 집적회로들, 필드 프로그램가능 게이트 어레이(FPGA)들 등으로 전체적으로 또는 부분적으로 구현될 수 있다. 특정 데이터 구조들이 본원에서 설명된 하나 이상의 실시예들을 더 효과적으로 구현하기 위하여 사용될 수 있으며, 이러한 데이터 구조들은 본원에서 설명된 컴퓨터 실행가능 명령들 및 컴퓨터-사용가능 데이터의 범위내에 있는 것으로 고려된다.
도 2를 추가로 참조하면, 본원에서 설명된 하나 이상의 실시예들은 원격-액세스 환경에서 구현될 수 있다. 도 2는 본원에서 설명된 하나 이상의 예시적인 실시예들에 따라 사용될 수 있는 예시적인 컴퓨팅 환경(200)의 범용 컴퓨팅 디바이스(201)를 포함하는 예시적인 시스템 아키텍처를 도시한다. 예컨대, 범용 컴퓨팅 디바이스(201)는 클라이언트 액세스 디바이스들에 가상 머신들을 제공하도록 구성된 단일-서버 또는 멀티-서버 데스크탑 가상화 시스템(예컨대, 원격 액세스 또는 클라우드 시스템)에서 서버(206a)로서 사용될 수 있다. 범용 컴퓨팅 디바이스(201)는 랜덤 액세스 메모리(RAM)(205), 판독-전용 메모리(ROM)(207), 입력/출력(I/O) 모듈(209) 및 메모리(215)를 비롯하여 서버 및 이와 연관된 컴포넌트들의 전체 동작을 제어하기 위한 프로세서(203)를 가질 수 있다.
I/O 모듈(209)은 마우스, 키패드, 터치 스크린, 스캐너, 광 판독기, 및/또는 스타일러스(또는 다른 입력 디바이스(들)) ― 이를 통해 범용 컴퓨팅 디바이스(201)의 사용자는 입력을 제공할 수 있음 ―를 포함할 수 있으며, 또한 오디오 출력을 제공하기 위한 스피커 및 문자, 시청각 및/또는 그래픽 출력을 제공하기 위한 비디오 디스플레이 디바이스 중 하나 이상을 포함할 수 있다. 소프트웨어는 본원에서 설명된 바와 같은 다양한 기능들을 수행하기 위하여 범용 컴퓨팅 디바이스(201)를 특수 목적 컴퓨팅 디바이스로 구성하기 위한 명령들을 프로세서(203)에 제공하도록 메모리(215) 및/또는 다른 스토리지내에 저장될 수 있다. 예컨대, 메모리(215)는 컴퓨팅 디바이스(201)에 의해 사용된 소프트웨어, 예컨대 운영체제(217), 애플리케이션 프로그램들(219) 및 연관된 데이터베이스(221)를 저장할 수 있다.
컴퓨팅 디바이스(201)는 단말들(240)(또한 클라이언트 디바이스들로 지칭됨)과 같은 하나 이상의 원격 컴퓨터들에의 연결들을 지원하는 네트워크화 환경에서 동작할 수 있다. 단말들(240)은 범용 컴퓨팅 디바이스(103 또는 201)와 관련하여 앞서 설명된 엘리먼트들 모두 또는 많은 엘리먼트들을 포함하는, 퍼스널 컴퓨터들, 모바일 디바이스들, 랩탑 컴퓨터들, 태블릿들 또는 서버들일 수 있다. 도 2에 도시된 네트워크 연결들은 근거리 통신망(LAN)(225) 및 광역 통신망(WAN)(229)을 포함하나, 또한 다른 네트워크들을 포함할 수 있다. LAN 네트워킹 환경에서 사용될 때, 컴퓨팅 디바이스(201)는 네트워크 인터페이스 또는 어댑터(223)를 통해 LAN(225)에 연결될 수 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨팅 디바이스(201)는 모뎀(227), 또는 컴퓨터 네트워크(230)(예컨대, 인터넷)와 같이 WAN(229)를 통해 통신들을 설정하기 위한 다른 광역 네트워크 인터페이스를 포함할 수 있다. 도시된 네트워크 연결들이 예시적이며 컴퓨터들 사이에 통신 링크를 설정하는 다른 수단이 사용될 수 있다는 것이 인식될 것이다. 컴퓨팅 디바이스(201) 및/또는 단말들(240)은 또한 배터리, 스피커, 및 안테나들(도시안됨)과 같은 다양한 다른 컴포넌트들을 포함하는 모바일 단말들(예컨대, 모바일 폰들, 스마트폰들, PDA들, 노트북들 등)일 수 있다.
본원에서 설명된 실시예들은 또한 다수의 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경들 또는 구성들로 운용가능할 수 있다. 본원에서 설명된 실시예들과 함께 사용하기에 적합할 수 있는 다른 컴퓨팅 시스템들, 환경들 및/또는 구성들의 예들은 퍼스널 컴퓨터들, 서버 컴퓨터들, 핸드-헬드 또는 랩탑 디바이스들, 멀티프로세서 시스템들, 마이크로프로세서-기반 시스템들, 셋톱 박스들, 프로그램가능 가전제품들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들, 앞의 시스템들 또는 디바이스들 중 임의의 것을 포함하는 분산형 컴퓨팅 환경들 등을 포함하나 이들에 제한되지 않는다.
도 2에 도시된 바와같이, 하나 이상의 클라이언트 디바이스들(240)은 하나 이상의 서버들(206a-206n)(일반적으로 본원에서 "서버(들)(206)"로 지칭됨)과 통신할 수 있다. 일 실시예에서, 컴퓨팅 환경(200)은 서버(들)(206)와 클라이언트 머신(들)(240) 사이에 설치된 네트워크 어플라이언스(appliance)를 포함할 수 있다. 네트워크 어플라이언스는 클라이언트/서버 연결들을 관리할 수 있으며, 일부 경우들에서 복수의 백엔드 서버들(206) 사이의 클라이언트 연결들을 로드 밸런싱할 수 있다.
클라이언트 머신(들)(240)은 일부 실시예들에서 단일 클라이언트 머신(240) 또는 클라이언트 머신들(240)의 단일 그룹으로 지칭될 수 있는 반면에, 서버(들)(206)는 단일 서버(206) 또는 서버들(206)의 단일 그룹으로 지칭될 수 있다. 일 실시예에서, 단일 클라이언트 머신(240)은 2개 이상의 서버(206)와 통신하는 반면에, 다른 실시예에서 단일 서버(206)는 2개 이상의 클라이언트 머신(240)과 통신한다. 또 다른 실시예에서, 단일 클라이언트 머신(240)은 단일 서버(206)와 통신한다.
일부 실시예들에서, 클라이언트 머신(240)은 이하의 비-포괄적인 용어들, 즉 클라이언트 머신(들); 클라이언트(들); 클라이언트 컴퓨터(들); 클라이언트 디바이스(들); 클라이언트 컴퓨팅 디바이스(들); 로컬 머신; 원격 머신; 클라이언트 노드(들); 엔드포인트(들) 또는 엔드포인트 노드(들) 중 어느 하나로 참조될 수 있다. 일부 실시예들에서, 서버(206)는 이하의 비-포괄적인 용어들, 즉 서버(들); 로컬 머신; 원격 머신; 서버 팜(들) 또는 호스트 컴퓨팅 디바이스(들) 중 어느 하나로 참조될 수 있다.
일 실시예에서, 클라이언트 머신(240)은 가상 머신일 수 있다. 가상 머신은 임의의 가상 머신일 수 있는 반면에, 일부 실시예들에서, 가상 머신은 타입 1 또는 타입 2 하이퍼바이저(hypervisor), 예컨대 Citrix Systems, IBM, VMware에 의해 개발된 하이퍼바이저 또는 임의의 다른 하이퍼바이저에 의해 관리되는 임의의 가상 머신일 수 있다. 일부 실시예들에서, 가상 머신은 하이퍼바이저에 의해 관리될 수 있는 반면에, 실시예들에서 가상 머신은 서버(206)상에서 실행되는 하이퍼바이저 또는 클라이언트(240)상에서 실행되는 하이퍼바이저에 의해 관리될 수 있다.
일부 실시예들은 서버(206)상에서 원격적으로 실행되는 애플리케이션 또는 다른 원격적으로 위치한 머신에 의해 생성되는 애플리케이션 출력을 디스플레이하는 클라이언트 디바이스(240)를 포함한다. 이들 실시예들에서, 클라이언트 디바이스(240)는 애플리케이션 윈도우, 브라우저 또는 다른 출력 윈도우의 출력을 디스플레이하기 위하여 가상 머신 수신기 프로그램 또는 애플리케이션을 실행할 수 있다. 일례에서 애플리케이션은 데스크탑인 반면에, 다른 예들에서 애플리케이션은 데스크탑을 생성하거나 또는 제시하는 애플리케이션이다. 데스크탑은 로컬 및/또는 원격 애플리케이션들이 통합될 수 있는 운영체제의 인스턴스(instance)에 대한 사용자 인터페이스를 제공하는 그래픽 쉘(graphical shell)을 포함할 수 있다. 본원에서 설명된 바와같은 애플리케이션들은 운영체제(그리고, 또한 선택적으로 데스크탑)의 인스턴스가 로드된 후 실행되는 프로그램들이다.
일부 실시예들에서, 서버(206)는 서버(206)상에서 실행되는 애플리케이션에 의해 생성되는 디스플레이 출력을 제시하기 위하여 클라이언트상에서 실행되는 씬-클라이언트(thin-client) 또는 원격-디스플레이 애플리케이션에 데이터를 송신하기 위하여 원격 프리젠테이션 프로토콜 또는 다른 프로그램을 사용한다. 씬-클라이언트 또는 원격-디스플레이 프로토콜은 프로토콜들의 이하의 비-포괄적인 리스트, 즉 플로리다, 포트 로더데일에 위치한 Citrix Systems, Inc.에 의해 개발된 ICA(Independent Computing Architecture) 프로토콜 또는 워싱턴 레드몬드에 위치한 Microsoft Corporation에 의해 제조된 RDP(Remote Desktop Protocol) 중 어느 하나일 수 있다.
원격 컴퓨팅 환경은 예컨대 클라우드 컴퓨팅 환경에서 서버들(206a-206n)이 서버 팜(206)으로 논리적으로 함께 그룹핑되도록 2개 이상의 서버(206a-206n)를 포함할 수 있다. 서버 팜(206)은 지리적으로 분산된 반면에 함께 논리적으로 그룹핑되는 서버들(206) 또는 서로 근접하게 배치되는 반면에 함께 논리적으로 그룹핑되는 서버들(206)을 포함할 수 있다. 일부 실시예들에서, 서버 팜(206) 내의 지리적으로 분산된 서버들(206a-206n)은 WAN(광역), MAN(대도시) 또는 LAN(지역)을 사용하여 통신할 수 있으며, 여기서 상이한 지리적 지역들은 상이한 대륙들; 상이한 대륙 지역들; 상이한 국가들; 상이한 주들; 상이한 도시들; 상이한 캠퍼스들; 상이한 방들; 또는 전술한 지리적 위치들의 임의의 조합으로 특징지워질 수 있다. 일부 실시예들에서 서버 팜(206)은 단일 엔티티로서 관리될 수 있는 반면에, 다른 실시예들에서 서버 팜(206)은 다수의 서버 팜들을 포함할 수 있다.
일부 실시예들에서, 서버 팜은 실질적으로 유사한 타입의 운영체제 플랫폼(예컨대, WINDOWS, UNIX, LINUX, iOS, ANDROID, SYMBIAN 등)을 실행하는 서버들(206)을 포함할 수 있다. 다른 실시예들에서, 서버 팜(206)은 제 1 타입의 운영체제 플랫폼을 실행하는 하나 이상의 서버들의 제 1 그룹 및 제 2 타입의 운영체제 플랫폼을 실행하는 하나 이상의 서버들의 제 2 그룹을 포함할 수 있다.
서버(206)는 필요에 따라 임의의 타입의 서버로서, 예컨대 파일 서버, 애플리케이션 서버, 웹 서버, 프록시 서버, 어플라이언스, 네트워크 어플라이언스, 게이트웨이, 애플리케이션 게이트웨이, 게이트웨이 서버, 가상화 서버, 전개 서버, SSL VPN 서버, 방화벽, 웹 서버, 애플리케이션 서버로서, 또는 마스터 애플리케이션 서버, 액티브 디렉토리를 실행하는 서버, 또는 방화벽 기능, 애플리케이션 기능 또는 로드 밸런싱 기능을 제공하는 애플리케이션 가속 프로그램을 실행하는 서버로서 구성될 수 있다. 다른 서버 타입들이 또한 사용될 수 있다.
일부 실시예들은 클라이언트 머신(240)으로부터의 요청들을 수신하며, 제 2 서버(206b)에 요청을 포워드하며 그리고 제 2 서버(206b)로부터의 응답으로 클라이언트 머신(240)에 의해 생성되는 요청에 응답하는 제 1 서버(206a)를 포함한다. 제 1 서버(206a)는 클라이언트 머신(240)이 이용할 수 있는 애플리케이션들의 목록 뿐만아니라 애플리케이션들의 목록내에서 식별되는 애플리케이션을 호스팅하는 애플리케이션 서버(206)와 연관된 어드레스 정보를 획득할 수 있다. 이후, 제 1 서버(206a)는 웹 인터페이스를 사용하여 클라이언트의 요청에 대한 응답을 제시할 수 있으며, 식별된 애플리케이션에 대한 액세스를 클라이언트(240)에 제공하기 위하여 클라이언트(240)와 직접 통신할 수 있다. 하나 이상의 클라이언트들(240) 및/또는 하나 이상의 서버들(206)은 네트워크(230), 예컨대 네트워크(101)를 통해 데이터를 전송할 수 있다.
도 2는 예시적인 데스크탑 가상화 시스템일 수 있는 고레벨 아키텍처를 도시한다. 도시된 바와같이, 데스크탑 가상화 시스템은 하나 이상의 클라이언트 액세스 디바이스들(240)에 가상 데스크탑들 및/또는 가상 애플리케이션들을 제공하도록 구성된 적어도 하나의 가상화 서버(206)를 포함하는, 단일-서버 또는 멀티-서버 시스템 또는 클라우드 시스템일 수 있다. 본원에서 사용되는 바와같이, 데스크탑은 하나 이상의 애플리케이션들이 호스팅되고 그리고/또는 실행되는 그래픽 환경 또는 공간을 지칭한다. 데스크탑은 로컬 및/또는 원격 애플리케이션들이 통합될 수 있는 운영체제의 인스턴스에 대한 사용자 인터페이스를 제공하는 그래픽 쉘을 포함할 수 있다. 애플리케이션들은 운영체제(그리고 선택적으로 또한 데스크탑)의 인스턴스가 로드된 이후에 실행되는 프로그램들을 포함할 수 있다. 운영체제의 각각의 인스턴스는 물리적(예컨대, 디바이스당 하나의 운영체제) 또는 가상적(예컨대, 단일 디바이스상에서 실행되는 OS의 많은 인스턴스들)일 수 있다. 각각의 애플리케이션은 로컬 디바이스상에서 실행될 수 있거나 또는 원격적으로 위치한 디바이스(예컨대 원격 디바이스)상에서 실행될 수 있다.
도 3을 추가로 참조하면, 컴퓨터 디바이스(301)는 가상화 환경의 가상화 서버, 예컨대, 단일-서버, 멀티-서버 또는 클라우드 컴퓨팅 환경으로서 구성될 수 있다. 도 3에 예시된 가상화 서버(301)는 도 2에 예시된 서버(206)의 하나 이상의 실시예들 또는 다른 공지된 컴퓨팅 디바이스로서 전개될 수 있거나 그리고/또는 이에 의해 구현될 수 있다. 가상화 서버(301)에 포함된 것은 하나 이상의 물리적 디스크들(304), 하나 이상의 물리적 디바이스들(306), 하나 이상의 물리적 프로세서들(308) 및 하나 이상의 물리적 메모리들(316)을 포함할 수 있는 하드웨어 계층이다. 일부 실시예들에서, 펌웨어(312)는 물리적 메모리(316)의 메모리 엘리먼트 내에 저장될 수 있고, 물리적 프로세서들(308) 중 하나 이상에 의해 실행될 수 있다. 가상화 서버(301)는 물리적 메모리(316)의 메모리 엘리먼트에 저장되고 물리적 프로세서들(308) 중 하나 이상에 의해 실행될 수 있는 운영체제(314)를 더 포함할 수 있다. 또한, 하이퍼바이저(302)는 물리적 메모리(316)의 메모리 엘리먼트에 저장될 수 있고 물리적 프로세서들(308) 중 하나 이상에 의해 실행될 수 있다.
물리적 프로세서들(308) 중 하나 이상의 프로세서상에서 실행시키는 것은 하나 이상의 가상 머신들(332A-C)(일반적으로 332)일 수 있다. 각각의 가상 머신(332)은 가상 디스크(326A-C) 및 가상 프로세서(328A-C)를 가질 수 있다. 일부 실시예들에서, 제 1 가상 머신(332A)은, 가상 프로세서(328A)를 이용하여, 툴 스택(tools stack)(324)을 포함하는 제어 프로그램(320)을 실행할 수 있다. 제어 프로그램(320)은 제어 가상 머신, Dom0, Domain 0, 또는 시스템 운영 및/또는 제어용으로 사용되는 다른 가상 머신으로서 지칭될 수 있다. 일부 실시예들에서, 하나 이상의 가상 머신(332B-C)은, 가상 프로세서(328B-C)를 이용하여, 게스트 운영체제(330A-B)를 실행시킬 수 있다.
가상화 서버(301)는 가상화 서버(301)와 통신하는, 하드웨어의 하나 이상의 피스(piece)들을 구비하는 하드웨어 계층(310)을 포함할 수 있다. 일부 실시예들에서, 하드웨어 계층(310)은 하나 이상의 물리적 디스크들(304), 하나 이상의 물리적 디바이스들(306), 하나 이상의 물리적 프로세서들(308) 및 하나 이상의 메모리(216)를 포함할 수 있다. 물리적 컴포넌트들(304, 306, 308 및 316)은 예컨대, 앞서 설명된 컴포넌트들 중 임의의 컴포넌트를 포함할 수 있다. 물리적 디바이스들(306)은 예컨대, 네트워크 인터페이스 카드, 비디오 카드, 키보드, 마우스, 입력 디바이스, 모니터, 디스플레이 디바이스, 스피커들, 광 드라이브, 저장 디바이스, 범용 직렬 버스 연결, 프린터, 스캐너, 네트워크 엘리먼트(예컨대, 라우터, 방화벽, 네트워크 어드레스 번역기, 로드 밸런서, VPN(virtual private network) 게이트웨이, DHCP(Dynamic Host Configuration Protocol) 라우터 등), 또는 가상화 서버(301)에 연결되거나 이와 통신하는 임의의 디바이스를 포함할 수 있다. 하드웨어 계층(310)의 물리적 메모리(316)는 임의의 타입의 메모리를 포함할 수 있다. 물리적 메모리(316)는 데이터를 저장할 수 있고, 일부 실시예들에서 하나 이상의 프로그램들, 또는 실행 가능한 명령들의 세트를 저장할 수 있다. 도 3은 펌웨어(312)가 가상화 서버(301)의 물리적 메모리(316) 내에 저장된 실시예를 예시한다. 물리적 메모리(316)에 저장된 프로그램 또는 실행 가능한 명령들은 가상화 서버(301)의 하나 이상의 프로세서들(308)에 의해 실행될 수 있다.
가상화 서버(301)는 또한 하이퍼바이저(302)를 포함할 수 있다. 일부 실시예들에서, 하이퍼바이저(302)는 가상화 서버(301) 상의 프로세서들(308)에 의해 실행되어 임의의 개수의 가상 머신들(332)을 생성 및 관리하는 프로그램일 수 있다. 하이퍼바이저(302)는 가상 머신 모니터 또는 플랫폼 가상화 소프트웨어로 지칭될 수 있다. 일부 실시예들에서, 하이퍼바이저(302)는 컴퓨팅 머신 상에서 실행되는 가상 머신들을 모니터링하는 하드웨어 및 실행 가능한 명령들의 임의의 조합일 수 있다. 하이퍼바이저(302)는 타입 2 하이퍼바이저일 수 있고, 여기서 운영체제(314) 내에서 실행되는 하이퍼바이저는 가상화 서버(301) 상에서 실행될 수 있다. 이후, 가상 머신들이 하이퍼바이저보다 상위 레벨에서 실행된다. 일부 실시예들에서, 타입 2 하이퍼바이저는 사용자의 운영체제의 컨텍스트 내에서 실행되어, 타입 2 하이퍼바이저는 사용자의 운영체제와 상호 작용을 한다. 다른 실시예들에서, 가상화 환경의 하나 이상의 가상화 서버들(201)은 대신에 타입 1 하이퍼바이저(도시안됨)를 포함할 수 있다. 타입 1 하이퍼바이저는 하드웨어 계층(310) 내의 자원들 및 하드웨어에 직접 액세스함으로써 가상화 서버(301) 상에서 실행될 수 있다. 즉, 타입 2 하이퍼바이저(302)는 도시된 바와 같이 호스트 운영체제(314)를 통해 시스템 자원에 액세스하지만, 타입 1 하이퍼바이저는 호스트 운영체제(314) 없이 모든 시스템 자원들에 직접 액세스할 수 있다. 타입 1 하이퍼바이저는 가상화 서버(301)의 하나 이상의 물리적 프로세서들(308) 상에서 직접 실행될 수 있고, 물리적 메모리(316)에 저장된 프로그램 데이터를 포함할 수 있다.
일부 실시예들에서, 하이퍼바이저(302)는 운영체제(330) 또는 제어 프로그램(320)이 시스템 자원들에 직접 액세스하도록 시뮬레이션하는 임의의 방식으로 가상 머신들(332) 상에서 실행되는 운영체제들(330) 또는 제어 프로그램들(320)에 가상 자원을 제공할 수 있다. 시스템 자원들은 물리적 디바이스들(306), 물리적 디스크들(304), 물리적 프로세서들(308), 물리적 메모리(316) 및 가상화 서버(301) 하드웨어 계층(310)에 포함된 임의의 다른 컴포넌트를 포함할 수 있으나 이에 제한되는 것은 아니다. 하이퍼바이저(302)는 가상 하드웨어를 에뮬레이트하고, 물리적 하드웨어를 파티셔닝하고, 물리적 하드웨어를 가상화하고, 그리고/또는 컴퓨팅 환경들에 대한 액세스를 제공하는 가상 머신을 실행시키기 위해 사용될 수 있다. 또 다른 실시예들에서, 하이퍼바이저(302)는 가상화 서버(301) 상에서 실행되는 가상 머신(332)에 대한 메모리 파티셔닝 및 프로세서 스케쥴링을 제어한다. 하이퍼바이저(302)는 켈리포니아 팔로 알토에 위치한 VMWare, Inc.에 의해 제조된 것들; 그 개발이 오픈 소스 Xen.org 커뮤니티에 의해 감독되는 오픈 소스 상품인 XEN 하이퍼바이저; 마이크로소프트에 의해 제공되는 vHyperV, VirtualServer 또는 virtual PC 하이퍼바이저들 또는 기타 하이퍼바이저를 포함할 수 있다. 일부 실시예들에서, 가상화 서버(301)는, 게스트 운영체제들이 실행될 수 있는 가상 머신 플랫폼을 생성하는 하이퍼바이저(302)를 실행시킨다. 이들 실시예들에서, 가상화 서버(301)는 호스트 서버로서 지칭될 수 있다. 이러한 가상화 서버의 예로서 플로리다, 포트 로더데일에 위치한 Citrix Systems, Inc.에 의해 제공되는 XEN SERVER를 들 수 있다.
하이퍼바이저(302)는 게스트 운영체제(330)가 실행되는 하나 이상의 가상 머신들(332B-C)(일반적으로 332)을 생성할 수 있다. 일부 실시예들에서, 하이퍼바이저(302)는 가상 머신 이미지를 로드하여 가상 머신(332)을 생성할 수 있다. 다른 실시예들에서, 하이퍼바이저(302)는 가상 머신(332) 내에서 게스트 운영체제(330)를 실행시킬 수 있다. 또 다른 실시예에서, 가상 머신(332)은 게스트 운영체제(330)를 실행시킬 수 있다.
가상 머신들(332)을 생성하는 것에 추가하여, 하이퍼바이저(302)는 적어도 하나의 가상 머신(332)의 실행을 제어할 수 있다. 다른 실시예들에서, 하이퍼바이저(302)는 가상화 서버(301)에 의해 제공되는 적어도 하나의 하드웨어 자원(예컨대, 하드웨어 계층(310) 내에서 이용가능한 임의의 하드웨어 자원)의 추상화로 하나 이상의 가상 머신(332)을 제시할 수 있다. 다른 실시예들에서, 하이퍼바이저(302)는 가상 머신들(332)이 가상화 서버(301)에서 이용가능한 물리적 프로세서들(308)에 액세스하는 방식을 제어할 수 있다. 물리적 프로세서들(308)에 대한 액세스를 제어하는 것은, 가상 머신(332)이 프로세서(308)에 대한 액세스를 가져야 하는지 여부 및 물리적 프로세서 기능들이 가상 머신(332)에 어떻게 제공되는지를 결정하는 것을 포함할 수 있다.
도 3에 도시된 바와 같이, 가상화 서버(301)는 하나 이상의 가상 머신들(332)을 호스팅 또는 실행할 수 있다. 가상 머신(332)은, 프로세서(308)에 의해 실행될 때 물리적 컴퓨터의 동작을 모방하여, 가상 머신(332)이 물리적 컴퓨팅 디바이스와 매우 유사하게 프로그램들 및 프로세스들을 실행할 수 있도록 하는 실행 가능한 명령들의 세트이다. 도 3은 가상화 서버(301)가 3 개의 가상 머신들(332)을 호스팅하는 실시예를 예시하고 있으나, 다른 실시예들에서, 가상화 서버(301)는 임의의 개수의 가상 머신들(332)을 호스팅할 수 있다. 하이퍼바이저(302)는, 일부 실시예들에서, 각각의 가상 머신(332)에 물리적 하드웨어, 메모리, 프로세서 및 그 가상 머신(332)이 이용할 수 있는 다른 시스템 자원들의 고유한 가상 뷰(unique virtual view)를 제공한다. 일부 실시예들에서, 고유한 가상 뷰는 가상 머신 퍼미션(permission)들, 하나 이상의 가상 머신 식별자에 대한 정책 엔진(policy engine)의 애플리케이션, 가상 머신에 액세스하는 사용자, 가상 머신 상에서 실행되는 애플리케이션들, 가상 머신에 의해 액세스되는 네트워크들 또는 다른 임의의 원하는 기준 중 하나 이상에 기초할 수 있다. 예컨대, 하이퍼바이저(302)는 하나 이상의 비보안(unsecure) 가상 머신들(332) 및 하나 이상의 보안 가상 머신들(332)을 생성할 수 있다. 비보안 가상 머신들(332)은 보안 가상 머신들(332)이 액세스하도록 허락될 수 있는 자원들, 하드웨어, 메모리 위치들 및 프로그램들에 액세스하는 것이 차단될 수 있다. 다른 실시예들에서, 하이퍼바이저(302)는 각각의 가상 머신(332)에게 물리적 하드웨어, 메모리, 프로세서 및 가상 머신(332)이 이용할 수 있는 다른 시스템 자원들에 대한 실질적으로 유사한 뷰를 제공할 수 있다.
각각의 가상 머신(332)은 가상 디스크(326A-C)(일반적으로 326) 및 가상 프로세서(328A-C)(일반적으로 328)를 포함할 수 있다. 가상 디스크(326)는, 일부 실시예들에서, 가상화 서버(301)의 하나 이상의 물리적 디스크들(304) 또는 가상화 서버(301)의 하나 이상의 물리적 디스크들(304)의 일부분에 대한 가상화된 뷰(virtualized view)이다. 물리적 디스크들(304)에 대한 가상화된 뷰는 하이퍼바이저(302)에 의해 생성, 제공 및 관리될 수 있다. 일부 실시예들에서, 하이퍼바이저(302)는 각각의 가상 머신(332)에 물리적 디스크들(304)의 고유한 뷰를 제공한다. 따라서, 이들 실시예들에서, 각각의 가상 머신(332)에 포함된 특정 가상 디스크(326)는 다른 가상 디스크들(326)과 비교하여 고유할 수 있다.
가상 프로세서(328)는 가상화 서버(301)의 하나 이상의 물리적 프로세서들(308)의 가상화된 뷰일 수 있다. 일부 실시예들에서, 물리적 프로세서들(308)의 가상화된 뷰는 하이퍼바이저(302)에 의해 생성, 제공 및 관리될 수 있다. 일부 실시예들에서, 가상 프로세서(328)는 적어도 하나의 물리적 프로세서(308)와 실질적으로 전부 동일한 특징들을 가진다. 다른 실시예들에서, 가상 프로세서(308)는 물리적 프로세서(308)의 수정된 뷰(modified view)를 제공하며, 따라서 가상 프로세서(328)의 특징들 중 적어도 일부는 대응하는 물리적 프로세서(308)의 특징들과 상이하다.
도 4를 추가로 참조하면, 본원에서 설명된 일부 실시예들은 클라우드 기반의 환경에서 구현될 수 있다. 도 4는 클라우드 컴퓨팅 환경(또는 클라우드 시스템)(400)의 예를 예시한다. 도 4에서 알 수 있는 바와 같이, 클라이언트 컴퓨터들(411-414)은 클라우드 관리 서버(410)와 통신하여 클라우드 시스템의 컴퓨팅 자원들(예컨대, 호스트 서버들(403), 저장 자원들(404) 및 네트워크 자원들(405))에 액세스할 수 있다.
관리 서버(410)는 하나 이상의 물리적 서버 상에서 구현될 수 있다. 특히, 관리 서버(410)는, 예컨대, 플로리다, 포트 로더데일에 위치한 Citrix Systems, Inc.의 CLOUDSTACK 또는 OPENSTACK을 실행시킬 수 있다. 관리 서버(410)는 클라우드 하드웨어 및 소프트웨어 자원들, 예컨대 호스트 컴퓨터들(403), 데이터 저장 디바이스들(404), 네트워킹 디바이스들(405)을 포함하는 다양한 컴퓨팅 자원들을 관리할 수 있다. 클라우드 하드웨어 및 소프트웨어 자원들은 사설 및/또는 공중 컴포넌트들을 포함할 수 있다. 예컨대, 클라우드는 사설 네트워크를 통해 그리고/또는 하나 이상의 특정 고객들 또는 클라이언트 컴퓨터들(411-414)에 의해 사용될 사설 클라우드로서 구성될 수 있다. 다른 실시예들에서, 공중 클라우드들 또는 하이브리드 공중-사설 클라우드들은 개방형 또는 하이브리드 네트워크들을 통해 다른 고객들에 의해 사용될 수 있다.
관리 서버(410)는 클라우드 운영자들 및 클라우드 고객들이 클라우드 시스템과 상호 작용할 수 있도록 하는 사용자 인터페이스들을 제공하도록 구성될 수 있다. 예컨대, 관리 서버(410)는 API들의 세트 및/또는 하나 이상의 클라우드 운영자 콘솔 애플리케이션들(예컨대, 웹-기반 스탠드얼론 애플리케이션들)에, 클라우드 운영자들이 클라우드 자원들을 관리하고, 가상화 계층을 구성하고, 고객 계정들을 관리하고 그리고 다른 클라우드 운영 태스크들을 수행할 수 있도록 하는 사용자 인터페이스들을 제공할 수 있다. 관리 서버(410)는 또한, 사용자 인터페이스들이 클라이언트 컴퓨터(411-414)를 통해 최종 사용자(end user)로부터의 클라우드 컴퓨팅 요청들 예컨대, 클라우드 내에서 가상 머신들을 생성, 수정 또는 제거하기 위한 요청들을 수신하도록 구성되면서, API들의 세트 및/또는 하나 이상의 고객 콘솔 애플리케이션을 포함할 수 있다. 클라우드 컴퓨터들(411-414)은 인터넷 또는 다른 통신 네트워크를 통해 관리 서버(410)에 연결할 수 있고, 관리 서버(410)에 의해 관리되는 컴퓨팅 자원들 중 하나 이상의 자원에 대한 액세스를 요청할 수 있다. 클라이언트 요청들에 응답하여, 관리 서버(410)는 클라이언트 요청들에 기초하여 클라우드 시스템의 하드웨어 계층의 물리적 자원들을 선택 및 공급하도록 구성된 자원 관리자를 포함할 수 있다. 예컨대, 관리 서버(410) 및 클라우드 시스템의 추가적인 컴포넌트들은 네트워크(예컨대, 인터넷)를 통해 클라이언트 컴퓨터들(411-414)에서 고객들에 대한 가상 머신들 및 이들의 동작 환경들(예컨대, 하이퍼바이저들, 저장 자원들, 네트워크 엘리먼트들에 의해 제공되는 서비스 등)을 제공, 생성 및 관리하도록 구성되어, 고객에게 연산 자원(computational resource)들, 데이터 저장 서비스들, 네트워크 기능들 및 컴퓨터 플랫폼 및 애플리케이션 지원을 제공할 수 있다. 클라우드 시스템들은 또한, 보안 시스템들, 개발 환경들, 사용자 인터페이스들 등을 포함하는 다양한 특정 서비스들을 제공하도록 구성될 수 있다.
특정 클라이언트들(411-414)은 예컨대 동일한 최종 사용자들 또는 동일한 회사 또는 조직과 연계된 상이한 사용자들을 대신하여 가상 머신들을 생성하는 상이한 클라이언트 컴퓨터들과 관련될 수 있다. 다른 예들에서, 특정 클라이언트들(411-414)은 예컨대 상이한 회사들 또는 조직들과 연계된 사용자들과는 관련되지 않을 수 있다. 관련되지 않은 클라이언트들의 경우에, 어느 한 사용자의 가상 머신들 또는 스토리지에 대한 정보는 다른 사용자들에게 숨겨질 수 있다.
이제 클라우드 컴퓨팅 환경의 물리적 하드웨어 계층을 참조하면, 가용 존(availability zone)들(401-402)(또는 존(zone)들)은 물리적 컴퓨팅 자원들의 콜로케이트된 세트(collocated set)를 지칭할 수 있다. 존들은 컴퓨팅 자원들의 전체 클라우드의 다른 존들로부터 지리적으로 떨어져 있을 수 있다. 예컨대, 존(401)은 캘리포니아에 위치한 제 1 클라우드 데이터센터일 수 있고, 존(402)은 플로리다에 위치한 제 2 클라우드 데이터센터일 수 있다. 관리 서버(410)는 가용 존들 중 하나에, 또는 떨어진 위치에 위치할 수 있다. 각각의 존은, 게이트웨이를 통해, 관리 서버(410)와 같은, 존 외부에 있는 디바이스들과 인터페이싱하는 내부 네트워크를 포함할 수 있다. 클라우드의 최종 사용자들(예컨대, 클라이언트들(411-414))은 존들 사이를 구분할 수 있거나, 구분할 수 없을 수 있다. 예컨대, 최종 사용자들은 특정 메모리량, 프로세싱 전력 및 네트워크 능력들을 갖는 가상 머신의 생성을 요청할 수 있다. 관리 서버(410)는 사용자의 요청에 응답할 수 있으며, 가상 머신이 존(401) 또는 존(402)의 자원들을 사용하여 생성되었는지의 여부를 사용자가 알 필요 없이 가상 머신을 생성하기 위한 자원들을 할당할 수 있다. 다른 예들에서, 클라우드 시스템은 최종 사용자들이, 가상 머신들(또는 다른 클라우드 자원들)이 특정 존에 또는 존 내의 특정 자원들(403-405) 상에 할당되는 것을 요청하도록 할 수 있다.
이러한 예에서, 각각의 존(401-402)은 다양한 물리적 하드웨어 컴포넌트들(또는 컴퓨팅 자원들)(403-405), 예컨대, 물리적 호스팅 자원들(또는 프로세싱 자원들), 물리적 네트워크 자원들, 물리적 저장 자원들, 스위치들, 및 클라우드 컴퓨팅 서비스들을 고객들에게 제공하기 위해 사용될 수 있는 추가적인 하드웨어 자원들의 어레인지먼트(arrangement)를 포함할 수 있다. 클라우드 존(401-402)의 물리적 호스팅 자원들은, 앞서 설명된 가상화 서버들(301)과 같은 하나 이상의 컴퓨터 서버들(403)을 포함할 수 있고, 이 서버들은 가상 머신 인스턴스들을 생성 및 호스팅하도록 구성될 수 있다. 클라우드 존(401 또는 402)의 물리적 네트워크 자원들은 방화벽들, 네트워크 어드레스 번역기들, 로드 밸런서들, VPN(virtual private network) 게이트웨이들, DHCP(Dynamic Host Configuration Protocol) 라우터들 등과 같은 네트워크 서비스를 클라우드 고객들에게 제공하도록 구성된 하드웨어 및/또는 소프트웨어를 포함하는 하나 이상의 네트워크 엘리먼트들(405)(예컨대, 네트워크 서비스 제공자들)을 포함할 수 있다. 클라우드 존(401-402)의 저장 자원들은 저장 디스크들(예컨대, SSD(solid state drive)들, 자기 하드 디스크들 등) 및 다른 저장 디바이스들을 포함할 수 있다.
도 4에 도시된 예시적인 클라우드 컴퓨팅 환경은 또한 (예컨대, 도 1 내지 도 3에 도시된 바와 같은) 가상화 계층과, 가상 머신들을 생성 및 관리하고 클라우드의 물리적 자원들을 이용하여 고객들에게 다른 서비스들을 제공하도록 구성된 추가적인 하드웨어 및/또는 소프트웨어 자원들을 포함할 수 있다. 가상화 계층은 도 3에서 앞서 설명된 바와같은 하이퍼바이저들과, 네트워크 가상화들, 저장 가상화들 등을 제공하는 다른 컴포넌트들을 포함할 수 있다. 가상화 계층은 물리적 자원 계층과 별개의 계층으로 될 수 있거나, 물리적 자원 계층과 동일한 하드웨어 및/또는 소프트웨어 자원들의 일부 또는 전부를 공유할 수 있다. 예컨대, 가상화 계층은 가상화 서버(403)들 각각에 설치된 하이퍼바이저와 물리적 컴퓨팅 자원들을 포함할 수 있다. 공지된 클라우드 시스템, 예컨대 WINDOWS AZURE (워싱턴 레드몬드에 위치한 Microsoft Corporation), AMAZON EC2 (워싱턴 시애틀에 위치한 Amazon.com Inc.), IBM BLUE CLOUD (뉴욕 아몽크에 위치한 IBM Corporation) 등이 대안적으로 사용될 수 있다.
기업 모빌리티 관리 아키텍쳐
도 5는 BYOD 환경에서 사용하기 위한 기업 모빌리티 기술 아키텍처(500)를 나타낸다. 아키텍처는 모바일 디바이스(502)의 사용자가 모바일 디바이스(502)를 사용하여 기업 자원 또는 개인 자원에 액세스하고, 모바일 디바이스(502)를 개인적 용도로 사용하도록 한다. 사용자는 기업에 의해 사용자에게 제공된 모바일 디바이스(502) 또는 사용자에 의해 구매된 모바일 디바이스(502)를 이용하여 이와 같은 기업 서비스들(508) 또는 기업 자원들(504)에 액세스할 수 있다. 사용자는 단지 비지니스용으로 또는 비지니스 및 개인용으로 모바일 디바이스(502)를 활용할 수 있다. 모바일 디바이스는 iOS 운영체제, 및 안드로이드 운영체제 등을 실행할 수 있다. 기업은 모바일 디바이스(504)를 관리하기 위한 정책들을 구현하는 것을 선택할 수 있다. 이 정책들은 모바일 디바이스가 식별되거나, 보안 또는 보안 검증되고 기업 자원들에 대해 선택적으로 또는 전체적으로 액세스할 수 있도록 방화벽 또는 게이트웨이를 통해 주입될 수 있다. 정책들은 모바일 디바이스 관리 정책들, 모바일 애플리케이션 관리 정책들, 모바일 데이터 관리 정책들, 또는 모바일 디바이스, 애플리케이션 및 데이터 관리 정책들의 일부 조합일 수 있다. 모바일 디바이스 관리 정책들의 애플리케이션을 통해 관리되는 모바일 디바이스(504)는 등록 디바이스로서 지칭될 수 있다.
일부 실시예들에서, 모바일 디바이스의 운영체제는 관리 파티션(managed partition)(510) 및 비관리 파티션(unmanaged partition)(512)으로 분리될 수 있다. 관리 파티션(510)은 자신에 적용된 정책들이 관리 파티션 상에서 실행되는 애플리케이션들 및 관리 파티션에 저장되는 데이터를 보안하게 할 수 있다. 다른 실시예들에서, 모든 애플리케이션들은 애플리케이션으로부터 분리되어 수신되는 하나 이상의 정책 파일들의 세트에 따라 실행될 수 있으며, 하나 이상의 정책 파일들의 세트는 하나 이상의 보안 파라미터들, 특징들, 자원 제약들 및/또는 그 애플리케이션이 디바이스 상에서 실행될 때 모바일 디바이스 관리 시스템에 의해 시행되는 다른 액세스 제어들을 정의한다. 이들 개별 정책 파일(들)에 따라 동작시킴으로써, 각각의 애플리케이션은 하나 이상의 다른 애플리케이션 및/또는 자원과 통신하는 것이 허용 또는 제약될 수 있고, 이에 따라 가상 파티션이 생성될 수 있다. 따라서, 본원에서 사용된 바와 같이, 파티션은 물리적으로 파티셔닝된 메모리의 부분(물리적 파티션), 논리적으로 파티셔닝된 메모리의 부분(논리적 파티션) 및/또는 본원에서 설명된 바와 같이 다수의 앱들에 걸쳐 하나 이상의 정책들 및/또는 정책 파일들의 시행 결과로 생성된 가상 파티션(가상 파티션)을 지칭할 수 있다. 달리 언급하면, 관리 앱들에 대해 정책들을 시행함으로써, 이들 앱들은 다른 관리 앱들 및 신뢰성 있는 기업 자원들과만 통신이 가능하도록 제약될 수 있고, 이에 따라 비관리 앱들 및 디바이스들에 의해 뚫리지 않는(impenetrable) 가상 파티션이 생성될 수 있다.
보안 애플리케이션들은 이메일 애플리케이션들, 웹 브라우징 애플리케이션들, SaaS(software-as-a-service) 액세스 애플리케이션들, 윈도우즈 애플리케이션 액세스 애플리케이션들 등일 수 있다. 보안 애플리케이션들은 보안 네이티브 애플리케이션들(514), 보안 애플리케이션 런처(518)에 의해 실행되는 보안 원격 애플리케이션들(522), 보안 애플리케이션 런처(518)에 의해 실행되는 가상화 애플리케이션들(526) 등일 수 있다. 보안 네이티브 애플리케이션들(514)은 보안 애플리케이션 래퍼(wrapper)(520)에 의해 래핑될 수 있다. 보안 애플리케이션 래퍼(520)는 보안 네이티브 애플리케이션이 디바이스상에서 실행될 때 모바일 디바이스(502)상에서 실행되는 통합 정책들을 포함할 수 있다. 보안 애플리케이션 래퍼(520)는 보안 네이티브 애플리케이션(514)의 실행시 요청된 태스크를 완료하기 위하여 보안 네이티브 애플리케이션(514)이 요구할 수 있는, 기업에서 호스팅되는 자원들을 모바일 디바이스(502)상에서 실행되는 보안 네이티브 애플리케이션(514)에게 알려주는 메타-데이터를 포함할 수 있다. 보안 애플리케이션 런처(518)에 의해 실행되는 보안 원격 애플리케이션들(522)은 보안 애플리케이션 런처 애플리케이션(518) 내에서 실행될 수 있다. 보안 애플리케이션 런처(518)에 의해 실행되는 가상화 애플리케이션(526)은 모바일 디바이스(502)상의 자원들, 기업 자원들(504) 등을 활용할 수 있다. 보안 애플리케이션 런처(518)에 의해 실행되는 가상화 애플리케이션들(526)에 의해 모바일 디바이스(502)상에서 사용되는 자원들은 사용자 인터랙티브 자원들, 프로세싱 자원들 등을 포함할 수 있다. 사용자 인터랙티브 자원들은 키보드 입력, 마우스 입력, 카메라 입력, 촉각 입력, 오디오 입력, 시각 입력, 제스처 입력 등을 수집하여 전송하기 위하여 사용될 수 있다. 프로세싱 자원들은 사용자 인터페이스를 제시하고, 기업 자원들(504)로부터 수신된 데이터를 프로세싱하는 것 등을 수행하기 위하여 사용될 수 있다. 보안 애플리케이션 런처(518)에 의해 실행되는 가상화 애플리케이션들(526)에 의해 기업 자원들(504)에서 사용되는 자원들은 사용자 인터페이스 생성 자원들, 프로세싱 자원들 등을 포함할 수 있다. 사용자 인터페이스 생성 자원들은 사용자 인터페이스를 어셈블리하고, 사용자 인터페이스를 수정하며, 사용자 인터페이스를 리프레시하는 것 등을 수행하기 위하여 사용될 수 있다. 프로세싱 자원들은 정보를 생성하고, 정보를 판독하며, 정보를 업데이트하며, 정보를 삭제하는 것 등을 수행하기 위하여 사용될 수 있다. 예컨대, 가상화 애플리케이션은 GUI와 연관된 사용자 인터랙티브들을 기록하고, 이들을 서버 애플리케이션에 통신할 수 있으며, 여기서 서버 애플리케이션은 서버상에서 동작하는 애플리케이션에 대한 입력으로서 사용자 인터랙티브 데이터를 사용할 것이다. 이러한 어레인지먼트에서, 기업은 서버측상의 애플리케이션 뿐만아니라 애플리케이션과 연관된 데이터, 파일들 등을 유지하는 것을 선택할 수 있다. 기업이 모바일 디바이스상에서 전개하기 위하여 일부 애플리케이션들을 보안함으로써 본원의 원리들에 따라 그 일부 애플리케이션들을 "동원하는(mobilize)" 것을 선택할 수 있는 반면에, 이러한 어레인지먼트는 또한 특정 애플리케이션들을 위해 선택될 수 있다. 예컨대, 일부 애플리케이션들이 모바일 디바이스상에서 사용하기 위하여 보안될 수 있는 반면에, 다른 애플리케이션들은 모바일 디바이스상에서 전개하기 위하여 준비되거나 또는 전용될 수 없으며, 따라서 기업은 가상화 기술들을 통해 준비되지 않은 애플리케이션들에의 모바일 사용자 액세스를 제공하는 것을 선택할 수 있다. 다른 예로서, 기업은 모바일 디바이스에 대한 애플리케이션을 커스터마이징하는 것이 매우 어렵거나 또는 그렇지 않은 경우에 바람직하지 않을 대량 및 복합 데이터 세트들을 가진 대규모 복합 애플리케이션들(예컨대, 자료 자원 계획 애플리케이션들)을 가질 수 있으며, 따라서, 기업은 가상화 기술들을 통해 애플리케이션에의 액세스를 제공하는 것을 선택할 수 있다. 또 다른 예로서, 기업은 심지어 보안된 모바일 환경에서 조차 기업이 너무 민감하게 생각할 수 있는 고보안 데이터(예컨대, 사람 자원 데이터, 고객 데이터, 엔지니어링 데이터)를 유지하는 애플리케이션을 가질 수 있으며, 따라서 기업은 이러한 애플리케이션들 및 데이터에 대한 모바일 액세스를 허용하기 위하여 가상화 기술들을 사용하는 것을 선택할 수 있다. 기업은 서버측에서 동작하는 것이 더 적절한 것으로 여겨지는 애플리케이션들에 대한 액세스를 허용하기 위하여, 가상화 애플리케이션 뿐만아니라 모바일 디바이스상의 완전하게 보안된 그리고 완전하게 기능적인 애플리케이션들을 제공하는 것을 선택할 수 있다. 일 실시예에서, 가상화 애플리케이션은 보안 저장 위치들 중 하나의 위치에 있는 모바일 폰상에 일부 데이터, 파일들 등을 저장할 수 있다. 기업은 예컨대 다른 정보를 허용하지 않으면서 특정 정보가 폰상에 저장되도록 하는 것을 선택할 수 있다.
가상화 애플리케이션과 관련하여, 본원에서 설명된 바와 같이, 모바일 디바이스는 GUI를 제시하고, 이후 GUI와의 사용자 상호 작용을 기록/통과(pass-through)하도록 설계된 가상화 애플리케이션을 가질 수 있다. 애플리케이션은 사용자 상호 작용을 서버 측에 통신하여 서버 측 애플리케이션에 의해 애플리케이션에 대한 사용자 상호 작용으로서 사용되도록 할 수 있다. 이에 대한 응답으로, 서버 측의 애플리케이션은 모바일 디바이스에 새로운 GUI를 다시 전송할 수 있다. 예컨대, 새로운 GUI는 정적 페이지, 동적 페이지, 애니메이션 등일 수 있고, 이에 따라 원격에 위치한 자원에 대한 액세스를 제공할 수 있다.
보안 애플리케이션은 모바일 디바이스의 관리 파티션(510)의 보안 데이터 컨테이너(528)에 저장된 데이터를 액세스할 수 있다. 보안 데이터 컨테이너에 저장된 데이터는 보안 래핑 애플리케이션(secure wrapped applications)(514), 보안 애플리케이션 론처(522)에 의해 실행되는 애플리케이션, 보안 애플리케이션 론처(522)에 의해 실행되는 가상화 애플리케이션(526) 등에 의해 액세스될 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 파일, 데이터베이스 등을 포함할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 특정 보안 애플리케이션(530), 보안 애플리케이션(532) 사이에 공유된 것 등에 제한된 데이터를 포함할 수 있다. 보안 애플리케이션에 제한된 데이터는 보안 범용 데이터(534) 및 고도 보안 데이터(538)를 포함할 수 있다. 보안 범용 데이터는 AES 128 비트 암호화 등과 같은 강한 형태의 암호화를 이용할 수 있고, 고도 보안 데이터(538)는 AES 254 비트 암호화와 같은 매우 강한 형태의 암호화를 이용할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 디바이스 관리자(524)로부터 명령을 수신함에 따라 디바이스로부터 삭제될 수 있다. 보안 애플리케이션은 이중 모드 옵션(540)을 가질 수 있다. 이중 모드 옵션(540)은 사용자가 비보안 모드에서 보안 애플리케이션을 동작시키기 위한 옵션을 제공할 수 있다. 비보안 모드에서, 보안 애플리케이션은 모바일 디바이스(502)의 비관리 파티션(512) 상의 비보안 데이터 컨테이너(542)에 저장된 데이터를 액세스할 수 있다. 비보안 데이터 컨테이너에 저장된 데이터는 개인용 데이터(544)일 수 있다. 비보안 데이터 컨테이너(542)에 저장된 데이터는 또한 모바일 디바이스(502)의 비관리 파티션(512) 상에서 실행되는 비보안 애플리케이션(548)에 의해 액세스될 수도 있다. 보안 데이터 컨테이너(528)에 저장된 데이터가 모바일 디바이스(502)로부터 삭제된 경우, 비보안 데이터 컨테이너(542)에 저장된 데이터는 모바일 디바이스(502) 상에 남아있을 수 있다. 기업은 모바일 디바이스로부터 기업에 의해 소유되거나, 라이센싱되거나, 제어되는, 선택되거나 모든 데이터, 파일 및/또는 애플리케이션(기업 데이터)을 삭제하되, 사용자에 의해 소유되거나, 라이센싱되거나, 제어되는, 개인 데이터, 파일 및/또는 애플리케이션(개인용 데이터)을 두거나 보존하기를 원할 수 있다. 이 동작은 선택적 지움(selective wipe)으로서 참조될 수 있다. 본원에서 설명된 양태들에 따라 구성된 기업 및 개인 데이터로, 기업은 선택적 지움을 수행할 수 있다.
모바일 디바이스는 기업에서 기업 자원(504) 및 기업 서비스(508), 공중 인터넷(548) 등에 연결할 수 있다. 모바일 디바이스는 가상 사설 네트워크 연결을 통해 기업 자원(504) 및 기업 서비스(508)에 연결할 수 있다. 마이크로VPN(microVPN) 또는 애플리케이션 특정 VPN(application-specific VPN)으로도 참조되는, 가상 사설 네트워크 연결은 특정 애플리케이션(550), 특정 디바이스, 모바일 디바이스 상의 특정 보안 영역 등(552)에 특정적일 수 있다. 예컨대, 폰의 보안 영역의 각각의 래핑 애플리케이션은 애플리케이션 특정 VPN을 통해 기업 자원에 액세스할 수 있고, VPN에 대한 액세스는, 아마도 사용자 또는 디바이스 속성 정보와 함께, 애플리케이션과 연관된 속성에 기초하여 허가될 수 있다. 가상 사설 네트워크 연결은 마이크로소프트 익스체인지(Microsoft Exchange) 트래픽, 마이크로소프트 액티브 디렉터리(Microsoft Active Directory) 트래픽, HTTP 트래픽, HTTPS 트래픽, 애플리케이션 관리 트래픽 등을 운반할 수 있다. 가상 사설 네트워크 연결은 싱글 사인 온(single-sign-on) 인증 프로세스(554)를 지원하고 활성화할 수 있다. 싱글 사인 온 프로세스들은 사용자가 나중에 인증 서비스(558)에 의해 검증되는, 인증 크리덴셜들의 단일 세트를 제공하도록 한다. 인증 서비스(558)는 그 후 사용자에게, 사용자가 각각의 개별적인 기업 자원(504)에 대한 인증 크리덴셜들을 제공할 것을 필요로 하지 않고, 다중 기업 자원(504)에 대한 액세스를 허가할 수 있다.
가상 사설 네트워크 연결은 액세스 게이트웨이(560)에 의해 설정 및 관리될 수 있다. 액세스 게이트웨이(560)는 기업 자원(504)을 모바일 디바이스(502)로 전달하는 것을 관리, 가속화 및 향상시키는 성능 향상 기능을 포함할 수 있다. 액세스 게이트웨이는 또한, 모바일 디바이스(502)가 공중 인터넷(548) 상에서 실행되는 공중으로 사용 가능하고 비보안인 애플리케이션을 액세스 가능하도록 하고, 모바일 디바이스(502)로부터 공중 인터넷(548)으로 트래픽을 재라우팅할 수도 있다. 모바일 디바이스는 전송 네트워크(562)를 통해 게이트웨이를 액세스하도록 연결할 수 있다. 전송 네트워크(562)는 유선 네트워크, 무선 네트워크, 클라우드 네트워크, 로컬 영역 네트워크, 도시 영역 네트워크, 광역 네트워크, 공중 네트워크, 사설 네트워크 등일 수 있다.
기업 자원(504)은 이메일 서버, 파일 공유 서버, SaaS 애플리케이션, 웹 애플리케이션 서버, 윈도우 애플리케이션 서버 등을 포함할 수 있다. 이메일 서버는 익스체인지(Exchange), 로터스 노트(Lotus Notes) 서버 등을 포함할 수 있다. 파일 공유 서버는 셰어파일(ShareFile) 서버 등을 포함할 수 있다. SaaS 애플리케이션은 세일즈포스(Salesforce) 등을 포함할 수 있다. 윈도우 애플리케이션 서버는 로컬 윈도우 운영 체제 상에서 실행되는 것이 의도된 애플리케이션을 제공하도록 구성된 임의의 애플리케이션 서버 등을 포함할 수 있다. 기업 자원(504)은 전제 기반(premise-based) 자원, 클라우드 기반 자원 등일 수 있다. 기업 자원(504)은 모바일 디바이스(502)에 의해 직접 액세스되거나, 액세스 게이트웨이(560)를 통해 액세스될 수 있다. 기업 자원(504)은 전송 네트워크(562)를 통해 모바일 디바이스(502)에 액세스될 수 있다. 전송 네트워크(562)는 유선 네트워크, 무선 네트워크, 클라우드 네트워크, 로컬 영역 네트워크, 도시 영역 네트워크, 광역 네트워크, 공중 네트워크, 사설 네트워크 등일 수 있다.
기업 서비스(508)는 인증 서비스(558), 위협 감지 서비스(564), 디바이스 관리 서비스(524), 파일 공유 서비스(568), 정책 관리 서비스(570), 사회 통합 서비스(social integration services)(572), 애플리케이션 제어기 서비스(574) 등을 포함할 수 있다. 인증 서비스(558)는 사용자 인증 서비스, 디바이스 인증 서비스, 애플리케이션 인증 서비스, 데이터 인증 서비스 등을 포함할 수 있다. 인증 서비스(558)는 인증서를 이용할 수 있다. 인증서는, 기업 자원(504) 등에 의해 모바일 디바이스(502) 상에 저장될 수 있다. 모바일 디바이스(502) 상에 저장된 인증서는 모바일 디바이스 상의 암호화된 위치에 저장될 수 있고, 인증서는 인증 시점에서의 사용 등을 위해 모바일 디바이스(502) 상에 일시적으로 저장될 수 있다. 위협 감지 서비스(564)는 침입 감지 서비스, 비허가 액세스 시도 감지 서비스 등을 포함할 수 있다. 비허가 액세스 시도 감지 서비스는 디바이스, 애플리케이션, 데이터 등을 액세스하기 위한 비허가된 시도를 포함할 수 있다. 디바이스 관리 서비스(524)는 구성, 프로비저닝, 보안, 지원, 모니터링, 보고 및 사후 서비스를 포함할 수 있다. 파일 공유 서비스(568)는 파일 관리 서비스, 파일 스토리지 서비스, 파일 협업 서비스 등을 포함할 수 있다. 정책 관리자 서비스(570)는 디바이스 정책 관리자 서비스, 애플리케이션 정책 관리자 서비스, 데이터 정책 관리자 서비스 등을 포함할 수 있다. 사회 통합 서비스(572)는 연락처 통합 서비스, 협업 서비스, 페이스북(Facebook), 트위터(Twitter) 및 링크드인(LinkedIn)과 같은 소셜 네트워크와의 통합 등을 포함할 수 있다. 애플리케이션 제어기 서비스(574)는 관리 서비스, 프로비저닝 서비스, 전개 서비스, 할당 서비스, 취소 서비스, 래핑 서비스 등을 포함할 수 있다.
기업 모바일 기술 아키텍처(500)는 애플리케이션 스토어(578)을 포함할 수 있다. 애플리케이션 스토어(578)는 비-래핑된(unwrapped) 애플리케이션(580), 사전-래핑된(pre-wrapped) 애플리케이션(582) 등을 포함할 수 있다. 애플리케이션은 애플리케이션 제어기(574)로부터 애플리케이션 스토어(578)에 채워질 수 있다. 애플리케이션 스토어(578)는 액세스 게이트웨이(560)를 통해 모바일 디바이스(502)에 의해, 공중 인터넷(548) 등을 통해 액세스될 수 있다. 애플리케이션 스토어에는 사용하기에 직관적이고 용이한 사용자 인터페이스가 제공될 수 있다.
소프트웨어 전개 키트(584)는 이전에 설명된 바와같이 애플리케이션을 래핑함으로써 사용자에 의해 선택된 애플리케이션들을 보안하는 능력을 사용자에게 제공할 수 있다. 이후, 소프트웨어 전개 키트(584)를 사용하여 래핑된 애플리케이션은 애플리케이션 제어기(574)를 사용하여 애플리케이션 스토어(578)에서 파퓰레이트함으로써 모바일 디바이스(502)에게 이용가능하게 만들어질 수 있다.
기업 모빌리티 기술 아키텍처(500)는 관리 및 분석 능력(588)을 포함할 수 있다. 관리 및 분석 능력(588)은 자원들이 어떻게 사용되는지, 자원들이 얼마나 자주 사용되는지 등에 관한 정보를 제공할 수 있다. 자원들은 디바이스들, 애플리케이션들, 데이터 등을 포함할 수 있다. 자원들이 어떻게 사용되는지는 어떤 디바이스들이 어떤 애플리케이션들을 다운로드하는지, 어떤 애플리케이션들이 어떤 데이터에 액세스하는지 등을 포함할 수 있다. 자원들이 얼마나 자주 사용되는지는 애플리케이션들이 얼마나 자주 다운로드되었는지, 데이터의 특정 세트가 애플리케이션에 의해 얼마나 많은 횟수로 액세스되었는지 등을 포함할 수 있다.
도 6은 다른 예시적인 기업 모빌리티 관리 시스템(600)이다. 도 5를 참조하여 앞서 설명된 모빌리티 관리 시스템(500)의 일부 컴포넌트들은 간략화를 위해 생략되었다. 도 6에 도시된 시스템(600)의 아키텍처는 도 5를 참조로 하여 앞서 설명된 시스템(500)의 아키텍처와 많은 측면에서 유사하고, 앞서 언급되지 않은 추가적인 특징들을 포함할 수 있다.
이 경우, 좌측은 클라이언트 에이전트(604)를 가진 등록 모바일 디바이스(602)를 나타낸다. 클라이언트 에이전트(604)는 원격 또는 모바일 디바이스상에서 실행되는 에이전트를 포함할 수 있다. 클라이언트 에이전트(604)는 원격 디바이스들에 대한 클라우드 자원들을 포함하는 게이트웨이 서버(606)와 인터랙티브할 수 있다. 게이트웨이 서버(606)는 우측 위쪽에 도시된 것과 같은 다양한 기업 자원들(608) 및 서비스들(609), 예컨대 익스체인지(Exchange), 쉐어포인트(Sharepoint), PKI 자원들, 케베로스 자원들, 인증서 발행 서비스에 접근하기 위하여 사용될 수 있다. 상세히 도시되지는 않았지만, 모바일 디바이스(602)는 또한 애플리케이션들을 선택하여 다운로드하기 위한 기업 애플리케이션 스토어(StoreFront)와 상호 작용할 수 있다.
클라이언트 에이전트(604)는, HDX(High-Definition User Experience)/ICA 디스플레이 원격 프로토콜을 이용하여 액세스되는, 기업 데이터 센터에서 호스팅되는 윈도우즈 앱들/데스크탑들에 대한 UI(사용자 인터페이스) 매개자(intermediary)로서 동작할 수 있다. 클라이언트 에이전트(604)는 또한 모바일 디바이스(602) 상의 네이티브 애플리케이션들, 예컨대 네이티브 iOS 또는 안드로이드 애플리케이션들의 설치 및 관리를 지원한다. 예컨대, 앞의 도면에 도시된 관리 애플리케이션(610)(메일, 브라우저, 래핑 애플리케이션)은 모두 디바이스 상에서 로컬적으로 실행되는 네이티브 애플리케이션들이다. 클라이언트 에이전트(604) 및 모바일 애플리케이션 관리 프로토콜(이후 간략하게 "MAMP"), 예컨대 본 아키텍처의 MDX(mobile experience technology)는 기업 자원들/서비스들(608)에 대한 연결 및 SSO(single sign on)와 같은 정책 기반 관리 능력들 및 사양들을 제공하기 위해 동작한다. 클라이언트 에이전트(604)는 기업, 일반적으로 SSO을 갖는 엑세스 게이트웨이(AG)의 다른 게이트웨이 서버 컴포넌트들에 대한 주요 사용자 인증을 처리한다. 클라이언트 에이전트(604)는 모바일 디바이스(602)상의 MAMP 관리 애플리케이션들(610)의 행위를 제어하기 위하여 게이트웨이 서버(606)로부터 정책들을 획득한다.
네이티브 애플리케이션들(610)과 클라이언트 에이전트 소프트웨어(604) 사이의 보안 IPC 링크들(612)은 클라이언트 에이전트 소프트웨어가 각각의 애플리케이션을 "래핑"하는 AMP 프레임워크(614)에 의해 시행될 정책들을 적용하도록 하는 관리 채널을 나타낸다. IPC 채널(612)은 또한 기업 자원들(608)에 대한 연결 및 SSO를 가능하게하는 크리덴셜 및 인증 정보를 클라이언트 에이전트 소프트웨어(604)가 공급하도록 허용한다. 마지막으로, IPC 채널(612)은 AMP 프레임워크(614)가 클라이언트 에이전트 소프트웨어(604)에 의해 구현되는 사용자 인터페이스 기능들, 예컨대 온라인 및 오프라인 인증을 호출하도록 한다.
클라이언트 에이전트(604)와 게이트웨이 서버(606) 사이의 통신들은 근본적으로 각각의 네이티브 관리 애플리케이션(610)을 래핑하는 MAMP 프레임워크(614)로부터 관리 채널을 확장한다. MAMP 프레임워크(614)는 클라이언트 에이전트(604)로부터 정책 정보를 요청하며, 클라이언트 에이전트(604)는 차례로 게이트웨이 서버(606)로부터 정책 정보를 요청한다. MAMP 프레임워크(614)는 인증을 요청하며, 클라이언트 에이전트(604)는 게이트웨이 서버(606)(이는 또한 NetScaler Access Gateway로서 공지됨)의 게이트웨이 서비스 부분에 로그인한다. 이하에서 더 완전히 설명되는 바와같이, 클라이언트 에이전트(604)는 또한 로컬 데이터 볼트(vault)들(616)에 대한 암호화 키들을 유도하기 위한 입력 자료를 생성하거나 또는 PKI 보호 자원들에 직접 인증을 가능하게 하는 클라이언트 인증서들을 제공할 수 있는 서비스들을 게이트웨이 서버(606)상에서 지원할 것을 호출할 수 있다.
더 상세히, 애플리케이션 관리 프레임워크(614)는 각각의 관리 애플리케이션(610)을 래핑한다. 이는 명시적 구축 단계를 통해 또는 구축후 프로세싱 단계를 통해 통합될 수 있다. 애플리케이션 관리 프레임워크(614)는 애플리케이션(610)의 제 1 런치시 클라이언트 에이전트(614)와 "페어링"하여, 보안 IPC 채널을 초기화하고 그 애플리케이션에 대한 정책을 획득할 수 있다. 애플리케이션 관리 프레임워크(614)는 로컬적으로 적용하는 정책의 관련 부분들, 예컨대 로컬 OS 서비스들이 어떻게 사용될 수 있는지 또는 로컬 OS 서비스들이 애플리케이션(610)과 어떻게 인터랙티브할 수 있는지를 제한하는 억제 정책들 중 일부 및 클라이언트 에이전트 로그인 종속성들을 시행할 수 있다.
애플리케이션 관리 프레임워크(614)는 인증 및 내부 네트워크 액세스를 용이하게 하기 위하여 보안 IPC 채널(612)을 통해 클라이언트 에이전트(604)에 의해 제공된 서비스들을 사용할 수 있다. 사설 및 공유 데이터 볼트들(616)(컨테이너들)의 키 관리는 또한 관리 애플리케이션들(610)과 클라이언트 에이전트(604) 간의 적절한 인터랙티브들에 의해 관리될 수 있다. 볼트들(616)은 온라인 인증 이후에만 이용가능하게 만들어질 수 있거나 또는 정책에 의해 허용되는 경우에 오프라인 인증 이후에 이용가능하게 만들어질 수 있다. 볼트들(616)의 첫번째 사용은 온라인 인증을 요구할 수 있으며, 오프라인 액세스는 온라인 인증이 다시 요구되기 전에 최대 정책 리프레시 기간으로 제한될 수 있다.
내부 자원들에의 네트워크 액세스는 게이트웨이 서버(606)를 통해 개별 관리 애플리케이션들(610)로부터 직접 발생할 수 있다. 애플리케이션 관리 프레임워크(614)는 각각의 애플리케이션(610)의 절반에서 네트워크 액세스를 조정하는 것을 담당한다. 클라이언트 에이전트(604)는 온라인 인증 이후에 획득된 적절한 시간 제한된 2차 크리덴셜들을 제공함으로써 이들 네트워크 연결들을 용이하게 할 수 있다. 리버스 웹 프록시 연결들 및 엔드-투-엔드 VPN-스타일 터널들(618)과 같은 다수의 네트워크 연결 모드들이 사용될 수 있다.
메일 및 브라우저 관리 애플리케이션들(610)은 특별한 상태를 가지며, 임의적 래핑된 애플리케이션들이 일반적으로 이용가능하지 않을 수 있는 시설들을 사용할 수 있다. 예컨대, 메일 애플리케이션은 전체 AG 로그온을 요구하지 않고 연장된 시간 기간 동안 그 메일 애플리케이션이 익스체인지(Exchange)에 액세스하도록 하는 특별한 백그라운드 네트워크 액세스 메커니즘을 사용할 수 있다. 브라우저 애플리케이션은 상이한 종류의 데이터를 분리하기 위하여 다수의 사설 데이터 볼트들을 사용할 수 있다.
이러한 아키텍처는 다양한 다른 보안 특징들의 통합을 지원한다. 예컨대, 일부 경우들에서, 게이트웨이 서버(606)(자신의 게이트웨이 서비스들을 포함함)는 AD(Active Directory) 패스워드들의 인증이 요구되지 않을 수 있다. 일부 상황들에서 AD 패스워드가 일부 사용자들에 대한 인증 인자로서 사용될 수 있는지는 기업의 재량으로 맡겨질 수 있다. 상이한 인증 방법들은 사용자가 온라인인 경우 또는 오프라인인 경우에 (즉, 네트워크에 연결되거나 또는 연결되지 않는 경우에) 사용될 수 있다.
셋업 인증은 게이트웨이 서버(606)가 강한 인증을 요구하는 높게 분류된 데이터에 대해 액세스하도록 허용되는 관리 네이티브 애플리케이션들(610)을 식별할 수 있고 비록 이것이, 재인증이 이전의 약한 로그인 레벨 이후에 사용자에 의해 요구되는 것을 의미할지라도, 적절한 인증을 수행한 이후에만 이들 애플리케이션들에 대한 액세스가 허용되도록 하는 특징이다.
이러한 솔루션의 다른 보안 특징은 모바일 디바이스(602)상의 데이터 볼트들(616)(컨테이너들)의 암호화이다. 볼트들(616)은 파일들, 데이터베이스들, 및 구성들을 포함하는 모든 온-디바이스 데이터가 보호되도록 암호화될 수 있다. 온라인 볼트들의 경우에 키들이 서버(게이트웨이 서버(606))에 저장될 수 있으며, 오프-라인 볼트들의 경우에 키들의 로컬 복사가 사용자 패스워드에 의해 보호될 수 있다. 데이터가 보안 컨테이너(616)에서 디바이스(602)상에 로컬적으로 저장될 때, AES 256 암호화 알고리즘이 최소로 활용되는 것이 바람직하다.
다른 보안 컨테이너 특징들이 또한 구현될 수 있다. 예컨대, 애플리케이션(610)내에서 발생하는 모든 보안 이벤트들이 로깅되어 백엔드에 보고되는 로깅 특징이 포함될 수 있다. 데이터 지움이 지원될 수 있으며, 예컨대 애플리케이션(610)이 탬퍼링을 검출하면, 연관된 암호화 키들은 랜덤 데이터로 쓰여질 수 있으며, 따라서 사용자 데이터가 파괴된 파일 시스템상에는 힌트가 남겨지지 않는다. 스크린샷 보호는 임의의 데이터가 스크린샷들에 저장되는 것을 애플리케이션이 방지할 수 있는 다른 특징이다. 예컨대, 키 윈도우의 은폐된 특성은 YES로 세팅될 수 있다. 이는 스크린상에 현재 디스플레이되고 있는 모든 콘텐츠가 은폐되도록 할 수 있으며, 따라서 임의의 콘텐츠가 정상적으로 상주할 블랭크 스크린샷을 초래한다.
로컬 데이터 전달은 예컨대 임의의 데이터가 애플리케이션 컨테이너 외부로 로컬적으로 전달되는 것을 방지함으로써, 예컨대 임의의 데이터를 복사하거나 또는 이를 외부 애플리케이션에 송신함으로써 방지될 수 있다. 키보드 캐시 특징은 민감한 텍스트 필드들에 대한 자동보정 기능을 디스에이블하도록 동작할 수 있다. SSL 인증 검증은 동작가능할 수 있으며, 따라서 애플리케이션은 그것이 키체인에 저장되는 대신에 서버 SSL 인증서를 상세하게 검증한다. 암호화 키 생성 특징은 (오프라인 액세스가 요구되는 경우에) 디바이스상의 데이터를 암호화하기 위하여 사용되는 키가 사용자에 의해 공급되는 패스프레이즈를 사용하여 생성되도록 사용될 수 있다. 이는 오프라인 액세스가 요구되지 않는 경우에 서버측에서 랜덤하게 생성되어 저장되는 다른 키들과 XOR 연산될 수 있다. 키 유도 함수들은 사용자 패스워드로부터 생성된 키들이 키의 암호 해시를 생성하는 것보다 오히려 KDF들(키 유도 함수들, 특히 PBKDF2(Password-Based Key Derivation Function 2))을 사용하도록 동작할 수 있다. 후자는 강한 힘 또는 사전(dictionary) 공격들을 다룰 수 있는 키를 생성한다.
추가로, 하나 이상의 초기화 벡터들이 암호화 방법들에서 사용될 수 있다. 초기화 벡터는 동일한 암호화된 데이터의 다수의 복사본들이 상이한 암호 텍스트 출력을 초래하도록 할 것이며, 따라서 리플레이 및 암호해독 공격들이 방지된다. 이는 또한 데이터를 암호화하기 위하여 사용되는 특정 초기화 벡터가 알려지지 않은 경우에 암호화 키가 도난당했을지라도 공격자가 임의의 데이터를 암호해독하는 것을 방지할 것이다. 추가로, 인증 및 이후 암호해독이 사용될 수 있으며, 여기서 사용자가 애플리케이션 내에서 인증된 이후에만 애플리케이션 데이터가 암호해독된다. 다른 특징은 필요할 때만 (디스크가 아니라) 메모리에서 유지될 수 있는, 메모리내의 민감 데이터와 관련될 수 있다. 예컨대, 로그인 크리덴션들은 로그인 크리덴셜들은 로그인 이후에 메모리로부터 지워질 수 있으며, 목적-C 인스턴스 변수들 내의 다른 데이터가 저장되지 않는데, 왜냐하면 이들 데이터는 용이하게 참조될 수 있기 때문이다. 대신에, 메모리는 이들을 위해 수동으로 할당될 수 있다.
인액티비티 타임아웃(inactivity timeout)이 구현될 수 있으며, 여기서 인액티비티의 정책-정의된 기간 이후에 사용자 세션이 종료된다.
애플리케이션 관리 프레임워크(614)로부터의 데이터 누출은 다른 방식들로 방지될 수 있다. 예컨대, 애플리케이션(610)이 배경으로 될 때, 메모리는 미리 결정된(구성가능) 시간 기간 이후에 클리어될 수 있다. 배경화 될 때, 전경화 프로세스(foregrounding process)를 고정시키기 위하여 애플리케이션의 마지막으로 디스플레이된 스크린에서 스냅샷이 취해질 수 있다. 스크린샷은 비밀 데이터를 포함할 수 있고 따라서 클리어되어야 한다.
다른 보안 특징은 하나 이상의 애플리케이션들에 액세스하기 위해 AD(active directory)(622) 패스워드를 사용하지 않고 OTP(one time password)(620)의 사용과 관련된다. 일부 경우들에서, 일부 사용자들은 그들의 AD 패스워드를 알지못하며(또는 그들의 AD 패스워드를 알도록 허용되지 않으며) 따라서 이들 사용자들은 OTP(620)를 사용하여, 예컨대 SecurID와 같은 하드웨어 OTP 시스템을 사용함으로써 인증할 수 있다(OTP들은 또한 Entrust 또는 Gemalto와 같은 상이한 벤더들에 의해 제공될 수 있다). 일부 경우들에서, 사용자가 사용자 ID로 인증한 이후에, 텍스트가 OTP(620)와 함께 사용자에게 송신된다. 일부 경우들에서, 이는 프롬프트가 단일 필드인 경우에 단지 온라인 사용을 위해서만 구현될 수 있다.
오프라인 패스워드는 기업 정책을 통해 오프라인 사용이 허용되는 이들 애플리케이션들(610)에 대한 오프라인 인증을 위하여 구현될 수 있다. 예컨대, 기업은 기업 애플리케이션 스토어가 이러한 방식으로 액세스되는 것을 원할 수 있다. 이러한 경우에, 클라이언트 에이전트(604)는 사용자가 고객 오프라인 패스워드를 세팅할 것을 요구할 수 있으며, AD 패스워드가 사용되지 않는다. 게이트웨이 서버(606)는 표준 윈도우즈 서버 패스워드 복잡성 요건들이 수정될 수 있을 지라도 이 요건들에 의해 기술되는 것과 같은 최소 길이, 캐릭터 클래스 구성(character class composition) 및 패스워드들의 수명에 대한 패스워드 표준들을 제어하고 시행하기 위한 정책들을 제공할 수 있다.
다른 특징은 (마이크로 VPN 특징을 통해 PKI 보호 웹 자원들에 액세스하기 위한) 2차 크리덴셜들로서 특정 애플리케이션들(610)에 대한 클라이언트측 인증서를 가능하게 하는 것과 관련된다. 예컨대, 이메일 애플리케이션은 이러한 인증서를 활용할 수 있다. 이러한 경우에, ActiveSync 프로토콜를 사용한 인증서-기반 인증이 지원될 수 있으며, 여기서 클라이언트 에이전트(604)로부터의 인증서는 게이트웨이 서버(606)에 의해 리트리브되고 키체인으로 사용될 수 있다. 각각의 관리 애플리케이션은 게이트웨이 서버(606)에서 정의되는 라벨에 의해 식별되는 하나의 연관된 클라이언트 인증서를 가질 수 있다.
게이트웨이 서버(606)는 관련된 관리 애플리케이션들이 내부 PKI 보호 자원들을 인증하도록 클라이언트 인증서들을 발행하는 것을 지원하기 위하여 기업 특수 목적 웹 서비스와 인터랙티브할 수 있다.
클라이언트 에이전트(604) 및 애플리케이션 관리 프레임워크(614)는 내부 PKI 보호 네트워크 자원들을 인증하기 위한 클라이언트 인증서들을 획득하여 사용하는 것을 지원하도록 시행될 수 있다. 예컨대 보안 및/또는 분리 요건들의 다양한 레벨들을 매칭시키기 위하여 2개 이상의 인증서가 지원될 수 있다. 인증서들은 메일 및 브라우저 관리 애플리케이션들에 의해, 궁극적으로 임의적 래핑된 애플리케이션들에 의해 사용될 수 있다 (애플리케이션 관리 프레임워크가 HTTPS 요청들을 중재하는 것이 타당한 웹 서비스 스타일 통신 패턴들을 이들 애플리케이션들이 사용하는 경우에).
iOS상에서의 애플리케이션 관리 클라이언트 인증서 지원은 각각의 사용 기간 동안 각각의 관리 애플리케이션에서 공개 키 암호 표준(PKCS, public-key cryptography standards) 12 BLOB(Binary Large Object)를 iOS 키체인으로 임포팅하는 것에 의존할 수 있다. 애플리케이션 관리 프레임워크 클라이언트 인증서 지원은 사설 인-메모리 키 스토리지(private in-memory key storage)를 가진 HTTPS 구현을 사용할 수 있다. 클라이언트 인증서는 iOS 키체인에서 결코 제시되지 않을 수 있으며, 그리고 강하게 보호되는 "온라인-전용" 데이터 값을 잠재적으로 제외하고 지속되지 않을 수 있다.
상호 SSL은 또한 모바일 디바이스(602)가 기업에게 인증될 것을 요구함으로써 추가 보안을 제공하도록 구현될 수 있으며, 이와 반대의 경우도 마찬가지다. 게이트웨이 서버(606)에 인증하기 위한 가상 스마트 카드들이 또한 구현될 수 있다.
제한된 케르베로스(Kerberos)와 전체의 Kerberos 지원은 둘 모두 추가적인 특징들일 수 있다. 전체의 지원 특징은 AD 패스워드 또는 신뢰성 있는 클라이언트 인증서를 사용하여 액티브 디렉토리(AD)(622)에 대해 전체 Kerberos 로그인을 수행하고 HTTP 교섭 인증 난제들에 응답하기 위하여 Kerberos 서비스 티켓들을 획득하는 능력과 관련된다. 제한된 지원 특징은 AGEE에서의 강제 위임(constrained delegation)과 관련되며, 여기서 AFEE는 Kerberos 프로토콜 전환을 호출하는 것을 지원하며, 따라서 이는 HTTP 교섭 인증 난제들에 응답하여 (강제 위임 대상인) Kerberos 서비스 티켓들을 획득하여 사용할 수 있다. 이러한 메커니즘은 리버스 웹 프록시(CVPN(corporate virtual private network)으로도 지칭됨) 모드에서 그리고 HTTP(HTTPS가 아님) 연결들이 VPN 및 마이크로 VPN 모드에서 프록시될 때 작동한다.
다른 특징은 애플리케이션 컨테이너 로킹 및 지움과 관련되며, 이는 자일-브레이크(jail-break) 또는 루팅 검출시 자동적으로 발생하며 관리 콘솔로부터 푸시 커맨드로서 발생할 수 있으며 그리고 애플리케이션(610)이 실행되지 않을 때 조차 원격 지움 기능을 포함할 수 있다.
기업 애플리케이션 스토어 및 애플리케이션 제어기의 멀티-사이트 아키텍처 또는 구성이 지원될 수 있으며, 이는 사용자들로 하여금 실패의 경우에 여러 상이한 위치들 중 하나의 위치로부터 서비스받을 수 있도록 한다.
일부 경우들에서, 관리 애플리케이션들(610)은 API(예컨대, OpenSSL)를 통해 인증서 및 개인 키에 액세스하도록 허용될 수 있다. 기업의 신뢰성 있는 관리 애플리케이션들(610)은 애플리케이션의 클라이언트 인증서 및 개인 키를 사용하여 특정 공개 키 동작들을 수행하도록 허용될 수 있다. 따라서, 예컨대, 애플리케이션이 브라우저와 같이 동작하며 인증서 액세스가 요구되지 않을 때, 애플리케이션이 "나는 누구인가"에 대한 인증서를 판독할 때, 애플리케이션이 보안 세션 토큰을 구축하기 위하여 인증서를 사용할 때, 그리고 애플리케이션이 중요한 데이터에 대한 디지털 서명(예컨대, 트랜잭션 로그) 또는 일시적 데이터 암호화를 위해 개인 키들을 사용할 때, 다양한 사용의 경우들이 식별되어 처리될 수 있다.
스마트 카드 로그인의 실시예
빠른 스마트 카드 로그온은 스마트 카드를 사용하여 지연속도를 저감하고 보안성을 향상시키면서 사용자 또는 클라이언트 장치를 인터랙티브 서버(예를 들어, 마이크로소프트 버추얼 데스크톱 인프라스트럭쳐(VDI, Virtual Desktop Infrastructure)/ 원격 데스크탑 서비스(RDS, Remote Desktop Services) 서버, 등)와 같은 서버에 인증하는데 사용될 수 있다. 예를 들어, 상기 시스템은 인증을 위하여 사용되는 서버 장치와 클라이언트 장치 사이의 작업(예를 들어, 인터랙티브) 횟수를 감소시킬 수 있다. 이 작업들은 스마트 카드 또는 사인 데이터로부터 사용자 인증을 인출하는 것을 포함할 수 있다. 따라서, PC/SC 로그온을 느려지게 하는 스마트 카드 네트워크 채터(chatter)는 저감될 수 있다. 또한, 빠른 스마트 카드 로그온은 네트워크 상의 PIN(또는 다른 크리덴셜) 전송을 선택적으로 회피함으로써, 그리고, PIN 캐칭을 위한 리소팅(resorting)없이 실제의 인터랙티브 서버 로그온 스마트 카드를 사용하여 인증 이벤트(예를 들어, SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 인증 등)로부터 싱글 사인 온을 가능하도록 하기 위하여 보안성을 향상시킬 수 있다.
도 7은 본원에서 기술된 하나 이상의 실시예들에 따른 스마트 카드 로그온을 위한 시스템을 나타낸다. 상술한 바와 같이, 도 7에 도시된 클라이언트 장치(701)는 인증을 위하여, 그리고, 서버(721)가 원격 어플리케이션 서비스들을 제공하도록 하기 위하여 도 7에 도시된 서버(721)와 인터랙티브할 수 있다. 예를 들어, 상기 클라이언트 장치(701)는 서버(721) 또는 다른 서버 상에서 원격으로 실행되는 어플리케이션에 의하여 생성된 디스플레이 어플리케이션 출력을 위하여 사용되는 가상 머신 프로그램 또는 어플리케이션과 같은 클라이언트 에이전트(703)를 포함할 수 있다.
상기 클라이언트 장치(701)는 어플리케이션들이 데이터를 암호화하거나 또는 서명하는 것을 가능하게 하는 암호화 응용 프로그래밍 인터페이스(CAPI, cryptographic application programming interface), CSP(cryptographic service provider)(711), 및 미니 드라이버(713)를 포함할 수 있다. 몇몇 실시예에서, 상기 CAPI(709), CSP(711), 및 미니 드라이버(713)는 스마트 카드 로그온 중에 상기 클라이언트 장치(701)에 의하여 사용되지 않을 수 있다.
상기 서버(721)는 가상화 에이전트(또는 가상 에이전트)(723)을 포함할 수 있다. 또한, 상기 서버(721)는 크리덴셜 제공자(725), 케르베로스 모듈(727), CAPI(729), CSP(731), 및 미니 드라이버(737)을 포함할 수 있다. 상기 서버(721)는 상기 클라이언트 장치(701)를 인증하거나 및/또는 상기 클라이언트 장치(701)의 데이터 서명을 위하여 상기한 요소들을 사용할 수 있다. 또한, 상기 클라이언트 장치(701) 및 상기 서버(721) 각각은 스마트 카드 통합을 위하여 사용된 로우 레벨 개인 컴퓨터/스마트 카드(PC/SC) 레이어(715 또는 739)를 포함할 수 있다. 도 7에 도시된 바와 같이, 상기 스마트 카드(717)는 상기 클라이언트 장치(701)과 물리적으로 연결될 수 있다. 상기 클라이언트 장치(701)는 추가로 또는 대안으로 가상 스마트 카드를 사용할 수 있으며, 상세 사항은 후술한다.
일부 실시예에서, 사용자는 인증을 위하여 개인 식별 번호(PIN, personal identification number) 또는 다른 크리덴셜을 사용하도록 유도될 수 있다. 클라이언트 에이전트(703)는 PIN을 캡쳐하고, 선택적으로 저장하며, 네트워크 연결을 통하여 상기 서버(721)의 가상 에이전트(723)로 전송한다. 상기 서버의 CAPI(729)는 서드파티 또는 공용의 API들을 포함할 수 있다. 또한, 스마트 카드 인증을 위한 드라이버들은 상호(inter)-운영체제 호환성을 가능하게 할 수 있는 서버 측에 존재할 수 있다.
상기 서버 측의 암호(cryptographic) 서비스 제공자(731)는 상기 클라이언트 장치9701)로부터 수신된 PIN을 저장(예를 들어, 캐쉬)할 수 있다. 인증 프로세스 중, 상기 서버(721)는 하나 이상의 인증서(certificate)와 같은 크리덴셜을 획득하기 위하여 상기 클라이언트 장치(701)의 스마트 카드(717)로부터 PIN을 상기 PC/SC 레이어(739)를 통하여 상기 클라이언트 장치(701)로 돌려보낼 수 있다. PC/SC 레이어(715, 739)에서 스마트 카드 인터랙티브 중에, 상기 클라이언트 장치(701) 및 서버(721)는 대략 500회 이상의 왕복 리퀘스트들과 같은 수백회 이상의 인터랙티브를 할 수 있다. 빠른 스마트 카드 로그인을 위한 두번째 방법은 클라이언트 장치(701) 및 서버(721)의 후술할 제1, 제2, 또는 제3 인터랙티브와 같은 스마트 카드 인증 중의 인터랙티브를 하는 횟수를 줄이는 것이다.
도 8은 본 발명의 하나 이상의 바람직한 실시예에 따른 빠른 스마트 카드 로그온을 위한 시스템을 나타낸다. 빠른 스마트 카드 로그온은 PC/SC 레벨(815, 839) 보다 더 높은 통신 레벨(예를 들어, 클라이언트 인증과 함께 도메인 로그온)에서 상기 클라이언트 장치(801)와 상기 서버(821) 사이의 인터랙티브들을 포함할 수 있다. 이것은 상기 클라이언트(801)과 상기 서버(821)간의 인터랙티브 횟수 및/또는 상기 클라이언트(801)과 상기 서버(821)간의 교환된 데이터량(예를 들어, 볼륨)을 줄일 수 있다.
도 7과 관련하여 상술한 바와 같이, 상기 클라이언트 장치는 클라이언트 에이전트(803), CAPI(809), CSP(811)(예를 들어, 도 8에 도시된 CSP2), 미니 드라이버(813), 및 PC/SC(815)를 포함할 수 있다. 그러나, 상기 클라이언트 장치는 상기 서버의 CAPI(829), CSP(831) 및 미니 드라이버(837)에 의존하는 것 보다는, 스마트 카드의 인증을 위하여 그 자신의 CAPI(809), CSP 2(811), 및 미니 드라이브(813)를 사용할 수 있다. 또한, 생체인증인증(biometric) 스마트 카드(또는 다른 스마트 카드)가 될 수 있는 스마트 카드(817)는 상기 클라이언트 장치(801)와 물리적으로 연결될 수 있다. 상기 스마트 카드(817)는 인증서들과 같은 크레덴셜들을 저장할 수 있다.
상기 클라이언트 에이전트(803)는 가상 에이전트(823)와의 디스플레이 원격 연결을 통하여 상기 서버(821)의 가상 에이전트(823)와 함께 협상(negotiation) 세션(session)을 확립할 수 있다. 상기 협상 세션 중, 상기 서버(821)(예를 들어, 상기 서버(821)의 가상 에이전트(823))는 기존의 스마트 카드 로그온을 수행할 것인지 또는 빠른 스마트 카드 로그온을 수행할 것인지 결정할 수 있다. 상술한 바와 같이, 빠른 스마트 로그온은 상기 서버(821)와 상기 클라이언트 장치(801)간의 낮은 인터랙티브들을 포함할 수 있다. 상기 클라이언트 장치(801)와 서버(821)는 협상 세션 중 그들의 능력을 상호간에 알릴 수 있다.
가상 에이전트(823)는 상기 클라이언트 에이전트(803)가 가상 에이전트(823)를 자동 로그온 크리덴셜들과 함께 제공했는지 여부를 결정할 수 있다. 브로커링(brokering) 단계 중, 클라이언트 장치(801)는 다른(예를 들어, 인증) 서버와 함께 인증될 수 있고, 사용자는 패스워드, PIN, 생체인증(biometrics), 또는 다른 크리덴셜들을 제공받을 수 있다. 스마트카드(817)는 상기 브로커링 단계 중에 사용될 수 있다. 그리고 상기 스마트카드(817)는 제1서버의 인증이 성공하면 언락될 수 있다. 상기 브로커링 단계 및 스마트카드 언락 단계는 상기 클라이언트 에이전트(803)과 가상 에이전트(823)간의 협상 세션 전에 이루어지거나, 또는 상기 클라이언트 에이전트(803)과 가상 에이전트(823)간의 협상 세션 중에 이루어질 수 있다. 따라서, 가상 에이전트(823)는 상기 협상 세션 중에 자동 로그온 크리덴셜들이 상기 클라이언트 에이전트(803)에 의하여 제공되었는지를 결정할 수 있다. 몇몇 실시예들에서, 가상 에이전트(823)는 오토 로그온 크리덴셜들이 제공된 경우와 같이, 향후의(future) PIN(또는 다른 크리덴셜) 프롬프트들이 클라이언트에서 유익하게 차단된 경우, 빠른 스마트 카드 로그온을 사용할지 결정할 수 있다. 반면, 가상 에이전트(823)는 기존의 스마트 카드 로그온(예를 들어, PC/SC 레이어를 통한 스마트 카드 인증)을 사용할 지 결정할 수 있다.
서버(821)는 사용할 로그온 스키마(scheme)를 결정하기 위한 하나 이상의 다른 요인들(factors)을 고려할 수 있다. 예를 들어, 서버(821)는 상기 클라이언트 장치(801)가 빠른 스마트 카드 로그온(예를 들어, 스마트 카드 인증)을 선호하는 것을 나타내는(예를 들어, 협상 세션 중) 경우, 빠른 스마트 카드 로그온을 사용할 지 여부를 결정할 수 있다. 또한, 서버(821)는 빠른 스마트 카드 로그온을 수행하는 것이 가능하지 여부를 결정할 수 있다. 몇몇 실시예에서, 서버(821)는 PIN을 위한 사용자 프롬프트들의 개수에 근거하여 빠른 스마트 카드 로그온을 수행할 지의 여부를 결정할 수 있다. 예를 들어, 서버(821)는 하나 또는 낮은 사용자 PIN 프롬프트들이 발생하는 경우(예를 들어, 브로커링 단계 중 또는 브로커링 단계와 협상 단계 중) 빠른 스마트 카드 로그온을 사용하도록 결정할 수 있다. PIN 프롬프트들의 다른 임계(threshold) 갯수가 사용될 수 있다. 반면, 서버(821)는 빠른 스마트 카드 로그온 스키마를 사용하지 않도록 결정할 수 있다.
사용자가 PIN 또는 다른 크리덴셜(예를 들어, 생체)을 제공한 이후, 클라이언트 장치(801)의 CSP(811)는 PIN, 생체, 또는 다른 크리덴셜을 저장(예를 들어, 캐쉬)하거나, 또는 클라이언트 장치(801)의 향후 사용을 위하여 스마트 카드를 언락된 상태로 유지할 수 있다. 도 7에 도시된 바와 같이, 클라이언트 장치(801)는 PIN 또는 생체인증을 CSP 2(811)에 저장함으로써, 보안 인증서를 획득하기 위하여 스마트 카드(817)와 통신하는 서버(821)의 CSP(831) 보다는, 상기 스마트 카드(817)와 직접적으로 통신할 수 있다. 따라서, PIN 또는 생체인증은 클라이언트 장치(801)와 서버(821) 사이에서 보안이 유지되거나 또는 보안이 유지되지 않을 수 있는 네트워크를 통하여 전송되기 보다는 상기 클라이언트 장치(801) 상에 남아있을 수 있다. 다른 실시예에서, 클라이언트 에이전트(803)는 서버(821)로 PIN 또는 생체인증을 전송할 수 있다. 서버(821)는 상기 PIN 또는 생체인증을 예를 들어, CSP(833)에 저장할 수 있으며, 상세 사항은 후술한다. 생체인증(예를 들어, 지문)의 실시예에서, 지문 또는 다른 생체인증을 위하여 사용되는 데이터량이 매우 크기 때문에 스마트 카드 인증이 현저히 빨라질(다른 스마트 카드 인증 스키마에 상대적으로) 수 있다.
또한, 클라이언트 장치(801)는 스마트 카드(817)를 사용하는 것과 같은 인증 작업을 수행하도록 이루어진 개인 키 작업(PKOperation(Private Key Operation)) SDK 모듈(807)을 포함할 수 있다. PKOperation SDK(807)의 기능은 그 전체가 참조로서 여기에 통합된 공동 출원중인 일반 출원(non-provisional) 미국 특허 출원 시리얼 번호 제 13/886,845호에 기술되었다. 특히, 클라이언트 장치(801)의 PKOperation SDK 모듈(807)은 인증 목적의 서명을 위하여 사용될 수 있는 개인 키들에 대응하는 하나 이상의 클라이언트 인증서들을 저장하는 키스토어에 접근 가능하게 할 수 있다. 예를 들어, 클라이언트 장치(801)는 클라이언트 장치(801)의 사용자를 대표하는 클라이언트 인증서의 접근 또는 점유를 허가할 수 있다. 몇몇 실시예에서, 인증서는 기업 발행(enterprise-issued) 인증서일 수 있다. 상기 인증서는 암호화 모듈을 갖는 물리적인 스마트 카드에 묶일(bound) 수 있다. 다시말해서, 암호의 비밀은 상기 스마트 카드에 제한된다. 사용자는 스마트 카드 보안 인증서에 접근하기 위하여 클라이언트 장치(801)를 인가할 수 있다.
대안으로, 인증서는 키를 보호하기 위한 하드웨어 및/또는 소프트웨어 모듈을 사용할 수 있는 파생된 크리덴셜(예를 들어, 가상 스마트 카드)에 묶일 수 있다. 파생된 크리덴셜 내의 인증서들은 클라이언트 장치(801)에 저장될 수 있고, 물리적인 스마트 카드(817) 상의 인증서들과 유사하게 접근될 수 있다. 파생된 크리덴셜의 인증서들은 클라이언트 장치(801)에서 신뢰된 환경에 저장될 수 있다.
클라이언트 장치(801) 및/또는 클라이언트 장치의 제거가능한 하드웨어 모듈은 인증서 및 개인 키를 저장하기 위한 권한설정(provisioning) 프로세스에 의하여 인가될 수 있다. 사용자는 클라이언트 인증서 개인 키와 관련한 작업을 인가하기 위하여 클라이언트 장치(801)를 사용하여 PIN 또는 다른 크리덴셜(예를 들어, 생체인증)의 입력을 요구받을 수 있다. 클라이언트 장치(801) (예를 들어, 스마트폰)로부터 분리된 다른 외부 장치는 인증서를 제어할 수 있고, 클라이언트 장치(801)는 외부 장치에 의하여 제어된 인증서에 접근하기 위한 커스텀 리더 인터페이스(custom reader interface)를 사용할 수 있다.
서버(821)로 돌아가서, 도 7을 참조하여 상술한 바와 같이, 서버(821)는 가상 에이전트(823) 및 CAPI(829)를 포함할 수 있다. 서버(821)는 CSP(831)을 포함할 수 있으나, 스마트 카드 인증을 위하여 CSP(831)을 사용하지는 않을 수 있다. 즉, 클라이언트 측 CSP(811)가 대신 사용될 수 있다. 또한, 서버(821)는 스마트 카드 로그온을 시작하도록 이루어진 크리덴셜 제공자(825)(또는 크리덴셜 제공자 필터)를 포함하는 하나 이상의 크리덴셜 제공자들을 포함할 수 있다. 가상 에이전트(823)는 크리덴셜 제공자(825)와 같은 빠른 스마트 카드 로그온을 위하여 사용되기 위한 크리덴셜 제공자를 선택할 수 있다. 케르베로스 인증이 사용되는 경우, 크리덴셜 제공자(825)는 신뢰된 서드 파티 장치(827)(예를 들어, 케르베로스 모듈)과 통신할 수 있으며, 상세 사항은 후술된다.
서버(821)는 암호화 서비스 제공자(CSP)(831) 및/또는 (선택적으로) 키 스토리지 제공자(KSP, key storage provider)(미도시)를 포함할 수 있다. 다시말해서, CSP(831)는 KSP로 교체될 수 있다. KSP는 CSP(831)에 의하여 지원되지 못할 수 있는 대안의 스마트 카드 알고리즘을 지원하기 위하여 사용될 수 있다. 유사하게, 클라이언트 장치(801)의 CSP(811)는 KSP로 교체될 수 있다. CSP들(및/또는 KSP들)은 인증 작업을 가로채도록 이루어질 수 있다. 크리덴셜 제공자(825)는 CSP(831)과 같은 빠른 스마트 카드 로그온을 위하여 사용되는 CSP를 선택할 수 있다. 서버(821)의 CSP(831)(및/또는 KSP)는 원격 채널(836)을 통하여 클라이언트 장치(801)의 PKOperation SDK(807)와 통신할 수 있다. 예를 들어, 클라이언트 장치(801)와 서버(821) 사이의 가상 채널(836)은 클라이언트 장치(801)의 가상 채널 드라이버(805) 및 서버(821)의 가상 채널 드라이버(835)에 의하여 확립될 수 있다.
스마트 카드(817)로부터의 인증서 요청 또는 사인 데이터 요청과 같은 클라이언트 장치(801)를 사용하는 작업은 서버(821)의 CSP(831)(및/또는 KSP)로부터 클라이언트 장치(801)의 PKOperation SDK(807)로 전송될 수 있다(예를 들어, 가상 채널(836)을 통하여). 고 레벨 통신(예를 들어, PC/SC 터널(838)보다는 가상 채널(836)을 통한)에 의하여, 도 8에 도시된 서버 및 클라이언트 장치 쌍(pair)은 도 7에 도시된 서버 및 클라이언트 장치 쌍보다 더 적은 횟수로 및/또는 더 적은 정보들로 잠재적(potential) 지연속도를 저감하며 통신할 수 있다.
또한, 서버(821)는 클라이언트 장치(801)(또는 스마트 카드(817))와 통신하지 않는 서버측 인증 작업을 위한 서드 파티 CSP와 같은 CSP(833)을 포함할 수 있다. 전술한 바와 같이, 서버(821)는 또한 미니 드라이버(837) 및 PC/SC 후크(839)를 포함할 수 있다. 몇몇 실시예에서, 미니 드라이버(837) 및 PC/SC(839)는 클라이언트 장치 인증을 위하여 사용되지 않을 수 있다. 다른 실시예에서, PC/SC(839)는 다른 가상 채널(838)을 통하여 클라이언트 장치(801)의 PC/SC(815)와 통신할 수 있다.
케르베로스를 통한 스마트 카드(817)를 사용하는 인증을 위한 일반적인 작업들을 보다 상세히 기술한다. 서버 크리덴셜 제공자(825)는 로그온을 촉발(trigger)하기 위하여 액티브 디렉토리 로그온과 같은 KERB_CERTIFICATE_LOGON 구조를 스마트 카드 클래스 사용자 인증서와 함께 사용할 수 있다. 서버 크리덴셜 제공자(825)는 KERB_CERTIFICATE_LOGON 구조를 사용할 수있다. KERB_CERTIFICATE_LOGON 구조는 이하를 포함할 수 있다.
Figure pct00001
또한, KERB_CERTIFICATE_LOGON 구조 내에 기술된 바와 같이, “CspData”는 KERB_SMARTCARD_CSP_INFO 구조를 위한 포인터를 위해(compromise)할 수 있다. KERB_SMARTCARD_CSP_INFO 구조는 이하를 포함할 수 있다.
Figure pct00002
상기 구조는 서버 크리덴셜 제공자(825)에 의하여 생성될 수 있다. 특히, 상기 구조는 예를 들어, CSP(831) 및/또는 KSP의 이름으로 식별할 수 있다.
참조로서 통합된 미국 특허 출원 시리얼 제 13/886,845호에 보다 상세하게 기술된 바와 같이, 케르베로스 리소스 인증은 케르베로스 KDC들(예를 들어, 액티브 디렉토리 도메인 컨트롤러들)로부터 서비스 티켓들을 획득하는 것을 포함할 수 있다. 예를 들어, 서버(821) 내의 케르베로스 인증 패키지는 액티브 디렉토리 로그온을 수행하기 위하여 설명 요청(RFC, Request for Comments) 4556에 기술된 바와 같은 케르베로스 내의 초기 인증 프로토콜(PKINIT)을 위한 개인 키 암호화를 사용할 수 있다.
서버 크리덴셜 제공자(825), 케르베로스 모듈(827) 또는 스마트 카드를 사용하는 다른 어플리케이션에 의하여 정보를 처리하는 중에, 서버(821)측의 CSP(831) 및/또는 KSP는 크리덴셜 제공자(825)와 케르베로스 모듈(827)에 의하여 수행되는 적절한 인증 작업들을 가로챌 수 있고, 이 작업들을 클라이언트 장치(801) (예를 들어, 클라이언트 장치(801)의 PKOperations SDK(807))로 원격으로 전송할 수 있다. 예를 들어, CSP(831) 및/또는 KSP가 인증서 리퀘스트 또는 데이터 서명 작업을 검출하는 경우, 상기 CSP(831) 및/또는 KSP는 인증 데이터를 패키징 하고, 인증 및/또는 서명을 위하여 클라이언트 장치(801)로 요청을 전송할 수 있다. 반면, 클라이언트 정보를 사용하지 않는 작업은 클라이언트 장치(801)을 포함하지 않고 일반적으로 서버(821)에서(예를 들어, 서드파티 CSP(833)을 통하여) 수행될 수 있으며, 클라이언트 장치(801)와 서버(821)간의 교환된 데이터량 및 클라이언트 장치(801)와 서버(821)간의 인터랙티브 횟수를 감소시킨다. 클라이언트 장치(801)에 원격으로 이루어진 일 예의 작업들은 스마트 카드(817) 상의 인증서들의 리스트(예를 들어, 열거(enumerate)) 요청, 인증서 요청, 스마트 카드(817)의 개인 키를 사용하는 서명 작업, 및 스마트 카드(817)의 개인 키를 사용하는 해독 작업을 포함하나, 이에 한정하는 것은 아니다. 클라이언트 장치(801)로 전송(예를 들어, 원격으로)되지 않을 수 있는 일 예의 작업들(예를 들어, 서드 파티 CSP(833)에 의하여 수행되거나, 또는 서버(821) 상에서 수행될 수 있는)은 상황정보(context[상황정보]) 및 핸들 관리, 파라미터 수집 및 핸들링, 랜덤 넘버 생성, 대칭(symmetric) 키 생성 및 도출, 벌크 암호화 및 해독, 메시지 다이제스트 들을 생성하기 위한 해싱 데이터, 세션 키의 래핑(wrapping), 서명 검증, 및 일부 다른 작업들을 포함하나, 이에 한정하는 것은 아니다.
또한, CSP(831) 및/또는 KSP는 인증, 서명 또는 해독 데이터를 위한 클라이언트(801), 또는 클라이언트 장치(801)를 포함하는 다른 작업을 위한 요청과 함께 PKINIT 상황정보와 같은 상황정보를 클라이언트 장치(801)에 공급할 수 있다. 상황정보의 공급은 그 전체가 참조로서 여기에 통합된 미국 특허 출원 시리얼 번호 제 13/886,845호에 더 상세하게 기술되었다. 상황정보의 공급은 서버(821)와 클라이언트 장치(801)간의 원격 채널(836)의 오사용을 방지하기 위한 보호장치가 될 수 있다.
서명 작업의 일 예가 기술된다. 케르베로스 모듈(827)은 로그온 중, 예를 들어, 클라이언트 장치의 서명이 요구되었는지를 나타내기 위하여 CPS(831)에 콜(call)을 할 수 있다. 예를 들어, 그리고, 미국 특허 출원 시리얼 번호 제 13/886,845호에 더 상세하게 기술된 바와 같이, 케르베로스 모듈(827)은 PKINIT 중 서명되어야 할 AuthPack이 서명되도록 호출 할 수 있다.
Figure pct00003
스마트 카드(817) 개인 키는 AuthPack 구조의 서명을 위하여 클라이언트 장치(801)에 의하여 사용될 수 있다. 서명은 RFC 5652에 기술된 암호 메시지 구문(CMS, Cryptographic Message Syntax)를 사용함으로써 완료될 수 있다. 특히, AuthPack은 RFC 5652에 기술된 SignedData 엔벨로프(envelope) 내에 위치될 수 있다. 따라서, RFC 4556 및 5652에 정의된 바와 같이, 그리고, 미국 특허 출원 시리얼 번호 제 13/886,845호에 더 상세하게 기술된 바와 같이, 해시 함수 콜들을 통과하는 원 자료(raw data)가 잘 형성된(well-formed) ASN.1 구조를 가질 수 있기 때문에, 서명 작업은 CSP 레벨에서 확인할 수 있다. 몇몇 실시예에서, 클라이언트 장치(801)와 원격으로 이루어진 작업들(예를 들어, 서명 및 해독)은 프로토콜 상황정보(예를 들어, ASN.1 또는 다른 확인가능한 구조)를 나타내지 않을 수 있다. 따라서, 이 작업들은 이 작업들을 상승(rise)시키는 프로토콜 상황정보의 증명(proof)을 제공하지 않고 제공될 수 있다.
상술한 바와 같이, 클라이언트 장치(801)는 인증 프로세스 중 상기 서버(821)로부터 하나 이상의 리퀘스트들을 수신할 수 있다. 클라이언트 장치(801) 상의 프로세스들은 하나 이상의 프로세스간 통신(IPC, InterProcess Communication) 메커니즘을 통하여 통신할 수 있다. 또한, 각 프로세스들은 다른 프로세스가 인증 중에 과잉(excess) PIN 프롬프트들(또는 다른 크리덴셜 프롬프트들)을 차단하는지 여부를 결정하는데 사용될 수 있는 제1프로세스를 콜하였는지를 결정할 수 있다. 프로세스가 스마트 카드(817)에 의하여 이미 언락된 경우, 하나 이상의 그 후의 PIN 프롬프트들은 사용자가 PIN을 다시 제공할 필요가 없도록 블록될 수 있다. 그러나, 프로세스가 스마트 카드(817)에 사용된 적이 없다면, 사용자는 PIN을 위하여 유도될 수 있다. 논리적으로 하나의 어플리케이션(사용자의 요구에 따라)을 포함한다 하더라도 클라이언트 에이전트(803)는 다중 프로세스들로 이루어질 수 있다. 이 프로세스들 중 하나는 브로커링 중의 선행 인증 때문에 스마트 카드를 사용하도록 인가되었을 수 있으며(그리고 다른 것들은 인가되지 않았을 수 있다), 따라서, 클라이언트 장치(801)는 더 많은 PIN 프롬프트들을 피하기 위하여 이러한 추가적인 스마트 카드 작업들을 상기 클라이언트 에이전트 로그온 단계로부터 제1프로세스로 전송(route)할 수 있다.
반면, 추가적은 PIN 프롬프트들은 몇몇 상황들에서 발생할 수 있다. 클라이언트 장치(801)가 사용자를 다시 사용자의 PIN(또는 다른 크리덴셜)을 사용하게 하는지 여부는 해당 프로세스가 스마트 카드 PIN을 호출(call) 하는지에 근거한다. 몇몇 실시예에서, 사용자는 스마트 카드를 사용하기를 원하는 각 어플리케이션을 인가할 수 있다. 이것은 운영체제 및 CSP에 의하여 실행될 수 있다. 언락된 스마트 카드는 PIN 프롬프트를 도출하고 따라서 사용자 인증을 획득하는 제1프로세스와는 다른 목적일 수 있는 다른 프로세스들에 의하여 불필요하게 사용될 수 있다. 몇몇 경우들에서, 스마트 카드는 PIN 프롬프트를 강요하는 내부 정책을 가질 수 있다.
몇몇 실시예에서, 전술한 인증 방법은 CSP(예를 들어, CSP(831)) 및/또는 KSP 상에서 실행될 수 있다. CSP 또는 KSP가 사용되는 경우, 해시함수들은 사용되지 않을 수 있다. 일반적으로, 많은 CSP 함수들은 CpSignHash 및 CpDecrypt와 같은 클라이언트 장치(801)를 사용하는 작업을 제외하고, 표준 CSP(예를 들어, 서드 파티 CSP(833))에 위임될 수 있다. 몇몇 실시예에서, 케르베로스 모듈(827)이 AS-REQ 패킷 내에 두기 위하여 사용자 인증서를 더 호출하는 경우, 케르베로스 모듈(827)은 사용자 인증서를 판독하기 위하여 CryptGetKeyParam을 호출 할 수 있다. 따라서, CryptGetKeyParam은 클라이언트 장치(801)로부터 사용자 인증서를 요청하기 위하여 CSP(831)를 트리거(trigger)할 수 있다.
클라이언트 장치(801)와 원격으로 이루어진 작업(예를 들어, 제1, 제2, 제3 또는 제4 작업들)을 수행한 이후, 케르베로스 시스템(827)은 기본적인 운영체제 로그온을 완료하는 도메인 컨트롤러로의 인증을 완료할 수 있다.
서버(821)는 스마트 카드 제거(removal) 정책들을 지원할 수 있다. 몇몇 실시예들에서, 클라이언트측 PC/SC(815)와 서버측 PC/SC(839) 사이에 다른 가상 채널(838)이 존재할 수 있다. 서버(821)는 이 가상 채널(838)을 사용하여 스마트 카드 레이어를 볼 수 있고, 따라서, 언제 스마트 카드(817)가 제거되었는지를 결정할 수 있다. 이 실시예에서, 크리덴셜 제공자(825)는 정확한 스마트 카드 리더의 이름이 PC/SC 가상 채널(838)에 의하여 노출된 정보와 매치하도록 KERB_SMARTCARD_CSP_INFO와 같은 데이터 필드 내에 리스트 되어 있는지 확인할 수 있다. 다른 실시예들에서, PC/SC 가상 채널(838)은 사용되지 않을 수 있다. 대신, 서버(821)가 서버측 CSP(831)와 클라이언트측 PK Ops(807)사이의 가상 채널(826)을 사용하는 스마트 카드(817)의 사용 상태를 결정할 수 있다. 예를 들어, 클라이언트 장치(801)는 스마트 카드(817)의 상태, 및 PK Ops(807)에 의하여 가상 채널(836)을 통하여 CSP(831)로 전송될 수 있는 상태를 결정할 수 있다. 서버(821)는 스마트 카드(817)의 상태를 에뮬레이팅(emulate)하는 가상 스마트 카드 리더(미도시)를 생성하고 저장할 수 있다. 서버(821)는 서버(821)에서 가상 스마트 카드 리더의 상태를 결정함으로써 스마트 카드(817)의 상태를 결정할 수 있다. 서버(821)는 스마트 카드가 제거된 것을 결정한 후에 다양한 동작을 수행할 수 있다. 예를 들어, 서버(821)는 사용자가 그의 접근 터미널로부터 멀어진 경우, 세션이 고정된 채로 유지되도록 락킹(lock)할 수 있다. 이것은 그들이 카드를 가지고 이동하는 것 보다 더 많은 것을 필요로 하는 것을 방지할 수 있다.
도 9는 본 발명의 하나 이상의 실시예에 따른 빠른 스마트 카드 로그온을 위한 다른 실시예의 시스템을 도시한다. 도 9에 도시된 시스템은 도 8에 도시된 시스템의 확장(extension)을 포함하고, 보조의 서드 파티(예를 들어, 벤더) CSP 함수들을 지원할 수 있다. 도 8에 도시된 요소들에 추가적으로, 도 9의 서버(821)는 서드 파티 CSP인 CSP(932)를 포함할 수 있다. 몇몇 실시예에서, CSP(932)는 도 7에 도시된 CSP(731)가 될 수 있다. 이 CSP들은 사용자의 PIN 또는 생체인식을 저장할 수 있다. 이 실시예에서, 클라이언트 장치(801)는 서버(821)로 PIN(또는 다른 크리덴셜)을 전송할 수 있다. PIN(또는 다른 크리덴셜)은 예를 들어, 클라이언트 장치(801)와 서버(821)간의 디피-헬만(Diffie-Helman)과 같은 키 협상(key negotiation)에 의하여 전송 중 보호될 수 있다. 키 협상은 TLS와 같은 다른 저레벨 전송 보안 메커니즘에 추가로 PK Ops 가상 채널 내부에서 발생할 수 있다. PIN(또는 다른 크리덴셜)의 수신에 따라, CSP(932)는 PIN을 저장(예를 들어, 캐시)할 수 있다. PIN을 저장함으로써, CSP는 로그온 이후의 어플리케이션(예를 들어, 인터랙티브 서버 세션 및/또는 다른 유사 함수들 내에서 동작하는 어플리케이션들)의 사용을 위하여 스마트 카드(817)을 언락할 수 있다. 가상 세션 내의 일 예의 어플리케이션은 웹 브라우저, 생산성 소프트웨어, 이메일 클라이언트 등을 포함할 수 있다. 또한, CSP(932)는 로그온 중에 직접적으로 사용되지 않을 수 있으며, 따라서, CSP(932)에서 PIN의 저장은 로그온 성능(예를 들어, 속도, 지연속도, 보안 등)에 영향을 거의 미치지 않거나 전혀 영향을 주지 않는다. CSP(932)에서의 PIN의 저장은 인터랙티브 서버 세션 내의 어플리케이션 동작을 위한 싱글 사인 온을 위하여 사용될 수 있다. 예를 들어, 어플리케이션들은 사용자의 사인 온을 위하여 CSP(932)로부터 PIN으로 직접 접근할 수 있다.
몇몇 실시예들에서, 웹브라우저와 같은 인터랙티브 서버 세션 내에서 동작하는 어플리케이션들, 문서 서명(document signing)을 활용하는 어플리케이션들, 또는 다른 어플리케이션들은 로그온을 위하여 스마트 카드 크리덴셜에 접근할 수 있다. 여기에 기술된 작업들은 스마트 카드 크리덴셜들에 접근하는 어플리케이션들을 위하여 사용될 수 잇다. 이 실시예들에서, 서버측 케르베로스 요소(827)는 스마트 카드에 접근 요청을 하는 어플리케이션으로 교체될 수 있고, 스마트 카드 크리덴셜들에 접근하기 위한 작업들은 전술한 바와 같이 수행될 수 있다. 또한, 가상 채널(836)을 사용하여 획득된 사용자 인증은 윈도우 또는 다른 운영체제 인증 스토어(store)와 같은 사용자 세션을 위한 인증 스토어로 전파될(propagated) 수 있다. 운영체제는 PC/SC API를 사용하는 백그라운드 프로세스와 같은 일반적인 스마트카드 로그온들을 위한 이러한 작업을 수행할 수 있다. 따라서, 인증서는 카드를 위한 일반적인 CSP(예를 들어, 도 9의 CSP(932))보다는 CSP(831)와 연결될 수 있다.
서버측 케르베로스 요소(827)이 스마트 카드의 접근을 요청하는 어플리케이션으로 교체되면, CSP(831)(그리고 PK Ops SDK, 및 다른 요소들)는 어플리케이션의 사용자 인증이 요구되는 경우 서버측 상의 다른 어플리케이션들 사이에서 구별될 수 있다. PIN 프롬프트는 다른 서버측 어플리케이션들이 카드를 사용하려고 시도할 수 있으므로, 그리고 개인 키 작업들이 이미 인가된 클라이언트 측 프로세스로 흐를 수 있으므로 자동으로 발생하지 않을 수 있다. 따라서, CSP(831)는 개인 키 작업들이 클라이언트(801)에 의하여 수행될 수 있도록 서버(821)에 의하여 사용된 PIN 프롬프트 정책을 표시할 수 있다. 몇몇 실시예들에서, 이것은 작업들이 클라이언트(801) 상의 CAPI(809)를 미러링 할 수 있도록 서버측 CAPI(829)에 의하여 지원된 스마트 카드 작업들의 컨셉을 노출함으로써 발생할 수 있다.
몇몇 실시예들에서, 스마트 카드는 아직 언락되지 않았을 수 있으며, 인터랙티브 PIN 프롬프트가 사용될 수 있다. 이 실시예들에서, PIN 프롬프트는 클라이언트(801)보다는 서버(821)에 의하여 다루어질 수 있다. 서버(821)상의 PIN을 수집하는 것은 클라이언트(801)상의 PIN을 수집하는 것 보다 안전하지 않을 수 있다. 그러나, 서버 실행(implementation)은 이 경우에 코어 보안 시스템(예를 들어, 윈도우 상의 LSA)이 다른것들처럼 사용자의 입력을 기다림으로써 차단되지 않을 수 있기 때문에 보다 쉬울 수 있다. 전술한 바와 같은 PK Ops 원격의 속도면의 장점들(PC/SC와 비교하여)은 이 실시예에서도 주어질 수 있다. 간단한 일 예와 같이, 이 모드(mode)는 원격 세션이 스마트 카드의 제거에 의하여 잠기지만 세션의 연결이 끊기지 않은 경우의 잠금해제를 위하여 사용될 수 있다. 사용자가 스마트 카드를 재삽입하면, 스마트 카드 삽입은 (예를 들어, PC/SC 또는 PK Ops 가상 채널을 통하여) 표시될(signaled) 수 있고, 사용자는 카드를 언락하기 위하여 PIN을 입력하도록 유도될 수 있다.
도 10은 본 발명의 하나 이상의 다른 실시예에 따른 빠른 스마트 카드 로그온을 위한 시스템을 도시한다. 클라이언트 장치(1001)는 전술한 바와 같이 클라이언트 에이넌트(1003)을 포함할 수 있다. 클라이언트 장치(1001)는 하나 이상의 가상 채널들(1005)을 통하여 서버(1021)과 통신할 수 있다. 클라이언트 장치(1001)는 도 8을 참조하여 전술한 하나 이상의 클라이언트 장치의 CAPI, CSP 2, 및/또는 이니 드라이버 모듈들을 포함할 수 있는 인증 매니저(1008)를 더 포함할 수 있다.
인증 매니저(1008)는 도 7 및 도 8(그리고 전술한) 내에 도시된 PKOperation SDK를 실행하는 클라이언트 에이전트(1003) 내의 모듈로 이루어질 수 있다. 클라이언트 장치의 운영체제에 따라, 인증 매니저(1008)는 운영체제-제공 CAPI를 사용하거나, 또는 그 자체의 CAPI를 포함할 수 있다. 인증 매니저(1008)는 스마트 카드(1017)과 통신할 수 있고, 및/또는 보안 PIN 캐싱 서비스 및/또는 장치와 같은 싱글 사인 온 장치(1019)와 통신할 수 있다. 인증 매니저(1008)는 인증 중에 사용자로부터 제공된 PIN 또는 다른 크리덴셜을 저장할 수 있다. 빠른 스마트 카드 로그온은 새로운 인증-중점의 스마트 카드 인증 서비스들에 접근하기 위한 인증 매니저와 통신하기 위하여 클라이언트 장치(1001)를 위한 새로운 IPC 채널에 의존할 수 있다.
서버(1021)는 클라이언트 장치(1001)과 서버(1021)사이의 가상 채널(1005)과 접속할 수 있는 브로커 에이전트 서비스(1035)를 포함할 수 있다. 예를 들어, 브로커 에이전트 서비스(1035)는 도 8에 도시된 가상 채널 드라이버(835)를 포함할 수 있다. 브로커 에이전트 서비스(1035)는 인증을 가능하게 할 수 있다. 서버(1021)는 도 8을 참조하여 전술된 바와 같이, 암호화 서비스 제공자(CSP, Cryptographic Service Provider)(1031) 및 크리덴셜 제공자(1025)(예를 들어, 인증 크리덴셜 제공자)를 포함할 수 있다. 서버(1021)는 전술된 가상 에이전트(823)를 포함할 수 있는 크리덴셜 제공자 매니저(1024)를 더 포함할 수 있다. 크리덴셜 제공자 매니저(1024)는 스마트 카드 로그인(예를 들어, 도 7에 도시된 실시예) 또는 빠른 스마트 카드 로그인(예를 들어, 도 8에 도시된 실시예)의 사용 여부를 결정할 수 있다.
도 10에 도시된 요소들에 의하여 수행될 수 있는 인증 단계들은 이하 기술된다. 먼저, 클라이언트 장치(1001)와 서버(1021)간의 가상 채널(1005)이 확립될 수 있다. 예를 들어, 클라이언트 장치 에이전트(1003)을 통하여, 클라이언트 장치(1001)는 크리덴셜 제공자(1025)을 사용하는지 결정하기 위하여 예를 들어, 크리덴셜 제공자 매니저(1024)를 통하여 서버(1021)와 협상할 수 있다. 몇몇 실시예들에서, 서버(1021)는 다중 크리덴셜 제공자(1025)를 가지거나 및/또는 다중 크리덴셜 제공자들과 상호작용(interact)할 수 있다. 또한, 클라이언트 에이전트(1003)는 스마트 카드 로그인 또는 빠른 스마트 카드 로그인을 사용할지 여부를 결정하기 위하여 크리덴셜 제공자 매니저(1024)와 협상할 수 있다. 클라이언트 에이전트(1003)는 클라이언트 장치(1001)가 스마트 카드 또는 다른 크리덴셜들을 사용하여 인증하기를 원하는 것을 서버(1021)로 공지할 수 있다.
서버(1021)상의 크리덴셜 제공자 매니저(1024)가 빠른 스마트 카드 로그온이 사용되어야(예를 들어, 사용가능한)하는 것을 감지한 경우, 크리덴셜 제공자(1025)는 트리거될 수 있다. 다시말해서, 크리덴셜 제공자 매니저(1024)는 스마트 카드 로그인 절차를 수행하기 위하여 특정 크리덴셜 제공자(1025)를 공지할 수 있다. 이 트리거는 CSP(1031)내에서 발견한 인증서를 사용하여 인증하기 위하여 도메인 로그온 프로세스(예를 들어, WinLogon.exe)를 공지할 수 있다. 다른 암호화 함수들이 서버(1021) 상에서 지역적으로 수행되는 동안 CSP(1031)는 인증서 회수 및 서명 작업들과 같은 클라이언트 장치(1001)를 포함하는 작업들을 클라이언트(1001)로 직접 보낼(direct) 수 있다. 도 8을 참조하여 전술된 바와 같이, 크리덴셜 제공자(1025)는 인증을 위한 케르베로스 모듈과 통신할 수 있다. 크리덴셜 제공자(1025)와 케르베로스 모듈 사이의 작업들 중, CSP(1031)는 인증서 작업들 및/또는 서명 작업들(또는 클라이언트 장치(1001)에 저장된 정보들을 사용하는 다른 작업들)을 수행하기 위하여 호출될 수 있다. CSP(1031)는 요구된 클라이언트 또는 사용자 정보를 획득하기 위하여 서버측 브로커 에이전트 서비스(1035)와 클라이언트측 가상 채널(1005)을 통하여 클라이언트 장치(1001)의 인증 매니저(1008)와 통신할 수 있다.
클라이언트 장치(1001)가 정보의 요청을 수신한 이후, 인증서들을 선택하고 PIN들을 요청하는 것을 포함하는 사용자 인터페이스 상호작용(interactions)은 클라이언트 장치(1001) 상의 인증 매니저 서비스(1008)에 의하여 다루어질 수 있다. 스마트 카드 로그온이 가능한 경우, 존재하는 스마트 카드 가상 채널(예를 들어, PC/SC)보다 (전술된)가상 채널이 사용될 수 있다. 몇몇 실시예들에서, 클라이언트 장치(1001)는 서버(1021)에 의하여 요청된 작업들을 수행하기 위하여 사용자들이 입력하도록(예를 들어, 인증서를 선택하도록, 또는 PIN 또는 생체인식을 입력하도록) 상호작용식으로(interactively) 유도할 수 있다. 예를 들어, 사용자 상호작용 단계는 크리덴셜 제공자가 크리거되기 전 클라이언트 에이전트 연결 중 보다 먼저 발생할 수 있다.
이하의 작업들 또는 명령들은 스마트 카드 로그인 또는 빠른 스마트 카드 로그인을 선택하기 위하여 사용될 수 있다.
Figure pct00004
로그온 시퀀스 내의 단계들은 GUI(graphical user interface)를 통하여 사용자를 정보로 유도할지의 여부를 결정할 수 있는 클라이언트 장치(1001) 상의 인증 매니저 서비스(1008)에 의하여 제어될 수 있다. 시작시, 클라이언트 에이전트(1003)는 빠른 스마트 카드 가상 채널을 허용(enable)할지의 여부를 결정할 수 있는 가상 채널을 로딩할 수 있다. 빠른 스마트 카드 가상 채널은 POLICY_VIRTUAL_CHANNEL_DISABLED이 거짓(false), ICAFILE_DISABLE_CTRL_ALT_DEL이 참(true), 그리고, 인증 매니저 서비스(Authentication Manager Service) IsCertificateLogonEnabled()이 참인 경우, 허용될 수 있다. IsCertificateLogonEnabled()는 POLICY_VIRTUAL_CHANNEL_DISABLED이 거짓이고 스마트 카드 장치가 검출된 경우 참이 될 수 있다.
서버(1021)의 크리덴셜 제공자 매니저(1024)는 활성화(activation) 단계들을 수행할 수 있다. 예를 들어, 크리덴셜 제공자 매니저(1024)는 ICAFILE_DISABLE_CTRL_ALT_DEL이 참인 경우 스마트 카드 로그온을 시도할 수 있다. 여기에서, 크리덴셜 제공자 매니저(1024)는 POLICY_VIRTUAL_CHANNEL_DISABLED이 거짓이고, 가상 채널이 클라이언트 장치(1001)에 의하여 허용되었으며, 크리덴셜 제공자 매니저(1024)가 가상 채널 GetCertificate() 호출(예를 들어, 인증서들을 검색하기 위한 클라이언트 장치(1001)를 위하여)을 통하여 로그온 인증서를 검색할 수 있는 경우에, 빠른 스마트 카드 인증 가상 채널의 사용을 시도할 수 있다. 반면, 존재하는 스마트 카드 가상 채널(빠른 스마트 카드 로그온 보다는 스마트 카드 로그온을 허용하는)이 활성화될 수 있다.
클라이언트 장치 요소들은 GetCertificate() 호출에 응답할 수 있다. 가상 채널이 허용된 것으로 가정하면, GetCertificate() 요청은 서버(1021)로부터 클라이언트 장치의 인증 매니저 서비스(1008)로 직접 통과할 수 있다. 인증 매니저 서비스(1008)는 POLICY_VIRTUAL_CHANNEL_DISABLED이 거짓이고, 스마트 카드 장치가 제공되었으며, 인증서가 적절한 포맷(예를 들어, 인증서 형식을 위한 정책을 만족하는)인지 확인한 이후에 서버(1021)로 인증서를 리턴시킬 수 있다. 필요시, 인증 매니저 서비스(1008)는 사용자로하여금 스마트 카드(10170를 삽입하도록 유도하거나, 또는, 스마트 카드가 검출되지 않은 경우 및/또는 적절한 포맷의 다중 인증서들이 가능한 경우에 인증서들을 선택할 수 있다.
서버(1021)의 크리덴셜 제공자(1025) 및 CSP(1031)는 다양한 단계들을 수행할 수 있다. 크리덴셜 제공자 매니저(1024)가 인증서를 수신한 경우, 크리덴셜 제공자(1025)를 호출(invoke)할 수 있고, 암호화 랜덤 CSP 접근 티켓을 크리덴셜 제공자(1025)로 전송할 수 있다. CSP(1031)는 브로커 에이전트 서비스(1035)의 로컬 인증 서비스에 의하여 제공된 인증서 함수들을 사용하여 상호작용 로그온을 수행할 수 있다. 예를 들어, 로컬 인증 서비스(1035)는 SignHash() 또는 다른 작업들을 수행하기 위한 가상 채널을 사용하기 전, CSP 호출자(csller)가 접근 티켓을 알고 있는지 확인할 수 있다.
클라이언트 장치 요소들은 SignHash() 작업에 대응할 수 있다. 가상 채널이 허용된 것으로 가정할때, SignHash() 요청들은 클라이언트 장치(1001)의 인증 매니저 서비스(1008)로 직접 통과될 수 있다. 인증 매니저 서비스(1008)은 POLICY_VIRTUAL_CHANNEL_DISABLED가 거짓이고, 인증서가 사용자에 의하여 선택된 것이며, PIN이 싱글 사인 온 서비스로부터 사용가능하거나, 또는 이전의 스마트 카드 세션이 존재하거나(예를 들어, 사용자가 다른 서비스로 인증된 이전 단계로부터), 또는 사용자가 스마트 카드(1017)의 언락을 위하여 사용되는 정확한 PIN 또는 다른 크리덴셜을 공급하는 경우, 해시들을 서명(sign)할 수 있다.
연합된 로그온의 실시예
전술한 빠른 스마트 카드 로그온을 실행하기 위하여 사용되는 요소들은 또한, 연합된 풀(full) 도메인(예를 들어, 액티브 디렉토리(AD) 로그온) 로그온을 실행하기 위하여 사용될 수 있다. 풀 도메인 로그온 이후, 세션은 풀 네트워크 크리덴셜들(예를 들어, 케르베로스 티켓 승인 티켓(TGT, ticket granting ticket) 및 도전/응답 패스워드 해시(예를 들어, NTLM 패스워드 해시)을 가질 수 있다. 예를 들어, 사용자들은 가상 데스크탑 세션, 물리적 PC, 또는 SAML 인증 토큰을 제공함에 따른 액티브 디렉토리 사용자 어카운트로서의 원격 데스크톱 서버 세션을 인증할 수 있다. 후술할 실시예와 같이, 사용자는 임의의 타입의 적절한 크리덴셜 및/또는 인증 프로토콜을 사용하여 IdP(identity Provider)와 같은 외부 요소/서비스/장치를 인증할 수 있다. 이 인증은 외부 인증 이벤트로 일컬어질 수 있다. 외부 인증 이벤트들의 일 예는 SAML(Security Assertion Markup Language) IDP, TLS 또는 SSL 상에서의 스마트 카드 인증, 및 생체 또는 OTP(one-time password)와 같은 AD 패스워드 없는 대안의 인증 크리덴셜들을 포함한다.
IdP로 인증 이후, IdP는 사용자에 의한 서비스 접근 요청을 처리하기 위하여 사용될 수 있는 명칭이 붙여진(named) RP(Relying Party) 또는 서비스 제공자로 확인 토큰(예를 들어, SAML 토큰)을 발급(issue)할 수 있다. RP는 모든 인증 상세사항들을 알 필요 없이, 또는 크리덴셜들과 직접 상호작용하며 사용자의 신분(identity) 요청을 만족하도록 IdP로부터 새로운 SAML 토큰을 사용할 수 있다. 크리덴셜 매핑 서비스(후술됨)가 IdP가 사용자의 신분을 확인한 것을 보장될 수 있는 한 SAML 토큰 대신에 다른 토큰 포맷들 또는 신분 확인 메커니즘이 사용될 수 있다. 가상 스마트 카드 크리덴셜(또한, 단기 로그온 인증으로서 참조된)은 외부 인증 이벤트(예를 들어, IdP에 의한 인증)의 승인에 따라 발행될 수 있다.
전술한 빠른 스마트 카드 로그온의 인증 작업 차단(interception) 요소들은 PC/SC 레벨의 스마트 카드를 완전히 에뮬레이팅 하지 않고도 가상 스마트 카드와 상호작용을 가능하게 하기 위하여 사용될 수 있다. 가상 스마트 카드는 IdP에서, 원격 컴퓨팅 환경(예를 들어, 인증 서버)에서, 및/또는 크리덴셜 매핑 서비스를 호스팅하는 서버와 같은 고도로 보호된 분리된 서버 상에서 생성될 수 있다.
다양한 연합 시나리오가 존재한다. 예를 들어, 외부 유저들의 종래의 연합은 기업 간 거래(business to business)(예를 들어, 공급자 체인 내의 파트너들, 연결 콜라보레이션 등)에서 이루어질 수 있다. 소비자와 기업간 거래는 예를 들어, 시민들, 퇴직자들, 베테랑들 등을 포함할 수 있다. 클라우드 서비스는 클라우드 데스크톱이 기업 자원들로 접근하기 위하여 사용되는 서비스형 소프트웨어(SaaS, software as a service) 제품들 및/또는 서비스형 데이터(DaaS, data as a service)로 접근하도록 하기 위한 기업 제어 사용자 인증을 포함할 수 있다. 차세대 기업 보안 모듈은 장치들로부터의 사용자 인증, SaaS, 및 on-prem 자원들의 중심 포인트로서 IdP를 포함할 수 있다. IdP는 on-prem 또는 서비스형 아이덴티티(IdaaS, identity[인증정보] as a service)와 같은 클라우드 서비스로 이루어질 수 있다.
도 11은 본 발명의 하나 이상의 실시예에 따른 연합된 로그온을 위한 시스템을 도시한다. 도 11에 도시된 시스템은 도 12A 내지 12C에 도시된 실시예에서 사용된 크리덴셜 매퍼(mapper)를 사용하지 않을 수 있다.
도 12A는 본 발명의 하나 이상의 실시예에 따른 연합된 로그온을 위한 다른 시스템을 도시한다. 몇몇 실시예들에서, 스마트 카드는 이 연합된 로그온 경우(case)에 사용되지 않을 수 있다. 대신에, 인증서가 인증을 위하여 사용될 수 있고, 자원 시스템(1221)(예를 들어, 고객 댁내 장치(customer premises))은 인증서가 스마트 카드 인증서인지 고려할 수 있다. 시스템(1221)은 셋업 페이즈(phase)를 시작할 수 있다. 어플리케이션 스토어(1225)는 신뢰된 장치를 포함하고, 크리덴셜 매퍼(1229)로부터 사용자를 위한 도메인(예를 들어, AD 또는 디렉토리 서비스(1241)) 로그온 크리덴셜들을 요청하도록 사용될 수 있다. 크리덴셜들은 단기 스마트 카드 클래스 인증서(예를 들어, 가상 스마트 카드 인증서)를 포함할 수 있다. 크리덴셜 매퍼(1229)는 AD 사용자들을 위한 단기 스마트 카드 클래스 인증서들을 요청하기 위하여 서드 파티 인증서 서비스(예를 들어, 마이크로소프트 인증서 서비스)와 같은 인증서 서비스(1231)에 의하여 신뢰될 수 있다. 크리덴셜 매퍼(1229)는 사용자를 위한 가상 스마트 카드를 생성하기 위하여 사용될 수 있다. 크리덴셜 매퍼(1229)는 인증서 서비스(1231)로부터 인증서를 요청할 수 있고, 인증서 서비스(1231)는 크리덴셜 매퍼(1229)로 사용자를 위한 스마트 카드 클래스 인증서를 반환할 수 있다. 가상 스마트 카드는 크리덴셜 매퍼(1229)에 저장될(예를 들어, 캐시) 수 있다.
커스텀 템플릿(template)이 제어를 제공하기 위하여 사용될 수 있다. 발행 인프라스트럭쳐(예를 들어, 스마트 카드 클래스 인증서들을 요청이 신뢰된 서버들을 제한하거나 또는 식별하는)의 제어를 제공하는 것 뿐만 아니라, 커스텀 템플릿은 로그온 토큰들과 케르베로스 티켓들 내에 삽입되는 특별 그룹 멤버쉽을 초래하는 발행된 인증서들 내에 특별 마커들이 포함되게 한다. 몇몇 실시예들에서, 각각 그 자신의 그룹 멤버쉽을 선택하는 다중 마커들이 인증서 내에 위치될 수 있다. 이것은 인증의 전체 환경들을 구축하는 맵 차이 속성들과 요구된 자원 접근 제어 정책들을 보다 쉽게 표시하게 하는 별개의 그룹들로의 서비스 제공자 접근 요청으로 유연성을 제공한다. 이 마커들은 예를 들어, 윈도우 기반의 인프라스트럭쳐 및 서비스들이 사용자들이 실제의 스마트 카드 또는 패스워드를 사용하는 것 보다 이러한 특별한 메카니즘에 의하여 AD에게 인증되었는지 인식하게 한다.
다른 템플릿들은 SAML 토큰들의 특성들, 또는, 인증 보증(authentication assurance)의 참(true) 레벨의 다른 표시자(indication)들에 기반하여 크리덴셜 매핑 서비스(1229)에 의하여 사용될 수 있다. 추가의, 또는, 대안의 인증 환경들은 인증 보증 레벨 이외에 관심도(interest)로 이루어질 수 있다. 예를 들어, 사용자의 지리적 위치 또는 서비스 제공자의 접근을 위하여 사용되는 연결 루트(예를 들어, 안 대 밖(inside versus outside) 바운더리)는 관심도로 이루어질 수 있다. 인증서 템플릿은 이러한 사용가능한 특성들과 환경 표시자들의 일부 또는 전부로부터 매핑하는 것에 기반하여 선택될 수 있다. 추가로 또는 대안으로, 커스텀 작업명령(statement)들 또는 특성들이 크리덴셜 매핑 서비스(1229)에 의하여 예를 들어, 크리덴셜 매퍼 서비스(1229)에 의하여 인증기관으로 전송된 인증서 서명 리퀘스트를 통하여 인증서에 추가될 수 있다. 이것들은 보안 그룹들로 매핑되지 않을 수 있으나, 클라이언트 인증서 인증을 직접적으로 사용하는 웹 어플리케이션들과 같은 어플리케이션들에 의하여 점검될(inspected) 수 있다.
디렉토리 서비스(1241)는 사용자 로그온을 위한 스마트 카드 클래스 인증서들을 발행하기 위하여 인증서 서비스(1231)를 신뢰(trust)할 수 있다. 이 신뢰 단계는 가상 스마트 카드 인증서들이 사용, 예를 들어, 액티브 디렉토리 로그온 될 수 있게 한다. 신뢰 구조(trust fabric)는 서비스대 서비스(service-to-service) 인증정보(identity)를 확립하고 통신을 보호할 준비가 되어있을 수 있다. 선택적으로, 크리덴셜 매퍼(1229)는 IdP(1213)에 의하여 발행된 SAML 토큰들을 크로스 체크할 수 있다.
시스템은 런타임 페이즈를 시작할 수 있다. 클라이언트 에이전트(1201) 내의 웹뷰(1203)는 IdP 로그온을 다루기 위하여 사용될 수 있다. 클라이언트 에이전트(1201)는 로그온을 위하여 상기 IdP(1203)로 크리덴셜들을 전송할 수 있다. 또한, 웹뷰(1203)는 게이트웨이 서버(1223) 또는 어플리케이션 스토어(1225)로 SAML 로그온하기 위한 표준 SAML 프로토콜을 지원할 수 있다. 게이트웨이 서버(1223)는 기업 자원들 및/또는 클라우드 자원들로의 접근을 제공하는 서버 또는 다른 자원일 수 있다. 로그온 프로세스 중, IdP(1213)는 인증정보 확인 토큰(예를 들어, SAML 토큰)을 클라이언트 에이전트(1201)로 돌려보낼 수 있다. SAML 토큰은 클라이언트 에이전트(1201)에 의하여 그것이 자원 시스템(1221)의 외부 파트너를 포함할 수 있는 인증정보 시스템(1211)과 함께 인증되었음을 나타내는 증거로서 사용될 수 있다.
웹 형태들을 수용하는 HTML 페이지들을 포함할 수 있는 로그온 페이지(1205)들은 사용자로부터, 또는 잠재적으로 브라우저 또는 클라이언트 에이전트 그 자신으로부터 인증 크리덴셜들을 수집하도록 사용될 수 있다. 이 크리덴셜들은 사용자명과 패스워드 형태들에서부터 정교한 리스크-기반 인증 시스템들의 범위로 이루어질 수 있다. IdP(1213)는 이 로그온 페이지들(1215)을 정당한 사용자들을 적절한 인증 방법 또는 방법들로 인증하기 위하여 사용할 수 있다.
디렉토리(1217)는 인증정보 스토어 또는 어카운트 데이터베이스 또는 IdP(1215)를 지원하는 다른 디렉토리를 포함할 수 있다. 예를 들어, 디렉토리(1217)는 다른 회사의 네트워크 내의 액티브 디렉토리의 인스턴스로 이루어지거나 또는 다른 벤더의 LDAP 디렉토리 제품을 사용할 수 있다.
DirSync(1219)는 자원 시스템(1221)(가상화 서버(1237)를 통하여 노출될 수 있는)내에 호스팅된 어플리케이션들 및 데스크톱들로 접근이 허용되어야 하는 디렉토리(1217) 내의 정당하고 인가된 각 사용자들을 위한 디렉토리 서비스(1241) 내에 쉐도우 어카운트들이 존재하도록 보장하는 메커니즘 또는 메커니즘들의 세트를 포함할 수 있다. DirSync(1219) 메커니즘의 일 예들은 인가된 사용자 이름들의 리스트 및 다른 적절한 인증정보(identity) 또는 인증 정보(authorization information)와 함께 스프레드시트(spreadsheet)를 이메일하거나 또는 업로딩하는 것과 같은 수동 절차들을 포함한다. 다른 예들은 몇몇 또는 모든(아마도 디렉토리의 구별된 부분) 어카운트들을 위하여 디렉토리(1217)를 쿼리(query) 하고 그것들을 디렉토리 서버(1241)로 전송하는, 정기적으로 예정되거나 또는 영구적으로 반복하는 배치 작업(batch jobs)들을 포함한다. 다른 실시예들은 변경점(changes)들을 위한 디렉토리(1217)를 모니터링하는 것과 이 변경점들을 발생에 따라 또는 스케줄에 따라 전송하는 것을 포함한다. 다른 메커니즘은 디렉토리(1217) 내의 새로운 인가된 사용자의 존재는 사용자 인증정보가 자원 시스템(1221)으로 제공된 것을 연합 토큰(federation token)이 전달하는 때를 묵시적(implicit)으로 의미할 수 있다.
몇몇 실시예들에서, 증명 키(proof key) 바인딩(binding)이 사용될 수 있다. SAML 토큰 증명 키는 풀 도메인 로그온을 허용하기 위하여 생성된 가상 스마트 카드와 연결될 수 있다. 이 증명 키(또는 연관된 증명 키)는 가상 스마트 카드를 실질적으로 사용하기 위한 원격 컴퓨팅 환경에 의하여 사용될 수 있다. 클라이언트 에이전트(1201)는 IdP(1213)에 의하여 발행된 SAML 토큰에 바인드된 증명 키를 협상할 수 있다.
몇몇 실시예들에서, SAML 토큰 또는 다른 신뢰된 로그온 크리덴셜은 패스워드가 게이트웨이 서버(1223) 또는 어플리케이션 스토어(1225) 로그온 프로세스(상세 사항은 후술함) 중에 직접적으로 사용가능하지 않는다 하더라도 대응하는 AD 사용자 패스워드에 매핑될 수 있다. 예를 들어, 패스워드는 로그온 중 IdP(1213)에 의하여 캡쳐될 수 있고, 게이트웨이 서버(1223) 또는 어플리케이션 스토어(1225)로의 신뢰된 백 채널 상에 전달될(relayed) 수 있다. 다른 실시예들에서, 패스워드 볼트(password vault) 또는 패스워드 제어 서비스는 패스워드를 게이트웨이 서버(1223) 또는 어플리케이션 스토어(1225)로 반환할 수 있다. 다른 실시예에서, 크리덴셜 매퍼(1229)는 특정 유저 어카운트들을 위한 패스워드를 직접 제어할 수 있다. 이 패스워드들은 사용자 선택된 패스워드들이 아닐 수 있으며, 따라서, 그것들은 사용자당 솔트(per-user salts)를 사용하는 마스터 키로부터 유래될 수 있다. 이 실시예에서, 데이터베이스 또는 패스워드 볼트는 사용되지 않을 수 있다.
클라이언트 에이전트(1201)는 풀 도메인 로그온이 요청되면 SAML 토큰을 게이트웨이 서버(1223) 및/또는 어플리케이션 스토어(1225)로 전송할 수 있다. 게이트웨이 서버(1223) 및/또는 어플리케이션 스토어(1225)는 클라이언트(1201)이 인증정보 시스템(1211)과 함께 인증된 것을 확인하기 위하여 SAML 토큰을 전송하는 것(예를 들어, 백 채널을 통하여)과 같이, IdP(1213)와 통신할 수 있다. SAML 토큰이 유효기간(time period of validity)과 같은, 시간을 포함하는 경우, IdP(1213)는 현재 시간이 유효기간 내에 존재하는지 확인할 수 있다. 추가로 또는 대안으로, 신뢰 파티들(relying parties)(요소들)은 로컬적으로 저장된(예를 들어, 신뢰된) IdP의 서명 인증서의 카피를 사용하는 것을 포함하는 디지털 서명을 체크함으로써 SAML 토큰을 로컬적(locally)으로 승인할 수 있다.
어플리케이션 스토어(1225), 배달 컨트롤러(1235), 및/또는 가상화 장치(1237)는 어플리케이션 스토어(1225)로부터 제공된 커스텀 로그온 데이터를 가상화 장치(1237) 상의 로그온 절차를 진행하기 위하여 사용될 수 있는 크리덴셜 플러그인(1239)으로 안전하게 운반할 수 있다. 어플리케이션 스토어는 여기에 기술된 바와 같이, 가상 스마트 카드 참조를 획득하기 위하여 사용될 수 있는 로그온 데이터 제공자와 같은 인증 확장자(extension), 가상 스마트 카드에 접근하기 위한 가상화 장치(1237)을 위한 매칭 크리덴셜 플러그인, 및 가상 스마트 카드들을 실행하기 위한 지원 서비스 인프라스트럭쳐(예를 들어, 크리덴셜 매퍼(1229)를 포함할 수 있다.
클라이언트(1201)이 인증된 것을 확인하면, 게이트웨이(1223), 어플리케이션 스토어(1225), 및/또는 배달 컨트롤러(1235)(예를 들어, 데스크톱 배달 컨트롤러)는 지정된 가상화 머신 상의 AD 로그온을 위한 시간 제한된(예를 들어, 임시) 스마트 카드 클래스 인증서를 획득하기 위하여 크리덴셜 매퍼(1229)를 인가할 수 있다. 다시말해서, 임시 인증서는 스마트 카드(예를 들어, 스마트 카드 내의 하나 이상의 인증서들)을 에뮬레이팅 하기 위하여 생성될 수 있다. 시간 제한된 인증서들은 분, 시간, 일, 또는 그보다 더 짧거나 긴 시간 동안 유효할 수 있다. 인증 단계를 지원하기 위하여, 스토어(1225)/컨트롤러(1235)는 크리덴셜 매핑 서비스(1229)에 의하여 다시 확인될 유효성을 위한 고유의 SAML 토큰을 IdP(1213)으로부터 제공할 수 있다. 예를 들어, 크리덴셜 매퍼(1229)는 SAML 토큰을 확인하기 위하여 IsP(1213)과 통신할 수 있다. 이 단계는 증명 키 바인딩을 SAML 토큰으로부터 가상 스마트 카드로 전송하는 것을 가능하게 하거나, 또는 새로운 증명 키의 협상을 가능하게 할 수 있다.
로그온 티켓이 발행되고, 리모트 디스플레이 프로토콜(예를 들어, 클라이언트 에이전트) 파일로 갈 수 있다. 로그온 티켓 접근법(approach)과 함께, 클라이언트 에이전트(1201)로 전송된 로그온 티켓은 크리덴셜 매핑 서비스(1229)에 따르는 가상 스마트 카드 개인 키의 첫번째 암호화를 위하여 더 사용될 수 있다. 추가로 또는 대안으로, 클라이언트 에이전트(1201)에 따르는 증명 키는 단기 인증서에 연결될(예를 들어, 바인딩될) 수 있다. 선택적으로, 크리덴셜 매퍼(1229)는 클라이언트(1201)에 의하여 유효한 로그온의 증거로서 고유의 IdP 인증 토큰과 함께 주어질 수 있다. 로그온 티켓은 추가로 또는 대안으로, 크리덴셜 매퍼(1229)에 의하여 제공된 가상 스마트 카드의 보안 참조(secure reference)를 암호화하기 위하여 사용될 수 있다. 이 실시예에서, 가상 스마트 카드는 가상 스마트 카드를 사용하기 위하여 컨트롤러(1235)의 배달에 의하여 인가된 가상화 에이전트(1237)에 의해서만 복원될(recovered) 수 있다. 암호화된 가상 스마트 카드 참조는 로그온 티켓이 클라이언트 에이전트(1201)로 전송되는 동안에, 어플리케이션 스토어(1225)로부터 배달 컨트롤러(1235)로 전송될 수 있고, 이후, 가상화 에이전트(1237)로 전송될 수 있다. 이것은 가상 스마트 카드가 가상화 에이전트(1237)가 알려지기 전에 생성되도록 하거나, 또는 다중 가상화 에이전트로의 개별적인 로그온을 위하여 사용되도록 하는 것을 허용할 수 있다.
가상화 에이전트(1237)는 로그온 티켓(또는 로그온 티켓을 이용하여 해독된(decrypted) 보안 가상 스마트 카드 참조)를 크리덴셜 매핑 서비스(1229)로 제공할 수 있으며, 마이크로소프트 AD와 같은 디렉토리 서비스(1241) 상의 클라이언트 장치(1201)를 로그(log)하기 위하여 스마트 카드 클래스 인증서를 사용할 수 있다. 크리덴셜 플러그인(1239)(예를 들어, 로그온 후크)은 전술된 빠른 스마트 카드 로그온 접근법과 매우 유사하거나 또는 동일할 수 있다. 크리덴셜 플러그인(1239)은 도 8에 도시된 서버측 가상 에이전트(823), 크리덴셜 제공자(825) 및/또는 CSP(831)을 포함할 수 있다.
크리덴셜 매퍼(1229)는 대응하는 개인 키들을 갖는 스마트 카드 클래스 사용자 인증 인증서들을 획득하기 위하여, 윈도우 인증서 서비스들과 같은 인증기관을 포함할 수 있는 인증서 서비스(1231)와 상호작용할 수 있다. 즉, 크리덴셜 매퍼(1229)는 사용자들을 위한 등록기관(예를 들어, 마이크로소프트 등록 에이전트(Enrollment Agent))으로서 사용될 수 있다. 크리덴셜 매퍼(1229)는 인증서 서비스(1231)로 요청을 전송할 때 인증 크리덴셜들로서 사용하기 위한 등록 기관 인증서를 가질 수 있다. 먼저 크리덴셜을 획득하기 위한 부트스트랩(bootstrap) 프로세스가 존재할 수 있으며, 그 이후에 최소화 수동 단계들을 위하여 요구된 바에 따른 리뉴얼이 이루어질 수 있다.
스마트 카드 클래스 인증서들은 적절한 사용자 어카운트들을 위한 상호작용식 로그온 크리덴셜들과 같은 디렉토리 서비스(1241)(예를 들어, AD 도메인)에 의하여 신뢰될 수 있다. 다시말해서, 인증서들은 예를 들어, 스마트 카드 클래스 사용자 인증서와 같은 가상 스마트 카드들로 여겨질 수 있다. 인증서들은 크리덴셜 매퍼 서버(1229) 상의 키 스토어 내에 보유된 대응하는 개인 키와 함께, 예를 들어, 케르베로스를 통한 AD 로그온을 위한 적절한 키 사용법을 가질 수 있다. 하드웨어 기반 키 보호는 신뢰된 플랫폼(예를 들어, 윈도우 신뢰 플랫폼 모듈(TPM, Trusted Platform Module)) 및/또는 하드웨어 보안 모듈(HSM, hardware security module)을 통한(via) 것과 같이, 개인 키 상에서 사용될 수 있다. 하드웨어 기반 키 보호는 로그온 지연속도를 유익하게 저감하기 위하여 사용될 수 있다.
어플리케이션 스토어(1225)의 인증 확장자(1227)는 사용자를 위한 가상 스마트 카드를 준비하기 위하여 어플리케이션 스토어(1225)의 런치 시퀀스 중(그리고, 선택적으로 어플리케이션 스토어(1225)의 로그온 시퀀스 중) 크리덴셜 매퍼(1229)와 상호작용할 수 있다. 사용자를 위한 가상 스마트 카드는 예를 들어, 각각의 런치 또는 재연결 이벤트를 위한 요구에 따라 생성될 수 있거나, 또는 다양한 보안 정책들 및 성능 요구들에 대응하는 기간 동안 재사용될 수 있다. 가상 스마트 카드들은 사전 생성될 수 있고, 특히, 전술된 개인 키들을 위한 하드웨어 보호가 존재하는 경우, 물리적 스마트 카드의 사용 시간과 가까운 수명을 가질 수 있다.
가상화 서버(1237)의 크리덴셜 플러그인(1239)은 로그온 중의 가상 스마트 카드를 사용하기 위한 적절한 운영체제 호출을 특정 작업들을 암호화 API 및 제공자들을 사용하여 실행될 수 있는 크리덴셜 매퍼 서버(1229)로 다시 보내기(redirect) 위하여 차단할 수 있다.
도 12B는 본 발명의 하나 이상의 바람직한 실시예에 따른 연합된 로그온을 위한 또 다른 시스템을 도시한다. 도 12B에 도시된 인증 시스템은 도 12A에 도시된 인증 시스템과 유사하게 이루어질 수 있다. 그러나, 인증정보 확인(예를 들어, SAML 토큰)을 사용하는 것 대신에, 클라이언트 에이전트(1201)는 게이트웨이 서버(1223)와 같은 자원 시스템(1221) 내의 하나 이상의 요소들로 OTP 또는 실제의 스마트 카드 크리덴셜들을 전송할 수 있다. 게이트웨이 서버(1223)는 후술할 벤더 인증 서비스(1251)와 함께 클라이언트 또는 사용자를 인증할 수 있다. 또한, 게이트웨이 서버(1223)는 후술할 RADIUS 또는 REST 프로토콜을 사용하여 인증 서비스(1251)와 통신할 수 있다.
도 12C는 본 발명의 하나 이상의 바람직한 실시예에 따른 연합된 로그온을 위한 다른 시스템을 도시한다. 도 12C에 도시된 요소들은 사용자 세션(예를 들어, 가상 데스크톱 세션)을 시작하기 위하여 가상 스마트 카드를 생성 및 사용하는데 사용될 수 있다. 사용자 어카운트들을 보유하는 AD 도메인들은 인증서 서비스들(1231)과 같은 인증기관(CA)에 의하여 발행된 풀 AD 도메인 로그온을 위하여 사용되기 위한 스마트 카드 클래스 사용자 인증서들을 허용하기 위하여 정확한 형태의 사전 확립된 신뢰(trust)를 가질 수 있다. 처음에는(Initially), 몇몇 배치(deployment) 단계들이 수행될 수 있다(미도시). 예를 들어, 시스템은 크리덴셜 매퍼(1229)를 배치하기 위한, 그리고, 도 12C에 도시된 요소들 사이의 신뢰를 확립하기 위한 단계들(수동 단계들일 수 있는)을 수행할 수 있다.
크리덴셜 매퍼(1229)는 CA로의 등록기관(예를 들어, 등록 에이전트)을 포함할 수 있다. 크리덴셜 매퍼(1229)는 기관의 CA 관리자(예를 들어, 보안 책임자)에 의한 수동의 승인을 사용할 수 있는 부트스트랩 인증서 템플릿을 사용하는 CA에 의하여 발행된 클라이언트 인증서와 같은, 그 자신의 크리덴셜을 요청할 수 있다. 제1인증서가 발행되면, 제2인증서 템플릿은 자동으로 다루어지는 RA 인증서 연장(rollover)을 허용할 수 있다. 연장은 현재의 인증서의 만료가 가까워짐에 따른 새로운 인증서의 발행을 포함할 수 있다.
제2인증서 템플릿은 다른 서버가 그룹으로 합류(join)하는 것을 인가하기 위한 크리덴셜 매퍼(1229)의 한(one) 인스턴스를 허용할 수 있고, 크리덴셜 매퍼(1229)의 다른 인스턴스를 호스트(host)할 수 있다. 이것은 단계의 운영상 부담과 진행중인 유지보수(ongoing maintenance)를 최소화하는 동시에 스케일 아웃(scale out)과 중복(redundancy)을 위하여 사용될 수 있다. 이것은 이 특성들의 사용자들이 높은 가용성(availability)을 유지하면서 이러한 인증서 기반 배치들을 운영하고 유지보수 하는데 전문적이지 않은 경우 유리할 수 있다.
도 12C를 참조하여 일 실시예의 흐름을 기술한다. 클라이언트 에이전트(1201)(또는 브라우저)는 게이트웨이 버서(1223)에 로그온할 수 있다. 몇몇 실시예들에서, AD 패스워드 대신에 OTP가 사용될 수 있다. 사용자는 OTP가 발행될 수 있다. SAML 토큰, 스마트 카드 크리덴셜들, 도전/응답 크리덴셜들, 케르베로스 크리덴셜들, 생체인증, PIN 등과 같은 다른 인증 크리덴셜들이 OTP 대신해서 사용될 수 있다. 1270 단계에서, 클라이언트 에이전트(1201)(또는 클라이언트 장치 상의 브라우저)는 OTP를 게이트웨이 서버(1223)로 전송할 수 있다. AD 패스워드가 사용되지 않기 때문에, 게이트웨이 서버(1223)는 어플리케이션 스토어(1225)로 사인 온(예를 들어, 싱글 사인 온) 하기 위하여 패스워드를 사용할 수 없을 수 있다. 대신에, 1272 단계에서 게이트웨이 서버(1223)는 사용자를 벤더 인증 서비스(1251)를 통하여 인증할 수 있다. 예를 들어, 게이트웨이 서버(1223)는 RADIUS(Remote Authentication Dial-In User Service) 네트워크 프로토콜, LDAP(Lightweight Directory Access Protocol), REST(Representational State Transfer) 네트워크 프로토콜, 또는 OTP를 기반으로 사용자를 인증하는 다른 형식의 네트워크 프로토콜을 사용할 수 있다. 게이트웨이 서버(1223)는 예를 들어, RADIUS, LDAP 또는 REST와 같은 전송 프로토콜의 부분으로서 암호화된 클리어텍스트(cleartext) 사용자 크리덴셜들을 전송할 수 있다. 인증 서비스(1251)는 클리어텍스트 크리덴셜들을 복원하고 그것을 승인할 수 있다. 인증 서비스(1251)는 크리덴셜들이 승인되었는지 여부를 보고하고, 정규(canonical) 사용자명과 그룹 ID와 같은 추가 인증정보를 잠재적으로 공급한다.
단계 1274에서, 게이트웨이 서버(1223)는 사용자의 인증정보(예를 들어, AD 인증정보)를 싱글 사인 온 프로토콜을 통하여 어플리케이션 스토어(1225)로 전송할 수 있다. 게이트웨이 서버(1223)는 보안 상황정보를 어플리케이션 스토어(1225)로 전송할 수 있다. 단계 1274에서 전송되는 일 예의 정보는 인증 방법, 클라이언트 장치 상에서 수행된 스캔(scan)들을 식별하는 정보, 및/또는 클라이언트 장치의 위치를 포함한다. 몇몇 단계들은 게이트웨이 서버(1223)에 의하여 시작된 SSO 세션 중에 수행될 수 있다.
단계 1276에서, 어플리케이션 스토어(1225)는 매칭 사용자 인증서와 개인 키가 윈도우 AD 로그온을 허용하도록 사용가능한지 확인하기 위하여 크리덴셜 매퍼(1229)(예를 들어, 사용자 크리덴셜 서비스)와 접촉할 수 있다. 게이트웨이 서버(1223)를 통과하여 어플리케이션 스토어(1225)로 넘어가는 일부 또는 모든 보안 상황정보는 사용자 인증서들 내부로의 통합을 위하여 크리덴셜 매퍼(1229)로 전송될 수 있다. 상황정보는 압축되거나, 확장되거나, 또는 매핑된 형태로 전송될 수 있다. 어플리케이션 스토어(1225)는 어떤 보안 상황정보가 크리덴셜 매퍼(1229)로 넘어갈 지를 제어할 수 있다. 통과할 수 있는 다른 정보의 일부분은 보안 그룹(예를 들어, 윈도우 보안 그룹)과 관련한 역할 라벨(role label)을 포함할 수 있다. 역할 라벨은 가공되지 않은 보안 상황정보에 근거하여 선택될 수 있으며, 소비자 보안 정책 결정으로 이루어질 수 있다. 사용자들은 보안 그룹들에 추가될 수 있다.
어플리케이션 스토어(1225)는 예를 들어, 케르베로스 또는 장치 인증을 사용함으로써, 크리덴셜 매퍼(1229)로 인증할 수 있다. 머신 레벨의 인증을 사용하는 경우, 크리덴셜 매퍼(1229)는 이후의(예를 들어, 신뢰된 머신들의 다른 세트들에 의하여) 로그온(예를 들어, 사용자 위장(impersonation))을 위하여 사용될 수 있는 크리덴셜 핸들(handle)들을 요청하기 위하여 신뢰된 머신들의 화이트 리스트를 실행할 수 있다. 대안으로, 어플리케이션 스토어(1225)는 사용자를 즉시 위장하기 위하여 KCD(Kerberos Constrained Delegation) 및 프로토콜 전이(Protocol Transition)를 사용할 수 있고, 크리덴셜 매퍼(1229)로 케르베로스 사용자 인증을 수행할 수 있다. 이것은 화이트리스트를 KCD를 위한 표준 AD 제어를 사용하여 관리하도록 허용할 수 있다. 이것은 또한 사용자 위장으로부터 제외될 수 있는 관리자와 같은 블랙리스트 특정 민감 사용자 어카운트들(blacklist particular sensitive user accounts)을 위한 메카니즘을 제공할 수 있다.
단계 1278에서, 크리덴셜 매퍼(1229)는 특정 사용자들을 위한 인증서들을 요청하기 위하여 크리덴셜 매퍼(1229)를 허용하는 사전 확립된 인가(authorizations)에 근거하여 인증서 서비스(1231)(CA)로의 등록 기관(예를 들어, 등록 에이전트)으로서 동작할 수 있다. 어플리케이션 스토어(1225)에 의하여 제공된 역할 라벨을 사용하여, 크리덴셜 매퍼(1229)는 특정 세션을 위한 인증서를 획득하기 위하여 어떤 CA 및 인증서 템플릿 조합이 사용될 지를 결정할 수 있다. 소비자들은 사용자 세션들이 이 인증서들에 근거하여 윈도우 보안 그룹들과 같은 특정 보안 그룹들에 속하도록 하기 위하여 AD의 인증 메커니즘 보증 특성과 기업 인증서 서비스(예를 들어, 윈도우 서버 2008)를 사용할 수 있다. 이것은 가상화 세션(1237)이 표준 윈도우 접근 제어 리스트들(ACLs)을 사용하는 네트워크 자원들로의 접근을 보장 또는 거부(denied)되도록 허용한다. ACLs는 트러스티(trustee)를 식별하기 위하여 그리고 트러스티를 위한 접근 권한(access right)을 지정하기 위하여 접근 제어 엔트리(ACE, access control entries)를 리스트 작성(list)할 수 있다.
크리덴셜 매퍼(1229)는 인증 서비스(1231)로 자신의 서비스 인증정보를 증명하기 위하여 배치 중에 공급된 자신의 RA 인증서를 사용할 수 있다. 이것은 요청된 인증서 템플릿을 인가 또는 거부하기 위하여, 그리고, 인증서 발행 요청(1278)을 허용 또는 거부하도록 하기 위하여 인증서 서비스(1213)들에 의하여 사용될 수 있다. 윈도우 기업 인증서 서비스는 개체들(entities)이 인증서를 발행하는 것과 그 주제에 대한 제한을 허용하는 인증서 템플릿과 등록 에이전트 상의 ACLs을 허용할 수 있다.
단계 1280에서, 크리덴셜 매퍼(1229)가 세션을 위한 적절한 사용자 인증서를 생성하거나 또는 위치하면, 크리덴셜 매퍼(1229)는 이후의 인증서 크리덴셜에 접근하기 위하여 가상화 머신들에 의하여 사용될 수 있는 어플리케이션 스토어(1225)로 보안 핸들(secure handle)을 반환할 수 있다. 반환된 핸들은 Oauth 토큰과 유사할 수 있다. 예를 들어, 핸들은 다른 머신들로부터의 이후의 네트워크 접근을 허용하도록 하기 위하여 서버 인증정보 태그와 같은 다른 정보들과 결합된 보안 랜덤 번호를 포함할 수 있다. 핸들은 오직 베어러 소유 토큰(bearer possession token)으로서 사용가능하지 않을 수 있다. 오히려, 토큰은 독립적으로 그의 인증정보를 증명(예를 들어, 케르베로스 또는 머신 인증서를 사용하여)할 수 있고 인가된 머신들의 화이트리스트 상에 존재하는 머신에 의하여 주어질 때 사용될 수 있다.
단계 1282에서, 어플리케이션 스토어(1225)는 상기 어플리케이션 스토어(1225)가 사용자 패스워드를 캐시하는 방법과 유사하게 크리덴셜 핸들을 캐시할 수 있다. 그 크기 및 다른 고려사항들에 의존하여, 핸들은 클라이언트 에이전트(1201) 또는 다른 요소들에 의하여 캐시되어야 할 어플리케이션 스토어(1225) 인증 서비스에 의하여 발행된 SAML 인증 토큰들 내부로 위치될 수 있다. 대안으로, 핸들은 차후의 핸들 요청들을 처리할 때의 접근을 위하여 어플리케이션 스토어 서버(1225) 상의 크리덴셜 홀더 또는 볼트(vault) 내에 위치될 수 있다. 어플리케이션 스토어(1225) 로그온 프로세스는 이 단계에서 완료될 수 있다.
단계 1284에서, 자원 런치(launch) 요청은 게이트웨이 서버(1223) 및/또는 어플리케이션 스토어(1225)에 의하여 로그온 이후에 만들어질 수 있다. 크리덴셜 핸들은 어플리케이션 스토어(1225) SAML 인증 토큰(SAML auth token)으로부터 직접적으로 또는 간접적으로 복원될 수 있다. 런치 프로세스의 일부로서, 이후 생성될 디스플레이 원격 접속의 준비로 상기 핸들은 데스크톱 컨트롤러 요소(1261)를 통하여 사용자의 세션(예를 들어, 윈도우 세션과 같은 가상화 세션(1237))을 호스트할 머신으로 전송할 수 있다. 예를 들어, 핸들은 원격 어플리케이션 또는 데스크톱 컨트롤러(1261)을 사용하여 가상화 세션(1237)로 통과할 수 있다. 세션은 가상 데스크톱 또는 가상 어플리케이션 세션을 포함할 수 있으며, 호스트(1237)는 한번에 하나의 사용자 세션에 전념하도록 이루어지거나, 또는 다중 독립 사용자 세션들(예를 들어, 원격 데스크톱 서비스들을 사용하여)이 가능하도록 이루어질 수 있다. 사용자 세션은 재연결 이벤트의 경우 이미 존재할 수 있거나, 또는 첫번째 런치 이벤트인 경우 생성될 수 있다. 세션 호스트(1239)는 핸들을 수신할 수 있고, 디스플레이 원격 연결을 기다리는 동안 임시적으로 핸들을 캐시할 수 있다. 또한, 핸들은 노출(disclosing) 위험을 최소화하기 위하여 전송 또는 캐시 단계들 이전에 암호화될 수 있다. 핸들의 해독을 위한 키는 정상적인 클라이언트 에이전트 런치 파일의 일부로서 로그온 티켓 형태로 클라이언트 에이전트(1201)로 전송될 수 있다.
단계 1286에서, 클라이언트 에이전트의 엔진은 어플리케이션 스토어(1225)로부터 수신된 클라이언트 에이전트 런치 파일을 사용하여 시작될 수 있다. 클라이언트 에이전트(1201)는 클라이언트 에이전트 세션 협상의 일부로서 로그온 티켓을 세션 호스트(1237)로 제공할 수 있다. 도시되지 않았다 하더라도, 클라이언트 에이전트 연결은 분리된 인증 티켓을 포함하는 게이트웨이 서버(1223)를 통하여 프록시될(proxied) 수 있다.
단계 1288에서, 해독 키를 얻도록 로그온 티켓을 사용하여 크리덴셜 핸들은 복원되고 크리덴셜 매퍼(1229)에 의하여 수행되는 크리덴셜 작업을 요청하기 위하여 사용될 수 있다. 요청된 작업들은 사용자 인증서를 자체적으로 얻기 위한 작업, 하나 이상의 서명 작업 및/또는 케르베로스 세션 키들을 풀기(unwrap) 위한 하나 이상의 해독 작업과 같은 스마트 카드 로그온을 원격으로 수행하기 위하여 사용될 수 있다. 상호작용의 다른 형태는 직접 가상화 에이전트(1237)(예를 들어, 제시간에)에 단기의 가상 스마트 카드를 생성하도록 하는 것일 수 있다. 이 실시예에서, CSP는 키 쌍(pair)을 생성하고, 일반적인 획득(get) 인증서 요청 대신 개인 키를 위한 인증서 서명 요청을 크리덴셜 매퍼(1229)로 전송할 수 있다.
크리덴셜 매퍼(1229)는 전술한 바와 같이, 역할 및 다른 보안 상황정보에 근거하여 사용자를 위한 인증서를 요청할 수 있다. 인증서는 가상화 에이전트(1237)로 반환될 수 있다. 그러나, 남아있는 가상 스마트 카드 작업들은 키가 로컬적으로 주어진 것과 같이 로컬적으로 수행될 수 있다.
크리덴셜 매퍼(1229)는 키 쌍을 생성하지 않도록 수정될 수 있다. 대신, 크리덴셜 매퍼(1229)는 사용자 인증서를 획득하기 위한 적절한 정보(예를 들어, 사용자 인증정보, 역할, 또는 다른 보안 상황정보)를 기억할 수 있다. 크리덴셜 핸들은 그 정보들을 사용하여 이미 준비된 가상 스마트 카드 보다 이러한 정보들을 참조할 수 있다.
빠른 스마트 카드 로그인의 경우와 유사하게, CSP는 많은 또는 대부분의 작업들을 가상화 에이전트(1237) 상의 다른 CSP(예를 들어, 표준 CSP)로 위임할 수 있다. 완전히(full) 연합된 로그온의 경우, 표준 CSP는 강한 키 보안 또는 가속 특성들을 제공하기 위하여 TPM 또는 다른 HSM을 활용할(leverage) 수 있는 CSP를 포함할 수 있다. 키는 세션 중에 사용 가능하도록 유지될 수 있다. 키는 또한 로그온을 위하여 사용될 때 까지 오래도록 메모리 내에 유지될 수 있으며, 이후 소멸될 수 있다. 이 실시예에서, 암호화 작업들은 크리덴셜 매퍼(1229)의 부하를 저감하도록 가상화 에이전트(1237) 상에 분산되어 존재할 수 있다.
세션 호스트 머신(예를 들어, 가상화 세션(1237))은 크리덴셜 매퍼(1229)를 예를 들어, 케르베로스 또는 장치 인증서를 사용하여 인증할 수 있다. 크리덴셜 매퍼(1229)는 사용자 로그온(예를 들어, 사용자 위장)을 위한 방법에 크리덴셜 핸들을 사용하기 위하여 신뢰된 머신들의 화이트리스트를 실행할 수 있다.
도 13은 본 발명의 하나 이상의 실시예에 따른 어플리케이션 스토어(1225) 크리덴셜 매퍼(1229) 및 가상화 에이전트(1237) 사이의 상호작용을 도시한다. 이 실시예에서, 전술한 빠른 스마트 카드 로그온을 위한 요소들은 연합된 풀 도메인 로그온의 실행을 위하여 재사용될 수 있다. 예를 들어, 크리덴셜 매퍼(1229)는 전술된 바와 같이, 스마트 카드(1290)의 수명이 짧을(ephemeral) 수 있고, SAML 토큰 또는 다른 신뢰된 인증정보 확인에 근거하여 발행될 수 있다는 것을 제외하고는, 네트워크 가상 스마트 카드와 유사하게 작동할 수 있다. 또한, 원격 세션 런치 리퀘스트를 원격 디스플레이 프로토콜 연결에 연결시키기 위하여 단발성 로그온 티켓(또는 전술한 증명 키)이 브로커 또는 크리덴셜 매퍼(1229)에 의하여 생성될 수 있다.
증명 키의 전술된 다수의 방법들이 사용될 수 있다. 다른 방법은 클라이언트 에이전트가 IdP로의 인증 중 SAML 인증 토큰으로 연결된 증명 키를 가질 수 있다는 것이다. 이 증명 키는 가상 스마트 카드 인증서에 연결될 수 있고, 클라이언트 에이전트와 이 증명 키를 포함하는 가상화 에이전트 사이의 상호작용이 가상 스마트 카드가 사용되기 전에 수행될 수 있다. 가상화 에이전트는 클라이언트 에이전트가 증명 키(예를 들어, 가상 스마트 카드를 사용하기 위한 전제조건으로서)를 점유(possession)하였는지 여부를 확립할 수 있다. 대안으로, 가상화 에이전트는 클라이언트 에이전트와 크리덴셜 매퍼 사이의 간접 상호작용을 중재(mediate)할 수 있다. 중재(Mediation)는 가상 스마트 카드 작업들을 허가하기 전에 증명 키의 점유를 입증하기 위하여 사용될 수 있거나, 또는 가상 스마트 카드의 개인 키의 해독을 위하여 잠재적으로 사용될 수 있다.
어플리케이션 스토어(1225)는 하나 이상의 런치 요청을 위한 커스텀 로그온 데이터를 획득하기 위하여 인증 서비스(1227)(예를 들어, 로그온 데이터 제공자 확장자)를 호출할 수 있다. 단계 1305에서, 인증 서비스(1227)는 로그온 데이터를 크리덴셜 매퍼(1229)로부터 획득할 수 있다. 크리덴셜 매퍼(1229)와의 최초 상호작용은 런치 중의 딜레이를 최소화하기 위하여 어플리케이션 스토어(1225) 로그온 중에 발생할 수 있다. 크리덴셜 매퍼(1229)로부터의 로그온 데이터는 크리덴셜 매퍼(1229)에 의하여 제어되는 가상 스마트 카드(1290)의 참조를 포함할 수 있다. 어플리케이션 스토어(1225)는 크리덴셜 매퍼(1229)로부터 로그온 데이터를 수신할 수 있다.
단계 1310에서, 어플리케이션 스토어(1225)는 로그온 데이터를 암호화하고, 암호화된 데이터를 배달 컨트롤러(1235)로 전송할 수 있다. 단계 1310은 예를 들어, 클라이언트 로그온 단계에서 수행될 수 있다. 몇몇 실시예들에서, 배달 컨트롤러(1235)로 전송된 암호화된 로그온 데이터는 서명되지 않았을 수 있다. 단계 1315에서, 배달 컨트롤러(1235)는 암호화된 로그온 데이터를 가상화 에이전트(1237)로 전송할 수 있다. 단계 1315는 예를 들어, 암호화된 사용자명 및 패스워드가 표준 런치 요청 중 통과되어야 하는 것과 유사하게, 세션 준비 중 수행될 수 있다. 어플리케이션 스토어(1225)는 로그온 티켓으로서 클라이언트 에이전트 파일 내에서 얻어질 수 있는 암호화된 키 또는 랜덤 값을 위치시킬 수 있다.
가상화 에이전트(1237)는 크리덴셜 플러그인(1239)(예를 들어, 도 12A 내지 12C에 도시된)을 포함할 수 있고, 크리덴셜 플러그인(1239)은 가상화 에이전트(1237)에 사전 등록될 수 있다. 크리덴셜 플러그인(1239)은 특정 크리덴셜 타입과 관련이 있을 수 있고, 크리덴셜 타입은 어플리케이션 스토어(1225)에 의하여 가상화 에이전트(1237)로 전송된 로그온 데이터와 함께 선언될(declared) 수 있다.
전술한 바와 같이, KCD는 로그온을 위하여 사용될 수 있다. KCD 실행(implementation)에서, 어플리케이션 스토어(1225)로부터의 커스텀 로그온 데이터는 어플리케이션 스토어(1225)가 발행한 토큰 또는 티켓을 제공하는 어플리케이션 스토어(1225)(또는 크리덴셜 매퍼(1229))에 인증된 상태로 접촉하도록 다른 가상화 에이전트(1237) 크리덴셜 플러그인으로 향할(direct) 수 있다. 어플리케이션 스토어(1225)는 이후 사용자 인증정보를 제시간에 가상화 에이전트(1237)로 위임하기 위하여 KCD를 사용할 수 있다. 이 실행은 XML 인터페이스를 통한 배달 컨트롤러(1235)로의 완전한 케르베로스 위임(delegation) 체인을 구축하는 것과 프로토콜 인터페이스를 가상화 에이전트(1237)로 브로커링하는 것을 회피할 수 있다. 이후, 가상화 에이전트 크리덴셜 플러그인은 KCD로부터의 네트워크 로그온 토큰을 완전한 인터랙티브 로그온 토큰으로 변환하기 위하여 인증 패키지를 호출할 수 있다.
클라이언트의 연결이 이루어지고 로그온 티켓이 주어지면, 가상화 에이전트(1237)는 자동 로그온 프로세스를 수행할 수 있다. 예를 들어, 가상화 에이전트(1237)는 예를 들어, 워크스테이션 세션들을 위하여 등록될 수 있는 크리덴셜 제공자(1292)로 신호를 보낼 수 있다. 크리덴셜 제공자 대신, 원격 데스크톱 세션들의 경우와 같이 크리덴셜 제공자 필터가 사용될 수 있다. 단계 1315에서 수신된 암호화된 로그온 데이터는 해독되고 크리덴셜 타입(type)의 결정을 위하여 검사될(inspected) 수 있다. 크리덴셜 타입은 커스텀 크리덴셜 타입이기 때문에, 해독된 데이터는 등록된 크리덴셜 플러그인으로 통과될 수 있다. 크리덴셜 플러그인은 윈도우 로그온 시스템(또는 다른 운영체제의 로그온 시스템)에 의하여 사용되는 적절한 연속화된(serialized) 크리덴셜 구조들을 생성할 수 있다. 연속화된 크리덴셜들은 처리(processing)를 위하여 크리덴셜 제공자(1292)(또는 필터)로부터 반환될 수 있다.
전술한 바와 같이, 크리덴셜 플러그인(1239)은 KERB_CERTIFICATE_LOGON 구조를 생성할 수 있다. KERB_CERTIFICATE_LOGON 구조는 운영체제로 스마트 카드 도메인 로그온이 수행되었음을 나타낼 수 있다. 전술한 바와 같이, 데이터 구조는 스마트 카드와의 인터랙션을 위하여 사용되는 드라이버(예를 들어, CSP(1294)와 같은 CSP, 또는 KSP)로의 참조(reference)를 포함할 수 있다. 단계 1320에서, CSP(1294)는 이후, 적절한 작업들을 가상 스마트 카드가 상주하는 크리덴셜 매퍼(1229)로 재전송할 수 있다.
특정 가상 스마트 카드의 사용을 위하여 가상화 에이전트(1237)을 위한 인증이 두 단계(two-fold)로 이루어질 수 있다. 먼저, 그것은 가상화 에이전트(1237)가 크리덴셜 매퍼(1229)에 의하여 신뢰된 호스트들의 화이트리스트 상에 존재하는지 확인될 수 있다. 둘째로, 가상화 에이전트(1237)가 세션 준비 중 배달 컨트롤러(1235)로부터 참조를 수신하였는지 확인될 수 있다. 어플리케이션 스토어(1225)와 배달 컨트롤러(1235)간의 자원 런치 인터랙션의 본질로 인하여, 어플리케이션 스토어(1225)(및 크리덴셜 매퍼(1229))는 가상 스마트 카드 참조를 획득할 때 배달 컨트롤러(1235)에 의하여 선택될 가상화 호스트(1237) 인증정보를 알지 못할 수 있다. 따라서, 가상 스마트 카드 참조는 어떠한 신뢰된 가상화 호스트들에 의해서라도 사용가능하도록 선택될 수 있다. 임의의 신뢰된 가상화 에이전트 호스트는 로컬적으로 가상 스마트 카드를 생성하기 위하여 크리덴셜 참조를 사용할 수 있다.
도 14는 본 발명의 하나 이상의 실시예에 따른 연합된 로그온을 위한 또 다른 시스템을 나타낸다. 가상화 배치 관점으로부터, 도 14(및 도 12A 내지 12C)에 도시된 요소들에 의하여 수행되는 단계들은 SAML을 통한 참조 티켓과 같은 종래의 티켓 로그온 모델들과 유사하게 이루어질 수 있다.
전술한 바와 같이, 클라이언트 장치(1401)는 인증정보 제공자로부터 SAML 인증 토큰을 수신할 수 있다. 풀 도메인 접근을 위하여, 클라이언트 장치(1401)는 인증을 위한 어플리케이션 스토어(1411)로 SAML 토큰을 전송할 수 있다. 어플리케이션 스토어(1411)는 참조 티켓을 요청하기 위하여 사용될 수 있는 SAML 토큰(예를 들어, 사용자의 클리어텍스트 패스워드 보다는)을 브로커 에이전트 서비스(1423) 및/또는 서버(1421)의 배달 컨트롤러로 전송할 수 있다. SAML 토큰은 클라이언트(1401)에 의하여 전송된 SAML 토큰과 동일하게 이루어지거나, 또는 서드파티 IdP에 의하여 수정되었을 수 있다. 서버(1421)가 SAML 토큰이 허용가능한 것으로 결정(예를 들어, 배달 컨트롤러가 SAML 토큰을 크리덴셜 매핑 서비스(1425)와 함께 확인함으로써)한 경우, 서버(1421)는 사용자의 티켓을 생성(임시의 티켓일 수 있는)하고, 생성된 티켓을 참조하거나 또는 식별할 수 있는 참조 티켓을 반환할 수 있다. 예를 들어, 이 단계에서 크리덴셜 매핑 서비스(1425)는 PKCS10 요청을 생성하고 인증기관(CA)(1431)으로 전송하며, CA(1431)로부터 인증서를 획득할 수 있다. 티켓은 크리덴셜 매핑 서비스(1425)와 같이 서버(1421)에 저장될 수 있다. 서버는 참조 티켓을 어플리케이션 스토어(1411)로 전송하고, 어플리케이션 스토어(1411)는 셀프 서비스 플러그인(1403)을 통하여 참조 티켓을 클라이언트(1401)로 전송할 수 있다. 반면, SAML 표명(assertion)이 크리덴셜 매핑 서비스(1425)에 의하여 거절된 경우, “접근 거부” 에러 코드가 어플리케이션 스토어(1411)로 대신 반환될 수 있다.
클라이언트 장치(1401)는 풀 도메인 로그온을 위한 참조 티켓을 교환(redeem)할 수 있다. 예를 들어, 클라이언트 에이전트(1405)는 셀프 서비스 플러그인으로부터 참조 티켓을 수신하고, 선택적으로, 참조 티켓을 저장하며, 참조 티켓을 가상화 머신(1441)으로 전송(예를 들어, 원격) 프로토콜을 사용하여 전송할 수 있다. 가상화 에이전트(1441)는 참조 티켓을 서버(1421)(미도시)의 배달 컨트롤러(예를 들어, DDC)와 같은 서버(1421)로 전송할 수 있다. 티켓은 사이트릭스(CITRIX) 연결 브로커링 프로토콜(CBP, Connection Brokering Protocol)과 같은 브로커 프로토콜에 의하여 전송될 수 있다. 가상화 머신(1441)은 참조 티켓이 SAML 주장(assertion) 로그인을 대표하는지 여부를 그것을 브로커로 전송할 때 까지 알지 못할 수 있다. 브로커로부터의 응답은 클리어텍스트 패스워드이거나 또는 공용 키 PKCS7 인증 인증서 체인을 포함하는 새로운 응답 구조가 될 수 있다.
참조 티켓을 수신한 후, 배달 컨트롤러는 티켓이 클리어텍스트 패스워드 인증 프로세스 보다 크리덴셜 매핑 서비스(1425) 인증 프로세스를 위하여 사용되는지 결정(참조 티켓 내에 포함된 정보들에 근거하여)할 수 있다. 따라서, 상기 배달 컨트롤러는 클리어텍스트 패스워드를 가상화 머신(1441)으로 반환하는 것 보다, 크리덴셜 매핑 서비스(1425)에 의하여 이전에 생성 및/또는 저장된 로그온 인증서를 반환할 수 있다.
도 12A 내지 12C를 참조로 하여 전술한 바와 같이, 참조 티켓을 확인할 수 있는 서버(1421)의 요소들은 정확하고 시간정확(예를 들어, 특정 기간 내에 교환(redeemed)되어야 하는)하다. 브로커가 SAML 주장을 나타내는 유효 참조 티켓을 수신하면, 그것은 가상화 머신(1441)과 크리덴셜 매핑 서비스(1425) 사이의 프록시로서 동작할 수 있다.
인증서가 제공되면, 클라이언트(1401)는 브로커 프로토콜 상의 개인 키 서명 작업을 위한 접근이 주어질 수 있다. 가상화 머신(1441)은 AD 스마트 카드 인증을 사용하여 사용자를 기록(log)할 수 있다. 제1통신패킷은 공용 PKCS7 인증서 체인을 위한 요청이 될 수 있다. 가상화 머신으로부터의 이후의 요청들은 개인 키 서명 작업들을 위하여 이루어질 수 있다.
다양한 보안 정책들이 사용될 수 있다. 크리덴셜 매핑 서비스(1425)는 인증기관(1431)(예를 들어, 마이크로소프트 인증기관)으로의 특권이 부여된 접근이 보장될 수 있다. 인증기관(1431)은 사용자들을 위한 인증서들을 발행할 수 있다. 인증기관(141)에 의하여 크리덴셜 매핑 서비스(1425) 상에 놓여진 임의의 제한들에 더하여, 보안 정책들의 클래스들은 크리덴셜 매핑 서비스 관리자에 의하여 구성될 수 있다. 먼저, 어떤 사용자들이 로그인하는지 관리될 수 있다. 접근 제어 리스트(ACL, access control list)는 누가 크리덴셜 매핑 서비스(1425)를 사용하는 인증에 허가될 수 있는지를 명시할 수 있다. 예를 들어, 이 방법으로 접근이 허가될 수 있는 도메인 관리자 그룹이 아닌 멤버들이 결정될 수 있다. 둘째로, 어떤 가상화 머신들이 티켓들을 교환하는지 제한될 수 있다. 브로커의 요청에 의하여, 티켓들은 이름지어진 가상화 머신들(예를 들어, 케르베로스 도메인 어카운트 또는 신뢰 영역(Trust Area) RID)에 의하여 교환될 수 있다. 크리덴셜 매핑 서비스(1425)는 가상화 머신들의 리스트를 제한할 수 있다. 예를 들어, 여기에 기술된 메커니즘을 사용하는 인증을 허용해야 하는 하나의 가상화 머신 카탈로그가 결정될 수 있다.
세번째로, 인증서 유효 기간들이 사용될 수 있다. 인증서들은 몇분(minutes)과 같은 짧은 기간 동안 사용될 수 있다. 이것은 인증기관(1431)을 통하여 제어될 수 있다. 장기(longer-lived) 인증서들이 요구되는 경우, 폐지(revocation) 시스템이 예를 들어, 사용자 로그오프에 의하여 트리거 또는 실행될 수 있다. 대안으로, 장기 네트워크 가상 스마트 카드들이 사용될 수 있다. 네트워크 가상 스마트 카드들은 예를 들어, 가상 스마트 카드 개인 키들을 암호화하기 위하여 하드웨어 보안 모듈 또는 신뢰된 플랫폼 모듈(TPM)을 사용함으로써 달성되는 높은 보안 레벨로 보호될 수 있다. 대안으로, 각 개인 키는 특정 클라이언트 에이전트에 의하여 보유(held)된 지속(persistent)형 증명 키와 연결될 수 있다. 가상 스마트 카드들은 로그오프에 따라 폐지되지 않고, 크리덴셜 매핑 서비스(1425)에 의하여 지속적으로 저장될 수 있다. 따라서, 크리덴셜 매핑 서비스(1425)에 저장된 가상 스마트 카드들은 가상 스마트 카드들의 강한 보호과 성능 이점들을 제공할 수 있는 크리덴셜 매핑 서비스(1425)에 저장(특정 가상화 호스트 보다는)되었기 때문에, 긴 기간 동안(예를 들어, 단지 도메인 로그온을 위한 지속기간 만이 아닌, 세션의 지속기간 동안) 재사용될 수 있다.
네번째로, 인증서 캐칭(catching) 및 갱신(revalidation)이 제어될 수 있다. 인증서들은 최초의 인증과 그 다음의 데스크톱 언락 작업들을 위하여 사용될 수 있다. 기본적으로, 인증서들은 일정 기간 동안 캐시가 이루어질 수 있으나, 관리자는 새로운 SAML 토큰을 제출함으로써 새로운 인증서가 생성되는 정책을 구성하기를 원할 수 있다. 다섯번째로, SAML 주장 확인이 실행될 수 있다. SAML 토큰들을 확인하기 위한 표준 제어는 주어질 수 있다. 서드 파티 IdP의 특정 구조를 요구할 수 있는 윈도우 UPN을 주장하는 SAML 토큰들은 초기에 허용될 수 있다.
다양한 다른 보안 제어들이 여기에 기술된 요소들을 위하여 구성될 수 있다. 예를 들어, 디렉토리 서비스(예를 들어, AD) 관리자와 같은 각 도메인을 위한 관리자는 적절한 CA의 신뢰(trust)를 수동으로 구성할 수 있다. 예를 들어, 관리자는 루트(root) 또는 종속 루트 인증서들과 같은 인증서들을 AD 내의 마이크로소프트 NTAuth 인증서 스토어와 같은 보호된 데이터 스토어 안으로 불러올 수 있다. 이러한 인증서들을 불러오는 것은 적절한 CA가 스마트 카드 또는 도메인 컨트롤러 타입의 인증서를 발행하는데 있어 신뢰되었음을 나타낼 수 있다. 인증서들을 불러오는 것은 윈도우 인증서 서비스가 기업 CA로서 사용되는 경우 자동으로 수행될 수 있다.
CA 관리자는 예를 들어, 세개의 인증서 템플릿들을 불러오거나 또는 생성할 수 있다. 제1템플릿은 가상화 요소들 및 서비스들을 제공할 수 있는 데이터 센터 서버의 부트스트랩 초기 신뢰(initial trust)에 사용될 수 있다. 제2템플릿은 데이터 센터 서버 크리덴셜들의 인증서 자동 갱신과, 클러스터에 들어가는(join) 새로운 데이터 센터 서버들을 위한 크리덴셜들의 발행을 허용하기 위하여 사용될 수 있다. 제3템플릿은 사용자들을 위한 스마트 카드 로그온 인증서들을 발행하기 위하여 사용될 수 있다. CA는 어느 데이터 센터 서버들이 템플릿들을 사용할지 결정하는 접근 제어를 가질 수 있다.
다른 보안 제어는 데이터 센터 서버로부터의 크리덴셜 요청을 위한 부트스트랩 신뢰의 CA 관리자에 의한 수동 승인을 포함할 수 있다. 또 다른 보안 제어는 가상 스마트카드들의 생성을 요청하도록 인가된 어플리케이션 스토어 서버들을 식별하기 위하여 보안 제어들의 세트를 그 자체로 실행하는 데이터 센터 서버와, 로그온을 위하여 가상 스마트 카드들을 사용하도록 인가된 가상화 머신들을 포함할 수 있다. 그것은 이 방법으로 위장될 수 있는 사용자들의 세트들을 식별 또는 제한하기 위한 제어를 가질 수 있다.
크리덴셜 매핑 서비스의 실시예
전술된 크리덴셜 매핑 서비스의 실시예들은 다양한 방법으로 실시될 수 있다. 한 목표는 사용자들이 인증서들을 사용하여 액티브 디렉토리 사용자 어카운트 상으로 쉽고 빠르게 로그(log)할 수 있는 시스템이다.
일 실시예에서, 여기에 기술된 원격 서비스는 클라이언트 장치 상의 클라이언트 에이전트 내에 위치될 수 있다. 이 실시예에서, 클라이언트 에이전트는 인증 단계를 수행하기 위하여 사용자의 스마트 카드를 직접적으로 사용할 수 있다. 전술한 바와 같이, 이것은 새로운 가상 채널을 사용할 수 있다.
다른 실시예에서, 원격 서비스는 전술한 바와 같이 크리덴셜 매핑 서비스를 포함할 수 있다. 이 서비스는 기업 마이크로소프트 인증기관과 같은 인증기관을 사용하여 즉석에서(on-the-fly) 스마트 카드 인증서들을 발행하고 저장하도록 사용될 수 있다. 대안으로, 인증서들은 사전 생성될 수 있다. 인증기관과 조합된 크리덴셜 매핑 서비스는 인증 정책의 다양한 관점들을 집행하기(enforcing) 위하여 사용될 수 있다.
도 15는 본 발명의 하나 이상의 실시예에 따른 크리덴셜 매핑 서비스를 제공하기 위한 시스템을 나타낸다. 서드파티 IdP(1551)는 인증정보 확인 토큰(예를 들어, SAML 토큰)을 연합서버(1553)로 전송할 수 있다. 연합서버(1553)는 토큰을 배달 컨트롤러(1513)로 포워딩할 수 있는 어플리케이션 스토어(1511)로 토큰을 전송할 수 있다. 크리덴셜 매핑 서비스(1525)는 구체적으로 등록된 배달 컨트롤러(1513)로부터 보호된 연결을 통하여 SAML 토큰을 받을 수 있다. 설정된 정책에 의하여 인증이 허용되는 경우, 그것은 클라이언트 에이전트(1505)로 통과될 수 있는 일회용 보안 랜덤 티켓을 반환할 수 있다. 클라이언트 에이전트(1505)는 가상화 머신(1541)으로 티켓을 제공할 수 있고, 가상화 머신이 티켓과 접하면(encounter) 그것은 크리덴셜 매핑 서비스(1525)(예를 들어, 신뢰된 연결을 통하여)로 제공될 수 있다. 이것은 로그온 시스템이 크리덴셜 매핑 서비스(1525) 내에서 진행하는 원격 암호화 작업 프로토콜 서버에 접근 가능하도록 할 수 있다. 크리덴셜 매핑 서비스(1525)는 개인 키를 생성하고, 인증의 양상들(aspects)을 암호화하기 위하여 SAML 토큰에 의한 사용자 식별을 위한 임시 스마트 카드 인증서를 등록할 수 있다. 몇몇 실시예들에서, 생성된 개인 키는 보안 랜덤 티켓으로부터 얻거나 또는 이와 관련한 키를 사용하여 래핑(wrapped)될 수 있다.
액티브 디렉토리 어카운트로 명백한 인증이 요구되는 경우, 분리된 고-특권(high-privileged) 서비스가 설치될 수 있다. 이 서비스는 도메인 관리자에 의하여 설정될 수 있다. 도메인 관리자(또는 동등한) 크리덴셜들은 크리덴셜 매핑 서비스(1525)에 의하여 사용되는 도메인의 인증기관(1531)을 설정하기 위하여 사용될 수 있다. 이것은 관리자의 콘솔로부터 완료되었을 수 있으며, 자동으로 완료될 수 있다.
크리덴셜 매핑 서비스(1525)를 구성할 때, 인증기관(1531)은 도메인 내에서 사용가능한 모든 CA들의 리스트로부터 선택될 수 있다. 도메인 관리자(또는 동등한) 크리덴셜들은 크리덴셜 매핑 서비스(1525)를 선택된 CA(1531)로 접근하도록 인가하기 위하여 사용될 수 있다. 도메인 관리자(또는 동등한)는 선택된 CA의 관리 콘솔을 사용하여 크리덴셜 매핑 서비스(1525)의 인증을 응답(acknowledge)할 수 있다. 보안을 이유로, 여기에 기술된 작업들은 각각의 크리덴셜 매핑 서비스를 위하여 완료될 수 있다.
크리덴셜 매핑 서비스(1525)는 런타임 설정을 위한 세개의 기본 리스트, 즉, 매핑될 크리덴셜들을 요청할 수 있는 머신들의 리스트, 매핑될 수 있는(예를 들어, 그룹) 사용자 어카운트들의 리스트, 및 매핑된 크리덴셜들을 기반으로 AD 로그온을 수행할 수 있는 머신들의 리스트 를가질 수 있다. 따라서, 보호 결정(security decision)은 어플리케이션 스토어(A)는 SAML 주장(B)을 액티브 디렉토리 어카운트(C) 상에 매핑할 수 있다는 형식을 따를 수 있다. 로그온은 그 후에 가상화 서버(D) 상에서 이루어질 수 있다.
여기에 기술된 컨셉들에 근거하는 다양한 장점들이 사용가능하다. 먼저, “스마트 카드로부터 인증서 획득” 및 “개인 키의 수행” 작업들과 같은 일부 작업들은 서버와 스마트 카드(예를 들어, 클라이언트 장치 상의) 사이의 왕복 통신(round-trip)을 활용할 수 있다. 따라서, 로그온 프로세스는 현저히 빠를 수 있다. 또한, 스마트 카드 로그온은 서버상에 호환가능한 스마트 카드 드라이버들이 설치되지 않은 경우에도 성공할 수 있다.
다른 장점은 일회용 패스워드(OTP)가 실제의 액티브 디렉토리 어카운트로의 접근을 제공할 수 있다는데 있다. 익명의 로그온들은 풀 AD 어카운트들에 임시적으로 매핑될 수 있다. 서드파티 인증 솔루션들은 가상화 머신으로 쉽게 매핑될 수 있다.
빠른 스마트 카드 로그온 특성을 위하여, 윈도우 PKINIT 로그온 시스템과의 통합이 이루어질 수 있다. 이러한 인증 시스템들과 상호작동(interoperate)하도록 이루어진 서버 머신들 상에 크리덴셜 제공자 패키지가 설치될 수 있다. 이것은 몇몇 시스템들에 이미 포함된 크리덴셜 제공자들로의 확장을 포함할 수 있다. 이 패키지의 새로운 기능은 CSP를 사용하여 윈도우를 PKINIT와 함께 로그인 하도록 명령하도록 이루어질 수 있다. CSP는 실제의 로그온 인증서를 제공하고, 관련된 개인 키 작업들을 수행하는 원격 프로세스와 완벽하게 통신할 수 있다. 가상 채널은 CSP와 클라이언트 상에서 동작하는 존재하는 인증 매니저 프로그램 사이의 전달자(conduit)로서 작동할 수 있다. 세가지 트랜잭션(transactions)(또는 작업들)은 "스마트 카드 사용자 인증서의 획득", "개인 키 서명의 수행", 및 "개인 키로 해독"을 포함한다. 인증 매니저는 가상 머신으로 사용자를 로그할 수 있는 PKOps 요청들을 만족하기 위하여 로컬 스마트 카드를 직접 사용할 수 있다. 인증 매니저가 어플리케이션 스토어에 로그하기 위하여 이미 이미 언락된 스마트 카드를 가질 수 있는 것과 같이, 이것 역시 SSO 기능을 제공할 수 있다.
몇몇 실시예들에서, 가상 채널을 통하여 PKOps 요청들이 클라이언트로 통과하기 보다는, 상기 리퀘스트들은 크리덴셜 매핑 서비스(CMS)로 직접 전송될 수 있다. CMS 서버는 로그온을 인가하고, PKOps를 수행할 수 있다. 분리 서버(separate server)상에 설치된 신뢰된 서비스는 인증 체크들을 수행한 이후 적절한 사용자를 로그인 하기 위하여 CPS로부터 PLOps 요청들을 제공할 수 있다. 그것이 배달 컨트롤러와 함께 분리 보안 통신 경로를 갖는 것과 같이, CSM는 기대하는 로그온 요청들을 인가할 수 있다. CSP에 의하여 제공된 "일회용 티켓"은 이것을 달성하기 위한 하나의 메카니즘이 될 수 있다.CMS는 스마트 카드 인증서들을 자동으로 등록할 수 있다. 사용자 로그온들을 수행하기 위하여, CMS는 내부적으로 스마트 카드 인증서 요청들을 자동으로 생성하고 마이크로소프트 인증기관 또는 서드파티 CA에 의하여 발행된 그것들을 가질 수 있다. CSP로부터의 PKOps 요청들은 이러한 인증서들에 근거하여 제공될 수 있다. CMS는 일회용 티켓으로부터 얻은 키를 래핑(wrapping)하는 키를 갖는 암호화를 사용하거나 또는 하드웨어 보안 모듈 또는 신뢰된 플랫폼 모듈 또는 유사한 수단들을 사용하는 인증서들을 위한 개인 키들을 추가적으로 보호할 수 있다.
일반적인 보안 요구사항들이 존재할 수 있다. 개인 키들은 PKINIT 요청들을 서명하기 위하여 보호되고 사용될 수 있다. PKOps 개인 키 서명 요청이 언제 제공되던지, 서버는 적절한 케르베로스 프로토콜 데이터에 대응하는 ASN-1 구조로 서명하는 데이터를 점검함으로써 그것이 케르베로스 로그온을 실질적으로 수행하도록 할 수 있다. 다른 데이터 구조들 상의 개인 키 작업들을 수행하기 위한 시도는 거부될 수 있다. 해독 작업을 위하여, 해독된 데이터는 케르베로스 프로토콜 작업에 대응하는 예상된 ASN-1 구조를 갖도록 서버로 반환되기 전에 점검될 수 있다. 개인 키들은 가상화 머신들 상에 생성되거나 또는 저장되지 않을 수 있다. PKOps 프로토콜은 사용자들이 로그인하는 머신 상에 개인 키들이 주어질 필요가 없도록 할 수 있다. 개인 키들은 클라이언트 머신 상의 스마트 카드 내에 거주하거나, 또는 격리될 수 있는 CMS 서버 내에 거주할 수 있다.
몇몇 실시예들에서, 사용자는 원격 세션(예를 들어, 원격 어플리케이션 또는 데스크톱 세션)으로 재연결할 수 있다. 재연결은 본래의 런치(original launch)와 같이 다른 인증 방법 및/또는 다른 보안 상황정보를 사용할 수 있다. 재연결에 따라, 클레임(claim)들은 새로운 인증 방법, 보증 레벨, 및/또는 위치 및 장치와 같은 다른 보안 상황정보들을 반영하기 위하여 업데이트될 수 있다. 이 업데이트는 케르베로스 티켓들(여기서 보안 그룹들 멤버쉽이 추적되는) 및 전술한 바와 같은 TLS 클라이언트 인증을 위하여 사용되고, 이후, 다른 서버들에 의하여 점검될 수 있는 세션 인증서 그 자신으로 정보를 반영하는 것에 추가로 수행될 수 있다. 몇몇 실시예들에서, 새로운 인증서는 전술한 인증서 사전 생성 또는 캐싱 모델을 사용하는 것 보다는 각 런치 또는 재연결을 위하여 생성될 수 있다.
런치와 함께와 같이, 보통(예를 들어, 윈도우 또는 다른 OS)의 인증 프로세스는 전술한 바와 같은 재연결을 위하여 발생할 수 있다. OS 레벨에서, 이 인증(예를 들어, 현재 로그온된 사용자의 재인증)은 정확한 사용자가 주어지기 때문에 세션이 언락될 수 있는지 확인하기 위하여 사용될 수 있다. 사용자가 정확한 사용자인지 확인된 후, 존재하는 세션은 사용자가 보고 사용자의 어플리케이션들을 사용하도록 접근가능하도록 만들어질 수 있다. 그러나, 가상화 에이전트(재연결 작업 중 이 활동을 조직할(orchestrating) 수 있는)는 세션(세션을 런치하기 위한 오리지널 인증에 근거하는)을 위한 케르베로스 티켓 정보가 폐기되고 재인증 중 획득된 새로운 케르베로스 티켓들로 교체되도록 처리할 수 있다. OS 내에 존재하는 API들은 이 방법으로 케르베로스 티켓들을 폐기하고 교체하기 위하여 사용될 수 있다. 예를 들어, 윈도우 명령 klist.exe가 사용될 수 있다. 업데이트된 정보는 파일 공유 접근을 관리하는 서비스들과 같은 특별한 방법으로 작업을 수행하는 OS의 정해진(certain) 부분들로 전파될 수 있다.
대안으로, 고유의 세션 인증서가 새로운 인증서로 교체될 수 있다. 세션 인증서는 전술한 로그온 인증서를 포함할 수 있으나, 어플리케이션들로 접근가능하도록 세션 중에 사용하기 위한 충분한 수명과 함께, OS 인증서 스토어로 전파된다. 이전의 인증서들에 기반하여 이루어진 임의의 어플리케이션 레벨 TLS 연결 상태를 청소하기 위하여, 브라우저는 예를 들어, 새로운 인증서를 정확히 고르기 위하여 재시작될 수 있다. 대안으로, 속성(attribute) 기관 모델이 사용될 수 있다. 예를 들어, 세션 인증서는 실제의 보안 상황정보를 포함하지 않고, 전술된 크리덴셜 매퍼 서비스와 같은 정보를 알고있는 서비스로의 포인터(예를 들어, 적절한 세션 참조)를 포함할 수 있다. TLS 클라이언트 인증을 사용하는 웹사이트는 참(true) 정보를 배우기 위하여 이러한 속성 서비스를 쿼리(query)할 수 있다.
비록 요지가 구성적 특징들 및/또는 방법적 동작들에 특정한 언어로 설명되었을지라도, 첨부된 청구항들에서 정의된 요지가 반드시 앞서 설명된 특정 특징들 또는 동작들로 제한되는 것이 아니라는 것이 이해되어야 한다. 오히려, 앞서 설명된 특정 특징들 및 동작들은 하기의 청구항들의 예시적인 구현들로서 설명된다.

Claims (40)

  1. 클라이언트 장치에서 스마트 카드에 근거하여 클라이언트 장치를 인증하기 위한 요청을 클라이언트 장치로부터 서버 장치에서 수신하는 단계;
    요청 수신에 대응하여, 클라이언트 장치를 위한 인증 세션을 시작하는 단계;
    클라이언트 장치를 위한 인증 중, 인증 세션 중의 작업이 클라이언트 장치의 스마트 카드에 의하여 제공된 최소한 하나 이상의 서명, 인증서, 인증서들의 리스트, 및 해독 작업을 사용하는지 결정하는 단계; 및
    결정에 대응하여, 최소한 하나 이상의 서명, 인증서, 인증서들의 리스트 및 해독 작업을 위한 요청이 서버로부터 클라이언트 장치로 전송되는 단계;
    를 포함하는 방법.
  2. 제 1항에 있어서,
    클라이언트 장치를 인증하기 위한 요청을 수신한 이후, 서버 장치의 크리덴셜 제공자에 의하여 인증 세션 중에 하나 이상의 암호화 작업들을 수행하도록 서버 장치의 키 스토리지 제공자(key storage provider)가 선택되는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  3. 제 1항에 있어서,
    클라이언트 장치의 인증을 위한 요청을 수신한 이후, 서버 장치의 크리덴셜 제공자에 의하여 인증 세션 중에 하나 이상의 암호화 작업들을 수행하도록 서버 장치의 암호화 서비스 제공자가 선택되는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  4. 제 3항에 있어서,
    결정하는 단계는, 인증 세션 중에 클라이언트 장치의 스마트 카드에 의하여 제공된 최소한 하나 이상의 서명, 인증서, 인증서들의 리스트, 및 해독 작업을 사용하는 작업을 차단하는 암호화 서비스 제공자를 포함하고,
    요청을 전송하는 단계는, 작업을 차단하는 것에 대응하여 요청을 전송하는 암호화 서비스 제공자를 포함하는 것을 특징으로 하는 방법.
  5. 제 4항에 있어서,
    클라이언트 장치의 스마트 카드를 사용하지 않는 인증 세션 중의 작업을 결정하는 것에 대응하여,
    암호화 서비스 제공자에 의하여 스마트 카드를 사용하지 않는 작업을 수행하기 위한 제2 암호화 서비스 제공자가 요청되는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  6. 제 4항에 있어서,
    암호화 서비스 제공자가 요청을 전송하는 것은,
    암호화 서비스 제공자가 개인용 컴퓨터/스마트 카드(PC/SC) 레이어 보다 높은 레벨의 가상 채널을 통하여 클라이언트 장치로의 요청을 전송하는 것을 포함하는 것을 특징으로 하는 방법.
  7. 제 6항에 있어서,
    가상 채널 또는 PC/SC 레이어를 통하여 서버 장치에서 수신된 통신(communication)들을 통하여, 클라이언트 장치의 스마트 카드가 제거(removed)되었는지 판단하는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  8. 제 1항에 있어서,
    결정하는 단계는, 인증 세션 중의 작업이 클라이언트 장치의 스마트 카드에 의하여 제공된 서명을 사용하는지 결정하는 것을 포함하고,
    요청을 전송하는 단계는, 스마트 카드의 개인 키를 사용하는 서명 작업을 수행하기 위하여 클라이언트 장치로 요청을 전송하는 것을 포함하는 것을 특징으로 하는 방법.
  9. 제 1항에 있어서,
    결정하는 단계는, 인증 세션 중의 작업이 클라이언트 장치의 스마트 카드에 의하여 제공된 해독 작업(decryption operation)을 사용하는지 결정하는 것을 포함하고,
    요청을 전송하는 단계는, 스마트 카드의 개인 키를 사용하는 서명 작업을 수행하기 위하여 클라이언트 장치로 요청을 전송하는 것을 포함하는 것을 특징으로 하는 방법.
  10. 제 1항에 있어서,
    스마트 카드는,
    하나 이상의 물리적 스마트 카드 및 가상 스마트 카드를 포함하는 것을 특징으로 하는 방법.
  11. 제 1항에 있어서,
    서버 장치에서 스마트 카드에 대응하는 PIN을 클라이언트 장치로부터 수신하는 단계; 및
    서버 장치의 암호화 서비스 제공자에서 PIN을 저장하는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  12. 프로세서; 및
    상기 프로세서에 의하여 실행될 때 컴퓨터-실행가능 명령들을 저장하는 메모리;
    를 포함하고, 장치가,
    클라이언트 장치로부터 클라이언트 장치의 스마트 카드에 근거하여 클라이언트 장치를 인증하기 위한 요청을 수신하고,
    수신된 요청에 대응하여, 클라이언트 장치를 위한 인증 세션을 시작하며,
    클라이언트 장치를 위한 인증 세션 중, 인증 세션 중의 작업이 클라이언트 장치의 스마트 카드에 의하여 제공된 최소한 하나 이상의 서명, 인증서, 인증서들의 리스트, 및 해독 작업을 사용하는지 결정하고,
    결정에 대응하여, 최소한 하나 이상의 서명, 인증서, 인증서들의 리스트, 및 해독 작업을 위한 요청을 클라이언트 장치로 전송하도록 하는 것을 특징으로 하는 장치.
  13. 제 12항에 있어서,
    프로세서에 의하여 실행될 때 메모리가 컴퓨터 실행가능한 명령들을 저장하는 것은,
    장치가 클라이언트 장치를 인증하기 위한 요청을 수신한 후, 인증 세션 중에 하나 이상의 암호화 작업들을 수행하기 위하여 장치의 크리덴셜 제공자에 의하여 장치의 서비스 제공자를 선택하도록 하는 것을 특징으로 하는 장치.
  14. 제 13항에 있어서,
    결정은, 인증 세션 중에 클라이언트 장치의 스마트 카드에 의하여 제공된 최소한 하나 이상의 서명, 인증서, 인증서들의 리스트, 및 해독 작업을 사용하는 작업을 차단하는 서비스 제공자를 포함하고,
    요청을 전송하는 것은, 작업을 차단하는 것에 대응하여 요청을 전송하는 서비스 제공자를 포함하는 것을 특징으로 하는 장치.
  15. 제 14항에 있어서,
    프로세서에 의하여 실행될 때 메모리가 컴퓨터 실행가능한 명령들을 저장하는 것은,
    장치가 클라이언트 장치의 스마트 카드를 사용하지 않는 인증 세션 중의 작업을 결정하는 것에 대응하여, 서비스 제공자에 의하여 스마트 카드를 사용하지 않는 작업을 수행하기 위한 제2 암호화 서비스 제공자가 요청되도록 하는 것을 특징으로 하는 장치.
  16. 제 14항에 있어서,
    요청을 전송하는 서비스 제공자는, 개인용 컴퓨터/스마트 카드(PC/SC) 레이어 보다 높은 레벨의 가상 채널을 통하여 클라이언트 장치로의 요청을 전송하는 서비스 제공자를 포함하는 것을 특징으로 하는 장치.
  17. 제 12항에 있어서,
    스마트 카드는 하나 이상의 물리적 스마트 카드 및 가상 스마트 카드를 포함하는 것을 특징으로 하는 장치.
  18. 클라이언트 장치의 스마트 카드에 근거하여 클라이언트 장치를 인증하기 위한 요청을 클라이언트 장치로부터 서버 장치로 전송하는 단계;
    요청에 대응하여, 클라이언트 장치를 위한 인증 세션 중 작업을 수행하는 단계; 및
    클라이언트 장치를 위한 인증 세션 중, 개인용 컴퓨터/스마트 카드(PC/SC) 레이어 보다 높은 레벨의 가상 채널을 통하여, 클라이언트 장치의 스마트 카드에 의하여 제공된 최소한 하나 이상의 서명, 인증서, 인증서들의 리스트, 및 해독 작업을 수신하는 단계;
    를 포함하는 방법.
  19. 제 18항에 있어서,
    스마트 카드는, 하나 이상의 물리적 스마트 카드 및 가상 스마트 카드를 포함하는 것을 특징으로 하는 방법.
  20. 제 18항에 있어서,
    PC/SC 레이어 보다 높은 레벨의 가상 채널을 통하여 원격 작업들을 전송함으로써 클라이언트 장치를 인증하기 위하여, 서버 장치를 위한 표시(indication)가 클라이언트 장치에 의하여 서버 장치로 전송되는 단계;
  21. 서버 장치의 크리덴셜 매퍼에 인증서를 저장하는 단계;
    서버 장치에 의하여 크리덴셜 매퍼에 저장된 인증서들과 토큰을 일치시키는(corresponding) 단계
    토큰을 클라이언트 장치로부터 서버 장치에서 수신하는 단계;
    서버 장치에서 클라이언트 장치로부터 수신된 토큰에 근거하여 클라이언트 장치가 인증정보 제공 장치(identity providing device)와 함께 인증되었는지 결정하는 단계; 및
    클라이언트 장치가 인증정보 제공장치와 함께 인증되었는지 결정하는것에 대응하여, 도메인으로의 클라이언트 장치의 접근을 보장하기 위한 임시 인증서를 제공하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  22. 제 21항에 있어서,
    클라이언트 장치가 인증정보 제공 장치와 함께 인증되었는지 결정하는 단계는,
    클라이언트 장치로부터 수신된 토큰으로부터의 정보가 서버 장치에 의하여 인증정보 제공 장치로 전송되는 단계;
    클라이언트 장치가 인증정보 제공 장치와 함께 인증된 것에 대한 확인(confirmation)이 인증정보 제공 장치로부터 수신되는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  23. 제 21항에 있어서,
    클라이언트 장치가 인증정보 제공 장치와 함께 인증되었는지 결정하는 단계는,
    서버 장치의 크리덴셜 매퍼에 의하여 클라이언트 장치로부터 수신된 토큰이 인증정보 제공 장치에 의하여 발행된 토큰과 대응하는지 결정하는 단계;
    서버 장치의 게이트웨이 서비스에 의하여 클라이언트 장치로부터 수신된 토큰이 인증정보 제공 장치에 의하여 발행된 토큰과 대응하는지 결정하는 단계; 또는
    서버 장치의 어플리케이션 스토어에 의하여 클라이언트 장치로부터 수신된 토큰이 인증정보 제공 장치에 의하여 발행된 토큰과 대응하는지 결정하는 단계;
    중 최소한 하나 이상의 단계를 수행하는 것을 포함하는 방법.
  24. 제 21항에 있어서,
    임시 인증서를 클라이언트 장치의 증명 키에 연결하는 단계;
    를 포함하고, 임시 인증서의 제공은 상기 클라이언트 장치가 증명 키를 가진 것에대한 결정에 대응하여 임시 인증서를 제공하는 것을 특징으로 하는 방법.
  25. 제 21항에 있어서,
    임시 인증서를 제공하기 전,
    토큰에 근거하여 클라이언트 장치가 인증정보 제공 장치와 함께 인증되었는지 결정하는 것에 대응하여 크리덴셜 매퍼에 저장된 인증서에 근거하여 임시 인증서를 생성하는 단계;
    를 더 포함하는 것을 특징으로하는 방법.
  26. 제 21항에 있어서,
    임시 인증서는 시간제한 인증서를 포함하는 것을 특징으로 하는 방법.
  27. 제 21항에 있어서,
    임시 인증서는 스마트 카드 클래스 인증서를 포함하는 것을 특징으로 하는 방법.
  28. 프로세서; 및
    상기 프로세서에 의하여 실행될 때 컴퓨터-실행가능 명령들을 저장하는 메모리;
    를 포함하고, 장치가,
    장치의 크리덴셜 매퍼로 인증서를 저장하고,
    크리덴셜 매퍼에 저장된 인증서에 토큰을 일치시키며,
    클라이언트 장치로부터 토큰을 수신하고,
    클라이언트 장치로부터 수신된 토큰에 근거하여 인증정보 제공 장치와 함께 클라이언트 장치가 인증되었는지 결정하며,
    클라이언트 장치가 인증정보 제공 장치와 함께 인증되었는지 결정하는것에 대응하여, 클라이언트 장치가 도메인에 접근하는 것을 보장하기 위한 임시 인증서를 제공하도록 하는 것을 특징으로 하는 장치.
  29. 제 28항에 있어서,
    클라이언트 장치가 인증정보 제공 장치와 함께 인증되었는지 결정하는 것은,
    클라이언트 장치로부터 수신된 토큰으로부터의 정보를 인증정보 제공 장치로 전송하고,
    상기 클라이언트 장치가 인증정보 제공 장치와 함께 인증되었음을 나타내는 확인을 상기 인증정보 제공 장치로부터 수신하는 것을 포함하는 것을 특징으로 하는 장치.
  30. 제 28항에 있어서,
    클라이언트 장치가 인증정보 제공 장치와 함께 인증되었는지 결정하는 것은,
    서버 장치의 크리덴셜 매퍼에 의하여 클라이언트 장치로부터 수신된 토큰이 인증정보 제공 장치에 의하여 발행된 토큰과 대응하는지 결정하는 것;
    서버 장치의 게이트웨이 서비스에 의하여 클라이언트 장치로부터 수신된 토큰이 인증정보 제공 장치에 의하여 발행된 토큰과 대응하는지 결정하는 것; 또는
    서버 장치의 어플리케이션 스토어에 의하여 클라이언트 장치로부터 수신된 토큰이 인증정보 제공 장치에 의하여 발행된 토큰과 대응하는지 결정하는 것;
    중 최소한 하나 이상을 수행함으로써 이루어지는 것을 특징으로 하는 장치.
  31. 제 28항에 있어서,
    프로세서에 의하여 실행될 때, 메모리가 컴퓨터 실행가능 명령들을 저장하는 것은,
    장치가 임시 인증서를 클라이언트 장치의 증명 키에 연결하고, 임시 인증서의 제공은 상기 클라이언트 장치가 증명 키를 가진 것에 대한 결정에 대응하여 임시 인증서를 제공하도록 하는 것을 특징으로 하는 장치.
  32. 제 28항에 있어서,
    프로세서에 의하여 실행될 때, 메모리가 컴퓨터 실행가능 명령들을 저장하는 것은,
    장치가 임시 인증서를 제공하기 전, 토큰에 근거하여 클라이언트 장치가 인증정보 제공 장치와 함께 인증되었는지 결정하는 것에 대응하여 크리덴셜 매퍼에 저장된 인증서에 근거하여 임시 인증서를 생성하도록 하는 것을 특징으로 하는 장치.
  33. 제 28항에 있어서,
    임시 인증서는 시간 제한 인증서를 포함하는 것을 특징으로 하는 장치.
  34. 제 28항에 있어서,
    임시 인증서는 스마트 카드 클래스 인증서를 포함하는 것을 특징으로 하는 장치.
  35. 클라이언트 장치에 의하여 인증정보 제공 장치와 함께 클라이언트 장치를 인증하기 위한 크리덴셜들을 인증정보 제공 장치로 전송하는 단계;
    클라이언트 장치가 인증정보 제공 장치와 함께 인증되었음을 나타내는 토큰이 인증정보 제공 장치로부터 클라이언트 장치에 수신되는 단계;
    클라이언트 장치에 의하여 상기 토큰이 서버 장치로 전송되는 단계; 및
    클라이언트 장치가 서버로부터 토큰에 근거하여 도메인으로의 접근이 허용되었음을 나타내는 표시를 수신하는 것에 대응하여, 도메인에 접근하기 위하여 임시 인증서를 사용하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  36. 제 35항에 있어서,
    서버 장치는,
    클라이언트 장치가 인증정보 제공 장치와 함께 인증되었는지 결정하기 위하여 토큰을 사용하는 것을 특징으로 하는 방법.
  37. 제 35항에 있어서,
    토큰은 서버 장치의 크리덴셜 매퍼에 저장된 인증서들과 연결되는 것을 특징으로 하는 방법.
  38. 제 37항에 있어서,
    임시 인증서는 크리덴셜 매퍼에 저장된 인증서에 근거하여 생성되는 것을 특징으로 하는 방법.
  39. 제 35항에 있어서,
    임시 인증서는 시간 제한 인증서를 포함하는 것을 특징으로 하는 방법.
  40. 제 35항에 있어서,
    임시 인증서는 스마트 카드 클래스 인증서를 포함하는 것을 특징으로 하는 방법.
KR1020177011978A 2014-09-30 2015-09-30 빠른 스마트 카드 로그온 및 연합된 풀 도메인 로그온 KR102036758B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462057344P 2014-09-30 2014-09-30
US62/057,344 2014-09-30
PCT/US2015/053118 WO2016054149A1 (en) 2014-09-30 2015-09-30 Fast smart card logon and federated full domain logon

Publications (2)

Publication Number Publication Date
KR20170062529A true KR20170062529A (ko) 2017-06-07
KR102036758B1 KR102036758B1 (ko) 2019-10-28

Family

ID=54292946

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177011978A KR102036758B1 (ko) 2014-09-30 2015-09-30 빠른 스마트 카드 로그온 및 연합된 풀 도메인 로그온

Country Status (5)

Country Link
US (2) US10122703B2 (ko)
EP (2) EP3201816B1 (ko)
JP (1) JP6526181B2 (ko)
KR (1) KR102036758B1 (ko)
WO (1) WO2016054149A1 (ko)

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2788911A4 (en) * 2011-12-08 2015-07-29 Intel Corp METHOD AND DEVICE FOR POLICY-BASED JOINT CONTENT USE IN A PEER TO PEER WAY WITH ROOT-OF-TRUST ON HARDWARE BASE
US9166962B2 (en) * 2012-11-14 2015-10-20 Blackberry Limited Mobile communications device providing heuristic security authentication features and related methods
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US10841316B2 (en) 2014-09-30 2020-11-17 Citrix Systems, Inc. Dynamic access control to network resources using federated full domain logon
US9942200B1 (en) * 2014-12-02 2018-04-10 Trend Micro Inc. End user authentication using a virtual private network
US10460313B1 (en) * 2014-12-15 2019-10-29 United Services Automobile Association (Usaa) Systems and methods of integrated identity verification
US9736165B2 (en) 2015-05-29 2017-08-15 At&T Intellectual Property I, L.P. Centralized authentication for granting access to online services
US9843572B2 (en) * 2015-06-29 2017-12-12 Airwatch Llc Distributing an authentication key to an application installation
US9825938B2 (en) * 2015-10-13 2017-11-21 Cloudpath Networks, Inc. System and method for managing certificate based secure network access with a certificate having a buffer period prior to expiration
WO2017066931A1 (zh) * 2015-10-21 2017-04-27 华为技术有限公司 网络功能虚拟化架构中证书的管理方法及装置
US10218698B2 (en) * 2015-10-29 2019-02-26 Verizon Patent And Licensing Inc. Using a mobile device number (MDN) service in multifactor authentication
US10581617B2 (en) * 2015-12-23 2020-03-03 Mcafee, Llc Method and apparatus for hardware based file/document expiry timer enforcement
US10439954B1 (en) * 2015-12-28 2019-10-08 EMC IP Holding Company LLC Virtual-enterprise cloud computing system
US10817593B1 (en) * 2015-12-29 2020-10-27 Wells Fargo Bank, N.A. User information gathering and distribution system
US10581823B2 (en) * 2016-03-21 2020-03-03 Vmware, Inc. Web client plugin manager in vCenter managed object browser
US10050957B1 (en) 2016-04-08 2018-08-14 Parallels International Gmbh Smart card redirection
US10142323B2 (en) * 2016-04-11 2018-11-27 Huawei Technologies Co., Ltd. Activation of mobile devices in enterprise mobile management
US10523660B1 (en) 2016-05-13 2019-12-31 MobileIron, Inc. Asserting a mobile identity to users and devices in an enterprise authentication system
CN109196500B (zh) 2016-05-13 2022-11-01 移动熨斗公司 对基于云的服务的基于统一vpn和身份的认证
US10362021B2 (en) * 2016-05-31 2019-07-23 Airwatch Llc Device authentication based upon tunnel client network requests
US10171445B2 (en) * 2016-06-30 2019-01-01 International Business Machines Corporation Secure virtualized servers
US10356087B1 (en) * 2016-08-26 2019-07-16 Intelligent Waves Llc System, method and computer program product for credential provisioning in a mobile device platform
US10321313B2 (en) 2016-09-09 2019-06-11 Dell Products L.P. Enabling remote access to a service controller having a factory-installed unique default password
US10462228B2 (en) * 2016-10-20 2019-10-29 Wyse Technology L.L.C. Providing access to a smartcard within a remote session
US10333930B2 (en) * 2016-11-14 2019-06-25 General Electric Company System and method for transparent multi-factor authentication and security posture checking
US10764263B2 (en) 2016-11-28 2020-09-01 Ssh Communications Security Oyj Authentication of users in a computer network
US10523445B2 (en) 2016-11-28 2019-12-31 Ssh Communications Security Oyj Accessing hosts in a hybrid computer network
US10951421B2 (en) 2016-11-28 2021-03-16 Ssh Communications Security Oyj Accessing hosts in a computer network
EP3545646A4 (en) * 2016-11-29 2019-10-23 Habraken Holdings Llc SAFETY BASED ON A PHYSICAL TOKEN, IMPLEED IN CLOUD
EP3334187B1 (en) * 2016-12-08 2021-03-31 GN Hearing A/S Server devices and methods of remote configuration of a hearing device
CN108234409B (zh) * 2016-12-15 2020-11-27 腾讯科技(深圳)有限公司 身份验证方法与装置
US11089028B1 (en) * 2016-12-21 2021-08-10 Amazon Technologies, Inc. Tokenization federation service
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
US10666644B2 (en) * 2017-02-08 2020-05-26 Revbits, LLC Enterprise key and password management system
US10397006B2 (en) * 2017-02-13 2019-08-27 Amazon Technologies, Inc. Network security with surrogate digital certificates
US11115403B2 (en) 2017-02-21 2021-09-07 Baldev Krishan Multi-level user device authentication system for internet of things (IOT)
US10560476B2 (en) * 2017-02-22 2020-02-11 International Business Machines Corporation Secure data storage system
CN106685998B (zh) * 2017-02-24 2020-02-07 浙江仟和网络科技有限公司 一种基于cas统一认证服务中间件的sso认证方法
US10791119B1 (en) * 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10491588B2 (en) * 2017-03-23 2019-11-26 Baldev Krishan Local and remote access apparatus and system for password storage and management
US10250723B2 (en) * 2017-04-13 2019-04-02 BlueTalon, Inc. Protocol-level identity mapping
US10645078B2 (en) * 2017-05-01 2020-05-05 Microsoft Technology Licensing, Llc Smart card thumb print authentication
CN108881130B (zh) * 2017-05-16 2021-07-30 中国移动通信集团重庆有限公司 会话控制信息的安全控制方法和装置
US11544356B2 (en) * 2017-06-19 2023-01-03 Citrix Systems, Inc. Systems and methods for dynamic flexible authentication in a cloud service
WO2018236420A1 (en) * 2017-06-20 2018-12-27 Google Llc CLOUD EQUIPMENT SECURITY MODULES FOR CRYPTOGRAPHIC EXTERNALIZATION OPERATIONS
US10805284B2 (en) 2017-07-12 2020-10-13 Logmein, Inc. Federated login for password vault
GB2565282B (en) * 2017-08-02 2021-12-22 Vnc Automotive Ltd Remote control of a computing device
US11240240B1 (en) * 2017-08-09 2022-02-01 Sailpoint Technologies, Inc. Identity defined secure connect
US11303633B1 (en) 2017-08-09 2022-04-12 Sailpoint Technologies, Inc. Identity security gateway agent
US11240207B2 (en) 2017-08-11 2022-02-01 L3 Technologies, Inc. Network isolation
US10721222B2 (en) * 2017-08-17 2020-07-21 Citrix Systems, Inc. Extending single-sign-on to relying parties of federated logon providers
US11601467B2 (en) 2017-08-24 2023-03-07 L3 Technologies, Inc. Service provider advanced threat protection
JP2019062284A (ja) * 2017-09-25 2019-04-18 株式会社野村総合研究所 情報処理装置および情報処理方法
US11178104B2 (en) 2017-09-26 2021-11-16 L3 Technologies, Inc. Network isolation with cloud networks
US9948612B1 (en) * 2017-09-27 2018-04-17 Citrix Systems, Inc. Secure single sign on and conditional access for client applications
US11223601B2 (en) 2017-09-28 2022-01-11 L3 Technologies, Inc. Network isolation for collaboration software
US11336619B2 (en) 2017-09-28 2022-05-17 L3 Technologies, Inc. Host process and memory separation
US10931669B2 (en) * 2017-09-28 2021-02-23 L3 Technologies, Inc. Endpoint protection and authentication
US11374906B2 (en) 2017-09-28 2022-06-28 L3 Technologies, Inc. Data exfiltration system and methods
US11184323B2 (en) 2017-09-28 2021-11-23 L3 Technologies, Inc Threat isolation using a plurality of containers
US11552987B2 (en) 2017-09-28 2023-01-10 L3 Technologies, Inc. Systems and methods for command and control protection
US10834081B2 (en) 2017-10-19 2020-11-10 International Business Machines Corporation Secure access management for tools within a secure environment
US11550898B2 (en) 2017-10-23 2023-01-10 L3 Technologies, Inc. Browser application implementing sandbox based internet isolation
US11120125B2 (en) 2017-10-23 2021-09-14 L3 Technologies, Inc. Configurable internet isolation and security for laptops and similar devices
US11170096B2 (en) 2017-10-23 2021-11-09 L3 Technologies, Inc. Configurable internet isolation and security for mobile devices
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US20190182242A1 (en) * 2017-12-11 2019-06-13 Cyberark Software Ltd. Authentication in integrated system environment
US11095638B2 (en) * 2017-12-11 2021-08-17 Ssh Communications Security Oyj Access security in computer networks
FR3076363B1 (fr) * 2017-12-30 2020-01-24 Imprimerie Nationale Procede d'authentification a l'aide d'un terminal mobile utilisant une cle et un certificat stockes sur un support externe
US11831409B2 (en) * 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
US10931667B2 (en) * 2018-01-17 2021-02-23 Baldev Krishan Method and system for performing user authentication
US11070551B2 (en) * 2018-01-18 2021-07-20 Dell Products L.P. System and method for remote access to a personal computer as a service using a remote desktop protocol and windows hello support
US11463426B1 (en) 2018-01-25 2022-10-04 Sailpoint Technologies, Inc. Vaultless authentication
US10824744B2 (en) 2018-02-08 2020-11-03 Cisco Technology, Inc. Secure client-server communication
US10958640B2 (en) * 2018-02-08 2021-03-23 Citrix Systems, Inc. Fast smart card login
US10733329B1 (en) * 2018-04-20 2020-08-04 Automation Anywhere, Inc. Robotic process automation system and method with secure credential vault
KR102545407B1 (ko) * 2018-04-20 2023-06-20 비샬 굽타 분산된 문서 및 엔티티 검증 엔진
EP3776323A1 (en) 2018-04-30 2021-02-17 Google LLC Secure collaboration between processors and processing accelerators in enclaves
CN112005230B (zh) 2018-04-30 2024-05-03 谷歌有限责任公司 通过统一的安全区接口管理安全区创建
EP4155996A1 (en) * 2018-04-30 2023-03-29 Google LLC Enclave interactions
US10887287B2 (en) * 2018-05-11 2021-01-05 Citrix Systems, Inc. Connecting client devices to anonymous sessions via helpers
US11245683B2 (en) * 2018-07-06 2022-02-08 Citrix Systems, Inc. Single-sign-on for third party mobile applications
US11785114B1 (en) * 2018-07-20 2023-10-10 Verisign, Inc. Caching proxy for a digital object architecture
KR102553145B1 (ko) * 2018-07-24 2023-07-07 삼성전자주식회사 디지털 키를 처리 및 인증하는 보안 요소 및 그 동작 방법
US11429753B2 (en) 2018-09-27 2022-08-30 Citrix Systems, Inc. Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications
CN109450872A (zh) * 2018-10-23 2019-03-08 中国联合网络通信集团有限公司 用户身份认证方法、系统、存储介质及电子设备
CN109617858B (zh) * 2018-11-05 2020-04-24 视联动力信息技术股份有限公司 一种流媒体链路的加密方法和装置
US10938846B1 (en) 2018-11-20 2021-03-02 Trend Micro Incorporated Anomalous logon detector for protecting servers of a computer network
US11113370B2 (en) 2018-12-05 2021-09-07 Bank Of America Corporation Processing authentication requests to secured information systems using machine-learned user-account behavior profiles
US11176230B2 (en) 2018-12-05 2021-11-16 Bank Of America Corporation Processing authentication requests to secured information systems based on user behavior profiles
US11036838B2 (en) 2018-12-05 2021-06-15 Bank Of America Corporation Processing authentication requests to secured information systems using machine-learned user-account behavior profiles
US11120109B2 (en) 2018-12-05 2021-09-14 Bank Of America Corporation Processing authentication requests to secured information systems based on machine-learned event profiles
US11159510B2 (en) * 2018-12-05 2021-10-26 Bank Of America Corporation Utilizing federated user identifiers to enable secure information sharing
US11048793B2 (en) 2018-12-05 2021-06-29 Bank Of America Corporation Dynamically generating activity prompts to build and refine machine learning authentication models
US11323431B2 (en) * 2019-01-31 2022-05-03 Citrix Systems, Inc. Secure sign-on using personal authentication tag
US11146961B2 (en) * 2019-03-04 2021-10-12 Jpmorgan Chase Bank, N.A. Third party certificate management for native mobile apps and internet of things apps
US11792024B2 (en) 2019-03-29 2023-10-17 Nok Nok Labs, Inc. System and method for efficient challenge-response authentication
US20220200973A1 (en) * 2019-04-15 2022-06-23 Bear System, LLC Blockchain schema for secure data transmission
US11483143B2 (en) * 2019-04-15 2022-10-25 Smart Security Systems, Llc Enhanced monitoring and protection of enterprise data
CN111835688B (zh) * 2019-04-22 2021-07-30 中国科学院声学研究所 一种基于ssl/tls协议的流量快速转发方法及系统
US11949677B2 (en) * 2019-04-23 2024-04-02 Microsoft Technology Licensing, Llc Resource access based on audio signal
US11876798B2 (en) * 2019-05-20 2024-01-16 Citrix Systems, Inc. Virtual delivery appliance and system with remote authentication and related methods
US11469894B2 (en) 2019-05-20 2022-10-11 Citrix Systems, Inc. Computing system and methods providing session access based upon authentication token with different authentication credentials
US11362943B2 (en) 2019-05-20 2022-06-14 Citrix Systems, Inc. System and method for validating virtual session requests
CA3138221A1 (en) * 2019-05-23 2020-11-26 Citrix Systems, Inc. Secure web application delivery platform
US11381557B2 (en) 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
KR102119257B1 (ko) * 2019-09-24 2020-06-26 프라이빗테크놀로지 주식회사 터널에 기반하여 단말의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
US11611549B2 (en) * 2019-10-03 2023-03-21 Fset Inc System and method of securing access to a secure remote server and database on a mobile device
US11432149B1 (en) 2019-10-10 2022-08-30 Wells Fargo Bank, N.A. Self-sovereign identification via digital credentials for selected identity attributes
US11729160B2 (en) * 2019-10-16 2023-08-15 Nutanix, Inc. System and method for selecting authentication methods for secure transport layer communication
US20210136114A1 (en) * 2019-10-31 2021-05-06 Microsoft Technology Licensing, Llc Instant policy enforcement
US20210334357A1 (en) * 2019-11-27 2021-10-28 Estorm Co., Ltd. Method of managing account login information
US11907356B2 (en) * 2020-01-09 2024-02-20 Arris Enterprises Llc System, method, and computer-readable recording medium of creating, accessing, and recovering a user account with single sign on password hidden authentication
US10986504B1 (en) 2020-03-24 2021-04-20 Appbrilliance, Inc. System architecture for accessing secure data from a mobile device in communication with a remote server
US20230138622A1 (en) * 2020-05-11 2023-05-04 Acxiom Llc Emergency Access Control for Cross-Platform Computing Environment
US20220038502A1 (en) * 2020-07-30 2022-02-03 9287-2621 Québec inc. Method and system for processing authentication requests
CN112153032B (zh) * 2020-09-15 2024-06-14 腾讯云计算(北京)有限责任公司 一种信息处理方法、装置、计算机可读存储介质及系统
US10965665B1 (en) 2020-09-16 2021-03-30 Sailpoint Technologies, Inc Passwordless privilege access
US11777941B2 (en) * 2020-09-30 2023-10-03 Mideye Ab Methods and authentication server for authentication of users requesting access to a restricted data resource using authorized approvers
KR102557946B1 (ko) * 2020-11-23 2023-07-19 주식회사 국민은행 수탁업무 보안 관리 시스템 및 방법
US11509465B2 (en) 2020-11-30 2022-11-22 Citrix Systems, Inc. Computing device and related methods providing virtual session access using group connection leases and user interface (UI) caches
US20220294788A1 (en) * 2021-03-09 2022-09-15 Oracle International Corporation Customizing authentication and handling pre and post authentication in identity cloud service
US20220377060A1 (en) * 2021-05-19 2022-11-24 Microsoft Technology Licensing, Llc Maintaining and recovering secure cloud connections
US11936658B2 (en) 2021-11-15 2024-03-19 Bank Of America Corporation Intelligent assignment of a network resource
US11971974B2 (en) * 2021-12-10 2024-04-30 Konica Minolta Business Solutions U.S.A., Inc. Method and system for mapping a virtual smart card to a plurality of users
EP4235324A1 (de) * 2022-02-24 2023-08-30 Schneider Electric Industries SAS Verfahren zur steuerung einer industriellen anlage

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083537A1 (en) * 2005-08-10 2009-03-26 Riverbed Technology, Inc. Server configuration selection for ssl interception
US7526560B1 (en) * 2000-03-30 2009-04-28 Oracle International Corporation Method and apparatus for sharing a secure connection between a client and multiple server nodes
US20130054751A1 (en) * 2011-08-30 2013-02-28 Qatar Foundation System and Method for Network Connection Adaptation
US20130166456A1 (en) * 2010-09-07 2013-06-27 Zte Corporation System and Method for Remote Payment Based on Mobile Terminal

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327578B1 (en) 1998-12-29 2001-12-04 International Business Machines Corporation Four-party credit/debit payment protocol
US7343351B1 (en) 1999-08-31 2008-03-11 American Express Travel Related Services Company, Inc. Methods and apparatus for conducting electronic transactions
CA2305249A1 (en) 2000-04-14 2001-10-14 Branko Sarcanin Virtual safe
US6993521B2 (en) 2000-06-09 2006-01-31 Northrop Grumman Corporation System and method for arranging digital certificates on a hardware token
JP2003150553A (ja) 2001-11-14 2003-05-23 Nippon Telegr & Teleph Corp <Ntt> 複数のアカウントを用いた認証方法及び装置並びに処理プログラム
JP4304362B2 (ja) 2002-06-25 2009-07-29 日本電気株式会社 Pki対応の証明書確認処理方法及びその装置、並びにpki対応の証明書確認処理プログラム
US20050021526A1 (en) 2002-07-11 2005-01-27 International Business Machines Corporation Method for ensuring the availability of a service proposed by a service provider
US20060005237A1 (en) * 2003-01-30 2006-01-05 Hiroshi Kobata Securing computer network communication using a proxy server
US7644275B2 (en) 2003-04-15 2010-01-05 Microsoft Corporation Pass-thru for client authentication
KR100524049B1 (ko) * 2003-05-12 2005-10-27 박봉주 서버와 클라이언트간의 인증시스템과 그 방법
US20050154889A1 (en) * 2004-01-08 2005-07-14 International Business Machines Corporation Method and system for a flexible lightweight public-key-based mechanism for the GSS protocol
JP3918827B2 (ja) 2004-01-21 2007-05-23 株式会社日立製作所 セキュアリモートアクセスシステム
GB0411861D0 (en) 2004-05-27 2004-06-30 Koninkl Philips Electronics Nv Authentication of applications
GB2415580B (en) 2004-06-24 2006-08-16 Toshiba Res Europ Ltd Network node security analysis method
US7430663B2 (en) 2004-08-09 2008-09-30 Research In Motion Limited System and method for enabling bulk retrieval of certificates
US7591008B2 (en) * 2005-06-30 2009-09-15 Microsoft Corporation Client authentication using multiple user certificates
US8220042B2 (en) * 2005-09-12 2012-07-10 Microsoft Corporation Creating secure interactive connections with remote resources
US8024785B2 (en) 2006-01-16 2011-09-20 International Business Machines Corporation Method and data processing system for intercepting communication between a client and a service
JP4800377B2 (ja) * 2006-02-28 2011-10-26 パナソニック株式会社 認証システム、ce機器、携帯端末、鍵証明発行局および鍵証明取得方法
US20070245414A1 (en) 2006-04-14 2007-10-18 Microsoft Corporation Proxy Authentication and Indirect Certificate Chaining
JP4867482B2 (ja) * 2006-06-06 2012-02-01 富士ゼロックス株式会社 制御プログラムおよび通信システム
US20070283143A1 (en) 2006-06-06 2007-12-06 Kabushiki Kaisha Toshiba System and method for certificate-based client registration via a document processing device
CN101090351B (zh) 2006-06-14 2010-04-21 华为技术有限公司 一种WiMAX网络中功能实体的迁移方法
US20100242102A1 (en) * 2006-06-27 2010-09-23 Microsoft Corporation Biometric credential verification framework
US8341411B2 (en) * 2006-08-16 2012-12-25 Research In Motion Limited Enabling use of a certificate stored in a smart card
US8214635B2 (en) 2006-11-28 2012-07-03 Cisco Technology, Inc. Transparent proxy of encrypted sessions
CA2569355C (en) * 2006-11-29 2014-10-14 Diversinet Corp. System and method for handling permits for user authentication tokens
US20090037729A1 (en) * 2007-08-03 2009-02-05 Lawrence Smith Authentication factors with public-key infrastructure
US7748609B2 (en) 2007-08-31 2010-07-06 Gemalto Inc. System and method for browser based access to smart cards
CN101809584B (zh) * 2007-09-25 2014-01-01 日本电气株式会社 证书生成/分发系统、证书生成/分发方法和证书生成/分发程序
EP2053531B1 (en) * 2007-10-25 2014-07-30 BlackBerry Limited Authentication certificate management for access to a wireless communication device
WO2009074709A1 (en) * 2007-12-10 2009-06-18 Nokia Corporation Authentication arrangement
US8621561B2 (en) 2008-01-04 2013-12-31 Microsoft Corporation Selective authorization based on authentication input attributes
JP5276346B2 (ja) * 2008-03-31 2013-08-28 株式会社エヌ・ティ・ティ・データ 認証サーバ、認証方法、及びそのプログラム
CA2753039C (en) * 2009-02-19 2017-09-05 Securekey Technologies Inc. System and methods for online authentication
US8639922B2 (en) * 2009-06-01 2014-01-28 Dhananjay S. Phatak System, method, and apparata for secure communications using an electrical grid network
JP5315137B2 (ja) * 2009-06-11 2013-10-16 株式会社エヌ・ティ・ティ・データ 認証システム、認証方法、読取装置およびプログラム
US8850554B2 (en) 2010-02-17 2014-09-30 Nokia Corporation Method and apparatus for providing an authentication context-based session
US20110202989A1 (en) 2010-02-18 2011-08-18 Nokia Corporation Method and apparatus for providing authentication session sharing
US8353019B2 (en) 2010-03-26 2013-01-08 Canon Kabushiki Kaisha Security token destined for multiple or group of service providers
WO2011128183A2 (en) 2010-04-13 2011-10-20 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for interworking with single sign-on authentication architecture
US20130117831A1 (en) * 2010-04-30 2013-05-09 Lock Box Pty Ltd Method and system for enabling computer access
US8997196B2 (en) 2010-06-14 2015-03-31 Microsoft Corporation Flexible end-point compliance and strong authentication for distributed hybrid enterprises
DE102010030590A1 (de) * 2010-06-28 2011-12-29 Bundesdruckerei Gmbh Verfahren zur Erzeugung eines Zertifikats
FR2969879A1 (fr) * 2010-12-23 2012-06-29 France Telecom Acces anonyme a un service au moyen de certificats agreges
CN102546570B (zh) 2010-12-31 2014-12-24 国际商业机器公司 用于单点登录的处理方法和系统
WO2012140477A1 (en) 2011-04-15 2012-10-18 Nokia Corporation Method and apparatus for providing secret delegation
US9111086B2 (en) 2011-04-18 2015-08-18 Sap Se Secure management of user rights during accessing of external systems
US8630989B2 (en) 2011-05-27 2014-01-14 International Business Machines Corporation Systems and methods for information extraction using contextual pattern discovery
US8950002B2 (en) 2011-08-15 2015-02-03 Bank Of America Corporation Method and apparatus for token-based access of related resources
US9361443B2 (en) 2011-08-15 2016-06-07 Bank Of America Corporation Method and apparatus for token-based combining of authentication methods
US8806602B2 (en) 2011-08-15 2014-08-12 Bank Of America Corporation Apparatus and method for performing end-to-end encryption
US8789162B2 (en) 2011-08-15 2014-07-22 Bank Of America Corporation Method and apparatus for making token-based access decisions
US8539558B2 (en) 2011-08-15 2013-09-17 Bank Of America Corporation Method and apparatus for token-based token termination
US8572683B2 (en) 2011-08-15 2013-10-29 Bank Of America Corporation Method and apparatus for token-based re-authentication
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
JP5197843B1 (ja) 2011-12-27 2013-05-15 株式会社東芝 認証連携システムおよびidプロバイダ装置
US8966268B2 (en) 2011-12-30 2015-02-24 Vasco Data Security, Inc. Strong authentication token with visual output of PKI signatures
US8707405B2 (en) 2012-01-11 2014-04-22 International Business Machines Corporation Refreshing group membership information for a user identifier associated with a security context
US20130185567A1 (en) * 2012-01-13 2013-07-18 Greg Salyards Method or process for securing computers or mobile computer devices with a contact or dual-interface smart card
US9491620B2 (en) * 2012-02-10 2016-11-08 Qualcomm Incorporated Enabling secure access to a discovered location server for a mobile device
US8955041B2 (en) 2012-02-17 2015-02-10 Kabushiki Kaisha Toshiba Authentication collaboration system, ID provider device, and program
US20130275282A1 (en) 2012-04-17 2013-10-17 Microsoft Corporation Anonymous billing
US8935769B2 (en) 2012-09-28 2015-01-13 Liveensure, Inc. Method for mobile security via multi-factor context authentication
WO2014120183A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Synchronization of security-related data
US9154488B2 (en) 2013-05-03 2015-10-06 Citrix Systems, Inc. Secured access to resources using a proxy

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526560B1 (en) * 2000-03-30 2009-04-28 Oracle International Corporation Method and apparatus for sharing a secure connection between a client and multiple server nodes
US20090083537A1 (en) * 2005-08-10 2009-03-26 Riverbed Technology, Inc. Server configuration selection for ssl interception
US20130166456A1 (en) * 2010-09-07 2013-06-27 Zte Corporation System and Method for Remote Payment Based on Mobile Terminal
US20130054751A1 (en) * 2011-08-30 2013-02-28 Qatar Foundation System and Method for Network Connection Adaptation

Also Published As

Publication number Publication date
US10021088B2 (en) 2018-07-10
EP3770781B1 (en) 2022-06-08
US10122703B2 (en) 2018-11-06
EP3201816A1 (en) 2017-08-09
JP2017535843A (ja) 2017-11-30
US20160094546A1 (en) 2016-03-31
JP6526181B2 (ja) 2019-06-05
EP3770781A1 (en) 2021-01-27
EP3201816B1 (en) 2022-09-07
KR102036758B1 (ko) 2019-10-28
WO2016054149A1 (en) 2016-04-07
US20160094543A1 (en) 2016-03-31

Similar Documents

Publication Publication Date Title
US11695757B2 (en) Fast smart card login
US11641361B2 (en) Dynamic access control to network resources using federated full domain logon
KR102036758B1 (ko) 빠른 스마트 카드 로그온 및 연합된 풀 도메인 로그온
JP6731023B2 (ja) クライアントアプリケーションのためのセキュアなシングルサインオン及び条件付きアクセス
KR101722631B1 (ko) 프록시를 사용하여 자원들에의 보안 액세스
JP6539357B2 (ja) ハイブリッドクラウドサービスのためのパスワードの暗号化
JP6222592B2 (ja) モバイルアプリケーション管理のためのモバイルアプリケーションのアイデンティティの検証
US20220094547A1 (en) Enhanced token transfer
JP2021535521A (ja) 仮想デスクトップでのローカルマップアカウント

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