KR20070113788A - TSS(TPM Software Stack)에서의 키캐쉬(key cache) 관리 방법 - Google Patents

TSS(TPM Software Stack)에서의 키캐쉬(key cache) 관리 방법 Download PDF

Info

Publication number
KR20070113788A
KR20070113788A KR1020060047526A KR20060047526A KR20070113788A KR 20070113788 A KR20070113788 A KR 20070113788A KR 1020060047526 A KR1020060047526 A KR 1020060047526A KR 20060047526 A KR20060047526 A KR 20060047526A KR 20070113788 A KR20070113788 A KR 20070113788A
Authority
KR
South Korea
Prior art keywords
key
tpm
loaded
cache object
loading
Prior art date
Application number
KR1020060047526A
Other languages
English (en)
Other versions
KR100891325B1 (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 KR1020060047526A priority Critical patent/KR100891325B1/ko
Priority to US11/802,893 priority patent/US7978856B2/en
Publication of KR20070113788A publication Critical patent/KR20070113788A/ko
Application granted granted Critical
Publication of KR100891325B1 publication Critical patent/KR100891325B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

TSS(TPM Software Stack)에서의 키 캐쉬(key cache) 관리 방법이 개시된다. 본 발명의 실시예에 따른 TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)에 대한 TSS(TPM Software Stack)에서의 키 캐쉬(key cache) 관리 방법은 특정 키가 상기 TPM에 로드된 적이 있는지를 확인하는 단계, 상기 키가 상기 TPM에 로드된 적이 있는 경우, 상기 키에 대응되는 키 캐쉬 객체(key cache object)를 통하여, 상기 키를 상기 TPM에 복원하는 단계 및 상기 키가 상기 TPM에 로드된 적이 없는 경우, 상기 키에 대응되는 키 캐쉬 객체를 생성하여, 상기 키를 상기 TPM에 로드하는 단계를 구비한다. 본 발명에 따른 TSS에서의 키 캐쉬 관리 방법은 TPM에 무관하게 동작할 수 있는 장점이 있다. 또한 본 발명에 따른 TSS에서의 키 캐쉬 관리 방법은 키 로드 투명성을 완벽하게 지원할 수 있는 장점이 있다.
TCG, TPM, TSS, TCS, 키 캐쉬

Description

TSS(TPM Software Stack)에서의 키 캐쉬(key cache) 관리 방법{Key cache management method on TSS}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 TCG(Trust Computing Group) 스펙(spec) 상의 TPM(Trusted Platform Module)과 TSS(TPM Software Stack)와의 관계를 개략적으로 나타내는 블럭도이다.
도 2는 본 발명의 실시예에 따른 TSS에서의 키 캐쉬 관리 방법을 나타내는 순서도이다.
도 3은 도 2의 키 캐쉬 관리 방법에 따른 TCS(TSS Core Service)의 CM(Context Manager)과 KCM(Key Cache Manager)과의 관계를 개략적으로 나타내는 블럭도이다.
도 4는 본 발명의 실시예에 따른 키 캐쉬 리스트의 초기화하는 방법을 나타내는 순서도이다.
도 5는 도 2의 키 캐쉬 객체를 생성하여 키를 TPM에 로드하는 단계를 보다 자세히 나타내는 순서도이다.
도 6은 도 3의 키 캐쉬 객체와 어플리케이션과의 관계를 개략적으로 나타내는 도면이다.
도 7은 도 2의 키 캐쉬 관리 방법에 따른 키를 TPM에 복원하는 단계를 보다 자세히 나타내는 순서도이다.
도 8은 도 7의 RestoreKey_LoadContext 방식을 보다 자세히 나타내는 순서도이다.
도 9는 도 7의 RestoreKey_AutoLoad 방식을 보다 자세히 나타내는 순서도이다.
도 10은 본 발명의 실시예에 따른 TPM에서의 키 축출 방법을 나타내는 순서도이다.
도 11은 본 발명의 실시예에 따른 키 캐쉬 객체의 삭제 방법을 나타내는 순서도이다.
본 발명은 TCS에서의 키 캐쉬 관리 방법에 관한 것으로서, 특히 한정된 TPM 메모리 자원을 효율적으로 관리하고, TPM의 버전에 무관하게 동작하는 TCS에서의 키 캐쉬 관리 방법에 관한 것이다
TCG(Trust Computing Group)에서는 안전한 키(key) 관리 및 플랫폼(platform)의 무결성을 제공하기 위해, SoC(System on Chip)를 표준화하였는데, 이를 TPM(Trusted Platform Module)이라고 한다. 어플리케이션(application)들은 TPM에 키를 로드(load)시키기 위해서, TSS(TPM Software Stack)를 이용한다. 즉, TSS는 어플리케이션이 TPM을 사용하기 위한 표준 API(Application Programming Interface)이다.
TSS는 TSP(TSS Service Provider)와 TCS(TSS Core Service)로 구분된다. TSP는 동적 라이브러리 형태로 어플리케이션에게 제공되며, TCS는 시스템 서비스나 데몬과 같은 형태로 TSP에게 제공되게 된다. 따라서, 어플리케이션이 TPM을 사용하기 위해서는, TSP의 API를 호출하고, TSP는 TCS의 API를 호출한다. 마지막으로, TCS는 TPM의 API를 호출한다.
도 1은 TCG(Trust Computing Group) 스펙(spec) 상의 TPM(Trusted Platform Module)과 TSS(TPM Software Stack)와의 관계를 개략적으로 나타내는 블럭도이다.
도 1을 참조하면, 각각의 어플리케이션(APP#1~APP#n)은 TPM에 키를 로딩할 것을 요청한다. 각각의 어플리케이션(APP#1~APP#n)의 키 로드 요청에 대해, TPM에는 대응되는 키에 대한 키 슬롯(key slot)이 할당되어야 한다.
그런데, TPM은 하드웨어 장치로서, 매우 한정적인 메모리 리소스(resource)를 제공하는 SoC이다. 더욱이 TPM의 용량의 증가는 막대한 비용을 요구한다. 이렇게 TPM 메모리 리소스의 제한은 키 로딩의 제약을 수반한다. 따라서, 효율적인 키 로딩을 위한 메카니즘이 요구된다.
또한, TPM과 TSS의 개발이 각각 하드웨어 엔지니어링과 소프트 엔지니어링에 속하는 관계로, 각각의 버전-업(version-up)이 개별적으로 이루어지고 있어, 각 버전에 무관하게 관리할 수 있는 키 관리 방법이 요구된다.
본 발명이 이루고자하는 기술적 과제는 한정된 TPM 메모리 자원을 효율적으로 관리하면서도, TPM의 버전에 호환되어 동작하는 TCS에서의 키 캐쉬 관리 방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)에 대한 TSS(TPM Software Stack)에서의 키 캐쉬(key cache) 관리 방법은 특정 키가 상기 TPM에 로드된 적이 있는지를 확인하는 단계, 상기 키가 상기 TPM에 로드된 적이 있는 경우, 상기 키에 대응하여 상기 키에 대한 정보를 저장하는 키 캐쉬 객체(key cache object)를 통하여, 상기 키를 상기 TPM에 복원하는 단계 및 상기 키가 상기 TPM에 로드된 적이 없는 경우, 상기 키에 대응하여 상기 키에 대한 정보를 저장하는 키 캐쉬 객체를 생성하여, 상기 키를 상기 TPM에 로드하는 단계를 구비한다.
상기 키 캐쉬 관리 방법은 상기 TPM의 버전(version)에 호환되어 동작한다. 바람직하게는, 상기 키 캐쉬 객체는 링크드 리스트(linked list)로 구현된다.
상기 키 캐쉬 관리 방법은 상기 링크드 리스트를 초기화하는 단계를 더 구비한다. 상기 링크드 리스트를 초기화하는 단계는 상기 TPM에 로드되어 있는 키들에 대한 리스트를 상기 TPM에 요청하는 단계, 상기 TPM으로부터 상기 리스트를 수신하는 단계 및 상기 리스트에 포함되는 키들을 상기 TPM으로부터 삭제하는 단계를 구비한다.
상기 키 캐쉬 객체를 생성하여 상기 키를 상기 TPM에 로드하는 단계는 상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는지를 확인하는 단계, 상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는 경우, 상기 TPM에 상기 키를 로딩하는 단계 및 상기 키가 상기 TPM에 로딩되어 있는 위치에 대한 정보를 상기 키 캐쉬 객체에 저장하는 단계를 구비한다.
바람직하게는, 상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는 경우, 상기 TPM에 상기 키를 로딩하는 단계는, 상기 TPM의 버전을 확인하는 단계 및 상기 TPM의 버전에 따라 다른 데이터 구조체로서 상기 키를 상기 TPM에 저장하는 단계를 구비할 수 있다. 상기 키 캐쉬 객체는 상기 TPM의 버전에 따라 달리 표현되는 상기 키의 데이터를 가리키는 포인트 값 저장한다.
바람직하게는, 상기 키 캐쉬 객체를 생성하여 상기 키를 상기 TPM에 로드하는 단계는 상기 TPM의 버전을 확인하는 단계 및 상기 TPM의 버전에 따라, 상기 TPM에 로드된 키에 대한 데이터 구조를 달리하는 키 데이터를 기억하기 위해, 상기 키 데이터를 포인팅(pointing)하는 단계를 더 구비할 수 있다. 상기 키 캐쉬 객체는 상기 TPM의 버전에 따라, 상기 TPM에 로드된 키에 대한 데이터 구조를 달리하는 키 데이터를 기억하기 위한 상기 키 데이터의 포인트 값을 저장한다.
상기 키 캐쉬 객체는 상기 로드 요청된 키가 하드웨어 장치에 저장되어 있는 키에 대한 로드 요청인지에 대한 정보를 저장한다. 상기 키 캐쉬 객체는 상기 로드 요청된 키에 대응하여 일대일로 생성된다. 상기 키 캐쉬 객체는 복수개의 어플리케이션으로부터의 동일한 키에 대한 로드 요청이 있는 경우, 복수개의 어플리케이션들에 의하여 공유된다. 상기 키 캐쉬 객체는 상기 키 캐쉬 객체를 공유하는 어플리 케이션의 개수에 대한 정보를 저장한다.
상기 키 캐쉬 객체를 생성하여 상기 키를 상기 TPM에 로드하는 단계는 상기 TPM에 상기 키를 로딩할 수 있는 공간이 없는 경우, 상기 TPM에 로드되어 있는 키들 중 소정의 키를 축출하는 단계를 더 구비한다. 상기 키 캐쉬 객체를 생성하여 상기 키를 상기 TPM에 로드하는 단계는 상기 생성된 키 캐쉬 객체의 상대적 사용 시점을 나타내는 에이징 값을 최대 에이징 값보다 큰 값으로 설정하는 단계를 더 구비한다. 상기 최대 에이징 값은 가장 나중에 사용한 키 캐쉬 객체의 에이징 값이다.
상기 키를 상기 TPM에 복원하는 단계는 상기 TPM의 버전에 따라 방식을 달리하여, 상기 키를 상기 TPM에 복원한다. 상기 키를 상기 TPM에 복원하는 단계는 상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하는 경우, 상기 키 슬롯 단위로 상기 키를 상기 TPM에 복원한다.
상기 키를 상기 TPM에 복원하는 단계는 상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하지 아니하는 경우, 상기 키의 데이터 구조체 단위로 상기 키를 상기 TPM에 복원한다. 상기 키를 상기 TPM에 복원하는 단계는 상기 로드 요청된 키의 부모 키 중 상기 TPM에 로드되어 있는 부모 키를 찾는 단계, 상기 TPM에 로드되어 있는 부모 키의 자식 키를 상기 TPM에 로드시키는 단계, 상기 TPM에 로드된 자식 키가 상기 로드 요청된 키인지를 확인하는 단계 및 상기 자식 키가 상기 로드 요청된 키인 경우, 상기 로드 요청된 키를 상기 TPM에 복원하는 단계를 구비한다.
상기 키를 상기 TPM에 복원하는 단계는 상기 자식 키가 상기 로드 요청된 키가 아닌 경우, 상기 자식 키의 자식 키를 상기 TPM에 로드시키고, 상기 자식 키의 자식 키가 상기 로드 요청된 키인지를 확인하는 단계를 더 구비한다. 상기 키 캐쉬 객체는, 상기 부모 키에 대한 정보를 갖다.
상기 키를 상기 TPM에 복원하는 단계는 상기 TPM에 상기 키를 복원할 수 있는 공간이 있는지를 확인하는 단계, 상기 TPM에 상기 키를 복원할 수 있는 공간이 있는 경우, 상기 TPM에 상기 키를 복원하는 단계 및 상기 TPM에 상기 키를 복원할 수 있는 공간이 없는 경우, 상기 TPM에 로드되어 있는 키들 중 소정의 키를 축출하는 단계를 구비한다. 상기 키를 상기 TPM에 복원하는 단계는 상기 복원된 키에 대응하는 키 캐쉬 객체의 에이징 값을 최대 에이징 값보다 큰 값으로 설정하는 단계를 더 구비한다.
상기 키가 상기 TPM에 로드된 적이 있는지의 확인은 상기 로드 요청된 키에 대응되는 키 캐쉬 객체의 존재 여부에 의한다.
상기 키 캐쉬 관리 방법은 상기 로드 요청된 키를 로드할 공간이 상기 TPM에 없는 경우, 상기 TPM에 로드되어 있는 키를 축출하는 단계를 더 구비한다. 상기 TPM에 로드되어 있는 키를 축출하는 단계는 상기 TPM의 버전에 따라 상기 키를 축출하는 방식을 달리한다.
상기 TPM에 로드되어 있는 키를 축출하는 단계는 상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하는 경우, 상기 TPM에 로드되어 있는 키들 중, 상대적 사용 시점이 가장 오래된 키 캐쉬 객체에 대응되는 키를 축출한다. 상기 TPM에 로드되어 있는 키를 축출하는 단계는 상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하지 아니하는 경우, 상기 TPM에 로드되어 있는 키들 중, 상기 TPM으로의 로딩/축출을 위한 인증이 요구되지 아니하고, 상대적 사용 시점이 가장 오래된 키 캐쉬 객체에 대응되는 키를 축출한다.
상기 키 캐쉬 객체는 상기 키 캐쉬 객체의 상대적 사용 시점에 대한 에이징 값을 갖는다. 상기 키 캐쉬 객체는 상기 축출된 키에 대한 정보를 저장한다.
바람직하게는 상기 키 캐쉬 관리 방법은, 상기 키가 상기 TPM에 로딩되면, 상기 TPM에 상기 키가 로딩된 위치를 나타내는 키 핸들(key handle)을 리턴(return)받는 단계를 더 구비한다. 상기 키 캐쉬 객체는 상기 키 핸들에 대한 정보를 저장한다.
상기 키 캐쉬 관리 방법은 상기 키의 사용이 종료되는 경우, 상기 키에 대응되는 키 캐쉬 객체를 삭제하는 단계를 더 구비한다. 상기 키에 대응되는 키 캐쉬 객체를 삭제하는 단계는 어플리케이션으로부터의 상기 키에 대한 사용 종료 요청 또는 상기 어플리케이션의 종료 요청을 수신하는 단계, 상기 키를 사용하는 다른 어플리케이션이 존재하는지를 판단하는 단계 및 상기 키를 사용하는 다른 어플리케이션이 존재하지 아니하는 경우, 상기 키에 대응되는 키 캐쉬 객체를 삭제하는 단계를 구비한다.
상기 키를 사용하는 다른 어플리케이션이 존재하는지를 판단하는 단계는 상기 키 캐쉬 객체에 저장되어 있는, 상기 키를 사용하는 어플리케이션의 수에 대한 정보에 근거한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명이 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 실시예에 따른 TSS에서의 키 캐쉬 관리 방법을 나타내는 순서도이다.
도 2를 참조하면, 본 발명의 실시예에 따른 TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)에 대한 TSS(TPM Software Stack)에서의 키 캐쉬(key cache) 관리 방법(100)은 먼저, 특정 키가 상기 TPM에 로드된 적이 있는지를 확인하는 S120 단계, 상기 키가 상기 TPM에 로드된 적이 있다면, 상기 키에 대응되는 키 캐쉬 객체(key cache object)를 통하여, 상기 키를 상기 TPM에 복원하는 S130 단계 및 상기 키가 상기 TPM에 로드된 적이 없는 경우, 상기 키에 대응되는 키 캐쉬 객체를 생성하여, 상기 키를 상기 TPM에 로드하는 S140 단계를 구비한다.
도 3은 도 2의 키 캐쉬 관리 방법에 따른 TCS(TSS Core Service) CM(Context Manager)과 KCM(Key Cache Manager)과의 관계를 개략적으로 나타내는 블럭도이다.
도 2 및 도 3을 참조하면, 본 발명의 실시예에 따른 TSS에서의 키 캐쉬 관리 방법(100)은, 어플리케이션으로부터의 TPM으로의 키 로딩 요청(sss110)에 응답하 여, TCS 컨택스트 객체(TCS Context Object)를 생성한다. TCS 컨택스트 객체(TCS Context Object)는 각각의 어플리케이션에 대하여 생성된다.
각각의 TCS 컨택스트 객체(TCS Context Object)는 TCS 키 리스트 헤드에(TCS key list head) 대한 정보를 저장하고 있다. TCS 키(TCS key)는 키 캐쉬 객체(TCS Key Cache)에 대한 포인트(point) 값을 갖는다. 즉, 본 발명의 실시예에 따른 TSS에서의 키 캐쉬 관리 방법(100)은 어플리케이션의 키 로딩 요청에 대하여, 상기 로드 요청된 키를 관리하기 위해 키 캐쉬 객체(TCS Key Cache)를 생성하고, 키 캐쉬 객체(TCS Key Cache)를 포인팅하는 TCS 키를 통해, 어플리케이션과 커뮤니케이션(communication)한다.
상기 키에 대한 로드 요청이 발생하면, 키 캐쉬 관리 방법(100)은 우선, 상기 로드 요청된 키가 상기 TPM에 로드된 적이 있는지를 확인한다(S120). 그 확인은 상기 키에 대응되는 키 캐쉬 객체(TCS Key Cache)가 TCS(TSS Core Service)에 존재하는지에 의한다.
TCS는 전술한 바와 같이, TSP와 함께 TSS를 구성하고, 어플리케이션의 상기 TPM으로의 키 로드 요청에 대한 인터페이스(interface)이다. TCS는 상기 TCS 컨택스트 객체를 관리하는 컨택스트 메니져(context manager) 및 키 캐쉬 객체(TCS Key Cache)를 관리하는 키 캐쉬 메니져(key cache manager) 등으로 구성된다.
본 발명의 실시예에 따른 TSS에서의 키 캐쉬 관리 방법(100)에서, 키 캐쉬 객체(TCS Key Cache)는 상기 TPM에 로드된 또는 로드된 적이 있는 키에 대한 정보를 저장한다. 따라서, 키 캐쉬 객체(TCS Key Cache)는 각각의 키에 대응하여 일대 일로 생성된다. 본 발명의 실시예에 따른 TSS에서의 키 캐쉬 관리 방법(100)은 궁극적으로 키 캐쉬 객체(TCS Key Cache)를 통하여 어플리케이션으로부터의 TPM으로의 키 로드 요청을 관리한다.
키 캐쉬 객체(TCS Key Cache)는 대응되는 키가 상기 TPM에 로드되어 있는 위치 정보, 키 캐쉬 객체(TCS Key Cache)의 상대적 사용 시점 등에 대한 정보를 저장한다. 키 캐쉬 객체(TCS Key Cache)가 저장하는 정보에 대하여는, 각각의 정보가 사용되는 경우에 대한 설명에서 자세히 기술된다. 바람직하게는, 키 캐쉬 객체(TCS Key Cache)는 링크드 리스트(linked list)로 구현될 수 있다.
도 4는 본 발명의 실시예에 따른 키 캐쉬 리스트의 초기화하는 방법을 나타내는 순서도이다.
도 4를 참조하면, 본 발명의 실시예에 따른 키 캐쉬 리스트를 초기화하는 방법(200)에서, 상기 키 캐쉬 리스트(링크드 리스트)는 상기 TCS의 가동(S210)에 의하여 초기화된다. 이는 상기 키 캐쉬 메니져(KCM: Key Cache Manager)와 상기 TPM과의 동기화를 맞추기 위함이다.
TCS가 가동되면, TCS는 상기 TPM에 로드되어 있는 모든 키들에 대한 리스트를 상기 TPM에 요청한다(S220). 상기 TPM에 로드되어 있는 모든 키들에 대한 리스트는, 상기 TPM에 로드되어 있는 키의 로드 위치를 나타내는 키 핸들(key handle)에 대한 정보를 갖는다. 상기 TPM으로부터 상기 리스트가 수신되면(S230), 상기 TCS는 상기 TCG 스펙 상의 TPM_FlushSpecific 또는 TPM_Evict 명령에 의하여, 상기 리스트에 포함되는 모든 키들을 상기 TPM으로부터 삭제한다(S240).
다시, 도 2 및 도 3을 참조하면,상기 키가 상기 TPM에 로드된 적이 없다면, 상기 키에 대응되는 키 캐쉬 객체(TCS Key Cache)가 존재하지 아니한다. 따라서, 키 캐쉬 관리 방법(100)은 상기 키에 대응되는 키 캐쉬 객체(TCS Key Cache)를 생성한다(S140).
도 5는 도 2의 키 캐쉬 객체를 생성하여 키를 TPM에 로드하는 단계를 보다 자세히 나타내는 순서도이다.
도 3 및 도 5를 참조하면, 키 캐쉬 객체(TCS Key Cache)를 생성하여 상기 키를 TPM에 로드하는 S140 단계는, 어플리케이션에 의하여 상기 키를 로드하기 위하여 상기 TPM에게 상기 TCG 스펙 상의 TPM_LoadKey를 호출하기 전에, 우선 상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는지를 확인하는 S141 단계를 구비한다. 상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는 경우, 상기 키에 대응하는 키 캐쉬 객체(TCS Key Cache)가 생성된다(S142).
이때, PS(Persistent Storage)에 저장된 키에 대한 로드 요청이 상기 TCS에 전송되면, 키 캐쉬 객체(TCS Key Cache)는 상기 로드 요청된 키가 하드웨어 장치에 저장되어 있는 키에 대한 로드 요청인지에 대한 정보(KeyUUID(Key Universal Unique IDentifier), ParentUUID(Parent key Universal Unique IDentifier))를 저장한다. 만일 상기 로드 요청된 키가 상기 PS(Persistent Storage)에 저장되어 있는 키라면, 상기 키는 자신의 고유의 식별자(KeyUUID)를 갖는다. 키 캐쉬 객체(TCS Key Cache)는, 상기 로드 요청이 상기 PS에 저장되어 있는 키에 대한 로드 요청임을 기억하기 위해서, 상기 키의 식별자(KeyUUID)를 저장한다.
또한, 키 캐쉬 객체(TCS Key Cache)는, 상기 키의 부모 키에 대한 식별자(ParentUUID)가 상기 PS에 저장되어 있다는 것을 기억하기 위해서, 상기 부모 키에 대한 식별자(ParentUUID) 정보를 저장한다. 상기 TCG 스펙에 의하여, 상기 키와 상기 부모 키와의 관계는 본원발명이 속하는 기술분야의 당업자가 용이하게 알 수 있는 것으로서, 그에 대한 보다 자세한 설명은 생략한다.
도 6은 도 3의 키 캐쉬 객체와 어플리케이션과의 관계를 개략적으로 나타내는 도면이다.
도 3 및 도 6을 참조하면, 상기 TCS는 전술한 바와 같이, 각각의 어플리케이션에 일대일로 대응되는 TCS 컨택스트 객체(TCS Context Object)를 생성하고, 상기 로드 요청된 키에 일대일로 대응되는 키 캐쉬 객체(TCS Key Cache)를 생성한다. 다만, 복수개의 어플리케이션으로부터의 동일한 키에 대한 로드 요청이 있는 경우, 키 캐쉬 객체(TCS Key Cache)는 복수개의 어플리케이션들에 의하여 공유된다. 즉, 키 캐쉬 객체(TCS Key Cache)는 복수개의 TCS 컨택스트 객체(TCS Context Object)에 의하여 공유될 수 있다.
도 6은 TCS 컨택스트 객체 A와 TCS 컨택스트 객체 B가 키 캐쉬 객체 K3를 공유하는 것을 도시하고 있다. 이때, 키 캐쉬 객체(TCS Key Cache)는 자신을 공유하는 어플리케이션의 개수에 대한 정보(ulRefCount)를 저장한다. 즉, 키 캐쉬 객체(TCS Key Cache)는 TCS 컨택스트 객체의 개수에 대한 정보(ulRefCount)를 저장한다. 도 6의 예에서, TCS 컨택스트 객체 A와 TCS 컨택스트 객체 B에 의하여 공유되는 키 캐쉬 객체 K3는 ulRefCount가 "2"로 저장되어 있는 반면, 키 캐쉬 객체 k2는 ulRefCount가 "1"로 저장되어 있다.
다시 도 3 및 도 5를 참조하면, 상기 TPM은 상기 TCG 스펙 상의 TPM_LoadKey 명령을 받아 상기 키를 로드하고(S143), TPM 키 핸들(key handle)을 상기 TCS로 전송한다. 상기 TPM 키 핸들은, 상기 키가 상기 TPM에 저장되어 있는 위치에 대한 정보이다. 키 캐쉬 객체(TCS Key Cache)는 TPM 키 핸들 값(hTpmKey)을 저장한다.
또한, 키 캐쉬 객체(TCS Key Cache)는 상기 TPM의 버전(version)에 따라 달리 표현되는 키 데이터 구조체에 대한 정보(pstTcpaKey, pstTpmKey12)를 저장한다. 제한된 리소스의 TPM으로 키를 로드함에 있어서, TCS는 어플리케이션이 인식하지 못하는 사이에 자동으로 사용되지 아니하는 키를 TPM으로부터 축출하고, 축출된 키를 자동으로 복원시키는 것을 말한다. 이를 로드 키 투명성이라고 한다. 현재 TSS 1.1 버전 및 TSS 1.2 버전의 TPM이 개발되어 있는데, 1.1 버전 및 1.2 버전의 가장 큰 차이는, 이러한 로드 키 투명성의 제한 여부이다.
TSS 1.2 버전을 지원하는 TPM이 상기 TCG 스펙 상의 TPM_LoadKeyContext 및 TPM_EvictKeyContext 방식을 지원한다면, 상기 TCS는 대응되는 키의 데이터 등이 저장되는 있는 키 슬롯 단위로, 상기 키를 상기 TPM에 로드/축출한다. 따라서, 1.2 버전의 TPM에 의하면, 1.1 버전의 TPM에서 발생되는 상기 로드 키 투명성 제한의 문제를 해결할 수 있다.
1.1 버전의 TPM의 경우, 해당 키의 상기 TPM으로의 로딩/축출을 위한 인증(authorization)이 요구되는 결과 발생하는 로드 키 투명성의 제한의 문제가 발생한다. 즉, 1.2 버전의 TPM에 의하면, 해당 키의 상기 TPM으로의 로딩/축출을 위 한 인증(authorization)의 존재 여부가 문제되지 아니한다.
상기 TPM은 그 버전에 따라, 키에 대한 다른 데이터 구조체를 사용한다. 구체적으로, 상기 1.1 버전의 TPM의 경우, 상기 TPM은 상기 TCG 스펙 상의 TCPA_KEY 구조체를 사용하여 키를 표현한다. 반면, 상기 1.2 버전의 TPM의 경우, 상기 TPM은 상기 TCG 스펙 상의 TPM_KEY12 구조체를 사용하여 상기 키를 표현한다.
키 캐쉬 객체(TCS Key Cache)는 상기 TPM에 로드된 키 데이터를 기억하기 위해, 상기 TPM의 버전에 따라, 각각 상기 TCPA_KEY 구조체 및 상기 TMP_KEY12 구조체를 가리키는 포인트 값(pstTcpaKey, pstTpmKey12)을 저장한다. 키 캐쉬 객체를 생성하여 키를 TPM에 로드하는 S140 단계는, 키 캐쉬 객체(TCS Key Cache)에 상기 TPM의 버전에 따라 달리 표현되는 키 데이터 구조체에 대한 정보(pstTcpaKey, pstTpmKey12)를 저장하기 위해, 상기 TPM의 버전을 확인하는 단계를 더 구비할 수 있다.
이렇게 본 발명의 실시예에 따른 도 2의 키 캐쉬 관리 방법(100)은, 키 캐쉬 객체(TCS Key Cache)에 상기 TPM의 버전에 따라 달리 표현되는 키 데이터 구조체에 대한 정보(pstTcpaKey, pstTpmKey12)를 저장함으로써, 상기 TCS 또는 상기 TSS는 상기 TPM의 버전과 무관하게 동작할 수 있다.
계속해서 도 3 및 도 5를 참조하면, 상기 TPM에 상기 키를 로딩할 수 있는 공간이 없는 경우, TCS는 상기 TPM에 로드되어 있는 키들 중 소정의 키를 축출한다(S144). 상기 TPM에 로드되어 있는 키를 축출하는 방법에 대한 보다 자세한 사항은 후술한다.
이렇게 키 캐쉬 객체(TCS Key Cache)가 생성되고, 상기 키가 상기 TPM에 로드되어 키 캐쉬 객체(TCS Key Cache)에 키 핸들 값(hTpmKey)이 저장되면, 키 캐쉬 객체(TCS Key Cache)의 에이징 값은 최대 에이징 값보다 큰 값으로 업데이트(update)된다. 여기서, 상기 에이징 값은 대응되는 키 캐쉬 객체(TCS Key Cache)의 상대적 사용 시점을 나타내는데, 먼저 사용된 키 캐쉬 객체에 대한 에이징 값일수록, 에이징 값이 작다.
즉, 에이징 값이 "1"인 키 캐쉬 객체가 에이징 값이 "4"인 키 캐쉬 객체보다 오랜기간 사용되지 아니한 것을 알 수 있다. 상기 최대 에이징 값은 키 캐쉬 객체(TCS Key Cache)들 중 가장 최근에 사용된 키 캐쉬 객체의 에이징 값을 말한다.
다시 도 2를 참조하면, 본 발명의 실시예에 따른 TSS에서의 키 캐쉬 관리 방법(100)은, 상기 키가 상기 TPM에 로드된 적이 있는 경우, 상기 키에 대응되는 키 캐쉬 객체를 통하여, 상기 키를 상기 TPM에 복원한다(S130). 이미 상기 키에 대응되는 키 캐쉬 객체가 존재하므로, 새로운 키 캐쉬 객체를 만들 필요가 없다.
다만, 이미 생성되어 있는 키 캐쉬 객체가 저장하고 있는 상기 키에 대한 정보를 이용하여, 상기 키를 상기 TPM에 복원(restore)한다. 이때, 상기 키를 상기 TPM에 복원하는 S130 단계는 상기 TPM의 버전에 따라 방식을 달리하여, 상기 키를 상기 TPM에 복원한다.
도 7은 도 2의 키 캐쉬 관리 방법에 따른 키를 TPM에 복원하는 단계를 보다 자세히 나타내는 순서도이다.
도 2, 도 3 및 도 7을 참조하면, 상기 키를 상기 TPM에 복원하는 S130 단계 는 상기 TPM의 버전을 확인하는 S131 단계를 구비한다. 전술한 바와 같이, 상기 1.2 버전의 TPM인 경우, 키 슬롯(key slot) 단위로 상기 키의 로드/축출이 수행된다. 이렇게 키 슬롯 단위로 키의 로드/축출이 수행하는 기능을 키 덤프(key dump) 기능이라고 한다.
상기 TPM이 상기 키 덤프 기능을 지원하는 경우, 상기 TCS는 상기 키 슬롯 단위로 상기 키를 상기 TPM에 복원한다(S132). 이를 본 발명에서 RestoreKey_LoadContext 함수로 정의한다. 반면, 상기 TPM이 상기 키 덤프 기능을 지원하지 아니하는 경우, 상기 TCS는 상기 키의 데이터 구조체 단위로 상기 키를 상기 TPM에 복원한다(S133). 이를 본 발명에서 RestoreKey_AutoLoad 함수로 정의한다.
도 8은 도 7의 RestoreKey_LoadContext 방식을 보다 자세히 나타내는 순서도이다.
도 3 및 도 8을 참조하면, RestoreKey_LoadContext 방식(S132)은 먼저, 상기 키를 상기 TPM에 로드할 공간이 있는지를 확인하는 S132a 단계를 구비한다. 상기 TPM에 공간이 있는 경우에는, 상기 TCS는 상기 TPM에 상기 키를 복원한다(S132b). 이때, 상기 키의 복원은 키 캐쉬 객체(TCS Key Cache)에 근거하여 수행된다.
상기 TCS는 상기 TPM에 키를 로드할 공간이 없는 경우, 상기 TPM에 로드되어 있는 키들 중 일정 조건에 맞는 키를 축출하는데, 이때, 키 캐쉬 객체(TCS Key Cache)에는 축출된 키에 대한 정보(rgbKeyContextBlob, ulKeyContextSize)가 저장되기 때문이다. 이때, rgbKeyContextBlob는 상기 덤프된 키에 대한 데이터를 나타 내고, ulKeyContextSize는 rgbKeyContextBlob의 바이트 크기를 나타낸다. 상기 TPM에서의 키 축출에 대하여는 후술한다.
상기 키의 축출에 의하여, 상기 로드 요청된 키를 상기 TPM에 복원할 공간이 있는지를 판단한다(S132a). 상기 키의 복원을 위해 대응되는 키 캐쉬 객체(TCS Key Cache)를 사용하였으므로, 키 캐쉬 객체(TCS Key Cache)의 에이징 값은 최대 에이징 값보다 큰 값으로 업데이트된다(S132d).
도 9는 도 7의 RestoreKey_AutoLoad 방식을 보다 자세히 나타내는 순서도이다.
도 3 및 도 9를 참조하면, 도 7의 RestoreKey_AutoLoad 방식(S133)은 상기 로드 요청된 키의 부모키 중 상기 TPM에 로드되어 있는 부모 키를 찾는다(S133a). 전술한 바와 같이, RestoreKey_AutoLoad 방식(S133)은 상기 키 덤프 기능을 지원하지 아니하는 TPM에 적용되는 방식이다. 이 경우, 상기 TPM으로의 키 로드 및 상기 TPM으로부터의 키 축출을 위해, 상기 키의 부모 키 또한 상기 TPM에 로드되어 있을 것이, 상기 TCG 스펙 상 요구되기 때문이다.
이때, 상기 부모 키 및 상기 자식 키는 키 캐쉬 객체(TCS Key Cache)에 저장되어 있는 KeyUUID 및 ParentUUID 등을 통하여 판단한 수 있다. 또한 상기 TCS는 키 캐쉬 객체(TCS Key Cache)에 부모 키 캐쉬 객체의 포인터 정보(pstParent)를 저장시킴으로써, 부모 키와 자식 키의 관계를 판단할 수도 있다.
상기 TPM에 로드되어 있는 부모 키를 찾으면, 상기 부모 키의 자식 키는 TPM에 로드된다(S133b). 상기 자식 키가 상기 로드 요청된 키인 경우, 상기 키를 상기 TPM에 복원한다(S133d). 반면, 상기 자식 키가 상기 로드 요청된 키가 아닌 경우, 상기 TCS는 상기 자식 키의 자식키를 찾아(S133e), 상기 로드 요청된 키와 비교한다.
RestoreKey_AutoLoad 방식(S133) 또한, 도 8의 RestoreKey_LoadContext 방식(S132)과 마찬가지로, 상기 복원시킬 키를 로드할 공간이 상기 TPM에 없는 경우, 상기 TPM에 로드되어 있는 키들 중 일정 조건을 만족하는 키를 축출하는 단계를 더 구비한다. TPM으로부터의 키의 축출에 대하여는 후술한다.
이렇게 본 발명의 실시예에 따른 키 캐쉬 관리 방법은, 상기 TCS가 상기 TPM의 버전에 따른 키 로드 방식을 모두 지원함으로써, 상기 TCS는 상기 TPM의 버전에 호환적으로 동작할 수 있다.
도 10은 본 발명의 실시예에 따른 TPM에서의 키 축출 방법을 나타내는 순서도이다.
도 10을 참조하면, 상기 TCS는, 상기 TPM에 키를 로드/복원시키고자 하나, 상기 TPM에 상기 키를 로드할 공간이 없는 경우, 상기 TPM에 로드되어 있는 키들 중 일정 조건에 만족하는 키를 축출한다(300). 상기 TPM에 로드되어 있는 키를 축출하는 방법(300)는 상기 TPM의 버전에 따라 그 방식을 달리한다.
상기 TPM이 상기 키 덤프 기능을 지원하는 경우, 상기 TCS는 상기 TPM에 로드되어 있는 키들 중, 상기 에이징 값이 가장 오래된 키 캐쉬 객체에 대응되는 키를 축출한다(S320). 즉, 가장 오랫동안 사용되지 아니하는 키가 축출된다. 이를 본 발명에서는 ExractKey_SaveKeyContext 함수로 정의한다.
상기 TPM이 상기 키 덤프 기능을 지원하지 아니하는 경우, 상기 TCS는 상기 TPM에 로드되어 있는 키들 중, 상기 키 및 상기 키의 부모 키가 모두 상기 TPM으로의 로딩/축출을 위한 인증이 요구되지 아니하는 키들을 찾는다(S340). 전술한 바와 같이, 버전 1.1의 TPM에서는 인증이 요구되는 키에 대한 로드/축출이 제한되기 때문이다.
상기 TCS는 인증이 요구되지 아나히는 키들 중 가장 오랫동안 사용되지 아니하는 키를 축출한다(S320). 이를 본 발명에서는 ExractKey_AutoEvict 함수로 정의한다.
이렇게 본 발명의 실시예에 따른 키 캐쉬 관리 방법은, 상기 TCS가 상기 TPM의 버전에 따른 키 축출 방식을 모두 지원함으로써, 상기 TCS는 상기 TPM의 버전에 호환적으로 동작할 수 있다.
도 11은 본 발명의 실시예에 따른 키 캐쉬 객체의 삭제 방법을 나타내는 순서도이다.
도 3 및 도 11을 참조하면, 도 2의 키 캐쉬 관리 방법(100)에서, 상기 키의 사용이 종료되는 경우, 상기 키에 대응되는 키 캐쉬 객체는 삭제된다(400). 어플리케이션이 상기 키를 더이상 사용하지 않아 상기 TCS에게 상기TCS_EvictKey 명령을 내리거나, 어플리케이션이 종료에 의하여 상기 TCG 스펙 상의 Tspi_CloseContext가 호출되는 경우(S410), 상기 TCS는 대응되는 키 캐쉬 객체의 ulRefCount 값을 감소시킨다(S430). 이때, 상기 TCS는 상기 ulRefCount가 "0"이 되는 키 캐쉬 객체를 삭제한다(S450).
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 예를 들어, 상기에서는 키 캐쉬 객체의 정보 업데이트, 생성 및 삭제에 대하여 TCS가 수행하는 것으로 기재하였으나, 보다 구체적으로는 TCS의 키 캐쉬 메니져(KCM)에 의할 수 있다.
그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 TSS에서의 키 캐쉬 관리 방법은 TPM의 버전에 호환되어 동작할 수 있는 장점이 있다. 또한 본 발명에 따른 TSS에서의 키 캐쉬 관리 방법은 키 로드 투명성을 완벽하게 지원할 수 있는 장점이 있다.

Claims (48)

  1. TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)에 대한 TSS(TPM Software Stack)에서의 키 캐쉬(key cache) 관리 방법에 있어서,
    특정 키가 상기 TPM에 로드된 적이 있는지를 확인하는 단계;
    상기 키가 상기 TPM에 로드된 적이 있는 경우, 상기 키에 대응하여 상기 키에 대한 정보를 저장하는 키 캐쉬 객체(key cache object)를 통하여, 상기 키를 상기 TPM에 복원하는 단계; 및
    상기 키가 상기 TPM에 로드된 적이 없는 경우, 상기 키에 대응하여 상기 키에 대한 정보를 저장하는 키 캐쉬 객체를 생성하여, 상기 키를 상기 TPM에 로드하는 단계를 구비하고,
    상기 키 캐쉬 관리 방법은,
    상기 TPM의 버전(version)에 호환되어 동작하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  2. 제 1 항에 있어서, 상기 키 캐쉬 객체는,
    링크드 리스트(linked list)로 구현되는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  3. 제 2 항에 있어서, 상기 키 캐쉬 관리 방법은,
    상기 링크드 리스트를 초기화하는 단계를 더 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  4. 제 3 항에 있어서, 상기 링크드 리스트를 초기화하는 단계는,
    상기 TPM에 로드되어 있는 키들에 대한 리스트를 상기 TPM에 요청하는 단계;
    상기 TPM으로부터 상기 리스트를 수신하는 단계; 및
    상기 리스트에 포함되는 키들을 상기 TPM으로부터 삭제하는 단계를 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  5. 제 1 항에 있어서, 상기 키 캐쉬 객체를 생성하여 상기 키를 상기 TPM에 로드하는 단계는,
    상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는지를 확인하는 단계;
    상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는 경우, 상기 TPM에 상기 키를 로딩하는 단계; 및
    상기 키가 상기 TPM에 로딩되어 있는 위치에 대한 정보를 상기 키 캐쉬 객체에 저장하는 단계를 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  6. 제 5 항에 있어서, 상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는 경우, 상기 TPM에 상기 키를 로딩하는 단계는,
    상기 TPM의 버전을 확인하는 단계; 및
    상기 TPM의 버전에 따라 다른 데이터 구조체로서 상기 키를 상기 TPM에 저장하는 단계를 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  7. 제 6 항에 있어서, 상기 키 캐쉬 객체는,
    상기 TPM의 버전에 따라 달리 표현되는 상기 키의 데이터를 가리키는 포인트 값 저장하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  8. 제 5 항에 있어서, 상기 키 캐쉬 객체는,
    상기 로드 요청된 키가 하드웨어 장치에 저장되어 있는 키에 대한 로드 요청인지에 대한 정보를 저장하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  9. 제 5 항에 있어서, 상기 키 캐쉬 객체는,
    상기 로드 요청된 키에 대응하여 일대일로 생성되는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  10. 제 9 항에 있어서, 상기 키 캐쉬 객체는,
    복수개의 어플리케이션으로부터의 동일한 키에 대한 로드 요청이 있는 경우, 복수개의 어플리케이션들에 의하여 공유되는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  11. 제 10 항에 있어서, 상기 키 캐쉬 객체는,
    상기 키 캐쉬 객체를 공유하는 어플리케이션의 개수에 대한 정보를 저장하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  12. 제 5 항에 있어서, 상기 키 캐쉬 객체를 생성하여 상기 키를 상기 TPM에 로드하는 단계는,
    상기 TPM에 상기 키를 로딩할 수 있는 공간이 없는 경우, 상기 TPM에 로드되어 있는 키들 중 소정의 키를 축출하는 단계를 더 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  13. 제 5 항에 있어서, 상기 키 캐쉬 객체를 생성하여 상기 키를 상기 TPM에 로드하는 단계는,
    상기 생성된 키 캐쉬 객체의 상대적 사용 시점을 나타내는 에이징 값을 최대 에이징 값보다 큰 값으로 설정하는 단계를 더 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  14. 제 13 항에 있어서, 상기 최대 에이징 값은,
    가장 나중에 사용한 키 캐쉬 객체의 에이징 값인 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  15. 제 1 항에 있어서, 상기 키를 상기 TPM에 복원하는 단계는,
    상기 TPM의 버전에 따라 방식을 달리하여, 상기 키를 상기 TPM에 복원하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  16. 제 15 항에 있어서, 상기 키를 상기 TPM에 복원하는 단계는,
    상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하는 경우, 상기 키 슬롯 단위로 상기 키를 상기 TPM에 복원하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  17. 제 15 항에 있어서, 상기 키를 상기 TPM에 복원하는 단계는,
    상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하지 아니하는 경우, 상기 키의 데이터 구조체 단위로 상기 키를 상기 TPM에 복원하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  18. 제 17 항에 있어서, 상기 키를 상기 TPM에 복원하는 단계는,
    상기 로드 요청된 키의 부모 키 중 상기 TPM에 로드되어 있는 부모 키를 찾는 단계;
    상기 TPM에 로드되어 있는 부모 키의 자식 키를 상기 TPM에 로드시키는 단계;
    상기 TPM에 로드된 자식 키가 상기 로드 요청된 키인지를 확인하는 단계; 및
    상기 자식 키가 상기 로드 요청된 키인 경우, 상기 로드 요청된 키를 상기 TPM에 복원하는 단계를 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  19. 제 18 항에 있어서, 상기 키를 상기 TPM에 복원하는 단계는,
    상기 자식 키가 상기 로드 요청된 키가 아닌 경우, 상기 자식 키의 자식 키를 상기 TPM에 로드시키고, 상기 자식 키의 자식 키가 상기 로드 요청된 키인지를 확인하는 단계를 더 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  20. 제 19 항에 있어서, 상기 키 캐쉬 객체는,
    상기 부모 키에 대한 정보를 갖는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  21. 제 15 항에 있어서, 상기 키를 상기 TPM에 복원하는 단계는,
    상기 TPM에 상기 키를 복원할 수 있는 공간이 있는지를 확인하는 단계;
    상기 TPM에 상기 키를 복원할 수 있는 공간이 있는 경우, 상기 TPM에 상기 키를 복원하는 단계; 및
    상기 TPM에 상기 키를 복원할 수 있는 공간이 없는 경우, 상기 TPM에 로드되어 있는 키들 중 소정의 키를 축출하는 단계를 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  22. 제 21 항에 있어서, 상기 키를 상기 TPM에 복원하는 단계는,
    상기 복원된 키에 대응하는 키 캐쉬 객체의 에이징 값을 최대 에이징 값보다 큰 값으로 설정하는 단계를 더 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  23. 제 1 항에 있어서, 상기 키가 상기 TPM에 로드된 적이 있는지의 확인은,
    상기 로드 요청된 키에 대응되는 키 캐쉬 객체의 존재 여부에 의하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  24. 제 1 항에 있어서, 상기 키 캐쉬 관리 방법은,
    상기 로드 요청된 키를 로드할 공간이 상기 TPM에 없는 경우, 상기 TPM에 로드되어 있는 키를 축출하는 단계를 더 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  25. 제 24 항에 있어서, 상기 TPM에 로드되어 있는 키를 축출하는 단계는,
    상기 TPM의 버전에 따라 상기 키를 축출하는 방식을 달리하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  26. 제 25 항에 있어서, 상기 TPM에 로드되어 있는 키를 축출하는 단계는,
    상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하는 경우, 상기 TPM에 로드되어 있는 키들 중, 상대적 사용 시점이 가장 오래된 키 캐쉬 객체에 대응되는 키를 축출하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  27. 제 25 항에 있어서, 상기 TPM에 로드되어 있는 키를 축출하는 단계는,
    상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하지 아니하는 경우, 상기 TPM에 로드되어 있는 키들 중, 상기 TPM으로의 로딩/축출을 위한 인증이 요구되지 아니하고, 상대적 사용 시점이 가장 오래된 키 캐쉬 객체에 대응되는 키를 축출하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  28. 제 24 항에 있어서, 상기 키 캐쉬 객체는,
    상기 키 캐쉬 객체의 상대적 사용 시점에 대한 에이징 값을 갖는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  29. 제 24 항에 있어서, 상기 키 캐쉬 객체는,
    상기 축출된 키에 대한 정보를 저장하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  30. 제 1 항에 있어서, 상기 키 캐쉬 관리 방법은,
    상기 키가 상기 TPM에 로딩되면, 상기 TPM에 상기 키가 로딩된 위치를 나타내는 키 핸들(key handle)을 리턴(return)받는 단계를 더 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  31. 제 30 항에 있어서, 상기 키 캐쉬 객체는,
    상기 키 핸들에 대한 정보를 저장하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  32. 제 1 항에 있어서, 상기 키 캐쉬 관리 방법은,
    상기 키의 사용이 종료되는 경우, 상기 키에 대응되는 키 캐쉬 객체를 삭제하는 단계를 더 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  33. 제 32 항에 있어서, 상기 키에 대응되는 키 캐쉬 객체를 삭제하는 단계는,
    어플리케이션으로부터의 상기 키에 대한 사용 종료 요청 또는 상기 어플리케이션의 종료 요청을 수신하는 단계;
    상기 키를 사용하는 다른 어플리케이션이 존재하는지를 판단하는 단계; 및
    상기 키를 사용하는 다른 어플리케이션이 존재하지 아니하는 경우, 상기 키에 대응되는 키 캐쉬 객체를 삭제하는 단계를 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  34. 제 33 항에 있어서, 상기 키를 사용하는 다른 어플리케이션이 존재하는지를 판단하는 단계는,
    상기 키 캐쉬 객체에 저장되어 있는, 상기 키를 사용하는 어플리케이션의 수에 대한 정보에 근거하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  35. TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)을 관리하되, 상기 TPM의 버전(version)에 호환되어 동작하는 키 캐쉬(key cache) 관리 방법에 있어서,
    상기 키 캐쉬 관리 방법은,
    상기 키에 대응하여 상기 키에 대한 정보를 저장하는 키 캐쉬 객체를 초기화하는 단계를 구비하고,
    상기 키 캐쉬 객체를 초기화하는 단계는,
    상기 TPM에 로드되어 있는 키들에 대한 리스트를 상기 TPM에 요청하는 단계;
    상기 TPM으로부터 상기 리스트를 수신하는 단계; 및
    상기 리스트에 포함되는 키들을 상기 TPM으로부터 삭제하는 단계를 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  36. TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)을 관리하되, 상기 TPM의 버전(version)에 호환되어 동작하는 키 캐쉬(key cache) 관리 방법에 있어서,
    상기 키 캐쉬 관리 방법은,
    상기 키에 대응하여 상기 키에 대한 정보를 저장하는 키 캐쉬 객체를 생성하는 단계를 구비하고,
    상기 키 캐쉬 객체를 생성하는 단계는,
    상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는지를 확인하는 단계;
    상기 TPM에 상기 키를 로딩할 수 있는 공간이 있는 경우, 상기 TPM에 상기 키를 로딩하는 단계; 및
    상기 키가 상기 TPM에 로딩되어 있는 위치에 대한 정보를 상기 키 캐쉬 객체에 저장하는 단계를 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  37. 제 36 항에 있어서, 상기 TPM에 상기 키를 로딩하는 단계는,
    상기 TPM의 버전에 따라 다른 데이터 구조체로서 상기 키를 상기 TPM에 저장하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  38. 제 37 항에 있어서, 상기 키 캐쉬 객체는,
    상기 TPM의 버전에 따라 달리 표현되는 상기 키의 데이터를 가리키는 포인트 값 저장하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  39. TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)을 관리하되, 상기 TPM의 버전(version)에 호환되어 동작하는 키 캐쉬(key cache) 관리 방법에 있어서,
    상기 키 캐쉬 관리 방법은,
    상기 키에 대응하여 상기 키에 대한 정보를 저장하는 키 캐쉬 객체를 삭제하는 단계를 구비하고,
    상기 키 캐쉬 객체를 삭제하는 단계는,
    어플리케이션으로부터의 상기 키에 대한 사용 종료 요청 또는 상기 어플리케이션의 종료 요청을 수신하는 단계;
    상기 키를 사용하는 다른 어플리케이션이 존재하는지를 판단하는 단계; 및
    상기 키를 사용하는 다른 어플리케이션이 존재하지 아니하는 경우, 상기 키에 대응되는 키 캐쉬 객체를 삭제하는 단계를 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법
  40. 제 39 항에 있어서, 상기 키를 사용하는 다른 어플리케이션이 존재하는지를 판단하는 단계는,
    상기 키 캐쉬 객체에 저장되어 있는, 상기 키를 사용하는 어플리케이션의 개수에 대한 정보에 근거하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  41. TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)을 관리하되, 상기 TPM의 버전(version)에 호환되어 동작하는 키 캐쉬(key cache) 관리 방법에 있어서,
    상기 키 캐쉬 관리 방법은,
    상기 로드 요청된 키를 로드할 공간이 상기 TPM에 없는 경우, 상기 TPM에 로드되어 있는 키를 축출하는 단계를 구비하고,
    상기 TPM에 로드되어 있는 키를 축출하는 단계는,
    상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하는 경우, 상기 TPM에 로드되어 있는 키들 중, 상대적 사용 시점이 가장 오래된 키 캐쉬 객체에 대응되는 키를 축출하는 단계; 및
    상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하지 아니하는 경우, 상기 TPM에 로드되어 있는 키들 중, 상기 TPM으로의 로딩/축출을 위한 인증이 요구되지 아니하고, 상대적 사용 시점이 가장 오래된 키 캐쉬 객체에 대응되는 키를 축출하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  42. 제 41 항에 있어서, 상기 키 캐쉬 객체는,
    상기 키 캐쉬 객체의 상대적 사용 시점에 대한 에이징 값을 갖는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  43. 제 42 항에 있어서, 상기 키 캐쉬 객체는,
    상기 축출된 키에 대한 정보를 저장하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  44. TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)을 관리하되, 상기 TPM의 버전(version)에 호환되어 동작하는 키 캐쉬(key cache) 관리 방법에 있어서,
    상기 키 캐쉬 관리 방법은,
    상기 TPM으로부터 축출된 키에 대한 로드 요청이 있는 경우, 상기 키를 상기 TPM에 복원하는 단계를 구비하고,
    상기 키를 상기 TPM에 복원하는 단계는,
    상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하는 경우, 상기 키 슬롯 단위로 상기 키를 상기 TPM에 복원하는 단계; 및
    상기 TPM이 키 슬롯(key slot) 단위에 의한 상기 키의 로드/축출 기능을 지원하지 아니하는 경우, 상기 키의 데이터 구조체 단위로 상기 키를 상기 TPM에 복원하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  45. 제 44 항에 있어서, 상기 키의 데이터 구조체 단위로 상기 키를 상기 TPM에 복원하는 단계는,
    상기 로드 요청된 키의 부모 키 중 상기 TPM에 로드되어 있는 부모 키를 찾는 단계;
    상기 TPM에 로드되어 있는 부모 키의 자식 키를 상기 TPM에 로드시키는 단계;
    상기 자식 키가 상기 로드 요청된 키인 경우, 상기 로드 요청된 키를 상기 TPM에 복원하는 단계; 및
    상기 자식 키가 상기 로드 요청된 키가 아닌 경우, 상기 자식 키의 자식 키를 상기 TPM에 로드시키고, 상기 자식 키의 자식 키가 상기 로드 요청된 키인지를 확인하는 단계를 더 구비하는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  46. 제 45 항에 있어서, 상기 키 캐쉬 객체는,
    상기 부모 키에 대한 정보를 갖는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
  47. TPM(Trusted Platform Module)으로의 키(key)의 로딩(loading)을 관리하되, 상기 TPM의 버전(version)에 호환되어 동작하는 키 캐쉬(key cache) 관리 방법에 있어서,
    상기 키 캐쉬 관리 방법은,
    키 캐쉬 객체(key cache object)에 저장되어 있는 상기 키에 대응대는 정보를 이용하여 상기 키의 상기 TPM으로의 로딩을 관리하고,
    상기 키 캐쉬 객체는,
    상기 키가 상기 TPM에 로드되어 있는 위치에 대한 정보, 상기 키 캐쉬 객체를 공유하는 어플리케이션의 개수에 대한 정보, 어플리케이션으로부터의 상기 키에 대한 로드 요청이 하드웨어 장치에 저장된 키에 대한 로드 요청임을 나타내는 정보, 상기 키 캐쉬 객체의 상대적 사용 시점을 나타내는 정보, 상기 TPM의 버전에 따라 달리 표현되는 상기 키의 데이터를 가리키는 포인트 값 및 상기 TPM으로부터 축출된 데이터에 대한 정보 및 상기 키 캐쉬 객체의 부모 키 캐쉬 객체를 나타내는 정보를 저장하는 것을 특징으로 하는 키 캐쉬 관리 방법.
  48. 제 47 항에 있어서, 상기 키 캐쉬 객체는,
    링크드 리스트(linked list)로 구현되는 것을 특징으로 하는 TSS에서의 키 캐쉬 관리 방법.
KR1020060047526A 2006-05-26 2006-05-26 TSS(TPM Software Stack)에서의 키캐쉬(key cache) 관리 방법 KR100891325B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060047526A KR100891325B1 (ko) 2006-05-26 2006-05-26 TSS(TPM Software Stack)에서의 키캐쉬(key cache) 관리 방법
US11/802,893 US7978856B2 (en) 2006-05-26 2007-05-25 Methods of managing a key cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060047526A KR100891325B1 (ko) 2006-05-26 2006-05-26 TSS(TPM Software Stack)에서의 키캐쉬(key cache) 관리 방법

Publications (2)

Publication Number Publication Date
KR20070113788A true KR20070113788A (ko) 2007-11-29
KR100891325B1 KR100891325B1 (ko) 2009-03-31

Family

ID=39091558

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060047526A KR100891325B1 (ko) 2006-05-26 2006-05-26 TSS(TPM Software Stack)에서의 키캐쉬(key cache) 관리 방법

Country Status (2)

Country Link
US (1) US7978856B2 (ko)
KR (1) KR100891325B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009079151A1 (en) * 2007-12-17 2009-06-25 Microsoft Corporation Migration of computer secrets

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510859B2 (en) 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
JP4994903B2 (ja) * 2007-03-16 2012-08-08 株式会社リコー 暗号鍵復旧方法、情報処理装置及び暗号鍵復旧プログラム
US20100251381A1 (en) * 2007-08-17 2010-09-30 Seong-Oun Hwang System renewability message providing method and system renewability message using method and apparatus thereof
WO2009025467A2 (en) * 2007-08-17 2009-02-26 Electronics And Telecommunications Research Institute Contents protection providing method and protected contents consuming method and apparatus thereof
KR20090029634A (ko) * 2007-09-18 2009-03-23 한국전자통신연구원 콘텐츠 보호 제공방법과 보호된 콘텐츠 소비방법 및 그 장치
US8131932B2 (en) * 2009-03-19 2012-03-06 Oracle America, Inc. Method and system for fast retrieval of random universally unique identifiers through caching and parallel regeneration
US8844026B2 (en) 2012-06-01 2014-09-23 Blackberry Limited System and method for controlling access to secure resources
CN103716151B (zh) * 2012-10-09 2017-11-28 西瑞克斯通信技术股份有限公司 一种密钥表项智能分配方法及装置
US9438421B1 (en) * 2014-06-27 2016-09-06 Amazon Technologies, Inc. Supporting a fixed transaction rate with a variably-backed logical cryptographic key
JP6460765B2 (ja) * 2014-12-09 2019-01-30 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、プログラム
US10484352B2 (en) 2017-03-31 2019-11-19 Microsoft Technology Licensing, Llc Data operations using a proxy encryption key
WO2019026372A1 (ja) * 2017-08-04 2019-02-07 ソニー株式会社 情報処理装置、情報処理方法およびプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281010B2 (en) * 2000-11-15 2007-10-09 Lenovo (Singapore) Pte. Ltd. Trusted computing platform with dual key trees to support multiple public/private key systems
US7242768B2 (en) 2002-01-14 2007-07-10 Lenovo (Singapore) Pte. Ltd. Super secure migratable keys in TCPA
DE10345385B4 (de) * 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
US7590845B2 (en) 2003-12-22 2009-09-15 Lenovo Singapore Pte. Ltd. Key cache management through multiple localities
US8271783B2 (en) * 2004-04-19 2012-09-18 Hewlett-Packard Development Company, L.P. Subordinate trusted platform module
JP4562464B2 (ja) 2004-09-07 2010-10-13 富士通株式会社 情報処理装置
US9268971B2 (en) * 2005-09-21 2016-02-23 Broadcom Corporation Secure processor supporting multiple security functions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009079151A1 (en) * 2007-12-17 2009-06-25 Microsoft Corporation Migration of computer secrets
US8208637B2 (en) 2007-12-17 2012-06-26 Microsoft Corporation Migration of computer secrets

Also Published As

Publication number Publication date
US20080069361A1 (en) 2008-03-20
KR100891325B1 (ko) 2009-03-31
US7978856B2 (en) 2011-07-12

Similar Documents

Publication Publication Date Title
KR100891325B1 (ko) TSS(TPM Software Stack)에서의 키캐쉬(key cache) 관리 방법
US8260811B2 (en) Access controller that controls access to files by using access control list
JP6678548B2 (ja) 中継装置、中継方法およびプログラム
TWI492077B (zh) 檔案系統的檢查點
CN1809813B (zh) 利用渴望压缩、故障保险提取和重新启动时压缩扫描来存储固件变量的方法
AU2002305701B2 (en) Storage access keys
US11301427B2 (en) Inline and post-process data deduplication for a file system
JP6087928B2 (ja) 循環グラフにおけるオブジェクト寿命の管理
US10402378B2 (en) Method and system for executing an executable file
KR20170129702A (ko) 스토리지 디바이스의 논리적 어드레스들에 대한 데이터의 이전 버전들 관리
US20200334028A1 (en) System and Method for Dynamic Data Deduplication for Firmware Updates
US20130179649A1 (en) Offload Read and Write Offload Provider
US20080271015A1 (en) Virtual machine control
CN108733311B (zh) 用于管理存储系统的方法和设备
EP3283965B1 (en) Reducing memory commit charge when compressing memory
AU2002305701A1 (en) Storage access keys
US8275951B2 (en) Local bitmaps for an array of redundant storage devices
WO2023065823A1 (zh) 一种软件开发工具包修复方法、终端、服务器及设备
JP2016503214A (ja) 動的ファームウェア更新
WO2018144142A1 (en) Separate encryption for a solid-state drive
US10031668B2 (en) Determining status of a host operation without accessing the host in a shared storage environment
US11422715B1 (en) Direct read in clustered file systems
US12061574B2 (en) Updating edge nodes in distributed computing environments using partitions
KR20070103590A (ko) Tss에서의 안전한 오또리제이션 세션 관리 방법
US20210133354A1 (en) System and method for efficient user-level based deletions of backup data

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
FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180228

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190228

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20200228

Year of fee payment: 12