KR20090028728A - 모바일 장치에서의 메시지 핸들링 - Google Patents
모바일 장치에서의 메시지 핸들링 Download PDFInfo
- Publication number
- KR20090028728A KR20090028728A KR1020087031637A KR20087031637A KR20090028728A KR 20090028728 A KR20090028728 A KR 20090028728A KR 1020087031637 A KR1020087031637 A KR 1020087031637A KR 20087031637 A KR20087031637 A KR 20087031637A KR 20090028728 A KR20090028728 A KR 20090028728A
- Authority
- KR
- South Korea
- Prior art keywords
- message
- application
- response
- challenge
- mobile device
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0442—Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
- H04W12/033—Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2103—Challenge-response
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2153—Using hardware token as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
모바일 장치로부터 그 모바일 장치 상에서 실행중인 제1 애플리케이션을 통해 메시지를 전송하기 위한 방법이 개시된다. 이 방법은 제1 애플리케이션에게 챌린지를 제공하기 위한 챌린지 단계; 상기 챌린지에 대한 응답을 수신하기 위한 응답 단계; 상기 수신된 응답이 예측된 응답에 대응하는지의 여부를 판정하기 위한 동등 검사 단계; 암호화 키와 상기 동등 검사 단계의 결과를 이용하여 상기 메시지에 대한 서명을 제공하기 위한 서명 단계; 및 제1 애플리케이션을 통해 상기 모바일 장치로부터 백엔드 시스템으로 서명된 메시지를 전송하기 위한 전송 단계를 포함한다.
모바일 장치, 메시지 핸들링, 챌린지, 응답, 서명된 메시지
Description
본 발명은, 모바일 장치로부터 모바일 장치 상에서 실행중인 애플리케이션을 통해 메시지를 전송하기 위한 방법에 관한 것이며, 모바일 장치에서 메시지를 수신하기 위한 방법에도 역시 관련되어 있다. 나아가, 모바일 장치 및 스마트 카드에도 관련되어 있다.
임베디드 시스템 컴포넌트 뿐만 아니라 백엔드/인프라구조 컴포넌트 양자 모두를 포함하는 통합된 시스템의 구축은 종단간 시스템 완전성의 보장 문제를 제기한다. 또한, 백엔드 시스템은, 대개 물리적으로 안전하게 보관될 수 있고 시스템으로의 액세스가 모니터링될 수 있는 고정된 물리적 위치에 설치된다. 대조적으로, 임베디드 컴포넌트는 종종 모바일형이고, 제한된 자원을 가지며 보호하기 어렵다. 이들 임베디드 컴포넌트들에 대한 물리적 액세스는 매우 자주 제어되지 못하거나 제한되지 못한다. 예를 들어, 임베디드 시스템은 차량에 탑재될 수 있고, 그 차량에 접근할 수 있는 누구나가 임베딩된 시스템 그 자체에 대해 액세스할 수 있다.
따라서, 문제는, 시스템 완전성을 보장하는 것, 즉, 한편으로는 백엔드 시스템을 포함하고, 다른 한편으로는 모바일 장치를 포함하는 환경에서 애플리케이션 이미지가 부정조작(tamper)되지 않았다는 것을 확실하게 하는 것이다. 백엔드 시 스템과 모바일 장치 사이에서 전송된 메시지들이 완전한 소스로부터 나온 것으로서 신뢰받을 수 있음을 보장하기 위해 완전성이 유용하다.
통합된 암호화 컴포넌트를 갖는 특별한 프로세서를 이용하거나, TCG(Trusted Computing Group) TPM(Trusted Platform Module) 메커니즘과 같은 통합된 스마트카드를 이용하는 것이 알려져 있다. 여기서, 보안 컴포넌트는, CPU의 상태에 대한 액세스를 가지며, 메모리 액세스를 수동적으로 모니터링할 수 있으며, 또는 애플리케이션 이미지에 관한 체크섬에 의존하여, 그 체크섬을 애플리케이션 이미지에 저장된 미리계산된 체크섬과 비교할 수 있다. 제1 접근법은 하드웨어 관점에서 비교적 비용이 많이 들며 큰 볼륨에 대해서만 쓸만하다. 후자의 접근법은 애플리케이션 이미지의 리버스 엔지니어링에 취약하다.
따라서, 전술된 단점들을 극복하고 모바일 장치로부터 백엔드 시스템으로 메시지를 전송하기 위한 방법을 제공하는 것이 목적이다.
본 발명의 한 양태에 따르면, 모바일 장치로부터 모바일 장치상에서 실행중인 제1 애플리케이션을 통해 메시지를 전송하기 위한 방법이 제공된다. 이 방법은, 제1 애플리케이션에게 챌린지를 제공하는 챌린지 단계와; 상기 챌린지에 대한 응답을 수신하기 위한 응답 단계와; 상기 수신된 응답이 예측된 응답에 대응하는지의 여부를 판정하기 위한 동등 검사 단계와; 암호화 키와 상기 동등 검사 단계의 결과를 이용하여 상기 메시지에 대한 서명을 제공하기 위한 서명 단계와; 상기 제1 애플리케이션을 통해 상기 모바일 장치로부터 백엔드 시스템으로 상기 서명된 메시지를 전송하기 위한 전송 단계를 포함한다. 상기 프로세스와 함께 제1 애플리케이션은 그 완전성에 관해 테스트받고 이 테스트의 결과는 백엔드 시스템에 전송되는 메시지의 서명에 영향을 미친다. 여기서, 백엔드 시스템은 모바일 장치와는 물리적으로 분리된 시스템이며 모바일 장치에 대한 통신 접속을 갖는 시스템으로서 이해된다. 양호한 실시예에서, 이와 같은 백엔드 시스템은 모바일 장치를 제어하는 기능, 상기 모바일 장치와의 사이에서 오가는 데이터를 저장하는 기능, 상기 모바일 장치를 추적하는 기능, 상기 모바일 장치에 관한 검사를 수행하는 기능, 상기 모바일 장치상의 소프트웨어를 업데이트하는 기능, 상기 모바일 장치와의 사이에서 오가는 데이터를 처리하는 기능, 및 상기 모바일 장치로부터의 데이터를 다른 시스템 등으로 전송하는 기능 중 임의의 기능을 포함할 수 있다.
양호한 실시예에서, 서명 단계 이전에, 메시지 보정 단계에서 동등 검사 단계의 결과를 이용하여 메시지가 수정된다. 이 단계는, 특히 메시지가 전송하기 이전에 수정될뿐만 아니라 암호화된다면, 제1 애플리케이션에게 투명하게 수행될 수 있다는 잇점을 가진다. 그 다음, 제1 애플리케이션은, 그 불완전성이 검출되었다 하더라도, 메시지 수정을 스스로 검출하여 그 불완전성을 백엔드에 시그널링할 수 없을 것이다. 그리고, 모든 것이 정상적으로 수행되고 있다는 가정하에, 즉, 마치 완전한 것처럼, 그 메시지를 백엔드 시스템에 전달할 것이다.
양호한 실시예에서, 메시지는 동등 검사 단계의 결과를 메시지에 부가함으로써 수정된다. 이것은, 전달된 메시지의 원래 콘텐츠는 변경되지 않을 것이고 수신자는 여전히 제1 애플리케이션 전송의 불완전성을 판정할 수 있을 것이라는 잇점을 가진다. 또한, 이러한 종류의 메시지 수정은 기술적으로 구현하기 쉽다.
양호한 실시예에서, 메시지 그 자체는 임의 종류의 정보를 운반하며, 여기서, 정보는 제1 애플리케이션의 보안, 진위여부, 또는 완전성에 대한 어떠한 정보도 포함하지 않는다. 따라서, 전술한 방법은 완전한 제1 애플리케이션이 수정되지 않은 경우에 메시지 그 자체를 수정하는데 적합하다. 따라서, 완전한 제1 애플리케이션의 경우 모바일 장치와의 사이에서 메시지를 전달하는 메커니즘은, 완전성 검사에 기인하여 있을 수 있는 지연을 제외하고는, 어떠한 완전성 검사도 없이 실행되는 메커니즘과 상이하지 않다는 점에서 그 잇점이 있다. 반면에, 불완전한 제1 애플리케이션의 경우, 메시지의 수신자는, 메시지와 함께 실려오는 완전성 문제에 대한 정보를 통해 완전성 문제에 대해 알 수 있다는 점에서 그 잇점이 있다. 모바일 장치 그 자체는 그 자신의 불완전성에 대한 정보의 수송자로서 역할할 수 있다. 유익한 방식으로 이를 가능케하기 위해, 완전성의 결함이 검출되었다는 것을 제1 애플리케이션이 깨닫지 않고 이 방법이 실행될 수 있다. 이와 같이 완전성 정보는 투명한 방식으로 제1 애플리케이션에 의해 통과될 수 있다.
양호한 실시예에서, 메시지는 스마트카드 상에 저장된 개인키/공개키 쌍의 개인키를 이용하여 암호화된다. 이로써, 비대칭키를 이용하는 공지된 메커니즘이, 보안을 향상시키도록 레버리지될 수 있다는 잇점이 달성된다. 개인키/공개키쌍을 저장하고 있는 스마트카드는 최신의 기술이고, 그에 따라 향상된 레벨의 부정조작 방지를 제공하는 메커니즘이 존재하므로, 공격자가 개인키에 액세스하는 것을 더욱 어렵게 한다. 따라서, 스마트카드 기술은 모바일 장치의 보안을 강화하기 위해 사용될 수 있다. 동시에, 센서 데이터 처리, 또는 백엔드 시스템과의 메시지 송수신과 같은 서비스를 수행하기 위해 스마트카드가 장착될 필요는 없다.
양호한 실시예에서, 스마트카드 상에는 암호화 키가 유지된다. 더욱 양호한 실시예에서, 그 암호화 키는 스마트카드 상에 저장된 개인키/공개키쌍의 개인키를 포함하도록 선택된다. 개인키/공개키쌍과 관련한 상기와 동일한 이유 때문에, 서명을 위한 암호화 키도 역시 스마트카드 상에 저장되어 증가된 보안 레벨을 이용한다. 또한 암호화 키로서의 개인키/공개키 쌍의 개인키를 이용하는 것도 가능하다. 이로써 저장되는 데이터량, 및 키들의 갯수를 저감시킨다. 다른편상의 개인키와는 상이한 암호화 키를 이용하는 것은, 공격자가 메시지에 액세스하여 이를 수정하기 위해 2개의 키를 해독할 필요성이 있기 때문에, 보안을 증가시킨다.
본 발명의 제2 양태에 따르면, 모바일 장치상에서 실행중인 제1 애플리케이션을 통해 모바일 장치에서 메시지를 수신하기 위한 방법이 제공된다. 이 방법은, 암호화된 형태의 메시지를 수신하는 메시지 수신 단계와; 제1 애플리케이션에게 챌린지를 제공하는 챌린지 단계와; 상기 챌린지에 대한 응답을 수신하기 위한 응답 단계와; 수신된 응답이 예측된 응답에 대응하는지의 여부를 판정하기 위한 동등 검사 단계와; 만일 상기 동등 검사 단계의 결과가 긍정적인 경우, 메시지를 암호해독하기 위한 암호해독 단계와, 만일 상기 동등 검사 단계의 결과가 부정적인 경우, 오류를 발생하는 오류 발생 단계를 포함한다. 제1 양태와 연계하여 설명된 잇점들은 제2 양태에도 역시 적용된다. 다시 한번, 제1 애플리케이션은 그 완전성이 확인되었을 때에만 그 동작을 계속할 수 있다. 그렇지 않은 경우, 메시지에 액세스할 수 없다. 완전성 검사는 제1 애플리케이션 외부에서 수행되며, 그에 따라, 제1 애플리케이션은 이 보안 동작을 스스로 우회할 수 없다.
양호한 실시예에서, 스마트카드 상에 저장된 개인키/공개키 세트의 개인키를 이용하여 암호화된 형태가 생성되었다. 이 단계에 의해, 개인키/공개키 세트를 갖는 공지된 스마트카드에 의해 제공되는 증가된 보안이 이용될 수 있다. 이와 같은 보안 레벨은, 스마트카드 상의 개인키에 액세스하려고 공지된 해킹 방법을 이용하는 공격자가 모바일 장치의 수명기간 내에 그 키에 액세스할 수 없도록 하는 식으 로 설정될 수 있다.
양호한 실시예에서, 메시지와 함께 수신되는 대칭 암호화 키를 이용하여 암호화된 형태가 생성되었다. 여기서, 대칭 암호화 키는 암호화된 형태로 수신되고, 그 암호화된 형태는 스마트카드 상에 저장된 개인키/공개키 세트의 공개키를 이용하여 생성되었다. 여기서, 대칭 암호화 키는, 일단 스마트카드에 의해 언팩되면 제1 애플리케이션에 의해서만 액세스될 수 있는 세션키로서 작용한다. 다시 한번, 스마트카드 상의 개인키/공개키 암호화에 의한 향상된 보안은 제1 애플리케이션의 완전성이 확인될때까지 메시지의 콘텐츠를 보호할 수 있다. 세션키의 이용은 스마트카드에 의해 수행되는 작업량을 저감시킨다. 완전성의 확인 후에, 메시지의 암호해독은 언팩된 세션키를 이용하여 제1 애플리케이션 그 자체에 의해 수행될 수 있다. 이 단계는, 세션키 언팩, 즉, 암호해독보다 훨씬 더 계산집약적이다. 따라서, 더 많은 시간과 에너지를 사용한다. 전력 소모를 줄이기 위해, 세션키의 암호해독 이후에 스마트카드 전력이 차단되거나 저감되고, 실행중인 제1 애플리케이션을 갖는 모바일 장치만이 그 동작을 계속하기 위해 에너지를 사용한다.
양호한 실시예에서, 한 세트의 미리결정된 챌린지/예측된 응답으로부터 챌린지 및 예측된 응답이 선택된다. 이로써, 예측된 해시 값을 미리계산함으로써 제1 애플리케이션이 완전성 검사를 우회하려고 시도하는 위험이 저감된다. 미리결정된 챌린지/예측된 응답 세트가 더 클수록, 제1 애플리케이션 이미지가 완전하지 않음에도 불구하고 제1 애플리케이션이 예측된 응답에 대응하는 응답의 생성에서 성공할 확률은 적어진다.
양호한 실시예에서, 챌린지 단계 및 응답 단계는 스마트카드 상의 완전성 애플릿에 의해 실행된다. 이것은 유익한 것인데, 왜냐하면, 제1 CPU(20) 상에서 행하는 것보다 더 안전한 컴퓨팅 환경에서 이들 단계들이 수행되기 때문이다. 여기서, 제1 애플리케이션은 이들 단계들에 영향을 미칠 수 있다.
양호한 실시예에서, 챌린지 단계는 모바일 장치의 메모리 내의 미리결정된 메모리 영역의 해시 값에 대한 계산 요청을 포함한다. 그 잇점은, 완전한 메모리 영역으로부터 한 비트의 이탈조차도 식별할 수 있는 방편을 제공하면서도 해시 값의 계산이 기술적으로 더 간단하다는 점이다.
양호한 실시예에서, 메모리 영역은, 제1 애플리케이션의 제1 애플리케이션 이미지의 적어도 일부를 포함하도록 선택된다. 이러한 선택에 의해, 목적하는 제1 애플리케이션이 비휘발성 메모리내에서 즉시 검사된다. 따라서, 유익한 방식으로 완전성-변경 검출의 가능성이 증가된다.
양호한 실시예에서, 메모리 영역은 선두 어드레스와 말미 어드레스에 의해 결정된다. 이 메모리 영역은, 미리결정된 챌린지/예측된 응답 세트의 챌린지들마다 구분가능하다. 이 선택은 유익하게도 상이한 챌린지들을 고안하는 간단한 수단을 제공하는데, 이것은, 선두 어드레스와 말미 어드레스가 비교적 많은 선택 변종을 제공하는 제1 애플리케이션 이미지의 파라미터를 제공하기 때문이다.
양호한 실시예에서, 동등 검사 단계의 결과가 부정적인 경우, 그 결과는 부정 완전성 플래그로서 유지된다. 이렇게 하는 것은 유익한데, 왜냐하면, 그렇게 함으로써 일단 불완전한 제1 애플리케이션이 완전한 상태로 되돌아가는 것이 방지되어, 불완전한 제1 애플리케이션이 완전한 제1 애플리케이션 이미지를 재확립함으로써 그 지속되는 불완전성을 마스킹하려고 조처를 취하는 것을 허용하지 않는다.
또 다른 양호한 실시예에서, 동등 검사의 부정적 결과는 각각의 챌린지와 함께 저장된다. 이렇게 하는 것의 잇점은, 애플리케이션의 어느 부분이 부정조작되었는지를 유추하는 것이 가능하다는 것이다.
양호한 실시예에서, 제1 애플리케이션은 모바일 장치의 제1 통신 모듈을 통해 업데이트가능하다. 그 잇점은, 모바일 장치가 제1 애플리케이션의 업데이트를 수행하기 위해 미리결정된 장소에 존재할 필요성이 없다는 것이다.
양호한 실시예에서, 업데이트된 제1 애플리케이션은 제2 애플리케이션 이미지에 저장된다. 이것은 제1 애플리케이션 이미지로부터 제2 애플리케이션 이미지로 스위칭함으로써 제1 애플리케이션을 업데이트하는 특징을 허용한다. 자연스럽게, 이것은 제1 애플리케이션 이미지의 저장 공간 내에 다음 업데이트를 저장하고, 그 업데이트로 스위칭함으로써 계속될 수 있다. 이러한 스위칭은, 버전 넘버를 유지하고, 가장 최근의 업데이트가 저장되어 있는 곳의 표시자로서 버전 넘버들 중 더 높은 넘버를 CPU가 이용함으로써 실시될 수 있다.
양호한 실시예에서, 업데이트된 제1 애플리케이션은 업데이트된 챌린지/예측된 응답의 업데이트된 세트와 함께 수신된다. 이런 식으로 애플리케이션 업데이트 뿐만 아니라 완전성 검사에 대한 대응하는 챌린지/예측된 응답이 로딩될 수 있어서, 시간상 잇점을 제공한다. 만일 업데이트가 통신 모듈을 통해 전송된다면, 원격 업데이트는 완전한 형태로 가능하며, 모바일 장치를 통신 모듈의 도달 거리 내의 임의 장소에 유지시킨다.
양호한 실시예에서, 이 방법은 접수확인통보 단계를 더 포함한다. 여기서, 동등 검사 단계 이후에, 동등 검사 단계의 결과의 전달없이 응답의 수신이 접수확인통보된다. 이와 같은 접수확인통보 단계는, 완전성 검사의 결과를 공개하지 않는 정보 상태로 제1 애플리케이션이 유지된다는 잇점을 가진다. 이로써, 완전성 단계와 임의의 최종 결과는 제1 애플리케이션으로부터 투명하게 유지된다. 따라서, 접수확인통보 단계는, 모든 것이 OK이고 챌린지-응답 프로시져가 긍정적 결과와 더불어 성공적인 것처럼 가장하는 완전성 애플릿의 한 요소이다. 이로써 제1 애플리케이션은 통보받지 않은 상태를 유지하고 모바일 장치, 메시지, 또는 백엔드 시스템 또는 부착된 기타 임의의 시스템에 해를 끼치거나, 메시지 전송을 지연시키고, 그에 따라 검출을 지연시킬 수 있는 액션을 수행할 아무런 이유를 갖지 않는다.
본 발명의 제3 양태에 따르면, 데이터 처리 시스템의 프로세서에 로딩될 때 프로세서로 하여금 전술된 방법을 수행하도록 하는 컴퓨터 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 요소가 제공된다. 유익하게도, 이 방법은 이와 같은 데이터 처리 시스템 내에 프로그래밍될 수 있다. 여기서, 모바일 장치 상에서 실행중인 제1 애플리케이션을 통해 모바일 장치로부터 메시지를 전송하기 위한 방법은 스마트카드 데이터 처리 시스템 내에 프로그래밍될 수 있다. 모바일 장치 상에서 실행중인 제1 애플리케이션을 통해 모바일 장치로부터 메시지를 수신하기 위한 이 방법은 스마트카드 데이터 처리 시스템 내에 프로그래밍될 수 있다.
상기 컴퓨터 프로그램 요소는, 전술된 방법을 수행하기 위해 프로세서에 의해 실행가능한 프로그램 명령어를 포함하는 컴퓨터 판독가능한 매체를 포함한 컴퓨터 프로그램 제품의 형태로도 제공될 수 있다.
본 발명의 제3 양태에 따르면, 제1 애플리케이션의 제1 애플리케이션 이미지를 저장하기 위한 메모리와, 수신된 챌린지에 대한 응답을 계산하도록 구성된 제1 프로세서와; 스마트카드로부터 챌린지를 수신하고 응답을 전송하며 서명된 메시지를 수신하기 위한 카드 리더기와; 및 서명된 메시지를 백엔드 시스템에 전송하기 위한 제1 통신 모듈을 포함하는 모바일 장치가 제공된다.
본 발명의 제4 양태에 따르면, 제1 애플리케이션에게 챌린지를 제공하기 위한 챌린지 단계와; 상기 챌린지에 대한 응답을 수신하기 위한 응답 단계와; 수신된 응답이 예측된 응답에 대응하는지의 여부를 판정하기 위한 동등 검사 단계와; 암호화 키와 동등 검사 단계의 결과를 이용하여 메시지에 서명하기 위한 서명 단계와; 및 메시지에 대한 서명을 제1 통신 모듈에게 포워딩하기 위한 서명 포워딩 단계를 실행하기 위한 완전성 애플릿을 그 내부에 포함하는 스마트카드가 제공된다.
양호한 실시예에서, 완전성 애플릿은 접수확인통보 단계를 실행하도록 추가로 구성되어 있다. 여기서, 동등 검사 단계후에, 동등 검사 단계의 결과를 전달하지 않고 응답의 수신이 접수확인통보된다.
역시 또 다른 실시예에서, 스마트카드는 개인키/공개키 쌍을 더 포함한다. 상기 개인키/공개키쌍의 공개키는 암호화키로서 사용가능하다.
역시 또 다른 실시예에서, 스마트카드는 한 세트의 미리결정된 챌린지/예측된 응답을 더 포함한다. 이 한세트의 미리결정된 챌린지/예측된 응답으로부터, 챌린지 및 그 예측된 응답이 선택될 수 있다.
역시 또 다른 실시예에서, 스마트카드는 완전성 플래그를 더 포함한다. 동등 검사 단계의 결과가 부정적이라면, 이 완전성 플래그에 그 결과가 유지된다.
본 발명과 그 실시예들은, 첨부된 도면들과 연계하여 본 발명에 따른 양호하지만 예시적인 목적의 실시예들에 대한 이하의 상세한 설명을 참조하여 더욱 잘 이해될 것이다.
도 1은 모바일 장치와 통신하는 백엔드 시스템을 예시하는 개략도이다.
도 2는 비휘발성 메모리의 파티션들의 일례이다.
도 3은 모바일 장치의 기능 컴포넌트들을 예시하는 개략도이다.
도 4는 부정조작된 제1 애플리케이션으로 모바일 장치로부터 백엔드 시스템으로 메시지를 전송하기 위한 한 방법의 플로차트이다.
도 5는 부정조작되지 않은 제1 애플리케이션으로 모바일 장치로부터 백엔드 시스템으로 메시지를 전송하기 위한 한 방법의 플로차트이다.
도 6은 부정조작되지 않은 제1 애플리케이션으로 백엔드 시스템으로부터의 메시지를 모바일 장치에서 수신하기 위한 한 방법의 플로차트이다.
도 7은 부정조작된 제1 애플리케이션으로 백엔드 시스템으로부터의 메시지를 모바일 장치에서 수신하기 위한 한 방법의 플로차트이다.
도 1은, 메모리(40)(이후부터는 비휘발성 메모리(40)라 언급)와, 제1 통신 모듈(60)과, 제1 메인 메모리(30)(제1 RAM(30)이라고도 언급함)와, 제1 프로세서(20)(제1 CPU(20)라고도 언급함)를 포함하는 컴퓨팅 환경을 포함하는 모바일 장치(200)를 도시한다. 이들 모두(20, 30, 40, 60)는 제1 데이터/어드레스 버스(50)에 부착되어 있다. 제1 CPU(20)는 삽입시 스마트 카드(10)를 판독하기 위해 카드리더기(100)에도 역시 접속되어 있다.
스마트카드, 칩 카드, 또는 집적 회로 카드는, 여기서는, 임베딩된 집적 회로들을 구비한 포켓-크기의 카드인 것으로서 이해된다. 스마트카드(10)는 또한, 카드 메모리와 마이크로프로세서 컴포넌트들을 포함하는 마이크로프로세스 카드라고 언급된다. 특히, 예를 들어, 보안 암호-프로세서와 같은 부정조작 방지 속성, 보안 파일 시스템, 인간-판독가능한 특징들을 구비한 GSM SIM과 같은, 신용카드 크기 또는 그보다 작은 크기의 마이크로프로세서 카드가 스마트카드(10)로서 사용될 수 있으며, 카드 메모리 내의 정보의 기밀성과 같은 보안 서비스를 제공할 수 있 다.
모바일 장치(200)는 양호한 실시예에서 임베디드 플랫폼일 수 있다. 여기서, 제1 애플리케이션 이미지(41)는, FLASH RAM, EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 펌웨어, 또는 프로그래머블 로직과 같은 비휘발성 메모리(40)에 저장된다. 비휘발성 메모리(40)는, 내부 저장 장치, 부착된 저장 장치, 및/또는 네트워크 액세스가능한 저장 장치를 포함할 수 있다. 임베디드 플랫폼은, 전술된 컴퓨터 환경외에도, 그 신호가 모바일 장치(200) 내에서 처리될 수 있는 하나 이상의 센서를 포함할 수 있다.
모바일 장치(200)는, 제2 통신 모듈(70), 제2 메인 메모리(90)(제2 RAM(90)이라고도 언급), 제2 프로세서(80)(제2 CPU(80)라고도 언급)를 포함하는 컴퓨팅 환경을 포함하는 백엔드 시스템(300)에 접속할 수 있다. 이들 모두(70, 80, 90)는 제2 데이터/어드레스 버스(110)에 부착되어 있다.
제1 통신 모듈(60) 및 제2 통신 모듈(70)은 서로 통신하도록 적합화되어 있다.
제1 CPU(20)는, 대응하는 제1 애플리케이션 이미지(41)가 저장되어 있는 비휘발성 메모리(40)로부터 제1 애플리케이션(1)을 로드한다. 이 제1 애플리케이션(1)은, 예를 들어 센서의 센서 신호 처리를 포함할 수 있다. 제1 메인 메모리(30)는 제1 CPU(20)에 의해 처리된 데이터가 저장되는 장소이다. 양호한 실시예에서, 모바일 장치(200)는 백엔드 시스템(300)에 메시지(μ)를 전송한다. 예를 들어, 메시지 μ는 센서 신호를 처리한 결과를 포함한다. 백엔드 시스템(300)의 경 우, 수신된 메시지 μ의 완전성에 의존하는 것이 바람직하다. 모바일 장치(20)는 전형적으로 원격지에 위치하고 그에 따라 백엔드 시스템(300)의 제어 밖이므로, 백엔드 시스템(300)은 모바일 장치(200)가, 제1 애플리케이션 이미지(41)를 변경할 수 있는, 그에 따라, 제1 애플리케이션(1)을 수정할 수 있는, 그에 따라, 센서 신호의 처리를 수정할 수 있는, 무권한자에 의해 액세스되지 않았는지를 확인할 가능성이 제한되거나 전혀 없다. 그 결과, 메시지 μ는 수정되지 않은 제1 애플리케이션(1)이 생성하는 원본이 아닌 데이터를 포함할 수 있다. 이하에서, 이와 같은 무권한자에 의한 제1 애플리케이션으로의 침입은 부정조작(tampering)이라 언급되며, 이러한 침입에 의해 제1 애플리케이션의 완전성이 파괴된다. 이와 같은 침입을 수행하는 실체는 침입자라 언급된다. 이와 같은 부정조작을 방지하고 백엔드 시스템(300)이 그 부정조작에 대응하도록 허용하기 위해 이와 같은 검출된 부정조작을 백엔드 시스템(300)에게 통지하는 것이 바람직하다. 이러한 통지는 제1 통신 모듈(60)과 제2 통신 모듈(70) 사이의 통신 링크를 통해 발생할 수 있다. 제1 통신 모듈(60)을 통해 이와 같은 통지를 전송하는 것은 챌린지이다. 왜냐하면, 침입자는 그 부정조작 행위를 감추어 백엔드 시스템(300)이 부정조작이 발생한 사실을 깨닫지 못하도록 하기 위해 이와 같은 통신을 간섭할 수 있기 때문이다. 스마트카드(10)는, 제1 애플리케이션(1)의 일부가 되는 완전성 모듈(21)과 공조하는 완전성 애플릿(11)을 포함한다.
완전성 애플릿(11) 및 완전성 모듈(21)은 함께, 스마트카드(10)가 제1 애플리케이션 이미지(41)의 완전성을 테스트하는 것을 허용하는 프로세스를 수행한다. 이 테스트의 결과는 백엔드 시스템(300)에 전송되는 메시지 μ 내에 임베딩된다.
통지된 부정조작에 대하여 백엔드 시스템(300)에 의해 취해지는 가능한 반응은, 메시지 μ 및 모바일 장치(20)로부터의 향후의 임의의 메시지들을 무시하는 것이거나, 또는 모바일 장치(200)를 디스에이블하는 것이거나, 또는 부정조작되지 않은 제1 애플리케이션 이미지(41)를 재구축하기 위해 업데이트된 애플리케이션 이미지를 전송하는 것이거나, 기타의 활동을 수행하는 것이다.
도 2에서, 비휘발성 메모리(40)에 상주하는 파티션들이 개략적으로 도시되어 있다. 비휘발성 메모리(40)에는, 부트 모니터(42), 제1 애플리케이션 이미지(41), 제2 애플리케이션 이미지(43), 구성 데이터(44), 파일 시스템(45), 플래시 정보 시스템(46)을 포함한, 다양한 파티션들이 존재한다.
부트 모니터(42)는 모바일 장치(200)를 기동하기 위해 동작한다. 이것은 제1 애플리케이션 이미지(41)에 저장되어 있는 제1 애플리케이션(1), 또는 대안으로서, 제2 애플리케이션 이미지(43)에 저장되어 있는 제2 애플리케이션을, 제1 CPU(20)가 로드하는 것을 허용한다. 2개의 애플리케이션 이미지(41,43)의 공존은 통신 모듈(60, 70)을 통한 업데이트 동작을 허용한다. 그 다음, 제1 애플리케이션(1)의 제1 업데이트를 수신하기 위해 제2 애플리케이션 이미지(43)가 사용되고, 업데이트된 제1 애플리케이션(1)은 더 높은 시리얼 넘버를 수신한다. 다음 업데이트를 위해 제1 애플리케이션 이미지(41)는 업데이트된 제1 애플리케이션(1)을 수신하고, 다시 한번, 더 높은 시리얼 넘버를 수신한다. 애플리케이션 이미지(41, 43)의 이러한 이용은 교대로 계속된다. 부트 모니터(42)는 가장 높은 시리얼 넘버를 갖는 애플리케이션을 탐색하며, 따라서, 다음 부팅 프로세스에 대해 가장 최근에 업데이트된 제1 애플리케이션(1)을 자동으로 픽업할 것이다.
구성 데이터 및 파일 시스템은 제1 애플리케이션에 대한 입력을 제공한다. 구성 데이터는 어떤 센서를 이용할지, 이들 센서들을 얼마나 자주 검사할지 뿐만 아니라, 메시지 및 경고를 언제 전송할지를 결정하는 파라미터 설정을 포함할 수 있다. 또한, 파라미터들은 모바일 장치의 현재의 지리적 위치에 의존할 수 있다. 구성 데이터는 대개 비휘발성 메모리 내의 파일 시스템에 저장되지만, 비휘발성 메모리의 특정한 예약 영역에 직접 저장될 수도 있다.
플래시 정보 시스템(46)은, 부트 모니터(42)가 비휘발성 메모리(40)의 메모리 범위 내의 심볼릭 어드레스와 함께 동작하는 것을 허용한다. 이러한 특징은, 애플리케이션을 개발, 즉 제1 애플리케이션(1)의 어드레스 범위가 아직 확정되지 않았을 때 도움이 된다. 판매되고 있는 모바일 장치(200)에서와 같이, 플래시 정보 시스템(46)은 포기될 수 있다.
도 3에서, 스마트카드(10)의 콘텐츠가 개략적으로 도시되어 있다. 이것은, 침입자가 그 개인키에 액세스하는 것을 막기 위해 미리결정된 레벨의 보안을 제공하는 장소에 유지되고 있는 개인키/공개키 쌍(12)을 포함한다. 개인키/공개키 쌍(12)은 전자 서명 애플릿(13)에 의해 액세스가능하다. 또한, 스마트카드(10)는 한세트의 챌린지-응답쌍에 액세스하는 완전성 애플릿(11)을 포함한다. 여기서, 각각의 챌린지(18)에 대해 대응하는 예측된 응답(19)이 저장된다. 완전성 애플릿(11)에 의해 전달되는 결과는, 전자-서명 애플릿(13) 및 인코더/디코더 애플 릿(16)에 의해 액세스될 수 있는 상태 표시자(14)에 유지된다. 또한, 스마트카드 직렬 인터페이스(17)을 가지며, 이 직렬 인터페이스(17)를 통해, 예를 들어, 표준 ISO 7816 APDU로 제1 CPU(20)와 통신한다.
이하에서, 스마트카드(10)의 애플릿들(13, 16, 11)을 이용하여 모바일 장치(200)와 백엔드 시스템(300) 사이에서 메시지 μ를 교환하는 방법이 기술된다. 이든 방법들 모두는 본 명세서에서 가디언 프로세스(guardian process)라 불리는 프로세스를 공통으로 가진다. 이 프로세스는, 도 4 내지 도 7의 방법이 상세히 기술되기 이전에 기술된다. 이하에서, 완전성 애플릿(11)은 가디언 애플릿(11)이라고도 불리며, 완전성 모듈(21)은 가디언 모듈(21)이라고도 불린다.
가디언 프로세스는 다음과 같이 동작한다: 스마트카드(10) 상의 가디언 애플릿(11)은 제1 CPU(20) 상에서 실행중인 제1 애플리케이션(1)의 가디언 모듈(21)과 통신한다. 가디언 애플릿(11)은 완전성 챌린지 C_int를 가디언 모듈(21)에게 보낸다. 완전성 챌린지 C_int에는 해시 함수 H, 여기서는, 특히, 비휘발성 메모리(40)의 영역에 관해 암호화 해시 H(s, e)를 계산할 것에 대한 가디언 모듈(21)로의 요청이 수반된다. 여기서, s는 비휘발성 메모리(40)내 영역의 선두 어드레스를 나타내고, e는 말미 어드레스를 나타내며, 그에 따라, 암호화 해시 H(s, e)가 계산될 영역을 정의한다. 각각의 완전성 챌린지 C_int에 대해 가디언 애플릿(11)은 예측된 응답 값 R_exp를 가진다. 가디언 모듈(21)은 비휘발성 메모리(40)의 표시된 영역(s, e)에 관해 암호화 해시 함수 H(s, e)를 계산하고, 그 결과 R_app = H(s, e)를 가디언 애플릿(11)에게 반환한다. 만일 R_exp = R_app이라면, 완전성 챌린지 C_int가 만족된다. 이 등식은 그 결과 S에 관해 완전성 애플릿(11)에 의해 검사된다.
가디언 애플릿(11)은 하기와 같이 (R_exp = R_app) 동등 검사의 결과 S를 추적한다: 논리 변수 app_integer = app_integer & (R_exp = R_app), 여기서, app_integer은 초기값 '참'으로서 시작한다. 이로써, 논리 변수 app_integer는 완전성 플래그로서 역할한다. 일단 값 '거짓'으로 설정되고 나면, 값 '참'으로 돌아갈 수 없다. 가디언 애플릿(11)은 (R_exp == R_app) 동등 검사의 결과 S를 가디언 모듈(21)에게 전달하지 않는다.
상기 프로세스는 제1 애플리케이션 이미지(41)의 완전성을 모니터링하는데 사용된다. R_exp = R_app이 되도록 가디언 모듈(21)이 결과 R_app을 가디언 애플릿(11)에게 제공할 수 있는 한, 제1 애플리케이션 이미지(41)는 완전한 것으로 간주된다. 이 프로세스에 의해, 제2 애플리케이션 이미지(42)의 완전성, 또는 제1 애플리케이션 이미지(41)와 제2 애플리케이션 이미지(42)의 임의의 조합의 완전성을 모니터링하는 것도 역시 가능하다. 양호한 실시예는 양쪽 애플리케이션 이미지(41, 42)를 함께 검사한다.
각각의 스마트카드(10)는 복수의 완전성 챌린지 C_int를 저장할 수 있다. 발행된 각각의 스마트카드(10)는 고유 세트의 완전성 챌린지 C_int를 가질 수 있어서, 어떠한 2개의 스마트카드(10)도 동일한 세트의 완전성 챌린지 C_int를 갖지 않을 것이다. 2개의 스마트카드(10)가 동일한 완전성 챌린지 C_int를 가질 확률은 제1 애플리케이션 이미지(41)의 크기에 의존한다. 완전성 검사외에도, 제1 애플리 케이션 이미지(41)의 크기가 비휘발성 메모리(40) 내의 미사용 메모리의 크기보다 항상 크도록 제1 애플리케이션 이미지(41)를 부풀리는 것(pad out)이 유익하다. 여기서 "패딩 아웃"은, 선두 어드레스 s와 말미 어드레스를, 제1 애플리케이션 이미지(41)의 정확한 크기보다 큰 면적으로 설정하는 것을 의미한다. 양호한 실시예에서, 이 면적은 가용 비휘발성 메모리(40)의 크기의 절반보다 크다. 이들 수단들 양자 모두는, 침입자가 미리계산된 값들을 반환하거나 제1 애플리케이션 이미지(41)의 사본을 비휘발성 메모리(40)의 미사용 부분에 단순히 저장하고, 저장된 사본으로부터 완전성 챌린지 C_int를 만족시킴으로써 완전성 애플릿(11)을 기만하는 행위를 방지한다. 전술된 프로세스는 제1 애플리케이션(1)이 여전히 완전한지의 여부를 판정하는 것을 허용한다.
제2 프로세스는 서명, 인코딩, 및 디코딩 동작의 결과에 영향을 미치기 위해, 완전성 플래그, 즉, 스마트카드(10) 상의 app_integer 변수를 이용한다: 완전성 플래그 app_integer가 '거짓'이면, 즉, 완전성 챌린지들 C_int들 중 하나가 제1 애플리케이션(1)에 의해 실패되었을 때, 암호화 동작의 결과는 잘못임이 입증된다. 예를 들어, 제1 애플리케이션(1)이 스마트카드(10)에게 서명 Ω를 발생할 것을 요청하면, 스마트카드(10)는 완전성 플래그 app_integer의 상태 검사없이는 서명 Ω를 발생하지 않을 것이다. 만일 완전성 플래그 app_integer가 '거짓'이라면, 스마트카드(10)는 거짓 서명 Ω'를 발생하며 그 서명 Ω' 내에 실패한 완전성 챌린지 C_int에 대한 정보를 포함한다. 따라서, 서명 Ω는 제1 애플리케이션 이미지(41)가 부정조작되었다는 것을 백엔드 시스템(300)에게 시그널링하기 위한 비밀 채 널(covert channel)로서 사용된다. 서명 Ω는, 예를 들어 스마트카드(10)의 개인키일 수 있는 암호화 키를 이용하여 생성된다. 전송 이전에, 메시지 μ는 암호화될 수 있다. 이를 위해, 스마트카드(10)의 개인키가 사용될 수 있다. 따라서, 서명 Ω 및 메시지 μ의 암호화는 양자 모두 동일한 키를 사용하여 수행될 수 있으며, 양자 모두 스마트카드(10)에 의해 수행될 수 있다. 이 경우, 제1 애플리케이션(1)은, 메시지 μ가, 양호한 실시예에서는 동등 검사 단계(32)의 결과 S를 이용하여 전송 이전에 수정될 수 있도록 메시지 μ에 관해 검사할 수 없다. 대안으로서, 메시지 μ는, 백엔드 시스템(300)의 공개키를 이용하여 스마트카드(10) 상에서 암호화될 수 있다. 이 결과 S는 예를 들어 암호화 및 전송 이전에 원래의 메시지 μ에 부가될 수 있다. 또한, 스마트카드(10)측 상의 전력 소비를 저감시키기 위해, 결과 S만의 암호화가 스마트카드(10)에 의해 수행될 수 있으며, 이 암호화된 결과 S는 원래의 메시지 μ에 부가될 수 있고, 그 다음, 백엔드 시스템(300)의 공개키와 같은 또 다른 암호화 키를 이용하여 제1 애플리케이션(10)에 의해 암호화된다.
도 4에는, 부정조작된 제1 애플리케이션(1)으로 메시지를 모바일 장치(200)로부터 백엔드 시스템(300)으로 전송하기 위한 방법의 플로차트가 예시되어 있다.
전송 요청 단계에서, 제1 애플리케이션(1)은 백엔드 시스템(300)에 전송될 메시지 μ를 제1 통신 모듈(60)에 전송한다. 제1 통신 모듈(60)은, 이 메시지 μ가, 서명 요청 단계(23)에서 전자 서명 애플릿(13)에 의해 서명 Ω으로 서명될 것을 요청한다. 그 다음, 전자 서명 애플릿(13)은 상태 검사 단계(214)에서 제1 애 플리케이션 이미지(41)의 완전성 상태 S에 대한 요청을 완전성 애플릿(11)에게 전송한다. 챌린지 단계(25)에서 완전성 애플릿(11)은 완전성 챌린지(18)를 완전성 모듈(21)에 전송한다. 그 다음, 완전성 모듈(21)은 응답 계산 단계(47)에서 응답(19')을 계산한다. 응답 단계(26)에서, 응답(19')이 완전성 모듈(21)로부터 완전성 애플릿(11)에 되전송된다. 동등 검사 단계(32)에서, 수신된 응답(19')은 예측된 응답(19)과 비교된다. 접수확인통보 단계(27)에서, 완전성 애플릿(11)은, 동등 검사 단계(32)의 결과 S를 완전성 모듈(21)에게 통보하지 않고 접수확인을 완전성 모듈(21)에 되전송한다. 따라서, 완전성 모듈(21)은, 올바른, 예측된 응답(19)으로 응답했는지의 여부를 가리키는 표시를 갖지 않는다. 상태 보고 단계(28)에서 완전성 애플릿(11)은 동등 검사 단계(32)의 결과 S를 서명 애플릿(13)에게 전달한다. 이 결과 S에 기초하여 서명 애플릿(13)은 메시지 수정 단계(48)와 더불어, 또는 이 단계없이, 서명 단계(49)를 수행한다. 긍정적 결과 S의 경우, 즉, 예측된 응답(19)이 수신된 응답(19')과 동일한 경우, 메시지 μ는 수정없이 서명된다. 부정적 결과 S의 경우, 즉, 예측된 응답(19)이 수신된 응답(19')과 동일하지 않은 경우, 메시지 μ는 서명 단계(49) 이전에 변경된다. 이와 같은 변경 또는 수정은 상이한 방식으로 설계될 수 있다. 예를 들어, 서명 애플릿(13)은 부메시지를 메시지 μ에 덧붙일 수 있다. 여기서, 부메시지는 예측된 응답(19)이 수신된 응답(19')과 동일하지 않다는 것을 말해준다. 또한, 메시지 μ는, 예를 들어 그 정보를 스크램블링함으로써 변경될 수 있다. 다른 수정도 역시 가능하다. 궁극적으로, 메시지 μ는 어쨌든 서명 단계(49)에서 서명된다. 여기서는 이해의 목적을 위해, 변경된 제1 애플리케이션 이미지(41)의 경우에서의 메시지 μ에 대한 서명 Ω는, 비록 서명된 메시지 μ의 첫번째 수신자인 제1 통신 모듈(21)에게는, 부정조작되지 않은 제1 애플리케이션 이미지(41)의 경우에서의 서명 Ω와 비교하여 가시적인 차이점이 없지만, Ω'로서 표시되어 왔다. 그 후, 서명 Ω'를 갖는 메시지 μ는 서명 포워딩 단계(31)에서 제1 통신 모듈(60)에 포워딩된다. 마지막으로, 전송 단계(31)에서 제1 통신 모듈(60)은 서명된 메시지 μ+ Ω'를 제2 통신 모듈(70)에게 전송한다. 백엔드 시스템에서, 메시지 μ는 판독가능하며 수정도 역시 탐지가능하다. 따라서, 모바일 장치(200)는 메시지 μ에 대한 도관(conduit)으로서 역할하여, 인식되어진 변경된 제1 애플리케이션 이미지(41)로 인한 모바일 장치(200)의 신뢰성의 결함을 전달한다.
따라서, 이 프로세스를 요약하면, 제1 애플리케이션(1)이 백엔드 시스템(300)에게 메시지를 전송하기를 원할 때는, 제1 통신 모듈(60)에게 메시지를 전송한다. 그러면, 제1 통신 모듈(60)은 스마트카드(10)에게 스마트카드(10)가 그 공개/개인키 쌍(12)을 유지하고 있는 전자 서명 Ω를 요청한다. 데이터에 서명하기 이전에, 스마트카드(10)는 제1 애플리케이션(1)의 완전성을 검사한다. 스마트카드(10)는 완전성 플래그 app_integer의 업데이트를 획득하기 위해 전술된 챌린지-응답 프로세스를 이용하는 가디언 애플릿(11)을 가동시킨다. 만일 완전성 플래그 app_integer가 '참'을 유지하고 있다면, 전자-서명 애플릿(13)은 이것을 통지받고, 그 다음, 백엔드 시스템(300)에게 전송하기 위해 그 데이터에 서명할 것이다. 완전성 플래그 app_integer가 '거짓'인 경우, 가디언 모듈(21)은 여전히 접수확인을 수신할 것이지만, 전자 서명 애플릿(13)은 제1 애플리케이션(1)이 완전하지 않다는 것을 통지받을 것이다. 그 다음, 서명기는 메시지 μ 내에 경고 정보를 도입한 다음, 이에 서명하고, 백엔드 시스템(300)으로의 전송을 위해 이것을 제공한다. 메시지는 경고 메시지와 함께 백엔드 시스템(300)에 수송된다. 모바일 장치(200)는 자신이 악성인 것으로 추적되어왔다는 것을 깨달을 확률이 없으며, 그 자신의 악의에 관한 정보 통로로서 역할할 것이다.
그대신 만일 모바일 장치(200)가 그 자신의 악의를 차단하기 위해 백엔드 시스템(300)에게 어떠한 데이터도 되전송하지 않기로 한다면, 백엔드 시스템(300)은 더 이상의 데이터를 수신하지 않을 것이다. 백엔드 시스템(300)이 소정 기간 내에 특정한 메시지(심박 메시지 또는 생존확인 메시지라고도 불림)를 기대하는 방식으로, 백엔드 시스템(300)과 모바일 장치(200)간의 메시지 프로토콜을 설계하는 것이 유익하다. 이와 같은 심박 메시지의 부재는 시스템 고장 또는 악성 모바일 장치(200)로서 해석될 것이고, 어느 경우든, 백엔드 시스템(300)은 모바일 장치(200)에게 더 이상 정보를 전송하지 않을 것이다.
도 5에서, 부정조작되지 않은 애플리케이션을 이용하여 모바일 장치로부터 백엔드 시스템으로의 메시지의 전송을 위한 방법의 플로차트가 예시되어 있다.
전송 요청 단계에서, 제1 애플리케이션(1)은 백엔드 시스템(300)에게 전송될 메시지 μ를 제1 통신 모듈(60)에게 전송한다. 제1 통신 모듈(60)은, 서명 요청 단계(23)에서, 이 메시지 μ가 전자 서명 애플릿(13)에 의해 서명 Ω로 서명될 것을 요청한다. 그 다음, 전자 서명 애플릿(13)은, 상태 검사 단계(24)에서 제1 애 플리케이션 이미지(41)의 완전성 상태에 대한 요청을 완전성 애플릿(11)에게 전송한다. 챌린지 단계(25)에서 완전성 애플릿(11)은 완전성 챌린지(18)를 완전성 모듈(21)에게 전송한다. 그 다음, 완전성 모듈(21)은 응답 계산 단계(47)에서 응답(19')을 계산한다. 응답 단계(26)에서, 완전성 모듈(21)로부터 완전성 애플릿(11)으로 응답(19')이 되전송된다. 동등 검사 단계(32)에서, 수신된 응답(19')은 예측된 응답(19')과 비교된다. 접수확인통보 단계(27)에서, 완전성 애플릿(11)은 완전성 모듈(21)에게 동등 검사 단계(32)의 결과 S를 통지하지 않고 완전성 모듈(21)에게 접수확인을 되전송한다. 따라서, 완전성 모듈(21)은, 올바른, 예측된 응답(19)으로 응답했는지의 여부를 가리키는 어떠한 표시도 갖지 않는다. 상태 보고 단계(28)에서, 완전성 애플릿(11)은 동등 검사 단계(32)의 결과 S를 서명 애플릿(13)에게 전달한다. 이 결과 S에 기초하여, 서명 애플릿(13)은 메시지 보정 단계(48)와 함께 또는 이 단계 없이, 서명 단계(49)를 수행한다. 긍정적 결과 S의 경우, 즉, 예측된 응답(19)이 수신된 응답(19')과 동일한 경우, 메시지 μ는 보정없이 서명된다. 긍정적 결과 S의 경우, 즉, 예측된 응답(19)이 수신된 응답(19')와 동일한 경우, 메시지 μ는 서명 단계(49) 이전에 변경되지 않는다. 결국, 메시지 μ는 어쨌든 서명 단계(49)에서 서명된다. 그 후, 서명 Ω를 갖는 메시지 μ는 서명 포워딩 단계(31)에서 제1 통신 모듈(60)에 포워딩된다. 마지막으로, 제1 통신 모듈(60)은 전송 단계(31)에서 서명된 메시지 μ+Ω을 제2 통신 모듈(70)에게 전송한다. 백엔드 시스템에서, 메시지 μ는 판독가능하다.
또 다른 이벤트는 인입하는 정보의 처리이다.
도 6에서, 부정조작되지 않은 제1 애플리케이션(1)으로 백엔드 시스템(300)으로부터의 메시지 μ를 모바일 장치(200)에서 수신하기 위한 한 방법의 플로차트가 예시되어 있다.
메시지 수신 단계(33)에서, 세션키 Σ로 암호화된 메시지 μ가 제1 통신 장치(60)에서 수신된다. 메시지 μ에는, 개인키/공개키쌍(12)의 공개키 Π로 자체 암호화되는 세션키 Σ가 동반된다. 세션키 Σ는 여기서 대칭 암호화 키이다. 이와 같은 암호화는 또한 하이브리드 암호화라 일컬어진다. 메시지 Σ를 판독하기 위해서 제1 애플리케이션(1)은 세션키 Σ가 언팩킹, 즉, 암호해독될 것을 필요로 한다. 제1 통신 장치(60)는, 메시지 포워딩 단계(34)에서 암호화된 메시지 μ를 제1 애플리케이션(1)에 포워딩하고, 세션키 언팩 요청 단계(35)에서 암호화된 세션키 Σ를 인코더/디코더 애플릿(16)에게 포워딩한다. 임의의 디코딩을 수행하기 이전에, 인코더/디코더 애플릿(16)은 챌린/응답 프로세스를 수행한다.
인코더/디코더 애플릿(16)은, 상태 검사 단계(24)에서 제1 애플리케이션 이미지(41)의 완전성 상태 S에 대한 요청을 완전성 애플릿(11)에게 전송한다. 챌린지 단계(25)에서, 완전성 애플릿(11)은 완전성 챌린지(18)를 완전성 모듈(21)에 전송한다. 그 다음, 완전성 모듈(21)은 응답 계산 단계(47)에서 응답(19')을 계산한다. 응답 단계(26)에서, 완전성 모듈(2)로부터 완전성 애플릿(11)으로 응답(19')이 전송된다. 동등 검사 단계(32)에서 수신된 응답(19')이 예측된 응답(19)과 비교된다. 접수확인통보 단계(27)에서, 완전성 애플릿(11)은 완전성 모듈(21)에게 동등 검사 단계(32)의 결과 S를 통보하지 않고 완전성 모듈(21)에게 접수확인을 되 전송한다. 따라서, 완전성 모듈(21)은 올바른, 예측된 응답(19)으로 응답했는지의 여부를 가리키는 표시를 갖지 않는다. 상태 보고 단계(28)에서, 완전성 애플릿(11)은 동등 검사 단계(32)의 결과 S를 인코더/디코더 애플릿(16)에게 전달한다.
이 예에서, 상태 검사는 긍정 결과를 전달했다. 즉, 제1 애플리케이션 이미지(41)는 완전한 것으로 파악되었다. 따라서, 인코더/디코더 애플릿(16)은 세션키 언팩 단계(36)를 수행한다. 이 단계에서 세션키 Σ가 언팩된다. 즉, 개인키/공개키쌍(12)의 개인키를 이용하여 암호해독된다. 그 결과는 암호해독된 세션키 Σ이다. 세션키 포워딩 단계(37)에서, 세션키 Σ는 제1 애플리케이션(1)에 포워딩된다. 그곳에서, 수신된 세션키 Σ는 메시지 μ를 암호해독하는데 이용된다. 마지막으로, 암호해독된 메시지 μ는 메시지 사용 단계(39)에서 제1 애플리케이션(1)에 의해 이용된다. 이와 같은 메시지 μ의 이용예는, 제1 애플리케이션(1)을 업데이트하거나, 그 기능을 향상시키거나, 새로운 드라이버 소프트웨어를 설치하거나, 코드 버그를 바로잡거나, 소저의 정보를 리셋하거나, 정보를 삭제하거나, 데이터 연산등을 수행하는 것이다.
도 7에서, 부정조작된 제1 애플리케이션(1)으로 백엔드 시스템(300)으로부터의 메시지 μ를 모바일 장치(200)에서 수신하기 위한 한 방법의 플로차트가 예시되어 있다.
메시지 수신 단계(33)에서 세션키 Σ로 암호화된 메시지 μ가 제1 통신 장치(60)에서 수신된다. 그 후, 프로세스는 도 6과 연계하여 기술된 프로세스와 동일하다. 다시 한번, 상태 보고 단계(28)에서, 완전성 애플릿(11)은 동등 검사 단 계(32)의 결과 S를 인코더/디코더 애플릿(16)에게 전달한다.
이 예에서, 상태 검사 단계는 부정적 결과를 전달했다. 즉, 제1 애플리케이션 이미지(41)가 완전하지 않은 것으로 파악되었다. 따라서, 인코더/디코더 애플릿(16)은 오류 발생 단계(51)를 수행하고, 이 단계에서 세션키 Σ의 언팩대신에, 의사 메시지(54)라고도 언급되는 오류 메시지가 발생된다. 의사 메시지(54)는 오류 포워딩 단계(52)에서 제1 애플리케이션에 전송되고, 수신된 메시지 μ가 파손된 것처럼 제1 애플리케이션을 기만한다. 이로써, 제1 애플리케이션(1)은 다시 한번, 제1 애플리케이션(1)에 대한 메시지 μ의 공개를 실제로 방지한 것이 부정조작된 것으로 간주되었다는 사실을 알지 못한다. 따라서, 제1 애플리케이션(1)은 그 행동을 바꿀 동기가 없게 되는데, 이것은 그 소실된 완전성이 검출되었기 때문이다. 따라서, 불완전한 제1 애플리케이션(1)이 메시지 μ를 수신하는 것이 방지된다.
수신 메커니즘을 요약하면, 모바일 장치(200)가 세션키 Σ로 인코딩된 메시지 μ를 수신하고, 세션키 Σ는 스마트카드(10)의 공개키에 의해 자체 인코딩되는 경우, 스마트카드(10)에서 그 개인키는 세션키 Σ를 언팩하는데 이용된다. 그 다음, 세션키 Σ는 인코딩된 메시지 μ를 디코딩하기 위해 제1 CPU(20)에게 포워딩될 수 있다. 이것을 하기 전에, 스마트카드(10)는 완전성 플래그 app_integer의 상태를 검사한다. 완전성 플래그 app_integer가 '거짓'인 경우, 메시지 μ를 디코딩하기 위해 세션키 Σ를 제1 CPU(20)에게 포워딩하는 것 대신에, 스마트카드(10)는 제1 CPU(20)에게 오류를 반환하고 해독불가능한 메시지 μ를 수신한 것처럼 행동한다. 이로써, 제1 애플리케이션(1)은 악성인 것으로 식별되었기 때문에 제1 CPU(20)는 메시지 μ를 통해 정보를 수신하는 것이 금지된다. 불완전성의 검출을 CPU(20)에게 숨김으로써, CPU(20)는 서비스, 특히, 백엔드 시스템(300)으로의 메시징 서비스를 계속하여, 백엔드 시스템(300)은 CPU(20)가 부정조작했던 정보를 제공받을 수 있다. 따라서, 이 프로세스는, 인입 데이터가 의도하지 않은 수신자, 즉, 침입자에게 공개되는 것을 방지하고, 제1 애플리케이션 이미지(41)가 부정조작되었다는 사실을 백엔드 시스템(300)에게 시그널링하는 것을 허용한다.
상기 방법은 또한, 전체 메시지 μ의 순수 공개/개인키 암호화와 더불어 동작한다. 그러나, 이것은, 전체 메시지 μ를 디코딩하기 위해 스마트카드(10)가 사용된다는 것을 의미하며, 전체 암호해독 동작 동안에 스마트카드(10)에게 전력을 제공하며 제1 CPU(20)에 비해 스마트카드(10)의 더 제한된 용량으로 인해 더 오래 걸릴 것이라는 것을 의미한다. 따라서, 세션키 Σ는, 제1 CPU(20)가 스마트카드(10)를 연루시키지 않고도 세션키 Σ를 이용하여 디코딩을 할 수 있도록 허용한다는 점에서 유용하다. 그러나, 세션키 Σ를 팩킹하기 위해 공개/개인키쌍(12)을 이용하는 것은, 스마트카드(10)가 세션키 Σ를 제어하고, 일단 제1 CPU(20)가 그 완전성에 관해 검증받으면 제1 CPU(20)에게만 이것을 공개하는 것을 허용한다.
따라서, 제안된 방법은 스마트카드(10) 상에 저장된 일련의 완전성 챌린지(18)를 이용한다. 메시지 μ의 송수신시에 챌린지/응답 프로세스를 실행하는 프로세스와는 독립적으로, 스마트카드(10) 상에서 실행중인 가디언 애플릿(11)은 다양한 시점에서 제1 애플리케이션(1)에게 (양호하게는 무작위로 선택된) 완전성 챌린지(18)를 발행하도록 설계될 수 있다. 제1 애플리케이션(1)은 완전성 챌린 지(18)를 만족하는 것으로 기대되며, 완전성 챌린지(18)에게 올바른 응답(19)을 제공할 수 있는 한, 완전하다고 간주된다. 또한, 스마트카드(10)는, 스마트카드(10) 그 자체 상의 공개/개인키 암호화를 이용하여, 예를 들어 임베디드 시스템과 같은 모바일 장치(200)로부터 백엔드 시스템(300)으로의 메시지 μ를 서명, 암호해독, 및 암호화하는데 사용될 수 있다.
이 해결책의 잇점들은 다음과 같다: 수정된 CPU(20)가 제1 애플리케이션의 체크섬을 제1 애플리케이션 이미지(41) 자체 내에 저장된 체크섬과 대조할 필요성이 없다. 대신에 더욱 부정조작 방지가 가능한 컴포넌트로서 스마트카드(10)가 사용되며, 가디언으로서 역할한다. 또한, 외부 통신이 스마트카드(10)에 의해 검사되도록 제공함으로써, 통신이 스마트카드(10) 자체와 함께 발생하는 것을 보장한다. 따라서, 공격자는 스마트카드(10)를 무시할 수 없다. 공지된 스마트카드 기술과 더불어, 스마트카드(10), 그리고 스마트카드 상에 저장된 데이터는 증가된 보안 레벨을 나타내도록 설계될 수 있다. 스마트카드(10)의 보안 레벨은 스마트카드(10)가 없는 모바일 장치(200)의 보안 레벨보다 높다.
설명된 기술들은, 소프트웨어, 펌웨어, 마이크로-코드, 하드웨어 및/또는 이들의 임의의 조합을 포함하는 방법, 장치, 또는 제조품으로 구현될 수 있다. 본 명세서에서 용어 "제조품"은 매체로 구현된 코드 또는 로직을 말한다. 이와 같은 매체는, 집적회로 칩, 프로그래머블 게이트 어레이(PGA), 주문형 집적 회로(ASIC) 등과 같은 하드웨어 로직과; 자기 저장 매체(예를 들어, 하드 디스크 드라이브, 플로피 디스크, 테이프 등), 광학 저장 매체(CD-ROM, 광 디스크), 휘발성 및 비휘발 성 메모리(예를 들어, EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 펌웨어, 프로그래머블 로직)와 같은 컴퓨터 판독가능한 매체를 포함할 수 있다. 컴퓨터 판독가능한 매체 내의 코드는 프로세서에 의해 액세스되고 실행된다. 코드 또는 로직이 인코딩되는 매체는, 광섬유, 구리선 등과 같은 공간 또는 전송 매체를 통해 전파하는 전송 신호를 포함할 수 있다. 코드 또는 로직이 인코딩되는 전송 신호는 무선 신호, 위성 전송, 무선 전파, 적외선 신호, 블루투스 등을 추가로 포함할 수 있다. 코드 또는 로직이 인코딩되는 전송 신호는 전송국에 의해 전송되고 수신국에 의해 수신될 수 있다. 여기서, 코드 또는 로직이 인코딩되는 전송 신호는 디코딩되어, 수신국 또는 전송국 또는 장치의 하드웨어 또는 컴퓨터 판독가능한 매체에 저장될 수 있다. 추가적으로, "제조품"은 코드가 구현되고, 처리되고, 실행되는 하드웨어 및 소프트웨어 컴포넌트의 조합을 포함할 수 있다. 물론, 당업자라며, 실시예들의 범위로부터 벗어나지 않고 많은 수정이 이루어질 수 있으며, 제조품은 임의의 정보 포함 매체를 포함할 수 있다는 것을 이해할 것이다. 예를 들어, 제조품은 머신에 의해 실행될 때 동작이 수행되는 결과를 초래하는 명령어를 저장하고 있는 저장 매체를 포함한다.
소정 실시예들은 완전히 하드웨어적 실시예, 완전히 소프트웨어적 실시예 또는 하드웨어 및 소프트웨어 요소들 양자 모두를 포함하는 실시예의 형태를 취할 수 있다. 양호한 실시예에서, 본 발명은, 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함하지만, 이에 한정되지 않는, 소프트웨어로 구현된다.
또한, 소정 실시예들은, 컴퓨터 또는 임의의 명령어 실행 시스템과 연계하여 또는 이들에 의해 사용되기 위한 프로그램 코드를 제공하는 컴퓨터 사용가능한 또는 컴퓨터 판독가능한 매체로부터 액세스가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 본 설명의 목적을 위해, 컴퓨터 사용가능한, 또는 컴퓨터 판독가능한 매체는, 명령어 실행 시스템, 장치, 또는 디바이스와 연계하여 또는 이들에 의해 사용되기 위한 프로그램을 포함, 저장, 전달, 전파, 또는 수송할 수 있는 임의의 장치일 수 있다. 매체는 전자적, 자기적, 광학적, 전자기적, 적외선, 또는 반도체 시스템(또는 장치나 디바이스) 또는 전파 매체일 수 있다. 컴퓨터 판독가능한 매체의 예로는, 반도체 또는 고체 상태 메모리, 자기 테이프, 탈착가능한 컴퓨터 디스켓, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 리지드 자기 디스크, 및 광학 디스크가 포함된다. 광학 디스크의 현재 예로는, CD-ROM, CD-R/W 및 DVD가 있다.
용어, "소정 실시예들", "한 실시예", "실시예", "실시예들", "상기 실시예", "상기 실시예들", "하나 또는 그 이상의 실시예들", "일부 실시예들", 및 "하나의 실시예"는 특별히 달리 명시적으로 표현하지 않는 한 하나 또는 그 이상의 (그러나 전부는 아님) 실시예들을 의미한다. 용어 "내포하는", "포함하는", "갖는", 및 그 파생어들은 특별히 달리 명시적으로 표현하지 않는 한, "포함하지만, 이들만으로 제한되지 않는"을 의미한다. 항목들의 열거된 목록은, 특별히 달리 명시적으로 표현하지 않는 한, 이들 항목들 중 임의의 항목 또는 모든 항목이 상호 배타적이라는 것을 암시하는 것은 아니다. 관사 "a", "an", "the"의 의미는 특별히 달리 명시적으로 표현하지 않는 한, "하나 또는 그 이상"을 의미한다.
서로 통신하는 장치들은, 특별히 달리 명시적으로 표현하지 않는 한, 서로 계속 통신 상태에 있을 필요는 없다. 또한, 서로 통신하는 장치들은, 직접, 또는 하나 이상의 매개체를 통해 간접으로 통신할 수도 있다. 추가적으로, 서로 통신하는 수개의 컴포넌트들을 갖는 실시예의 설명은, 이와 같은 모든 컴포넌트들이 요구된다는 것을 암시하는 것은 아니다. 반면, 다양한 가능한 실시예들을 예시하도록 다양한 선택사항적 컴포넌트들이 설명된다.
나아가, 모든 프로세스들, 방법 단계들, 알고리즘 등은 순차적 순서로 기술될 수 있지만, 이와 같은 프로세스들, 방법들, 및 알고리즘들은 교대로 작업하도록 구성될 수도 있다. 즉, 설명되는 단계들의 임의의 시퀀스 또는 순서는 모든 순서들이 반드시 그 순서대로 수행될 것을 요구하는 것은 아니다. 본 명세서에서 기술되는 프로세스들의 단계들은 임의의 실용적 순서로 수행될 수 있다. 또한, 일부 단계들은, 동시발생적으로 또는 병렬로, 동시에 수행될 수 있다.
하나의 장치 또는 항목이 본 명세서에서 기술될 때, 하나 이상의 장치/항목(이들이 협력하든 아니든)이 하나의 장치/항목을 대체하여 사용될 수 있다는 것은 명백하다. 마찬가지로, 하나 이상의 장치/항목이 본 명세서에서 기술될 때(이들이 협력하든 아니든), 하나 이상의 장치/항목을 대체하여 하나의 장치/항목이 대체하여 사용될 수 있다는 것을 명백하다. 장치의 기능 및/또는 특징은 이와 같은 기능/특징을 갖는 것으로 명시적으로 기술되지 않은 하나 이상의 다른 장치들에 의해 대안적으로 구현될 수 있다. 따라서, 다른 실시예들은 장치 그 자체를 포함할 필요성이 있는 것은 아니다.
소정 실시예들은, 컴퓨터-판독가능한 코드를 컴퓨팅 시스템에 통합하는 사람이나 자동화된 처리에 의해 컴퓨팅 명령어를 배치하기 위한 방법에 관한 것이다. 여기서, 컴퓨팅 시스템과 연계한 코드가 인에이블되어 전술된 실시예들의 동작을 수행한다.
또한, 예시의 목적을 위해 많은 소프트웨어 및 하드웨어 컴포넌트들이 별개의 모듈로 기술되었다. 이와 같은 컴포넌트들은 더 적은 갯수 또는 더 많은 갯수의 컴포넌트들로 통합될 수 있다. 또한, 특정한 컴포넌트에 의해 수행되는 것으로 기술된 소정 동작들은 다른 컴포넌트에 의해 수행될 수도 있다.
따라서, 실시예들에 대한 앞서의 설명들은 예시와 설명의 목적으로 제공되었다. 배타적이거나 공개된 형태 그대로만으로 실시예들을 제한하고자 함이 아니다. 전술된 교시에 비추어 많은 수정들 및 변형들이 가능하다.
Claims (10)
- 모바일 장치(200)로부터 상기 모바일 장치(200) 상에서 실행중인 제1 애플리케이션(1)을 통해 메시지(μ)를 전송하기 위한 방법에 있어서,- 상기 제1 애플리케이션(1)에게 챌린지(18)를 제공하기 위한 챌린지 단계(25);- 상기 챌린지(18)에 대한 응답(19')을 수신하기 위한 응답 단계(26);- 수신된 응답(19')이 예측된 응답(19)에 대응하는지의 여부를 판정하기 위한 동등 검사 단계(32);- 암호화키와 상기 동등 검사 단계(32)의 결과(S)를 이용하여, 메시지(μ)에 대한 서명(Ω)을 제공하기 위한 서명 단계(49);- 상기 모바일 장치(200)로부터 백엔드 시스템(300)으로 상기 제1 애플리케이션(1)을 경유해 상기 서명된 메시지(μ+Ω)를 전송하기 위한 전송 단계(31)를 포함하는 메시지 전송 방법.
- 제1항에 있어서, 상기 메시지(μ)는, 상기 서명 단계(49) 이전에, 메시지 수정 단계(48)에서 상기 동등 검사 단계(32)의 결과(S)로 수정되는 것인, 메시지 전송 방법.
- 모바일 장치(200) 상에서 실행중인 제1 애플리케이션(1)을 통해 상기 모바일 장치(200)에서 메시지(μ)를 수신하기 위한 방법에 있어서,- 암호화된 형태의 상기 메시지(μ)를 수신하기 위한 메시지 수신 단계(33);- 상기 제1 애플리케이션(1)에게 챌린지(18)를 제공하기 위한 챌린지 단계(25);- 상기 챌린지(18)에 대한 응답(19')을 수신하기 위한 응답 단계(26);- 상기 수신된 응답(19')이 예측된 응답(19)에 대응하는지의 여부를 판정하기 위한 동등 검사 단계(32);- 상기 동등 검사 단계(32)의 결과(S)가 긍정적이라면, 상기 메시지(μ)를 암호해독하기 위한 메시지 암호해독 단계(38);- 상기 동등 검사 단계(32)의 결과(S)가 부정적이라면, 에러를 발생하는 단계(51)를 포함하는 메시지 수신 방법.
- 제3항에 있어서, 상기 암호화된 형태는 스마트카드(10) 상에 저장된 개인키/공개키 세트(12)의 공개키를 이용하여 생성된 것인, 메시지 수신 방법.
- 제3항에 있어서, 상기 암호화된 형태는 상기 메시지(μ)와 함께 수신되는 대칭 암호화 키(Σ)를 이용하여 생성된 것이고, 상기 대칭 암호화 키(Σ)는 암호화된 형태로 수신되고, 상기 암호화된 형태는 스마트카드(10) 상에 저장된 개인키/공개키 세트(12)의 공개키를 이용하여 생성된 것인, 메시지 수신 방법.
- 데이터 처리 시스템의 프로세서에 로드될 때 상기 프로세서를 구성하여 제1 내지 제5항 중 어느 한 항에 따른 방법을 수행하게끔하는 컴퓨터 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 요소.
- 모바일 장치(200)에 있어서,- 제1 애플리케이션(1)의 제1 애플리케이션 이미지(41)를 저장하기 위한 메모리(40);- 수신된 챌린지(18)에 대한 응답(19')을 계산하도록 구성된 제1 프로세서(20);상기 스마트카드(10)로부터 상기 챌린지(18)를 수신하고, 상기 응답(19')을 전송하며, 서명된 메시지(μ+Ω)를 수신하기 위한 카드 리더기(100); 및- 상기 서명된 메시지(μ+Ω)를 백엔드 시스템(300)에 전송하기 위한 제1 통신 모듈(60)을 포함하는 모바일 장치.
- 스마트카드(10)에 있어서,제1 애플리케이션(1)에게 챌린지(18)를 제공하기 위한 챌린지 단계(25); 상기 챌린지(18)에 대한 응답(19')을 수신하기 위한 응답 단계(26); 및 상기 수신된 응답(19')이 예측된 응답(19)에 대응하는지의 여부를 판정하기 위한 동등 검사 단 계(32)를 실행하기 위한 완전성 애플릿(11); 및암호화 키와 상기 동등 검사 단계(32)의 결과(S)를 이용하여, 메시지(μ)에 서명하기 위한 서명 단계(49); 및 상기 메시지(μ)에 대한 서명(Ω)을 제1 통신 모듈(60)에 포워딩하기 위한 서명 포워딩 단계(29)를 실행하기 위한 전자 서명 애플릿(13)을 포함하는 스마트카드.
- 제8항에 있어서, 상기 완전성 애플릿(11)은 접수확인통보 단계(27)를 실행하도록 추가로 구성되고, 상기 동등 검사 단계(32) 이후에, 상기 동등 검사 단계(32)의 결과(S)를 전달하지 않고 상기 응답(19')의 수신이 접수확인통보되는 것인, 스마트카드.
- 제8항 또는 제9항에 있어서, 개인키/공개키 쌍(12)을 더 포함하고, 상기 개인키/공개키 쌍(12)의 공개키는 상기 암호화 키로서 사용가능한 것인, 스마트카드.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06116410.9 | 2006-06-30 | ||
EP06116410 | 2006-06-30 | ||
PCT/IB2007/052511 WO2008001322A2 (en) | 2006-06-30 | 2007-06-28 | Message handling at a mobile device |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090028728A true KR20090028728A (ko) | 2009-03-19 |
KR101055712B1 KR101055712B1 (ko) | 2011-08-11 |
Family
ID=38846073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087031637A KR101055712B1 (ko) | 2006-06-30 | 2007-06-28 | 모바일 장치에서의 메시지 핸들링 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20100318798A1 (ko) |
EP (1) | EP2044548A2 (ko) |
JP (1) | JP5035810B2 (ko) |
KR (1) | KR101055712B1 (ko) |
CN (1) | CN101410847B (ko) |
WO (1) | WO2008001322A2 (ko) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101611649B1 (ko) | 2008-01-18 | 2016-04-26 | 인터디지탈 패튼 홀딩스, 인크 | M2m 통신을 인에이블하는 방법 및 장치 |
DE102008025489A1 (de) * | 2008-05-28 | 2009-12-24 | Siemens Aktiengesellschaft | Verfahren und System zum Überwachen eines sicherheitsbezogenen Systems |
KR101691603B1 (ko) | 2009-03-05 | 2016-12-30 | 인터디지탈 패튼 홀딩스, 인크 | H(e)NB 무결성 검증 및 확인을 위한 방법 및 장치 |
WO2010102259A2 (en) | 2009-03-06 | 2010-09-10 | Interdigital Patent Holdings, Inc. | Platform validation and management of wireless devices |
US9032058B2 (en) | 2009-03-13 | 2015-05-12 | Assa Abloy Ab | Use of SNMP for management of small footprint devices |
US20100235900A1 (en) * | 2009-03-13 | 2010-09-16 | Assa Abloy Ab | Efficient two-factor authentication |
TW201628368A (zh) | 2010-04-12 | 2016-08-01 | 內數位專利控股公司 | 啓洞程序中階段控制釋放 |
JP5593850B2 (ja) | 2010-05-31 | 2014-09-24 | ソニー株式会社 | 認証装置、認証方法、プログラム、及び署名生成装置 |
JP5594034B2 (ja) | 2010-07-30 | 2014-09-24 | ソニー株式会社 | 認証装置、認証方法、及びプログラム |
WO2012023050A2 (en) | 2010-08-20 | 2012-02-23 | Overtis Group Limited | Secure cloud computing system and method |
EP2635991B1 (en) | 2010-11-05 | 2015-09-16 | InterDigital Patent Holdings, Inc. | Device validation, distress indication, and remediation |
CN102137105B (zh) * | 2011-03-11 | 2012-11-07 | 华为技术有限公司 | 机器通信的私密性保护方法、系统和机器通信业务管理实体及相关设备 |
WO2013019260A1 (en) | 2011-08-01 | 2013-02-07 | Intel Corporation | Method and system for network access control |
WO2013182376A1 (en) * | 2012-06-06 | 2013-12-12 | Nec Europe Ltd. | Method and system for executing a secure application on an untrusted user equipment |
DE102012217743B4 (de) * | 2012-09-28 | 2018-10-31 | Siemens Ag | Überprüfung einer Integrität von Eigenschaftsdaten eines Gerätes durch ein Prüfgerät |
US10270748B2 (en) | 2013-03-22 | 2019-04-23 | Nok Nok Labs, Inc. | Advanced authentication techniques and applications |
US8904195B1 (en) * | 2013-08-21 | 2014-12-02 | Citibank, N.A. | Methods and systems for secure communications between client applications and secure elements in mobile devices |
US9749131B2 (en) * | 2014-07-31 | 2017-08-29 | Nok Nok Labs, Inc. | System and method for implementing a one-time-password using asymmetric cryptography |
JP6659220B2 (ja) | 2015-01-27 | 2020-03-04 | ルネサスエレクトロニクス株式会社 | 通信装置、半導体装置、プログラムおよび通信システム |
JP2016171530A (ja) * | 2015-03-13 | 2016-09-23 | 株式会社東芝 | 通信装置、通信方法、プログラムおよび通信システム |
CN105471877B (zh) * | 2015-12-03 | 2019-09-17 | 北京小米支付技术有限公司 | 证明资料获取方法及装置 |
US11868995B2 (en) | 2017-11-27 | 2024-01-09 | Nok Nok Labs, Inc. | Extending a secure key storage for transaction confirmation and cryptocurrency |
US11831409B2 (en) | 2018-01-12 | 2023-11-28 | Nok Nok Labs, Inc. | System and method for binding verifiable claims |
US12041039B2 (en) | 2019-02-28 | 2024-07-16 | Nok Nok Labs, Inc. | System and method for endorsing a new authenticator |
US11792024B2 (en) | 2019-03-29 | 2023-10-17 | Nok Nok Labs, Inc. | System and method for efficient challenge-response authentication |
US11211140B1 (en) * | 2019-09-24 | 2021-12-28 | Facebook Technologies, Llc | Device authentication based on inconsistent responses |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473692A (en) * | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5995624A (en) * | 1997-03-10 | 1999-11-30 | The Pacid Group | Bilateral authentication and information encryption token system and method |
US6772336B1 (en) * | 1998-10-16 | 2004-08-03 | Alfred R. Dixon, Jr. | Computer access authentication method |
US6546492B1 (en) * | 1999-03-26 | 2003-04-08 | Ericsson Inc. | System for secure controlled electronic memory updates via networks |
US6804778B1 (en) * | 1999-04-15 | 2004-10-12 | Gilian Technologies, Ltd. | Data quality assurance |
EP1055990A1 (en) * | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | Event logging in a computing platform |
US6954861B2 (en) * | 2000-07-14 | 2005-10-11 | America Online, Inc. | Identifying unauthorized communication systems based on their memory contents |
GB0020370D0 (en) * | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted device |
EP1349033B1 (en) * | 2002-03-26 | 2004-03-31 | Soteres GmbH | A method of protecting the integrity of a computer program |
GB2416956B (en) * | 2004-07-29 | 2007-09-19 | Nec Technologies | Method of testing integrity of a mobile radio communications device and related apparatus |
-
2007
- 2007-06-28 JP JP2009517559A patent/JP5035810B2/ja not_active Expired - Fee Related
- 2007-06-28 KR KR1020087031637A patent/KR101055712B1/ko not_active IP Right Cessation
- 2007-06-28 EP EP07825859A patent/EP2044548A2/en not_active Withdrawn
- 2007-06-28 CN CN2007800112240A patent/CN101410847B/zh not_active Expired - Fee Related
- 2007-06-28 WO PCT/IB2007/052511 patent/WO2008001322A2/en active Application Filing
-
2008
- 2008-12-30 US US12/345,696 patent/US20100318798A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20100318798A1 (en) | 2010-12-16 |
WO2008001322A3 (en) | 2008-06-19 |
EP2044548A2 (en) | 2009-04-08 |
WO2008001322A2 (en) | 2008-01-03 |
JP2009543414A (ja) | 2009-12-03 |
JP5035810B2 (ja) | 2012-09-26 |
CN101410847A (zh) | 2009-04-15 |
CN101410847B (zh) | 2011-11-09 |
KR101055712B1 (ko) | 2011-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101055712B1 (ko) | 모바일 장치에서의 메시지 핸들링 | |
JP6773617B2 (ja) | 更新制御装置、ソフトウェア更新システムおよび更新制御方法 | |
US8161285B2 (en) | Protocol-Independent remote attestation and sealing | |
KR100917601B1 (ko) | 인증 재전송 공격 방지 방법 및 인증 시스템 | |
CN101783801B (zh) | 一种基于网络的软件保护方法、客户端及服务器 | |
US8935530B2 (en) | Control device and computer readable medium | |
JP2018121328A (ja) | 電子デバイスのためのイベント証明書 | |
JP2022528070A (ja) | 運転中の緊急車両のidの検証 | |
TW201732669A (zh) | 受控的安全碼鑑認 | |
Nguyen et al. | Cloud-based secure logger for medical devices | |
CN111656747B (zh) | 集成电路 | |
KR101972110B1 (ko) | 블록체인 기술을 활용한 포그 컴퓨터의 보안 및 디바이스 제어 방법 | |
US11403428B2 (en) | Protecting integrity of log data | |
US11388156B2 (en) | Proof-of-work concept for a vehicle | |
US11222116B2 (en) | Heartbeat signal verification | |
US12039050B2 (en) | Information processing device | |
US11531769B2 (en) | Information processing apparatus, information processing method, and computer program product | |
WO2016049754A1 (en) | Tamper-evident device and system, and network messaging method and system | |
CN111651740B (zh) | 一种面向分布式智能嵌入式系统的可信平台共享系统 | |
Lee et al. | Threat analysis for an in-vehicle telematics control unit | |
Andréasson et al. | Device Attestation for In-Vehicle Network | |
CN118764177A (zh) | 访问汽车网关的认证方法和装置 | |
CN116938463A (zh) | 应用运行环境的可信性检测方法、设备及介质 | |
CN118555123A (zh) | 数据传输校验方法、电子设备及车辆 | |
CN114124363A (zh) | 一种电子设备、认证系统及认证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140725 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |