KR20110085894A - 소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스 - Google Patents
소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스 Download PDFInfo
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000002265 prevention Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004883 computer application Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program 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
본 발명은 일반적으로 소프트웨어에 관한 것이고, 더 구체적으로 소프트웨어 복사 방지에 관한 것이다.
이 섹션은 아래에 서술되고 및/또는 주장되는 본 발명의 다양한 양상에 관련될 수 있는, 기술의 다양한 양상을 독자들에게 소개하는 것으로 의도된다. 본 논의는 독자들에게 본 발명의 다양한 양상에 대한 더 나은 이해를 돕기 위해 배경 정보를 제공하는데 도움이 된다고 믿어진다. 따라서, 이러한 설명은 종래 기술의 인정으로서가 아닌, 이러한 관점으로 읽혀야 한다.
소프트웨어 배포자들은, 일부 사람들이 소프트웨어 애플리케이션(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는 본 발명의 바람직한 실시예에 따른 보안 디바이스와 컴퓨터 사이의 상호 작용의 방법을 도시하는 도면.
도 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 : 휘발성 메모리
112 : 메모리 1211 : 무결성 유닛
1212 : 인증 유닛 122 : ROM
1221 : 애플리케이션 123 : 비-휘발성 메모리
124 : 휘발성 메모리
Claims (6)
- 소프트웨어 애플리케이션(application)의 실행 방법에 있어서,
저장 디바이스(120)는 제 1 메모리(122)에 소프트웨어 애플리케이션(1221)을 저장하고, 상기 소프트웨어 애플리케이션(1221)은 계산 디바이스(110)에 의해 실행될 때, 저장 디바이스(120)를 인증하는 코드를 포함하고, 본 방법은
- 상기 저장 디바이스(120)를 통해 상기 소프트웨어 애플리케이션(1221)의 무결성을 검증하는 단계(230),
상기 무결성이 성공적으로 검증되었다면:
- 상기 저장 디바이스(120)를 통해 상기 소프트웨어 애플리케이션(1221)을 상기 계산 디바이스(110)에 송신하는 단계(240),
- 상기 계산 디바이스(110)를 통해 상기 소프트웨어 애플리케이션(1221)을 실행하는 단계,
- 상기 계산 디바이스(110)를 통해 상기 소프트웨어 애플리케이션(1221)을 사용하여 상기 저장 디바이스(120)를 인증하는 단계, 및
- 만일 상기 인증이 실패한 경우, 상기 소프트웨어 애플리케이션의 실행을 정지시키는 단계를
포함하는, 소프트웨어 애플리케이션의 실행 방법. - 제 1항에 있어서, 상기 저장 디바이스(120)가 성공적으로 인증된다면, 상기 계산 디바이스(110)를 통하여 상기 저장 디바이스(120)의 제 2 메모리(123; 124)에 데이터를 요청하는 단계를 더 포함하고, 상기 데이터는 상기 소프트웨어 애플리케이션(1221)을 통해 실행 동안 사용될 수 있는, 소프트웨어 애플리케이션의 실행 방법.
- 제 1항에 있어서, 상기 인증 단계는 상기 계산 디바이스(110)와 상기 저장 디바이스(120) 사이의 보안 인증 채널을 더 구축하는, 소프트웨어 애플리케이션의 실행 방법.
- 저장 디바이스(120)에 있어서,
소프트웨어 애플리케이션(1221)을 저장하기 위하여 적응되는 제 1 메모리(122)로서, 상기 소프트웨어 애플리케이션(1221)은 계산 디바이스(110)에 의해 실행될 때 상기 저장 디바이스(120)를 인증하는 코드를 포함하는, 제 1 메모리(122), 및
처리기(121)로서,
상기 소프트웨어 애플리케이션(1221)의 무결성을 검증하기 위하여, 및
오직 상기 무결성이 성공적으로 검증되는 경우, 상기 소프트웨어 애플리케이션(1221)을 상기 계산 디바이스(110)에 송신하기 위하여
적응되는 처리기(121)를 포함하는, 저장 디바이스. - 제 4항에 있어서, 상기 소프트웨어 애플리케이션(1221)에 의해 실행 동안 사용될 수 있는 데이터를 저장하기 위하여 더 적응되는 제 2 메모리(123; 124)를 더 포함하고, 상기 처리기(121)는 상기 계산 디바이스(110)의 처리기(111)의 성공적인 인증 이후에, 상기 계산 디바이스(110)의 상기 처리기(111)가 상기 제 2 메모리(123; 124)의 상기 데이터에 액세스를 허용하도록 더 적응되는, 저장 디바이스.
- 제 5항에 있어서, 상기 저장 디바이스(120)의 상기 처리기(121)는 인증 동안 계산 디바이스(110)의 상기 처리기(111)로 보안 인증 채널을 구축하기 위하여 더 적응되는, 저장 디바이스.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150133038A (ko) * | 2014-05-19 | 2015-11-27 | 숭실대학교산학협력단 | 불법 복제 애플리케이션 탐지 방법 및 장치 |
Families Citing this family (4)
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)
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 |
-
2010
- 2010-01-20 EP EP10305061A patent/EP2348454A1/en not_active Withdrawn
-
2011
- 2011-01-12 EP EP11150717A patent/EP2357588A1/en not_active Withdrawn
- 2011-01-12 US US12/930,614 patent/US20110179495A1/en not_active Abandoned
- 2011-01-14 KR KR1020110003857A patent/KR20110085894A/ko not_active Application Discontinuation
- 2011-01-14 JP JP2011005353A patent/JP2011150701A/ja not_active Withdrawn
- 2011-01-19 CN CN2011100304003A patent/CN102129537A/zh active Pending
Cited By (1)
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 |