KR102444239B1 - 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법 - Google Patents

보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법 Download PDF

Info

Publication number
KR102444239B1
KR102444239B1 KR1020160007545A KR20160007545A KR102444239B1 KR 102444239 B1 KR102444239 B1 KR 102444239B1 KR 1020160007545 A KR1020160007545 A KR 1020160007545A KR 20160007545 A KR20160007545 A KR 20160007545A KR 102444239 B1 KR102444239 B1 KR 102444239B1
Authority
KR
South Korea
Prior art keywords
key
application processor
certificate
security element
public key
Prior art date
Application number
KR1020160007545A
Other languages
English (en)
Other versions
KR20170087678A (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 KR1020160007545A priority Critical patent/KR102444239B1/ko
Priority to CN201610974172.8A priority patent/CN107070657B/zh
Priority to US15/357,228 priority patent/US10263961B2/en
Publication of KR20170087678A publication Critical patent/KR20170087678A/ko
Application granted granted Critical
Publication of KR102444239B1 publication Critical patent/KR102444239B1/ko

Links

Images

Classifications

    • 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/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/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
    • H04L9/0841Key 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 involving Diffie-Hellman or related key agreement protocols
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/3247Cryptographic 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 digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication

Abstract

보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법이 개시된다. 본 발명의 기술적 사상에 따른 보안 칩의 동작 방법은, 공개키 기반의 통신에 관련된 디바이스 키 쌍 중 디바이스 공개키를 어플리케이션 프로세서로 제공하는 단계와, 상기 어플리케이션 프로세서로부터 상기 디바이스 공개키를 포함하는 인증서 양식에 대한 전자 서명의 요청을 수신하는 단계와, CA 개인키를 이용한 암호화 동작에 기반하여 생성된 전자 서명을 상기 어플리케이션 프로세서로 제공하는 단계 및 상기 어플리케이션 프로세서로부터 상기 전자 서명이 포함된 인증서를 수신하여 저장하는 단계를 구비하는 것을 특징으로 한다.

Description

보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법{Security Chip, Application Processor, Device including security Chip and Operating Method thereof}
본 발명의 기술적 사상은 보안 칩에 관한 것으로서, 상세하게는 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법에 관한 것이다.
일반적으로 공개키 기반 구조(Public Key Infrastructure, PKI)에서 디바이스들 사이에서 데이터는 공개키(Public Key)를 이용하여 암호화되고 개인키(또는 비밀키, Private Key)를 이용하여 복호화된다. 공개키 기반 구조(PKI)에서는 인증서 교환 방식을 통해 공개키가 전달되며, 인증서는 별도의 인증 기관(Certificate Authority)에서 생성된다.
그러나, 상기와 같은 공개키 기반 구조(PKI)에서 인증 기관(Certificate Authority)가 개입됨에 따라 비용이 많이 증가하게 되는 문제가 발생될 수 있으며, 또한 디바이스 내부에 존재할 수 있는 개인키(Private Key)의 노출 위험이 발생하게 된다.
본 발명의 기술적 사상이 해결하려는 과제는, 공개키 기반 시스템을 구축하는 데 소요되는 비용을 감소하고, 개인키 등의 중요한 정보가 노출될 가능성을 감소할 수 있는 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법을 제공하는 데 있다.
본 발명의 기술적 사상에 따른 보안 칩의 동작 방법은, 공개키 기반의 통신에 관련된 디바이스 키 쌍 중 디바이스 공개키를 어플리케이션 프로세서로 제공하는 단계와, 상기 어플리케이션 프로세서로부터 상기 디바이스 공개키를 포함하는 인증서 양식에 대한 전자 서명의 요청을 수신하는 단계와, CA 개인키를 이용한 암호화 동작에 기반하여 생성된 전자 서명을 상기 어플리케이션 프로세서로 제공하는 단계 및 상기 어플리케이션 프로세서로부터 상기 전자 서명이 포함된 인증서를 수신하여 저장하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 발명의 기술적 사상에 따른 어플리케이션 프로세서의 동작 방법에 있어서, 상기 어플리케이션 프로세서는, 공개키 기반의 통신에 관련된 하나 이상의 키들이 저장되는 보안 칩과 통신하며, 상기 보안 칩으로부터 제공된 디바이스 공개키를 포함하는 인증서 양식을 생성하는 단계와, 상기 생성된 인증서 양식에 대한 전자 서명을 상기 보안 칩으로 요청하는 단계와, 상기 보안 칩 내부의 CA 개인키를 이용하여 생성된 전자 서명을 수신하는 단계 및 상기 전자 서명이 포함된 인증서를 생성하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 발명의 기술적 사상에 따른 보안 칩의 동작 방법에 있어서, 상기 보안 칩은 동일한 디바이스 내에 장착되는 어플리케이션 프로세서와 통신하고, 상기 보안 칩에는 디바이스 공개키가 포함된 인증서 및 디바이스 개인키가 저장되며, 외부의 클라이언트와의 핸드쉐이크 과정에서, 제1 랜덤 데이터 및 상기 인증서를 상기 어플리케이션 프로세서로 제공하는 단계와, 상기 클라이언트로부터 제공되는 상기 디바이스 공개키로 암호화된 제1 정보를 상기 어플리케이션 프로세서를 통해 수신하는 단계와, 상기 디바이스 개인키를 이용하여 상기 제1 정보를 복호화하는 단계 및 상기 제1 정보를 이용한 키 합의(Key Agreement) 연산 수행 결과에 따라, 세션 키 생성을 위한 제2 정보를 상기 어플리케이션 프로세서로 제공하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 발명의 기술적 사상에 따른 보안 칩에 있어서, 상기 보안 칩은 공개키 기반의 통신을 수행하는 어플리케이션 프로세서와 통신하고, 상기 어플리케이션 프로세서의 요청에 따라, 디바이스 공개키를 포함하는 인증서 양식에 대해 전자 서명을 수행하는 인증 에이전트 및 상기 어플리케이션 프로세서로부터 상기 전자 서명이 포함된 인증서를 수신하여 저장하고, 외부의 디바이스와의 핸드쉐이크 과정에서 상기 인증서를 상기 어플리케이션 프로세서로 제공하며, 보안 프로토콜에 관련된 처리 동작들 중 적어도 일부를 상기 어플리케이션 프로세서로부터 위임받아 처리하는 프로토콜 에이전트를 구비하는 것을 특징으로 한다.
본 발명의 기술적 사상의 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법에 따르면, 인증 기관이 존재하지 않는 환경에서도 CA 개인키 등의 노출 없이 안전하게 공개키 기반의 통신을 수행할 수 있으며, 시스템 구축에 소요되는 비용을 감소할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법에 따르면, 핸드쉐이크 및 세션 과정 등을 포함하는 보안 프로토콜에서, 상대적으로 중요한 정보를 이용하는 연산을 보안 칩에 위임하여 수행할 수 있으므로, 공개키 기반의 통신에서 그 보안성을 강화할 수 있는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 디바이스를 나타내는 블록도이다.
도 2는 도 1의 보안 엘레먼트의 일 구현 예를 나타내는 블록도이다.
도 3은 도 1의 마이크로 콘트롤러 유닛의 일 구현 예를 나타내는 블록도이다.
도 4는 TLS 프로토콜이 적용된 디바이스에 포함되는 보안 엘레먼트의 일 구현 예를 나타내는 블록도이다.
도 5는 본 발명의 실시예에 따른 디바이스에서 공개키 기반의 통신을 수행하는 과정을 나타내는 블록도이다.
도 6 및 도 7은 본 발명의 실시예에 따른 보안 엘레먼트 및 어플리케이션 프로세서의 다양한 구현 예를 나타내는 블록도이다.
도 8 및 도 9는 본 발명의 실시예들에 따른 디바이스의 동작 방법을 나타내는 플로우차트이다.
도 10은 도 8 및 도 9에 도시된 실시예에 따른 디바이스에서 인증서의 생성 및 이용 절차를 나타내는 도면이다.
도 11 내지 도 14는 본 발명의 다른 실시예들에 따른 디바이스의 동작 방법을 나타내는 플로우차트이다.
도 15은 도 11 내지 도 14에 도시된 실시예에 따른 디바이스에서의 핸드쉐이크 과정의 일 예를 나타내는 도면이다.
도 16은 보안 엘레먼트와 어플리케이션 프로세서 사이의 상호 인증 절차의 일 예를 나타내는 플로우차트이다.
도 17a,b,c,d는 본 발명의 실시예에 따른 디바이스 내부에서 각종 정보들에 메시지 인증 코드가 부여되는 예를 나타내는 블록도이다.
도 18은 본 발명의 일 실시예에 따른 어플리케이션 프로세서의 일 구현 예를 나타내는 블록도이다.
도 19는 본 발명의 실시예에 따른 디바이스를 포함하는 스마트 홈 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 벗어나지 않으면서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시 예에 따른 디바이스를 나타내는 블록도이다.
도 1에 도시된 바와 같이, 디바이스(10)는 전자 장치로서 데이터를 처리할 수 있다. 일 예로서, 디바이스(10)는 이동 단말기(mobile device), 스마트 폰(smart phone), PDA(personal digital assistant), PC(personal computer), 태블릿(tablet) PC, 노트북, 넷-북(net-book), 가전 장치 등 다양한 전자 장치에 해당할 수 있다.
디바이스(10)는 보안 엘레먼트(Secure Element, 100)와 마이크로 콘트롤러 유닛(Micro Controller Unit, 200)을 포함할 수 있다. 일 예로서, 마이크로 콘트롤러 유닛(Micro Controller Unit)은 어플리케이션 프로세서(Application Processor, AP)에 해당할 수 있다. 상기 마이크로 콘트롤러 유닛 또는 어플리케이션 프로세서는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 한편, 보안 엘레먼트(100)는 마이크로 콘트롤러 유닛(200)과는 별개의 반도체 칩으로서 집적 회로(Integrated Circuit, IC)로 구현될 수 있으며, 이에 따라 보안 엘레먼트(100)는 보안 칩(Security Chip)으로 지칭될 수 있다.
마이크로 콘트롤러 유닛(200)은 디바이스(10) 내에 저장된 다양한 종류의 프로그램들 및/또는 데이터를 처리할 수 있으며, 디바이스(10)의 전반적인 동작을 제어할 수 있다. 일 실시예에 따라, 디바이스(10) 내에는 어플리케이션 등의 다양한 종류의 프로그램이 설치될 수 있으며, 적어도 일부의 프로그램은 암호화 통신이 필요한 보안이 요구되는 프로그램일 수 있다. 마이크로 콘트롤러 유닛(200)의 제어 하에서, 보안이 요구되는 프로그램이 실행됨에 따라 외부의 서버(또는, 클라이언트)와 송수신되는 데이터에 대한 암호화/복호화 동작이 수행될 수 있다.
일 실시예에 따라, 디바이스(10)는 외부의 디바이스들과 공개키 기반 구조(PKI) 하에서 통신할 수 있다. 만약, 디바이스(10)가 공개키 기반의 통신에서 서버로서 동작하는 경우에는, 디바이스(10)는 공개키(Public Key, PK) 및 개인키(Private Key, SK)를 포함하는 키 쌍(Key Pair) 중 공개키(PK)를 포함하는 인증서를 외부의 클라이언트로 제공할 수 있다. 또한, 디바이스(10)는 공개키(PK)로 암호화된 데이터를 수신하고, 이에 대해 개인키(SK)를 이용한 복호화 동작을 수행함에 따라 원본 데이터를 얻을 수 있다.
디바이스(10)가 저장하는 공개키(PK) 및 개인키(SK)는 디바이스 공개키(DEV-PK) 및 디바이스 개인키(DEV-SK)로 지칭될 수 있다. 또한, 상기 서버측에서 생성되는 디바이스 공개키(DEV-PK) 및 디바이스 개인키(DEV-SK)는 서버 공개키 및 디바이스 공개키로 지칭될 수도 있다.
한편, 디바이스(10)가 클라이언트로서 동작하는 경우에는, 디바이스(10)는 외부 서버의 키 쌍(Key Pair) 중 공개키(PK)를 포함하는 인증서를 수신하고, 데이터를 공개키(PK)로 암호화함으로써 암호화된 데이터를 서버로 전송할 수 있다. 그러나, 이는 하나의 동작 예에 불과한 것으로서, 디바이스(10)는 다른 다양한 방식들에 따라 데이터를 암호화하거나 복호화할 수 있다.
본 발명의 실시예에 따라, 디바이스(10)는 인증 기관(Certificate Authority, CA)이 존재하지 않는 환경에서 공개키 기반 구조(PKI)의 통신을 수행할 수 있다. 예컨대, 디바이스(10)는 그 내부에서 인증서(Certificate)를 생성하고, 생성된 인증서를 이용하여 SSL(Secure Socket Layer)/TLS(Transport Layer Security)와 같은 보안 프로토콜 기반의 통신을 수행할 수 있다.
일 실시예에 따라, 보안 엘레먼트(100)는 인증 에이전트(110) 및 프로토콜 에이전트(120)를 포함할 수 있다. 또한, 마이크로 콘트롤러 유닛(200)은 인증서 생성부(210) 및 프로토콜 매니저(220)를 포함할 수 있다. 보안 엘레먼트(100)에 구비된 구성요소들은 그 기능에 따라 블록화된 것으로서, 실질적으로 보안 엘레먼트(100)는 다른 다양한 종류의 구성요소들을 포함하는 것으로 도시되어도 무방하다. 이와 유사하게, 마이크로 콘트롤러 유닛(200)에 구비된 구성요소들은 그 기능에 따라 블록화된 것으로서, 실질적으로 마이크로 콘트롤러 유닛(200)은 다른 다양한 종류의 구성요소들을 포함하는 것으로 도시되어도 무방하다.
보안 엘레먼트(100)는 그 내부에 프로세서나 암호화 엔진 등을 포함할 수 있으며, 그 내부에서 수행되는 각종 기능들은 임베디드 하드웨어나 임베디드 소프트웨어로 구현될 수 있다. 보안 엘레먼트(100)에 구현되는 하드웨어 및/또는 소프트웨어는 공개키 기반의 구조(PKI)에서 인증서 생성에 관련된 동작 및 암호화/복호화에 관련된 동작을 수행할 수 있다.
보안 엘레먼트(100)는 외부의 공격으로부터 그 내부의 정보를 보호할 수 있는 수단을 포함할 수 있다. 일 예로서, 보안 엘레먼트(100)는 하드웨어로 구현되는 보호 수단을 포함할 수 있으며, 상기 보호 수단을 통해 외부에서 보안 엘레먼트(100) 내부의 정보에 접근하는 것을 차단하거나, 또는 외부에서 보안 엘레먼트(100)의 내부의 정보에 접근하더라도 그 정보를 변경함으로써 원래의 정보가 외부로 유출되는 것을 방지할 수 있다.
보안 엘레먼트(100)에는 공개키 기반의 통신에 관련된 하나 이상의 키들이 인스톨되어 저장되고, 상기 저장된 키들을 이용한 각종 연산 동작을 수행할 수 있다. 일 예로서, 보안 엘레먼트(100)는 인증서 생성에 관련된 개인키를 저장할 수 있다. 상기 인증서 생성에 관련된 개인키는 인증 기관에서 발행되는 CA 개인키와 동일 또는 유사한 기능을 수행하므로, 보안 엘레먼트(100)에 저장된 인증서 생성에 관련된 개인키는 인증 기관(CA) 개인키(CA-SK)로 지칭될 수 있다. 또는, 상기 인증서 생성에 관련된 개인키는 인증서 개인키 등의 다른 용어로 정의되어도 무방하다.
또한, 보안 엘레먼트(100)는 공개키 기반의 통신을 수행하기 위한 키 쌍(예컨대, 디바이스 공개키(DEV-PK) 및 디바이스 개인키(DEV-SK))를 저장할 수 있다. 일 예로서, 보안 엘레먼트(100)는 그 제조 공정시 키 쌍이 인스톨되어 저장될 수 있다. 변형 가능한 실시예로서, 보안 엘레먼트(100)가 그 내부에 키 쌍을 생성하는 소프트웨어(미도시)를 포함함에 따라, 보안 엘레먼트(100)의 초기 구동시 디바이스 공개키(DEV-PK) 및 디바이스 개인키(DEV-SK)가 생성될 수도 있다.
인증 에이전트(110)는 인증서 생성과 관련하여 적어도 하나의 동작을 수행할 수 있다. 일 예로서, 마이크로 콘트롤러 유닛(200)의 인증서 생성부(210)는 인증서에 필요로 되는 다양한 종류의 정보들을 포함하는 인증서 양식을 생성하여 이를 인증 에이전트(110)로 제공한다. 일 실시예로서, 인증서 생성부(210)는 인증서 양식에 대해 해쉬 함수를 이용하여 해쉬값을 산출하고, 산출된 해쉬값을 인증 에이전트(110)로 제공할 수 있다. 또한, 일 실시예로서, 인증서 생성부(210)는 상기 인증서 양식에 대한 메시지 인증 코드(Message Authentication Code, MAC)를 생성하여 이를 인증 에이전트(110)로 더 제공할 수 있다. 인증 에이전트(110)는 보안 엘레먼트(100)에 저장된 CA 개인키(CA-SK)를 이용하여 암호화된 디지털 서명(또는 전자 서명, digital signature)을 생성하고 이를 마이크로 콘트롤러 유닛(200)으로 제공한다.
인증서 생성부(210)는 다양한 종류의 인증서를 생성할 수 있다. 일 예로서, 인증서 생성부(210)는 X.509 표준을 따르는 인증서를 생성할 수 있으며, 인증서에는 인증서의 버전, 인증서의 고유 숫자, 발급자 서명, 발급자 정보, 인증서의 유효 기간, 주체(Subject, 또는 디바이스)의 정보 및 디바이스 공개키가 포함될 수 있다. 인증서 생성부(210)는 보안 엘레먼트(100)에 디바이스 공개키(DEV-PK)의 제공을 요청할 수 있으며, 인증서 생성부(210)는 인증서 양식에 디바이스 공개키(DEV-PK)를 포함시킬 수 있다.
인증서 생성부(210)는 인증 에이전트(110)로부터의 전자 서명을 인증서 양식에 첨부함으로써 인증서(예컨대, X.509 인증서)를 최종 생성할 수 있다. 인증서 생성부(210)는 생성된 인증서를 보안 엘레먼트(100)로 제공할 수 있으며, 인증서는 보안 엘레먼트(100) 내에 저장될 수 있다. 일 실시예로서, 인증서는 프로토콜 에이전트(120)에 저장될 수 있다. 또한, 변경 가능한 실시예로서, 전자 서명이 포함된 인증서는 마이크로 콘트롤러 유닛(200)에 저장되어도 무방하다.
상기와 같이 생성된 인증서는, 이후 TLS 등과 같은 공개키 기반의 프로토콜에 따라 외부의 클라이언트에 제공될 수 있다. 외부의 클라이언트는 인증서 공개키를 이용하여 상기 인증서의 유효성을 검증할 수 있다. 예컨대, 인증서 공개키는 공개되어도 무방한 정보로서, 외부의 클라이언트의 제조시에 기 저장되거나, 외부의 클라이언트가 다른 외부의 서버에 접속하여 다운로드받을 수 있다.
한편, 디바이스(10)는 TLS 등과 같은 보안 프로토콜에 따라 외부의 디바이스와 통신할 수 있으며, 마이크로 콘트롤러 유닛(200)의 프로토콜 매니저(220)는 소정의 프로토콜에 따른 각종 처리 동작들을 관리할 수 있다. 본 발명의 실시예들에 따라, 프로토콜 매니저(220)는 상기 프로토콜에 따른 각종 처리 동작들 중 일부를 처리함과 함께, 상기 각종 처리 동작들 중 적어도 일부의 처리를 프로토콜 에이전트(120)가 수행하도록 요청할 수 있다. 즉, 프로토콜 매니저(220)는 프로토콜에 따른 각종 처리 동작들 중 일부를 보안 엘레먼트(100)에 위임하는 점에서, 프로토콜 매니저(220)는 프로토콜 위임 유닛(Protocol Delegation Unit)으로 지칭될 수도 있다.
보안 엘레먼트(100)의 프로토콜 에이전트(120)는 프로토콜 매니저(220)로부터 위임받은 프로토콜 처리 동작을 수행할 수 있다. 일 예로서, 공개키 기반의 통신에서, 외부로 노출되지 않을 필요가 있는 중요한 정보를 이용한 연산은 프로토콜 에이전트(120)에서 처리되고, 그 연산 결과가 프로토콜 매니저(220)로 제공될 수 있다.
일 예로서, RSA(Rivest Shamir Adleman), ECC(Elliptic Curve Cryptography) 및 DSS(Digital Signature Standard) 등과 같은 암호화 연산에서 디바이스 개인키(DEV-SK)를 이용한 연산이 프로토콜 에이전트(120)에서 수행될 수 있다. 또한, 디바이스(10)에 대한 인증을 위해 수행되는 디바이스 개인키(DEV-SK)를 이용한 서명(예컨대, RSA Sign)은 프로토콜 에이전트(120)에서 수행될 수 있다.
프로토콜 매니저(220)는 기 정의된 프로토콜에 따른 패킷을 생성하여 외부의 디바이스와 통신할 수 있다. 일 예로서, 프로토콜 매니저(220)는 Secure Socket Layer(SSL) 또는 Transport Layer Security(TLS) 프로토콜에 따라 외부의 디바이스와 통신할 수 있으며, 상기 프로토콜에 따른 패킷이 생성되도록 인코딩 및 디코딩 동작을 수행할 수 있다. 일 예로서, 디바이스(10)가 데이터를 전송하는 경우, 프로토콜 매니저(220)는 프로토콜 에이전트(120)에서 제공되는 연산 결과를 포함하는 패킷을 생성하고 이를 전송할 수 있다. 또한, 디바이스(10)가 데이터를 수신하고, 상기 데이터에 대한 처리가 프로토콜 에이전트(120)에 위임되는 경우에는, 프로토콜 매니저(220)는 패킷에 포함된 프로토콜 에이전트(120)로 제공할 수 있다.
상기와 같은 구성에 따라, 디바이스(10)는 CA 개인키나 디바이스 개인키 등의 중요 정보의 노출 없이 안전하게 인증서를 발급할 수 있으며, 또한 안전한 보안 프로토콜을 수행할 수 있다. 즉, 인증서 발급 과정이나 보안 프로토콜에 따른 통신을 수행하는 과정에서, CA 개인키나 디바이스 개인키를 소프트웨어적으로 암호화하여 이용하는 경우에 비해 상기 개인키들의 노출 가능성을 감소할 수 있다. 상기와 같은 구성에 따라, 디바이스(10)는 보안 엘레먼트(100)를 이용함으로써 인증 기관(Certificate Authority, CA)이 존재하지 않는 환경에서도 안전하게 공개키 기반의 통신을 수행할 수 있다.
도 2는 도 1의 보안 엘레먼트의 일 구현 예를 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 보안 엘레먼트(100)는 인증 에이전트(110) 및 프로토콜 에이전트(120)를 포함할 수 있으며, 인증 에이전트(110)는 CA 개인키(CA-SK)를 저장하는 인증서 키 저장부(111)와 인증서 양식에 대해 전자 서명을 수행하는 서명 수행부(112)를 포함할 수 있다. 또한, 프로토콜 에이전트(120)는 디바이스 공개키(DEV-PK) 및 디바이스 개인키(DEV-SK)를 저장하는 디바이스 키 저장부(121), 인증서를 저장하는 인증서 저장부(122) 및 공개키 기반 통신에 관련되어 각종 처리 동작을 수행하는 프로토콜 처리부(123)를 포함할 수 있다.
보안 엘레먼트(100)의 제조 공정 과정에서, Hardware Security Module(HSM)을 통하여 CA 개인키(CA-SK)와 디바이스 공개키(DEV-PK) 및 디바이스 개인키(DEV-SK)가 보안 엘레먼트(100) 내에 인스톨될 수 있다. 마이크로 콘트롤러 유닛(200)으로부터 전자 서명의 요청과 함께 인증서 양식이 수신되면 CA 개인키(CA-SK)가 서명 수행부(112)로 제공되고, 서명 수행부(112)는 인증서 양식에 대해 CA 개인키(CA-SK)를 이용하여 암호화된 전자 서명을 생성하고 이를 마이크로 콘트롤러 유닛(200)으로 제공한다. 또한, 마이크로 콘트롤러 유닛(200)으로부터 전자 서명이 포함된 인증서가 수신되면, 상기 인증서는 보안 엘레먼트(100)의 인증서 저장부(122)에 저장된다.
전술한 실시예에 따라 프로토콜 처리부(123)는 SSL 또는 TLS 등의 프로토콜에 따른 공개키 기반의 통신에서 각종 처리 동작을 수행한다. 예컨대, SSL 또는 TLS 등의 프로토콜을 이용한 통신에서 송수신되는 데이터는 암호화되거나 복호화될 수 있다. 프로토콜 처리부(123)는 암호화/복호화에 관련된 동작을 수행하는 암호화 엔진(미도시)을 포함할 수 있으며, 마이크로 콘트롤러 유닛(200)으로부터 위임받은 각종 암호화/복호화 연산을 수행할 수 있다.
일 실시예로서, 전술한 인증서의 전자 서명을 생성하거나, 핸드쉐이크 과정이나 세션 과정에서 디바이스(10)의 인증을 위한 디바이스 개인키(DEV-SK)를 이용한 서명을 생성하기 위한 연산이 프로토콜 처리부(123)에서 수행될 수 있다. 또한, 외부의 디바이스에서 제공되는 암호화된 데이터에 대해 디바이스 개인키(DEV-SK)를 이용하여 복호화하거나, 외부의 디바이스 사이의 키 합의(Key Agreement)을 위한 연산 등이 프로토콜 처리부(123)에서 수행될 수 있다.
이외에도, 본 발명의 실시예에 따라 공개키 기반의 통신에서 다양한 처리 동작이 보안 엘레먼트(100)와 마이크로 콘트롤러 유닛(200)에 배분될 수 있다. 예컨대, 상기 배분 상태에 따라, 프로토콜 처리부(123)는 디바이스 공개키(DEV-PK)를 이용한 연산 동작을 더 수행하여도 무방하다.
전술한 도 2의 실시예에 따르면, 디바이스(10)가 중요한 정보의 노출 없이 공개키 기반의 통신을 수행할 수 있으며, 또한 디바이스를 위한 키 쌍이 보안 엘레먼트의 생산 과정에서 주입될 수 있으므로, 상대적으로 오랜 시간이 소요되는 키 쌍의 생성 과정을 거칠 필요가 없으므로, 디바이스를 초기화할 때 발생되는 부팅 지연이 감소될 수 있다.
도 3은 도 1의 마이크로 콘트롤러 유닛의 일 구현 예를 나타내는 블록도이다.
도 1 내지 도 3을 참조하면, 마이크로 콘트롤러 유닛(200)은 인증서 생성부(210) 및 프로토콜 매니저(220)를 포함할 수 있다. 또한, 인증서 생성부(210)는 인증서 양식 생성부(211)와 서명 결합부(212)를 포함할 수 있으며, 프로토콜 매니저(220)는 연산 요청부(221) 및 프로토콜 처리부(222)를 포함할 수 있다.
인증서 생성부(210)는 전술한 예에 따라 각종 정보들을 포함하는 인증서 양식을 생성하고 이를 보안 엘레먼트(100)로 제공한다. 일 예로서, 인증서 생성부(210)는 보안 엘레먼트(100)에 저장된 디바이스 공개키(DEV-PK)의 제공을 요청하고, 디바이스 공개키(DEV-PK)가 포함된 인증서 양식을 생성하여 보안 엘레먼트(100)로 제공할 수 있다. 서명 결합부(212)는 보안 엘레먼트(100)로부터 제공되는 전자 서명과 인증서 양식을 결합함으로써 인증서를 최종 생성하고, 최종 생성된 인증서를 보안 엘레먼트(100)로 제공할 수 있다.
한편, 연산 요청부(221)는 공개키 기반의 통신에서 수행되는 적어도 하나의 프로토콜 처리를 보안 엘레먼트(100)로 요청할 수 있다. 예컨대, 연산 요청부(221)는 디바이스 개인키(DEV-SK)를 이용한 연산을 보안 엘레먼트(100)로 요청하고, 보안 엘레먼트(100)로부터 수행된 연산 결과를 수신할 수 있다. 프로토콜 처리부(222)는 프로토콜에 따른 다수의 처리 동작들 중 보안 엘레먼트(100)로 위임되지 않은 동작들을 수행할 수 있다. 또한, 프로토콜 처리부(222)는 패킷 인코딩 과정이나 디코딩 과정을 통해 외부의 디바이스로 제공될 패킷을 생성하거나, 외부의 디바이스로부터 제공된 패킷에 포함된 정보를 추출할 수 있다.
도 4는 TLS 프로토콜이 적용된 디바이스에 포함되는 보안 엘레먼트의 일 구현 예를 나타내는 블록도이다.
도 4를 참조하면, 보안 엘레먼트(300)는 인증 에이전트(310) 및 TLS 에이전트(320)를 포함할 수 있으며, 인증 에이전트(310)는 CA 개인키(CA-SK)를 저장하는 인증서 키 저장부(311)를 포함할 수 있다. 도 4에 도시되지는 않았으나, 인증 에이전트(310)는 전자 서명을 수행하는 서명 수행부(미도시)를 더 포함할 수 있다.
TLS 에이전트(320)는 TLS 프로토콜에 기반하는 통신을 위한 다양한 처리 동작을 수행할 수 있다. 일 예로서, TLS 에이전트(320)는 TLS 프로토콜에 기반하는 통신에 관련된 각종 구성 요소들을 포함할 수 있다. 일 예로서, TLS 에이전트(320)는 디바이스 공개키(DEV-PK) 및 디바이스 개인키(DEV-SK)를 저장하는 디바이스 키 저장부(321), 인증서를 저장하는 인증서 저장부(322) 및 프로토콜 처리부(323)를 포함할 수 있으며, 프로토콜 처리부(323)는 외부 디바이스와의 키 합의(Key Agreement)을 위한 알고리즘을 수행하는 알고리즘 수행부(323_1)를 포함할 수 있다.
TLS 프로토콜에 따라, TLS 에이전트(320)를 포함하는 디바이스와 외부의 클라이언트(또는, 서버) 사이에는 핸드쉐이크(Handshake) 과정 및 세션(Session) 과정이 수행될 수 있다. 상기 핸드쉐이크(Handshake) 수행 과정에서, 디바이스와 외부의 클라이언트(또는, 서버) 사이의 세션 설정 및 대칭키(또는, 세션 키) 생성을 위한 키 합의 과정이 수행될 수 있다. 일 예로서, TLS 프로토콜에서, 공개키 방식의 데이터 암호화/복호화에는 많은 시간 및 자원이 소모되므로, 핸드쉐이크(Handshake) 과정에서 상기 핸드쉐이크(Handshake) 과정에서의 통신에서는 공개키 방식의 암호화/복호화가 수행되고, 세션(Session) 과정에서는 상기 핸드쉐이크(Handshake) 과정에서 생성된 대칭키를 이용하여 데이터가 암호화/복호화될 수 있다.
대칭키 생성을 위한 키 합의 방식의 일 예로서, 도 4에는 알고리즘 수행부(323_1)가 Diffie-Hellman(DH) Key Agreement 알고리즘을 수행하는 예가 도시된다. 상기 DH 알고리즘 과정을 통해 개인키, 비밀키 및 파라미터들을 이용하는 연산이 수행되고, 연산 결과에 따라 실제 디바이스들 사이에서 전송되는 데이터를 암호화하기 위한 대칭키가 생성될 수 있다. 상기 대칭키가 외부로 노출되는 것을 방지하기 위해 상기 DH 알고리즘은 마이크로 콘트롤러 유닛이 아니라 보안 엘레먼트(300) 내부에서 수행될 수 있다.
일 실시예에 따라, 세션 과정에서 상기 대칭키를 이용한 데이터의 암호화/복호화 동작은 다양하게 분배될 수 있다. 예컨대, 대칭키는 세션 과정이 종료된 후 폐기되는 정보로서, 마이크로 콘트롤러 유닛 내에서 대칭키를 이용한 암호화/복호화 연산이 수행될 수 있다. 이 때, 보안 엘레먼트(300)의 알고리즘 수행부(323_1)는 대칭키 생성에 관련된 사전 대칭키 정보를 생성하여 이를 마이크로 콘트롤러 유닛으로 제공할 수 있다. 마이크로 콘트롤러 유닛은 사전 대칭키 정보를 이용한 연산을 통해 대칭키를 생성하고, 이를 통해 세션 과정에서 데이터 암호화/복호화 동작을 수행할 수 있다.
도 5는 본 발명의 실시예에 따른 디바이스에서 공개키 기반의 통신을 수행하는 과정을 나타내는 블록도이다. 도 5에서는 TLS 프로토콜에 따른 공개키 기반의 통신이 예시되며, 보안 통신을 필요로 하는 어플리케이션이 실행되는 예가 도시된다. 또한, 이하의 설명에서는 디바이스에 구비되는 콘트롤러 유닛으로서 어플리케이션 프로세서(AP)가 예시된다.
TLS는 TCP/IP의 트랜스포트 레이어(Transport Layer)의 암호화 방식에 해당하며, HTTP 프로토콜뿐 아니라 NNTP, FTP, XMPP 등의 프로토콜에도 다양하게 적용될 수 있다. 또한, 디바이스는 어플리케이션을 통해 TLS 서버로 동작하거나 TLS 클라이언트로 동작할 수 있으며, TLS 프로토콜에 따른 키 합의를 위한 알고리즘은 Diffie-Hellman Key Agreement 알고리즘이 수행되는 것으로 가정된다. 또한, 공개키 기반의 암호화 동작은 RSA 암호화 동작이 적용된 예가 도시된다. 또한, 보안 엘레먼트(SE)에서 프로토콜 에이전트는 TLS 에이전트로 지칭되며, 어플리케이션 프로세서(AP)에서 프로토콜 매니저는 TLS 매니저로 지칭될 수 있다. 또한, 전술한 실시예에서와 같이, 상기 TLS 매니저는 프로토콜에 따른 적어도 하나의 처리 동작을 보안 엘레먼트(SE)에 위임하는 점에서 프로토콜 위임 유닛(Protocol Delegation Unit)으로 지칭될 수도 있을 것이다.
도 5에 도시된 구조에 따라 CA(Certificate Authority)가 존재하지 않는 환경에서 공개키 기반 구조(PKI)의 통신이 수행될 수 있으며, 보안 엘레먼트(SE)의 CA 에이전트가 CA 서버의 CA 전자 서명 생성 역할을 대신 수행할 수 있다. 일 예로서, 어플리케이션 프로세서(AP)의 제어 하에서 어플리케이션의 실행되면, 핸드쉐이크 과정을 통해 TLS 매니저(또는, TLS 위임 유닛)와 어플리케이션이 통신 가능한 상태가 되고, 도 5에 도시된 TLS 프로토콜에 따른 동작들이 수행될 수 있다. 변형 가능한 실시예로서, 디바이스가 초기 구동될 때 어플리케이션 프로세서(AP)과 보안 엘레먼트(SE) 사이에서 상호 인증 과정이 수행될 수 있으며, 상호 인증이 성공한 경우에만 도 5에 도시된 절차에 TLS 프로토콜에 따른 동작들이 수행될 수 있다.
먼저, 어플리케이션 프로세서(AP)의 인증서 생성부는 보안 엘레먼트(SE)로 디바이스 공개키(DEV-PK)를 요청하여 수신한다(a). 어플리케이션 프로세서(AP)의 인증서 생성부는 보안 엘레먼트(SE)로부터 수신한 디바이스 공개키(DEV-PK)를 포함하는 인증서(예컨대, X.509 인증서) 양식을 생성한다(b).
어플리케이션 프로세서(AP)의 인증서 생성부는 인증서 양식에 대한 전자 서명의 생성을 보안 엘레먼트(SE)의 CA 에이전트에 요청한다. 어플리케이션 프로세서(AP)의 인증서 생성부는 보안 엘레먼트에 저장된 CA 개인키(CA-SK)를 이용하여 생성된 전자 서명을 수신하고(c), CA 에이전트가 생성한 서명 값을 기반으로 하여 서명된 X.509 인증서를 최종 생성한다. 인증서 생성부는 최종 생성된 X.509 인증서의 저장을 보안 엘레먼트(SE)에 요청한다(d). 일 실시예에 따라, 상기 X.509 인증서는 보안 엘레먼트(SE)의 TLS 에이전트에 저장될 수 있다.
어플리케이션 프로세서(AP)의 TLS 매니저는 TLS 메시지 생성 및 TLS 세션(Session) 생성 등의 역할을 담당한다. TLS 매니저는 외부의 디바이스와 핸드쉐이크 과정 및 세션 과정을 수행할 수 있으며, 상기 과정들에서 수행되는 개인키(예컨대, 디바이스 개인키(DEV-SK))를 사용하는 중요 연산은 보안 엘레먼트(SE)로 그 처리를 요청한다(e). 예컨대, 디바이스 개인키(DEV-SK)를 이용하는 서명 생성 및 복호화 동작(RSA Sign, RSA Decryption 등) 등의 연산 요청을 보안 엘레먼트(SE)로 제공할 수 있다.
또한, 핸드쉐이크 과정에서 서명이 포함된 인증서가 외부 디바이스로 제공될 필요가 있으며, TLS 매니저는 TLS 에이전트로 인증서의 제공을 요청한다. TLS 매니저는 보안 엘레먼트(SE)로부터 인증서를 수신하고(f), 수신된 인증서를 외부 디바이스로 제공할 수 있다. 또한, 핸드쉐이크 과정에서 디바이스들 사이의 키 합의 과정이 수행될 수 있으며, TLS 매니저는 키 합의 알고리즘(예컨대, Diffie-Hellman Key Agreement 알고리즘)의 수행 요청을 TLS 에이전트로 제공할 수 있다(g).
전술한 실시예들에선 디바이스가 TLS 프로토콜에 따른 보안 동작을 수행하는 예가 설명되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, 보안 칩은 디지털 저작권 관리(Digital Rights Management, DRM)를 위한 에이전트를 포함할 수 있으며, 상기 DRM에 따른 통신 수행시 데이터 암호화/복호화를 포함하는 보안에 관련된 기능을 수행하도록 구현될 수도 있을 것이다.
도 6 및 도 7은 본 발명의 실시예에 따른 보안 엘레먼트 및 어플리케이션 프로세서의 다양한 구현 예를 나타내는 블록도이다.
도 6을 참조하면, 보안 엘레먼트(400)는 CA 에이전트(410), TLS 에이전트(420) 및 RSA 키 생성부(430)를 포함할 수 있다. CA 에이전트(410)는 CA 개인키(CA-SK)를 저장할 수 있으며, 어플리케이션 프로세서(미도시)로부터의 요청에 따라 CA 개인키(CA-SK)를 이용한 전자 서명을 생성할 수 있다. 또한, TLS 에이전트(420)는 전술한 실시예들에 따라 공개키 기반의 통신 과정에서 적어도 일부의 처리 동작을 수행할 수 있으며, 예컨대 디바이스 개인키(DEV-SK)를 사용하는 중요 암호화/복호화 연산(예컨대, RSA Sign, RSA Decryption 등)을 수행할 수 있다.
일 실시예에 따라, 공개키 기반의 통신을 수행하기 위한 RSA 키 쌍(예컨대, 디바이스 공개키(DEV-PK) 및 디바이스 개인키(DEV-SK))은 보안 엘레먼트(400)내의 RSA 키 생성부(430)에서 생성될 수 있다. 즉, 보안 엘레먼트(400)의 제조 과정에서 HSM을 이용하여 CA 개인키(CA-SK)가 보안 엘레먼트(400) 내에 인스톨되는 반면에, RSA 키 쌍은 보안 엘레먼트(400)의 초기 구동시 RSA 키 생성부(430)에서 소프트웨어적으로 생성되도록 구현될 수 있다. 도 6에서는 암호화 연산 방식으로서 RSA(Rivest Shamir Adleman) 방식이 예시되었으나, 본 발명의 실시예들은 다양한 암호화 방식(예컨대, 공개키 기반의 암호화 방식)에 적용될 수 있을 것이다.
한편, 도 7을 참조하면, 디바이스(500)는 보안 엘레먼트(510) 및 어플리케이션 프로세서(520)를 포함할 수 있으며, 보안 엘레먼트(510)는 CA 에이전트(511) 및 TLS 에이전트(512)를 포함할 수 있다. 또한, 어플리케이션 프로세서(520)는 인증서 생성부(521) 및 TLS 매니저(522)를 포함할 수 있다. 또한, TLS 에이전트(512)는 세션 과정에서 디바이스들 사이에서 송수신되는 실제 데이터를 암호화/복호화하기 위한 대칭키(Symmetric Key)를 생성하는 대칭키 생성부(512_1)를 포함할 수 있다.
전술한 실시예에서와 같이, 디바이스가 TLS 프로토콜에 따른 통신을 수행함에 있어서, 핸드쉐이크 과정에서는 디바이스들 사이에서 공개키/개인키를 이용한 통신이 수행될 수 있으며, 이로부터 대칭 키에 해당하는 세션 키(Session Key)가 생성될 수 있다. 또한, 세션 과정에서 디바이스들 사이에서 송수신되는 데이터에 대한 암호화/복호화는 동일한 세션 키(Session Key)에 의해 수행될 수 있다.
본 발명의 일 실시예에 따라, 세션 과정에서 데이터 암호화/복호화 동작이 보안 엘레먼트(510)에 위임될 수 있다. 이 경우, TLS 에이전트(512)는 Diffie-Hellman Key Agreement 알고리즘 등을 통해 세션 키(Session Key)를 생성하기 위한 사전 대칭키 정보(예컨대, 프리 마스터 시크릿)를 생성할 수 있으며, 대칭키 생성부(512_1)는 상기 사전 대칭키 정보를 이용한 연산을 통해 대칭키에 해당하는 세션 키(Session Key)를 생성할 수 있다. 세션 과정에서, 데이터에 대한 암호화/복호화가 필요한 경우, TLS 매니저(522)는 암호화/복호화 연산을 TLS 에이전트(512)로 요청하고, TLS 에이전트(512)는 상기 세션 키(Session Key)를 이용하여 데이터를 암호화/복호화할 수 있다.
또는, 다른 실시예로서, TLS 에이전트(512)는 세션 키(Session Key) 생성을 위한 연산 처리만을 위임받고, 생성된 세션 키(Session Key)를 어플리케이션 프로세서(520)로 제공할 수 있다. 즉, 세션 키(Session Key)를 이용한 암호화/복호화 동작은 어플리케이션 프로세서(520)에서 수행될 수 있다.
도 8 및 도 9는 본 발명의 실시예들에 따른 디바이스의 동작 방법을 나타내는 플로우차트이다. 도 8에서는 인증서 생성과 관련하여 어플리케이션 프로세서(AP)의 일 동작 예가 도시된다. 또한, 도 9에서는 인증서 생성과 관련하여 보안 엘레먼트(SE)의 일 동작 예가 도시된다.
도 8을 참조하면, 어플리케이션 프로세서(AP)의 제어 하에서 TLS 등과 같은 프로토콜을 통해 보안 통신을 수행하는 어플리케이션이 실행되고, 어플리케이션 프로세서(AP)에 구비되는 인증서 생성기와 프로토콜 매니저의 동작에 따라 공개키 기반의 통신이 수행될 수 있다. 어플리케이션 프로세서(AP)는 공개키 통신에 이용되는 공개키(예컨대, 디바이스 공개키(DEV-PK))의 제공을 보안 엘레먼트(SE)로 요청하고, 보안 엘레먼트(SE)로부터 공개키를 수신한다(S11).
어플리케이션 프로세서(AP)는 수신된 공개키를 포함하는 인증서 양식을 생성하고(S12), 인증서에 필요한 전자 서명을 얻기 위하여 인증서에 대한 전자 서명의 요청을 보안 엘레먼트(SE)로 제공한다(S13). 보안 엘레먼트(SE)는 CA 개인키(CA-SK)를 이용하여 전자 서명을 생성하고, 어플리케이션 프로세서(AP)는 CA 개인키(CA-SK)를 이용하여 생성된 전자 서명을 수신하며(S14), 상기 인증서 양식과 전자 서명을 결합하여 인증서를 최종 생성한다(S15). 어플리케이션 프로세서(AP)는 최종 생성된 인증서를 보안 엘레먼트(SE)로 제공하여 상기 인증서의 저장을 요청한다(S16).
한편, 보안 엘레먼트(SE)의 동작 예를 도 9를 참조하여 설명하면 다음과 같다.
인증서 생성을 위하여 보안 엘레먼트(SE)는 제조 공정시 인스톨된 다수의 키들 중 디바이스 공개키(DEV-PK)를 어플리케이션 프로세서(AP)로 제공한다(S21). 보안 엘레먼트(SE)는 디바이스 공개키(DEV-PK)를 포함하는 인증서에 대한 서명 요청을 어플리케이션 프로세서(AP)로부터 수신하고(S22), 보안 엘레먼트(SE) 내에 저장된 CA 개인키(CA-SK)를 이용하여 인증서에 대한 전자 서명을 생성하고 이를 어플리케이션 프로세서(AP)로 제공한다(S23). 또한, 어플리케이션 프로세서(AP)에서 전자 서명을 포함하는 인증서가 최종 생성되면, 보안 엘레먼트(SE)는 어플리케이션 프로세서(AP)로부터 인증서를 수신하고 이를 저장한다(S24).
도 10은 도 8 및 도 9에 도시된 실시예에 따른 디바이스에서 인증서의 생성 및 이용 절차를 나타내는 도면이다. 도 10에서는 어플리케이션 프로세서 내의 기능 블록들과 보안 엘레먼트 사이의 동작들이 예시된다.
보안 엘레먼트(SE)와 어플리케이션 프로세서(AP) 사이에서 상호 인증 과정이 수행되고, 상호 인증이 성공한 경우에 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP) 사이의 통신이 수행될 수 있다.
인증서의 생성 및 이용에 있어서, 보안 엘레먼트(SE)는 어플리케이션 프로세서(AP)의 인증서 생성기(CG)와 프로토콜 매니저(예컨대, TLS 매니저(TLS))와 각종 정보들을 송수신할 수 있다. 보안 엘레먼트(SE)는 인증서 생성기(CG)로 디바이스 공개키(DEV-PK)를 제공하고, 인증서 생성기(CG)는 보안 엘레먼트(SE)로 인증서 양식을 제공한다. 또한, 보안 엘레먼트(SE)는 전자 서명을 인증서 생성기(CG)로 제공하고, 인증서 생성기(CG)는 최종 인증서를 보안 엘레먼트(SE)로 제공한다.
이후, 본 발명의 실시예에 따른 디바이스가 서버로 동작하는 경우, 상기 디바이스는 이에 접속된 외부의 클라이언트로 디바이스 공개키(DEV-PK)를 포함하는 인증서를 제공할 수 있다. 이에 따라, 프로토콜 매니저(TLS)는 보안 엘레먼트(SE)에 기 저장된 인증서의 제공을 요청할 수 있으며, 보안 엘레먼트(SE)는 인증서를 프로토콜 매니저(TLS)로 제공한다. 프로토콜 매니저(TLS)는 수신된 인증서를 외부의 클라이언트로 제공한다.
전술한 인증서 생성에 관련된 동작은 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)를 포함하는 디바이스의 최초 부팅시에 수행될 수 있다. 일 예로서, 디바이스가 부팅될 때마다 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP) 사이의 상호 인증 과정이 수행될 수 있으며, 상호 인증이 성공된 후 어플리케이션 프로세서(AP) 또는 보안 엘레먼트(SE) 내에 유효한 인증서가 저장되었는지 여부가 판별될 수 있다. 상기 판별 결과에 따라 인증서 생성에 관련된 동작이 수행될 수 있다.
도 11 내지 도 14는 본 발명의 다른 실시예들에 따른 디바이스의 동작 방법을 나타내는 플로우차트이다. 도 11 내지 도 14에서는 핸드쉐이크 과정(또는, 키 교환 과정)에서 RSA 암호화 방식 등의 공개키 기반의 통신이 수행되고, 세션 과정에서 서버와 클라이언트 사이에서 데이터가 대칭키에 해당하는 세션 키(Session Key)로 암호화/복호화되는 예가 도시된다. 대칭키 생성에 관련하여 다양한 알고리즘이 본 발명의 실시예들에 적용될 수 있으며, 예컨대 RC4, DES, 3DES, AES 및 RC4 등의 다양한 알고리즘이 적용될 수 있다. 그러나, 이는 일부 실시예에 불과한 것으로서, 본 발명의 실시예들에 따른 디바이스는 다양한 방식에 따라 TLS 프로토콜을 수행하여도 무방하다.
도 11를 참조하면, 본 발명의 실시예에 따른 디바이스는 공개키 기반의 통신에서 서버로서 동작할 수 있다. 디바이스는 외부의 클라이언트에 접속하고(S31), 디바이스와 외부의 클라이언트와의 통신을 위해 핸드쉐이크 과정이 수행된다.
외부의 클라이언트가 접속됨에 따라, 어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)로 인증서의 제공을 요청하고, 보안 엘레먼트(SE)로부터 인증서를 수신한다(S32). 또한, 어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)로부터 수신된 인증서를 클라이언트로 전송한다(S33).
또한, 상기 핸드쉐이크 과정에서 클라이언트는 랜덤 데이터(제1 랜덤 데이터)를 생성하여 디바이스로 제공하고, 또한 디바이스는 랜덤 데이터(제2 랜덤 데이터)를 생성하여 클라이언트로 제공한다. 클라이언트는 제1 랜덤 데이터와 제2 랜덤 데이터를 이용하여 세션 키(Session Key) 생성하기 위한 사전 정보인 사전 대칭키 정보를 생성할 수 있다. TLS 프로토콜에 따라, 상기 사전 대칭키 정보는 프리 마스터 시크릿(Pre master secret)으로 지칭될 수 있으며, 상기 프리 마스터 시크릿(Pre master secret)은 인증서에 포함되는 디바이스 공개키(DEV-PK)를 이용하여 암호화될 수 있다. 어플리케이션 프로세서(AP)는 디바이스 공개키(DEV-PK)로 암호화된 프리 마스터 시크릿(Pre master secret)을 수신하고(S34), 암호화된 프리 마스터 시크릿(Pre master secret)을 보안 엘레먼트(SE)로 제공한다(S35).
보안 엘레먼트(SE)의 내부에 저장된 디바이스 개인키를 이용하여 프리 마스터 시크릿(Pre master secret)이 복호화되고, 복호화된 프리 마스터 시크릿(Pre master secret)을 이용하여 세션 키(Session Key)가 생성될 수 있다. 일 실시예에 따라, 어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)로부터 복호화된 프리 마스터 시크릿(Pre master secret)을 수신하고, 이로부터 마스터 시크릿(Pre master secret)을 생성하며, 상기 마스터 시크릿(Pre master secret)을 이용하여 세션 키(Session Key)를 생성할 수 있다(S36). 세션 과정에서, 어플리케이션 프로세서(AP)는 세션 키(Session Key)를 이용하여 클라이언트와 암호화된 데이터 통신을 수행할 수 있다(S37).
한편, 도 12는 세션 과정에서 보안 엘레먼트(SE) 및 어플리케이션 프로세서(AP)의 일 동작 예를 나타낸다. 또한, 도 12에서는 본 발명의 실시예에 따른 디바이스가 서버 또는 클라이언트로 동작하는 예가 도시된다.
도 12를 참조하면, 디바이스는 외부의 서버 또는 클라이언트에 접속하고(S41), 전술한 실시예에 따라 인증서를 송수신하고 세션 키(Session Key)를 생성하는 핸드쉐이크 단계가 수행될 수 있다(S42). 상기 핸드쉐이크 단계가 종료됨에 따라, 실제 디바이스와 외부의 서버 또는 클라이언트 사이에서 데이터가 송수신되는 세션 단계가 수행된다(S43).
상기 데이터의 처리와 관련하여, 세션 과정에서 수행되는 다수의 처리 동작들 중 적어도 일부는 보안 엘레먼트(SE)에서 수행될 수 있다. 일 예로서, 디바이스 내에서 수행될 데이터 처리 동작이 디바이스 개인키(DEV-SK)를 이용하여 처리되는지가 판단된다(S44). 판단 결과, 상기 데이터 처리 동작이 암호화/복호화에 무관한 동작이거나 또는 공개키(예컨대, 디바이스 공개키(DEV-PK))나 세션 키(Session Key)를 이용하여 처리되는 경우에는, 어플리케이션 프로세서(AP) 내부(예컨대, TLS 매니저)에서 상기 데이터에 대한 처리가 수행될 수 있다(S45). 반면에, 디바이스 개인키(DEV-SK)를 이용하는 데이터 처리인 것으로 판단된 경우에는, 어플리케이션 프로세서(AP)는 상기 데이터에 대한 처리 요청을 보안 엘레먼트(SE)로 제공할 수 있다(S46).
이후, 보안 엘레먼트(SE)는 데이터에 대해 디바이스 개인키(DEV-SK)를 이용한 데이터 처리를 수행하고, 어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)로부터 데이터 처리 결과를 수신한다(S47). 상기와 같이 어플리케이션 프로세서(AP) 내부 및 보안 엘레먼트(SE) 내부에서 처리된 데이터를 이용하여 외부의 서버 또는 클라이언트와 통신이 수행될 수 있다(S48).
도 12에 도시된 실시예에서는, 각종 데이터 처리 동작을 어플리케이션 프로세서(AP)와 보안 엘레먼트(SE)에 분배하는 기준으로서 디바이스 개인키(DEV-SK)가 예시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 예컨대, 전술한 바와 같이 상기 데이터 처리의 분배 기준은 다양하게 설정이 가능하며, 일 예로서 디바이스 공개키(DEV-PK)를 이용하여 데이터를 암호화하는 각종 동작들 중 적어도 일부가 보안 엘레먼트(SE)에서 더 수행되어도 무방할 것이다. 또는, 세션 키(Session Key)를 이용한 데이터 암호화/복호화 연산이 보안 엘레먼트(SE)에서 더 수행되어도 무방할 것이다.
한편, 본 발명의 실시예에 따른 디바이스는 공개키 기반의 통신에서 클라이언트로서 동작할 수 있다. 도 13에서는 디바이스가 클라이언트로서 동작하는 경우에 어플리케이션 프로세서(AP)의 일 동작 예가 도시된다.
디바이스는 외부의 서버에 접속하고(S51), 디바이스와 외부의 서버와의 사이에서 핸드쉐이크 과정이 수행된다. 핸드쉐이크 과정에서, 디바이스는 서버로부터 서버의 공개키(또는, 디바이스 공개키(DEV-PK))를 포함하는 인증서를 수신한다(S52). 어플리케이션 프로세서(AP)는 인증서 공개키(CA-PK)를 이용하여 수신된 인증서를 복호화한다(S53). 상기 복호화 동작에 따라 인증서에 포함되는 서버의 공개키(DEV-PK)가 추출될 수 있으며, 어플리케이션 프로세서(AP)는 서버의 공개키(DEV-PK)를 보안 엘레먼트(SE)로 제공할 수 있다.
일 실시예에 따라, 세션 과정에서 디바이스와 외부의 서버는 대칭키를 이용한 암호화 통신을 수행할 수 있으며, 대칭키 생성을 위하여 어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)로 키 합의 연산 요청을 제공할 수 있다(S54). 보안 엘레먼트(SE)는 그 내부에서 기존에 생성된 랜덤 데이터(제1 랜덤 데이터)와 서버로부터 제공된 랜덤 데이터(제2 랜덤 데이터)를 이용하여 프리 마스터 시크릿(Pre master secret)를 산출하고, 상기 프리 마스터 시크릿(Pre master secret)은 전술한 서버의 공개키(DEV-PK)를 이용하여 암호화될 수 있다.
어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)로부터 암호화된 프리 마스터 시크릿(Pre master secret)을 수신한다(S55). 어플리케이션 프로세서(AP)는 암호화된 프리 마스터 시크릿(Pre master secret)을 외부 서버로 제공한다(S56). 또한, 어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)로부터 상기 산출된 프리 마스터 시크릿(Pre master secret)을 수신하고, 이로부터 세션 키(Session Key)를 생성한다(S47). 서버 또한, 암호화된 프리 마스터 시크릿(Pre master secret)을 이용하여 세션 키(Session Key)를 생성할 수 있다. 상기와 같은 과정에 따라, 디바이스와 외부의 서버는 서로 동일한 세션 키(Session Key)를 공유할 수 있으며, 이후 세션 과정에서 상기 세션 키(Session Key)를 이용한 데이터 암호화 동작이 수행될 수 있다.
한편, 도 14는 공개키 기반의 통신을 수행하는 디바이스에서 보안 엘레먼트(SE)의 일 동작 예를 나타낸다. 도 14에서는 상기 디바이스가 서버로서 동작하는 예가 도시되었으나, 전술한 실시예들을 참조하면 상기 디바이스가 클라이언트로 동작하는 경우에서의 보안 엘레먼트(SE)의 동작 또한 이해될 것이다.
도 14를 참조하면, 보안 엘레먼트(SE)는 어플리케이션 프로세서(AP)로부터 기 저장된 인증서의 제공 요청을 수신하고, 이에 따라 인증서를 어플리케이션 프로세서(AP)로 제공한다(S61). 또한, 보안 엘레먼트(SE)는 랜덤 데이터(예컨대, 제1 랜덤 데이터)를 생성하고 이를 어플리케이션 프로세서(AP)로 제공한다(S62). 어플리케이션 프로세서(AP)는 상기 인증서 및 제1 랜덤 데이터를 외부의 클라이언트로 제공할 수 있다.
외부의 클라이언트는 자신이 생성한 랜덤 데이터(예컨대, 제2 랜덤 데이터)와 보안 엘레먼트(SE)에서 생성된 제1 랜덤 데이터를 이용하여 프리 마스터 시크릿(Pre master secret)을 생성하고, 상기 인증서에 포함된 디바이스 공개키(DEV-PK)를 이용하여 프리 마스터 시크릿(Pre master secret)을 암호화한다.
보안 엘레먼트(SE)는 디바이스 공개키(DEV-PK)를 이용하여 암호화된 프리 마스터 시크릿(Pre master secret)을 수신한다(S63). 또한, 보안 엘레먼트(SE)는 그 내부에 저장된 디바이스 개인키(DEV-SK)를 이용하여 프리 마스터 시크릿(Pre master secret)을 복호화한다(S64). 보안 엘레먼트(SE)는 복호화된 프리 마스터 시크릿(Pre master secret)을 어플리케이션 프로세서(AP)로 제공한다(S65). 상기 어플리케이션 프로세서(AP)은 복호화된 프리 마스터 시크릿(Pre master secret)을 이용하여 세션 키(Session Key)를 생성할 수 있다. 이후, 어플리케이션 프로세서(AP)는 세션 키(Session Key)를 이용한 데이터 암호화 및 복호화 처리을 통해서 외부의 클라이언트와 통신할 수 있을 것이다.
도 15은 도 11 내지 도 14에 도시된 실시예에 따른 디바이스에서의 핸드쉐이크 과정의 일 예를 나타내는 도면이다. 도 15에서는 디바이스가 서버로서 동작하는 경우에, 디바이스에 구비되는 어플리케이션 프로세서 및 보안 엘레먼트와 외부 클라이언트 사이의 동작들이 예시된다.
외부의 클라이언트가 디바이스에 접속됨에 따라, 디바이스와 클라이언트 사이에서 핸드쉐이크 과정이 수행된다. 핸드쉐이크 과정의 일 예로서, Client Hello 단계에서 클라이언트로부터 랜덤 데이터(예컨대, 제1 랜덤 데이터) 및 클라이언트가 지원하는 암호화 방식 등의 각종 정보가 디바이스의 어플리케이션 프로세서(AP)로 제공될 수 있다.
어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)로 기 저장된 인증서의 제공을 요청하고, 어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)로부터 인증서를 수신할 수 있다. Server Hello 단계에서 어플리케이션 프로세서(AP)는 랜덤 데이터(예컨대, 제2 랜덤 데이터), 서버가 지원하는 암호화 방식 등의 각종 정보와 함께, 상기 인증서가 클라이언트로 제공될 수 있다. 클라이언트는 상기 인증서를 CA 공개키(CA-SK)를 이용하여 복호화하고, 인증서에 포함된 디바이스 공개키(DEV-PK)를 추출하며, 제1 랜덤 데이터와 제2 랜덤 데이터를 이용하여 생성된 프리 마스터 시크릿(Pre master secret)을 디바이스 공개키(DEV-PK)를 이용하여 암호화할 것이다.
어플리케이션 프로세서(AP)는 암호화된 프리 마스터 시크릿(Pre master secret)을 수신하고 이를 보안 엘레먼트(SE)로 전달한다. 보안 엘레먼트(SE)는 디바이스 개인키(DEV-SK)를 이용하여 프리 마스터 시크릿(Pre master secret)을 복호화하고, 복호화된 프리 마스터 시크릿(Pre master secret)을 어플리케이션 프로세서(AP)로 제공할 수 있다. 또한, 어플리케이션 프로세서(AP)는 복호화된 프리 마스터 시크릿(Pre master secret)을 이용하여 세션 키(Session Key)를 생성할 수 있다.
이후, 세션 과정에서, 세션 키(Session Key)를 이용하여 데이터를 암호화하거나 복호화하는 경우에는, 어플리케이션 프로세서(AP)가 그 내부에서 생성된 세션 키(Session Key)를 이용하여 암호화/복호화 처리를 수행할 수 있다. 변형 가능한 예로서, 상기 세션 과정에서 디바이스 개인키(DEV-SK)를 이용한 처리 동작이 필요로 되는 경우에는, 해당 처리 동작은 보안 엘레먼트(SE)에 위임될 수 있을 것이다.
도 16은 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP) 사이의 상호 인증 절차의 일 예를 나타내는 플로우차트이다.
보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)는 서로 다른 별도의 반도체 칩으로 구현될 수 있으며, 이에 따라 보안 엘레먼트(SE)는 신뢰가 존재하지 않을 수 있는 다양한 종류의 반도체 칩들에 연결될 수 있다. 이에 따라, 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)는 서로 신뢰할 수 있는 객체인지를 확인하기 위하여 상호 인증을 수행할 필요가 있다. 일 예로서, 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)를 포함하는 디바이스가 부팅될 때마다 상기 상호 인증 절차가 수행될 수 있다.
보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)는 각각 외부로 정보가 노출되지 않도록 설계된 보안 영역을 포함할 수 있으며, 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)의 보안 영역에는 사전에 공유된 인증 키(S-SAFE_AK)를 포함하는 각종 설정값이 저장될 수 있다. 일 실시예에 따라, 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)의 보안 영역에 각각 저장되는 인증 키(S-SAFE_AK)는 서로 동일한 값을 가질 수 있다.
먼저, 어플리케이션 프로세서(AP)는 난수 생성기를 통하여 제1 난수(Random Number, RN_M)를 생성하고 이를 보안 엘레먼트(SE)로 제공한다(S71). 또한, 보안 엘레먼트(SE)는 난수 생성기를 통하여 제2 난수(Random Number, RN_S)를 생성하고 이를 어플리케이션 프로세서(AP)로 제공한다(S81).
어플리케이션 프로세서(AP)와 보안 엘레먼트(SE) 사이의 데이터 통신은 대칭키(예컨대, 세션 키(Session Key))를 이용하여 수행될 수 있으며, 어플리케이션 프로세서(AP)와 보안 엘레먼트(SE) 각각은 소정의 키 생성 알고리즘을 이용하여 세션 키(Session Key)를 생성할 수 있다. 키 생성 알고리즘의 일 예로서, 도 16에는 해쉬 알고리즘으로서 SHA-256 방식의 키 생성 알고리즘이 도시되었으나, 본 발명의 실시예는 이외의 다른 다양한 키 생성 알고리즘이 적용되어도 무방하다.
어플리케이션 프로세서(AP)는 제1 난수(RN_M), 제2 난수(RN_S), 인증 키(Authentication Key) 및 소정의 제1 스트링 값(Authentication Key)를 입력으로 하는 해쉬 알고리즘을 수행하고(S72), 알고리즘 수행 결과에 따라 세션 키(Session Key)를 생성할 수 있다(S73). 이와 유사하게, 보안 엘레먼트(SE)는 제1 난수(RN_M), 제2 난수(RN_S), 인증 키(Authentication Key) 및 상기 소정의 제1 스트링 값(Authentication Key)를 이용한 해쉬 알고리즘을 수행하고(S82), 알고리즘 수행 결과에 따라 세션 키(Session Key)를 생성할 수 있다(S83).
이후, 어플리케이션 프로세서(AP) 및 보안 엘레먼트(SE) 각각에서 생성된 세션 키(Session Key)에 대한 검증이 수행될 수 있다. 일 예로서, 어플리케이션 프로세서(AP)는 세션 키(Session Key), 제1 난수(RN_M), 제2 난수(RN_S) 및 제2 스트링 값(MCU_Verifier)를 이용한 해쉬 알고리즘을 수행하고(S74), 그 알고리즘 수행에 따른 제1 결과값(Verifier_M)을 보안 엘레먼트(SE)로 제공할 수 있다. 또한, 보안 엘레먼트(SE)는 세션 키(Session Key), 제1 난수(RN_M), 제2 난수(RN_S) 및 제2 스트링 값(MCU_Verifier)를 이용한 해쉬 알고리즘을 수행하고(S84), 보안 엘레먼트(SE)의 알고리즘 수행 결과와 어플리케이션 프로세서(AP)로부터 수신된 제1 결과값(Verifier_M)을 이용하여 제1 검증 동작을 수행할 수 있다(S85). 만약, 제1 검증 동작에서 검증이 실패하면 인증 실패인 것으로 판단될 수 있다(S86).
제1 검증 동작에서 검증이 성공하면, 보안 엘레먼트(SE)는 어플리케이션 프로세서(AP)이 세션 키(Session Key)를 올바르게 생성하였음을 인증할 수 있다. 이후, 보안 엘레먼트(SE)는 세션 키(Session Key), 제1 및 제2 난수(RN_M, RN_S), 제1 결과값(Verifier_M) 및 제3 스트링 값(SE_Verifier)를 이용한 해쉬 알고리즘을 수행하고(S77), 그 알고리즘 수행에 따른 제2 결과값(Verifier_S)을 어플리케이션 프로세서(AP)로 제공할 수 있다.
어플리케이션 프로세서(AP)는 세션 키(Session Key), 제1 및 제2 난수(RN_M, RN_S), 제1 결과값(Verifier_M) 및 제3 스트링 값(SE_Verifier)를 이용한 해쉬 알고리즘을 수행하고(S75), 어플리케이션 프로세서(AP)의 알고리즘 수행 결과와 보안 엘레먼트(SE)로부터 수신된 제2 결과값(Verifier_S)을 이용하여 제2 검증 동작을 수행할 수 있다(S76). 만약, 제2 검증 동작에서 검증이 실패하면 인증 실패인 것으로 판단될 수 있다(S77). 만약, 제2 검증 동작에서 검증이 성공하면, 어플리케이션 프로세서(AP)는 보안 엘레먼트(SE)가 세션 키(Session Key)를 올바르게 생성하였음을 인증할 수 있다. 이에 따라, 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)의 상호 인증이 최종 성공할 수 있다(S78, S88).
상기와 같이 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)의 상호 인증이 성공하면, 앞서 생성된 세션 키(Session Key)는 대칭키 암호화 동작에 관련하여 다양하게 이용될 수 있다. 일 실시예에 따라, 세션 키(Session Key)의 일부(예컨대, 상위 128 비트)는 대칭키(ENC_Key)로 이용될 수 있으며, 세션 키(Session Key)의 다른 일부(예컨대, 하위 128 비트)는 MAC 키(MAC_Key)로 이용될 수 있다. 이에 따라, 보안 엘레먼트(SE)와 어플리케이션 프로세서(AP)는 대칭키(ENC_Key) 암호화를 이용하여 통신할 수 있으며, 또한 메시지 인증 코드(Message Authentication Code, MAC) 생성에 관련된 MAC 키(MAC_Key)를 이용하여 MAC를 생성할 수 있다.
도 17a,b,c,d는 본 발명의 실시예에 따른 디바이스 내부에서 각종 정보들에 메시지 인증 코드가 부여되는 예를 나타내는 블록도이다. 도 17a,b,c,d에 도시된 디바이스들(600A ~ 600D)에서 전술한 실시예들에 도시된 각종 구체적인 구성 요소들은 설명의 편의상 그 도시가 생략된다.
도 17a를 참조하면, 디바이스(500A)는 보안 엘레먼트(SE, 610A) 및 어플리케이션 프로세서(AP, 620A)를 포함할 수 있으며, 보안 엘레먼트(610A)는 인증서 저장부(611A) 및 MAC 생성부(612A)를 포함할 수 있다. 또한, 어플리케이션 프로세서(620A)는 MAC 생성부(621A) 및 MAC 검증부(622A)를 포함할 수 있다.
보안 엘레먼트(610A)와 어플리케이션 프로세서(620A)는 전술한 실시예에 따른 상호 인증 과정을 통해 대칭키를 생성하고 이를 이용한 통신을 수행할 수 있다. 일 실시예에 따라, 보안 엘레먼트(610A)와 어플리케이션 프로세서(620A) 사이에서 송수신되는 정보의 무결성을 검증하기 위해 메세지 인증 코드(Message Authentication Code, MAC)가 송수신되는 정보에 추가될 수 있다. 다양한 종류의 알고리즘이 상기 메시지 인증 코드(MAC) 생성에 이용될 수 있으며, 일 예로서 SHA, SHA256, SHA384 등의 알고리즘이나 MD5 알고리즘이 이용될 수 있다.
도 17a에 도시된 실시예에 따라, 보안 엘레먼트(610A)의 MAC 생성부(612A)는, 어플리케이션 프로세서(620A)로 제공되는 인증서(CERT)에 대한 메세지 인증 코드(MAC)를 생성할 수 있다. 어플리케이션 프로세서(620A)의 MAC 생성부(621A)는 수신된 인증서(CERT)에 대한 메세지 인증 코드(MAC)를 생성하고, MAC 검증부(622A)는 보안 엘레먼트(610A)에서 제공된 메세지 인증 코드(MAC)와 어플리케이션 프로세서(620A)에서 생성된 메세지 인증 코드(MAC)를 비교함에 의해 인증서의 무결성을 검증할 수 있다.
한편, 도 17b에 도시된 실시예는 보안 엘레먼트(610B)에서 어플리케이션 프로세서(620B)로 제공되는 서명(예컨대, RSA Sign 등)의 무결성을 검증하는 예를 나타낸다. 도 17b를 참조하면, 디바이스(600B)는 보안 엘레먼트(610B) 및 어플리케이션 프로세서(620B)를 포함할 수 있으며, 보안 엘레먼트(610B)는 서명 생성부(611B) 및 MAC 생성부(612B)를 포함할 수 있다. 또한, 어플리케이션 프로세서(620B)는 MAC 생성부(621B) 및 MAC 검증부(622B)를 포함할 수 있다.
서명 생성부(611B)는 보안 엘레먼트(610B) 내에 구비되는 디바이스 개인키를 이용하여 디바이스(600B)의 인증에 이용되는 서명(Sign)을 생성할 수 있다. MAC 생성부(612B)는 서명 생성부(611B)로부터의 서명(Sign)에 대한 메세지 인증 코드(MAC)를 생성할 수 있다. 메세지 인증 코드(MAC)가 추가된 서명(Sign)이 어플리케이션 프로세서(620B)로 제공되고, 어플리케이션 프로세서(620B)는 상기 서명(Sign)에 대한 무결성을 검증할 수 있다. 또한, 무결성이 검증된 서명(Sign)이 외부의 디바이스로 제공될 수 있다.
한편, 도 17c를 참조하면, 보안 엘레먼트(610C)에서 복호화된 데이터(D-Skey)가 어플리케이션 프로세서(620C)로 제공되는 경우, 상기 복호화된 데이터에 메세지 인증 코드(MAC)가 추가되는 예가 도시된다. 디바이스(600C)는 보안 엘레먼트(610C) 및 어플리케이션 프로세서(620C)를 포함할 수 있으며, 보안 엘레먼트(610C)는 복호화부(611C), 대칭키 암호화부(612C) 및 MAC 생성부(613C)를 포함할 수 있다. 또한, 어플리케이션 프로세서(620C)는 대칭키 복호화부(621C), MAC 생성부(622C) 및 MAC 검증부(623C)를 포함할 수 있다.
외부의 디바이스(예컨대, 클라이언트)로부터 공개키 기반의 암호화된 데이터가 디바이스(600C)로 제공될 수 있으며, 상기 암호화된 데이터는 복호화부(611C)로 제공될 수 있다. 복호화부(611C)는 디바이스 개인키를 이용하여 상기 데이터를 복호화한다.
상기 복호화된 데이터(D-Skey)는 보안 엘레먼트(610C)로부터 어플리케이션 프로세서(620C)로 제공될 수 있으며, 대칭키 암호화부(612C)는 보안 엘레먼트(610C)와 어플리케이션 프로세서(620C) 사이의 상호 인증 과정에서 생성된 대칭키를 이용하여 상기 복호화된 데이터(D-Skey)를 암호화할 수 있다. 이 때, 상기 복호화된 데이터(D-Skey)에 대해 메세지 인증 코드(MAC)가 추가될 수 있다.
어플리케이션 프로세서(620C)의 대칭키 복호화부(621C)는 상기 대칭키로 암호화된 데이터를 복호화하고, MAC 생성부(622C)는 상기 복호화된 데이터(D-Skey)에 대응하는 메시지 인증 코드(MAC)를 생성할 수 있으며, MAC 검증부(623C)는 상기 복호화된 데이터(D-Skey)에 대한 무결성을 검증할 수 있다.
한편, 도 17d는 디바이스(600D)와 외부의 디바이스(예컨대, 서버 또는 클라이언트) 사이의 키 합의 과정에서 메시지 인증 코드(MAC)가 이용되는 예를 나타낸다. 키 합의 알고리즘의 일 예로서, Diffie-Hellman(DH) Key Agreement 알고리즘이 예시된다. 디바이스(600D)는 보안 엘레먼트(610D) 및 어플리케이션 프로세서(620D)를 포함할 수 있으며, 보안 엘레먼트(610D)는 키 합의 연산부(611D) 및 MAC 생성부(612D)를 포함할 수 있다. 또한, 어플리케이션 프로세서(620D)는 MAC 생성부(621D) 및 MAC 검증부(622D)를 포함할 수 있다.
외부 디바이스와의 핸드쉐이크 과정에서, 실제 데이터에 대한 암호화/복호화를 수행할 대칭키를 생성하기 위한 키 합의 과정이 수행되고, 키 합의 연산부(611D)는 키 합의 과정을 통해 세션 키 생성에 관련된 각종 연산을 수행할 수 있다. 일 예로서, 키 합의 과정에서 세션 키 생성에 관련된 키 합의 정보(예컨대, 파라미터들, 랜덤 데이터나 프리 마스터 시크릿 등)가 보안 엘레먼트(610D)에서 어플리케이션 프로세서(620D)로 제공될 수 있다. 상기 키 합의 정보에 대해 메시지 인증 코드(MAC)가 추가될 수 있으며, 어플리케이션 프로세서(620D)는 상기 수신된 키 합의 정보에 대한 무결성을 검증할 수 있다.
한편, 도 17a,b,c,d에 도시된 보안 엘레먼트와 어플리케이션 프로세서는, 도 16에 도시된 상호 인증 과정에서 생성된 세션 키를 이용하여 대칭키 암호화 통신을 수행하거나 메시지 인증 코드(MAC)를 생성할 수 있다. 또한, 보안 엘레멘트에서의 MAC 생성 기능은 보안 엘레멘트 내의 프로토콜 처리부에서 수행될 수 있으며, 또한 어플리케이션 프로세서에서의 MAC 생성 및 검증 기능은 어플리케이션 프로세서 내의 프로토콜 처리부에서 수행될 수 있다.
도 18은 본 발명의 일 실시예에 따른 어플리케이션 프로세서의 일 구현 예를 나타내는 블록도이다.
도 18을 참조하면, 어플리케이션 프로세서(700)는 시스템 온 칩(SoC)으로 구현될 수 있으며, 어플리케이션 프로세서(700)는 전술한 실시예들에서의 디바이스에 장착되어 디바이스의 전반적인 동작을 제어할 수 있다. 어플리케이션 프로세서(700)는 CPU(Central processing unit, 710), 인증서 생성부(720), TLS 매니저(730), 디스플레이 콘트롤러(740), ROM(read only memory, 750), 메모리 콘트롤러(760) 및 RAM(random access memory, 770)을 포함할 수 있다. 어플리케이션 프로세서(700)는 도시된 구성요소들 외에도 다른 구성요소, 예컨대, 전원 관리 유닛(power management unit), GPU(Central processing unit) 및 클락 유닛(clock unit) 등을 더 포함할 수 있다.
CPU(710)는 ROM(750) 및/또는 RAM(770)에 저장된 프로그램들이나 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(710)는 동작 클락에 따라 상기 프로그램들 및 데이터를 처리 또는 실행할 수 있다. CPU(710)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 프로세서들(예컨대, 코어들(cores))을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다.
ROM(750)은 프로그램들 및/또는 데이터를 불휘발성하게 저장할 수 있다. ROM(750)은 EPROM(erasable programmable read-only memory) 또는 EEPROM(electrically erasable programmable read-only memory)으로 구현될 수 있다. 또한, RAM(770)은 프로그램들, 데이터 및 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, ROM(750)에 저장된 프로그램들 및/또는 데이터는 CPU(710)의 제어에 따라 RAM(770)에 일시적으로 저장될 수 있다. RAM(770)은 DRAM(dynamic RAM) 또는 SRAM(static RAM) 등의 메모리로 구현될 수 있다.
메모리 콘트롤러(760)는 외부 메모리 장치와 인터페이스하는 기능을 수행하며, 데이터 억세스 요청에 따라 외부 메모리 장치를 제어하여 데이터를 기록하거나 독출한다. 또한, 디스플레이 콘트롤러(740)는 디스플레이 장치를 구동함으로써 화면의 표시 동작을 제어할 수 있다.
본 발명의 실시예에 따라, 어플리케이션 프로세서(700)는 외부의 별도의 반도체 칩으로 구현될 수 있는 보안 엘레먼트(또는, 보안 IC)와 통신할 수 있다. 어플리케이션 프로세서(700)의 초기 구동시, 전술한 실시예에 따라 어플리케이션 프로세서(700)와 보안 엘레먼트에 대해 상호 인증 과정이 수행될 수 있다. 일 실시예로서, 상호 인증이 성공됨에 따라, 어플리케이션 프로세서(700)와 보안 엘레먼트는 대칭키 등을 이용한 암호화 통신을 수행할 수 있다.
또한 전술한 실시예들에 따라, 어플리케이션 프로세서(700)에 구비되는 인증서 생성부(720) 및 TLS 매니저(730)는 공개키 기반의 통신을 위한 다양한 동작을 수행한다. 예컨대, 공개키 기반의 통신에 관련된 다수의 기능들 중 적어도 일부는 보안 엘레먼트에서 수행되도록, 어플리케이션 프로세서(700)는 보안 엘레먼트에 요청을 제공할 수 있다. 전술한 실시예들에 따라, 인증서에 대한 전자 서명이나, 디바이스 개인키 등과 같은 외부로 관련 정보가 노출되지 않을 필요가 있는 중요한 연산은 보안 엘레먼트에서 수행될 수 있다.
도 19는 본 발명의 실시예에 따른 디바이스를 포함하는 스마트 홈 시스템을 나타내는 블록도이다.
도 19를 참조하면, 스마트 홈 시스템(800)에 구비되는 다수의 디바이스들(821 ~ 824)은 게이트 웨이(825) 및 외부 통신망을 통하여 외부 서버(830)에 접속할 수 있으며, 이동 단말기(810) 또한 외부 통신망을 통하여 외부 서버(830)에 접속할 수 있다. 다수의 디바이스들(821 ~ 824)은 스마트 홈에 이용되는 냉장고, 에어컨, 세탁기 및 청소기 등 가전 제품일 수 있으며, 디바이스들(821 ~ 824)의 상태나 고장 진단 등의 정보가 외부 서버(830)로 제공될 수 있다. 외부 서버(830)는 디바이스들(821 ~ 824)의 정보를 수신하고 이들에 대한 스마트한 관리 서비스를 제공한다.
또한, 이동 단말기(810)를 이용하는 이용자는 외부 통신망 및 게이트 웨이(825)를 통해 디바이스들(821 ~ 824)에 접속할 수 있다. 또한, 이동 단말기(810)를 이용하는 이용자는 외부 통신망을 통해 외부 서버(830)에 접속하여 디바이스들(821 ~ 824)의 상태를 판단할 수 있다. 상기와 같은 스마트 홈 시스템(800)에서, CA(Certificate Authority)가 존재하지 않는 환경에서도 전술한 실시예들에 따른 공개키 기반의 통신이 수행됨에 따라 외부 통신망을 통해 송수신되는 정보의 보안이 확보될 수 있다.
즉, 스마트 홈 시스템(800)에 관련된 디바이스들(821 ~ 824), 외부 서버(830) 및 이동 단말기(810) 각각은 전술한 실시예들에 따른 어플리케이션 프로세서 및 보안 엘레먼트를 포함할 수 있으며, 또한 TLS 등의 보안 프로토콜에 따라 통신할 수 있다. 또한, 도 19에 도시되지는 않았으나, 스마트 홈 시스템 이외에도 스마트 카의 주요 부품에 본 발명의 실시예들에 따른 어플리케이션 프로세서 및 보안 엘레먼트가 적용될 수 있을 것이다. 즉, 스마트 카의 경로 탐색 및 고장 진단 등의 다양한 정보가 보안성이 확보되어 외부 서버로 제공될 수 있을 것이며, 외부 서버는 안전하게 수신된 정보를 이용하여 스마트 카를 관리할 수 있을 것이다.
상기한 실시예의 설명은 본 발명의 더욱 철저한 이해를 위하여 도면을 참조로 예를 든 것에 불과하므로, 본 발명을 한정하는 의미로 해석되어서는 안될 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기본적 원리를 벗어나지 않는 범위 내에서 다양한 변화와 변경이 가능함은 명백하다 할 것이다.

Claims (20)

  1. 보안 칩의 동작 방법에 있어서,
    공개키 기반의 통신에 관련된 디바이스 키 쌍 중 디바이스 공개키를 어플리케이션 프로세서로 제공하는 단계;
    상기 어플리케이션 프로세서로부터 상기 디바이스 공개키를 포함하는 인증서 양식에 대한 전자 서명의 요청을 수신하는 단계;
    인증 기관(CA) 개인키를 이용한 암호화 동작에 기반하여 생성된 전자 서명을 상기 어플리케이션 프로세서로 제공하는 단계; 및
    상기 어플리케이션 프로세서로부터 상기 전자 서명이 포함된 인증서를 수신하여 저장하는 단계를 구비하는 것을 특징으로 하는 보안 칩의 동작방법.
  2. 제1항에 있어서,
    상기 보안 칩은 동일한 디바이스 내에서 상기 어플리케이션 프로세서와 별개의 반도체 칩으로 구현되는 것을 특징으로 하는 보안 칩의 동작방법.
  3. 제1항에 있어서,
    상기 어플리케이션 프로세서와의 상호 인증을 수행하는 단계; 및
    상기 어플리케이션 프로세서와의 통신에 이용되는 대칭 키를 생성하는 단계를 더 구비하고,
    상기 생성된 대칭 키에 따라, 상기 어플리케이션 프로세서와 송수신되는 데이터가 암호화 및 복호화되는 것을 특징으로 하는 보안 칩의 동작방법.
  4. 제1항에 있어서,
    상기 디바이스 공개키, 디바이스 개인키 및 상기 CA 개인키는, 상기 보안 칩의 제조 공정 과정에서 하드웨어 보안 모듈(Hardware Security Module)에 의해 인스톨되는 것을 특징으로 하는 보안 칩의 동작방법.
  5. 제1항에 있어서,
    외부의 클라이언트로 전송될 인증서 제공의 요청에 따라 인증서를 제공하는 단계;
    상기 클라이언트에서 생성되고 상기 디바이스 공개키를 이용하여 암호화된 사전 대칭키 정보를 수신하는 단계; 및
    디바이스 개인키를 이용하여 상기 사전 대칭키 정보를 복호화하는 단계를 더 구비하는 것을 특징으로 하는 보안 칩의 동작방법.
  6. 제5항에 있어서,
    상기 복호화된 사전 대칭키 정보를 세션 키 생성에 관련된 정보로서 상기 어플리케이션 프로세서로 제공하는 단계를 더 구비하는 것을 특징으로 하는 보안 칩의 동작방법.
  7. 제5항에 있어서,
    상기 복호화된 사전 대칭키 정보를 이용하여 세션 키를 생성하는 단계; 및
    상기 세션 키를 상기 어플리케이션 프로세서로 제공하는 단계를 더 구비하는 것을 특징으로 하는 보안 칩의 동작방법.
  8. 제1항에 있어서,
    외부의 서버로부터 제공되는 서버의 공개키를 수신하는 단계;
    상기 서버로부터 제공되는 제1 랜덤 데이터와 내부에서 생성된 제2 랜덤 데이터를 이용하여 사전 대칭키 정보를 생성하는 단계; 및
    상기 사전 대칭키 정보를 상기 서버의 공개키로 암호화함으로써, 상기 서버로 제공될 암호화된 사전 대칭키 정보를 생성하는 단계를 더 구비하는 것을 특징으로 하는 보안 칩의 동작방법.
  9. 제8항에 있어서,
    상기 생성된 사전 대칭키 정보를 세션 키 생성을 위한 정보로서 상기 어플리케이션 프로세서로 제공하는 단계를 더 구비하는 것을 특징으로 하는 보안 칩의 동작방법.
  10. 제1항에 있어서,
    외부의 디바이스와 연결됨에 따라 핸드쉐이크 과정을 수행하는 단계; 및
    상기 핸드쉐이크 종료 후 세션 과정으로 진입하는 단계를 더 구비하고,
    상기 세션 과정에서, 디바이스 개인키를 이용한 암호화 및 복호화 동작이 선택적으로 상기 보안 칩 내부에서 수행되는 것을 특징으로 하는 보안 칩의 동작방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020160007545A 2016-01-21 2016-01-21 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법 KR102444239B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160007545A KR102444239B1 (ko) 2016-01-21 2016-01-21 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법
CN201610974172.8A CN107070657B (zh) 2016-01-21 2016-11-04 安全芯片和应用处理器及其操作方法
US15/357,228 US10263961B2 (en) 2016-01-21 2016-11-21 Security chip and application processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160007545A KR102444239B1 (ko) 2016-01-21 2016-01-21 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법

Publications (2)

Publication Number Publication Date
KR20170087678A KR20170087678A (ko) 2017-07-31
KR102444239B1 true KR102444239B1 (ko) 2022-09-16

Family

ID=59359918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160007545A KR102444239B1 (ko) 2016-01-21 2016-01-21 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법

Country Status (3)

Country Link
US (1) US10263961B2 (ko)
KR (1) KR102444239B1 (ko)
CN (1) CN107070657B (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108701192B (zh) * 2016-02-12 2022-05-31 汉阳大学校产学协力团 安全半导体芯片及其工作方法
EP3497878B1 (en) * 2016-09-06 2020-05-20 Huawei Technologies Co., Ltd. Apparatus and methods for distributed certificate enrollment
US20180302228A1 (en) * 2017-04-04 2018-10-18 Calamp Corp. Systems and methods for secure communications in vehicle telematics systems
FR3067829B1 (fr) * 2017-06-20 2019-07-12 Idemia Identity And Security Procede d'authentification par defi-reponse d'un element securise (se) aupres d'un microcontroleur
CN107277078A (zh) * 2017-08-22 2017-10-20 南京晓庄学院 一种家庭网关数据通讯加密方法
CN107493291B (zh) * 2017-08-31 2020-03-27 阿里巴巴集团控股有限公司 一种基于安全元件se的身份认证方法和装置
US11290286B2 (en) * 2017-09-27 2022-03-29 Cable Television Laboratories, Inc. Provisioning systems and methods
CN109982150B (zh) * 2017-12-27 2020-06-23 国家新闻出版广电总局广播科学研究院 智能电视终端的信任链建立方法和智能电视终端
CN110119946B (zh) * 2018-02-05 2022-12-13 库币科技有限公司 电子交易装置的配对认证方法
CN108430061A (zh) * 2018-02-11 2018-08-21 深圳市图灵奇点智能科技有限公司 由智能移动电话实现的辅助签订区块链合约的方法和装置
CN108471613B (zh) * 2018-03-28 2021-05-04 湖南东方华龙信息科技有限公司 无线路由器的验证方法
CN108768664B (zh) * 2018-06-06 2020-11-03 腾讯科技(深圳)有限公司 密钥管理方法、装置、系统、存储介质和计算机设备
SG10201805967SA (en) * 2018-07-11 2020-02-27 Mastercard International Inc Methods and systems for encrypting data for a web application
KR20200025950A (ko) * 2018-08-31 2020-03-10 삼성전자주식회사 디지털 키를 처리하는 전자 디바이스 및 그 동작 방법
WO2020050701A1 (en) * 2018-09-07 2020-03-12 Samsung Electronics Co., Ltd. Apparatus and method for ssp device and server to negotiate digital certificates
US10909245B1 (en) * 2018-09-26 2021-02-02 Ca, Inc. Secure quarantine of potentially malicious content
CN109714360B (zh) * 2019-01-31 2021-10-19 武汉天喻聚联网络有限公司 一种智能网关及网关通信处理方法
KR20200104671A (ko) * 2019-02-27 2020-09-04 삼성전자주식회사 트러스트존의 실행 환경에서 애플리케이션을 인증하는 디바이스 및 방법
CN110138557A (zh) * 2019-05-28 2019-08-16 上海兆芯集成电路有限公司 数据处理装置及数据处理方法
CN110138556A (zh) * 2019-05-28 2019-08-16 上海兆芯集成电路有限公司 数据处理装置及数据处理方法
US11398899B2 (en) 2019-05-28 2022-07-26 Shanghai Zhaoxin Semiconductor Co., Ltd. Data processing device and data processing method
WO2021016577A1 (en) * 2019-07-24 2021-01-28 Arris Enterprises Llc Key ladder generating a device public key
CN111031047B (zh) * 2019-12-16 2022-08-12 中国南方电网有限责任公司 设备通信方法、装置、计算机设备及存储介质
CN113114607A (zh) * 2020-01-10 2021-07-13 中国移动通信有限公司研究院 一种终端设备
CN111818072B (zh) * 2020-07-16 2022-04-15 中国联合网络通信集团有限公司 数字证书的验证方法、用户节点及认证授权中心
KR102459592B1 (ko) * 2020-10-06 2022-10-28 주식회사 아이씨티케이 홀딩스 하드웨어 장치의 식별 정보를 생성하고 인증하는 전자 장치 및 이의 동작 방법
US11368314B2 (en) * 2020-11-13 2022-06-21 Microsoft Technology Licensing, Llc Secure digital signing
CN113645029B (zh) * 2021-07-29 2023-08-15 万帮数字能源股份有限公司 直流充电桩的通讯方法、通讯装置
CN113904773B (zh) * 2021-10-11 2023-07-07 博雅中科(北京)信息技术有限公司 Ssl连接建立方法、装置、电子设备及计算机可读存储介质
US20230128131A1 (en) * 2021-10-27 2023-04-27 Salesforce.Com, Inc. Protecting Application Private Keys with Remote and Local Security Controllers and Local MPC Key Generation
CN114745137A (zh) * 2022-05-10 2022-07-12 山东鲁软数字科技有限公司 一种实现安全通信方法及区块链物联代理装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039911A1 (en) 2001-09-11 2004-02-26 Makoto Oka Content usage authority management system and management method
US20090041252A1 (en) 2007-08-10 2009-02-12 Juniper Networks, Inc. Exchange of network access control information using tightly-constrained network access control protocols

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2384404B (en) * 2002-01-18 2005-02-16 Sun Microsystems Inc Key management
EP1365537B1 (de) * 2002-05-24 2004-07-07 Swisscom Mobile AG Vorrichtungen und Verfahren zur Zertifizierung von digitalen Unterschriften
US7711951B2 (en) * 2004-01-08 2010-05-04 International Business Machines Corporation Method and system for establishing a trust framework based on smart key devices
CN100346249C (zh) * 2004-12-31 2007-10-31 联想(北京)有限公司 生成数字证书及应用该所生成的数字证书的方法
CN100369042C (zh) * 2006-03-23 2008-02-13 南相浩 基于cpk电子标签的防伪方法和装置
US8225096B2 (en) * 2006-10-27 2012-07-17 International Business Machines Corporation System, apparatus, method, and program product for authenticating communication partner using electronic certificate containing personal information
US7613915B2 (en) * 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
ES2391786T3 (es) * 2007-02-13 2012-11-29 Secunet Security Networks Aktiengesellschaft Unidad de seguridad
WO2009122530A1 (ja) * 2008-03-31 2009-10-08 富士通株式会社 認証方法、認証装置、プログラム及び記録媒体
WO2010001282A2 (en) * 2008-06-08 2010-01-07 Spandan Choudury Camera guaranteeing authenticity of videos or photos taken and of when taken and optionally of all additional measurable facts of the circumstances of the taken videos or photos
US8943311B2 (en) * 2008-11-04 2015-01-27 Securekey Technologies Inc. System and methods for online authentication
JP2010238102A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd 情報処理装置、認証システム、認証方法、認証装置及びプログラム
US8621212B2 (en) * 2009-12-22 2013-12-31 Infineon Technologies Ag Systems and methods for cryptographically enhanced automatic blacklist management and enforcement
EP2461613A1 (en) 2010-12-06 2012-06-06 Gemalto SA Methods and system for handling UICC data
US9668128B2 (en) 2011-03-09 2017-05-30 Qualcomm Incorporated Method for authentication of a remote station using a secure element
CN202503508U (zh) * 2011-12-23 2012-10-24 纪成军 一种增强型安全手机保护外壳
US8429409B1 (en) * 2012-04-06 2013-04-23 Google Inc. Secure reset of personal and service provider information on mobile devices
CN102710605A (zh) * 2012-05-08 2012-10-03 重庆大学 一种云制造环境下的信息安全管控方法
US9953310B2 (en) * 2012-05-10 2018-04-24 Mastercard International Incorporated Systems and method for providing multiple virtual secure elements in a single physical secure element of a mobile device
CN102855561A (zh) * 2012-07-31 2013-01-02 长沙锐得信息科技有限公司 一种基于安全芯片和声音载波通信的手机支付器及支付方法
US20140136350A1 (en) 2012-11-14 2014-05-15 Risto K. Savolainen System and method for secure mobile contactless payment
CN103164738B (zh) * 2013-02-06 2015-09-30 厦门盛华电子科技有限公司 一种基于移动支付多通道数字认证的手机用户识别卡
CA2919797A1 (en) 2013-08-06 2015-02-12 Ologn Technologies Ag Systems, methods and apparatuses for prevention of unauthorized cloning of a device
CN103414564A (zh) * 2013-08-07 2013-11-27 成都卫士通信息产业股份有限公司 一种密钥卡、密钥设备及其保护私钥的方法
US11032265B2 (en) * 2013-11-22 2021-06-08 Digicert, Inc. System and method for automated customer verification
EP2884692B1 (en) 2013-12-13 2020-05-20 Nxp B.V. Updating software on a secure element
KR101604009B1 (ko) * 2014-05-12 2016-03-17 주식회사 키페어 공인인증을 위한 보안 토큰 및 그 구동 방법
US20170078255A1 (en) * 2015-09-11 2017-03-16 iAspire, LLC Systems and methods for implementing modular digital encryption key management solutions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039911A1 (en) 2001-09-11 2004-02-26 Makoto Oka Content usage authority management system and management method
US20090041252A1 (en) 2007-08-10 2009-02-12 Juniper Networks, Inc. Exchange of network access control information using tightly-constrained network access control protocols

Also Published As

Publication number Publication date
US20170214662A1 (en) 2017-07-27
KR20170087678A (ko) 2017-07-31
US10263961B2 (en) 2019-04-16
CN107070657B (zh) 2022-01-18
CN107070657A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
KR102444239B1 (ko) 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법
JP5815294B2 (ja) セキュアなフィールドプログラマブルゲートアレイ(fpga)アーキテクチャ
US8954735B2 (en) Device, method, and system for secure trust anchor provisioning and protection using tamper-resistant hardware
CN103138934B (zh) 安全密钥生成装置和安全密钥生成方法
EP2792100B1 (en) Method and device for secure communications over a network using a hardware security engine
Bürstinghaus-Steinbach et al. Post-quantum tls on embedded systems: Integrating and evaluating kyber and sphincs+ with mbed tls
JP3999655B2 (ja) レベル化された機密保護があるアクセス制御のための方法及び装置
CN105144626B (zh) 提供安全性的方法和设备
CN108377190B (zh) 一种认证设备及其工作方法
US10516654B2 (en) System, apparatus and method for key provisioning delegation
JP2012005129A (ja) 通信データの保護方法、セキュリティ・システム
CN114039753A (zh) 一种访问控制方法、装置、存储介质及电子设备
US11176058B2 (en) Address decryption for memory storage
Matischek et al. Application study of hardware-based security for future industrial IoT
Birnstill et al. Introducing remote attestation and hardware-based cryptography to OPC UA
Parrinha et al. Flexible and low-cost HSM based on non-volatile FPGAs
CN116599719A (zh) 一种用户登录认证方法、装置、设备、存储介质
CN106803046A (zh) 一种基于外部存储的度量日志加密方法
US20230289424A1 (en) Security Chip-Based Security Authentication Method and System, Security Chip, and Readable Storage Medium
JP7054796B2 (ja) 証明書生成方法、証明書生成装置およびコンピュータプログラム
Ould-Yahia et al. Towards privacy and ownership preserving of outsourced health data in IoT-cloud context
Bouamama et al. Cloud Key Management using Trusted Execution Environment.
CN115664646B (zh) 一种数据备份方法及装置
CN113297091B (zh) SoC芯片的调试方法、装置及SoC芯片
Dietrich Anonymous client authentication for transport layer security

Legal Events

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