KR101590188B1 - 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법 - Google Patents

휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법 Download PDF

Info

Publication number
KR101590188B1
KR101590188B1 KR1020090040405A KR20090040405A KR101590188B1 KR 101590188 B1 KR101590188 B1 KR 101590188B1 KR 1020090040405 A KR1020090040405 A KR 1020090040405A KR 20090040405 A KR20090040405 A KR 20090040405A KR 101590188 B1 KR101590188 B1 KR 101590188B1
Authority
KR
South Korea
Prior art keywords
software package
integrity
verification information
information
integrity verification
Prior art date
Application number
KR1020090040405A
Other languages
English (en)
Other versions
KR20100121313A (ko
Inventor
티무르 코키시코
이경희
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020090040405A priority Critical patent/KR101590188B1/ko
Priority to US12/761,874 priority patent/US9832651B2/en
Priority to CN201010180019.0A priority patent/CN101883360B/zh
Publication of KR20100121313A publication Critical patent/KR20100121313A/ko
Application granted granted Critical
Publication of KR101590188B1 publication Critical patent/KR101590188B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법에 있어서, 배포부로부터 유무선 통신을 통해 사용 가능한 소프트웨어 패키지의 목록을 수신하여 표시하는 과정과, 상기 표시된 소프트웨어 패키지의 목록 중에서 설치하고자 하는 소프트웨어 패키지가 선택되면, 대응되는 소프트웨어 패키지의 ID를 상기 소프트웨어 패키지의 목록으로부터 획득하는 과정과, 상기 소프트웨어 패키지의 ID를 상기 배포부로 전송하여 상기 소프트웨어 패키지의 ID에 대응되는 소프트웨어 패키지를 수신하고, 상기 소프트웨어 패키지의 ID를 검증기관에 전송하는 과정과, 상기 검증기관으로부터 상기 소프트웨어 패키지 ID에 대응되는 무결성 입증 정보를 수신하여 선택된 소프트웨어 패키지의 무결성을 검증하는 과정과, 상기 검증 결과를 통보하여 사용자의 선택에 따라 상기 선택된 소프트웨어 패키지를 관리하는 과정을 포함한다.
Figure R1020090040405
휴대단말기, 소프트웨어 패키지, 무결성 입증 정보

Description

휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법{METHOD FOR VERIFICATION OF SOFTWARE PACKAGE INTEGRITY IN A MOBILE TERMINAL}
본 발명은 컴퓨터 보안에 관한 것으로 휴대단말기의 실행 환경을 안전하게 보호하는 것에 관한 것이다. 보다 상세하게는, 본 발명은 소프트웨어 패키지의 무결성을 검증하는 컴퓨터 보안 기술을 기반으로 하여 소프트웨어 패키지들의 잠재적인 손상으로부터 휴대단말기의 실행 환경을 보호하는 것에 관한 것이다.
소프트웨어 패키지의 무결성(integrity)의 확인과 관련된 배경 기술은 디지털 인증 기술을 기반으로 하고 있다. 이러한 배경 기술에는 미국 등록 특허(US 6157721) "암호기법을 이용하여 컴퓨팅 환경을 안전하게 보호할 수 있는 시스템 및 방법"에 기술되어 있다. 상기 미국 특허에 의하면, 하나 이상의 신뢰성 있는 검증 기관이 소프트웨어 패키지에 대한 분석 또는 테스트를 통해 소프트웨어 패키지를 검증한다. 또한, 신뢰성 있는 검증 기관은 소프트웨어 패키지가 인증되었음을 디지털 서명하고 인증한다. 이후, 휴대단말기의 실행 환경은 검증 기관의 서명을 검증하고, 검증이 성공하면 휴대단말기의 실행환경은 소프트웨어 패키지의 실행 및 조작을 수용하고, 검증이 성공되지 않으면 소프트웨어 패키지를 거부한다.
디지털 서명의 기술은 공개키(public key)를 이용한 암호방식에 기반한다. 신뢰성 있는 검증 기관은 공개키와 개인키(private key)와 같은 두 개의 키를 구비하는데, 개인키는 패키지의 해시값(hash value)을 을 암호화하는데 사용되며, 공개키는 휴대단말기의 실행 환경에 배포된다. 이 때, 암호화된 해시값 패키지의 인증이라고 명명된다. 휴대단말기의 실행 환경은 소프트웨어 패키지를 수신하고, 검증기관으로부터 수신한 공개키를 이용하여 수신한 소프트웨어 패키지의 서명에 대한 암호를 해독하고, 소프트웨어 패키지의 본래 해시값을 획득한다. 이후, 휴대단말기의 실행 환경은 소프트웨어 패키지의 현재 해시값을 계산하고, 계산된 소프트웨어 패키지의 현재의 해시값과 본래의 해시값을 비교한다. 계산된 소프트웨어 패키지의 현재의 해시값과 본래의 해시값이 일치하면 서명 인증 과정은 성공된 것으로 간주되고, 일치되지 않으면 실패된 것으로 간주된다. 이러한 휴대단말기의 실행 환경에 의한 디지털 서명의 인증을 통해 변경되지 않은 본래의 소프트웨어 패키지임을 확인할 수 있다.
그러나, 상기 미국 특허에 의한 방법은 검증기관의 공개키 배포와 검증을 위한 복잡한 공개 키의 구조를 필요로 한다. 또한, 공개키의 암호에 기반한 디지털 서명의 인증은 복잡한 모듈러(modular) 연산을 필요로 하기 때문에, 소프트웨어 패키지를 처리하는데 연산 회수가 증가되고 시간이 지연되는 문제점이 있다. 따라서, 따라서, 상기 미국 특허에 의한 방법은 휴대단말기와 같은 실행 환경에 적용하기에 적합하지 않은 문제점이 있다.
따라서, 본 발명은 복잡한 공개키 구조와 모듈러 연산 없이 소프트웨어 패키지의 무결성을 검증함으로써, 메모리와 같은 저장공간의 필요 용량을 최소화하고 소프트웨어 패키지의 무결성을 검증하는데 따른 지연 시간을 최소화할 수 있는 소프트웨어 패키지의 무결성 검증 방법을 제공한다.
본 발명은 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법으로, 배포부로부터 유무선 통신을 통해 사용 가능한 소프트웨어 패키지의 목록을 수신하여 표시하는 과정과, 상기 표시된 소프트웨어 패키지의 목록 중에서 설치하고자 하는 소프트웨어 패키지가 선택되면, 대응되는 소프트웨어 패키지의 ID를 상기 소프트웨어 패키지의 목록으로부터 획득하는 과정과, 상기 소프트웨어 패키지의 ID를 상기 배포부로 전송하여 상기 소프트웨어 패키지의 ID에 대응되는 소프트웨어 패키지를 수신하고, 상기 소프트웨어 패키지의 ID를 검증기관에 전송하는 과정과, 상기 검증기관으로부터 상기 소프트웨어 패키지 ID에 대응되는 무결성 입증 정보를 수신하여 선택된 소프트웨어 패키지의 무결성을 검증하는 과정과, 상기 검증 결과를 통보하여 사용자의 선택에 따라 상기 선택된 소프트웨어 패키지를 관리하는 과정을 포함한다.
본 발명은 복잡한 공개키 구조를 필요로 하지 않으며 모듈러 연산없이도 소 프트웨어 패키지의 무결성을 검증함으로써, 소프트웨어 패키지의 무결성 검증에 필요한 연산의 회수를 감소시키고 소요되는 시간을 최소화하는 효과가 있다.
이하 본 발명의 실시 예를 첨부한 도면을 참조하여 상세히 설명하도록 한다.
도 1은 소프트웨어 패키지에 대한 개략적인 블록도로서, 도 1을 참조하여 소프트웨어 패키지에 대해 살펴보면 다음과 같다.
도 1을 참조하면, 소프트웨어 패키지(Software Package)는 실행 환경(execution environment로서 하드웨어 또는 소프트웨어적 구성이 될 수 있음)에 설치될 어플리케이션(application)과 연관된 파일들의 그룹(group)이다.
소프트웨어 패키지는 실행 파일들(executable files), 데이터 파일들(data files), 설정 파일들(configuration files) 및 도움말 파일과 같은 기타 파일(other files, 예를 들어 도움말 파일) 등이 포함되어 그룹화된 패키지이다. 소프트웨어 패키지는 공지된 방법에 의해 상기 파일들을 그룹화하여 구성될 수 있는데, 예를 들어 GNU ZIP 또는 TAR와 같이 공개된 압축 소프트웨어를 통해 압축되어 그룹화될 수 있다.
도 2는 본 발명의 실시 예에 따라 소프트웨어 패키지의 무결성을 검증하는 시스템의 블록도이다.
도 2를 참조하면, 본 발명의 실시 예에 따른 휴대단말기(22)는 사용자의 요청에 따라 소프트웨어 패키지의 포맷을 감지한 후에 소프트웨어 패키지로부터 사용 자에 의해 사용될 파일들을 설치한다. 본 발명의 실시 예에서, 휴대단말기(22)는 휴대용 컴퓨터 또는 휴대용 전화기와 같은 휴대용 전자기기를 의미하나 이에 한정되는 것은 아니다.
또한, 본 발명의 실시 예에 따른 휴대단말기(22)는 검증기관(24) 및 배포부(23)와 유선 또는 무선의 통신을 수행할 수 있으며, 유무선 통신을 통해 획득된 소프트웨어 패키지를 소비(예를 들어, 사용)하고, 검증기관(24)으로부터 수신되는 소프트웨어 패키지의 정보를 통해 소프트웨어 패키지의 무결성을 검증한다.
본 발명의 실시 예에 따른 휴대단말기(22)는 소프트웨어 패키지의 무결성에 대한 검증이 성공적으로 완료되면 소프트웨어 패키지를 설치할 수 있다. 소프트웨어 패키지의 무결성에 대한 검증이 실패하면, 본 발명의 실시 예에 따른 휴대단말기(22)는 소프트웨어 패키지의 설치를 거부하고, 검증이 실패된 소프트웨어 패키지에 대한 사용자의 대응을 요청할 수 있다.
개발자(25)는 소프트웨어 패키지의 개발자(developer)로서 휴대단말기(22)에서 실행될 소프트웨어 패키지를 제공한다. 개발자(25)는 개발도구를 이용하여 실행 파일들을 포함하는 파일들을 생성하고, 생성된 파일들을 통해(예를 들어, 그룹화하여) 휴대단말기에서 실행될 소프트웨어 패키지를 구성한다.
검증기관(24)은 휴대단말기 및 사용자에 의해 신뢰받는 검증기관으로서, 본 발명의 실시 예에 따른 검증기관(24)은 소프트웨어 패키지가 소프트웨어 패키지의 스펙(specification)을 준수하여 동작하는지를 확인(또는 검증)한다. 소프트웨어 패키지의 스펙은 소프트웨어 기능에 대한 설명, 시스템 자원으로의 접근 권한 등에 관한 정보를 포함할 수 있다. 이 때, 소프트웨어 패키지가 스펙에 따라 동작하는지에 대한 확인은 소프트웨어 소스 코드를 검사하거나 소프트웨어를 실행하여 테스트하는 등의 방법에 의해 수행될 수 있다.
본 발명의 실시 예에 따른 검증기관(24)은 소프트웨어 패키지에 포함된 소프트웨어가 성공적으로 테스트되면, 소프트웨어 패키지의 무결성 입증 정보(integrity evidence information, 소프트웨어 패키지가 무결함을 인증하는 정보)를 등록하고 저장한다.
배포부(23)는  사용자(21)들에 의해 사용될 소프트웨어 패키지를 개발자(25)로부터 획득한다. 본 발명의 실시 예에 따른 배포부(23)는 배포 가능한 소프트웨어 패키지의 카탈로그(catalog, 목록)를 보유할 수 있는데, 카탈로그는 소프트웨어 패키지 및 소프트웨어 패키지의 정보를 포함한다. 소프트웨어 패키지의 정보는 소프트웨어 패키지의 ID(고유 식별자) 및 상세정보(description)를 포함할 수 있다. 또한, 본 발명의 실시 예에 따른 배포부(23)는 휴대단말기(22)와의 통신을 통해 소프트웨어 패키지 및 소프트웨어 패키지의 정보를 휴대단말기(22)로 송신할 수 있다.
 
도 3은 본 발명의 실시 예에 따라 소프트웨어 패키지의 무결성을 검증하는 방법에 대한 제1흐름도이며, 도 4는 검증기관(24)의 데이터베이스에 저장되는 소프트웨어 패키지 및 관련 데이터들에 대한 예시도이다. 도 3 내지 도 4를 참조하여, 소프트웨어 패키지의 무결성을 검증하는 과정에 대해 살펴보면 다음과 같다.
도 3을 참조하면, 개발자(25)는 소프트웨어 패키지의 개발이 완료되면 소프 트웨어 패키지, 소프트웨어 패키지 정보 및 소프트웨어 패키지의 스펙을 검증기관(24)으로 전송한다(S301).
소프트웨어 패키지 정보는 소프트웨어 패키지의 세부 정보, 소프트웨어 패키지의 설치 방법 및 기타 정보 등을 포함하는 정보이다. 소프트웨어 패키지의 스펙은 소프트웨어의 기능, 소프트웨어의 작동(behavior), 소프트웨어가 접근 가능한 시스템 자원 및 소프트웨어가 사용되는 방법 등에 대한 정보를 포함할 수 있다.
검증기관(24)은 수신한 소프트웨어 패키지의 스펙을 이용하여 소프트웨어 패키지가 소프트웨어 패키지의 스펙을 준수하는지 검증한다(S302).
본 발명의 실시 예에 따른 검증기관(24)은 소프트웨어 패키지의 코드를 분석하거나, 소프트웨어 패키지의 기능을 시뮬레이션하거나, 자원(예를 들어, 시스템 자원)의 사용량을 분석하는 등의 방법을 사용하여 소프트웨어 패키지가 소프트웨어 패키지의 스펙을 준수하는지 검증한다.
소프트웨어 패키지에 포함된 소프트웨어가 스펙을 준수한다면, 검증기관은 소프트웨어 패키지의 식별을 위한 소프트웨어 패키지 ID를 생성하고(S303), 소프트웨어 패키지의 무결성 입증 정보(package integrity evidence)를 생성한다(S304).
소프트웨어 패키지의 ID 는 개발자의 이름, 소프트웨어 패키지의 이름, 소프트웨어 패키지의 크기, 소프트웨어 패키지의 버전, 검증 날짜 및 검증기관의 이름 등 중에서 적어도 어느 하나를 포함하는 문자열(string)이 될 수 있다.
검증기관(24)은 소프트웨어 패키지의 무결성 입증 정보를 생성함으로써, 소프트웨어 패키지에 포함된 소프트웨어가 스펙에 따라 성공적으로 테스트되었음을 휴대단말기(22)가 확인할 수 있도록 하거나, 인증되지 않은 방법으로 소프트웨어가 변경되었는지를 확인할 수 있도록 한다. 즉, 소프트웨어 패키지의 무결성 입증 정보가 생성되면 해당 소프트웨어 패키지는 스펙을 준수하여 동작하는 것으로 확인되는 것이고, 소프트웨어 패키지의 무결성 입증 정보가 생성되지 않으면 해당 소프트웨어 패키지는 스펙을 준수하지 못하는 것으로 확인될 수 있다.
소프트웨어 패키지의 무결성 입증 정보의 예로는 소프트웨어 패키지에 연속적으로 실행된 암호화된 해시함수(hash function, 요약함수)의 해시값, 소프트웨어 패키지의 ID, 소프트웨어 패키지의 정보 및 검증 기관의 ID 등을 열거할 수 있다. 암호화된 해시함수의 예로는 SHA-1, SHA-224, SHA-256, SHA-384 및 SHA-512 등을 들 수 있는데, SHA(Secure Hash Algorithm)함수들은 서로 관련된 암호화된 해시함수들의 모음이다. 이 때, SHA-224, SHA-256, SHA-384 및 SHA-512는 SHA-1의 변형으로서, SHA-2로 통칭한다.
이후, 검증기관(24)은 소프트웨어 패키지를 데이터베이스에 등록하고(S305), 소프트웨어 패키지 ID 및 소프트웨어 패키지의 무결성 입증 정보를 개발자에게 송신하다(S306).
도 4를 참조하면, 검증기관(24)의 데이터베이스(data base, 미도시)는 소프트웨어 패키지, 소프트웨어 패키지의 ID, 소프트웨어 패키지의 정보, 검증기관의 ID 및 소프트웨어 패키지의 무결성 입증 정보를 포함할 수 있다. 이 때, 소프트웨어 패키지에 포함된 소프트웨어가 소프트웨어 패키지의 스펙을 준수하지 못할 경 우, 검증기관(24)은 소프트웨어 패키지의 ID와 소프트웨어 패키지의 무결성 입증 정보를 생성하거나 소프트웨어 패키지를 등록하는 것을 거부할 수 있다.
소프트웨어 패키지의 ID 및 소프트웨어 패키지의 무결성 입증 정보가 수신되면, 개발자(25)는 배포부(23)가 추후에 휴대단말기(22) 측으로 소프트웨어 패키지를 제공할 수 있도록 소프트웨어 패키지, 소프트웨어 패키지의 ID 및 소프트웨어 패키지의 정보를 배포부(23)에 제공하고(S307), 배포부(23)은 이를 저장한다(S308).
이 때, 개발자(25)는 배포부(23)로 소프트웨어 패키지만을 전송할 수 도 있고, 소프트웨어 패키지와 소프트웨어 패키지의 ID 및 소프트웨어 패키지의 정보를 함께 전송할 수도 있다. 또한, 개발자(25)는 S306단계에서 수신한 소프트웨어 패키지의 무결성 입증 정보도 배포부(23)에 제공할 수 있으며, 배포부(23)은 무결성 입증 정보를 저장할 수 있다.
도 3을 통한 실시 예에서는 S307단계와 같이 개발자((25)가 소프트웨어 패키지 ID, 소프트웨어 패키지 및 소프트웨어 패키지 정보를 배포부(23)로 송신하는 것으로 가정하였으나, 실시 예의 변형에 따라 검증기관(24)이 S305 단계 이후에 배포부(23)로 직접 송신할 수도 있다.
도 5는 본 발명의 실시 예에 따라 소프트웨어 패키지의 무결성을 검증하는 방법에 대한 제2흐름도이다.
도 5를 참조하면, 사용자(21)가 설치하고자 하는 소프트웨어 패키지의 목록을 휴대단말기로 요청하면(S501), 휴대단말기(22)는 통신을 통해 배포부(23)로 사용 가능한 소프트웨어 패키지의 목록을 요청한다(S502).
배포부(23)는 사용 가능한 소프트웨어 패키지의 목록을 생성하고(S503), 생성된 소프트웨어 패키지의 목록을 휴대단말기(22)로 전송한다(S504).
이 때, 소프트웨어 패키지의 목록은 각 소프트웨어 패키지의 이름 및 대응되는 소프트웨어 패키지의 ID 등을 포함할 수 있다. 또한, 소프트웨어 패키지의 목록에는 각 소프트웨어 패키지에 대응되는 각각의 소프트웨어 패키지의 무결성 입증 정보도 함께 포함될 수 있다.
휴대단말기(22)는 배포부(23)로부터 수신한 사용 가능한 소프트웨어 패키지의 목록을 사용자(21)에게 제공한다(S505).
예를 들어, 휴대단말기(22)는 배포부(23)로부터 수신한 가능한 소프트웨어 패키지의 목록을 표시부(예를 들어 Liquid Crystal Display 또는 Organic Light Emitting Diode 등으로 구성되는 표시부, 미도시)를 통해 사용자(21)에게 표시하여, 사용자(21)가 표시부에 표시된 소프트웨어 패키지의 목록 중 어느 하나의 소프트웨어 패키지를 선택할 수 있도록 한다.
사용자(21)는 휴대단말기(22)에 의해 제공된 소프트웨어 패키지의 목록 중에서 설치하고자 하는 소프트웨어 패키지를 선택하고(S506), 이를 휴대단말기(22)로 통보한다(S507).
사용자(21)는 표시부를 통해 표시된 소프트웨어 패키지의 목록 중에서 소프 트웨어 패키지의 이름 등을 참고하여 설치하고자 하는 소프트웨어 패키지를 선택하고, 이를 소정의 키입력을 통해 휴대단말기에게 통보한다. 예를 들어, 사용자(21)는 표시부가 터치스크린 방식일 경우 설치하고자 하는 소프트웨어 패키지를 터치하여 휴대단말기(22)로 통보할 수 있다. 표시부가 터치스크린 방식이 아닐 경우, 사용자(21)는 키입력부(미도시)의 확인키를 입력하여 설치하고자 하는 소프트웨어 패키지를 휴대단말기(22)로 통보할 수 있다.
휴대단말기(22)는 사용자에 의해 선택된 소프트웨어 패키지에 대응되는 소프트웨어 패키지의 ID를 획득한다(S508).
휴대단말기(22)는 수신한 소프트웨어 패키지의 목록으로부터 사용자에 의해 선택된 소프트웨어 패키지에 대응되는 소프트웨어 패키지의 ID를 확인하여 획득한다. 이 때, 사용자로부터 선택된 소프트웨어 패키지가 다수일 경우, 휴대단말기(22)는 선택된 소프트웨어 패키지 각각의 ID를 확인하여 획득할 수 있다.
휴대단말기(22)는 획득한 소프트웨어 패키지의 ID를 배포부(23)로 전송하고(S509), 배포부(23)는 휴대단말기(22)로부터 전송된 소프트웨어 패키지의 ID에 대응되는 소프트웨어 패키지를 휴대단말기로 전송한다(S510).
S510 단계를 통해 배포부(23)로부터 해당 소프트웨어 패키지를 수신한 후에 휴대단말기(22)는 해당 소프트웨어 패키지의 ID를 검증기관에 전송하고(S511), 검증기관(24)은 해당 소프트웨어 패키지의 ID에 대응되는 무결성 입증 정보를 검색하고(S512), 검색된 소프트웨어 패키지의 ID 및 소프트웨어 패키지 ID의 무결성 입증 정보를 휴대단말기(22)로 전송한다(S513).
검증기관(24)은 휴대단말기(22)로부터 수신한 소프트웨어 패키지의 ID에 대응되는 소프트웨어 패키지의 무결성 입증 정보를 검색하여, 해당 무결성 입증 정보가 발견되면 소프트웨어 패키지의 ID 및 해당 소프트웨어 패키지의 무결성 입증 정보를 휴대단말기로 전송한다.
이 때, 무결성 입증 정보가 발견되지 않으면, 검증기관(24)은 휴대단말기(22)로 무결성 입증 정보가 발견되지 않았음을 알리는 오류 메시지(예를 들어, 경고 메시지) 등을 전송할 수 있다. 오류 메시지에는 무결성 입증 정보의 검색이 시도된 해당 소프트웨어 패키지의 ID에 대한 정보 등이 포함될 수 있다.
검증기관(24)으로부터  소프트웨어 패키지의 ID와 무결성 입증 정보를 수신한 후에, 휴대단말기(22)는 해당 소프트웨어 패키지의 무결성을 검증하고(S514), 검증 결과를 사용자에게 통보한다(S515).
휴대단말기(22)는 배포부로부터 이전에 수신했던(예를 들어, S504단계에서 수신한) 소프트웨어 패키지의 무결성 입증 정보와 S513단계에서 수신한 무결성 입증 정보를 확인하여, 일치하면 휴대단말기(22)는 사용자(21)에게 이를 통보한다. 이후, 사용자(21)로부터 소프트웨어 패키지의 설치가 요청되면 휴대단말기(22)는 소프트웨어 패키지 관리 기능을 통해 소프트웨어 패키지를 휴대단말기(22) 내에 설치한다.
또한, 휴대단말기(22)는 S504 단계에서 수신한 소프트웨어 패키지의 무결성 입증 정보와 S513단계에서 수신한 무결성 입증 정보가 일치하지 않거나, 검증기관으로부터 오류메시지를 수신(예를 들어, S512단계에서의 검색 결과에 따라 S513단 계에서 수신 가능한 오류 메시지)하게 되면, 휴대단말기(22)는 사용자(21)에게 소프트웨어 패키지의 무결성을 검증하는 것이 실패했음을 통보한다. 이 때, 휴대단말기(22)가 사용자에게 소프트웨어 패키지의 무결성 검증을 통보하는 방법은 표시부 등을 통해 시각적으로 사용자에게 알리는 방법 또는 사운드 출력부(미도시) 등을 통해 청각적으로 사용자에게 알리는 방법이 사용될 수 있으며, 시각적 방법 및 청각적 방법이 병행되어 사용될 수도 있다.
검증결과에 따라 사용자(21)에 의해 소프트웨어 패키지의 설치에 대한 선택이 이루어지면(S516), 휴대단말기(22)는 사용자 선택에 따라 소프트웨어 패키지를 관리한다(S517).
사용자(21)는 터치스크린을 포함하는 표시부 또는 키입력부를 통해 검증결과에 따라 소프트웨어 패키지를 설치하거나 설치하지 않도록 선택할 수 있다. 또한, 사용자(21)는 해당 소프트웨어 패키지의 무결성에 관한 검증이 실패하더라도 해당 소프트웨어 패키지를 설치하도록 선택할 수 있다. 사용자(21)로부터 설치가 요청되면 휴대단말기(22)는 소프트웨어 패키지의 관리 기능을 이용하여 소프트웨어 패키지를 설치하고, 사용자(21)로부터 설치가 요청되지 않으면 휴대단말기(22)는 해당 소프트웨어 패키지의 설치를 취소한다. 이때, 설치가 취소된 소프트웨어 패키지는 휴대단말기에서 삭제되도록 사용자(21)에 의해 설정되거나 휴대단말기(22)에 의해 설정될 수 있다.
지금까지 본 발명에 대해서 상세히 설명하였으나, 그 과정에서 언급한 실시 예는 예시적인 것일 뿐, 한정적인 것이 아님을 분명히 하며, 본 발명은 이하의 특허청구범위에 의해 제공되는 본 발명의 기술적 사상이나 분야를 벗어나지 않는 범위 내에서, 본 발명으로부터 균등하게 대체될 수 있는 정도의 구성요소 변경은 본 발명의 범위에 속한다 할 것이다.
삭제
삭제
도1은 소프트웨어 패키지에 대한 개략적인 블록도.
도 2는 본 발명의 실시 예에 따라 소프트웨어 패키지의 무결성을 검증하는 시스템의 블록도.
도 3은 본 발명의 실시 예에 따라 소프트웨어 패키지의 무결성을 검증하는 방법에 대한 제1흐름도.
도 4는 검증기관의 데이터베이스에 저장되는 소프트웨어 패키지 및 관련 데이터들에 대한 예시도.
도 5는 본 발명의 실시 예에 따라 소프트웨어 패키지의 무결성을 검증하는 방법에 대한 제2흐름도.

Claims (18)

  1. 휴대 단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법에 있어서,
    배포부로부터 수신되는 소프트웨어 패키지의 목록 중에서 사용자에 의하여 선택된 소프트웨어 패키지의 ID를 획득하는 과정;
    상기 배포부 및 검증 기관에 상기 소프트웨어 패키지의 ID를 전송하는 과정;
    상기 검증 기관으로부터 수신되는 상기 소프트웨어 패키지의 ID에 대응되는 제1 무결성 입증 정보가 수신되는 경우, 상기 제1 무결성 입증 정보 및 상기 배포부로부터 수신되는 상기 소프트웨어 패키지의 ID에 대응되는 제2 무결성 입증 정보를 이용하여 상기 배포부로부터 수신되는 소프트웨어 패키지에 대한 무결성을 검증하는 과정; 및
    상기 소프트웨어 패키지에 대한 무결성 검증 결과를 표시하는 과정
    을 포함하고,
    상기 제1 무결성 입증 정보 및 상기 제2 무결성 입증 정보는 상기 소프트웨어 패키지의 무결성을 입증하는 정보인, 소프트웨어 패키지의 무결성 검증 방법.
  2. 제1항에 있어서,
    상기 소프트웨어 패키지의 무결성을 검증하는 과정은,
    상기 제1 무결성 입증 정보와 상기 제2 무결성 입증 정보를 비교하는 과정; 및
    상기 제1 무결성 입증 정보와 상기 제2 무결성 입증 정보가 매칭되는 경우, 상기 소프트웨어 패키지를 무결한 것으로 검증하는 과정
    을 포함하는, 소프트웨어 패키지의 무결성 검증 방법.
  3. 제2항에 있어서,
    상기 소프트웨어 패키지의 무결성을 검증하는 과정은,
    상기 제1 무결성 입증 정보와 상기 제2 무결성 입증 정보가 매칭되지 않는 경우, 상기 소프트웨어 패키지를 무결하지 않는 것으로 검증하는 과정
    을 더 포함하는, 소프트웨어 패키지의 무결성 검증 방법.
  4. 제1항에 있어서,
    상기 제1 무결성 입증 정보는,
    상기 소프트웨어 패키지가 상기 소프트웨어 패키지의 스펙을 준수하는 경우, 상기 검증 기관에 의하여 생성되고, 상기 검증 기관에 의하여 상기 배포부로 전송되는, 소프트웨어 패키지의 무결성 검증 방법.
  5. 제4항에 있어서,
    상기 제2 무결성 입증 정보는,
    상기 검증 기관으로부터 수신되는 상기 제1 무결성 입증 정보에 기초하여 상기 배포부에 저장된 정보인, 소프트웨어 패키지의 무결성 검증 방법.
  6. 제1항에 있어서,
    상기 소프트웨어 패키지의 목록은 사용자의 요청에 응답하여 상기 배포부에 의하여 생성되는, 소프트웨어 패키지의 무결성 검증 방법.
  7. 제1항에 있어서,
    상기 검증 기관에 상기 휴대 단말기로부터 상기 소프트웨어 패키지의 ID가 수신되는 경우, 상기 소프트웨어 패키지의 ID에 대응되는 상기 제1 무결성 입증 정보가 상기 검증 기관에 의하여 검색되고, 상기 제1 무결성 입증 정보가 검색되는 경우, 상기 제1 무결성 입증 정보가 상기 휴대 단말기로 전송되는, 소프트웨어 패키지의 무결성 검증 방법.
  8. 제1항에 있어서,
    상기 제1 무결성 입증 정보가 존재하지 않음을 알리는 정보가 수신되는 경우, 상기 소프트웨어 패키지를 무결하지 않는 것으로 검증하는 과정
    을 더 포함하는, 소프트웨어 패키지의 무결성 검증 방법.
  9. 제8항에 있어서,
    상기 제1 무결성 입증 정보가 존재하지 않음을 알리는 정보는,
    상기 제1 무결성 입증 정보가 검색되지 않는 경우, 상기 검증 기관에 의하여 생성되는, 소프트웨어 패키지의 무결성 검증 방법.
  10. 소프트웨어 패키지의 무결성을 검증하는 휴대 단말기에 있어서,
    통신 모듈; 및
    배포부로부터 수신되는 소프트웨어 패키지의 목록 중에서 사용자에 의하여 선택된 소프트웨어 패키지의 ID를 획득하고, 상기 배포부 및 검증 기관에 상기 소프트웨어 패키지의 ID를 상기 통신 모듈을 통해 전송하고, 상기 검증 기관으로부터 수신되는 상기 소프트웨어 패키지의 ID에 대응되는 제1 무결성 입증 정보가 수신되는경우, 상기 제1 무결성 입증 정보 및 상기 배포부로부터 수신되는 상기 소프트웨어 패키지의 ID에 대응되는 제2 무결성 입증 정보를 이용하여 상기 배포부로부터 수신되는 소프트웨어 패키지에 대한 무결성을 검증하고, 상기 소프트웨어 패키지에 대한 무결성 검증 결과를 표시하는 프로세서
    를 포함하고,
    상기 제1 무결성 입증 정보 및 상기 제2 무결성 입증 정보는 상기 소프트웨어 패키지의 무결성을 입증하는 정보인, 휴대 단말기.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 제1 무결성 입증 정보와 상기 제2 무결성 입증 정보를 비교하고, 상기 제1 무결성 입증 정보와 상기 제2 무결성 입증 정보가 매칭되는 경우, 상기 소프트웨어 패키지를 무결한 것으로 검증하는, 휴대 단말기.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 제1 무결성 입증 정보와 상기 제2 무결성 입증 정보가 매칭되지 않는 경우, 상기 소프트웨어 패키지를 무결하지 않는 것으로 검증하는, 휴대 단말기.
  13. 제10항에 있어서,
    상기 제1 무결성 입증 정보는,
    상기 소프트웨어 패키지가 상기 소프트웨어 패키지의 스펙을 준수하는 경우, 상기 검증 기관에 의하여 생성되고, 상기 검증 기관에 의하여 상기 배포부로 전송되는, 휴대 단말기.
  14. 제13항에 있어서,
    상기 제2 무결성 입증 정보는,
    상기 검증 기관으로부터 수신되는 상기 제1 무결성 입증 정보에 기초하여 상기 배포부에 저장된 정보인, 휴대 단말기.
  15. 제10항에 있어서,
    상기 소프트웨어 패키지의 목록은 사용자의 요청에 응답하여 상기 배포부에 의하여 생성되는, 휴대 단말기.
  16. 제10항에 있어서,
    상기 검증 기관에 상기 휴대 단말기로부터 상기 소프트웨어 패키지의 ID가 수신되는 경우, 상기 소프트웨어 패키지의 ID에 대응되는 상기 제1 무결성 입증 정보가 상기 검증 기관에 의하여 검색되고, 상기 제1 무결성 입증 정보가 검색되는 경우, 상기 제1 무결성 입증 정보가 상기 휴대 단말기로 전송되는, 휴대 단말기.
  17. 제10항에 있어서,
    상기 프로세서는,
    상기 제1 무결성 입증 정보가 존재하지 않음을 알리는 정보가 수신되는 경우, 상기 소프트웨어 패키지를 무결하지 않는 것으로 검증하는, 휴대 단말기.
  18. 제17항에 있어서,
    상기 제1 무결성 입증 정보가 존재하지 않음을 알리는 정보는,
    상기 제1 무결성 입증 정보가 검색되지 않는 경우, 상기 검증 기관에 의하여 생성되는, 휴대 단말기.
KR1020090040405A 2009-05-08 2009-05-08 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법 KR101590188B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090040405A KR101590188B1 (ko) 2009-05-08 2009-05-08 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법
US12/761,874 US9832651B2 (en) 2009-05-08 2010-04-16 System and method for verifying integrity of software package in mobile terminal
CN201010180019.0A CN101883360B (zh) 2009-05-08 2010-05-10 用于在移动终端中验证软件包的完整性的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090040405A KR101590188B1 (ko) 2009-05-08 2009-05-08 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법

Publications (2)

Publication Number Publication Date
KR20100121313A KR20100121313A (ko) 2010-11-17
KR101590188B1 true KR101590188B1 (ko) 2016-01-29

Family

ID=43055210

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090040405A KR101590188B1 (ko) 2009-05-08 2009-05-08 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법

Country Status (3)

Country Link
US (1) US9832651B2 (ko)
KR (1) KR101590188B1 (ko)
CN (1) CN101883360B (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8997083B2 (en) 2009-11-30 2015-03-31 Red Hat, Inc. Managing a network of computer systems using a version identifier generated based on software packages installed on the computing systems
US9009696B2 (en) * 2010-04-27 2015-04-14 Red Hat, Inc. Generating encoded identifications of selected subsets of installed software packages on a client machine
CN103440455A (zh) * 2011-04-28 2013-12-11 北京奇虎科技有限公司 一种移动终端软件包安全检测方法及系统
CN102222183B (zh) * 2011-04-28 2013-11-13 奇智软件(北京)有限公司 移动终端软件包安全检测方法及系统
US9118686B2 (en) 2011-09-06 2015-08-25 Microsoft Technology Licensing, Llc Per process networking capabilities
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US20130067459A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation Order-Independent Deployment Collections with Dependency Package Identifiers
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US8677315B1 (en) * 2011-09-26 2014-03-18 Amazon Technologies, Inc. Continuous deployment system for software development
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US20140259003A1 (en) * 2013-03-07 2014-09-11 Go Daddy Operating Company, LLC Method for trusted application deployment
US20140259004A1 (en) * 2013-03-07 2014-09-11 Go Daddy Operating Company, LLC System for trusted application deployment
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
KR102089513B1 (ko) * 2014-03-19 2020-03-16 한국전자통신연구원 모바일 저장장치에 기반한 소프트웨어 검증 시스템 및 그 방법
US9893972B1 (en) 2014-12-15 2018-02-13 Amazon Technologies, Inc. Managing I/O requests
US9928059B1 (en) 2014-12-19 2018-03-27 Amazon Technologies, Inc. Automated deployment of a multi-version application in a network-based computing environment
US10425414B1 (en) * 2015-08-31 2019-09-24 United Services Automobile Association (Usaa) Security platform
SG10201509221YA (en) * 2015-11-06 2017-06-29 Huawei Int Pte Ltd System and method for managing installation of an application package requiring high-risk permission access
CN106355082A (zh) * 2016-09-14 2017-01-25 江苏北弓智能科技有限公司 基于可信app列表的移动设备app安装控制方法
CN107016279A (zh) * 2016-12-13 2017-08-04 蔚来汽车有限公司 应用安装方法和应用安装系统
JP6812865B2 (ja) * 2017-03-21 2021-01-13 株式会社リコー 情報処理システム、サービス提供システムおよび情報処理方法
US11481509B1 (en) 2018-07-10 2022-10-25 United Services Automobile Association (Usaa) Device management and security through a distributed ledger system
US10979440B1 (en) * 2018-08-29 2021-04-13 Intuit Inc. Preventing serverless application package tampering
US11507666B2 (en) * 2019-08-27 2022-11-22 Red Hat, Inc. Trusted execution environment verification of a software package
US11615181B2 (en) * 2021-03-30 2023-03-28 Netapp, Inc. Methods for managing verification and validation of third-party code and devices thereof
US11586725B2 (en) 2021-03-30 2023-02-21 Netapp, Inc. Methods for managing verification and validation of third-party code and devices thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163269A (ja) * 1998-11-25 2000-06-16 Internatl Business Mach Corp <Ibm> サーバからクライアントにアプリケーションを配布するための方泡システム及びプログラム記憶媒体
WO2002019598A2 (en) * 2000-08-28 2002-03-07 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US5825877A (en) * 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US6223291B1 (en) * 1999-03-26 2001-04-24 Motorola, Inc. Secure wireless electronic-commerce system with digital product certificates and digital license certificates
US20010051928A1 (en) * 2000-04-21 2001-12-13 Moshe Brody Protection of software by personalization, and an arrangement, method, and system therefor
DE10109546A1 (de) * 2001-02-28 2002-09-12 Siemens Ag Verfahren und Kommunikationssystem zum Bereitstellen eines Programm-Elements
US20020138554A1 (en) * 2001-03-26 2002-09-26 Motorola, Inc. Method for remotely verifying software integrity
US20030009687A1 (en) * 2001-07-05 2003-01-09 Ferchau Joerg U. Method and apparatus for validating integrity of software
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
JP2003122442A (ja) * 2001-10-16 2003-04-25 Sony Corp ソフトウェア・ダウンロードシステムのための無線データ通信方法および装置
WO2004042998A1 (en) * 2002-11-08 2004-05-21 Nokia Corporation Software integrity test in a mobile telephone
EP1420323A1 (en) * 2002-11-18 2004-05-19 Koninklijke KPN N.V. Method and system for distribution of software components
US7409208B1 (en) * 2003-07-02 2008-08-05 Cellco Partnership Self-subscription to catalogs of mobile application software
US7257583B2 (en) * 2004-01-09 2007-08-14 Microsoft Corporation System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download
US20060200814A1 (en) * 2005-03-02 2006-09-07 Nokia Corporation Software distribution with activation control
KR101034127B1 (ko) 2005-04-29 2011-05-13 콘텐트가드 홀딩즈 인코포레이티드 무결성 보증 및 검증을 위한 시스템 및 방법
WO2007117567A2 (en) * 2006-04-06 2007-10-18 Smobile Systems Inc. Malware detection system and method for limited access mobile platforms
WO2008014800A1 (en) * 2006-07-31 2008-02-07 Telecom Italia S.P.A. A system for implementing security on telecommunications terminals
US20080077801A1 (en) * 2006-09-25 2008-03-27 Nokia Corporation Protecting interfaces on processor architectures
US9135433B2 (en) * 2008-08-29 2015-09-15 Adobe Systems Incorporated Identifying reputation and trust information for software
US20100211772A1 (en) * 2009-02-16 2010-08-19 Bjorn Johansson Collaborative Reconciliation of Application Trustworthiness

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163269A (ja) * 1998-11-25 2000-06-16 Internatl Business Mach Corp <Ibm> サーバからクライアントにアプリケーションを配布するための方泡システム及びプログラム記憶媒体
WO2002019598A2 (en) * 2000-08-28 2002-03-07 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments

Also Published As

Publication number Publication date
KR20100121313A (ko) 2010-11-17
US9832651B2 (en) 2017-11-28
CN101883360A (zh) 2010-11-10
CN101883360B (zh) 2015-02-25
US20100287547A1 (en) 2010-11-11

Similar Documents

Publication Publication Date Title
KR101590188B1 (ko) 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법
CN103460195B (zh) 用于安全软件更新的系统和方法
US11082214B2 (en) Key generation apparatus and key update method
CN105320535B (zh) 一种安装包的校验方法、客户端、服务器及系统
US8756414B2 (en) Information processing apparatus, software verification method, and software verification program
CN107251481A (zh) 利用匿名密钥系统进行可信平台模块认证和证明
CN103778367A (zh) 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器
US20240086553A1 (en) Software pipeline and release validation
EP1227613A2 (en) Method and apparatus for attaching electronic signature to document having structure
EP3206329A1 (en) Security check method, device, terminal and server
WO2020093722A1 (zh) 一种基于区块链的处方数据校验方法、设备及服务器
CN110826092A (zh) 一种文件签名处理系统
JP4715792B2 (ja) 復号制御システム、復号制御方法及び復号制御プログラム
US9660863B2 (en) Network connecting method and electronic device
US9692641B2 (en) Network connecting method and electronic device
JP2005100347A (ja) プログラム製作装置
EP3647979A1 (en) Device attestation techniques
JP5223860B2 (ja) 時刻情報配信システム、時刻配信局、端末、時刻情報配信方法及びプログラム
CN110399706B (zh) 授权认证方法、装置和计算机系统
CN110232570B (zh) 一种信息监管方法及装置
JP2009199147A (ja) 通信制御方法および通信制御プログラム
CN111400771A (zh) 目标分区的校验方法及装置、存储介质、计算机设备
EP2873023A1 (en) Technique for determining a malign or non-malign behavior of an executable file
JP6054225B2 (ja) 構成情報管理装置および構成情報管理方法
US11550894B2 (en) Confirmation system and confirmation method

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
LAPS Lapse due to unpaid annual fee