KR101000191B1 - 보안 소프트웨어 갱신 - Google Patents

보안 소프트웨어 갱신 Download PDF

Info

Publication number
KR101000191B1
KR101000191B1 KR1020087004435A KR20087004435A KR101000191B1 KR 101000191 B1 KR101000191 B1 KR 101000191B1 KR 1020087004435 A KR1020087004435 A KR 1020087004435A KR 20087004435 A KR20087004435 A KR 20087004435A KR 101000191 B1 KR101000191 B1 KR 101000191B1
Authority
KR
South Korea
Prior art keywords
software module
software
delete delete
updated
electronic device
Prior art date
Application number
KR1020087004435A
Other languages
English (en)
Other versions
KR20080032228A (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 KR20080032228A publication Critical patent/KR20080032228A/ko
Application granted granted Critical
Publication of KR101000191B1 publication Critical patent/KR101000191B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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
    • 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/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)

Abstract

이미 사용중인 전자 장치의 소프트웨어를 갱신하기 위한 개선된 기법들이 개시된다. 일 실시예에 있어서, 소프트웨어는 암호를 사용하여 보안적이고 제어된 방식으로 갱신될 수 있다. 갱신된 소프트웨어의 인증 및 특정 전자 장치에 대한 그 적절성이 갱신전에 확인될 수 있다. 소프트웨어는 모듈별로 갱신될 수 있다. 일 실시예에서, 서버 호스트 소프트웨어는 각종 전자 장치들에 대하여 갱신되며, 데이터 네트워크를 통해 적절한 소프트웨어 갱신을 전자 장치들에 제공한다.
Figure R1020087004435
DRM, 전자 서명, 소프트웨어 모듈, 클라이언트 장치, 서버 장치

Description

보안 소프트웨어 갱신{SECURE SOFTWARE UPDATES}
본 발명은 소프트웨어의 갱신에 관한 것으로서, 특히, 원격 서버로부터 취득되는 갱신된 소프트웨어를 이용하여 클라이언트측에서 소프트웨어를 갱신시키는 것에 관한 것이다.
오늘날, 전자 장치가 그 동작에 있어서 소프트웨어를 활용하는 것은 일상적이다. 소프트웨어를 활용하는 전자 장치의 예로서는, 컴퓨터, PDA, 미디어 플레이어, 및 이동 전화를 포함한다. 그러나, 때로는, 이러한 전자 장치들에 의해 활용되고 있는 소프트웨어를 변경 또는 갱신하는 것이 요구된다.
컴퓨터의 경우, 새로운 버전과 같은 갱신된 소프트웨어는 다운로딩 과정을 통해 원격 서버로부터 취득될 수 있다. 일단 취득되면, 소프트웨어가 컴퓨터에 인스톨될 수 있다. 소프트웨어의 인스톨 과정은 사용자에 대하여 문자숫자 키 또는 등록 코드를 입력하도록 요구함으로써 제어될 수 있다. 적절한 키 또는 등록 코드가 없다면, 갱신된 소프트웨어는 인스톨될 수 없다. 또한, 컴퓨터 상에서 소프트웨어를 갱신하기 위한 종래의 접근법에서는 실질적인 사용자 참여를 요구한다. 오늘날 존재하는 컴퓨터 바이러스의 성향에 있어서 사용자들이 컴퓨터 상에 소프트웨어를 다운로드 및 인스톨하는 것에 관련되는 경우 사용자 지원의 필요가 문제시 된다.
소프트웨어를 활용하는 휴대형 전자 장치의 경우(예컨대, PDA, 미디어 어시스턴트, 이동 전화), 소프트웨어는 주로 제조 과정에서 초기에 인스톨된다. 그 결과, 사용자가 휴대형 전자 장치를 받는 때에, 소프트웨어가 이미 인스톨되어 있고, 휴대형 전자 장치는 모두 기능한다. 그러나, 소프트웨어가 실질적으로 갱신 또는 변경되어야할 필요가 있을 때, 많은 경우, 휴대형 전자 장치에 장착된 소프트웨어는 엔드 유저에 의해 변경될 수가 없다. 더욱 최근에, 일부 휴대형 전자 장치들은 소프트웨어가 갱신되는 것을 허용하고 있다. 예를 들어, 휴대형 전자 장치는 휴대형 전자 장치 상의 기존 소프트웨어를 갱신된 소프트웨어로 완전히 교체할 수 있는 컴퓨터에 연결될 수 있다. 결과의 문제점은 휴대형 전자 장치들이 때로는 다수의 기능을 지원한다는 점이다. 이러한 상이한 기능들은 상이한 판매상에 의해 제공될 수 있는 상이한 소프트웨어 모듈에 의해 제어될 수 있다. 따라서, 휴대형 전자장치 상의 모든 소프트웨어를 완전히 교체하는 것은 때로는 부적절하다. 결과적으로, 상이한 소프트웨어 모듈들이 다른 모듈들을 방해하지 않고 갱신될 수 있도록 하는 소프트웨어 갱신 기법을 지원할 요구가 있다.
따라서, 자동화되고 안전한, 전자장치 상의 소프트웨어 갱신을 위한 솔루션이 요구된다.
본 발명은 이미 사용중인 전자 장치의 소프트웨어를 갱신하기 위한 개선된 기법에 관한 것이다. 일 실시예에 있어서, 암호화를 이용하여 보안성 있고 통제된 방식으로 소프트웨어가 갱신될 수 있다. 갱신 전에 갱신되는 소프트웨어의 신뢰성과 특정 전자 장치에 대한 적합성이 확인될 수 있다. 소프트웨어는 또한 모듈별로 갱신될 수 있다. 일 실시예에 있어서, 서버 호스트 소프트웨어는 각종 전자 장치들에 대하여 갱신하며, 데이터 네트워크를 통해서 전자 장치들에 대한 적절한 소프트웨어 갱신을 제공한다.
본 발명은 일반적으로 광범위한 형태의 소프트웨어의 갱신에 적용가능하지만, 특히 디지털 권한 관리(DRM) 소프트웨어의 갱신에 적합하다. 보안성을 이유로, 사용중인 전자 장치들의 DRM 소프트웨어를 갱신할 필요성이 존재할 수 있다. 본 발명의 개선된 기법들은 보안성 있고 통제된 방식으로 DRM 소프트웨어를 갱신시킬 수 있다. 일 구현예에 있어서, DRM 소프트웨어의 갱신은 전자 장치 측에 제공되는 DRM 소프트웨어 라이브러리(library)를 변경하도록 동작한다.
본 발명은 적어도 부분적으로 소프트웨어에 따라서 동작하는 전자 장치들에서 사용하기에 적합하다. 예를 들어, 전자 장치들은 컴퓨터, PDA, 미디어 플레이어, 또는 이동 전화일 수 있다.
본 발명은 방법, 시스템, 디바이스, 장치, 또는 컴퓨터 판독가능 매체와 같은, 다수의 방법으로 구현될 수 있다. 본 발명의 수개의 실시예들을 이하에 설명한다.
적어도 부분적으로 소프트웨어에 따라서 동작하는 전자 장치 상의 소프트웨어를 업그레이드하는 방법으로서, 본 발명의 일 실시예는, 호스트 장치에 장치 정보를 송신하는 단계; 전자 장치에서 암호화된 소프트웨어 모듈을 수신하는 단계 - 암호화된 소프트웨어 모듈은 전자 장치에 의해 특정적으로 사용하기 위하여 호스트 장치에서 미리 암호화됨 -; 전자 장치에서 암호화된 소프트웨어 모듈을 복호화하는 단계; 및 전자 장치 상에 소프트웨어 모듈을 인스톨하는 단계를 적어도 포함한다.
휴대형 전자 장치 상의 소프트웨어를 업그레이드하는 방법으로서, 본 발명의 일 실시예는, 호스트 장치에 장치 정보를 송신하는 단계 - 장치 정보는 장치 기술 정보, 공개 암호키, 및 현재의 버전 표시자를 포함함 -; 휴대형 전자 장치에서 암호화된 소프트웨어 모듈을 수신하는 단계 - 호스트 장치에 대하여 활용가능한 소프트웨어 모듈로부터 비롯하는 암호화된 소프트웨어 모듈은 장치 기술 정보 및 현재의 버전 표시자에 기초하여 선택된 후, 휴대형 전자 장치에 의해 제공되는 공개 암호키를 이용하여 암호화됨 -; 휴대형 전자 장치에 의해 알려진 사설 암호키를 이용하여 휴대형 전자 장치에서 암호화된 소프트웨어 모듈을 복호화하는 단계; 복호화된 소프트웨어 모듈을 인증하는 단계; 및 복호화 및 인증이 성공적으로 완료된 후 휴대형 전자 장치 상에 소프트웨어 모듈을 인스톨하는 단계를 적어도 포함한다.
적어도 컴퓨팅 장치 상에서 소프트웨어를 업그레이드하기 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능 매체로서, 본 발명의 일 실시예는, 호스트 장치에 장치 정보를 송신하기 위한 컴퓨터 프로그램 코드 - 장치 정보는 장치 기술 정보, 제1 암호키, 및 현재의 버전 표시자를 포함함 -; 컴퓨팅 장치에서 암호화된 소프트웨어 모듈을 수신하기 위한 컴퓨터 프로그램 코드 - 호스트 장치에 대하여 활용가능한 소프트웨어 모듈로부터 비롯하는 암호화된 소프트웨어 모듈은 장치 기술 정보 및 현재의 버전 표시자에 기초하여 선택된 후, 컴퓨팅 장치에 의해 제공되는 제1 암호키를 이용하여 암호화됨 -; 컴퓨팅 장치에 의해 알려진 제2 암호키를 이용하여 컴퓨팅 장치에서 암호화된 소프트웨어 모듈을 복호화하기 위한 컴퓨터 프로그램 코드; 복호화된 소프트웨어 모듈을 인증하기 위한 컴퓨터 프로그램 코드; 및 복호화 및 인증이 성공적으로 완료된 후 컴퓨팅 장치 상에 소프트웨어 모듈을 인스톨하기 위한 컴퓨터 프로그램 코드를 적어도 포함한다.
휴대형 전자 장치 상의 소프트웨어 모듈을 업그레이드하는 방법으로서, 본 발명의 다른 실시예는, 네트워크 기반의 서버 장치에서 장치 정보를 수신하는 단계 - 상기 장치 정보는 휴대형 전자 장치에 관한 것이며, 장치 기술 정보, 공개 암호키 및 휴대형 전자 장치 상의 소프트웨어 모듈에 대한 현재의 버전 표시자를 포함함 -; 소프트웨어 모듈의 갱신된 버전이 서버 장치로부터 활용가능한지 여부를 판정하는 단계 - 상기 판정은 휴대형 전자 장치에 관한 장치 기술 정보에 기초함 -; 판정하는 단계에서 소프트웨어 모듈의 갱신된 버전이 서버 장치로부터 활용가능한 것으로 판정하는 경우, 소프트웨어 모듈의 갱신된 버전을 암호화하는 단계 - 상기 암호화는 휴대형 전자 장치에 의해 제공되는 공개 암호키를 이용함 -; 및 암호화된 소프트웨어 모듈을 휴대형 전자 장치에 전송하는 단계를 포함한다.
적어도 컴퓨팅 장치 상의 소프트웨어 모듈을 업그레이드하기 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능 매체로서, 본 발명의 다른 실시예는, 네트워크 기반의 서버 장치에서 장치 정보를 수신하기 위한 컴퓨터 프로그램 코드 - 상기 장치 정보는 컴퓨팅 장치에 관한 것이며, 장치 기술 정보, 암호키, 및 컴퓨팅 장치 상의 소프트웨어 모듈에 대한 현재의 버전 표시자를 포함함 -; 소프트웨어 모듈의 갱신된 버전이 서버 장치로부터 활용가능한지 여부를 판정하기 위한 컴퓨터 프로그램 코드 - 상기 판정은 컴퓨팅 장치에 관한 장치 기술 정보에 기초함 -; 상기 판정에서 소프트웨어 모듈의 갱신된 버전이 서버 장치로부터 활용가능한 것으로 판정하는 경우, 소프트웨어 모듈의 갱신된 버전을 암호화하기 위한 컴퓨터 프로그램 코드 - 상기 암호화는 컴퓨팅 장치에 의해 제공되는 암호키를 이용함 -; 및 암호화된 소프트웨어 모듈을 컴퓨팅 장치에 전송하기 위한 컴퓨터 프로그램 코드를 포함한다.
적어도 전자 장치 상의 소프트웨어를 업그레이드하기 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능 매체로서, 본 발명의 일 실시예는, 호스트 장치에서 전자 장치에 대한 갱신된 소프트웨어 모듈을 식별하기 위한 컴퓨터 프로그램 코드; 전자 장치에서 사용하기 위한 갱신된 소프트웨어 모듈을 암호화하기 위한 컴퓨터 프로그램 코드; 암호화된 소프트웨어 모듈을 전자 장치에 전송하기 위한 컴퓨터 프로그램 코드; 전자 장치에서 암호화된 소프트웨어 모듈을 복호화하기 위한 컴퓨터 프로그램 코드; 및 전자 장치 상에 소프트웨어 모듈을 인스톨하기 위한 컴퓨터 프로그램 코드를 적어도 포함한다.
네트워크 기반의 소프트웨어 갱신 시스템으로서, 본 발명의 일 실시예는, (i) 해당하는 모바일 클라이언트 장치에 상주하는 적어도 하나의 소프트웨어 모듈에 따라서 각각 동작하는 복수의 모바일 클라이언트 장치; (ii) 복수의 소프트웨어 모듈에 액세스하는 서버 장치 - 각각의 소프트웨어 모듈은 하나 이상의 모바일 클라이언트 장치에 특정적으로 사용하기 위한 것임 -; 및 (iii) 서버 장치와 모바일 클라이언트 장치에 동작가능하게 연결가능한 적어도 하나의 클라이언트 장치 - 클라이언트 장치는 디지털 미디어 자산에 대한 미디어 관리 어플리케이션을 동작시킴 - 를 포함한다. 상기 디지털 미디어 자산은 적어도 하나의 소프트웨어 모듈을 갖는 디지털 권한 관리 라이브러리에 의해 보호된다. 클라이언트 장치는 제1 데이터 링크 상에서 서버 장치와 상호작용하여 갱신될 모바일 클라이언트 장치에 대하여 갱신된 소프트웨어 모듈을 검색하며, 갱신된 소프트웨어 모듈은 디지털 권한 관리 라이브러리에 관한 것이다. 클라이언트 장치는 그 후 제2 데이터 링크 상에서 모바일 클라이언트 장치와 상호작용하여, 갱신될 모바일 클라이언트 장치에 갱신된 소프트웨어 모듈을 제공한다.
첨부 도면들과 연계하여 이루어지는 이하의 상세한 설명으로부터 별도로 본 발명의 다른 양태 및 장점들이 명백하게 될 것이며, 첨부 도면들은 일례로서 본 발명의 원리를 예시한다.
본 발명은 첨부 도면들과 연계한 이하의 상세한 설명에 의해 쉽게 이해될 것이며, 여기서, 동일한 참조 부호는 동일한 구성 요소를 지칭한다.
도 1a는 본 발명의 일 실시예에 따른 소프트웨어 갱신 시스템의 블록도이다.
도 1b는 소프트웨어 갱신이 발생한 후 소프트웨어 갱신 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 서버 소프트웨어 갱신 과정의 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 클라이언트 소프트웨어 갱신 과정의 흐름도이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 클라이언트 소프트웨어 갱신 과정의 흐름도이다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른 서버 소프트웨어 갱신 과정의 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 모바일 클라이언트 연결 과정의 흐름도이다.
도 7a 및 도 7b는 본 발명의 일 실시예에 따른 모바일 클라이언트 분리 과정의 흐름도이다.
본 발명은 이미 사용중인 전자 장치 내의 소프트웨어를 갱신하는 개선된 기법에 관한 것이다. 일 실시예에 있어서, 암호화를 이용하여 보안성 있고 통제된 방식으로 소프트웨어가 갱신될 수 있다. 갱신 전에 갱신되는 소프트웨어의 신뢰성과 특정 전자 장치에 대한 적합성이 확인될 수 있다. 소프트웨어는 또한 모듈별로 갱신될 수 있다. 일 실시예에 있어서, 서버 호스트 소프트웨어는 각종 전자 장치들에 대하여 갱신하며, 데이터 네트워크를 통해서 전자 장치들에 대한 적절한 소프트웨어 갱신을 제공한다.
본 발명은 일반적으로 광범위한 형태의 소프트웨어의 갱신에 적용가능하지만, 특히 디지털 권한 관리(DRM) 소프트웨어의 갱신에 적합하다. 보안성을 이유 로, 사용중인 전자 장치들의 DRM 소프트웨어를 갱신할 필요성이 존재할 수 있다. 본 발명의 개선된 기법들은 보안성 있고 통제된 방식으로 DRM 소프트웨어를 갱신시킬 수 있다. 일 구현예에 있어서, DRM 소프트웨어의 갱신은 전자 장치 측에 제공되는 DRM 소프트웨어 라이브러리를 변경하도록 동작한다.
본 발명은 적어도 부분적으로 소프트웨어에 따라서 동작하는 전자 장치들에서 사용하기에 적합하다. 예를 들어, 전자 장치들은 컴퓨터, PDA, 미디어 플레이어, 또는 이동 전화일 수 있다.
이하, 본 발명의 실시예들을 도 1a 내지 도 7b를 참조하여 설명한다. 그러나, 당업자라면, 이 도면들에 대한 본 명세서의 상세한 설명이 설명을 위한 것이며, 본 발명은 이러한 제한된 실시예들을 넘어서 확장될 수 있다는 것을 이해할 수 있을 것이다.
도 1a는 본 발명의 일 실시예에 따른 소프트웨어 갱신 시스템(100)의 블록도이다. 소프트웨어 갱신 시스템(100)은 미디어 관리 어플리케이션(MMA)(104)를 포함하는 클라이언트 장치(102)를 포함한다. 클라이언트 장치(102)는, 예를 들어, 데스크톱 컴퓨터와 같은 컴퓨터이다. 미디어 관리 어플리케이션(104)은 클라이언트 장치(102)에서 활용가능한 미디어 자산들을 관리하도록 동작하는 어플리케이션 프로그램이다. 소프트웨어 갱신 시스템(100)은 또한 네트워크(108)를 통해 클라이언트 장치(102)에 결합될 수 있는 서버 장치(106)를 포함한다. 네트워크(108)는 데이터 네트워크일 수 있다. 네트워크(108)는 글로벌 네트워크, 광대역 네트워크, 또는 로컬 영역 네트워크의 적어도 일부를 포함할 수 있다. 네트워크(108)는 유선 및/또는 무선일 수도 있다.
또한, 소프트웨어 갱신 시스템(100)은 모바일 클라이언트 장치(MCD)(110)를 포함한다. MCD(110)는 유선 또는 무선 수단에 의해 클라이언트 장치(102)에 동작가능하게 결합될 수 있다. 일례에 있어서, MCD(110)는 USB 케이블 등의 주변장치 버스 케이블 상으로 클라이언트 장치(102)에 결합될 수 있다. 또 다른 예에 있어서, MCD(110)는 무선 네트워크(예컨대, Bluetooth, WiFi, WiMax) 상의 무선 링크를 통해 클라이언트 장치(102)에 결합될 수 있다.
본 발명에 따르면, 클라이언트 장치(102)는 MCD(110)에 존재하는 소프트웨어 모듈을 갱신하는 것을 수행할 수 있다. 이를 행함에 있어서, 클라이언트 장치(102)는 서버 장치(106)와 통신한다. 서버 장치(106)는 적절한 모바일 클라이언트 장치들에 대한 배포에 활용가능한 복수의 소프트웨어 모듈에 대하여 액세스한다. 더 구체적으로, 클라이언트 장치(102)는 MCD(110)와 상호 작용하여, 소프트웨어 모듈(112), 즉, MCD(110)에 인스톨된 소프트웨어 모듈-버전 1(SWM-1)을 식별한다. 그 후, 클라이언트 장치(102)는 식별된 소프트웨어 모듈(112)에 관련되는 버전 표식(114)을 저장한다. 도 1a에 도시된 예에 있어서, 버전 표식(114)은 MCD(110) 상에 인스톨된 소프트웨어 모듈이 버전 1(V1)이라고 표시한다. 그 후, 클라이언트 장치(102)는 네트워크(108)를 통해 서버 장치(106)와 통신하여, MCD(110) 상에서 사용하기 위한 소프트웨어 모듈의 보다 새로운 또는 갱신 버전이 존재하는지 여부를 판정할 수 있다. 본 예에 있어서, 서버 장치(106)는 소프트웨어 모듈(116)은 버전 1(SWM-V1)이며, 소프트웨어 모듈(118)은 버전 2(SWM-V2)로 하 여 소프트웨어 모듈(116 및 118)을 포함한다. 본 예에 있어서, 소프트웨어 모듈(116 및 118) 양측 모두는 MCD(110) 상에서 사용하기에 적합한 것으로 가정한다. 그 후, 서버 장치(106)는 갱신된 소프트웨어 모듈(118), 즉, 버전 2(SWM-V2)을 제공할 수 있다. 그 후, 클라이언트 장치(102)는 소프트웨어 모듈 - 버전 2(SWM-V2)를 MCD(110)에 전달할 수 있다.
도 1a에 나타낸 소프트웨어 갱신 시스템(100)은 단일의 클라이언트 장치 및 단일의 MCD를 나타내지만, 소프트웨어 갱신 시스템(100)은 단일의 서버가 통상 복수의 클라이언트 장치들을 통해 복수의 MCD 상의 소프트웨어 모듈들의 갱신을 지원할 수 있는 것으로 이해되어야 한다. 또한, 도 1a에 도시된 소프트웨어 갱신 시스템(100)은 하나 이상의 클라이언트 장치들을 활용하지만, 또 다른 실시예에 있어서, 소프트웨어 갱신 시스템은 소프트웨어 갱신을 수행함에 있어서 어떠한 클라이언트 장치도 활용하지 않을 필요가 있다. 이러한 경우, MCD는 네트워크(108)에 결합되어 서버 장치(106)에 직접 통신할 수 있다.
도 1b는 소프트웨어 갱신이 발생한 후의 소프트웨어 갱신 시스템(100')의 블록도이다. 소프트웨어 갱신 시스템(100')은 MCD(110) 측의 소프트웨어 모듈이 갱신된 후의 소프트웨어 갱신 시스템(100)을 나타낸다. 이 때, 도 1b에 있어서, MCD(110)는 소프트웨어 모듈-버전 2(SWM-V2)에 속하는 소프트웨어 모듈(112')을 포함하며, 클라이언트 장치(102) 측의 버전 표식(114')은 MCD(110)가 이제 버전 2(SWM-V2)를 활용한다는 것을 나타낸다.
일 실시예에 있어서, 소프트웨어는 디지털 권한 관리(DRM) 소프트웨어 모듈 에 속할 수 있다. 소프트웨어 모듈은 또한 소프트웨어 라이브러리에 속할 수 있다. 일례로서, 갱신되고 있는 소프트웨어 모듈은 DRM 라이브러리라 칭할 수 있다.
미디어 관리 어플리케이션의 일례로서, Cupertino, CA의 Apple Computer, Inc.에 의해 생산되는 iTunes® 어플리케이션이 있다. 서버 장치의 일례로서는, Cupertino, CA의 Apple Computer, Inc.에 의해 제공되는 iTunes® Music Store 서버가 있다.
도 2는 본 발명의 일 실시예에 따른 서버 소프트웨어 갱신 과정(200)의 흐름도이다. 서버 소프트웨어 갱신 과정(200)은, 예를 들어, 서버에 의해 수행된다. 서버는 클라이언트, 또는 거기서 동작하는 소프트웨어 프로그램에 결합되는 컴퓨팅 장치에 속한다. 서버는 직접 또는 네트워크를 통해 클라이언트에 결합할 수 있다. 예를 들어, 서버는 도 1a에 도시된 클라이언트 장치(102) 또는 서버 장치(106)에 속할 수 있다.
서버 소프트웨어 갱신 과정(200)은 시작에 있어 소프트웨어 갱신이 수행될 것인지 여부를 판정하는 결정(202)으로 시작한다. 결정(202)에서 소프트웨어 갱신이 수행되지 않아야 한다고 판정하는 경우, 서버 소프트웨어 갱신 과정(200)은 소프트웨어 갱신이 수행되어야 하는 때까지 대기한다. 소프트웨어 갱신은 자동적으로 수행되거나, 사용자의 요청에 의해 수행될 수 있다. 어떠한 경우이건, 결정(202)이 소프트웨어 갱신이 필요한 것으로 판정하는 경우, 클라이언트의 소프트웨어 모듈(SWM)이 식별된다(204). 소프트웨어 모듈이 식별된 후(204), 소프트웨어 모듈은 클라이언트에 의한 액세스를 위하여 암호화된다(206). 이 때, 식별된(204) 소프트웨어 모듈은 클라이언트에 대하여 특정적으로 설계되며, 소프트웨어 모듈의 암호화는 그 사용을 클라이언트로 제한하고자 하는 것이다. 그 후, 암호화된 소프트웨어 모듈은 클라이언트에 송신된다(208). 동작 208에 이어서, 서버 소프트웨어 갱신 과정(200)은 종료한다.
도 3은 본 발명의 일 실시예에 따른 클라이언트 소프트웨어 갱신 과정(300)의 흐름도이다. 클라이언트 소프트웨어 갱신 과정(300)은, 예를 들어, 본 발명의 일 실시예에 따라서 동작하는 클라이언트에 의해 수행된다. 일례로서, 클라이언트는 통상 소프트웨어 또는 이에 동작하는 소프트웨어 프로그램을 활용하는 전자 장치다. 예를 들어, 클라이언트는 도 1a에 도시된 모바일 클라이언트 장치(110)에 속할 수 있다.
클라이언트 소프트웨어 갱신 과정(300)은 클라이언트에 소프트웨어 모듈이 인스톨되어야 하는지 여부를 판정하는 결정(302)으로 시작한다. 결정(302)에서, 소프트웨어 모듈이 인스톨되지 않는 것으로 판정되는 경우, 클라이언트 소프트웨어 갱신 과정(300)은 클라이언트에 소프트웨어 모듈을 인스톨할 필요성을 대기한다. 즉, 클라이언트 소프트웨어 갱신 과정(300)은 소프트웨어 모듈이 클라이언트에 인스톨되어야 하는 때마다 호출되어야 할 수 있다. 일단, 결정(302)에서 소프트웨어 모듈이 인스톨되어야 하는 것으로 판정하면, 암호화된 소프트웨어 모듈이 클라이언트에서 복호화된다(304). 복호화(304)에 이어서, 소프트웨어 모듈이 클라이언트 상에 인스톨된다(306). 소프트웨어 모듈이 클라이언트에서 인스톨된 후(306), 클라이언트 소프트웨어 갱신 과정(300)이 종료된다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 클라이언트 소프트웨어 갱신 과정(400)의 흐름도이다. 클라이언트 소프트웨어 갱신 과정(400)은, 예를 들어, 본 발명의 일 실시예에 따라 동작하는 클라이언트에 의해 수행된다. 일례로서, 도 1a를 참조하면, 클라이언트는 클라이언트 장치(102) 또는 이에서 동작하는 미디어 관리 어플리케이션(104)에 속할 수 있다.
클라이언트 소프트웨어 갱신 과정(400)은 미디어 관리 어플리케이션이 출시되었는지 여부를 판정하는 결정(402)으로 시작한다. 결정(402)에서, 미디어 관리 어플리케이션이 출시되지 않은 것으로 판정하는 경우, 클라이언트 소프트웨어 갱신 과정(400)은 이러한 이벤트를 대기한다. 반면, 일단 결정(402)에서 미디어 관리 어플리케이션이 출시된 것으로 판정하면, 결정(404)은 활용가능한 소프트웨어 모듈을 확인한다. 여기서, 활용가능한 소프트웨어 모듈은 통상 해당 모바일 클라이언트 장치(MCD) 상에서 활용되기에 적합한 소프트웨어 모듈의 더 새로운 버전이다. 클라이언트 소프트웨어 갱신 과정(400)은 출시되는 때마다 활용가능한 소프트웨어 모듈을 확인할 필요는 없으나, 그 대신, 주기적으로(예컨대, 주마다) 행해질 수 있다.
결정(404)에서, 활용가능한 소프트웨어 모듈에 대한 확인이 수행되어야 하는 것으로 판정하는 경우, 버전 요청이 서버에 송신된다(406). 버전 요청은 적어도 현재의 버전 식별자와 MCD 기술 정보를 포함한다. MCD 기술 정보는 MCD의 일반적인 특징, 성질, 또는 속성을 설명하는 정보이다.
다음으로, 결정(408)에서 버전 응답이 서버로부터 수신되었는지 여부를 판정 한다. 결정(408)에서, 버전 응답이 수신되지 않은 것으로 판정하는 경우, 클라이언트 소프트웨어 갱신 과정(400)은 이러한 응답을 대기할 수 있다. 그러나, 대기 주기는 제한될 수 있으며, 또는 별도의 비차폐 쓰레드(non-blocking thread)에서 처리될 수 있다. 어떠한 경우이든, 일단 결정(408)에서 버전 응답이 수신된 것으로 판정하면, 활용가능한 버전 표식이 클라이언트 측에 저장된다(410), 버전 응답은 클라이언트에 대하여 활용가능한 버전 표식이다. 일 실시예에 있어서, 활용가능한 버전 표식은 MCD 용의 갱신된 소프트웨어 모듈이 서버로부터 활용가능한지 여부를 나타낼 수 있다.
이 때, 클라이언트 소프트웨어 갱신 과정(400)은 MCD가 클라이언트에 연결될 때까지 효과적으로 대기한다. 다른 실시예에서 이는 필요치 않을지라도, 연결은 MCD가 클라이언트 소프트웨어 갱신 과정(400)의 균형을 완료할 수 있도록 할 수 있다. 분리를 대기하는 동안, MCD는 소프트웨어 갱신에 관련되지 않은 다른 동작들을 수행할 수 있다.
특히, 도 4a 및 도 4b에 도시된 바와 같이, 블록 410에 이어서, 또는 결정 404에 이어서, 아무런 활용가능한 소프트웨어 모듈이 발견되지 않는 경우, 결정(412)에서 MCD가 클라이언트에 연결되는지 여부를 판정한다. 일반적으로, 결정(412)은 MCD가 최근 클라이언트에 연결되었는지 여부에 관한 것일 수 있다. 결정(412)에서 MCD가 연결되지 않은 것으로 판정한 경우, 다른 처리(414)가 선택적으로 클라이언트에 의해 수행될 수 있다. 이러한 다른 처리(414)는 보통 소프트웨어 모듈의 갱신과는 무관한 것이다. 그 후, 결정(416)에서 클라이언트 소프트웨어 갱 신 과정(400)이 종료되어야 하는지 여부를 판정한다. 결정(416)에서 클라이언트 소프트웨어 갱신 과정(400)이 종료되어야 하는 것으로 판정한 경우, 클라이언트 소프트웨어 갱신 과정(400)은 종료된다. 택일적으로, 결정(416)에서 클라이언트 소프트웨어 갱신 과정(400)이 종료되지 않아야 하는 것으로 판정한 경우, 클라이언트 소프트웨어 갱신 과정(400)은 결정(412)을 반복하도록 복귀되어, 클라이언트에 MCD가 연결되기를 기다린다.
일단 결정(412)에서 MCD가 클라이언트에 연결된 것으로 판정한 경우, 결정(418)에서 활용가능한 버전 표식이 존재하는지 여부를 판정한다. 돌아보면, 서버로부터의 버전 응답에 제공되는 정보에 기초하여 클라이언트에서 410에서 활용가능한 버전 표식은 앞서 저장되었다. 결정(418)에서 활용가능한 버전 표식이 존재하는 것으로 판정하면, MCD에 대한 활용가능한 소프트웨어 모듈에 대하여 소프트웨어 모듈 요청이 송신된다(420). 여기서, 소프트웨어 모듈 요청이 서버에 송신되어(420), 활용가능한 소프트웨어 버전 모듈이 클라이언트에 제공되도록 요청한다. 소프트웨어 모듈 요청은 원하는 활용가능한 소프트웨어 모듈의 버전 식별자 및 활용가능한 소프트웨어 모듈을 암호화하기 위하여 사용되는 암호화 키, 즉, 공개 암호화 키를 포함할 수 있다. 다음으로, 결정(422)에서 소프트웨어 모듈 응답이 서버로부터 수신되었는지 여부를 판정한다. 결정(422)에서 소프트웨어 모듈 응답이 아직 수신되지 않은 것으로 판정하면, 클라이언트 소프트웨어 갱신 과정(400)은 이러한 응답을 대기할 수 있다. 일단 결정(422)에서 소프트웨어 모듈 응답이 수신된 것으로 판정하는 경우, 소프트웨어 모듈 응답에 의해 제공되는 암호화된 소프트웨 어 모듈이 MCD에 복사될 수 있다(424). 동작 424에 이어서, 또는 결정 418에서 이어서, 활용가능한 버전 표식이 존재하지 않는 것으로 판정되는 경우, 클라이언트 소프트웨어 갱신 과정(400)은 완료되어 종료된다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른 서버 소프트웨어 갱신 과정(500)의 흐름도이다. 서버 소프트웨어 갱신 과정(500)은, 예를 들어, 본 발명의 일 실시예에 따라서 동작하는 서버에 의해 수행된다. 일례로서, 도 1a를 참조하면, 서버는 서버 장치(106)에 속할 수 있으며, 또는 이에 동작하는 소프트웨어 어플리케이션에 속할 수 있다.
통상, 서버는 복수의 상이한 과정들을 수행할 수 있다. 서버 소프트웨어 갱신 과정(500)은 서버에 의해 수행될 수 있는 과정 중 하나로 간주된다. 따라서, 도 5a 및 도 5b에서 논의되는 처리는 클라이언트 장치(예컨대, 모바일 클라이언트 장치)에 대한 소프트웨어 갱신에 관한 처리이며, 이러한 처리는 서버에서 처리되는 다른 처리와 통합될 수 있다.
서버 소프트웨어 갱신 과정(500)은 결정(502)에서 시작하여, 버전 요청이 수신되었는지 여부를 판정한다. 결정(502)에서 버전 요청이 수신된 것으로 판정하는 경우, MCD에 대한 가장 현재의 소프트웨어 모듈의 버전이 MCD 기술 정보에 기초하여 결정된다(504). 여기서, 클라이언트로부터 수신된 버전 요청은 MCD 기술 정보뿐만 아니라 MCD 상의 소프트웨어 모듈의 현재 버전의 표식을 포함한다. MCD 기술 정보는 MCD의 일반적인 특성, 특징, 또는 속성을 기술하는 정보이다.
다음으로, 결정(506)에서 MCD 상의 소프트웨어 모듈의 현재 버전이 서버로부 터 활용가능한 가장 현재의 버전과 동일한지 여부를 판정한다. 결정(506)에서 MCD 상의 소프트웨어 모듈의 현재 정보가 서버 측에서 활용가능한 가장 현재의 버전과 동일한 것으로 판정하는 경우, 버전 응답이 클라이언트에 대하여 송신되어(508), MCD에 대한 소프트웨어 모듈의 활용가능한 버전이 존재하지 않는다는 것을 나타낸다. 즉, 이러한 경우, MCD 상에서 소프트웨어 모듈을 갱신할 필요가 없다. 반면, 결정(506)에서 MCD 상의 소프트웨어 모듈의 현재 버전이 서버에서 활용가능한 가장 현재의 버전과 동일하지 않은 것으로 판정하는 경우, 버전 응답이 클라이언트에 송신되어(510), MCD에 대한 소프트웨어 모듈의 활용가능한 버전이 존재한다는 것을 나타낸다.
블록 508 및 510에 이어서, 또한, 결정 (502)에 이어서, 버전 요청이 수신되지 않은 경우, 소프트웨어 모듈 요청이 수신되지 않은 경우, 서버 소프트웨어 갱신 과정(500)에 의해 추가의 처리가 수행될 수 있다. 특히, 결정(512)에서 소프트웨어 모듈 요청이 수신된 것으로 판정하는 경우, MCD에 대한 소프트웨어 모듈의 가장 현재의 버전이 검색된다(514). 여기서, MCD에 대한 소프트웨어 모듈의 가장 현재의 버전이 서버로부터 검색된다(514). 즉, 서버는 각종 활용가능한 MCD에 대하여 다양한 버전의 소프트웨어들을 중앙에서 만든다.
다음으로, 검색된 소프트웨어 모듈은 MCD에 대한 공개키를 이용하여 암호화된다(516). 여기서, 소프트웨어 모듈 요청은 검색된 소프트웨어 모듈을 암호화(직접 또는 간접)하는데 사용될 공개키를 제공한다. 공개키는 MCD와 고유하게 관련되는 키 페어의 일부이다. 일 실시예에 있어서, 키 페어는 MCD 상에 저장된다. 검 색된 소프트웨어 모듈이 암호화된 후(516), 소프트웨어 모듈 응답이 클라이언트에 대하여 송신된다(518). 소프트웨어 모듈 응답은 적어도 MCD에 대한 암호화된 소프트웨어 모듈을 포함한다.
그 후, 다른 처리(520)가 서버에서 선택적으로 수행될 수 있다. 그 후, 결정(522)에서, 서버 소프트웨어 갱신 과정(500)이 종료되어야 하는지 여부를 판정한다. 결정(522)에서는 서버 소프트웨어 갱신 과정(500)이 종료되어야 하는 것으로 판정하는 경우, 서버 소프트웨어 갱신 과정(500)은 서버 소프트웨어 갱신 과정(500)의 시작으로 복귀된다. 택일적으로, 결정(522)에서 서버 소프트웨어 갱신 과정(500)이 종료되어야 하는 것으로 판정하는 경우, 서버 소프트웨어 갱신 과정(500)은 종료된다.
일반적으로, 클라이언트 또는 서버는 호스트 장치로서 간주될 수 있다. 도 4a 및 도 5a에 있어서, 클라이언트는 서버와 상호작용하여, SWM의 갱신된 버전이 존재하는지 여부를 판정한다. 본 실시예에 있어서, 서버는 SWM의 갱신된 버전이 존재하는지 여부를 판정하고, 그렇다면, 클라이언트에 갱신된 버전을 통지한다. 그 후, 적절한 시기에, 클라이언트는 MCD에 대한 SWM의 갱신된 버전을 검색하게 된다.
그러나, 또 다른 실시예에 있어서, 클라이언트는 SWM의 갱신된 버전이 존재하는지 여부를 판정할 수 있다. 본 실시예에서는, 도 4a 및 도 4b의 실시예와는 상이한 실시예를 나타낸다. 이러한 실시예에 있어서, 클라이언트는 복수의 상이한 장치들에 대한 가장 현재의 버전의 테이블(또는 리스트)를 주기적으로 서버에 조회 한다. 그 후, 클라이언트는 테이블(상이한 장치들에 대한 가장 현재의 버전을 나타내는 버전 번호들을 포함할 수 있음)을 저장한다. 그 후, MCD가 클라이언트에 연결되는 때에, 클라이언트는 MCD 기술 정보(MCD의 현재의 버전을 포함함)를 취득하고, 이를 저장된 테이블에서 표시하는 바와 같이 그 장치에 대하여 활용가능한 가장 현재의 버전과 비교한다. 활용가능한 소프트웨어 버전이 존재하면, 클라이언트는 서버로부터 적절한 소프트웨어 갱신(예컨대, 버전 번호를 사용하여)을 요청한다. 일단 적절한 소프트웨어 갱신이 수신되면, 활용가능한 소프트웨어 모듈이 MCD에 공급될 수 있다.
도 6은 본 발명의 일 실시예에 따른 모바일 클라이언트 연결 과정(600)의 흐름도이다. 모바일 클라이언트 연결 과정(600)은, 예를 들어, 본 발명의 일 실시예에 따라 동작하는 휴대형 클라이언트에 의해 수행된다. 예를 들어, 휴대형 클라이언트는 모바일 클라이언트 장치(MCD)일 수 있다. 일례로서, 도 1a를 참조하면, MCD는 모바일 클라이언트 장치(110) 또는 이에서 동작하는 소프트웨어 어플리케이션에 속할 수 있다.
모바일 클라이언트 연결 과정(600)은 MCD가 클라이언트에 연결되는지 여부를 판정하는 결정(602)에서 시작한다. 결정(602)에서 클라이언트에 MCD가 유선 또는 무선 수단에 의해서 연결되지 않은 것으로 판정하는 경우, 모바일 클라이언트 연결 과정(600)은 이러한 연결을 대기한다. 즉, 모바일 클라이언트 연결 과정(600)은 일단 MCD와 클라이언트 사이에 연결이 설정되면 호출되게 될 수 있다. 어떠한 경우이건, 일단 결정(602)에서 MCD와 클라이언트 사이에 연결이 존재하는 것으로 판 정하면, MCD 기술 정보와 현재의 버전 식별자가 클라이언트에 제공된다(604). 여기서, 현재의 버전 식별자뿐만 아니라 MCD 기술 정보는 MCD에 의해 유지된다. 그 후, MCD에서 다른 처리가 수행될 수 있다(606). 이러한 다른 처리(606)는 통상 모바일 클라이언트 연결 과정(600)의 일부가 아니라, 콘텍스트를 위해 도 6에 도시되어 있다. 일례로서, 수행될 수 있는 다른 처리(606)의 한 유형은, 예컨대, 음악 라이브러리, 캘린더, 등을 동기화하기 위한 MCD와 클라이언트 사이의 동기화 동작이다. 디지털 자산의 동기화에 대한 추가 세부사항은 미국 특허출원 제10/277,418호(2002년 10월 21일자) "미디어 플레이어와 호스트 컴퓨터 간의 지능적 상호작용(INTELLIGENT INTERACTION BETWEEN MEDIA PLAYER AND HOST COMPUTER)"[Att.Dkt.No.: APL1P228X1]에서 발견될 수 있으며, 본 명세서에 참조로서 포함되고 있다.
일부 부분에서, MCD가 클라이언트에 연결되는 중에, 소프트웨어 갱신이 수행되게 된다. 소프트웨어 갱신은 보안성 있는 방식으로 수행된다. 따라서, 모바일 클라이언트 연결 과정(600)에 따르면, MCD는 클라이언트로부터 암호화된 소프트웨어 모듈을 수신하게 된다. 모바일 클라이언트 연결 과정(600)은 암호화된 소프트웨어 모듈이 수신되었는지 여부를 판정하는 결정(608)을 포함한다. 결정(608)에서 MCD에서 암호화된 소프트웨어 모듈이 수신된 것으로 판정하는 경우, 암호화된 소프트웨어 모듈은 MCD의 메모리에 저장된다(610). 메모리는 플래시 메모리 장치, 디스크 드라이브 장치, 등의 많은 상이한 유형 중 하나일 수 있다. 블록 610에 이어서, 또는 결정 608에 이어서, 암호화된 소프트웨어 모듈이 수신되지 않은 경우, 모 바일 클라이언트 연결 과정(600)은 종료한다.
도 7a 및 도 7b는 본 발명의 일 실시예에 따른 모바일 클라이언트 분리 과정(700)의 흐름도이다. 모바일 클라이언트 분리 과정(700)은, 예를 들어, 본 발명의 일 실시예에 따라서 동작하는 휴대형 클라이언트에 의해 수행된다. 예를 들어, 휴대형 클라이언트는 모바일 클라이언트 장치(MCD)일 수 있다. 일례로서, 도 1a를 참조하면, MCD는 모바일 클라이언트 장치(110) 또는 이에서 동작하는 소프트웨어 어플리케이션에 속할 수 있다.
모바일 클라이언트 연결 과정(700)은 클라이언트로부터 MCD가 분리되었는지 여부를 판정하는 결정(702)에서 시작한다. 결정(702)에서 MCD가 클라이언트로부터 분리되지 않은 것으로 판정하는 경우, 모바일 클라이언트 분리 과정(700)은 이러한 분리를 대기한다. 즉, 모바일 클라이언트 분리 과정(700)은 일단 클라이언트로부터 MCD가 분리되면 개시된다. 따라서, 결정(702)에서, 클라이언트로부터 MCD가 분리된 것으로 판정하는 경우, 결정(704)에서 MCD 상에 암호화된 소프트웨어 모듈이 존재하는지 여부를 판정한다. 여기서, 도 6의 블록 610에 표기한 바와 같이, 모바일 클라이언트 연결 과정(600)이 동작하여, MCD 상에 적절한 암호화된 소프트웨어 모듈을 저장한다. 여기서, 결정 704에서는, MCD 상에 암호화된 소프트웨어 모듈이 저장되었는지 여부에 대하여 결정이 이루어진다.
결정(704)에서 암호화된 소프트웨어 모듈이 MCD 상에 저장된 것으로 판정하는 경우, 암호화된 소프트웨어 모듈이 MCD 내에 제공되는 사설키를 이용하여 복호화된다(706). 여기서, 전술한 바와 같이, MCD는 한 쌍의 암호키를 포함한다. 이 러한 암호키는 전술한 공개키와 사설키를 포함한다. 필요한 사설키를 이용하여 암호화된 소프트웨어 모듈의 복호화가 수행된다. 따라서, 소프트웨어 모듈이 MCD 상의 사용을 위하여 암호화되었다면, 암호화된 소프트웨어 모듈이 적절히 복호화될 수 있을 뿐이다. 즉, 소프트웨어 모듈의 암호화는 MCD 상에 저장된 사설키의 대응부분인 공개키를 이용하여 수행된다.
복호화(706)가 성공적이라고 가정하여, 소프트웨어 모듈이 검증될 수 있다(700). 일 실시예에 있어서, 소프트웨어 모듈이 디지털 서명을 사용하여 검증될 수 있다(700). 디지털 서명의 검증에 의해, 소프트웨어 모듈의 타당성이 설정된다. 예를 들어, MCD의 제조사는 활용되도록 허가되기 전에 소프트웨어 모듈이 인증된 것임(즉, 제조자에 의해 승인됨)을 확인할 수 있다. 그 후, 결정(710)에서 소프트웨어 모듈이 타당한 것인지 여부를 판정한다. 여기서, 타당하기 위해서는, 소프트웨어 모듈은 적절히 복호화되어야 할 뿐만 아니라 성공적으로 인증되어야 한다.
결정(710)에서 소프트웨어 모듈이 타당한 것으로 판정되면, 결정(712)에서 소프트웨어 모듈이 MCD에 적절한 것인지 여부를 판정한다. 여기서, 소프트웨어 모듈이 MCD와 친화성(affiliated)이 있는 경우 MCD에 적합한 것으로 판정될 수 있다. 소프트웨어 모듈이 MCD와 사용하기에 적합한 경우 소프트웨어 모듈은 적절히 친화될 수 있다. 예를 들어, 결정(712)에서 소프트웨어 모듈이 MCD의 모델 및/또는 하드웨어 플랫폼 상에서 사용하기에 적합한 것인지 여부를 판정할 수 있다. 특정 예로서, 소프트웨어 모듈은 MCD의 모델 및/또는 플랫폼에 대한 하나 이상의 식별자를 포함할 수 있으며, 이러한 식별자는 MCD 상에 저장된 동일한 식별자들과 비교될 수 있다.
결정(712)에서 소프트웨어 모듈이 MCD에 적합한 것으로 판정하는 경우, 소프트웨어 모듈은 MCD 상에 인스톨될 수 있다(714). 다음으로, 결정(716)에서 소프트웨어 모듈의 인스톨이 성공적인지 여부를 판정한다. 결정(716)에서 인스톨이 성공적이지 않은 것으로 판정하는 경우, 인스톨(714)이 반복될 수 있다. 그러나, 소프트웨어 모듈의 인스톨이 반복적으로 실패한다면, 소프트웨어 모듈을 인스톨하지 않고서, 모바일 클라이언트 분리 과정(700)이 종료될 수 있다. 반면, 결정(716)에서 소프트웨어 모듈이 MCD 상에 성공적으로 인스톨된 것으로 판정하는 경우, 언인스톨된 소프트웨어 모듈은 삭제될 수 있다(718). 여기서, 언인스톨된 소프트웨어 모듈은 MCD의 메모리에 저장된다(예컨대, 도 6의 블록 610); 따라서, 언인스톨된 소프트웨어 모듈의 삭제(718)가 보안상의 이유로 또한 MCD의 메모리의 활용성을 위해서 수행된다. 또한, 현재의 버전 표식이 MCD에 대하여 갱신된다(720). MCD 상의 소프트웨어 모듈은 갱신되지 않았고, 이제 소프트웨어 모듈의 현재의 버전이므로, 현재의 버전 표식의 갱신(720)은 적절하다. 저장된 현재의 버전 표식은 또한 전술한 바와 같이(도 6의 블록 604) 클라이언트에 대하여 현재의 버전 정보를 제공할 수 있도록 한다. 블록 720에 이어서, 또한 결정 704, 710, 및 712 중 임의의 것에 이어서, 평가된 조건들이 존재하지 않는 경우, 모바일 클라이언트 분리 과정(700)은 완료되어 종료된다.
인증에 있어서, 디지털 서명과 같은 소프트웨어 모듈의 인증(전술한 바와 같 음)이 판매자에 의해 활용될 수 있다. 일례로서, 갱신된 소프트웨어 모듈이 제1 판매자에 의해 획득될 수 있지만, 제2 판매자는 인스톨되기 전에 이에 의해 소프트웨어 모듈이 승인되거나, 그렇지 않다면, 전자 장치에 제공될 것을 필요로 할 수 있다. 예를 들어, 제1 판매자는 소프트웨어 제공자이며, 제2 판매자는 하드웨어 플랫폼 판매자라면, 제1 판매자는 갱신된 소프트웨어 모듈을 보안성 있는 방식으로 전자 장치에 제공할 수 있지만, 제2 판매자는 전자 장치에 인스톨되기 전에 소프트웨어 모듈이 인증 또는 검증될 것을 필요로 할 수 있다. 또한, 제2 판매자는 자신의 암호화 레벨을 제1 판매자에 의해 제공되는 암호화와는 별도로 제공할 수도 있다. 따라서, 일 실시예에 있어서, 제1 판매자의 소프트웨어 모듈은 클라이언트에 대하여 활용가능하게 되기 전에 디지털 서명 및/또는 제2 판매자의 암호와 패키지화될 수 있다.
전술한 바와 같이, 소프트웨어 갱신 과정을 보안화하고 제어하도록 암호키가 사용될 수 있다. 추가의 보안 또는 성능 상의 이유로, 암호키의 조합이 사용될 수 있다. 그 결과, 공개키가 사용되는 한, 소프트웨어 모듈을 직접 암호화하도록 공개키가 사용될 필요는 없다. 일 실시예에 있어서, 암호화 과정은 이하와 같이 동작한다. 먼저 랜덤 암호키(랜덤 키)가 생성된다. 일례로서, 랜덤 키는 128 비트의 AES 키일 수 있으며, 이는 랜덤 대칭키이다. 소프트웨어 모듈은 먼저 랜덤 키를 이용하여 암호화된다. 이는 암호화된 소프트웨어 모듈을 가져온다. 또한, 랜덤 키는 전자 장치에 의해 제공되는 공개키를 이용하여 암호화된다. 이는 암호화된 암호키를 가져온다. 일례에 있어서, 암호화된 암호키는 1024 비트의 RSA 키이 다. 본 실시예에 있어서, 전자 장치(즉, MCD)는 제1 전자 파일로 암호화된 소프트웨어 모듈을 수신하고, 제2 전자 파일로 암호화된 암호키를 수신한다. 그 후, 소프트웨어 모듈을 전자 장치 상에 인스톨하기 위하여, 제2 전자 파일의 암호화된 암호키가 전자 장치에 상주하는 사설키를 이용하여 복호화된다. 그 결과의 암호키는 제1 전자 파일의 암호화된 소프트웨어 모듈을 복호화하기 위하여 사용될 수 있는 랜덤 키이다. 그 후, 소프트웨어 모듈은 "클리어(clear)"하게 되며(즉, 복호화), 전자 장치 상에 인스톨될 수 있다.
본 발명에 따른 소프트웨어 모듈 갱신은 자동화 방식으로 제공될 수 있다. 즉, 클라이언트가 동작가능하게 서버에 연결됨에 따라서, 서버는 클라이언트의 사용자의 참여없이 클라이언트에 대하여 임의의 갱신된 소프트웨어 모듈을 제공할 수 있다. 다른 방법으로, 또 다른 실시예에서, 사용자는 갱신된 소프트웨어 모듈을 인스톨하기 위한 허가를 위해 클라이언트에서(즉, 휴대형 전자 장치) 프롬프트될 수 있다.
본 발명의 다양한 양태, 실시예, 구현예, 또는 특징들은 별도로 또는 조합하여 사용될 수 있다.
본 발명은 소프트웨어에 의해 구현되는 것이 바람직하지만, 하드웨어에서 또는 하드웨어와 소프트웨어의 조합에서 구현될 수도 있다. 본 발명은 또한 컴퓨터 판독가능 매체 상의 컴퓨터 판독가능 코드로서 실시될 수도 있다. 컴퓨터 판독가능 매체로는, 이후에 컴퓨터 시스템에 의해 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 장치가 있다. 컴퓨터 판독가능 매체의 예로서는, ROM, RAM, CD-ROM, DVD, 자기 테이프, 광학 데이터 저장 장치, 반송파 등을 포함한다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 코드가 분산 방식으로 저장 및 실행되도록 네트워크 결합 컴퓨터 시스템 상에서 분산되어 있을 수도 있다.
본 발명의 장점은 다양하다. 상이한 양태, 실시예, 또는 구현예들은 이하의 장점들 중 하나 이상을 부여할 수 있다. 본 발명의 하나의 장점으로서, 보안성 있는 방식으로 네트워크 상에서 소프트웨어 갱신이 수행될 수 있다는 것이다. 소프트웨어 갱신의 보안적인 특성은 소프트웨어의 역설계를 방지한다. 예를 들어, 보안성은 전자 장치에 송신 중에 비인증 간섭 및 소프트웨어의 조사에 대하여 보안을 부여한다. 본 발명의 또 다른 장점은 전자 장치에 의해 사용되는 소프트웨어는 모듈별로 갱신될 수 있다는 점이며, 이는 특히 전자 장치가 상이한 판매자들로부터 소프트웨어 또는 하드웨어를 이용하는 경우에 유용하다. 본 발명의 또 다른 장점은 자동화된 방식으로 소프트웨어 갱신이 수행될 수 있다는 점이며, 따라서, 전자 장치 사용자에 대하여 소프트웨어 갱신에 대한 부담을 지울 필요가 없다.
기재된 설명으로부터 본 발명의 많은 특징과 장점들이 명백하다. 또한, 다수의 변경과 변형이 당업자에 의해 용이하게 이루어질 수 있으므로, 본 발명은 예시된 바와 같은 정확한 구성과 동작으로 제한되어야 하는 것은 아니다. 따라서, 적절한 변형물과 균등물은 본 발명의 범주에 속하는 것으로 볼 수 있다.

Claims (31)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 휴대형 전자 장치 상의 소프트웨어 모듈을 업그레이드하는 방법으로서,
    네트워크 기반의 서버 장치에서 장치 정보를 수신하는 단계 - 상기 장치 정보는 상기 휴대형 전자 장치에 관한 것이며, 장치 기술 정보, 공개 암호키 및 상기 휴대형 전자 장치 상의 상기 소프트웨어 모듈에 대한 현재의 버전 표시자를 포함함 -;
    상기 소프트웨어 모듈의 갱신된 버전이 상기 서버 장치로부터 활용가능한지 여부를 판정하는 단계 - 상기 판정은 상기 휴대형 전자 장치에 관한 상기 장치 기 술 정보에 기초함 -;
    상기 판정하는 단계에서 상기 소프트웨어 모듈의 갱신된 버전이 상기 서버 장치로부터 활용가능한 것으로 판정하는 경우, 상기 소프트웨어 모듈의 갱신된 버전을 암호화하는 단계 - 상기 암호화는 상기 휴대형 전자 장치에 의해 제공되는 상기 공개 암호키를 이용함 -; 및
    상기 암호화된 소프트웨어 모듈을 상기 휴대형 전자 장치에 전송하는 단계
    를 포함하는 방법.
  21. 제20항에 있어서,
    상기 휴대형 전자 장치에서 상기 암호화된 소프트웨어 모듈을 수신하는 단계;
    상기 휴대형 전자 장치 상에 상주하는 사설 암호키를 액세스하는 단계; 및
    상기 사설 암호키를 이용하여 상기 휴대형 전자 장치에서 상기 암호화된 소프트웨어 모듈을 복호화하는 단계
    를 더 포함하는 방법.
  22. 제21항에 있어서,
    상기 복호화가 성공적으로 완료된 후에 상기 전자 장치 상에 상기 소프트웨어 모듈을 인스톨하는 단계를 더 포함하는 방법.
  23. 제21항에 있어서,
    상기 복호화된 소프트웨어 모듈을 인증하는 단계; 및
    상기 복호화와 상기 인증이 성공적으로 완료된 후에 상기 전자 장치 상에 상기 소프트웨어 모듈을 인스톨하는 단계
    를 더 포함하는 방법.
  24. 제20항에 있어서,
    상기 암호화하는 단계는, (i) 랜덤 키를 이용하여 상기 소프트웨어 모듈의 상기 갱신된 버전을 암호화하는 단계; 및 (ii) 상기 공개 암호키를 이용하여 상기 랜덤 키를 암호화하는 단계를 포함하며,
    상기 전송하는 단계는, 상기 암호화된 소프트웨어 모듈과 상기 암호화된 랜덤 키를 전송하도록 동작하는 방법.
  25. 제24항에 있어서,
    상기 휴대형 전자 장치에서 상기 암호화된 소프트웨어 모듈 및 상기 암호화된 랜덤 키를 수신하는 단계;
    상기 휴대형 전자 장치 상에 상주하는 사설 암호키를 액세스하는 단계;
    상기 사설 암호키를 이용하여 상기 암호화된 랜덤 키를 복호화하여 획득된 랜덤 키를 제공하는 단계; 및
    상기 획득된 랜덤 키를 이용하여 상기 휴대형 전자 장치에서 상기 암호화된 소프트웨어 모듈을 복호화하는 단계
    를 더 포함하는 방법.
  26. 제25항에 있어서,
    상기 복호화가 성공적으로 완료된 후에 상기 전자 장치 상에 상기 소프트웨어 모듈을 인스톨하는 단계
    를 더 포함하는 방법.
  27. 적어도 컴퓨팅 장치 상의 소프트웨어 모듈을 업그레이드하기 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능 매체로서,
    네트워크 기반의 서버 장치에서 장치 정보를 수신하기 위한 컴퓨터 프로그램 코드 - 상기 장치 정보는 상기 컴퓨팅 장치에 관한 것이며, 장치 기술 정보, 암호키, 및 상기 컴퓨팅 장치 상의 상기 소프트웨어 모듈에 대한 현재의 버전 표시자를 포함함 -;
    상기 소프트웨어 모듈의 갱신된 버전이 상기 서버 장치로부터 활용가능한지 여부를 판정하기 위한 컴퓨터 프로그램 코드 - 상기 판정은 상기 컴퓨팅 장치에 관한 상기 장치 기술 정보에 기초함 -;
    상기 판정에서 상기 소프트웨어 모듈의 갱신된 버전이 상기 서버 장치로부터 활용가능한 것으로 판정하는 경우, 상기 소프트웨어 모듈의 갱신된 버전을 암호화하기 위한 컴퓨터 프로그램 코드 - 상기 암호화는 상기 컴퓨팅 장치에 의해 제공되 는 상기 암호키를 이용함 -; 및
    상기 암호화된 소프트웨어 모듈을 상기 컴퓨팅 장치에 전송하기 위한 컴퓨터 프로그램 코드
    를 포함하는 컴퓨터 판독가능 매체.
  28. 삭제
  29. 삭제
  30. 네트워크 기반의 소프트웨어 갱신 시스템으로서,
    모바일 클라이언트 장치들 - 상기 모바일 클라이언트 장치들 각각은 해당하는 모바일 클라이언트 장치에 상주하는 적어도 하나의 소프트웨어 모듈에 따라서 동작함 -;
    복수의 소프트웨어 모듈들에 액세스하는 서버 장치 - 상기 소프트웨어 모듈들 각각은 상기 모바일 클라이언트 장치들 중 하나 이상에 특정적으로 사용하기 위한 것임 -; 및
    상기 서버 장치와 상기 모바일 클라이언트 장치들에 동작가능하게 연결가능한 적어도 하나의 클라이언트 장치 - 상기 클라이언트 장치는 디지털 미디어 자산에 대한 미디어 관리 어플리케이션을 동작시킴 -
    를 포함하고,
    상기 디지털 미디어 자산은 상기 소프트웨어 모듈들 중 적어도 하나를 갖는 디지털 권한 관리 라이브러리(library)에 의해 보호되고,
    상기 클라이언트 장치는 제1 데이터 링크 상에서 상기 서버 장치와 상호작용하여 갱신될 상기 모바일 클라이언트 장치에 대하여 갱신된 소프트웨어 모듈을 검색하고, 상기 갱신된 소프트웨어 모듈은 상기 디지털 권한 관리 라이브러리에 관한 것이며, 상기 클라이언트 장치는 그 후 제2 데이터 링크 상에서 상기 모바일 클라이언트 장치와 상호작용하여, 갱신될 상기 모바일 클라이언트 장치에 상기 갱신된 소프트웨어 모듈을 제공하며,
    상기 서버 장치는 상기 모바일 클라이언트 장치 상의 소프트웨어 모듈을 업그레이드하기 위한 컴퓨터 프로그램 코드를 적어도 저장 및 동작시키고, 상기 모바일 클라이언트 장치 상의 상기 소프트웨어 모듈을 업그레이드하기 위한 상기 컴퓨터 프로그램 코드는 적어도
    상기 클라이언트 장치를 통해 상기 서버 장치에서 장치 정보를 수신하기 위한 컴퓨터 프로그램 코드 - 상기 장치 정보는 상기 모바일 클라이언트 장치에 관한 것이고, 장치 기술 정보, 암호키 및 상기 모바일 클라이언트 장치 상의 상기 소프트웨어 모듈에 대한 현재의 버전 표시자를 포함함 -;
    상기 소프트웨어 모듈의 갱신된 버전이 상기 서버 장치로부터 활용가능한지 판정하기 위한 컴퓨터 프로그램 코드 - 상기 판정은 모바일 클라이언트 장치에 관한 상기 장치 기술 정보에 기초함 -;
    상기 판정이 상기 소프트웨어 모듈의 갱신된 버전이 상기 서버 장치로부터 활용가능한 것으로 판정하는 경우, 상기 소프트웨어 모듈의 상기 갱신된 버전을 암호화하기 위한 컴퓨터 프로그램 코드 - 상기 암호화는 모바일 클라이언트 장치에 대응하는 상기 암호키를 이용함 -; 및
    상기 모바일 클라이언트 장치에 대한 상기 클라이언트 장치에 상기 암호화된 소프트웨어 모듈을 전송하기 위한 컴퓨터 프로그램 코드
    를 포함하는, 네트워크 기반의 소프트웨어 갱신 시스템.
  31. 제30항에 있어서,
    순차적으로 상기 모바일 클라이언트 장치는 기존의 소프트웨어를 상기 갱신된 소프트웨어 모듈로 대체하는, 네트워크 기반의 소프트웨어 갱신 시스템.
KR1020087004435A 2005-07-26 2006-07-26 보안 소프트웨어 갱신 KR101000191B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/190,735 2005-07-26
US11/190,735 US9489496B2 (en) 2004-11-12 2005-07-26 Secure software updates

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020107021987A Division KR101067547B1 (ko) 2005-07-26 2006-07-26 보안 소프트웨어 갱신

Publications (2)

Publication Number Publication Date
KR20080032228A KR20080032228A (ko) 2008-04-14
KR101000191B1 true KR101000191B1 (ko) 2010-12-10

Family

ID=37311834

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020107021987A KR101067547B1 (ko) 2005-07-26 2006-07-26 보안 소프트웨어 갱신
KR1020087004435A KR101000191B1 (ko) 2005-07-26 2006-07-26 보안 소프트웨어 갱신

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020107021987A KR101067547B1 (ko) 2005-07-26 2006-07-26 보안 소프트웨어 갱신

Country Status (9)

Country Link
US (4) US9489496B2 (ko)
EP (2) EP1907917B1 (ko)
JP (1) JP2009503698A (ko)
KR (2) KR101067547B1 (ko)
CN (1) CN101258505B (ko)
AU (1) AU2006272577A1 (ko)
CA (1) CA2616358C (ko)
HK (1) HK1174122A1 (ko)
WO (1) WO2007014314A2 (ko)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050065879A1 (en) 2003-09-18 2005-03-24 Convergys Information Management Group, Inc. System and method for web service billing
US9489496B2 (en) 2004-11-12 2016-11-08 Apple Inc. Secure software updates
US7809949B2 (en) 2005-07-26 2010-10-05 Apple Inc. Configuration of a computing device in a secure manner
KR101119320B1 (ko) * 2005-04-29 2012-03-15 엘지전자 주식회사 이동저장 장치의 펌웨어 업데이트 장치 및 방법
US7802092B1 (en) * 2005-09-30 2010-09-21 Blue Coat Systems, Inc. Method and system for automatic secure delivery of appliance updates
US8024406B1 (en) 2005-11-18 2011-09-20 Convergys Cmg Utah, Inc. System and method for dispensing e-Care
EP1876549A1 (de) * 2006-07-07 2008-01-09 Swisscom Mobile AG Verfahren und System zur verschlüsselten Datenübertragung
CN101132573A (zh) * 2006-08-23 2008-02-27 中兴通讯股份有限公司 一种终端批量升级的实现方法
US8509754B2 (en) * 2006-12-29 2013-08-13 United States Cellular Corporation Distributing mobile-device applications
JP5034993B2 (ja) * 2007-02-07 2012-09-26 ブラザー工業株式会社 情報処理装置、および情報処理方法
WO2008153416A1 (en) * 2007-06-15 2008-12-18 Murray Mcgovern Mobile device dynamic update
US8701102B2 (en) * 2007-06-27 2014-04-15 Microsoft Corporation Techniques for automatic software provisioning
JP5136012B2 (ja) * 2007-11-16 2013-02-06 富士通株式会社 データ送付方法
US8655785B2 (en) * 2008-02-10 2014-02-18 Safenet Data Security (Israel) Ltd. Computer data product license installation / update confirmation
US8990360B2 (en) * 2008-02-22 2015-03-24 Sonos, Inc. System, method, and computer program for remotely managing a digital device
US20100058317A1 (en) * 2008-09-02 2010-03-04 Vasco Data Security, Inc. Method for provisioning trusted software to an electronic device
US9405939B2 (en) * 2008-10-07 2016-08-02 Arm Limited Data processing on a non-volatile mass storage device
CN101437224A (zh) * 2008-12-22 2009-05-20 中兴通讯股份有限公司 移动终端软件的更新方法和移动终端
US8495311B2 (en) * 2009-06-25 2013-07-23 International Business Machines Corporation Updating shared variables atomically
US8230176B2 (en) * 2009-06-26 2012-07-24 International Business Machines Corporation Reconfigurable cache
US9047445B2 (en) * 2009-06-30 2015-06-02 Sandisk Technologies Inc. Memory device and method for updating a security module
US8880736B2 (en) 2009-07-09 2014-11-04 Simon Cooper Methods and systems for archiving and restoring securely installed applications on a computing device
EP2312437A1 (en) * 2009-09-30 2011-04-20 Thomson Licensing Detecting client software versions
DE102009051350A1 (de) 2009-10-30 2011-05-05 Continental Automotive Gmbh Verfahren zum Betreiben eines Tachographen und Tachograph
KR20110064697A (ko) * 2009-12-08 2011-06-15 삼성전자주식회사 정보 업데이트 방법 및 그 장치
US20110238402A1 (en) * 2010-03-23 2011-09-29 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US8589667B2 (en) 2010-04-19 2013-11-19 Apple Inc. Booting and configuring a subsystem securely from non-local storage
KR101111615B1 (ko) * 2010-06-01 2012-02-15 서울통신기술 주식회사 휴대용 단말기의 프로그램 업데이트 장치 및 방법
WO2012033489A1 (en) 2010-09-08 2012-03-15 Hewlett-Packard Development Company, L.P. Secure upgrade supplies and methods
ES2902644T3 (es) * 2011-02-11 2022-03-29 Siemens Healthcare Diagnostics Inc Sistema y método para actualización segura de software
CN102270149B (zh) * 2011-08-19 2015-01-07 深圳市凯立德科技股份有限公司 一种导航设备管理装置及方法
US9881151B2 (en) * 2011-08-31 2018-01-30 Lenovo (Singapore) Pte. Ltd. Providing selective system privileges on an information handling device
DE102011084569B4 (de) * 2011-10-14 2019-02-21 Continental Automotive Gmbh Verfahren zum Betreiben eines informationstechnischen Systems und informationstechnisches System
US8842840B2 (en) 2011-11-03 2014-09-23 Arvind Gidwani Demand based encryption and key generation and distribution systems and methods
US8832018B2 (en) * 2012-05-22 2014-09-09 Sap Ag Decision service manager
DE102012022875A1 (de) * 2012-11-22 2014-05-22 Giesecke & Devrient Gmbh Verfahren und System zur Applikationsinstallation
CN103873440B (zh) * 2012-12-11 2017-03-22 北京旋极信息技术股份有限公司 一种应用程序的升级方法和系统
US9286047B1 (en) 2013-02-13 2016-03-15 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
US20140283133A1 (en) * 2013-03-13 2014-09-18 Rockwell Automation Technologies, Inc. Code-enabled remote activation of software for industrial automation systems
US9286049B2 (en) * 2013-03-26 2016-03-15 Google Inc. Systems, methods, and computer program products for managing service installation
CN104375850A (zh) * 2013-08-15 2015-02-25 鸿富锦精密工业(深圳)有限公司 软件程序更新系统及方法
US9241355B2 (en) 2013-09-30 2016-01-19 Sonos, Inc. Media system access via cellular network
US10296884B2 (en) 2013-09-30 2019-05-21 Sonos, Inc. Personalized media playback at a discovered point-of-sale display
US9418229B2 (en) * 2013-10-28 2016-08-16 Disney Enterprises, Inc. Firmware security
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
US9436455B2 (en) 2014-01-06 2016-09-06 Apple Inc. Logging operating system updates of a secure element of an electronic device
US9934014B2 (en) * 2014-08-22 2018-04-03 Apple Inc. Automatic purposed-application creation
EP2991314A1 (en) * 2014-08-25 2016-03-02 Gemalto SA Method and first device for loading an application
KR102028197B1 (ko) 2015-02-11 2019-10-04 한국전자통신연구원 하드웨어 보안 모듈, 상기 하드웨어 보안 모듈에 저장된 무결성 검증 값을 업데이트하는 방법, 상기 하드웨어 보안 모듈을 이용하여 단말에 저장된 프로그램을 업데이트하는 방법
CN104739518B (zh) * 2015-04-09 2017-03-29 辛勤 用于便携式生理参数测量设备的程序更新的方法及系统
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US9800497B2 (en) 2015-05-27 2017-10-24 Cisco Technology, Inc. Operations, administration and management (OAM) in overlay data center environments
EP3258406A4 (en) * 2015-06-04 2018-03-07 Huawei Technologies Co., Ltd. Software security protection method and device
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
US10089099B2 (en) * 2015-06-05 2018-10-02 Cisco Technology, Inc. Automatic software upgrade
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10033766B2 (en) 2015-06-05 2018-07-24 Cisco Technology, Inc. Policy-driven compliance
US9917687B2 (en) * 2015-10-12 2018-03-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
EP3363175A1 (en) * 2015-10-15 2018-08-22 Otis Elevator Company Software updating device
US9948512B2 (en) 2016-01-14 2018-04-17 Veniam, Inc. Systems and methods for remote configuration update and distribution in a network of moving things
EP3217281A3 (de) 2016-03-10 2018-02-14 Giesecke+Devrient Mobile Security GmbH Verfahren zur verwaltung der kartensoftware einer smartcard
US10931629B2 (en) 2016-05-27 2021-02-23 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10171357B2 (en) 2016-05-27 2019-01-01 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10937019B2 (en) 2016-06-08 2021-03-02 Square, Inc. Wireless communication system with auxiliary antenna
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
US10318953B2 (en) 2016-06-29 2019-06-11 Square, Inc. Near field communication flex circuit
US10708183B2 (en) 2016-07-21 2020-07-07 Cisco Technology, Inc. System and method of providing segment routing as a service
US10594599B2 (en) 2016-08-26 2020-03-17 Cisco Technology, Inc. Fibre channel fabric slow drain mitigation
US10972388B2 (en) 2016-11-22 2021-04-06 Cisco Technology, Inc. Federated microburst detection
CN106789088A (zh) * 2017-02-08 2017-05-31 上海诺行信息技术有限公司 一种软件版本签名机制
CN108574588B (zh) * 2017-03-10 2023-09-15 中兴通讯股份有限公司 客户端、服务端及差异化升级方法
US10708152B2 (en) 2017-03-23 2020-07-07 Cisco Technology, Inc. Predicting application and network performance
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10873794B2 (en) 2017-03-28 2020-12-22 Cisco Technology, Inc. Flowlet resolution for application performance monitoring and management
US10949189B2 (en) * 2017-06-28 2021-03-16 Square, Inc. Securely updating software on connected electronic devices
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
US10635820B1 (en) 2017-09-29 2020-04-28 Square, Inc. Update policy-based anti-rollback techniques
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
AU2018356262C1 (en) 2017-10-27 2022-03-03 Inventio Ag Safety system for a building-related passenger transportation system
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
CN107958140B (zh) * 2017-12-22 2020-08-18 金蝶蝶金云计算有限公司 加密许可文件的生成方法、装置、计算机设备和存储介质
US11233821B2 (en) 2018-01-04 2022-01-25 Cisco Technology, Inc. Network intrusion counter-intelligence
US11765046B1 (en) 2018-01-11 2023-09-19 Cisco Technology, Inc. Endpoint cluster assignment and query generation
CN108268270B (zh) * 2018-01-16 2021-07-06 北京品驰医疗设备有限公司 医疗设备的应用程序更新方法、设备和系统
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching
US10999149B2 (en) 2018-01-25 2021-05-04 Cisco Technology, Inc. Automatic configuration discovery based on traffic flow data
US10917438B2 (en) 2018-01-25 2021-02-09 Cisco Technology, Inc. Secure publishing for policy updates
US10826803B2 (en) 2018-01-25 2020-11-03 Cisco Technology, Inc. Mechanism for facilitating efficient policy updates
US10798015B2 (en) 2018-01-25 2020-10-06 Cisco Technology, Inc. Discovery of middleboxes using traffic flow stitching
US10873593B2 (en) 2018-01-25 2020-12-22 Cisco Technology, Inc. Mechanism for identifying differences between network snapshots
US11128700B2 (en) 2018-01-26 2021-09-21 Cisco Technology, Inc. Load balancing configuration based on traffic flow telemetry
WO2019239191A1 (en) * 2018-06-14 2019-12-19 Sony Corporation Methods, wireless modules, electronic devices and server devices
US10977024B2 (en) 2018-06-15 2021-04-13 Sierra Wireless, Inc. Method and apparatus for secure software update
US11102251B1 (en) 2019-08-02 2021-08-24 Kandji, Inc. Systems and methods for deploying configurations on computing devices and validating compliance with the configurations during scheduled intervals
DE102019214922A1 (de) * 2019-09-27 2021-04-01 Siemens Mobility GmbH Konfigurationsverfahren für eine Eisenbahnsignalanlage und Aktualisierungssystem
CN110764782B (zh) * 2019-10-31 2021-01-26 贵阳动视云科技有限公司 软件的保护方法及装置
CN112585905B (zh) * 2019-11-12 2021-11-19 华为技术有限公司 一种设备升级方法及相关设备
US10997297B1 (en) * 2019-12-06 2021-05-04 Western Digital Technologies, Inc. Validating firmware for data storage devices
KR102199420B1 (ko) * 2020-04-08 2021-01-06 쿠팡 주식회사 시스템을 관리하기 위한 방법 및 이를 위한 장치
CN112769565B (zh) * 2021-01-15 2022-12-23 中国工商银行股份有限公司 密码加密算法的升级方法、装置、计算设备和介质
DE102021201572A1 (de) * 2021-02-18 2022-08-18 Robert Bosch Gesellschaft mit beschränkter Haftung Techniken zum update einer software-komponente
WO2022211899A1 (en) * 2021-03-30 2022-10-06 Visa International Service Association Agile cryptographic deployment service
US11461459B1 (en) 2021-11-02 2022-10-04 Kandji, Inc. User device authentication gateway module
US20230237027A1 (en) * 2022-01-27 2023-07-27 Dell Products L.P. Server Device Updates Using Update Baselines Tagged Across Multiple Management Consoles
CN116243939B (zh) * 2023-05-11 2023-07-21 深圳市驰普科达科技有限公司 软件的安装方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004075092A1 (en) * 2003-02-21 2004-09-02 Matsushita Electric Industrial Co., Ltd. Software-management system, recording medium, and information-processing device
US20040187011A1 (en) 2003-03-18 2004-09-23 Lee Long K. Prevention of unauthorized software distribution

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01117562A (ja) 1987-10-30 1989-05-10 Nec Corp フアクシミリ装置のソフトウエア更新方式
DE69534757T2 (de) 1994-09-15 2006-08-31 International Business Machines Corp. System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
US7761910B2 (en) * 1994-12-30 2010-07-20 Power Measurement Ltd. System and method for assigning an identity to an intelligent electronic device
US5774551A (en) * 1995-08-07 1998-06-30 Sun Microsystems, Inc. Pluggable account management interface with unified login and logout and multiple user authentication services
US5965408A (en) * 1996-07-09 1999-10-12 Diversa Corporation Method of DNA reassembly by interrupting synthesis
US5708709A (en) 1995-12-08 1998-01-13 Sun Microsystems, Inc. System and method for managing try-and-buy usage of application programs
JP3486043B2 (ja) * 1996-03-11 2004-01-13 株式会社東芝 ソフトウエア流通システムの動作方法及びソフトウエアシステム
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US6643506B1 (en) * 1996-08-07 2003-11-04 Telxon Corporation Wireless software upgrades with version control
US6067582A (en) 1996-08-13 2000-05-23 Angel Secure Networks, Inc. System for installing information related to a software application to a remote computer over a network
US6023763A (en) * 1997-04-23 2000-02-08 Fisher Controls International, Inc. Method of and apparatus for protecting and upgrading software using a removable hardlock
US5974454A (en) * 1997-11-14 1999-10-26 Microsoft Corporation Method and system for installing and updating program module components
US6151708A (en) * 1997-12-19 2000-11-21 Microsoft Corporation Determining program update availability via set intersection over a sub-optical pathway
US6141010A (en) * 1998-07-17 2000-10-31 B. E. Technology, Llc Computer interface method and apparatus with targeted advertising
US6314566B1 (en) * 1998-09-29 2001-11-06 Apple Computer, Inc. Method and apparatus for “Just-in-Time” dynamic loading and unloading of computer software libraries
US6434695B1 (en) * 1998-12-23 2002-08-13 Apple Computer, Inc. Computer operating system using compressed ROM image in RAM
JP2000276335A (ja) 1999-03-29 2000-10-06 Nec Soft Ltd プログラム自動更新システム
CA2388565A1 (en) * 1999-04-21 2000-10-26 Research Investment Network, Inc. System, method and article of manufacture for updating content stored on a portable storage medium
AU2421701A (en) 1999-06-03 2001-04-17 Igt Method and device for implementing a downloadable software delivery system
US6647494B1 (en) * 1999-06-14 2003-11-11 Intel Corporation System and method for checking authorization of remote configuration operations
US7003667B1 (en) * 1999-10-04 2006-02-21 Canon Kabushiki Kaisha Targeted secure printing
US6976053B1 (en) * 1999-10-14 2005-12-13 Arcessa, Inc. Method for using agents to create a computer index corresponding to the contents of networked computers
JP2001175468A (ja) * 1999-12-20 2001-06-29 Sony Corp ソフトウエア使用制御方法とその装置
US8156074B1 (en) * 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
DE10008974B4 (de) 2000-02-25 2005-12-29 Bayerische Motoren Werke Ag Signaturverfahren
US7155415B2 (en) * 2000-04-07 2006-12-26 Movielink Llc Secure digital content licensing system and method
JP4067757B2 (ja) * 2000-10-31 2008-03-26 株式会社東芝 プログラム配布システム
US20040068721A1 (en) 2000-11-17 2004-04-08 O'neill Patrick Network for updating firmware and / or software in wireless communication devices
CA2414281C (en) 2000-11-17 2009-06-02 Bitfone Corporation System and method for updating and distributing information
US20020112047A1 (en) 2000-12-05 2002-08-15 Rakesh Kushwaha System and method for wireless data terminal management using general packet radio service network
US20020112161A1 (en) * 2001-02-13 2002-08-15 Thomas Fred C. Method and system for software authentication in a computer system
US7114021B2 (en) * 2001-03-01 2006-09-26 Symbol Technologies, Inc. System and method providing configuration services for communications devices
JPWO2002075525A1 (ja) * 2001-03-19 2004-07-08 ソニー株式会社 ソフトウエア更新システム、ソフトウエア更新方法、およびソフトウエア更新プログラム
EP1256877A1 (en) * 2001-05-10 2002-11-13 Hewlett-Packard Company, A Delaware Corporation Manufacture of computer systems
US7095858B2 (en) * 2001-05-10 2006-08-22 Ranco Incorporated Of Delaware System and method for securely upgrading firmware
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US6973535B2 (en) * 2001-09-14 2005-12-06 Cornice, Inc. Digital device configuration and method
US20030167409A1 (en) * 2002-03-04 2003-09-04 Lester Sussman Secure electronic directory and catalog synchronization using email to trigger synchronization
US7386877B2 (en) * 2002-07-12 2008-06-10 Sun Microsystems, Inc. Specifying a repository for an authentication token in a distributed computing system
SE0202451D0 (sv) * 2002-08-15 2002-08-15 Ericsson Telefon Ab L M Flexible Sim-Based DRM agent and architecture
US20040098715A1 (en) * 2002-08-30 2004-05-20 Parixit Aghera Over the air mobile device software management
WO2004046936A1 (ja) * 2002-11-20 2004-06-03 Sony Corporation 記録システムおよび方法、記録装置および方法、入力装置および方法、再生システムおよび方法、再生装置および方法、記録媒体、並びにプログラム
US7440571B2 (en) * 2002-12-03 2008-10-21 Nagravision S.A. Method for securing software updates
AU2003296056A1 (en) * 2002-12-20 2004-07-14 Matsushita Electric Industrial Co., Ltd. Information management system
GB2412882A (en) * 2002-12-23 2005-10-12 Gametech International Inc Enhanced gaming system
CN100440190C (zh) * 2002-12-26 2008-12-03 成都卫士通信息产业股份有限公司 代理模式安全远程接入方法
US20040167859A1 (en) * 2003-02-14 2004-08-26 Richard Mirabella Software license management system configurable for post-use payment business models
US7845014B2 (en) * 2003-03-28 2010-11-30 Sony Corporation Method and apparatus for implementing digital rights management
US7555657B2 (en) * 2003-03-28 2009-06-30 Ricoh Company, Ltd. Communication device, software update device, software update system, software update method, and program
JP2004303074A (ja) * 2003-03-31 2004-10-28 Canon Inc 画像形成装置及びサーバとその制御方法、プログラム及び記憶媒体
US7975147B1 (en) * 2003-03-31 2011-07-05 Hewlett-Packard Development Company, L.P. Electronic device network supporting enciphering and deciphering and update generation in electronic devices
US7577849B2 (en) * 2003-04-02 2009-08-18 Microsoft Corporation Keyed-build system for controlling the distribution of software
CN101241735B (zh) * 2003-07-07 2012-07-18 罗威所罗生股份有限公司 重放加密的视听内容的方法
US7873956B2 (en) * 2003-09-25 2011-01-18 Pantech & Curitel Communications, Inc. Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor
WO2005053323A2 (en) * 2003-11-19 2005-06-09 Idea Place Corporation Groupware systems and methods
US20050216548A1 (en) * 2004-03-04 2005-09-29 Brian Wormington Method and system for digital content distribution
WO2005107417A2 (en) * 2004-05-04 2005-11-17 Price Robert M System and method for communicating with electronic devices
US7366589B2 (en) * 2004-05-13 2008-04-29 General Motors Corporation Method and system for remote reflash
US7707405B1 (en) * 2004-09-21 2010-04-27 Avaya Inc. Secure installation activation
US9489496B2 (en) 2004-11-12 2016-11-08 Apple Inc. Secure software updates
US7730326B2 (en) 2004-11-12 2010-06-01 Apple Inc. Method and system for updating firmware stored in non-volatile memory
US7809949B2 (en) * 2005-07-26 2010-10-05 Apple Inc. Configuration of a computing device in a secure manner
EP1659810B1 (en) 2004-11-17 2013-04-10 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Updating configuration parameters in a mobile terminal
US20060168578A1 (en) * 2005-01-21 2006-07-27 U-Turn Media Corporation Methods and systems for managing a mobile client in a client-server system connected via a public network
US7774596B2 (en) * 2005-02-02 2010-08-10 Insyde Software Corporation System and method for updating firmware in a secure manner
WO2006094117A2 (en) * 2005-03-01 2006-09-08 Mfoundry Application program update deployment to a mobile device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004075092A1 (en) * 2003-02-21 2004-09-02 Matsushita Electric Industrial Co., Ltd. Software-management system, recording medium, and information-processing device
US20040187011A1 (en) 2003-03-18 2004-09-23 Lee Long K. Prevention of unauthorized software distribution

Also Published As

Publication number Publication date
KR20080032228A (ko) 2008-04-14
CN101258505B (zh) 2011-12-14
KR101067547B1 (ko) 2011-09-27
CN101258505A (zh) 2008-09-03
KR20100121535A (ko) 2010-11-17
EP1907917A2 (en) 2008-04-09
US10432593B2 (en) 2019-10-01
US9489496B2 (en) 2016-11-08
CA2616358C (en) 2019-01-22
US20200084188A1 (en) 2020-03-12
EP1907917B1 (en) 2017-11-01
US20180302385A1 (en) 2018-10-18
JP2009503698A (ja) 2009-01-29
EP2482221A1 (en) 2012-08-01
US9948617B2 (en) 2018-04-17
WO2007014314A2 (en) 2007-02-01
US20170142079A1 (en) 2017-05-18
EP2482221B1 (en) 2015-11-18
WO2007014314A3 (en) 2007-11-22
US11178121B2 (en) 2021-11-16
US20070028120A1 (en) 2007-02-01
CA2616358A1 (en) 2007-02-01
HK1174122A1 (zh) 2013-05-31
AU2006272577A1 (en) 2007-02-01

Similar Documents

Publication Publication Date Title
KR101000191B1 (ko) 보안 소프트웨어 갱신
KR101224749B1 (ko) 파일 암호화 및 복호화를 위한 다수의 키를 관리하는시스템 및 방법
WO2020093214A1 (zh) 一种应用程序登录方法、应用程序登录装置及移动终端
KR101861401B1 (ko) 장치 기능과 애플리케이션의 결합
US8060751B2 (en) Access-control method for software module and programmable electronic device therefor
JP4005026B2 (ja) プログラムのセキュアな配布方法及び装置
JP2011507091A (ja) モバイル・コンピューティング装置上のソフトウェア・アプリケーションを管理するための方法およびシステム
JP4294488B2 (ja) プログラムのセキュアな配布方法及び装置
JP7174237B2 (ja) 鍵生成装置、鍵更新方法および鍵更新プログラム
JPWO2008004525A1 (ja) 情報処理装置、情報記録装置、情報処理システム、プログラムアップデート方法、プログラムおよび集積回路
JP2013514587A (ja) 証明書失効リストを用いたコンテンツ管理方法
CN103731395A (zh) 文件的处理方法及系统
US8638932B2 (en) Security method and system and computer-readable medium storing computer program for executing the security method
US20080034091A1 (en) Portable computer accounts
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
AU2011202785B2 (en) Secure software updates
US20240022418A1 (en) Cryptographic processing
JP2006092382A (ja) ソフトウェアのライセンス管理方法、システムおよびプログラム
CN112805702A (zh) 仿冒app识别方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
A107 Divisional application of patent
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141126

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191029

Year of fee payment: 10