KR102097644B1 - 보안 요소 내의 패키지를 관리하는 방법 - Google Patents

보안 요소 내의 패키지를 관리하는 방법 Download PDF

Info

Publication number
KR102097644B1
KR102097644B1 KR1020187015286A KR20187015286A KR102097644B1 KR 102097644 B1 KR102097644 B1 KR 102097644B1 KR 1020187015286 A KR1020187015286 A KR 1020187015286A KR 20187015286 A KR20187015286 A KR 20187015286A KR 102097644 B1 KR102097644 B1 KR 102097644B1
Authority
KR
South Korea
Prior art keywords
package
component
operating system
secure element
items
Prior art date
Application number
KR1020187015286A
Other languages
English (en)
Other versions
KR20180077249A (ko
Inventor
크리스토프 프란치
프랑수아-자비에 마르세이유
파브리체 베르뉴
Original Assignee
제말토 에스에이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 제말토 에스에이 filed Critical 제말토 에스에이
Publication of KR20180077249A publication Critical patent/KR20180077249A/ko
Application granted granted Critical
Publication of KR102097644B1 publication Critical patent/KR102097644B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

보안 요소 내의 패키지를 관리하는 방법. 본 발명은 초기 운영 체제를 포함하는 보안 요소 내의 패키지를 관리하는 방법이다. 방법은 초기 운영 체제를 업데이트하여 업데이트된 운영 체제를 생성하는 단계 및 패키지를 업데이트된 운영 체제에 링크하는 단계를 포함한다. 링크 단계는 초기 운영 체제를 업데이트하는 단계에 의해 자동으로 트리거된다.

Description

보안 요소 내의 패키지를 관리하는 방법
본 발명은 보안 요소 내의 패키지를 관리하는 방법들에 관한 것이다. 본 발명은 특히 보안 요소의 운영 체제가 업데이트될 때 패키지를 처리하는 방법들에 관한 것이다.
보안 요소들은 계산 처리를 위한 메모리, 마이크로프로세서 및 운영 체제를 포함하는 소형 디바이스들이다. 이러한 보안 요소들은 비휘발성 메모리 및 휘발성 메모리와 같은 상이한 유형들의 복수의 메모리를 포함할 수 있다. 이들은 자신이 포함하는 데이터에 대한 액세스를 제어하고 다른 머신들에 의한 데이터의 사용을 허가하거나 허가하지 않을 수 있기 때문에 "보안"으로 불린다. 보안 요소들은 암호 컴포넌트들에 기초한 계산 서비스들을 제공할 수도 있다. 일반적으로, 보안 요소들은 제한된 컴퓨팅 자원들과 제한된 메모리 자원들을 가지며 그들에 전력을 제공하는 호스트 머신에 연결되도록 의도된다. 보안 요소들은 제거 가능하거나 호스트 머신에 고정될 수 있다. 예를 들어, 스마트 카드들은 보안 요소들의 일종이다.
보안 요소는 애플리케이션들 및 그들의 연관된 응용 데이터를 포함할 수 있는데 그 데이터는 사용자 데이터, 파일 시스템들 및 비밀 키를 포함한다. 그러한 애플리케이션은 보안 요소에 저장되는 패키지 또는 패키지들의 세트로서 개발될 수 있다. 그 후 필요에 따라 애플리케이션의 하나 또는 몇몇의 인스턴스가 생성된다. 각각의 인스턴스는 그 자신의 인스턴스 데이터를 소유, 처리 및 저장한다.
보안 요소들은 무선 채널을 통해 또는 예를 들어 인터넷과 같은 유선 네트워크를 통해 원격 서버에 의해 액세스될 수 있다. 예를 들어, 텔레콤 도메인 또는 M2M(Machine-to-Machine) 도메인에서 사용되도록 의도되는 보안 요소들은 OTA(Over-The-Air) 채널을 관리할 수 있다. 이들 보안 요소들은 보안 모드를 위해 통상적으로 HTTP 또는 HTTPS라고 불리는 하이퍼텍스트 전송 프로토콜(HyperText Transfer Protocol)을 통해 액세스될 수도 있다. 따라서, 원격의 서버가 특정 프로토콜을 사용하여 전용 통신 세션을 통해 UICC(Universal Integrated Circuit Card)와 같은 보안 요소의 콘텐츠를 원격으로 관리할 수 있다. 예를 들어, 서버는 GlobalPlatform ® v 2.2 표준에 의해 정의된 RAM(Remote Applet Management) 메커니즘 - Amendment B "RAM over HTTP" 또는 OMA-TS-DM V1.2.1 표준에 의해 정의된 OMA-DM(Open Mobile Alliance - Device Management) 프로토콜을 사용할 수 있다.
JavaCardTm 사양에 따르면, 패키지는 CAP 파일을 통해 보안 요소에 로딩될 수 있다. 패키지 설치는 패키지를 운영 체제에 링크하는 단계를 포함한다. 이 링크 단계는 현재 운영 체제에 따라 CAP 파일에서 사용된 기호 주소들을 물리적 주소들로 매핑하는 것을 허용한다. 이 링크 단계는 보안 요소에서 한 번만 수행되고 그 후 CAP 파일의 몇몇 컴포넌트들(Header, Directory, Import, Constant Pool 및 Reference Location 컴포넌트들)이 삭제된다. 이는 런타임 시의 고속 실행 및 메모리 절약을 허용한다.
원격 서버는 보안 요소의 운영 체제의 업그레이드 또는 새로운 버전을 전송할 수 있다. 이 경우, 이전 운영 체제에 링크된 패키지들은 삭제된 다음 보안 요소에 다시 로딩된다. 이러한 패키지들의 새로운 로딩은 이들 패키지들의 재설치를 트리거하고 이는 차례로 이들 패키지들의 새로운 운영 체제로의 링크를 트리거한다.
패키지를 다시 로딩하는 것은 네트워크 상의 대역폭의 큰 부분을 필요로 할 수 있다. 이러한 문제는 많은 수의 보안 요소들이 업그레이드되어야 하는 경우 악화된다. 더욱이, 이 패키지가 제3자와 같은 다른 엔티티에 의해 설치되었다면 원격 서버는 관련 패키지에 액세스하지 못할 수 있다.
보안 요소의 운영 체제가 업데이트될 때 패키지를 기능 상태로 유지할 수 있게 할 필요가 있다.
본 발명의 목적은 위에 언급된 기술적 문제를 해결하는 것이다.
본 발명의 목적은 초기 운영 체제를 포함하는 보안 요소 내의 패키지를 관리하기 위한 방법이다. 이 방법은 초기 운영 체제를 업데이트하여 업데이트된 운영 체제를 생성하는 단계를 포함한다. 이 방법은 상기 패키지를 상기 업데이트된 운영 체제에 링크하는 단계를 포함하고, 이 링크 단계는 상기 초기 운영 체제를 업데이트하는 단계에 의해 트리거된다.
유리하게는, 상기 패키지는 상기 보안 요소에 이전에 다운로드된 CAP 파일로부터 생성될 수 있다. 상기 CAP 파일은 복수의 컴포넌트를 포함할 수 있다. 상기 방법은 상기 링크 단계 동안 업데이트될 참조들을 검색하기 위해 요구되는 항목들을 상기 복수의 컴포넌트로부터 선택하고 상기 항목들을 상기 보안 요소에 영구적으로 저장하는 단계를 포함할 수 있다. 상기 방법은 상기 보안 요소로부터 상기 CAP 파일의 적어도 하나의 컴포넌트를 제거하는 단계를 포함할 수 있다.
유리하게는, 상기 항목들은 상기 패키지 외부의 타겟들과 관련될 수 있다.
유리하게는, 상기 CAP 파일은 Import 컴포넌트, Constant Pool 컴포넌트, Reference Location 컴포넌트, Class 컴포넌트 및 Method 컴포넌트를 포함할 수 있다. 상기 항목들은 상기 Import, Constant Pool, Reference Location, Class 및 Method 컴포넌트들로부터 선택될 수 있다.
유리하게는, 상기 패키지는 그 자신의 Class 컴포넌트 및 그 자신의 Method 컴포넌트 양쪽 모두를 포함할 수 있고 상기 링크 단계는 다음의 하위 단계들을 포함할 수 있다:
- 상기 업데이트된 운영 체제와 상기 패키지의 일관성을 체크하기 위해 상기 Import 컴포넌트를 처리하고, 일관성 체크가 성공적인 경우, 상기 항목들을 사용하여:
- 상기 패키지의 Class 컴포넌트의 각각의 외부 참조를 분별(resolve)하고,
- 상기 패키지의 Method 컴포넌트의 각각의 외부 참조를 분별한다.
유리하게는, 상기 항목들은 상기 CAP 파일의 포맷과 상이한 포맷으로 상기 보안 요소에 영구적으로 저장될 수 있다.
본 발명의 다른 목적은 패키지 및 초기 운영 체제를 포함하는 보안 요소이다. 이 보안 요소는 상기 초기 운영 체제를 업데이트함으로써 업데이트된 운영 체제를 생성하도록 적응된 제1 에이전트를 포함한다. 이 보안 요소는 상기 패키지를 상기 업데이트된 운영 체제에 링크하도록 적응된 제2 에이전트를 포함한다. 상기 제1 에이전트는 상기 초기 운영 체제의 업데이트의 종료시에 상기 패키지의 링크를 트리거하도록 적응된다.
유리하게는, 상기 패키지는 상기 보안 요소에 이전에 다운로드된 CAP 파일로부터 생성될 수 있다. 상기 CAP 파일은 복수의 컴포넌트를 포함할 수 있다. 상기 보안 요소는 상기 링크 단계 동안 업데이트될 참조들을 검색하기 위해 요구되는 항목들을 상기 복수의 컴포넌트로부터 선택하고, 상기 항목들을 상기 보안 요소에 영구적으로 저장하고 상기 보안 요소로부터 상기 CAP 파일의 적어도 하나의 컴포넌트를 제거하도록 적응된 제3 에이전트를 포함할 수 있다.
유리하게는, 상기 CAP 파일은 Import 컴포넌트, Constant Pool 컴포넌트, Reference Location 컴포넌트, Class 컴포넌트 및 Method 컴포넌트를 포함할 수 있고 상기 제3 에이전트는 상기 Import, Constant Pool, Reference Location, Class 및 Method 컴포넌트들로부터 상기 항목들을 선택하도록 적응될 수 있다.
유리하게는, 상기 패키지는 그 자신의 Class 컴포넌트 및 그 자신의 Method 컴포넌트 양쪽 모두를 포함할 수 있다. 상기 제2 에이전트는:
- 상기 업데이트된 운영 체제와 상기 패키지의 일관성을 체크하기 위해 상기 항목들에 속하는 그리고 상기 Import 컴포넌트로부터 오는 데이터를 처리하고, 일관성 체크가 성공적인 경우, 상기 항목들을 사용하여:
- 상기 패키지의 Class 컴포넌트의 각각의 외부 참조를 분별하고,
- 상기 패키지의 Method 컴포넌트의 각각의 외부 참조를 분별하도록 적응될 수 있다.
유리하게는, 상기 제3 에이전트는 상기 항목들을 상기 CAP 파일의 포맷과 상이한 포맷으로 상기 보안 요소에 영구적으로 저장하도록 적응될 수 있다.
본 발명의 다른 특징들 및 이점들은 대응하는 첨부 도면들을 참조하여 본 발명의 다수의 바람직한 실시예들에 대한 다음의 설명을 읽음으로써 더 명확히 드러날 것이다.
- 도 1은 본 발명에 따른 보안 요소 내의 패키지 관리의 예시적인 흐름도를 보여준다.
- 도 2는 본 발명의 예에 따른 보안 요소의 다이어그램을 보여준다.
본 발명은 현장에서 배치될 때 업그레이드될 수 있는 운영 체제 및 패키지들을 임베드하도록 의도된 임의의 유형의 보안 요소에 적용될 수 있다. 그러한 보안 요소들은 스마트폰, 스마트 워치, 차량, 계량기, 슬롯 머신, TV 또는 컴퓨터와 같은 호스트 머신에 결합될 수 있다.
본 설명에서, 패키지는 객체 지향 프로그래밍 언어들에 의해 정의된 컨테이너이다. 특히, 본 발명은 JavaTm 및 JavaCardTm 언어들로 정의된 패키지들에 적용된다.
도 1은 본 발명에 따라 보안 요소의 운영 체제가 업그레이드될 때 패키지를 관리하기 위한 흐름도의 예를 보여준다.
보안 요소(20)는 원래의 운영 체제(30)와 함께 발급된 것으로 가정된다. 예를 들어, 이러한 원래의 운영 체제(30)는 객체 지향 가상 머신 및 하이 레벨 애플리케이션 프로그래밍 인터페이스(API)들을 포함할 수 있다. 예를 들어, 가상 머신(VM)은 JavaCardTm 사양 버전 2.2 이상과 호환될 수 있다.
단계 S1에서, 패키지(10)를 생성하는 것을 허용하는 컴포넌트들을 포함하는 CAP 파일(40)이 보안 요소(10)에 다운로드된다. 패키지(10)는 예를 들어 보안 요소(10)에 애플리케이션을 설치하기 위해 요구될 수 있다.
단계 S2에서, 패키지(10)는 보안 요소에 설치된다. 바꾸어 말해서, 패키지(10)는 CAP 파일(40)의 컴포넌트들로부터 생성되고 그 후 패키지(10)는 초기 운영 체제(30)에 링크된다. 일 실시예에서, CAP 파일은 보안 요소에 로딩될 때 즉석에서(on-the-fly) 처리될 수 있다. CAP 파일의 컴포넌트들은 임시로 저장될 수 있고 따라서 패키지가 완전히 생성되면 CAP 파일(그 자체로서)은 보안 요소 상에 더 이상 존재하지 않을 수 있다.
패키지 설치 동작은 단계 S3을 트리거하고 이 단계에서는 보안 요소(10)가 (가능한 CAP 파일 삭제 전에) CAP 파일들(40)의 몇몇 컴포넌트들로부터 항목들(60)을 선택한다. 바람직하게는, 이들 항목들(60)은 다음의 컴포넌트 목록: Import(51), Constant Pool(52), Reference Location(53), Class(54) 및 Method(55)로부터 추출된다.
이들 항목들(60)은 추가 링크(즉, 재링크(re-linking)) 동작 동안 업데이트될 필요가 있는 Class 컴포넌트 및 Method 컴포넌트의 모든 참조들을 검색하기 위해 요구된다.
이들 항목들(60)은 보안 요소(20)에 영구적으로 저장된다. 예를 들어, 항목들(60)은 보안 요소(20)의 비휘발성 메모리에 저장된다. 본 설명에서, "영구적으로 저장된다(permanently stored)"는 항목들이 장시간 동안 보안 요소(20)에 유지된다는 것을 의미한다. 예를 들어, 이들 항목들은 보안 요소(20)로부터 패키지(10)가 제거될 때까지 유지된다.
바람직하게는, 이들 항목들은 그들의 풋프린트를 최소화하거나 그들의 파싱을 용이하게 하기 위해 CAP 파일의 포맷과 상이한 맞춤화된(customized) 포맷으로 저장된다.
일 실시예에서, 항목들(60)은 패키지(10) 외부의 참조들만을 참조하도록 선택된다. 바꾸어 말해서, 선택된 항목들(60)은 패키지(10) 내부에 있는 참조들을 해결(solving)하는 데 사용되도록 의도되어 있지 않다. 대안적으로, 항목들(60)은 패키지 외부의 참조들 및 패키지 내부의 참조들 양쪽 모두를 참조하도록 선택될 수 있다.
단계 S2 및 단계 S3은 2개의 별개의 단계들로서 설명되었지만 이들은 단일 단계로 간주될 수 있다.
예를 들어, 다음의 새로운 구조는 항목들(60)의 서브세트의 저장을 위해 맞춤화된 Constant Pool 컴포넌트와 Method 컴포넌트 사이의 링크를 설정하는 것을 허용하는 정보를 저장하는 데 사용될 수 있다. 이 저장 포맷은 Method 컴포넌트의 참조들을 분별하는 것을 허용한다:
Figure 112018053030778-pct00001
(CAP 파일의) 원래의 컴포넌트들로부터 추출되는 항목들을 예시하기 위해, 원래 다음과 같이:
Figure 112018053030778-pct00002
구조화된 Import 컴포넌트는 다음의 포맷으로 유지될 수 있다:
Figure 112018053030778-pct00003
CAP 파일을 로딩할 때, Class 컴포넌트는 통상적으로 완전히 유지된다. 그러나 Class 컴포넌트의 몇몇 데이터는 운영 체제에 링크되고 그 후 그들의 원래의 값들은 더 이상 유지되지 않는다. 본 발명의 예에 따르면, 새로운 프로세스는 나중에 재링크되어야 할 데이터(그들의 원래의 값을 가짐)를 추출한다.
예를 들어, Class 컴포넌트는 원래 다음과 같이 구조화될 수 있으며:
Figure 112018053030778-pct00004
여기서 "interface info" 및 "class info"는 초기에 다음과 같이 구조화되고:
Figure 112018053030778-pct00005
Figure 112018053030778-pct00006
추가 재링크를 위해 외부 참조들이 추출 및 저장되도록 다음의 구조들 상에 유지된다:
Figure 112018053030778-pct00007
Figure 112018053030778-pct00008
단계 S4에서, 보안 요소(20)는 보안 요소(20)에 선택된 항목들(60)을 유지하면서 CAP 파일 컴포넌트들의 부분(50)을 삭제한다. 예를 들어, 다음의 컴포넌트들은 보안 요소(20)로부터 제거된다: Header 및 Directory. 바꾸어 말해서, 보안 요소(20)는 이들 삭제된 컴포넌트들로부터 오는 어떤 정보도 유지하지 않는다.
CAP 파일은 통상적으로 유지되는 맞춤 컴포넌트(custom component)들을 포함할 수 있으며, 이들도 업데이트될 수 있다. 이들 맞춤 컴포넌트들은 OS 발급자에 의존하므로, 이들을 관리하기 위한 일반적인 규칙들은 없다. 임의적인 Descriptor 컴포넌트는 내장된 바이트 코드 검증이 활성인 경우 사용되도록 의도되어 있다. 결과적으로, Descriptor 컴포넌트는 런타임 동안 바이트코드 체크를 위해 유지될 수 있다.
단계 S5에서, 새로운(업데이트된) 운영 체제(31)를 생성하기 위해 원래의 운영 체제(30)에 업그레이드가 적용된다.
제1 예에서, 단계 S5는 보안 요소(20)의 운영 체제를 관리하도록 설계된 부트로더 에이전트를 통해 수행된다. 이 경우에, 업데이트된 운영 체제(31)는 보안 요소(20)로 완전히 전송된다.
이 경우, 부트로더는 보안 요소(20)의 거동이 원래의 운영 체제(30)에 의존하지 않도록 활성화된다. 그 후 새로운 운영 체제(31)가 부트로더를 통해 보안 요소(20)에 다운로드된다. 그 후 부트로더 모드로부터 새로운 운영 체제(31) 모드로 스위칭하도록 보안 요소에 활성화 명령이 전송되고 추가 리셋(즉, 하드웨어 리부팅)이 보안 요소에 적용되어 보안 요소가 새로운 운영 체제(31)를 시작함으로써 새로운 운영 체제(31)를 고려하도록 한다. 이 예에서, 초기 운영 체제(30)를 업데이트하는 단계 S5는 활성화 명령과 리셋 양쪽 모두의 실행의 조합으로 이루어진다.
제2 예에서, 단계 S5는 (정정 패치 또는 새로운 기능(feature)과 같이) 초기 운영 체제를 약간 수정하는 것을 목표로 하는 대량의 데이터(a bulk of data)를 다운로드함으로써 수행될 수 있다. 이 경우, 새로운/업데이트된 기능은 (예를 들어, 리셋을 요구하지 않고) 보안 요소에 설치되자마자 활성이다. 이 예에서, 초기 운영 체제(30)를 업데이트하는 단계 S5는 새로운/업데이트된 기능의 설치로 이루어진다.
모든 경우에, 재링크 동작은 업데이트된 운영 체제(31)가 보안 요소(20) 상에서 활성일 때 수행된다는 점에 유의해야 한다.
단계 S5의 종료는 단계 S6을 트리거하고 이 단계에서는 업데이트된 운영 체제(31)로의 패키지(10)의 새로운 링크(재링크라고도 함) 동작이 시작된다. 이 재링크 동작은 저장된 항목들(60)을 사용하여 수행된다.
바꾸어 말해서, 재링크 단계는 단계 S5의 종료에 의해 자동으로 트리거되고 보안 요소에 영구적으로 저장된 데이터를 사용하여 수행된다. 바람직하게는, 재링크 단계는 단계 S5가 완료되자마자 실행된다(즉 바로 실행된다). 대안적으로, 단계 S5의 종료와 재링크 단계 사이에 중간 동작들이 발생할 수 있다.
바람직하게는, 본 발명에 따라 영구적으로 저장되는 항목들(60)은 재링크 단계 후에 변경되지 않은 상태로 유지되고 따라서 다른 운영 체제 업데이트 후에 추가 재링크 단계가 다시 수행될 수 있다.
바람직하게는, 단계 S6의 재링크 동작은 다음과 같이 수행된다.
먼저, 보안 요소(20)는 Import(51) 컴포넌트로부터 오는 항목들 덕분에 업데이트된 운영 체제(31)와 패키지(10)의 일관성(즉, 호환성)을 체크한다. 이 체크는 패키지가 업데이트된 운영 체제(31)의 기능들과 여전히 호환되는 것을 제어하는 것을 목표로 한다. 오류의 경우에, 재링크 동작은 중단된다. 일관성 체크가 성공적인 경우, 보안 요소(20)는 저장된 항목들(60)을 사용하여 패키지(10)의 Class 컴포넌트의 각각의 외부 참조를 분별하고 저장된 항목들(60)을 사용하여 패키지(10)의 Method 컴포넌트의 각각의 외부 참조를 분별한다.
또한, 보안 요소(20)는 저장된 항목들(60)을 사용하여 패키지(10)의 Class 컴포넌트 및 패키지(10)의 Method 컴포넌트의 내부 참조들을 분별할 수도 있다.
패키지 재링크 프로세스는 보안 요소에 이전에 설치된 모든 패키지들에 적용된다 - 이들 패키지들이 업데이트된 운영 체제와 호환된다면 - 는 점에 유의해야 한다.
도 2는 본 발명의 예에 따른 보안 요소의 다이어그램 및 CAP 파일의 예를 보여준다.
그 후 CAP 파일(40)로부터 보안 요소(20)에 패키지(10)가 생성된다. 보안 요소(20)는 원래의 운영 체제(30)를 포함하고 업데이트된 운영 체제(31)(파선으로 도시됨)를 포함하도록 의도되어 있다. 업데이트된 운영 체제(31)는 원래의 운영 체제(30)의 업그레이드된 버전인 것으로 가정된다.
이 예에서, 보안 요소(20)는 ISO-7816 표준들에 따라 외부와 데이터를 교환하도록 구성된 통신 인터페이스(도시되지 않음)를 포함하는 스마트 카드이다.
원래의 운영 체제(30) 및 업데이트된 운영 체제(31) 양쪽 모두는 JavaCardTm 가상 머신(VM)을 포함한다.
보안 요소는 원래의 운영 체제(30)를 업데이트하여 업데이트된 운영 체제(31)를 생성하도록 구성되는 제1 소프트웨어 에이전트(70)를 포함한다. 제1 소프트웨어 에이전트(70)는 원격의 머신으로부터 오는 대량의 데이터를 얻고 수신된 데이터를 사용하여 원래의 운영 체제(30)를 업데이트할 수 있다.
보안 요소(20)는 업데이트된 운영 체제(31)에 패키지(10)를 링크하도록 구성되는 제2 소프트웨어 에이전트(80)를 포함한다. 제1 에이전트(70)는 업데이트된 운영 체제(31)의 생성의 종료시에 패키지(10)의 (재)링크를 시작하기 위해 제2 에이전트(80)를 자동으로 트리거하도록 구성된다.
보안 요소(20)는 (재)링크 단계 동안 업데이트될 참조들을 검색하기 위해 요구되는 항목들(60)을 CAP 파일(40)의 복수의 컴포넌트로부터 선택하도록 구성되는 제3 소프트웨어 에이전트(90)를 포함한다. 제3 소프트웨어 에이전트(90)는 또한 이들 항목들(60)을 보안 요소(20)에 영구적으로 저장하고 보안 요소(20)로부터 CAP 파일(40)의 적어도 하나의 컴포넌트(50)를 제거하도록 구성된다. 바람직하게는, 이들 항목들(60)을 CAP 파일(40)의 다음의 컴포넌트들로부터 추출하도록 구성된 제3 소프트웨어 에이전트(90): Import 컴포넌트(51), Constant Pool 컴포넌트(52), Reference Location 컴포넌트(53), Class 컴포넌트(54) 및 Method 컴포넌트(55).
바람직하게는, 제3 소프트웨어 에이전트(90)는 보안 요소(20)로부터 (CAP 파일(40)의) Header 및 Directory 컴포넌트들을 제거하도록 적응된다. 제3 소프트웨어 에이전트(90)는 선택된 항목들(60)이 다른 저장 포맷으로 보안 요소(20)에 유지된다고 가정하면, CAP 파일(40)의 모든 컴포넌트들을 제거하도록 구성될 수 있다.
패키지(10)는 임의의 저장 메커니즘에 따라 보안 요소(20)에 저장될 수 있는 그 자신의 Class 컴포넌트 및 그 자신의 Method 컴포넌트 양쪽 모두를 포함하는 것으로 가정된다.
도 2의 예에서, 제2 에이전트(80)는 패키지(10)가 업데이트된 운영 체제(31)와 호환되는지를 체크하기 위해 Import 컴포넌트(51)로부터 오는 항목들을 처리하도록 설계된다. 일관성(호환성) 체크가 성공적인 경우에, 제2 에이전트(80)는 항목들(60)을 사용하여 패키지(10)의 Class 컴포넌트의 모든 외부 참조들을 분별하고 항목들(60)을 사용하여 패키지(10)의 Method 컴포넌트의 모든 외부 참조들을 분별하도록 설계된다.
본 발명 덕분에 20에 이미 설치된 패키지들을 자동으로 활성으로 유지함으로써, 운영 체제가 업데이트될 때 기존의 패키지들의 마이그레이션(migration)을 쉽고 원활하게 관리하는 것이 가능하다. 따라서 운영 체제의 업데이트 동작은 패키지들(및 그들의 관련 애플리케이션들)이 기능을 유지하기 때문에 완전한 서비스의 연속을 유지하는 사용자에게 투명한 방식으로 수행될 수 있다.
본 발명은 설명된 실시예들 또는 예들로 제한되지 않는다. 특히, 이 보안 요소는 운영 체제가 업데이트되자마자 자동으로 재링크되는 몇몇 패키지들을 포함할 수 있다.
본 발명은 패키지로부터 인스턴스화되는 애플리케이션이 없더라도 패키지에 적용된다는 점에 유의해야 한다. 본 발명은 API(Application Programming Interface) 패키지를 적용한다.

Claims (9)

  1. 초기 운영 체제(30)를 포함하는 보안 요소(20) 내의 패키지(10)를 관리하는 방법으로서 - 상기 패키지는 복수의 컴포넌트를 포함하고 이전에 상기 보안 요소에 다운로드된 CAP 파일(40)로부터 생성됨 - , 상기 방법은,
    보안 요소(20)가 상기 패키지를 상기 초기 운영 체제에 링크하는 단계,
    상기 보안 요소(20)가 재링크 동작 동안 업데이트될 참조들을 검색하기 위해 요구되는 항목들(60)을 상기 복수의 컴포넌트로부터 선택하고 상기 보안 요소에 상기 항목들(60)을 영구적으로 저장하는 단계,
    보안 요소(20)가 상기 보안 요소로부터 상기 CAP 파일(40) 중 적어도 하나의 컴포넌트를 제거하는 단계,
    보안 요소(20)가 상기 초기 운영 체제(30)를 업데이트하여 업데이트된 운영 체제(31)를 생성하는 후속 단계, 및
    보안 요소(20)가 상기 패키지(10)를 상기 업데이트된 운영 체제(31)에 재링크하는 후속 단계 - 상기 재링크 단계는 상기 초기 운영 체제(30)를 업데이트하는 단계에 의해 트리거되고, 상기 저장된 항목들(60)을 이용하여 수행됨 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 항목들(60)은 상기 패키지(10) 외부의 타겟들과 관련되는, 방법.
  3. 제1항에 있어서, 상기 CAP 파일(40)은 Import 컴포넌트(51), Constant Pool 컴포넌트(52), Reference Location 컴포넌트(53), Class 컴포넌트(54) 및 Method 컴포넌트(55)를 포함하고, 상기 항목들(60)은 상기 Import, Constant Pool, Reference Location, Class 및 Method 컴포넌트들(51, 52, 53, 54, 55)로부터 선택되는, 방법.
  4. 제3항에 있어서, 상기 패키지(10)는 그 자신의 Class 컴포넌트 및 그 자신의 Method 컴포넌트 양쪽 모두를 포함하고, 상기 링크 단계는 다음의 하위 단계들:
    - 상기 업데이트된 운영 체제(31)와 상기 패키지(10)의 일관성을 체크하기 위해 상기 Import 컴포넌트(51)를 처리하고, 일관성 체크가 성공적인 경우, 상기 항목들(60)을 사용하여:
    - 상기 패키지(10)의 Class 컴포넌트의 각각의 외부 참조를 분별(resolve)하고,
    - 상기 패키지(10)의 Method 컴포넌트의 각각의 외부 참조를 분별하는 것
    을 포함하는, 방법.
  5. 제1항에 있어서, 상기 항목들(60)은 상기 CAP 파일(40)의 포맷과 상이한 포맷으로 상기 보안 요소(20)에 영구적으로 저장되는, 방법.
  6. 패키지(10) 및 초기 운영 체제(30)를 포함하는 보안 요소(20)로서 - 상기 패키지는 상기 초기 운영 체제에 이전에 링크되었으며, 상기 보안 요소(20)는 상기 초기 운영 체제(30)를 업데이트함으로써 업데이트된 운영 체제(31)를 생성하도록 적응된 제1 에이전트(70)를 포함함 - 상기 보안 요소(20)는 상기 업데이트된 운영 체제(31)로의 상기 패키지(10)의 재링크 동작을 수행하도록 적응된 제2 에이전트(80)를 포함하고, 상기 제1 에이전트(70)는 상기 초기 운영 체제(30)의 업데이트의 종료시에 상기 패키지(10)의 재링크를 트리거하도록 적응되고,
    상기 패키지(10)는 상기 보안 요소(20)에 이전에 다운로드된 CAP 파일(40)로부터 생성되고, 상기 CAP 파일(40)은 복수의 컴포넌트를 포함하고; 상기 보안 요소(20)는, 상기 재링크 동작 동안 업데이트될 참조들을 검색하기 위해 요구되는 항목들(60)을 상기 복수의 컴포넌트로부터 선택하고, 상기 항목들(60)을 상기 보안 요소(20)에 영구적으로 저장하고, 상기 보안 요소(20)로부터 상기 CAP 파일(40)의 적어도 하나의 컴포넌트(50)를 제거하도록 적응된 제3 에이전트(90)를 포함하고, 상기 제2 에이전트는 상기 저장된 항목들을 이용하여 상기 재링크 동작을 실행하는, 보안 요소(20).
  7. 제6항에 있어서, 상기 CAP 파일(40)은 Import 컴포넌트(51), Constant Pool 컴포넌트(52), Reference Location 컴포넌트(53), Class 컴포넌트(54) 및 Method 컴포넌트(55)를 포함하고, 상기 제3 에이전트(90)는 상기 Import, Constant Pool, Reference Location, Class 및 Method 컴포넌트들(51, 52, 53, 54, 55)로부터 상기 항목들(60)을 선택하도록 적응되는, 보안 요소(20).
  8. 제7항에 있어서, 상기 패키지(10)는 그 자신의 Class 컴포넌트 및 그 자신의 Method 컴포넌트 양쪽 모두를 포함하고, 상기 제2 에이전트(80)는:
    - 상기 업데이트된 운영 체제(31)와 상기 패키지(10)의 일관성을 체크하기 위해 상기 항목들(60)에 속하는 그리고 상기 Import 컴포넌트(51)로부터 오는 데이터를 처리하고, 일관성 체크가 성공적인 경우, 상기 항목들(60)을 사용하여:
    - 상기 패키지(10)의 Class 컴포넌트의 각각의 외부 참조를 분별하고,
    - 상기 패키지(10)의 Method 컴포넌트의 각각의 외부 참조를 분별하도록 적응되는, 보안 요소(20).
  9. 제6항에 있어서, 상기 제3 에이전트(90)는 상기 항목들(60)을 상기 CAP 파일(40)의 포맷과 상이한 포맷으로 상기 보안 요소(20)에 영구적으로 저장하도록 적응되는, 보안 요소(20).
KR1020187015286A 2015-12-04 2016-11-29 보안 요소 내의 패키지를 관리하는 방법 KR102097644B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15306927.3A EP3176695A1 (en) 2015-12-04 2015-12-04 Method for managing a package in a secure element
EP15306927.3 2015-12-04
PCT/EP2016/079062 WO2017093207A1 (en) 2015-12-04 2016-11-29 Method for managing a package in a secure element

Publications (2)

Publication Number Publication Date
KR20180077249A KR20180077249A (ko) 2018-07-06
KR102097644B1 true KR102097644B1 (ko) 2020-05-26

Family

ID=55079982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187015286A KR102097644B1 (ko) 2015-12-04 2016-11-29 보안 요소 내의 패키지를 관리하는 방법

Country Status (5)

Country Link
US (1) US10474447B2 (ko)
EP (2) EP3176695A1 (ko)
JP (1) JP6560824B2 (ko)
KR (1) KR102097644B1 (ko)
WO (1) WO2017093207A1 (ko)

Families Citing this family (3)

* 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
WO2018227729A1 (zh) * 2017-06-14 2018-12-20 华为技术有限公司 一种嵌入式通用集成电路卡配置文件的管理方法及装置
DE102017006950A1 (de) * 2017-07-21 2019-01-24 Giesecke+Devrient Mobile Security Gmbh Aufrechterhaltung einer Netzwerkverbindung

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028686A1 (en) * 1999-02-02 2003-02-06 Judith E. Schwabe Token-based linking
US20150193224A1 (en) * 2014-01-06 2015-07-09 Apple Inc. Logging operating system updates of a secure element of an electronic device

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506175B2 (en) * 2000-11-06 2009-03-17 International Business Machines Corporation File language verification
US6779732B2 (en) * 2001-08-31 2004-08-24 Schulumberger Malco, Inc. Method and apparatus for linking converted applet files
JP2003216431A (ja) * 2002-01-18 2003-07-31 Cec:Kk Icカードのオペレーティングシステム更新システムおよび当該システムに使用するicカード
US8032872B2 (en) * 2006-01-09 2011-10-04 Oracle America, Inc. Supporting applets on a high end platform
ITMI20080536A1 (it) * 2008-03-28 2009-09-29 Incard Sa Metodo per proteggere un file cap per una carta a circuito integrato.
DE102008033976A1 (de) * 2008-07-21 2010-01-28 Giesecke & Devrient Gmbh Laden und Aktualisieren einer personalisierungsbedürftigen Applikation
US8555067B2 (en) * 2010-10-28 2013-10-08 Apple Inc. Methods and apparatus for delivering electronic identification components over a wireless network
EP2461613A1 (en) * 2010-12-06 2012-06-06 Gemalto SA Methods and system for handling UICC data
US20140019760A1 (en) * 2010-12-06 2014-01-16 Gemalto Sa Method for personalizing a secure element comprised in a terminal
BR112014019937A8 (pt) * 2012-02-14 2017-07-11 Apple Inc Método e aparelho para distribuição em grande escala de clientes de acesso eletrônico
FR2993682B1 (fr) * 2012-07-20 2014-08-22 Oberthur Technologies Mise a jour d'un systeme d'exploitation pour element securise
DE102012015573A1 (de) * 2012-08-07 2014-02-13 Giesecke & Devrient Gmbh Verfahren zum Aktivieren eines Betriebssystems in einem Sicherheitsmodul
US20140058937A1 (en) * 2012-08-24 2014-02-27 Jvl Ventures, Llc Systems, methods, and computer program products for securing and managing applications on secure elements
US9633098B2 (en) * 2012-09-25 2017-04-25 Visa International Service Association System and method for maintaining device state coherency
US9910659B2 (en) * 2012-11-07 2018-03-06 Qualcomm Incorporated Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory
EP2884692B1 (en) * 2013-12-13 2020-05-20 Nxp B.V. Updating software on a secure element
US9483249B2 (en) * 2014-01-06 2016-11-01 Apple Inc. On-board applet migration
US9934014B2 (en) * 2014-08-22 2018-04-03 Apple Inc. Automatic purposed-application creation
US10664257B2 (en) * 2015-05-06 2020-05-26 Apple Inc. Secure element activities
US11050726B2 (en) * 2016-04-04 2021-06-29 Nxp B.V. Update-driven migration of data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028686A1 (en) * 1999-02-02 2003-02-06 Judith E. Schwabe Token-based linking
US20150193224A1 (en) * 2014-01-06 2015-07-09 Apple Inc. Logging operating system updates of a secure element of an electronic device

Also Published As

Publication number Publication date
US20180357059A1 (en) 2018-12-13
EP3176695A1 (en) 2017-06-07
JP6560824B2 (ja) 2019-08-14
US10474447B2 (en) 2019-11-12
KR20180077249A (ko) 2018-07-06
JP2018533796A (ja) 2018-11-15
WO2017093207A1 (en) 2017-06-08
EP3384383B1 (en) 2019-09-18
EP3384383A1 (en) 2018-10-10

Similar Documents

Publication Publication Date Title
KR102083751B1 (ko) 보안 요소에서의 객체들을 관리하기 위한 방법
CN107273148B (zh) 数据的更新驱动迁移
US10430177B2 (en) Method for updating a package
US9390259B2 (en) Method for activating an operating system in a security module
KR102097644B1 (ko) 보안 요소 내의 패키지를 관리하는 방법
EP2579175A1 (en) Secure element comprising separated containers and corresponding method
KR101502977B1 (ko) Html 데이터를 전달하기 위한 향상된 능력들을 구비한 퍼스널 토큰
US10248795B2 (en) Implementing method for JavaCard application function expansion
EP3286682B1 (en) Method of managing applications in a secure element when updating the operating system
CN113645308B (zh) 移动终端tcp通信、装置、设备及存储介质
EP2887213A1 (en) Method for transferring applicative data between two instances of an application
CN110362350B (zh) 管理集成电路卡中的多个操作系统
CN107783837B (zh) 一种进行存储扩展的方法、装置及电子设备
KR20230019032A (ko) 사전 개인화된 보안 요소 및 내장된 개인화
CN117616389A (zh) 安全元件中可执行加载文件的替换
CN114416396A (zh) 一种接口版本控制方法、装置、电子设备及存储介质
KR101995151B1 (ko) 제2 애플리케이션에 의한 사용을 위해 제1 애플리케이션으로부터 제1 데이터를 전송하도록 구성된 집적 회로 카드
EP3324655A1 (en) Method for managing a patch of a sofware component in a euicc
US20230084048A1 (en) Methods and terminal for updating converted applet file, and Java Card device
JP2006338311A (ja) 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
EP3683708A1 (en) Method for managing a package of an application
KR20220041857A (ko) 프로파일들에 대한 보안 요소 실행 환경의 동적 적응
JP2011123639A (ja) ネイティブ型icカード、icカードos、及び方法

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