KR102289713B1 - 클라이언트 자격 증명 인증 방법 및 장치 - Google Patents

클라이언트 자격 증명 인증 방법 및 장치 Download PDF

Info

Publication number
KR102289713B1
KR102289713B1 KR1020150022731A KR20150022731A KR102289713B1 KR 102289713 B1 KR102289713 B1 KR 102289713B1 KR 1020150022731 A KR1020150022731 A KR 1020150022731A KR 20150022731 A KR20150022731 A KR 20150022731A KR 102289713 B1 KR102289713 B1 KR 102289713B1
Authority
KR
South Korea
Prior art keywords
electronic device
certificate
client
key
delete delete
Prior art date
Application number
KR1020150022731A
Other languages
English (en)
Other versions
KR20150099441A (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 삼성전자주식회사
Priority to EP15751512.3A priority Critical patent/EP3108613B1/en
Priority to PCT/KR2015/001589 priority patent/WO2015126136A1/en
Priority to CN201580009833.7A priority patent/CN106031087B/zh
Publication of KR20150099441A publication Critical patent/KR20150099441A/ko
Application granted granted Critical
Publication of KR102289713B1 publication Critical patent/KR102289713B1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/321Cryptographic 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 a third party or a trusted authority
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • 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
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets

Abstract

전자 장치에 인증 정보를 저장하기 위한 장치 및 방법을 제공한다. 상기 방법은 전자 장치에 의해, 고유 키 및 이 고유 키와 일치하는 인증서를 전자 장치의 보안 환경에서 수신하는 단계와, 상기 전자 장치의 안전환 환경에 고유 키 및 이 고유 키와 일치하는 인증서를 저장하는 단계를 포함하고, 상기 고유 키 및 고유 키에 일치하는 상기 인증서 중 적어도 하나는 전자 장치를 식별한다.

Description

클라이언트 자격 증명 인증 방법 및 장치{METHOD AND APPARATUS FOR AUTHENTICATING CLIENT CREDENTIALS}
본 개시는 전자 장치의 보안 영역(secure area)에 클라이언트 자격 증명(client credentials)를 생성 및/또는 저장하기 위한 장치 및 방법에 관한 것이다. 또한, 본 발명은 장치에서 결코 떨어질 일이 없는 개인 키(private key)에 의해 보증되는 클라이언트 인증 자격 증명(client authenticating credentials)을 생성하기 위한 장치 및 방법에 관한 것이다. 또한, 본 개시는 하드웨어 인증서(hardware certificate)를 사용하여 클라이언트 자격 증명을 생성 및/또는 인증하기 위한 장치 및 방법에 관한 것이다.
네트워크 및/또는 애플리케이션에 대한 악의적인 공격률이 증가한 결과, 현재의 개발은 네트워크 및/또는 애플리케이션의 보안(security)을 향상시키는 것에 초점을 맞추고 있다. 네트워크 및/또는 애플리케이션의 보안의 일환으로서, 사용자 또는 디바이스가 네트워크 및/또는 애플리케이션에 의해 보호된 특정 자원들(certain resources)에 액세스가 허가되기 전에 사용자 또는 디바이스는 네트워크 및/또는 애플리케이션을 이용하여 인증되어야 한다.
위의 정보는 단지 본 개시의 이해를 돕기 위한 배경 정보로서만 제시된다. 위의 정보 중 어떤 것이 본 개시에 관해서 선행 기술로서 적용 가능한지 여부에 관해서는 어떠한 결정도 그리고 어떠한 주장도 하지 않는다.
본 개시의 양태들은 적어도 위에서 언급한 문제들 및/또는 결점들에 대처하기 위해서, 이하에서 설명하는 최소한의 장점을 제공하기 위한 것이다. 따라서, 본 개시의 일 양태는 전자 장치에서 클라이언트 자격 증명을 생성하기 위한 장치 및 방법을 제공하는 데 있다. 본 개시의 다른 양태는 전자 장치에 저장된 자격 증명(credentials)을 사용하여 사용자를 인증하기 위한 장치 및 방법을 제공하는 것에 있다.
본 개시의 일 양태에 따르면, 전자 장치가 제공된다. 전자 장치는 보안 환경(secure environment)을 포함하고, 상기 보안 환경은 고유 키(unique key) 및 상기 고유 키에 일치하는 인증서(certificate)를 포함하고, 상기 고유 키 및 상기 고유 키에 일치하는 상기 인증서 중 적어도 하나가 전자 장치를 식별한다.
본 개시의 다른 양태에 따르면, 전자 장치에 인증 정보를 저장하기 위한 방법이 제공된다. 이 방법은 전자 장치에 의해, 상기 전자 장치의 보안 환경에서 고유 키 및 상기 고유 키와 일치하는 인증서를 수신하는 단계와, 상기 고유 키 및 상기 고유 키에 일치하는 인증서를 상기 전자 장치의 보안 환경에 저장하는 단계를 포함하고, 상기 고유 키 및 고유 키에 일치하는 상기 인증서 중 적어도 하나가 전자 장치를 식별한다.
본 개시의 다른 양태에 따르면, 클라이언트 전자 장치에 클라이언트 인증서를 설치(install)하기 위한 방법이 제공된다. 이 방법은 클라이언트 전자 장치에서 실행중인 인증 애플리케이션에 의해, 서버로부터 클라이언트 인증서 및 키 중 적어도 하나에 대한 요청을 수신하는 단계; 상기 인증 애플리케이션에 의해, 클라이언트 인증서 및 키 중 적어도 하나를 생성하는 단계; 상기 클라이언트 전자 장치에 의해, 상기 생성된 클라이언트 인증서 및 상기 생성된 키 중 적어도 하나를 서버로 통신하는 단계; 상기 인증 애플리케이션에 의해, 클라이언트 인증서 및 키 수신 시 이들 중 적어도 하나에 서명하는 서버로부터 상기 서명된 클라이언트 인증서 및 키 중 적어도 하나를 수신하는 단계; 및 상기 인증 애플리케이션에 의해, 상기 서명된 클라이언트 인증서 및 상기 키 중 적어도 하나를 설치하는 단계를 포함한다.
본 개시의 다른 양태, 이점, 및 특징은 첨부한 도면과 아울러, 본 개시의 여러 실시예들을 개시하는 이하의 상세한 설명으로부터 당업자에게 분명해질 것이다.
상기의 그리고 다른 양태, 특징, 및 본 개시의 여러 실시예들의 이점은 첨부 도면들을 참조로 한 이후의 설명으로부터 본 발명의 실시예들을 보다 잘 이해하게 될 것이다. 첨부 도면들 중에서,
도 1은 본 개시의 여러 실시예들에 따른 전자 장치를 포함하는 네트워크 환경을 도시하고;
도 2는 본 개시의 여러 실시예들에 따른 보안 모듈의 블럭도를 도시하고;
도 3a는 클라이언트 전자 장치의 사용자 인증을 위한 절차를 도시하고;
도 3b는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시하고;
도 4a는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 플로차트(flow chart)를 도시하고;
도 4b는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시하고;
도 4c는 본 개시의 여러 실시예들에 따른 인증 토큰(authentication tokens)의 조직을 도시하고;
도 4d는 본 개시의 여러 실시예들에 따른 암호화/해독 프로토콜 애플리케이션 프로그래밍 인터페이스(API)의 콜 시퀀스(call sequence)의 예를 도시하고;
도 5a는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 플로차트를 도시하고;
도 5b는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시하고;
도6a 및 도6b는 본 개시의 여러 실시예들에 따른 인증 절차를 위한 상태도를 도시하고;
도 7a는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 플로차트를 도시하고;
도 7b는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시하고;
도 7c는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 플로차트를 도시하고;
도 7d는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시하고;
도 7e는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 플로차트를 도시하고;
도 7f는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시하고;
도 8은 본 개시의 여러 실시예들에 따른 하드웨어의 블럭도를 도시한다.
도면 전반에 걸쳐, 유사한 도면 부호들이 동일 또는 유사한 요소, 특징, 및 구조를 나타내기 위해서 사용되고 있음에 유의해야 한다.
본 개시의 여러 양태들의 상세한 설명은 첨부 도면을 참조해 설명한다. 설명은 예들로서만 기재된 것이고, 본 개시의 범위를 한정하는 것은 아니다.
첨부의 도면을 참조하는 상세한 설명은 특허청구의 범위 및 그러한 균등물에 의해서 정의되는 본 개시의 여러 실시예들의 포괄적인 이해를 돕기 위해서 제공된다. 상세한 설명은 이해를 돕기 위한 여러가지 특정의 상세를 포함하지만, 이것들은 단순한 예시라고 보아야 할 것이다. 따라서, 당업자는 본 명세서에 기재의 실시예들의 여러가지 변경 및 수정이 본 개시의 범위 및 사상을 벗어나지 않아야 됨을 알 것이다. 또한, 공지된 기능 및 구성에 관한 구체적인 설명은 명료성과 간결성을 위해서 생략한다.
이하의 설명 및 특허 청구의 범위에서 사용되는 용어 및 단어는 사전적 의미로 한정되는 것이 아니고, 단지 본 개시를 명확하고 일관하게 이해할 수 있게 하기 위함이다. 따라서, 본 개시의 여러 실시예들의 이하의 설명은 첨부된 특허청구의 범위 및 그 균등물에 의해서 정의되는 개시를 한정하려는 목적이 아니라 단지 예시적인 목적을 위해 제공되는 것에 지나지 않음은 당업자에게 분명하다.
또, "a," "an," 및 "the"는 문맥이 지시하는 대상이 명백하지 않는 한 복수의 지시 대상을 포함함을 알 것이다. 따라서, 예를 들면, "a component surface"에 대한 언급은 1개 또는 복수의 표면에 대한 언급을 포함한다.
「실질적으로」이라는 용어는, 인용된 특성, 파라미터, 또는 값이 정확하게 달성될 필요가 없는 것을 의미하고 있지만, 예를 들어, 허용 오차(tolerance), 측정 오차, 측정 정확도 한계 및 당업자에 알려져 있는 다른 요인들을 포함하는 편차 또는 변동은 제공되기로 의도된 특성에 영향을 미치는 것을 방해하지 않는 범위에서 발생할 수 있다.
본 개시에서 사용되는 용어들은 본 개시의 여러 실시예들을 설명하기 위해서 사용되고 본 개시를 한정하려는 의도는 아니다. 단수형의 용어는 문맥이 복수형으로 의도되어 있지 않음을 명확하게 하지 않는 한 복수형도 포함하는 것으로 의도된다.
달리 정의되지 않는 이상, 기술적 또는 과학적인 용어를 포함하는 본 개시에서 사용되는 모든 용어는 당업자에 의해서 일반적으로 이해되는 의미를 가진다. 사전에 정의할 수 있는 통상의 용어는 그 문맥과 일치하는 의미를 가짐을 알 수 있고, 본 개시에 분명하게 정의되지 않는 이상 과도하게 이상적인 또는 형식적인 것으로 해석되어서는 안된다.
본 개시의 여러 실시예들에 따르면, 전자 장치는 통신 기능을 포함할 수 있다. 예를 들면, 전자 장치는 스마트 폰, 테블릿 퍼스널 컴퓨터(PC), 휴대 전화, 화상 전화, 전자북 리더, 데스크 탑 PC, 노트북 PC, 넷 북 PC, 퍼스널 디지털 단말기(PDA), 휴대용 멀티미디어 플레이어(PMP), MP3 플레이어, 휴대용 의료기기, 카메라, 웨어러블 디바이스 (예를 들면, 헤드 마운트 장치(HMD), 전자옷, 전자 브레이스(electronic braces), 전자 목걸이, 전자 액세서리, 전자 문신, 또는 스마트 손목시계), 및/또는 등일 수 있다.
본 개시의 여러 실시예들에 따르면, 전자 장치는 통신 기능을 갖춘 스마트 가전일 수 있다. 스마트 가전, 예를 들면, 텔레비전, 디지털 비디오 디스크(DVD) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자렌지, 세탁기, 건조기, 공기 청정기, 셋탑 박스, TV박스 (예를 들면, 삼성 HomeSyncTM, 애플 TVTM, 또는 구글 TVTM), 게임 콘솔, 전자 사전, 전자 키, 비디오 카메라, 전자 사진 프레임, 및/또는 등일 수 있다.
본 개시의 여러 실시예들에 따르면, 전자 장치는 의료 장치 (예를 들면, 자기 공명 혈관 조영상(MRA) 장치, 자기 공명 영상(MRI) 장치, 컴퓨터 단층 촬영(CT) 장치, 촬상 장치, 또는 초음파 장치), 네비게이션 장치, 위성 위치 확인 시스템(GPS) 수신기, 이벤트 데이터 레코더(EDR), 플라이트 데이터 레코더(FDR), 자동차 인포테이먼트 기기(automotive infotainment device), 해군 전자 장치 (예를 들면, 해상 네비게이션 장치, 자이로스코프, 또는 나침반), 항공 전자 장치, 보안 장치, 산업용 또는 소비자 로봇, 및/또는 등일 수 있다.
본 개시의 여러 실시예들에 따르면, 전자 장치는 가구, 건물/구조의 일부, 전자 기판, 전자 서명 수신 장치, 프로젝터, 각종 계측 장치 (예를 들면, 물, 전기, 가스, 또는 전자파 측정 장치), 및/또는 통신 기능을 포함한 것들일 수 있다.
본 개시의 여러 실시예들에 따르면, 전자 장치는 전술의 장치의 임의의 조합일 수 있다. 또한, 본 개시의 여러 실시예들에 따른 전자 장치가 전술한 장치에 한정되는 것이 아님은 당업자에게는 분명할 것이다.
관련 기술에 따르면, 네트워크 및/또는 애플리케이션의 보안을 향상시키기 위해, 사용자 또는 디바이스를 인증하기 위한 방법은 인증 프로세스를 지원하기 위해 스마트 카드 또는 공통 액세스 카드(CAC)를 사용한다. 스마트 카드 또는 CAC는 네트워크 및/또는 애플리케이션에 의해서 보호된 특정의 자원으로의 액세스를 허가하기 전에 확인할 수 있는 신뢰된 자격 증명(trusted credentials)를 제공한다. 예를 들면, 스마트 카드 또는 CAC는 다양한 인증을 위해서 공용 키(public key)에 관련해 사용하게 될 개인 키(private key)를 저장할 수 있다.
스마트 카드는 집적회로와 일체화한 물리적인 카드이다. 일반적으로, 스마트 카드는 공용 키 기반(PKI)을 사용하고 여기서 스마트 카드에 실장된 집적 회로 칩(ICC)은 PKI 제공자(provider)로부터 발행된 암호화된 디지털 인증서를 저장한다. 스마트 카드는 또한 변형 방지(tamper resistant) 기술이 구비되어 있다.
CAC는 일반적으로 추가의 보안 기능을 갖춘 스마트 카드의 서브세트이다. 예를 들면, CAC는 시각적 식별(예를 들어, 소유자의 사진), 자기 스트라이프(magnetic stripe), ICC, 바코드, 무선 주파수 식별(RFID) 기술을 포함할 수 있다.
사용자를 인증하기 위한 스마트 카드 또는 CAC을 사용하는 네트워크 및/또는 애플리케이션에 의해서 보호되는 자원들에 액세스하기 위해, 사용자가 네트워크 및/또는 애플리케이션에 액세스 하려고 사용하는 클라이언트 전자 장치가, 적합한 인증서를 수신 (예를 들면, 추출)하고자 해당(applicable) 스마트 카드 또는 CAC와 통신하도록 요청받을 수 있거나 아니면 스마트 카드 또는 CAC에 저장되어 있는 개인 키를 인증용으로 사용함으로써 스마트 카드 또는 CAC의 ID를 식별하도록 요청받을 수 있다. 사용자는 일반적으로 해당 스마트 카드 또는 CAC (예를 들어, 클라이언트 전자 장치를 구비한, 이것은 기업이 발행한 전자 장치일 수 있음)를 휴대할 필요가 있으므로, 이러한 인증 메카니즘은 사용자에게 있어서 불편할 수 있다. 또한, 이러한 인증 메커니즘은 네트워크 및/또는 애플리케이션에 의해 보호된 자원들에 사용자가 액세스하기 위해 기업이 스마트 카드 또는 CAC을 발행하도록 요구할 수 있다. 기업은 또한, 네트워크에 의해서 보호된 자원들에 액세스 하기 위해서 사용자가 사용할 수 있는 기업 발행 전자 장치를 발행해야 할 수 있다.
본 개시의 여러 실시예들은 스마트 카드, CAC, 관련 카드 리더, 및/또는 유사한 것 없이도 클라이언트 자격 증명을 인증하기 위한 장치, 방법, 및 시스템을 포함한다.
본 개시의 여러 실시예들은 클라이언트 전자 장치가 손상되었는지(compromised) 여부를 판단해야 하는 서버 및/또는 애플리케이션 없이 클라이언트 자격 증명을 인증하기 위한 장치, 방법, 및 시스템을 포함한다. 예를 들면, 본 개시의 여러 실시예들은 운영 시스템(OS) 및/또는 프레임워크가 보안에 취약한 결과 손상되었는지 여부를 결정해야 하는 서버 및/또는 애플리케이션 없이, 클라이언트 자격 증명을 인증하기 위한 장치 및 방법을 포함한다.
본 개시의 여러 실시예들은 클라이언트 전자 장치의 안전한 구역 (예를 들면, ARM TrustZone)에서 인증서 서명 요청을 생성하는 클라이언트 전자 장치의 클라이언트 자격 증명을 인증하기 위한 장치, 방법, 및 시스템을 포함한다. 이러한 구역을 보안 영역(secure zone)이라고 부를 수 있다. 본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 개인 키를 생성할 수 있고, 클라이언트 전자 장치는 개인 키가 클라이언트 전자 장치의 보안 영역을 벗어나지 않는 것을 확실히 하도록 구성할 수 있다.
본 개시의 여러 실시예들에 따르면, 클라이언트 자격 증명 (예를 들면, 사용자 특정 및/또는 애플리케이션 특정 자격 증명)은 하이 엔트로피 하드웨어 지원 키 생성기(high entropy hardware backed key generator)를 이용하여 전자 장치의 보안 영역 (예를 들면, SEE)에서 생성될 수 있다. 클라이언트 자격 증명은 전자 장치에서 랜덤하게 생성될 수 있다.
본 개시의 여러 실시예들은 클라이언트 전자 장치의 보안 영역에 클라이언트 자격 증명을 저장하기 위한 장치, 방법, 및 시스템을 포함한다. 예를 들면, 스마트 카드가 PKI 제공자로부터 발행된 암호화된 디지털 인증서를 저장하는 관련 기술과는 대조적으로, 본 개시의 여러 실시예들은 클라이언트 전자 장치의 보안 영역 내에 암호화된 디지털 인증서를 저장하기 위한 장치, 방법, 및 시스템을 포함할 수 있다. 클라이언트 전자 장치의 보안 영역은 하나 이상의 개인 키 및/또는 인증서를 저장할 수 있다.
본 개시의 여러 실시예들은 표준 암호화 모듈(standard cryptographic module)을 사용하여 클라이언트 자격 증명을 인증하기 위한 장치 및 방법을 포함한다. 예를 들면, 장치 및 방법은 클라이언트 자격 증명을 인증하기 위한 공용 키 암호 표준 11(PKCS11)을 사용하도록 구성될 수 있다. 이 장치 및 방법은 인증을 제공하기 위한 PKCS11 애플리케이션 프로그래밍 인터페이스(API)를 사용할 수 있다. 인증용 스마트 카드를 사용하는 네트워크 및/또는 애플리케이션은 일반적으로 PKCS11 API를 사용하기 때문에, 본 개시의 여러 실시예들에 따른 장치 및 방법은 기존의 시스템과 원활하게 통합할 수 있다.
본 개시의 여러 실시예들에 따르면, 비보안 영역(non-secure zone) (예를 들면, 정상 실행 환경(NEE))은 PKCS11 또는 유사한 프로토콜을 사용하여 보안 영역 (예를 들면, SEE)에 통신할 수 있다.
본 개시의 여러 실시예들에 따르면, 고유 자격 증명(unique credentials)은 전자 장치 (예를 들면, 클라이언트 전자 장치)에 설치될 수 있다. 예를 들면, 고유 자격 증명은 전자 장치의 보안 영역 (예를 들면, 특별한 안전한 실행 환경(SEE))에 설치될 수 있다. 고유 자격 증명은 전자 장치의 제조 동안에 설치될 수 있다. 고유의 자격 증명은 고유 키 및 대응하는 인증서를 포함할 수 있다. 고유 자격 증명은 보안 영역 (예를 들면, SEE) 내에서만 액세스 가능할 수 있다. 예를 들면, 고유 자격 증명은 보안 영역 (예를 들면, SEE) 내의 애플리케이션 (예를 들면, SEE 애플리케이션)에 의해서만 액세스 가능할 수 있다. 고유 자격 증명은 전자 장치를 식별하는 데이터를 포함할 수 있다. 예를 들면, 고유 자격 증명 인증서(certificate of the unique credentials)는 전자 장치를 식별하는 데이터를 포함할 수 있다. 데이터는 인간이 판독가능하거나 및/또는 기계 판독가능한 것일 수 있다. 본 개시의 여러 실시예들에 따르면, 루트 인증 기관(root certification authority)은 전자 장치의 제조자 일 수 있다.
본 개시의 여러 실시예들에 따르면, 제조업자를 신뢰하는 원격 기업 또는 정부의 정보 기술(IT) 관리 시스템이 암호화 증거에 기반하여 디바이스를 신뢰가능하게 식별할 수 있다.
본 개시의 여러 실시예들에 따르면, SEE 런-타임 측정에 의해 펌 웨어가 변경되어 있지 않음을 확인함으로써 신뢰 및 신뢰도(trust and reliability)를 강화할 수 있다. 예를 들면, SEE는 전자 장치가 손상 안된 상태(uncompromised state)에 있음을 보증할 수 있다. 특히, SEE는 SEE가 인증 서비스를 실행하는 경우 전자 장치가 손상 안된 상태임을 보증할 수 있다.
본 개시의 여러 실시예들에 따르면, 기업 (예를 들면, 기업 네트워크) 등의 디바이스 관리자가 전자 장치 (예를 들면, 클라이언트 전자 장치) 또는 그 사용자에 대한 자격 증명을 작성 (예를 들어, 생성)할 수 있다. 예를 들어, 전자 장치가 기업에 의해 식별된 다음, 기업은 전자 장치에 대한 사용자 특정 및/또는 애플리케이션 특정 자격 증명을 작성할 수 있다. 사용자 특정 및/또는 애플리케이션 특정 자격 증명은 전자 장치의 보안 영역 (예를 들면, SEE)에서 안전하게 저장 (예를 들면, 설치)될 수 있다.
본 개시의 여러 실시예들에 따르면, 자격 증명 (예를 들면, 인증서)은 외부 인증 기관(CA)에 의해서 서명되고 확립된 프로토콜 ((예를 들면, 단순한 인증서 등록 프로토콜(SCEP), 인증서 관리 프로토콜(CMP), CMS에 대한 인증서 관리(CMC), 및/또는 등)을 사용하여 안전하게 비준될 수 있다.
본 개시의 여러 실시예들에 따르면, 보안 영역 (예를 들면, SEE)에 저장된 (예를 들어, 설치된) 자격 증명이 SEE에서 해제되는 일은 없을 것이다. 보안 영역 (예를 들면, SEE)은 그 내부에 저장된 자격 증명이 보안 영역 (예를 들면, SEE) 외부에 있는 엔티티 (예를 들면, 애플리케이션, 전자 장치, 및/또는 등)로 통신되는 것을 막을 수 있다.
본 개시의 여러 실시예들에 따르면, 자격 증명은 전자 장치의 보안 영역 (예를 들면, SEE)으로 안전하게 전달될 수 있다. 예를 들어, 사용자 자격 증명, 애플리케이션 자격 증명, 및/또는 등은 신뢰된 사용자 인터페이스(Trusted User Interface: TUI)를 이용하여 전자 장치의 보안 영역 (예를 들면, SEE)에 안전하게 전달될 수 있다.
본 개시의 여러 실시예들에 따르면, 패스워드는 자격 증명에 대한 간접적인 액세스를 제어함으로써 보안 영역 (예를 들면, SEE)에 안전하게 전송 (예를 들면, 통신)될 수 있다. 예를 들어, PKCS11 패스워드는 내부에 저장된 개인 키에 간접적인 액세스를 제어하는 보안 영역 (예를 들면, SEE)에 안전하게 전송될 수 있다.
본 개시의 여러 실시예들에 따르면, 키로거 공격(key logger attack)이 저지될 수 있고 실패한 로그인 시도를 확실히 기록할 수 있다. 예를 들어, 신뢰된 사용자 인터페이스는 자격 증명에 액세스 하기 위해서 사용된다. 자격 증명을 액세스 하기 위해서, 패스워드가 필요할 수 있다. 따라서, 자격 증명이 안전한 상태임을 확실히 하기 위해서, 신뢰된 사용자 인터페이스가 특히, 자격 증명 액세스에 관련하여 패스워드, 및/또는 등의 키로깅을 방지할 수 있다.
본 개시의 여러 실시예들에 따르면, 자격 증명은 전자 장치 간에 전송불가일 수도 있다. 예를 들면, 키 (예를 들면, 개인 키) 및 인증서는 전자 장치로부터 전자 장치로 전송불가이다. 키 (예를 들면, 개인 키) 및 대응하는 인증서는 디바이스에 고유한 것일 수 있다. 본 개시의 여러 실시예들에 따르면, 암호 데이터(cryptographic data)는 디바이스 고유의 암호화를 사용하여 보호될 수 있다. 암호 데이터는 보안이 높은 스토리지 (예를 들면, 보안 요소(SE))에서 보호될 수 있다. 보안이 높은 스토리지에 암호 데이터를 저장하면 이 암호 데이터가 하드웨어 기반 공격에 대해 잘 견딜 수 있게 된다.
도 1은 본 개시의 여러 실시예들에 따른 전자 장치를 포함하는 네트워크 환경을 도시한다.
도 1을 참조하면, 네트워크 환경(100)은 전자 장치(101) (예를 들면, 클라이언트 전자 장치)를 포함한다. 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입력/출력(I/O) 인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 보안 모듈(170), 및/또는 등을 포함할 수 있다.
버스(110)는 전술한 구성 요소들을 접속하고 전술의 구성 요소간의 통신을 가능하게 하는 회로일 수 있다. 예를 들면, 버스(110)는 상기 접속된 구성 요소들간에 제어 메시지 및/또는 다른 정보가 통신가능하도록 전자 장치(101)의 구성요소들을 접속할 수 있다.
프로세서(120)는 예를 들면, 다른 구성 요소들 (예를 들면, 메모리(130), I/O인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 보안 모듈(170), 및/또는 등)로부터의 명령을 수신할 수 있고, 수신된 명령을 해석할 수 있고, 해석된 명령에 따라 계산 또는 데이터 처리를 실행할 수 있다.
메모리(130)는 예를 들면, 다른 구성 요소들 (예를 들면, 메모리(130), I/O인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 보안 모듈(170), 및/또는 등)으로부터 수신되고 생성된 명령들 및/또는 데이터를 저장할 수 있다. 예를 들면, 메모리(130)는 커널(kernel)(131), 미들웨어(132), 애플리케이션 프로그래밍 인터페이스(API)(133), 애플리케이션(134) 등의 프로그래밍 모듈을 포함할 수 있다. 전술의 프로그래밍 모듈의 각각은 소프트웨어, 펌 웨어, 또는 하드웨어 중 적어도 2개의 조합을 포함할 수 있다.
커널(131)은 예를 들어, 미들웨어(132)), API(133), 애플리케이션(134), 및/또는 등 다른 프로그램 모듈에서 구현되는 기능들 또는 동작들을 실행시키는데 사용될 수 있는 시스템 리소스 (예를 들어, 버스(110), 프로세서(120), 메모리(130) 등)를 제어 또는 관리할 수 있다. 커널(131)은 미들웨어(132)), AP(I133), 애플리케이션(134), 및/또는 등이 전자 장치(101)의 개개의 구성요소에 액세스 하는 것을 허가 또는 용이하게 하기 위한 인터페이스를 제공할 수 있다.
미들웨어(132)는 그것을 통해 커널(131)이 API(133), 애플리케이션(134), 및/또는 등과 통신하여 데이터를 송수신 할 수 있게 하는 매체일 수 있다. 미들웨어(132)는 하나 이상의 애플리케이션(134)에 의해 작업 요청을 제어할 수 있다 (예를 들면, 스케줄링, 로드 밸런싱, 및/또는 등). 예를 들면, 미들웨어(132)는 전자 장치(101)의 시스템 리소스 (예를 들면, 버스(110), 프로세서(120), 메모리(130), 및/또는 등)을 이용하기 위한 우선 순위를 할당함으로써 하나 이상의 애플리케이션(134)에 의한 작업 요청을 제어할 수 있다.
API(133)는 애플리케이션(134)이 커널(131), 미들웨어(132), 및/또는 등에서 제공할 수 있는 가능들을 제어할 수 있는 인터페이스일 수 있다. 예를 들면, API(133)는 적어도 인터페이스 또는 파일 제어, 윈도우 제어, 비디오 처리, 문자 제어 등을 위한 기능 (예를 들면, 명령)을 포함할 수 있다.
본 개시의 여러 실시예들에 따르면, 애플리케이션(134)은 문자 서비스(SMS) 애플리케이션, 멀티미디어 메시징 서비스(MMS) 애플리케이션, 전자 메일 애플리케이션, 캘린더 애플리케이션, 알람 애플리케이션, 헬스케어 애플리케이션 (예를 들면, 운동량 애플리케이션, 혈당치 측정 애플리케이션 등), 환경 정보 애플리케이션 (예를 들면, 대기압, 습도, 온도 정보 등을 제공할 수 있는 애플리케이션), 인스턴트 메시징 애플리케이션, 콜 애플리케이션, 인터넷 브라우징 애플리케이션, 게임 애플리케이션, 미디어 재생 애플리케이션, 화상/비디오 캡쳐 애플리케이션, 파일 관리 애플리케이션 등을 포함할 수 있다. 그리고 또는 그에 대안적으로, 애플리케이션(134)은 전자 장치(101)와 외부 전자 장치 (예를 들면, 전자 장치(104))와의 사이의 정보 교환과 연관되는 애플리케이션일 수 있다. 일례로서, 정보 교환과 연관되는 애플리케이션(134)은 정보의 특정의 타입, 외부의 전자 장치를 관리할 수 있는 디바이스 관리 애플리케이션 등을 제공할 수 있는 통지 중계 애플리케이션(notification relay application)을 포함할 수 있다.
일례로서, 통지 중계 애플리케이션은 전자 장치(101) (예를 들면, SMS/MMS 애플리케이션, 전자 메일 애플리케이션, 헬스케어 애플리케이션, 환경 정보 애플리케이션, 인스턴트 메시징 애플리케이션, 통화 애플리케이션, 인터넷 브라우징 애플리케이션, 게임 애플리케이션, 미디어 재생 애플리케이션, 화상/비디오 캡쳐 애플리케이션, 파일 관리 애플리케이션 등)에서 다른 애플리키에션에 의해 생성된 통지를 외부의 전자 장치 (예를 들면, 전자 장치(104))로 제공하는 기능을 포함할 수 있다.
일례로서, 디바이스 관리 애플리케이션은 전자 장치(101)와 통신하여 전자 장치 (예를 들면, 외부의 전자 장치 자체, 또는 외부의 전자 장치의 하나 또는 이상의 구성요소)의 적어도 일부와 관련된 기능들의 유효화 또는 무효화, 외부 전자 장치의 디스플레이의 밝기(또는 해상도)의 제어, 외부 전자 장치에서 동작하는 애플리케이션 또는 외부 전자 장치에 의해 제공되는 서비스 (예를 들면, 음성 통화 서비스, 메시징 서비스, 및/또는 등) 등을 관리할 수 있다.
본 개시의 여러 실시예들에 따르면, 일 예로서, 애플리케이션(134)은 전자 장치 (예를 들면, 전자 장치(104))의 특성 (예를 들어, 전자 장치 타입, 및/또는 등)에 따라 결정되는 하나 이상의 애플리케이션을 포함할 수 있다. 예를 들어, 외부 전자 장치가 mp3 player인 경우, 애플리케이션(134)은 음악 재생에 관련하는 하나 이상의 애플리케이션을 포함할 수 있다. 다른 예로서, 외부의 전자 장치가 휴대 의료 기기인 경우, 애플리케이션(134)은 의료 관련의 애플리케이션일수 있다. 본 개시의 여러 실시예들에 따르면, 애플리케이션(134)은 전자 장치(101)에 프리로드(preload)되는 애플리케이션, 외부 전자 장치 (예를 들면, 전자 장치(104), 서버(106), 기업 네트워크 등)으로부터 수신되는 애플리케이션, 및/또는 등에서 적어도 하나를 포함할 수 있다.
I/O인터페이스(140)는, 예를 들면, 사용자로부터의 명령 및/또는 데이터를 수신할 수 있다. I/O인터페이스(140)는 버스(110)를 통해, 프로세서(120), 메모리(130), 통신 인터페이스(160), 보안 모듈(170) 등으로 명령 및/또는 데이터를 송신할 수 있다. 예를 들면, I/O인터페이스(140)는 터치 스크린을 통해 수신된 사용자 입력과 연관된 데이터를 프로세서(120)로 제공할 수 있다. I/O인터페이스(140)는 예를 들면, 프로세서(120), 메모리(130), 통신 인터페이스(160), 보안 모듈(170) 등으로부터 버스(110)를 통해 수신된 명령 및/또는 데이터를 I/O 장치 (예를 들면, 스피커, 디스플레이 등)를 통해 출력할 수 있다. 예를 들면, I/O인터페이스(140)는 스피커를 통해 음성 데이터(예를 들면, 프로세서(120)를 사용하여 처리된)를 출력할 수 있다.
디스플레이(150)는 사용자에게 각종 정보 타입 (예를 들면, 멀티미디어, 텍스트 데이터, 및/또는 등)을 표시할 수 있다. 일례로서, 디스플레이(150)는 사용자가 전자 장치(101)와 대화할 수 있는 그래픽 사용자 인터페이스(GUI)를 표시할 수 있다.
인터페이스(160)는 전자 장치(101)와 하나 이상의 외부 전자 장치 (예를 들면, 전자 장치(104), 서버(106) 등) 간의 통신을 제공할 수 있다. 예를 들면, 통신 인터페이스(160)는 무선 또는 유선 통신을 사용하여 네트워크(162)와의 접속을 확립함으로써 외부의 전자 장치와 통신할 수 있다. 일례로서, 통신 인터페이스(160)와 통신할 수 있는 무선 통신은 Wi-Fi, 블루투스(Bluetooth), 근접장 통신(NFC), 위성 위치 확인 시스템(GPS), 셀룰라 통신 (예를 들면, LTE(Long Term Evolution), LTE-A(LTE-Advanced), 부호 분할 다중 접속(CDMA), 광대역 CDMA(WDCMA), 유니버설 이동 통신 시스템(UMTS), 무선 브로드밴드(와이브로), 이동 통신용 글로벌 시스템(GSM), 적외선 통신 규격(IrDA) 기술 등 중 적어도 하나일 수 있다. 일례로서, 통신 인터페이스(160)와 통신할 수 있는 무선 통신은 USB(Universal Serial Bus), 고품위 멀티미디어 인터페이스(HDMI), 추천된 규격(232(RS-232), 기존 전화 서비스(Plain Old Telephone Service: POTS), 이더넷(ethernet), 및/또는 등 중 적어도 하나일 수 있다.
본 개시의 여러 실시예들에 따르면, 네트워크(162)는 통신 네트워크일 수 있다. 일례로서, 전기 통신 네트워크는 컴퓨터 네트워크, 인터넷, 사물 인터넷(Internet of Things), 전화망 등 중 적어도 하나를 포함할 수 있다. 본 개시의 여러 실시예들에 따르면, 전자 장치(101)와 외부 전자 장치 간의 통신을 위한 프로토콜 (예를 들면, 전송 계층 프로토콜, 데이터 링크층 프로토콜, 물리층 프로토콜, 및/또는 등)은 예를 들면, 애플리케이션(134), API(133), 미들웨어(132), 커널(131), 통신 인터페이스(160), 및/또는 등 중 적어도 하나에 의해 지원될 수 있다.
보안 모듈(170)은 예를 들면, 다른 구성 요소 (예를 들면, 프로세서(120), 메모리(130), I/O인터페이스(140), 통신 인터페이스(160), 및/또는 등)으로부터 수신된 정보의 적어도 일부를 처리하고, 여러 가지의 정보, 서비스 등을 여러가지 방법으로 사용자에게 제공할 수 있다. 예를 들면, 보안 모듈(170)은 다른 전자 장치 (예를 들면, 전자 장치(104), 서버(106), 및/또는 등)에 관련하여 전자 장치(101)을 인증하기 위해서 전자 장치(101)의 기능의 적어도 일부를 독립적으로 또는 프로세서(120)를 통해 제어할 수 있다. 도 2는 보안 모듈(170)에 관한 추가 정보를 제공할 것이다.
도 2는 본 개시의 여러 실시예들에 따른 보안 모듈의 블럭도를 도시한다.
도 2를 참조하면, 보안 영역(200)은 도 1에 도시된 보안 모듈(170)을 포함할 수 있다. 본 개시의 여러 실시예들에 따르면, 보안 모듈(170)은 보안 영역(200)의 외부에 존재할 수 있다.
본 개시의 여러 실시예들에 따르면, 보안 영역(200)은 전자 장치의 정상적인 존에 대하여 추가의 보안을 갖는 전자 장치의 영역(area) 또는 환경(environment)일 수 있다. 예를 들면, 전자 장치는 정상 동작 환경 (예를 들면, 정상 영역(normal zone))과 안전한 동작 환경 (예를 들면, 보안 영역(200))을 포함할 수 있다. 보안 영역(200)은 보안 영역(200) 내의 애플리케이션, 데이터, 및/또는 등의 완전성(integrity)이 손상되지 않음을 보장하는 하드웨어를 가질 수 있다.
본 개시의 여러 실시예들에 따르면, 프리로드된 애플리케이션(preloaded application)만이 보안 영역(200)에 로드될 수 있다. 예를 들어, 전자 장치의 제조자 (예를 들어, OEM(Original Equipment Mnufacturer) 제조자에 의해 설치된 애플리케이션, 데이터, 및/또는 등만이 그 보안 영역(200) 내에서 실행될 수 있다. 다시 말해서, OEM 제조자에 의해 설치되지 않은 애플리케이션, 데이터, 및/또는 등은 보안 영역(200)에서 실행될 수 없다 (예를 들면, 다른 엔티티들은 보안 영역(200)에 애플리케이션, 데이터, 및/또는 등을 설치하기 위해 필요한 권한을 가질 수 없다). 본 개시의 여러 실시예들에 따르면, 새로운 정보는 보안 영역(200) 내에 저장될 수 있고 이러한 새로운 정보는 보안 영역(200) 내의 기존의 애플리케이션, 및/또는 등에 의해 사용될 수 있다. 예를 들면, 자격 증명은 보안 영역(200) 내에 저장될 수 있고, OEM 제조자에 의해 보안 영역(200) 내에 설치된 인증 애플리케이션, 및/또는 등은 보안 영역(200)에 새로이 저장된 정보를 사용할 수 있다.
본 개시의 여러 실시예들에 따르면, OEM 제조자는 고유의 자격 증명 및 일치하는 인증서를 전자 장치의 보안 영역(200)에 설치할 수 있다. 예를 들어, OEM 제조자는 고유 키 (예를 들면, 개인 키)와 일치하는 인증서를 전자 장치의 보안 영역(200)에 설치할 수 있다. 인증서는 고유 디바이스 정보 (예를 들면, 디바이스 식별자(ID))를 포함할 수 있다. 인증서는 OEM 루트 키(root key)에 의해서 서명될 수 있다. 따라서, 기업이 OEM 제조자를 신뢰한다면, 그 기업은 인증 프로세스에 있어서 공장에서 생성한 인증서를 사용할 수 있다. 그 후, 기업 관리자는 2차 인증을 위해 보안 영역(200)에 설치된 고유 키 (예를 들면, 개인 키)와 인증서를 활용 (예를 들어, 사용)할 수 있다. 그 결과, 관련 기술에서 필요로 하는 2차 인증 프로세스에서 여분의 토큰(token)이 불필요해진다.
본 개시의 여러 실시예들에 따르면, 기업은 전자 장치에 개인 키를 안전하게 꽂는 것(push)에 대해 걱정할 필요가 없다 (예를 들어, 전자 장치의 제조시 개인 키를 보안 영역(200)에서 생성할 수 있거나 또는 OEM 제조자가 설치할 수 있기 때문에). 그렇지 않고, 기업이 전자 장치에 개인 키 (또는 그 외의 자격 증명)를 꽂거나 설치할 필요가 있다면, 그 개인 키는 그 보안 손상에 취약가능할 수 있다. 예를 들어, 기업이 개인 키를 생성하는 시점부터 그 개인 키를 보안 영역(200) 내에 설치할 때까지, 악의가 있는 상대가 감청(intercept)할 수도 있고 그렇지 않으면 개인 키의 보안이 위험해질 수도 있다. 따라서, 제조시에 보안 영역(200) 내에 개인 키를 생성하거나, 보안 영역(200)에 개인 키를 설치하면 개인 키가 항상 안전한 것을 보증한다. 전자 장치는 그 후, 보안 영역(200)에 저장된 개인 키에 대응하는 공용 키를 기업으로 송신할 수 있다.
도 2에 도시된 바와 같이, 보안 모듈(170)은 인증서 설치 모듈(210), 키 생성 모듈(220), 키리스(keyless) 파일 생성 모듈(230), 및/또는 등을 포함할 수 있다.
본 개시의 여러 실시예들에 따르면, 보안 모듈(170)은 전자 장치 (예를 들면, 클라이언트 전자 장치)를 인증하기 위해서 사용할 수 있다. 보안 모듈(170)은 이 보안 모듈(170)이 제공하는 모든 서비스들이 신뢰할 수 있는 부트 기반 서비스임(trusted boot based services)을 보증할 수 있다. 본 개시의 여러 실시예들에 따르면, 보안 모듈(170)은 (예를 들어, OEM 제조업자, 기업 네트워크, 사용자 등으로부터) 개인 키 및 인증서의 설치를 수락할 수 있다. 본 개시의 여러 실시예들에 따르면, 보안 모듈(170)은 키를 생성하고 인증서 서명 요청을 수신시 그 인증서 서명 요청을 발행할 수 있다. 본 개시의 여러 실시예들에 따르면, 보안 모듈(170)은 표준 암호화 모듈 또는 프로토콜 (예를 들면, PKCS11 APIs)을 통해 액세스 가능할 수 있다. 본 개시의 여러 실시예들에 따르면, 보안 모듈(170)은 WiFi 확장가능 인증 프로토콜(EAP)-TLS 애플리케이션, 가상 사설망(VPN) 애플리케이션, 전자 메일 애플리케이션, 및/또는 등의 전송 계층 보안(TLS) 애플리케이션을 지원할 수 있다.
본 개시의 여러 실시예들에 따르면, 인증서 설치 모듈(210)은 예를 들면, 서버로부터 클라이언트 인증서를 동작적으로 수신하여, 클라이언트 전자 장치의 보안 영역(200)에 설치하도록 구성될 수 있다. 인증서 설치 모듈(210)은 개인 키 및/또는 인증서를 랩(wrap)하여 저장할 수 있다. 인증서 설치 모듈(210)은 토큰 디렉토리(token directory)가 특정 클라이언트를 위해서 존재하는지 여부를 판단하고 만약 토큰 디렉토리가 특정 클라이언트에 대해 존재하지 않는 것으로 판단된 경우 적용가능한 토큰 디렉토리를 작성할 수 있다. 인증서 설치 모듈(210)은 특정 클라이언트에 대한 (예를 들면, 디바이스 키(SHK)+ PIN을 갖는) 토큰 디렉토리에 PIN 파일을 생성하고 랩할 수 있다. 예를 들어, 인증서 설치 모듈(210)은 만일, 데이터 타입이 특정 데이터 타입 (예를 들면, TZ_CCM_RAW_PRIV_KEY, TZ_CCM_CERT, 및/또는 등)에 해당하는 경우, 제공된 정보를 (예를 들면, SHK+ PIN을 이용하여) 랩하고 그 결과를 새로운 토큰 파일에 저장하도록 개인 키 및/또는 인증서를 랩하고 저장할 수 있다. 다른 예로서, 인증서 설치 모듈(210)은 특정 데이터 타입 (예를 들면, TZ_CCM_WRAP_PRIV_KEY, 및/또는 등)의 개인 키 및/또는 인증서를 언랩하고(unwrap) 그 결과를 특정 랩퍼 (예를 들어, SHK+ PIN)를 이용하여 랩할 수 있다. 인증서 설치 모듈(210)은 (예를 들면, 보고서에) 성공 또는 내부 에러의 표시를 제공할 수 있다.
본 개시의 여러 실시예들에 따르면, 키 생성 모듈(220)은 예를 들면, 키를 생성하도록 구성할 수 있다. 예를 들면, 키 생성 모듈(220)은 RSA키 쌍을 생성할 수 있다. 다른 예로서, 키 생성 모듈(220)은 디바이스 키를 이용하여 개인 키를 다중화(multiplex) 또는 랩(wrap)할 수 있다. 키 생성 모듈(220)은 공용 키와 함께 디바이스 키로 랩된 개인 키를 돌려줄 수 있다. 키 일반 모듈(key general module)(200)은 개인 키가 아예 존재하지 않거나 또는 보안 영역(200)의 외부로 통신하도록 키 (예를 들면, 개인 키)를 생성하도록 구성될 수 있다.
본 개시의 여러 실시예들에 따르면, 키리스 파일 생성 모듈(keyless file generation module)(230)은 예를 들면, 등록이 이루어졌음을 나타내기 위해 사용될 수 있는 파일 (예를 들면, 키리스 파일)를 생성하도록 구성될 수 있다. 키리스 파일 생성 모듈(230)은 (예를 들면, 보고서에) 성공 또는 내부 에러의 표시를 제공할 수 있다.
본 개시의 여러 실시예들에 따르면, 보안 모듈(170)은 신뢰할 수 있는 부트 체크를 실시하도록 구성할 수 있다. 보안 모듈(170)은 전자 장치가 기존 상태 (예를 들면, 손상 안된 상태)로 부팅되었는지 여부를 확인하기 위해 신뢰할 수 있는 부트 체크를 실행할 수 있다. 일례로서, 보안 영역(200)은 애플리케이션 및/또는 알려진 상태 (예를 들면, 손상 안된 상태)로 전자 장치를 부팅하였는지 여부를 검출하는 것들 등을 포함할 수 있다. 보안 영역(200)에 포함되는 애플리케이션 및/또는 등은 그 애플리케이션 및/또는 등이 보안 영역(200) 내에 여전히 존재하기 때문에 안전한 애플리케이션으로 고려될 수 있다. 전자 장치가 알려진 상태로 부팅되지 않았다고 판단된다면 (예를 들면, 전자 장치가 손상된 상태로 부팅하는 것으로 판단된 경우), 전자 장치는 보안 영역(200) 내에 존재하는 애플리케이션, 데이터, 및/또는 등을 이용하여 임의의 인증, 암호화, 해독, 및/또는 등의 수행을 방해할 수 있다. 예를 들어, 보안 영역(200)이 전자 장치가 위험한 상태 (예를 들면, 전자 장치가 손상되는)로 부팅되는 것으로 판단하면, 보안 영역(200)은 보안 영역(200) 내에 존재하는 애플리케이션, 데이터, 및/또는 등을 이용하여 임의의 인증, 암호화, 해독 등을 수행할 수 없다. 보안 영역(200)은 전자 장치 (예를 들면, 보안 영역(200))가 알 수 없는 상태 (예를 들어, 손상된 상태)로 부팅되었다고 판단했을 경우 내부에 저장된 개인 키를 사용할 수 없다.
도 3 a는 클라이언트 전자 장치의 사용자를 인증하기 위한 절차를 도시한다.
도 3a를 참조하면, 사용자는 승인된 전자 장치(320a) (예를 들면, 기업 책임 노트북(corporate liable laptop))을 통해 클라이언트 전자 장치(310a) (예를 들면, 스마트 폰)를 이용하여 기업 네트워크(330a)에 접속하려고 시도할 수 있다. 예를 들면, 사용자는 기업 네트워크(330a)에 의해서 보호된 자원들에 액세스를 얻기 위해서 기업 네트워크(330a)에 접속하려고 시도할 수 있다.
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치(310a)는 적어도 하나의 통신기술 및/또는 프로토콜을 사용하여 상기 승인된 전자 장치(320a)와 통신할 수 있다. 예를 들면, 클라이언트 전자 장치(310a) 및 승인된 전자 장치(320a)는 블루투스(Bluetooth) 기술, WiFi 다이렉트 기술, NFC 기술, IrDA기술, 및/또는 등을 사용하여 통신할 수 있다.
기업 네트워크(330a)는 기업 네트워크(330a)에 사용자 액세스를 허가하기 전에 사용자 인증을 시도할 수 있다. 예를 들면, 기업 네트워크(330a)는 사용자가 제1 요소 인증(first factor authentication)을 사용하여 사용자의 신원을 증명하는 것을 요청할 수 있다. 예로서, 제1 요소 인증은 사용자가 사용자의 자격 증명을 입력하는 것을 포함할 수 있다.
승인된 전자 장치(320a)는 제2 요소 인증을 수행하기 위한 클라이언트 전자 장치(310a)와 통신한다. 예를 들면, 승인된 전자 장치(320a)는 해당하는 인증서 (예를 들면, 보안 인증서)를 취득하기 위해서 그리고 관련된 개인 키의 존재를 증명하기 위한 요건을 만족시키기 위해서 클라이언트 전자 장치(310a)를 이용해 통신할 수 있다. 승인된 전자 장치(320a)는 기업 네트워크(330a)에 해당 인증서를 통신할 수 있다.
도 3b는 본 개시의 여러 실시예들에 따른, 클라이언트 전자 장치의 사용자를 인증하기 위한 절차를 도시한다.
도 3b를 참조하면, 사용자는 클라이언트 전자 장치(310b) (예를 들면, 스마트 폰)를 이용하여 기업 네트워크(330b)에 접속하려고 시도할 수 있다. 예를 들면, 사용자는 기업 네트워크(330b)에 의해서 보호된 자원들에 액세스를 얻기 위해서 기업 네트워크(330b)와 접속하려고 시도할 수 있다.
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치(310b)는, 클라이언트 전자 장치(310b)가 인증된 전자 장치 (예를 들면, 기업 네트워크(330b)에 액세스 하는 것이 허가된 전자 장치)인지 여부를 판단하기 위해, 기업 네트워크(330b)가 클라이언트 전자 장치(310b)를 인증하기 위해 사용할 수 있는 신뢰된 자격 증명(trusted credentials)을 포함한다. 본 개시의 여러 실시예들에 따르면, 기업 네트워크(330b)는 전자 장치(310b)의 보안 레벨을 결정할 필요가 없다 (예를 들면, 클라이언트 전자 장치의 보안이 손상되었는지 여부의 판단). 예를 들면, 신뢰된 자격 증명은 클라이언트 전자 장치(310b)의 보안 영역 (예를 들면, 보안 환경)에 저장될 수 있다. 신뢰된 인증 정보의 신빙성, 및/또는 보안은 클라이언트 전자 장치(310b)에 의해서 보증된 하드웨어일 수 있다.
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치(310b)는 안전하지 않은 것으로 식별된 데이터로부터 안전한 것으로 식별된 데이터의 분리를 강화할 수 있는 하드웨어 모듈을 포함하도록 구성할 수 있다. 예를 들면, 하드웨어 모듈은 (예를 들어, 안전한 데이터 또는 이와 관련된 애플리케이션을 저장하거나 그렇지 않으면 사용하는 보안 환경을 생성하도록) 안전하지 않은 데이터로부터 안전한 데이터를 분리할 수 있다. 하드웨어 모듈은 소프트웨어 동작 ((예를 들면, 악성 소프트웨어 공격)으로부터 안전한 데이터를 저장하는 안전한 메모리를 확보할 수 있다. 본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치(310b)는 통합 인증 모듈(integrated authentication module)을 포함한다.
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치(310b)는 안전한 데이터를 (예를 들어, 안전하지 않은 데이터로부터 분리한) 저장할 수 있는 메모리 영역(zone)을 포함할 수 있다.
본 개시의 여러 실시예들에 따르면, 인증 애플리케이션 (예를 들면, 클라이언트 인증서 관리(CCM) 애플리케이션)은 안전한 데이터를 저장하기 위해서 사용되는 메모리의 존 (예를 들면, 보안 영역의 메모리)에 저장될 수 있다. 인증 애플리케이션은 클라이언트 전자 장치(310b)의 보안 상태를 결정할 수 있다. 예를 들면, 인증 애플리케이션은 클라이언트 전자 장치(310b)가 손상되는지 여부를 결정할 수 있다. 인증 애플리케이션은 클라이언트 전자 장치(310b)가 신뢰된 부트 체크를 실행함으로써 손상되었는지 여부를 결정할 수 있다. 본 개시의 여러 실시예들에 따르면, 인증 애플리케이션은 클라이언트 전자 장치(310b)의 보안 상태의 판단에 따라 서비스 제공 여부를 결정할 수 있다. 예를 들면, 인증 애플리케이션은 클라이언트 전자 장치(310b)가 안전한 것으로 판단하면 (예를 들면, 클라이언트 전자 장치(310b)가 손상되지 않은 경우), 인증 애플리케이션은 해당하는 서비스 (예를 들면, 인증서에 서명하는 등, 인증 서비스)를 제공하도록 결정할 수 있다. 대조적으로, 인증 애플리케이션이 클라이언트 전자 장치(310b)가 안전하지 않다고 판단한 경우 (예를 들어, 클라이언트 전자 장치(310b)가 손상된 경우), 인증 애플리케이션은 해당하는 서비스를 제공하지 않도록 결정할 수 있다. 예를 들면, 클라이언트 전자 장치(310b)가 안전하지 않다는 판단에 응답하여, 인증 애플리케이션은 클라이언트 전자 장치(310b)가 인증 서비스를 실행하는 것 (예를 들면, 인증서에 서명하거나, 그렇지 않으면, 보안 영역에 저장된 개인 키를 사용하는 것)을 방지할 수 있다.
본 개시의 여러 실시예들에 따르면, 인증 애플리케이션은 가상 스마트 카드일 수 있다.
본 개시의 여러 실시예들에 따르면, 보안 영역은 기업 네트워크(330b) 또는 그 관리자에 의해 설치될 수 있는 클라이언트 인증서를 저장할 수 있다. 예를 들어, 기업 네트워크(330b) 또는 그 관리자는 인증 애플리케이션에 클라이언트 인증서를 설치할 수 있다.
본 개시의 여러 실시예들에 따르면, 기업 네트워크(330b)는, 인증 처리를 실행하고 해당 클라이언트 인증서를 제공하는 클라이언트 전자 장치(310b)를 안전하게 인증할 수 있다. 예를 들어, 클라이언트 전자 장치(310b)가 손상된 상태에 있는 경우, 인증 애플리케이션은 그 클라이언트 인증서의 인증 프로세스 또는 통신을 금지할 수 있기 때문에 기업 네트워크는, 인증 프로세스를 실행하고 해당 클라이언트 인증서를 제공하는 클라이언트 전자 장치(310b)가 인증된 장치임을 추론할 수 있다.
본 개시의 여러 실시예들에 따르면, 기업 네트워크(330b)는 클라이언트 전자 장치(310b)에 이미 로드된 (예를 들어, 설치된) 인증서를 사용할 수 있다. 예를 들어, 클라이언트 전자 장치(310b)는 OEM 루트 키에 의해서 서명된 인증서를 프리로드할 수 있다. 인증서는 클라이언트 전자 장치(310b) (예를 들면, 국제 이동국 장치 식별(IMEI), WiFi 미디어 액세스 제어(MAC) 주소, 및/또는 등)를 고유하게 식별하는 메타 데이터(metadata)를 포함할 수 있다. 따라서, 클라이언트 인증서를 클라이언트 전자 장치(310b)에 설치하기보다는, 기업 네트워크(330b)는 클라이언트 전자 장치(310b)에 이미 로드된 인증서를 사용하여 기업 네트워크(330b)에 클라이언트 전자 장치(310b)를 등록할 수 있다. 본 개시의 여러 실시예들에 따르면, 기업 네트워크(330b)가 클라이언트 전자 장치(310b)에 이미 로드된 인증서를 사용하여 클라이언트 전자 장치(310b)를 등록한다면, 기업 네트워크(330b)는 인증서가 클라이언트 전자 장치(310b)의 고유 식별자 (예를 들면, IMEI 주소, WiFi MAC 주소, 및/또는 등)를 포함함을 보장하고, 및/또는 인증서가 해당 OEM 루트 키에 의해서 서명됨을 보장할 수 있다.
도 4a는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 플로차트를 도시한다.
도 4a를 참조하면, 동작(410a)에서, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 자격 증명을 생성한다. 예를 들면, 클라이언트 전자 장치는 개인 키/공용 키 쌍을 생성할 수 있다. 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 개인 키/공용 키 쌍을 생성할 수 있다. 클라이언트 전자 장치는 기업 네트워크 (예를 들면, 서버)로부터의 요청에 응답하여, 개인 키/공용 키 쌍을 생성할 수 있다. 예를 들면, 클라이언트 전자 장치는 클라이언트 전자 장치가 기업 네트워크에 (예를 들어, 기업 네트워크의 승인된 사용자로서) 등록하는 등록 프로세스 동안 개인 키/공용 키 쌍을 생성할 수 있다.
동작(420a)에서, 클라이언트 전자 장치는 기업 네트워크로 인증서 서명 요청을 통신할 수 있다. 클라이언트 전자 장치는 기업 네트워크로 (예를 들면, 생성된 개인 키에 관련된) 공용 키를 통신할 수 있다.
동작(430a)에서, 기업 네트워크는 개인 키/공용 키 쌍의 인증서를 생성 (예를 들면, 작성)할 수 있다. 기업 네트워크는 공용 키를 사용하여 인증서를 생성할 수 있다.
동작(440a)에서, 기업 네트워크는 클라이언트 전자 장치에 인증서를 통신할 수 있다. 기업 네트워크는 (예를 들면, 전자 장치를 검증하기 위한) 인증 절차의 일부로서 클라이언트 전자 장치에 인증서를 통신할 수 있다. 예를 들면, 기업 네트워크에 액세스하려는 시도에 응답하여, 기업 네트워크는 클라이언트 전자 장치에 인증서를 통신할 수 있다. 다른 예로서, 기업 네트워크는 클라이언트 전자 장치의 등록 동안 기업 네트워크를 이용하여 클라이언트 전자 장치에 인증서를 통신할 수 있다.
동작(450a)에서, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에서 생성된 자격 증명을 사용하여 인증서에 서명할 수 있다. 예를 들면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 저장된 상기 생성된 개인 키를 사용하여 인증서에 서명할 수 있다. 클라이언트 전자 장치는 기업 네트워크로부터의 요청에 응답하여, 개인 키를 사용하여 인증서에 서명할 수 있다. 예를 들면, 기업 네트워크는 기업 네트워크에 액세스 요청에 응답하여, 클라이언트 전자 장치로부터 서명된 인증서를 요청할 수 있다.
동작(460a)에서, 클라이언트 전자 장치는 서명된 인증서를 기업 네트워크로 통신할 수 있다.
동작(470a)에서, 기업 네트워크는 서명된 인증서를 사용하여 클라이언트 전자 장치를 검증할 수 있다. 예를 들면, 기업 네트워크는 인증서가 개인 키에 의해서 서명되었음을 확인할 수 있다. 기업 네트워크는 인증서가 개인 키에 의해서 서명되었음을 확인하기 위해 공용 키를 사용할 수 있다. 기업 네트워크가 상기 인증서가 개인 키에 의해서 서명되었다고 (예를 들면, 클라이언트 전자 장치가 검증된 것으로) 판단한 경우, 기업 네트워크는 클라이언트 전자 장치에 액세스를 제공할 수 있다.
도 4b는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시한다.
도 4b를 참조하면, 동작(410b)에서, 클라이언트 전자 장치는 기업 (예를 들면, 모바일 디바이스 관리(MDM) 서버 등의 기업 네트워크(403b))으로부터 새로운 클라이언트 인증서의 요청을 수신할 수 있다. 예를 들면, 클라이언트 전자 장치에 설치된 인증 애플리케이션(401b) (예를 들면, CCM 애플리케이션)은 새로운 클라이언트 인증서의 요청을 수신할 수 있다. 인증 애플리케이션(401b)은 클라이언트 전자 장치의 보안 영역에 저장, 또는 설치될 수 있다. 예를 들면, 인증 애플리케이션(401b)은 클라이언트 전자 장치의 보안 환경에서 실행될 수 있다. 인증 애플리케이션(401b)는 기업 네트워크(403b) (예를 들면, MDM 서버)로부터 또는, 보안 에이전트(402b) (예를 들면, KNOX 에이전트)를 경유하는 기업 네트워크(403b) (예를 들면, MDM 서버)로부터 새로운 클라이언트 인증서에 대한 요청을 직접 수신할 수 있다. 보안 에이전트(402b) (예를 들면, KNOX 에이전트)는 클라이언트 전자 장치 상에 존재할 수 있다. 예를 들면, 보안 에이전트(402b) (예를 들면, KNOX 에이전트)는 클라이언트 전자 장치의 비보안 영역 내에 존재할 수 있다 (예를 들면, 보안 에이전트(402b)는 클라이언트 전자 장치의 정상 동작 환경에서 실행될 수 있음).
인증 애플리케이션(401b)이 동작(410b)에서 새로운 클라이언트 인증서에 대한 요청을 수신하는 경우, 인증 애플리케이션(401b)은 키를 생성할 수 있다. 예를 들면, 인증 애플리케이션(401b)은 RSA키 쌍 (예를 들면 2048비트, 65537 지수를 갖는 RSA키 쌍)을 생성할 수 있다. 인증 애플리케이션(401b)은 공용 키 및 랩된(wrapped) 개인 키를 돌려줄 수 있다. 랩된 개인 키는 디바이스 키로 랩된 개인 키일 수 있다. 인증 애플리케이션(401b)은 호출자(caller)에게 관리되는 버퍼를 통해 공용 키 및 랩된 개인 키를 돌려줄 수 있다.
본 개시의 여러 실시예들에 따르면, 인증 애플리케이션(401b)이 새로운 클라이언트 인증서의 요청을 수신한 경우, 인증 애플리케이션(401b)은 키 생성기 API (예를 들면, tz_ccm_generate_key)를 로드할 수 있다. 본 개시의 여러 실시예들에 따르면, 키 생성기 API는 랩된 개인 키를 생성할 수 있다. 키 생성기 API는 클라이언트 전자 장치의 보안 영역에 저장되거나 또는 설치될 수 있다. 키 생성기 API는 클라이언트 전자 장치의 보안 환경에서 실행될 수 있다.
다음, 동작(420b)에서, 인증 애플리케이션(401b)은 기업 네트워크(403b) (예를 들면, MDM 서버)로 공용 키를 통신 (예를 들면, 송신)할 수 있다. 인증 애플리케이션은 보안 에이전트(402b)를 통해 기업 네트워크(403b) (예를 들면, MDM 서버)로 공용 키를 통신할 수 있다. 본 개시의 여러 실시예들에 따르면, 인증 애플리케이션(401b)은 인증서 서명 요청(CSR)와 함께 공용 키를 통신할 수 있다. 본 개시의 여러 실시예들에 따르면, 보안 에이전트(402b) (예를 들면, KNOX에이전트)는 개인 키를 수신하면, 기업 네트워크(403b) (예를 들면, MDM 서버)로 CSR를 통신할 수 있다.
기업 네트워크(403b) (예를 들면, MDM 서버) (또는 해당 인증 기관)는 CSR을 서명하고 클라이언트 인증서를 저장할 수 있다.
다음, 동작(430b)에서, 기업 네트워크(403b) (예를 들면, MDM 서버)는 서명한 클라이언트 인증서를 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션(401b))에 통신할 수 있다. 기업 네트워크(403b) (예를 들면, MDM 서버)는 푸시 통신 기술(push communication technology)를 통해 클라이언트 전자 장치로 서명된 클라이언트 인증서를 통신할 수 있다.
본 개시의 여러 실시예들에 따르면, 서명한 클라이언트 인증서를 수신하면, 클라이언트 전자 장치는 이 서명된 클라이언트 인증서를 저장 및/또는 설치할 수 있다. 예로서, 인증 애플리케이션(401b)은 서명된 클라이언트 인증서를 설치할 수 있다. 인증 애플리케이션(401b)이 서명된 클라이언트 인증서를 수신한 경우 인증 애플리케이션(401b)은 인증서 설치 API (예를 들면, tz_ccm_intall_client_ccm)를 로드할 수 있다. 인증서 설치 API는 서명된 클라이언트 인증서를 설치할 수 있다. 인증서 설치 API는 개인 키를 이용하여 서명된 클라이언트 인증서를 설치할 수 있다. 예로서, 인증서 설치 API는 개인 키를 이용하여 X.509 서명 클라이언트 인증서를 설치할 수 있다.
다음, 동작(440b)에서, 기업 네트워크(403b) (예를 들면, MDM 서버)는 특정의 암호화 모듈 또는 프로토콜 (예를 들면, PKCS11 인터페이스를 사용하여)을 통하여 인증 애플리케이션(401b)에 제공되는 서비스를 암호화/해독할 수 있다.
본 개시의 여러 실시예들에 따르면, 기업 네트워크(403b) (예를 들면, MDM 서버)는 보안 프로토콜을 사용하여 클라이언트 전자 장치 (예를 들면, 보안 에이전트(402b) 및/또는 인증 애플리케이션(401b))와 통신할 수 있다. 예를 들면, 기업 네트워크(403b) (예를 들면, MDM 서버)는 보안 소켓 레이어(Secure Sockets Layer: SSL) 프로토콜 및 설치된 클라이언트 인증서 및 (예를 들어, 인증 애플리케이션에 의해) 생성된 키를 사용하여 클라이언트 전자 장치 (예를 들면, 보안 에이전트(402b) 및/또는 인증 애플리케이션(401b))와 통신할 수 있다. 기업 네트워크(403b) (예를 들면, MDM 서버)는 클라이언트 인증서와 생성된 키를 검증함으로써 클라이언트 전자 장치를 인증할 수 있다.
본 개시의 여러 실시예들에 따르면, 인증 당사자 (예를 들면, MDM 서버 등의 기업 네트워크(403b))는 클라이언트 전자 장치에 의해 서명된 인증서를 사용하여 그리고 클라이언트 전자 장치의 보안 영역에 저장된 개인 키를 사용하여 클라이언트 전자 장치를 인증할 수 있다. 예를 들면, 인증 당사자는 클라이언트 전자 장치의 보안 영역 내에서 생성된 키 쌍 (예를 들면, 개인 키 및 공용 키)을 사용하여 클라이언트 전자 장치를 인증할 수 있다. 본 개시의 여러 실시예들에 따르면, 기업이 서명한 인증서 및 클라이언트 전자 장치 내에서 생성된 키의 조합은 클라이언트 전자 장치와 기업에 고유한 것이다. 예로서, 클라이언트 전자 장치의 인증은 서명한 클라이언트 인증서를 설치하는 동안 설정된 PIN/UID에 기반한다. 본 개시의 여러 실시예들에 따르면, 기업이 서명한 인증서 및 클라이언트 전자 장치 내에서 생성된 키의 고유한 조합 때문에, 기업은 서명한 클라이언트 인증서를 클라이언트 전자 장치에 안전하게 푸시(push)하는것에 대해 염려할 필요가 없다.
도 4c는 본 개시의 여러 실시예들에 따른 인증 토큰(authentication tokens)의 조직을 도시한다.
도 4b를 참조하면, 토큰 조직이 도시된다. 예를 들면, 도 4b는 클라이언트 전자 장치의 보안 영역에 설치된 인증 애플리케이션에 저장된 토큰의 조직 및 파일 구조를 도시한다.
파일명: UID_label_token-name_type
파일명 해시 LEN/UID PIN 종류 신뢰된 부트 체크? LEN 이진 데이터
YYY 1 XXXX 인증서 TRUE 바이트 단위 010100101…
표 1은 키 파일 구조를 도시한다. 예를 들면, 표 1은 오브젝트 저장용의 키 파일의 구조를 도시한다.
본 개시의 여러 실시예들에 따르면, 키 파일은 PIN및 디바이스 키 (SHK) (예를 들면, PIN+ SHK)로부터 유도된 키로 랩된다. 본 개시의 여러 실시예들에 따르면, 키 파일은 클라이언트 전자 장치의 특정의 디렉토리에 저장될 수 있다. 구체적으로, 키 파일은 클라이언트 전자 장치의 보안 영역의 특정 디렉토리에 저장될 수 있다. 키 파일은 클라이언트 전자 장치의 보안 영역에 설치된 인증 애플리케이션에 관련된 디렉토리에 저장될 수 있다 (예를 들면, /data/misc/tz_ccm/<token_name>). 본 개시의 여러 실시예들에 따르면, UID, 오브젝트 타입, 및 오브젝트 라벨 중 적어도 하나가 오브젝트를 저장하는 파일을 식별하기 위함이다. 본 개시의 여러 실시예들에 따르면, 인증 애플리케이션의 디폴트 키 (예를 들면, 디폴트 CCM 키)는 다른 파일 구조를 가질 수 있다.
파일명: UID_token-name
파일명 해시 LEN/UID LEN/PIN
XXXX 1 XXXX
표 2는 PIN 파일 구조를 도시한다. 예를 들면, 표 2는 오브젝트 저장용의 PIN 파일 구조를 도시한다.
본 개시의 여러 실시예들에 따르면, PIN 파일은 PIN및 디바이스 키 (SHK) (예를 들면, PIN+ SHK)로부터 유도된 키로 랩될 수 있다. 본 개시의 여러 실시예들에 따르면, PIN 파일은 클라이언트 전자 장치의 특정의 디렉토리에 저장될 수 있다. 구체적으로, PIN 파일은 클라이언트 전자 장치의 보안 영역의 특정 디렉토리에 저장될 수 있다. PIN 파일은 클라이언트 전자 장치의 보안 영역에 설치된 인증 애플리케이션에 관련된 디렉토리에 저장될 수 있다 (예를 들면, /data/misc/tz_ccm/<client_name>).
파일명: UID_label_token-name_DEFAULT
파일명
해시
LEN/UID PIN TYPE LEN 이진 데이터
YYY AAA XXXX 디폴트 제로 <empty>
표 3은 디폴트 키 파일 구조(default key file structure)를 도시한다. 예를 들면, 표 3은 오브젝트 스토리지용의 디폴트 키 파일의 구조를 도시한다.
본 개시의 여러 실시예들에 따르면, 디폴트 키 파일의 파일 구조는 다른 키 파일들의 파일 구조와 유사하다. 본 개시의 여러 실시예들에 따르면, 키리스 파일은 클라이언트 전자 장치의 보안 영역의 특정 디렉토리에 작성할 수 있다. 예를 들면, 키리스 파일은 클라이언트 전자 장치의 보안 영역에 설치된 인증 애플리케이션에 관련된 디렉토리에 작성할 수 있다 (예를 들면, /data/misc/tz_ccm//<token-name> directory). 본 개시의 여러 실시예들에 따르면, 파일 구조의 타입 필드는 파일이 디폴트 키에 관련하고 있는지 여부를 나타낼 수 있다. 본 개시의 여러 실시예들에 따르면, 디폴트 키에 관련된 키리스 파일로 제공되는 키 정보는 없다. 실제의 디폴트키 데이터는 디바이스 제조업자에 의해서 지정된 장소에 저장될 수 있다.
본 개시의 여러 실시예들에 따르면, 디폴트 클라이언트 인증서 및 키는 디바이스 제조업자에 의해서 생성되고 유지될 수 있다. 예를 들어, 디폴트 클라이언트 인증서 및 키는 각 클라이언트 전자 장치에 대해 한 번만 생성될 수 있다. 본 개시의 여러 실시예들에 따르면, 디폴트 클라이언트 인증서 및 키는 클라이언트 전자 장치 고유의 하드웨어 키에 의해서 암호화될 수 있다.
인증서/ 키 속성 기대치
키 사이즈(Key size) 2048 bit
지수값(Exponent Value) 65537
할당/발행되는 주체 디바이스 제조업자(예를 들면, 삼성 물산)
서명 알고리즘 SHA256 RSA
서명 해시 알고리즘 SHA256
주제(Subject) - OU: 클라이언트 인증에서만 사용
- OU: <디바이스(SoC) ID 인코드>
- OU: <캐리어, 모바일 명, 일자/작성 시기>
- OU = 삼성 모바일
- CN 삼성 주식회사
- L = 수원시
- C ?? KR
키 사용법 디지털 서명, 부인 방지, 키 암호화하기, 데이터 암호화(F0)
인증서 지문 알고리즘 SHA256
확장된 키 사용법 클라이언트 인증
표 4는 디폴트 키 및/또는 클라이언트 인증서에 대한 속성을 도시한다.
본 개시의 여러 실시예들에 따르면, 서비스는 (예를 들어, PKCS11 인터페이스를 사용하는) 특정의 암호화 모듈 또는 프로토콜을 사용하여 암호화/해독될 수 있다.
노멀 월드
(PKCS11 API)
TZ CCM API 설명
C_Initialize TZ_C_Initialize Cryptoki 초기화
C_Finalize TZ_C_Finalize 잡다한 것을 클린업
Cryptoki-관련 리소스
C_OpenSession TZ_C_OpenSession 토큰 삽입하기 위한 애플리케이션 콜백 사이의 접속 오픈
C_CloseSession TZ_C_CloseSession 세션 클로즈
C_Login TZ_C_Login 토큰에 로그인
C_Logout TZ_C_Logout 토큰에서 로그아웃
C_GetSlotList TZ_C_GetSlotList 시스템 내의 슬롯 리스트 취득
C_FindObjectsInit TZ_C_FindObjectsInit 오브젝트 검색 동작 초기화
C_FindObjects TZ_C_FindObjects 오브젝트 검색 동작 계속
C_GetAttributeValue TZ_C_GetAttributeValue 오브젝트의 속성값 취득
C_FindObjectsFinal TZ_C_FindObjectsFinal 오브젝트 검색 동작 종료
C_SignInit TZ_C_SignInit 서명 동작 초기화
C_Sign TZ_C_Sign 싱글 파트 데이터 서명
C_DecryptInit TZ_C_DecryptInit 해독 동작 초기화
C_Decrypt TZ_C_Decrypt 싱글 파트의 암호화된 데이터의 해독
C_DigestInit TZ_C_DigestINit 메시지 소화 동작 초기화
C_Digest TZ_C_Digest 싱글 파트 데이터 소화
C_VerifyInit TZ_C_VerifyInit 검증 동작 초기화
C_Verify TZ_C_Verify 싱글 파트 데이터 서명 검증
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치의 보안 영역에 설치된 인증 애플리케이션은 서비스의 암호화/해독을 위한 표준적인 암호화 프로토콜을 사용하도록 구성할 수 있다. 예를 들면, 인증 애플리케이션은 PKCS11를 사용하도록 구성될 수 있다.
표 5는 통상의 PKCS11 APIs (예를 들면, 관련 기술에 따라 사용된 PKCS11 API)와, 클라이언트 전자 장치의 보안 영역 내의 서비스를 암호화/해독하기 위한 PKCS11 APIs 사이의 관계를 도시한다.
도 4d는 본 개시의 여러 실시예들에 따른, 암호화/해독 프로토콜 API의 콜 시퀀스(call sequence)의 예를 도시한다.
도 4d를 참조하면, PKCS11 API를 호출하기 위한 콜 시퀀스가 도시된다.
본 개시의 여러 실시예들에 따르면, 임의의 서비스에 앞서 시스템 상태를 결정하기 위해 신뢰할 수 있는 최소한의 부트 체크(minimal trusted boot checks)를 실시하는 인증 애플리케이션 (예를 들면, CCM)이 제공된다. 신뢰할 수 있는 최소한의 부트 체크의 정도는 하나의 키 마다(per-key basis) 설정 가능하다. 예를 들어, 신뢰할 수 있는 최소한의 부트 체크(minimal trusted boot checks)의 정도(extent)는 클라이언트 전자 장치의 보안 영역에 대한 인증서 설치 시 구성될 수 있다. 인증 애플리케이션은 클라이언트 전자 장치가 알려진 상태 (예를 들면, 손상 없는 상태)로 부팅되었음을 확인하기 위해 신뢰할 수 있는 최소한의 부트 체크를 실시할 수 있다.
본 개시의 여러 실시예들에 따르면, 인증서 및/또는 키 설치 및/또는 생성 요청은 보안 레벨을 나타낼 수 있다. 본 개시의 여러 실시예들에 따르면, 인증 애플리케이션은 서비스를 제공하기 앞서 실행할 필요가 있는 신뢰할 수 있는 최소한의 부트 체크의 정도를 결정하기 위해 지정된 보안 레벨을 사용할 수 있다. 예를 들면, 인증 애플리케이션은 신뢰된 부트 체크를 실행할 필요성을 결정하기 위해서 등록되어 있는 보안 레벨을 사용한다.
본 개시의 여러 실시예들에 따르면, 신뢰된 부트 체크는 WV 퓨즈(Warranty Violation fuse) 또는 WV스트링 보안 메모리 점검(WV string secure memory checks), 및 측정 검증을 포함할 수 있다.
본 개시의 여러 실시예들에 따르면, 신뢰된 부트 체크는 PKM 대시보드(dashboard) 및/또는 RKP 체크를 포함하지 않을 수도 있다.
본 개시의 여러 실시예들에 따르면, 모든 토큰 및 메타 데이터 파일은 trustlet 랩 APIs를 사용하여 암호화 파일 시스템(EFS)에 저장될 수 있다.
본 개시의 여러 실시예들에 따르면, 보안 모듈 (예를 들면, SEAndroid)은 EFS에 저장된 토큰 및/또는 메타 데이터 파일의 삭제 및/또는 변경을 방지하기 위해서 구현될 수 있다.
본 개시의 여러 실시예들에 따르면, PIN 파일 및/또는 키 파일은 클라이언트 전자 장치의 보안 영역 내의 특정 위치로 리드(read)될 수 있다. 예를 들면, PIN 파일 및/또는 키 파일은 클라이언트 전자 장치의 보안 영역 내의 표준 장소에 리드될 수 있다. 예로서, 클라이언트 전자 장치가 INIT(예를 들어, 초기화) 상태로 전환되면, PIN 파일 및/또는 키 파일은 클라이언트 전자 장치의 보안 영역으로부터 지워질 수 있고(wiped) (예를 들어, 삭제), 따라서 PIN 파일 및/또는 키 파일을 클라이언트 전자 장치의 보안 영역 내로 리드할 필요가 있다.
본 개시의 여러 실시예들에 따르면, 설치 작업은 신뢰된 부트 체크를 수행할 수 있게 한다. 본 개시의 여러 실시예들에 따르면, 설치 작업은 항상 신뢰된 부트 체크를 수행할 수 있게 한다.
본 개시의 여러 실시예들에 따르면, 암호화 작업(cryptography operations)은 신뢰된 부트 체크를 수행할 수 있게 한다. 예를 들어, 그러한 신뢰할 수 있는 최소한의 부트 체크가 해당 설치 작업 중에 등록되어 있는 경우, 암호 작업은 신뢰된 부트 체크를 수행할 수 있게 한다.
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치는 개인 키가 클라이언트 전자 장치의 보안 영역을 절대 벗어나지 않는 것을 확실히 하도록 구성할 수 있다.
본 개시의 여러 실시예들에 따르면, 인증 애플리케이션 (예를 들면, CCM)은 기업 WiFi, 전자 메일 인증, (예를 들면 SSL과 같은 클라이언트 인증을 갖는) VPN 인증을 위한 EAP-TLS용으로 사용될 수 있다.
본 개시의 여러 실시예들에 따르면, EAP-TLS는 무선 네트워크(예를 들면, WiFi)에 액세스를 허가하기 위한 인증 메카니즘에 대응할 수 있다. 예를 들어, EAP-TLS는 인증서 기반 상호 인증(certificate-based mutual authentication) 및 키 도출(key derivation)을 지원할 수 있다. 본 개시의 여러 실시예들에 따르면, TLS는 클라이언트 인증서에 관련해 사용되는 경우 보다 견고할 수 있다.
도 5a는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시한다.
도 5a를 참조하면, 동작(510a)에서, 디폴트 자격 증명(default credentials)은 클라이언트 전자 장치에 통신된다. 디폴트 자격 증명은 디폴트 인증서와 디폴트 키 (예를 들면, 디폴트 개인 키)에 대응할 수 있다. 기업 (예를 들면, 기업 네트워크)은 클라이언트 전자 장치로 디폴트 자격 증명을 통신할 수 있다.
동작(520a)에서, 클라이언트 전자 장치는 디폴트 자격 증명을 받는다. 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역에서 디폴트 자격 증명을 저장 (예를 들면, 설치)한다. 클라이언트 전자 장치가 손상이 없는 상태라면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역에서 디폴트 자격 증명을 저장할 수 있다. 예를 들면, 클라이언트 전자 장치는 클라이언트 전자 장치가 클라이언트 전자 장치의 보안 영역 내의 디폴트 자격 증명을 저장하기 전에, 손상이 없는 상태인지 여부를 판단할 수 있다. 클라이언트 전자 장치는 클라이언트 전자 장치가 하나 이상의 신뢰할 수 있는 부트 체크를 실행함으로써 손상되지 않은 상태에 있는지 여부를 판단할 수 있다.
동작(530a)에서, 클라이언트 전자 장치는 기업 네트워크에 등록(enroll or otherwise register)하기 위한 요청을 통신한다. 예를 들면, 클라이언트 전자 장치는 기업 네트워크의 인증 서버에 등록하는 등록하기 위한 요청을 통신한다. 클라이언트 전자 장치는 기업 네트워크에 등록(enroll/register)하기 위한 요청을 이용하여 디폴트 자격 증명 (또는 그 일부)을 기업 네트워크에 통신할 수 있다. 예를 들면, 클라이언트 전자 장치는 기업 네트워크로 디폴트 인증서를 통신할 수 있다.
동작(540a)에서, 인증은 디폴트 자격 증명을 사용하여 클라이언트 전자 장치와 기업 네트워크와의 사이에 행해진다. 예를 들면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역에 저장된 디폴트 개인 키를 사용하여 디폴트 인증서에 서명할 수 있다. 기업 네트워크는 대응하는 디폴트 공용 키를 사용하여 클라이언트 전자 장치를 검증할 수 있다.
동작(550a)에서, 기업 (예를 들면, 기업 네트워크)은 클라이언트 자격 증명 (예를 들면, 기업의 자격 증명)을 클라이언트 전자 장치에 통신할 수 있다. 예를 들어, 기업은 디폴트 자격 증명을 사용하여 클라이언트 전자 장치를 인증하는 것에 응답하여 클라이언트 전자 장치로 클라이언트 자격 증명을 통신할 수 있다. 클라이언트 자격 증명은 기업 네트워크에 관련된 개인 키 및 대응하는 인증서일 수 있다. 클라이언트 자격 증명은 클라이언트 전자 장치에 대해 고유한 것일 수 있다 (예를 들면, 클라이언트 자격 증명은 기업 네트워크에 관련하여 클라이언트 전자 장치의 고유 식별을 위해서 사용할 수 있다). 기업은 클라이언트 전자 장치가 디폴트 자격 증명을 사용하여 기업에 의해 인증되는 경우에만, 클라이언트 전자 장치에 자격 증명을 통신할 수 있다.
동작(560a)에서, 클라이언트 전자 장치는 클라이언트 자격 증명을 수신한다. 클라이언트 전자 장치는 기업 (예를 들면, 기업 네트워크)으로부터의 클라이언트 자격 증명을 수신할 수 있다. 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역에 클라이언트 자격 증명을 저장 (예를 들면, 설치)한다. 클라이언트 전자 장치가 손상 안된 상태이면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 클라이언트 자격 증명을 저장할 수 있다.
동작(570a)에서, 클라이언트 전자 장치는 기업 네트워크에 액세스하기 위한 클라이언트 자격 증명을 사용할 수 있다. 예를 들어, 기업 네트워크는 클라이언트 자격 증명을 사용하여 클라이언트 전자 장치를 인증할 수 있다.
도 5b는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시한다.
도 5b 참조하면, 클라이언트 전자 장치와 무선 네트워크와의 사이의 접속이 인증된 예가 도시되어 있다.
동작(510b)에서, 클라이언트 전자 장치는 기업 네트워크(503b) (예를 들면, EAP 인증 서버)로부터 디폴트 클라이언트 인증서에 대한 요청을 동작적으로 수신할 수 있다. 예를 들면, 클라이언트 전자 장치 상에 설치된 인증 애플리케이션(501b) (예를 들면, CCM 애플리케이션)은 디폴트 클라이언트 인증서에 대한 요청을 수신할 수 있다. 인증 애플리케이션(501b)은 기업 네트워크(503b) (예를 들면, EAP 인증자 서버)로부터 직접, 또는 클라이언트 전자 장치에 저장된 WiFi 에이전트(502b)를 경유하여 기업 네트워크(503b) (예를 들면, EAP 인증자 서버)로부터 수신할 수 있다. 예를 들면, WiFi 에이전트(502 b)는 클라이언트 전자 장치의 비보안 영역 외부에 저장 및/또는 실행된다. WiFi 에이전(502b)는 클라이언트의 비보안 영역에 저장되고 정상 동작 환경에서 실행되는 애플리케이션일 수 있다.
동작(510b)에서, 인증 애플리케이션(501b)이 디폴트 클라이언트 인증서에 대한 요청을 수신하면, 인증 애플리케이션(501b)은 요청된 디폴트 클라이언트 인증서와 연관되거나 등록되어 있는 신뢰할 수 있는 최소한의 부트 체크를 실행할 수 있다. 예를 들면, 인증 애플리케이션(501b)은 클라이언트 전자 장치가 손상 안된 상태임을 확인하기 위해 신뢰할 수 있는 부트 체크를 실행할 수 있다. 인증 애플리케이션(501b)이 클라이언트 전자 장치가 손상 안된 상태에 있지 않는 것으로 판단한다면 (예를 들면, 클라이언트 전자 장치가 손상된 상태에 있음), 클라이언트 전자 장치는 (예를 들면, 개인 키 설치, 클라이언트 전자 장치의 보안 영역에 저장된 개인 키를 사용하여 인증서에 서명, 암호화/해독 서비스 수행, 및/또는 등)의 인증 서비스를 수행할 수 없게 된다.
본 개시의 여러 실시예들에 따르면, 동작(520b)에서, 인증 애플리케이션(501b)이 신뢰할 수 있는 최소한의 부트 체크가 해당 검증 기준을 만족시킨 것으로 판단한다면, 인증 애플리케이션(501b)은 기업 네트워크(503b) (예를 들면, EAP 인증 서버)에 등록 (예를 들면, 등록하려는 시도)을 요청할 수 있다. 디폴트 클라이언트 인증서는 등록을 위한 요청을 통신할 수 있다. 본 개시의 여러 실시예들에 따르면, 디폴트 클라이언트 인증서 및/또는 등록을 위한 요청은 인증 애플리케이션(501b)으로부터 직접 기업 네트워크(503b) (예를 들면, EAP 인증 서버)로 통신될 수 있고, 또는 디폴트 클라이언트 인증서 및/또는 등록을 위한 요청은 WiFi 에이전트(502b)를 경유하여 기업 네트워크(503b) (예를 들면, EAP 인증 서버)로 통신될 수 있다.
다음, 동작(530b)에서, 기업 네트워크(503b) (예를 들면, EAP 인증 서버) 및 인증 애플리케이션(501b)은 인증 (예를 들어, 검증)을 수행할 수 있다. 예를 들어, 인증 애플리케이션(501b)은 WiFi 에이전트(502b)로 제공된 및/또는 WiFi 에이전트(502b)로부터 수신된 서비스를 특정 암호화 모듈 또는 프로토콜을 사용하여 (예를 들면, PKCS11 인터페이스를 사용하여) 암호화/해독할 수 있다.
기업 네트워크(503b) (예를 들면, EAP 인증 서버)는 디폴트 클라이언트 인증서 및 키를 사용하여 기업 네트워크(503b) (예를 들면, EAP 인증 서버)와 클라이언트 전자 장치 사이에 SSL 접속을 설정할 수 있다.
다음, 동작(540b)에서, 기업 네트워크(503b) (예를 들면, EAP 인증 서버)는 클라이언트 전자 장치로 클라이언트 인증서 및/또는 키를 통신할 수 있다. 인증 애플리케이션(501b)이 기업 네트워크(503b) (예를 들면, EAP 인증 서버)를 이용하여 인증된다면, 기업 네트워크(503b) (예를 들면, EAP 인증 서버)는 클라이언트 전자 장치를 제공할 수 있다.
기업 네트워크(503b) (예를 들면, EAP 인증 서버)로부터 클라이언트 인증서 및/또는 키를 수신하면, 인증 애플리케이션(501b)은 클라이언트 인증서 및/또는 키를 설치할 수 있다. 예를 들면, 클라이언트 전자 장치는 클라이언트 인증서 및/또는 키를 저장 및 설치할 수 있다.
도 6a 및 도 6b는 본 개시의 여러 실시예들에 따른 인증 절차를 위한 상태도를 도시한다.
본 개시의 여러 실시예들에 따라, 도 6a를 참조하면, 하나의 세션만이 소정의 시점에서 클라이언트 전자 장치의 보안 영역으로 허락될 수 있다. 본 개시의 여러 실시예들에 따르면, 하나의 trustlet 인스턴스만이 소정의 시점에서 존재할 수 있다.
본 개시의 여러 실시예들에 따르면, 인증 애플리케이션은 현재 세션이 클로즈될때 까지 다른 세션 요청을 존중하지 않을 수 있다.
도 4d및 도 6a를 참조하는 본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치가 현재 INIT 상태에 있고 "C_OpenSession+ C_Login" 또는 "C_Logout/ C_CloseSession/ C_Finalize"라는 함수 호출 기능을 수행하고 있는 경우, 이렇게 하면 현재 하나 이상의 세션을 실행시키고자 하는 것이므로 함수 호출 기능 "C_Intitialize"는 실행되지 않는다.
마찬가지로, 본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치가 IN-SESSION 상태에 있고 "C_*Init" 또는 "C_Logout/C_CloseSession/C_Finalize" 라는 함수 호출 기능을 수행하고 있는 경우, 이렇게 하면 현재 하나 이상의 세션을 실행시키고자 하는 것이므로 함수 호출 기능 "C_Initialize/C_OpenSession/C_Login"은 실행되지 않는다.
도 6b를 참조하여 본 개시의 여러 실시예들에 따르면, FindObjects 및 암호 처리는 다른 동작들과는 달리 처리될 수 있다.
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션)가 FindObject 동작을 완료한 경우 (예를 들면, 인증 애플리케이션이 오브젝트를 발견한 경우), 클라이언트 전자 장치는 crypto_begin 상태로 천이할 수 있다.
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션)가 crypto_begin 상태로 천이하면, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션)은FindObject 상태를 상실 (예를 들면, FindObject 상태로부터 천이)할 수 있다.
도 6b를 참조하면, 함수 호출 기능 및 상태에 관련된 점선은 도 6a 에 도시된 클라이언트 전자 장치와 같은 클라이언트 전자 장치의 함수 호출 기능 및 상태이다. 점선은 도 6a 에 도시된 클라이언트 전자 장치와 연관된 함수 호출 기능 및 상태를 도 6b에 관련해 설명한 클라이언트 전자 장치의 상태도 상으로 이동한다.
도 4d 및 6b를 참조하여 본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치가 IN_SERVICE BEGIN상태에 있는 경우 그렇게 하는 것이 현재 하나 이상의 세션을 실행하기 때문에 함수 호출 기능 "C_Intialize/C_OpenSession/ C_Login/ C_FindObjectsInit"은 실행되지 않을 것이다.
마찬가지로, 클라이언트 전자 장치가 In_Service_Session 상태에 있는 경우, 그렇게 하는 것이 현재 하나 이상의 세션을 실행하기 때문에 함수 호출 기능 "C_Intialize/C_OpenSession/C_Login/C_FindObjectsInit"은 실행되지 않을 것이다.
마찬가지로, 클라이언트 전자 장치가 In_Service_Crypto_Begin 상태에 있는 경우, 그렇게 하는 것이 현재 하나 이상의 세션을 실행하기 때문에 함수 호출 기능 "C_Intialize/C_OpenSession/C_Login/C_FindObjectsInit"은 실행되지 않을 것이다.
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치는 이 클라이언트 전자 장치가 소정의 상태로 무기한 남아있지 못하도록 구성할 수 있다. 예를 들면, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션)는 임계치 횟수 (예를 들면, N =10)보다 적은 오동작을 실행할 수 있어, 그 후 클라이언트 전자 장치가 다른 함수 호출 기능을 실행하거나 또는 다른 세션을 개시하지 못하게 하는 것으로부터 자신을 해제할 수 있다.
본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션)는 클라이언트 전자 장치의 재부팅 동안 손실된 상태를 모니터할 수 있다. 예를 들면, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션)는 설치 시퀀스 및/또는 초기화 시퀀스로 실행되는 일관성 체크(consistency check)를 사용하여 손실된 상태를 검출할 수 있다. 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션)가 손실된 상태를 검출한다면, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션은)는 (예를 들면, 손실 상태를 고정 및/또는 복원함으로써) 손실 상태를 해결할 수 있다. 본 개시의 여러 실시예들에 따르면, 기존의 토큰이 새로운 토큰에 우선한다.
도 7a는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 플로차트를 나타낸다.
동작(710a)에서, 클라이언트 자격 증명 (예를 들면, 기업 자격 증명)은 클라이언트 전자 장치에 통신된다. 기업 (예를 들면, 기업 네트워크)은 클라이언트 전자 장치로 클라이언트 자격 증명을 통신할 수 있다. 본 개시의 여러 실시예들에 따르면, 기업 (예를 들면, 기업 네트워크)은 클라이언트 전자 장치로 직접 클라이언트 자격 증명을 통신할 수 있다. 본 개시의 여러 실시예들에 따르면, 기업 (예를 들면, 기업 네트워크)은 게이트웨이(gateway)를 경유하여 클라이언트 전자 장치로 클라이언트 자격 증명을 통신할 수 있다. 클라이언트 자격 증명은 기업 (예를 들면, 기업 네트워크)에 관련한 개인 키 및 대응하는 인증서가 있다. 클라이언트 자격 증명은 클라이언트 전자 장치에 대해 고유한 것일 수 있다 (예를 들면, 클라이언트 자격 증명을 기업 네트워크에 관련하여 클라이언트 전자 장치의 고유의 식별을 위해 사용할 수 있음).
동작(720a)에서, 클라이언트 전자 장치는 기업 (예를 들면, 기업 네트워크)으로부터의 클라이언트 자격 증명을 받아들인다.
동작(730a)에서, 클라이언트 전자 장치는 그 클라이언트 전자 장치가 손상되지 않은 상태인지 여부를 판단한다. 예를 들면, 클라이언트 전자 장치는 그 클라이언트 전자 장치가 클라이언트 전자 장치의 보안 영역 내의 디폴트 자격 증명을 저장하기 전에, 손상 안된 상태인지 여부를 판단할 수 있다. 클라이언트 전자 장치는 클라이언트 전자 장치가 하나 이상의 신뢰할 수 있는 부트 체크를 실행함으로써 손 상 안된 상태에 있는지 여부를 판단할 수 있다.
동작(740a)에서, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역에 클라이언트 자격 증명을 저장 (예를 들면, 설치)할 수 있다. 클라이언트 전자 장치가 손상 안된 상태이면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 클라이언트 자격 증명을 저장할 수 있다. 예를 들면, 클라이언트 전자 장치는 클라이언트 전자 장치가 클라이언트 전자 장치의 보안 영역 내에 클라이언트 자격 증명을 저장하기 전에, 손상 안된 상태인지 여부를 판단할 수 있다. 클라이언트 전자 장치는 하나 이상의 신뢰할 수 있는 부트 체크를 실행함으로써 클라이언트 전자 장치가 손상 안된 상태에 있는지 여부를 판단할 수 있다.
동작(750a)에서, 클라이언트 전자 장치는 기업 네트워크에 액세스하기 위한 클라이언트 자격 증명을 사용한다. 예를 들면, 클라이언트 전자 장치와 기업 네트워크는 클라이언트 자격 증명을 사용하여 클라이언트 전자 장치를 검증하기 위해서 인증 절차를 실행할 수 있다.
도 7b는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시한다.
도 7b를 참조하면, 동작(710b)에서, 기업 네트워크(704b) (예를 들면, MDM 서버)는 클라이언트 인증서 및/또는 클라이언트 키 (예를 들면, 클라이언트 인증서에 대응하는 개인 키)를 통신할 수 있다. 기업 네트워크(704b) (예를 들면, MDM 서버)는 푸시 통신 기술(push communication technology)을 사용하여 클라이언트 인증서 및/또는 클라이언트 키를 통신할 수 있다. 예를 들면, 기업 네트워크(704b) (예를 들면, MDM 서버)는 클라이언트 전자 장치로 클라이언트 인증서 및/또는 키 (예를 들면, 클라이언트 전자 장치에 저장된 인증 애플리케이션(710b))를 직접 통신할 수 있다. 다른 예로서 기업 네트워크(704b) (예를 들면, MDM 서버)는 게이트웨이(703b) 및/또는 보안 에이전트(702b) (예를 들면, KNOX 에이전트)를 경유하여 클라이언트 전자 장치로 클라이언트 인증서 및/또는 클라이언트 키를 통신할 수 있다. 예를 들면, 보안 에이전트(702b) (예를 들면, KNOX 에이전트)는 클라이언트 전자 장치의 비보안 영역 외부에서 저장 및/또는 실행될 수 있다. 보안 에이전트(702b) (예를 들면, KNOX 에이전트)는 클라이언트의 비보안 영역에 저장되고 정상적 동작 환경에서 실행되는 애플리케이션일 수 있다. 기업 네트워크(704b) (예를 들면, MDM 서버)는 클라이언트 인증서 및 대응하는 개인 키 (예를 들면, 클라이언트 키)를 생성할 수 있다. 기업 네트워크(704b) (예를 들면, MDM 서버)은 클라이언트 인증서 및/또는 클라이언트 키를 안전한 또는 그렇지 않으면, 신뢰할 수 있는 접속을 사용하여 통신할 수 있다.
본 개시의 여러 실시예들에 따르면, 기업 네트워크(704b) (예를 들면, MDM 서버)로부터 클라이언트 인증서 및/또는 키를 수신하면, 클라이언트 전자 장치는 그 클라이언트 인증서 및/또는 키 (예를 들면, 개인 키)를 저장 (예를 들면, 설치)할 수 있다. 본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치는 클라이언트 전자 장치가 손상 안된 상태인 것을 확인할 수 있다. 클라이언트 전자 장치는 클라이언트 전자 장치가 손상 안된 상태로 부팅되었음을 확인할 수 있다. 클라이언트 전자 장치는 클라이언트 전자 장치가 하나 이상의 신뢰할 수 있는 부트 체크를 실행함으로써 손상 안된 상태에 있는지 여부를 판단할 수 있다. 본 개시의 여러 실시예들에 따르면, 클라이언트 전자 장치는 만일 클라이언트 전자 장치가 손상 안된 상태라고 판단된 경우, 클라이언트 전자 장치의 보안 영역 내에 클라이언트 인증서 및 클라이언트 키를 저장할 수 있다.
본 개시의 여러 실시예들에 따르면, 동작(701b)에서, 클라이언트 전자 장치 (예를 들어, 인증 애플리케이션(701b))는 기업 네트워크(704b) (예를 들면, MDM 서버 또는 관련 기업 네트워크)를 이용하여 등록 요청을 통신할 수 있다. 예를 들면, 클라이언트 전자 장치는 보안 에이전트(702b) (예를 들면, KNOX 에이전트) 및/또는 게이트웨이(703b)를 경유하여 등록 요청을 통신할 수 있다. 클라이언트 전자 장치는 클라이언트 인증서를 갖는 기업 네트워크(704b) (예를 들면, MDM 서버)에 등록 요청을 통신할 수 있다. 클라이언트 인증서는 클라이언트 전자 장치의 식별 정보에 랩 될 수 있다.
등록 요청을 수신하면, 기업 네트워크(704b) (예를 들면, MDM 서버)는 클라이언트 인증서를 저장할 수 있다.
이후, 동작(730b)에서, 기업 네트워크(704b) (예를 들면, MDM 서버)와 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션 (701b))는 클라이언트 자격 증명 (예를 들어, 클라이언트 인증서, 클라이언트 키(예를 들어, 개인 키), 및 /또는 대응하는 공용 키)를 사용하여 인증을 수행할 수 있다. 기업 네트워크(704b) (예를 들면, MDM 서버)는, 기업 네트워크(704b) (예를 들면, MDM 서버)에 관련된 기업 네트워크에 액세스 하려고 하는 클라이언트 전자 장치에 응답하여) 클라이언트 전자 장치를 검증할 수 있다. (예를 들어, 보안 에이전트(702b)를 경유한) 인증 애플리케이션(701b) 및 기업 네트워크(704b) (예를 들면, MDM 서버)는 특정 암호화 모듈 또는 프로토콜 (예를 들면, PKCS11 인터페이스를 사용하여)을 통하여 인증 처리를 수행할 수 있다.
본 개시의 여러 실시예들에 따르면, 기업 네트워크(704b) (예를 들면, MDM 서버)는 보안 프로토콜을 사용하여 보안 에이전트(702b) 및/또는 클라이언트 전자 장치와 통신할 수 있다. 예를 들면, 기업 네트워크(704b) (예를 들면, MDM 서버)는 보안 소켓 레이어(SSL) 프로토콜 및 설치된 클라이언트 인증서를 사용하여 보안 에이전트(72b) 및/또는 클라이언트 전자 장치와 통신할 수 있다. 기업 네트워크(704b) (예를 들면, MDM 서버)는 클라이언트 인증서 및/또는 클라이언트 키를 검증함으로써 클라이언트 전자 장치를 인증할 수 있다.
도 7c는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 플로차트를 도시한다.
도 7을 참조하여 본 개시의 여러 실시예들에 따르면, 기업은 제 3자(예를 들면, OEM 제조업자)에 의해서 제공된 자격 증명을 사용하는 것을 선택할 수 있다. 기업은 인증서를 제공해야만 한다거나 인증서 서명 요청을 관리 및/또는 처리토록 요청받고 싶지 않을 수 있다. 일 예로, 디폴트 클라이언트 인증서 및 키는 클라이언트 전자 장치의 인증을 위해서 사용할 수 있다.
동작(710c)에서, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 디폴트 자격 증명을 저장할 수 있다. 디폴트 자격 증명은 예를 들면, OEM 제조자와 같은 제 3자에 의해 제공될 수 있다. 디폴트 자격 증명은 디폴트 인증서와 디폴트 개인 키에 대응할 수 있다. 본 개시의 여러 실시예들에 따르면, 기업 (예를 들면, 기업 네트워크), 애플리케이션, 및/또는 등이 디폴트 자격 증명 (예를 들면, 디폴트 인증서 및/또는 디폴트 키 (예를 들면, 개인 키))과 함께 사용하기 위해서 등록될 수 있다. 본 개시의 여러 실시예들에 따르면, 디폴트 자격 증명이 클라이언트 전자 장치의 보안 영역에 저장되어 있는 경우, 기업 (예를 들면, 기업 네트워크), 애플리케이션, 및/또는 등이 디폴트 자격 증명을 사용하기 위해 등록될 수 있다. 본 개시의 여러 실시예들에 따르면, 디폴트 자격 증명을 전자 클라이언트의 보안 영역에 저장된 후, 기업 (예를 들면, 기업 네트워크), 애플리케이션, 및/또는 등을 디폴트 자격 증명과 함께 사용하기 위하여 등록할 수 있다.
동작(720c)에서, 클라이언트 전자 장치는 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단할 수 있다. 예를 들면, 클라이언트 전자 장치는 디폴트 자격 증명에 사용하기 위해서 등록될 수 있는 기업 (예를 들면, 기업 네트워크), 애플리케이션 등을 등록하기 전에, 클라이언트 전자 장치가 손상 안된 상태인지 여부를 결정할 수 있다. 클라이언트 전자 장치는 하나 이상의 신뢰할 수 있는 부트 체크를 실행함으로써 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단할 수 있다.
동작(730c)에서, 클라이언트 전자 장치는 기업(예를 들면, 기업 네트워크)에 등록(enroll or otherwise register)하기 위한 요청을 통신한다. 예를 들면, 클라이언트 전자 장치는 기업 네트워크의 인증 서버에 등록 요청을 통신한다. 클라이언트 전자 장치는 기업(예를 들면, 기업 네트워크)에 등록(enroll/register)하기 위한 요청을 이용하여 기업 네트워크에 디폴트 인증서를 통신할 수 있다. 예를 들면, 클라이언트 전자 장치는 기업 네트워크에 디폴트 인증서를 통신할 수 있다.
동작(740c)에서, 클라이언트 전자 장치는 기업 네트워크에 액세스하기 위한 디폴트 자격 증명을 사용하고 있다. 예를 들면, 클라이언트 전자 장치와 기업 네트워크는 디폴트 자격 증명을 사용하여 클라이언트 전자 장치를 검증하기 위한 인증 절차를 실행할 수 있다.
도 7d는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시한다.
본 개시의 여러 실시예에 따른 도 7d를 참조하면, 동작(710d)에서, 클라이언트 전자 장치는 기업 (예를 들면, 기업 네트워크)에 클라이언트 전자 장치를 등록하기 위한 요청을 동작 가능하게 수신할 수 있다. 클라이언트 전자 장치는 기업 네트워크(704d) (예를 들면, MDM 서버)로부터 디폴트 클라이언트 인증서를 포함한 요청을 동작가능하게 수신할 수 있다. 예를 들면, 클라이언트 전자 장치에 설치된 인증 애플리케이션(701d) (예를 들면, CCM 애플리케이션)은 디폴트 클라이언트 인증서를 포함한 요청을 수신할 수 있다. 인증 애플리케이션 (701d)은 기업 네트워크(704d) (예를 들면, MDM 서버)로부터 직접 또는 기업 네트워크(704d) (예를 들면, MDM 서버)로부터 게이트웨이 (703d) 및/또는 보안 에이전트(702d) (예를 들면, KNOX 에이전트)를 경유하여 디폴트 클라이언트 인증서에 대한 요청을 받을 수 있다.
인증 애플리케이션(701d)이 디폴트 클라이언트 인증서를 포함한 요청을 수신한다면, 인증 애플리케이션(701d)은 요청된 디폴트 클라이언트 인증서에 등록된 또는 그렇지 않으면 관련된 신뢰할 수 있는 최소한의 부트 체크를 수행할 수 있다. 예를 들면, 인증 애플리케이션(701d)은 클라이언트 전자 장치가 손상 안된 상태인 것을 확인할 수 있다. 인증 애플리케이션(701d)은 디폴트 클라이언트 자격 증명이 손상 안된 것을 확실히 하기 위해 디폴트 클라이언트 자격 증명 (예를 들면, 디폴트 클라이언트 인증서와 디폴트 클라이언트 개인 키)를 저장하기 전에, 클라이언트 전자 장치가 손상 안된 상태에 있는 것을 확인할 수 있다.
본 개시의 여러 실시예들에 따르면, 인증 애플리케이션(701d)은 신뢰할 수 있는 최소한의 부트 체크가 해당 검증 기준을 만족한 것으로 판단했을 경우, 인증 애플리케이션(701d)은 디폴트 클라이언트 자격 증명 인증을 저장할 수 있다.
동작(720d)에서, 클라이언트 전자 장치는 기업 (예를 들면, 기업 네트워크(704d))에 클라이언트 전자 장치를 등록하기 위한 요청을 통신할 수 있다. (예를 들면, 디폴트 클라이언트 개인 키로 서명된) 디폴트 클라이언트 인증서는 등록을 위한 요청에 통신할 수 있다. 본 개시의 여러 실시예들에 따르면, 디폴트 클라이언트 인증서 및/또는 등록을 위한 요청은 인증 애플리케이션(701d)으로부터 직접 기업 네트워크(704d) (예를 들면, MDM 서버)에 통신할 수 있거나, 또는 디폴트 클라이언트 인증서 및/또는 등록을 위한 요청은 게이트웨이(703d) 및/또는 보안 에이전트(702d) (예를 들면, KNOX 에이전트)를 경유하여 기업 네트워크(704d) (예를 들면, MDM 서버)에 통신할 수 있다.
디폴트 클라이언트 인증서 수신 시, MDM 서버는 클라이언트 인증서를 저장한다.
이후, 동작(730d)에서, 클라이언트 전자 장치, 보안 에이전트(702d) (예를 들면, KNOX 에이전트), 게이트웨이(703d) 및/또는 기업 네트워크(704d) (예를 들면, MDM 서버)는 특정 암호화 모듈 또는 프로토콜 (예를 들면, PKCS11 인터페이스를 사용하여)을 통하여 인증 애플리케이션 (730d)에 제공된 서비스를 암호화/해독할 수 있다. 클라이언트 전자 장치 및 기업 네트워크(704d) (예를 들면, MDM 서버)는 클라이언트 자격 증명을 검증하기 위해 (예를 들면, 클라이언트 전자 장치를 인증하기 위해) 암호화 프로토콜을 개입시켜 통신할 수 있다.
본 개시의 여러 실시예들에 따르면, 기업 네트워크(704d) (예를 들면, MDM 서버)는 보안 프로토콜을 사용하여 게이트웨이(703d), 보안 에이전트 (702d) (예를 들면, KNOX 에이전트), 및/또는 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션(701d))에 통신할 수 있다. 예를 들면, 기업 네트워크(704d) (예를 들면, MDM 서버)는 보안 소켓 레이어(SSL) 프로토콜 및 설치된 클라이언트 인증서를 사용하여 보안 에이전트 (702d) 및/또는 클라이언트 전자 장치에 통신할 수 있다. 기업 네트워크(704d) (예를 들면, MDM 서버)는 클라이언트 인증서 및/또는 키를 검증함으로써 클라이언트 전자 장치를 인증할 수 있다.
도7e는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 플로차트를 도시한다.
도 7e를 참조하면. 동작(710e)에서, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 디폴트 자격 증명을 저장할 수 있다. 디폴트 자격 증명은 예를 들면, OEM 제조자 등 제 3자에 의해 제공될 수 있다. 디폴트 자격 증명은 디폴트 인증서 및 디폴트 개인 키에 대응할 수 있다. 본 개시의 여러 실시예들에 따르면, 기업(예를 들면, 기업 네트워크), 애플리케이션, 및/또는 등은 디폴트 자격 증명 (예를 들면, 디폴트 인증서 및/또는 디폴트 키(예를 들면, 개인 키))으로 사용하기 위해 등록될 수 있다. 본 개시의 여러 실시예들에 따르면, 기업 (예를 들면, 기업 네트워크), 애플리케이션 등은 디폴트 자격 증명이 클라이언트 전자 장치의 보안 영역에 저장되었을 때 디폴트 자격 증명으로 사용하기 위해 등록될 수 있다. 본 개시의 여러 실시예들에 따르면, 기업 (예를 들면, 기업 네트워크), 애플리케이션, 및/또는 등은 디폴트 자격 증명을 전자 클라이언트의 보안 영역에 저장된 후, 디폴트 자격 증명에 사용하기 위해 등록될 수 있다.
동작(720e)에서, 클라이언트 전자 장치는 기업 (예를 들면, 기업 네트워크), 애플리케이션 등에 등록하기 위한 요청을 통신한다. 예를 들면, 클라이언트 전자 장치는 기업 네트워크의 인증 서버에 등록하는 등록하기 위한 요청을 통신한다. 클라이언트 전자 장치는 기업 (예를 들면, 기업 네트워크)에 등록하기 위한 요청을 갖는 기업 네트워크에 디폴트 인증서를 통신할 수 있다. 예를 들면, 클라이언트 전자 장치는 기업 네트워크에 디폴트 인증서를 통신할 수 있다. 클라이언트 전자 장치는 기업에 클라이언트 전자 장치 (예를 들면, 디바이스 ID)를 식별하는 정보를 통신할 수 있다. 예를 들어, 기업에 등록(enroll/register)하기 위한 요청은 클라이언트 전자 장치를 식별하는 정보를 포함할 수 있다.
동작(730e)에서, 클라이언트 자격 증명을 생성할 수 있다. 예를 들면, 기업 (예를 들면, 기업 네트워크)은 클라이언트 자격 증명을 생성할 수 있다. 클라이언트 자격 증명은 클라이언트 인증서와 개인 키를 포함할 수 있다. 클라이언트 자격 증명은 공용 키 등 공개 자격 증명에 관련할 수 있다.
동작(740e)에서, 클라이언트 자격 증명 (예를 들면, 기업 자격 증명)은 클라이언트 전자 장치에 통신된다. 기업 (예를 들면, 기업 네트워크)은 클라이언트 전자 장치로 클라이언트 자격 증명을 통신할 수 있다. 본 개시의 여러 실시예들에 따르면, 기업 (예를 들면, 기업 네트워크)은 클라이언트 전자 장치에 직접 클라이언트 자격 증명을 통신할 수 있다. 본 개시의 여러 실시예들에 따르면, 기업 (예를 들면, 기업 네트워크)은 게이트웨이를 경유하여 클라이언트 전자 장치로 클라이언트 자격 증명을 통신할 수 있다. 클라이언트 자격 증명은 기업 네트워크에 관련된 개인 키 및 대응하는 인증서일 수 있다. 클라이언트 자격 증명은 클라이언트 전자 장치에 대해 고유한 것일 수 있다 (예를 들면, 클라이언트 자격 증명은 기업 네트워크에 관련하여 클라이언트 전자 장치의 고유의 식별을 위해 사용할 수 있다).
동작(750e)에서, 클라이언트 전자 장치는 기업 (예를 들면, 기업 네트워크)으로부터 클라이언트 자격 증명을 수신한다. 그 후, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 클라이언트 자격 증명을 저장할 수 있다. 클라이언트 전자 장치는 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단한다. 예를 들면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 디폴트 자격 증명을 저장하기 전에, 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단할 수 있다. 클라이언트 전자 장치는 하나 이상의 신뢰할 수 있는 부트 체크를 실행함으로써 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단할 수 있다. 클라이언트 전자 장치가 손상 안된 손상 안된 상태이면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 클라이언트 자격 증명 인증을 저장할 수 있다. 예를 들면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 클라이언트 자격 증명을 저장하기 전에, 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단할 수 있다.
동작(760e)에서, 클라이언트 전자 장치는 기업 네트워크에 액세스하기 위한 클라이언트 자격 증명을 사용한다. 예를 들면, 클라이언트 전자 장치 및 기업 네트워크는 클라이언트 자격 증명을 사용하여 클라이언트 전자 장치를 검증하기 위한 인증 절차를 실행할 수 있다.
도 7f는 본 개시의 여러 실시예들에 따른 클라이언트 전자 장치를 인증하기 위한 절차를 도시한다.
본 개시의 여러 실시예들에 따른 도 7를 참조하면, 동작(710f)에서, 클라이언트 전자 장치의 보안 영역 내에 저장된 인증 애플리케이션(701f)은 보안 에이전트(702f) (예를 들면, 클라이언트 전자 장치의 비보안 영역에 저장되고 기업 (예를 들면, MDM 서버 등의 기업 네트워크(704f))에 인터페이스 또는 그렇지 않으면 통신하도록 구성되어 있는 KNOX 에이전트 등의 애플리케이션)로부터 디폴트 클라이언트 인증서에 대한 요청을 동작적으로 수신할 수 있다. 예를 들면, 클라이언트 전자 장치에 설치된 인증 애플리케이션(701f) (예를 들면, CCM 애플리케이션)은 디폴트 클라이언트 인증서의 요청을 수신할 수 있다.
인증 애플리케이션(701f)이 디폴트 클라이언트 인증서의 요청을 수신하면, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션 (701f))는 클라이언트 전자 장치가 손상 안된 상태임을 확인할 수 있다. 예를 들어, 인증 애플리케이션 (701f)은 요청된 디폴트 클라이언트 인증서에 등록하거나 또는 다른 방법으로 연관된 신뢰할 수 있는 최소한의 부트 체크를 실행할 수 있다.
본 개시의 여러 실시예들에 따르면, 인증 애플리케이션(701f)이 신뢰할 수 있는 최소한의 부트 체크가 해당하는 검증 조건을 만족시켰다고 판단한다면, 동작(720f)에서, 클라이언트 전자 장치는 기업 (예를 들면, 기업 네트워크(704f))에 등록을 요청할 수 있다. 예를 들면, 인증 애플리케이션(701f)은 기업 네트워크(704f) 및 디폴트 클라이언트 인증서와의 등록 요청을 기업 네트워크(704f) (예를 들면, MDM 서버)에 통신할 수 있다. 본 개시의 여러 실시예들에 따르면, 디폴트 클라이언트 인증서 및/또는 등록을 위한 요청이 인증 애플리케이션으로부터 직접 기업 네트워크(704f) (예를 들면, MDM 서버)로 통신될 수 있거나 또는 디폴트 클라이언트 인증서 및/또는 요청을 위한 등록은 보안 에이전트 (예를 들면, KNOX 에이전트) 및/또는 게이트웨이(703f)를 경유하여 기업 네트워크(704f) (예를 들면, MDM 서버)에 통신될 수 있다.
동작(730f)에서, 기업 네트워크(704f) (예를 들면, MDM 서버)는 클라이언트 인증서와 개인 키를 생성할 수 있다. 기업 네트워크(704f)는 (예를 들면, 그에 액세스 하기 위한) 클라이언트 자격 증명을 생성할 수 있다.
본 개시의 여러 실시예들에 따르면, 기업 네트워크(704f)는 클라이언트 자격 증명을 생성하기 전에, 클라이언트 전자 장치를 인증할 수 있다. 기업 네트워크(704f)는 클라이언트 전자 장치의 보안 영역에 저장될 수 있는 디폴트 자격 증명 (예를 들면, 디폴트 클라이언트 인증서 및 디폴트 개인 키)을 사용하여 클라이언트 전자 장치를 인증할 수 있다. 예를 들면, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션(701f), 보안 에이전트(702f) (예를 들면, KNOX 에이전트), 게이트웨이(703f), 및/또는 기업 네트워크(704f) (예를 들면, MDM 서버)는 디폴트 자격 증명을 사용하여 특정 암호화 모듈 또는 프로토콜 (예를 들면, PKCS11 인터페이스를 사용하여)을 통하여 제공되는 서비스를 암호화/해독한다.
본 개시의 실시예들에 따르면, 기업 네트워크(704f) (예를 들면, MDM 서버)는 보안 프로토콜을 사용하여 게이트웨이(703f), 보안 에이전트(702f) (예를 들면, KNOX 에이전트), 및/또는 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션 (701f))를 통신할 수 있다. 예를 들어, 기업 네트워크(704f) (예를 들면, MDM 서버)는 보안 소켓 레이어(SSL) 프로토콜 및 설치된 클라이언트 인증서를 사용하여 보안 에이전트 (예를 들면, KNOX 에이전트) 및/또는 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션 (701f))에 디폴트 자격 증명을 통신할 수 있다. 기업 네트워크(704f) (예를 들면, MDM 서버)는 클라이언트 인증서 및/또는 키를 검증함으로써 클라이언트 전자 장치를 인증할 수 있다.
동작(740f)에서, 검증된 클라이언트 인증서 및/또는 키 (예를 들면, 서명 클라이언트 인증서) 수신 시, 클라이언트 전자 장치 (예를 들면, 인증 애플리케이션 (701f))는 클라이언트 인증서를 저장 (예를 들면, 설치)할 수 있다. 예를 들어, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 클라이언트 자격 증명을 저장할 수 있다. 클라이언트 전자 장치는 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단한다. 예를 들면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 디폴트 자격 증명을 저장하기 전에, 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단할 수 있다. 클라이언트 전자 장치는 하나 이상의 신뢰할 수 있는 부트 체크를 실행함으로써 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단할 수 있다. 클라이언트 전자 장치가 손상 안된 상태이면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 클라이언트 자격 증명을 저장할 수 있다. 예를 들면, 클라이언트 전자 장치는 클라이언트 전자 장치의 보안 영역 내에 클라이언트 자격 증명을 저장하기 전에, 클라이언트 전자 장치가 손상 안된 상태인지 여부를 판단할 수 있다.
도 8은 본 개시의 여러 실시예들에 따른 하드웨어의 블럭도를 도시한다.
도 8을 참조하면, 하드웨어(801)는 예를 들면, 전자 장치(101)의 일부 또는 모두일 수 있다. 도 8을 참조하면, 하드웨어(801)는 하나 이상의 애플리케이션 프로세서(AP)(810), 통신 모듈(820), 가입자 식별 모듈(SIM) 카드(824), 메모리(830), 센서 모듈(840), 입력 모듈(850), 디스플레이 모듈(860), 인터페이스(870), 오디오 모듈(880), 카메라 모듈(891), 전력 관리 모듈(895), 배터리(896), 인디케이터(indicator)(897), 모터(898), 등을 포함할 수 있다.
AP(810)는 AP(810)에 접속되는 하나 이상의 하드웨어 또는 소프트웨어 구성 요소를 제어하고, (멀티미디어 데이터를 포함하는) 데이터 처리 또는 계산 등을 실시할 수 있다. 일례로서, AP(810)는 시스템 온 칩(SoC)으로서 구현될 수 있다. AP(810)는 그래픽 프로세싱 유닛(GPU)(도시 안됨)을 포함할 수 있다.
통신 모듈(820) (예를 들면, 통신 인터페이스(160))은 전자 장치(101)와 다른 전자 장치 (예를 들면, 전자 장치(104), 서버(106), 및/또는 등) 간의 통신에서 데이터를 송수신할 수 있다. 일례로서, 통신 모듈(820)은 셀룰러 모듈(821), WiFi 모듈(823), 블루투스 모듈(825), GPS 모듈(827), NFC 모듈(828), 무선 주파수(RF) 모듈(829), 및/또는 등 중 적어도 하나 이상을 포함할 수 있다.
셀룰러 모듈(821)은, 예를 들면, 음성 콜, 비디오 콜, 문자 서비스(SMS), 인터넷 서비스, 및/또는 등의 서비스를 통신 네트워크 (예를 들면, LTE, LTE-A, CDMA, WCDMA, UMTS, 와이브로, GSM, 및/또는 등)를 통하여 제공할 수 있다. 일례로서, 셀룰러 모듈(821)은 가입자 식별 모듈(SIM) 카드 (예를 들면, SIM 카드(824))를 사용하여 통신 네트워크 내의 전자 장치를 구별하고 허가할 수 있다. 본 개시의 여러 실시예들에 따르면, 셀룰러 모듈(821)은 AP(810)의 기능의 적어도 일부를 실행할 수 있다. 예를 들면, 셀룰러 모듈(821)은 멀티미디어 제어 기능의 적어도 일부를 실행할 수 있다.
본 개시의 여러 실시예에 따르면, 통신 인터페이스(820) 및/또는 셀룰러 모듈(821)은 통신 프로세서(CP)를 포함할 수 있다. 일례로서, 셀룰러 모듈(821)은 SoC로서 실현될 수 있다.
도 8에서 AP(810)와는 별개의 구성 요소로서 셀룰러 모듈(821) (예를 들면, CP), 메모리(830), 전력 관리 모듈(895) 등의 구성 요소를 도시한다 하더라도, 본 개시의 여러 실시예들에 따르면, AP(810)는 전술한 구성 요소 (예를 들면, 셀룰러 모듈(821)) 중 하나 이상을 포함하거나 통합될 수 있다.
본 개시의 여러 실시예들에 따르면, AP(810), 셀룰러 모듈(821) (예를 들면, CP), 및/또는 등은 휘발성 메모리에 로딩함으로써 비휘발성 메모리 또는 다른 구성 요소 중 적어도 하나로부터 수신된 명령 또는 데이터를 처리할 수 있다. AP(810), 셀룰러 모듈(821), 통신 인터페이스(820), 및/또는 등은, 다른 구성 요소들 중 적어도 하나로부터 수신되는 데이터 및 다른 구성 요소들 중 적어도 하나에 의해 생성되는 데이터 중 적어도 하나를 비휘발성 메모리에 저장할 수 있다.
WiFi 모듈(823), 블루투스 모듈(825), GPS 모듈(827), NFC 모듈(828), 및/또는 등은 예를 들어, 각 모듈들에 의해 수신 또는 송신된 데이터를 처리할 수 있는 하나 이상의 프로세서를 포함할 수 있다. 도 8은 셀룰러 모듈(821), WiFi 모듈(823), 블루투스 모듈(825), GPS 모듈(827), 및 다른 별도의 블록으로서의 NFC 모듈(828)을 도시하고 있지만, 본 개시의 여러 실시예들에 따르면, 셀룰러 모듈(821), WiFi 모듈(823), 블루투스 모듈(825), GPS 모듈(827), NFC 모듈(828), 및/또는 등의 임의의 (예를 들어, 2개 이상의) 조합은 집적 칩(IC) 또는 IC패키지에 포함될 수 있다. 예를 들면, 각 셀룰러 모듈(821), WiFi 모듈(823), 블루투스 모듈(825), GPS 모듈(827), NFC 모듈(828), 및/또는 등에 대응하는 프로세서의 적어도 일부는 싱글 SoC로서 구현될 수 있다. 예를 들면, 셀룰러 모듈(821)에 대응하는 CP 및 Wi-Fi모듈(823에 대응하는 Wi-Fi 프로세서는 단일 SoC로서 실현될 수 있다.
RF 모듈(829)은 예를 들면, 송신 및 RF신호를 수신할 수 있다. 도시하고 있지 않지만, RF 모듈(829)은 트랜시버, 전력 증폭 모듈(PAM), 주파수 필터, 저잡음 증폭기(LNA), 및/또는 등을 포함할 수 있다. RF모듈(834)은 예를 들면, 도체 또는 도전성 와이어 등을 위한, 전자기파(EM waves)를 (예를 들면, 자유 공간 등에서) 송수신하기 위한 하나 이상의 구성 요소를 포함할 수 있다. 도 8은 셀룰러 모듈(821), WiFi 모듈(823), 블루투스 모듈(825), GPS 모듈(827), NFC 모듈(828)이 하나의 RF 모듈(829)을 공유하고 있는 것으로 도시하고 있지만, 본 개시의 여러 실시예들에 따르면, 셀룰러 모듈(821), WiFi 모듈(823), 블루투스 모듈(825), GPS 모듈(827), NFC 모듈(828), 및/또는 등 중 적어도 하나가 별도의 RF모듈을 경유하여RF신호를 송수신할 수 있다.
SIM 카드(824)는 SIM을 구현하기 위한 카드일 수 있고, 전자 장치의 지정된 위치에 배치된 슬롯에 삽입되도록 구성될 수 있다. SIM 카드(824)는 고유 식별자 (예를 들면, 집적 회로 카드 식별자(ICCID)) 가입자 정보 (예를 들면, 국제 이동 가입자 ID(IMSI)), 및/또는 등을 포함할 수 있다.
메모리(830) (예를 들면, 메모리(130))는 내부 메모리(832), 외부 메모리(834), 또는 그 조합을 포함할 수 있다.
본 개시의 여러 실시예들에 따르면, 내부 메모리(832)는 예를 들면, 휘발성 메모리 (예를 들면, 다이나믹 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM) 또는 동기 동적 랜덤 액세스 메모리(SDRAM)), 비휘발성 메모리 (예를 들면, 일회용 프로그래머블 판독 전용 메모리(OTPROM), 프로그래머블 판독 전용 메모리(PROM), 소거 가능 프로그래머블 판독 전용 메모리(EPROM), 전기적 소거가능 프로그래머블 전용 메모리(EEPROM), 마스크 ROM, 플래시 ROM, NAND플래시 메모리, NOR 플래시 메모리), 및/또는 등 중 적어도 하나일 수 있다.
본 개시의 여러 실시예들에 따르면, 내부 메모리(832)는 솔리드 스테이트 드라이브(SSD)일 수 있다. 일예로서, 외부 메모리(834)는 플래시 드라이브 (예를 들면, 콤팩트 플래시(CF드라이브), 보안 디지털(SD), 마이크로 디지털(마이크로 SD), 미니 보안 디지털(미니 SD), xD(exteme Digital), 보안 메모리 스틱, 및/또는 등)일 수 있다. 외부 메모리(834)는 각종 인터페이스를 통하여 전자 장치(801)에 동작가능하게 결합될 수 있다. 본 개시의 여러 실시예들에 따르면, 전자 장치(801)는 예를 들면, 하드 디스크 드라이브(HDD), 및/또는 등과 같은 기록 장치(또는 기록 매체)를 포함할 수 있다.
예를 들면, 센서 모듈(840)은 전자 장치(801), 및/또는 등에 연관된 동작 상태를 검출하는 물리적/환경적 특성을 측정하고, 그 측정 및/또는 검출된 정보를 전기 신호 또는 전자기 신호와 같은 신호들로 변환할 수 있다. 일례로서, 센서 모듈(840)은 제스처 센서(840A), 자이로 센서(840B), 대기압 센서(840C), 자기 센서(840D), 가속도계(840E), 그립 센서(840F), 근접 센서(840G), RGB 센서(840H), 생체 센서(840I), 온도/습도 센서(840J), 광도 센서(840K), 자외선(UV) 센서(840M), 및/또는 등 중 적어도 하나를 포함할 수 있다. 센서 모듈(840)은 전자 장치의 동작 상태를 검출 및/또는 물리적 특성을 측정해, 이 검출된 또는 측정된 정보를 전기 신호로 변환할 수 있다. 추가적 또는 대체적으로, 센서 모듈(840)은 또한, 예를 들면, 전기 노우즈 센서(electrical-nose sensor)(도시 안됨), 근전도(electromyography: EMG) 센서 (도시 안됨), 뇌파(EEG) 센서 (도시 안됨), 적외선(IR) 센서 (도시 안됨), 아이 스캔 센서 (예를 들면, 홍채 센서)(도시 안됨), 지문 센서, 및/또는 등을 포함할 수 있다. 센서 모듈(840)은 또한, 그 중에 포함되는 하나 이상의 센서를 제어하기 위한 제어 회로를 포함할 수 있다.
입력 모듈(850)은 터치 패널(852), (디지털) 펜 센서(pen sensor)(854), 키(856), 초음파 입력 장치(858), 및/또는 등을 포함할 수 있다.
일례로서, 터치 패널(852)은 용량성, 저항성, 적외선, 초음파법, 및/또는 등을 이용해 터치 입력을 검출할 수 있다. 터치 패널(852)은 터치 패널 콘트롤러 (도시 안됨)를 포함할 수 있다. 일례로서, 정전 용량식 터치 패널은 근접 입력 (예를 들어, 호버링 입력) 이외에도 또는 대안적으로, 물리적인 터치 입력을 검출할 수 있다. 터치 패널(852)은 또한 촉각층(tactile layer)을 포함할 수 있다. 본 개시의 여러 실시예들에 따르면, 터치 패널(852)은 촉각층을 사용하여 사용자에게 촉각 피드백(haptic feedback)을 제공할 수 있다.
일례로서, (디지털) 펜 센서(854)는 사용자로부터의 터치 입력을 수신하는 것과 동일하거나 또는 유사한 방법을 사용하여 또는 별개의 검출 시트 (예를 들면, 디지타이저)를 사용하여 실현될 수 있다.
일례로서, 키(856)는 키 패드, 터치 키, 및/또는 등 일수 있다.
일례로서, 초음파 입력장치(858)는 마이크 (예를 들면, 마이크(888)), 초음파 신호를 생성하는 것이 가능한 디바이스에 의해서 생성된 초음파 신호를 사용하여 검출함으로써 데이터를 식별하도록 구성되는 디바이스일 수 있다. 초음파 입력장치(858)는 무선으로 데이터를 검출할 수 있다.
본 개시의 여러 실시예들에 따르면, 전자 장치(801)는 통신 모듈(820)을 이용하여 전자 장치(801)에 접속된 외부 장치 (예를 들면, 네트워크, 컴퓨터 또는 서버)로부터 사용자 입력을 수신할 수 있다.
디스플레이 모듈(860) (예를 들면, 디스플레이(150))은 패널(862), 홀로그램 디바이스(864), 프로젝터(866), 및/또는 등을 포함할 수 있다. 일례로서, 패널(862)은 예를 들면, 액정 디스플레이(LCD), 액티브 매트릭스 유기 발광 다이오드(AM-OLED) 디스플레이, 및/또는 등을 포함할 수 있다. 일례로서, 패널(862)은 플렉서블, 투명, 및/또는 착용 가능하도록 구성할 수 있다. 패널(862) 및 터치 패널(852)은 단일 모듈로서 구현될 수 있다. 홀로그램 디바이스(864)는 3차원 화상을 제공할 수 있다. 예를 들면, 홀로그램 디바이스(864)는 빈 공간에서 3차원 화상을 제공하기 위해서 광파 간섭을 이용할 수 있다. 프로젝터(866)는 표면 (예를 들면, 벽, 스크린, 및/또는 등)에 빛을 투사해 화상을 제공할 수 있다. 일례로서, 표면은 전자 장치(801)의 내부 또는 외부에 배치할 수 있다. 본 개시의 여러 실시예들에 따르면, 디스플레이 모듈(860)은 패널(862), 홀로그램 소자(864), 프로젝터(866), 및/또는 등을 제어하기 위한 제어 회로를 포함할 수 있다.
인터페이스(870)는 예를 들면, 고해상도 멀티미디어 인터페이스(HDMI)(872), 유니버설 시리얼 버스(USB)(874), 프로젝터(876), 또는 D-초소형(D-sub)(878), 및/또는 등을 포함할 수 있다. 일례로서, 인터페이스(870)는 통신 인터페이스(820)의 일부 일 수 있다. 또한 또는 대안적으로, 인터페이스(870)는 예를 들어, 모바일 고해상도 링크(MHL), 보안 디지털(SD)/멀티미디어 카드(MMC), 적외선 데이터 협회(IrDA), 및/또는 등에 대한 하나 이상의 인터페이스를 포함할 수 있다.
오디오 모듈(880) 사운드를 전기 신호로 인코딩/디코딩할 수 있다. 본 개시의 여러 실시예들에 따르면, 오디오 모듈(880)의 적어도 일부는 I/O인터페이스(140)의 일부일 수 있다. 일예로서, 오디오 모듈(880)은 스피커(882), 리시버(884), 이어폰(886), 마이크(888), 및/또는 등으로/로부터 입력 또는 출력되는 음성 정보를 인코딩/디코딩할 수 있다.
카메라 모듈(891)은 정지 화면 및/또는 비디오를 촬영할 수 있다. 본 개시의 여러 실시예들에 따르면, 카메라 모듈(891)은 하나 이상의 화상 센서 (예를 들면, 전방 센서 모듈, 후방 센서 모듈, 및/또는 등)(도시 안됨), 화상 신호 프로세서(ISP)(도시 안됨), 플래시 (예를 들면, 발광 다이오드(플래시LED), 크세논 램프, 및/또는 등) (도시 안됨)를 포함할 수 있다.
전력 관리 모듈(895)은 전자 장치(801)의 전력을 관리할 수 있다. 도시되어 있지는 않지만, 전력 관리 모듈(895)은 예를 들어, 전력 관리 집적 회로(PMIC), 충전기 집적회로(충전기 IC), 배터리 게이지, 연료계, 및/또는 등을 포함할 수 있다.
일례로서, PMIC는 집적회로 또는 SoC의 반도체 내에 배치할 수 있다. 전자 장치(801)의 충전 방법은 유선 또는 무선 충전을 포함할 수 있다. 충전기 IC는 배터리를 충전할 수 있고, 과도한 전압 또는 과도 전류가 전자 장치(801)에 들어가는 것을 방지할 수 있다. 본 개시의 여러 실시예들에 따르면, 충전기 IC는 유선 충전 IC나 무선 충전 IC 중 적어도 하나를 포함할 수 있다. 일례로서, 무선 충전기 IC는 자기 공명형, 자기 유도형, 전자파형, 및/또는 등일 수 있다. 일례로서 무선 충전기 IC는 코일 루프, 공진 회로, 정류기, 및/또는 등과 같은 회로를 포함할 수 있다.
일례로서, 배터리 게이지는 충전 수준, 충전 중의 전압, 배터리(896)의 온도, 및/또는 등을 측정할 수 있다.
일례로서, 배터리(896)는 전자 장치(801)에 전력을 공급할 수 있다. 일례로서, 배터리(896)는 충전식 배터리, 솔라 배터리, 및/또는 등일 수 있다.
인디케이터(897)는 전자 장치(801) 또는 그 일부 (예를 들면, AP(810))의 하나 이상의 상태 (예를 들면, 부팅 상태, 메시지 상태, 충전 상태, 및/또는 등)를 나타낼 수 있다. 모터(898)는 전기 신호를 기계적 진동으로 변환할 수 있다.
도시하고 있지 않지만, 전자 장치(801)는 모바일 TV를 지지하기 위한 하나 이상의 장치 (예를 들면, 그래픽스 프로세싱 유닛(GPU), 및/또는 등)를 포함할 수 있다. 모바일 TV를 지원하기 위한 장치는 예를 들면, 디지털 멀티미디어 방송(DMB), 디지털 비디오 방송(DVB), 미디어 플로우, 및/또는 등과 호환하는 미디어 데이터의 처리를 지원할 수 있다.
본 명세서에서 특허 청구의 범위 및 상세한 설명에 의하면, 본 개시의 여러 실시예들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 실현될 수 있는 것은 당연한 일일 것이다.
임의의 이러한 소프트웨어는 비일시적인 컴퓨터 판독가능 매체(non-transitory computer readable storage medium)에 저장될 수 있다. 비일시적인 컴퓨터 판독가능 매체는 하나 이상의 프로그램 (소프트웨어 모듈)을 저장하고, 상기 하나 이상의 프로그램은 전자 장치내의 하나 이상의 프로세서에 의해서 실행되었을 때, 전자 장치로 하여금 본 개시의 방법을 수행하게 하는 명령어들을 포함한다.
임의의 그러한 소프트웨어는 예를 들면, 판독 전용 메모리(ROM), 소거가능 또는 재기입 가능 여부와 같은 스토리지 디바이스 등의 휘발성 또는 비휘발성 스토리지의 형태로 저장될 수 있거나, 또는 예를 들면, 랜덤 액세스 메모리(RAM), 메모리 칩, 디바이스 또는 집적 회로와 같은 메모리의 형태로 저장될 수 있거나 또는 콤팩트 디스크(CD), 디지털 다용도 디스크(DVD), 자기 디스크, 또는 자기 테이프 등과 같이 광학적 또는 자기적으로 판독가능한 매체 상에 저장될 수 있다. 저장 장치 및 저장 매체는 본 개시의 여러 실시예들을 실시하는 명령어들을 포함하는 프로그램 또는 프로그램들을 저장하기 적합한 비일시적 기계 판독가능 스토리지의 여러 실시예들임을 알 것이다. 따라서, 여러 실시예들은 본 명세서의 청구항들 중 어느 하나에 청구된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 그러한 프로그램을 저장하는 비일시적인 기계 판독가능 스토리지를 제공한다.
본 개시는 여러 실시예들을 참조하여 도시되고 설명되었지만, 첨부의 특허 청구의 범위 및 그 균등물에 의해서 정의된 개시의 사상 및 범위를 벗어나지 않고 여러 실시예들의 형태 및 상세사항에서 여러가지 변형이 이루어질 수 있음을 당업자라면 알 것이다. 본 개시의 여러 실시예들은 예들로서만 기재되어 있는 것이고 본 개시의 범위를 한정하려 의도되는 것은 아니다. 따라서, 본 개시의 범위는 본 개시의 기술적 사상으로부터 벗어나지 않는 범위에서 이루어지는 임의의 그리고 모든 변경을 포함함을 알 것이다.
101: 전자 장치 120: 프로세서
130: 메모리 133: API
140: I/O 인터페이스 160: 통신 인터페이스
170: 보안 모듈 210: 인증 설치 모듈
220: 키 생성 모듈 230: 키리스 파일 생성 모듈
330a: 기업 네트워크 403b: MDM 서버

Claims (65)

  1. 전자 장치로서,
    보안 환경에 고유 키 및 상기 고유 키에 매칭하는 인증서를 저장하는 메모리; 및
    전자 장치의 보안 환경에서 어플리케이션을 실행하고,
    상기 어플리케이션을 이용하여 기업 네트워크(enterprise network)와의 연결을 수립하는 요청을 상기 기업 네트워크로부터 수신하고,
    상기 요청의 수신에 기초하여, 상기 어플리케이션을 이용하여 상기 전자 장치가 보안 상태에 있는지 확인하고,
    상기 전자 장치가 보안 상태에 있는 경우 상기 고유 키 및 상기 고유 키에 매칭하는 상기 인증서에 기초하여 상기 기업 네트워크와 연결을 수립하고,
    상기 인증서를 상기 기업 네트워크에 통신하도록 구성되는 적어도 하나의 프로세서를 포함하며,
    상기 고유 키 및 상기 고유 키에 매칭하는 상기 인증서 중 적어도 하나가 상기 전자 장치를 식별하는, 전자 장치.
  2. 제 1 항에 있어서,
    상기 보안 환경은 상기 전자 장치의 제조자에 의해 제어되고,
    상기 고유 키는 공용 서브 키(public sub-key) 및 개인 서브 키(private sub-key)를 포함하는, 전자 장치.
  3. 제 1 항에 있어서,
    상기 전자 장치는 상기 보안 환경에 저장된 데이터에 액세스하는 것과 상기 보안 환경에 데이터를 저장하는 것 중 하나에 앞서 상기 보안 환경이 손상(compromised)되지 않음을 확인하기 위해 계산을 통한 점검(computational check)을 수행하고,
    상기 계산을 통한 점검은 보안 환경의 손상 여부를 판단하기 위해 수행되는, 전자 장치.
  4. 제 1 항에 있어서,
    상기 고유 키 및 상기 고유 키와 일치하는 상기 인증서는 상기 전자 장치의 제조 중에 상기 보안 환경에 설치되고,
    상기 고유 키에 일치하는 상기 인증서는 상기 전자 장치를 고유하게 (uniquely) 식별하는 데이터를 포함하는, 전자 장치.
  5. 제 1 항에 있어서,
    상기 보안 환경과 통신하도록 구성되는 정상 환경(normal environment)을 더 포함하고,
    상기 정상 환경과 상기 보안 환경은 암호 토큰 인터페이스(cryptographic token interface)를 사용하여 통신하도록 구성되는, 전자 장치.
  6. 제 1 항에 있어서,
    상기 보안 환경은 개인 키/공용 키 쌍을 랜덤하게 생성하는 키 생성기(key generator)를 실행하도록 구성되고,
    상기 보안 환경은 장치 관리자로부터 수신한 클라이언트 자격 증명(client credential) 및 애플리케이션 자격 증명 중 적어도 하나를 생성하기 위한 명령에 응답하여, 상기 개인 키/공용 키 쌍을 랜덤하게 생성하도록 상기 키 생성기를 실행하고,
    상기 키 생성기는 하이 엔트로피 하드웨어 지원 키 생성기(high entropy hardware backed key generator)이고,
    상기 클라이언트 자격 증명 및 상기 애플리케이션 자격 증명 중 적어도 하나는 상기 보안 환경에 저장되는, 전자 장치.
  7. 제 6 항에 있어서,
    상기 보안 환경은 상기 생성된 개인 키/공용 키 쌍 중 상기 개인 키가 상기 보안 환경 외부의 엔티티(entity)와 통신하는 것을 방지하도록 구성되는, 전자 장치.
  8. 제 1 항에 있어서,
    상기 보안 환경은 상기 보안 환경에 저장된 자격 증명에 매칭하는 인증서를 인증 기관(Certification Authority: CA)에 통신하도록 구성되고,
    상기 보안 환경은 상기 보안 환경에 저장된 상기 자격 증명에 매칭하는 상기 인증서에 대응하는 서명된 인증서(signed certificate)를 수신하도록 구성되고,
    상기 서명된 인증서는 상기 CA에 의해 서명되는, 전자 장치.
  9. 제 8 항에 있어서,
    상기 보안 환경은 상기 보안 환경에 저장된 상기 자격 증명에 매칭하는 상기 인증서 및 상기 CA에 의해 서명된 상기 인증서 중 적어도 하나를, 간이 인증서 등록 프로토콜(Simple Certificate Enrollment Protocol: SCEP), 인증서 관리 프로토콜(CMP), 및 암호 메시지 구문(CMS)에 대한 인증서 관리 프로토콜(CMC) 중 하나 이상을 사용하여 통신하도록 구성되는, 전자 장치.
  10. 제 1 항에 있어서,
    보안 에이전트(security agent)를 포함하는 정상 환경을 더 포함하고,
    상기 보안 에이전트는 상기 보안 환경에 사용자 자격 증명을 통신하도록 구성되고,
    상기 사용자 자격 증명은 개인 키, 인증서, 및 패스워드 중 하나 이상을 포함하고,
    상기 보안 에이전트는 신뢰된 사용자 인터페이스(trusted user interface: TUI)를 포함하고,
    상기 보안 에이전트는 상기 보안 환경에 PKCS11 패스워드를 통신하도록 구성되는, 전자 장치.
  11. 제 1 항에 있어서,
    상기 보안 환경은 적어도 하나의 자격 증명을 포함하고,
    상기 적어도 하나 자격 증명은 다른 전자 장치로 이동 불가하도록(non-transferable) 구성되고,
    상기 적어도 하나의 자격 증명은 상기 전자 장치에 고유한 암호화를 사용하여 암호화되고,
    상기 적어도 하나의 자격 증명은 상기 전자 장치에 고유한 암호화를 사용하여 암호화되는 암호 데이터를 포함하는, 전자 장치.
  12. 제 1 항에 있어서,
    보안 요소(secure element: SE) 스토리지를 더 포함하고,
    상기 SE 스토리지는 암호 데이터를 저장하는, 전자 장치.
  13. 전자 장치에 인증 정보를 저장하기 위한 방법으로서,
    상기 전자 장치에 의해, 상기 전자 장치의 보안 환경에서 고유 키 및 상기 고유 키에 매칭하는 인증서를 수신하는 단계;상기 전자 장치의 보안 환경에 상기 고유 키 및 상기 고유 키에 매칭하는 상기 인증서를 저장하는 단계;
    어플리케이션을 이용하여 기업 네트워크(enterprise network)와의 연결을 수립하는 요청을 상기 기업 네트워크로부터 수신하는 단계;
    상기 수신된 요청에 기초하여 상기 전자 장치가 보안 상태에 있는지 확인하는 단계;
    상기 전자 장치가 보안 상태에 있는 경우 상기 고유 키 및 상기 고유 키에 매칭하는 상기 인증서에 기초하여 상기 기업 네트워크와 연결을 수립하는 단계;
    상기 인증서를 상기 기업 네트워크에 전송하는 단계를 포함하며,
    상기 고유 키 및 상기 고유 키에 매칭하는 상기 인증서 중 적어도 하나가 상기 전자 장치를 식별하는, 방법.
  14. 제 13 항에 있어서,
    상기 보안 환경은 상기 전자 장치의 제조자에 의해서 제어되고,
    상기 고유 키는 공용 서브 키; 및
    개인 서브 키를 포함하는, 방법.
  15. 제 13 항에 있어서,
    상기 전자 장치의 상태에 대해 계산을 통한 점검(computational check)을 수행하는 단계; 및
    상기 전자 장치의 상기 보안 환경이 손상되었는지 여부를 상기 계산을 통한 점검에 따라 판단하는 단계를 더 포함하고,
    상기 전자 장치의 상태에 대해 계산을 통한 점검을 수행하는 단계 및 상기 전자 장치의 상기 보안 환경이 손상되었는지 여부를 판단하는 단계는,
    상기 보안 환경에 저장된 데이터에 액세스하는 것과 상기 보안 환경에 데이터를 저장하는 것 중 하나에 앞서 상기 보안 환경이 손상되지 않음을 확인하기 위해 수행되는, 방법.
  16. 제 13 항에 있어서,
    상기 고유 키 및 상기 고유 키와 일치하는 상기 인증서는 상기 전자 장치에 의해 수신되어 상기 전자 장치의 제조 중에 상기 보안 환경에 저장되고,
    상기 고유 키에 일치하는 상기 인증서는 상기 전자 장치를 고유하게(uniquely) 식별하는 데이터를 포함하는, 방법.
  17. 제 13 항에 있어서,
    상기 전자 장치의 정상 환경과 보안 환경 간에 데이터를 통신하는 단계;
    암호 토큰 인터페이스(cryptographic token interface)를 사용하여 상기 정상 환경과 상기 보안 환경 간의 데이터를 통신하는 단계를 포함하는 방법.
  18. 제 13 항에 있어서,
    상기 보안 환경에서, 개인 키/공용 키 쌍을 랜덤하게 생성하는 키 생성기를 실행하는 단계;,
    상기 키 생성기는 하이 엔트로피 하드웨어 지원 키 생성기(high entropy hardware backed key generator)이고,
    상기 전자 장치의 정상 환경에서 동작하는 보안 에이전트에 의해, 클라이언트 자격 증명(client credential) 및 애플리케이션 자격 증명 중 적어도 하나를 생성하기 위한 요청을 장치 관리자로부터 수신하는 단계;
    상기 보안 에이전트에 의해, 상기 보안 환경에서 클라이언트 자격 증명 및 애플리케이션 자격 증명 중 적어도 하나를 생성하도록 명령하는 단계;
    클라이언트 자격 증명 및 애플리케이션 자격 증명 중 적어도 하나를 생성하도록 하는 명령의 수신에 응답하여, 상기 개인 키/공용 키 쌍을 랜덤하게 생성하는 키 생성기를, 상기 보안 환경에서 실행하는 단계; 및
    상기 클라이언트 자격 증명 및 상기 애플리케이션 자격 증명 중 적어도 하나를 상기 보안 환경에 저장하는 단계를 더 포함하는, 방법.
  19. 제 18 항에 있어서,
    상기 보안 환경이, 상기 생성된 개인 키/공용 키 쌍 중 상기 개인 키가 상기 보안 환경 외부의 엔티티에 통신하는 것을 방지하는 단계를 더 포함하는, 방법.
  20. 제 13 항에 있어서,
    상기 보안 환경에 저장된 자격 증명에 매칭하는 인증서를, 상기 전자 장치에 의해 인증 기관(Certification Authority: CA)으로 통신하는 단계;
    상기 보안 환경에 저장된 상기 자격 증명에 매칭하는 상기 인증서에 대응하는 서명된 인증서(signed certificate)를, 상기 전자 장치에 의해 수신하는 단계; 및
    상기 서명된 인증서를, 상기 전자 장치에 의해 상기 보안 환경에 저장하는 단계를 더 포함하고,
    상기 서명된 인증서는 상기 CA에 의해 서명되는, 방법.
  21. 제 20 항에 있어서,
    상기 보안 환경에 저장된 상기 자격 증명에 매칭하는 상기 인증서를 상기 CA로 전송하는 단계는,
    상기 보안 환경에 저장된 상기 자격 증명과 일치하는 상기 인증서 및 상기 CA에 의한 상기 서명된 인증서 중 적어도 하나를, 간이 인증서 등록 프로토콜(SCEP), 인증서 관리 프로토콜(CMP), 및 암호 메세지 구문(CMS)에 대한 인증서 관리 프로토콜(CMC) 중 하나 이상을 사용하여 상기 전자 장치에 의해서 통신하는 단계를 포함하는, 방법.
  22. 제 13 항에 있어서,
    상기 전자 장치의 정상 환경에서 보안 에이전트(security agent)를 저장하는 단계를 더 포함하고,
    상기 보안 에이전트는 상기 보안 환경에 사용자 자격 증명을 통신하도록 구성되고,
    상기 사용자 자격 증명은 개인 키, 인증서, 및 패스워드 중 하나 이상을 포함하고,
    상기 보안 에이전트는 신뢰된 사용자 인터페이스(trusted user interface: TUI)를 포함하고,
    상기 보안 에이전트에 의해, PKCS11 패스워드를 상기 보안 환경에 통신하는 단계를 더 포함하는, 방법.
  23. 제 22 항에 있어서,
    상기 보안 환경은 적어도 하나의 자격 증명을 포함하고,
    상기 적어도 하나 자격 증명은 다른 전자 장치로 이동 불가하도록(non-transferable) 구성되고,
    상기 적어도 하나의 자격 증명을 상기 전자 장치에 고유한 암호화를 사용하여 암호화하는 단계를 더 포함하고,
    상기 적어도 하나의 자격 증명은 상기 전자 장치에 고유한 암호화를 사용하여 암호화되는 암호 데이터를 포함하는, 방법.
  24. 제 13 항에 있어서,
    상기 전자 장치의 보안 요소(secure element: SE) 스토리지에 암호 데이터를 저장하는 단계를 더 포함하는, 방법.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
KR1020150022731A 2014-02-21 2015-02-13 클라이언트 자격 증명 인증 방법 및 장치 KR102289713B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP15751512.3A EP3108613B1 (en) 2014-02-21 2015-02-16 Method and apparatus for authenticating client credentials
PCT/KR2015/001589 WO2015126136A1 (en) 2014-02-21 2015-02-16 Method and apparatus for authenticating client credentials
CN201580009833.7A CN106031087B (zh) 2014-02-21 2015-02-16 用于认证客户端凭证的方法和设备

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461942901P 2014-02-21 2014-02-21
US61/942,901 2014-02-21
US14/586,045 2014-12-30
US14/586,045 US9635014B2 (en) 2014-02-21 2014-12-30 Method and apparatus for authenticating client credentials

Publications (2)

Publication Number Publication Date
KR20150099441A KR20150099441A (ko) 2015-08-31
KR102289713B1 true KR102289713B1 (ko) 2021-08-17

Family

ID=53883389

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150022731A KR102289713B1 (ko) 2014-02-21 2015-02-13 클라이언트 자격 증명 인증 방법 및 장치

Country Status (4)

Country Link
US (1) US9635014B2 (ko)
EP (1) EP3108613B1 (ko)
KR (1) KR102289713B1 (ko)
CN (1) CN106031087B (ko)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542558B2 (en) * 2014-03-12 2017-01-10 Apple Inc. Secure factory data generation and restoration
GB201408539D0 (en) * 2014-05-14 2014-06-25 Mastercard International Inc Improvements in mobile payment systems
US9736145B1 (en) 2014-08-01 2017-08-15 Secureauth Corporation Generation and validation of derived credentials
US10185669B2 (en) * 2014-08-04 2019-01-22 Oracle International Corporation Secure key derivation functions
US9148408B1 (en) 2014-10-06 2015-09-29 Cryptzone North America, Inc. Systems and methods for protecting network devices
US9906497B2 (en) 2014-10-06 2018-02-27 Cryptzone North America, Inc. Multi-tunneling virtual network adapter
US9668136B2 (en) * 2015-09-25 2017-05-30 Citrix Systems, Inc. Using derived credentials for enrollment with enterprise mobile device management services
US9866519B2 (en) 2015-10-16 2018-01-09 Cryptzone North America, Inc. Name resolving in segmented networks
US9736120B2 (en) 2015-10-16 2017-08-15 Cryptzone North America, Inc. Client network access provision by a network traffic manager
US10412048B2 (en) 2016-02-08 2019-09-10 Cryptzone North America, Inc. Protecting network devices by a firewall
US10142323B2 (en) 2016-04-11 2018-11-27 Huawei Technologies Co., Ltd. Activation of mobile devices in enterprise mobile management
US9560015B1 (en) 2016-04-12 2017-01-31 Cryptzone North America, Inc. Systems and methods for protecting network devices by a firewall
CN105763745A (zh) * 2016-04-26 2016-07-13 努比亚技术有限公司 一种数据保护方法、装置及移动终端
US10826875B1 (en) * 2016-07-22 2020-11-03 Servicenow, Inc. System and method for securely communicating requests
US11050605B2 (en) * 2016-08-01 2021-06-29 Data I/O Corporation Device programming with system generation
US9923755B2 (en) * 2016-08-01 2018-03-20 Data I/O Corporation Device programming with system generation
US10733284B2 (en) * 2016-10-06 2020-08-04 Samsung Electronics Co., Ltd. Trusted execution environment secure element communication
US10523678B2 (en) 2016-10-25 2019-12-31 Sean Dyon System and method for architecture initiated network access control
US10505983B2 (en) * 2016-11-09 2019-12-10 Airwatch Llc Enforcing enterprise requirements for devices registered with a registration service
US10033722B2 (en) * 2016-11-21 2018-07-24 Citrix Systems, Inc. Mobile device using shared digital certificate for different managed enterprise applications and related methods
US11165565B2 (en) 2016-12-09 2021-11-02 Microsoft Technology Licensing, Llc Secure distribution private keys for use by untrusted code
US10587421B2 (en) * 2017-01-12 2020-03-10 Honeywell International Inc. Techniques for genuine device assurance by establishing identity and trust using certificates
CN108509811B (zh) * 2017-02-28 2022-03-22 菜鸟智能物流控股有限公司 一种应用安装设备的识别方法和相关装置
US10623389B2 (en) * 2017-05-11 2020-04-14 International Business Machines Corporation Authenticating a device based on communication patterns in a group of devices
US10887306B2 (en) 2017-05-11 2021-01-05 International Business Machines Corporation Authenticating an unknown device based on relationships with other devices in a group of devices
US11151253B1 (en) 2017-05-18 2021-10-19 Wells Fargo Bank, N.A. Credentialing cloud-based applications
US10749870B2 (en) 2017-11-21 2020-08-18 Vmware, Inc. Adaptive device enrollment
US10972468B2 (en) 2017-11-21 2021-04-06 Vmware, Inc. Adaptive device enrollment
US10798103B2 (en) * 2017-11-21 2020-10-06 VWware, Inc. Adaptive device enrollment
US10986078B2 (en) 2017-11-21 2021-04-20 Vmware, Inc. Adaptive device enrollment
GB2568873B (en) * 2017-11-23 2021-09-22 Advanced Risc Mach Ltd Distributed management system for internet of things devices and methods thereof
WO2019133769A1 (en) * 2017-12-29 2019-07-04 Idee Limited Single sign on (sso) using continuous authentication
KR102511778B1 (ko) * 2018-03-05 2023-03-21 삼성전자주식회사 전자 디바이스 및 전자 디바이스의 디지털 키 프로비저닝 수행 방법
US11190827B2 (en) 2018-04-30 2021-11-30 Qualcomm Incorporated Method for broadcast service signaling
US10506436B1 (en) 2018-06-11 2019-12-10 Anduril Industries Inc. Lattice mesh
CN109274684B (zh) * 2018-10-31 2020-12-29 中国—东盟信息港股份有限公司 基于eSIM通讯与导航服务为一体的物联网终端系统及其实现方法
US11089475B2 (en) * 2018-11-06 2021-08-10 Red Hat, Inc. Booting and operating computing devices at designated locations
US10588013B1 (en) * 2019-01-18 2020-03-10 T-Mobile Usa, Inc. Device activation enablement
EP4007331A1 (en) * 2019-07-03 2022-06-01 Google LLC Anonymous device authentication
JP6715379B1 (ja) * 2019-07-11 2020-07-01 一般財団法人日本情報経済社会推進協会 電子証明書導入・運用システム、電子証明書導入・運用方法、及び証明書申請装置
US10805083B1 (en) 2019-09-04 2020-10-13 Capital One Services, Llc Systems and methods for authenticated communication sessions
CN110943843B (zh) * 2019-11-20 2022-03-25 艾体威尔电子技术(北京)有限公司 一种适用于小内存嵌入式设备的pkcs#7签名实现方法
WO2021112603A1 (en) * 2019-12-06 2021-06-10 Samsung Electronics Co., Ltd. Method and electronic device for managing digital keys
EP4088209A4 (en) * 2020-01-07 2023-12-06 Visa International Service Association UNIFIED CONTACTLESS CORE SYSTEM AND METHOD
JP7102461B2 (ja) * 2020-06-08 2022-07-19 一般財団法人日本情報経済社会推進協会 電子証明書導入・運用システム、電子証明書導入・運用方法、及び証明書申請装置
US20210400483A1 (en) * 2020-06-18 2021-12-23 Nec Corporation Of America Verifying a path of a mobile wireless device based on wireless mapping
DE112021006075T5 (de) * 2020-11-19 2023-09-07 Spintly Inc. System zum speichern und aktualisieren von berechtigungsnachweisen auf einer physischen zugangsvorrichtung und einem nfc-tag unter verwendung von drahtlosen ineinandergreifenden netzwerken und verfahren dazu
US20230140517A1 (en) * 2021-10-28 2023-05-04 Arris Enterprises Llc Access-point passphrase identification using key matching
US11706207B1 (en) * 2022-11-22 2023-07-18 Integrity Security Services Llc Application programming interface for certificate management systems
US11750732B1 (en) * 2023-02-20 2023-09-05 14788591 Canada Inc. System for introducing features to an in-vehicle infotainment system and method of use thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110091039A1 (en) 2008-06-23 2011-04-21 Stephan Spitz Releasing a service on an electronic appliance
US20120108205A1 (en) 2010-10-28 2012-05-03 Schell Stephen V Methods and apparatus for storage and execution of access control clients
US20130227646A1 (en) 2012-02-14 2013-08-29 Apple Inc. Methods and apparatus for large scale distribution of electronic access clients

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008104934A1 (en) * 2007-02-26 2008-09-04 Nokia Corporation Apparatus, method and computer program product providing enforcement of operator lock
EP2179532B1 (en) * 2007-08-06 2019-07-10 Bernard De Monseignat System and method for authentication, data transfer, and protection against phishing
US9443068B2 (en) * 2008-02-20 2016-09-13 Micheal Bleahen System and method for preventing unauthorized access to information
US8402111B2 (en) 2009-01-28 2013-03-19 Headwater Partners I, Llc Device assisted services install
US20100077208A1 (en) 2008-09-19 2010-03-25 Microsoft Corporation Certificate based authentication for online services
US8578153B2 (en) * 2008-10-28 2013-11-05 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for provisioning and managing a device
US8793758B2 (en) * 2009-01-28 2014-07-29 Headwater Partners I Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US20120246470A1 (en) * 2010-02-16 2012-09-27 Nicolson Kenneth Alexander Information processing device, information processing system, software routine execution method, and remote attestation method
US20120084562A1 (en) * 2010-10-04 2012-04-05 Ralph Rabert Farina Methods and systems for updating a secure boot device using cryptographically secured communications across unsecured networks
US8953790B2 (en) * 2011-11-21 2015-02-10 Broadcom Corporation Secure generation of a device root key in the field
US8392712B1 (en) 2012-04-04 2013-03-05 Aruba Networks, Inc. System and method for provisioning a unique device credential
US9436940B2 (en) * 2012-07-09 2016-09-06 Maxim Integrated Products, Inc. Embedded secure element for authentication, storage and transaction within a mobile terminal
US8782401B2 (en) * 2012-09-26 2014-07-15 Intel Corporation Enhanced privacy ID based platform attestation
WO2015094261A1 (en) * 2013-12-19 2015-06-25 Intel Corporation Policy-based trusted inspection of rights managed content
US8756417B1 (en) * 2014-02-04 2014-06-17 Sypris Electronics, Llc Multi-level assurance trusted computing platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110091039A1 (en) 2008-06-23 2011-04-21 Stephan Spitz Releasing a service on an electronic appliance
US20120108205A1 (en) 2010-10-28 2012-05-03 Schell Stephen V Methods and apparatus for storage and execution of access control clients
US20130227646A1 (en) 2012-02-14 2013-08-29 Apple Inc. Methods and apparatus for large scale distribution of electronic access clients

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jan-Erik Ekberg 외, "Trusted Execution Environments on Mobile Devices ACM CCS 2013 tutorial" (2013.11.06.)

Also Published As

Publication number Publication date
EP3108613B1 (en) 2019-10-23
US9635014B2 (en) 2017-04-25
US20150244711A1 (en) 2015-08-27
EP3108613A1 (en) 2016-12-28
KR20150099441A (ko) 2015-08-31
EP3108613A4 (en) 2017-09-20
CN106031087A (zh) 2016-10-12
CN106031087B (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
KR102289713B1 (ko) 클라이언트 자격 증명 인증 방법 및 장치
US10778417B2 (en) Self-encrypting module with embedded wireless user authentication
WO2021052086A1 (zh) 一种信息处理方法及装置
US10284375B2 (en) Trust service for a client device
US10666642B2 (en) System and method for service assisted mobile pairing of password-less computer login
EP3057053B1 (en) Electronic device and method for processing secure information
TWI515601B (zh) 電子器件、用於建立及強制實行與一存取控制元件相關聯之一安全性原則之方法及安全元件
EP3061027B1 (en) Verifying the security of a remote server
US9473485B2 (en) Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing
US20200280550A1 (en) System and method for endorsing a new authenticator
CN109639427B (zh) 一种数据发送的方法及设备
US20160373430A1 (en) Distributing security codes through a restricted communications channel
US10826895B1 (en) System and method for secure authenticated user session handoff
EP3788538A1 (en) Self-encrypting module with embedded wireless user authentication
US11520859B2 (en) Display of protected content using trusted execution environment
CN109960935B (zh) 确定tpm可信状态的方法、装置及存储介质
CN109474431B (zh) 客户端认证方法及计算机可读存储介质
US9473482B2 (en) Push-based trust model for public cloud applications
KR101502999B1 (ko) 일회성 비밀번호를 이용한 본인 인증 시스템 및 방법
CN113472737B (zh) 边缘设备的数据处理方法、装置及电子设备
WO2015126136A1 (en) Method and apparatus for authenticating client credentials
Angelogianni et al. How many FIDO protocols are needed? Analysing the technology, security and compliance

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant