KR100679498B1 - 오브젝트와 자원에 대한 액세스 자격 부여 방법 - Google Patents

오브젝트와 자원에 대한 액세스 자격 부여 방법 Download PDF

Info

Publication number
KR100679498B1
KR100679498B1 KR1020027002750A KR20027002750A KR100679498B1 KR 100679498 B1 KR100679498 B1 KR 100679498B1 KR 1020027002750 A KR1020027002750 A KR 1020027002750A KR 20027002750 A KR20027002750 A KR 20027002750A KR 100679498 B1 KR100679498 B1 KR 100679498B1
Authority
KR
South Korea
Prior art keywords
functional unit
data
rights
functional
information
Prior art date
Application number
KR1020027002750A
Other languages
English (en)
Other versions
KR20020028230A (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 KR20020028230A publication Critical patent/KR20020028230A/ko
Application granted granted Critical
Publication of KR100679498B1 publication Critical patent/KR100679498B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4367Establishing a secure communication between the client and a peripheral device or smart card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 보안 액세스 시스템 내의 정보에 보안을 제공하는 방법에 관한 것이다. 일 실시예에서 본 발명에 의한 방법은 기능 유닛에 대하여 허가를 부여하기 위하여 조건부 액세스 시스템에서 정보에 보안을 제공한다. 기능 유닛은 이 기능 유닛과 관련된 필요 요건들을 가지고 있다. 전송관은 컨텐츠 수신기를 액세스할 수 있는 자격이 있다. 기능 유닛과 관련된 권리들이 수신된다. 권리는 필요 요건과 연관되어 있다. 권리는 비교 사항과 비교하여 검사된다.
조건부 액세스 시스템, 허가, 인증, 자격 부여, 컨텐츠 제공자

Description

오브젝트와 자원에 대한 액세스 자격 부여 방법 {ENTITLEMENTS OF OBJECTS AND RESOURCES}
본 발명은 일반적으로 보안 액세스 시스템에 관한 것으로서, 보다 구체적으로는 보안 액세스 시스템 내에서 정보를 보안하는 방법에 관한 것이다.
케이블 텔레비젼(cable televison, CA) 제공자는 조건부 액세스(conditional access, CA) 시스템에 의하여 가입자들에게 비디오 스트림을 분배한다. CA 시스템은 비디오 스트림을 케이블 TV 제공자의 헤드엔드로부터 가입자와 연관된 셋톱 박스에 분배한다. 헤드엔드는 비디오 스트림을 수신하는 하드웨어를 구비하고 있고, 이 비디오 스트림을 CA 시스템 내의 셋톱 박스로 분배한다. 선택 셋톱 박스들은 케이블 TV 제공자가 셋톱 박스로 전송한 자격 부여 정보에 따라 특정 비디오 스트림을 디코드하도록 허용된다.
비디오 프로그램은 디지털 형태 또는 아날로그 형태로 셋톱 박스에 분배된다. 대부분의 케이블 텔레비젼 시스템에서는 약 120 개의 아날로그 캐리어 채널이 있다. 캐리어 채널들은 아날로그 비디오 스트림을 운반하거나, 다중 디지털 비디오 스트림을 운반한다. 아날로그 비디오 입력은 캐리어 상에서 변조되며, 하나의 아날로그 비디오 입력을 위하여 그 캐리어 채널 전체를 차지한다. 대역폭을 최대 화하기 위하여, 통계적으로 약 8 개 내지 14 개의 디지털 비디오 스트림이 동일한 캐리어 채널에서 다중화된다. 개별적인 디지털 비디오 스트림은 패킷 식별자(packet identification, PID) 정보에 의하여 식별되므로, 개개의 컨텐츠 스트림이 그 고유의 PID 정보에 따라 제거될 수 있다.
비디오 스트림은 모든 셋톱 박스로 브로드캐스트되지만, 이 셋톱 박스들 중 일부만이 특정 비디오 스트림을 액세스할 수 있다. 예를 들어, 유료 권투 시합 시청(a pay per view boxing match)을 주문한 사람들만이 이를 볼 수 있도록 허용된다. 그러나, 모든 셋톱 박스가 암호화된 형태로 이 권투 시합을 수신하게 된다. 일단 사용자가 유료 시청 프로그램을 주문한다면, 자격 부여 메시지가 모든 셋톱 박스로 암호화된 형태로 브로드캐스트된다. 자격 부여 메시지를 특정한 셋톱 박스에 보내려고 의도한 경우, 이 특정한 셋톱 박스만이 이를 해독할 수 있다. 해독된 자격 부여 메시지 내에는 유료 시청 프로그램을 해독할 수 있는 키가 들어 있다. 셋톱 박스는 유료 시청 프로그램을 아날로그 비디오 스트림 또는 디지털 비디오 스트림으로 실시간으로 수신하면서, 이 키를 가지고 이 프로그램을 해독한다. 따라서, 다운로드되는 동안 전체 비디오 스트림에 대해서만 액세스할 자격이 주어진다.
조건부 액세스를 제공하지 않는 어떤 시스템은 개인적 계산(personal computing)을 TV와 결합하여, 프로그램을 디스플레이한다. 예를 들어, WebTV(등록상표)와 같은 제품은 웹 브라우징과 이메일 프로그램을 TV와 통합한다. 이러한 시스템에서 개인용 컴퓨터(PC)는 TV 근처에 위치한다. PC는 웹 브라우징을 위한 컨텐츠와 이메일 프로그램을 제공하는 인터넷 서비스 제공자(Internet Service Provider, ISP)에 연결된다. 이러한 시스템은 조건부 액세스 시스템에서 요구되는 것처럼 자격을 검사하는 일 없이 컨텐츠를 제공한다.
본 발명은 보안 액세스 시스템에서 정보에 대한 보안을 제공하는 방법에 관한 것이다. 일 실시예에서 기능 유닛에 대하여 허가를 주기 위하여 조건부 액세스 시스템에서의 정보에 대한 보안을 제공한다. 기능 유닛은 이 기능 유닛에 관련된 필요 요건들(requirements)을 가지고 있다. 전선관(transmission conduit)은 컨텐츠 수신기에 대하여 액세스할 자격이 있다. 이 기능 유닛과 관련된 권리들이 수신된다. 권리는 필요 요건(requirement)과 상호 연관되어 있다. 권리를 필요 요건과 비교하여 검사한 다음에 기능 유닛에 허가를 부여한다.
도면과 청구항들을 포함하여 명세서의 나머지 부분을 참조하면, 본 발명의 다른 특징 및 장점을 인식할 수 있을 것이다. 본 발명의 다양한 실시예들의 구성 및 동작 뿐 아니라 다른 특징 및 장점들은 도면을 참조하여 이하에서 상세히 설명할 것이다. 도면에서 동일한 참조 번호는 동일한 구성 요소 또는 기능적으로 유사한 구성 요소를 나타낸다.
도 1은 컨텐츠 전달 시스템의 일 실시예를 도시하는 블록도.
도 2는 셋톱 박스가 그 환경에 인터페이스되어 있는 실시예를 도시하는 블록도.
도 3은 오브젝트 메시지의 실시예를 도시하는 블록도.
도 4는 "권리" 메시지의 실시예를 도시하는 블록도.
도 5는 "필요 요건" 메시지의 실시예를 도시하는 블록도.
도 6은 셋톱 박스 내의 상이한 오브젝트들 간의 관계를 도시하는 블록도.
도 7은 기능 유닛들 간의 상호 작용에 대한 일 실시예를 나타내는 블록도.
도 8은 기능 유닛들을 분배하기 위한 과정의 일 실시예를 나타내는 흐름도.
도 9는 기능 유닛들을 수신하여 이들에게 허가를 부여하는 과정의 일 실시예를 나타내는 흐름도.
도 10은 소프트웨어 오브젝트를 인증하고 허가를 부여하는 과정의 일 실시예를 나타내는 흐름도.
도 11은 실행중인 소프트웨어 오브젝트를 인증하고 허가를 부여하는 과정의 일 실시예를 나타내는 흐름도.
도 12는 소프트웨어 오브젝트를 인증하고 허가를 부여하는 과정의 다른 실시예를 나타내는 흐름도.
본 발명은 소프트웨어와 같은 기능 유닛들이 텔레비젼 셋톱 박스 내에서 사용되도록 허가되는 것을 보여준다. 오브젝트와 자원은 기능 유닛의 두 가지 예이다. 기능 유닛이 셋톱 박스 내에 인스톨된 이후에 검사점(checkpoint)을 만날 때 허가 및/또는 인증 검사가 행해진다. 검사점은 예를 들면, 셋톱 박스 내의 기능 유닛들이 서로 상호 작용할 때 트리거된다.
도면에서 유사한 구성 요소 및/또는 특징들은 동일한 참조 부호를 가질 수 있다. 또한, 동일한 형태의 여러가지 구성 요소는 참조 부호 뒤에 줄(dash)을 긋고 유사한 구성 요소 간을 구별시키는 두 번째 부호를 병기함으로써 구별될 수 있다. 만일 첫 번째 참조 부호가 명세서에서 사용된다면, 두 번째 참조 부호와 관계없이 첫 번째 참조 부호가 동일한 유사한 구성 요소에 대해서는 어느 것에나 상세한 설명이 적용될 수 있다.
도 1을 참조하면, 컨텐츠 전달 시스템의 일 실시예의 블록도가 도시되어 있다. 전달 시스템(100)은 특정 조건이 만족되느냐에 따라 다수의 사용자에게 컨텐츠를 선택적으로 제공한다. 이 시스템(100)에는 헤드엔드(104), 다수의 셋톱 박스(108), 논리 프로그래밍 수신기(112), 위성 접시(116), 및 인터넷(120)이 포함되어 있다.
헤드엔드(104)는 컨텐츠를 수신하여 이 컨텐츠를 사용자에게 분배한다. 컨텐츠는 비디오, 오디오, 인터랙티브 비디오, 소프트웨어, 펌웨어, 및/또는 데이터를 포함할 수 있다. 이러한 컨텐츠는 위성 접시(116), 논리 프로그래밍 수신기(112), 마이크로웨이브 수신기, 패킷 스위치 네트워크, 인터넷(120) 등을 포함하여 다양한 출처로부터 수신된다. 각 셋톱 박스(108)는 자격 정보를 개별적인 셋톱 박스(108)로 전송하도록 하게 할 수 있는 고유한 주소를 가지고 있다. 이러한 방식에 의하여, 하나의 셋톱 박스(108-1)가 특정 컨텐츠를 액세스하도록 자격이 주어지는 반면, 다른 셋톱 박스(108-2)는 이러한 자격이 없도록 할 수 있다. 헤드엔드(104) 내의 장치가 셋톱 박스들(108) 중 특정 컨텐츠를 액세스할 자격이 주어진 셋톱 박스의 집합을 조정한다.
컨텐츠는 일반적으로 다중 컨텐츠 스트림을 포함하는 아날로그 캐리어 채널을 통하여 디지털 형태로 분배된다. 모든 켠텐츠 스트림은 하나의 디지털 스트림으로 다중화되고, 이 디지털 스트림은 아날로그 캐리어 채널에서 변조된다. 개별적인 컨텐츠 스트림은 패킷 식별자(PID) 정보에 의하여 추적되므로, 그 고유한 PID 정보에 따라 개별적인 컨텐츠 스트림이 제거될 수 있다. 시스템(100)의 이 실시예에서 약 120 개의 아날로그 캐리어 채널이 있다. 다른 실시예들은 위성 접시, 마이크로웨이브 안테나, RF 전송기, 패킷 스위치 네트워크, 셀룰러 데이터 모뎀, 캐리어 전류, 전화선, 및/또는 인터넷을 포함하는 전송 메카니즘을 사용하여 컨텐츠를 분배할 수 있다.
다음으로 도 2를 참조하면, 디스플레이 시스템(200)의 일 실시예의 블록 다이어그램이 도시되어 있다. 이 실시예는 다양한 보안 메카니즘에 의하여 오브젝트 및 자원에 대한 다중 레벨의 보안을 제공한다. 디스플레이 시스템(200)에는 셋톱 박스(108), 네트워크(208), 프린터(212), TV 디스플레이(216), 무선 입력 장치(218)가 포함되어 있다. 이러한 것들은 사용자가 컨텐츠 제공자에 의하여 조건부로 분배되는 컨텐츠를 즐길 수 있도록 도와준다. 컨텐츠는 비디오, 오디오, 소프트웨어, 펌웨어, 인터랙티브 TV, 데이터, 텍스트, 및/또는 다른 정보를 포함할 수 있다. 이 실시예에서, 컨텐츠 제공자는 케이블 TV 제공자이거나 다중 시스템 운영자(multiple system operator, MSO)이다.
네트워크(208)는 셋톱 박스(108)와 케이블 TV 제공자의 헤드엔드(104) 사이에 정보가 이동할 수 있도록 하는 통로로서의 역할을 한다. 이 실시예에서 네트워 크는 120 개의 아날로그 채널과 양방향 제어 데이터 채널을 가지고 있다. 일반적으로 아날로그 채널은 컨텐츠를 운반하고, 제어 데이터 채널은 제어 및 자격 부여 정보를 운반한다. 각 아날로그 캐리어 채널은 하나의 데이터 스트림으로 다중화되는 다수의 디지털 채널을 가지고 있고, 디지털 채널은 패킷 식별자(PID)에 의해 구별된다. 양방향 제어 채널은 하나의 주파수로 데이터를 셋톱 박스(108)로 브로드캐스트하고 다른 주파수로 셋톱 박스(108)로부터 데이터를 수신하는 대역외 채널이다. 널리 알려진 스토어-앤-포워드(store and forward) 기술을 사용하여 피크 사용 기간 동안에는 과부하를 즐이기 위하여 반환 데이터가 큐에 대기할 수 있다. 다른 실시예에서는 제어 정보, 및 패킷 스위치 데이터의 형태로 된 컨텐츠 정보 모두를 위하여 케이블 모뎀, 디지털 가입자 라인(digital subscriber line, DSL), 셀룰러 데이터, 위성 링크, 마이크로웨이브 링크, 또는 캐리어 전류 기술을 사용할 수 있다.
프린터(212)는 사용자가 구입하여 디스플레이 시스템(200)에 부가할 수 있는 선택적인 사양이다. 개인적인 컴퓨터 업무를 위하여 셋톱 박스(108)를 사용할 때, 프린터가 있으면, 이메일, 웹 페이지, 요금 청구 정보 등과 같은 데이터를 인쇄할 수 있다. 이하에서 설명되는 바와 같이, 프린터와 같은 주변 장치를 사용할 수 있는 자격은 허가 검사(authorization check)에 의하여 제어된다. 이러한 제어 특성을 사용하면, 셋톱 박스(108)에 대해 프린터(212)를 사용할 수 있도록 적당한 허가가 내려지지 않는 한, 이 셋톱 박스(108)와 호환가능한 프린터(212)는 작동하지 않는다.
TV 디스플레이(216)는 사용자에게 컨텐츠에 대응하는 오디오, 텍스트, 및/또는 비디오를 제공한다. 디스플레이(216)는 일반적으로 채널 3, 채널 4, 또는 복합 채널에 대응하는 캐리어 상에서 변조되는 아날로그 비디오 신호를 수신한다. 셋톱 박스(108)는 예를 들어 적당한 채널로 변조되는 NTSC 신호를 생성한다. 다른 실시예에서는 텔레비젼 디스플레이(216)를 대신하여 비디오 모니터 또는 디지털 디스플레이를 사용할 수 있다. 디지털 디스플레이를 사용함으로써, 셋톱 박스(108)가 아날로그 변환을 해야 할 필요성을 없애주는데, 이것은 LCD(liquid crystal displays)와 같은 디지털 디스플레이가 디스플레이되는 화상을 형성하는데 디지털 정보를 사용하기 때문이다.
무선 입력 장치(218)는 사용자와 셋톱 박스(108) 간의 상호 작용을 가능하게 한다. 이 장치(218)는 리모콘, 마우스, 키보드, 게임 컨트롤러, 펜 태블릿, 또는 다른 입력 메카니즘일 수 있다. 입력 장치(218) 상의 적외선 트랜스시버가 셋톱 박스(108) 상의 유사한 트랜스시버와 서로 통신함으로써, 무선 통신을 가능하게 한다. 다른 실시예에서는 적외선 트랜스시버 대신에 RF 링크 또는 유선 링크를 사용할 수 있다.
셋톱 박스(108)는 오브젝트와 자원에 대하여 인증 및 허가를 행하는 구성 요소 부분을 가지고 있다. 오브젝트란 소프트웨어, 드라이버, 펌웨어, 데이터, 비디오, 또는 오디오와 같은 디지털 정보의 임의의 조합이다. 자원이란 다른 오브젝트 또는 물리적 장치와 같이, 오브젝트가 작동하는데 필요로 하는 임의의 것이다. 셋톱 박스(108)에는 제어기(220), 메모리(228), 프린터 포트(232), 네트워크 포트(236), 액세스 제어 프로세서(240), 디스플레이 인터페이스(244), 및 적외선(IR) 포트가 포함되어 있다. 이러한 블록들은 버스(230)를 통하여 서로 통신하는데, 각 블록은 버스(230) 상에서 고유하게 식별가능하도록 서로 다른 주소를 가지고 있다. 일반적으로 셋톱 박스(108)는 별개의 장치이지만, TV 디스플레이(216), 컴퓨터, 정보 기기(information appliance), 또는 개인용 비디오 녹화기(personal video recorder, PVR)와 통합될 수도 있다.
제어기(220)는 신뢰성 있는 즉, 보안이 제공된 운영 체제를 이용하여 셋톱 박스(108)의 동작을 관리한다. 사용자를 위하여 TV 채널을 스위칭하거나 사용자에게 메뉴를 제시하는 기능 뿐만 이니라, 디지털 오브젝트 해독과 압축 해제와 같은 기능이 제어기(220)에서 수행된다. 제어기에는 프로세서, 암호화 엔진, 로컬 메모리, 및 컴퓨터 시스템에서 일반적으로 존재하는 부품들이 포함되어 있다.
다른 실시예에서 또한 제어기(220)는 키 보호 또는 암호 처리를 위한 목적으로 보조적인 보안 프로세서를 포함할 수 있다. 이것은 고도의 보안이 요구되는 시스템에서 적합하다.
셋톱 박스(108)는 메모리 블록(228)을 포함한다. 이 메모리(228)는 고체 상태 메모리로서, RAM, ROM, 플래시, 및 다른 유형의 휘발성 메모리와 비휘발성 메모리를 포함할 수 있다. 오브젝트와 자원들은 나중에 실행시키기 위해 메모리에 저장된다. 실행 과정 동안에 프로그램이 메모리(228)에 로드되어, 메모리(228) 내에서 실행되며, 또한 스크래치패드 공간으로 메모리(228)를 사용하기도 한다. 키, 일련 번호, 및 허가는 비휘발성 플래시 메모리에 저장될 수 있다.
이 실시예는 선택 사양인 프린터(212)에 인터페이스하기 위한 프린터 포트(232)를 포함한다. 허가가 없다면, 프린터 포트(232) 자원을 프로그램이 이용할 수 없다. 이하에서 설명되는 바와 같이, 각 오브젝트는 프린터 포트(232)와 같은 자원을 사용할 수 있는 허가를 얻어야 한다. 데이터는 무선 전송 메카니즘 또는 유선 전송 메카니즘에 의하여 프린터 포트(232)로부터 프린터(212)로 직렬 또는 병렬로 전송된다.
일반적으로 말해서, 검사점(checkpoint)이란 기능 유닛의 인증 및/또는 허가가 확정되는 시점 또는 처리 단계를 말한다. 프린트가 요구될 때, 한 검사점과 마주친다. 이 검사점은 프린트를 요구하는 오브젝트에 대하여 허가를 내리고 인증을 한다. 검사점은 인증 및/또는 허가가 다른 오브젝트상에서 실행되는, 한 오브젝트 내의 장소이다(예를 들어, 운영 체제가 실행 중인 응용 프로그램의 인증 및 허가를 검사한다). 이상적으로는 오브젝트의 목적이 분명해질 때, 검사점이 수행된다. 프린터 포트(232)의 경우에, 프린트 포트가 무언가를 인쇄하는데 사용될 때 그 목적이 분명해진다. 따라서, 무언가가 인쇄될 때, 검사점이 트리거되어, 프린터 포트(232) 자원을 사용하는 오브젝트를 검사한다. 일반적으로 프린트를 위한 검사점은 운영 체제 내에 있다.
네트워크 포트(236)는 셋톱 박스(108)와 헤드엔드(104) 사이의 양방향 통신을 가능하게 한다. 네트워크 포트(236)에는 아날로그 캐리어 채널에 동조(tune)하고 MPEG 데이터 스트림을 복조하는 튜너 및 복조기가 포함되어 있어, 컨텐츠의 단방향 전달을 가능하게 한다. 또한, 네트워크 포트(236)에는 제어 데이터 정보 및/ 또는 컨텐츠의 양방향 통신을 가능하게 하는 제어 데이터 트랜스시버 또는 케이블 모뎀이 포함되어 있다. 제어 데이터 경로를 헤드엔드(104)로 로드하는 것을 보다 더 균등하게 분배하기 위하여 스토어-앤-포워드 방식이 사용될 수 있다.
디지털 비디오 신호를 TV 디스플레이(216)와 호환가능한 아날로그 신호상에서 변조하는 것은 디스플레이 인터페이스(244)에 의해 수행된다. 전술한 바와 같이, TV 디스플레이(216)는 일반적으로 채널 3, 채널 4 또는 복합 채널상에서 변조된 신호를 받아들인다. LCD 디스플레이와 같이 디지털 입력을 받아들이는 디스플레이의 경우, 디스플레이 인터페이스(244)가 디지털 입력에 의해 요구되는 포맷팅(formatting)을 수행한다.
IR 포트(248)는 무선 입력 장치(218)와 양방향으로 통신한다. IR 포트(248)에는 입력 장치(218)와의 무선 통신 경로를 제공하는 IR 트랜스시버가 포함된다. IR 포트(248)에는 다른 전자 부품들이 트랜스시버에 의해 수신된 아날로그 신호를 대응하는 디지털 신호로 변환하고, 대응하는 디지털 신호로부터 트랜스시버로 전송된 아날로그 신호를 변환한다. 제어기(220)는 디지털 신호를 처리하여, 사용자가 셋톱 박스(108) 내의 기능의 일부를 제어할 수 있게 한다.
액세스 제어 프로세서(access control processor, ACP)(240)는 셋톱 박스(108) 내의 보안 기능을 조정한다. 예를 들어, ACP(240)는 제어기(220)의 지시하에 또는 제어기(220)와 독립적으로 인증 및 허가를 수행하는데, 이하에서 명백히 설명한다. 이러한 작업을 수행하기 위하여, ACP(240)는 제어기(220)와 독립적으로 소프트웨어를 실행하기 위하여 함께 동작하는 프로세서, RAM, 및 ROM을 포함 하고 있다. ACP(240)는 또한 컨텐츠를 해독하고 서명을 계산하기 위한 해독 엔진과 해시 함수를 포함한다. 검사점은 ACP(240)를 트리거하는 동작중인 소프트웨어에 내장되어, 보안 검사를 수행한다. 이 실시예에서, ACP(240)는 하드웨어로 구현되지만, 다른 실시예에서는 ACP(240)의 기능을 소프트웨어로 구현할 수 있다.
ACP(240)는 또한 운영 체제(operating system, OS)를 새도우(shadow)하여 OS가 제대로 기능을 하도록 보장한다. 오브젝트의 개시를 지켜봄으로써, ACP(240)는 어떤 애플리케이션 오브젝트가 실행 중인지 모니터할 수 있다. 만일 필요하다면, 검사점이 에러를 발견하거나 허가의 기간이 만료되는 경우에 ACP(240)가 실행중인 애플리케이션을 종료시킬 수 있다. 또한, ACP(240)는 메모리(228)를 모니터하여, 메모리(228)내에 허가되지 않는 애플리케이션이 존재하는지 검출할 수 있다. 또한, 스크래치패드 메모리 크기를 모니터함으로써, 스크래치패드 메모리 내에 숨어 있는 애플리케이션을 검출할 수 있다. 또한, ACP(240)는 메모리 내의 오브젝트에 대한 검사점을 무작위로 실행하여 이들의 허가 및/또는 인증을 확인할 수 있다. ACP(240)가 만나는 문제점들은 OS 또는 헤드엔드(104) 중 어느 하나에 보고된다. 이러한 방식으로 ACP(240)는 셋톱 박스(108) 내의 소프트웨어 보안 경비 보트(bot)로서 작용하여, 비정상적인 행동을 검출하고 보고한다.
도 3을 참조하면, 오브젝트 메시지(300)의 실시예가 블록도의 형태로 도시되어 있다. 오브젝트 메시지(300)는 기능 유닛을 네트워크(208)로부터 셋톱 박스(108)로 전달하여, 정보는 필드된(fielded) 이후에 셋톱 박스(108)로 보내질 수 있다. 오브젝트 메시지(300)는 오브젝트 헤더(304), 오브젝트(308), 및 필요 요건(requirement, 312)으로 구성된다. 이 실시예는 오브젝트 메시지(300) 내에 필요 요건 정보를 포함하고 있지만, 다른 실시예에서는 별개의 "필요 요건" 메시지를 사용하여 이 정보를 전달할 수 있다. 도 3에 도시되지는 않았지만, 오브젝트 메시지(300)가 헤드엔드(104)로부터 셋톱 박스(108)로 에러 없이 전송된다는 것을 확인하기 위하여 체크섬 또는 디지털 서명이 사용된다.
오브젝트 헤더(304)는 오브젝트 메시지(300)에 대한 속성(attribute)을 포함한다. 오브젝트 헤더(304)에는 헤더 길이, 오브젝트 길이, 기능 유닛 식별자, 소프트웨어 버전, 및 도메인 식별자가 포함되어 있다. 헤더 길이와 오브젝트 길이는 각각 오브젝트 헤더(304)의 길이와 오브젝트(308)의 길이를 나타낸다. 다른 이유들 중에서도 인증 목적을 위하여 기능 유닛 식별자는 "권리" 메시지를 오브젝트 메시지(300)의 속성으로 할 수 있게 하는 고유한 코드를 제공한다. 소프트웨어 버전은 오브젝트의 수정 횟수를 나타낸다. 서로 다른 케이블 TV 제공자들에게는 도메인 식별자가 제공되어, 오브젝트(308)를 수신할 수 있는 모든 셋톱 박스(108)가 이들 도메인에 관련된 오브젝트(308)를 선별할 수 있다.
오브젝트(308)는 시스템(100)이 셋톱 박스(108)로 전달하도록 설계된 컨텐츠를 포함한다. 오브젝트(308)를 다운로드하자 마자, 셋톱 박스(108)는 오브젝트 메시지(300)의 출처, 및 수신 셋톱 박스(108)가 오브젝트(308)를 이용할 수 있는지를 확인하도록 인증되고 허가가 부여된다. 여러 유형의 컨텐츠 또는 정보, 예를 들어, 실행가능한 프로그램, 펌웨어 업그레이드, 실행 시간 프로그램(run-time program, 예를 들어, Java(등록상표) 또는 ActiveX(등록상표)), 프로그래밍 스케 쥴, 요금 청구 정보, 비디오, 오디오, 및/또는 데이터가 오브젝트 내에 내장될 수 있다. 오브젝트(308)는 인증 및 허가 직후에, 또는 나중에 사용될 수 있다. 또한, 특정 시간 이후에 허가가 만료되도록 프로그램될 수 있고, 오브젝트(308)가 사용될 때 허가가 주기적으로 재검사되도록 프로그램될 수 있다.
필요 요건의 데이터 구조(312)로 인하여 컨텐츠 제공자는 모든 셋톱 박스(108) 중 미리 정해진 일부 집합만이 오브젝트(308)를 액세스하도록 제한할 수 있다. 각 기능 유닛 식별자는 하나 이상의 권리에 매핑된다. 권리는 "권리" 메시지의 형태로 전송되어, 필요 요건의 데이터 구조(312) 내의 이러한 권리에 매핑되는 기능 유닛이 동작할 수 있도록 한다.
도 4를 참조하면, "권리" 메시지(400)의 실시예가 블록도의 형태로 도시되어 있다. 권리 메시지(400)는 기능 유닛을 사용할 수 있는 권리를 포함하고 있다. 이 기능 유닛은 오브젝트일 수도 있고, 자원일 수도 있다. 일반적으로, 각 셋톱 박스(108) 당 하나의 권리 메시지(400)가 있는데, 이 권리 메시지는 모든 기능 유닛에 대한 임의의 권리를 나타낸다. 오브젝트 및 자원과 관련된 필요 요건을 권리와 비교하여 검사하고, 다른 오브젝트 또는 자원과의 상호 작용이 허가되는지 여부를 결정한다. 권리 메시지(400)는 새로운 권리를 셋톱 박스(108)와 관련된 기능 유닛으로 원격으로 부가할 수 있도록 한다. 도시되지는 않았지만, 권리 메시지(400)는 일반적으로 디지털 서명을 포함함으로써, 전송 과정 동안에 권리 메시지(400)의 무결성(integrity)을 확인한다. 어떤 실시예에서는 디지털 서명 대신에 체크섬이 사용될 수 있다.
권리 헤더(404)는 권리 메시지(400)에 대한 속성을 포함한다. 권리 헤더(404)에는 헤더 길이, 권리 데이터 구조 길이, 기능 유닛 식별자, 및 도메인 식별자가 포함되어 있다. 헤더 길이와 권리 데이터 구조 길이는 각각 권리 헤더(404)의 길이와 권리 데이터 구조(408)의 길이를 나타낸다. 인증 목적을 위하여, 기능 유닛 식별자는 고유한 코드를 제공하여, 권리 메시지(400)를 특정한 기능 유닛의 속성으로 할 수 있게 한다.
권리는 권리 데이터 구조(408) 내의 정보를 사용하여 기능 유닛에 전달된다. 주어진 기능 유닛은 여러 개의 다른 기능 유닛을 사용할 권리를 가질 수 있다. 이러한 권리는 권리 데이터 구조(408)에 포함되어 있다. 권리 헤더(404) 내의 기능 유닛 식별자는 권리를 특정한 기능 유닛의 속성으로 하는데 사용된다. 기능 유닛은 이미 셋톱 박스(108) 내에 존재할 수도 있고, 나중에 다운로드될 수도 있다.
다음으로 도 5를 참조하면, "필요 요건" 메시지(500)의 일 실시예가 블록도의 형태로 도시되어 있다. 필요 요건 메시지(500)는 이미 셋톱 박스(108) 내에 존재하는 자원을 위해 사용된다. 필요 요건 메시지(500)에는 필요 요건 헤더(504)와 필요 요건 데이터 구조(508)가 포함되어 있다. 필요 요건 메시지(500)는 이미 셋톱 박스(108) 내에 위치하기 때문에 내장된 오브젝트가 존재하지 않는다는 점을 제외하면, 오브젝트 메시지(300)와 유사하다. 도시되지는 않았지만, 일반적으로 필요 요건 메시지(500)는 전송 과정 동안 메시지(500)의 무결성을 확인하기 위한 디지털 서명을 포함한다.
필요 요건 헤더(504)는 필요 요건 메시지(500)에 대한 속성을 포함한다. 필 요 요건 헤더(304)에는 헤더 길이, 필요 요건 데이터 구조 길이, 및 도메인 식별자가 포함되어 있다. 헤더 길이 및 필요 요건 데이터 구조 길이는 각각 필요 요건 헤더(504)의 길이 및 필요 요건 데이터 구조(308)의 길이를 나타낸다. 상이한 케이블 TV 제공자에게는 도메인 식별자가 지정되어, 오브젝트(308)를 수신할 수 있는 모든 셋톱 박스(108)가 이 도메인과 관련된 오브젝트(308)를 선별할 수 있다.
필요 요건 데이터 구조(508)로 인하여, 컨텐츠 제공자는 모든 셋톱 박스(108) 중 미리 정해진 일부 집합만이 자원을 액세스하도록 제한할 수 있다. 각 기능 유닛 식별자는 필요 요건 데이터 구조(508)에 의하여 하나 이상의 필요 요건에 매핑된다. 권리는 권리 메시지(400) 내에서 전송되어, 권리 메시지(400) 내의 권리가 기능 유닛에 대한 필요 요건 데이터 구조(508) 내의 필요 요건을 만족시키는 한, 계속 이 기능 유닛이 작동되도록 할 수 있다.
오브젝트 메시지(300)는 관련된 필요 요건 메시지(500)와 고유하게 연결되는데, 이것은 두 메시지(300, 500)에 걸친 하나의 서명에 의하여 가능하다. 이 공통된 서명은 별개로 전송되지만, 전송 과정 동안에 한 쌍의 메시지(300, 500)가 변경되지 않도록 보장한다.
도 6을 참조하면 셋톱 박스(108)의 기능 유닛의 일부가 도시되어 있다. 도 6의 하단부 쪽의 기능 유닛은 도 6의 상단부 주위의 기능 유닛보다 상위 계층에 있다. 즉, 도 6의 상단부 쪽의 기능 유닛은 도 6의 하단부에 있는 기능 유닛보다 하위 계층에 있다. 상위 기능 유닛은 하위 기능 유닛에 검사점을 부과할 책임이 있다. 예를 들어, 하드웨어(604)는 BIOS(608), OS(612) 등 하위 계층으로 검사점 을 부과한다. BIOS(608)는 OS(612)에 검사점을 부과하지만, 하드웨어(604)에는 검사점을 부과하지 않는다. 동일한 배치 계층에 있는 기능 유닛은 동일한 계층에 있는 다른 기능 유닛과 상호작용할 때 이 기능 유닛에 검사점을 부과할 수 있다. 예를 들어, 애플리케이션(616)은 드라이버(618)에 대하여 검사점의 실행을 요구할 수 있다.
상위 기능 유닛은 ACP(240)와 함께 검사점의 실행을 개시하도록 설계되어 있고, 하위 오브젝트들은 이들에게 검사점이 부과되도록 설계되어 있다. 예를 들어, BIOS(608)는 부팅 과정 동안에, 실행 동안에, 및/또는 실행되는 동안 주기적으로 OS(612)에 대하여 검사점의 실행을 요구한다. 드라이버 오브젝트(618)는 인스톨되거나 정상적인 동작 과정 동안에 사용될 때, 검사점을 만날 가능성이 크다. 데이터 파일 오브젝트(622)는 파일 내의 데이터가 액세스될 때마다 검사점을 만날 가능성이 크다. HTML 오브젝트(628)는 브라우저 애플리케이션(616)에 의해 해석(interpret)될 때마다 검사점의 일부로서 검사된다.
도 7을 참조하면, 기능 유닛들 간의 상호 작용이 블록도의 형태로 도시되어 있다. 셋톱 박스(108)와 관련된 기능 유닛은 셋톱 박스 자원(704), 프린터 드라이버 오브젝트(708), 이메일 오브젝트(712), 및 프린터 포트 자원(716)을 포함하고 있다. 이러한 기능 유닛들의 정상적인 상호 작용 동안에, 허가 검사를 트리거하는 검사점을 만난다. 도 7의 표에는 권리 및 필요 요건이 각 기능 유닛과 연관되어 있다. 기능 유닛 식별자는 오브젝트 메시지(300)를 권리 메시지(400)에 연관시키는 역할을 한다.
기능 유닛 ID 기능 유닛 필요 요건 권리
604 셋톱 박스 아니오 이메일, 프린트 드라이버 등
612 이메일 프린터 드라이버
608 프린터 드라이버 프린터 포트
614 프린터 포트 없음
셋톱 박스 자원(704)은 이메일 오브젝트(712)의 상위 계층에 있다. 이메일 오브젝트(712)가 로드될 때, 오브젝트(712) 내의 검사점이 적합한 권리인지 검사한다. 적합한 권리는 이메일 오브젝트(712)의 필요 요건(720-2)에 의해 정의된다. 만일 이메일 권리(716-1)가 이메일 오브젝트 필요 요건(720-2)의 기준을 만족한다면, 이메일 오브젝트(712)는 검사점을 통과하여 계속해서 실행된다. 이메일 권리(716-1)와 이메일 오브젝트 필요 요건(720-2)이 각각 관련된 기능 유닛(704, 712)에 의해 로드된 이후에, ACP(240)가 실제로 인증을 수행한다.
사용자는 셋톱 박스(704)를 수신한 이후에, 선택 사양으로 프린터(212)를 추가할 수 있다. 이 실시예에서 프린트 능력은 모든 셋톱 박스(704)에 포함된 부가적 특징은 아니다. 만일 프린터(212)가 컨텐츠 제공자에 의해 인가된 구매품이라면, 프린터 드라이버 권리(716-2, 716-4)와 프린터 포트 권리(716-3)는 헤드엔드(104)로부터 셋톱 박스(704)로 권리 메시지(400)의 형태로 전송된다.
어떤 실시예에서는 일부의 기능 유닛에 프린터 포트(720-3)를 사용할 수 있는 권리를 제공할 수 있다. 예를 들어, 이메일 오브젝트(712)에 프린터 드라이버 권리(716-4)를 부여할 수 있지만, 셋톱 박스 자원(704)은 프린터 드라이버 권리(716-2)를 수신하지 않을 것이다. 이러한 방식으로, 이메일 오브젝트(716-2)만이 프린터 포트(720-3)를 사용할 수 있고, 나머지 오브젝트는 사용할 수 없다.
프린터를 프린터 포트에 연결함으로써, 프린터(212)에 포함된 비밀 코드를 요구하는 메시지를 TV(216) 상에 디스플레이하도록 트리거할 수 있다. 사용자가 비밀 코드를 입력한 이후에, 프린터를 작동가능하게 하는 권리 메시지(400)가 헤드엔드(104)에게 요청된다. 일단 헤드엔드가 비밀 코드를 수신하여 확인하면, 권리 메시지(400)의 집합(enabling set)이 비밀 코드에 기초하여 키의 형태로 암호화되어 전송된다. 이 실시예에서 프린터 드라이버 오브젝트(708)는 공장에서 로드(factory load)되지만, 다른 실시예에서는 오브젝트 메시지(300)를 사용할 필요가 있을 때 이 오브젝트(708)를 로드할 수 있다.
이메일 오브젝트(712)가 실행되고 있는 동안, 사용자는 이메일 메시지를 프린트할려고 시도할 수 있다. 프린트 전에 여러 개의 검사점이 적합한 권리(716)를 인증한다. 이메일 오브젝트(712)는 프린트를 요청하는 정보와 함께 프린터 드라이버(708)를 호출한다. 이메일 오브젝트(712)의 허가가 검사될 때까지 프린터 드라이버(708) 내의 검사점은 처리를 중단한다. 프린터 드라이버 권리(716-4)는 프린터를 구입할 때 다운로드하게 되어 있는데, 인증을 위하여 프린터 드라이버 필요 요건(720-1)과 함께 ACP(240)로 로드된다. 인증이 성공적이라면, 프린터 드라이버 오브젝트(708)는 프린터(212)를 위한 프린트 정보를 포맷(format)하여 프린터 포트 자원(714)으로 넘겨준다.
프린터 포트 자원(714)은 프린터(212)에 연결되는 케이블과 인터페이스되는 하드웨어 포트이다. 일단 정보가 프린터 포트 자원(714)으로 전송되면, 검사점이 프로세스를 중단하고 프린터 드라이버 오브젝트(708)가 적합한 허가를 가지고 있는지 검사한다. 필요 요건(720-3)과 권리(716-3)는 인증을 위하여 ACP(240)로 로드 된다. 일단 프린터 드라이버 오브젝트(708)의 사용이 인증되면, 프린트를 위해 나머지 프린트 작업이 프린터 포트 자원(714)에 스풀링(spooling)된다.
몇몇 실시예에서 하나의 기능 유닛의 권리(716)는 다른 기능 유닛에 의해 승계될 수 있다. 권리(716)는 그 기능 유닛을 사용할 수 있는 다른 오브젝트(308)에 전달될 수 있다. 예를 들어, 프린터 포트(232)를 사용하기 위한 권리(716)가 초기에 이메일 오브젝트(712)에만 연관될 수 있으며, 권리(716)는 사용자가 프린터(212)를 구입했을 때 이메일 오브젝트(712)로 전달된다. 나중에 헤드엔드(104)가 권리(712)를 모든 다른 기능 유닛 또는 프린터 포트(232)를 사용할 수 있는 일부 기능 유닛에 승계하도록 허가할 수 있다. 이러한 방식으로 추가적으로 기능 유닛이 프린트 특성을 이용할 수 있다.
도 8을 참조하면, 기능 유닛을 로드하는 과정의 일 실시예의 흐름도가 도시되어 있다. 이 실시예는 기능 유닛의 공장 로딩(factory loading) 또는 현장 로딩(field loading)을 가능하게 한다. 이 과정은 단계(804)에서 기능 유닛이 설계되는 것에서 시작된다. 기능 유닛은 오브젝트 및/또는 자원일 수 있다. 자원은 셋톱 박스(108)와 같은 하드웨어와, 셋톱 박스(108) 내의 하드웨어 부품을 포함할 수 있다.
단계(808)에서 기능 유닛이 공장에서 인스톨되는지 또는 현장에서 인스톨되는지 여부가 결정된다. 당업자라면 알 수 있는 바와 같이, 물리적 장치인 자원은 일반적으로 공장에서 인스톨된다. 전자적으로 저장가능한 오브젝트는 일반적으로 공장 또는 현장에서 인스톨되지만, 운영 체제(612)의 일부와 같은 어떤 오브젝트는 공장에서 인스톨된다.
만일 인스톨되는 특정 기능 유닛이 공장에서 로드된다면, 기능 유닛이 셋톱 박스 내(enclosure)로 인스톨되는 단계(812)로 간다. 일반적으로 물리적 장치와 대부분의 오브젝트는 사용자에게 배송하기 전에 셋톱 박스가 작동하도록 하기 위하여 공장에서 인스톨된다. 그러나, 어떤 오브젝트(308)는 그것을 필드(field)한 이후에 셋톱 박스(108)로 로드된다.
단계(808)에서 오브젝트가 현장에서 로드된다고 판단한 경우, 오브젝트가 컨텐츠 제공자에게 배분되는 단계(820)로 간다. 분배 과정은 패킷 스위치 네트워크와 같은 특정 유형의 데이터 링크에 의해 오브젝트(308)를 전자적으로 전송하는 단계를 포함한다. 컨텐츠 제공자는 단계(824)에서 오브젝트(308)를 오브젝트 메시지(300)에 내장하여, 오브젝트(308)를 액세스 자격이 부여된 채널을 통하여 셋톱 박스(108)로 브로드캐스트한다. 채널에 대한 액세스 자격을 부여하는 과정은, 액세스 자격이 부여된 셋톱 박스에 키를 전송하여 셋톱 박스가 채널상의 데이터 스트림을 해독하는 단계를 포함한다. 단계(828)에서 오브젝트를 실행하는 권리(716)는 컨텐츠 제공자에 의해 결정된다. 권리 메시지(400)는 단계(832)에서 분배된다. 오브젝트(308)가 브로드캐스트되는 셋톱 박스(108) 중 일부만이 일반적으로 대응하는 권리 메시지(400)를 해독하도록 허용된다. 이 실시예에서 오브젝트 메시지(300)는 권리 메시지(400) 이전에 전송되지만, 다른 실시예에서는 메시지(300, 400)를 전송하는 순서를 반대로 할 수 있다.
다음으로 도 9를 참조하면, 오브젝트(308)를 수신하는 과정의 일 실시예가 흐름도의 형태로 도시되어 있다. 이 실시예에서는 오브젝트 메시지(300)와 권리 메시지(400)를 수신한 이후에 이들의 사용을 인증한다. 단계(904)와 단계(908)에서 오브젝트 메시지(300)와 권리 메시지(400)는 액세스 자격이 부여된 채널을 통하여 케이블 TV 제공자로부터 수신된다. 채녈에 자격을 부여하는 단계는 대칭적 암호화 방식 또는 비대칭적 암호화 방식을 사용하여 하나 이상의 셋톱 박스(108)에 대하여 채널을 암호화하는 단계를 포함한다. 또한, 메시지(300, 400)의 출처가 진짜인지를 확인하고 셋톱 박스(108)에서 이들의 사용 허가를 확인하기 위하여 서명이 사용될 수 있다. 다른 실시예에서는 오브젝트 메시지(300) 이전에 권리 메시지(400)를 수신할 수 있다.
일단 메시지(300, 400)를 성공적으로 수신하여 해독하면, 단계(916)에서 기능 유닛 식별자를 사용하여 메시지를 서로 연관시킨다. 단계(920)에서 오브젝트(308) 내에 내장된 필요 요건(720)을 권리 메시지(400) 내의 권리(716)와 비교하여 검사한다. 권리(716)를 필요 요건(720)과 비교하여 검사함으로써, 단계(924)에서 오브젝트(308)가 허가가 있는지 여부를 결정할 수 있다. 만일 오브젝트(308)가 허가가 없다면, 단계(928)에서 헤드엔드(104)로 에러를 다시 보고하고, 단계(932)에서 오브젝트(308)를 버린다. 반면, 권리(716)가 필요 요건(720)을 만족한다면, 단계(936)에서 오브젝트(308)를 사용하도록 허락된다. 이러한 방식으로, 오브젝트(308)는 셋톱 박스(108)로 전송되어 허가가 검사된다.
전술한 실시예는 오브젝트(308)를 다운로드하여 허가를 부여하지만, 다른 실시예에서는 자원을 다운로드할 필요 없이 셋톱 박스(108)에 이미 존재하는 자원에 허가를 부여할 수 있다. 이러한 상황에서는 권리 메시지(400)를 셋톱 박스(108)에 이미 저장된 필요 요건과 비교하여 허가 여부를 검사한다.
도 10을 참조하면, 소프트웨어 오브젝트(308)를 인증하고 허가하는 과정의 일 실시예가 도시되어 있다. 이 과정은 소프트웨어 오브젝트(308)를 메모리(228)로부터 제어기(220)로 판독하는 단계(1004)에서 시작한다. 단계(1008)에서 소프트웨어 오브젝트(308)와 관련된 서명을 검사하여 오브젝트(308)가 진짜인지 여부를 결정한다. 전술한 바와 같이, 서명은 오브젝트 메시지(300)와 필요 요건 메시지(500)에 걸쳐 생성되어, 단일 서명으로 두 메시지(300, 500)를 인증할 수 있다. 소프트웨어 오브젝트(308)와 필요 요건 메시지(500)를 ACP(240)로 로드하여 서명을 계산한다. 계산된 서명이 헤드엔드(104)로부터 전송된 원래의 서명과 일치하는지 여부를 검사함으로써 인증 여부를 검사한다.
만일 소프트웨어 오브젝트가 단계(1012)에서 인증에 실패한 것으로 결정되면, 과정은 단계(1016)와 단계(1020)로 진행된다. 단계(1016)에서 에러를 헤드엔드(104)에게 보고한다. 이것은 양방향 제어 데이터 채널이 이용가능하게 되었을 때 즉시 발생하거나, 스토어-앤-포워드 방식을 사용하여 나중에 발생할 수 있다. 인증 테스트에 실패한 오브젝트(308)는 손상된 것이므로, 단계(1020)에서 버린다. 인증이 실패한 이후에 사용자에게 메시지가 전달될 수도 있고 아닐 수도 있다.
단계(1032)에서 자원이 오브젝트(308)를 사용할 허가를 가지고 있는지 검사한다. 셋톱 박스(108)의 권리(716)를 자원에 대한 필요 요건(720)과 비교하여 검사한다. 자원은 실행 중인 동일한 오브젝트(308)가 될 수 있어서, 검사점은 그 검 사점을 포함하는 바로 그 오브젝트(308)에 대하여 허가 검사를 하도록 할 수 있다는 점에 유의해야 한다. ACP(240)는 이 허가 과정에 참여하여 권리를 필요 요건과 비교하여 허가 여부를 안전하게 검사한다.
단계(1036)에서 오브젝트(308)와 자원 간의 상호 작용이 허가되어 있는지 여부를 결정한다. 만일 허가되어 있지 않다면, 단계(1040)에서 사용자 및/또는 헤드엔드(108)로 에러를 보고한다. 예를 들어, 프린터 포트가 이용가능하지 않으므로 프린트를 가능하게 하기 위해서는 컨텐츠 제공자에게 연락해야 한다고 사용자에게 통지하는 메시지를 스크린 상에 나타나게 할 수 있다. 만일 허가 검사가 성공적이라면, 단계(1024)에서 오브젝트(308)는 실행을 시작하도록 허가된다.
다른 실시예에서는 허가 여부를 인증 전에 검사할 수 있다. 허가는 일반적으로 인증보다 검사가 빨리 이루어지므로, 허가 검사에서 부정적인 결과가 나오면, 불필요하게 인증 검사를 할 필요가 없다.
다른 실시예에서 오브젝트(308)가 액세스하는 자원은 인증을 요구하는 검사점을 만날 수도 있다. 예를 들어, 프린터 포트 자원(232)은 대응하는 권리(716)가 만족할 필요가 있는 필요 요건(720)들을 가지고 있을 수 있다. ACP(240)가 다시 한번 인증 수행을 위해 사용된다. 이러한 방식으로 다양한 기능 유닛이 이들에 적용되는 검사점을 가지고, 인증 및/또는 허가를 검사할 수 있다.
도 11을 참조하면, 소프트웨어 오브젝트의 실행을 인증하고 이 소프트웨어 오브젝트(308)를 허가하는 과정의 일 실시예가 흐름도로 도시되어 있다. 이 과정은 소프트웨어 오브젝트(308)가 메모리(228)로부터 제어기(22)로 판독되는 단계(1104)에서 시작한다. 단계(1108)에서 소프트웨어 오브젝트(308)가 진짜이고 허가가 있는지 여부를 검사한다.
만일 단계(1112)에서 소프트웨어 오브젝트가 인증 또는 허가 둘 중의 하나에 실패했다고 결정되면, 단계(1116)와 단계(1120)로 진행된다. 단계(1116)에서 헤드엔드(114)로 에러를 보고한다. 이것은 양방향 제어 데이터 채널이 이용가능하게 되었을 때 즉시 발생할 수도 있고, 스토어-앤-포워드 방식을 사용하여 나중에 일어날 수도 있다. 인증 또는 허가 테스트에 실패한 오브젝트(308)는 손상된 것이므로, 단계(1120)에서 버려진다. 실패 이후에 메시지가 사용자에게 전달될 수도 있고 아닐 수도 있다.
만일 단계(1112)에서 소프트웨어 오브젝트(308)가 허가가 있고 진짜라면, 단계(1124)에서 소프트웨어 오브젝트(308)를 실행하기 시작한다. 실행되는 동안에, 단계(1128)에서 허가를 요구하는 검사점을 소프트웨어 오브젝트(308) 내에서 만난다. 일반적으로 검사점은 소프트웨어 오브젝트(308) 내에서 목적이 명백해지는 위치에 추가된다. 예를 들어, 프린터 드라이버는 드라이버가 프린터 포트(232)를 액세스하는데 사용되기 전에 검사점을 가질 것이다. 검사점은 검사점 및/또는 다른 자원을 포함하는 오브젝트의 허가 및/또는 인증을 요구할 수 있다.
단계(1132)에서 자원의 허가 검사가 오브젝트(308)에 대하여 수행된다. 셋톱 박스(118)의 자원 권리(716)를 오브젝트에 대한 자원 필요 요건(720)과 비교하여 검사한다. 필요한 자원은 실행되고 있는 것과 동일한 오브젝트(308)가 될 수 있어서, 검사점은 검사점을 포함하는 바로 그 오브젝트(308)의 허가를 검사하도록 할 수 있다는 것을 유의해야 할 것이다. ACP(240)는 이 허가 과정에 참여하여 권리를 필요 요건과 비교하여 허가 여부를 안전하게 검사한다.
단계(1136)에서 오브젝트(308)와 필요한 자원의 상호 작용에 대하여 허가가 부여되었는지 여부를 결정한다. 만일 허가되어 있지 않다면, 단계(114)에서 사용자 및/또는 헤드엔드(108)로 에러를 보고한다. 예를 들어, 프린터 포트가 이용가능하지 않으므로 프린트를 가능하게 하기 위해서는 컨텐츠 제공자에게 연락해야 한다고 사용자에게 통지하는 메시지를 스크린 상에 나타나게 할 수 있다. 만일 허가 검사가 성공적이라면, 단계(1144)에서 오브젝트(308)가 자원을 사용하도록 허용된다.
소프트웨어 오브젝트의 허가 및 인증 검사와, 소프트웨어 오브젝트가 액세스하는 자원의 허가 검사 방식에 있어서 많은 변형을 가할 수 있다. 그 일부만이 여기에 설명되었지만, 본 발명은 이러한 모든 변형을 포함한다는 것을 이해해야 할 것이다. 전술한 실시예는 실행 전에 소프트웨어 오브젝트의 허가 및 인증을 검사하고, 실행 동안에 검사점에서 자원의 허가를 검사한다. 그러나, 다른 실시예에서는 소프트웨어 오브젝트를 실행하기 전에 자원의 허가를 검사하고, 다시 검사점에서 소프트웨어 오브젝트의 허가 및 인증 검사를 수행할 수 있다.
도 12를 참조하면, 소프트웨어 오브젝트의 실행을 인증하는 과정 및 소프트웨어 오브젝트(308)를 허가하는 과정의 다른 실시예가 흐름도로 도시되어 있다. 이 과정은 소프트웨어 오브젝트(308)가 메모리(228)로부터 제어기(22)로 판독되는 단계(1204)에서 시작한다. 단계(1208)에서 소프트웨어 오브젝트(308)와 관련된 서 명을 검사하여 오브젝트(308)가 진짜인지 결정한다. 전술한 바와 같이, 서명을 오브젝트 메시지(300)와 필요 요건 권리 메시지(400, 500)에 걸쳐 생성하여, 단일 서명을 가지고 두 개의 메시지(300, 400, 500)의 인증을 제공할 수 있다. 소프트웨어 오브젝트(308)와 필요 요건 권리 메시지(400, 500)를 ACP(240)로 로드하여 서명을 계산한다. 계산된 서명이 헤드엔드(124)로부터 전송된 원래의 서명과 일치하는지 검사한다.
만일 단계(1212)에서 소프트웨어 오브젝트가 허가에 실패한 것으로 결정된다면, 단계(1216)와 단계(1220)로 간다. 단계(1216)에서 헤드엔드(124)로 에러를 보고한다. 이것은 양방향 제어 데이터 채널이 이용가능하게 되었을 때 즉시 발생할 수도 있고, 스토어-앤-포워드 방식을 사용하여 나중에 일어날 수도 있다. 인증 테스트에 실패한 오브젝트(308)는 손상된 것이므로, 단계(1220)에서 버려진다. 허가의 실패 이후에 메시지가 사용자에게 전달될 수도 있고 아닐 수도 있다.
만일 단계(1212)에서 소프트웨어 오브젝트(308)가 진짜라고 결정된다면, 단계(1224)에서 소프트웨어 오브젝트(308)를 실행하기 시작한다. 실행되는 동안에, 단계(1228)에서 허가를 요구하는 검사점을 소프트웨어 오브젝트(308) 내에서 만난다. 일반적으로 검사점은 소프트웨어 오브젝트(308) 내에서 소프트웨어 오브젝트(308)의 목적이 명백해지는 위치에 추가된다. 예를 들어, 프린터 드라이버는 드라이버가 프린터 포트(232)를 액세스하는데 사용되기 전에 검사점을 가질 것이다. 검사점은 검사점 및/또는 다른 자원을 포함하는 오브젝트의 허가 및/또는 인증을 요구할 수 있다.
단계(1232)에서 자원을 사용하는 허가 검사가 오브젝트(308)에 대하여 수행된다. 셋톱 박스(128)의 자원 권리(716)를 오브젝트에 대한 자원 필요 요건(720)과 비교하여 검사한다. 자원은 실행되고 있는 것과 동일한 오브젝트(308)가 될 수 있어서, 검사점은 검사점을 포함하는 바로 그 오브젝트(308)의 허가를 검사하도록 할 수 있다는 것을 유의해야 할 것이다. ACP(240)는 이 허가 과정에 참여하여 권리를 필요 요건과 비교하여 허가 여부를 안전하게 검사한다.
단계(1236)에서 오브젝트(308)와 자원의 상호 작용에 대하여 허가가 부여되었는지 여부를 결정한다. 만일 허가되어 있지 않다면, 단계(1240)에서 사용자 및/또는 헤드엔드(128)로 에러를 보고한다. 예를 들어, 프린터 포트가 이용가능하지 않으므로 프린트를 가능하게 하기 위해서는 컨텐츠 제공자에게 연락해야 한다고 사용자에게 통지하는 메시지를 스크린 상에 나타나게 할 수 있다. 만일 허가 검사가 성공적이라면, 단계(1244)에서 오브젝트(308)가 자원을 사용하도록 허용된다.
전술한 상세한 설명을 보면, 본 발명의 많은 장점이 명백해진다. 인증 및/또는 허가를 검사함으로써 오브젝트와 자원과 같은 기능 유닛을 컴퓨터 시스템 내에서 검사점을 만나는 임의의 시점에 제어할 수 있다. 이러한 특징으로 인하여, 조건부 액세스가 가능하고 시스템에서 기능 유닛을 사용하는 동안에 기능 유닛을 여러 번 확인할 수 있다. 당업자라면 이해할 수 있는 바와 같이, 이러한 특징으로 인하여 바이러스의 위협이 줄어들고, 기능 유닛에 원치 않는 변경을 가하거나 기능 유닛을 대체하는 일을 감소시킨다.
본 발명에 많은 변형과 수정을 가할 수 있다. 어떤 실시예에서는 ACP를 사 용하여 인증 및 허가 검사를 하지만, 다른 실시예에서는 유사한 소프트웨어 알고리듬을 사용하여 이러한 검사들을 수행할 수 있다.
본 발명을 특정 실시예를 참조하여 설명하였지만, 이 실시예들은 예시적인 것일 뿐, 본 발명을 한정하는 것이 아니며, 본 발명의 범위는 첨부된 청구항에 의하여 결정되어야 할 것이다.

Claims (21)

  1. 조건부 액세스 시스템(100)에서 정보의 보안을 제공하는 방법에 있어서,
    하드웨어, 소프트웨어, 데이터, 컨텐츠 유닛 또는 이와 같은 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)을 제공하는 단계와,
    상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)과 관련된 필요 요건 데이터(508, 720)를 제공하는 단계와,
    셋톱 박스, 컴퓨터, 정보 기구, TV 디스플레이, 개인용 비디오 녹화기 또는 이와 같은 컨텐츠 수신기(108)에 데이터 스트림 또는 이와 같은 전송관(transmission conduit)을 액세스하는 자격을 부여하는 단계와,
    상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)과 관련된 권리 데이터(408, 716)를 수신하는 단계와,
    상기 권리 데이터(408, 716)를 상기 필요 요건 데이터(508, 720)와 연관시키는 단계와,
    상기 권리 데이터(408, 716)를 상기 필요 요건 데이터(508, 720)와 비교하여 검사하는 단계를 포함하는 정보 보안 방법.
  2. 제1항에 있어서, 상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)은 디지털 정보 또는 이와 같은 오브젝트(308, 608, 612, 616, 618, 620, 622, 624, 708, 712)와, 물리적 장치, 오브젝트, 또는 이와 같은 자원(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)의 컬렉션 중에 적어도 한 가지를 포함하는 정보 보안 방법.
  3. 제2항에 있어서, 상기 오브젝트(308, 608, 612, 616, 618, 620, 622, 624, 708, 712)는 소프트웨어, 드라이버, 펌웨어, 데이터, 비디오, 및 오디오 중 적어도 하나를 포함하는 정보 보안 방법.
  4. 제2항에 있어서, 상기 자원(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)은 오브젝트(308, 608, 612, 616, 618, 620, 622, 624, 708, 712)와 물리적 장치(604, 614, 704, 714) 중 적어도 한 가지를 포함하는 정보 보안 방법.
  5. 제1항에 있어서, 상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)의 출처를 인증하는 단계를 더 포함하는 정보 보안 방법.
  6. 제1항에 있어서, 만일 상기 권리가 상기 필요 요건 데이터(508, 720)를 만족한다면, 상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)의 사용에 대하여 허가를 부여하는 단계를 더 포함하는 정보 보안 방법.
  7. 제1항에 있어서, 상기 전송관에 대한 액세스 자격을 부여하는 단계는 상기 전송관을 통하여 지나가는 정보를 해독하는 단계를 더 포함하는 정보 보안 방법.
  8. 제1항에 있어서,
    상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)에 대한 필요 요건 데이터(508, 720)를 결정하는 단계를 더 포함하는 정보 보안 방법.
  9. 제1항에 있어서, 상기 컨텐츠 수신기와 관련된 권리 데이터(408, 716)를 결정하는 단계를 더 포함하는 정보 보안 방법.
  10. 제1항에 있어서, 제1 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)으로부터 제2 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)으로 권리를 승계할 수 있도록 허용하는 단계를 더 포함하는 정보 보안 방법.
  11. 제1항에 있어서, 상기 권리 데이터(408, 716)를 상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)으로 전송하는 단계를 더 포함하는 정보 보안 방법.
  12. 제1항에 있어서, 상기 권리 데이터(408, 716)를 상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)에 연관시키는 단계를 더 포함하는 정보 보안 방법.
  13. 제1항에 있어서, 상기 전송관에 대한 액세스 자격을 부여하는 단계는 상기 전송관으로 넘겨지는 정보를 암호화하는 단계를 포함하는 정보 보안 방법.
  14. 제1항에 있어서, 상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)을 인증하는 단계를 더 포함하는 정보 보안 방법.
  15. 조건부 액세스 시스템(100)을 위한 컨텐츠 수신기에 있어서,
    셋톱 박스, 컴퓨터, 정보 기구, TV 디스플레이, 개인용 비디오 녹화기 또는 이와 같은 본체(108)와,
    컨텐츠 제공자로부터 상기 본체(108)로 연결되는 암호화된 채널과,
    상기 본체 내의 하드웨어, 소프트웨어, 데이터, 컨텐츠 유닛 또는 이와 같은 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)과,
    상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)과 관련된 필요 요건 데이터(508, 720)와,
    상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)과 관련된 권리 데이터(408, 716)를 포함하고,
    상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)의 사용에 대하여 허가를 부여하기 위하여 상기 권리 데이터(408, 716)를 상기 필요 요건 데이터(508, 720)와 비교하여 검사하는 컨텐츠 수신기.
  16. 제15항에 있어서, 상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)은 오브젝트(308, 608, 612, 616, 618, 620, 622, 624, 708, 712)와 자원(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714) 중 적어도 한가지를 포함하는 컨텐츠 수신기.
  17. 제15항에 있어서, 제2 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)을 더 포함하고, 상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)의 상기 권리 데이터(408, 716)가 상기 제2 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)에 의해 승계되는 컨텐츠 수신기.
  18. 제15항에 있어서, 상기 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)의 출처가 인증되는 컨텐츠 수신기.
  19. 제1항에 있어서,
    제1 필요 요건 데이터(508, 720)와 관련된 제1 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)을 제공하는 단계와,
    제1 권리 데이터와 관련된 제2 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)을 제공하는 단계와,
    상기 제1 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)과 상기 제2 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714) 간의 상호 작용을 개시하는 단계와,
    상기 제1 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)과 상기 제2 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714) 간의 상호 작용의 개시에 응답하여 상기 제1 권리 데이터를 상기 제1 필요 요건 데이터(508, 720)와 비교하여 검사하는 단계와,
    상기 제2 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)이 상기 제1 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)을 사용하는 것을 허가하는 단계를 포함하는 정보 보안 방법.
  20. 제19항에 있어서, 상기 제1 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)과 상기 제2 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714) 중 적어도 한가지의 출처를 인증하는 단계를 더 포함하는 정보 보안 방법.
  21. 제19항에 있어서, 상기 제1 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714)과 상기 제2 기능 유닛(308, 604, 608, 612, 614, 616, 618, 620, 622, 624, 704, 708, 712, 714) 중 적어도 한가지를 전송하는 전송관에 대한 액세스 자격을 부여하는 단계를 더 포함하는 정보 보안 방법.
KR1020027002750A 1999-09-03 2000-09-01 오브젝트와 자원에 대한 액세스 자격 부여 방법 KR100679498B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15238599P 1999-09-03 1999-09-03
US60/152,385 1999-09-03

Publications (2)

Publication Number Publication Date
KR20020028230A KR20020028230A (ko) 2002-04-16
KR100679498B1 true KR100679498B1 (ko) 2007-02-07

Family

ID=22542697

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027002750A KR100679498B1 (ko) 1999-09-03 2000-09-01 오브젝트와 자원에 대한 액세스 자격 부여 방법

Country Status (7)

Country Link
EP (1) EP1219108A1 (ko)
KR (1) KR100679498B1 (ko)
CN (1) CN1214620C (ko)
AU (1) AU7103600A (ko)
CA (1) CA2382576A1 (ko)
HK (1) HK1049421A1 (ko)
WO (1) WO2001019074A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020032903A1 (en) * 2000-05-26 2002-03-14 Sprunk Eric J. Authorization using ciphertext tokens
JP2002297452A (ja) * 2001-03-30 2002-10-11 Matsushita Electric Ind Co Ltd 記録再生装置、制御方法、及び不正防止システム
KR101138395B1 (ko) * 2006-09-22 2012-04-27 삼성전자주식회사 콘텐트의 액세스 권리를 공유하는 방법 및 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968136A (en) * 1997-06-05 1999-10-19 Sun Microsystems, Inc. Apparatus and method for secure device addressing
EP0909094A1 (en) * 1997-10-07 1999-04-14 CANAL+ Société Anonyme Multithread data processor
US6125447A (en) * 1997-12-11 2000-09-26 Sun Microsystems, Inc. Protection domains to provide security in a computer system

Also Published As

Publication number Publication date
AU7103600A (en) 2001-04-10
HK1049421A1 (zh) 2003-05-09
CN1214620C (zh) 2005-08-10
CN1372756A (zh) 2002-10-02
EP1219108A1 (en) 2002-07-03
CA2382576A1 (en) 2001-03-15
KR20020028230A (ko) 2002-04-16
WO2001019074A1 (en) 2001-03-15

Similar Documents

Publication Publication Date Title
US8904424B2 (en) Object and resource security system
US20020112175A1 (en) Conditional access for functional units
EP1228634B1 (en) Intrusion detection for object security
US6993132B2 (en) System and method for reducing fraud in a digital cable network
US20060020790A1 (en) Authorization using ciphertext tokens in a content receiver
KR100679498B1 (ko) 오브젝트와 자원에 대한 액세스 자격 부여 방법
KR20020038807A (ko) 객체 및 자원 보안 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140109

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150109

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160113

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170123

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180111

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200114

Year of fee payment: 14