상기 및 그 밖의 문제점들은, 이동 단말기에 데이터를 로딩하는 방법이 이하의 단계를 포함할 때 해결되는데, 상기 방법은:
- 페이로드 데이터 및 헤더 데이터를 포함하는 데이터를 이동 단말기에 의해 로딩 스테이션으로부터 수신하는 단계, 및
- 헤더 데이터를 기반으로한 검증 과정을 조건으로 이동 단말기에 의해 데이터를 수용하는 단계를 포함하며, 상기 데이터를 수신하는 단계는:
- 헤더 데이터를 포함하는 헤더 메시지를 이동 단말기에 의해 로딩 스테이션으로부터 수신하는 단계,
- 수신된 헤더 데이터를 이동 단말기를 이용하여 검증하는 단계, 및
- 헤더 데이터가 성공적으로 검증될 경우, 적어도 페이로드 데이터를 포함하는 제1 페이로드 메시지를 수신하는 단계를 더 포함하는 것을 특징으로 한다.
그 결과, 페이로드 데이터만 수신되기 때문에, 헤더 데이터의 검증이 성공적으로 완료될 경우, 부정확한 데이터를 수신할 위험이 상당히 감소된다. 따라서, 페이로드 재전송이 덜 발생하기 때문에, 로딩 과정이 더욱 효율적이다.
본 발명의 다른 이점은, 검증 과정 동안 페이로드 데이터를 위한 중간 저장장소(storage)가 전혀 필요하지 않으므로, 이동 단말기내에 더 적은 저장 공간을 필요로 한다는 점이다. 이것은, 이동 단말기와 같은 제한된 저장 용량을 가진 장치에서 특히 유리하다.
페이로드 데이터는 이동 단말기의 전송될 임의의 데이터 유형일 수 있다. 특히 본 발명에 따른 방법은, 오류 또는 상대방(adversary)으로 인해 부정확한 소프트웨어 또는 처리 데이터를 수신하면 이동 단말기를 오작동시키거나 동작을 완전히 중단시킬 수 있기 때문에, 예컨대 이동 단말기의 동작을 제어하는 소프트웨어, 소프트웨어 업데이트 또는 다른 프로그램 코드 수단과 같은 민감한 데이터(sensitive data)의 보안용으로 매우 적합하다. 이러한 소프트웨어의 예로는, 응용 소프트웨어와, 상기 응용 소프트웨어에 앞서 로딩되며 응용 소프트웨어의 다운로드를 체계화하는 프리로더 소프트웨어가 포함된다. 데이터의 다른 예로는, 국제 RAM(IRAM)에 직접 로딩되는 소프트웨어와 같은 IRAM 데이터가 포함된다.
헤더 데이터는, 버전 정보, 호환되는 이동 단말기의 유형, 제조업체 및/또는 모델, 프로세서, 칩 세트(chip set), 메모리 등과 같은 실행 환경에 대한 조건, 이동 단말기에 이미 인스톨된 운영 체제 또는 다른 소프트웨어의 유형 및/또는 버전 등을 포함할 수 있다. 헤더 데이터는 또한 제조업체 ID(identification), 소프트웨어 공급자 ID, 고객 ID 또는 유사한 액세스 제어 목록 등을 포함할 수 있다.
본 발명의 바람직한 실시예에 있어서, 헤더 데이터는 제1 암호 데이터 항목(cryptographic data item)을 포함하며, 이동 단말기를 이용하여 데이터를 수용하는 단계는, 제1 암호 데이터 항목을 기반으로 암호 검증 과정을 수행하는 단계를 포함한다. 그 결과, 수신될 수 있는 페이로드 데이터를 발생시키는 기관이 페이로드 데이터를 실제 수신하기 전에 인증될 수 있으며, 따라서 페이로드 데이터를 잘못 전송할 위험이 더욱 감소되어 상기 방법의 효율이 더욱 증가될 수 있다.
바람직하게는, 암호 데이터 항목은 암호 검사합(checksum)을 포함하는데, 여기서 상기 암호 검사합이란 용어는, 메시지가 포함하는 데이터 및 비밀 키를 토대로 메시지 전송자에 의해 계산되며 데이터와 함께 수신자에게 전달되는 값과 관련된다. 따라서, 암호 검사합은 수신자에 의해, 데이터가 변경되지 않았음을 증명하는데 사용될 수 있다. 데이터 수신자는 암호 검사합을 재계산하여, 이것을 데이터와 함께 전달된 암호 검사합과 비교하는데; 만일 이들이 서로 부합한다면, 수신자는 데이터가 전송 중에 변경되지 않은 것으로 믿을 수 있다. 따라서, 암호 검사합의 중요한 특성은, 비밀 키를 알지 않고는 부당한 인터셉터(interceptor)가 정당한 상응하는 검사합을 이용하여 변경된 메시지를 구성할 수 있는 기회를 매우 적게 가질 뿐이라는 점이다. 예컨대, 암호 검사합을 계산하기 위해, 메시지의 메시지 다이제스트(message digest)가 예컨대 일방향 해시 함수(one-way-hash function)에 의해 계산될 수 있으며, 이것은, 계산상으로 소정의 메시지 다이제스트에 상응하는 메시지를 복제하거나, 또는 동일한 메시지 다이제스트를 발생시키는 두 개의 상이한 메시지를 발견할 수 없는 요약된 표현의 메시지를 발생시킨다. 중계시에 메시지에 대한 임의의 변경은 결과적으로 상이한 메시지 다이제스트를 발생시킬 확률이매우 높아, 서명이 검증에 실패하게 된다. 이러한 기능의 예로는 시큐어 해시 알고리즘(Secure Hash Algorithm)(SHA-1), MD4, MD5 등이 포함된다. 상기 결과 나타나는 메시지 다이제스트가 암호화되거나, 서명이 메시지 다이제스트에 대해 계산되어, 암호 검사합을 생성하는 것이 바람직하다. 바람직하게는, Ron Rivest, Adi Shamir 및 Leonard Adleman 에 의해 개발된 RSA 방법, Digital Signature Algorithm(DSA) 등과 같은 비대칭 공개-키 기반 암호화 방법이 사용된다. 선택적으로, Message Authentication Code(MAC) 방식과 같은 대칭 암호화 방법이 사용될 수도 있다. 메시지 보다 메시지 다이제스트를 서명/암호화하면, 메시지 다이제스트가 일반적으로 메시지보다 훨씬 더 적은 크기이기 때문에 처리 효율이 향상된다.
그러므로, 검증 과정은, 이동 단말기의 실행 환경이 헤더 데이터에 의해 규정된 파라미터와 호환성이 있는지 여부에 대한 검증, 액세스 제어 파라미터에 대한 검증, 및 예컨대 헤더 데이터의 기점(origin)의 인증 및 무결성 검사를 포함하는 암호 데이터 항목을 기반으로한 암호 검증을 포함할 수 있지만, 이러한 것들로 제한되지는 않는다.
본 발명의 이점은, 본 발명이 허가받지 못한 이동 단말기의 재프로그래밍에 대해 보호한다는 점이다.
다른 바람직한 실시예에 있어서, 페이로드 데이터는 다수의 페이로드 데이터 블록으로 분리되며, 페이로드 데이터를 수신하는 단계는 또한, 각각 하나의 페이로드 데이터 블록을 포함하는 다수의 페이로드 메시지를 수신하는 단계; 및 수신된 상기 수의 페이로드 데이터 블록 각각을 저장 매체에 저장하는 단계를 포함한다.따라서, 한 번에 단 하나의 페이로드 데이터 블록이 수신되기 때문에, 이동 단말기내의 중간 저장 공간에 대한 필요성이 더욱 감소한다.
본 발명의 또 다른 바람직한 실시예에 있어서, 페이로드 데이터는 이동 단말기로 전송하기 전에 처리된다. 예컨대, 데이터는 인터셉션을 피하기 위해 암호화될 수도 있고, 및/또는 데이터는, 전송 시간, 대역폭 요구, 이동 단말기에서의 중간 저장 용량에 대한 요구, 및/또는 암호 검사합의 계산 복잡도를 줄이도록 압축될 수도 있다. 이와 상응하여, 방법은, 예컨대 압축된 데이터를 압축해제(uncompress)하는 것과 같이 이동 단말기에 의해 데이터를 수용하는 단계를 조건으로 페이로드 데이터를 처리하는 단계를 더 포함한다.
또한, 이것은, 저장 매체가 규정된 크기를 각각 갖는 다수의 저장 블록으로 분리되고; 상기 수의 페이로드 데이터 블록 각각이 저장 블록의 크기에 상응하는 블록 크기를 가질 때 특히 유리하다. 이러한 메모리의 예로는, 블록이라 하는 메모리의 유닛내에서 소거되고 재프로그램될 수 있는 일정하게-전력공급되는 비휘발성 메모리 유형인, "플래시 RAM"이라고도 하는 플래시 메모리가 있다.
본 발명의 다른 바람직한 실시예에 있어서, 페이로드 데이터는 다수의 페이로드 데이터 블록으로 분리되고; 상기 방법은, 상기 다수의 페이로드 데이터 블록 각각과 관련된 상응하는 수의 메시지 다이제스트를 수신하는 단계를 더 포함하고; 상기 페이로드 데이터를 수신하는 단계는 상기 수의 페이로드 데이터 블록 중 하나를 각각 포함하는 다수의 페이로드 메시지를 수신하는 단계를 더 포함하며; 이동 단말기에 의해 데이터를 수용하는 단계는 상기 수의 페이로드 데이터 블록 각각에대해:
- 메시지 다이제스트들 중 상응하는 것을 토대로한 암호 검증 과정을 조건으로 이동 단말기에 의해 페이로드 데이터 블록을 수용하는 단계,
- 수용된 페이로드 데이터 블록을 처리하는 단계, 및
- 처리된 페이로드 데이터 블록을 저장 매체에 저장하는 단계를 더 포함한다.
따라서, 처리되지 않은 데이터를 저장 매체에 다운로드 한 후, 이것을 RAM에 로딩하여 처리하고 다시 이것을 저장하는 대신, 상기 실시예에 따른 방법은 단지 각 데이터 블록마다 단 한번의 저장 동작을 필요로함으로써, 로딩 과정의 효율을 증가시킨다.
본 발명의 또 다른 바람직한 실시예에 있어서, 제2 페이로드 데이터 블록 이후에 수신되는 제1 페이로드 데이터 블록을 수용하는 단계에서 사용되는 암호 검증 과정은 또한, 제2 페이로드 데이터 블록을 수용하는 이전 단계에서 사용된 암호 검증 과정의 결과를 기반으로 한다. 따라서, 암호 검증 과정은 증분적으로 수행되는데, 데이터 블록의 메시지 다이제스트는 이전 데이터 블록 및/또는 이들 각각의 메시지 다이제스트 모두 또는 그중 적어도 일부에 의존함으로써, 모든 데이터 블록이 상호연관됨에 따라 로딩 과정의 보안성이 증가된다.
본 발명의 또 다른 바람직한 실시예에 있어서, 페이로드 데이터는, 이동 단말기에 로딩된 현재 데이터의 업데이트를 포함하며; 방법은, 기존 데이터의 상응하는 블록과 상이한 페이로드 데이터 블록만을 로딩하는 단계를 포함한다. 따라서,전송될 데이터 양이 상당히 감소될 수 있다. 예컨대, 페이로드 데이터가 이미 인스톨되어있는 소프트웨어에 대한 소프트웨어 패치를 포함한다면, 변경은 종종 적은 수의 메모리 블록으로 한정된다. 이러한 경우, 변경이 이루어진 블록만을 다운로드하는 것이 새로운 버전의 소프트웨어 전체를 다운로드하는 것보다 훨씬 더 효율적이다.
본 발명의 바람직한 실시예에 있어서, 제1 암호 데이터 항목은 기관의 개인 키를 이용하여 암호화된 제1 메시지 다이제스트를 포함하고, 이동 단말기에 의해 데이터를 수용하는 단계는
- 수신된 헤더 데이터 및 수신된 페이로드 데이터의 제2 메시지 다이제스트를 계산하는 단계;
- 상기 기관의 공개 키를 이용하여 제1 메시지 다이제스트를 복호화하는 단계, 및
- 복호화된 제1 메시지 다이제스트를 계산된 제2 메시지 다이제스트와 비교하는 단계를 포함한다.
본 발명의 다른 바람직한 실시예에 있어서, 헤더 데이터는 또한, 페이로드 데이터를 분배하는 기관의 공개 키로서 이동 단말기에 의한 검증 과정에 사용될 수 있는 서명된 키를 포함한다.
헤더 데이터가 또한 제2 암호 데이터 항목을 포함하고, 헤더 데이터를 검증하는 단계가 제2 암호 데이터 항목을 기반으로 헤더 데이터의 암호 검증을 수행하는 단계를 포함하면, 헤더가 개별적으로 검사되기 때문에, 상기 방법의 보안성이더욱 증가한다.
본 발명은 상기 및 이하에 기재된 방법, 시스템, 컴퓨터 프로그램, 컴퓨터 판독가능 매체, 및 다양한 제품 수단을 포함하여 상이한 방법으로 구현될 수 있는데, 각각은 상기 제1 방법과 관련하여 기재된 이득 및 이점 중 하나 이상을 나타내며, 상기 각각은 상기 제1 방법과 관련하여 기재된 바람직한 실시예에 상응하는 하나 이상의 바람직한 실시예를 갖는다.
상기 및 이하에 기재된 방법의 특징은 소프트웨어내에 구현될 수 있으며, 컴퓨터-실행가능한 명령을 실행함으로써 야기되는 데이터 처리 시스템 또는 그 밖의 처리 수단에서 실행될 수 있다. 명령은 컴퓨터 네트워크를 거쳐 저장 매체 또는 다른 컴퓨터로부터 RAM과 같은 메모리에 로딩되는 프로그램 코드 수단일 수 있다. 선택적으로, 상기 기재된 특징은 소프트웨어 대신 또는 소프트웨어와 함께 배선 회로(hardwired circuitry)에 의해 구현될 수도 있다.
본 발명은 또한 이동 단말기로 데이터를 업로딩하는 방법에 관한 것으로서, 상기 방법은, 데이터를 수용할 때 검증 과정에서 이동 단말기에 의해 사용될 헤더 데이터 및 페이로드 데이터를 포함하는 데이터를 로딩 스테이션에 의해 이동 단말기로 전송하는 단계를 포함하며,
상기 데이터를 전송하는 단계는, 적어도 페이로드 데이터를 포함하는 제1 페이로드 메시지를 전송하기 전에 이동 단말기에 의해 검증될 헤더 데이터를 포함하는 헤더 메시지를 전송하는 단계를 더 포함함으로써, 이동 단말기가 페이로드 데이터의 수신을 거부할 수 있게 하는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 방법은,
- 페이로드 데이터를 전송하기 위한 요청을 이동 단말기로부터 수신하는 단계, 및
- 상기 수신된 요청에 응답하여 이동 단말기로 페이로드 데이터를 전송하는 단계를 더 포함한다. 따라서, 페이로드 데이터는, 이동 단말기가 헤더 데이터의 수신 및 성공적인 검증을 승인한 경우에만 전송됨으로써, 불필요한 페이로드 데이터 전송을 피할 수 있다.
또 다른 바람직한 실시예에 있어서, 상기 방법은,
- 이동 단말기에 업로드될 페이로드 데이터를 처리하는 단계,
- 처리된 페이로드 데이터에 대한 암호 데이터 항목을 발생시키는 단계, 및
- 헤더 데이터의 일부로서 암호 데이터 항목을 전송하는 단계를 더 포함한다. 따라서, 암호 데이터 항목이, 예컨대 압축된 데이터를 기반으로 하는 것과 같이 처리된 데이터를 기반으로 발생되기 때문에, 수신 이동 단말기는, 예컨대 압축해제와 같은 후속 처리를 수행하기 전에 데이터를 검증할 수 있으며, 그에 따라 수신기에서 부정확한 데이터의 불필요한 처리가 전혀 발생하지 않기 때문에 상기 방법의 처리 효율이 증가된다.
본 발명은 또한 이동 단말기에 데이터를 로딩하는 시스템에 관한 것으로서, 상기 시스템은,
- 페이로드 데이터와 헤더 데이터를 포함하는 데이터를 이동 단말기로 전송하는 제1 송신 수단을 포함하는 로딩 스테이션;
- 로딩 스테이션으로부터 상기 데이터를 수신하는 제1 수신 수단을 포함하는 이동 단말기; 및
- 헤더 데이터를 기반으로한 검증 과정을 조건으로 데이터를 수용하도록 적응된(adapt) 처리 수단을 포함하는데,
- 상기 로딩 스테이션은 페이로드 데이터를 전송하기 전에 헤더 데이터를 포함하는 헤더 메시지를 전송하도록 적응되며;
- 상기 이동 단말기는 로딩 스테이션으로부터 헤더 메시지를 수신하고, 수신된 헤더 데이터를 검증하여, 헤더 데이터가 성공적으로 검증될 경우 제1 수신 수단으로 하여금 페이로드 데이터를 수신하도록 적응되는 것을 특징으로 한다.
로딩 스테이션이란 용어는, 고정 및 휴대용 PCs와 같은 컴퓨터, 고정 및 휴대용 무선 통신 기기를 포함하는 임의의 전자 기기를 포함한다.
이동 단말기란 용어는 모든 휴대용 무선 통신 기기 및 그 밖의 핸드헬드 또는 휴대용 장치를 포함한다. 휴대용 무선 통신 기기란 용어는 이동 전화기, 무선호출기, 커뮤니케이터(communicator), 즉 전자 수첩(electronic organisers), 스마트 폰, 개인 휴대 정보 단말기(personal digital assistants:PDAs), 핸드헬드 컴퓨터 등과 같은 모든 기기를 포함한다.
수신 수단 및 송신 수단이란 용어는 임의의 적합한 통신 수단을 포함하는데, 여기서 상기 통신 수단이란 용어는, 예컨대 유선 또는 무선 데이터 링크를 통해 로딩 스테이션과 이동 단말기 사이에 데이터를 전달할 수 있게 하는데 적합한 회로 및/또는 장치를 포함한다. 이러한 통신 수단의 예로는, 네트워크 인터페이스, 네트워크 카드, 무선 송신기/수신기, 케이블 모뎀, 전화 모뎀, 종합 정보 통신망(Integrated Services Digital Network:ISDN) 어댑터, 디지털 가입자 회선(Digital Subscriber Line:DSL) 어댑터, 위성 송수신기, 이더넷 어댑터 등이 포함된다. 예컨대 이동 단말기는, 예컨대 IrDa 포트를 통한 적외선, 예컨대 블루투스 송수신기를 통한 무선-형(radio-based) 통신 등과 같이 전자기 신호를 사용하는 단거리 무선 통신 링크 또는 유선 통신 링크를 통해 로딩 스테이션에 접속될 수 있다. 데이터는 또한 공중파에 의해(over-the-air), 즉 셀룰러 디지털 패킷 데이터(Cellular Digital Packet Data:CDPD) 네트워크, 범유럽 이동통신(Global system for Mobile:GSM) 네트워크, 부호 분할 다원 접속(Code Division Multiple Access:CDMA) 네트워크, 일반 패킷 무선 서비스(General Packet Radio Service:GPRS) 네트워크, UMTS 네트워크와 같은 제3 세대 네트워크 등의 무선 전기통신망에 접속하는 이동 단말기의 무선 인터페이스를 통해 로딩될 수 있다.
처리 수단이란 용어는 범용 또는 특정 프로그램가능 마이크로프로세서, 디지털 신호 처리기(Digital Signal Processor:DSP), 주문형 집적회로(Application Specific Integrated Circuits:ASIC), 프로그램가능 논리 배열(Programmable Logic Arrays:PLA), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Arrays:FPGA) 등 또는 이들의 결합을 포함한다.
본 발명은 또한 이동 단말기에 관한 것으로서, 상기 이동 단말기는,
- 페이로드 데이터와 헤더 데이터를 포함하는 데이터를 로딩 스테이션으로부터 수신하는 수신 수단; 및
- 헤더 데이터를 기반으로한 검증 과정을 조건으로 상기 수신된 데이터를 수용하도록 적응된 처리 수단을 포함하며,
- 상기 수신 수단은 또한 로딩 스테이션으로부터 헤더 데이터를 포함하는 헤더 메시지를 수신하도록 적응되며,
- 상기 처리 수단은 또한, 수신된 헤더 데이터를 검증하여, 상기 헤더 데이터가 성공적으로 검증될 경우 수신 수단으로 하여금 페이로드 데이터를 수신하도록 적응되는 것을 특징으로 한다.
본 발명은 또한 이동 단말기로 데이터를 업로딩하는 로딩 스테이션에 관한 것으로서, 상기 로딩 스테이션은 이동 단말기로 데이터를 전송하는 송신 수단을 포함하고, 상기 데이터는 데이터를 수용할 때 검증 과정에서 이동 단말기에 의해 사용하기 위한 헤더 데이터 및 페이로드 데이터를 포함하며,
상기 송신 수단은 또한, 페이로드 데이터를 전송하기 전에 이동 단말기에 의해 검증될 헤더 데이터를 포함하는 헤더 메시지를 전송하도록 적응됨으로써, 이동 단말기로 하여금 페이로드 데이터 수신을 거부할 수 있게 하는 것을 특징으로 한다.
바람직한 실시예에 있어서, 로딩 스테이션은,
- 개인 키를 저장하는 보안 메모리, 및 암호 데이터 항목을 발생시키는 제2 처리 수단을 포함하는 제1 장치; 및
- 발생된 암호 데이터 항목을 포함하는 헤더 데이터를 발생시키는 제2 처리 수단을 포함하는 제2 장치를 포함한다. 제1 장치가 스마트 카드이면, 제2 장치와분리가능하게 결합되어, 예컨대 제2 장치내에 삽입됨으로써, 로딩 스테이션을 용이하고 안전한 방법으로 구성하고 키 관리할 수 있게 하는 보안 메모리가 제공된다.
본 발명은 또한, 이동 단말기 또는 로딩 스테이션에서 실행될 때 상기 기재된 또는 이하의 방법의 각 단계들을 수행하도록 적응되는 프로그램 코드 수단을 포함하는 컴퓨터 프로그램에 관한 것이다. 컴퓨터 프로그램은 컴퓨터-판독가능 매체상에 구현될 수도 있다. 또한 컴퓨터 프로그램은, 예컨대 통신망을 통해 전송될 데이터 신호와 같이 반송파상에 데이터 신호로서 구현될 수도 있다.
저장 매체 및 컴퓨터-판독가능 매체라는 용어는, 자기 테이프, 광 디스크, 디지털 비디오 디스크(DVD), 콤팩트 디스크(CD 또는 CD-ROM), 소형-디스크(mini-disk), 하드 디스크, 플로피 디스크, 강유전성 메모리(ferro-electric memory), 전기적 소거 및 프로그램 가능 판독 전용 메모리(electrically erasable programmable read only memory:EEPROM), 플래시 메모리, EPROM, 판독 전용 메모리(ROM), 정적 랜덤 액세스 메모리(static random access memory:SRAM), 동적 랜덤 액세스 메모리(DRAM), 동기식 동적 랜덤 액세스 메모리(synchronous dynamic random access memory:SDRAM), 강자성 메모리(ferromagnetic memory), 광 저장장치(optical storage), 전하 결합 소자(charge coupled devices), 스마트 카드, PCMCIA 카드 등을 포함한다.
바람직한 도면과 관련하여 및 첨부 도면을 참조하여 본 발명이 더욱 상세히 설명될 것이다.
도 1은 이동 단말기에 데이터를 로딩하는 시스템의 블록도를 도시하는 것이다. 시스템은 로딩 스테이션(101)과 이동 단말기(105)를 포함한다. 로딩 스테이션은 이동 단말기에 로딩될 페이로드 데이터, 도 3, 7a-b와 관련하여 기재되는 바와 같이 이동 단말기로 전송될 추가 정보, 암호 검사합을 계산하기 위한 하나 이상의 개인 키, 및/또는 페이로드 데이터를 처리하는데 사용하는 하나 이상의 속성(attribute)을 저장하기 위한 저장 매체(104)를 포함한다. 또한 로딩 스테이션은, 예컨대 저장 매체(104)로부터 로딩되는 소프트웨어에 의해, 예컨대 페이로드 데이터를 압축 및/또는 암호화하고 및/또는 그것을 블록으로 분리하는 것과 같이 페이로드를 처리하도록 적응되는 처리 유닛(103)을 포함한다. 처리 유닛(103)은 또한, 하나 이상의 암호 검사합의 발생을 포함하는 헤더 데이터를 발생시키도록 적응된다. 또한, 처리 유닛은 이동국(105)으로의 헤더 및 페이로드 데이터의 전송을 제어하도록 적응된다. 처리 유닛(103)은, 범용 또는 특정 프로그램가능 마이크로프로세서, 디지털 신호 처리기(DSP), 주문형 집적회로(ASIC), 프로그램가능 논리 배열(PLA), 필드 프로그래머블 게이트 어레이(FPGA) 등 또는 이들의 결합을 포함할 수 있다. 로딩 스테이션은 또한, 직접 데이터 링크, 통신망 등의 유선 또는 무선 통신 링크(109)를 통해 이동 단말기와 데이터를 통신할 수 있도록 하는데 적합한 회로 및/또는 장치를 포함하는 통신 유닛(102)을 포함한다. 이러한 통신 유닛의 예로는, 네트워크 인터페이스, 네트워크 카드, 무선 송신기/수신기, 블루투스 송수신기, 적외선 포트, IrDa 포트, 케이블 모뎀, 전화 모뎀, 종합 정보 통신망(ISDN) 어댑터, 디지털 가입자 회선(DSL) 어댑터, 위성 송수신기, 이더넷 어댑터 등이 포함된다. 따라서, 통신 링크(109)는 전자기파를 사용하는 단거리 무선 통신 링크일 수도 있다. 이러한 통신 링크의 예로는 무선 주파수, 적외선, 마이크로파 등을 기반으로 한 블루투스 접속 또는 다른 접속이 포함된다. 또한 통신 링크는, 예컨대 직렬 접속과 같은 유선 접속 및 USB 접속 등일 수도 있다. 또 다른 실시예에 있어서, 접속은 근거리 통신망, 셀룰러 망, 인터넷 등과 같은 통신망을 통해 설정될 수도 있다. 로딩 스테이션(101)은 또한, 로딩 스테이션에 로딩될 페이로드 데이터를 수신할 수 있게 하는 네트워크 인터페이스, 플로피 디스크 드라이브, CD 드라이브 등과 같은 추가 인터페이스(110)를 포함할 수도 있다. 페이로드 데이터는 소프트웨어 공급자와 같은 페이로드 공급자로부터, 예컨대 인터넷과 같은 통신망을 통해 또는 CD, 플로피 디스크, 메모리 카드 등과 같은 저장 매체에 수신될 수도 있다. 페이로드 데이터는 가능하면 검증 과정 및/또는 후속 처리 이후 저장 매체(104)에 저장된다. 로딩 스테이션은, 적합한 통신 인터페이스를 포함하는, PC와 같은 적절히 프로그램된 통상적인 컴퓨터일 수도 있다. 로딩 스테이션의 바람직한 실시예가 도 6과 관련하여 설명될 것이다.
또 다른 실시예에 있어서, 로딩 스테이션은, 예컨대 개인용 컴퓨터, 워크스테이션, 네트워크 서버 등과 같은 원격 컴퓨터로부터 페이로드 데이터와 헤더 정보를 수신한다. 예컨대, 데이터는 인터넷, 근거리 통신망, 인트라넷, 익스트라넷 등의 컴퓨터 망을 통해, 또는 임의의 다른 적합한 수단에 의해, 예컨대 플로피 디스크, CD ROM등과 같은 컴퓨터-판독가능 매체상에 수신될 수도 있다. 이 실시예에 있어서, 헤더 발생, 메시지 다이제스트의 계산 및 암호화는 로딩 스테이션 보다는 원격 컴퓨터에 의해 수행된다. 개인용 컴퓨터와 같은 로딩 스테이션은 이동 단말기와 협력하여, 예컨대 직렬 접속, 적외선 포트, 블루투스 또는 다른 무선 접속 등을 통해 이동 단말기로 데이터를 로딩하는 것을 수행한다. 따라서, 상기 실시예에 있어서, 로딩 스테이션은 단지, 헤더 정보를 최초로 전송한 후, 바람직하게는 개별적인 페이로드 데이터 블록으로서 페이로드 데이터를 전송하는 작업을 수행할 뿐이다.
이동 단말기(105)는 로딩 스테이션과 데이터를 통신할 수 있게 하는데 적합한 회로 및/또는 장치를 포함하는 상응하는 통신 유닛(106)을 포함한다. 또한 이동 단말기는, 예컨대 범용 또는 특정 프로그램가능 마이크로프로세서, 디지털 신호 처리기(DSP), 주문형 집적회로(ASIC), 프로그램가능 논리 배열(PLA), 필드 프로그래머블 게이트 어레이(FPGA) 등 또는 이들의 결합과 같은 처리 유닛(107)을 포함한다. 처리 유닛(107)은, 예컨대 이동 단말기의 저장 매체(108)로부터 로딩된 소프트웨어에 의해, 로딩 스테이션으로부터 페이로드 데이터와 헤더 데이터를 수신하고, 헤더 정보를 분석하여 검증하며, 페이로드 데이터를 저장 매체(108)로 로딩하도록 적응된다. 응용가능하다면, 처리 유닛(107)은 페이로드 데이터를 처리하도록, 예컨대 페이로드 데이터를 압축해제하거나 복호화하도록 또한 적응된다.
도 2는 이동 단말기의 일례의 블록도를 도시하는 것이다. 이동 단말기(101)는 상기 기재된 바와 같이, 이동 단말기의 기능을 제어하는 처리 유닛(107)을 포함한다. 이동 단말기는 또한, 셀룰러 망과 같은 무선 통신망으로/으로부터 데이터를 송신하고 수신하는 안테나(206)를 가진 무선 인터페이스(205)를 포함한다. 또한 상기 이동 단말기는, 예컨대 LCD 등의 디스플레이, 키패드, 또는 터치 스크린 등의 그 밖의 입력 수단과 같은 사용자 인터페이스(204)를 포함한다. 사용자 인터페이스는, 로딩이 사용자로부터의 입력, 예컨대 패스워드, PIN 등을 입력할 것을 요구하는 대화형 인증/승인 절차와 결합될 경우 로딩 과정동안 사용될 수 있다. 이동 단말기는 또한, 가입자 식별 정보, 전화 번호, 및 셀룰러 망 운용자를 이용한 사용자의 가입과 관련된 그 밖의 데이터를 저장하는 메모리를 포함하는 가입자 식별 모듈(SIM)(207)을 포함할 수 있다. 또한 이동 단말기는 RAM 섹션(203), ROM 섹션(202) 및 플래시 메모리를 포함하는 섹션(201)을 포함할 수 있는 저장 매체(108)를 포함한다. 이동 단말기로부터 수신된 페이로드 데이터는 메모리의 플래시 섹션 및/또는RAM 섹션에 로딩될 수 있다. 선택적으로 또는 추가로, 이동 단말기의 저장 매체는, EPROM, EEPROM 등과 같은 다른 유형의 메모리, 또는 광 디스크, 디지털 비디오 디스크(DVD), 콤팩트 디스크(CD 또는 CD-ROM), 소형-디스크, 하드 디스크, 강자성 메모리, 광 저장장치, 전하 결합 소자, PCMCIA 카드 등과 같은 다른 유형의 저장 매체를 포함할 수도 있다. 이와 상응하여, 페이로드 데이터는 상기 선택적인 메모리 유형 및/또는 저장 매체 중 임의의 것에 로딩될 수 있다. 본 발명의 일 실시예에 있어서, 로딩 스테이션으로부터 수신된 페이로드 데이터는 SIM(207)의 메모리에 로딩될 수도 있다. 마지막으로, 이동 단말기는, 예컨대 블루투스 송수신기, IrDa 포트, USB 어댑터, 케이블 커넥터 등의 상기 기재된 바와 같은 통신 유닛(106)을 포함한다. 선택적으로, 무선 인터페이스(205)는 셀룰러 망을 통해 무선으로 데이터를 수신하는데 사용될 수 있다. 예컨대, 이동 단말기는 임의의 휴대용 무선 통신 기기일 수 있는데, 여기서 휴대용 무선 통신 기기라는 용어는 이동 전화기, 무선 호출기, 커뮤니케이터, 즉 전자 수첩, 스마트 폰, 개인 휴대 정보 단말기(PDAs), 핸드헬드 컴퓨터 등과 같은 모든 기기를 포함한다.
도 3은 본 발명의 일 실시예에 따른 데이터 포맷을 도시한다. 데이터는 헤더 섹션(301)과 페이로드 섹션(302)을 포함한다. 페이로드 섹션(302)은 이동 단말기로 로딩될 실제 페이로드 데이터를 포함한다. 페이로드 데이터는 응용 소프트웨어와 같은 소프트웨어, 다른 소프트웨어의 로딩을 체계화화고 및/또는 제어하는 프리로더 소프트웨어, 이동 단말기의 운영 체제의 일부 등을 포함할 수도 있다. 선택적으로 또는 추가로, 페이로드 데이터는 다른 유형의 데이터, 예컨대 이동 단말기의RAM 섹션(203), SIM(207) 또는 이동 단말기내의 다른 유형의 저장 매체에 저장하기 위한 데이터를 포함할 수도 있다. 도 7a-b와 관련하여 설명되는 바와 같이, 페이로드 데이터는 또한 더 작은 세그먼트로 분리될 수 있다. 헤더 섹션(301)은 페이로드 데이터에 관한 정보, 이동 단말기에 관한 정보, 이동 단말기가 데이터를 어떤 방법으로 처리해야 하는지를 결정하는 제어 파라미터, 및 암호 정보를 포함한다. 도 3의 실시예에 따르면, 헤더 데이터는 이동 단말기의 제조업체에 의해 제어되는 제조업체 헤더(303)와 페이로드의 공급자에 의해 제어되는 페이로드 헤더(304)로 분할된다. 제조업체 헤더(303)는 로딩 스테이션의 개인 키로 암호화되는 메시지 다이제스트를 포함한 암호 검사합(CCS)(303a)을 포함한다. 암호 검사합(303a)은 수신 이동 단말기에 의해 헤더(301)의 무결성과 진정성(authenticity)을 검증하는데 사용될 수 있다. 제조업체 헤더는 또한 이동 단말기의 칩 세트의 유형과 같은 하드웨어 정보(303b)를 포함한다. 제조업체 헤더는 또한, 공급자 ID 등과 같은 페이로드 공급자에 대한 정보(303c)를 포함할 수 있다. 선택적으로 또는 추가로 다른 유형의 정보가 제조업체 헤더에 포함될 수도 있다는 것을 알아야 한다. 예컨대, 헤더는 페이로드의 차후 검증 과정 동안 이동 단말기에 의해 사용되는 서명 키를 포함할 수도 있다. 페이로드 헤더(304)는 수신된 페이로드 데이터를 검증하기 위해 이동 단말기에 의해 사용되는 암호 검사합(304a)을 포함한다. 페이로드 헤더는 또한 소프트웨어 버전, 호환성있는 이동 단말기 유형, 예컨대 규정된 제조업체 및/또는 규정된 모델의 이동 단말기에 대한 정보 등과 같은 페이로드 정보(304b)를 포함한다. 페이로드 헤더는 또한, 현재 및/또는 앞으로의 페이로드에 대한 검증 과정 동안 이동 단말기에 의해 사용되는 하나 이상의 공개 키와 같은 인증서(304c)를 포함한다. 또한, 페이로드 헤더(304)는 수신된 페이로드를 어느 곳에 로딩할 것인지, 예컨대 어떤 메모리 섹션, 어떤 주소 등에 로딩할 것인지에 대해 이동 단말기에 알리는 수신지 정보(304d)를 포함한다. 페이로드 헤더(304d)는 또한 액세스 제어 목록, 명령, 사용된 압축 유형, 개별적으로 어드레스된 메모리 영역내에 인접하여 페이로드 데이터가 접촉되는지 등의 로드 옵션을 포함할 수 있다. 선택적으로 또는 추가로, 다른 유형의 정보가 페이로드 헤더에 포함될 수도 있다는 것을 알아야 한다. 또한, 헤더(301)가 전혀 분리되지 않는 실시예를 포함하여, 또 다른 형태의 헤더 정보 분리가 사용될 수도 있다는 것을 알아야 한다. 헤더(303 및 304)는 하나의 메시지로서 전송될 수도 있고 또는 서로 개별적으로 전송될 수도 있다. 또한 헤더는, 예컨대 통신 스택의 하위층에 의해 사용되는 통신 프로토콜에 따라 전송 전에 더 작은 패킷으로 더 분할될 수도 있다는 것을 알아야 한다. 이에 상응하여, 헤더는 통신 스택의 하위층에 의해 수신기에서 재조합될 수 있다. 본 발명에 따르면, 적어도 헤더(303)가 페이로드를 전송하기 전에 메시지내에 전송된다. 페이로드 헤더(304)는 페이로드 공급자에 의해 발생되어 페이로드 데이터와 함께 로딩 스테이션에 의해 수신될 수 있다. 따라서, 페이로드 헤더는 페이로드 공급자에 의해 제공된 정보를 토대로 로딩 스테이션에 의해 발생될 수 있다.
도 4는 본 발명의 일 실시예에 사용하기 위한 계층 키 구조를 도시하는 것이다. 보안 메커니즘 신뢰 사슬(chain)을 실현한다. 메커니즘은 이동 단말기 제조업체 또는 다른 적합한 기관으로 이동 단말기 제어를 제공한다. 그러나, 이와 동시에, 상기 메커니즘은, 소프트웨어 또는 데이터가 하나 이상의 소프트웨어 공급자에게 로딩될 수 있다는 것에 대해 제어하는 것을 위임(delegation)할 수 있다. 상기 메커니즘은 공개-키 암호기법을 기반으로 한다. 제조업체의 공개 루트 키(public root key)(401)는 이동 단말기(105)내에, 예컨대 메모리(108)의 ROM 섹션(202), 처리 유닛(107)의 특정 온-칩 메모리 등에 저장된다. 다음으로, 루트 키(401)는 이동 단말기(105)내에, 예컨대 저장 매체(108)의 플래시 섹션(201)에 인스톨될 소프트웨어 공급자의 공개 키(402)를 검증하는데 사용될 수 있다. 공개 키는 공개 루트 키(401)에 상응하는 제조업체의 개인 키를 사용하여 암호화되거나 또는 서명된다. 암호화된 공개 키(402)가, 예컨대 헤더 데이터(301)의 일부로서 또는 별도의 로딩 과정 동안 이동 단말기(105)에 수신되면, 공개 루트 키(401)는 이동 단말기에 인스톨되기 전에 공개 키(402)의 진정성을 검증하는데 사용된다. 이 외에도, 이동 단말기를 스타트-업(start-up) 할 때마다, 공개 루트 키(401)가 공개 키(402)의 인증을 검증하는데 사용될 수도 있다. 일단 인스톨되면, 그 후 공개 키(402)는 소프트웨어 공급자의 상응하는 개인 키로 서명되는 수신된 페이로드 데이터(403)를 검증하는데 사용될 수 있다. 따라서, 상기 실시예에 따르면, 소프트웨어 공급자가 제조업체의 개인 키에 액세스할 필요가 없고, 제조업체가 소프트웨어 공급자의 개인 키에 액세스할 필요가 없어, 소프트웨어가 안전하게 인스톨된다. 그러므로, 공개 키 메커니즘을 사용하면, 계층 키 구조가 쉽게 구현될 수 있다는 이점이 있다. 상기 실시예의 또 다른 이점은, 예컨대 각기 다른 페이로드 공급자에 상응하는 다수의 공개 키(402)가 이동 단말기에 인스톨될 수 있다는 것이다. 더욱이, 공개 루트 키(401)에상응하는 개인 루트 키는 단지 공개 키(들)(402)를 암호화하거나 서명하는데 사용될 뿐이며, 실제 페이로드를 서명하는데 사용되지 않음으로써, 루트 키를 매우 보호한다. 상기 구조는, 예컨대 키의 추가 레벨을 도입함으로써 확장될 수도 있음을 알아야 한다.
도 5는 본 발명의 일 실시예에 따라 이동 단말기에 데이터를 로딩하는 방법의 흐름도를 도시하는 것이다. 초기 단계(500)에서, 로딩 스테이션(101)이 페이로드를 준비한다. 이 단계는 암호 검사합을 보다 덜 복잡하게 계산하고 더욱 효율적으로 전송하기 위해 페이로드의 압축을 포함할 수도 있다. 선택적으로 또는 추가로, 로딩 스테이션은 전송중에 페이로드가 부당하게 인터셉트될 위험을 줄이기 위해 페이로드를 암호화할 수도 있다. 그 후, 단계 501에서, 로딩 스테이션은 소프트웨어 정보, 실행 환경 조건 등을 포함하는 헤더 정보를 발생시킨다. 이 단계는, 예컨대 로딩 스테이션의 개인 키로 암호화되며 헤더에 대해 계산된 메시지 다이제스트와 같은 하나 이상의 암호 검사합 또는 다른 암호 검사합의 계산을 또한 포함한다. 이 단계에서는, 바람직하게는 RSA, DSA 등과 같은 공개-키 암호화 방법과 결합하여 MD-5, SHA-1 등과 같은, 메시지 다이제스트를 계산하기 위한 임의의 적합한 암호화 방법이 사용될 수 있다. 선택적으로 또는 추가로, 헤더는 헤더와 페이로드 두 가지 모두에 대해 계산된 암호 검사합을 포함할 수도 있다. 단계 502에서, 상기 발생된 헤더가 이동 단말기로 전송된다. 단계 503에서 헤더를 수신한 후, 이동 단말기는 단계 504에서, 헤더 정보가 정확한지 여부를 검증한다. 이러한 검증은 이동 단말기에 저장된 공개 키를 사용하여 헤더에 대한 암호 검사합을 검사하는 것을 포함할 수도 있다. 상기 검증 과정은 또한 소프트웨어 버전의 검증, 예컨대 CPU 유형, 이동 단말기 유형, 운영 체제 등과 같은 이동 단말기의 실행 환경과의 호환성있는 실행 환경의 비교 등을 포함할 수도 있다. 헤더 정보가 성공적으로 검증되지 않을 경우, 로딩 과정이 중단됨으로써, 부정확한 소프트웨어의 불필요한 전송을 피할 수 있다. 이러한 경우, 가능하다면 다른 소프트웨어 버전을 이용하는 것과 같이 재전송을 트리거하여, 오류 메시지가 로딩 스테이션으로 전송될 수 있다. 헤더 정보가 성공적으로 검증된다면, 단계 505에서 이동 단말기는 페이로드의 실제 전송 요청을 로딩 스테이션으로 전송한다. 단계 506에서 상기 요청을 수신하면, 로딩 스테이션은 단계 507에서 페이로드의 전송을 시작한다. 추가로, 단계 507에서, 수신 데이터를 어디에 저장할지를 이동 단말기에 나타내는 수신지 정보가 전송될 수도 있다. 본 발명의 다른 실시예에서는, 이동 단말기가 요청을 전송할 수 없다. 이러한 경우, 로딩 스테이션은 예컨대 헤더를 전송한 후 규정된 시간 후에 페이로드 전송을 자동으로 시작할 수 있다. 헤더가 성공적으로 검증되지 않는다면, 이동국은 수신시 페이로드를 간단히 폐기함으로써, 부당한 데이터/소프트웨어를 저장하여 기존의 데이터/소프트웨어에 겹쳐쓰는 것을 피할 수 있다. 그러나, 바람직한 실시예에 있어서, 페이로드의 전송은 이동 단말기로부터의 요청에 의해 트리거될 수 있으므로, 불필요한 전송을 피하게 된다. 페이로드를 수신하면(단계 509), 이동 단말기는 후속 단계 510에서 페이로드를 검증한다. 이 검증 단계는, 헤더 및 페이로드에 대해 계산된 암호 검사합의 검증, 또는 수신된 데이터의 진정성 및/또는 무결성을 검증하는 다른 암호화 방법을 포함할 수도 있다. 페이로드가 성공적으로 검증된다면, 단계 510에서 페이로드는, 예컨대 압축해제되고, 수신된 수신지 정보에 의해 표시된 목표 저장 영역에 저장되는 등으로 처리될 수 있다. 또한, 페이로드가 성공적으로 수신된다는 것을 로딩 스테이션에 알리는 승인(acknowledgement)이 로딩 스테이션으로 전송될 수도 있다. 따라서, 단계 512에서 로딩 스테이션이 상기 승인을 수신하면, 로딩 과정이 완료된다. 선택적으로, 이동 단말기는 승인을 반송(return)할 수 없다. 예컨대, 상기 대신 메시지가 이동 단말기의 디스플레이에 표시됨으로써, 로딩 과정이 완료되었음을 사용자에게 나타낼 수 있다.
특히 페이로드가 소프트웨어를 포함한다면, 수신된 페이로드는 검증된 이후에만 압축해제되는 등으로 처리된다는 점이 특히 유리한데, 그 이유는 상기와 같이 함으로써, 소프트웨어가 검증될 때까지는 실행가능한 형태로 저장되지 않기 때문이다. 이것은, 검증 이전의 중간 저장장치로서 및 실행가능한 소프트웨어를 실행을 위해 로딩하는 최종 저장 영역으로서 동일한 저장 영역이 사용될 경우 훨씬 더 유리하다. 예컨대, 수신된 소프트웨어는 플래시 메모리내에 처리되지않은 형태로 저장된 후, 검증 및 처리를 위해 플래시 메모리로부터 로딩될 수 있다. 성공적으로 검증되면, 플래시 메모리의 관련 블록이 소거될 수 있으며, 검증된 소프트웨어가 플래시 메모리의 동일한 블록내로, 그러나 이제는 실행가능한 형태로하여 처리될 수 있다.
도 6은 본 발명의 일 실시예에 따라 이동 단말기에 데이터를 로딩하는 시스템 및 상응하는 보안 기능의 블록도를 도시하는 것이다. 시스템은 로딩 스테이션(101) 및 이동 단말기(105), 예컨대 도 2와 관련하여 기재된 바와 같은 이동 단말기를 포함한다. 이동 단말기는, 통신 유닛(106)을 통해 로딩 스테이션으로부터 수신되는 페이로드 데이터와 헤더 데이터의 메시지 다이제스트를 계산하는 기능(610)을 제공하는 처리 유닛(107)을 포함한다. 상기 처리 유닛(107)은 또한, 수신된 헤더 및 수신된 페이로드 데이터로부터 암호 검사합을 추출하여 복호화함으로써 결과적으로 복호화된 메시지 다이제스트가 얻어지게 하는 기능(611)을 제공한다. 복호화는, 예컨대 RSA 알고리즘을 사용하여 이동 단말기의 저장 매체(108)의 섹션(614)에 저장된 공개 키를 기반으로 수행될 수 있다. 또한, 처리 유닛(107)은 수신된 헤더/페이로드의 진정성과 무결성을 검증하기 위해 상기 계산된 메시지 다이제스트와 복호화된 메시지 다이제스트를 비교하는 기능(612)을 제공한다. 계산된 메시지 다이제스트와 복호화된 메시지 다이제스트가 동일하지 않다면, 수신된 헤더/데이터가 원래의 헤더/데이터와 상이할 수 있으며, 또는 헤더/데이터가 복호화하는데 사용된 공개 키에 상응하는 개인 키로 서명되지 않았다. 따라서, 수신된 헤더/페이로드가 거부된다. 헤더가 성공적으로 검증된다면, 처리 유닛(107)은 페이로드 전송을 요청하는 메시지가 로딩 스테이션으로 반송되도록 한다. 마지막으로, 처리 유닛은 압축해제하여 저장장치(108)의 상응하는 섹션(615)에 저장하는 것과 같이, 수신된 페이로드의 후속 처리를 위한 기능(613)을 제공한다. 상기 기능은 소프트웨어내에 구현될 수도 있고, 또는 선택적으로 상기 기재된 특징은 소프트웨어 대신 또는 소프트웨어와 결합하여 배선 회로에 의해 구현될 수도 있다. 로딩 스테이션(101)은, 예컨대 적절하게 프로그램된 개인용 컴퓨터와 같은 베이스 유닛(base unit)(601) 또는 또다른 적합한 장치, 및 암호화 모듈(604)을 포함한다. 베이스 유닛은, 예컨대 소프트웨어와 같이 이동 단말기에 로딩될 페이로드 데이터를 저장하는 메모리(603), 및 도 1과 관련하여 기재된 바와 같이 이동 단말기와 데이터를 통신하는 통신 회로(102)를 포함한다. 베이스 유닛(601)은 또한, 저장된 페이로드 데이터에 대한 헤더를 발생시키는 기능(609)과, 페이로드 및 상응하는 헤더에 대한 하나 이상의 메시지 다이제스트를 계산하는 기능(608)을 제공하는 처리 유닛(602)을 포함한다. 암호화 모듈(604)은, 예컨대 RSA 알고리즘 또는 다른 적합한 암호화 방법을 사용하여 암호화 모듈의 보안 메모리(605)에 저장된 개인 키를 토대로 계산된 메시지 다이제스트(들)를 암호화하는 처리 유닛(605)을 포함한다. 베이스 유닛(601)의 처리 유닛(602)은 또한 상기 결과 얻어진 헤더 및 페이로드를 베이스 유닛의 통신 회로(102)를 통해 이동 단말기로 전송하는 것을 제어하는 기능(607)을 제공한다. 일 실시예에 있어서, 암호화 유닛은 스마트 카드로 구현되고, 베이스 유닛(601)에는 카드 리더(card reader)가 구비된다. 선택적으로, 암호화 유닛과 베이스 유닛 사이에 또 다른 인터페이스가 사용될 수도 있다. 상기 실시예의 이점은, 로딩 스테이션이 새로운 개인 키로 용이하게 구성될 수 있으며, 개인 키가 안전하게 암호화 유닛에 저장된다는 점이다.
상이한 모듈의 로딩 스테이션 실시예가 사용될 수도 있다는 것을 알아야 한다. 예컨대, 암호화 유닛이 또한 메시지 다이제스트를 계산할 수도 있다.
도 7a-c는 본 발명의 일 실시예에 따른 데이터 포맷의 예들을 도시하는 것이다. 도 7a-c의 예에 있어서, 페이로드 데이터는 이동 단말기의 플래시 메모리에 로딩될 소프트웨어를 포함한다. 상기 언급된 바와 같이, 플래시 메모리는 블록이라하는 메모리의 유닛내에서 소거되고 재프로그램될 수 있는 일정하게-전력공급되는 비휘발성 메모리 유형이다. 이것은 전기적으로 소거될 수 있는 프로그램가능한 판독-전용 메모리(EEPROM)의 변형이다. 그러나, EEPROM은 바이트 수준에서 소거되고 재기록되지만, 플래시 메모리는 블록 크기로 기록될 수 있어, 업데이트가 용이하다. 예컨대, 블록은 64 kbyte 크기를 가질 수도 있다. 도 7a-c의 페이로드(302)는 이동 단말기의 플래시 메모리의 블록 크기에 상응하는 동일한 크기의 N 개의 블록(P1, P2,..,PN)으로 분리된다. 각 블록은, 수신된 페이로드 블록이 저장되는 플래시 메모리의 목표 블록의 블록 주소를 표시하는 수신지 정보(D1, D2,..,DN)가 그 앞에 놓인다. 수신지 정보는 블록 번호 또는 주소를 포함할 수 있다. 연속적인 블록일 경우에는, 제1 블록(P1)의 시작 주소만 필요하다. 이러한 경우, D1은 시작 주소를 제공할 수 있으며, 나머지 Di's 는 0으로 설정되거나 생략될 수 있다. 헤더 정보는 이동 단말기가 수신지 목록을 해석하는 방법에 대한 표시를 포함하는 것이 바람직하다. 선택적인 실시예에 있어서, 수신지 정보가 헤더에 포함됨으로써, 수신지 정보는 상기 수신지에 데이터를 로딩하기에 앞서 암호법으로 검증될 수 있다. 이것은 특히, 페이로드가 IRAM에 로딩될 소프트웨어를 포함할 경우 기존의 소프트웨어에 부당하게 겹쳐쓰는 것을 피하는데 유리할 수 있다. 페이로드 데이터의 크기가 블록 크기의 배수가 아니라면, 데이터는, 예컨대 0으로 패딩될(pad) 수 있다. 이제 도 7a를 참조하면, 헤더 섹션(301)은 상응하는 헤더 암호 검사합(301b)을 가진 제조업체-관련 헤더 섹션(301a)을 포함하고, 상기 헤더 암호 검사합(301b)은, 헤더 정보(301a)에 대해 계산된 암호화된 메시지 다이제스트, 즉 CCSH= RSAk1(SHA1(HM)), 즉 보안 해시 알고리즘(SHA-1)에 따라 계산되고 RSA 알고리즘을 사용하여 로딩 스테이션의 개인 키(k1), 바람직하게는 제조업체의 개인 키로 암호화된 헤더 섹션(301a)의 메시지 다이제스트를 포함한다. 일 실시예에 있어서, 메시지 다이제스트 MDH=SHA1(HM)는 RSA 동작에 적절한 길이, 즉 CCSH= RSAk1(SHA1(HM)|padding)(여기서, '|'는 일련의 비트 스트링을 부호로 나타낸 것임)를 얻도록 패딩된다. 패딩은, 예컨대 PKCS#1 패딩과 같은 임의의 적합한 패딩 방식에 따라 수행될 수 있다. 일 실시예에 있어서, 헤더 암호 검사합은 또한 이동 단말기에서 페이로드 메시지 다이제스트를 복호화하는데 사용될 공개 키에 대해 계산된다. 301a내의 헤더 정보는 이동 단말기의 유형과 관련되며 페이로드의 실제 내용과 무관한 정보를 포함할 수 있다. 헤더(301)는 또한, 소프트웨어 버전, 호환성있는 실행 환경의 사양, 페이로드를 처리하는 동안 이동 단말기에 의해 사용되는 파라미터를 나타내는 명령 섹션과 같은 정보를 포함하는 페이로드-관련 헤더(301c)를 포함한다. 예컨대, 상기 정보는 페이로드 블록의 수(N), 및 상기 페이로드 블록이 일련의 연속적인 블록에 상응하는지 또는 이들이 개별적인 흩어져있는 블록인지에 대한 정보를 포함할 수 있다. 파라미터는 또한, 압축 및/또는 암호화가 사용되는지 여부 및 어떤 유형의 압축 및/또는 암호화가 사용되는지, 페이로드의 길이 등에 대한 정보를 포함할 수도 있다. 마지막으로, 헤더는 페이로드 헤더의 메시지 다이제스트(MDPL) 및 N개의 페이로드 메시지 다이제스트의 암호화된 목록, 즉 CCSPL= RSAk2(MDPL|MD1|MD2|...|MDN)를 포함하는암호 검사합(301d)을 포함하며, 상기 각 메시지 다이제스트 MD1, MD2,..,MDN는 블록 P1,..,PN의 상응하는 블록과 관련된다. 목록은 소프트웨어 공급자의 개인 키(k2)를 사용하여 암호화된다. 일 실시예에 있어서, MD1은 헤더 섹션(301a-c), 수신지 정보(D1), 및 제1 페이로드 블록(P1)에 대해 계산되는데, 즉 MD1= SHA1(HM|CCSH|HPL|D1|P1)이며, 여기서 '|'는 일련의 비트 스트링을 부호로 나타낸 것이다. 그에 따라 나머지 메시지 다이제스트, 즉 MD2,..,MDN도 계산된다. 즉, MDi = SHA1(HM|CCSH|HPL|D1|P1|...|Di|Pi), i=2,...N이다.
CCSH와 블록 암호 검사합의 계산에 대해 각기 다른 개인 키를 각각 사용하는 것에 대한 대안으로, 동일한 개인 키가 사용될 수도 있다는 것을 알아야 한다. 예컨대, 전체 헤더 정보(301)가 한 기관에 의해 생성된다면, 그 기관의 개인 키가 사용될 수 있다.
또한, 메시지 다이제스트 MD1,..,MDN-1가 예컨대 일 바이트로 절단되어 헤더의 크기를 줄일 수도 있다는 것을 알아야 한다. 이것은, 잘못된 블록을 삽입하고자 하는 시도를 성공할 확률이, 예컨대 일 바이트로 절단될 경우 1/16의 확률로 증가한다는 것을 의미한다. 그러나, 이러한 변형은 MDN의 최종 검사 과정 동안 통지된다.
도 7b를 참조하면, 데이터 포맷은 상기 기재된 바와 같이 헤더 섹션(301),및 N개의 페이로드 데이터 블록을 가진 페이로드 섹션(N)을 포함한다. 또한, 상기 데이터 포맷은 페이로드 블록(P1,..,PN-1)의 절단된 블록 메시지 다이제스트(MD* 1,..,MD* N-1)의 목록을 포함하는 섹션(703)을 포함한다. 상기 기재된 바와 같이, 메시지 다이제스트는
MDi = SHA1(HM|CCSH|HPL|D1|P1|...|Di|Pi), i=1,...N
에 따라 계산될 수 있다. 바람직하게는, 블록 메시지 다이제스트는 도 7a와 관련하여 기재되었으며 아스테릭스(asterix) '*'로 표시된 바와 같이 1 바이트로 절단된다. 헤더 섹션(301)은 도 7a와 관련하여 기재된 바와 같이 상응하는 헤더 암호 검사합(301b)을 가진 제조업체-관련 헤더 섹션(301a)을 포함한다. 헤더(301)는 또한 도 7a와 관련하여 기재된 바와 같이 페이로드-관련 헤더(301c)를 포함한다. 마지막으로, 상기 헤더는, 페이로드 헤더(301b)의 메시지 다이제스트(MDPL), 마지막 페이로드 블록(PN)의 전체 블록 메시지 다이제스트(MDN), 및 메시지 다이제스트(302) 목록의 메시지 다이제스트(MDL)의 암호화된 목록을 포함하는 암호 검사합(301e), 즉 CCSPL= RSAk2(MPL|MDN|MDL)을 포함한다. 예컨대, 메시지 다이제스트 각각은 20 바이트를 포함할 수 있다. 목록은 소프트 공급자의 개인 키(k2)를 사용하여 암호화된다. 특히, 비-절단된 블록 메시지 다이제스트(MDN)는, 이전 블록 메시지 다이제스트(MD* 1,..,MD* N-1)가 절단된다 하더라도 수신 데이터의 최종 검증을 안전하게 할 수 있게 한다.
상기 실시예의 이점은, 블록 메시지 다이제스트(MD* 1,..,MD* N-1) 모두를 암호화하지 않고 목록(302)의 메시지 다이제스트(MDL)와 메시지 다이제스트(MDN)만 암호화할 필요가 있으므로, 메시지의 크기를 매우 줄일 수 있다는 것이다. 이것은 많은 수의 블록(N)을 가질 경우 특히 유리하다.
도 7c를 참조하면, 헤더에 메시지 다이제스트 목록의 블록 암호 검사합을 포함하는 대신, 암호화된 메시지 다이제스트 CCSi=RSAk2(MDi)가 각 블록 앞에 놓일 수 있다. 그러나, 도 7a-b의 실시예의 이점은, 메시지 다이제스트를 검색하는데 단 한번의 복호화 단계가 수행될 필요가 있으므로, 계산 조건을 감소시킬 수 있다는 것이다. 상기 실시예에 따르면, 헤더는 제조업체-관련 정보 및 페이로드-관련 정보 두 가지 모두를 포함하는 헤더 섹션(301f)을 포함한다. 따라서, 상응하는 헤더 암호 검사합(301g)이 헤더 섹션(301f)에 대해 계산된다.
도 8a-b는 도 7a-b의 데이터 포맷에 각각 상응하는 본 발명의 실시예에 따른 이동 단말기에 데이터를 로딩하는 방법의 예에 대한 흐름도를 도시하는 것이다. 도 8a를 참조하면, 초기 단계 800에서, 로딩 스테이션(101)은 페이로드를 압축하고, 헤더 정보, 예컨대 도 7a와 관련하여 기재된 헤더 정보를 생성한다. 또 다른 실시예에 있어서, 페이로드는 페이로드 공급자에 의해 압축되어, 압축된 형태로 로딩 스테이션에 수신될 수 있다. 단계 801에서, 이동 단말기(105)와 통신 링크가 설정되고, 헤더(301)가 적합한 프로토콜을 사용하여 이동 단말기로 전송된다. 이동 단말기는 단계 802에서 헤더 정보를 수신하여, 도 7a의 각각의 헤더 섹션(301a-301d), 즉 HM과 CCSH의 데이터, HPL, 및 메시지 다이제스트(MDPL, MD1,..,MDN)의 암호화된 목록(CCSPL)을 추출한다. 수신된 CCSPL은 이동 단말기에 저장된 상응하는 공개 키를 사용하여 복호화되며, 페이로드 헤더의 메시지 다이제스트와 블록 메시지 다이제스트(MD1,..,MDN)가 검색된다. 또한, 이동 단말기는 헤더 정보를 검증한다. 이러한 검증은 다수의 상이한 검사, 예컨대
- 헤더 메시지 다이제스트가 수신된 헤더 정보에 대해 계산되고, 헤더에 포함된 CCSH가 추출되어 이동 단말기에 저장된 상응하는 공개 키를 이용하여 복호화된다. 두 개의 값이 동일하다면, 헤더는 정당하며 신뢰성있는 소스(source)에서 발생된 것으로 수용된다.
- 메시지 다이제스트(MDPL)가 검증된다.
- 칩 세트, 이동 단말기 유형 등과 같은 추가 파라미터가 이동 단말기의 실제 실행 환경과 비교된다.
를 포함한다. 검증이 실패한다면, 로딩 과정은 중단된다. 검증이 성공한다면, 단계 804에서 헤더의 수신을 승인하는 승인이 이동 단말기로부터 로딩 스테이션으로 전송된다. 또 다른 실시예에 있어서, 이동 단말기는 페이로드를 수신하는 요청을 로딩 스테이션으로 전송할 수도 있다. 선택적인 실시예에 있어서, 헤더는 두 개 이상의 메시지로서 전송되고 검증될 수 있다는 것을 알아야 한다. 예컨대, 제조업체 헤더를 포함하는 헤더 섹션(301a-b)이 처음에 전송될 수도 있다. 이러한 정보 검증 후, 페이로드 헤더(301c-d)가 전송되고 검증될 수 있다. 승인을 수신하면(단계 805), 단계 806에서 로딩 스테이션은 페이로드 데이터의 블록(Pi, i=1,...,N) 전송을 시작하는데, 각각은 상응하는 수신지 정보(Di)가 그 앞에 놓인다: 처음에 계수기는 i=1로 설정된다. 단계 807에서, 블록(Pi)과 수신지 정보(Di)가 로딩 스테이션에서 이동 단말기로 전송된다. 단계 808에서, 이동 단말기는 블록(P산과 수신지 정보(Di)를 수신하여, 이들을 RAM에 로딩한다. 헤더 정보로부터 추출된 상응하는 MDi가 이미 RAM에서 이용될 수 있다. 단계 809에서, 블록 메시지 다이제스트(MDi)가 검사된다. 따라서, 메시지 다이제스트가 로딩 스테이션에서의 계산에 상응하여, 즉 도 7a의 예에서의 MDi = SHA1(HM|CCSH|HPL|D1|P1|...|Di|Pi), i=1,...N와 같이 계산된다. 그 후, 상기 계산된 MDi의 값과 복호화된 MDi의 값이 상호 비교된다. 이들이 서로 상이하다면, 블록이 거부되고, 단계 810에서, 규정되어 있는 허용된 최대 재전송 수를 초과하지 않는다면, 재전송이 요청된다. 이러한 경우, 로딩 과정은 중단된다.
메시지 다이제스트들이 동일하다면, 블록(Pi)이 압축해제 되어, 수신지 정보(Di)에 의해 표시된 플래시 메모리의 블록에 저장된다. 현재의 블록이 마지막 블록이 아니라면, 즉 i<N 이라면, 단계 812에서, 다음 블록에 대해 상응하는 요청을 이동 단말기에 전송함으로써, 블록(Pi)의 성공적인 로딩이 승인된다. 상기 요청을 수신하면(단계 813), 로딩 스테이션은 상응하는 계수기를 증분시키고(단계 814), 단계 807에서 시작하여 다음 블록을 전송함으로써 반복한다. 마지막 블록(PN)이 성공적으로 로딩되면, 단계 816에서 최종 승인이 로딩 스테이션으로 전송된다. 최종 승인을 수신하면(단계 817), 로딩 스테이션은 로딩 과정을 완료한다.
도 8b를 참조하면, 상기 기재된 바와 같이, 로딩 스테이션(101)은 단계 800에서 페이로드를 압축하고 헤더 정보, 예컨대 도 7b와 관련하여 기재된 헤더 정보를 발생시킨다. 또 다른 실시예에 있어서, 페이로드는 페이로드 공급자에 의해 압축되어, 압축된 형태로 로딩 스테이션에 수신될 수 있다. 단계 801에서, 이동 단말기(105)와 통신 링크가 설정되어, 적합한 프로토콜을 사용하여 헤더(301)가 이동 단말기로 전송된다. 이동 단말기는 단계 802에서 헤더 정보를 수신하여, 도 7b의 각각의 헤더 섹션(301a-301c 및 301e)을 추출한다. 헤더 메시지 다이제스트가 상기 수신된 헤더 정보(HM)에 계산되고, 계산된 메시지 다이제스트는 수신된 CCSH를 복호화함으로써 추출된 상응하는 값과 비교된다. 두 값이 동일하다면, 헤더는 정당하며 신뢰성있는 소스에서 발생된 것으로 수용된다. 또한, 수신된 CCSPL은 이동 단말기에 저장된 상응하는 공개 키를 사용하여 복호화되며, 메시지 다이제스트(MDPL, MDN및 MDL)가 검색된다. MDPL은 페이로드 헤더(HPL)(301c)를 검증하는데 사용될 수 있는 반면, 나머지 두 개의 메시지 다이제스트는 차후에 사용하기 위해 RAM에 저장된다. 또한, 이동 단말기는 상기 기재된 바와 같이 헤더 정보를 검증할 수도 있다.검증이 실패할 경우, 로딩 과정은 중단된다. 검증이 성공한다면, 단계 804에서 헤더 수신을 승인하는 승인이 이동 단말기로부터 로딩 스테이션으로 전송된다. 승인을 수신하면(단계 805), 단계 820에서 로딩 스테이션은 절단된 블록 메시지 다이제스트(MD* 1,..,MD* N-1) 목록(703)의 전송을 시작한다. 상기 목록을 수신하면, 단계 821에서 이동 단말기는 상응하는 메시지 다이제스트를 계산하고 그 결과를 이전에 수신된 MDL의 값과 비교함으로써 상기 수신된 목록을 검증한다. 이들이 서로 상이하다면, 상기 목록은 거부되며, 단계 822에서, 규정되어 있는 허용된 최대 재전송 수를 초과하지 않는다면 재전송이 요청된다. 이러한 경우, 로딩 과정은 중단된다. 목록이 성공적으로 검증된다면, 단계 823에서 승인이 로딩 스테이션으로 전송된다. 승인을 수신하면(단계 824), 단계 807에서 로딩 스테이션은 페이로드 데이터의 블록(Pi, i=1,..,N) 전송을 시작하는데, 각각은 그 앞에 상응하는 수신지 정보(Di)가 놓인다: 처음에 계수기는 i=1로 설정된다. 단계 807에서, 블록(Pi)과 수신지 정보(Di)가 로딩 스테이션에서 이동 단말기로 전송된다. 단계 808에서, 이동 단말기는 블록(Pi)과 수신지 정보(Di)를 수신하여, 이들을 RAM에 로딩한다. 수신된 목록으로부터 추출된 것과 같은 상응하는 MD* i는 이미 RAM에서 이용될 수 있다. 단계 809에서, 블록 메시지 다이제스트가 검사된다. 따라서, 메시지 다이제스트는 로딩 스테이션에서의 계산에 상응하여 계산되며, MD* i의 절단된 비트가 상기 계산된 메시지 다이제스트의 상응하는 비트와 비교된다. 이들이 서로 상이하다면, 블록이 거부되고, 단계 810에서, 규정되어 있는 허용된 최대 재전송 수를 초과하지 않는다면 재전송이 요청된다. 이러한 경우, 로딩 과정은 중단된다. 절단된 메시지 다이제스트들이 동일하다면, 블록(Pi)은 압축해제되어, 수신지 정보(Di)에 의해 표시된 플래시 메모리의 블록에 저장된다. 현재의 블록이 마지막 블록이 아니라면, 즉 i<N 이라면, 단계 812에서, 다음 블록에 대한 상응하는 요청을 이동 단말기에 전송함으로써 블록(Pi)의 성공적인 로딩이 승인된다. 상기 요청을 수신하면(단계 813), 로딩 스테이션은 상응하는 계수기를 증분시키고(단계 814), 단계 807에서 시작하여 다음 블록을 전송함으로써 반복한다. 현재 블록이 마지막 블록(PN)이라면, 블록 메시지 다이제스트를 검사하는 단계 809는, 예컨대
MDN= SHA1(HM|CCSH|HPL|D1|P1|...|DN|PN)
에 따라 상응하는 메시지 다이제스트를 계산하는 것을 수반한다. 이러한 경우, 계산된 메시지 다이제스트는 값(MDN)과 비교되는데, 상기 값(MDN)은 헤더 정보의 일부로서 수신되며 바람직하게는 절단되지 않는다. 따라서, MDN의 계산이 이전 페이로드 블록 모두를 수반하기 때문에, 메시지 다이제스트(MD* 1,..,MD* N-1)의 절단으로 인해 블록(P1,..,PN-1) 중 하나를 이전에 잘못 수용한 것이 이 때 검출될 수 있다. 마지막 블록(PN)이 성공적으로 로딩되면, 단계 816에서 최종 승인이 로딩 스테이션으로 전송된다. 최종 승인을 수신하면(단계 817), 로딩 스테이션은 로딩 과정을 완료한다.
선택적으로, 수신지 정보 및 페이로드 메시지 다이제스트가 초기 헤더의 일부로서 전송되기보다는 각각의 블록과 함께 전송될 수도 있다. 이것은 도 7c의 예의 데이터 포맷에 상응한다.
도 8a-b의 실시예의 이점은, 수신된 페이로드 데이터의 각 블록이 단지 한번, 즉 성공적인 검증 이후 및 발생할 수 있는 차후의 처리 이후에 플래시될 필요가 있으므로, 상기 방법의 효율이 증가한다는 점이다. 또한, 플래시 메모리의 각 블록은 단지 새로운 데이터가 검증될 경우 기록됨으로써, 부당한 업데이트에 의해 이전의 데이터를 겹쳐쓰는 것을 피할 수 있다.
또한, MD-4, MD-5, 또는 순환 중복 검사(cyclic redundancy check)와 같은 다른 기술 등과 같이, 암호 검사합, 메시지 다이제스트 등을 계산하는 다른 방법이 이용될 수도 있다는 것을 알아야 한다.
일 실시예에 있어서, 헤더 메시지 다이제스트와 블록 메시지 다이제스트를 암호화하는데 사용된 키는 계층 신뢰 사슬(hierarchical trust chain)의 상이한 키이며, 상기에 따라 기관이 상이한 헤더 정보와 페이로드를 제어한다. 예컨대, 도 4의 예에 따르면, 루트 키(401)가 헤더 암호 검사합을 복호화하는데 사용될 수 있는 반면, 공개 키(402)는 블록 메시지 다이제스트를 복호화하는데 사용될 수 있다.
상기 실시예의 이점은, 기존의 소프트웨어 또는 그 밖의 페이로드를 차별적으로 업데이트할 수 있게 한다는 것이다. 예컨대, 업데이트된 소프트웨어 버전이 메모리 블록 중 일부에 있는 이전 버전과 상이하다면, 상기 방법은 로딩을, 수신지정보(Di)에 의해 표시된 상응하는 메모리 블록에서 플래시되는 해당된 블록으로 로딩하는 것으로 제한할 수 있다. 변경된 블록을 포함하는 패치의 발생은 헤더를 전송하기 전에 로딩 스테이션에 의해 수행되는 처리의 일부일 수 있다. 상기 처리는 이동 단말기로부터 수신된 정보를 기반으로 할 수 있다.
또한, 다운로드는 실제 필요한 패치로 제한될 수 있다. 사용된 압축 알고리즘이 패치에 대해 최적화됨으로써, 데이터의 양을 줄일 수 있다. 패치는 보편적으로 소프트웨어내의 흩어져있는 변경부분이다. 따라서, 소프트웨어 업데이트는 비트 스트링으로 표현될 수 있으며, 여기서 0은 변경이 전혀 없음을 나타내고, 1은 변경을 나타낸다. 이러한 표현에서, 보편적인 패치 업데이트는 거의 제로 스트링에 상응한다. 따라서, 소프트웨어 업데이트 스트링에 사용되는 압축 알고리즘이 상기와 같은 유형의 정보 스트링에 대해 최적화될 수 있으므로, 소프트웨어 패치를 다운로드 하는 매우 효율적인 방법이 얻어진다.