특허권

소프트웨어 인증 방법 및 시스템

상품번호 2019102507400792
IPC 한국(KO) 등록
출원번호 1020020023618
공개번호 10-2003-0085270
등록번호 1004535040000
출원인 주식회사 케이티프리텔
판매가 0원
 

꼭 읽어보세요!

기술거래는 양방향 경매방식으로 이루어집니다.

기술을 매수한 당사자는 거래금액의 전부 혹은 10퍼센트(%)를 당일 본원에 입금하여야 하며, 10% 나머지 잔금은 거래일로부터 2일 이내(거래일 익일)에 납부하여야 합니다. 만약 위 지정 기간내에 매수자가 입금하지 않으면 거래는 무효가 되며, 잔금도 기한내에 입금되지 않으면 매도자로 귀속됩니다. 이는 매도자의 기한의 이익상실을 보장함 입니다.

기술거래의 수수료는 기술의 이전 및 사업화 촉진에 관한 법률 시행규칙 산업통상자원부령 제48호 의거 기술이전 금액의 13퍼센트∼기술이전 금액의 17.5퍼센트로 되어있지만, 본 거래사이트에서는 매도‧매수인 각각 10%로 합니다.
이때 매수인의 매수금액(당사로 입금되는 금액)에서 수수료 각각10% 인 20%를 공제한 후 매도인에게 계좌이체를 하여야 합니다.
또한 권리이전(특허)비용은 기술양수인(매수자)부담이며 그 비용은 별도입니다.

 
본 발명은 소프트웨어 인증 방법 및 시스템에 관한 것으로서, 보다 상세하게는 서버에서 다운로드받은 소프트웨어를 모바일 단말기에서 실행 시에 소정의 인증과정을 경유하도록 함으로써, 인증된 모바일 단말기에서만 소프트웨어를 실행시킬 수 있는 방법 및 시스템에 관한 것이다. 본 발명에 따른 소프트웨어 인증 방법 및 시스템은 상기 모바일 단말기에 설치된 소프트웨어에 대한 실행 명령을 입력부로부터 수신하고, 소프트웨어에 대하여 제1 오류 코드를 생성할 수 있다. 그리고, 모바일 단말기 식별자를 추출한 후, 모바일 단말기 식별자와 상기 제1 오류 코드를 조합하여 제1 인증키를 생성한다. 이 후, 제1 인증키를 상기 모바일 단말기내에 미리 저장된 제2 인증키와 비교하여, 제1 인증키가 상기 제2 인증키와 일치하면 상기 소프트웨어를 실행함으로써, 소프트웨어를 인증할 수 있다.

색인어
소프트웨어, 인증, 복사, 실행, 순환 잉여도 검사, CRC, FCS
명세서
도면의 간단한 설명
도 1a는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 시스템의 전체 구성도를 나타낸 도면.
도 1b는 본 발명의 바람직한 일 실시예에 따른 다운로드 서버의 기능을 나타낸 블록도.
도 1c는 본 발명의 바람직한 일 실시예에 따른 모바일 단말기의 기능을 나타낸 블록도.
도 2는 본 발명의 바람직한 일 실시예에 따른 모바일 단말기에서 소프트웨어 데이터를 다운로드하는 절차를 나타낸순서도.
도 3a는 본 발명의 바람직한 일 실시예에 따른 다운로드 파일의 데이터 구조를 나타낸 도면.
도 3b는 본 발명의 바람직한 일 실시예에 따른 보안 레벨 정보를 나타낸 테이블.
도 4는 본 발명의 바람직한 일 실시예에 따른 다운로드 서버에서의 다운로드 파일 생성 과정을 나타낸 순서도.
도 5는 본 발명의 바람직한 일 실시예에 따른 프로그램의 저장 과정을 나타낸 순서도.
도 6은 본 발명의 바람직한 일 실시예에 따른 모바일 단말기에서의 소프트웨어 실행 과정을 나타낸 도면.
도 7a는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 방법을 나타낸 순서도.
도 7b는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 데이터 복사 방지 방법을 나타낸 순서도.
<도면의 주요부분에 대한 부호의 설명>
100 : 다운로드 서버
110 : 개발자용 모바일 단말기
120 : 사용자용 모바일 단말기
130 : 모바일 단말기
140 : 로컬 컴퓨터
152 : 보안 레벨 정보 설정부
154 : 오류 코드 생성부(다운로드 서버)
156 : 다운로드 파일 생성부
158 : 인증부
170 : 오류 코드 생성부(모바일 단말기)
172 : 보안 레벨 정보 및 오류 코드 비교부
174 : 인증키 생성부
176 : 인증키 비교부
발명의 상세한 설명
발명의 목적
발명이 속하는 기술 및 그 분야의 종래기술
본 발명은 소프트웨어 인증 방법 및 시스템에 관한 것으로서, 보다 상세하게는 서버에서 다운로드받은 소프트웨어를모바일 단말기에서 실행 시에 소정의 인증과정을 경유하도록 함으로써, 인증된 모바일 단말기에서만 소프트웨어를실행시킬 수 있는 방법 및 시스템에 관한 것이다.
종래에는 노력과 시간을 투입하여 완성한 소프트웨어를 인증받지 않은 모바일 단말기에서 다운로드받아 자유롭게 사용하거나, 다운로드받은 소프트웨어가 모바일 단말기를 통해 복사하는 문제점이 빈번하게 발생한다. 또한, 상기 무단복사는 저작권 침해의 법적인 분쟁까지 발생시키곤 한다.
특히, 모바일 단말기가 대중화됨에 따라 다양한 무선 인터넷 콘텐츠가 개발되고 있으나, 이러한 모바일 단말기용 소프트웨어의 저작권을 보호할 수 있는 기술적인 방안이 미미한 실정이다.
또한, 상기 모바일 단말기는 일반 컴퓨터에 비하여 그 성능 및 용량에 있어 많은 차이가 있다. 즉, 모바일 단말기는 제한된 메모리 및 중앙 처리 장치의 성능 을 고려하여 상기 모바일 단말기용 소프트웨어는 일반 컴퓨터용 소프트웨어에비하여 데이터의 크기가 적은 것이 특징이다.
그리하여, 모바일 단말기용 소프트웨어의 특징에 적합한 모바일 단말기용 소프트웨어의 인증 방법이 필요하나, 이러한 모바일 단말기용 소프트웨어에 적합한 인증 방법이 전무하다.
또한, 모바일 단말기용 소프트웨어는 그 특성상 개발 과정 중에서도 서버에 업로드하고 이를 모바일 단말기에서 다운로드받은 과정을 거치면서 개발된다.
그러나, 상기 과정에서 개발중인 소프트웨어가 무단 복사되어 경쟁 업체에 흘러갈 가능성이 있다. 따라서, 개발 중인모바일 단말기용 소프트웨어의 복사를 방지할 수 있는 모바일 단말기용 소프트웨어의 인증 방법이 필요하다.
발명이 이루고자 하는 기술적 과제
본 발명은 종래 기술의 제반 문제점을 해결하기 위하여 안출한 것으로서, 무선 모바일 단말기용 소프트웨어에 적합한인증 방법 및 시스템을 제공함으로써, 상기 무선 모바일 단말기용 소프트웨어의 무단 복사 및 실행을 방지할 수 있는방법 및 시스템을 제공함에 있다.
또한, 본 발명의 목적은 무선 모바일 단말기용 소프트웨어의 무단 복사를 방지함으로써, 상기 무선 모바일 단말기용소프트웨어를 개발한 개발자 또는 개발사의 저작권을 실질적으로 보호할 수 있는 방법 및 시스템을 제공함에 있다.또한, 본 발명의 다른 목적은 모바일 단말기의 특성에 적합한 모바일 단말기 용 소프트웨어를 인증할 수 있는 방법 및시스템을 제공함에 있다.
또한, 본 발명의 또 다른 목적은 개발 중인 모바일 단말기용 소프트웨어의 복사를 방지할 수 있는 방법 및 시스템을제공함에 있다.
발명의 구성 및 작용
상술한 목적들을 달성하기 위한 본 발명에 따르면, 모바일 단말기용 소프트웨어를 인증할 수 있는 방법 및 상기 방법에 상응하는 시스템이 제공된다. 또한, 상기 방법을 수행할 수 있는 프로그램이 수록되어 있는 기록 매체가 제공될 수있다.
본 발명의 다른 실시예에 따르면, 모바일 단말기에서 소프트웨어를 인증하는 방법에 있어서, 상기 모바일 단말기에설치된 소프트웨어에 대한 실행 명령을 입력부로부터 수신하는 단계, 상기 소프트웨어에 대하여 제1 오류 코드를 생성하는 단계, 상기 모바일 단말기 식별자를 추출하는 단계, 상기 모바일 단말기 식별자와 상기 제1 오류 코드를 조합하여 제1 인증키를 생성하는 단계, 상기 제1 인증키를 상기 모바일 단말기내에 미리 저장된 제2 인증키와 비교하는단계 및 비교 결과, 상기 제1 인증키가 상기 제2 인증키와 일치하면 상기 소프트웨어를 실행하는 단계를 포함할 수 있다.
또한, 상기 제2 인증키는 상기 모바일 단말기가 상기 모바일 단말기에 결합된 다운로드 서버로부터 다운로드 파일을수신하는 단계-여기서, 상기 다운로드 파일은 소프트웨어 데이터, 제2 오류 코드를 포함함-, 상기 모바일 단말기에서상기 소프트웨어 데이터에 대하여 제3 오류 코드를 생성하는 단계, 상기 모바일 단말기에서 상기 제2 오류 코드와 상기 제3 오류 코드를 비교하는 단계, 비교 결과, 상기 제2 오류 코드와 상기 제3 오류 코드가 일치하면, 상기 소프트웨어 데이터를 상기 모바일 단말기에 저장하는 단계, 상기 모바일 단말기에서 상기 모바일 단말기 식별자를 추출하는단계 및 상기 모바일 단말기에서 상기 모바일 단말기 식별자와 상기 제2 오류 코드를 조합하여 제2 인증키를 생성하는 단계, 에 의해 상기 모바일 단말기에 저장될 수 있다.
그리고, 상기 모바일 단말기 식별자는 장치 일련 번호를 사용할 수 있으며, 상기 제1 오류 코드, 상기 제2 오류 코드및 상기 제3 오류 코드는 순환 잉여 검사 방식에 의해 생성된 프레임 체크열을 사용할 수 있다.
또한, 상기 소프트웨어가 개발용 소프트웨어이면, 상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는프레임 체크열 32를 사용할 수 있고, 상기 소프트웨어가 상용 소프트웨어이면, 상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는 프레임 체크열16을 사용할 수 있다.
그리고, 상기 다운로드 파일은 상기 제1 오류 코드에 대한 정보를 포함하는 헤더를 더 포함할 수 있고, 상기 다운로드파일은 제1 보안 레벨 정보를 더 포함할 수 있다.
또한, 상기 다운로드 파일에서 상기 제1 보안 레벨 정보를 추출하는 단계, 상기 다운로드 서버로부터 설치 정보 파일(INF)을 수신하는 단계-여기서, 상기 설치 정보 파일은 제2 보안 레벨 정보를 포함함-, 상기 제1 보안 레벨 정보 및 상기 제2 보안 레벨 정보를 비교하는 단계를 포함하되, 비교 결과, 상기 제1 보안 레벨 정보 및 상기 제2 보안 레벨 정보가 일치지 않으면, 상기 소프트웨어가 상기 모바일 단말기에 저장되지 않는 것이 바람직하다.
본 발명의 다른 실시예에 의할 때, 모바일 단말기와 네트워크를 통하여 결합된 다운로드 서버에서 소프트웨어를 인증하는 방법에 있어서, 상기 모바일 단말기로부터 다운로드 요청 신호를 수신하는 단계-여기서, 상기 다운로드 요청 신호는 상기 모바일 단말기 식별자를 포함함, 상기 모바일 단말기 식별자를 이용하여 상기 모바일 단말기를 식별하는단계-여기서, 상기 모바일 단말기는 사용자용 모바일 단말기 및 개발자용 모바일 단말기를 포함함-, 상기 소프트웨어가 상기 모바일 단말기에게 다운로드가 허용된 소프트웨어인지 여부를 판단하는 단계, 상기 다운로드 요청 신호에 상응하는 소프트웨어 데이터를 추출하는 단계-여기서, 상기 소프트웨어는 상용 소프트웨어 및 개발용 소프트웨어를 포함-, 상기 소프트웨어 데이터에 대한 오류 코드를 상기 모바일 단말기에 상응하여 산출하는 단계, 상기 소프트웨어데이터 및 상기 오류 코드를 포함한 다운로드 파일을 생성하는 단계 및 상기 다운로드 파일을 상기 모바일 단말기로송신하는 단계를 포함하되, 상기 모바일 단말기에서 상기 오류 코드 및 상기 모바일 단말기 식별자를 조합하여 생성된인증키를 이용하여 상기 소프트웨어의 실행을 제어할 수 있다.
또한, 상기 소프트웨어에 상응하는 보안 레벨 정보를 추출하는 단계, 상기 보안 레벨 정보를 더 포함한 다운로드 파일을 생성하는 단계, 상기 보안 레벨 정보를 포함한 설치 정보 파일을 생성하는 단계, 상기 설치 정보 파일을 상기 모바일 단말기로 송신하는 단계를 포함하되, 상기 모바일 단말기에서 상기 설치 정보 파일에 포함된 보안 레벨 정보와 상 다운로드 파일에 포함된 설치 정보 파일을 비교하여 설치 정보 파일의 오류를 판단할 수 있다.
여기서, 상기 보안 레벨 정보는 상기 소프트웨어에 상응하여 상기 모바일 단말기의 리소스를 사용할 수 있는 범위에상응하여 미리 설정되어 있는 것이 바람직하다.
이하, 본 발명에서 사용하는 용어는 다음과 같이 정의하기로 한다.
'모바일 단말기'는 자체 메모리에 소프트웨어 데이터를 저장하여 실행시킬 수 있는 휴대폰, 피시에스(PCS, PersonalCommunications Service ), 피디에이(PDA, Personal Digital Assistant)뿐만 아니라, 향후 개발될 모든 모바일 단말기를 포함한다.
이러한 모바일 단말기는 본 발명의 바람직한 실시예에 의할 때, '사용자용 모바일 단말기'와 '개발자용 모바일 단말기'로 구분된다.
'다운로드 서버'는 모바일 단말기의 요청에 의해 소프트웨어 데이터, 오류 정정 코드, 헤더 등을 포함한 다운로드 파일을 생성하여 모바일 단말기로 전송한다.
'소프트웨어'는 '개발용 소프트웨어'와 '상용 소프트웨어'로 구분되며, 상기 개발용 소프트웨어는 개발자용 모바일 단말기에서만 다운받도록 함으로써, 개발 과정 중에 보안을 유지할 수 있다.
'인증키'는 오류 코드와 모바일 단말기 식별자를 조합하여 생성되며, 상기 인증키를 이용하여 소프트웨어가 무단 복사되더라도 실행되는 것을 방지할 수 있다.
'모바일 단말기 식별자'는 모바일 단말기마다 유일하게 부여되는 식별자로서, 상기 모바일 단말기 식별자를 이용하여모바일 단말기를 식별할 수 있다. 이러한 모바일 단말기 식별자로써, 장치 일련 번호를 사용할 수 있다.
'장치 일련 번호(ESN, Electronic Serial Number)'란, 상기 모바일 단말기에 부여되는 제조 일련번호와는 별개로 모바일 단말기마다 부여되는 번호이다.
제조 회사는 모바일 단말기가 사용되는 국가의 해당 이동 통신 회사에 상기 장치 일련 번호(ESN, Electronic SerialNumber)를 등록시킨다. 이 후, 상기 모바일 단말기를 이동 통신 회사에 등록시키거나 기기 변경을 할 때는 이미 등록된 장치 일련 번호(ESN, Electronic Serial Number)를 이용하여 등록 또는 기기 변경이 이루어진다.
따라서, 상기 장치 일련 번호(ESN, Electronic Serial Number)는 모바일 단말기마다 유일하며 임의로 복사가 어려운특징이 있으므로, 상기 모바일 단말기 식별자로서 장치 일련 번호(ESN, Electronic Serial Number)를 이용하는 것이바람직하다.
'설치 정보 파일(INF, Information)'은 시스템 정보를 담고 있는 파일이다. 프로그램의 설치나 실행시에 상기 설치 정 파일(INF, Information)에 포함된 하드웨어 설치 정보, 특히 하드웨어에 적합한 드라이버 파일을 복사할 수 있도록하 는 정보를 제공한다.
이하, 본 발명에 따른 소프트웨어 인증 방법 및 장치의 바람직한 실시예를 첨부 도면을 참조하여 보다 상세히 설명한다.
그리고, 상기 첨부 도면과 함께 본 발명을 설명함에 있어, 본 발명의 구성 요소는 도면 번호에 관계없이 동일한 도면호를 사용하여 설명하기로 한다.
도 1a는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 시스템의 전체 구성도를 나타낸 도면이다.
도 1a를 참조하면, 본 발명에 따른 소프트웨어 인증 시스템은 다운로드 서버(100) 및 모바일 단말기(130)를 포함하며, 로컬 컴퓨터(140)를 더 포함할 수 있다.
다운로드 서버(100)는 개발 중이거나, 개발이 완료된 상용 소프트웨어 데이터를 네트워크를 통하거나, 상기 다운로드서버(100)에 결합된 로컬 컴퓨터(140)를 통하여 상기 모바일 단말기(130)에 제공할 수 있다.
모바일 단말기(130)는 상기 모바일 단말기(130)에 부여된 고유의 식별자를 가진 단말기(130)이다.
상기 고유의 식별자를 가진 모바일 단말기(130)라면 휴대폰, 피시에스(PCS, Personal Communications Service ),피디에이(PDA, Personal Digital Assistant) 등의 모든 모바일 단말기(130)를 포함할 수 있다.
상기 모바일 단말기(130)는 개발자용 모바일 단말기(130)와 사용자용 모바일 단말기(130)로 구분된다.
개발자용 모바일 단말기(130)는 소프트웨어를 개발하는 사람들이 사용하는 모바일 단말기(130)로서, 개발 중인 소프트웨어의 테스트를 위하여 다운로드 서버(100)에서 상기 소프트웨어를 다운받는다.
그리고, 사용자용 모바일 단말기(130)는 상용 소프트웨어를 다운받아 사용하는 일반 유저의 모바일 단말기로서, 유상또는 무상으로 상기 사용자용 모바일 단말기(130)에 제공될 수 있다.
본 발명에 의할 때, 모바일 단말기(130)가 다운로드 서버(100)에 접속하는 방법은 네트워크를 통하여 접속하는 네트크 접속 방법과 케이블을 통하여 접속하는 시리얼 접속 방법으로 구분될 수 있다.상기 네트워크 접속 방법은 기존의 이동 통신망을 이용하거나, 향후 개발될 통신망을 이용하여, 상기 소프트웨어가패킷 데이터로 나뉘어 전송되는 것을 지칭한다.
반면, 시리얼 접속 방법은 주로 개발자용 모바일 단말기(110)를 이용하여 다운로드 서버(100)에 접속하는 방법으로써, 개발자가 상기 소프트웨어 데이터를 개발할 때 주로 사용되는 접속 방법이다.
상기 시리얼 접속 방법을 이용하여 다운로드 서버(100)에 접속시에는 로컬 컴퓨터(140)를 이용하여 상기 다운로드서버(100)에 접속할 수 있다.
상기 네트워크 접속 방법은 시리얼 접속 방법에 비하여 많은 다운로드 시간이 소요되므로 개발의 효율성을 위하여 개발자용 모바일 단말기(110)는 상기 시리 얼 접속 방법을 이용하여 다운로드 서버(100)에 접속하는 것이 바람직하다.
본 발명에 일 실시예에서는 상기 모바일 단말기(130)를 식별할 수 있는 식별자로써, 장치 일련 번호(ESN, ElectronicSerial Number)를 이용하여 상기 소프트웨어 데이터의 인증을 실행할 수 있다.
상기 소프트웨어 인증 방법은 다운로드받은 소프트웨어가 상기 모바일 단말기(130)에 저장될 때, 상기 소프트웨어 첨부된 오류 코드와 상기 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여 생성한 인증키를 이용함으로써이루어진다.
상기 인증키 생성 방법은 도 5에서 상술하기로 한다.
본 발명에 의한 인증키는 생성 방법이 간단하여, 모바일 단말기(130)의 동작 환경, 즉 제한된 메모리, 제어 장치의 용량 등을 고려할 때, 모바일 단말기(130)에 적합한 소프트웨어 인증 방식이다.
일반 컴퓨터에서의 복잡한 암호화 방식을 통한 인증은 모바일 단말기(130)에 많은 로드를 부여함으로써, 인증시에 많은 시간이 소요되어 모바일 단말기용 소프트웨어 인증에 적합하지 않다.
따라서, 상기 오류 코드와 장치 일련 번호(ESN, Electronic Serial Number)만을 이용한 생성된 인증키를 이용한 인증 방식은 모바일 단말기(130)의 동작 환경에 적합한 인증 방식이다.
더욱이, 상기 인증 방식은 인증 시간을 대폭 절감시킬 수 있을 뿐만 아니라, 모바일 단말기(130)마다 유일한 장치 일련 번호(ESN, Electronic Serial Number)를 이용함으로써 실효성있는 복사 방지 효과를 제공할 수 있다.
도 1b는 본 발명의 바람직한 일 실시예에 따른 다운로드 서버의 기능을 나타낸 블록도이다.
본 발명에 따른 소프트웨어 인증 방법에 대한 설명의 편의를 위하여, 다운로드 서버(100)의 기능 중 일반적인 서버 기능을 생략하고 설명하기로 한다.
도 1b를 참조하면, 다운로드 서버(100)는 보안 레벨 정보 설정부(152), 오류 코드 생성부(154), 다운로드 파일 생성부(156)를 포함하며, 인증부(158) 및 과금부(160)를 더 포함할 수 있다.
보안 레벨 정보 설정부(152)는 다운로드 서버(100)에 업로드되는 소프트웨어마다 상기 소프트웨어에 상응하는 보안레벨 정보를 설정하는 기능을 수행한다.
상기 소프트웨어가 모바일 단말기(130)에서 구동시 모바일 단말기(130)에서 사용 가능한 모바일 단말기(130)의 리소스는 보안 레벨 정보에 따라 정해진다.
상기 보안 레벨 정보에 대한 상세한 설명은 도 3b에서 하기로 한다.
오류 코드 생성부(154)는 다운로드 파일에 포함되는 소프트웨어 데이터에 대한 오류 코드를 생성함으로써, 상기 소프트웨어 데이터를 수신한 모바일 단말기(130)에서 상기 소프트웨어 데이터에 대한 에러 발생 여부를 판단할 수 있는오류 코드를 생성하는 기능을 수행한다.
다운로드 파일 생성부(156)는 소프트웨어 데이터에 헤더, 오류 코드, 보안 레벨 정보를 첨부하여 다운로드 파일을 생성한다.
인증부(158)는 상기 모바일 단말기(130)가 다운로드 서버(100)에 접속시에 상기 모바일 단말기(130)에 대한 인증을수행한다. 일반적으로 상기 모바일 단말기 사용자의 아이디 및 패스워드로 인증을 수행할 수 있음은 당연하며, 모바일단말기 식별자, 즉 장치 일련 번호(ESN, Electronic Serial Number)를 이용하여 식별할 수 도 있다.
과금부(160)는 다운로드 서버(100)에서 상기 다운을 요청하는 소프트웨어 데이터에 대하여 과금 기능을 수행한다.
개발이 완료된 상용 소프트웨어 데이터는 유상으로 배포될 수 있으며, 이러한 경우 각 소프트웨어에 상응하여 과금기능을 수행할 수 있다.
상기 과금은 모바일 단말기의 사용 요금 또는 사용자의 신용 카드 대금 등 다양한 방식으로 청구할 수 있다.
도 1c는 본 발명의 바람직한 일 실시예에 따른 모바일 단말기의 기능을 나타낸 블록도이다.
본 발명에 따른 소프트웨어 인증 방법에 대한 설명의 편의를 위하여, 모바일 단말기의 일반적인 기능을 생략하고 설명하기로 한다.
도 1c를 참조하면, 모바일 단말기(130)는 오류 코드 생성부(170), 보안 레벨 정보 및 오류 코드 비교부(172), 인증키생성부(174) 및 인증키 비교부(176)를 포함한다.
오류 코드 생성부(170)는 오류 코드를 생성하는 기능을 수행하며, 생성 방식 은 다운로드 서버(100)에서 오류 코드를생성하는 방식과 동일하다.
즉, 소프트웨어 데이터에 대한 오류 코드를 생성함으로써, 상기 소프트웨어 데이터를 수신한 모바일 단말기(130)에서에러 발생 여부를 판단할 수 있는 오류 코드를 생성하는 기능을 수행한다.
보안 레벨 정보 및 오류 코드 비교부(172)는 보안 레벨 정보 및 오류 코드를 비교하여 다운로드 파일에 포함된 보안레벨 정보 및 소프트웨어 데이터에 대한 에러 발생 여부를 판단한다.
즉, 소프트웨어 데이터에 대해서는 상기 오류 코드 생성부(170)에서 생성한 오류 코드와 다운로드 서버(100)에서 추출한 오류 코드를 비교하여 에러 발생 여부를 판단할 수 있다.
그리고, 보안 레벨 정보에 대한 에러 발생 여부는 상기 다운로드 파일에 포함된 보안 레벨 정보와 다운로드 파일과 별로도 수신한 설치 정보 파일(INF, Information)에 포함된 보안 레벨 정보를 비교하여 보안 레벨 정보에서의 에러 발생여부를 판단할 수 있다.
인증키 생성부(174)는 다운로드 파일에서 수신한 소프트웨어 데이터를 상기 모바일 단말기(130)에 저장시에 인증키를 생성한다.
상기 인증키는 오류 코드 및 모바일 단말기(130)의 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여 생성될 수 있다.
인증키 비교부(176)는 상기 인증키 생성부(174)에서 생성된 인증키를 이용하여 상기 소프트웨어 데이터의 실행을 제어할 수 있다.
즉, 모바일 단말기(130) 내에 저장된 인증키와 소프트웨어 데이터 실행시마다 생성되는 인증키와의 비교를 통하여 소프트웨어의 실행을 제어할 수 있다.
도 2는 본 발명의 바람직한 일 실시예에 따른 모바일 단말기에서 소프트웨어 데이터를 다운로드하는 절차를 나타낸순서도이다.
현재, 모바일 단말기의 대중화에 힙입어 다양한 모바일 단말기용 소프트웨어가 개발 또는 상용화되고 있다.
따라서, 상기 모바일용 단말기 소프트웨어는 본 발명에 의한 소프트웨어 인증 방식 및 시스템에 의해 무단 복사로부터 보호받을 수 있다.
즉, 본 발명에 의할 때, 상기 모바일 단말기용 소프트웨어 데이터는 상기 서버에서 인증된 모바일 단말기(130)에 한해제공된다. 또한, 인증된 모바일 단말기(130)의 소프트웨어가 타 모바일 단말기(130)에 의해 무단 복사되더라도 인증키에 의해 타 모바일 단말기(130)에서 실행되는 것을 방지할 수 있다.
이하, 도 2를 참조하여 본 발명에 따른 다운로드 서버에서의 소프트웨어의 다운로드 과정을 설명하기로 한다.
단계 200에서 상기 모바일 단말기(130)는 네트워크를 통하여 다운로드 서버(100)에 접속한다.
도 1a에서 상술한 바와 같이, 모바일 단말기(130)가 다운로드 서버(100)에 접속하는 방법은 네트워크를 통하여 접속하는 네트워크 접속 방법과 케이블을 통하여 접속하는 시리얼 접속 방법으로 구분될 수 있다.
이하, 도 2에서는 네트워크 접속 방식을 중심으로 설명하기로 하면, 상기 시리얼 접속 방법에 의한 다운로드 방식은도 7b에서 설명하기로 한다.
단계 205에서 다운로드 서버(100)는 상기 다운로드 서버(100)에 접속한 모바일 단말기(130)의 인증을 수행한다.
상기 다운로드 서버(100)에서의 인증 방식은 일반적으로 상기 모바일 단말기 사용자의 아이디 및 패스워드를 이용하여 이루어질 수 있다.
인증 후, 상기 다운로드 서버(100)에서 원하는 소프트웨어를 검색하고, 단계 210에서 상기 모바일 단말기(130)는 상기 다운로드 서버(100)에 원하는 소프트웨어에 대하여 다운로드 요청 신호를 전송한다.
단계 215에서 상기 다운로드 요청 신호를 수신한 다운로드 서버(100)는 상기 소프트웨어에 대한 소프트웨어 데이터를 추출하고, 상기 소프트웨어 데이터를 포함한 다운로드 파일을 생성한다.
상기 다운로드 파일은 헤더, 소프트웨어 데이터, 보안 레벨 정보 및 오류 코드를 포함할 수 있다.
상기 다운로드 서버(100) 다운로드 파일을 생성한 후, 단계 225에서 상기 다운로드 파일을 모바일 단말기(130)로 송신한다.
단계 230에서 모바일 단말기(130)는 상기 다운로드 파일을 이용하여 상기 소프트웨어 데이터에 저장한다.
상기 저장 과정은 오류 검사 과정, 소프트웨어 데이터 저장 과정 및 인증키 생성 과정으로 구분할 수 있다.
상기 오류 검사 과정은 수신한 다운로드 파일에서 소프트웨어 데이터 및 보안 레벨에 대한 에러 발생 여부를 검사하는 과정이다.
소프트웨어 데이터 저장 과정은 상이 오류 검사 과정에서 에러가 발생되지 않았으면, 상기 소프트웨어 데이터가 모바일 단말기(130)내에 저장되는 과정이다.
인증키 생성 과정은 모바일 단말기(130)에서 오류 코드와 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여 인증키를 생성하는 과정이다.
상기 단계 230의 저장 과정은 도 5에서 상세히 설명하기로 한다.
단계 235에서 모바일 단말기(130)는 상기 모바일 단말기내에 저장된 소프트웨어 데이터를 이용하여 상기 소프트웨어 데이터에 상응하는 소프트웨어를 실행시킬 수 있다.
상기 실행시에, 단계 230에서 생성된 인증키를 이용하여 상기 소프트웨어의 실행을 제어할 수 있다.
상기 단계 230의 실행 과정은 도 6에서 상세히 설명하기로 한다.
도 3a는 본 발명의 바람직한 일 실시예에 따른 다운로드 파일의 데이터 구조를 나타낸 도면이다.
다운로드 서버(100)는 모바일 단말기(130)로부터 다운로드 요청 신호를 수신하면, 상기 다운로드 요청 신호에 상응하는 소프트웨어 데이터를 포함하는 다운로드 파일을 생성하여 상기 모바일 단말기(130)로 전송한다.
도 3a를 참조하면, 다운로드 파일은 헤더(300), 소프트웨어 데이터(320), 보 안 레벨 정보(340), 오류 코드(360)를 포함한다.
본 발명에 의할 때, 헤더(300)는 오류 코드에 대한 정보를 포함하고 있다.
모바일 단말기(130)에서는 상기 헤더에 포함된 오류 코드에 대한 정보를 추출하여, 동일한 방식에 의하여 오류 코드를 생성할 수 있다. 이 후, 상기 오류 코드의 동일성 여부를 검사함으로써, 소프트웨어 데이터에 대한 에러 발생 여부를 판단할 수 있다.
소프트웨어 데이터(300)는 상기 모바일 단말기(130)에서 요청한 소프트웨어에 상응하는 데이터 파일로써, 압축 파일형태로 상기 다운로드 파일에 포함되는 것이 바람직하다.
상기 압축 파일 형태로 포함될 때, 다운로드 서버(100)는 상기 압축 파일 형태에 대하여 오류 코드를 생성하여야 함은당연하다.
보안 레벨 정보(340)는 상기 소프트웨어가 실행시에 모바일 단말기내에서 액세스할 수 있는 리소스에 대한 정보를포함하고 있다.
사용 가능한 모바일 단말기(130)의 리소스는 상기 보안 레벨 정보(340)에 따라 정해지고, 상기 보안 레벨 정보(340)는 소프트웨어 데이터에 마다 설정될 수 있다.
상기 보안 레벨 정보(340)는 도 3b에서 상술하기로 한다.
오류 코드(360)는 상기 소프트웨어 데이터(320)가 전송 과정에서 에러가 발생했는지 여부를 판단할 때 사용된다.
본 발명에 의할 때, 에러 발생 여부를 검출하기 위해 다운로드 서버(100)에 서 전송하고자 하는 다운로드 파일에 오류코드(360)를 첨부한다.
그리고, 상기 다운로드 파일을 수신한 모바일 단말기(130)에서는 상기 오류 코드(360)를 이용하여 소프트웨어 데이터(320)에 대한 에러 발생 여부를 판단할 수 있다.
이하, 상기 오류 코드(360)를 이용한 에러 발생 여부 판단 방법을 상술하면 다음과 같다.
상기 오류 코드(360)를 생성 방법은 패리티 검사와 순환 잉여 검사를 포함한다.
패리티 검사는 한 블록의 데이터 끝에 패리티 비트를 추가하는 것으로서 가장 간단한 에러 검출 기법 중 하나이나, 짝수개의 오류가 발생한 경우에는 오류를 검출할 수 없는 단점이 있다.
따라서, 본 발명에 의할 때, 상기 에러 검출 방법은 순환 잉여 검사 방법을 사용하는 것이 바람직하다.
상기 오류 코드(360)는 순환 잉여도 검사(CRC, Cyclic Redundancy Check)에 의할 때, 프레임 체크열(FCS, Frame Check Sequence)을 사용한다.
본 발명에 의한 모바일 단말기(130)에서 에러 발생 여부의 판단하는 방법은 다음과 같다.
즉, 모바일 단말기(130)에서 다운로드 서버(100)에서와 같이 소프트웨어 데이터에 대해서 프레임 체크열(FCS, Frame Check Sequence)을 생성하고, 다운로드 파일에 포함된 오류 코드와 상기 모바일 단말기(130)에서 생성한 프레임체크열(FCS, Frame Check Sequence)의 동일성을 비교함으로써 에러 발생 여부를 판단할 수 있다.
본 발명에 따른 상기 순환 잉여 검사 방식을 이용할 때, 모바일 단말기(130) 종류에 상응하여 시알시32(CRC32) 및시알시16(CRC16)을 사용할 수 있다.
본 발명의 일 실시예에 따르면, 일반 사용자들이 사용하는 상용 소프트웨어 데이터는 에러 발생 여부 체크시 또는 소프트웨어 인증시에 인증 속도를 높이기 위하여 시알시16(CRC16)을 사용할 수 있고, 개발용 소프트웨어에서는 개발과정의 검증 효과를 높이기 위하여 시알시32(CRC32)를 사용할 수 있다.
본 발명의 다른 실시예에 따르면, 상용 소프트웨어 데이터는 일반적으로 이동 통신망을 통하여 무선으로 전송되므로,유선에 비하여 에러 발생 가능성이 높으므로, 시알시32(CRC32) 방식에 의한 오류 코드를 사용할 수 있다. 반면, 개발용 소프트웨어 데이터는 본 발명에 의할 때, 케이블을 통하여 유선으로 전송되므로, 무선에 비하여 에러 발생 가능성이 낮다. 따라서, 시알시16(CRC16) 방식에 의한 오류 코드를 사용할 수 있다.
본 발명에 의할 때, 상술한 오류 검출뿐만 아니라 오류 정정도 수행할 수 있는 것이 바람직하다.
오류를 정정하는 기법으로서 자동 재전송 방식(ARQ, Automatic Repeat reQuest)을 사용하는 것이 바람직하다. 상기 자동 재전송 방식(ARQ, Automatic Repeat reQuest)은 오류 검출 후에 송신측에게 오류가 발생한 데이터 블럭을다시 전송해 주도록 요청함으로써 에러를 정정하는 방식이다.
상기 자동 재전송 방식(ARQ, Automatic Repeat reQuest)외에 전진 에러 수정 방식(FEC, Forward Error Corretion)은 방식이 있다. 전진 에러 수정 방식(FEC, Forward Error Corretion)은 에러의 검출과 수정을 동시에 수행하는에러제어 기법으로 자동 재전송 방식(ARQ, Automatic Repeat reQuest)에 비해 역채널이 불필요하고 연속적인 데이터 흐름이 가능하다.
그러나, 상기 전진 에러 수정 방식(FEC, Forward Error Corretion)은 에러의 검출과 수정을 동시에 수행하기 위한오버헤드가 크다는 단점이 있어, 모바일 단말기(130)에는 적합하지 않다. 따라서, 본 발명에 의한 오류 정정 방식은자동 재전송 방식(ARQ, Automatic Repeat reQuest)을 사용하는 것이 바람직하다.
또한, 본 발명의 바람직한 일 실시예에 따른 상기 다운로드 파일의 데이터 구조에 있어서, 헤더는 1바이트, 보안 레벨정보는 1바이트, 오류 코드는 4바이트로 구성될 수 있다.
도 3b는 본 발명의 바람직한 일 실시예에 따른 보안 레벨 정보를 나타낸 테이블이다.
보안 레벨 정보(340)는 소프트웨어마다 지정되며, 상기 소프트웨어는 상기 보안 레벨 정보(340)에서 허용되는 범위내에서 상기 모바일 단말기(130)의 리소스를 사용할 수 있다, 상기와 같은 보안 레벨 정보(340)를 이용함으로써, 상기 소프트웨어가 모바일 단말기(130) 내에서 실행될 때, 보안 및 안정성을 유지할 수 있다.
본 발명에 의할 때, 보안 레벨의 단계는 응용 프로그래밍 인터페이스(application programming interface, API) 보안, 디렉토리 보안, 라이브러리 보안 등으로 구분할 수 있으며, 시스템 액세스의 중요도에 따라 더 세분화될 수 있음은당연하다.
응용 프로그래밍 인터페이스(application programming interface, API)는 응용 프로그램이 컴퓨터 운영 체계(OS)나데이터베이스 관리 시스템(DBMS) 등 다른 프로그램의 기능을 이용하기 위한 인터페이스이다.
모바일 단말기(130)의 운영 체제, 파일 또는 라이브러리에 대한 억세스 권한을 설정해둠으로써, 모바일 단말기(130)내에 개인 정보의 보안이나, 실행 시에 상기 소프트웨어 데이터에 의해 모바일 단말기(130)가 다운되는 등의 문제점을 방지할 수 있다.
이하, 도 3b를 참조하여 보안 레벨 정보(340)에 따른 기능을 설명하나, 본 발명이 도 3b에 예시한 보안 레벨 정보(340)의 구분에 한정되는 것은 아니다.
'0 단계'(342)는 가장 많은 모바일 단말기(130)의 리소스를 억세스할 수 있는 단계로써, 장치 일련 번호(ESN, Electronic Serial Number), 채널 할당 등의 사용자의 정보와 관련되어 있거나 모바일 단말기(130) 및 무선망의 안정성과관련된 보안 레벨 정보(340)이다.
'1 단계'(344)는 이동국 식별 번호(MIN, Mobile Identification Number), 모바일 단말기의 현재 상태 등의 정보 등을억세스할 수 있는 보안 레벨 정보(340)이다.
상기 이동국 식별 번호(MIN, Mobile Identification Number)는 모바일 단말기에 할당된 10자리 전화번호를 디지털로 표시하는 34비트의 숫자를 지칭하며, 일반적으로 단말기의 전화 번호를 일컫는다.
그리고, '2 단계'(346)는 전화 걸기, SMS 송신 등이 가능한 보안 레벨 정보(340)이다. '3 단계'(348)는 TCP/IP, UDP,HTTP 등의 무선망 자원을 억세스할 수 있는 보안 레벨 정보(340)이며, '4 단계'(350)는 파일을 제어할 수 있는 보안레벨 정보(340)이다.
'5 단계'(352)는 시리얼 통신을 제어할 수 있는 보안 레벨 정보(340)이고, '6 단계'(354) 이하는 일반적인 보안 레벨정보(340)로서, 모든 개발자의 억세스가 허용되는 보안 레벨 정보(340)이다.
도 4는 본 발명의 바람직한 일 실시예에 따른 다운로드 서버에서의 다운로드 파일 생성 과정을 나타낸 순서도이다.
상기 다운로드 서버(100)에 결합된 데이터베이스에는 개발중인 소프트웨어 데이터 또는 상용 소프트웨어 데이터를저장되어 있다.
소프트웨어 개발자들은 상기 소프트웨어 데이터에 대한 소스코드를 생성한 후, 이를 컴파일하여 다운로드 서버(100)에 업로드한다.
상기 다운로드 서버(100)에 업로드되는 소프트웨어 데이터는 개발 중에 테스트를 위하여 업로드되는 개발용 소프트웨어 데이터 및 개발이 완료된 상용 소프트웨어 데이터를 포함한다.
모바일 단말기(130)에서 상기 다운로드 서버(100)에 다운로드 요청 신호를 전송하면, 상기 다운로드 서버(100)에서는 모바일 단말기(130)에서 요청한 소프트웨어를 포함한 다운로드 파일을 생성하여 상기 모바일 단말기(130)로 전송한다.
이하, 도 4를 참조하여 본 발명에 따른 다운로드 서버(100)에서의 다운로드 파일 생성 절차를 설명하기로 한다.
단계 400에서 다운로드 서버(100)는 모바일 단말기(130)로부터 다운로드 요청 신호를 수신한다. 상기 다운로드 요청신호를 수신한 다운로드 서버(100)는 상기 다운로드 요청 신호에 상응하는 소프트웨어 데이터를 추출한다.
상기 추출된 소프트웨어 데이터는 압축 파일 형태로 존재할 수 있고, 그렇지 않을 수도 있다. 상기 소프트웨어 데이터가 압축 파일 형태로 존재하지 않는다면, 상기 다운로드 서버(100)에서 상기 소프트웨어 데이터를 압축하고, 상기 압축 파일 형태의 소프트웨어 데이터를 다운로드 파일에 삽입할 수 있다.
이렇게 압축 파일 형태로 삽입하는 경우, 오류 코드 또한 상기 압축 파일 형태의 소프트웨어 데이터에 의해 생성해야함은 당연하다.
단계 410에서 다운로드 서버(100)는 모바일 단말기(130)에서 요청한 소프트웨어의 종류를 판단한다.
본 발명에 의할 때, 소프트웨어는 개발용 소프트웨어와 상용 소프트웨어로 구분된다.
상기 개발용 소프트웨어는 개발자용 모바일 단말기에서만 다운받도록 함으로써, 개발 과정 중에 보안을 유지할 수 있다.
상술한 오류 발생 가능성 및 개발의 효율성을 고려할 때, 소프트웨어의 종류에 상응하여 오류 코드를 생성하는 것이바람직하다.
즉, 본 발명에 따른 상기 순환 잉여도 검사 방식(CRC, Cyclic Redundancy Check)을 이용할 때, 상기 오류 코드는 소프트웨어 종류에 상응하여 시알시32(CRC32) 다항식 또는 시알시16(CRC16) 다항식에 의하여 생성될 수 있다.
이하, 시알시32(CRC32) 다항식에 의하여 생성된 오류 코드는 프레임 체크열 32(FCS 32, Frame Check Sequence32)이라 칭하기로 한다.
또한, 시알시16(CRC16) 다항식에 의하여 생성된 오류 코드는 프레임 체크열 16(FCS 16, Frame Check Sequence16)이라 칭하기로 한다.
즉, 상용 소프트웨어는 프레임 체크열 16(FCS 16, Frame Check Sequence 16)을 사용하여 에러 발생 여부를 판단할 수 있고, 개발용 소프트웨어 데이터는 프레임 체크열 32(FCS 32, Frame Check Sequence 32)를 사용하여 에러발생 여부를 판단할 수 있다.
물론, 상기와 반대로 개발용 소프트웨어는 프레임 체크열 16(FCS 16, Frame Check Sequence 16)을 사용하여 에러발생 여부를 판단할 수 있고, 상용 소프트웨어 데이터는 프레임 체크열 32(FCS 32, Frame Check Sequence 32)를사용하여 에러 발생 여부를 판단할 수 있음은 물론이다.
본 발명의 일 실시예에서는, 인증 속도를 높이기 위하여 상용 소프트웨어인 경우는 프레임 체크열 16(FCS 16, Frame Check Sequence 16)을 사용하는 것을 기준으로 설명하기로 한다.
단계 410의 판단 결과, 상기 소프트웨어가 개발용 소프트웨어인 경우에는 단계 415에서 프레임 체크열 32(FCS 32,Frame Check Sequence 32)를 생성한다.
상기 프레임 체크열 32(FCS 32, Frame Check Sequence 32)의 생성 방법은 다음과 같다.
상기 상용 소프트웨어 데이터의 크기가 n 비트라고 가정할 때, 이를 16 비트만큼 자리를 올리고, 미리 설정된 k 비트의 키 값으로 나누면 r 비트의 나머지가 남게 된다.
상기 나머지 r비트가 상기 프레임 체크열 32(FCS 32, Frame Check Sequence 32)이다.
상술한 바와 갈이, 상기 k가 32 비트이며, 0x04c11db7로 미리 설정할 수 있다.
그리고 단계 420에서 오류 코드가 프레임 체크열 32(FCS 32, Frame Check Sequence 32)라는 정보를 포함한 헤더및 보안 레벨을 생성한다.
단계 410의 판단 결과, 상기 소프트웨어 데이터가 상용 소프트웨어 데이터인 경우에는 단계 425에서 프레임 체크열16(FCS 16, Frame Check Sequence 16)을 생성한다.
상용 소프트웨어 데이터는 인증 속도를 높이기 위하여, 프레임 체크열 32(FCS 32, Frame Check Sequence 32)보다는 프레임 체크열 16(FCS 16, Frame Check Sequence 16)을 사용하는 것이 바람직하다.
상기 상용 소프트웨어 데이터의 크기가 n 비트라고 가정할 때, 이를 16 비트 만큼 자리를 올리고, 미리 설정된 k 비트의 키 값으로 나누면 r 비트의 나머지가 남게 된다.
상기 나머지 r비트가 상기 프레임 체크열 16(FCS 16, Frame Check Sequence 16)이다.
상기 k 비트는 16비트이며, 0x8005로 미리 설정할 수 있다.
이하, 단계 425 및 단계 430의 과정은 단계 415 및 단계 420과 유사하므로 생략하기로 한다.
단계 435에서 상기 생성한 헤더, 소프트웨어 데이터, 보안 레벨 정보, 오류 코드를 포함한 다운로드 파일을 생성한다.
그리고, 단계 440에서 생성된 다운로드 파일을 모바일 단말기(130)로 전송한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 프로그램의 저장 과정을 나타낸 순서도이다.
본 발명에 따르면, 모바일 단말기(130)는 본 발명에 따른 소프트웨어를 상기 모바일 단말기(130)에 저장할 때, 상기소프트웨어에 상응하는 인증키를 생성할 수 있다.
이 후, 상기 인증키를 이용하여 상기 소프트웨어의 실행이 제어된다.
본 발명에 의할 때, 모바일 단말기내에 저장된 소프트웨어가 타 모바일 단말기로의 복사가 이루어지는 경우, 상기 인증키에 의해 상기 소프트웨어의 실행이 허용되지 아니한다.
즉, 상기 소프트웨어 데이터에 대한 오류 코드와 장치 일련 번호(ESN, Electronic Serial Number)에 의하여 암호화되어 있으므로, 상기 장치 일련 번호(ESN, Electronic Serial Number)를 가진 모바일 단말기가 아닌 단말기에서는상기 소프트웨어를 실행시킬 수 없다.
이하, 도 5를 참조하여 인증키 생성 과정을 포함한 프로그램 저장 과정을 설명하기로 한다.
단계 500에서 모바일 단말기(130)는 상기 다운로드 파일에서 헤더를 추출한다.
상술한 바와 같이 다운로드 파일은 헤더, 소프트웨어 데이터 및 프레임 체크열(FCS, Frame Check Sequence)을 포함하며, 보안 레벨 정보를 더 포함할 수 있다.
상기 헤더에는 오류 코드에 대한 정보가 포함되어 있다. 즉, 상기 소프트웨어 데이터에 대한 오류 코드, 즉 프레임 체크열(FCS, Frame Check Sequence)이 프레임 체크열(FCS, Frame Check Sequence)16인지 아니면, 프레임 체크열(FCS, Frame Check Sequence)32인지 여부에 대한 정보가 포함되어 있다.
단계 505에서 모바일 단말기(130)는 상기 헤더에 포함된 오류 코드 정보를 이용하여 프레임 체크열(FCS, Frame Check Sequence) 종류를 판별한다.
그리고, 단계 510에서 모바일 단말기(130)는 상기 다운로드 파일에서 프레임 체크열(FCS, Frame Check Sequence)및 보안 레벨 정보를 추출한다.
이후, 단계 515에서 모바일 단말기(130)는 상기 다운로드 파일에서 추출한 보안 레벨 정보를 설치 정보 파일(INF, Information)에서 추출한 보안레벨과 비교 하여 보안 레벨 정보에 대한 에러 발생 여부를 판단한다.
본 발명에 의할 때, 상기 다운로드 서버(100)로부터 다운로드 파일을 수신하는 경우, 상기 다운로드 파일에 상응하는설치 정보 파일(INF, Information)도 수신하는 것이 바람직하다.
상기 설치 정보 파일(INF, Information)에는 다운로드 파일에 포함된 소프트웨어 데이터가 모바일 단말기(130)에 설치될 때 필요한 설치 정보를 포함하고 있을 뿐 아니라, 보안 레벨 정보도 포함되는 것이 바람직하다.
즉, 모바일 단말기(130)는 설치 정보 파일(INF, Information)을 수신한 후, 상기 설치 정보 파일(INF, Information)에포함된 보안 레벨 정보를 추출하고, 상기 보안 레벨 정보와 다운로드 파일에서 추출한 보안 레벨 정보와 비교한다.
비교 결과, 설치 정보 파일(INF, Information)에 포함된 보안 레벨 정보와 다운로드 파일에서 추출한 보안 레벨 정보가 동일하지 않다면, 상기 저장 작업은 중단된다.
그리고 비교 결과, 설치 정보 파일(INF, Information)에 포함된 보안 레벨 정보와 다운로드 파일에서 추출한 보안 레 정보가 동일하면, 단계 520에서 모바일 단말기(130)는 소프트웨어 데이터에 대하여 프레임 체크열(FCS, FrameCheck Sequence)을 산출한다.
본 발명에 의할 때, 헤더 정보에서 추출한 오류 코드 정보에 따라 오류 코드가 프레임 체크열(FCS, Frame Check Sequence)16인 경우에는 시알시16(CRC16) 방식에 의하여 프레임 체크열(FCS, Frame Check Sequence) 16을 산출한다.
그리고, 오류 코드가 프레임 체크열(FCS, Frame Check Sequence)32인 경우에는 시알시32(CRC32) 방식에 의하여프레임 체크열(FCS, Frame Check Sequence)32를 산출한다.
단계 525에서 모바일 단말기(130)는 다운로드 파일에서 추출한 오류 코드, 즉 프레임 체크열(FCS, Frame Check Sequence)과 단계 520에서 산출한 프레임 체크열(FCS, Frame Check Sequence)을 비교한다.
비교 결과, 단계 520에서 산출한 프레임 체크열(FCS, Frame Check Sequence)과 다운로드 파일에서 추출한 프레임체크열(FCS, Frame Check Sequence)이 동일하지 않다면, 상기 저장 작업은 중단된다.
그리고 비교 결과, 단계 520에서 산출한 프레임 체크열(FCS, Frame Check Sequence)과 다운로드 파일에서 추출한프레임 체크열(FCS, Frame Check Sequence) 이 동일하면, 단계 520으로 이동한다.
단계 530에서 모바일 단말기(130)는 다운로드에서 추출한 소프트웨어 데이터를 상기 모바일 단말기(130)에 저장할수 있다.
본 발명에 의할 때, 상기 소프트웨어 데이터는 압축 파일 형태로 다운로드 파일에 포함될 수 있다. 상기 압축 파일 형태의 상기 소프트웨어 데이터는 압축 파일 형태로 모바일 단말기(130)에 저장됨으로써, 모바일 단말기(130)내의 메모리를 효율적으로 사용할 수 있다.
즉, 상기 소프트웨어는 압축 파일 형태로 존재하다가, 상기 모바일 단말기(130)의 실행시에 상기 설치 정보 파일(INF,Information)을 이용하여 모바 일 단말기(130)에서 실행되고, 상기 프로그램이 종료되면 다시 압축 파일 형태로 존재하는 것이 바람직하다.
즉, 일반 컴퓨터에서와 프로그램과 같이 별도의 저장 단계와 실행 단계로 구분되지 않고, 상기 프로그램의 실행시에상기 설치 정보 파일(INF, Information)을 이용하는 것이 바람직하다.
단계 535에서 모바일 단말기(130)는 상기 오류 코드와 모바일 단말기(130)내의 메모리에 저장된 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여 인증키를 생성한다.
상기 조합은 여러 가지 방식으로 수행될 수 있음은 당연하며, 본 발명의 일 실시예에 의할 때, 배타적 논리합에 의해수행될 수 있다.
배타적 논리합(XOR, exclusive or)은 불 연산자(Boolean operator)의 하나로서, 2개의 연산 대상 중 하나가 참이고다른 하나가 거짓일 때에만 연산의 결과가 참이 된다.
그리고, 단계 540에서 상기 배타적 논리합의 결과, 즉 인증키는 모바일 단말기(130)내의 메모리에 저장된다.
본 발명에 의할 때, 메모리에 저장된 상기 인증키는 프로그램 관리자에 의해 수행될 수 있다.
일반적으로 프로그램 관리자는 모바일 단말기(130)에 탑재된 플랫폼 위에서 동작하며, 응용 프로그램을 관리하는 프로그램으로, 현재 거의 모든 모바일 단말기(130)에 동작하고 있다.
상술한 단계 500 내지 단계 540의 단계를 경유하여, 상기 소프트웨어 데이터는 모바일 단말기(130)에 저장된다.
도 6은 본 발명의 바람직한 일 실시예에 따른 모바일 단말기에서의 소프트웨어 실행 과정을 나타낸 도면이다.
본 발명에 의할 때, 상기 소프트웨어 데이터가 무단 복사되더라도 도 5의 저장 단계에서 생성된 인증키를 이용하여상기 소프트웨어 데이터의 실행을 제어할 수 있다.
이하, 도 6을 참조하여 인증키를 이용한 소프트웨어의 실행 제어 방법을 설명하기로 한다.
단계 600에서 모바일 단말기(130)는 상기 모바일 단말기(130)에 결합된 입력부를 통하여 소프트웨어 데이터의 실행명령을 입력받는다.
단계 605에서 모바일 단말기(130)는 상기 소프트웨어 데이터에 대한 오류 코드, 즉 프레임 체크열(FCS, Frame Check Sequence)을 산출한다.
본 발명에 의할 때, 상기 소프트웨어 데이터는 압축 파일 형태도 모바일 단말기(130)내의 메모리에 저장되어 있다.그리고 단계 610에서 모바일 단말기(130)는 상기 모바일 단말기(130)에 결합된 메모리에서 장치 일련 번호(ESN, Electronic Serial Number)를 추출한다.단계 615에서 모바일 단말기(130)는 상기 오류 코드와 모바일 단말기(130)내의 메모리에 저장된 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여 인증키를 생성한다.상기 조합은 여러 가지 방식으로 수행될 수 있음은 당연하며, 본 발명의 일 실시예에 의할 때, 배타적 논리합에 의해수행될 수 있다. 즉, 도 5의 단계 535에서와 동일한 조합을 이용하여 인증키를 생성하는 것이 바람직하다.단계 620에서 모바일 단말기(130)는 단계 615에서 생성한 인증키와 모바일 단말기(130) 내에 미리 저장된 인증키,즉 도 5의 단계 540에서 모바일 단말기의 메모리에 저장된 인증키와 비교한다.
비교 결과, 말기는 단계 615에서 생성한 인증키와 모바일 단말기(130) 내에 미리 저장된 인증키, 즉 도 5의 단계 540에서 저장된 인증키가 동일하지 않다면, 상기 소프트웨어의 실행은 금지된다.
그리고 비교 결과, 말기는 단계 615에서 생성한 인증키와 모바일 단말기(130) 내에 미리 저장된 인증키, 즉 도 5의 단계 540에서 저장된 인증키가 동일하다면, 단계 625에서 모바일 단말기(130)는 상기 소프트웨어를 시행시킬 수 있다.
상기 소프트웨어가 실행될 때, 설치 정보 파일(INF, Information)을 이용하여 실행될 수 있다.
도 7a 및 도 7b는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 방법을 나타낸 순서도이다.
개발자들에 의해 개발 중이거나 개발 완료된 모바일용 소프트웨어 데이터는 다운로드 서버(100)에서 모바일 단말기(130)로 제공된다.
상기와 같이 다운로드 서버(100)에 올려진 소프트웨어 데이터는 네트워크를 통하여 모바일 단말기(130)로 전송되거나, 시리얼 방식으로 전송된다.
도 6은 인증된 모바일 단말기(130)에 전송된 소프트웨어 데이터의 무단 복사를 방지할 수 있는 방법을 나타낸 반면,
도 7a 내지 도 7c는 다운로드 서버(100)에서의 무단 복사를 방지할 수 있는 방법을 나타낸 도면이다.
본 발명에 의할 때, 사용자가 인증되지 않은 방법으로 프로그램을 사용하는 경우는 다음과 같다.
즉, 사용자용 모바일 단말기(120)에서 네트워크 접속 방식을 통하여 개발용 소프트웨어 데이터를 다운받은 경우(도 7a 참조) 및 사용자용 모바일 단말기(120)에서 시리얼 접속 방식을 이용하여 소프트웨어 데이터를 다운받은 경우(도 7b 참조) 등이 있다.
도 7a는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 방법을 나타낸 순서도이다.
본 발명에 의할 때, 개발 중인 소프트웨어도 상기 다운로드 서버(100)에 업로드 및 다운로드되어 상기 소프트웨어에대한 테스트 과정을 거친다.
이러한 경우, 개발 중인 소프트웨어 데이터가 일반 사용자용 모바일 단말기(120)에 무단 복사되는 것을 방지함으로써, 개발 중인 소프트웨어 데이터에 대한 정보가 외부로 유출되는 것을 방지할 수 있다.
이하, 도 7a를 참조하여 본 발명의 일 실시예에 따른 소프트웨어 인증 방법을 설명하기로 한다.
단계 700에서 다운로드 서버(100)는 상기 다운로드 서버(100)에 접속한 모바일 단말기(130)로부터 다운로드 요청신호를 수신한다.
단계 705에서 다운로드 서버(100)는 상기 모바일 단말기(130)가 개발자용 모바일 단말기(110)인지 여부를 판단한다.
본 발명에 따른 개발자용 모바일 단말기(110)의 판단 방법의 일 실시예에는 다음과 같다.
상기 다운로드 서버(100)에 접속시 아이디와 패스워드를 이용하여 인증 절차를 경유하는 경우는, 개발자에 대한 정보를 미리 상기 다운로드 서버에 저장함으로써, 상기 개발자만이 개발용 소프트웨어를 다운받을 수 있도록 허용할 수있다.
즉, 식별자로서 개발자의 아이디와 패스워드를 이용하여 판단할 수 있다.
본 발명에 따른 개발자용 모바일 단말기(110)의 판단 방법의 다른 실시예에서는, 식별자로서 개발자용 모발일 단말기(110)의 장치 일련 번호(ESN, Electronic Serial Number)를 이용할 수 있다.
이러한 경우, 개발자가 변경되더라도 동일한 개발자용 모바일 단말기(110)라면 다운로드 서버(100)의 데이터베이스의 갱신없이 소프트웨어를 다운로드받을 수 있다.
단계 710에서의 판단 결과, 다운로드 서버(100)는 개발자용 모바일 단말기(110)가 아닌 경우에는 다운로드 서버(100)에서 접속을 종료하거나 다운로드 요청을 거부하는 메시지를 송신할 수 있다.
그리고 단계 710의 판단 결과, 개발자용 모바일 단말기(110)인 경우에는 다운로드 서버(100)는 단계 710에서 해당소프트웨어 데이터를 추출하고, 단계 715에서 상기 추출한 소프트웨어 데이터를 포함한 다운로드 파일을 생성한다.
이후, 단계 720에서 다운로드 서버(100)는 생성된 다운로드 파일을 모바일 단말기(130)로 전송한다.
상기 단계 710 내지 단계 720의 과정은 도 4의 단계 415 내지 440에서 상술하였으므로 생략하기로 한다.
도 7b는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 데이터 복사 방지 방법을 나타낸 순서도이다.
본 발명에 의할 때, 개발자용 모바일 단말기(110)는 이동 통신망을 이용하여 다운로드 파일을 수신하는 것보다는 로컬 컴퓨터(140)를 통하여 다운로드 서버(100)에서 시리얼 통신을 통하여 다운받는 것이 효율적이다.
상기 소프트웨어 데이터 개발 과정에서 빈번한 소프트웨어 데이터의 다운로드가 발생하므로, 에러 발생 가능성이 낮고 수신 속도가 뛰어난 시리얼 통신 방식을 이용함으로써 개발 과정에서 효율성을 높일 수 있다.
따라서, 상기 시리얼 통신을 이용한 다운로드 파일 수신은 개발자용 모바일 단말기(110)에 한정함으로써, 개발 과정중에 개발중인 소프트웨어 데이터에 대한 보안의 실효성을 높일 수 있다.
이하, 도 7b를 참조하여 시리얼 통신을 통한 다운로드 과정을 설명하기로 한다.
현재, 모바일 단말기(130)와 로컬 컴퓨터(140)는 케이블을 통하여 연결된 상태이며, 상기 로컬 컴퓨터(140)는 다운로드 서버(100)에 접속해 있다고 전제하고 설명하기로 한다.
단계 750에서 로컬 컴퓨터(140)는 모바일 단말기(130)에서 장치 일련 번호(ESN, Electronic Serial Number)를 추출한다.
그리고, 단계 750에서 로컬 컴퓨터(140)는 상기 장치 일련 번호(ESN, Electronic Serial Number)를 이용하여 상기모바일 단말기(130)가 개발자용 모바일 단말기(110)인지 여부를 판단한다.
여기서, 상기 개발자용 모바일 단말기(110)의 장치 일련 번호(ESN, Electronic Serial Number)는 미리 상기 로컬 컴퓨터(140)내의 저장 장치에 저장되어 있다.
단계 755에서의 판단 결과, 개발자용 모바일 단말기(110)가 아닌 경우 로컬 컴퓨터(140)는 다운로드 요청을 거부하는 메시지를 상기 로컬 컴퓨터(140)의 디스플레이 장치에서 디스플레이할 수 있다.
그리고 단계 755의 판단 결과, 개발자용 모바일 단말기(110)인 경우 로컬 컴퓨터(140)는 단계 760에서 다운로드 서버(100)에 다운로드 요청 신호를 송신한다.
단계 765에서 다운로드 서버(100)는 해당 소프트웨어 데이터를 추출하고, 단 계 770에서 상기 추출한 소프트웨어 데이터를 포함한 다운로드 파일을 생성한다. 이후, 단계 785에서 생성된 다운로드 파일을 로컬 컴퓨터(140)로 전송한다.
상기 단계 765 내지 단계 770의 과정은 도 4의 단계 415 내지 440에서 상술하였으므로 생략하기로 한다.
단계 790에서 로컬 컴퓨터(140)는 수신한 다운로드 파일을 상기 모바일 단말기(130)로 송신한다.상술한 단계를 거쳐, 개발자용 모바일 단말기(110)에만 개발용 소프트웨어 데이터를 송신함으로써, 무단 복사를 방지
할 수 있다.
발명의 효과
본 발명은 무선 모바일 단말기용 소프트웨어를 인증함으로써 상기 무선 모바일 단말기용 소프트웨어의 무단 복사 및실행을 방지할 수 있는 효과가 있다.
또한, 본 발명은 무선 모바일 단말기용 소프트웨어의 무단 복사를 방지함으로써, 상기 무선 모바일 단말기용 소프트웨어를 개발한 개발자 또는 개발사의 저작권을 실질적으로 보호할 수 있는 효과도 있다.
또한, 본 발명의 다른 목적은 모바일 단말기의 특성에 적합한 모바일 단말기용 소프트웨어를 인증할 수 있는 효과도있다.
또한, 본 발명의 또 다른 목적은 개발 중인 모바일 단말기용 소프트웨어의 복사를 방지할 수 있는 효과도 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
(57) 청구의 범위
청구항 1.
모바일 단말기에서 소프트웨어를 인증하는 방법에 있어서,
(a)상기 모바일 단말기에 설치된 소프트웨어에 대한 실행 명령을 상기 모바일 단말기에 포함된 입력부로부터 입력하는 단계;
(b)상기 소프트웨어에 대하여 제1 오류 코드를 생성하는 단계;
(c)상기 모바일 단말기 식별자를 추출하는 단계;
(d)상기 모바일 단말기 식별자와 상기 제1 오류 코드를 조합하여 제1 인증키를 생성하는 단계;
(e)상기 제1 인증키가 상기 모바일 단말기내에 미리 저장된 제2 인증키와 일치하면, 상기 소프트웨어를 실행하는 단계를 포함하는 것을 특징으로 하는 소프트웨어 인증 방법.
청구항 2.
제1항에 있어서,
상기 모바일 단말기에 결합된 다운로드 서버로부터 다운로드 파일을 수신하는 단계-여기서, 상기 다운로드 파일은소프트웨어 데이터 및 제2 오류 코드를 포함함-;
상기 모바일 단말기에서 상기 소프트웨어 데이터에 대하여 제3 오류 코드를 생성하는 단계;
상기 제2 오류 코드가 상기 제3 오류 코드에 일치하면, 상기 소프트웨어 데이터를 상기 모바일 단말기에 저장하는 단계;
상기 모바일 단말기에서 상기 모바일 단말기 식별자를 추출하는 단계; 및
상기 모바일 단말기에서 상기 모바일 단말기 식별자와 상기 제2 오류 코드를 조합하여 상기 제2 인증키를 생성하는단계;가 더 포함되는 것을 특징으로 하는 소프트웨어 인증 방법.
청구항 3.
제1항 또는 제2항에 있어서,상기 모바일 단말기 식별자는 장치 일련 번호인 것을 특징으로 하는 소프트웨어 인증 방법.
청구항 4.
제1 또는 제2항에 있어서,상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는순환 잉여 검사 방식에 의해 생성된 프레임 체크열인 것을 특징으로 하는 소프트웨어 인증 방법.
청구항 5.
제4항에 있어서,상기 소프트웨어가 개발용 소프트웨어이면,상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는 프레임 체크열 32인 것을 특징으로 하는 소프트웨어 인증 방법.
청구항 6.
제4항에 있어서,상기 소프트웨어가 상용 소프트웨어이면,상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는 프레임 체크열16인 것을 특징으로 하는 소프트웨어 인증 방법.
청구항 7.
제2항에 있어서,상기 다운로드 파일은 상기 제1 오류 코드에 대한 정보를 포함하는 헤더를 더 포함하는 것을 특징으로 하는 소프트웨어 인증 방법.
청구항 8.
제2항에 있어서,상기 다운로드 파일은 보안 레벨 정보를 더 포함하는 것을 특징으로 하는 소프트웨어 인증 방법.
청구항 9.
제8항에 있어서,상기 보안 레벨 정보는 제1 보안 레벨 정보 및 제2 보안 레벨 정보를 포함

등록된 상품문의

  • 상품문의가 없습니다.

등록된 사용후기

  • 사용후기가 없습니다.