KR20150116371A - 어플리케이션 설치를 관리하는 방법, 전자 장치 및 인증 시스템 - Google Patents

어플리케이션 설치를 관리하는 방법, 전자 장치 및 인증 시스템 Download PDF

Info

Publication number
KR20150116371A
KR20150116371A KR1020140087735A KR20140087735A KR20150116371A KR 20150116371 A KR20150116371 A KR 20150116371A KR 1020140087735 A KR1020140087735 A KR 1020140087735A KR 20140087735 A KR20140087735 A KR 20140087735A KR 20150116371 A KR20150116371 A KR 20150116371A
Authority
KR
South Korea
Prior art keywords
application
electronic device
signing key
information
authentication
Prior art date
Application number
KR1020140087735A
Other languages
English (en)
Other versions
KR102243231B1 (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 US14/680,529 priority Critical patent/US10200201B2/en
Publication of KR20150116371A publication Critical patent/KR20150116371A/ko
Application granted granted Critical
Publication of KR102243231B1 publication Critical patent/KR102243231B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Landscapes

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

Abstract

어플리케이션 설치를 관리하는 방법에 따르면, 어플리케이션에서 어플리케이션 서명 키를 확인하고, 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 전자 장치가 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 어플리케이션 서명 키를 검증하고, 어플리케이션 서명 키의 검증 결과에 따라, 어플리케이션을 설치할 수 있다. 이 외에도 다양한 실시예들을 포함할 수 있다.

Description

어플리케이션 설치를 관리하는 방법, 전자 장치 및 인증 시스템{Method for managing application installation, electronic device and certification system}
본 발명의 다양한 실시예들은 어플리케이션 설치를 관리하는 방법, 전자 장치 및 인증 시스템에 관한 것이다.
안드로이드와 같이 오픈된 플랫폼에서는 누구나 어플리케이션을 개발할 수 있고, 개발된 어플리케이션은 이메일이나 웹을 통해서 자유롭게 배포가 가능하며, 어느 단말에서나 동작이 가능하다.
오픈된 플랫폼에서는 상용 환경과 개발 환경의 구분이 없어, 개발용 어플리케이션의 전달과 설치가 자유롭다. 어플리케이션의 무단 도용, 무단 복제(software piracy) 등의 문제가 발생할 수 있으며, 악성 개발자가 악성 코드가 포함된 어플리케이션을 배포하거나, 기존의 어플리케이션을 변경하여 악성 코드를 포함시켜 배포하더라도, 이를 막을 수 있는 대처 방안이 없다.
본 발명의 적어도 하나의 실시예가 이루고자 하는 기술적 과제는 상기된 문제를 해결할 수 있는 어플리케이션 설치를 관리하는 방법, 전자 장치 및 인증 시스템을 제공하는 데 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 데 있다. 본 발명의 다양한 실시예들이 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기 기술적 과제를 해결하기 위한 일 실시예에 따른 어플리케이션 설치를 관리하는 방법은 전자 장치에서 어플리케이션을 수신하는 동작, 상기 어플리케이션에서 어플리케이션 서명 키를 확인하는 동작, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 상기 전자 장치가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하는 동작과, 상기 어플리케이션 서명 키의 검증 결과에 기반하여, 상기 어플리케이션을 설치하는 동작을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 일 실시예에 따라 상기 어플리케이션 설치를 관리하는 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
상기 기술적 과제를 해결하기 위한 일 실시예에 따른 전자 장치는 어플리케이션을 수신하는 통신 인터페이스, 상기 어플리케이션에서 어플리케이션 서명 키를 확인하고, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 상기 전자 장치가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하는 어플리케이션 인증 모듈과, 상기 어플리케이션 서명 키의 검증 결과에 기반하여, 상기 어플리케이션을 설치하는 프로세서를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 일 실시예에 따른 인증 시스템은 사용자에 의해 입력된 개발자 정보 및 테스트 전자 장치에 관한 정보에 기초하여 인증 서버에 상기 테스트 전자 장치에 대한 인증을 요청하고, 상기 인증 서버의 인증 결과로 생성된 암호화된 정보에 기초하여 어플리케이션 서명 키를 획득하고, 상기 어플리케이션 서명 키로 개발된 어플리케이션을 서명하는 작업 단말과, 상기 인증 요청에 기초하여, 상기 테스트 전자 장치에 대한 인증을 수행하고, 상기 인증 결과에 따라 어플리케이션 권한 정보 및 상기 테스트 전자 장치의 고유 ID를 포함하는 상기 암호화된 정보를 생성하는 인증 서버를 포함할 수 있다.
전술한 바와 같은 내용들은 당해 분야 통상의 지식을 가진 자가 후술되는 본 개시의 다양한 실시예의 구체적인 설명으로부터 보다 잘 이해할 수 있도록 하기 위하여 다양한 실시예들의 특징들을 다소 넓게 약술한 것이다. 이러한 특징들 이외에도 본 개시의 청구범위의 주제를 형성하는 다양한 실시예들의 추가적인 특징들은 후술되는 구체적인 설명으로부터 잘 이해될 것이다.
상기에 기재된 바에 의하면, 개발자 및 테스트 전자 장치의 인증을 통해서, 개발용 어플리케이션의 경우, 인증 기관에 등록된 테스트 전자 장치에서만 설치되거나 실행되도록 할 수 있다. 테스트 전자 장치 이외의 전자 장치에서는 상용 기관에 의해 배포되는 상용 어플리케이션만 설치가 가능하도록 할 수 있다.
또한, 어플리케이션 서명 키를 포함하고 있지 않거나, 상용 기관 또는 인증 기관에 의해 인증된 어플리케이션 서명 키를 포함하고 있지 않은 어플리케이션의 경우는 전자 장치에 설치나 실행되지 않도록 제어할 수 있다.
이에 따라, 어플리케이션의 변조나 복제를 차단할 수 있을 뿐 아니라, 악성 개발자나 악성 코드가 포함된 어플리케이션에 대한 즉각적인 조치가 가능하다.
도 1은 다양한 실시예에 따른 인증 시스템을 도시한다.
도 2는 다양한 실시예에 따른 전자 장치의 블록도를 도시한다.
도 3은 다양한 실시예에 따른 전자 장치에서 어플리케이션 설치를 관리하는 방법을 나타낸다.
도 4는 다양한 실시예에 따라 어플리케이션의 개발 환경과 어플리케이션의 상용 환경을 설명하기 위한 도면이다.
도 5는 본 발명의 다양한 실시예에 따라 인증을 요청하는 사용자 인터페이스 화면을 도시한다.
도 6은 다양한 실시예들에 따라 작업 단말로부터 인증 서버에 전달되는 인증 요청을 나타낸다.
도 7은 다양한 실시예들에 따라 인증 서버의 인증 결과로 생성된 암호화된 정보를 나타낸다.
도 8은 다양한 실시예들에 따라 인증 서버의 인증 결과로 수신된 암호화된 어플리케이션 인증서에 기초하여 어플리케이션 서명 키를 생성하는 작업을 도시한다.
도 9는 다양한 실시예들에 따른 전자 장치의 블록도를 도시한다.
도 10은 다양한 실시예에 따른 인증 시스템에서 어플리케이션을 인증하는 방법을 나타낸다.
이하, 본 발명의 다양한 실시예가 첨부된 도면과 연관되어 기재된다. 본 발명의 다양한 실시예는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있다. 그러나, 이는 본 발명의 다양한 실시예를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 다양한 실시예의 사상 및 기술 범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용되었다.
본 발명의 다양한 실시예에서 사용될 수 있는“포함한다” 또는 “포함할 수 있다” 등의 표현은 개시(disclosure)된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한, 본 발명의 다양한 실시예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명의 다양한 실시예에서 “또는” 또는 “A 또는/및 B 중 적어도 하나” 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, “A 또는 B” 또는 “ A 또는/및 B 중 적어도 하나” 각각은, A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.
본 발명의 다양한 실시예에서 사용된 “제 1,”“제2,”“첫째,”또는“둘째,”등의 표현들은 다양한 실시예들의 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들어, 제1 사용자 기기와 제 2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 발명의 다양한 실시예의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 발명의 다양한 실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 다양한 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 다양한 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명의 다양한 실시예에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 다양한 실시예에 따른 전자 장치는, 통신 기능이 포함된 장치일 수 있다. 예를 들면, 전자 장치는 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 전자 안경과 같은 head-mounted-device(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 또는 스마트 와치(smart watch))중 적어도 하나를 포함할 수 있다.
어떤 실시예들에 따르면, 전자 장치는 통신 기능을 갖춘 스마트 가전 제품(smart home appliance)일 수 있다. 스마트 가전 제품은, 예를 들자면, 전자 장치는 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSync™, 애플TV™, 또는 구글 TV™), 게임 콘솔(game consoles), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에 따르면, 전자 장치는 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치 및 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛, 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller's machine) 또는 상점의 POS(point of sales) 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에 따르면, 전자 장치는 통신 기능을 포함한 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 본 발명의 다양한 실시예에 따른 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 또한, 본 발명의 다양한 실시예에 따른 전자 장치는 플렉서블 장치일 수 있다. 또한, 본 발명의 다양한 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.
이하, 첨부된 도면을 참조하여 다양한 실시예에 따른 전자 장치에 대해서 살펴본다. 다양한 실시예에서 이용되는 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 다양한 실시예에 따른 인증 시스템을 도시한다. 도 1을 참조하면, 인증 시스템은 전자 장치 100, 작업 단말 200 및 인증 서버 300으로 구성될 수 있다.
도 1의 인증 시스템은 인증 기관 300에 의해 인증된 전자 장치 100에서만 개발용 어플리케이션의 설치가 가능하도록 어플리케이션 서명 키를 통해 개발용 어플리케이션의 설치를 제한할 수 있다. 본 발명의 다양한 실시예들에 따른 어플리케이션은 실행 코드, 실행 코드가 참조하는 데이터, 화면 구성을 위한 리소스, 어플리케이션이 액세스할 수 있는 데이터나 기능을 정의한 어플리케이션 권한 정보, 어플리케이션 전체 서명값, 어플리케이션 서명 키의 검증을 위한 공개키, 상기 공개키를 검증하기 위한 인증 기관(authority) 공개키, 또는 테스트 전자 장치의 DUID(device unique ID) 등을 포함할 수 있다.
전자 장치 100은 개발자 10가 작성한 어플리케이션을 실제의 사용 환경에서 테스트하기 위한 테스트 전자 장치가 될 수 있다. 전자 장치 100가 어플리케이션을 수신(예: 다운로드)하면, 전자 장치 100은 해당 어플리케이션이 인증 기관에 의해 인증된 어플리케이션 서명 키를 포함하는지, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 어느 것에 매칭되는지, 상기 전자 장치 100가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지 등에 관하여 상기 어플리케이션 서명 키를 검증하고, 상기 어플리케이션 서명 키의 검증 결과에 기초하여, 상기 어플리케이션을 설치할 수 있다. 어플리케이션은 개발 단계의 개발용 어플리케이션과, 상용 기관에 의해서 상용 제품으로 인증된 상용 어플리케이션으로 나눌 수 있다.
전자 장치 100는 수신한 어플리케이션이 상용 어플리케이션에 해당하면, 해당 어플리케이션을 설치할 수 있다. 전자 장치 100는 수신한 어플리케이션이 개발용 어플리케이션에 해당하면, 전자 장치 100가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증할 수 있다. 전자 장치 100는 상기 어플리케이션 서명 키에 기반하여 상기 전자 장치 100가 인증 기관에 의해 인증된 테스트 전자 장치에 해당하는지 여부를 판단할 수 있다. 예를 들면, 전자 장치 100는 상기 전자 장치의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증할 수 있다. 개발용 어플리케이션은 테스트 전자 장치로써 인증 기관에 등록된 전자 장치에서만 설치될 수 있도록, 인증 기관의 인증과 어플리케이션 서명을 통해서 개발용 어플리케이션의 설치를 제한할 수 있다.
일 실시예에 따라, 상기 전자 장치 100는 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나는지에 관하여 상기 어플리케이션 서명 키를 검증할 수 있다. 상기 전자 장치 100는 상기 어플리케이션이 상기 인증 기관에 의해 인증된 상기 어플리케이션 권한 범위 내에서만 상기 전자 장치 100에 액세스할 수 있도록, 상기 어플리케이션 서명 키를 이용하여 개발용 어플리케이션의 설치를 제한할 수 있다. 예를 들면, 상기 전자 장치 100는 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능을 체크하고, 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능이 상기 어플리케이션 권한 범위를 벗어나면 상기 전자 장치 100는 상기 어플리케이션을 설치하지 않을 수 있다.
작업 단말 200은 사용자에 의해 입력된 개발자 정보 및 테스트 전자 장치에 관한 정보에 기초하여 인증 기관에 상기 테스트 전자 장치에 대한 인증을 요청할 수 있다. 상기 개발자 정보는 개발자의 이름, 개발자의 이메일 어드레스, 개발자의 주소, 인증 기관에 등록된 개발자 계정 정보, 또는 개발자 형태(developer type) 중 적어도 하나를 포함할 수 있다. 상기 테스트 전자 장치에 관한 정보는 테스트 전자 장치의 고유 ID, 개발자 10가 요청하는 어플리케이션 권한 레벨 등을 포함할 수 있다. 상기 어플리케이션 권한 레벨은 어플리케이션이 테스트 전자 장치에서 액세스할 수 있는 데이터나 기능을 권한에 따라 단계 별로 구별한 것일 수 있다.
예를 들면, 개발용 어플리케이션을 상기 전자 장치 100에서 테스트하기 위해서, 상기 개발자 10는 테스트 전자 장치로써 상기 전자 장치 100에 관한 정보를 상기 작업 단말 200에 입력하여, 상기 인증 기관에 상기 전자 장치 100에 대한 인증을 요청할 수 있다.
또는, 개발용 어플리케이션에서 필요한 데이터나 기능을 이용하기 위해서, 상기 개발자 10는 상기 테스트 전자 장치에 대한 인증 요청에 상기 개발자 10가 원하는 어플리케이션 권한 레벨을 포함시켜 상기 인증 서버 300에 인증을 요청할 수 있다.
작업 단말 200은 이메일(e-mail), 웹(web) 등을 통해서 상기 인증 기관의 인증 서버 300에 상기 테스트 전자 장치에 대한 인증을 요청할 수 있다. 작업 단말 200은 인증 기관에 미리 등록된 개발자 정보(예: 인증 기관에 등록된 개발자 계정 정보)를 이용하여 상기 테스트 전자 장치에 대한 인증을 요청하거나, 또는, 작업 단말 200은 상기 테스트 전자 장치에 대한 인증 요청 시에 사용자로부터 개발자의 인증에 필요한 정보(예: 개발자의 이름, 개발자의 이메일 어드레스, 개발자의 주소 등)를 입력 받아, 상기 테스트 전자 장치에 대한 인증과 개발자에 대한 인증을 함께 요청할 수 있다.
예컨대, 작업 단말 200은 인증 서버 300의 웹 페이지를 통해서 입력된 개발자 정보 및 테스트 전자 장치에 관한 정보를 인증 서버 300로 전송함으로써, 상기 인증 기관에 상기 테스트 전자 장치에 대한 인증을 요청할 수 있다. 또는, 작업 단말 200은 사용자에 의해 입력된 개발자 정보 및 테스트 전자 장치에 관한 정보에 기초하여 상기 개발자 및 상기 테스트 전자 장치에 대한 인증을 요청하는 요청 파일을 생성하고, 상기 요청 파일을 이메일 또는 웹을 통해 인증 서버 300에 전송함으로써, 상기 인증 기관에 상기 테스트 전자 장치에 대한 인증을 요청할 수 있다.
인증 서버 300는 인증을 수행하는 인증 기관(certificate authority, CA)의 서버가 될 수 있다. 인증 서버 300는 상기 인증 요청에 대응하여, 상기 테스트 전자 장치에 대한 인증을 수행할 수 있다. 예를 들면, 인증 서버 300는 상기 인증 요청 시 수신된 개발자 정보(상기 인증 기관에 미리 등록된 개발자 정보 또는 상기 개발자의 인증에 필요한 정보)에 기초하여, 개발자의 어플리케이션 개발 이력, 개발자의 신용 정보, 인증에 필요한 정보의 누락 여부 등에 기초하여 인증을 수행할 수 있다.
예를 들면, 상기 개발자가 개발한 어플리케이션이 과거에 문제가 된 이력이 있는 경우, 인증 서버 300는 상기 인증 요청에 대하여 인증하지 않을 수 있다. 상기 인증 서버 300가 상기 테스트 전자 장치에 대한 인증을 수행할 때, 상기 인증 서버 300는 개발자 정보에 기초하여, 개발자에 따라 어플리케이션 권한 정보를 설정할 수 있다. 상기 어플리케이션 권한 정보는 개발자가 개발용 어플리케이션을 이용하여 액세스할 수 있는 전자 장치의 데이터나 기능을 정의한 것일 수 있다. 인증 서버 300는 상기 테스트 전자 장치에 대한 인증의 결과로 생성되는 암호화된 정보에 상기 설정된 어플리케이션 권한 정보를 포함시킬 수 있다.
예를 들면, 인증 서버 300는 상기 인증 요청 시 수신된 상기 개발자 정보에 기초하여 해당 개발자에 적합한 어플리케이션 권한 정보를 설정할 수 있다. 또는, 상기 인증 서버 300는 상기 인증 요청에 포함된 사용자가 요청한 어플리케이션 권한 레벨에 더 기초하여, 상기 어플리케이션 권한 정보를 설정할 수 있다. 예컨대, 상기 개발자 10가 원하는 어플리케이션 권한 레벨을 상기 인증 요청에 포함시켜 상기 테스트 전자 장치에 대한 인증을 요청한 경우, 상기 인증 서버 300는 상기 개발자 정보에 기초하여, 상기 개발자가 요청한 어플리케이션 권한 레벨을 허용할지 여부를 결정하고, 상기 결정에 따라, 해당 개발자에 적합한 어플리케이션 권한 정보를 설정할 수 있다.
인증 서버 300는 상기 인증 결과에 따라, 상기 테스트 전자 장치에 대한 암호화된 정보를 생성하여 개발자 10에게 전송할 수 있다. 상기 암호화된 정보는 어플리케이션 서명 키를 암호화한 정보, 또는 상기 어플리케이션 서명 키를 생성할 수 있는 어플리케이션 인증서(application certificate)를 암호화한 정보를 포함할 수 있다.
다양한 실시예에 따라, 인증 서버 300는 개발자에 대한 인증을 더 수행할 수 있다. 예를 들면, 상기 인증 서버 300는 상기 개발자의 인증에 필요한 정보에 기초하여, 해당 개발자에 대한 개발자 서명 키 또는 상기 개발자 서명 키를 생성할 수 있는 개발자 인증서(developer certificate)를 생성할 수 있다.
일 실시예에 따라, 개발자 10가 테스트 전자 장치에 대한 인증과 개발자에 대한 인증을 함께 요청한 경우, 상기 인증 서버 300는 상기 개발자에 대한 인증의 결과로 생성된 개발자 서명 키 또는 개발자 인증서를 상기 테스트 전자 장치에 대한 인증의 결과인 암호화된 정보와 별개로 상기 개발자 10에게 전송할 수 있다. 또는, 상기 인증 서버 300는 상기 개발자에 대한 인증의 결과로 생성된 개발자 서명 키 또는 개발자 인증서를 상기 테스트 전자 장치에 대한 인증의 결과인 암호화된 정보와 함께 하나의 레지스트레이션 파일(registration file)에 포함시켜서 상기 개발자 10에게 전송할 수 있다.
예컨대, 상기 인증 서버 300가 상기 인증 요청에 대하여 상기 테스트 전자 장치를 인증하면, 상기 인증 서버 300는 상기 개발자 서명 키를 생성할 수 있는 개발자 인증서 및 어플리케이션 서명 키를 생성할 수 있는 어플리케이션 인증서를 각각 암호화하여, 개발자 및 테스트 전자 장치에 대한 암호화된 정보를 포함하는 레지스트레이션 파일을 생성하고, 생성된 레지스트레이션 파일을 상기 개발자 10에게 전송할 수 있다.
작업 단말 200은 상기 인증 요청 시 입력한 개발자 정보(예: 개발자 계정 정보 또는 개발자의 이메일 주소)를 통해 인증 서버 300로부터 상기 암호화된 정보를 수신할 수 있다. 예를 들면, 작업 단말 200은 상기 암호화된 정보로, 상기 인증 기관에 의해 인증된 암호화된 어플리케이션 서명 키를 수신하거나, 또는, 어플리케이션 서명 키를 생성할 수 있는 암호화된 어플리케이션 인증서를 받을 수 있다.
일 실시예에 따르면, 작업 단말 200은 인증 서버 300로부터 암호화된 어플리케이션 서명 키를 수신하고, 패스워드를 이용하여 상기 암호화된 어플리케이션 서명 키를 복호화하여, 상기 어플리케이션 서명 키를 획득할 수 있다.
일 실시예에 따르면, 작업 단말 200은 인증 서버 300로부터 암호화된 어플리케이션 인증서를 수신하고, 상기 암호화된 어플리케이션 인증서에 기초하여 상기 어플리케이션 서명 키를 생성할 수 있다.
일 실시예에 따르면, 작업 단말 200은 인증 서버 300로부터 개발자 및 테스트 전자 장치에 대한 암호화된 정보를 포함하는 레지스트레이션 파일을 수신하고, 상기 레지스트레이션 파일에 기초하여 개발자 서명 키와 어플리케이션 서명 키를 각각 생성할 수 있다.
이 외에도, 다양한 실시예에 따라, 작업 단말 200은 인증 서버 300로부터 수신된 암호화된 정보에 기초하여 어플리케이션 서명 키를 획득하고, 획득된 어플리케이션 서명 키를 개발용 어플리케이션의 서명에 이용할 수 있다.
테스트할 개발용 어플리케이션이 작성되면, 개발자 10는어플케이션 서명 키로 상기 작성된 어플리케이션을 서명한 후, 상기 인증 기관에 등록한 테스트 전자 장치에 상기 작성된 어플리케이션을 테스트할 수 있다.
이상에서와 같이, 테스트 전자 장치의 인증을 통해서, 개발용 어플리케이션의 경우, 인증 기관에 등록된 테스트 전자 장치에서만 설치되거나 실행되도록 할 수 있다. 인증된 테스트 전자 장치 이외의 단말에서는 상용 기관에 의해 배포되는 상용 어플리케이션만 설치가 가능하도록 할 수 있다.
또한, 어플리케이션 서명 키를 포함하고 있지 않거나, 상용 기관 또는 인증 기관에 의해 인증된 어플리케이션 서명 키를 포함하고 있지 않은 어플리케이션은 전자 장치에 설치나 실행되지 않도록 제한될 수 있다. 이에 따라, 개발 환경과 상용 환경이 구분될 수 있다.다양한 실시예에 따른 인증 시스템은 사용자에 의해 입력된 개발자 정보 및 테스트 전자 장치에 관한 정보에 기초하여 인증 서버에 상기 테스트 전자 장치에 대한 인증을 요청하고, 상기 인증 서버의 인증 결과로 생성된 암호화된 정보에 기초하여 어플리케이션 서명 키를 획득하고, 상기 어플리케이션 서명 키로 개발된 어플리케이션을 서명하는 작업 단말과, 상기 인증 요청에 기초하여, 상기 테스트 전자 장치에 대한 인증을 수행하고, 상기 인증 결과에 따라 어플리케이션 권한 정보 및 상기 테스트 전자 장치의 고유 ID를 포함하는 상기 암호화된 정보를 생성하는 인증 서버를 포함할 수 있다.
다양한 실시예에 따르면, 상기 암호화된 정보는 상기 어플리케이션 서명 키를 암호화한 정보 또는 상기 어플리케이션 서명 키를 생성할 수 있는 어플리케이션 인증서를 암호화한 정보일 수 있다.
다양한 실시예에 따르면, 상기 인증 시스템은 어플리케이션의 수신에 대응하여, 상기 어플리케이션에 포함된 어플리케이션 서명 키를 확인하고, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 상기 전자 장치가 인증 기관에 의해 인증된 개발 단말에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하고, 상기 어플리케이션 서명 키의 검증 결과에 기반하여, 상기 어플리케이션을 설치하는 전자 장치를 포함할 수 있다.
다양한 실시예에 따르면, 상기 전자 장치는 상기 어플리케이션 서명 키의 검증 결과, 상기 전자 장치의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하지 않으면, 상기 어플리케이션을 설치하지 않을 수 있다.
다양한 실시예에 따르면, 상기 전자 장치는 상기 어플리케이션 서명 키의 검증 결과, 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 정보와 일치하지 않으면, 상기 어플리케이션을 설치하지 않을 수 있다.
다양한 실시예에 따르면, 상기 인증 서버는 상기 인증 요청에 포함된 개발자 정보에 기초하여, 상기 개발자에 따라 상기 어플리케이션 권한 정보를 설정할 수 있다.
다양한 실시예에 따르면, 상기 인증 서버는 상기 인증 요청에 포함된 상기 사용자가 요청한 어플리케이션 권한 레벨에 더 기초하여, 상기 어플리케이션 권한 정보를 설정할 수 있다.
도 2는 다양한 실시예에 따른, 전자 장치 101을 포함하는 네트워크 환경을 도시한다. 도 1을 참조하면, 상기 전자 장치 101는 버스 110, 프로세서 120, 메모리 130, 입출력 인터페이스 140, 디스플레이 150, 통신 인터페이스 160 및 어플리케이션 인증 모듈 170을 포함할 수 있다.
상기 버스 110는 전술한 구성요소들을 서로 연결하고, 전술한 구성요소들 간의 통신(예: 제어 메시지)을 전달하는 회로일 수 있다.
상기 프로세서 120는, 예를 들면, 상기 버스 110를 통해 전술한 다른 구성요소들(예: 상기 메모리 130, 상기 입출력 인터페이스 140, 상기 디스플레이 150, 상기 통신 인터페이스 160, 또는 상기 어플리케이션 인증 모듈 170 등)로부터 명령을 수신하여, 수신된 명령을 해독하고, 해독된 명령에 따른 연산이나 데이터 처리를 실행할 수 있다.
상기 프로세서 120는 어플리케이션 인증 모듈 170에서 수행하는 어플리케이션 서명 키의 검증 결과에 따라 상기 어플리케이션을 설치할 수 있다. 예를 들면, 상기 프로세서 120는 상기 어플리케이션 서명 키의 검증 결과, 상기 전자 장치 101의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치 101의 고유 ID와 일치하지 않으면, 상기 어플리케이션을 설치하지 않을 수 있다. 또는, 상기 프로세서 120는 상기 어플리케이션 서명 키의 검증 결과, 상기 어플리케이션이 액세스하는 상기 전자 장치 101의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나면, 상기 어플리케이션을 설치하지 않을 수 있다.
일 실시예에 따르면, 상기 프로세서 120는 상기 어플리케이션 서명 키가 상기 개발용 서명 키와 상기 상용 서명 키 중 어느 것에도 매칭되지 않으면, 상기 어플리케이션을 설치하지 않을 수 있다.
상기 메모리 130는, 상기 프로세서 120 또는 다른 구성요소들(예: 상기 입출력 인터페이스 140, 상기 디스플레이 150, 상기 통신 인터페이스 160, 또는 상기 어플리케이션 인증 모듈 170 등)로부터 수신되거나 상기 프로세서 120 또는 다른 구성요소들에 의해 생성된 명령 또는 데이터를 저장할 수 있다. 상기 메모리 130는, 상기 개발용 서명 키, 상기 상용 서명 키 및 상기 전자 장치 101의 고유 ID를 저장할 수 있다. 상기 메모리 130는, 예를 들면, 커널 131, 미들웨어 132, 어플리케이션 프로그래밍 인터페이스(API: application programming interface) 133 또는 어플리케이션 134 등의 프로그래밍 모듈들을 포함할 수 있다. 전술한 각각의 프로그래밍 모듈들은 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다.
상기 커널 131은 나머지 다른 프로그래밍 모듈들, 예를 들면, 상기 미들웨어 132, 상기 API 133 또는 상기 어플리케이션 134에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 상기 버스 110, 상기 프로세서 120 또는 상기 메모리 130 등)을 제어 또는 관리할 수 있다. 또한, 상기 커널 131은 상기 미들웨어 132, 상기 API 133 또는 상기 어플리케이션 134에서 상기 전자 장치 101의 개별 구성요소에 접근하여 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
상기 미들웨어 132는 상기 API 133 또는 상기 어플리케이션 134이 상기 커널 131과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 상기 미들웨어 132는 상기 어플리케이션 134로부터 수신된 작업 요청들과 관련하여, 예를 들면, 상기 어플리케이션 134 중 적어도 하나의 어플리케이션에 상기 전자 장치 101의 시스템 리소스(예: 상기 버스 110, 상기 프로세서 120 또는 상기 메모리 130 등)를 사용할 수 있는 우선 순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 제어(예: 스케쥴링 또는 로드 밸런싱)을 수행할 수 있다.
상기 API 133는 상기 어플리케이션 134이 상기 커널 131 또는 상기 미들웨어 132에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
다양한 실시예에 따르면, 상기 어플리케이션 134는 SMS/MMS 어플리케이션, 이메일 어플리케이션, 달력 어플리케이션, 알람 어플리케이션, 건강 관리(health care) 어플리케이션(예: 운동량 또는 혈당 등을 측정하는 어플리케이션) 또는 환경 정보 어플리케이션(예: 기압, 습도 또는 온도 정보 등을 제공하는 어플리케이션) 등을 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 어플리케이션 134은 상기 전자 장치 101와 외부 전자 장치(예: 전자 장치 201) 사이의 정보 교환과 관련된 어플리케이션일 수 있다. 상기 정보 교환과 관련된 어플리케이션은, 예를 들어, 상기 외부 전자 장치에 특정 정보를 전달하기 위한 알림 전달(notification relay) 어플리케이션, 또는 상기 외부 전자 장치를 관리하기 위한 장치 관리(device management) 어플리케이션을 포함할 수 있다.
예를 들면, 상기 알림 전달 어플리케이션은 상기 전자 장치 101 의 다른 어플리케이션(예: SMS/MMS 어플리케이션, 이메일 어플리케이션, 건강 관리 어플리케이션 또는 환경 정보 어플리케이션 등)에서 발생한 알림 정보를 외부 전자 장치(예: 전자 장치 201)로 전달하는 기능을 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 알림 전달 어플리케이션은, 예를 들면, 외부 전자 장치(예: 전자 장치 201)로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 상기 장치 관리 어플리케이션은, 예를 들면, 상기 전자 장치 101와 통신하는 외부 전자 장치(예: 전자 장치 201)의 적어도 일부에 대한 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴온/턴오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 상기 외부 전자 장치에서 동작하는 어플리케이션 또는 상기 외부 전자 장치에서 제공되는 서비스(예: 통화 서비스 또는 메시지 서비스)를 관리(예: 설치, 삭제 또는 업데이트)할 수 있다.
다양한 실시예에 따르면, 상기 어플리케이션 134은 상기 외부 전자 장치(예: 전자 장치 201)의 속성(예: 전자 장치의 종류)에 따라 지정된 어플리케이션을 포함할 수 있다. 예를 들어, 외부 전자 장치가 MP3 플레이어인 경우, 상기 어플리케이션 134은 음악 재생과 관련된 어플리케이션을 포함할 수 있다. 유사하게, 외부 전자 장치가 모바일 의료기기인 경우, 상기 어플리케이션 134은 건강 관리와 관련된 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 상기 어플리케이션 134은 전자 장치 101에 지정된 어플리케이션 또는 외부 전자 장치(예: 서버 301 또는 전자 장치 201)로부터 수신된 어플리케이션 중 적어도 하나를 포함할 수 있다.
상기 입출력 인터페이스 140은, 입출력 장치(예: 센서, 키보드 또는 터치 스크린)를 통하여 사용자로부터 입력된 명령 또는 데이터를, 예를 들면, 상기 버스 110를 통해 상기 프로세서 120, 상기 메모리 130, 상기 통신 인터페이스 160, 또는 상기 어플리케이션 인증 모듈 170에 전달할 수 있다. 예를 들면, 상기 입출력 인터페이스 140은 터치 스크린을 통하여 입력된 사용자의 터치에 대한 데이터를 상기 프로세서 120로 제공할 수 있다. 또한, 상기 입출력 인터페이스 140은, 예를 들면, 상기 버스 110을 통해 상기 프로세서 120, 상기 메모리 130, 상기 통신 인터페이스 160, 또는 상기 어플리케이션 인증 모듈 170로부터 수신된 명령 또는 데이터를 상기 입출력 장치(예: 스피커 또는 디스플레이)를 통하여 출력할 수 있다. 예를 들면, 상기 입출력 인터페이스 140은 상기 프로세서 120를 통하여 처리된 음성 데이터를 스피커를 통하여 사용자에게 출력할 수 있다.
상기 디스플레이 150은 사용자에게 각종 정보(예: 멀티미디어 데이터 또는 텍스트 데이터 등)을 표시할 수 있다.
상기 통신 인터페이스 160은 상기 전자 장치 101와 외부 장치(예: 전자 장치 201 또는 서버 301) 간의 통신을 연결할 수 있다. 상기 통신 인터페이스 160은 외부 장치(예: 전자 장치 201 또는 서버 301)로부터 어플리케이션을 수신할 수 있다.
예를 들면, 상기 통신 인터페이스 160은 무선 통신 또는 유선 통신을 통해서 네트워크 20에 연결되어 상기 외부 장치와 통신할 수 있다. 상기 무선 통신은, 예를 들어, Wifi(wireless fidelity), BT(Bluetooth), NFC(near field communication), GPS(global positioning system) 또는 cellular 통신(예: LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro 또는 GSM 등) 중 적어도 하나를 포함할 수 있다. 상기 유선 통신은, 예를 들어, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232) 또는 POTS(plain old telephone service) 중 적어도 하나를 포함할 수 있다.
한 실시예에 따르면, 상기 네트워크 20는 통신 네트워크(telecommunications network)일 수 있다. 상기 통신 네트워크는 컴퓨터 네트워크(computer network), 인터넷(internet), 사물 인터넷(internet of things) 또는 전화망(telephone network) 중 적어도 하나를 포함할 수 있다. 한 실시예에 따르면, 상기 전자 장치 101와 외부 장치 간의 통신을 위한 프로토콜(예: transport layer protocol, data link layer protocol 또는 physical layer protocol))은 어플리케이션 134, 어플리케이션 프로그래밍 인터페이스 133, 상기 미들웨어 132, 커널 131 또는 통신 인터페이스 160 중 적어도 하나에서 지원될 수 있다.
어플리케이션 인증 모듈 170은, 상기 어플리케이션에 포함된 어플리케이션 서명 키를 확인할 수 있다. 상기 어플리케이션 서명 키는 상용 기관에 의해 상용 어플리케이션으로 인증된 상용 어플리케이션의 서명에 사용된 어플리케이션 서명 키이거나, 인증 기관에 의해 인증된 테스트 전자 장치에서 테스트하기 위하여 개발 중인 어플리케이션의 서명에 사용된 어플리케이션 서명 키가 될 수 있다.
어플리케이션 인증 모듈 170은, 상기 어플리케이션이 상용 기관 또는 인증 기관에 의해 인증된 어플리케이션 서명 키를 포함하는지, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 어느 것에 매칭되는지 등을 확인할 수 있다.
상기 어플리케이션 서명 키가 상기 개발용 서명 키와 상기 상용 서명 키 중 어느 것에도 매칭되지 않으면, 상기 프로세서 120는 상기 어플리케이션을 상기 전자 장치 101에 설치하지 않을 수 있다.
상기 어플리케이션 서명 키가 상기 상용 서명 키에 매칭되면, 상기 프로세서 120는 상기 전자 장치 101에 상기 어플리케이션을 설치할 수 있다.
상기 어플리케이션 서명 키가 개발용 서명 키에 매칭되면, 어플리케이션 인증 모듈 170은 상기 전자 장치 101가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증할 수 있다. 상기 전자 장치 101가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하면, 상기 프로세서 120는 상기 전자 장치 101에 상기 어플리케이션을 설치할 수 있다.
예를 들면, 상기 어플리케이션 인증 모듈 170은 상기 전자 장치 101의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하는지 여부에 기초하여, 상기 전자 장치 101가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지 여부를 판단할 수 있다.
또는, 상기 어플리케이션 인증 모듈 170은 상기 어플리케이션이 액세스하는 상기 전자 장치 101의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나는지 여부에 기초하여, 상기 전자 장치 101가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지 여부를 판단할 수 있다. 상기 어플리케이션이 액세스하는 상기 전자 장치 101의 데이터 또는 기능은 상기 어플리케이션 인증 모듈 170에 의해 체크될 수 있다.
일 실시예에 따르면, 상기 어플리케이션 인증 모듈 170은, 상기 어플리케이션 서명 키의 인증 기관을 더 식별할 수 있다. 상기 어플리케이션 인증 모듈 170은, 상기 식별 결과에 따라 상기 어플리케이션 서명 키가 식별된 인증 기관의 개발용 서명 키와 상용 서명 키 중 어느 것에 매칭되는지 여부를 결정할 수 있다.
어플리케이션 인증 모듈 170은, 다른 구성요소들(예: 상기 프로세서 120, 상기 메모리 130, 상기 입출력 인터페이스 140, 또는 상기 통신 인터페이스 160 등)로부터 획득된 정보 중 적어도 일부를 처리하고, 이를 다양한 방법으로 사용자에게 제공할 수 있다. 예를 들면, 상기 어플리케이션 인증 모듈 170는 상기 프로세서 120를 이용하여 또는 이와는 독립적으로, 상기 전자 장치 101이 다른 전자 기기(예: 전자 장치 201 또는 서버 301)와 연동하도록 상기 전자 장치 101의 적어도 일부 기능을 제어할 수 있다. 한 실시예에 따르면, 어플리케이션 인증 모듈 170의 적어도 하나의 구성은 상기 서버 301에 포함될 수 있으며, 상기 서버 301로부터 어플리케이션 인증 모듈 170에서 구현되는 적어도 하나의 동작을 지원받을 수 있다.
다양한 실시예에 따르면, 상기 전자 장치 101는 어플리케이션을 수신하는 통신 인터페이스 160, 상기 어플리케이션에서 어플리케이션 서명 키를 확인하고, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 상기 전자 장치 101가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하는 어플리케이션 인증 모듈 170과, 상기 어플리케이션 서명 키의 검증 결과에 기반하여, 상기 어플리케이션을 설치하는 프로세서 120를 포함할 수 있다.
다양한 실시예에 따라, 상기 전자 장치 101는 상기 개발용 서명 키, 상기 상용 서명 키 및 상기 전자 장치의 고유 ID를 저장하는 메모리 130를 더 포함할 수 있다.
다양한 실시예에 따라, 상기 어플리케이션 서명 키는 인증 기관에 의해 암호화된 어플리케이션 권한 정보 및 테스트 전자 장치의 고유 ID를 포함할 수 있다.
다양한 실시예에 따라, 상기 어플리케이션 서명 키는 인증 기관에 의해 암호화된 어플리케이션 정보 또는 만료 일자 중 적어도 하나를 더 포함할 수 있다.
다양한 실시예에 따라, 상기 어플리케이션 인증 모듈 170은 상기 전자 장치 101의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하는지에 관하여, 상기 어플리케이션 서명 키를 검증할 수 있다. 상기 프로세서 120는 상기 전자 장치 101의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하지 않으면, 상기 어플리케이션을 설치하지 않을 수 있다.
다양한 실시예에 따라, 상기 어플리케이션 인증 모듈 170은 상기 어플리케이션이 액세스하는 상기 전자 장치 101의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나는지에 관하여 상기 어플리케이션 서명 키를 검증할 수 있다. 상기 프로세서 120는 상기 어플리케이션이 액세스하는 상기 전자 장치 101의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나면, 상기 어플리케이션을 설치하지 않을 수 있다.
다양한 실시예에 따라, 상기 프로세서 120는 상기 어플리케이션 서명 키가 상기 상용 서명 키에 매칭되면, 상기 어플리케이션을 상기 전자 장치 101에 설치할 수 있다.
다양한 실시예에 따라, 상기 프로세서 120는 상기 어플리케이션 서명 키가 상기 개발용 서명 키와 상기 상용 서명 키 중 어느 것에도 매칭되지 않으면, 상기 어플리케이션을 상기 전자 장치 101에 설치하지 않을 수 있다.
다양한 실시예에 따라, 상기 어플리케이션 인증 모듈 170은 상기 어플리케이션 서명 키의 인증 기관을 식별하고, 상기 어플리케이션 서명 키가 식별된 인증 기관의 개발용 서명 키와 상용 서명 키 중 어느 것에 매칭되는지 여부를 결정할 수 있다.
도 3은 다양한 실시예에 따른 전자 장치에서 어플리케이션 설치를 관리하는 방법을 나타낸다.
도 3에 도시된 흐름도는 도 1 내지 도 2에 도시된 전자 장치에서 처리되는 동작들로 구성된다. 이하에서 생략된 내용이라 하더라도 도 1 내지 도 2에 도시된 전자 장치에 관하여 이상에서 기술된 내용은 도 3에 도시된 흐름도에도 적용될 수 있다.
310 동작에서 통신 인터페이스 160는 어플리케이션을 수신한다.
320 동작에서 어플리케이션 인증 모듈 170은 어플리케이션이 어플리케이션 서명 키를 포함하는지 여부를 확인한다. 일 실시예에 따르면, 어플리케이션 서명 키는 인증 기관에 의해 어플리케이션 권한 정보 및 테스트 전자 장치의 고유 ID를 포함할 수 있다. 다른 실시예에 따르면, 상기 어플리케이션 서명 키는 인증 기관에 의해 암호화된 어플리케이션 정보 또는 만료 일자 중 적어도 하나를 더 포함할 수 있다.
어플리케이션이 어플리케이션 서명 키를 포함하면, 어플리케이션 인증 모듈 170은 330 동작을 수행할 수 있다. 어플리케이션이 어플리케이션 서명 키를 포함하고 있지 않으면, 프로세서 120는 상기 어플리케이션을 설치하지 않고, 어플리케이션 설치를 위한 프로세스를 종료할 수 있다.
330 동작에서 어플리케이션 인증 모듈 170은 어플리케이션 서명 키가 개발용 서명 키에 매칭되는지 여부를 결정한다.
어플리케이션 서명 키가 개발용 서명 키에 매칭되면, 프로세서 120는 350 동작을 수행할 수 있다. 어플리케이션 서명 키가 개발용 서명 키에 매칭되지 않으면, 어플리케이션 인증 모듈 170은 360 동작을 수행할 수 있다.
340 동작에서 어플리케이션 인증 모듈 170은 어플리케이션을 수신한 전자 장치 100가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지 여부에 관하여 상기 어플리케이션 서명 키를 검증한다.
예를 들면, 어플리케이션 인증 모듈 170은 상기 전자 장치 100의 고유 ID와 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID의 일치 여부에 기초하여, 상기 전자 장치 100가 상기 어플리케이션 서명 키에 정의된 상기 테스트 전자 장치에 대한 정보와 일치하는지 여부를 검증할 수 있다.
또는, 어플리케이션 인증 모듈 170은 상기 어플리케이션이 액세스하는 상기 전자 장치 100의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나는지 여부에 기초하여, 상기 전자 장치 100가 상기 어플리케이션 서명 키에 정의된 상기 테스트 전자 장치에 대한 정보와 일치하는지 여부를 검증할 수 있다.
전자 장치 100가 상기 어플리케이션 서명 키에 정의된 상기 테스트 전자 장치에 대한 정보와 일치하면, 프로세서 120는 350 동작을 수행할 수 있다. 전자 장치 100가 상기 어플리케이션 서명 키에 정의된 상기 테스트 전자 장치에 대한 정보와 일치하지 않으면, 프로세서 120는 상기 어플리케이션을 상기 전자 장치 100에 설치하지 않고, 상기 어플리케이션 설치를 위한 프로세스를 종료할 수 있다.
350 동작에서 프로세서 120는 상기 어플리케이션을 상기 전자 장치 100에 설치한다.
360 동작에서 어플리케이션 인증 모듈 170은 상기 어플리케이션 서명 키가 상용 서명 키에 매칭되는지 여부를 결정한다.
상기 어플리케이션 서명 키가 상용 서명 키에 매칭되면, 프로세서 120는 350 동작을 수행할 수 있다. 어플리케이션 서명 키가 상용 서명 키에 매칭되지 않으면, 프로세서 120는 상기 어플리케이션을 설치하지 않고, 어플리케이션 설치를 위한 프로세스를 종료할 수 있다.
다양한 실시예들에 따라, 어플리케이션 설치를 관리하는 방법은 전자 장치 100에서 어플리케이션을 수신하는 동작, 상기 어플리케이션에 포함된 어플리케이션 서명 키를 확인하는 동작, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 상기 전자 장치 100가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치 100에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하는 동작과, 상기 어플리케이션 서명 키의 검증 결과에 기반하여, 상기 어플리케이션을 설치하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 상기 어플리케이션 서명 키를 검증하는 동작은, 상기 전자 장치 100의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 상기 어플리케이션을 설치하는 동작은, 상기 전자 장치 100의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하지 않으면, 상기 어플리케이션을 설치하지 않을 수 있다.
다양한 실시예들에 따르면, 상기 어플리케이션 서명 키를 검증하는 동작은, 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능을 체크하는 동작과, 상기 체크 결과에 기반하여, 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나는지에 관하여 상기 어플리케이션 서명 키를 검증하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 상기 어플리케이션을 설치하는 동작은, 상기 어플리케이션이 액세스하는 상기 전자 장치 100의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나면, 상기 어플리케이션을 설치하지 않을 수 있다.
다양한 실시예들에 따르면, 상기 어플리케이션 서명 키는 인증 기관에 의해 암호화된 어플리케이션 권한 정보 및 테스트 전자 장치의 고유 ID를 포함할 수 있다.
또는, 상기 어플리케이션 서명 키는 인증 기관에 의해 암호화된 어플리케이션 정보 또는 만료 일자 중 적어도 하나를 더 포함할 수 있다.
다양한 실시예들에 따르면, 상기 테스트 전자 장치의 고유 ID는 emmc ID, IMEI(international mobile station equipment identity), 또는 MAC address 중 적어도 하나가 될 수 있다.
다양한 실시예들에 따라, 상기 어플리케이션 설치를 관리하는 방법은 상기 어플리케이션 서명 키가 상기 상용 서명 키에 매칭되면, 상기 어플리케이션을 상기 전자 장치 100에 설치하는 동작을 포함할 수 있다.
다양한 실시예들에 따라, 상기 어플리케이션 서명 키가 상기 개발용 서명 키와 상기 상용 서명 키 중 어느 것에도 매칭되지 않으면, 상기 어플리케이션은 상기 전자 장치에서 설치되지 않을 수 있다.
도 4는 다양한 실시예에 따라 어플리케이션의 개발 환경과 어플리케이션의 상용 환경을 설명하기 위한 도면이다.
전자 장치 100는 네트워크 20을 통해서 어플리케이션을 수신할 수 있다. 전자 장치 100는 어플리케이션 상용 기관의 상용 서버 400를 통해서 어플리케이션을 수신하거나, 다른 전자 장치 500를 통해서 어플리케이션을 수신할 수 있다.
전자 장치 100는 수신된 어플리케이션이 인증 기관에 의해 인증된 어플리케이션인지 여부를 검증하고, 검증 결과에 기초하여, 어플리케이션을 설치할 수 있다.
전자 장치 100는 상기 어플리케이션에 포함된 어플리케이션 서명 키의 유무를 확인하고, 어플리케이션 서명 키가 있으면, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 어느 것에 매칭되는지 여부를 결정할 수 있다. 어플리케이션은 개발 단계의 개발용 어플리케이션과, 상용 기관에 의해서 상용 제품으로 인증된 상용 어플리케이션으로 나눌 수 있다. 어플리케이션 서명 키도 상용 기관에 의해 상용 어플리케이션의 인증에 사용된 어플리케이션 서명 키이거나, 인증 기관에 의해 인증된 테스트 전자 장치에서 테스트하기 위하여 개발 중인 어플리케이션의 서명에 사용된 어플리케이션 서명 키가 될 수 있다.
상기 어플리케이션 서명 키가 개발용 서명 키에 매칭되면, 상기 전자 장치 100가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증할 수 있다.
전자 장치 100는 수신한 어플리케이션이 상용 어플리케이션에 해당하면, 즉, 상기 어플리케이션 서명 키가 상기 상용 서명 키에 매칭되면, 상기 어플리케이션을 상기 전자 장치 100에 설치할 수 있다. 그러나, 수신한 어플리케이션이 개발용 어플리케이션에 해당하면, 즉, 상기 어플리케이션 서명 키가 상기 개발용 서명 키에 매칭되면, 상기 전자 장치 100가 인증 기관에 의해 인증된 테스트 전자 장치에 대한 정보와 일치하는지 여부를 검증한다.
개발용 어플리케이션은 테스트 전자 장치로 인증 기관에 인증된 전자 장치에 대해서만 설치되고 실행될 수 있도록, 인증 기관의 인증과 서명을 통해서 제한할 수 있다. 이에 따라, 인증 기관에 의해 인증된 테스트 전자 장치에서만 개발용 어플리케이션이 설치될 수 있다.
도 5는 본 발명의 다양한 실시예에 따라 인증을 요청하는 사용자 인터페이스 화면을 도시한다.
일 실시예에 따르면, 작업 단말 200은 도 5에 도시된 것과 같은 사용자 인터페이스 화면을 통해 사용자로부터 개발자 정보 및 테스트 전자 장치의 정보에 대한 사용자 입력을 수신할 수 있다. 예를 들면, 상기 사용자 인터페이스 화면은 인증 서버 300의에 의해 제공되는 웹 페이지가 될 수 있다. 또는, 상기 사용자 인터페이스 화면은 어플리케이션을 개발하는 툴인 SDK(software development kit)와 같은 상기 작업 단말 200에 설치된 프로그램을 통해 제공될 수 있다.
예컨대, 상기 작업 단말 200은 상기 사용자 인터페이스를 통해 입력된 사용자 입력에 기초하여 상기 테스트 전자 장치에 대한 인증을 요청하는 요청 파일(request file)(예: XML 파일)을 생성하고, 상기 요청 파일을 이메일 또는 웹을 통해 인증 서버 300에 전송함으로써, 상기 인증 기관에 상기 테스트 전자 장치에 대한 인증을 요청할 수 있다.
일 실시예에 따르면, 상기 사용자 인터페이스 화면은, 개발자 계정 정보, 권한 레벨(privilege level) 및 테스트 전자 장치의 고유 ID에 대한 사용자 입력을 요청하는 내용을 포함할 수 있다. 이때, 상기 개발자 계정 정보는 상기 인증 서버 300에 미리 등록된 것일 수 있다.
다양한 실시예들에 따라, 상기 사용자 인터페이스 화면은 개발자가 개인 개발자(individual)인지, 업체인지와 같은 개발자 형태(developer type) 등의 부수적인 개발자 정보에 대한 사용자 입력을 더 수신할 수 있다.
또는, 다양한 실시예에 따라, 상기 사용자 인터페이스 화면은 개발용 어플리케이션의 이름, 어플리케이션 정보, 인증 만료일자 등에 대한 사용자 입력을 더 수신할 수 있다. 예컨대, 인증 서버 300는 인증 요청을 위한 사용자 인터페이스 화면에 어플리케이션에 관한 정보(예: 어플리케이션 이름, 어플리케이션 정보, 인증 만료일자 등)를 더 포함시킴으로써, 개발용 어플리케이션의 이용을 어플리케이션 이름, 어플리케이션 정보, 인증 만료일 등으로 제한할 수 있다.
사용자는 상기 사용자 인터페이스 화면에 개발자 계정 정보, 개발자 형태(developer type)와 같은 개발자 정보 및 어플리케이션 권한 레벨(privilege level), 테스트 전자 장치의 고유 ID 등과 같은 테스트 전자 장치에 대한 정보를 입력한 후, 인증 요청을 위한 'Submit 버튼'을 누를 수 있다. 이에 대응하여, 작업 단말 200은 상기 사용자에 의해 입력된 개발자 정보 및 테스트 전자 장치에 관한 정보를 포함하는 인증 요청을 인증 서버 300로 전달할 수 있다. 작업 단말 200은 도 7과 같은 인증 요청을 상기 인증 서버 300로 전달할 수 있다.
작업 단말 200은 상기 인증 서버 300에 미리 등록된 개발자 계정 정보를 이용하여 상기 테스트 전자 장치에 대한 인증을 요청할 수 있지만, 작업 단말 200은 상기 인증 요청 시에 사용자로부터 개발자의 인증에 필요한 정보(예: 개발자의 이름, 개발자의 이메일 어드레스, 개발자의 주소, 인증 패스워드(password) 등)를 더 입력받아, 상기 테스트 전자 장치에 대한 인증과 개발자에 대한 인증을 함께 요청할 수도 있다.
도 6은 다양한 실시예들에 따라 작업 단말로부터 인증 서버에 전달되는 인증 요청을 나타낸다.
인증 요청은 도 6에 도시된 바와 같이 개발자 정보 및 테스트 전자 장치에 대한 정보를 포함할 수 있다. 예를 들면, 상기 개발자 정보는 인증 기관에 미리 등록된 개발자 정보(예: 인증 기관에 등록된 개발자 계정 정보)가 될 수 있다. 다양한 실시예에 따라, 상기 개발자 정보는 개발자가 개인 개발자(individual)인지, 업체인지와 같은 개발자 형태(developer type) 등을 더 포함할 수 있다.
상기 테스트 전자 장치에 대한 인증과 개발자에 대한 인증을 함께 요청하는 경우, 상기 개발자 정보는 개발자의 인증에 필요한 정보(예: 개발자의 이름, 개발자의 이메일 어드레스, 개발자의 주소 등)를 더 포함할 수 있다. 상기 테스트 전자 장치에 관한 정보는 테스트 전자 장치의 고유 ID, 개발자 10가 요청하는 어플리케이션 권한 레벨 등을 포함할 수 있다.
도 6을 참조하면, 인증 요청은 사용자 인터페이스 화면을 통해 수신한 개발자 정보를 포함할 수 있다. 도 6에 도시된 인증 요청은 개발자 정보로 텍스트 610과 같은 인증 기관에 미리 등록된 개발자 계정 정보를 포함한다. 또한, 상기 인증 요청은 텍스트 620과 같이 사용자 인터페이스 화면을 통해 입력된 개발자 형태(developer type)를 더 포함할 수 있다. 텍스트 620에 따르면, 상기 인증을 요청한 개발자 형태는 개인 개발자(individual)임을 알 수 있다. 다양한 실시예에 따라, 상기 개발자 정보는 개발자 계정 정보 이외에 개발자의 이름, 개발자의 이메일 어드레스, 개발자의 주소 등을 더 포함할 수 있다.
도 6을 참조하면, 인증 요청은 사용자 인터페이스 화면을 통해 수신한 테스트 전자 장치에 관한 정보를 더 포함할 수 있다. 도 6에 도시된 인증 요청은 테스트 전자 장치에 관한 정보로 텍스트 630과 같은 어플리케이션 권한 레벨을 포함한다.
어플리케이션 권한 레벨은 어플리케이션이 테스트 전자 장치에서 액세스할 수 있는 데이터나 기능을 권한에 따라 단계 별로 구별한 것으로, 예를 들면, 어플리케이션 권한 레벨은 어플리케이션이 액세스하는 데이터나 기능의 보안 수준에 따라 설정할 수 있다.
예컨대, 가장 낮은 어플리케이션 권한 레벨로, 이 권한 레벨을 갖는 어플리케이션은 동영상, 음악 등의 미디어 데이터나 외장 메모리에 저장된 데이터 등과 같이 보안 수준이 낮은 데이터에만 접근할 수 있다. 이하에서는 설명의 편의를 위하여 가장 낮은 어플리케이션 권한 레벨을 Public으로 나타낸다. 상기 Public 보다 한 단계 높은 권한 레벨로, 이 권한 레벨을 갖는 어플리케이션은 상기 보안 수준이 낮은 데이터뿐 아니라, 전자 장치의 사용자의 개인 정보와 관련된 데이터나 기능에도 접근할 수 있다. 예를 들면, 상기 권한 레벨을 갖는 어플리케이션은 콜 로그(call log), GPS 정보, SMS 메시지 등에 접근할 수 있다. 가장 높은 권한 레벨로, 이 권한 레벨을 갖는 어플리케이션은 상기 전자 장치의 사용자의 개인 정보와 관련된 데이터나 기능뿐 아니라, 시스템이나 플랫폼의 설정을 변경할 수 있다. 이와 같이 보안 수준에 따라 3 단계로 구별한 어플리케이션 권한 레벨은 하나의 실시예에 불과하며, 다양한 기준에 따라, 다양한 단계로, 어플리케이션이 테스트 전자 장치에서 액세스할 수 있는 데이터나 기능을 제한하는 어플리케이션 권한 레벨을 설정할 수 있다.
도 6의 텍스트 630에 따르면, 상기 인증을 요청한 개발자는 Public에 해당하는 어플리케이션 권한 레벨을 요청하였음 알 수 있다. 또한, 상기 인증 요청은 텍스트 640과 같이 테스트 전자 장치의 고유 ID를 포함할 수 있다. 상기 테스트 전자 장치의 고유 ID는 전자 장치를 식별하는 고유의 ID(Device unique ID, DUID)로, emmc ID, IMEI(international mobile station equipment identity), 또는 MAC address 등을 포함할 수 있다.
이외에도, 요청 파일에는 개발용 어플리케이션에 관한 어플리케이션 정보, 또는 만료 일자 등을 더 포함할 수 있다. 다양한 실시예에 따라, 개발자는 상기 인증 요청에 개발자의 인증에 필요한 정보(예: 개발자의 이름, 개발자의 이메일 어드레스, 개발자의 주소, 인증 패스워드(password) 등)를 더 포함시켜, 상기 테스트 전자 장치에 대한 인증과 개발자에 대한 인증을 함께 요청할 수도 있다.
도 7은 다양한 실시예들에 따라 인증 서버의 인증 결과로 생성된 암호화된 정보를 나타낸다.
인증 서버 300는 수신된 인증 요청에 기초하여 상기 테스트 전자 장치에 대한 인증을 수행하고, 인증 결과에 따라 암호화된 정보를 개발자에게 전달할 수 있다.
상기 암호화된 정보는 어플리케이션 서명 키를 암호화한 정보, 또는 상기 어플리케이션 서명 키를 생성할 수 있는 어플리케이션 인증서(application certificate)를 암호화한 정보를 포함할 수 있다. 예를 들면, 상기 인증 서버 300는 전자 장치 100에서 인식할 수 있는 토큰(token), 전자 서명, 미리 교환된 비밀 키 등을 이용하여 상기 테스트 전자 장치에 관한 정보를 암호화할 수 있다.
상기 암호화된 정보는 인증 요청에 포함된 개발자 정보와 동일한 개발자 정보를 포함할 수 있다. 도 7에 도시된 암호화된 정보는 개발자 정보로 도 6의 인증 요청에 포함된 상기 텍스트 610 및 텍스트 620에 각각 대응되는 개발자 계정 정보(텍스트 710)와 개발자 형태(developer type)(텍스트 720)을 포함할 수 있다.
또한, 상기 암호화된 정보는 인증 요청에 포함된 테스트 전자 장치에 관한 정보와 동일한 정보를 포함할 수 있다. 도 7에 도시된 암호화된 정보는 테스트 전자 장치에 관한 정보로 도 6의 인증 요청에 포함된 상기 텍스트 630 및 텍스트 640에 각각 대응되는 어플리케이션 권한 레벨(privilege level)(텍스트 730)와 테스트 전자 장치의 고유 ID(텍스트 740)를 포함할 수 있다. 텍스트 740은 상기 인증 요청에 포함된 테스트 전자 장치의 고유 ID인 텍스트 640과 동일한 테스트 전자 장치의 고유 ID에 해당한다.
상기 암호화된 정보는 텍스트 750과 같은 상기 테스트 전자 장치에 관한 인증 정보를 포함할 수 있다. 텍스트 750은 인증 요청에 기초하여 인증 기관의 인증 결과로, 인증 기관에서 생성한 값이다. 예를 들면, 텍스트 750은 어플리케이션 서명 키를 암호화한 어플리케이션 서명 키가 될 수 있다. 또는, 텍스트 750은 상기 어플리케이션 서명 키를 생성할 수 있는 암호화된 어플리케이션 인증서(application certificate)가 될 수 있다. 이때, 암호화된 어플리케이션 인증서는 인증 요청에 포함된 테스트 전자 장치에 관한 정보에 기초하여 인증 기관에서 생성한 것일 수 있다. 예컨대, 상기 테스트 전자 장치에 관한 정보는 상기 어플리케이션 인증서의 RSA 키와 쌍(pair)을 이루는 키가 될 수 있다.
상기 암호화된 정보는 상기 인증 서버 300가 수신한 인증 요청에 기초하여 생성되는 것으로, 상기 열거된 개발자 정보 및 테스트 전자 장치에 관한 정보 이외에도, 상기 암호화된 정보는 인증 요청에 포함된 다른 정보를 더 포함할 수 있다. 예를 들면, 요청 파일이 개발용 어플리케이션에 관한 어플리케이션 정보, 또는 만료 일자 등을 더 포함하면, 상기 암호화된 정보도 어플리케이션 정보, 또는 만료 일자 등을 더 포함할 수 있다. 상기 암호화된 정보는 텍스트 760과 같이 상기 암호화된 정보 전체에 대한 서명값을 포함할 수 있다. 텍스트 760은 상기 암호화된 정보의 변경이나 도용을 방지하기 위한 것으로, 상기 암호화된 정보 전체를 암호화하기 위하여, 인증 기관에서 새롭게 생성한 서명값이다.
다양한 실시예에 따라, 상기 인증 기관이 상기 테스트 전자 장치에 대한 인증과 개발자에 대한 인증을 함께 요청 받은 경우, 상기 암호화된 정보는 인증 기관에 의해 암호화된 개발자 인증 정보를 더 포함할 수 있다. 예를 들면, 상기 개발자 인증 정보는 개발자 서명 키를 암호화한 개발자 서명 키, 또는, 상기 개발자 서명 키를 생성할 수 있는 암호화된 개발자 인증서(developer certificate)가 될 수 있다. 이때, 상기 암호화된 개발자 인증서는 상기 인증 요청에 포함된 개발자에 관한 정보에 기초하여 인증 기관에서 생성한 것일 수 있다. 예컨대, 상기 개발자에 관한 정보는 상기 개발자 인증서의 RSA 키와 쌍(pair)을 이루는 키가 될 수 있다.
인증 기관의 인증 서버 300에서 생성된 상기 암호화된 정보는 이메일, 웹, 다른 전자 장치 등을 통하여 상기 개발자에게 전송될 수 있다. 예를 들면, 상기 인증 서버 300는 상기 암호화된 정보를 상기 인증 요청에 포함된 개발자 계정으로 상기 개발자에게 전송할 수 있다.
다양한 실시예에 따라, 상기 인증 서버 300는 상기 개발자에 대한 인증의 결과로 생성된 상기 개발자 인증 정보를 상기 테스트 전자 장치에 대한 인증의 결과인 암호화된 정보와 함께 하나의 레지스트레이션 파일(registration file)에 포함시켜서 상기 개발자 10에게 전송할 수 있다.
다만, 이에 한정되지 않으며, 상기 인증 서버 300는 상기 개발자에 대한 인증의 결과로 생성된 개발자 인증 정보(예: 개발자 서명 키 또는 개발자 인증서)를 상기 테스트 전자 장치에 대한 인증의 결과인 암호화된 정보와 별개로 상기 개발자 10에게 전송할 수도 있다.
작업 단말 200은 상기 인증 서버 200로부터 수신된 암호화된 정보에 기초하여 어플리케이션을 서명할 어플리케이션 서명 키를 획득할 수 있다. 예를 들면, 작업 단말 200은 인증 서버 300로부터 암호화된 어플리케이션 서명 키를 수신하고, 패스워드를 이용하여 상기 암호화된 어플리케이션 서명 키를 복호화하여, 상기 어플리케이션 서명 키를 획득할 수 있다. 또는, 작업 단말 200은 인증 서버 300로부터 암호화된 어플리케이션 인증서를 수신하고, 상기 암호화된 어플리케이션 인증서로부터 상기 어플리케이션 서명 키를 생성할 수 있다.
예컨대, 작업 단말 200은 수신된 암호화된 정보에 포함된 어플리케이션 인증서(application certificate)와 상기 인증 요청에 포함된 테스트 전자 장치에 관한 정보에 기초하여, 상기 어플리케이션 서명 키를 생성할 수 있다. 예컨대, 상기 테스트 전자 장치에 관한 정보는 상기 어플리케이션 인증서의 RSA 키와 쌍(pair)을 이루는 키가 될 수 있다. 예를 들면, 작업 단말 200은 SDK(Software Development Kit)에서, 상기 암호화된 정보에 기초하여 어플리케이션 서명 키를 생성하고, 상기 SDK에서 작성된 개발용 어플리케이션을 상기 어플리케이션 서명 키로 서명할 수 있다.
도 8은 다양한 실시예들에 따라 인증 서버의 인증 결과로 수신된 암호화된 어플리케이션 인증서에 기초하여 어플리케이션 서명 키를 생성하는 작업을 도시한다.
인증 서버 300의 인증 결과로 암호화된 어플리케이션 인증서가 수신된 경우, 작업 단말 200은 상기 어플리케이션 인증서에 기초하여 어플리케이션 서명 키를 생성할 수 있다. 개발자는 도 8에 도시된 것과 같은 사용자 인터페이스 화면을 통해서 어플리케이션 인증서로부터 어플리케이션 서명 키를 생성할 수 있다. 다만, 사용자 인터페이스 화면은 도 8에 한정되지 않으며, 다양한 사용자 인터페이스 화면을 통해서 어플리케이션 서명 키를 생성할 수 있다.
작업 단말 200은 인증 서버 300로부터, 인증 요청에 대한 인증 결과로 암호화된 어플리케이션 인증서를 수신할 수 있다. 작업 단말 200은 인증 서버 300로부터 상기 암호화된 어플리케이션 인증서를 이메일, 웹, 다른 전자 장치 등을 통하여 수신할 수 있다. 수신된 암호화된 어플리케이션 인증서는 작업 단말 200의 메모리에 저장될 수 있다.
작업 단말 200는 상기 인증 서버 300로부터 수신된 암호화된 어플리케이션 인증서에 기초하여 어플리케이션 서명 키를 생성할 수 있다. 일 실시예에 따르면, 작업 단말 200은 상기 인증 요청에 포함된 테스트 전자 장치에 관한 정보와 상기 인증 서버 300로부터 수신된 암호화된 어플리케이션 인증서에 기초하여 어플리케이션 서명 키를 생성할 수 있다. 예컨대, 상기 테스트 전자 장치에 관한 정보는 인증서의 RSA 키와 쌍(pair)을 이루는 키가 될 수 있다.
도 8을 참조하면, 사용자는 사용자 인터페이스 화면의 우측에 표시된 'Browse' 버튼을 눌러, 상기 인증 서버 300로부터 수신된 암호화된 어플리케이션 인증서 810을 불러온다. 이에 따라, 사용자 인터페이스 화면에 로드된 암호화된 어플리케이션 인증서 810가 표시될 수 있다. 사용자는 사용자 인터페이스 화면에서 인증 패스워드(certificate password)를 입력하고, 생성할 어플리케이션 서명 키의 이름을 입력할 수 있다. 예를 들면, 도 8에 도시된 바와 같이, 사용자는 생성할 어플리케이션 서명 키 820의 이름을 입력할 수 있다. 이에 따라, 'distributor.p12'라는 이름을 가진 어플리케이션 서명 키가 생성될 수 있다.
다양한 실시예에 따라, 상기 테스트 전자 장치에 대한 인증과 개발자에 대한 인증을 함께 요청한 경우, 상기 작업 단말 200은 상기 인증 서버 300로부터 인증의 결과로 암호화된 어플리케이션 인증서와 암호화된 개발자 인증서가 포함된 하나의 레지스트레이션 파일(registration file)을 수신할 수 있다. 사용자는 사용자 인터페이스 화면에서 상기 인증 서버 300로부터 수신된 레지스트레이션 파일을 불러와서, 상기 사용자 인터페이스 화면에 인증 패스워드(certificate password)를 입력함으로써, 상기 작업 단말 200에 상기 레지스트레이션 파일에 포함된 상기 암호화된 어플리케이션 인증서와 상기 암호화된 개발자 인증서로부터 각각 어플리케이션 서명 키와 개발자 서명 키를 생성할 수 있다.
작업 단말 200은 위와 같이 생성된 어플리케이션 서명 키로 개발용 어플리케이션을 서명할 수 있다. 일 실시예에 따르면, 사용자는 SDK에서 개발용 어플리케이션이 작성되면, 상기 SDK에서 상기 어플리케이션 서명 키를 불러와서, 상기 개발용 어플리케이션을 상기 어플리케이션 서명 키로 서명할 수 있다. 이에 의해 어플리케이션 서명 키를 포함하는 어플리케이션이 생성될 수 있다.
어플리케이션 서명 키를 포함하는 어플리케이션이 전자 장치 100에 전달되면, 전자 장치 100는 상기 어플리케이션이 어플리케이션 서명 키를 포함하는지 여부, 상기 어플리케이션 서명 키가 개발용 서명 키에 매칭되는지, 사용 서명 키에 매칭되는지 여부, 상기 개발용 서명 키에 해당하면, 상기 전자 장치 100가 테스트 전자 장치에 관한 정보와 일치하는지 여부 등을 검증할 수 있다.
도 9는 다양한 실시예들에 따른 전자 장치 901의 블록도 900를 도시한다. 상기 전자 장치 901는, 예를 들면, 도 1에 도시된 전자 장치 101의 전체 또는 일부를 구성할 수 있다. 도 9를 참조하면, 상기 전자 장치 901는 하나 이상의 어플리케이션 프로세서(AP: application processor) 910, 통신 모듈 920, SIM(subscriber identification module) 카드 924, 메모리 930, 센서 모듈 940, 입력 장치 950, 디스플레이 960, 인터페이스 970, 오디오 모듈 980, 카메라 모듈 991, 전력관리 모듈 995, 배터리 996, 인디케이터 997 및 모터 998 를 포함할 수 있다.
상기 AP 910는 운영체제 또는 응용 프로그램을 구동하여 상기 AP 910에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 멀티미디어 데이터를 포함한 각종 데이터 처리 및 연산을 수행할 수 있다. 상기 AP 910는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 한 실시예에 따르면, 상기 AP 910는 GPU(graphic processing unit, 미도시)를 더 포함할 수 있다. 다른 실시예에 따르면, 상기 AP 910는 인증 모듈(미도시)을 더 포함할 수 있다.
인증 모듈은 통신 모듈 920을 통해 수신된 어플리케이션에서 어플리케이션 서명 키의 유무를 확인하고, 어플리케이션 서명 키가 있으면, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 어느 것에 매칭되는지 여부를 결정할 수 있다. 인증 모듈은 상기 어플리케이션 서명 키가 개발용 서명 키에 매칭되면, 상기 전자 장치가 상기 어플리케이션 서명 키의 테스트 전자 장치에 해당하는지 여부를 판단할 수 있다. 상기 AP 910는 인증 모듈의 수신된 어플리케이션에 대한 검증 결과, 어플리케이션 서명 키가 상용 서명 키에 해당하거나, 상기 어플리케이션 서명 키가 개발용 서명 키에 해당하고, 상기 전자 장치 901가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치에 해당하면, 상기 어플리케이션을 설치한다.
상기 통신 모듈 920(예: 상기 통신 인터페이스 160)은 상기 전자 장치 901(예: 상기 전자 장치 101)와 네트워크를 통해 연결된 다른 전자 장치들(예: 전자 장치 201 또는 서버 301) 간의 통신에서 데이터 송수신을 수행할 수 있다. 한 실시예에 따르면, 상기 통신 모듈 920은 셀룰러 모듈 921, Wifi 모듈 923, BT 모듈 925, GPS 모듈 927, NFC 모듈 928 및 RF(radio frequency) 모듈 929를 포함할 수 있다.
상기 셀룰러 모듈 921은 통신망(예: LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro 또는 GSM 등)을 통해서 음성 통화, 영상 통화, 문자 서비스 또는 인터넷 서비스 등을 제공할 수 있다. 또한, 상기 셀룰러 모듈 921은, 예를 들면, 가입자 식별 모듈(예: SIM 카드 924)을 이용하여 통신 네트워크 내에서 전자 장치의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 상기 셀룰러 모듈 921은 상기 AP 910가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 예를 들면, 상기 셀룰러 모듈 921은 멀티 미디어 제어 기능의 적어도 일부를 수행할 수 있다.
한 실시예에 따르면, 상기 셀룰러 모듈 921은 커뮤니케이션 프로세서(CP: communication processor)를 포함할 수 있다. 또한, 상기 셀룰러 모듈 921은, 예를 들면, SoC로 구현될 수 있다. 도 9에서는 상기 셀룰러 모듈 921(예: 커뮤니케이션 프로세서), 상기 메모리 930 또는 상기 전력관리 모듈 995 등의 구성요소들이 상기 AP 910와 별개의 구성요소로 도시되어 있으나, 한 실시예에 따르면, 상기 AP 910가 전술한 구성요소들의 적어도 일부(예: 셀룰러 모듈 921)를 포함하도록 구현될 수 있다.
한 실시예에 따르면, 상기 AP 910 또는 상기 셀룰러 모듈 921(예: 커뮤니케이션 프로세서)은 각각에 연결된 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 상기 AP 910 또는 상기 셀룰러 모듈 921은 다른 구성요소 중 적어도 하나로부터 수신하거나 다른 구성요소 중 적어도 하나에 의해 생성된 데이터를 비휘발성 메모리에 저장(store)할 수 있다.
상기 Wifi 모듈 923, 상기 BT 모듈 925, 상기 GPS 모듈 927 또는 상기 NFC 모듈 928 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 도 9에서는 셀룰러 모듈 921, Wifi 모듈 923, BT 모듈 925, GPS 모듈 927 또는 NFC 모듈 928이 각각 별개의 블록으로 도시되었으나, 한 실시예에 따르면, 셀룰러 모듈 921, Wifi 모듈 923, BT 모듈 925, GPS 모듈 927 또는 NFC 모듈 928 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. 예를 들면, 셀룰러 모듈 921, Wifi 모듈 923, BT 모듈 925, GPS 모듈 927 또는 NFC 모듈 928 각각에 대응하는 프로세서들 중 적어도 일부(예: 셀룰러 모듈 921에 대응하는 커뮤니케이션 프로세서 및 Wifi 모듈 923에 대응하는 Wifi 프로세서)는 하나의 SoC로 구현될 수 있다.
상기 RF 모듈 929는 데이터의 송수신, 예를 들면, RF 신호의 송수신을 할 수 있다. 상기 RF 모듈 929는, 도시되지는 않았으나, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter) 또는 LNA(low noise amplifier) 등을 포함할 수 있다. 또한, 상기 RF 모듈 929는 무선 통신에서 자유 공간상의 전자파를 송수신하기 위한 부품, 예를 들면, 도체 또는 도선 등을 더 포함할 수 있다. 도 9에서는 셀룰러 모듈 921, Wifi 모듈 923, BT 모듈 925, GPS 모듈 927 및 NFC 모듈 928이 하나의 RF 모듈 929을 서로 공유하는 것으로 도시되어 있으나, 한 실시예에 따르면, 셀룰러 모듈 921, Wifi 모듈 923, BT 모듈 925, GPS 모듈 927 또는 NFC 모듈 928 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호의 송수신을 수행할 수 있다.
상기 SIM 카드 924는 가입자 식별 모듈을 포함하는 카드일 수 있으며, 전자 장치의 특정 위치에 형성된 슬롯에 삽입될 수 있다. 상기 SIM 카드 924는 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
상기 메모리 930(예: 상기 메모리 130)는 내장 메모리 932 또는 외장 메모리 934를 포함할 수 있다. 상기 내장 메모리 932는, 예를 들면, 휘발성 메모리(예를 들면, DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등) 또는 비휘발성 메모리(non-volatile Memory, 예를 들면, OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, NAND flash memory, NOR flash memory 등) 중 적어도 하나를 포함할 수 있다.
한 실시예에 따르면, 상기 내장 메모리 932는 Solid State Drive (SSD)일 수 있다. 상기 외장 메모리 934는 flash drive, 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 등을 더 포함할 수 있다. 상기 외장 메모리 934는 다양한 인터페이스를 통하여 상기 전자 장치 901과 기능적으로 연결될 수 있다. 한 실시예에 따르면, 상기 전자 장치 901는 하드 드라이브와 같은 저장 장치(또는 저장 매체)를 더 포함할 수 있다.
상기 센서 모듈 940은 물리량을 계측하거나 전자 장치 901의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 상기 센서 모듈 940은, 예를 들면, 제스처 센서 940A, 자이로 센서 940B, 기압 센서 940C, 마그네틱 센서 940D, 가속도 센서 940E, 그립 센서 940F, 근접 센서 940G, color 센서 940H(예: RGB(red, green, blue) 센서), 생체 센서 940I, 온/습도 센서 940J, 조도 센서 940K 또는 UV(ultra violet) 센서 940M 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 센서 모듈 940은, 예를 들면, 후각 센서(E-nose sensor, 미도시), EMG 센서(electromyography sensor, 미도시), EEG 센서(electroencephalogram sensor, 미도시), ECG 센서(electrocardiogram sensor, 미도시), IR(infra red) 센서(미도시), 홍채 센서(미도시) 또는 지문 센서(미도시) 등을 포함할 수 있다. 상기 센서 모듈 940은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다.
상기 입력 장치 950은 터치 패널(touch panel) 952, (디지털) 펜 센서(pen sensor) 954, 키(key) 956 또는 초음파(ultrasonic) 입력 장치 958를 포함할 수 있다. 상기 터치 패널 952은, 예를 들면, 정전식, 감압식, 적외선 방식 또는 초음파 방식 중 적어도 하나의 방식으로 터치 입력을 인식할 수 있다. 또한, 상기 터치 패널 952은 제어 회로를 더 포함할 수도 있다. 정전식의 경우, 물리적 접촉 또는 근접 인식이 가능하다. 상기 터치 패널 952은 택타일 레이어(tactile layer)를 더 포함할 수도 있다. 이 경우, 상기 터치 패널 952은 사용자에게 촉각 반응을 제공할 수 있다.
상기 (디지털) 펜 센서 954는, 예를 들면, 사용자의 터치 입력을 받는 것과 동일 또는 유사한 방법 또는 별도의 인식용 쉬트(sheet)를 이용하여 구현될 수 있다. 상기 키 956는, 예를 들면, 물리적인 버튼, 광학식 키 또는 키패드를 포함할 수 있다. 상기 초음파(ultrasonic) 입력 장치 958는 초음파 신호를 발생하는 입력 도구를 통해, 전자 장치 901에서 마이크(예: 마이크 988)로 음파를 감지하여 데이터를 확인할 수 있는 장치로서, 무선 인식이 가능하다. 한 실시예에 따르면, 상기 전자 장치 901는 상기 통신 모듈 920를 이용하여 이와 연결된 외부 장치(예: 컴퓨터 또는 서버)로부터 사용자 입력을 수신할 수도 있다.
상기 디스플레이 960(예: 상기 디스플레이 150)은 패널 962, 홀로그램 장치 964 또는 프로젝터 966을 포함할 수 있다. 상기 패널 962은, 예를 들면, LCD(liquid-crystal display) 또는 AM-OLED(active-matrix organic light-emitting diode) 등일 수 있다. 상기 패널 962은, 예를 들면, 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 상기 패널 962은 상기 터치 패널 952과 하나의 모듈로 구성될 수도 있다. 상기 홀로그램 장치 964은 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 상기 프로젝터 966는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 상기 스크린은, 예를 들면, 상기 전자 장치 901의 내부 또는 외부에 위치할 수 있다. 한 실시예에 따르면, 상기 디스플레이 960은 상기 패널 962, 상기 홀로그램 장치 964, 또는 프로젝터 966를 제어하기 위한 제어 회로를 더 포함할 수 있다.
상기 인터페이스 970는, 예를 들면, HDMI(high-definition multimedia interface) 972, USB(universal serial bus) 974, 광 인터페이스(optical interface) 976 또는 D-sub(D-subminiature) 978를 포함할 수 있다. 상기 인터페이스 970는, 예를 들면, 도 1에 도시된 통신 인터페이스 160에 포함될 수 있다. 추가적으로 또는 대체적으로, 상기 인터페이스 970는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD(secure Digital) 카드/MMC(multi-media card) 인터페이스 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
상기 오디오 모듈 980은 소리(sound)와 전기신호를 쌍방향으로 변환시킬 수 있다. 상기 오디오 모듈 980의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스 140에 포함될 수 있다. 상기 오디오 모듈 980은, 예를 들면, 스피커 982, 리시버 984, 이어폰 986 또는 마이크 988 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
상기 카메라 모듈 991은 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈(미도시), ISP(image signal processor, 미도시) 또는 플래쉬 (flash, 미도시)(예: LED 또는 xenon lamp)를 포함할 수 있다.
상기 전력 관리 모듈 995은 상기 전자 장치 901의 전력을 관리할 수 있다. 도시하지는 않았으나, 상기 전력 관리 모듈 995은, 예를 들면, PMIC(power management integrated circuit), 충전 IC(charger integrated circuit) 또는 배터리 또는 연료 게이지(battery or fuel gauge)를 포함할 수 있다.
상기 PMIC는, 예를 들면, 집적회로 또는 SoC 반도체 내에 탑재될 수 있다. 충전 방식은 유선과 무선으로 구분될 수 있다. 상기 충전 IC는 배터리를 충전시킬 수 있으며, 충전기로부터의 과전압 또는 과전류 유입을 방지할 수 있다. 한 실시예에 따르면, 상기 충전 IC는 유선 충전 방식 또는 무선 충전 방식 중 적어도 하나를 위한 충전 IC를 포함할 수 있다. 무선 충전 방식으로는, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등이 있으며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로 또는 정류기 등의 회로가 추가될 수 있다.
상기 배터리 게이지는, 예를 들면, 상기 배터리 996의 잔량, 충전 중 전압, 전류 또는 온도를 측정할 수 있다. 상기 배터리 996는 전기를 저장 또는 생성할 수 있고, 그 저장 또는 생성된 전기를 이용하여 상기 전자 장치 901에 전원을 공급할 수 있다. 상기 배터리 996는, 예를 들면, 충전식 전지(rechargeable battery) 또는 태양 전지(solar battery)를 포함할 수 있다.
상기 인디케이터 997는 상기 전자 장치 901 혹은 그 일부(예: 상기 AP 910)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 상기 모터 998는 전기적 신호를 기계적 진동으로 변환할 수 있다. 도시되지는 않았으나, 상기 전자 장치 901는 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 상기 모바일 TV지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting) 또는 미디어플로우(media flow) 등의 규격에 따른 미디어 데이터를 처리할 수 있다.
본 발명의 다양한 실시예에 따른 전자 장치의 전술한 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성 요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 본 발명의 다양한 실시예에 따른 전자 장치는 전술한 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 본 발명의 다양한 실시예에 따른 전자 장치의 구성 요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성 요소들의 기능을 동일하게 수행할 수 있다.
도 10은 다양한 실시예에 따른 인증 시스템에서 어플리케이션을 인증하는 방법을 나타낸다. 도 10에 도시된 흐름도는 도 1에 도시된 인증 시스템에서 처리되는 동작들로 구성된다. 이하에서 생략된 내용이라 하더라도 도 1에 도시된 인증 시스템에 관하여 이상에서 기술된 내용은 도 10에 도시된 흐름도에도 적용될 수 있다.
1001 동작에서 작업 단말 200은 사용자에 의해 입력된 개발자 정보 및 테스트 전자 장치에 관한 정보에 기초하여 상기 테스트 전자 장치에 대한 인증을 요청한다. 다양한 실시예들에 따르면, 상기 인증 요청은 어플리케이션 권한 정보, 어플리케이션 정보, 또는 만료 일자 중 적어도 하나를 더 포함할 수 있다.
1002 동작에서 작업 단말 200은 인증 서버 300로 상기 인증 요청을 전달한다. 상기 인증 요청은 이메일, 웹, 다른 전자 장치 등을 통하여 인증 서버 300로 전송될 수 있다.
1003 동작에서 인증 서버 300는 상기 인증 요청에 기초하여 상기 테스트 전자 장치에 대한 인증을 수행한다. 일 실시예에 따르면, 인증 서버 300는 수신된 인증 요청에 기초하여, 개발자의 개발 이력이나, 인증에 필요한 정보의 누락 여부 등에 기초하여 인증을 수행할 수 있다. 예를 들면, 개발자가 과거에 문제를 일으킨 개발 이력이 있는 경우, 인증 서버 300는 상기 인증 요청에 대하여 인증하지 않을 수 있다.
1004 동작에서 인증 서버 300는 상기 인증 결과로, 어플리케이션 권한 정보 및 테스트 전자 장치의 고유 ID를 포함하는 암호화된 정보를 생성한다. 인증 서버 300는 인증을 수행하는 인증 기관의 서버가 될 수 있다. 암호화된 정보는 어플리케이션 서명 키를 암호화한 정보 또는 상기 어플리케이션 서명 키를 생성할 수 있는 어플리케이션 인증서를 암호화한 정보를 포함할 수 있다.
1005 동작에서 인증 서버 300는 작업 단말 200로 상기 암호화된 정보를 전송한다. 인증 서버 300에서 생성된 암호화된 정보는 이메일, 웹, 다른 전자 장치 등을 통하여 작업 단말 200로 전송될 수 있다.
1006 동작에서 작업 단말 200는 상기 암호화된 정보에 기초하여 어플리케이션 서명 키를 획득한다. 일 실시예에 따르면, 작업 단말 200은 인증 서버 300로부터 암호화된 어플리케이션 서명 키를 수신하고, 패스워드를 이용하여 상기 암호화된 어플리케이션 서명 키를 복호화하여, 상기 어플리케이션 서명 키를 획득할 수 있다.
일 실시예에 따르면, 작업 단말 200은 인증 서버 300로부터 암호화된 어플리케이션 인증서를 수신하고, 상기 암호화된 어플리케이션 인증서에 기초하여 상기 어플리케이션 서명 키를 생성할 수 있다. 예컨대, 작업 단말 200는 인증 요청 시에 사용된 테스트 전자 장치에 관한 정보와 상기 인증 서버 300로부터 수신된 암호화된 어플리케이션 인증서에 기초하여 어플리케이션 서명 키를 생성할 수 있다.
1007 동작에서 작업 단말 200는 어플리케이션 서명 키로 개발용 어플리케이션을 서명한다. 일 실시예에 따르면, 어플리케이션을 개발하는 SDK(software development kit)에서 상기 개발용 어플리케이션을 상기 어플리케이션 서명 키로 서명할 수 있다.
1008 동작에서 작업 단말 200은 전자 장치 100로 어플리케이션을 전송한다. 1001 동작 내지 1007 동작에 의해 어플리케이션 서명 키를 포함하는 어플리케이션이 생성될 수 있다. 생성된 어플리케이션은 상기 어플리케이션이 사용되는 환경을 갖는 전자 장치 100로 전송될 수 있다.
1009 동작에서 전자 장치 100는 어플리케이션 서명 키를 검증한다. 전자 장치 100는 수신된 어플리케이션이 어플리케이션 서명 키를 포함하는지 여부를 결정하고, 어플리케이션 서명 키가 인증 기관에 의해 인증된 어플리케이션 서명 키인지를 결정할 수 있다. 또한, 상기 전자 장치 100는 어플리케이션 서명 키가 전자 장치 100에 저장된 개발용 서명 키에 매칭되는지, 상용 서명 키에 매칭되는지 여부를 결정할 수 있다. 상기 어플리케이션 서명 키가 개별용 어플리케이션 서명 키에 해당하면, 전자 장치 100는 전자 장치 100가 어플리케이션 서명 키에 포함된 테스트 전자 장치에 관한 정보와 일치하는지 여부를 판단할 수 있다.
1010 동작에서 전자 장치 100는 검증 결과에 따라 어플리케이션을 설치한다. 어플리케이션 서명 키가 포함되지 않은 어플리케이션이 수신되면, 해당 어플리케이션은 전자 장치 100에서 설치되지 않는다. 또한, 어플리케이션이 어플리케이션 서명 키를 포함하고 있지만, 인증 기관에 의해 인증되지 않은 어플리케이션 서명 키라면, 해당 어플리케이션은 전자 장치 100에서 설치되지 않는다.
본 발명의 다양한 실시예에 사용된 용어 "모듈"은, 예를 들어, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은 예를 들어, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component) 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, 본 개시에 따른 "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(Application-Specific Integrated Circuit) 칩, FPGAs(Field-Programmable Gate Arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따르면, 본 발명의 다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그래밍 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어는, 하나 이상의 프로세서 (예: 상기 프로세서 120)에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 상기 메모리 130가 될 수 있다. 상기 프로그래밍 모듈의 적어도 일부는, 예를 들면, 상기 프로세서 120에 의해 구현(implement)(예: 실행)될 수 있다. 상기 프로그래밍 모듈의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트 (sets of instructions) 또는 프로세스 등을 포함할 수 있다.
상기 컴퓨터로 판독 가능한 기록 매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 마그네틱 매체(Magnetic Media)와, CD-ROM(Compact Disc Read Only Memory), DVD(Digital Versatile Disc)와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 그리고 ROM(Read Only Memory), RAM(Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령(예: 프로그래밍 모듈)을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
본 발명의 다양한 실시예에 따른 모듈 또는 프로그래밍 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 본 발명의 다양한 실시예에 따른 모듈, 프로그래밍 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
다양한 실시예에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은 전자 장치에서 어플리케이션을 수신하는 동작, 상기 어플리케이션에 포함된 어플리케이션 서명 키를 확인하는 동작, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 상기 전자 장치가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 관한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하는 동작과, 상기 어플리케이션 서명 키의 검증 결과에 기반하여, 상기 어플리케이션을 설치하는 동작을 포함할 수 있다.
그리고 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 실시예에 따른 의 기술 내용을 쉽게 설명하고 본 발명의 실시예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 실시예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 다양한 실시예의 범위는 여기에 개시된 실시예들 이외에도 본 발명의 다양한 실시예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 다양한 실시예의 범위에 포함되는 것으로 해석되어야 한다.
10 ... 개발자
20 ... 네트워크
100 ... 전자 장치
200 ... 작업 단말
300 ... 인증 서버

Claims (20)

  1. 어플리케이션 설치를 관리하는 방법에 있어서,
    전자 장치에서 어플리케이션을 수신하는 동작;
    상기 어플리케이션에 포함된 어플리케이션 서명 키를 확인하는 동작;
    상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 상기 전자 장치가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하는 동작; 및
    상기 어플리케이션 서명 키의 검증 결과에 기반하여, 상기 어플리케이션을 설치하는 동작을 포함하는 방법.
  2. 청구항 1에 있어서,
    상기 어플리케이션 서명 키를 검증하는 동작은,
    상기 전자 장치의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하는 동작을 포함하는 방법.
  3. 청구항 1에 있어서,
    상기 어플리케이션 서명 키를 검증하는 동작은,
    상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능을 체크하는 동작; 및
    상기 체크 결과에 기반하여, 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나는지에 관하여 상기 어플리케이션 서명 키를 검증하는 동작을 포함하는 방법.
  4. 청구항 2에 있어서,
    상기 어플리케이션을 설치하는 동작은,
    상기 전자 장치의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하지 않으면, 상기 어플리케이션을 설치하지 않는 방법.
  5. 청구항 3에 있어서,
    상기 어플리케이션을 설치하는 동작은,
    상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나면, 상기 어플리케이션을 설치하지 않는 방법.
  6. 청구항 1에 있어서,
    상기 어플리케이션 서명 키는 인증 기관에 의해 암호화된 어플리케이션 권한 정보 및 테스트 전자 장치의 고유 ID를 포함하는 방법.
  7. 청구항 6에 있어서,
    상기 어플리케이션 서명 키는 인증 기관에 의해 암호화된 어플리케이션 정보 또는 만료 일자 중 적어도 하나를 더 포함하는 방법.
  8. 청구항 6에 있어서,
    상기 테스트 전자 장치의 고유 ID는 emmc ID, IMEI(international mobile station equipment identity), 또는 MAC address 중 적어도 하나인 방법.
  9. 청구항 1에 있어서,
    상기 어플리케이션 서명 키가 상기 상용 서명 키에 매칭되면, 상기 어플리케이션을 상기 전자 장치에 설치하는 동작을 포함하는 방법.
  10. 청구항 1에 있어서,
    상기 어플리케이션 서명 키가 상기 개발용 서명 키와 상기 상용 서명 키 중 어느 것에도 매칭되지 않으면, 상기 어플리케이션은 상기 전자 장치에서 설치되지 않는 방법.
  11. 어플리케이션을 수신하는 통신 인터페이스;
    상기 어플리케이션에서 어플리케이션 서명 키를 확인하고, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 전자 장치가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하는 어플리케이션 인증 모듈; 및
    상기 어플리케이션 서명 키의 검증 결과에 기반하여, 상기 어플리케이션을 설치하는 프로세서를 포함하는 전자 장치.
  12. 청구항 11에 있어서,
    상기 어플리케이션 인증 모듈은 상기 전자 장치의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하고,
    상기 프로세서는 상기 전자 장치의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하지 않으면, 상기 어플리케이션을 설치하지 않는 전자 장치.
  13. 청구항 11에 있어서,
    상기 어플리케이션 인증 모듈은 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나는지에 관하여 상기 어플리케이션 서명 키를 검증하고,
    상기 프로세서는 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 범위를 벗어나면, 상기 어플리케이션을 설치하지 않는 전자 장치.
  14. 사용자에 의해 입력된 개발자 정보 및 테스트 전자 장치에 관한 정보에 기초하여 인증 서버에 상기 테스트 전자 장치에 대한 인증을 요청하고, 상기 인증 서버의 인증 결과로 생성된 암호화된 정보에 기초하여 어플리케이션 서명 키를 획득하고, 상기 어플리케이션 서명 키로 개발된 어플리케이션을 서명하는 작업 단말; 및
    상기 인증 요청에 기초하여, 상기 테스트 전자 장치에 대한 인증을 수행하고, 상기 인증 결과에 따라 어플리케이션 권한 정보 및 상기 테스트 전자 장치의 고유 ID를 포함하는 상기 암호화된 정보를 생성하는 인증 서버를 포함하는 인증 시스템.
  15. 청구항 14에 있어서,
    상기 암호화된 정보는 상기 어플리케이션 서명 키를 암호화한 정보 또는 상기 어플리케이션 서명 키를 생성할 수 있는 어플리케이션 인증서를 암호화한 정보인 인증 시스템.
  16. 청구항 14에 있어서,
    어플리케이션의 수신에 대응하여, 상기 어플리케이션에 포함된 어플리케이션 서명 키를 확인하고, 상기 어플리케이션 서명 키가 개발용 서명 키와 상용 서명 키 중 개발용 서명 키에 매칭되면, 상기 전자 장치가 상기 어플리케이션 서명 키에 정의된 테스트 전자 장치에 대한 정보와 일치하는지에 관하여 상기 어플리케이션 서명 키를 검증하고, 상기 어플리케이션 서명 키의 검증 결과에 기반하여, 상기 어플리케이션을 설치하는 전자 장치를 포함하는 인증 시스템.
  17. 청구항 15에 있어서,
    상기 전자 장치는 상기 어플리케이션 서명 키의 검증 결과, 상기 전자 장치의 고유 ID가 상기 어플리케이션 서명 키에 포함된 테스트 전자 장치의 고유 ID와 일치하지 않으면, 상기 어플리케이션을 설치하지 않는 인증 시스템.
  18. 청구항 15에 있어서,
    상기 전자 장치는 상기 어플리케이션 서명 키의 검증 결과, 상기 어플리케이션이 액세스하는 상기 전자 장치의 데이터 또는 기능이 상기 어플리케이션 서명 키에 정의된 어플리케이션 권한 정보와 일치하지 않으면, 상기 어플리케이션을 설치하지 않는 인증 시스템.
  19. 청구항 14에 있어서,
    상기 인증 서버는 상기 인증 요청에 포함된 개발자 정보에 기초하여, 상기 개발자에 따라 상기 어플리케이션 권한 정보를 설정하는 인증 시스템.
  20. 청구항 19에 있어서,
    상기 인증 서버는 상기 인증 요청에 포함된 상기 사용자가 요청한 어플리케이션 권한 레벨에 더 기초하여, 상기 어플리케이션 권한 정보를 설정하는 인증 시스템.
KR1020140087735A 2014-04-07 2014-07-11 어플리케이션 설치를 관리하는 방법, 전자 장치 및 인증 시스템 KR102243231B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/680,529 US10200201B2 (en) 2014-04-07 2015-04-07 Method for application installation, electronic device, and certificate system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140041525 2014-04-07
KR1020140041525 2014-04-07

Publications (2)

Publication Number Publication Date
KR20150116371A true KR20150116371A (ko) 2015-10-15
KR102243231B1 KR102243231B1 (ko) 2021-04-23

Family

ID=54356964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140087735A KR102243231B1 (ko) 2014-04-07 2014-07-11 어플리케이션 설치를 관리하는 방법, 전자 장치 및 인증 시스템

Country Status (1)

Country Link
KR (1) KR102243231B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138422A1 (en) * 2003-12-23 2005-06-23 Hancock Peter J. System and method for metering the performance of a data processing system
US20120311675A1 (en) * 2011-06-02 2012-12-06 Samsung Electronics Co., Ltd. Apparatus and method for generating and installing application for device in application development system
KR20130015237A (ko) * 2011-08-02 2013-02-13 주식회사 케이티 애플리케이션 등급에 따른 응용 프로그래밍 인터페이스를 제공하는 인증 서버 장치 및 사용자 단말

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138422A1 (en) * 2003-12-23 2005-06-23 Hancock Peter J. System and method for metering the performance of a data processing system
US20120311675A1 (en) * 2011-06-02 2012-12-06 Samsung Electronics Co., Ltd. Apparatus and method for generating and installing application for device in application development system
KR20120134509A (ko) * 2011-06-02 2012-12-12 삼성전자주식회사 어플리케이션 개발 시스템에서 디바이스용 어플리케이션을 생성 및 설치하기 위한 장치 및 방법
KR20130015237A (ko) * 2011-08-02 2013-02-13 주식회사 케이티 애플리케이션 등급에 따른 응용 프로그래밍 인터페이스를 제공하는 인증 서버 장치 및 사용자 단말

Also Published As

Publication number Publication date
KR102243231B1 (ko) 2021-04-23

Similar Documents

Publication Publication Date Title
US11800004B2 (en) Executing applications in conjunction with other devices
US10728222B2 (en) System and method for providing vehicle information based on personal authentication and vehicle authentication
KR102604046B1 (ko) 전자 기기의 프로그램 관리 방법 및 장치
KR102216877B1 (ko) 전자장치에서 생체 정보를 이용한 인증 방법 및 장치
KR102223609B1 (ko) 전자 기기간 콘텐트 공유 방법 및 장치
US10237269B2 (en) Method of providing information security and electronic device thereof
KR102226411B1 (ko) 재등록을 관리하는 전자 장치 및 방법
KR102216653B1 (ko) 지문 인증을 통하여 통신을 수행하는 전자 장치 및 방법
US10200201B2 (en) Method for application installation, electronic device, and certificate system
US10021103B2 (en) Service authorization methods and apparatuses
US20160087959A1 (en) Electronic device and method for processing data in electronic device
KR102213448B1 (ko) 전자 장치의 인증 상태를 제어하는 방법 및 이를 이용한 전자 장치
US10104538B2 (en) Apparatus and method for providing a mobile device management service
KR102291719B1 (ko) 애플리케이션 보호 방법 및 장치
KR20160100151A (ko) 보안 정보의 처리
US10699274B2 (en) Apparatus and method for secure electronic payment
KR20170084934A (ko) 전자 장치 및 전자 장치의 식별 정보 인증 방법
KR20160035427A (ko) 전자 장치 및 액세서리 장치와 액세서리 장치 인증 방법
US20150121474A1 (en) Processor security authentication area
KR20140112399A (ko) 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치
KR102349714B1 (ko) 전자 기기의 프로그램 관리 방법 및 장치
KR102348217B1 (ko) 전자장치에서 보안화면을 제어하는 방법 및 장치
KR20160100746A (ko) 어플리케이션을 실행하는 전자 장치 및 그 제어 방법
KR20140112393A (ko) 무결성 검사를 이용한 어플리케이션의 접근 제어 방법 및 이를 구현하는 전자 장치
KR102243231B1 (ko) 어플리케이션 설치를 관리하는 방법, 전자 장치 및 인증 시스템

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