KR20240027149A - 보안 요소의 개인화 - Google Patents

보안 요소의 개인화 Download PDF

Info

Publication number
KR20240027149A
KR20240027149A KR1020247005382A KR20247005382A KR20240027149A KR 20240027149 A KR20240027149 A KR 20240027149A KR 1020247005382 A KR1020247005382 A KR 1020247005382A KR 20247005382 A KR20247005382 A KR 20247005382A KR 20240027149 A KR20240027149 A KR 20240027149A
Authority
KR
South Korea
Prior art keywords
personalization
software
memory
record
internal agent
Prior art date
Application number
KR1020247005382A
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 KR20240027149A publication Critical patent/KR20240027149A/ko

Links

Classifications

    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

보안 요소(SE)(100) 내에서 소프트웨어, 특히 운영 체제(OS)를 개인화하기 위한 방법은, SE(100)의 메모리(20) 내로 소프트웨어 이미지(30; 30a, 30b)를 로딩하는 단계(S2); SE(100)의 메모리(20) 내로 개인화 데이터(41)를 포함하는 소프트웨어 개인화 레코드(40)를 로딩하는 단계(S3); 및 소프트웨어 개인화 데이터(41)를 사용하여, 로딩된 소프트웨어 이미지(30; 30a, 30b)를 개인화하는 단계(S7, S8)를 포함한다. 본 발명에 따라, 소프트웨어 이미지(30; 30a, 30b)의 개인화는 SE(100)의 내부 에이전트(10)에 의해 개시된다(S5). 바람직하게는, 내부 에이전트(10)에 의한 소프트웨어 이미지(30; 30a, 30b)의 개인화 개시(S5)는, 내부 에이전트(10)에 의해 탐지되는(S4) 트리거 이벤트(200)에 의해 트리거되며, 트리거 이벤트(200)는 소프트웨어 개인화와 무관하다.

Description

보안 요소의 개인화
본 발명은 보안 요소(secure element)의 개인화(personalization)에 관한 것으로서, 보다 구체적으로는, 칩 제조 현장의 외부에서의 보안 요소의 개인화에 관한 것이다.
스마트 카드는, 식별, 인증, 데이터 저장 및 애플리케이션 처리를 제공하기 위해, 휴대폰, 결제 카드, 액세스 카드와 같은 다양한 시스템에서 널리 사용된다.
결제 카드의 경우와 같이, 스마트 카드가 보안에 중요한 애플리케이션 및 민감한 데이터를 포함하는 경우, 데이터를 저장하기 위해 보안 요소가 사용된다. 보안 요소는, 애플리케이션 코드 및 애플리케이션 데이터가 안전하게 저장되어 관리될 수 있는 보안 메모리 및 실행 환경을 제공하는 변조 방지 요소(tamper resistant element: TRE)이다. 보안 요소는, 승인된 경우에만 카드에 저장된 데이터에 대한 액세스가 제공되도록 보장한다. 이러한 보안 요소는, UICC, 내장형 SE, 스마트SD, 스마트 마이크로SD, eSIM 등과 같은 임의의 폼 팩터로 존재할 수 있다.
보안 요소는, 보안 키를 사용하여 인증되는 펌웨어/운영 체제, 개인화 데이터, 패키지, 애플릿(applet), 애플리케이션 등과 같은 데이터 모음을 포함할 수 있다. 운영 체제 및 애플리케이션은 휘발성 및 비휘발성 메모리 모듈 내의 보안 요소 내에 저장되며, 보안 요소의 보안 프로세서에서 실행된다.
규격 글로벌 플랫폼 기술 카드 규격 버전 2.3은, 펌웨어(즉, 운영 체제 및 애플리케이션 데이터를 포함할 수 있는 유스 케이스(use case) 의존 데이터) 및 개인화 데이터를 보안 요소 내로 로딩하기 위한 표준화된 메커니즘을 기술한다. 특히, 보안 요소의 내부에 제공되는 이미지 신뢰 로더(Image Trusted Loader: ITL) 또는 업데이터 에이전트(update agent)는 운영 체제 이미지를 수신하도록 구성되어, 이미지에 대한 보안 검사(특히, 인증 및 무결성 검사)를 수행하고, 보안 요소의 메모리 내로의 이미지 콘텐츠의 설치를 트리거함으로써, 보안 요소 내에 운영 체제를 설치한다.
도 1은 펌웨어(예를 들어, 운영 체제(OS))를 보안 요소 내로 로딩하는 통상적인 프로세스의 개략도를 도시한다. 상부 행은 해당 제조 단계(I, II, III, IV)를 담당하는 엔티티를 도시하는 반면에, 하부 행은 그러한 특정 제조 단계에서의 보안 요소(즉, 칩)의 콘텐츠를 도시한다. 칩 제조 현장(즉, 칩 공장)에서의 제1 제조 단계 I 동안, 칩 제조사는, 보안 운영 체제와 같은 신뢰 소프트웨어가 보안 요소에 로딩될 수 있도록 한다. 칩 제조 현장에서, 신뢰 소프트웨어는 키 또는 인증서인 크리덴셜(credential)(41)로 개인화되며, 크리덴셜(41)은, 개인화 시에, 개인화된 소프트웨어 이미지(예를 들어, 도 1에서 "maxiInit"로 지칭되는 개인화된 운영 체제(OS)) 내에 저장된다. 신뢰 소프트웨어 또는 OS는, 칩 제조 현장의 외부 개인화 디바이스로부터 보안 요소로 전송되는, APDU로 지칭되는 특정 명령에 의해 개인화된다. 개인화된 소프트웨어는 최종적으로 칩의 내부에 로딩된다.
그 다음, 이의 개인화된 소프트웨어를 갖는 칩은, 디바이스 제조사의 현장에서, (e)UICC 또는 (e)SIM과 같은 휴대용 카드형 디바이스 내에 내장되거나(단계 II), 다른 디바이스 제조사의 현장에 전달되어, 스마트폰, 컴퓨터, 자동차, 측정 장비 등과 같은 전자 엔드 디바이스(end device) 내에 포함될 수 있으며(단계 III), 최종적으로 시판될 수 있다(단계 IV).
이러한 통상적인 프로세스를 따름으로써, 보안상의 이유로, 키 및 인증서를 포함하는 크리덴셜이 칩 제조 동안 인증된 환경에서 로딩되어야 하기 때문에, 개인화된 소프트웨어 이미지가 칩 공장에서 칩 내에 로딩된다(단계 I). 결과적으로, 인증된 환경이 칩 공장의 외부에 구축되어 있지 않기 때문에, 신뢰 소프트웨어는, 칩 제조 현장 이외의 현장에서 개인화될 수 없다.
이러한 보안 문제와는 별개로, 흔히 칩 제조사 이외의 현장은, 이들의 제조 라인이 표준 개인화 명령(예를 들어, ISO 7816에 따른 APDU)을 칩에 전송하기 위해 필요한 인프라를 구비하고 있지 않을 수 있기 때문에, 칩에 존재하는 소프트웨어(예를 들어, 그 안에 설치된 OS)를 개인화할 수 없다.
따라서, 신뢰 소프트웨어를 보안 요소 내로 로딩 및 개인화할 수 있도록 하여 전술한 단점을 극복할 필요가 있다.
본 발명은 독립 청구항에 의해 커버되는 청구 대상에 의해 위의 목적을 해결한다. 본 발명의 바람직한 실시형태는 종속 청구항에 한정된다.
본 발명의 제1 양태에 따라, 보안 요소(SE) 내에 소프트웨어를 로딩하여 개인화하기 위한 방법이 제공된다. 방법은, 제1 단계에서, SE의 메모리 내로 소프트웨어 이미지를 로딩하는 단계를 포함한다. 추가적인 단계에서, 소프트웨어 개인화 레코드(record)가 또한 SE의 메모리 내로 로딩된다. 소프트웨어 개인화 레코드는, 소프트웨어 이미지를 개인화하기 위해 사용될 수 있는 소프트웨어 개인화 데이터를 포함한다. 후속 단계에서, SE의 내부 에이전트가 개인화 데이터에 의해 소프트웨어 이미지의 개인화를 개시하여, SE 내에 개인화된 소프트웨어를 제공하도록 명령한다.
본 출원 전반에 걸쳐서, "소프트웨어"라는 용어는, 보안 요소 내에 로딩되어 실행될 임의의 신뢰 소프트웨어를 지칭한다. 이러한 소프트웨어의 실시예는, 펌웨어, 운영 체제(OS), 및 임의의 다른 유스 케이스 의존 보안 애플리케이션을 포함한다. "소프트웨어 이미지"(또는 "OS 이미지")라는 표현은, 본 발명에 따른 내부 에이전트와 같은 SE의 운영 체제 또는 에이전트에 의해 사용될 소프트웨어 버전 및 암호화 데이터를 캡슐화하는 포괄적인 데이터 형식을 지칭한다.
본 발명의 본질은, 내부 에이전트가 외부 개인화 디바이스의 역할을 맡으며, 이를 대체함으로써, 본 발명에 따라, 개인화는, 칩 제조 현장의 인증된 환경에서 작동되도록 요구되는 외부 개인화 디바이스에 의해 칩 제조 동안 개시되는 것이 아니라, 보안 요소의 내부 엔티티에 의해 언제든지 그리고 어디서나 개시될 수 있도록 한다는 데에 있다.
따라서, 제안된 방법은, 인증된 환경 내에서 각각의 소프트웨어 이미지 및 해당 개인화 데이터를 보안 요소 내로 로딩하는 프로세스와 무관하게, 보안 요소 내에서 신뢰 소프트웨어를 개인화하기 위한 효율적이고 안전한 솔루션을 제공한다. 신뢰 소프트웨어는 더 이상 필수적으로 개인화 데이터가 로딩되는 동일한 현장에서 그리고 개인화 데이터가 로딩될 때 동시에 개인화될 필요가 없기 때문에, 보안 요소의 수명 주기 동안 언제든지 그리고 어디서나 소프트웨어를 로딩하여 개인화하기 위한 유연한 솔루션이 제공된다.
소프트웨어 개인화 레코드 내에 포함된 소프트웨어 개인화 데이터는, 소프트웨어를 개인화하기 위해 필요한 모든 보안 크리덴셜, 특히 암호화 키 세트를 포함한다.
칩 제조사의 인증된 환경에서 소프트웨어 이미지와 함께 보안 크리덴셜과 같은 개인화 데이터를 포함하는 개인화 레코드를 보안 요소 내로 로딩함으로써, 기밀 개인화 데이터가 엄격한 안전 조건 하에서 로딩되므로 승인되지 않은 변경으로부터 보호되도록 보장된다.
실제 개인화는, 보안 크리덴셜, 즉 키, 인증서 및 추가적인 개인화 데이터를 소프트웨어 이미지에 연결하는 프로세스이다. 이는 외부 개인화 디바이스를 통해서가 아니라, 보안 요소의 내부 에이전트를 통해 개시된다. 인증된 환경은 실제 개인화를 위해 불필요하게 되므로, 실제 개인화는, 예를 들어 보안 요소가 디바이스 제조 현장에서 소비자 디바이스 내로 내장되는 경우, 이후의 단계에서 수행될 수 있다.
이에 따라, 소프트웨어를 개인화하기 위해 필요한 보안 레벨을 여전히 제공하면서, 전자 디바이스 내의 보안 요소 및 이들의 애플리케이션의 유연성 및 범용성을 증가시킨다.
바람직하게는, 트리거 이벤트가 발생하는 경우 및/또는 발생할 때, 내부 에이전트에 의해 개인화가 개시된다. 즉, 내부 에이전트는, 트리거 이벤트를 탐지하는 즉시, 개인화 데이터에 의해 소프트웨어 이미지의 개인화를 개시한다. 바람직하게는, 트리거 이벤트는 소프트웨어 개인화와 무관하며, 보안 요소의 미리 한정된 내부 상태(예를 들어, SE의 초기 리셋)로부터 비롯되거나, 외부 디바이스로부터 SE에 의해 수신된 특정 명령으로부터 비롯된다.
개인화의 개시가 개인화와 무관한 트리거 이벤트에 의존하도록 함으로써, 외부 개인화 디바이스에 의한 인증된 환경 내에서의 통상적인 개인화 방식과 개인화가 분리된다. 예를 들어, 통상적으로 외부 개인화 디바이스로부터 보안 요소로 전송된 하나 이상의 특정 표준화된 개인화 명령을 통해 개인화가 개시 및 명령되지만, 본 발명은 트리거 이벤트의 탐지 후에, 내부 에이전트에 의해 내부적으로 개인화를 개시하는 것을 제안한다. 그러한 트리거 이벤트가 내부적으로 발생하는지 또는 외부적으로 발생하는지 여부와 관계없이, 개인화는 내부적으로 개시 및 명령되므로, 임의의 외부 개시, 디바이스, 인프라, 또는 환경과 분리된다.
일부 실시형태에 따라, 트리거 이벤트는, 외부 디바이스로부터 SE에 의해 수신된 특정 명령(예를 들어, ISO 7816에 따른 애플리케이션 프로토콜 데이터 유닛(APDU))이다. 이러한 명령은 SE의 제조사의 독점(proprietary) 명령일 수 있거나, 독점 정보(예를 들어, 독점 헤더 바이트)를 포함하는 명령일 수 있다. 그러한 방식으로, 개인화는, 개인화와 무관한 외부 디바이스로부터 SE에 의해 수신된 임의의 임의적 명령과 연관될 수 있다.
바람직하게는, 소프트웨어는, 인증된 환경이 이용 가능하지 않는, SE의 제조 단계 후의 이후의 단계에서 개인화된다. 개인화 레코드 내에 포함된 바와 같은 개인화 날짜는 제조 단계 동안 인증된 환경에서 SE 내로 안전하게 로딩되었기 때문에, 그리고 SE의 외부로부터의 임의의 간섭 없이, 이후의 단계 동안 SE의 내부 에이전트에 의해 개인화가 개시되기 때문에, 개인화는 제조 단계 동안 수행된 것만큼 안전하다.
로딩 시에, 소프트웨어 이미지 및 개인화 레코드는, 바람직하게는 SE의 비휘발성 메모리 내에 기록된다. 바람직하게는, 소프트웨어 이미지 및 개인화 레코드는 모두 메모리의 미리 결정된 영역 내에 기록된다. 미리 결정된 메모리 영역은, 소프트웨어 이미지 및 개인화 레코드를 모두 수용하기에 충분히 크고, 개인화 레코드가 로딩되는 미리 지정된 전용 메모리 영역을 포함한다. 미리 지정된 메모리 영역의 메모리 어드레스, 예를 들어 미리 지정된 메모리가 어드레싱될 수 있는 메모리 어드레스는 내부 에이전트에게 알려져 있으므로, 이후에 실행될 개인화 명령 및 루틴과 함께 사용될 수 있다. 이러한 방식으로, 메모리 어드레스를 역참조(dereferencing)함으로써, 개인화 레코드 및 그 안에 있는 개인화 데이터가 식별될 수 있다.
바람직하게는, 소프트웨어 이미지는, 미리 지정된 메모리 영역이 빈 상태로 남아있도록 메모리 영역 내로 로딩된다. 그 다음, 개인화 레코드가 미리 지정된 메모리 영역 내로 로딩됨으로써, 사실상, 개인화 레코드는 로딩된 소프트웨어 이미지의 2개의 부분 사이에 위치될 수 있다. 또한, 개인화 레코드는 미리 결정된 메모리 영역의 리딩(leading) 또는 테일링(tailing) 영역 내로 로딩될 수 있지만, 미리 지정된 메모리 영역은 소프트웨어 이미지의 부분을 수용하는 메모리 세그먼트 내에 있는 것이 바람직하다. 이에 따라, 개인화 레코드는 메모리 영역 내에 숨겨진다.
바람직한 제1 실시형태에 따라, 내부 에이전트는 개인화 명령을 배치하고, 이에 따라, 내부 에이전트가 SE의 프로세서에 의해 실행되는 개인화 명령을 전달하거나 인계함으로써 개인화가 개시된다. 이러한 개인화 명령은, 개인화 레코드 내에 포함되어 미리 지정된 메모리 영역 내에 저장되는 개인화 데이터를 사용한다. 소프트웨어 이미지가 통상적인 방식으로 개인화된 경우, 개인화 명령은, 외부 개인화 디바이스가 SE에 전송하는 표준화된 개인화 명령을 나타낼 수 있거나 이와 호환될 수 있다. 즉, 내부 에이전트에 의해 내부적으로 개인화가 개시되더라도, 소프트웨어 개인화 명령이 외부 개인화 디바이스로부터 수신되는 것이 아니라, 내부 에이전트에 의해 전달되거나 인계된다는 것은 SE의 프로세서 및 운영 체제에게 투명하다(transparent).
바람직한 제2 실시형태에 따라, 개인화 레코드는, 실제 개인화 데이터 외에, 개인화 데이터를 사용하는 소프트웨어 이미지의 개인화 시에 SE의 프로세서에 의해 실행될 개인화 명령을 포함한다. 따라서, 이러한 실시형태에 따라, 개인화 레코드는 개인화 명령을 배치한다. 개인화 명령은, 미리 지정된 메모리 영역 내에 저장된 개인화 데이터를 사용한다. 이들은 소프트웨어 이미지가 통상적인 방식으로 개인화된 경우, 외부 개인화 디바이스가 SE에 전송하는 표준화된 개인화 명령을 나타낼 수 있거나 이와 호환될 수 있다.
이러한 실시형태에 따라, 내부 에이전트는 개인화 명령 자체를 배치하는 것이 아니라, 오히려 개인화 레코드에 의해 배치된 개인화 명령을 참조한다. 이러한 개인화 명령은, 명령이 프로세서에 의해 최종적으로 실행되기 위한 목적으로 개인화를 개시할 때 내부 에이전트에 의해 해석 가능한 스크립트 또는 유사한 명령 시퀀스를 나타낼 수 있다. 개인화 레코드 내에 배치된 개인화 명령의 시퀀스를 해석하는 내부 에이전트에 의해 내부적으로 개인화가 개시되더라도, 소프트웨어 개인화 명령이 외부 개인화 디바이스로부터 수신되는 것이 아니라 개인화 레코드에 의해 배치된다는 것은 SE의 프로세서 및 운영 체제에게 투명하다.
본 발명의 일부 실시형태에서, 내부 에이전트는, 제조사의 현장의 인증된 환경 내에서 칩 제조 시에 SE 내로 로딩된다. 바람직하게는, 내부 에이전트는, 소프트웨어 이미지 및/또는 개인화 레코드와 함께 또는 긴밀하게 합동으로 SE 내로 로딩된다. 인증된 환경에서 내부 에이전트와 함께 보안 크리덴셜을 포함하는 개인화 레코드 내에 포함된 개인화 데이터를 보안 요소 내로 로딩함으로써, 기밀 개인화 데이터가 엄격한 안전 조건 하에서 엄격하게 로딩되므로 승인되지 않은 변경으로부터 보호되도록 보장된다.
바람직하게는, 보안 요소, 특히 내부 에이전트는, 보안 요소의 제조사 또는 공급자와 연관될 수 있거나, 보안 요소가 내장된 전자 디바이스의 제공자와 연관될 수 있는 디지털 서명을 검증함으로써, 소프트웨어 이미지 및/또는 개인화 레코드를 인증한다. 또한, 보안 요소는, 서명을 검증하기 위해 사용된 것과 동일하거나 다른 암호화 키일 수 있는 암호화 키를 사용하여, 소프트웨어 이미지 및/또는 개인화 레코드를 복호화할 수 있다. 바람직하게는, 전체적으로 소프트웨어 이미지 및 개인화 레코드 둘 모두를 포함하는, 미리 결정된 메모리 영역이 인증, 검증 및/또는 복호화된다.
본 발명의 제2 양태에 따라, 위에 명시된 바와 같은 방법을 수행하도록 구성되는, 내부 에이전트, 프로세서 및 메모리를 포함하는 보안 요소(SE)가 제공된다. 개인화될 소프트웨어 이미지, 및 소프트웨어 개인화 데이터를 포함하는 소프트웨어 개인화 레코드가 저장되는 메모리 영역이 보안 요소의 메모리에 제공된다. 보안 요소의 내부 에이전트는, 개인화 레코드 내에 포함된 개인화 데이터를 사용하여, 소프트웨어 이미지의 개인화를 개시하도록 구성된다.
소프트웨어 이미지의 개인화를 개시하기 위한 트리거로서, 내부 에이전트는, 트리거된 소프트웨어 개인화와 무관한 트리거 이벤트를 탐지하도록 추가로 구성된다. 이러한 프로세스는, SE의 미리 한정된 내부 상태, 예를 들어 SE의 초기 리셋을 탐지하는 단계; 또는 SE의 제조사의 외부 디바이스로부터 SE에 의해 수신된 특정한, 바람직하게는 독점 명령을 외부 트리거 이벤트로서 탐지하는 단계를 포함할 수 있다.
바람직하게는, 내부 에이전트는, 소프트웨어 이미지의 개인화를 개시하기 위해 운영 체제(OS)와 통신하도록 구성된다.
내부 에이전트는, 소프트웨어 이미지를 인증하기 위한 데이터, 및/또는 개인화 레코드 및 개인화 데이터가 로딩된 보안 요소의 미리 지정된 메모리 영역으로부터 페치된 개인화 데이터와 같은, 개인화 프로세스의 준비 시에 또는 개인화 프로세스 동안에 데이터를 저장하기 위한 메모리 또는 메모리 구조를 포함할 수 있다.
본 발명의 일부 실시형태에서, SE의 내부 에이전트는, 내부 에이전트의 메모리 구조 내에 배치된 개인화 명령을 페치하고, 그러한 명령을 운영 체제를 통해 SE의 프로세서에 인계하거나 전달하여 이들이 실행되도록 하며, 이에 따라 소프트웨어 이미지를 개인화하도록 구성된다. 본 발명의 다른 실시형태에서, 소프트웨어 개인화 명령은 개인화 레코드 내에 배치되며, 스크립트 또는 명령의 해석 가능한 시퀀스를 나타낸다. 그러한 실시형태에서, SE의 내부 에이전트는, 개인화 레코드에 액세스하고, 명령이 SE의 운영 체제를 통해 최종적으로 SE의 프로세서에 의해 실행되기 위한 목적으로 개인화 명령의 시퀀스를 해석하도록 구성된다.
본 출원에서 설명된 모든 프로세스, 디바이스, 요소, 유닛, 및 수단은 소프트웨어 또는 하드웨어 요소 또는 이들의 조합으로 구현될 수 있음을 유의해야 한다. 본 출원에서 설명된 다양한 엔티티에 의해 수행되는 모든 단계 뿐만 아니라 설명된 기능은, 각각의 엔티티가 각각의 단계 및 기능을 수행하도록 적응되거나 구성된다는 것을 의미하도록 의도된다.
본 발명의 추가적인 양태, 특징 및 이점은, 첨부된 도면과 함께 본 발명의 바람직한 실시형태 및 변형예에 대한 이하의 상세한 설명을 검토할 때 당업자에게 명백해질 것이다.
이제 첨부된 도면이 참조될 것이며, 첨부된 도면으로서:
도 1은 보안 요소의 통상적인 제조 흐름의 개략도를 도시한다;
도 2는 본 발명에 따른 보안 요소의 메모리 영역의 구조를 도시한다;
도 3a는 본 발명의 바람직한 제1 실시형태에 따른 보안 요소의 구조를 도시한다;
도 3b는 본 발명의 바람직한 제2 실시형태에 따른 보안 요소의 구조를 도시한다;
도 4는 본 발명에 따른 방법을 나타내는 흐름도를 도시한다.
본 발명에 대한 상세한 설명은, 본 발명의 구체적인 실시형태의 실시예를 도시하는 첨부된 도면을 참조하여 아래에 주어진다. 이들 실시형태는 당업자가 본 발명을 실시할 수 있도록 충분히 상세하게 설명된다. 본 발명의 다양한 실시형태는 상이하지만 반드시 상호 배타적인 것은 아님을 이해해야 한다. 예를 들어, 일 실시형태와 관련하여 본원에 설명된 특정 특징, 구조, 또는 특성은, 본 발명의 범위를 벗어나지 않으면서 다른 실시형태 내에서 구현될 수 있다. 또한, 개시된 각각의 실시형태 내의 개별 요소의 위치 또는 배치는 본 발명의 범위를 벗어나지 않으면서 변경될 수 있음을 이해해야 한다. 따라서, 이하의 상세한 설명은 제한적인 의미로 간주되어서는 안되며, 본 발명의 범위는, 청구범위가 권리를 갖는 등가물의 전체 범위와 함께, 적절하게 해석되는 첨부된 청구범위에 의해서만 한정된다. 도면에서, 유사한 숫자는 다수의 도면 전체에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
도 2는 본 발명에 따른 보안 요소(100)의 메모리 영역(21)의 구조를 도시한다. 도 3a 및 도 3b는 바람직한 두 가지 실시형태에 따른 보안 요소(SE)(100)의 구조를 보다 상세히 도시한다. 도 2, 도 3a 및 도 3b와 관련하여, 도 4는 본 발명에 따른 방법의 단계를 도시한다.
도 2를 참조하면, 참조번호 21은, 보안 요소(SE)(100)의 바람직하게는 비휘발성 메모리(20) 내의 메모리 영역을 나타낸다. 이는 메모리 어드레스(24)로 어드레싱 가능하고 메모리 어드레스(24)로 시작되는 미리 지정된 메모리 영역(23)을 포함한다. 메모리 영역(21)의 나머지 공간은, 하나의 연속적인 또는 바람직하게는 2개의 별개의 메모리 세그먼트(22a, 22b)를 형성할 수 있다. 바람직하게는, 메모리 영역(23)은, 2개의 별개의 메모리 세그먼트(22a, 22b) 사이에 있다. 메모리 영역(21), 메모리 세그먼트(22a, 22b), 그리고 특히 메모리 영역(23)의 크기는, 소프트웨어 이미지(30) 및 개인화 레코드(40)가 함께 메모리 영역(21) 내로 설치되는 반면에, 개인화 레코드(40)는 메모리 영역(23) 내로 설치되도록 결정된다.
참조번호 30은, SE(100)의 제조 단계 I 동안, SE(100)의 메모리 영역(21)의 메모리 세그먼트(22a, 22b) 내로 로딩될 소프트웨어 이미지를 나타낸다(도 4, 단계(S2) 참조). 소프트웨어 이미지(30)를 메모리 영역(21) 내로 로딩할 때, 이는 2개의 소프트웨어 이미지 부분(30a, 30b)으로 분할되며, 그 각각은 각각의 메모리 세그먼트(22a, 22b) 내로 로딩된다. 실제로, 소프트웨어 이미지(30; 30a, 30b)는, 메모리 영역(23)이 개인화 레코드(40)를 위해 빈 상태로 남아있도록 메모리 영역(21) 내로 로딩된다. 따라서, SE(100)의 제조 단계 I 동안, SE(100)의 내부 에이전트(10) 또는 운영 체제(11)가 SE(100)의 메모리 영역(21)의 메모리 어드레스(24)의 개인화 레코드(40)에 액세스할 수 있도록, 개인화 레코드(40)가 메모리 영역(23) 내로 로딩된다(도 4, 단계(S3) 참조).
개인화 레코드(40)는, 소프트웨어 이미지(30)를 개인화하기 위해 이후에 사용될 보안 크리덴셜 및/또는 암호화 키와 같은 개인화 데이터(41)를 포함한다. 바람직한 실시형태에 따라, 개인화 레코드(40)는 개인화 명령(42)을 포함할 수 있다. 개인화 데이터(41) 및 개인화 명령(42) 둘 모두를 포함하는 개인화 레코드(40)를 갖는 일 실시형태가 도 3b와 관련하여 아래에 설명된다. 개인화 데이터(41)를 포함하지만 개인화 명령(42)을 포함하지 않는 개인화 레코드(40)를 갖는 일 실시형태가 도 3a와 관련하여 아래에 설명된다.
소프트웨어 이미지(30) 및 개인화 레코드(40)를 로딩하는 프로세스는, 인증된 환경에서 제조 단계 I 동안 수행된다(도 1 참조). 소프트웨어 이미지(30)는, 이후의 단계 II 또는 III에서, 개인화 레코드(40) 및 그 안에 포함된 개인화 데이터(41)를 사용하여 안전하게 개인화될 수 있다. 바람직하게는, SE(100)의 수명 전체에 걸쳐서, 개인화 데이터(41)는 SE(100) 내에 안전하게 저장되며, 필요한 경우, 내부 에이전트(10)에 의해 안전하게 검색될 수 있다. 이에 따라, 칩 공장의 인증된 환경의 외부에서 소프트웨어 이미지(30)를 개인화할 수 있다. 따라서, SE 제조 및 배치에 대한 더 많은 유연성이 부여된다.
도 3a 및 도 3b에 도시된 SE(100)는, 내부 에이전트(10), 운영 체제(OS)(11), 및 프로세서(CPU)(12)를 포함하는 변조 방지 요소이다. 내부 에이전트(10) 및 OS(11) 둘 모두는, 비휘발성 메모리(20)와 같은 SE의 메모리 내에 저장될 수 있다. OS(11) 및 내부 에이전트(10)는, 적절한 인터페이스를 통해, 예를 들어 애플리케이션 프로그래밍 인터페이스(API)를 통해 서로 통신할 수 있는 독립적인 엔티티이다. 메모리(20)는, 도 2와 관련하여 전술한 바와 같이 구조화된 메모리 영역(21)을 포함하는 SE(100)의 비휘발성 메모리이다.
내부 에이전트(10)는, SE(100) 내에서 (예를 들어, 유스 케이스 의존 펌웨어와 같은) 소프트웨어의 프로비저닝을 가능하게 하는 운영 체제(11) 또는 로더 엔티티의 기능으로서 구현될 수 있거나 이의 일부일 수 있다. 이러한 로더 엔티티는, 당업계에서 일반적으로 업데이트 에이전트로 지칭된다. 업데이트 에이전트는, 소프트웨어를 보안 요소 내로 로딩하는 것을 담당할 뿐만 아니라, 이와 관련된 임의의 다른 프로시저(예를 들어, 업데이트, 복원, 롤백(rollback))를 담당하는 메인 엔티티이다. 이는 공장 제조 동안 SE(100) 상으로 로딩된다(도 1, 단계 I). 내부 에이전트(10)는, 그것이 독립적인 엔티티로서 구현되는지, 또는 업데이트 에이전트 또는 운영 체제의 기능적인 부분으로서 구현되는지 여부와 관계없이, 공장 제조 동안 SE(100) 상으로 또한 로딩되는데(도 4, 단계(S1) 참조), 이는 SE(100)의 보안에 중요한 엔티티를 반영하기 때문이다.
내부 에이전트(10)는, 소프트웨어 이미지(30; 30a, 30b)를 그것이 개인화되기 전에 인증 및/또는 복호화하기 위해 사용되는, 예를 들어 인증 데이터(14)와 같은 감지 가능한 데이터를 이에 저장하기 위한 메모리 구조(13)를 포함할 수 있다(도 4, 단계(S6) 참조). 개인화 프로세스의 어느 시점에, 내부 에이전트(10)의 메모리 구조(13)는 개인화 데이터(41)를 포함할 수 있으며, 운영 체제(11)는, 제조 프로세스의 이후의 단계에서 소프트웨어 이미지(30)의 개인화를 가능하게 하기 위해 메모리 구조(13)의 적어도 일부에 액세스할 수 있다.
보다 상세하게 설명되는 두 가지 실시형태의 주요 차이점은, 도 3a에 따라, 개인화 명령(42)이 내부 에이전트(10)의 메모리 구조(13) 내에 저장되는 반면에, 도 3b에 따라, 개인화 명령(42)이 개인화 레코드(40)의 일부로서 메모리 영역(23) 내에 저장된다는 점이다. 개인화 명령(42)이 어디에 저장되든지 관계없이, 내부 에이전트(10)는 두 실시형태 모두에서 외부 개인화 디바이스의 역할을 맡으며, 즉 내부 에이전트(10)는 외부 개인화 디바이스를 대체하거나 중복되게 하는 데 필요한 기능을 제공한다. 본 발명에 따른 소프트웨어 이미지(30)의 개인화는, 외부 개인화 디바이스에 의해 칩 제조 동안 개시되는 것이 아니라, 내부 에이전트(10)에 의해 실질적으로 언제든지 그리고 어디서나 개시될 수 있으며(도 4, 단계(S5) 참조), 이에 따라 칩 제조 현장의 인증된 환경 내에서 개인화를 수행하기 위한 통상적인 요건을 불필요하게 만든다.
도 3a에 따른 실시형태에서, 소프트웨어 이미지(30; 30a, 30b)가 개인화 데이터(41)를 사용하여 개인화될 것임을 시그널링하는 트리거 이벤트(200)(도 4, 단계(S4))를 내부 에이전트(10)가 탐지한 후에, 내부 에이전트(10)는, 실행될 운영 체제(11) 및/또는 프로세서(12)에 개인화 명령을 인계 또는 전달함으로써 개인화를 개시한다(도 4, 단계(S5)). 개인화 명령(42)의 실행 시에, 소프트웨어 이미지(30; 30a, 30b)는 메모리 영역(22a, 22b)에서 액세스되며, 개인화 데이터(41)는 메모리 영역(23)에서 액세스된다(도 4, 단계(S7)). 개인화 명령(42)은, 통상적으로 외부 개인화 디바이스로부터 SE(100)로 전송되는 표준화된 개인화 명령을 나타내거나 이와 호환될 수 있기 때문에, 내부 에이전트(10)로부터 OS(11) 및/또는 CPU(12)로 개인화 명령(42)을 인계하거나 전달하는 프로세스(도 4, 단계(S8))는, 외부 개인화 디바이스에 의해 달리 개시되는 통상적인 "외부 전송" 프로시저를 대체하는 "내부 전송" 프로시저로서 간주될 수 있다.
도 3b에 따른 실시형태에서, 내부 에이전트(10)가 트리거 이벤트(200)를 탐지한 후(도 4, 단계(S4))에, 내부 에이전트(10)는, 미리 지정된 메모리 영역(23) 내에 저장된 개인화 명령(42)의 시퀀스에 액세스함으로써 개인화를 개시한다(도 4, 단계(S5)). 이에 따라, 개인화 명령(42)은 스크립트/인터프리터(interpreter) 언어 환경과 유사한 방식으로 해석되며, 외부 개인화 디바이스에 의해 달리 개시되는 통상적인 외부 전송 프로시저를 대체하는 내부 전송 프로시저가 수행된다. 이에 따라, 개인화 명령(42)은 운영 체제(11) 및/또는 프로세서(12)에 의해 실행되며, 그러한 프로세스 동안, 소프트웨어 이미지(30a, 30b)는 메모리 세그먼트(22a, 22b)에서 액세스되고, 개인화 데이터(41)는 메모리 영역(23)에서 액세스된다(도 4, 단계(S7)). 특정 메모리 영역(23) 내에 저장된 개인화 명령(42)은, 통상적으로 외부 개인화 디바이스로부터 SE(100)로 전송되는 표준화된 개인화 명령을 나타내거나 이와 호환될 수 있다.
즉, 도 3a 및 도 3b 둘 모두와 관련하여 설명된 내부 전송 프로시저는 내부 에이전트(100)에 의해 수행되고 제어되며, SE(100)가 외부 개인화 디바이스의 기여 없이 개인화 명령(42)을 처리하는(도 4, 단계(S8)) 효과가 있다. 그럼에도 불구하고, 개인화 데이터(41) 및 소프트웨어 이미지(30; 30a, 30b)는, 이들이 칩 제조 현장의 인증된 환경 내에서 메모리 영역(21) 내로 로딩되고(도 4, 단계(S2, S3)), 개인화 시에 OS(11) 및/또는 CPU(12)에 의해서만 액세스(도 4, 단계(S7, S8))되기 때문에, 변조(tampering)로부터 보호된다.
도 3a 및 도 3b에 따른 실시형태의 주요 효과는, SE(100)에 의해 지원되는 인터페이스 중 하나를 통해 개인화 명령을 전송하는 외부 개인화 디바이스에 의해 개인화되는 대신에, 개인화 데이터(41)가 개인화 레코드(40)의 형태로 칩 제조 동안 본 발명의 목적을 위해 미리 결정된 메모리 영역(21) 내로 소프트웨어 이미지(30)와 함께 로딩된다는(도 4, 단계(S2, S3) 참조) 점이다. 따라서, 개인화는 칩 제조와 분리되며, SE의 수명 주기의 이후의 단계에서 내부적으로 개시될 수 있으며, 트리거 이벤트(200)의 탐지 시에 전술한 내부 전송 프로시저에 의해 수행될 수 있다.
또한, 통상적인 개인화 디바이스로부터 SE(100)로 전송되는 개인화 명령을 구비하는 대신에, 개인화 명령은, 개인화 레코드(40)의 형태로, 개인화 데이터(41)와 함께 미리 지정된 메모리 영역(23) 내로 로딩되거나(도 3a), 메모리 구조(13) 내에 저장된 내부 에이전트의 일부로서 SE(100) 내로 로딩된다(도 3b). 어느 방식이든, 개인화 명령(42)이 SE(100)의 내부에 제공되기 때문에, 내부 전송 프로세스는, 메모리 영역(23) 또는 메모리 구조(13)로부터 하나씩 검색된, 내부적으로 제공된 개인화 명령(42)을 소비한다(도 4, 단계(S8)).
전술한 개인화 프로세스는, 내부 에이전트(10)가 트리거 이벤트(200)를 탐지하는 경우 그리고 탐지할 때(즉시), 내부 에이전트(10)에 의해 개시된다. 본 발명은 외부 개인화 디바이스와의 통상적인 상호 작용과 개인화를 분리시키기 때문에, 트리거 이벤트(200)는, 통상적인 개인화 방식에 따른 외부 개인화 디바이스에 의한 SE(100)의 초기 어드레싱을 대체한다. 바람직하게는, 트리거 이벤트(200)는 개인화 프로세스와 독립적이거나/독립적이고 무관하다.
트리거 이벤트(200)는, 예를 들어, ISO/IEC 7816에 따른 CLA 바이트 또는 INS 바이트와 같은, 특정한, 가능하게는 독점 헤더 바이트를 포함하는 SE(100)에 의해 수신된 APDU 명령일 수 있다. (독점) 내부 에이전트(10)에 의해 탐지되는 트리거 이벤트(200)로서 독점 바이트를 사용함으로써, 각각의 칩 제조사는, 통상적인 개인화 시와 유사한 방식으로 개인화를 초기화하는 단계를 계속 관리한다.
특별히 적응된 APDU 명령과는 별개로, 내부 이벤트가 트리거 이벤트(200)로서 사용되어 탐지될 수도 있다. 예를 들어, 디바이스 제조사의 현장에서의 SE(100)의 초기 리셋(도 1, 단계 II), 또는 SE(100)가 이의 초기 수명 주기 동안 나타낼 수 있는/나타낼 다른 내부 상태는, 제조 단계 I로부터 개인화를 분리시키기 위해 그리고 이후의 단계 II 또는 III에서 개인화를 안전하게 수행하기 위해서도 적합하다.
도 4는 보안 요소(100) 내에서 소프트웨어 이미지(30), 예를 들어 운영 체제(OS)를 개인화하기 위한 방법의 주요 단계의 흐름도를 도시한다. 각각의 단계는 도 2, 도 3a 및 도 3b와 관련하여 상세히 위에 참조되었다. 이하에서 설명되는 바와 같은, 본 발명에 따른 방법은, 임의의 특정 유형의 소프트웨어 또는 소프트웨어 이미지로 제한되지 않는다. 실제로, 예를 들어 SE(100)의 펌웨어 또는 OS, 또는 애플릿/애플리케이션과 같이, 보안 요소(100)에서 실행될 수 있는 임의의 보안 소프트웨어 또는 소프트웨어 이미지에는 본원에 개시된 바와 같은 개인화 방법이 적용될 수 있다.
도 4를 참조하면, 제1 단계(S1)에서, 내부 에이전트(10)가 보안 요소(SE)(100) 상으로 로딩된다. 단계(S2)에서, 소프트웨어 이미지(30; 30a, 30b)는 SE의 메모리 영역(21) 내로 로딩되며, 특히 SE(100)의 메모리(20)의 메모리 세그먼트(22a, 22b) 내로 로딩된다. 단계(S3)에서, 소프트웨어 개인화 데이터(41)를 포함하는 소프트웨어 개인화 레코드(40)가 SE(100)의 메모리(20)의 메모리 영역(23) 내로 로딩된다. 특히, 소프트웨어 이미지(30) 및 개인화 레코드(40)는, 예를 들어 단계(S6)에서 내부 에이전트(10)에 의해, 암호화된 형태로 로딩될 수 있으며 이후의 복호화를 필요로 할 수 있다. 단계(S1, S2 및 S3)는 순차적으로 수행될 수 있으며, 즉 2개의 로드 명령(예를 들어, APDU 명령)에 의해 수행될 수 있거나, 예를 들어, 내부 에이전트(10)가 개인화 레코드(40)와 함께 로딩되고 소프트웨어 이미지(30)가 SE(100) 상으로 별도로 로딩된다는 점에서 하나 또는 2개의 단계로 수행될 수 있다. 일반적으로, 단계(S1, S2, 및 S3)는 임의의 임의적 순서로 수행될 수 있지만, 보안 요소의 공장 제조 단계 동안, 3개의 모든 단계가 인증된 환경 내에서 수행되는 것만이 중요하다. 도 1을 참조하면, 이러한 단계는 단계 I로서 식별된다.
따라서, 소프트웨어 이미지(30) 및 개인화 레코드(40)는 SE(100) 내에 안전하게 로딩되어 저장되며, 승인되지 않은 변경으로부터 보호된다. 따라서, 단계 1의 종료 시까지, 개인화 데이터(41), 즉 보안 크리덴셜은, 변조 방지 SE(100) 내로 안전하게 로딩되지만, 이들이 아직 특정 소프트웨어 이미지(30)에 연결되지는 않았다.
개인화 명령(42)은 단계(S1)에서 로딩되어 내부 에이전트(10)의 메모리 구조(13) 내에 저장되거나(도 3b 참조), 단계(S3)에서 개인화 레코드(40) 내에 포함된다(도 3a). 또한, 개인화 레코드(40)가 메모리 영역(23) 내에서 이에 의해 어드레싱될 수 있는 특정 메모리 어드레스(24)는 내부 에이전트(10)의 메모리 구조(13) 내에 저장되고, 이에 따라 단계(S1)에서 SE(100) 내로 로딩된다. 일반적으로, 미리 지정된 메모리 영역(23) 및 메모리 세그먼트(22a, 22b)를 포함하는 SE(100)의 메모리 영역(21)은, 각각의 칩 제조사의 독점일 수 있다. 즉, 단계(S2 및 S3) 동안, 소프트웨어 이미지 부분(30a, 30b) 및 개인화 레코드(24)가 각각 기록되는 메모리 세그먼트(22a, 22b) 및 영역(23)은 칩 제조사에 의해 결정되며, 단계(S5 내지 S8)에서 개인화 시에 메모리 세그먼트(22a, 22b) 및 영역(23)에 액세스하기 위해 내부 에이전트(10)에 코딩된다.
단계(S4 내지 S8)를 포함하는 후속 제조 단계에서, 예를 들어, 칩이 디바이스 내에 내장되는 경우(도 1; 단계 II), 또는 디바이스가 초기화되는 경우(도 1; 단계 III), 소프트웨어 이미지(30)는 칩 공장의 인증된 환경의 외부에서 개인화되며, 예를 들어 SE(100)가 내장되는 디바이스 공장에서 개인화된다.
내부 에이전트(10)는, 트리거 이벤트(200)가 발생하는 즉시 단계(S4)에서 탐지되어, 전술한 바와 같이 단계(S5)에서 내부 에이전트(10)에 의한 개인화의 개시를 트리거하도록 하는, 이벤트 처리 기능을 갖는다. 그 다음, 단계(S6)에서, 보호된 소프트웨어 이미지(30; 30a, 30b) 및/또는 개인화 레코드는, 메모리 구조(13)에 저장된 암호화 키(14)에 의해 복호화되며, 소프트웨어 이미지(30; 30a, 30b) 및 개인화 레코드(40)가 변조되지 않도록 보장하기 위해 이들의 무결성이 검사된다.
단계(S7)에서, 내부 에이전트(10)는 메모리 어드레스(24)를 통해 개인화 레코드(40)에 액세스하며, 개인화 데이터(41) 및 해당하는 경우 개인화 명령(42)을 검색하고, 이를 이의 메모리 구조(13)에 저장한다. 최종적으로, 단계(S8)에서, 소프트웨어 이미지(30; 30a, 30b)는, 도 3a, 도 3b와 관련하여 전술한 바와 같은 내부 전송 프로시저에 의해 개인화된다. 이러한 프로세스의 종료 시에, 소프트웨어 이미지(30; 30a, 30b)는 개인화 데이터(41)에 의해 개인화되었다. 소프트웨어 이미지(30)가 SE(100)의 운영 체제(11)인 경우, 개인화된 소프트웨어 이미지는 도 1에서 "MaxiInit"로 지칭된다. 이는 그것이 운영 체제를 포함할 뿐만 아니라, 크리덴셜을 포함하는 이의 특정 개인화/구성을 포함한다는 것을 의미한다.
위의 실시형태를 통해 설명된 바와 같은 방법 및 장치는, 칩 제조사의 현장의 인증된 환경의 외부에서 신뢰 소프트웨어 이미지를 개인화하기 위한 효율적이고 안전한 솔루션을 제공한다. 소프트웨어 이미지는 이후의 단계에서 그리고 칩 제조사의 환경의 외부에서 개인화될 수 있기 때문에, 보안 요소의 수명 주기 동안 언제든지 소프트웨어를 개인화하기 위한 유연한 솔루션이 제공된다.
전술한 명세서에서, 본 발명은 이의 구체적인 실시형태를 참조하여 설명되었다. 그러나, 본 발명의 보다 넓은 범위를 벗어나지 않으면서, 이에 대한 다양한 변형 및 변경이 이루어질 수 있음은 명백할 것이다. 예를 들어, 전술한 프로세스 흐름은 프로세스 작업의 특정 순서를 참조하여 설명된다. 그러나, 설명된 다수의 프로세스 작업의 순서는 본 발명의 범위 또는 작업에 영향을 주지 않으면서 변경될 수 있다. 따라서, 명세서 및 도면은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (16)

  1. 보안 요소(SE)(100) 내에서 소프트웨어, 특히 운영 체제(OS)를 개인화하기 위한 방법으로서,
    상기 방법은,
    - 상기 SE(100)의 메모리(20) 내로 소프트웨어 이미지(30; 30a, 30b)를 로딩하는 단계(S2);
    - 상기 SE(100)의 상기 메모리(20) 내로 소프트웨어 개인화 레코드(40)를 로딩하는 단계(S3)로서, 상기 개인화 레코드(40)는 소프트웨어 개인화 데이터(41)를 포함하는, 단계(S3); 및
    - 상기 소프트웨어 개인화 데이터(41)를 사용하여, 상기 로딩된 소프트웨어 이미지(30; 30a, 30b)를 개인화하는 단계(S7, S8)를 포함하며,
    상기 소프트웨어 이미지(30; 30a, 30b)를 개인화하는 단계는 상기 SE(100)의 내부 에이전트(10)에 의해 개시되는(S5) 것을 특징으로 하는,
    보안 요소(SE)(100) 내에서 소프트웨어, 특히 운영 체제(OS)를 개인화하기 위한 방법.
  2. 제1항에 있어서,
    상기 내부 에이전트(10)에 의해 상기 소프트웨어 이미지(30; 30a, 30b)의 상기 개인화를 개시하는 단계(S5)는, 상기 내부 에이전트(10)에 의해 탐지되는(S4) 트리거 이벤트(200)에 의해 트리거되며,
    상기 트리거 이벤트(200)는 소프트웨어 개인화와 무관한, 방법.
  3. 제2항에 있어서,
    상기 SE(100)의 초기 리셋과 같은 상기 SE(100)의 미리 한정된 내부 상태, 또는 외부 디바이스로부터 상기 SE(100)에 의해 수신된 특정 명령은 트리거 이벤트(200)로서 탐지되며(S4),
    바람직하게는, 상기 특정 명령은 상기 SE(100)의 제조사의 독점 명령이거나, 독점 헤더 바이트와 같은 독점 부분을 포함하는 명령인, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 소프트웨어 개인화 데이터(41) 및 상기 소프트웨어 이미지(30; 30a, 30b)는, 상기 SE의 제조 단계(I) 동안 상기 SE 내로 로딩되며(S2, S3),
    상기 로딩된 소프트웨어 이미지는, 상기 SE의 제조 단계 후의 후속 단계(II, III, IV)에서 개인화되는(S5 내지 S8), 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    - 상기 소프트웨어 이미지(30; 30a, 30b)를 로딩(S2)할 때, 상기 소프트웨어 이미지(30; 30a, 30b)는 상기 SE(100)의 상기 메모리(20)의 영역(21; 22a, 22b) 내로 기록되며, 상기 메모리 영역(21) 내의 미리 지정된 메모리 영역(23)은 빈 상태로 남아있고;
    - 상기 소프트웨어 개인화 레코드(40)를 로딩(S3)할 때, 상기 소프트웨어 개인화 레코드(40)는 상기 미리 지정된 메모리 영역(23) 내로 기록되는, 방법.
  6. 제5항에 있어서,
    상기 소프트웨어 이미지(30)는 제1 소프트웨어 이미지 부분(30a) 및 제2 소프트웨어 이미지 부분(30b)을 포함하며,
    상기 제1 부분(30a)은 상기 메모리 영역(21)의 제1 메모리 세그먼트(22a) 내로 기록되고(S2),
    상기 제2 부분(30b)은 상기 메모리 영역(21)의 제2 메모리 세그먼트(22b) 내로 기록되며(S2),
    바람직하게는, 상기 제1 메모리 세그먼트(22a) 및 상기 제2 메모리 세그먼트(22b)는, 상기 메모리 영역(23)이 상기 제1 메모리 세그먼트(22a) 및 상기 제2 메모리 세그먼트(22b)에 의해 둘러싸이도록 상기 메모리 영역(21) 내에 배치되는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 SE(100)의 상기 메모리(20) 내로 로딩된 상기 소프트웨어 개인화 레코드(40)는, 소프트웨어 개인화 데이터(41), 특히 보안 크리덴셜 및/또는 암호화 키를 포함하는, 방법.
  8. 제7항에 있어서,
    상기 소프트웨어 이미지(30; 30a, 30b)를 개인화하는 단계는, 상기 내부 에이전트(10)가 소프트웨어 개인화 명령(42)을 상기 SE(100)의 프로세서(12)에 인계함으로써 개시되며(S5),
    상기 소프트웨어 이미지(30a, 30b)는, 상기 소프트웨어 개인화 명령(42)이 상기 프로세서(12)에 의해 실행되도록 함으로써 상기 개인화 데이터(41)를 사용하여 개인화되는(S7), 방법.
  9. 제7항에 있어서,
    상기 SE(100)의 상기 메모리(20) 내로 로딩된 상기 소프트웨어 개인화 레코드(40)는, 상기 SE(100)의 프로세서(12)에 의해 실행 가능한 소프트웨어 개인화 명령(42)을 포함하는, 방법.
  10. 제9항에 있어서,
    상기 소프트웨어 이미지(30; 30a, 30b)를 개인화하는 단계는, 상기 소프트웨어 개인화 명령(42)이 상기 프로세서(12)에 의해 실행되도록 함으로써 상기 소프트웨어 이미지(30; 30a, 30b)가 상기 개인화 데이터(41)를 사용하여 개인화되도록, 상기 내부 에이전트(10)가 상기 소프트웨어 개인화 명령(42)을 해석함으로써 개시되는(S5), 방법.
  11. 제8항 또는 제10항에 있어서,
    소프트웨어 개인화 명령(42)을 인계하는 프로세스, 또는 상기 프로세서(12)에 의해 실행될 소프트웨어 개인화 명령(42)을 해석하는 프로세스는, 상기 소프트웨어 개인화 명령(42)의 수신이 외부 개인화 디바이스에 의해서가 아니라 상기 내부 에이전트(10)에 의해 개시되는(S5) 것이 상기 프로세서(12)에게 투명하도록 배치되는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 내부 에이전트(10)는, 상기 SE(100)의 제조 단계(I) 동안, 바람직하게는 상기 소프트웨어 이미지(30; 30a, 30b) 및/또는 상기 소프트웨어 개인화 레코드(40)와 함께, 상기 SE(100) 내로 로딩되는(S1), 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 내부 에이전트(10)는, 상기 소프트웨어 개인화 레코드(40) 및/또는 상기 소프트웨어 이미지(30; 30a, 30b)의 진위를 보장하기 위해, 상기 소프트웨어 개인화 레코드(40) 및/또는 상기 소프트웨어 이미지(30; 30a, 30b)의 무결성 검사(S6)를 수행하거나/수행하며, 상기 소프트웨어 개인화 레코드(40) 및/또는 상기 소프트웨어 이미지(30; 30a, 30b)를 복호화하는, 방법.
  14. 보안 요소(SE)(100)로서,
    소프트웨어 이미지(30; 30a, 30b) 및 소프트웨어 개인화 레코드(40)가 저장되는 메모리(20) 및 프로세서(12)를 포함하며,
    상기 개인화 레코드(40)는 소프트웨어 개인화 데이터(41)를 포함하고,
    상기 보안 요소(100)의 내부 에이전트(10)는, 상기 소프트웨어 개인화 데이터(41)를 사용하여 상기 소프트웨어 이미지(30; 30a, 30b)의 개인화를 개시하도록 구성되는 것을 특징으로 하는,
    보안 요소(SE)(100).
  15. 제13항에 있어서,
    상기 내부 에이전트(10)는,
    트리거 이벤트(200)를 탐지하고, 상기 트리거 이벤트(200)를 탐지할 때 상기 소프트웨어 이미지(30; 30a, 30b)의 개인화를 개시하도록 구성되며, 상기 트리거 이벤트(200)는 소프트웨어 개인화와 무관하고, 바람직하게는, 상기 내부 에이전트(10)는, 상기 SE(100)의 초기 리셋과 같은 상기 SE(100)의 미리 한정된 내부 상태, 또는 외부 디바이스로부터 상기 SE(100)에 의해 수신된 특정 명령을 상기 트리거 이벤트(200)로서 탐지하도록 추가로 구성되며, 바람직하게는, 상기 특정 명령은, 상기 SE(100)의 제조사의 독점 명령, 또는 독점 헤더 바이트와 같은 독점 부분을 포함하는 명령이거나/명령이고;
    상기 내부 에이전트(10)는, 소프트웨어 개인화 명령(42)을 상기 프로세서(12)에 인계하거나, 상기 소프트웨어 개인화 레코드(40) 내에 포함되는 소프트웨어 개인화 명령(42)을 해석하여 이들이 상기 프로세서(12)에 의해 실행되게 하도록 구성되며,
    상기 프로세서(12)에 의해 상기 소프트웨어 개인화 명령(42)을 실행할 때, 상기 소프트웨어 이미지(30; 30a, 30b)는, 상기 소프트웨어 개인화 명령(42)의 수신이 외부 개인화 디바이스에 의해서가 아니라 상기 내부 에이전트(10)에 의해 개시되는 것이 상기 프로세서(12)에게 투명하도록, 상기 개인화 데이터(41)를 사용하여 개인화되는, 보안 요소(100).
  16. 제13항 내지 제15항 중 어느 한 항에 있어서,
    상기 내부 에이전트(10)는, 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행하도록 구성되는, 보안 요소(100).
KR1020247005382A 2021-07-28 2022-07-26 보안 요소의 개인화 KR20240027149A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP21382707.4 2021-07-28
EP21382707.4A EP4124980A1 (en) 2021-07-28 2021-07-28 Personalization of a secure element
PCT/EP2022/025348 WO2023006245A1 (en) 2021-07-28 2022-07-26 Personalization of a secure element

Publications (1)

Publication Number Publication Date
KR20240027149A true KR20240027149A (ko) 2024-02-29

Family

ID=77168179

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247005382A KR20240027149A (ko) 2021-07-28 2022-07-26 보안 요소의 개인화

Country Status (4)

Country Link
EP (1) EP4124980A1 (ko)
KR (1) KR20240027149A (ko)
CN (1) CN117716360A (ko)
WO (1) WO2023006245A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936719B2 (en) * 2016-09-23 2021-03-02 Apple Inc. Preserving trust data during operating system updates of a secure element of an electronic device
US10069633B2 (en) * 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices

Also Published As

Publication number Publication date
EP4124980A1 (en) 2023-02-01
WO2023006245A1 (en) 2023-02-02
CN117716360A (zh) 2024-03-15

Similar Documents

Publication Publication Date Title
JP5415531B2 (ja) 安全なメモリ管理システム及び方法
EP2764461B1 (en) Secure element comprising separated containers and corresponding method
EP2626804A1 (en) Method for managing memory space in a secure non-volatile memory of a secure element
CN1316360C (zh) 注脚设备及运行注脚设备的方法
CN109766152B (zh) 一种交互方法及装置
US8954696B2 (en) Secure memory management system and method
US20170124339A1 (en) Implementing method for javacard application function expansion
CN101888627B (zh) 一种移动终端及保护其系统数据的方法
KR20170102285A (ko) 보안 요소
US10025575B2 (en) Method for installing security-relevant applications in a security element of a terminal
JP2004503860A (ja) データ処理方法及び保護された命令の実行のための装置
US11556673B2 (en) Method for managing an instance of a class
US20230030478A1 (en) Pre-personalized secure element and embedded personalization
KR20240027149A (ko) 보안 요소의 개인화
JPH10301854A (ja) チップ・カードおよびその上に情報をインポートする方法
CN107851044B (zh) 适于从第一应用传送第一数据以供第二应用使用的集成电路卡
EP4124979A1 (en) Software update in a security element
WO2007000670A1 (en) Information updating method, program for the same and information processing unit
EP4124976A1 (en) Update agent and data pre-seeding in update agent
JP2006338311A (ja) 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
EP4124978A1 (en) Update of an operating system in a security element
EP4124977A1 (en) Update agent with provisioning connectivity and secure element comprising the same
Perrotis Development of cryptographic algorithms in the trusted execution environment
EP3185165A1 (en) An electronic device comprising a mecanism to store securely data associated to an application
Riseborough MULTOS M3