KR20110085894A - 소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스 - Google Patents

소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스 Download PDF

Info

Publication number
KR20110085894A
KR20110085894A KR1020110003857A KR20110003857A KR20110085894A KR 20110085894 A KR20110085894 A KR 20110085894A KR 1020110003857 A KR1020110003857 A KR 1020110003857A KR 20110003857 A KR20110003857 A KR 20110003857A KR 20110085894 A KR20110085894 A KR 20110085894A
Authority
KR
South Korea
Prior art keywords
software application
storage device
processor
memory
application
Prior art date
Application number
KR1020110003857A
Other languages
English (en)
Inventor
이브 마에트
마르 엘루아르
Original Assignee
톰슨 라이센싱
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰슨 라이센싱 filed Critical 톰슨 라이센싱
Publication of KR20110085894A publication Critical patent/KR20110085894A/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
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/12Protecting executable software
    • 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/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs

Abstract

본 발명은 상기 소프트웨어 애플리케이션의 실행 방법 및 시스템에 관한 것이다. 저장 디바이스(120)는 제 1 메모리(122)에 소프트웨어 애플리케이션(1221)을 저장한다. 소프트웨어 애플리케이션(1221)은 계산 디바이스(110)에 의해 실행될 때, 저장 디바이스(120)를 인증하는 코드를 포함한다. 저장 디바이스(120)는 소프트웨어 애플리케이션(1221)의 무결성을 검증하고(230), 성공적인 검증시, 계산 디바이스(110)에 소프트웨어 애플리케이션(1221)을 송신한다. 계산 디바이스(110)는 소프트웨어 애플리케이션(1221)을 실행하는데, 이 소프트웨어 애플리케이션(1221)은 저장디바이스(120)를 인증한다(250). 만일 저장 디바이스(120)가 성공적으로 인증되었다면, 계산 디바이스(110)는 저장 디바이스(120)의 제 2 메모리(123; 124)에서 데이터를 액세스하고(260), 이 데이터는 소프트웨어 애플리케이션(1221)에 의해 실행 동안 사용될 수 있다.

Description

소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스{A METHOD OF EXECUTION OF A SOFTWARE APPLICATION AND A STORAGE DEVICE FOR STORING THE SOFTWARE APPLICATION}
본 발명은 일반적으로 소프트웨어에 관한 것이고, 더 구체적으로 소프트웨어 복사 방지에 관한 것이다.
이 섹션은 아래에 서술되고 및/또는 주장되는 본 발명의 다양한 양상에 관련될 수 있는, 기술의 다양한 양상을 독자들에게 소개하는 것으로 의도된다. 본 논의는 독자들에게 본 발명의 다양한 양상에 대한 더 나은 이해를 돕기 위해 배경 정보를 제공하는데 도움이 된다고 믿어진다. 따라서, 이러한 설명은 종래 기술의 인정으로서가 아닌, 이러한 관점으로 읽혀야 한다.
소프트웨어 배포자들은, 일부 사람들이 소프트웨어 애플리케이션(application)에 대한 비용을 지불하는 것 없이, 소프트웨어 애플리케이션의 불법 복제물들을 사용하여 저작권 침해에 직면한다는 것은 더 이상 놀랄 일이 아니다. 이는 특히, 컴퓨터 게임들의 영역에 해당된다. 그러므로 게임 제공자 및 배포자들은 SecuROM 및 SafeMedia와 같은 방지 메카니즘들을 사용하여, 이러한 저작권 침해를 방지하도록 시도한다. 하지만 해커는 이들 방지 메카니즘을 적어도 부분적으로 무력화시키는 툴(tool)을 개발함으로써, 반격하고 있다.
지원 기술이 변화하기에, 소프트웨어 애플리케이션의 배포가 변화할 수 있다는 것이 가능할 수 있다. 예를 들어, U3는 범용 직렬 버스(USB: Universal Series Bus)에 전용되는 기술이다; U3는 USB 키 플래쉬 메모리 저장 영역에 있는 애플리케이션의 관리에 도움을 준다. 차세대 USB 프로토콜은 현 세대보다 더 뛰어난 송신율을 가질 것이고, 심지어 어쩌면 하드 디스크 드라이브로부터의 송신보다 더 빠를 것이다.
SanDisk TrustedFlash 기술은 플래쉬 메모리 상에서, 인증, 암호화, 세션 키, 및 DRM(디지털 저작권 관리)와 같은 일부의 보안 특징을 가능하게 한다. 하지만, 이러한 기술은 소프트웨어 애플리케이션보다 일반적인 데이터의 방지에 주로 적응되고, 정확한 문제의 해결책보다는 기술 툴박스(toolbox)에 더 적응된다.
Thomson에 의해 제공된 근래의 방지 방식은 애플리케이션 지원에 관련된(bound) 조작 방지된(tamper resistant) 하드웨어의 사용을 통하여 애플리케이션 저작권 침해에 대항한다. WO 2008/129009는 프로그램 코드를 저장하는 매체 패키지를 서술한다. 매체 패키지(package)는 매체 패키지 외부의 처리기 상에서 실행되도록 의도되는 프로그램 코드의 제 1 부분을 저장하는 디바이스와, 프로그램 코드의 상태 및 제 2 부분을 저장하는 처리 디바이스를 포함한다. 프로그램 코드의 제 1 및 제 2 부분은 프로그램 코드를 실행하기 위하여 상호작용하도록 적응된다. 처리 디바이스는 상태를 검증하기 위한 수단, 상태의 검증이 이 프로그램 코드가 인증되었다는 것을 나타내는 경우, 프로그램 코드의 제 2 부분을 실행하기 위한 수단, 매체 패키지 외부의 처리기와 통신을 위한 수단을 포함한다. 처리 디바이스는 상태 변화 디바이스와의 상호작용을 위하여 적응되는 인터페이스를 더 포함하는데, 이 상태 변화 디바이스는 예를 들어, 슈퍼마켓에서의 도난-방지 시스템에 이롭게 속하고, 프로그램 코드의 제 2 부분의 실행에 권한이 없는 제 1 상태로부터의 상태를, 프로그램 코드의 제 2 부분의 실행을 인가하는 제 2 상태로 변화시킨다.
WO 2009/074686은 게임 콘솔(console)로 사용을 위한 카트리지(cartridge)를 서술한다. 카트리지는 ROM, 비-휘발성 메모리, 처리기, 및 디스패처(dispatcher)를 포함한다. 콘솔 상에서 동작하는 애플리케이션은 사전정의된 주소를 사용하는 디스패쳐와 통신할 수 있는데, 이 애플리케이션은 경우에 따라, 디스패처가 ROM, 비-휘발성 메모리, 또는 처리기를 사용할 수 있도록 한다. 본 발명은 어떠한 일반적인 복사 방법도 주소가 하나의 카트리지로부터 다른 카트리지로 변화되었는지를 발견할 수 없기에, 종래 기술의 복사 방지를 향상시킨다. 게다가, 소프트웨어를 복사하기 위하여, 처리기는 반드시 에뮬레이팅 되어야(emulated) 한다.
제안된 해결책은 광 디스크(또는 다른 매체) 상에 고정된 보안 요소의 사용을 기초하고, 이 보안 요소는 비 접촉형 통신 수단을 통하여 액세스 된다. 단점은 이러한 해결책이 통합된 비 접촉형 판독기를 사용하는 전용 광 판독기의 사용을 요구한다는 것이다.
이러한 단점을 극복하기 위하여, 매체 및 보안 요소를 분리하는 것이 있을 수 있다. 하지만, 이는 일부 중요한 유용성의 단점을 수반하는데, 특히 10대 또는 아이에 의해 부주의하게 사용될 때, 예를 들어, 매체 또는 보안 요소를 분실하기가 너무 쉽다는 점 때문이다.
게다가, 보안 요소는 일반적으로 비싸기에, 시스템 설계자는 "보안 메모리"의 양을 최소화하려 한다. 그러므로, 보안 요소는 일반적으로 보안에 엄격히 관련된 오직 제한된 양의 데이터만을 저장할 수 있다. 이는 사용자 구성 데이터, 예를 들어 아바타(avatar) 3D 모델의 저장소를 예방할 수 있다. 그러므로, 이는 단일 컴퓨터에 대한 애플리케이션의 사용을 제한할 수 있는데, 이는 디바이스 구성, 애플리케이션 설정, 점수와 같은 애플리케이션의 관련 데이터가 컴퓨터의 하드 디스크 상에 저장될 수 있기 때문이다.
EP 1076279는 컴퓨터가 플랫폼에 대하여 일반적인 동글(dongle)로서의 기능을 하는 신뢰성 있는(trusted) 모듈을 포함한다는 상이한 해결책을 교시한다. 동글은 인가 및 무결성 검사 등을 수행할 수 있다. 하지만, 이 해결책은 전체가 이식성이 아니고, 오직 신뢰성 있는 모듈을 포함하는 컴퓨터에만 적용된다.
US 6442626은 호스트(host)가 저장 매체에 요구(challenge)를 송신하여, 이 저장 매체가 응답을 반환하는 추가의 해결책을 교시한다. 오직 응답이 올바른 경우에만, 호스트는 저장 매체 상의 데이터를 액세스할 수 있다. 예를 들어, 이러한 해결책은 호스트가 연결 이전에, 요구-응답 프로토콜을 인지하는 것을 요구하는데, 이 또한 시스템의 이식성을 매우 낮게 만든다.
그러므로, 애플리케이션의 이식성, 구체적으로 표준인, 비-특정화된, 플랫폼을 가능하게 하는 소프트웨어 애플리케이션 방지 방식을 제공하기 위한 해결책에 대한 필요성이 존재한다는 것을 인식할 수 있을 것이다.
제 1 양상에서, 본 발명은 소프트웨어 애플리케이션 실행의 방법에 관한 것이다. 저장 디바이스는 제 1 메모리에 소프트웨어 애플리케이션을 저장하는데, 이 소프트웨어 애플리케이션은 계산 디바이스에 의해 실행될 때, 저장 디바이스를 인증하는 코드를 포함한다. 저장 디바이스는 소프트웨어 애플리케이션의 무결성을 검증한다. 무결성이 성공적으로 검증되었다면, 저장 디바이스는 소프트웨어 애플리케이션을, 이 소프트웨어 애플리케이션이 실행되는 처리 디바이스에 송신하고, 이 처리 디바이스를 통하여 저장 디바이스를 인증한다. 소프트웨어 애플리케이션의 실행은 인증이 실패한 경우, 멈추게 된다.
바람직한 제 1 실시예에서, 저장 디바이스가 성공적으로 인증되었다면, 계산 디바이스는 저장 디바이스의 제 2 메모리에서 데이터를 요청하는데, 이 데이터는 실행 동안 소프트웨어 애플리케이션에 의해 사용될 수 있다.
바람직한 제 2 실시예에서, 계산 디바이스와 저장 디바이스 사이에 보안 인증 채널이 존재한다.
제 2 양상에서, 본 발명은, 소프트웨어 애플리케이션을 저장하기 위하여 적응되는 제 1 메모리로서, 소프트웨어 애플리케이션은 계산 디바이스에 의해 실행될 때, 저장 디바이스를 인증하는 코드를 포함하는, 제 1 메모리와; 소프트웨어 애플리케이션의 무결성을 검증하고, 오직 이 무결성이 성공적으로 검증된 경우에 소프트웨어 애플리케이션을 계산 디바이스에 송신하기 위하여 적응되는 처리기를 포함한다.
바람직한 제 1 실시예에서, 저장 디바이스는 소프트웨어 애플리케이션에 의해 실행 동안 사용될 수 있는 데이터를 저장하기 위하여 적응되는 제 2 메모리를 포함한다. 처리기는 계산 디바이스의 처리기의 성공적인 인증 이후에, 계산 디바이스의 처리기가 제 2 메모리에서의 데이터에 액세스하는 것을 허용하도록 더 적응된다.
저장 디바이스의 처리기가 인증 동안 계산 디바이스의 처리기와 보안 인증 채널을 구축하기 위하여 더 적응된다는 것이 유리하다.
이제부터 본 발명의 바람직한 특징은 첨부 도면에 대해, 제한적이지 않은 예시를 통해 서술될 것이다.
본 발명은 종래 기술의 상술된 문제점에 대한 불편함을 개선하는, 이식성이 있는 소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스를 제공한다.
도 1은 본 발명의 바람직한 실시예에 따라 시스템을 도시하는 도면.
도 2는 본 발명의 바람직한 실시예에 따른 보안 디바이스와 컴퓨터 사이의 상호 작용의 방법을 도시하는 도면.
본 발명의 메인 발명의 아이디어는 컴퓨터 애플리케이션(아래에 "애플리케이션"), 구체적으로는 컴퓨터상에서 임의의 영구적 설치를 요구하지 않는 컴퓨터 게임의 배포를 위한 디바이스이다. 도 1에 도시된 해결책은 구체적으로 오늘날의 노마딕(nomadic) 환경에 적응된다.
도 1은 본 발명의 컴퓨터(110) 및 보안 디바이스(120)를 포함하는 시스템(100)을 도시한다. U3 기술을 구현하는 USB 키 또는 다른 USB 디바이스로 바람직하게 구현되는 보안 디바이스는 다음을 포함한다.
- 애플리케이션 코드(1221)를 저장하기 위한 읽기-전용 메모리(ROM)(122).
- 예를 들어, 게임에서 사용자의 캐릭터에 관련된 데이터와 같이, 영구적인 초기 설정 데이터 및 개인용 데이터를 저장하기 위한 비-휘발성 메모리(123), 바람직하게는 플래쉬 메모리.
- 조작 방지된 하드웨어(스마트카드(smartcard) 칩과 같은)에 바람직하게 구현되고, 보안 디바이스(120) 로의 유일한 진입점인 보안 처리기(121). 몇몇의 물리적 처리기로서 내장될 수 있는 보안 처리기(121)는 메모리 액세스를 다루고, 애플리케이션 코드(1211)의 무결성을 제어하기 위한 무결성 유닛(1211)과, 컴퓨터(110)상에서 애플리케이션이 실행될 때, 이 애플리케이션으로 인증을 처리하기 위한 인증 유닛(1212)을 포함한다.
- 제어 및 피드백(feedback)을 컴퓨터(110)에 제공하기 위한 인터페이스(125), 바람직하게는 USB 인터페이스,
- 자동으로 전원이 꺼지면 삭제될 데이터를 저장하기 위한 선택적 휘발성 메모리(124). 휘발성 메모리(124)는 보안 처리기(121)에 대한 추가의 일시적 저장소로서, 및 애플리케이션을 위한 보안의 일시적 저장소로서 사용될 수 있다.
컴퓨터(110), 이롭게는 표준 개인용 컴퓨터(PC)는 처리기(111), RAM 메모리(112) 및 보안 디바이스(120)와의 통신을 위한 인터페이스(113)를 포함한다. 컴퓨터(110)의 운영체계 및 이 운영체계의 애플리케이션은 RAM 메모리(112)에 적재되고, 이 메모리로부터 동작한다.
보안 디바이스(120)는 이 보안 디바이스(120)가 컴퓨터(110)의 인터페이스(113)에 연결될 때, 표준 저장 장치로서 인식되도록 배열된다.
도 2는 보안 디바이스(120)와 컴퓨터(110) 사이의 상호 작용의 방법을 도시한다. 보안 디바이스(120)는 먼저 컴퓨터(110)에 연결된다(210). 보안 디바이스(120)가 컴퓨터에 의해 인식되지 않는다면(220), 방법은 비정상적 종료(290)로 종료한다; 보안 처리기(121) 및 컴퓨터(110)는 통신할 수 없다.
보안 디바이스(120)가 인식된다면, 보안 처리기(121)는 애플리케이션 코드(1221)의 무결성을 검증한다(230). 검증 검사가 보안 처리기(121)의 무결성 유닛(1211)에 의해, 예를 들어 해시(hash) 값을 계산하고 계산된 해시 값과 저장된 해시 값을, 바람직하게는 제작 동안 코딩된 하드를 비교함으로써, 또는 참조 값과 비교되는 체크섬(checksum)을 계산함으로써 수행된다. 무결성 검사가 실패하였다면, 방법은 비정상적 종료(290)로 종료된다: 보안 처리기(121)는 컴퓨터(110)와의 추가적 통신을 거절하고 애플리케이션 코드(1221)는 컴퓨터(110)에 업로드 되지 않는다. 반대로, 무결성 검사가 성공적이라면, 애플리케이션 코드(1221)는, 애플리케이션이 적재되도록 초래하는 RAM 메모리(112)에 복사되는 컴퓨터로 송신된다(240).
요컨대, ROM(122)에 저장되는 애플리케이션 코드(1221)는 무결성을 위해 검증되고, 컴퓨터 RAM 메모리(112)에 송신된다.
그런 후에, 애플리케이션은 처리기(112)에 의해 실행된다. 실행 동안, 애플리케이션은 보안 처리기(121)로 인증을 수행한다. 인증은 보안 처리기(121)의 인증 유닛(1212) 및 인증 데이터와 상호 작용하는 애플리케이션으로 인증 함수 및 데이터를 사용하여 수행된다. 임의의 적합한 종래 기술의 인증 프로토콜, 바람직하게는 보안 인증 채널(SAC)을 구축하는 프로토콜은 예를 들어, 승인된 US 특허 7545932에 서술된 프로토콜로 사용될 수 있다. 애플리케이션에서의 인증 함수 및 데이터는 예를 들어 종래 기술의 소프트웨어 방지 기술의 사용을 통하여 바람직하게 방지된다.
인증 검사가 실패한다면, 방법은 비정상적 종료(290)로 종료된다: 보안 처리기(121)는 컴퓨터(110)와의 임의의 추가적 통신을 거절하고, 애플리케이션은 중단될 것이다.
인증 검사가 성공한다면, 애플리케이션이 실행되고(260), 보안 처리기(121)에 요청을 통하여 휘발성 메모리(124) 및 비-휘발성 메모리(123)에 액세스하는 것이 가능해지며, 데이터는 보안 처리기(121)에 의해 반환된다.
애플리케이션의 실행이 종료될 때, 방법은 정상적 종료(280)(즉, 단계(270) '종료 타입?'에서의 '정상적 종료')를 수행하는데, 이는 애플리케이션 자신이 RAM 메모리(112)로부터 제거된 이후에, 보안 처리기(121)가 임의의 대기 작업(pending action)을 종료시키도록 요청하기 때문이다. 만일 애플리케이션의 실행이 미리 완료되지 않았다면, 애플리케이션은 게임에서 사용자의 캐릭터에 관련된 데이터와 같은, 관련된 애플리케이션 파라미터를 비-휘발성 메모리(123)에 저장을 위하여 송신한다. 그런 후에, 보안 처리기(112)는 바람직하게 휘발성 메모리(124)를 비우고(nillify), 종료하며, 모든 인증 증명을 무효로 만든다.
보안 디바이스(120)가 애플리케이션의 실행중에 비정상적으로 제거된다면(즉, 단계(270) '종료 타입?'에서 '비정상적 종료'), 이는 비정상적 종료(290)이다. 이러한 경우에서, 휘발성 메모리(124)에서의 데이터는 분실된다. 다음의 연결(또는 전원을 켬)에서, 보안 처리기(121)는 임의의 대기 작업(예를 들어 메모리 액세스)을 다시 재개시킴으로써 시작하고, 임의의 이전의 인증을 무효로 한다. 이 단계 이후에, 보안 디바이스(120)는 즉, 방법의 단계(210)에 대응하는 연결을 정상적으로 재시작한다. 보안 디바이스(120)는 새로운 완전한 송신 처리(240)가 완료될 때까지, 이전에 적재된 애플리케이션과의 임의의 통신을 수락하지 않는다. 보안 디바이스(120)가 더 이상 존재하지 않거나 또는 재연결되는 경우(인증이 유효하지 않기에), 애플리케이션은 더 이상 보안 디바이스(120)와 올바르게 상호작용할 수 없다. 이러한 경우에서, 애플리케이션 그 자신이 RAM 메모리(112)로부터 제거되고, 종료된다.
본 발명이 컴퓨터 애플리케이션에 대한 복사 방지 메카니즘을 구현한다는 것이 인식될 것이고, 상기 복사 방지 메카니즘은:
- 보안 디바이스에 저장된 애플리케이션의 무결성을 보증할 수 있다.
- 어떠한 추가적인 하드웨어 또는 소프트웨어도 요구되지 않는 컴퓨터에 대해 비-강제적이다.
- 노마딕 환경에 특히 적응되어, 상이한 컴퓨터 사이의 애플리케이션 및 사용자 데이터의 이식성을 허용한다.
시스템은 적어도 다음의 주요 공격에 저항력이 있다.
- 인터페이스에 대한 소프트웨어 공격: 보안 디바이스는 직접 액세스(읽기, 쓰기, 목록)를 이 디바이스의 메모리에 제공하지 못한다. 보안 처리기는 이러한 종류의 인터페이스를 구현하지 못한다.
- 보안 디바이스에 대한 하드웨어 공격: 정의에 의해 보안 처리기는 복제되거나 수정될 수 없다. 하지만, 추가의 하드웨어 방지 없이, 보안 디바이스의 메모리는 덤핑될(dumped) 수 있고 복사될 수 있다. 이러한 공격에 대한 대응책이 존재하지만, 본 발명의 범주를 벗어난다. 하지만 본 명세서에서, 잠정적인 대응책을 조금만 다루도록 한다.
○ 읽기-전용 메모리의 덤프는 애플리케이션 코드의 역-설계를 허용할 수 있는데, 이 역-설계는 보안 처리기의 사용을 회피하기 위하여 애플리케이션을 수정하는데 사용될 수 있다. 종래의 대응책은 소프트웨어 방지 기술을 사용하는 것이다.
○ 다른 휘발성 및 비-휘발성 메모리의 덤프는 비밀 애플리케이션 데이터에 액세스를 허용할 수 있다. 종래의 대응책은 바람직하게 암호 처리기에 의해 강제되는 데이터 암호화의 사용이다.
본 발명이 소프트웨어 애플리케이션 및 관련된 사용자 데이터의 이식성을 가능하게 하는 소프트웨어 애플리케이션에 대한 복사 방지를 위한 디바이스를 제공한다는 것을 인식할 것이다.
본 서술 및 (적합하다면) 청구항 및 도면에 개시된 각 특징은 독립적으로 또는 임의의 적합한 조합으로 제공될 수 있다. 하드웨어에 구현되는 것으로 서술된 특징은 소프트웨어에서 또한 구현될 수 있고, 반대로도 구현될 수 있다. 청구항에 나타나는 참조 번호는 오직 설명의 목적이고, 청구항의 범주에 어떠한 제한적인 영향을 미치지 않는다.
113, 125 : 인터페이스 111, 121 : 처리기
112 : 메모리 1211 : 무결성 유닛
1212 : 인증 유닛 122 : ROM
1221 : 애플리케이션 123 : 비-휘발성 메모리
124 : 휘발성 메모리

Claims (6)

  1. 소프트웨어 애플리케이션(application)의 실행 방법에 있어서,
    저장 디바이스(120)는 제 1 메모리(122)에 소프트웨어 애플리케이션(1221)을 저장하고, 상기 소프트웨어 애플리케이션(1221)은 계산 디바이스(110)에 의해 실행될 때, 저장 디바이스(120)를 인증하는 코드를 포함하고, 본 방법은
    - 상기 저장 디바이스(120)를 통해 상기 소프트웨어 애플리케이션(1221)의 무결성을 검증하는 단계(230),
    상기 무결성이 성공적으로 검증되었다면:
    - 상기 저장 디바이스(120)를 통해 상기 소프트웨어 애플리케이션(1221)을 상기 계산 디바이스(110)에 송신하는 단계(240),
    - 상기 계산 디바이스(110)를 통해 상기 소프트웨어 애플리케이션(1221)을 실행하는 단계,
    - 상기 계산 디바이스(110)를 통해 상기 소프트웨어 애플리케이션(1221)을 사용하여 상기 저장 디바이스(120)를 인증하는 단계, 및
    - 만일 상기 인증이 실패한 경우, 상기 소프트웨어 애플리케이션의 실행을 정지시키는 단계를
    포함하는, 소프트웨어 애플리케이션의 실행 방법.
  2. 제 1항에 있어서, 상기 저장 디바이스(120)가 성공적으로 인증된다면, 상기 계산 디바이스(110)를 통하여 상기 저장 디바이스(120)의 제 2 메모리(123; 124)에 데이터를 요청하는 단계를 더 포함하고, 상기 데이터는 상기 소프트웨어 애플리케이션(1221)을 통해 실행 동안 사용될 수 있는, 소프트웨어 애플리케이션의 실행 방법.
  3. 제 1항에 있어서, 상기 인증 단계는 상기 계산 디바이스(110)와 상기 저장 디바이스(120) 사이의 보안 인증 채널을 더 구축하는, 소프트웨어 애플리케이션의 실행 방법.
  4. 저장 디바이스(120)에 있어서,
    소프트웨어 애플리케이션(1221)을 저장하기 위하여 적응되는 제 1 메모리(122)로서, 상기 소프트웨어 애플리케이션(1221)은 계산 디바이스(110)에 의해 실행될 때 상기 저장 디바이스(120)를 인증하는 코드를 포함하는, 제 1 메모리(122), 및
    처리기(121)로서,
    상기 소프트웨어 애플리케이션(1221)의 무결성을 검증하기 위하여, 및
    오직 상기 무결성이 성공적으로 검증되는 경우, 상기 소프트웨어 애플리케이션(1221)을 상기 계산 디바이스(110)에 송신하기 위하여
    적응되는 처리기(121)를 포함하는, 저장 디바이스.
  5. 제 4항에 있어서, 상기 소프트웨어 애플리케이션(1221)에 의해 실행 동안 사용될 수 있는 데이터를 저장하기 위하여 더 적응되는 제 2 메모리(123; 124)를 더 포함하고, 상기 처리기(121)는 상기 계산 디바이스(110)의 처리기(111)의 성공적인 인증 이후에, 상기 계산 디바이스(110)의 상기 처리기(111)가 상기 제 2 메모리(123; 124)의 상기 데이터에 액세스를 허용하도록 더 적응되는, 저장 디바이스.
  6. 제 5항에 있어서, 상기 저장 디바이스(120)의 상기 처리기(121)는 인증 동안 계산 디바이스(110)의 상기 처리기(111)로 보안 인증 채널을 구축하기 위하여 더 적응되는, 저장 디바이스.
KR1020110003857A 2010-01-20 2011-01-14 소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스 KR20110085894A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10305061.3 2010-01-20
EP10305061A EP2348454A1 (en) 2010-01-20 2010-01-20 A method of and a system for execution of a software application

Publications (1)

Publication Number Publication Date
KR20110085894A true KR20110085894A (ko) 2011-07-27

Family

ID=42237223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110003857A KR20110085894A (ko) 2010-01-20 2011-01-14 소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스

Country Status (5)

Country Link
US (1) US20110179495A1 (ko)
EP (2) EP2348454A1 (ko)
JP (1) JP2011150701A (ko)
KR (1) KR20110085894A (ko)
CN (1) CN102129537A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150133038A (ko) * 2014-05-19 2015-11-27 숭실대학교산학협력단 불법 복제 애플리케이션 탐지 방법 및 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5499807B2 (ja) * 2010-03-19 2014-05-21 富士通株式会社 情報処理プログラム、情報処理方法及び情報処理装置
US9703950B2 (en) * 2012-03-30 2017-07-11 Irdeto B.V. Method and system for preventing and detecting security threats
US9697359B2 (en) * 2015-04-15 2017-07-04 Qualcomm Incorporated Secure software authentication and verification
US11860997B2 (en) 2018-06-26 2024-01-02 Nokia Technologies Oy Method and apparatus for attestation

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5643086A (en) * 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
US6442626B1 (en) * 1998-12-28 2002-08-27 Siemens Aktiengesellschaft Copy protection system only authorizes the use of data if proper correlation exists between the storage medium and the useful data
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US7281273B2 (en) * 2002-06-28 2007-10-09 Microsoft Corporation Protecting content on medium from unfettered distribution
EP1644788A1 (en) * 2003-07-04 2006-04-12 Koninklijke Philips Electronics N.V. Device for running copy-protected software
US7545932B2 (en) 2004-10-29 2009-06-09 Thomson Licensing Secure authenticated channel
EP1983458A1 (en) 2007-04-19 2008-10-22 THOMSON Licensing Media package, system comprising a media package and method of using stored data
JP5324599B2 (ja) 2007-12-13 2013-10-23 トムソン ライセンシング コピープロテクトされたソフトウエア・カートリッジ
FR2930058B1 (fr) * 2008-04-14 2010-06-11 Bull Sas Dispositif portable et procede de demarrage externe d'une installation informatique
US8601358B2 (en) * 2009-11-12 2013-12-03 Seagate Technology Llc Buffer transfer check on variable length data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150133038A (ko) * 2014-05-19 2015-11-27 숭실대학교산학협력단 불법 복제 애플리케이션 탐지 방법 및 장치

Also Published As

Publication number Publication date
EP2357588A1 (en) 2011-08-17
JP2011150701A (ja) 2011-08-04
US20110179495A1 (en) 2011-07-21
EP2348454A1 (en) 2011-07-27
CN102129537A (zh) 2011-07-20

Similar Documents

Publication Publication Date Title
US8898477B2 (en) System and method for secure firmware update of a secure token having a flash memory controller and a smart card
JP4913871B2 (ja) セキュアコンテンツおよびアプリケーションのコピーを防ぐセキュリティメカニズムを有するメモリカードのアップグレード
JP4091744B2 (ja) コンピュータ装置およびその動作方法
KR101281678B1 (ko) 이동 저장 장치에서 호스트 인증 방법, 호스트 인증을 위한정보 제공 방법, 장치, 및 기록매체
US9319403B2 (en) IC chip, information processing apparatus, system, method, and program
KR20170095163A (ko) 하드웨어 디바이스 및 그 인증 방법
CN102063591B (zh) 基于可信平台的平台配置寄存器参考值的更新方法
US20110093693A1 (en) Binding a cryptographic module to a platform
CN103069384A (zh) 用从储存设备加载的操作系统代码安全地引导主机设备的主机设备和方法
US8327125B2 (en) Content securing system
KR20130080046A (ko) 다중 사용자 감응 코드 및 데이터를 보호하는 아키텍처를 포함하는 방법 및 장치
TW201109969A (en) Method and system for securely updating field upgradeable units
JP2003507784A (ja) 記憶されたデータの使用に対する強制的な制限
US8219978B2 (en) Information processing device
KR20110085894A (ko) 소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스
CN105308610A (zh) 用于设备上的平台和用户应用安全性的方法和系统
US7577849B2 (en) Keyed-build system for controlling the distribution of software
JP6930884B2 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム
US7934099B2 (en) Device and method for generating digital signatures
US20130117550A1 (en) Accessing secure volumes
KR102089435B1 (ko) 안전한 usb 장치를 보장하는 부트 방법
JP5126530B2 (ja) コンピュータの環境を測定する機能を備えた外部記憶デバイス
JPH11272563A (ja) 情報処理装置のセキュリティシステム、及び情報処理装置に於けるセキュリティ方法
CN116226946A (zh) 用于计算设备中的硬件改变或覆盖物打开的策略

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid