KR101430240B1 - 어플리케이션 서명 장치 및 방법 - Google Patents
어플리케이션 서명 장치 및 방법 Download PDFInfo
- Publication number
- KR101430240B1 KR101430240B1 KR20110137673A KR20110137673A KR101430240B1 KR 101430240 B1 KR101430240 B1 KR 101430240B1 KR 20110137673 A KR20110137673 A KR 20110137673A KR 20110137673 A KR20110137673 A KR 20110137673A KR 101430240 B1 KR101430240 B1 KR 101430240B1
- Authority
- KR
- South Korea
- Prior art keywords
- application
- certificate
- information
- signature
- market server
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000009434 installation Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 8
- 238000013475 authorization Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
마켓 서버와 연동하는 서명 장치가 어플리케이션을 서명하기 위하여, 마켓 서버로부터 임의의 어플리케이션에 대한 서명 요청 정보를 수신하면, 서명 요청 정보에 포함되어 있는 어플리케이션 식별 정보를 토대로, 어플리케이션 식별 정보에 대응하여 인증서가 발급되어 있는지 확인한다. 인증서가 발급되어 있지 않다면, 어플리케이션 식별 정보를 이용하여 인증서를 발급하고, 어플리케이션 식별 정보를 이용하여 어플리케이션에 대한 서명 정보를 생성한 후, 인증서와 서명 정보를 포함하여 어플리케이션을 서명한다.
Description
본 발명은 어플리케이션 서명 장치 및 방법에 관한 것이다.
다양한 스마트폰들이 개발됨에 따라, 스마트폰을 통해 실행되어 다양한 서비스를 제공할 수 있는 여러 어플리케이션들이 개발되어 유통되고 있다. 어플리케이션들을 유통하는 어플리케이션 마켓은 여러 어플리케이션 개발자들에 의해 등록되는 어플리케이션을 사용자들에게 제공한다.
이렇게 제공된 어플리케이션이 변조되거나 출처가 불분명한 어플리케이션들이 사용자들 사이에 유통된다 하더라도, 어플리케이션 마켓에서 이를 관리할 수 없다는 문제점이 있다. 또한, 어플리케이션 실행을 위해 필요한 단말 및 통신 업체의 API 사용 권한을 제어하기 위해서는 단말에 실행 권한을 제공해야 하는데, 어플리케이션 마켓에서는 어플리케이션에 대한 실행 권한을 제어할 수 없다는 문제점이 있다.
따라서, 본 발명은 어플리케이션의 변조를 방지하고, 출처를 확인하며 API 사용 권한을 제어하기 위한 어플리케이션 서명 장치 및 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 마켓 서버와 연동하는 서명 장치가 어플리케이션을 서명하는 방법은,
상기 마켓 서버로부터 임의의 어플리케이션에 대한 서명 요청 정보를 수신하는 단계; 상기 서명 요청 정보에 포함되어 있는 어플리케이션 식별 정보를 토대로, 상기 어플리케이션 식별 정보에 대응하여 인증서가 발급되어 있는지 확인하는 단계; 인증서가 발급되어 있지 않다면, 상기 어플리케이션 식별 정보를 이용하여 인증서를 발급하는 단계; 상기 어플리케이션 식별 정보를 이용하여 상기 어플리케이션에 대한 서명 정보를 생성하는 단계; 및 상기 인증서와 상기 서명 정보를 포함하여 상기 어플리케이션을 서명하는 단계를 포함한다.
상기 서명 요청 정보는 어플리케이션 코드, 어플리케이션 식별자, 어플리케이션 실행을 위해 요구되는 API 사용 권한 레벨 정보 및 마켓 서버의 식별 정보 중 하나 이상의 정보를 포함할 수 있다.
상기 인증서를 발급하는 단계는, 상기 어플리케이션 식별 정보를 이용하여 제1 키 및 제2 키를 생성하는 단계; 및 상기 제1 키를 이용하여 상기 어플리케이션에 대한 인증서를 생성하여 발급하는 단계를 포함할 수 있다.
상기 인증서를 생성하여 발급하는 단계는, 상기 API 사용 권한 레벨 정보에 따라 각각 다른 인증서를 생성하여 발급할 수 있다.
상기 서명 정보를 생성하는 단계는, 상기 어플리케이션 코드를 해시 함수를 이용하여 해시한 결과인 해시 값을 상기 제2 키로 암호화하여 서명 정보를 생성하는 단계를 포함할 수 있다.
상기 인증서가 발급되어 있는지 확인하는 단계 이후에, 상기 인증서가 발급되어 있다면, 미리 저장되어 있는 인증서 및 서명 정보를 이용하여 어플리케이션을 서명하는 단계를 포함할 수 있다.
상기 어플리케이션을 서명하는 단계 이후에, 상기 마켓 서버와 연동한 단말이 상기 인증서 및 서명 정보를 포함하는 어플리케이션을 상기 마켓 서버로부터 수신하는 단계; 상기 단말이 상기 인증서 및 서명 정보를 추출하는 단계; 상기 단말이 상기 인증서를 이용하여 상기 서명 정보를 복호하고, 복호화된 서명 정보와 상기 어플리케이션 코드를 해시 함수를 이용하여 해시한 결과인 해시 값을 비교하는 단계; 및 상기 단말이 상기 복호화된 서명 정보와 상기 해시 값이 일치하면 상기 어플리케이션을 설치하는 단계를 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 마켓 서버와 연동하여 어플리케이션을 서명하여, 상기 마켓 서버와 연동한 단말에 제공되도록 하는 서명 장치는,
상기 마켓 서버로부터 수신한 임의의 어플리케이션에 대한 서명 요청에 대해, 상기 임의의 어플리케이션의 어플리케이션 식별자를 토대로 인증서가 발급되어 있는지 확인하고, 상기 어플리케이션 식별자를 이용하여 생성된 제1 키 및 제2 키 중 상기 제1 키로 인증서를 생성하는 인증서 생성부; 상기 인증서 생성부에서 생성된 인증서와, 상기 어플리케이션 식별자를 이용하여 생성된 상기 제2키 및 상기 어플리케이션 식별자를 저장하는 인증서 저장부; 및 상기 어플리케이션의 어플리케이션 코드를 해시 함수를 이용하여 해시한 후 생성된 해시 값을 상기 인증서 생성부에서 생성한 상기 제2 키로 암호화하여 서명 정보를 생성하고, 상기 생성한 인증서와 상기 서명 정보를 상기 어플리케이션 코드에 삽입하여 어플리케이션을 서명하는 어플리케이션 서명부를 포함한다.
상기 어플리케이션 서명 장치는 상기 마켓 서버로부터 어플리케이션 코드, 어플리케이션 식별자, API 사용 권한 레벨 정보 및 마켓 서버의 식별 정보 중 하나 이상의 정보를 포함하는 서명 요청 정보를 수신하는 정보 수신부를 포함할 수 있다.
상기 단말은, 상기 마켓 서버로부터 상기 서명 정보 및 상기 인증서가 어플리케이션 코드에 삽입된 어플리케이션을 수신하는 어플리케이션 수신부; 및 상기 어플리케이션 수신부가 수신한 어플리케이션으로부터, 상기 서명 정보와 상기 인증서를 추출하고 상기 인증서를 이용하여 상기 서명 정보를 복호화하고, 상기 어플리케이션 코드를 해시 함수를 이용하여 해시한 후 생성된 해시값과 상기 복호화된 서명 정보가 일치하면, 상기 수신한 어플리케이션을 설치하는 어플리케이션 설치부를 포함할 수 있다.
본 발명에 따르면 마켓 서버를 통해 제공되는 다양한 어플리케이션의 변조를 방지하여 불법 변조된 어플리케이션의 유통을 막을 수 있다.
또한, 어플리케이션의 출처 확인을 통해 어플리케이션 신뢰도가 제고되고, 바이러스 등에 대한 방어 기능도 제공하여 무분별한 어플리케이션 실행으로 발생할 수 있는 다양한 문제점들을 방지할 수 있다.
또한, 어플리케이션 유통업자는 어플리케이션 유통에 대한 제어권을 확보하여 어플리케이션 관리를 쉽게 할 수 있다.
도 1은 본 발명의 실시예에 따른 어플리케이션 서명을 제공하는 환경을 나타낸 예시도이다.
도 2는 본 발명의 실시예에 따른 서명 장치의 구조도이다.
도 3은 본 발명의 실시예에 따른 마켓 서버의 구조도이다.
도 4는 본 발명의 실시예에 따른 사용자 단말의 구조도이다.
도 5는 본 발명의 실시예에 따른 어플리케이션 서명 방법을 나타낸 흐름도이다.
도 2는 본 발명의 실시예에 따른 서명 장치의 구조도이다.
도 3은 본 발명의 실시예에 따른 마켓 서버의 구조도이다.
도 4는 본 발명의 실시예에 따른 사용자 단말의 구조도이다.
도 5는 본 발명의 실시예에 따른 어플리케이션 서명 방법을 나타낸 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 단말(terminal)은, 이동국(Mobile Station, MS), 이동 단말(Mobile Terminal, MT), 가입자국(Subscriber Station, SS), 휴대 가입자국(Portable Subscriber Station, PSS), 사용자 장치(User Equipment, UE), 접근 단말(Access Terminal, AT) 등을 지칭할 수도 있고, 이동 단말, 가입자국, 휴대 가입자 국, 사용자 장치 등의 전부 또는 일부의 기능을 포함할 수도 있다.
이하 도면을 참조로 하여 본 발명의 실시예에 따른 어플리케이션 서명 제공 장치 및 방법을 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 어플리케이션에 서명을 제공하는 환경을 나타낸 예시도이다.
도 1에 도시된 바와 같이, 개발자 단말(300)에서 개발되어 전송되는 다양한 어플리케이션을 등록하여 사용자들에게 제공하는 마켓 서버(200)는 서명 장치(400)와 사용자 단말(100)과 각각 연동한다. 이때 서명 장치(400)는 마켓 서버(200)가 새로운 어플리케이션을 등록할 때, 혹은 이미 등록되어 있는 어플리케이션에 업데이트가 발생하여 개발자 단말(300)로부터 변경된 어플리케이션을 등록할 때 마다 서명 장치(400)로 어플리케이션 정보, 개발자 단말 정보 및 마켓 서버 정보를 포함하여 어플리케이션에 대한 서명을 요청한다.
그리고, 서명 장치(400)로부터 서명이 완료된 어플리케이션을 등록한 마켓 서버(200)는 사용자 단말(100)로 어플리케이션을 제공한다. 이때, 해당 어플리케이션을 실행하기 위한 통신사의 API의 사용 권한 정보를 포함하는 서명된 어플리케이션을 제공하게 된다.
사용자 단말(100)은 마켓 서버(200)에서 구입하여 다운로드한 어플리케이션을 실행할 때, 마켓 서버(200)로부터 수신한 실행 권한 정보를 포함한 어플리케이션 정보를 토대로 통신사에서 어플리케이션 실행을 위한 API 사용 권한을 받을 후 어플리케이션을 실행하여 사용자에게 제공한다.
이러한 환경에서 서명 장치(400), 마켓 서버(200) 및 사용자 단말(100)의 구조에 대하여 도 2 내지 도 4를 참조로 설명하기로 한다. 본 발명의 실시예에서는 서명 장치(400)가 마켓 서버(200)와 별도로 구현되는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
도 2는 본 발명의 실시예에 따른 서명 장치의 구조도이다.
도 2에 도시된 바와 같이, 서명 장치(400)는 정보 수신부(410), 인증서 생성부(420), 인증서 저장부(430) 및 어플리케이션 서명부(440)를 포함한다.
정보 수신부(410)는 마켓 서버(200)로부터 서명 요청 정보를 수신한다. 여기서 서명 요청 정보는 어플리케이션 코드, 어플리케이션 식별자, API 사용 권한 레벨 정보 및 마켓 서버(200)의 식별 정보 등의 정보를 포함한다.
인증서 생성부(420)는 정보 수신부(410)가 수신한 서명 요청 정보 중 어플리케이션 식별자를 이용하여, 해당 어플리케이션에 대한 인증서가 이미 발급되어 있는지 여부를 인증서 저장부(430)를 검색하여 확인한다. 인증서가 이미 발급되어 있다면 인증서 저장부(430)에 저장되어 있는 어플리케이션의 인증서와 제2 키로 어플리케이션을 서명하도록 어플리케이션 서명부(440)로 전달한다.
그러나 인증서가 발급되어 있지 않다면, 인증서 생성부(420)는 어플리케이션 식별자를 이용하여 두 개의 키인 제1 키와 제2 키를 생성한다. 제1 키와 제2 키는 서로 대응되어 생성되는 키로 공개 키와 개인 키라 지칭할 수도 있다. 제1 키와 제2 키를 생성하는 방법은 여러 방법이 있을 수 있으므로, 본 발명의 실시예에서는 상세한 설명을 생략한다.
인증서 생성부(420)는 어플리케이션 정보를 토대로 생성한 제1 키로 인증서를 생성한다. 제1 키로 인증서를 생성할 때, API 사용 권한 레벨 정보에 따라 각각 다른 방법으로 인증서를 생성한다. 즉, API 사용 권한 레벨이 몇 개의 단계로 설정되어 있다고 가정하면, 인증서는 각각의 레벨에 따라 각기 다른 방법으로 생성될 수 있도록 설정한다. 또한, 인증서는 어플리케이션 서명을 요청한 마켓 서버(200)에 따라 각각 다른 방법으로 생성될 수도 있어, 인증서를 이용하여 어플리케이션을 배포하는 마켓 서버(200)도 구분할 수 있도록 한다.
그리고 인증서 생성부(420)는 제1 키로 생성된 인증서를 서명 요청 정보에 포함되어 있는 어플리케이션 식별자와 함께 인증서 저장부(430)로 전달하여 인증서 저장부(430)에 저장되도록 한다.
인증서 저장부(430)는 어플리케이션 식별자와 인증서 그리고 제2 키를 서로 대응되도록 저장한다. 그리고 인증서 생성부(420)에서 임의의 어플리케이션 식별자를 토대로 인증서가 발급되어 있는지 여부를 판단할 때, 인증서 발급 여부에 대한 정보를 제공한다.
어플리케이션 서명부(440)는 인증서 생성부(420)에서 생성된 제2 키로 어플리케이션 코드에 대한 서명 정보를 생성한다. 즉, 어플리케이션 코드를 해시 함수로 해시하여 해시값을 구한 후, 해시 값을 암호화하여 서명 정보를 생성한다. 여기서 어플리케이션 코드를 해시 함수로 해시하는 방법과 이를 토대로 해시값을 구하는 방법은 이미 알려진 사항으로, 본 발명의 실시예에서는 상세한 설명을 생략하기로 한다.
그리고 생성한 서명 정보와 인증서 생성부(420)에서 생성된 인증서를 함께 어플리케이션 코드에 삽입하여 어플리케이션을 서명한다. 그리고 나서 서명된 어플리케이션 코드를 마켓 서버(200)로 전달하여 해당 어플리케이션에 적용되도록 한다.
만약 어플리케이션에 대한 인증서가 이미 생성되어 있다면, 인증서 저장부(430)로부터 제2 키를 전달받아 어플리케이션 코드를 서명한 후 생성된 인증서와 함께 어플리케이션 코드에 삽입하여 마켓 서버(200)로 전달한다.
이러한 서명 장치(400)를 통해 서명된 어플리케이션을 사용자 단말(100)로 제공하고 관리하는 마켓 서버(200)에 대하여 도 3을 참조로 설명한다.
도 3은 본 발명의 실시예에 따른 마켓 서버의 구조도이다.
도 3에 도시된 바와 같이, 마켓 서버(200)는 어플리케이션 수신부(210), 서명 요청부(220) 및 어플리케이션 등록부(230)를 포함한다.
어플리케이션 수신부(210)는 개발자 단말(300)로부터 어플리케이션과 어플리케이션 정보를 수신한다. 이때 어플리케이션 정보는 어플리케이션 코드, 어플리케이션 식별자, 개발자 단말 식별자, 어플리케이션 실행을 위한 API 사용 권한 레벨 정보 및 어플리케이션 생성일 등의 정보를 포함한다.
서명 요청부(220)는 어플리케이션 수신부(210)가 수신한 어플리케이션 정보 중 어플리케이션 코드, 어플리케이션 식별자 및 API 사용 권한 레벨 정보와 함께 마켓 서버(200)의 식별 정보를 포함하는 서명 요청 정보를 생성하여 서명 장치(400)로 전송한다. 그리고 서명 장치(400)로부터 전송되는 서명 정보가 포함된 어플리케이션 코드를 수신하여 해당 어플리케이션에 적용한다.
어플리케이션 등록부(230)는 서명 요청부(220)가 수신한 서명된 어플리케이션을 전달받아 등록한다. 그리고 사용자 단말(100)의 요청에 의해 임의의 어플리케이션 제공을 요청 받으면, 서명 정보와 인증서가 포함된 어플리케이션을 제공한다.
다음은 마켓 서버(200)와 연동하여 어플리케이션을 제공받고 이를 설치하는 사용자 단말(100)의 구조에 대하여 도 4를 참조로 설명하기로 하다.
도 4는 본 발명의 실시예에 따른 사용자 단말의 구조도이다.
도 4에 도시된 바와 같이, 사용자 단말(100)은 어플리케이션 수신부(110) 및 어플리케이션 설치부(120)를 포함한다.
어플리케이션 수신부(110)는 마켓 서버(200)로부터 서명 정보가 포함된 어플리케이션을 수신한다. 이때 수신한 어플리케이션은 인증 장치(400)로부터 서명되어 서명 정보와 인증서가 어플리케이션 코드에 삽입되어 있는 것이다.
어플리케이션 설치부(120)는 어플리케이션 수신부(110)가 마켓 서버(200)로부터 수신한 어플리케이션에 대해 사용자로부터 설치 요청 정보를 수신하면 이를 사용자 단말(100)에 설치한다. 어플리케이션을 설치하기 위해, 어플리케이션 설치부(120)는 제2 키로 암호화되어 어플리케이션 코드에 삽입된 서명 정보를 추출한다.
그리고 서명 정보와 함께 삽입되어 있는 인증서를 이용하여 추출한 서명 정보를 복호화하고, 복호화된 서명 정보와 어플리케이션 코드를 해시 함수를 통해 구한 해시 값이 일치하면 해당 어플리케이션이 변조되지 않고 실행할 수 있는 어플리케이션이라 확인한다.
어플리케이션 설치부(120)가 해당 어플리케이션이 설치할 수 있는 어플리케이션이라 확인한 후에 해당 어플리케이션이 사용자 단말(100)에서 실행될 수 있도록, 어플리케이션 코드에 삽입되어 있는 인증서를 토대로 어플리케이션의 실행에 필요한 API 사용 권한 등급을 파악한다. 이는 인증서가 API 사용 권한 등급에 따라 각기 달리 생성되어 있기 때문에, 인증서를 토대로 API 사용 권한 등급을 파악할 수 있는 것이다. 그리고 인증서를 토대로 파악한 API 사용 권한 등급에 따라 어플리케이션을 실행하여 실행 결과를 사용자에게 제공한다.
이상에서 설명한 어플리케이션 서명을 제공하는 환경에서의 어플리케이션에 서명 방법에 대하여 도 5를 참조로 설명하기로 한다.
도 5는 본 발명의 실시예에 따른 어플리케이션 서명 방법을 나타낸 흐름도이다.
도 5에 도시된 바와 같이, 개발자 단말(300)이 어플리케이션 개발자가 개발한 어플리케이션을 마켓 서버(200)로 등록한다(S100). 마켓 서버로 어플리케이션을 등록할 때, 어플리케이션 개발자에 의해 설정된 어플리케이션 실행을 위한 API 사용 권한 레벨 정보를 포함하는 어플리케이션 정보와 어플리케이션이 등록된다.
S100 단계를 통해 개발자 단말(300)로부터 어플리케이션을 수신하면, 마켓 서버(200)의 서명 요청부(220)는 서명 장치(400)로 해당 어플리케이션에 대한 서명을 요청하는 서명 요청 정보를 전송한다(S110). 이때, 서명 요청 정보에는 어플리케이션 코드, 어플리케이션 식별자, API 사용 권한 레벨 정보 및 마켓 서버의 식별 정보 등의 정보가 포함되어 있다.
서명 장치(400)의 인증서 생성부(420)는 S110 단계로부터 수신한 서명 요청 정보에 포함되어 있는 어플리케이션 식별자를 토대로 인증서 저장부(430)에 이미 해당 어플리케이션에 대한 인증서가 발급되어 있는지 확인한다(S120). 만약 해당 어플리케이션에 대한 인증서가 발급되어 있다면, 어플리케이션 서명부(440)는 인증서 저장부(430)에 저장되어 있는 제2 키로 서명 정보를 생성하고 이미 발급되어 있는 인증서와 함께 어플리케이션 코드에 삽입한다. 그리고, 서명된 어플리케이션 코드를 마켓 서버(200)로 전송하여 어플리케이션에 반영되도록 한다(S140, S150).
이와 같이 어플리케이션에 대한 인증서가 발급되어 있음에도 마켓 서버(200)에서 어플리케이션의 서명을 요청하는 것은, 개발자 단말(300)에서 이미 생성한 어플리케이션의 업데이트 등과 같이 등록된 어플리케이션에 변화가 발생할 경우에 일어난다.
그러나, 어플리케이션에 대한 인증서가 발급되어 있지 않다면, 인증서 생성부(420)는 서명 요청 정보에 포함되어 있는 어플리케이션 식별자를 이용하여 미리 정의한 방법에 따라 두 개의 키인 제1 키와 제2 키를 생성한다. 그리고 API 사용 권한 레벨 정보를 토대로, 제1 키를 이용하여 인증서를 발급한다(S130).
인증서를 발급하는 방법은 사전에 API 사용 권한 레벨에 따라 각각 다른 방법으로 인증서가 발급될 수 있도록 정의하였다고 가정한다. 그리고 어플리케이션의 서명을 요청한 마켓 서버(200)의 종류에 따라서도 인증서가 각기 다른 방법으로 발급되도록 정의하였다고 가정한다.
S130 단계를 통해 인증서를 발급한 후, 어플리케이션 서명부(440)는 인증서 생성부(420)에서 생성한 제2 키를 이용하여 서명 요청 정보에 포함되어 있는 어플리케이션 코드를 암호화하여 서명 정보를 생성한다. 이때 어플리케이션을 서명함에 있어, 어플리케이션 코드를 해시 함수로 해시하여 해시값을 구하고, 구한 해시값을 제2 키로 암호화하여 서명 정보를 생성하게 된다.
그리고 생성한 서명 정보를 S130 단계에서 생성한 인증서와 함께 어플리케이션 코드에 삽입하여, 마켓 서버(200)로부터 수신한 어플리케이션이 변형되지 않은 어플리케이션임을 알리는 서명을 수행한다(S140). 이와 같이 서명된 어플리케이션 코드를 마켓 서버(200)로 전달하여, 어플리케이션에 반영한 후 어플리케이션 등록부(230)에 등록되도록 한다(S150).
이와 같이 어플리케이션에 서명 절차가 완료되면, 어플리케이션의 인증서 정보를 토대로 어플리케이션이 어디서 개발되었는지, 어느 곳을 통해 유통되었는지 또는 어디서 서명되었는지를 확인할 수 있게 된다. 이는, 어플리케이션을 서명하기 앞서 마켓 서버에서 생성된 서명 요청 정보에는 마켓 서버의 식별 정보 등의 정보가 포함되어 있기 때문에 유통 출처를 알 수 있으며, 개발자 단말(300)에 의해 생성된 어플리케이션이 마켓 서버(200)에 등록될 때에도 개발자에 대한 정보가 이미 마켓 서버(200)에 등록되어 있기 때문이다. 따라서, 이후 어플리케이션에 문제가 발생하면, 이를 조사하는 사용자들은 어플리케이션의 서명 정보나 인증서 등을 토대로 어플리케이션이 어디서 개발되었는지, 어느 곳을 통해 유통되었는지 또는 어디서 서명되었는지를 확인할 수 있다.
S100 단계 내지 S150 단계를 통해 어플리케이션에 서명하는 절차를 수행한 후, 사용자 단말(100)이 마켓 서버(200)에 있는 다양한 어플리케이션 중 임의의 어플리케이션에 대해 다운로드 받으면 설치 과정에서 서명 검증 절차를 수행한다(S200). 즉, 사용자 단말(100)의 어플리케이션 수신부(110)는 서명 정보와 인증서가 어플리케이션 코드에 삽입되어 있는 어플리케이션을 수신한다(S220).
어플리케이션 설치부(120)는 어플리케이션에 포함되어 있는 어플리케이션 코드로부터 서명 정보와 인증서를 추출한 후, 인증서를 이용하여 서명 정보를 복호화한다(S220). 그리고 복호화한 서명 정보가 어플리케이션 코드를 해시 함수를 이용하여 구한 해시 값과 같은지 확인한다(S230).
만약 두 정보가 다르다면 해당 어플리케이션은 변조된 어플리케이션일 가능성이 있기 때문에, 어플리케이션 설치부(120)는 설치 실패 메시지를 제공한다(S240). 그러나, S230 단계에서 확인한 결과 두 정보가 일치하면, 어플리케이션 설치부(120)는 인증서의 권한 등급을 확인하고 이를 토대로 어플리케이션을 실행하여 서비스를 제공한다(S250).
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (10)
- 마켓 서버와 연동하는 서명 장치가 어플리케이션을 서명하는 방법에 있어서,
상기 마켓 서버로부터 임의의 어플리케이션에 대한 서명 요청 정보를 수신하는 단계;
상기 서명 요청 정보에 포함되어 있는 어플리케이션 식별 정보를 토대로, 상기 어플리케이션 식별 정보에 대응하여 인증서가 발급되어 있는지 확인하는 단계;
상기 인증서가 발급되어 있다면, 미리 저장되어 있는 인증서 및 서명 정보를 이용하여 어플리케이션을 서명하는 단계
인증서가 발급되어 있지 않다면, 상기 어플리케이션 식별 정보를 이용하여 인증서를 발급하는 단계;
상기 어플리케이션 식별 정보를 이용하여 상기 어플리케이션에 대한 서명 정보를 생성하는 단계; 및
상기 인증서와 상기 서명 정보를 포함하여 상기 어플리케이션을 서명하는 단계
를 포함하는 어플리케이션 서명 방법. - 제1항에 있어서,
상기 서명 요청 정보는 어플리케이션 코드, 어플리케이션 식별자, 어플리케이션 실행을 위해 요구되는 API 사용 권한 레벨 정보 및 마켓 서버의 식별 정보 중 하나 이상의 정보를 포함하는 어플리케이션 서명 방법. - 제2항에 있어서,
상기 인증서를 발급하는 단계는,
상기 어플리케이션 식별 정보를 이용하여 제1 키 및 제2 키를 생성하는 단계; 및
상기 제1 키를 이용하여 상기 어플리케이션에 대한 인증서를 생성하여 발급하는 단계
를 포함하는 어플리케이션 서명 방법. - 제3항에 있어서,
상기 인증서를 생성하여 발급하는 단계는, 상기 API 사용 권한 레벨 정보에 따라 각각 다른 인증서를 생성하여 발급하는 어플리케이션 서명 방법. - 제4항에 있어서,
상기 서명 정보를 생성하는 단계는,
상기 어플리케이션 식별 정보를 이용하여 생성한 제2 키를 이용하여, 상기 어플리케이션 코드를 해시 함수를 이용하여 해시한 결과인 해시 값을 상기 제2 키로 암호화하여 서명 정보를 생성하는 단계
를 포함하는 어플리케이션 서명 방법. - 삭제
- 제1항에 있어서,
상기 어플리케이션을 서명하는 단계 이후에,
상기 마켓 서버와 연동한 단말이 상기 인증서 및 서명 정보를 포함하는 어플리케이션을 상기 마켓 서버로부터 수신하는 단계;
상기 단말이 상기 인증서 및 서명 정보를 추출하는 단계;
상기 단말이 상기 인증서를 이용하여 상기 서명 정보를 복호하고, 복호화된 서명 정보와 상기 어플리케이션 코드를 해시 함수를 이용하여 해시한 결과인 해시 값을 비교하는 단계; 및
상기 단말이 상기 복호화된 서명 정보와 상기 해시 값이 일치하면 상기 어플리케이션을 설치하는 단계
를 포함하는 어플리케이션 서명 방법. - 마켓 서버와 연동하여 어플리케이션을 서명하여, 상기 마켓 서버와 연동한 단말에 제공되도록 하는 서명 장치에 있어서,
상기 마켓 서버로부터 수신한 임의의 어플리케이션에 대한 서명 요청에 대해, 상기 임의의 어플리케이션의 어플리케이션 식별자를 토대로 인증서가 발급되어 있는지 확인하고, 상기 어플리케이션 식별자를 이용하여 생성된 제1 키 및 제2 키 중 상기 제1 키로 인증서를 생성하는 인증서 생성부;
상기 인증서 생성부에서 생성된 인증서와, 상기 어플리케이션 식별자를 이용하여 생성된 상기 제2키 및 상기 어플리케이션 식별자를 저장하는 인증서 저장부;
상기 어플리케이션의 어플리케이션 코드를 해시 함수를 이용하여 해시한 후 생성된 해시 값을 상기 인증서 생성부에서 생성한 상기 제2 키로 암호화하여 서명 정보를 생성하고, 상기 생성한 인증서와 상기 서명 정보를 상기 어플리케이션 코드에 삽입하여 어플리케이션을 서명하는 어플리케이션 서명부; 및
상기 마켓 서버로부터 어플리케이션 코드, 어플리케이션 식별자, API 사용 권한 레벨 정보 및 마켓 서버의 식별 정보 중 하나 이상의 정보를 포함하는 서명 요청 정보를 수신하는 정보 수신부
를 포함하는 어플리케이션 서명 장치.
- 삭제
- 제8항에 있어서,
상기 단말은,
상기 마켓 서버로부터 상기 서명 정보 및 상기 인증서가 어플리케이션 코드에 삽입된 어플리케이션을 수신하는 어플리케이션 수신부; 및
상기 어플리케이션 수신부가 수신한 어플리케이션으로부터, 상기 서명 정보와 상기 인증서를 추출하고 상기 인증서를 이용하여 상기 서명 정보를 복호화하고, 상기 어플리케이션 코드를 해시 함수를 이용하여 해시한 후 생성된 해시값과 상기 복호화된 서명 정보가 일치하면, 상기 수신한 어플리케이션을 설치하는 어플리케이션 설치부
를 포함하는 어플리케이션 서명 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20110137673A KR101430240B1 (ko) | 2011-12-19 | 2011-12-19 | 어플리케이션 서명 장치 및 방법 |
US13/486,536 US9026795B2 (en) | 2011-12-19 | 2012-06-01 | Apparatus and method for signing application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20110137673A KR101430240B1 (ko) | 2011-12-19 | 2011-12-19 | 어플리케이션 서명 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130085545A KR20130085545A (ko) | 2013-07-30 |
KR101430240B1 true KR101430240B1 (ko) | 2014-08-19 |
Family
ID=48611468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20110137673A KR101430240B1 (ko) | 2011-12-19 | 2011-12-19 | 어플리케이션 서명 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9026795B2 (ko) |
KR (1) | KR101430240B1 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9407443B2 (en) * | 2012-06-05 | 2016-08-02 | Lookout, Inc. | Component analysis of software applications on computing devices |
US9589129B2 (en) | 2012-06-05 | 2017-03-07 | Lookout, Inc. | Determining source of side-loaded software |
US9208215B2 (en) | 2012-12-27 | 2015-12-08 | Lookout, Inc. | User classification based on data gathered from a computing device |
US9292341B2 (en) * | 2013-10-16 | 2016-03-22 | Google Inc. | RPC acceleration based on previously memorized flows |
EP3289510B1 (en) | 2015-05-01 | 2020-06-17 | Lookout Inc. | Determining source of side-loaded software |
US10089095B2 (en) | 2015-05-06 | 2018-10-02 | Mcafee, Llc | Alerting the presence of bundled software during an installation |
JP6440100B2 (ja) * | 2016-03-31 | 2018-12-19 | 京セラドキュメントソリューションズ株式会社 | 電子機器 |
JP6440099B2 (ja) * | 2016-03-31 | 2018-12-19 | 京セラドキュメントソリューションズ株式会社 | 電子機器 |
US10218697B2 (en) | 2017-06-09 | 2019-02-26 | Lookout, Inc. | Use of device risk evaluation to manage access to services |
JP6522842B1 (ja) * | 2018-10-05 | 2019-05-29 | さくら情報システム株式会社 | 情報処理装置、方法及びプログラム |
JP6650543B1 (ja) * | 2019-03-25 | 2020-02-19 | さくら情報システム株式会社 | 情報処理装置、方法及びプログラム |
CN110943845A (zh) * | 2019-11-25 | 2020-03-31 | 武汉大学 | 一种轻量级两方协同产生sm9签名的方法及介质 |
CN114065140A (zh) * | 2020-08-04 | 2022-02-18 | 富泰华工业(深圳)有限公司 | 软件程序验证方法、电子装置及存储介质 |
US12074983B2 (en) * | 2021-11-09 | 2024-08-27 | Samsung Electronics Co., Ltd. | Trusted computing device and operating method thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020005300A (ko) * | 2000-07-10 | 2002-01-17 | 류재철 | 웹기반의 전자서명을 사용한 실시간 전자경매 시스템 구축방법 |
JP3808836B2 (ja) * | 2003-02-28 | 2006-08-16 | 株式会社東芝 | 認証サーバ、認証プログラム |
KR20080072452A (ko) * | 2007-02-02 | 2008-08-06 | 삼성전자주식회사 | 전자기기의 부팅 방법 및 부팅 인증 방법 |
KR20080075304A (ko) * | 2007-02-12 | 2008-08-18 | 한국정보인증주식회사 | 내장형 보안서버를 이용한 웹서비스 보안 시스템 및 방법. |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1626325B1 (en) * | 2000-09-21 | 2010-09-01 | Research In Motion Limited | Software code signing system and method |
US7464270B2 (en) * | 2003-07-23 | 2008-12-09 | Microsoft Corporation | Application identification and license enforcement |
US7797545B2 (en) * | 2005-09-29 | 2010-09-14 | Research In Motion Limited | System and method for registering entities for code signing services |
US8589691B1 (en) * | 2009-08-17 | 2013-11-19 | Google Inc. | Self-signed certificates for computer application signatures |
US8554179B2 (en) * | 2011-09-23 | 2013-10-08 | Blackberry Limited | Managing mobile device applications |
-
2011
- 2011-12-19 KR KR20110137673A patent/KR101430240B1/ko active IP Right Grant
-
2012
- 2012-06-01 US US13/486,536 patent/US9026795B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020005300A (ko) * | 2000-07-10 | 2002-01-17 | 류재철 | 웹기반의 전자서명을 사용한 실시간 전자경매 시스템 구축방법 |
JP3808836B2 (ja) * | 2003-02-28 | 2006-08-16 | 株式会社東芝 | 認証サーバ、認証プログラム |
KR20080072452A (ko) * | 2007-02-02 | 2008-08-06 | 삼성전자주식회사 | 전자기기의 부팅 방법 및 부팅 인증 방법 |
KR20080075304A (ko) * | 2007-02-12 | 2008-08-18 | 한국정보인증주식회사 | 내장형 보안서버를 이용한 웹서비스 보안 시스템 및 방법. |
Also Published As
Publication number | Publication date |
---|---|
US9026795B2 (en) | 2015-05-05 |
US20130159719A1 (en) | 2013-06-20 |
KR20130085545A (ko) | 2013-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101430240B1 (ko) | 어플리케이션 서명 장치 및 방법 | |
CN110597538B (zh) | 一种基于ota升级系统的软件升级方法和ota升级系统 | |
KR100925329B1 (ko) | 디지털케이블 방송망에서 다운로더블 제한수신시스템을위한 상호인증 및 키 공유 방법과 장치 | |
CN100396012C (zh) | 基于设备管理协议的软件合法性验证系统及验证方法 | |
US8898469B2 (en) | Software feature authorization through delegated agents | |
CN102165457B (zh) | 票券授权的安全安装和引导 | |
US11334345B2 (en) | Differential firmware update generation | |
US8607050B2 (en) | Method and system for activation | |
KR20170139093A (ko) | 네트워크 액세스 디바이스가 무선 네트워크 액세스 포인트를 액세스하게 하기 위한 방법, 네트워크 액세스 디바이스, 애플리케이션 서버 및 비휘발성 컴퓨터 판독가능 저장 매체 | |
CN101256607B (zh) | 一种对软件保护装置进行远程更新和使用控制的方法 | |
CN101969440B (zh) | 软件证书生成方法 | |
US20080189695A1 (en) | Updating of Data Instructions | |
US20100255813A1 (en) | Security in a telecommunications network | |
CN103677892A (zh) | 在安全电子控制单元中启用特殊优先模式的授权方案 | |
US9942047B2 (en) | Controlling application access to mobile device functions | |
CN111108735A (zh) | 资产更新服务 | |
CN103679005A (zh) | 启用安全电子控制单元的开发模式的方法 | |
US11350276B2 (en) | Secure mobile internet-of-things (IOT) device registry management | |
JP6894160B1 (ja) | スマートコントラクトに基づいた利用権情報処理装置、利用権情報処理システム、および利用権情報処理方法 | |
US9858061B2 (en) | Tamperproof installation of building control software in approved runtime environments | |
KR20130085544A (ko) | 어플리케이션 서명 인증서를 이용한 어플리케이션 제어 장치 및 방법 | |
KR20130100032A (ko) | 코드 서명 기법을 이용한 스마트폰 어플리케이션 배포 방법 | |
CN114143198A (zh) | 固件升级的方法 | |
JP5620805B2 (ja) | データベース暗号化装置、データベース暗号化システム、データベース暗号化方法及びプログラム | |
JP4158758B2 (ja) | プログラムid通信処理制御方法、プログラムid通信範囲制御方法および公開鍵毎通信路提供方法 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20180801 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190731 Year of fee payment: 6 |