KR20240058779A - 보안 요소, 연관된 호스트 단말, 보안 요소의 인증서를 생성하는 방법 및 연관된 컴퓨터 프로그램 - Google Patents

보안 요소, 연관된 호스트 단말, 보안 요소의 인증서를 생성하는 방법 및 연관된 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20240058779A
KR20240058779A KR1020230143214A KR20230143214A KR20240058779A KR 20240058779 A KR20240058779 A KR 20240058779A KR 1020230143214 A KR1020230143214 A KR 1020230143214A KR 20230143214 A KR20230143214 A KR 20230143214A KR 20240058779 A KR20240058779 A KR 20240058779A
Authority
KR
South Korea
Prior art keywords
certificate
application
processor
memory
storage means
Prior art date
Application number
KR1020230143214A
Other languages
English (en)
Inventor
토마스 워즈니악
장-필립 페랑
Original Assignee
아이데미아 프랑스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아이데미아 프랑스 filed Critical 아이데미아 프랑스
Publication of KR20240058779A publication Critical patent/KR20240058779A/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/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)
    • 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/44Program or device authentication
    • 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/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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/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/009Security arrangements; Authentication; Protecting privacy or anonymity specially adapted for networks, e.g. wireless sensor networks, ad-hoc networks, RFID networks or cloud networks
    • 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/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/108Source integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/40Security arrangements using identity modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/40Security arrangements using identity modules
    • H04W12/48Security arrangements using identity modules using secure binding, e.g. securely binding identity modules to devices, services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 기본 애플리케이션과 연관된 제1 인증서를 저장하기 위한 제1 저장 수단(22, 24, 26) 및 프로세서(20)를 포함하는 보안 요소(15)에 관한 것이다.
본 발명에 따르면, 기본 애플리케이션은 프로세서(20)에 의해 기본 애플리케이션이 실행될 때 프로세서(20)가 보조 애플리케이션과 연관된 제2 인증서를 생성하도록 설계되고, 제2 인증서는 제1 인증서에 포함된 키를 통해 전자적으로 서명된다.
본 발명은 또한 호스트 단말(1), 보안 요소(15)의 인증서를 생성하는 방법 및 연관된 컴퓨터 프로그램에 관한 것이다.

Description

보안 요소, 연관된 호스트 단말, 보안 요소의 인증서를 생성하는 방법 및 연관된 컴퓨터 프로그램{SECURE ELEMENT, ASSOCIATED HOST TERMINAL, METHOD FOR GENERATING A CERTIFICATE IN A SECURE ELEMENT, AND ASSOCIATED COMPUTER PROGRAM}
본 발명은 일반적으로 전자 컴포넌트들에 대한 인증서들을 생성하는 분야에 관한 것이다.
보다 구체적으로 본 발명은 보안 요소, 연관된 호스트 단말, 이러한 보안 요소에서 인증서를 생성하는 방법 및 연관된 컴퓨터 프로그램에 관한 것이다.
일부 전자 컴포넌트들의 운영 체제들은 현재 이러한 컴포넌트들을 제조하는 동안 공장(factory)에서 생성된 인증서들을 이용하여 인증될 수 있다.
이러한 인증서들은 각각의 전자 컴포넌트에 대해 고유하게 생성된다. 따라서 큰 다양성 및/또는 많은 수의 전자 컴포넌트들에는 똑같이 큰 다양성 및/또는 똑같이 많은 수의 생성된 인증서들이 필요하다. 그러나 이러한 다양화 및/또는 많은 컴포넌트들로 인해 제조 공정이 유연성이 떨어지고 특히 시간 측면에서 비용이 많이 든다.
위에서 언급한 종래 기술의 단점을 바로잡기 위해, 본 발명은 인증서들의 생성을 향상시킬 수 있는 보안 요소를 제안한다.
보다 구체적으로, 본 발명에 따라 제안되는 것은 프로세서 및 기본 애플리케이션(primary application)과 연관된 제1 인증서(certificate)를 저장하기 위한 제1 저장 수단(storage means)을 포함하는 보안 요소(secure element)이다. 본 발명에 따르면, 기본 애플리케이션은, 기본 애플리케이션이 프로세서에 의해 실행될 때 프로세서가 보조 애플리케이션(secondary application)과 연관된 제2 인증서를 생성하도록 설계되고, 제2 인증서는, 제1 인증서에 포함된 키(key)를 통해 전자적으로 서명(sign electronically)된다.
따라서, 본 발명에 의해, 소스 인증서는 보안 요소에 내장된 애플리케이션 타입의 특정 운영 체제에 대해 보안 요소에 직접 파생 인증서(derived certificate)를 생성하는 것을 가능하게 한다. 보안 요소를 개인화(personalization)하거나 제조하는 동안 공장에서 다양한 인증서들을 더 이상 생성할 필요가 없으므로 보안 요소를 개인화하는 단계가 더 빨라진다(따라서 비용도 저렴하다).
개별적으로 또는 기술적으로 가능한 조합으로 취해진 본 발명에 따른 보안 요소의 다른 비제한적이고 유리한 특징은 다음과 같다:
- 기본 애플리케이션은, 보조 애플리케이션으로부터 요청(request)을 수신하도록 설계되고, 제2 인증서는, 상기 요청의 수신에 기초하여 생성되고;
- 제1 인증서는, 제1 메모리 파트(memory part)에 저장되고;
- 제1 저장 수단은, 적어도 제1 물리적 메모리(physical memory)를 포함하고, 제1 메모리 파트는, 제1 물리적 메모리의 일부(portion)에 대응하고;
- 기본 애플리케이션은 프로세서에 의해 실행될 때, 프로세서가 제2 메모리 파트에 제2 인증서를 저장하는 것을 명령하도록 설계되고, 제2 메모리 파트는, 제1 메모리 파트와 구별되고;
- 보조 애플리케이션은, 기본 애플리케이션으로부터 다른 요청을 수신하도록 설계되고, 다른 요청의 수신은, 제2 인증서의 저장을 명령하고;
- 기본 애플리케이션과 보조 애플리케이션을 저장하기 위한 제2 저장 수단이 제공되고;
- 제2 저장 수단은, 적어도 제2 물리적 메모리를 포함하고, 제2 메모리 파트는, 제2 물리적 메모리의 일부이고;
- 제1 메모리 파트는 일회성 프로그램 가능 메모리(one-time programmable memory)의 일부이고;
- 제2 저장 수단은 보안 요소의 외부에 위치되고;
- 기본 애플리케이션은, 프로세서가 제1 인증서에 포함된 키를 이용하여 암호화 전자 서명 알고리즘(cryptographic electronic signature algorithm)을 제2 인증서에 적용하도록 설계되고; 및
- 보조 애플리케이션은, 모바일 전화 네트워크(mobile telephony network)의 인증 애플리케이션(authentication application)이다.
본 발명은 또한 위에서 소개된 보안 요소가 구비된 전자 장치(electronic device)를 포함하는 호스트 단말(host terminal)에 관한 것이다. 호스트 단말은, 기본 애플리케이션과 보조 애플리케이션을 저장하기 위한 제2 저장 수단을 포함한다. 제2 저장 수단은 보안 요소에 연결된다.
본 발명은 보안 요소에서 인증서를 생성하는 방법에 관한 것으로, 상기 보안 요소는, 프로세서 및 기본 애플리케이션과 연관된 제1 인증서를 저장하기 위한 제1 저장 수단을 포함하고, 상기 방법은, 기본 애플리케이션이 프로세서에 의해 실행될 때 프로세서가 보조 애플리케이션과 연관된 제2 인증서를 생성하는 단계를 포함하고, 제2 인증서는, 제1 인증서에 포함된 키를 통해 전자적으로 서명된다.
본 발명에 따른 보안 요소의 인증서를 생성하는 방법의 다른 비제한적이고 유리한 특징은 개별적으로 또는 기술적으로 가능한 조합으로 다음과 같다:
- 또한 기본 애플리케이션이 보조 애플리케이션으로부터 요청을 수신하는 단계가 제공되고, 상기 제2 인증서를 생성하는 단계는 상기 요청의 수신에 기초하고;
- 제1 저장 수단은 적어도 제1 메모리 파트를 포함하고, 제2 메모리 파트를 포함하는 제2 저장 수단이 제공되고, 제1 메모리 파트는 제1 인증서를 저장하고, 방법은 제2 메모리 파트에 제2 인증서를 저장하는 단계를 포함하고;
- 제1 저장 수단은, 적어도 제1 물리적 메모리를 포함하고, 제2 저장 수단은, 제2 물리적 메모리를 포함하고, 제1 메모리 파트는, 제1 물리적 메모리의 일부에 대응하고, 제2 메모리 파트는, 제2 물리적 메모리의 일부에 대응하고; 및
- 생성하는 단계는 제1 인증서에 포함된 키를 이용하여 암호화 전자 서명 알고리즘을 제2 인증서에 적용하는 단계를 포함한다.
본 발명은 또한 프로세서에 의해 실행될 수 있는 명령어들(instructions)을 포함하고, 명령어들이 프로세서에 의해 실행될 때 위에서 도입된 인증서를 생성하는 방법을 구현하도록 설계된 컴퓨터 프로그램에 관한 것이다.
예를 들어 기록 매체에 저장되어 있는 이 컴퓨터 프로그램은, SIM("가입자 식별 모듈(Subscriber Identity Module)") 카드 또는 eUICC("내장형 범용 식별 회로 카드(embedded Universal Identity Circuit Card)") 모듈과 같은 보안 요소 또는 프로그램 명령어들이 프로세서에 의해 또는 더 일반적으로 컴퓨터에서 실행될 때 인증서를 생성하기 위한 위의 방법을 구현하기 위한 프로그램 명령어들을 포함하는 시스템 온 컴포넌트(system on component)(또는 "시스템 온 칩("System On Chip)"의 경우 SOC)에서 구현될 수 있다.
이 프로그램은 임의의 프로그래밍 언어(예: 객체 언어 등)를 이용할 수 있고, 소스 코드, 목적 코드 또는 부분적으로 컴파일된 형태 등 소스 코드와 목적 코드 사이의 중간 코드 형태일 수도 있고, 기타 원하는 형태일 수도 있다.
본 발명은 또한 프로세서에 의해 실행될 때 방법을 구현하기 위한 명령어들을 포함하는 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능 비일시적 기록 매체(computer-readable non-transient recording medium)에 관한 것이다.
정보 매체(information medium)는 프로그램을 저장할 수 있는 임의의 엔티티 또는 장치일 수 있다. 예를 들어, 매체는 ROM("읽기 전용 메모리(read-only memory)"), 예를 들어 마이크로 전자 회로 ROM(microelectronic circuit ROM) 또는 플래시 메모리(Flash memory)와 같은 저장 수단, 또는 예를 들어 플로피 디스크(floppy disk) 또는 하드 디스크(hard disk)와 같은 자기 기록 수단(magnetic recording means)을 포함할 수 있다.
비제한적인 예로서 주어진 첨부된 도면을 참조한 다음 설명은 본 발명의 내용과 그것이 어떻게 구현될 수 있는지에 대한 명확한 이해를 제공할 것이고, 본 발명의 다른 특정 특징들과 장점들을 드러낼 것이다.
도 1은 본 발명이 구현되는 내장형 전자 장치를 포함하는 호스트 단말의 주요 요소들을 개략적으로 도시한다.
도 2는 본 발명에 따른 방법의 일례를 흐름도 형태로 도시한다.
도 1은 본 발명이 구현되는 내장형 전자 장치(embedded electronic device)(10)를 포함하는 호스트 단말(1)의 주요 요소들을 개략적으로 도시한다.
이 호스트 단말(1)은 예를 들어 여기서 일반적으로 불리는 스마트폰이다. 변형으로서, 호스트 단말은 예를 들어 통신 단말, 전자 여권, 또는 컴퓨터일 수 있다. 도 1에 도시된 바와 같이, 호스트 단말(1)은 전자 장치(10) 및 저장 수단(30)(이하 "제2 저장 수단(30)"이라고도 함)을 포함한다.
전자 장치(10)는 시스템 온 칩(약어 SOC를 이용하여라고도 함)의 아키텍처(architecture)의 일 예를 나타낸다. 도 1에 도시된 바와 같이, 여기서 전자 장치(10)는 제1 프로세서(12)(예를 들어 마이크로프로세서 또는 처리 유닛) 및 보안 요소(15)를 포함한다. 통상적으로, 보안 요소를 통합하거나 내장한 전자 장치(SOC)로 형성된 어셈블리는(assembly) 마이크로회로 카드(microcircuit card), 예를 들어 통합 범용 집적 회로 카드(integrated universal integrated circuit card)(또는 iUICC) 또는 iSIM("통합 가입자 식별 모듈(Integrated Subscriber Identity Module)"의 경우) 카드에 대응한다.
전자 장치(10)는 통신 버스(communication bus)(60)에 의한 연결을 통해 외부의 제2 저장 수단(30)과 연결되도록 구성된다. 본 설명에서, 이용되는 "링크된(linked)" 또는 "연결된(connected)"이라는 용어들은 예를 들어 서버와의 원격 연결과는 반대로 일반적으로 버스에 의해 구현되는 로컬로 "연결된"이라는 의미로 이해되어야 한다.
전자 장치(10)의 제1 프로세서(12)와 보안 요소(15)는 (아래에서 설명되는 제2 프로세서(20)를 통해) 예를 들어 통신 인터페이스(21)를 통해 통신한다. 이 통신 인터페이스(21)는 예를 들어 직접 메모리 액세스(direct memory access)(또는 DMA) 모듈 또는 "메일박스(Mailbox)" 모듈을 포함한다. 제1 프로세서(12)는 통신 버스(60)에 의해 통신 인터페이스(21)에 연결된다.
명확성을 위해 도 1에 도시되지 않은 다른 요소들은 전자 장치(10)에 포함될 수 있고 예를 들어 그래픽 프로세서(또는 "그래픽 처리 유닛"의 경우 GPU), 메모리 컨트롤러, 직접 메모리 액세스(또는 DMA) 컴포넌트, 모뎀 등과 같은 아키텍처의 일부를 형성할 수 있다.
일반적으로, 기술 표준화 기관인 GlobalPlatform에서 정의한 대로, 보안 요소는 데이터(암호화 키(cryptographic key)들, 알고리즘들, 암호화 기능(cryptographic function)들 등) 및 애플리케이션의 보안 호스팅을 활성화하도록 구성된 소프트웨어 및 하드웨어 플랫폼을 기반으로 하는 처리 유닛이다. 통합되거나 내장된 호스트 장치(여기서는 전자 장치(10))와 안전하게 협력하도록 구성되고, 또한 애플리케이션에 안전한 실행 환경을 제공한다.
보안 요소(15)(또는 SE)는 예를 들어 일반적으로 불리는 핸드-헬드(hand-held) 전자 장치의 보안 마이크로컨트롤러이다. 이는 내장형 보안 요소, UICC("범용 집적 회로 카드") 모듈 또는 SIM("가입자 식별 모듈") 모듈, 또는 "eSIM" (내장형 SIM) 모듈 또는 "eUICC"(내장형 UICC) 모듈과 같은 다양한 형태들을 개별 또는 통합된 요소의 형태로 취할 수 있다.
보안 요소(15)는 제2 프로세서(20)(여기서는 마이크로프로세서 또는 처리 유닛), 제1 저장 수단(22, 24, 26), 보안 인터페이스(security interface)(25) 및 위에서 소개한 통신 인터페이스(21)를 포함한다. 보안 요소(15)에 포함된 다양한 요소들은 통신 버스(50)에 의해 서로 연결된다.
제2 프로세서(20)(또는 제2 처리 유닛)는 보안 운영 체제(또는 OS)를 구현한다.
제2 프로세서(20)는 예를 들어 통신 인터페이스(21)를 통해 제1 프로세서(12)에 명령어들을 전송하도록 구성된다. 제2 프로세서(20)는 또한 예를 들어 제2 저장 수단(30)으로부터 또는 제2 저장 수단(30)으로 데이터 읽기 또는 쓰기를 명령하는 명령어들을 보안 인터페이스(25)에 전송하도록 구성된다.
제1 저장 수단은 적어도 하나의 물리적 메모리를 포함한다. 특히 여기서는, 제1 저장 수단은, RAM(22) 또는 휘발성 메모리 또는 캐시 메모리(예를 들어 RAM 타입("랜덤 액세스 메모리(Random Access Memory)"), 또는 SRAM 타입("정적 랜덤 액세스 메모리(Static Random Access Memory)")), 읽기 전용 메모리(24) 또는 비휘발성 메모리(예를 들어 ROM 타입, "읽기 전용 메모리" 또는 EEPROM 타입, "전기적으로 소거 가능 프로그램 가능 읽기 전용 메모리(Electrically Erasable Programmable Read-Only Memory)") 및 프로그램 가능 읽기 전용 또는 비휘발성 메모리(programmable read-only or non-volatile memory)(26)(예를 들어 OTP 타입, "일회성 프로그램 가능")를 포함한다. RAM(22), 읽기 전용 메모리(24) 및 프로그램 가능 읽기 전용 메모리(26)는 각각 통신 버스(50)(도 1)를 통해 제2 프로세서(20)에 링크되어 보안 요소(15)의 제2 프로세서(20)가 이들 메모리들의 각각으로부터 데이터를 판독하거나 쓸 수 있게 된다.
이들 메모리들 중 하나, 예를 들어 RAM(22)은 이들 명령어들이 제2 프로세서(20)에 의해 실행될 때 특히 도 2를 참조하여 아래에 설명된 방법을 구현하는 것을 가능하게 하는 컴퓨터 프로그램 명령어들을 저장한다. RAM(22)은 컴퓨터 프로그램의 실행 동안 생성되고 수정된 변수들과 파라미터들을 기록하도록 설계된 레지스터(register)들을 포함한다. 예를 들어 비휘발성 메모리(24) 또는 제2 저장 수단에 저장된 프로그램 명령어들은 제2 프로세서(20)에 의해 실행되도록 RAM(22)에 로드된다.
여기서 프로그램 가능 읽기 전용 메모리(26)는 제1 메모리 부분(memory portion)(27)과 제2 메모리 부분(28)을 포함한다.
보안 인터페이스(25)는 전자 장치(10), 보안 요소(15) 및 호스트 단말(1) 사이에서(예를 들어 제2 저장 수단(30)을 통해) 데이터의 교환을 허용하도록 설계된다. 보안 인터페이스(25)는 예를 들어 제2 저장 수단(30)과 데이터를 송수신하도록 설계된다. 전술한 바와 같이, 보안 인터페이스(25)는 예를 들어 보안 요소(15)와 제2 저장 수단(30)(여기서는 호스트 단말(1)에 위치함) 사이에서 교환되는 데이터를 암호화(encrypt)하고/거나 복호화(decrypt)하도록 설계된다. 이를 위해, 암호화 키(encryption key) 및/또는 복호화 키(decryption key)는 예를 들어 프로그램 가능 읽기 전용 메모리(26), 특히 여기에서는 프로그램 가능 읽기 전용 메모리(26)의 제2 메모리 부분(28)에 저장된다.
보안 인터페이스(25)는 예를 들어 제2 저장 수단(30)의 메모리 레지스터들로부터 판독하거나 메모리 레지스터들에 기록하기 위한 직접 메모리 액세스(DMA) 컴포넌트를 포함하는 메모리 액세스 모듈(미도시)을 포함한다.
보안 인터페이스(25)는 또한 데이터 암호화 또는 복호화 동작들을 수행하는 컴포넌트(또는 "암호화 엔진(crypto engine)")를 포함하는 암호화 모듈(cryptography module)(미도시) 및 그에 특정한 내부 저장 컴포넌트(internal storage component)(미도시)를 포함한다. 보안 요소(15)가 부팅되면, 암호화 키 및/또는 복호화 키는 제2 메모리 부분(28)으로부터 복사되어 보안 인터페이스(25)의 메모리 레지스터(도 1에는 미도시)에 저장된다.
변형으로서, 프로그램 가능 읽기 전용 메모리(26)의 제2 메모리 부분(28)에 저장된 암호화 키 및/또는 복호화 키에 액세스하기 위해, 보안 인터페이스(25)는 예를 들어 도 1에서 점선(dotted line)들로 도시된 통신 버스를 통해 프로그램 가능 읽기 전용 메모리에 직접 연결될 수 있다.
통신 인터페이스(21)는 보안 요소(15)의 외부에 위치하는 요소들과 데이터를 교환할 수 있도록 설계된다. 예를 들어, 전자 장치(10)의 제1 프로세서(12)와 보안 요소(15)의 제2 프로세서(20) 사이에서 교환되는 데이터를 송수신하도록 설계된다.
도 1에 도시된 바와 같이, 호스트 단말(1)(예를 들어 스마트폰)은 제2 저장 수단(30)을 포함한다.
제2 저장 수단(30)은 적어도 물리적 메모리를 포함한다. 여기서 더 구체적으로, 제2 저장 수단은 RAM(32)("랜덤 액세스 메모리(Random Access Memory)", 또는 더 구체적으로 DRAM, "동적 랜덤 액세스 메모리(Dynamic Random Access Memory)") 및 재기록 가능 비휘발성 메모리(rewritable non-volatile memory)(34)(예를 들어 EEPROM 타입, "전기적으로 소거 가능 프로그램 가능 읽기 전용 메모리(Electrically Erasable and Programmable Read-Only Memory)" 또는 플래시 타입(Flash type))를 포함한다. RAM(32) 및 재기록 가능 비휘발성 메모리(34)는 각각의 통신 버스(60)를 통해 제1 프로세서(12)에 링크되어, 전자 장치(10)의 제1 프로세서(12)는 이들 메모리들의 각각으로부터 데이터를 판독하거나 이들 메모리들의 각각에 데이터를 쓸 수 있도록 한다.
RAM(32) 및 재기록 가능 비휘발성 메모리(34)는 각각의 통신 버스(60)를 통해 보안 인터페이스(25)에도 링크되어, 보안 요소(15)는 보안 인터페이스(25), 제1 프로세서(12) 및 제2 프로세서(20)를 통해 이들 메모리들의 각각으로부터 데이터를 판독하거나 이들 메모리들의 각각에 데이터를 쓸 수 있도록 한다.
여기서 재기록 가능 비휘발성 메모리(34)는 제1 메모리 부분(37), 제2 메모리 부분(38) 및 제3 메모리 부분(39)을 포함한다.
제2 저장 수단은 기본 애플리케이션과 보조 애플리케이션을 저장한다. "기본 애플리케이션" 및 "보조 애플리케이션"이라는 용어들은, 예를 들어 ETSI TS 103 465(ETSI TS, " 유럽 통신 표준 연구소(European Telecommunications Standards Institute)") 또는 ETSI TS 103 666-2 표준에 정의된 "기본 플랫폼(primary platform)" 및 "보조 플랫폼 번들(secondary platform bundle)"이라는 용어들에 각각 대응한다. "기본 애플리케이션" 및 "보조 애플리케이션"이라는 용어들은 예를 들어 글로벌 플랫폼 표준 "가상 기본 플랫폼 - 개념 및 인터페이스(Virtual Primary Platform - Concepts and Interfaces)"에 정의된 용어들 "가상 기본 플랫폼(Virtual Primary Platform) 또는 VPP" 및 "VPP 애플리케이션"에도 각각 대응한다. 본문의 나머지 부분에서는, 글로벌 플랫폼 표준 "가상 기본 플랫폼 - 개념 및 인터페이스"를 "GP 표준"이라고 하고, ETSI TS 103 465 또는 ETSI TS 103 666-2 표준을 "ETSI 표준"이라고 한다.
예를 들어 기본 애플리케이션은 재기록 가능 비휘발성 메모리(34)의 제2 메모리 부분(38)에 저장된다. 보조 애플리케이션은 그 일부가 예를 들어 재기록 가능 비휘발성 메모리(34)의 제3 메모리 부분(39)에 저장되어 있다.
기본 애플리케이션(또는 GP 표준에 따른 "VPP" 또는 위에 설명된 "ETSI" 표준에 따른 "기본 플랫폼")은, 제2 프로세서(20)의 하나의 선호 모드에 따라 (위에서 인용된 ETSI 표준 또는 GP 표준에 정의된 바와 같이) 기본 플랫폼의 하드웨어 및/또는 소프트웨어 리소스들을 활용하는 하위 레벨 운영 체제(low-level operating system)(또는 LLOS)에 대응하고, 이것은 예를 들어 요청 시 보조 애플리케이션에 액세스할 수 있는 서비스들을 구현할 수 있다. 서비스는 예를 들어 암호화 데이터의 생성, 데이터의 비교 또는 데이터 참조(data reference)의 제공 등이 될 수 있지만 이에 국한되지는 않는다.
기본 애플리케이션에는 특히 마이크로커널(microkernel), 하위 레벨 리소스(low-level resource)들 및 보안 기능(security function)들에 대한 지원이 포함된다. 여기서 기본 애플리케이션은 기존 하드웨어 보안 모듈(hardware security module; HSM)의 역할을 한다. 즉, 본 발명의 맥락에서 기본 애플리케이션은 본 발명에 따른 방법을 구현하는 데 참여하는 명령어들의 세트에 대응한다.
본 설명에 있어서, "인증서"는 전자 장치의 사용자를 식별하거나 인증하기 위해, 전자 장치를 식별하거나 인증하기 위해, 호스트 단말(1), 전자 장치(10) 또는 보안 요소(15) 중 적어도 하나에 저장되거나 실행되는 애플리케이션 또는 운영 체제를 식별하거나 인증하기 위해, 네트워크나 시스템 등의 서비스에 대한 액세스 권한(access right)들을 관리하기 위해, 뿐만 아니라 교환들을 암호화 및/또는 복호화하기 위해, 이용되는 전자 인증서(electronic certificate)를 의미하는 것으로 이해된다. 여기서, 전자 인증서는 적어도 하나의 공개 암호화 키(public cryptographic key) 및/또는 적어도 하나의 개인 암호화 키(private cryptographic key)를 포함한다.
인증서에는 (예를 들어, 컴포넌트 제조업체 식별하기 위한, 애플리케이션 또는 서비스 제공자 식별하기 위한) 식별자(identifier) 및/또는 예를 들어 유효 날짜(validity date)가 포함될 수도 있다. 인증서의 데이터는 인증서의 데이터에 대한 신뢰를 보장할 권한이 있는 제3자 서명 엔티티(third-party signatory entity)에 의해 서명된다. 따라서 전자 인증서는 인증서의 모든 데이터의 표현 또는 인증서의 모든 데이터에 적용된 적어도 하나의 서명(예: 인증서의 데이터의 해시에 서명 적용) 및 데이터를 보유한다. 보다 일반적으로, 전자 인증서는 적어도 하나의 공유될 데이터를 포함하고, 대상 데이터(datum in question)는 전자 인증서의 적어도 하나의 공유된 데이터에 대한 신뢰를 보장하는 신뢰할 수 있는 서명 엔티티 또는 기관에 의해 서명된다.
보조 애플리케이션(또는 GP 표준에 따른 "VPP 애플리케이션" 또는 ETSI 표준에 따른 "보조 플랫폼 번들")은 제1 애플리케이션의 외부의 요소들의 세트에 대응한다. 보조 애플리케이션은 기본 애플리케이션에 의해 제공되는 특정 기능들을 이용할 수 있다(예: 이러한 기능들을 호출하는 것에 의해).
실제로 보조 애플리케이션은 특정 타입의 애플리케이션이다. 운영 체제는 보조 애플리케이션과 연관된다(그것의 실행을 가능하게 하기 위해). 이는 전송 애플리케이션(transport application), 뱅킹 애플리케이션(banking application) 또는 모바일 전화 네트워크의 인증 애플리케이션일 수 있다. 보다 일반적으로, 보조 애플리케이션은 예를 들어 통신(telecommunications), 지불(payment), 전송(transport), 식별(identification) 또는 인증(authentication)과 관련될 수 있다. 즉, 보조 애플리케이션은 예를 들어 통신 오퍼레이터(telecommunications operator), 은행, 네트워크 액세스, 전송, 식별 또는 인증에 링크된 기능들 및/또는 서비스들을 구현하는 전용 애플리케이션(dedicated application)이다.
프로그래밍 인터페이스(또는 API, "애플리케이션 프로그래밍 인터페이스(Application Programming Interface)")를 이용하면 기본 애플리케이션과 보조 애플리케이션 간의 링크를 만들 수 있다. 프로그래밍 인터페이스(미도시)를 이용하면 기본 애플리케이션과 보조 애플리케이션 간에 페이로드 데이터(payload data)를 교환할 수 있다.
기능적 레벨에서, 보안 요소(15)가 구비된 전자 장치(10)는 모듈들의 세트(미도시)로 볼 수 있다. 이러한 모듈들은 실제로 하드웨어 요소들과 소프트웨어 요소들의 조합으로 형성될 수 있다. 각각의 모듈은 본 발명에 따른 방법에 설명되고 아래에 설명된 기능을 갖는다. 따라서 각각의 모듈에 대해, 전자 장치(10)는 예를 들어 하드웨어 요소(예를 들어 통신 인터페이스 또는 메모리)를 이용하여 모듈이 제공하는 기능을 구현하기 위해 보안 요소(15)의 제2 프로세서(20)에 의해 실행될 수 있는 소프트웨어 명령어들을 저장한다.
도 2는 본 발명에 따른 전자 장치(10)의 보안 요소(15)에 구현되는 방법의 일례를 도시한다.
이 방법은 전자 장치(10)의 보안 요소(15)의 인증서를 생성하는 방법을 구성한다.
본 발명에 따른 방법을 구현하기 전에, 전자 장치(10)의 개인화 이전에, 소스 인증서(일반적으로 발급자 인증서(issuer certificate)라고 함)는 예를 들어 루트 인증서(root certificate)(일반적으로 기관 인증서(authority certificate)라고 함)에서 외부 엔티티에 의해 생성된다. 모바일 전화(mobile telephony)의 맥락에서 이러한 외부 엔티티는 예를 들어 GSM 협회(또는 GSMA, "모바일 통신을 위한 글로벌 시스템(Global System for Mobile Communications)")이다.
외부 엔티티는 이 소스 인증서를 전자 장치(10)의 외부의 개인화 엔티티(personalization entity) 및 보안 요소(15)에 전달한다(예를 들어, 소스 인증서는 도 1에 도시되지 않은 보안 서버에 전달된다). 전자 장치(10)의 개인화 단계 동안, 외부 개인화 엔티티는 소스 인증서를 보안 요소로 전송한다. 그런 다음 보안 요소(15)는 예를 들어 프로그램 가능 읽기 전용 메모리(26)의 제1 메모리 부분(27)에 저장된 소스 인증서를 저장한다.
기본 애플리케이션은 개인화 단계 동안 전자 장치(10)의 보안 요소(15)에도 설치된다. 이를 위해, 개인화 엔티티는 기본 애플리케이션을 전달하고 이를 전자 장치(10)의 보안 요소, 예를 들어 보안 요소(15)의 읽기 전용 메모리(24)에 저장된 로딩 요소(loading element)(29)를 통해 전달한다. 로딩 요소(29)와 개인화 엔티티는, 기본 애플리케이션을 개인화 엔티티로부터 보안 요소(15)로 전송하기 위해, 예를 들어 보안 요소(15)의 읽기 전용 메모리(24)의 일부 (도 1에는 미도시)에 저장된 암호화 (암호화 및/또는 복호화) 키들의 세트의 이용을 통해 이전에 보안 통신 채널을 설정(establish)했다. 기본 애플리케이션이 전송되면, 보안 요소(15)와 외부 개인화 엔티티 사이의 보안 통신 채널의 설정(establishment)이 종료된다.
제2 프로세서(20)는 제1 프로세서(12)로 기본 애플리케이션을 저장하라는 요청을 전송한다. 이 저장(storage)은 기본 애플리케이션을 암호화하는 보안 인터페이스(25)의 제1 중간 단계(intermediate step)와 암호화된 기본 애플리케이션을 RAM(32)에 저장하는 보안 인터페이스(25)의 제2 중간 단계를 포함한다.
제1 중간 단계에서, 보안 인터페이스(25)는 프로그램 가능 읽기 전용 메모리(26)의 제2 메모리 부분(28)에 저장된 암호화 키를 이용하여 기본 애플리케이션을 암호화한다.
제2 중간 단계에서, 보안 인터페이스(25)는 기본 애플리케이션이 암호화되면 암호화된 기본 애플리케이션을 제2 저장 수단(30)의 RAM(32)에 저장한다.
그런 다음 제1 프로세서(12)는 제1 프로세서(12)로부터 기본 애플리케이션(RAM(32)에 저장됨)을 저장하라는 요청을 수신한 후, 호스트 단말(1)의 제2 저장 수단(30)의 재기록 가능 비휘발성 메모리(34)의 제2 메모리 부분(38)에 암호화된 기본 애플리케이션(12)을 저장하도록 명령한다.
이러한 개인화 단계 동안, 재기록 가능 비휘발성 메모리(34)에 저장하기 전 및/또는 실행들 중 적어도 하나 동안, 기본 애플리케이션은 또한 전자 장치(10)의 보안 요소(15)에서 보조 애플리케이션을 전달하기 위해 외부 개인화 엔티티와 통신한다. 하나의 특정 실시예에서, 기본 애플리케이션과 통신하는 개인화 엔티티는 소스 인증서를 위해 이용된 개인화 엔티티와 구별되는 제2 개인화 엔티티이다. 보조 애플리케이션은 기본 애플리케이션과 개인화 엔티티 사이에서, 이전에 설정된 보안 통신 채널을 통해 개인화 엔티티로부터 보안 요소(15)에 의해 암호화되지 않은 형태로 수신된다.
제2 프로세서(20)는 제1 프로세서(12)로 보조 애플리케이션을 저장하라는 요청을 전송한다. 이 저장은 보조 애플리케이션을 암호화하는 보안 인터페이스(25)의 제1 중간 단계와 암호화된 보조 애플리케이션을 RAM(32)에 저장하는 보안 인터페이스(25)의 제2 중간 단계를 포함한다.
제1 중간 단계 동안, 보안 인터페이스(25)는 프로그램 가능 읽기 전용 메모리(26)의 제2 메모리 부분(28)에 저장된 암호화 키를 이용하여 보조 애플리케이션을 암호화한다. 그러면 보안 인터페이스(25)는 제2 중간 단계 동안 RAM(32)에 암호화된 보조 애플리케이션을 저장한다.
그 다음에, 기본 애플리케이션과 유사한 방식으로, 제1 프로세서(12)는, 제1 프로세서로(12)부터 보조 애플리케이션(RAM(32)에 저장됨)을 저장하라는 요청을 수신한 후, 호스트 단말(1)의 제2 저장 수단(30)의 재기록 가능 비휘발성 메모리(34)의 제3 메모리 부분(39)에 암호화된 보조 애플리케이션을 저장하도록 명령한다.
도 2에 도시된 바와 같이, 방법은 보안 요소(15)에 소스 인증서를 저장하는 제1 저장 수단의 단계로, 단계(E2)에서 시작된다. 더 정확하게는, 소스 인증서는 보안 요소(15)의 프로그램 가능 읽기 전용 메모리(26)에 저장된다.
소스 인증서는 예를 들어 보안 요소(15)의 개인화 동안 공장에 저장된다. 이러한 맥락에서, 보안 요소(15)를 포함하는 복수의 보안 요소들에 소스 인증서를 배포(브로드캐스트 기술(broadcast technique)을 이용하여)하기 위한 외부 개인화 엔티티에 대한 제공(provision)이 이루어질 수 있다. 특히, 이 소스 인증서는 예를 들어 프로그램 가능 읽기 전용 메모리(26)의 제1 메모리 부분(27)에 저장된다. 소스 인증서는 특히 개인 키(K1) 및 연관된 공개 키(K2)(따라서 프로그램 가능 읽기 전용 메모리(26)의 제1 메모리 부분(27)에도 저장됨)을 포함한다. 소스 인증서는 예를 들어 애플리케이션과 연관된 식별자(예를 들어 기본 애플리케이션과 연관된 식별자 및/또는 보조 애플리케이션과 연관된 식별자)도 포함할 수 있다.
도 2에 도시된 바와 같이, 방법은 기본 애플리케이션을 실행하는 단계에 대응하는 단계(E4)에서 계속된다. 이를 위해, 기본 애플리케이션은 예를 들어 보안 요소(15)의 RAM(22)에 저장되기 위해 보안 요소(15)의 읽기 전용 메모리(24)에 저장된 로딩 요소(29)를 통해 보안 요소(15)에 로드된다.
이 단계 동안, 실행될 수 있도록 보안 요소(15)의 제2 프로세서(20)는 재기록 가능 비휘발성 메모리(34)의 제2 메모리 부분(38)으로부터 기본 애플리케이션을 판독하도록 명령한다. 이 판독하는 단계는 특히 다음 단계들을 포함한다:
- 재기록 가능 비휘발성 메모리(34)의 제2 부분(38)에 저장된 기본 애플리케이션을 RAM(32)에 로드하기 위해 제2 프로세서(20)가 제1 프로세서(12)에 로딩 명령을 전송하는 단계,- 제2 프로세서(20)가 RAM(32)으로부터 기본 애플리케이션을 판독(검색의 의미에서)하기 위해 보안 인터페이스(25)에 판독 명령(read command)을 전송하는 단계,
- 보안 인터페이스(25)가 프로그램 가능 읽기 전용 메모리(26)에 저장된 복호화 키를 통해 기본 애플리케이션을 복호화하는 단계, 및
- 복호화된 기본 애플리케이션을 보안 요소(15)의 RAM(22)에 저장하는 단계.
단계(E6)에서, 보안 요소(15)의 제2 프로세서(20)는 재기록 가능 비휘발성 메모리(34)의 제3 메모리 부분(39)에 저장된 보조 애플리케이션을 RAM(32)에 로드하라는 요청을 제1 프로세서(12)에 전송한다. 그 다음, 제1 프로세서(12)는 비휘발성 메모리(34)의 제3 메모리 부분(39)에 저장된 암호화된 보조 애플리케이션을 RAM(32)으로 로딩하도록 명령한다. 그 다음, 제2 프로세서(20)는 보안 인터페이스(25)를 통해 RAM(32)으로부터 암호화된 보조 애플리케이션의 판독(검색의 의미에서)을 명령하기 위해 보안 인터페이스(25)에 판독 명령을 전송한다.
그런 다음 보안 인터페이스(25)는 프로그램 가능 읽기 전용 메모리(26)에 저장된 복호화 키를 통해 검색된 보조 애플리케이션을 복호화한다. 그런 다음 복호화된 보조 애플리케이션은 보안 요소(15)의 RAM(22)에 저장된다.
복호화 동작 또는 암호화 동작을 수행하기 위해, 보안 인터페이스(25)는 전용 메모리 레지스터(dedicated memory register)들을 이용한다. 일반적으로, 보안 인터페이스(25)는 이용 경우에 따라 복호화되거나 암호화될 데이터를 저장하기 위한 보안 인터페이스(25)의 입력 레지스터 또는 제1 레지스터라고 불리는 제1 레지스터, 복호화 또는 암호화 동작에 이용되는 복호화 키 또는 암호화 키를 저장하기 위한 보안 인터페이스(25)의 제2 레지스터라고 불리는 제2 레지스터(복호화 키와 암호화 키는 실시예에 따라 동일하거나 상이함) 및 입력 레지스터에 수신된 데이터에 대해 수행된 연산 결과(복호화된 데이터 또는 암호화된 데이터)를 저장하기 위한 보안 인터페이스(25)의 출력 레지스터 또는 제3 레지스터라고 불리는 제3 레지스터를 이용한다.
일 실시예에서, 보안 인터페이스(25)의 상기 제1 레지스터, 보안 인터페이스(25)의 상기 제2 레지스터 및 보안 인터페이스(25)의 상기 제3 레지스터는 하나이고 동일한 레지스터이다.
변형으로서, 보안 인터페이스(25)는 보안 요소(15)의 RAM(22)에 전달된 보조 애플리케이션을 복호화하지 않고 저장할 수 있다. 그런 다음 보안 요소(15)의 제2 프로세서(20)는 프로그램 가능 읽기 전용 메모리(26)에 저장된 복호화 키를 통해 보조 애플리케이션을 복호화한다. 이어서 제2 프로세서(20)는 보안 요소(15)의 RAM(22)에 복호화된 보조 애플리케이션을 저장하도록 명령한다.
도 2에 도시된 바와 같이, 방법은 단계(E8)에서 계속된다. 이 단계 동안, 보조 애플리케이션(제2 프로세서(20)에 의한 실행으로 인해)은 파생 인증서를 생성하라는 요청을 발행한다. 이 요청은 기본 애플리케이션으로 전송된다.
기본 애플리케이션에 의한 이 요청의 수신(제2 프로세서(20)에 의한 실행 이후)은 파생 인증서의 생성으로 이어진다(단계 E10). 파생 인증서는 보조 애플리케이션의 요청 시에만 생성된다; 따라서 이는 보조 애플리케이션에만 적용된다. 이 파생 인증서는 개인 키(K'1)와 공개 키(K'2)를 포함한다.
파생 인증서는 하나 이상의 데이터 파트(data part)와 하나 이상의 서명 파트로 구성된다. 따라서 데이터 파트는 예를 들어 RSA(RSA 암호화 알고리즘의 발명자들의 이름을 딴 "Rivest Shamir Adleman") 타입 또는 ECC("타원 곡선 암호화(Elliptic Curve Cryptography)") 타입의 암호화 알고리즘을 구현하는 것에 의해 생성된 적어도 하나의 개인 키(K'1) 및 적어도 하나의 공개 키(K'2)를 포함한다. 다양한 타입의 데이터, 예를 들어 전자 컴포넌트의 제조업체 식별자, 유효 기간, 인증서의 일련 번호, 인증서 서명에 이용된 암호화 알고리즘, 발급 인증 기관에 링크된 정보, 공개 키의 이용 목적, 인증서 표준화 표준 버전, 인터넷 주소, 인터넷 도메인 이름 또는 애플리케이션과 연관된 식별자(이들 예에 제한되지 않음)가 생성(예: 파일에서 값을 판독하는 것에 의해 생성, 애플리케이션의 기능을 통해 값을 생성하는 것에 의해 생성)될 수 있고, 또한 전자 인증서의 데이터 파트를 형성할 수도 있다. 하나의 예시적인 실시예에서, 인증서의 데이터(데이터 파트를 형성함)의 전부 또는 일부가 (예를 들어, 비밀성을 보장하기 위해 개인 키(K'1)에 의해) 암호화된다. 파생 인증서의 생성된 데이터는 RAM(22)에 저장된다.
그런 다음 방법은 단계(E12)에서 계속된다. 이 단계에서 기본 애플리케이션은 파생 인증서의 데이터에 암호화 전자 서명 알고리즘(예: RSA 또는 ECC 암호화 알고리즘에 의해 구현됨)을 적용한다. 이 전자 서명 알고리즘은 소스 인증서로부터의 개인 키(K1)를 이용한다(그리고 프로그램 가능 읽기 전용 메모리(26)의 제1 메모리 부분(27)에 저장됨). 이 알고리즘은 또한 보조 애플리케이션과 관련된 고유 식별자(unique identifier)를 이용한다(이 고유 식별자는 프로그램 가능 읽기 전용 메모리(26)의 제1 메모리 부분(27)에도 저장된다). 즉, 단계(E12)의 끝에서 파생 인증서의 데이터는 소스 인증서에 포함된 개인 키(K1)를 통해 기본 애플리케이션에 의해 전자적으로 서명되었고 생성된 파생 인증서는 데이터 및 연관된 서명을 포함한다. 데이터와 데이터 서명으로 구성된 파생 인증서는 RAM(22)에 저장된다.
실제로, 제2 프로세서(20)에 의해 실행되는 기본 애플리케이션은 프로그램 가능 읽기 전용 메모리(26)에 저장된 소스 인증서를 판독하도록 명령한다. 따라서 기본 애플리케이션은 소스 인증서를 RAM(22)에 로드하라는 요청을 제2 프로세서(20)에 전송한다. 그 다음, 제2 프로세서(20)는 프로그램 가능 읽기 전용 메모리(26)로부터 RAM(22)으로 소스 인증서를 로드한다. 그런 다음 기본 애플리케이션은 파생 인증서의 데이터에 서명하기 위해 RAM(22)에서 소스 인증서의 개인 키(K1)를 판독한다.
그런 다음 기본 애플리케이션은 파생 인증서가 생성되었음을 나타내고 이 파생 인증서의 저장을 명령하기 위해 보조 애플리케이션에 또 다른 요청을 전송한다(단계(E14)).
그 다음, 보조 애플리케이션은 파생 인증서를 제2 저장 수단(30)의 재기록 가능 비휘발성 메모리(34)에 저장하라는 요청을 제2 프로세서(20)에 전송한다(단계(E16)).
실제로, 제2 프로세서(20)는 RAM(22)에 저장된 파생 인증서를 재기록 가능 비휘발성 메모리(34)에 저장하라는 요청을 제1 프로세서(12)로 전송한다. 이 저장은 파생 인증서를 암호화하는 보안 인터페이스(25)의 중간 단계를 포함한다. 이 암호화 단계는 제2 프로세서(20)가 파생 인증서를 암호화하기 위한 명령을 보안 인터페이스(25)에 전송하는 단계를 포함한다. 그런 다음 보안 인터페이스(25)는 RAM(22)에 저장된 파생 인증서를 검색(판독의 의미에서)하고, 프로그램 가능 읽기 전용 메모리(26)에 저장된 암호화 키를 이용하여 파생 인증서를 암호화한다(암호화 키는 보안 인터페이스(25)의 레지스터, 예를 들어 보안 인터페이스(25)의 상기 제2 레지스터의 제2 프로세서(20)에 의해 예를 들어 이 암호화 키의 사본(copy)에 의해 미리 저장 인터페이스(25)에서 이용 가능하게 된다). 그런 다음 보안 인터페이스(25)는 암호화된 파생 인증서를 RAM(32)에 로드한다.
그런 다음 전자 장치(10)의 제1 프로세서(12)는, 제1 프로세서(12)로부터 파생 인증서를 저장하라는 요청을 수신한 후 재기록 가능 비휘발성 메모리(34)의 제1 메모리 부분(37)에 암호화된 파생 인증서(RAM(32)에 저장됨)를 저장하도록 명령한다(단계 E18).
변형으로서, 이 저장 명령은 전자 장치(10)의 제1 프로세서(12)에 의해 실행될 수 있다.
단계(E20)에서, 제1 프로세서(12)의 요청에 따라, 제2 프로세서(20)는 예를 들어 통신 오퍼레이터의 전화 네트워크를 통한 인증과 관련하여 원하는 기능을 구현하기 위해 (자신의 운영 체제를 통해) 보조 애플리케이션을 실행시킨다.
실제로, 예를 들어 전화 통신 네트워크의 맥락 내에서 이용되기 위해서, 보조 애플리케이션은 네트워크의 외부 엔티티(전자 장치(10) 및 보안 요소(15)를 포함하는 호스트 단말(1)의 외부)에 의해 인증되어야 할 것이다. 예를 들어 시도-응답 인증(challenge-response authentication)이 구현된다.
이를 위해, 제1 프로세서(12)의 요청 시, 제2 프로세서(20)는 난수(random number)(예를 들어 외부 엔티티에 의해 수신됨) 및 파생 인증서의 개인 키(K'1)에 기초하여 보조 애플리케이션을 인증하는 서명을 생성한다. 그런 다음 보조 애플리케이션과 연관된 서명은 파생 인증서의 공개 키(K'2)에 기초하여 네트워크의 외부 엔티티에 의해 유효성이 확인된다. 이러한 맥락에서, 외부 엔티티는 (외부 엔티티도 저장하는) 소스 인증서를 통해 공개 키(K'2)의 유효성을 확인할 수 있다. 더 정확하게는, 외부 엔티티는 (단계(E12)에서 생성된 서명을 확인하는 것에 의해) 소스 인증서의 공개 키(K2)를 통해 파생 인증서의 공개 키(K'2)의 유효성을 확인한다. 자세한 내용은 GSM Association, 버전 2.2.1, 2018년 12월 18일 문서 "RSP Technical Specification"을 참조할 수 있다.
필요한 경우, 보조 애플리케이션은 파생 인증서의 데이터(예를 들어 개인 키(K'1))를 이용하기 위해 재기록 가능 비휘발성 메모리(34)의 제1 메모리 부분(37)에 저장된 암호화된 파생 인증서의 판독을 명령할 수 있다. 이 판독하는 단계는 파생 인증서를 판독하라는 명령을 제2 프로세서(20)에 전송하는 보조 애플리케이션을 포함한다.
그 다음, 제2 프로세서(20)는 재기록 가능 비휘발성 메모리(34)에 저장된 파생 인증서를 RAM(32)에 로드하라는 명령을 제1 프로세서(12)에 전송한다. (예를 들어 제1 프로세서(12)로부터의 알림(notification)을 통해) 파생 인증서가 RAM(32)에 저장되면, 제2 프로세서(20)는 RAM(32)으로부터 암호화된 파생 인증서를 판독(검색의 의미에서)하기 위해 보안 인터페이스(25)에 판독 명령을 전송한다.
그런 다음 보안 인터페이스(25)는 프로그램 가능 읽기 전용 메모리(26)에 저장된 복호화 키를 통해 파생 인증서를 복호화하고 RAM(22)에 복호화된 파생 인증서를 저장한다. 그런 다음 보조 애플리케이션은 기능을 구현하는 맥락에서(예를 들어 통신 오퍼레이터의 전화 네트워크를 통한 보조 애플리케이션의 인증의 맥락에서) 이용하기 위해 (예를 들어 제2 프로세서(20)에 의해 전송된 가용성 알림(availability notification)을 수신한 후) 파생 인증서의 데이터(예를 들어 개인 키(K'1))에 액세스할 수 있다.
인증이 성공하면, 네트워크의 외부 엔티티가 기능의 구현을 인증한다. 이를 위해 외부 엔티티는 키들의 세트를 보조 애플리케이션에 전달한다. 그런 다음 이 키들의 세트는 전화 기능(또는 "원격 SIM 프로비저닝(Remote SIM Provisioning)")을 구현하기 위해 교환되는 요청들을 암호화/복호화하기 위해 이용된다.
변형으로서, 전자 장치는 복수의 상이한 보조 애플리케이션들(각각은 예를 들어 특정 기능과 연관됨)을 포함할 수 있다. 이 경우 각각의 보조 애플리케이션의 요청에 따라 기본 애플리케이션은 각각 보조 애플리케이션과 연관된 복수의 파생 인증서들을 생성한다. 각각의 파생 인증서들은 동일한 소스 인증서로부터 생성된다. 특히, 각각의 파생 인증서는 소스 인증서에 포함된 (고유) 개인 키(K1)에 기초하여 전자적으로 서명된다. 실제로 프로그래밍 인터페이스는 각각의 보조 애플리케이션과 기본 애플리케이션 사이의 특정 교환들을 허용한다. 특히, 각각의 파생 인증서들은 대상 보조 애플리케이션에만 전송된다.
또 다른 변형으로, 복수의 소스 인증서들을 이용하여 파생 인증서들을 생성할 수 있다.

Claims (18)

  1. 프로세서(20) 및 기본 애플리케이션과 연관된 제1 인증서를 저장하는 제1 저장 수단(22, 24, 26)을 포함하는 보안 요소(15)에 있어서,
    상기 기본 애플리케이션은,
    상기 기본 애플리케이션이 상기 프로세서(20)에 의해 실행될 때 상기 프로세서(20)가 보조 애플리케이션과 연관된 제2 인증서를 생성하도록 설계되고,
    상기 제2 인증서는,
    상기 제1 인증서에 포함된 키를 통해 전자적으로 서명된 것인,
    보안 요소.
  2. 제1항에 있어서,
    상기 기본 애플리케이션은,
    상기 보조 애플리케이션으로부터 요청을 수신하도록 설계되고,
    상기 제2 인증서는,
    상기 요청의 수신에 기초하여 생성되는,
    보안 요소.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 인증서는,
    제1 메모리 파트(27)에 저장되는,
    보안 요소.
  4. 제3항에 있어서,
    상기 제1 저장 수단은,
    적어도 제1 물리적 메모리(26)를 포함하고,
    상기 제1 메모리 파트(27)는,
    상기 제1 물리적 메모리(26)의 일부에 대응하는,
    보안 요소.
  5. 제3항 또는 제4항에 있어서,
    상기 기본 애플리케이션은 상기 프로세서(20)에 의해 실행될 때, 상기 프로세서(20)가 제2 메모리 파트(37)에 상기 제2 인증서를 저장하는 것을 명령하도록 설계되고,
    상기 제2 메모리 파트(37)는,
    상기 제1 메모리 파트(27)와 구별되는,
    보안 요소.
  6. 제5항에 있어서,
    상기 보조 애플리케이션은,
    상기 기본 애플리케이션으로부터 다른 요청을 수신하도록 설계되고,
    상기 다른 요청의 수신은,
    상기 제2 인증서의 저장을 명령하는,
    보안 요소.
  7. 제5항 또는 제6항에 있어서,
    상기 기본 애플리케이션과 상기 보조 애플리케이션을 저장하기 위한 제2 저장 수단(30)이 제공되고,
    상기 제2 저장 수단(30)은,
    적어도 제2 물리적 메모리(34)를 포함하고,
    상기 제2 메모리 파트(37)는,
    상기 제2 물리적 메모리(34)의 일부인,
    보안 요소.
  8. 제7항에 있어서,
    상기 제2 저장 수단은,
    상기 보안 요소(15)의 외부에 위치되는,
    보안 요소.
  9. 제3항 내지 제8항 중 어느 한 항에 있어서,
    상기 제1 메모리 파트(27)는,
    일회성 프로그램 가능 메모리의 일부인,
    보안 요소.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 기본 애플리케이션은,
    상기 프로세서(20)가 상기 제1 인증서에 포함된 상기 키를 이용하여 암호화 전자 서명 알고리즘을 상기 제2 인증서에 적용하도록 설계되는,
    보안 요소.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 보조 애플리케이션은,
    모바일 전화 네트워크의 인증 애플리케이션인,
    보안 요소.
  12. 제1항 내지 제11항 중 어느 한 항에 따른 보안 요소(15)가 구비된 전자 장치(10)를 포함하는 호스트 단말(1)에 있어서,
    상기 호스트 단말은,
    상기 기본 애플리케이션과 상기 보조 애플리케이션을 저장하는 제2 저장 수단(30)을 포함하고,
    상기 제2 저장 수단(30)은,
    상기 보안 요소(15)에 연결된 것인,
    호스트 단말.
  13. 보안 요소(15)에서 인증서를 생성하는 방법에 있어서,
    상기 보안 요소(15)는,
    프로세서(20) 및 기본 애플리케이션과 연관된 제1 인증서를 저장하는 제1 저장 수단을 포함하고,
    상기 방법은,
    상기 기본 애플리케이션이 상기 프로세서(20)에 의해 실행될 때 상기 프로세서가 보조 애플리케이션과 연관된 제2 인증서를 생성하는 단계(E10)
    를 포함하고,
    상기 제2 인증서는,
    상기 제1 인증서에 포함된 키를 통해 전자적으로 서명된 것인,
    방법.
  14. 제13항에 있어서,
    상기 기본 애플리케이션이 상기 보조 애플리케이션으로부터 요청을 수신하는 단계(E8)를 포함하고,
    상기 제2 인증서를 생성하는 단계(E10)는,
    상기 요청의 수신에 기초하는 것인,
    방법.
  15. 제13항 또는 제14항에 있어서,
    상기 제1 저장 수단은 적어도 제1 메모리 파트(27)를 포함하고,
    제2 메모리 파트(37)를 포함하는 제2 저장 수단이 제공되고,
    상기 제1 메모리 파트(27)는 상기 제1 인증서를 저장하고,
    상기 방법은,
    상기 제2 메모리 파트(37)에 상기 제2 인증서를 저장하는 단계(E18)를 포함하는,
    방법.
  16. 제15항에 있어서,
    상기 제1 저장 수단은,
    적어도 제1 물리적 메모리(26)를 포함하고,
    상기 제2 저장 수단은,
    제2 물리적 메모리(34)를 포함하고,
    상기 제1 메모리 파트(27)는,
    상기 제1 물리적 메모리(26)의 일부에 대응하고,
    상기 제2 메모리 파트(37)는,
    상기 제2 물리적 메모리(34)의 일부에 대응하는,
    방법.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서,
    상기 생성하는 단계(E10)는,
    상기 제1 인증서에 포함된 상기 키를 이용하여 암호화 전자 서명 알고리즘을 상기 제2 인증서에 적용하는 단계(E12)
    를 포함하는,
    방법.
  18. 프로세서(20)에 의해 실행될 수 있는 명령어들을 포함하고, 상기 명령어들이 상기 프로세서(20)에 의해 실행될 때 제13항 내지 제17항 중 어느 한 항에 따른 인증서를 생성하는 방법을 구현하도록 설계된 컴퓨터 프로그램.
KR1020230143214A 2022-10-26 2023-10-24 보안 요소, 연관된 호스트 단말, 보안 요소의 인증서를 생성하는 방법 및 연관된 컴퓨터 프로그램 KR20240058779A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2211166A FR3141584A1 (fr) 2022-10-26 2022-10-26 Elément sécurisé, terminal hôte associé, procédé de génération de certificat dans un élément sécurisé et programme d’ordinateur associé
FRFR2211166 2022-10-26

Publications (1)

Publication Number Publication Date
KR20240058779A true KR20240058779A (ko) 2024-05-03

Family

ID=85462242

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230143214A KR20240058779A (ko) 2022-10-26 2023-10-24 보안 요소, 연관된 호스트 단말, 보안 요소의 인증서를 생성하는 방법 및 연관된 컴퓨터 프로그램

Country Status (3)

Country Link
EP (1) EP4362394A1 (ko)
KR (1) KR20240058779A (ko)
FR (1) FR3141584A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3386147A1 (en) * 2017-04-03 2018-10-10 Gemalto Sa Method for renewing a certificate in a secure element
US11671265B2 (en) * 2019-10-25 2023-06-06 John A. Nix Secure configuration of a secondary platform bundle within a primary platform

Also Published As

Publication number Publication date
EP4362394A1 (fr) 2024-05-01
FR3141584A1 (fr) 2024-05-03

Similar Documents

Publication Publication Date Title
CA2820963C (en) Writing application data to a secure element
US8352749B2 (en) Local trusted services manager for a contactless smart card
JP2020080174A (ja) 複数のサービスプロバイダのトラステッドサービスマネジャーとセキュアエレメントとをインターフェース接続するためのシステム、方法、およびコンピュータプログラム製品
US10650168B2 (en) Data processing device
EP2600275A1 (en) Method for accessing a secure storage, secure storage and system comprising the secure storage
JP6096785B2 (ja) 第1のエンティティから第2のエンティティにセキュリティモジュールの制御を移行する方法
US11552807B2 (en) Data processing method and apparatus
EP3989480A1 (en) Virtual subscriber identification module and virtual smart card
US20220303119A1 (en) Provisioning control apparatus and method for provisioning electronic components for electronic devices
KR20240058779A (ko) 보안 요소, 연관된 호스트 단말, 보안 요소의 인증서를 생성하는 방법 및 연관된 컴퓨터 프로그램
CN115037492A (zh) 基于在存储器装置中实施的安全特征的在线安全服务
AU2016203535B2 (en) Systems, methods, and computer program products for managing secure elements
CN111404678B (zh) 证书的重写方法、装置、存储介质、设备及系统
EP4254855A1 (en) A device and a method for controlling use of a cryptographic key
Tamrakar et al. On rehoming the electronic id to TEEs
CN115037496A (zh) 经由在线固件商店的端点定制
CN115037495A (zh) 身份验证期间跟踪具有安全存储器装置的端点的活动以用于安全操作
CN115021950A (zh) 用于端点的在线服务商店
CN115037493A (zh) 监测具有安全存储器装置的端点的完整性以用于身份认证
CN115021949A (zh) 具有被保护用于可靠身份验证的存储器装置的端点的识别管理方法和系统
CN115037494A (zh) 无需预先定制端点的云服务登入
CN115037491A (zh) 具有被保护用于可靠身份验证的存储器装置的端点群组中的订阅共享
AU2013222020A1 (en) Local trusted services manager for a contactless smart card
CN115175179A (zh) 访问授权方法、装置、终端及存储介质
KR20170100235A (ko) 공인 인증서 보안 시스템 및 그 방법