KR20150057024A - 응용프로그램 업데이트 제어 방법 및 그 전자 장치 - Google Patents

응용프로그램 업데이트 제어 방법 및 그 전자 장치 Download PDF

Info

Publication number
KR20150057024A
KR20150057024A KR1020130139806A KR20130139806A KR20150057024A KR 20150057024 A KR20150057024 A KR 20150057024A KR 1020130139806 A KR1020130139806 A KR 1020130139806A KR 20130139806 A KR20130139806 A KR 20130139806A KR 20150057024 A KR20150057024 A KR 20150057024A
Authority
KR
South Korea
Prior art keywords
application
application program
integrity
execution environment
electronic device
Prior art date
Application number
KR1020130139806A
Other languages
English (en)
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 KR1020130139806A priority Critical patent/KR20150057024A/ko
Publication of KR20150057024A publication Critical patent/KR20150057024A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 개시의 다양한 실시 예는 전자 장치에서 응용프로그램 업데이트를 제어하기 위한 장치 및 방법에 관한 것이다. 전자 장치의 동작 방법은, 응용프로그램(application) 패키지(package)에 포함된 인증서(certificate)의 무결성(integrity)을 확인(check)하는 동작; 상기 응용프로그램이 신뢰가 보장된 실행 환경(TEE: Trusted Execution Environment) 기능(functionality)에 접근(access) 가능한지 확인하는 동작; 상기 응용프로그램 패키지의 무결성을 확인하는 동작; 상기 응용프로그램의 바이트코드(bytecode)를 플랫폼(platform)에 종속(dependent)되도록 최적화(optimization)하는 동작; 고유 응용프로그램 아이디(uniqee application ID)를 연산(calculation)하는 동작; 상기 응용프로그램 아이디를 상기 신뢰가 보장된 실행 환경으로 전송하는 동작; 상기 응용프로그램 아이디를 서명(Signing)하고 메모리에 저장하는 동작을 포함할 수 있다.

Description

응용프로그램 업데이트 제어 방법 및 그 전자 장치{METHOD FOR CONTROLLING AN APPLICATION UPDATE AND AN ELECTRONIC DEVICE THEREOF}
본 개시는 전자 장치에서 응용프로그램의 업데이트를 제어하기 위한 장치 및 방법에 관한 것이다. 특히, 본 개시는 전자 장치에서 응용프로그램의 신뢰가 보장된 실행 환경에 대한 접근을 제어하기 위한 기술에 관한 것이다.
휴대의 용이성으로 인하여 현대인의 필수품이 된 전자 장치는 음성 및 영상 통화기능, 정보 입출력 기능 및 데이터 송수신과 같은 다양한 서비스를 제공하는 멀티미디어 기기로 발전하고 있다.
상기와 같은 다양한 서비스는 제조사에 의해 전자 장치에 포함된 응용프로그램 외에 사용자에 의해 추가적으로 삼자(3rd party) 응용프로그램이 설치될 수 있다. 이후, 설치한 응용프로그램이 업데이트가 필요한 경우, 사용자는 간단한 절차를 통해 응용프로그램의 업데이트를 수행할 수 있다. 하지만, 상기 삼자 응용프로그램들은 자가 서명(self signing) 방식으로 응용프로그램을 인증하는 방식을 포함할 수 있다. 이에 따라, 사용자가 응용프로그램의 업데이트 또는 응용프로그램 설치 시 악의적인 목적으로 수정된 응용프로그램의 패키지를 사용하게 되는 경우가 발생할 수 있다.
이에 따라, 전자 장치에서 응용프로그램의 업데이트 발생시 악의적인 목적으로 수정된 응용프로그램의 패키지를 제어하기 위한 방법이 필요하다.
본 개시의 다양한 실시 예는 전자 장치에서 응용프로그램 업데이트를 제어하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 응용프로그램 패키지에 포함된 인증서의 무결성을 확인하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 비대칭 암호화 방법을 이용하여 응용프로그램 패키지에 포함된 인증서의 무결성을 확인하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 화이트 리스트를 이용하여 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 암호화된 형태로 화이트 리스트를 저장하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 신뢰가 보장된 실행 환경에서 화이트 리스트의 암호화 및 복호화를 수행하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 응용프로그램 패키지의 무결성을 확인하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 비대칭 암호화 방법을 이용하여 응용프로그램 패키지의 무결성을 확인하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 암호화 메시지 다이제스트를 이용하여 응용프로그램 패키지의 무결성을 확인하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 응용프로그램의 바이트코드를 플랫폼에 종속되도록 최적화하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 고유 응용프로그램 아이디를 연산하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 응용프로그램 아이디를 신뢰가 보장된 실행 환경으로 전송하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 응용프로그램 아이디를 서명하고 메모리에 저장하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 신뢰가 보장된 실행 환경에서 응용프로그램 아이디를 서명하고 메모리에 저장하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예는 전자 장치에서 신뢰가 보장된 실행 환경에 대한 모든 질의(queries)에 대해 응용프로그램 아이디를 호출하여 유효성을 확인하기 위한 장치 및 방법을 제공하고자 한다.
본 개시의 다양한 실시 예에 따르면, 전자 장치의 동작 방법은, 응용프로그램(application) 패키지(package)에 포함된 인증서(certificate)의 무결성(integrity)을 확인(check)하는 동작; 상기 응용프로그램이 신뢰가 보장된 실행 환경(TEE: Trusted Execution Environment) 기능(functionality)에 접근(access) 가능한지 확인하는 동작; 상기 응용프로그램 패키지의 무결성을 확인하는 동작; 상기 응용프로그램의 바이트코드(bytecode)를 플랫폼(platform)에 종속(dependent)되도록 최적화(optimization)하는 동작; 고유 응용프로그램 아이디(uniqee application ID)를 연산(calculation)하는 동작; 상기 응용프로그램 아이디를 상기 신뢰가 보장된 실행 환경으로 전송하는 동작; 상기 응용프로그램 아이디를 서명(Signing)하고 메모리에 저장하는 동작을 포함
본 개시의 다양한 실시 예에 따르면, 전자 장치는, 적어도 하나의 프로세서; 적어도 하나의 메모리; 및 상기 메모리에 저장되며, 상기 적어도 하나의 프로세서에 의해 실행 가능하도록 구성되는 적어도 하나의 프로그램(program)을 포함하며, 상기 프로세서는, 응용프로그램(application) 패키지(package)에 포함된 인증서(certificate)의 무결성(integrity)을 확인(check)하고, 상기 응용프로그램이 신뢰가 보장된 실행 환경(TEE: Trusted Execution Environment) 기능(functionality)에 접근(access) 가능한지 확인하고, 상기 응용프로그램 패키지의 무결성을 확인하고, 상기 응용프로그램의 바이트코드(bytecode)를 플랫폼(platform)에 종속(dependent)되도록 최적화(optimization)하고, 고유 응용프로그램 아이디(uniqee application ID)를 연산(calculation)하고, 상기 응용프로그램 아이디를 상기 신뢰가 보장된 실행 환경으로 전송하고, 상기 응용프로그램 아이디를 서명(Signing)하고 메모리에 저장할 수 있다.
전자 장치에서 응용프로그램 업데이트 패키지 및 인증서에 대한 무결성을 확인하고, 응용프로그램의 보안 영역(Trust Zone 또는 신뢰가 보장된 실행 환경)에 대한 접근을 통합 제어함으로써, 응용프로그램 업데이트 패키지에 대한 악의적인 수정 및 그에 따른 보안의 허점을 줄일 수 있는 이점이 있다.
도 1은 본 개시의 다양한 실시 예에 따른 전자 장치의 블록 구성을 도시하고 있다.
도 2는 본 개시의 다양한 실시 예에 따른 프로세서의 상세 블록 구성을 도시하고 있다.
도 3 내지 도 4는 본 개시의 다양한 실시 예에 따른 전자 장치에서 응용프로그램 업데이트를 제어하기 위한 흐름도를 도시하고 있다.
이하 본 개시의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명한다. 그리고, 본 개시를 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 개시는 전자 장치에서 응용프로그램의 업데이트를 제어하기 위한 장치 및 방법에 관한 것이다.
이하 설명에서 전자 장치는 이동통신단말기, PDA(Personal Digital Assistant), 랩탑(Laptop), 스마트폰(Smart Phone), 넷북(Netbook), 텔레비전(Television), 휴대 인터넷 장치(MID: Mobile Internet Device), 울트라 모바일 PC(UMPC: Ultra Mobile PC), 태블릿 PC(Tablet Personal Computer), 내비게이션, 디지털 냉장고, 디지털 시계 및 MP3를 포함할 수 있다.
도 1은 본 개시의 다양한 실시 예에 따른 전자 장치의 블록 구성을 도시하고 있다.
도 1에 도시된 바와 같이 전자 장치(100)는 메모리(110), 프로세서 유닛(processor unit)(120), 오디오 처리부(130), 입출력 제어부(140), 표시부(150), 입력부(160) 및 통신부(170)를 포함할 수 있다. 여기서, 메모리(110)는 다수 개 존재할 수도 있다.
각 구성요소에 대해 살펴보면 다음과 같다.
메모리(110)는 전자 장치(100)의 동작을 제어하기 위한 프로그램을 저장하는 프로그램 저장부(111) 및 프로그램 수행 중에 발생되는 데이터를 저장하는 데이터 저장부(112)를 포함할 수 있다.
프로그램 저장부(111)는 그래픽 사용자 인터페이스(GUI) 프로그램(113), 업데이트 제어 프로그램(114), 보안 제어 프로그램(115) 및 적어도 하나의 응용프로그램(116)을 포함할 수 있다. 여기서, 프로그램 저장부(111)에 포함되는 프로그램은 명령어들의 집합으로 명령어 세트(instruction set)로 표현할 수도 있다.
데이터 저장부(112)는 통신부(170)를 통해 적어도 하나의 응용프로그램에 대한 업데이트 패키지를 다운로드하여 저장할 수 있다. 또한, 데이터 저장부(112)는 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인할 수 있는 화이트 리스트를 저장할 수도 있다. 또한, 데이터 저장부(112)는 적어도 하나의 서명된 응용프로그램 아이디를 저장할 수 있다.
그래픽 사용자 인터페이스 프로그램(113)은 표시부(150)에 그래픽으로 사용자 인터페이스를 제공하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함할 수 있다. 예를 들어, 그래픽 사용자 인터페이스 프로그램(113)은 프로세서(122)에 의해 구동되는 응용프로그램 정보를 표시부(150)에 표시하도록 제어할 수 있다.
업데이트 제어 프로그램(114)은 전자 장치에서 응용프로그램의 업데이트를 제어하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함할 수 있다. 예를 들어, 업데이트 제어 프로그램(114)은 비대칭 암호화 방법을 이용하여 응용프로그램 업데이트 패키지에 포함된 인증서에 대한 무결성을 확인할 수 있다. 인증서에 대한 무결성을 확인하지 못한 경우, 업데이트 제어 프로그램(114)은 응용프로그램의 업데이트 패키지에 포함된 인증서가 수정되거나 해킹의 위험이 있을것으로 판단하여 응용프로그램 업데이트를 종료할 수 있다. 인증서에 대한 무결성을 확인한 경우, 업데이트 제어 프로그램(114)은 보안 제어 프로그램(115)에 접근 가능한지 확인할 수 있다. 보안 제어 프로그램(115)에 접근 가능한 경우, 업데이트 제어 프로그램(114)은 응용프로그램 패키지의 무결성을 확인할 수 있다. 인증서에 대한 무결성을 확인하지 못한 경우, 업데이트 제어 프로그램(114)은 응용프로그램의 업데이트 패키지가 수정되거나 해킹의 위험이 있을것으로 판단하여 응용프로그램 업데이트를 종료할 수 있다. 인증서에 대한 무결성을 확인한 경우, 업데이트 제어 프로그램(114)은 응용프로그램의 바이트코드를 플랫폼에 종속되도록 최적화할 수 있다. 이후, 업데이트 제어 프로그램(114)은 고유 응용프로그램 아이디를 연산할 수 있다. 이때, 업데이트 제어 프로그램(114)은 응용프로그램의 아이디를 서명하기 위해 보안 제어 프로그램(115)에 전달할 수 있다.
보안 제어 프로그램(115)은 전자 장치에서 신뢰가 보장된 실행 환경을 제공하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함할 수 있다. 예를 들어, 보안 제어 프로그램(115)은 업데이트 제어 프로그램(114)의 요청에 따라 화이트 리스트를 이용하여 응용프로그램이 보안 제어 프로그램(115) 기능에 접근 가능한지 확인할 수 있다. 다른 예를 들어, 보안 제어 프로그램(115)은 업데이트 제어 프로그램(114)으로부터 전달받은 응용프로그램 아이디를 서명하고, 서명된 응용프로그램 아이디를 생성하여 메모리(110)에 저장할 수 있다.
응용프로그램(116)은 전자 장치(100)에 설치된 적어도 하나의 응용 프로그램에 대한 소프트웨어 구성 요소를 포함할 수 있다.
프로세서 유닛(120)은 메모리 인터페이스(121), 적어도 하나의 프로세서(processor)(122) 및 주변 장치 인터페이스(123)를 포함할 수 있다. 여기서, 프로세서 유닛(120)에 포함되는 메모리 인터페이스(121), 적어도 하나의 프로세서(122) 및 주변 인터페이스(123)는 적어도 하나의 집적화된 회로로 집적화되거나 별개의 구성 요소로 구현될 수 있다.
메모리 인터페이스(121)는 프로세서(122) 또는 주변 장치 인터페이스(123)와 같은 구성요소의 메모리(110) 접근을 제어할 수 있다.
주변 장치 인터페이스(123)는 전자 장치(100)의 입출력 주변 장치와 프로세서(122) 및 메모리 인터페이스(121)의 연결을 제어할 수 있다.
프로세서(122)는 적어도 하나의 소프트웨어 프로그램을 사용하여 전자 장치(100)가 다양한 서비스를 제공하도록 제어할 수 있다. 이때, 프로세서(122)는 메모리(110)에 저장되어 있는 적어도 하나의 프로그램을 실행하여 해당 프로그램에 따라 서비스를 제공하도록 제어할 수 있다. 예를 들어, 프로세서(122)는 업데이트 제어 프로그램(114)을 실행하여 전자 장치에서 응용프로그램의 업데이트를 제어하기하기 위해 도 2에 도시된 바와 같이 구성될 수 있다. 다른 예를 들어, 프로세서(122)는 보안 제어 프로그램(115)을 실행하여 전자 장치에서 신뢰가 보장된 실행 환경을 제공하기하기 위해 도 2에 도시된 바와 같이 구성될 수도 있다.
오디오 처리부(130)는 스피커(131) 및 마이크로폰(132)을 통해 사용자와 전자 장치(100) 사이의 오디오 인터페이스를 제공할 수 있다.
입출력 제어부(140)는 표시부(150) 및 입력부(160)를 포함하는 입출력 장치와 주변 장치 인터페이스(123) 사이에 인터페이스를 제공할 수 있다.
표시부(150)는 전자장치(100)의 상태 정보, 사용자가 입력하는 문자, 동화상(moving picture) 및 정화상(still picture)을 표시할 수 있다. 예를 들어, 표시부(150)는 프로세서(122)에 의해 구동되는 응용프로그램 정보를 표시할 수 있다.
입력부(160)는 사용자의 선택에 의해 발생하는 입력 데이터를 입출력 제어부(140)를 통해 프로세서 유닛(120)으로 제공할 수 있다. 이때, 입력부(160)는 적어도 하나의 하드웨어 버튼을 포함하는 키패드 및 터치 정보를 감지하는 터치 패드 등을 포함할 수 있다. 예를 들어, 입력부(160)는 터치 패드를 통해 감지한 터치 정보를 입출력 제어부(140)를 통해 프로세서(122)로 제공할 수 있다. 또한, 입력부(160)는 USB 장치와의 연결을 제공할 수 있다.
통신부(170)는 음성 통신 및 데이터 통신을 위한 통신 기능을 수행하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함할 수 있다. 이때, 통신부(170)는 서로 다른 통신 네트워크를 지원하는 다수 개의 통신 서브 모듈들로 구분될 수도 있다. 예를 들어, 통신 네트워크는 이들에 한정하지는 않지만, GSM(Global System for Mobile Communication) 네트워크, EDGE(Enhanced Data GSM Environment) 네트워크, CDMA(Code Division Multiple Access) 네트워크, W-CDMA(W-Code Division Multiple Access) 네트워크, LTE(Long Term Evolution) 네트워크, OFDMA(Orthogonal Frequency Division Multiple Access) 네트워크, 무선랜, Bluetooth 네트워크 및 NFC(Near Field Communication)를 포함할 수 있다.
도 2는 본 개시의 다양한 실시 예에 따른 프로세서의 상세 블록 구성을 도시하고 있다.
도 2에 도시된 바와 같이 프로세서(122)는 업데이트 제어부(210) 및 보안 제어부(220)를 포함할 수 있다.
업데이트 제어부(210)는 프로그램 저장부(111)의 업데이트 제어 프로그램(114)을 실행하여 전자 장치에서 응용프로그램의 업데이트를 제어할 수 있다. 예를 들어, 예를 들어, 업데이트 제어부(210)는 비대칭 암호화 방법을 이용하여 응용프로그램 업데이트 패키지에 포함된 인증서에 대한 무결성을 확인할 수 있다. 인증서에 대한 무결성을 확인하지 못한 경우, 업데이트 제어부(210)는 응용프로그램의 업데이트 패키지에 포함된 인증서가 수정되거나 해킹의 위험이 있을것으로 판단하여 응용프로그램 업데이트를 종료할 수 있다. 인증서에 대한 무결성을 확인한 경우, 업데이트 제어부(210)는 보안 제어부(220)에 접근 가능한지 확인할 수 있다. 보안 제어부(220)에 접근 가능한 경우, 업데이트 제어부(210)는 응용프로그램 패키지의 무결성을 확인할 수 있다. 인증서에 대한 무결성을 확인하지 못한 경우, 업데이트 제어부(210)는 응용프로그램의 업데이트 패키지가 수정되거나 해킹의 위험이 있을것으로 판단하여 응용프로그램 업데이트를 종료할 수 있다. 인증서에 대한 무결성을 확인한 경우, 업데이트 제어부(210)는 응용프로그램의 바이트코드를 플랫폼에 종속되도록 최적화할 수 있다. 이후, 업데이트 제어부(210)는 고유 응용프로그램 아이디를 연산할 수 있다. 이때, 업데이트 제어부(210)는 응용프로그램의 아이디를 서명하기 위해 보안 제어부(220)에 전달할 수 있다.
보안 제어부(220)는 프로그램 저장부(111)의 통합 보안 제어 프로그램(115)을 실행하여 전자 장치에서 신뢰가 보장된 실행 환경을 제공하도록 제어할 수 있다. 예를 들어, 보안 제어부(220)는 업데이트 제어부(210)의 요청에 따라 화이트 리스트를 이용하여 응용프로그램이 보안 제어부(220) 기능에 접근 가능한지 확인할 수 있다. 다른 예를 들어, 보안 제어부(220)는 업데이트 제어부(220)로부터 전달받은 응용프로그램 아이디를 서명하고, 서명된 응용프로그램 아이디를 생성하여 메모리(110)에 저장할 수 있다.
보안 제어부(220)의 예로 TEE(trusted execution environment)를 설명하면, TEE는 전자 장치의 프로세서에 상주하고 민감한 데이터를 저장, 처리 및 신뢰할 수 있는 환경에서 보호되도록 제공하는 보안 영역일 수 있다. '신뢰할 수 있는 응용 프로그램'으로 인증된 공인 보안 소프트웨어의 안전한 실행을 제공하는 신뢰할 수 있는 실행 환경은 보호, 기밀성, 무결성 및 데이터 액세스 권한을 적용하여 엔드 - 투 - 엔드 보안을 제공 할 수 있습니다.
추가적으로, 전자 장치는 업데이트 제어부(210) 또는 보안 제어부(210) 중 적어도 하나를 포함하는 별도의 모듈을 포함할 수도 있다.
도 3 내지 도 4는 본 개시의 다양한 실시 예에 따른 전자 장치에서 응용프로그램 업데이트를 제어하기 위한 흐름도를 도시하고 있다.
도 3을 참조하면 301동작에서 전자 장치는 응용프로그램 패키지에 포함된 인증서에 대한 무결성을 확인할 수 있다. 예를 들어, 전자 장치는 비대칭 암호화 방법을 이용하여 응용프로그램 패키지에 포함된 인증서에 대한 무결성의 통과 여부를 확인할 수 있다.
303동작에서 전자 장치는 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인할 수 있다. 예를 들어, 전자 장치는 화이트 리스트를 이용하여 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인할 수 있다. 이때, 전자 장치는 화이트 리스트를 암호화된 상태로 메모리(110)에 저장할 수도 있다. 또한, 전자 장치는 화이트 리스트에 대한 암호화 및 복호화를 신뢰가 보장된 실행 환경에서 수행할 수 있다. 만일, 신뢰가 보장된 실행 환경 기능에 접근 불가능한 경우, 전자 장치는 본 알고리즘을 종료할 수 있다. 또는, 신뢰가 보장된 실행 환경 기능에 접근 권한을 부여하지 않고 응용프로그램의 업데이트를 수행할 수도 있다.
305동작에서 전자 장치는 응용프로그램 패키지의 무결성을 확인할 수 있다. 예를 들어, 전자 장치는 비대칭 암호화 방법을 이용하여 응용프로그램 패키지에 대한 무결성의 통과 여부를 확인할 수 있다. 다른 예를 들어, 전자 장치는 암호화 메시지 다이제스트를 이용하여 응용프로그램 패키지에 대한 무결성의 통과 여부를 확인할 수도 있다. 이때, 인증서에 대한 무결성을 통과하지 못한 경우, 전자 장치는 다운로드한 응용프로그램의 업데이트 패키지가 수정되거나 해킹의 위험이 있을것으로 판단할 수 있다.
307동작에서 전자 장치는 응용프로그램의 바이트코드를 플랫폼에 종속되도록 최적화할 수 있다. 예를 들어, 플랫폼에 독립적인 바이트코드를 로딩하면서 전자 장치의 현 플랫폼에 종속되도록 최적화된 기계어로 변환할 수 있다.
309동작에서 전자 장치는 고유 응용프로그램 아이디를 연산할 수 있다.
311동작에서 전자장치는 응용프로그램의 아이디를 신뢰가 보장된 실행 환경으로 전송할 수 있다.
313동작에서 전자 장치는 응용프로그램 아이디를 서명하고 메모리에 저장할 수 있다. 이때, 전자 장치는 신뢰가 보장된 실행 환경에서 응용프로그램 아이디를 서명하고, 서명된 응용프로그램 아이디를 생성하여 메모리(110)에 저장할 수 있다.
이후, 전자 장치는 본 알고리즘을 종료할 수 있다.
도 4를 참조하면 전자 장치는 401동작에서 응용프로그램 업데이트를 다운로드할 수 있다. 예를 들어, 전자 장치는 통신부(170)를 통해 적어도 하나의 응용프로그램에 대한 업데이트 패키지를 다운로드하여 메모리(110)에 저장할 수 있다. 이때, 전자 장치는 다운로드한 업데이트 패키지를 임시로 저장하도록 제어할 수도 있다.
403동작에서 전자 장치는 응용프로그램 패키지에 포함된 인증서에 대한 무결성 통과 여부를 확인할 수 있다. 예를 들어, 전자 장치는 비대칭 암호화 방법을 이용하여 응용프로그램 패키지에 포함된 인증서에 대한 무결성의 통과 여부를 확인할 수 있다. 만일, 인증서에 대한 무결성을 통과하지 못한 경우, 전자 장치는 다운로드한 응용프로그램의 업데이트 패키지에 포함된 인증서가 수정되거나 해킹의 위험이 있을것으로 판단할 수 있다. 이에 따라, 전자 장치는 응용프로그램 업데이트를 종료할 수도 있다.
한편, 인증서에 대한 무결성을 통과한 경우, 405동작에서 전자 장치는 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인할 수 있다. 예를 들어, 전자 장치는 화이트 리스트를 이용하여 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인할 수 있다. 이때, 전자 장치는 화이트 리스트를 암호화된 상태로 메모리(110)에 저장할 수도 있다. 또한, 전자 장치는 화이트 리스트에 대한 암호화 및 복호화를 신뢰가 보장된 실행 환경에서 수행할 수 있다. 만일, 신뢰가 보장된 실행 환경 기능에 접근 불가능한 경우, 전자 장치는 본 알고리즘을 종료할 수 있다. 또는, 신뢰가 보장된 실행 환경 기능에 접근 권한을 부여하지 않고 응용프로그램의 업데이트를 수행할 수도 있다.
한편, 신뢰가 보장된 실행 환경 기능에 접근 가능한 경우, 407동작에서 전자 장치는 응용프로그램 패키지의 무결성 통과 여부를 확인할 수 있다. 예를 들어, 전자 장치는 비대칭 암호화 방법을 이용하여 응용프로그램 패키지에 대한 무결성의 통과 여부를 확인할 수 있다. 다른 예를 들어, 전자 장치는 암호화 메시지 다이제스트를 이용하여 응용프로그램 패키지에 대한 무결성의 통과 여부를 확인할 수도 있다. 만일, 인증서에 대한 무결성을 통과하지 못한 경우, 전자 장치는 다운로드한 응용프로그램의 업데이트 패키지가 수정되거나 해킹의 위험이 있을것으로 판단할 수 있다. 이에 따라, 전자 장치는 응용프로그램 업데이트를 종료할 수도 있다.
한편, 패키지에 대한 무결성을 통과한 경우, 409동작에서 전자 장치는 응용프로그램의 바이트코드를 플랫폼에 종속되도록 최적화할 수 있다. 예를 들어, 플랫폼에 독립적인 바이트코드를 로딩하면서 전자 장치의 현 플랫폼에 종속되도록 최적화된 기계어로 변환할 수 있다.
411동작에서 전자 장치는 고유 응용프로그램 아이디를 연산할 수 있다.
413동작에서 전자장치는 응용프로그램의 아이디를 신뢰가 보장된 실행 환경으로 전송할 수 있다.
415동작에서 전자 장치는 응용프로그램 아이디를 서명하고 메모리에 저장할 수 있다. 이때, 전자 장치는 신뢰가 보장된 실행 환경에서 응용프로그램 아이디를 서명하고, 서명된 응용프로그램 아이디를 생성하여 메모리(110)에 저장할 수 있다.
이후, 전자 장치는 본 알고리즘을 종료할 수 있다.
추가적으로, 응용프로그램에서 신뢰가 보장된 실행 환경에 대한 접근을 요청한 경우, 전자 장치는 서명된 응용프로그램 아이디를 요청하여 접근의 허가를 결정할 수 있다. 이때, 서명된 응용프로그램 아이디를 요청하는 시기는 응용프로그램에서 신뢰가 보장된 실행 환경에 대한 접근을 요청할 때마다 수행될 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (18)

  1. 전자 장치의 동작 방법에 있어서,
    응용프로그램(application) 패키지(package)에 포함된 인증서(certificate)의 무결성(integrity)을 확인(check)하는 동작;
    상기 응용프로그램이 신뢰가 보장된 실행 환경(TEE: Trusted Execution Environment) 기능(functionality)에 접근(access) 가능한지 확인하는 동작;
    상기 응용프로그램 패키지의 무결성을 확인하는 동작;
    상기 응용프로그램의 바이트코드(bytecode)를 플랫폼(platform)에 종속(dependent)되도록 최적화(optimization)하는 동작;
    고유 응용프로그램 아이디(uniqee application ID)를 연산(calculation)하는 동작;
    상기 응용프로그램 아이디를 상기 신뢰가 보장된 실행 환경으로 전송하는 동작;
    상기 응용프로그램 아이디를 서명(Signing)하고 메모리에 저장하는 동작을 포함하는 방법.
  2. 제1항에 있어서,
    상기 신뢰가 보장된 실행 환경에 대한 모든 질의(queries)에 대해 상기 응용프로그램 아이디를 호출(calling)하여 유효성을 확인하는 동작을 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 응용프로그램 패키지에 포함된 인증서의 무결성을 확인하는 동작은,
    비대칭 암호화 방법을 이용하여 상기 응용프로그램 패키지에 포함된 인증서의 무결성을 확인하는 동작을 포함하는 방법.
  4. 제1항에 있어서,
    상기 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인하는 동작은,
    화이트 리스트를 이용하여 상기 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인하는 동작을 포함하는 방법.
  5. 제4항에 있어서,
    상기 화이트 리스트는 암호화된 형태로 저장하는 방법.
  6. 제5항에 있어서,
    상기 화이트 리스트의 암호화 및 복호화는 상기 신뢰가 보장된 실행 환경에서 수행하는 동작을 포함하는 방법.
  7. 제1항에 있어서,
    상기 응용프로그램 패키지의 무결성을 확인하는 동작은,
    비대칭 암호화 방법(asymmetric cryptography methods)을 이용하여 상기 응용프로그램 패키지의 무결성을 확인하는 동작을 포함하는 방법.
  8. 제1항에 있어서,
    상기 응용프로그램 패키지의 무결성을 확인하는 동작은,
    암호화 메시지 다이제스트(cryptographic message digests)를 이용하여 상기 응용프로그램 패키지의 무결성을 확인하는 동작을 포함하는 방법.
  9. 제1항에 있어서,
    상기 응용프로그램 아이디를 서명하고 메모리에 저장하는 동작은,
    상기 신뢰가 보장된 실행 환경에서 상기 응용프로그램 아이디를 서명하고 메모리에 저장하는 동작을 포함하는 방법.
  10. 전자 장치에 있어서,
    적어도 하나의 프로세서;
    적어도 하나의 메모리; 및
    상기 메모리에 저장되며, 상기 적어도 하나의 프로세서에 의해 실행 가능하도록 구성되는 적어도 하나의 프로그램(program)을 포함하며,
    상기 프로세서는,
    응용프로그램(application) 패키지(package)에 포함된 인증서(certificate)의 무결성(integrity)을 확인(check)하고,
    상기 응용프로그램이 신뢰가 보장된 실행 환경(TEE: Trusted Execution Environment) 기능(functionality)에 접근(access) 가능한지 확인하고,
    상기 응용프로그램 패키지의 무결성을 확인하고,
    상기 응용프로그램의 바이트코드(bytecode)를 플랫폼(platform)에 종속(dependent)되도록 최적화(optimization)하고,
    고유 응용프로그램 아이디(uniqee application ID)를 연산(calculation)하고,
    상기 응용프로그램 아이디를 상기 신뢰가 보장된 실행 환경으로 전송하고,
    상기 응용프로그램 아이디를 서명(Signing)하고 메모리에 저장하는 장치.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 신뢰가 보장된 실행 환경에 대한 모든 질의(queries)에 대해 상기 응용프로그램 아이디를 호출(calling)하여 유효성을 확인하는 장치.
  12. 제10항에 있어서,
    상기 프로세서는,
    비대칭 암호화 방법을 이용하여 상기 응용프로그램 패키지에 포함된 인증서의 무결성을 확인하는 장치.
  13. 제10항에 있어서,
    상기 프로세서는,
    화이트 리스트를 이용하여 상기 응용프로그램이 신뢰가 보장된 실행 환경 기능에 접근 가능한지 확인하는 동작을 포함하는 방법.
  14. 제13항에 있어서,
    상기 프로세서는.
    상기 화이트 리스트는 암호화된 형태로 저장하는 방법.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 화이트 리스트의 암호화 및 복호화는 상기 신뢰가 보장된 실행 환경에서 수행하는 장치.
  16. 제10항에 있어서,
    상기 프로세서는,
    비대칭 암호화 방법(asymmetric cryptography methods)을 이용하여 상기 응용프로그램 패키지의 무결성을 확인하는 장치.
  17. 제10항에 있어서,
    상기 프로세서는,
    암호화 메시지 다이제스트(cryptographic message digests)를 이용하여 상기 응용프로그램 패키지의 무결성을 확인하는 동작을 포함하는 방법.
  18. 제10항에 있어서,
    상기 프로세서는,
    상기 신뢰가 보장된 실행 환경에서 상기 응용프로그램 아이디를 서명하고 메모리에 저장하는 장치.
KR1020130139806A 2013-11-18 2013-11-18 응용프로그램 업데이트 제어 방법 및 그 전자 장치 KR20150057024A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130139806A KR20150057024A (ko) 2013-11-18 2013-11-18 응용프로그램 업데이트 제어 방법 및 그 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130139806A KR20150057024A (ko) 2013-11-18 2013-11-18 응용프로그램 업데이트 제어 방법 및 그 전자 장치

Publications (1)

Publication Number Publication Date
KR20150057024A true KR20150057024A (ko) 2015-05-28

Family

ID=53391975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130139806A KR20150057024A (ko) 2013-11-18 2013-11-18 응용프로그램 업데이트 제어 방법 및 그 전자 장치

Country Status (1)

Country Link
KR (1) KR20150057024A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170119645A (ko) * 2016-04-19 2017-10-27 주식회사 엔지스테크널러지 차량 시스템의 소프트웨어 보안 업데이트 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170119645A (ko) * 2016-04-19 2017-10-27 주식회사 엔지스테크널러지 차량 시스템의 소프트웨어 보안 업데이트 방법 및 장치

Similar Documents

Publication Publication Date Title
CN107743133B (zh) 移动终端及其基于可信安全环境的访问控制方法和系统
US10878083B2 (en) Mobile device having trusted execution environment
AU2019379092B2 (en) Secure over-the-air firmware upgrade
EP3605989B1 (en) Information sending method, information receiving method, apparatus, and system
CN109600223B (zh) 验证方法、激活方法、装置、设备及存储介质
US10601795B2 (en) Service processing method and electronic device
CN109756447B (zh) 一种安全认证方法及相关设备
RU2518924C2 (ru) Беспроводное устройство, способ запроса пользовательского клиента управления доступом и способ выполнения клиента управления доступом
KR101331316B1 (ko) 특권 서명을 이용한 보안 웹 브라우징 환경을 생성하기 위한 방법 및 장치
CN109154972B (zh) 使用基于硬件的安全隔离区域来防止电子设备上的盗版和作弊
US9524394B2 (en) Method and apparatus for providing provably secure user input/output
US20110154436A1 (en) Provider Management Methods and Systems for a Portable Device Running Android Platform
Cooijmans et al. Secure key storage and secure computation in Android
CN114362951B (zh) 用于更新证书的方法和装置
CN113282951B (zh) 一种应用程序的安全校验方法、装置及设备
KR20150057024A (ko) 응용프로그램 업데이트 제어 방법 및 그 전자 장치
KR101350438B1 (ko) 모바일기기 내의 se를 이용하는 전자서명 시스템
CN112241284A (zh) 基于隐私保护的程序数据更新方法、系统、装置及设备
CN110140124B (zh) 分组应用使用同一密钥共享数据
KR102052651B1 (ko) 데이터 접근 제어 방법 및 그 전자 장치
US20160275271A1 (en) User Terminal And Method For Protecting Core Codes Using Peripheral Device of User Terminal
CN107862209B (zh) 一种文件加解密方法、移动终端和具有存储功能的装置
KR20170073843A (ko) 보안실행환경 온라인본인확인 시스템 및 방법
CN116962845A (zh) 用于虚拟系统的多媒体播放方法及装置
JP2012169983A (ja) データ処理装置およびプログラム

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination