KR102038964B1 - 어플리케이션 간의 상호 인증 방법 및 장치 - Google Patents

어플리케이션 간의 상호 인증 방법 및 장치 Download PDF

Info

Publication number
KR102038964B1
KR102038964B1 KR1020130028822A KR20130028822A KR102038964B1 KR 102038964 B1 KR102038964 B1 KR 102038964B1 KR 1020130028822 A KR1020130028822 A KR 1020130028822A KR 20130028822 A KR20130028822 A KR 20130028822A KR 102038964 B1 KR102038964 B1 KR 102038964B1
Authority
KR
South Korea
Prior art keywords
application
authentication
authentication information
package
authenticating
Prior art date
Application number
KR1020130028822A
Other languages
English (en)
Other versions
KR20140114229A (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 KR1020130028822A priority Critical patent/KR102038964B1/ko
Priority to US14/184,065 priority patent/US9563764B2/en
Priority to EP14156718.0A priority patent/EP2782037B1/en
Priority to CN201410083249.3A priority patent/CN104065641B/zh
Publication of KR20140114229A publication Critical patent/KR20140114229A/ko
Application granted granted Critical
Publication of KR102038964B1 publication Critical patent/KR102038964B1/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

Abstract

제 1 어플리케이션이 제 2 어플리케이션으로부터 실행 요청을 수신함에 따라, 제 2 어플리케이션의 인증 정보를 인증 서버에게 요청하고, 인증 서버로부터 제 2 어플리케이션의 인증 정보를 획득하고, 획득된 인증 정보를 이용하여 제 2 어플리케이션을 인증하고, 제 2 어플리케이션의 인증 정보는, 인증 서버의 비밀키로 서명된 것인 점을 특징으로 하는 어플리케이션 인증 방법이 개시된다.

Description

어플리케이션 간의 상호 인증 방법 및 장치 {Method and apparatus for mutual authenticating between applications}
본 발명은 인증 서버로부터 인증하고자 하는 어플리케이션의 인증 정보를 수신하여 어플리케이션 간 상호 인증을 수행하는 방법 및 장치에 관한 것이다.
안드로이드 어플리케이션은 인텐트를 사용하여 다른 어플리케이션을 호출할 수 있는 구조를 가지고 있어서, 어플리케이션의 액션 확장이 쉽고, 응용 서비스의 개발이 빠르다는 장점이 있다. 그러나 어플리케이션 간 호출 관계가 만들어 질 경우, 각 어플리케이션은 자기 자신의 보안을 유지하기 위해, 호출하는 어플리케이션(이하, 마스터 어플리케이션)은 호출되는 어플리케이션(이하, 슬레이브 어플리케이션)에 대해 인증할 필요가 있고, 호출되는 어플리케이션은 호출하는 어플리케이션에 대해 인증해야 할 필요성이 있다.
종래에는 어플리케이션의 인증을 위한 방법으로, 인증기관인 CA(Certificate Authority)를 통한 인증서 교환 방식이나 공개키 교환 방식이 사용되었다. 그러나, 인증서 교환 방식은 CA가 개입하게 됨으로써 비용이 많이 증가하게 되는 문제점이 있다. 또한, 공개키 교환 방식은 상호 호출 관계에 있는 어플리케이션은 모두 비밀키와 공개키 쌍을 가지고 있어야 하며, 어플리케이션 스스로 비밀키를 보호해야 하므로 키 관리가 어려워 보안을 유지하기 어렵다는 문제점이 있다.
본 발명은 상기와 같은 문제를 해결하기 위해, 저렴한 비용으로 인증을 정확히 수행할 수 있는 어플리케이션 간 상호 인증을 수행하는 방법 및 장치에 관한 것이다.
상기 기술적 과제를 달성하기 위하여, 본 발명에 따른 어플리케이션 인증 방법은 상기 제 1 어플리케이션이 상기 제 2 어플리케이션으로부터 실행 요청을 수신함에 따라, 상기 제 2 어플리케이션의 인증 정보를 인증 서버에게 요청하는 단계; 상기 인증 서버로부터 상기 제 2 어플리케이션의 인증 정보를 획득하는 단계; 및 상기 획득된 인증 정보를 이용하여 상기 제 2 어플리케이션을 인증하는 단계를 포함하고, 상기 제 2 어플리케이션의 인증 정보는, 상기 인증 서버의 비밀키로 서명된 것인 점을 특징으로 한다.
상기 제 2 어플리케이션을 인증하는 단계는 상기 인증 서버의 공개키를 이용하여 상기 제 2 어플리케이션의 인증 정보를 인증하는 단계; 상기 제 2 어플리케이션의 apk 파일로부터 획득된 HMAC 값과 상기 인증된 인증 정보에 포함된 HMAC 값을 비교하는 단계를 포함하는 것이 바람직하다.
상기 제 2 어플리케이션을 인증하는 단계는 상기 비교 결과에 따라, 상기 제 2 어플리케이션의 apk 파일과 캐쉬 메모리로부터 각각 제 2 어플리케이션의 실행 파일을 추출하여, 상기 제 2 어플리케이션의 apk 파일로부터 추출된 실행 파일과 상기 캐쉬 메모리로부터 추출된 실행 파일을 비교하는 단계를 포함하는 것이 바람직하다.
상기 제 2 어플리케이션의 인증 결과에 따라, 상기 제 1 어플리케이션의 실행을 종료하고, 상기 제 1 어플리케이션의 식별 정보를 상기 제 2 어플리케이션으로 전달하는 단계;를 더 포함하며, 제 2 어플리케이션이 상기 제 1 어플리케이션의 식별 정보를 이용하여 상기 인증 서버로부터 상기 제 1 어플리케이션의 인증 정보를 획득하고, 상기 획득된 인증 정보는 상기 제 2 어플리케이션이 상기 제 1 어플리케이션을 인증하는데 이용되는 것이 바람직하다.
제 2 어플리케이션의 상기 제 1 어플리케이션의 인증 후, 상기 제 1 어플리케이션이 상기 제 2 어플리케이션으로부터 실행 요청을 수신함에 따라, 상기 제 2 어플리케이션의 인증 정보를 이용하여 상기 제 2 어플리케이션을 인증하는 단계; 및 상기 제 2 어플리케이션의 인증 결과에 따라, 상기 제 1 어플리케이션이 상기 제 2 어플리케이션으로부터 요청된 액션을 수행하는 단계를 더 포함하는 것이 바람직하다.
상기 제 1 어플리케이션의 액션이 완료되면, 상기 제 1 어플리케이션의 실행을 종료하고, 상기 제 1 어플리케이션의 식별 정보와 상기 액션의 결과 값을 상기 제 2 어플리케이션으로 전달하는 단계; 를 더 포함하며, 상기 제 2 어플리케이션은 상기 제 1 어플리케이션의 인증 정보를 이용하여 상기 제 1 어플리케이션을 인증하고, 상기 제 1 어플리케이션의 인증 결과에 따라, 상기 액션의 결과 값을 이용하여 다른 액션을 수행하는 것이 바람직하다.
상기 인증 서버에게 요청하는 단계는 상기 제 1 어플리케이션이 상기 제 2 어플리케이션으로 실행 요청을 하기 전에 상기 제 2 어플리케이션의 인증 정보를 인증 서버에게 요청하는 것이 바람직하다.
도 1은 본 발명의 일 실시 예에 의한 제 1 어플리케이션이 제 2 어플리케이션을 인증하는 방법을 나타낸 순서도이다.
도 2는 본 발명의 일 실시 예에 의한 어플리케이션을 인증하는 방법을 나타낸 순서도이다.
도 3은 본 발명의 일 실시 예에 의한 어플리케이션 간 인증하는 방법을 나타낸 흐름도이다.
도 4는 본 발명의 다른 실시 예에 의한 어플리케이션 간 인증하는 방법을 나타낸 흐름도이다.
도 5는 본 발명의 일 실시 예에 의한 어플리케이션 간 인증을 수행하는 클라이언트 장치의 내부 구조를 나타낸 구성도이다.
도 6은 본 발명의 다른 실시 예에 의한 어플리케이션 간 인증을 수행하는 클라이언트 장치의 내부 구조를 나타낸 구성도이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 액션 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다.
도 1은 본 발명의 일 실시 예에 의한 제 1 어플리케이션이 제 2 어플리케이션을 인증하는 방법을 나타낸 순서도이다.
본 발명의 일 실시 예에 있어서, 제 1 어플리케이션은 슬레이브 어플리케이션이고, 제 2 어플리케이션은 마스터 어플리케이션 일 수 있다. 그러나, 이에 제한되지 않으며, 제 1 어플리케이션이 마스터 어플리케이션이고, 제 2 어플리케이션이 슬레이브 어플리케이션일 수 있다. 본 발명의 일 실시 예에 있어서, 마스터 어플리케이션은 슬레이브 어플리케이션을 호출하여 슬레이브 어플리케이션의 액션 결과값을 이용하고자 하는 어플리케이션이고, 슬레이브 어플리케이션은 마스터 어플리케이션의 호출을 받아 마스터 어플리케이션으로부터 실행 요청된 액션을 수행하여 그 결과 값을 마스터 어플리케이션으로 전달하는 어플리케이션일 수 있다.
도 1을 참조하면, 제 1 어플리케이션이 제 2 어플리케이션으로부터 실행 요청을 수신하면, 제 1 어플리케이션은 인증 서버에 제 2 어플리케이션의 인증 정보를 요청할 수 있다(S101). 상기 인증 서버는 어플리케이션들의 HMAC(Hash-based Message Authentication Code) 값을 저장 관리하는 HMAC 서버일 수 있다. 이때 제 1 어플리케이션은 제 2 어플리케이션의 요청에 따라 실행되기 전에 제 2 어플리케이션의 패키지 명과 소프트웨어 버전을 포함하는 식별 정보를 인증 서버로 전송함으로써, 제 2 어플리케이션의 인증 정보를 인증 서버에게 요청할 수 있다.
상기 인증 정보 요청 시 인증 서버로 전송되는 제 2 어플리케이션의 패키지 명과 소프트웨어 버전 정보는, 제 1 어플리케이션이 제 2 어플리케이션으로부터 실행 요청을 수신할 때, 실행 요청과 함께 제 1 어플리케이션에 의해 수신될 수 있다.
제 1 어플리케이션은 S101 단계에서의 요청에 대한 응답으로, 인증 서버로부터 제 2 어플리케이션의 인증 정보를 수신하여 획득할 수 있다(S103). 상기 인증 정보와 함께, 상기 인증 정보의 해쉬(hash) 값이 상기 인증 서버의 비밀키로 암호화된 값인 디지털 서명도 수신될 수 있다. 따라서, 인증 서버로부터 인증 정보를 수신한 제1 어플리케이션은 디지털 서명을 인증 서버의 공개키로 복호화하여 획득한 인증 정보의 해쉬 값과, 인증 서버로부터 수신한 인증 정보의 해쉬 값을 비교함으로써 수신된 인증 정보의 HMAC 값의 위변조 여부를 체크할 수 있다.
상기 인증 정보는 각 어플리케이션의 apk 파일(application package file)로부터 생성될 수 있는 HMAC 값을 포함할 수 있다. 또한, 각 어플리케이션의, 인증 서버의 비밀키로 암호화된 디지털 서명은 각 어플리케이션의 apk 파일로부터 생성될 수 있는 HMAC 값을 인증 서버의 비밀키로 서명함으로써 생성될 수 있다. 이때, 디지털 서명은 HMAC 값의 해쉬(hash) 값을 인증 서버의 비밀키로 암호화한 값일 수 있다.
한편, 어플리케이션의 apk 파일이 변경되면 어플리케이션의 HMAC 값도 변경될 수 있다. 따라서, 제 1 어플리케이션은 클라이언트 장치에 저장된 어플리케이션의 apk 파일을 이용하여 생성된 HMAC 값을 인증 서버로부터 수신한 HMAC 값과 비교함으로써 제 2 어플리케이션을 인증할 수 있다.
인증 서버에 저장된 HMAC 값은, 어플리케이션을 제공하는 마켓에 등록된 어플리케이션의 HMAC 값일 수 있다. 또한, 어플리케이션의 마켓 등록 요청에 따라 심사가 통과된 어플리케이션에 대하여 HMAC 값이 인증 서버에 저장될 수 있다. 이때, 심사가 통과된 어플리케이션의 리스트는 화이트 리스트(white list)로서 인증 서버에 함께 등록될 수 있다. 본래 HMAC 값은 메시지 전송 시 메시지의 전송 중 위변조 여부를 검출하기 위해 사용되는 값이다. 따라서, 어플리케이션의 개발자로부터 어플리케이션 마켓으로 등록 요청을 하기 위한 apk 파일이 어플리케이션 마켓으로 전송될 때, 수신된 apk 파일의 위변조 여부를 검출하기 위하여 apk 파일에 대한 HMAC 값이 같이 전송될 수 있다. 그런데, HMAC 값은 메시지와, 메시지의 수신자 및 생성자 간에만 공유되는 키 값으로부터 HMAC 생성 알고리즘에 따라 생성될 수 있다. 따라서, 메시지에 해당되는 apk 파일이 변경되면, HMAC 값도 달라진다.
상기 HMAC 값의 특징을 이용하여, 인증 서버의 화이트 리스트에 포함된 어플리케이션에 대한, 인증 서버에 저장되어 있는 HMAC 값을 클라이언트 장치 내의 어플리케이션의 HMAC 값과 비교함으로써, 클라이언트 장치 내의 어플리케이션의 위변조 여부를 검출할 수 있다. 따라서, 인증 서버는 어플리케이션의 패키지 명과 소프트웨어 버전 정보에 따라 식별될 수 있는 인증 정보로써 apk 파일에 대한 HMAC값을 저장하여, HMAC값이 어플리케이션의 인증에 이용될 수 있도록 지원할 수 있다.
또한, 본 발명의 일 실시 예에 있어서, HMAC 값과 같이 어플리케이션의 파일, 예컨대 apk 파일에 따라 다르게 생성될 수 있는 데이터 생성 방식이 있는 경우에도 상기 HMAC 값으로 위변조를 검출하는 방법과 동일하게 어플리케이션이 인증될 수 있다. 즉, 다른 어플리케이션을 인증하고자 하는 어플리케이션은 상기 데이터 생성 방식에 따라 생성되어 서버에 저장된 데이터 값과 클라이언트 장치 내의 apk 파일로부터 상기 데이터 생성 방식에 따라 생성된 데이터 값을 비교함으로써, 인증 대상이 되는 어플리케이션의 위변조 여부를 검출하는데 사용할 수 있다.
제 1 어플리케이션은 인증 서버의 공개키와 인증 서버의 비밀키로 암호화된 디지털 서명을 이용하여 수신된 인증 정보를 인증할 수 있다. 자세히 설명하면, 제 1 어플리케이션은 디지털 서명을 인증 서버의 공개키로 복호화함으로써 획득된 인증 정보의 해쉬 값과, 인증 서버로부터 수신된 인증 정보의 해쉬 값을 비교함으로써 인증 서버로부터 수신된 인증 정보를 인증할 수 있다. 제 1 어플리케이션은 인증 정보를 디지털 서명과 공개키를 이용하여 인증함으로써, 인증 정보에 위변조가 없었고, 인증 정보를 전송한 주체가 인증 서버임을 인증할 수 있다. 이때, 인증 서버의 공개키는 인증 서버로부터 수신되어 제 1 어플리케이션이 인증 정보를 인증하는데 사용될 수 있다.
인증 정보가 비밀키로 서명될 때, 전자 서명(digital signature) 방식에 따라 서명될 수 있다. 전자 서명이란 전송하고자 하는 데이터에 부착되거나 논리적으로 결합된 전자적 형태의 디지털 정보로서, 서명자의 신원을 확인하고, 데이터의 내용에 대한 서명자의 승인을 나타낼 목적으로 사용될 수 있다. 전자 서명은 비대칭 암호화 방식을 이용하여 전자서명 생성키로 생성될 수 있는데, 임의의 숫자, 문자, 기호 등의 연속된 형태로 나타날 수 있다. 전자서명을 원하는 가입자는 생성키와 검증키를 자신의 전자 서명키로 갖게된다. 전자 서명 생성키는 가입자만이 사용할 수 있는 비밀키이며 전자 서명 검증키는 전자 서명된 데이터를 타인이 검증할 때 이용되는 공개키이다. 즉 타인은 가입자의 공개키를 통해 데이터 서명자의 신원을 확인하고 데이터를 열람할 수 있으며, 비밀키는 가입자가 특정 데이터를 타인에게 전송할 때, 상기 데이터에 전자 서명하기 위해 사용될 수 있다. 전자 서명은 데이터 자체를 암호화하는 것이 아니므로 제 3 자가 문서 내용을 열람하는 데에는 아무런 장애가 없지만, 전자 서명에 작성자로 기재된 자가 그 데이터를 작성하였다는 사실과 작성 내용이 송수신과정에서 위변조되지 않았다는 사실을 증명하고, 작성자가 데이터의 작성 사실을 나중에 부인할 수 없게 하는 역할을 한다.
만약, 인증 서버로부터 제 2 어플리케이션의 인증 정보를 수신할 수 없는 경우, 즉 제 2 어플리케이션이 화이트 리스트에 포함되어 있지 않아 인증 정보가 존재하지 않는 경우, 제 2 어플리케이션은 등록되지 않은 어플리케이션에 해당하여 인증을 진행할 수 없다.
제 1 어플리케이션은 인증 서버로부터 수신된 인증 정보를 이용하여 제 2 어플리케이션을 인증할 수 있다(S105). 제 1 어플리케이션은 인증 서버의 공개키에 의해 인증된 인증 정보를 이용하여 클라이언트 장치 내의 제 2 어플리케이션을 인증할 수 있다. 제 1 어플리케이션은 제 2 어플리케이션을 인증한 후에, 제 2 어플리케이션의 요청에 따라 액션을 실행할 수 있다.
한편, 제 1 어플리케이션이 마스터 어플리케이션이고 제 2 어플리케이션이 슬레이브 어플리케이션인 경우에도 앞서 설명한 바와 같이 본 발명의 일 실시 예에 따라 어플리케이션의 인증이 이루어질 수 있다. 제 1 어플리케이션이 제 2 어플리케이션의 액션의 결과값을 이용하여 다른 액션을 수행하고자 할 때, 제 1 어플리케이션은 제 2 어플리케이션이 안전한지 인증할 수 있다. 이 경우, 제 1 어플리케이션은 제 2 어플리케이션을 검증하기 위해 인증 정보를 이용하여 제 2 어플리케이션을 인증한 후, 제 2 어플리케이션으로 제 1 어플리케이션의 실행 요청을 전달할 수 있다. 즉, 마스터 어플리케이션이 슬레이브 어플리케이션의 식별 정보를 획득한 후, 슬레이브 어플리케이션을 인증하고, 명시적 인텐트로 슬레이브 어플리케이션에 실행 요청을 전달할 수 있다.
도 2는 본 발명의 일 실시 예에 의한 클라이언트 장치 내의 제 1 어플리케이션이 제 2 어플리케이션을 인증하는 방법을 나타낸 순서도이다.
도 2를 참조하면, 제 2 어플리케이션을 인증하고자 하는 제 1 어플리케이션은 인증 서버의 공개키를 이용하여 제 2 어플리케이션의 인증 정보를 인증할 수 있다(S201). 제 1 어플리케이션은 비밀키로 암호화된 상기 인증 정보의 디지털 서명과 공개키를 이용하여 상기 인증 정보를 인증함으로써, 인증 서버로부터 수신된 인증 정보가 위변조되지 않았고, 인증 정보를 전송한 주체가 인증 서버임을 확인할 수 있다. 이후, 제 1 어플리케이션은, 인증 정보를 제 2 어플리케이션을 인증하는데 이용할 수 있다.
그리고, 제 1 어플리케이션은 상기 인증된 인증 정보와 비교 판단하기 위한 인증 정보를 제 2 어플리케이션의 apk 파일로부터 획득할 수 있다(S203). 이때, 인증 정보는 어플리케이션의 apk파일로부터 획득될 수 있는 HMAC 값을 포함할 수 있다. 상기 apk 파일은 어떤 어플리케이션을 클라이언트 장치에 설치하기 위해 필요한 어플리케이션 패키지 파일이다. 어플리케이션을 실행하기 위해 필요한 파일들은 상기 apk 파일에 포함되어 있다. apk 파일은 어플리케이션 설치를 위해 어플리케이션의 apk 파일을 제공하는 서버로부터 클라이언트 장치로 다운로드될 수 있다. 다운로드된 어플리케이션의 apk 파일은 클라이언트 장치 내의 /data/app 폴더에 저장될 수 있다. 클라이언트 장치는 다운로드된 apk 파일을 이용하여 어플리케이션을 설치할 수 있다.
제 1 어플리케이션은 HMAC 값을 생성하는데 필요한 키 값과 제 2 어플리케이션의 클라이언트 장치에 저장된 apk 파일을 이용하여 HMAC 생성 알고리즘에 따라 제 2 어플리케이션의 HMAC 값을 생성할 수 있다. 이때 사용되는 키 값과 HMAC 생성 알고리즘은 인증 서버의 인증 정보에 포함되어 있는 HMAC값 생성 시 이용되는 키 값 및 HMAC 생성 알고리즘과 동일하다. 상기 키 값과 HMAC 알고리즘은 인증 서버로부터 클라이언트 장치로 전송되어 HMAC 값을 생성하는데 이용될 수 있다.
제 1 어플리케이션은 제 2 어플리케이션의 apk 파일로 만든 인증 정보와 상기 인증 서버로부터 수신된 인증 정보를 비교한다(S205). 이때, 제 1 어플리케이션은 제 2 어플리케이션의 apk 파일로부터 획득한 HMAC 값과, 인증 서버로부터 수신된 인증 정보에 포함된 HMAC 값을 비교할 수 있다.
비교 결과(S207), 두 값이 동일하지 않으면, 제 2 어플리케이션의 인증은 실패한다(S219). 반면, 비교 결과(S207), 두 값이 동일하면, 제 2 어플리케이션의 apk 파일이 안전성이 검증된 어플리케이션 마켓에 등록된 apk 파일과 동일한 것이므로, apk 파일이 위변조되지 않았음이 인증될 수 있다. 제 1 어플리케이션은 apk 파일 인증 후, 제 2 어플리케이션의 실행 파일에 대하여 인증을 계속할 수 있다.
한편, 클라이언트 장치 내에서 어플리케이션 실행 시 사용되는 파일은, 안드로이드 시스템에서, apk 파일 내의 classes.dex 파일을 최적화한 optimized classes.dex 파일이다. apk 파일은 어플리케이션을 클라이언트 장치에 설치하기 위한 패키지 파일이고 어플리케이션 실행 시 실행되는 파일은 아니다. optimized classes.dex 파일은 클라이언트 장치의 캐쉬 메모리, 예를 들면, /data/dalvik-cache/ 폴더 내에 저장될 수 있으며, optimized classes.dex 파일의 실행으로 해당 어플리케이션이 실행될 수 있다. 따라서, apk 파일이 아닌 optimized classes.dex 파일이 위변조되는 경우에는, apk 파일의 인증만으로는 어플리케이션의 위변조 여부가 정확히 인증될 수 없다.
따라서, 본 발명의 일 실시 예에 의하면, 제 1 어플리케이션이 제 2 어플리케이션에 대하여 위변조 여부를 정확히 검출하기 위하여, 제 2 어플리케이션의 패키지 파일 이외 제 2 어플리케이션의 실행 파일까지 인증을 수행함이 바람직하다.
제 1 어플리케이션은, 제 2 어플리케이션의 실행 파일에 대하여 인증을 수행하기 위해, S207 단계에서 인증된 제 2 어플리케이션의 apk 파일로부터 classes.dex 파일을 추출하고(S209), 클라이언트 장치 내의 캐시에 저장되어 있는 제 2 어플리케이션의 실행 파일인 optimized classes.dex 파일을 추출할 수 있다(S211). 제 1 어플리케이션은 제 2 어플리케이션의 apk 파일로부터 추출된 classes.dex 파일을 최적화함으로써, optimized classes.dex 파일을 추출할 수 있다. 제 1 어플리케이션은 상기 optimized classes.dex 파일을 S211 단계에서 추출된 optimized classes.dex 파일과 비교한다(S213).
optimized classes.dex 파일은 odex header, dex header 및 optimized dex body로 구성될 수 있다. 여기서 odex header는 magic number로서, optimized *.dex 파일을 만들 때 마다 변경될 수 있는 값이다. 따라서, 제 1 어플리케이션은 odex header를 제외한 값인, dex header 및 optimized dex body 부분에 대하여 두 optimized classes.dex 파일을 비교함으로써, 제 2 어플리케이션의 실행 파일의 위변조 여부를 검출할 수 있다.
본 발명의 일 실시 예에 대한 설명에서, 안드로이드 시스템을 기준으로 하여 어플리케이션의 실행 파일로서 optimized classes.dex 파일을 비교하는 것으로 설명되었으나, optimized classes.dex 파일로 한정되지 않고, 어플리케이션 실행 시 이용되는 실행 파일에 대하여 본 발명에 의한 인증 방법이 동일하게 적용될 수 있다. 즉, 인증된 apk 파일로부터 획득한 실행 파일과 캐시 메모리에 저장된 실행 파일을 비교함으로써 어플리케이션의 실행 파일의 위변조 여부를 인증할 수 있다.
두 optimized classes.dex 파일의 비교 결과, 비교 대상이 되는 데이터 부분이 동일한 경우(S215), 제 2 어플리케이션은 위변조 되지 않은 것으로 최종적으로 인증될 수 있다(S217). 반면에, 비교 대상이 되는 데이터 부분이 동일하지 않은 경우(S215), 제 2 어플리케이션은 위변조된 것으로 판단되어, 제 2 어플리케이션에 대한 인증은 실패한 것으로 결정된다(S219).
도 3은 본 발명의 일 실시 예에 의한 마스터 어플리케이션과 슬레이브 어플리케이션 간 인증하는 방법을 나타낸 흐름도이다.
마스터 어플리케이션이 슬레이브 어플리케이션을 호출할 때, 슬레이브 어플리케이션이 위변조되어 보안상 문제가 있다면, 슬레이브 어플리케이션의 액션 결과 값을 신뢰할 수 없을뿐더러 상기 결과값을 마스터 어플리케이션에서 이용하는 경우에는 보안상 문제가 발생할 가능성이 있다. 따라서, 슬레이브 어플리케이션에 실행 요청하기 전 마스터 어플리케이션이 슬레이브 어플리케이션을 인증하는 절차가 필요하다. 마찬가지로, 슬레이브 어플리케이션이 마스터 어플리케이션으로부터 호출을 받아 요청된 액션을 수행할 때, 마스터 어플리케이션이 위변조되어 보안상 위험이 존재한다면, 슬레이브 어플리케이션의 액션 결과 값을 마스터 어플리케이션으로 전달하였을 때, 보안상 문제가 발생할 가능성이 있다. 따라서, 슬레이브 어플리케이션은 액션 결과 값을 마스터 어플리케이션으로 전달하기 전 마스터 어플리케이션을 인증하는 절차가 필요하다.
예를 들어, 마스터 어플리케이션이 모바일 POS(point of sales) 어플리케이션이고, 슬레이브 어플리케이션이 카드 리더 액세서리 어플리케이션(card reader accessory application)일 때, 모바일 POS 어플리케이션이 결제를 진행하고자 카드 리더 액세서리 어플리케이션에게 결제를 진행할 카드의 정보를 요청할 수 있다. 이때, 카드 리더 액세서리 어플리케이션이 위변조된 경우, 모바일 POS 어플리케이션에서 결제를 진행할 때 잘못된 카드 결제 정보로 결제가 진행될 수 있다는 문제점이 발생할 수 있다. 또한, 모바일 POS 어플리케이션이 위변조된 경우, 카드 리더 액세서리 어플리케이션에 의해 획득된 카드 결제 정보가 모바일 POS 어플리케이션에 의해 유출될 수 있다는 문제점이 발생할 수 있다.
따라서, 이하 본 발명에서는 상기와 같은 문제점을 해결하기 위해, 마스터 어플리케이션과 슬레이브 어플리케이션 간 인증 방법을 설명하고자 한다.
이하 설명되는 마스터 어플리케이션과 슬레이브 어플리케이션은 도 1 및 도 2에 도시된 제 1 어플리케이션 또는 제 2 어플리케이션과 각각 대응될 수 있다. 즉, 제 1 어플리케이션이 제 2 어플리케이션으로부터 실행 요청을 수신하는 경우에는 제 1 어플리케이션 및 제 2 어플리케이션은 각각 슬레이브 어플리케이션 및 마스터 어플리케이션과 대응될 수 있다. 또한, 제 1 어플리케이션이 제 2 어플리케이션으로 실행 요청을 하는 경우에는 제 1 어플리케이션 및 제 2 어플리케이션은 각각 마스터 어플리케이션 및 슬레이브 어플리케이션과 대응될 수 있다.
도 3을 참조하면, 마스터 어플리케이션의 실행 후(S301), 마스터 어플리케이션은 암시적 인텐트(Implicit intent)를 통해 슬레이브 어플리케이션의 실행을 요청할 수 있다(S303).
암시적 인텐트란, 안드로이드 시스템에서 사용될 수 있는 메시지로써, 마스터 어플리케이션에서 실행 요청하고자 하는 액션에 대한 정보를 포함하고 있다. 따라서, 안드로이드 시스템은 마스터 어플리케이션으로부터 전달된 암시적 인텐트를 분석하여 어떤 어플리케이션이 마스터 어플리케이션에서 실행하고자 하는 액션을 수행할 수 있는지 판단하고, 상기 판단된 어플리케이션들의 리스트를 클라이언트 장치에 디스플레이함으로써 사용자가 액션을 수행할 어플리케이션을 선택할 수 있도록 지원할 수 있다. 사용자에 의해 선택된 어플리케이션은 본 발명의 일 실시예에 있어서 마스터 어플리케이션의 실행 요청을 수신하는 슬레이브 어플리케이션이 된다.
그러나, 암시적 인텐트로 마스터 어플리케이션이 슬레이브 어플리케이션에 실행 요청을 하는 경우, 선택된 어플리케이션에 대한 식별 정보가 마스터 어플리케이션으로 전달되지 않기 때문에, 마스터 어플리케이션은 슬레이브 어플리케이션이 어떤 어플리케이션인지 알 수 없다. 그러므로 마스터 어플리케이션은 슬레이브 어플리케이션을 인증하는 과정 없이, 암시적 인텐트를 통해 슬레이브 어플리케이션으로 실행 요청을 전달하게 된다. 실행 요청을 받은 슬레이브 어플리케이션은 마스터 어플리케이션을 인증한 후, 슬레이브 어플리케이션의 식별 정보를 마스터 어플리케이션으로 전달한다. 마스터 어플리케이션은 상기 전달된 식별 정보를 이용하여 슬레이브 어플리케이션을 인증하고, 슬레이브 어플리케이션으로 다시 실행 요청을 전달할 수 있다.
따라서, 마스터 어플리케이션은 슬레이브 어플리케이션이 마스터 어플리케이션을 인증할 수 있도록 암시적 인텐트를 전달할 때 마스터 어플리케이션의 식별 정보도 함께 안드로이드 시스템을 통하여 슬레이브 어플리케이션으로 전달할 수 있다. 식별 정보는 어플리케이션의 apk 파일과 어플리케이션의 인증 정보를 식별할 수 있도록 어플리케이션의 패키지 명과 소프트웨어 버전 정보를 포함할 수 있다.
슬레이브 어플리케이션은 마스터 어플리케이션의 식별 정보를 인증 서버로 전송하면서, 마스터 어플리케이션의 인증 정보를 요청하여 인증 정보를 수신할 수 있다(S305). 이때, 상기 인증 정보를 인증하기 위한 디지털 서명도 함께 수신될 수 있다. 인증 서버는 상기 식별 정보에 포함된 마스터 어플리케이션의 패키지 명 및 소프트웨어 버전 정보와 일치하는 apk 파일에 대한 인증 정보를 디지털 서명과 함께 슬레이브 어플리케이션으로 전송할 수 있다. 상기 인증 정보는 인증하고자 하는 어플리케이션의 apk 파일에 대한 HMAC 값을 포함할 수 있다.
슬레이브 어플리케이션으로 전송된, 인증 정보는 클라이언트 장치 내 메모리에 저장되어 이후 필요 시 사용될 수 있다. 인증 정보는 인증 서버의 비밀키로 서명되어 있어, 인증 서버의 비밀키를 모르면 인증 정보를 위변조할 수 없기 때문에, 디지털 서명을 가진 인증 정보는 인증 서버의 공개키로 인증 과정을 거치는 이상 위변조의 가능성이 없다. 디지털 서명은 인증 서버의 비밀키로만 생성될 수 있고, 인증 서버의 비밀키로 생성된 디지털 서명만 인증 서버의 공개키로 복호화될 수 있기 때문이다. 따라서, 어플리케이션이 클라이언트 장치 내 메모리에 인증 정보와 디지털 서명을 함께 저장해두고 이후 동일한 apk 파일을 인증할 때 사용하여도 보안상 문제가 발생할 가능성은 적다.
슬레이브 어플리케이션은 마스터 어플리케이션의 인증 정보를 이용하여 마스터 어플리케이션을 인증할 수 있다(S307). 자세히 설명하면, 슬레이브 어플리케이션은 인증 서버의 비밀키로 서명된 인증 정보, 즉 인증 정보의 디지털 서명과 인증 서버의 공개키를 이용하여 인증 정보의 위변조 여부를 체크한 후, 인증 서버로부터 수신된 인증 정보와 마스터 어플리케이션의 apk 파일로부터 생성된 인증 정보를 비교함으로써 apk 파일의 위변조 여부를 체크할 수 있다. 본 발명의 일 실시 예에 있어서, 서명된 인증 정보란 인증 정보에 대한 디지털 서명이 존재함을 의미한다. 따라서, 서명된 인증 정보는 인증 서버의 공개키에 의해 위변조 여부가 체크될 수 있다.
상기 인증 정보는 그리고 슬레이브 어플리케이션은 apk 파일로부터 추출된 optimized classes.dex 파일과 캐시 메모리에 저장된 optimized classes.dex 파일을 비교하여 실행 파일의 위변조 여부를 체크함으로써, 마스터 어플리케이션을 인증할 수 있다. apk 파일이 위변조된 것으로 판단되면, 실행 파일의 위변조 여부를 체크할 필요 없이, 마스터 어플리케이션의 인증은 실패한 것으로 판단될 수 있다.
마스터 어플리케이션이 위변조 되지 않은 것으로 인증되면, 슬레이브 어플리케이션은 슬레이브 어플리케이션의 식별 정보를 마스터 어플리케이션으로 전달하고(S309), 슬레이브 어플리케이션의 실행을 종료한다(S311). 슬레이브 어플리케이션의 실행을 종료하는 것은, 슬레이브 어플리케이션의 인증이 수행되기 전이어서, 슬레이브 어플리케이션을 인증하기 전에 슬레이브 어플리케이션이 마스터 어플리케이션으로부터 요청받은 액션을 수행하는 것은 보안상 문제가 발생할 수 있기 때문이다.
마스터 어플리케이션은 슬레이브 어플리케이션의 식별 정보를 수신하면, 슬레이브 어플리케이션에 대하여 인증을 수행한다. 마스터 어플리케이션은 슬레이브 어플리케이션의 식별 정보를 인증 서버로 전송하면서, 슬레이브 어플리케이션의 서명된 인증 정보를 요청하여 수신할 수 있다(S313). 인증 서버는 상기 식별 정보에 포함된 슬레이브 어플리케이션의 패키지 명과 소프트웨어 버전 정보와 일치하는 apk 파일에 대한 서명된 인증 정보를 마스터 어플리케이션으로 전송할 수 있다. 상기 서명된 인증 정보는 클라이언트 장치 내 메모리에 저장되어 이후 상기 apk 파일과 동일한 apk 파일을 인증할 때 사용될 수 있다.
마스터 어플리케이션은 슬레이브 어플리케이션의 인증 정보를 이용하여 슬레이브 어플리케이션을 인증할 수 있다(S315). 자세히 설명하면, 마스터 어플리케이션은 인증 서버의 비밀키로 서명된 인증 정보를 인증 서버의 공개키를 이용하여 인증 정보의 위변조 여부를 체크한 후, 인증 정보와 슬레이브 어플리케이션의 apk 파일로부터 생성된 인증 정보를 비교함으로써 apk 파일의 위변조 여부를 체크할 수 있다. 그리고 마스터 어플리케이션은 슬레이브 어플리케이션의 apk 파일로부터 추출된 optimized classes.dex 파일과 캐시 메모리에 저장된 optimized classes.dex 파일을 비교하여 실행 파일의 위변조 여부를 체크함으로써, 슬레이브 어플리케이션의 인증을 완료할 수 있다. apk 파일이 위변조된 것으로 판단되면, 실행 파일의 위변조 여부를 체크할 필요 없이, 슬레이브 어플리케이션은 위변조된 것으로 판단될 수 있다.
슬레이브 어플리케이션이 위변조 되지 않은 것으로 판단되면, 마스터 어플리케이션은 명시적 인텐트(Explicit intent)를 통해 슬레이브 어플리케이션의 실행을 요청할 수 있다(S317). 이때, 마스터 어플리케이션은 마스터 어플리케이션의 식별 정보를 함께 슬레이브 어플리케이션으로 전달할 수 있다.
명시적 인텐트란, 안드로이드 시스템에서 사용될 수 있는 메시지로써, 마스터 어플리케이션에서 실행 요청하고자 하는 액션에 대한 정보뿐만 아니라, 액션을 수행할 슬레이브 어플리케이션에 대한 정보도 함께 포함하고 있다. 따라서, 마스터 어플리케이션은 S303 단계에서 선택된 슬레이브 어플리케이션으로 액션을 요청할 수 있다.
이때, 마스터 어플리케이션은 슬레이브 어플리케이션에서 액션을 위해 필요한 값, 예를 들면, 결제 금액 정보를 함께 슬레이브 어플리케이션으로 전달할 수 있다. 또한, 마스터 어플리케이션은 슬레이브 어플리케이션으로부터 액션의 결과 값을 안전하게 전달받기 위해 일회적으로 사용될 수 있는 비밀키와 공개키 쌍을 생성하고, 공개키를 슬레이브 어플리케이션으로 전달할 수 있다. 따라서, 슬레이브 어플리케이션은 액션의 결과 값을 공개키로 암호화하여 마스터 어플리케이션으로 전달할 수 있다. 공개키로 암호화된 데이터는 공개키와 쌍을 이루는 비밀키로만 풀 수 있다. 따라서, 데이터 전달 시 외부 장치로 유출되어도 외부 장치는 비밀키를 알 수 없어 암호화된 데이터를 복호화할 수 없으므로, 전달되는 데이터의 보안을 유지할 수 있다. 마스터 어플리케이션과 슬레이브 어플리케이션에서 사용된 비밀키와 공개키는 일회적으로 사용됨에 따라 액션의 결과 값을 포함한 데이터의 전달이 완료되면 폐기될 수 있다.
명시적 인텐트에 의해 실행된 슬레이브 어플리케이션은 마스터 어플리케이션의 요청에 따라 액션을 수행하기 전에, 마스터 어플리케이션에 대한 인증을 수행한다(S319). S307 단계에서 슬레이브 어플리케이션이 마스터 어플리케이션에 대하여 인증을 수행한 바 있으나, 인증 수행 후 슬레이브 어플리케이션이 종료되었기 때문에, 종료 후 명시적 인텐트에 따라 재실행된 슬레이브 어플리케이션은 마스터 어플리케이션에 대하여 다시 인증을 수행하는 것이 필요하다.
슬레이브 어플리케이션은 마스터 어플리케이션의 인증 정보를 이용하여 마스터 어플리케이션을 인증할 수 있다(S319). 슬레이브 어플리케이션은 S305 단계에서 수신되어 클라이언트 장치 내의 메모리에 저장된 마스터 어플리케이션의 서명된 인증 정보를 이용하여 마스터 어플리케이션을 인증할 수 있다. 자세히 설명하면, 슬레이브 어플리케이션은 인증 서버의 비밀키로 암호화된 인증 정보의 디지털 서명과 인증 서버의 공개키를 이용하여 인증 정보의 위변조 여부를 체크한 후, 인증 정보와 마스터 어플리케이션의 apk 파일로부터 생성된 인증 정보를 비교함으로써 apk 파일의 위변조 여부를 체크할 수 있다. 그리고 슬레이브 어플리케이션은 apk 파일로부터 추출된 optimized classes.dex 파일과 캐시 메모리에 저장된 optimized classes.dex 파일을 비교하여 실행 파일의 위변조 여부를 체크함으로써, 마스터 어플리케이션을 인증할 수 있다. apk 파일이 위변조된 것으로 판단되면, 실행 파일의 위변조 여부를 체크할 필요 없이, 마스터 어플리케이션은 위변조된 것으로 판단될 수 있다.
슬레이브 어플리케이션은 S319 단계에서 인증한 결과, 마스터 어플리케이션이 위변조 되지 않은 것으로 판단하면, 슬레이브 어플리케이션은 마스터 어플리케이션이 요청한 액션을 수행하고(S321), 액션의 결과값을 마스터 어플리케이션으로 전달한다(S325). 이때 액션의 결과값은 공개키 교환 방식에 따라 마스터 어플리케이션으로부터 전달받은 공개키로 암호화되어 마스터 어플리케이션으로 전달될 수 있다. 슬레이브 어플리케이션은 액션의 결과값을 마스터 어플리케이션으로 전달한 후 실행을 종료한다(S323).
슬레이브 어플리케이션으로부터 액션의 결과값을 전달받은 마스터 어플리케이션은 상기 결과값을 이용하여 다른 액션을 수행할 수 있다(S327). 예를 들어, 상기 결과값이 결제를 진행할 카드 정보인 경우, 마스터 어플리케이션인 모바일 POS 어플리케이션은 상기 카드 정보를 이용하여 결제를 진행할 수 있다.
도 4는 본 발명의 다른 실시 예에 의한 어플리케이션 간 인증하는 방법을 나타낸 흐름도이다.
도 3에서 설명한 본 발명의 일 실시 예에 의한 어플리케이션 간 인증하는 방법은, 슬레이브 어플리케이션이 마스터 어플리케이션을 두 번 인증하게 되므로, 마스터 어플리케이션이 슬레이브 어플리케이션으로부터 받은 결과값을 이용하기 까지 걸리는 시간이 길어진다는 단점이 있다.
본 발명의 다른 실시 예에 의한 어플리케이션 간 인증하는 방법은 상기 단점을 보완하기 위한 것으로, 본 발명의 다른 실시 예에 따르면, 마스터 어플리케이션이 먼저 슬레이브 어플리케이션을 인증한 후, 슬레이브 어플리케이션으로 실행 요청을 할 수 있다. 이를 위해 클라이언트 장치는 마스터 어플리케이션에 슬레이브 어플리케이션의 식별 정보를 전달해줄 수 있는 어플리케이션 관리부를 더 포함할 수 있다. 어플리케이션 관리부는 클라이언트 장치에 설치된 어플리케이션들의 식별 정보를 획득하여 슬레이브 어플리케이션의 식별 정보를 마스터 어플리케이션에 전달해 줄 수 있다. 또한, 어플리케이션 관리부는 각 어플리케이션이 실행 가능한 액션 정보를 이용하여 마스터 어플리케이션이 요청하는 액션을 수행할 수 있는 어플리케이션의 리스트를 생성할 수 있다. 본 발명의 다른 실시 예에 의하면, 마스터 어플리케이션과 슬레이브 어플리케이션의 인증 과정은 각각 한번만 수행될 수 있다.
도 4를 참조하면, 마스터 어플리케이션의 실행 후(S401), 마스터 어플리케이션은 실행 요청할 슬레이브 어플리케이션을 선택할 수 있다(S403). 이를 자세히 설명하면, 마스터 어플리케이션은 원하는 액션을 실행할 수 있는 어플리케이션 목록을 어플리케이션 관리부에 요청할 수 있다. 그리고, 상기 요청에 따라, 어플리케이션 관리부에 의해 생성된 어플리케이션의 목록은 클라이언트 장치 내의 디스플레이 화면(미도시)에 표시되어 사용자에 의해 어플리케이션이 선택될 수 있다. 어플리케이션이 선택되면, 마스터 어플리케이션은 슬레이브 어플리케이션에 실행 요청을 하기 전, 선택된 어플리케이션, 즉, 슬레이브 어플리케이션에 대한 식별 정보를 어플리케이션 관리부로부터 전달 받을 수 있다. 따라서, 마스터 어플리케이션은 슬레이브 어플리케이션에 대한 식별 정보를 이용하여 슬레이브 어플리케이션을 인증한 후, 명시적 인텐트를 이용하여 슬레이브 어플리케이션에 실행 요청을 전달할 수 있다.
또는, 마스터 어플리케이션이 어플리케이션 관리부에 클라이언트 장치에 설치된 어플리케이션의 식별 정보를 요청할 수 있다. 그리고 상기 요청에 따라 마스터 어플리케이션은 어플리케이션 관리부로부터 클라이언트 장치에 설치된 어플리케이션의 식별 정보를 수신할 수 있다. 마스터 어플리케이션은 수신한 어플리케이션의 식별 정보를 이용하여 원하는 액션을 실행할 수 있는 어플리케이션 목록을 생성할 수 있다. 생성된 어플리케이션의 목록은 클라이언트 장치 내의 디스플레이 화면(미도시)에 표시되어 사용자에 의해 어플리케이션이 선택될 수 있다. 마스터 어플리케이션이 어플리케이션 관리부로부터 수신한 어플리케이션의 식별 정보 중 슬레이브 어플리케이션에 대한 식별 정보를 이용하여 슬레이브 어플리케이션을 인증한 후, 명시적 인텐트를 이용하여 슬레이브 어플리케이션에 실행 요청을 전달할 수 있다.
마스터 어플리케이션은 슬레이브 어플리케이션의 식별 정보를 이용하여 인증 서버로부터 서명된 인증 정보를 수신하여(S405), 슬레이브 어플리케이션을 인증할 수 있다(S407). 상기 S405 단계 및 S407 단계는 도 3의 S313, S315 단계와 대응되는 것으로서 중복되는 내용은 생략하기로 한다.
슬레이브 어플리케이션이 위변조 되지 않은 것으로 판단되면, 마스터 어플리케이션은 명시적 인텐트를 통해 슬레이브 어플리케이션의 실행을 요청할 수 있다(S409). 이때, 마스터 어플리케이션은 마스터 어플리케이션의 식별 정보를 함께 슬레이브 어플리케이션으로 전달할 수 있다. 상기 S409 단계는 도 3의 S317 단계와 대응되는 것으로서 중복되는 내용은 생략하기로 한다.
슬레이브 어플리케이션은 마스터 어플리케이션의 식별 정보를 인증 서버로 전송하면서, 마스터 어플리케이션의 서명된 인증 정보를 요청하여 수신할 수 있다(S411). 슬레이브 어플리케이션은 마스터 어플리케이션의 인증 정보를 이용하여 마스터 어플리케이션을 인증할 수 있다(S413). 상기 S411, S413 단계는 도 3의 S305, S307 또는 S319 단계와 대응되는 것으로서 중복되는 내용은 생략하기로 한다.
슬레이브 어플리케이션은 마스터 어플리케이션이 위변조 되지 않은 것으로 인증되면, 슬레이브 어플리케이션은 마스터 어플리케이션이 요청한 액션을 수행하고(S415), 액션의 결과값을 마스터 어플리케이션으로 전달한다(S417). 슬레이브 어플리케이션은 액션의 결과값을 마스터 어플리케이션으로 전달한 후 실행을 종료한다(S419). 슬레이브 어플리케이션으로부터 액션의 결과값을 전달받은 마스터 어플리케이션은 상기 결과값을 이용하여 다른 액션을 수행할 수 있다(S421). 상기 S415 내지 S421 단계는 도 3의 S321 내지 S327단계와 대응되는 것으로서 중복되는 내용은 생략하기로 한다.
도 5는 본 발명의 일 실시 예에 의한 어플리케이션 간 인증을 수행하는 클라이언트 장치의 내부 구조를 나타낸 구성도이다.
도 5를 참조하면, 본 발명의 일 실시 예에 의한 보안 시스템은, 인증 서버(510)와 클라이언트 장치(520)를 포함할 수 있다.
인증 서버(510)는 인증 서버의 비밀키로 디지털 서명된 인증 정보와 인증 서버의 공개키를 저장해두고 클라이언트(520)로 전송할 수 있다. 디지털 서명된 인증 정보란, 인증 정보의 해쉬 값이 인증 서버의 비밀키로 암호화된 디지털 서명이 생성되어 있는 것을 의미한다. 따라서, 디지털 서명된 인증 정보는 상기 디지털 서명과 인증 서버의 공개키를 이용하여 인증될 수 있다. 어플리케이션의 패키지 명과 소프트웨어 버전 별로 식별될 수 있는 apk 파일과 인증 정보는 하나의 쌍을 이루어 인증 서버에 저장될 수 있다. 상기 인증 정보는 apk 파일의 HMAC 값을 포함할 수 있다.
클라이언트 장치(520)는 사용자가 이용할 수 있는 다양한 형태의 장치로서, 예를 들면, PC(Personal Computer), 노트북 컴퓨터, 휴대폰(mobile phone), 태블릿 PC, 내비게이션(navigation) 단말기, 스마트폰(smart phone), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player) 및 디지털방송 수신기를 포함할 수 있다. 물론 이는 예시에 불과할 뿐이며, 상술한 예 이외에도 현재 개발되어 상용화되었거나 향후 개발될 모든 통신이 가능한 장치를 포함하는 개념으로 해석될 수 있다.
클라이언트 장치(520)는 제 1 어플리케이션(521), 제 2 어플리케이션(522) 및 통신부(523)로 구성된다.
제 1 어플리케이션(521)은 제 2 어플리케이션(522)으로부터 실행 요청을 수신하면 제 2 어플리케이션(522)의 패키지 명과 소프트웨어 버전을 포함하는 식별 정보를 인증 서버(520)로 전송하면서, 인증 서버(520)에 제 2 어플리케이션(522)의, 인증 서버(520)의 비밀키로 서명된 인증 정보를 요청할 수 있다. 인증 정보는 인증 정보의 디지털 서명과 인증 서버의 공개키에 의해 인증될 수 있다. 제 1 어플리케이션(521)은 인증 서버(520)로부터 수신한 인증 정보를 이용하여 제 2 어플리케이션(522)을 인증한 후에, 제 2 어플리케이션(522)의 요청에 따라 액션을 실행할 수 있다.
또는 제 1 어플리케이션(521)은 제 2 어플리케이션(522)에 실행 요청을 하기 전에 제 2 어플리케이션(522)의 서명된 인증 정보를 인증 서버로부터 수신하고 인증 정보를 이용하여 제 2 어플리케이션을 인증할 수 있다. 인증 후, 제 1 어플리케이션(521)은 제 2 어플리케이션(522)에 실행 요청을 하고, 제 2 어플리케이션(522)으로부터 액션의 결과값을 수신하면, 상기 결과값을 이용하여 다른 액션을 수행할 수 있다.
통신부(523)는 클라이언트 장치(520)가 인증 서버(510)와 데이터를 송수신할 수 있도록 유선 또는 무선 통신을 지원한다.
도 6은 본 발명의 다른 실시 예에 의한 어플리케이션 간 인증을 수행하는 클라이언트 장치의 내부 구조를 나타낸 구성도이다. 도 6의 인증 서버(610), 클라이언트 장치(620), 제 1 어플리케이션(621), 제 2 어플리케이션(622) 및 통신부(623)는 도 5의 인증 서버(510), 클라이언트 장치(520), 제 1 어플리케이션(521), 제 2 어플리케이션(522) 및 통신부(523)와 대응되는 것으로서 중복되는 내용은 생략하기로 한다.
클라이언트 장치(620)는 저장부(624), 어플리케이션 관리부(625) 및 입출력부(626)를 더 포함할 수 있다.
저장부(624)는 인증 서버(610)로부터 수신한 인증 서버(610)의 공개키와 서명된 인증 정보, 즉 인증 정보와 인증 정보의 디지털 서명을 저장할 수 있다. 상기 인증 정보는 인증하고자 하는 어플리케이션의 apk 파일에 대한 HMAC 값을 포함할 수 있다.
인증 서버(610)의 공개키는 서명된 인증 정보를 인증하기 위한 것으로, 상기 공개키에 의해 전자 서명 방식에 따라 서명된 인증 정보의 위변조 여부가 체크될 수 있다.
인증 정보는 어플리케이션의 패키지 명과 소프트웨어 버전 정보를 포함하는 어플리케이션의 식별 정보에 따라 식별될 수 있는 값으로, 상기 식별정보와 일치하는 인증 정보에 의해 클라이언트 장치(620)의 어플리케이션이 인증될 수 있다. 인증 서버(610)로부터 전송된 인증 정보는 저장부(624)에 저장될 수 있으며, 저장부(624)에 저장된 인증 정보를 이용하여 어플리케이션이 인증될 수 있다.
어플리케이션 관리부(625)는 클라이언트 장치(620) 내 어플리케이션들의 수행 가능한 액션 정보를 수집하여 특정 액션을 수행할 수 있는 어플리케이션들의 목록을 생성하거나, 사용자에 의해 선택된 어플리케이션에 대한 식별 정보를 마스터 어플리케이션으로 전달할 수 있다.
마스터 어플리케이션으로부터 원하는 액션을 실행할 수 있는 어플리케이션 목록을 생성해줄 것을 요청 받은 어플리케이션 관리부(625)는 수집된 어플리케이션들의 액션 정보를 이용하여 어플리케이션 목록을 생성할 수 있다. 또한, 어플리케이션 관리부(625)는 생성된 어플리케이션 목록과 어플리케이션 목록에 포함된 어플리케이션들의 식별정보를 마스터 어플리케이션으로 전달할 수 있다. 따라서, 사용자가 실행하고자 하는 어플리케이션을 선택하면 마스터 어플리케이션은 선택된 어플리케이션의 식별 정보를 이용하여 어플리케이션을 인증할 수 있다.
또는, 마스터 어플리케이션으로 어플리케이션 목록과 어플리케이션 목록에 포함된 어플리케이션들의 식별정보를 전달하지 않고, 어플리케이션 관리부(625)는 사용자가 실행하고자 하는 어플리케이션을 선택할 수 있도록 클라이언트 장치(620) 내의 디스플레이 화면(미도시)에 어플리케이션 목록이 표시되도록 제어할 수 있다. 그리고, 사용자에 의해 어플리케이션이 선택되면, 어플리케이션 관리부(625)는 선택된 어플리케이션에 대한 식별 정보를 마스터 어플리케이션으로 전달할 수 있다.
또는, 어플리케이션 관리부(625)는 클라이언트 장치 내에 설치된 어플리케이션의 식별 정보를 마스터 어플리케이션에 전달할 수 있다. 마스터 어플리케이션은 상기 어플리케이션의 식별 정보를 이용하여 원하는 액션을 실행할 수 있는 어플리케이션 목록을 생성할 수 있다. 생성된 어플리케이션 목록은 디스플레이 화면에 표시됨으로써 사용자에 의해 어플리케이션이 선택될 수 있다. 마스터 어플리케이션은 선택된 어플리케이션에 대한 식별 정보를 이용하여 선택된 어플리케이션, 즉 슬레이브 어플리케이션을 인증할 수 있다.
본 발명의 다른 실시 예에 의하면, 클라이언트 장치(620)의 어플리케이션 관리부(625)는 다른 어플리케이션을 호출하고자 하는 마스터 어플리케이션이 슬레이브 어플리케이션에 실행 요청을 하기 전에 슬레이브 어플리케이션의 식별 정보를 전달할 수 있다. 따라서, 마스터 어플리케이션은 슬레이브 어플리케이션의 식별 정보를 이용하여 슬레이브 어플리케이션을 인증한 후, 슬레이브 어플리케이션에 실행 요청을 할 수 있다.
본 발명의 일 실시 예에 의하면, 인증 과정에서 슬레이브 어플리케이션이 종료됨에 따라, 마스터 어플리케이션의 인증이 2번 이루어져 총 3번의 인증 과정이 수행되는데 반하여, 본 발명의 다른 실시 예에 의하면, 마스터 어플리케이션과 슬레이브 어플리케이션은 각각 1번의 인증과정만 수행할 수 있어 총 2번의 인증 과정이 수행될 수 있어 더 빨리 어플리케이션의 상호간 인증을 수행할 수 있다.
입출력부(626)는 사용자의 입력을 수신할 수 있는 입력 수단과 사용자 인터페이스 및 처리 결과를 출력할 수 있는 출력 수단을 포함한다.
본 발명의 일 실시 예에 의하면, 보안이 취약한 안드로이드 시스템에서 어플리케이션이 직접 비밀키를 관리하거나 인증 기관의 개입 없이, 인증 서버로부터 인증 정보를 수신하여, 다른 어플리케이션의 위변조 여부를 체크할 수 있다.
또한, 본 발명의 일 실시 예에 의하면, 마스터 어플리케이션이 슬레이브 어플리케이션을 호출하는 경우, 어플리케이션 간 상호 인증을 통해 정보 교환의 상호 신뢰를 확보할 수 있다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 액션을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장 장치 등이 있다.
비록 상기 설명이 다양한 실시예들에 적용되는 본 발명의 신규한 특징들에 초점을 맞추어 설명되었지만, 본 기술 분야에 숙달된 기술을 가진 사람은 본 발명의 범위를 벗어나지 않으면서도 상기 설명된 장치 및 방법의 형태 및 세부 사항에서 다양한 삭제, 대체, 및 변경이 가능함을 이해할 것이다. 따라서, 본 발명의 범위는 상기 설명에서보다는 첨부된 특허청구범위에 의해 정의된다. 특허청구범위의 균등 범위 안의 모든 변형은 본 발명의 범위에 포섭된다.

Claims (15)

  1. 클라이언트 장치에서 제 2 어플리케이션을 인증하는 방법에 있어서,
    상기 제 2 어플리케이션의 인증 정보를 획득하는 단계;
    상기 획득된 인증 정보를 이용하여, 상기 클라이언트 장치 내의 상기 제 2 어플리케이션의 패키지를 인증하는 단계;
    상기 인증된 어플리케이션의 패키지로부터 상기 제2 어플리케이션의 제1 실행 파일을 추출하는 단계;
    상기 클라이언트 장치의 캐시 메모리로부터 상기 제2 어플리케이션의 제2 실행 파일을 추출하는 단계; 및
    상기 제1 실행 파일과 상기 제2 실행 파일을 비교함으로써, 상기 제2 실행 파일을 인증하는 단계를 포함하고,
    상기 제 2 어플리케이션의 인증 정보는, 상기 제2 어플리케이션의 패키지의 무결성을 인증하기 위한 정보를 포함하는 어플리케이션 인증 방법.
  2. 제 1 항에 있어서, 상기 제 2 어플리케이션의 패키지를 인증하는 단계는
    상기 인증 정보를 제공하는 인증 서버의 공개키를 이용하여 상기 제 2 어플리케이션의 인증 정보를 인증하는 단계;
    상기 제 2 어플리케이션의 패키지로부터 획득된 HMAC(Hash-based Message Authentication Code) 값과 상기 인증된 인증 정보에 포함된 HMAC 값을 비교함으로써, 상기 제2 어플리케이션의 패키지를 인증하는 단계를 포함하는 어플리케이션 인증 방법.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 클라이언트 장치 내의 제1 어플리케이션이 상기 제2 어플리케이션으로부터 실행 요청을 수신함에 따라, 상기 제2 어플리케이션의 패키지 및 상기 제2 어플리케이션의 제2 실행 파일에 대한 인증이 수행되고,
    상기 제 2 어플리케이션의 패키지 및 상기 제2 어플리케이션의 제2 실행 파일에 대해 수행된 인증 결과에 따라, 상기 제 1 어플리케이션의 식별 정보를 상기 제 2 어플리케이션으로 전달하는 단계;
    를 더 포함하며,
    상기 제 2 어플리케이션이 상기 제 1 어플리케이션의 식별 정보를 이용하여 상기 제 1 어플리케이션의 인증 정보를 획득하고,
    상기 제 2 어플리케이션은 상기 제 1 어플리케이션의 인증 정보를 이용하여,상기 제1 어플리케이션을 인증하는 어플리케이션 인증 방법.
  5. 제4항에 있어서,
    상기 제 1 어플리케이션에 대한 인증 결과에 기초하여, 상기 제2 어플리케이션이 상기 제 1 어플리케이션으로 실행 요청을 전송하고, 상기 제1 어플리케이션이 상기 제 2 어플리케이션의 인증 정보를 이용하여 상기 제 2 어플리케이션의 패키지 및 상기 제2 어플리케이션의 제2 실행 파일을 인증하는 단계; 및
    상기 제 2 어플리케이션의 패키지 및 상기 제2 어플리케이션의 제2 실행 파일에 대한 인증 결과에 따라, 상기 제 1 어플리케이션이 상기 제 2 어플리케이션으로부터 수신된 상기 실행 요청에 따라 액션을 수행하는 단계를 더 포함하는 어플리케이션 인증 방법.
  6. 제5항에 있어서,
    상기 제 1 어플리케이션의 액션이 완료되면, 상기 제 1 어플리케이션의 식별 정보와 상기 액션의 결과 값을 상기 제 2 어플리케이션으로 전달하는 단계;
    를 더 포함하며,
    상기 제 2 어플리케이션은 상기 제 1 어플리케이션의 인증 정보를 이용하여 상기 제 1 어플리케이션을 인증하고, 상기 제 1 어플리케이션의 인증 결과에 따라, 상기 액션의 결과 값을 이용하여 다른 액션을 수행하는 어플리케이션 인증 방법.
  7. 제 4 항에 있어서,
    상기 제 1 어플리케이션이 상기 제 2 어플리케이션으로 실행 요청을 하기 전에 상기 제 2 어플리케이션의 인증 정보를 인증 서버에게 요청하는 어플리케이션 인증 방법.
  8. 제 2 어플리케이션을 인증하는 클라이언트 장치에 있어서,
    상기 제 2 어플리케이션의 인증 정보를 획득하고, 상기 획득된 인증 정보를 이용하여 상기 클라이언트 장치 내의 상기 제 2 어플리케이션의 패키지를 인증하고, 상기 인증된 어플리케이션의 패키지로부터 상기 제2 어플리케이션의 제1 실행 파일을 추출하고, 상기 클라이언트 장치의 캐시 메모리로부터 상기 제2 어플리케이션의 제2 실행 파일을 추출하고, 상기 제1 실행 파일과 상기 제2 실행 파일을 비교함으로써, 상기 제2 실행 파일을 인증하는 제 1 어플리케이션; 및
    상기 제 2 어플리케이션을 포함하고,
    상기 제 2 어플리케이션의 인증 정보는, 상기 제2 어플리케이션의 패키지의 무결성을 인증하기 위한 클라이언트 장치.
  9. 제8항에 있어서, 상기 제 1 어플리케이션은
    상기 인증 정보를 제공하는 인증 서버의 공개키를 이용하여 상기 제 2 어플리케이션의 인증 정보를 인증하고, 상기 제 2 어플리케이션의 패키지로부터 획득된 HMAC 값과 상기 인증된 인증 정보에 포함된 HMAC 값을 비교함으로써, 상기 제2 어플리케이션의 패키지를 인증하는 클라이언트 장치.
  10. 삭제
  11. 제8항에 있어서, 상기 클라이언트 장치 내의 제1 어플리케이션이 상기 제2 어플리케이션으로부터 실행 요청을 수신함에 따라, 상기 제2 어플리케이션의 패키지 및 상기 제2 어플리케이션의 제2 실행 파일에 대한 인증이 수행되고,
    상기 제 1 어플리케이션은
    상기 제 2 어플리케이션의 패키지 및 상기 제2 어플리케이션의 제2 실행 파일에 대해 수행된 인증 결과에 따라, 상기 제 1 어플리케이션의 식별 정보를 상기 제 2 어플리케이션으로 전달하고,
    상기 제 2 어플리케이션은
    상기 제 1 어플리케이션의 식별 정보를 이용하여 상기 제 1 어플리케이션의 인증 정보를 획득하고, 상기 획득된 인증 정보를 이용하여 상기 제 1 어플리케이션을 인증하는 클라이언트 장치.
  12. 제 11 항에 있어서, 상기 제 1 어플리케이션은
    상기 제 1 어플리케이션에 대한 인증결과에 기초하여, 상기 제 2 어플리케이션이 상기 제1 어플리케이션으로 실행 요청을 전송하고, 상기 제1 어플리케이션이 상기 제 2 어플리케이션의 인증 정보를 이용하여 상기 제 2 어플리케이션의 패키지 및 상기 제2 어플리케이션의 제2 실행 파일을 인증하고, 상기 인증 결과에 따라, 상기 제 2 어플리케이션으로부터 수신된 상기 실행 요청에 따라 액션을 수행하는 클라이언트 장치.
  13. 제 12항에 있어서, 상기 제 1 어플리케이션은
    상기 제 1 어플리케이션의 액션이 완료되면, 상기 제 1 어플리케이션의 식별 정보와 상기 액션의 결과 값을 상기 제 2 어플리케이션으로 전달하고,
    상기 제 2 어플리케이션은
    상기 제 1 어플리케이션의 인증 정보를 이용하여 상기 제 1 어플리케이션을 인증하고, 상기 제 1 어플리케이션의 인증 결과에 따라, 상기 액션의 결과 값을 이용하여 다른 액션을 수행하는 클라이언트 장치.
  14. 제11항에 있어서, 상기 제 1 어플리케이션은
    상기 제 2 어플리케이션으로 실행 요청을 하기 전에 상기 제 2 어플리케이션의 인증 정보를 인증 서버에게 요청하는 클라이언트 장치.
  15. 제 1 항 내지 제2항 또는 제4항 내지 제7항 중 어느 한 항에 의한 방법을 컴퓨터에서 실행하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록 매체.
KR1020130028822A 2013-03-18 2013-03-18 어플리케이션 간의 상호 인증 방법 및 장치 KR102038964B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020130028822A KR102038964B1 (ko) 2013-03-18 2013-03-18 어플리케이션 간의 상호 인증 방법 및 장치
US14/184,065 US9563764B2 (en) 2013-03-18 2014-02-19 Method and apparatus for performing authentication between applications
EP14156718.0A EP2782037B1 (en) 2013-03-18 2014-02-26 Method and apparatus for performing authentication between applications
CN201410083249.3A CN104065641B (zh) 2013-03-18 2014-03-07 用于在应用之间执行认证的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130028822A KR102038964B1 (ko) 2013-03-18 2013-03-18 어플리케이션 간의 상호 인증 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140114229A KR20140114229A (ko) 2014-09-26
KR102038964B1 true KR102038964B1 (ko) 2019-11-26

Family

ID=50230870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130028822A KR102038964B1 (ko) 2013-03-18 2013-03-18 어플리케이션 간의 상호 인증 방법 및 장치

Country Status (4)

Country Link
US (1) US9563764B2 (ko)
EP (1) EP2782037B1 (ko)
KR (1) KR102038964B1 (ko)
CN (1) CN104065641B (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9602501B1 (en) 2014-03-28 2017-03-21 Amazon Technologies, Inc. Bootstrapping user authentication
US9710640B1 (en) 2014-03-28 2017-07-18 Amazon Technologies, Inc. Bootstrapping authentication of second application via confirmation by first application
US10070310B2 (en) 2014-05-08 2018-09-04 Visa International Service Association Method and system for provisioning access data to mobile device
US10959093B2 (en) 2014-05-08 2021-03-23 Visa International Service Association Method and system for provisioning access data to mobile device
US9626304B2 (en) * 2014-10-21 2017-04-18 Sandisk Technologies Llc Storage module, host, and method for securing data with application information
CN105790945B (zh) * 2014-12-22 2019-09-03 中国移动通信集团公司 一种实现用户唯一身份认证的认证方法、装置和系统
US10147079B2 (en) 2015-04-14 2018-12-04 Square, Inc. Open ticket payment handling with offline mode
CN107636664B (zh) * 2015-05-07 2021-11-23 维萨国际服务协会 用于向移动设备供应访问数据的方法、设备和装置
KR102446384B1 (ko) * 2015-09-18 2022-09-22 삼성전자주식회사 사용자 단말 및 서버 장치
US10762484B1 (en) * 2015-09-30 2020-09-01 Square, Inc. Data structure analytics for real-time recommendations
US11151528B2 (en) 2015-12-31 2021-10-19 Square, Inc. Customer-based suggesting for ticket splitting
CN106850519B (zh) * 2016-01-08 2020-11-17 北京万维星辰科技有限公司 应用安全性认证方法及装置
KR102651522B1 (ko) * 2016-01-13 2024-03-28 삼성전자주식회사 결제 처리 방법 및 이를 지원하는 전자 장치
CN107846390B (zh) * 2016-09-21 2021-09-28 阿里巴巴集团控股有限公司 应用程序的认证方法及装置
CN106656513B (zh) * 2017-02-24 2019-09-13 福建魔方电子科技有限公司 安卓平台上apk文件的二次打包签名验证方法
US11063762B1 (en) * 2018-02-22 2021-07-13 Allscripts Software, Llc Computing system for inter-application communication
US10601806B1 (en) * 2019-02-22 2020-03-24 Capital One Services, Llc Runtime identity confirmation for restricted server communication control
CN110233836B (zh) * 2019-05-31 2021-06-08 顾宏超 一种通讯验证方法、设备、系统及计算机可读存储介质
CN110691265B (zh) * 2019-10-10 2021-04-20 四川虹微技术有限公司 基于声纹识别的电视支付方法及系统
US11582036B1 (en) * 2019-10-18 2023-02-14 Splunk Inc. Scaled authentication of endpoint devices
DE102021105402A1 (de) * 2021-03-05 2022-09-08 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101214893B1 (ko) * 2011-12-16 2013-01-09 주식회사 안랩 어플리케이션의 유사성 검출 장치 및 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060225128A1 (en) 2005-04-04 2006-10-05 Nokia Corporation Measures for enhancing security in communication systems
CN1835008A (zh) * 2006-04-21 2006-09-20 李黎军 一种移动支付方法
US8225093B2 (en) 2006-12-05 2012-07-17 Qualcomm Incorporated Providing secure inter-application communication for a mobile operating environment
JP2008176435A (ja) * 2007-01-17 2008-07-31 Hitachi Ltd 決済端末およびicカード
KR101456698B1 (ko) * 2007-12-13 2014-10-31 주식회사 케이티 디지털 컨텐츠 제공 방법 및 방법 프로그램을 저장한기록매체, 디지털 컨텐츠 제공 시스템 및 가입자 단말 장치
US8839458B2 (en) * 2009-05-12 2014-09-16 Nokia Corporation Method, apparatus, and computer program for providing application security
US9117071B2 (en) * 2009-06-03 2015-08-25 Apple Inc. Methods and apparatuses for secure compilation
CN101605325B (zh) * 2009-06-29 2012-06-06 钱袋网(北京)信息技术有限公司 身份认证的方法和移动终端、服务器以及身份认证系统
US8839395B2 (en) 2011-05-13 2014-09-16 Cch Incorporated Single sign-on between applications
TW201306610A (zh) * 2011-06-28 2013-02-01 Interdigital Patent Holdings 驗證協定之自動協商及選擇
US8918881B2 (en) * 2012-02-24 2014-12-23 Appthority, Inc. Off-device anti-malware protection for mobile devices
US9311317B1 (en) * 2012-05-14 2016-04-12 Symantec Corporation Injecting custom data into files in zip format containing apps, without unzipping, resigning or re-zipping the files
TWI461953B (zh) * 2012-07-12 2014-11-21 Ind Tech Res Inst 運算環境安全方法和電子運算系統
KR20140077539A (ko) * 2012-12-14 2014-06-24 삼성전자주식회사 애플리케이션 프로그램 보호 방법 및 장치
US9742559B2 (en) * 2013-01-22 2017-08-22 Qualcomm Incorporated Inter-module authentication for securing application execution integrity within a computing device
US9270674B2 (en) * 2013-03-29 2016-02-23 Citrix Systems, Inc. Validating the identity of a mobile application for mobile application management

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101214893B1 (ko) * 2011-12-16 2013-01-09 주식회사 안랩 어플리케이션의 유사성 검출 장치 및 방법

Also Published As

Publication number Publication date
EP2782037A3 (en) 2014-12-31
US9563764B2 (en) 2017-02-07
CN104065641B (zh) 2019-08-16
CN104065641A (zh) 2014-09-24
EP2782037B1 (en) 2020-09-16
KR20140114229A (ko) 2014-09-26
EP2782037A2 (en) 2014-09-24
US20140281495A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
KR102038964B1 (ko) 어플리케이션 간의 상호 인증 방법 및 장치
JP7257561B2 (ja) コンピュータに実装される方法、ホストコンピュータ、コンピュータ読み取り可能な媒体
US20210250182A1 (en) User authentication with self-signed certificate and identity verification and migration
US11917074B2 (en) Electronic signature authentication system based on biometric information and electronic signature authentication method
CN109150548B (zh) 一种数字证书签名、验签方法及系统、数字证书系统
RU2649786C2 (ru) Мобильное платежное устройство на базе технологии биораспознавания, способ и устройство
EP2924604B1 (en) Electronic biometric (dynamic) signature references enrollment method
US11556617B2 (en) Authentication translation
KR102315262B1 (ko) 사용자 인증 시스템에서 이용되는 방법 및 사용자 인증 시스템에 포함된 정보 처리 장치
JPWO2007094165A1 (ja) 本人確認システムおよびプログラム、並びに、本人確認方法
EP2628133B1 (en) Authenticate a fingerprint image
KR101724401B1 (ko) 생체 정보 인식과 키 분할 방식을 이용한 공인인증 시스템 및 그 방법, 그 방법을 수행하는 프로그램이 기록된 기록매체
KR102137122B1 (ko) 보안 체크 방법, 장치, 단말기 및 서버
US20200089867A1 (en) System and method for authentication
KR20190122655A (ko) 생체인식 데이터 템플레이트의 업데이트
TWI724684B (zh) 用於執行經過身分驗證的加密操作的方法、系統及裝置
US20180048471A1 (en) System and storage medium
CN110224974B (zh) 基于第三方接入的接口鉴权方法及相关设备
US8832443B2 (en) Methods and systems for increasing the security of private keys
KR20110114990A (ko) 키보드 보안 장치 및 방법
KR20200137126A (ko) 생체 정보 등록 장치 및 방법, 생체 인증 장치 및 방법
CN106603237B (zh) 一种安全支付方法及装置
EP4329241A1 (en) Data management system, data management method, and non-transitory recording medium
KR20170096691A (ko) 자체확장인증을 이용한 키관리 방법
JP6398308B2 (ja) 情報処理システム、情報処理方法、及びプログラム

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