KR20200063535A - 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법 - Google Patents

서버 및 이를 이용한 어플리케이션의 무결성 판단 방법 Download PDF

Info

Publication number
KR20200063535A
KR20200063535A KR1020180149333A KR20180149333A KR20200063535A KR 20200063535 A KR20200063535 A KR 20200063535A KR 1020180149333 A KR1020180149333 A KR 1020180149333A KR 20180149333 A KR20180149333 A KR 20180149333A KR 20200063535 A KR20200063535 A KR 20200063535A
Authority
KR
South Korea
Prior art keywords
application
electronic device
identification information
signature key
integrity
Prior art date
Application number
KR1020180149333A
Other languages
English (en)
Other versions
KR102537788B1 (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 KR1020180149333A priority Critical patent/KR102537788B1/ko
Priority to US16/601,983 priority patent/US11308238B2/en
Priority to EP19890918.6A priority patent/EP3850512A4/en
Priority to PCT/KR2019/013968 priority patent/WO2020111517A1/en
Publication of KR20200063535A publication Critical patent/KR20200063535A/ko
Application granted granted Critical
Publication of KR102537788B1 publication Critical patent/KR102537788B1/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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring 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
    • 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/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • H04L9/3247Cryptographic 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 involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Telephone Function (AREA)
  • Storage Device Security (AREA)

Abstract

서버가 개시된다. 본 서버는, 메모리, 통신부 및 통신부를 통해, 전자 장치에 저장된 어플리케이션의 무결성(integrity) 판단을 위한 어플리케이션 체크 모듈(Application Check Module)을 전자 장치로 전송하고, 전자 장치로부터 어플리케이션에 대응되는 식별 정보가 수신되면, 수신된 식별 정보에 기초하여 어플리케이션의 무결성을 판단하는 프로세서를 포함하고, 프로세서는, 수신된 식별 정보가 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부 및 수신된 식별 정보가 메모리에 기저장된 식별 정보에 매칭되는지 여부에 기초하여, 어플리케이션의 무결성을 판단한다.

Description

서버 및 이를 이용한 어플리케이션의 무결성 판단 방법 {SERVER AND METHOD FOR DETERMINING THE INTEGRITY OF THE APPLIACION USING THEREOF}
본 개시는 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법에 관한 것으로, 보다 상세하게는 전자 장치에 저장된 어플리케이션의 무결성을 판단하는 서버 및 그 방법에 관한 것이다.
최근 스마트 폰 등의 전자 장치를 통해 사용자는 스마트 뱅킹 서비스, 스마트 홈 서비스, 전자 메일 서비스 등 다양한 서비스를 제공받고 있다. 이와 같은 서비스는, 서비스 제공자가 배포하는 다양한 어플리케이션에 의해 제공된다.
한편, 이를 통해 사용자의 편성이 증대되었음은 별론, 스마트 폰 등에 설치된 어플리케이션은 공격자의 공격 타겟이 되고 있는 실정이다.
특히, 최근에는 스마트 폰에 설치된 뱅크 어플리케이션에 역공학(Reverse Engineering) 등의 방법을 적용하여 어플리케이션을 위조(또는 변조)하고, 이를 통해 뱅크 서비스 제공자로부터 사용자의 중요 정보(예를 들어, 계좌 정보, 비밀번호 정보 등)를 유출하는 사례가 발생하고 있다.
이에 따라, 스마트 폰 등의 전자 장치에 설치된 어플리케이션이 위조(또는 변조)된 것인지, 즉 어플리케이션의 무결성을 판단할 필요성이 대두되었다.
본 개시는 상술한 필요성에 의해 안출된 것으로, 본 개시의 목적은 전자 장치에 설치된 어플리케이션의 무결성을 판단하는 서버 및 그 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 서버는, 메모리, 통신부 및 상기 통신부를 통해, 전자 장치에 저장된 어플리케이션의 무결성(integrity) 판단을 위한 어플리케이션 체크 모듈(Application Check Module)을 상기 전자 장치로 전송하고, 상기 전자 장치로부터 상기 어플리케이션에 대응되는 식별 정보가 수신되면, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하는 프로세서를 포함하고, 상기 프로세서는, 상기 수신된 식별 정보가 상기 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부 및 상기 수신된 식별 정보가 상기 메모리에 기저장된 식별 정보에 매칭되는지 여부에 기초하여, 상기 어플리케이션의 무결성을 판단할 수 있다.
그리고, 상기 프로세서는, 상기 수신된 식별 정보가 상기 서명 키에 의해 서명되어 있지 않거나, 상기 수신된 식별 정보가 상기 기저장된 식별 정보와 일치하지 않는 경우, 상기 어플리케이션의 무결성을 부정할 수 있다.
그리고, 상기 프로세서는, 상기 전자 장치로부터 상기 어플리케이션의 무결성 판단을 요청하는 신호가 수신되면, 상기 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
그리고, 상기 프로세서는, 상기 어플리케이션의 무결성 판단을 요청하는 신호가 재차 수신되는 경우, 상기 서명 키와 상이한 새로운 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
그리고, 상기 프로세서는, 상기 서명 키를 난독화하고, 상기 난독화 된 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
그리고, 상기 식별 정보는, 상기 어플리케이션에 대응되는 해쉬(Hash) 값을 상기 서명 키로 서명한 서명 값을 포함하고, 상기 프로세서는, 서명 검증 알고리즘에 기초하여 상기 서명 값의 유효성이 검증되면, 상기 수신된 식별 정보가 상기 서명 키에 의해 서명된 것으로 판단할 수 있다.
그리고, 상기 프로세서는, 기설정된 시간 간격으로, 상기 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
또한, 상기 프로세서는, 상기 전자 장치로부터, 상기 어플리케이션의 서비스를 요청하는 신호가 수신되는 경우, 상기 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
그리고, 상기 프로세서는, 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송한 때로부터 기설정된 시간 경과 후 상기 식별 정보가 수신된 경우, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하지 않고, 상기 서명 키와 상이한 새로운 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
그리고, 상기 프로세서는, 상기 생성된 서명 키를 상기 서명 키에 적용된 난독화 기법의 난독화 레벨보다 상대적으로 높은 레벨로 난독화하고, 상기 난독화된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
한편, 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 방법은, 전자 장치에 저장된 어플리케이션의 무결성(integrity) 판단을 위한 어플리케이션 체크 모듈(Application Check Module)을 상기 전자 장치로 전송하는 단계 및 상기 전자 장치로부터 상기 어플리케이션에 대응되는 식별 정보가 수신되면, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하는 단계를 포함하고, 상기 판단하는 단계는, 상기 수신된 식별 정보가 상기 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부 및 상기 수신된 식별 정보가 기저장된 식별 정보에 매칭되는지 여부에 기초하여, 상기 어플리케이션의 무결성을 판단할 수 있다.
그리고, 상기 판단하는 단계는, 상기 수신된 식별 정보가 상기 서명 키에 의해 서명되어 있지 않거나, 상기 수신된 식별 정보가 상기 기저장된 식별 정보와 일치하지 않는 경우, 상기 어플리케이션의 무결성을 부정하는, 어플리케이션의 무결성을 판단할 수 있다.
그리고, 상기 전송하는 단계는, 상기 전자 장치로부터 상기 어플리케이션의 무결성 판단을 요청하는 신호가 수신되면, 상기 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
그리고, 상기 방법은 상기 어플리케이션의 무결성 판단을 요청하는 신호가 재차 수신되는 경우, 상기 서명 키와 상이한 새로운 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는 단계를 더 포함할 수 있다.
그리고, 상기 전송하는 단계는, 상기 서명 키를 난독화하고, 상기 난독화 된 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
그리고, 상기 식별 정보는, 상기 어플리케이션에 대응되는 해쉬(Hash) 값을 상기 서명 키로 서명한 서명 값을 포함하고, 상기 판단하는 단계는, 서명 검증 알고리즘에 기초하여 상기 서명 값의 유효성이 검증되면, 상기 수신된 식별 정보가 상기 서명 키에 의해 서명된 것으로 판단할 수 있다.
그리고, 상기 전송하는 단계는, 기설정된 시간 간격으로, 상기 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
또한, 상기 전송하는 단계는, 상기 전자 장치로부터, 상기 어플리케이션의 서비스를 요청하는 신호가 수신되는 경우, 상기 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송할 수 있다.
그리고, 본 방법은 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송한 때로부터 기설정된 시간 경과 후 상기 식별 정보가 수신된 경우, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하지 않고, 상기 서명 키와 상이한 새로운 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는 단계를 더 포함할 수 있다.
한편, 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 시스템은, 복수의 어플리케이션 각각의 식별 정보를 저장하는 서버 및 전자 장치에 저장된 어플리케이션의 무결성(integrity) 판단을 요청하는 신호를 상기 서버로 전송하는 외부 서버를 포함하고, 상기 서버는, 상기 무결성 판단을 요청하는 신호가 수신되면, 어플리케이션 체크 모듈(Application Check Module)을 상기 전자 장치로 전송하고, 상기 전자 장치로부터 상기 어플리케이션에 대응되는 식별 정보가 수신되면, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하고, 상기 서버는, 상기 수신된 식별 정보가 상기 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부 및 상기 수신된 식별 정보가 상기 메모리에 기저장된 복수의 식별 정보 중 상기 어플리케이션의 식별 정보에 매칭되는지 여부에 기초하여, 상기 어플리케이션의 무결성을 판단할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 위조 또는 변조된 어플리케이션에 의해 사용자의 중요 정보가 유출되는 피해를 방지할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 무결성 판단 시스템을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 서버를 설명하기 위한 블록도이다.
도 3a 내지 도 3b는 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 실시 예를 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 실시 예를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 실시 예를 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 어플리케이션 마켓을 통해 어플리케이션의 무결성을 판단하는 실시 예를 설명하기 위한 블록도이다.
도 7은 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 흐름도이다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 개시의 기능을 고려하여 일반적인 용어들을 선택하였다. 하지만, 이러한 용어들은 당 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다.
나아가, 이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 개시의 실시 예를 상세하게 설명하지만, 본 개시가 실시 예들에 의해 제한되거나 한정되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 개시를 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 무결성 판단 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 본 개시의 일 실시 예에 따른 무결성 판단 시스템(10)은 서버(100) 및 전자 장치(200)를 포함한다.
서버(100)는 전자 장치(200)에 저장된 어플리케이션의 무결성(integrity)을 판단할 수 있다. 즉, 서버(100)는 전자 장치(200)에 저장된 어플리케이션이 위조 또는 변조된 것인지를 판단할 수 있다. 여기에서, 전자 장치(200)에 저장된 어플리케이션은 뱅킹 어플리케이션, 스마트 홈 어플리케이션, 전자 메일 어플리케이션 등과 같은 다양한 어플리케이션이 될 수 있다.
이를 위해, 서버(100)는 전자 장치(200)에 저장된 어플리케이션의 무결성 판단을 위한 어플리케이션 체크 모듈(Application Check Module)을 전자 장치(200)로 전송할 수 있다.
여기에서, 어플리케이션 체크 모듈은 전자 장치(200)에 저장된 어플리케이션의 식별 정보를 획득하는 모듈이 될 수 있다. 구체적으로, 어플리케이션 체크 모듈은 전자 장치(200)에 저장된 어플리케이션에 해쉬 알고리즘(Hash algorithm)을 적용함으로써, 어플리케이션의 해쉬 값을 획득하는 모듈이 될 수 있다.
한편, 서버(100)는 서명 키를 포함하는 어플리케이션 체크 모듈을 전자 장치(200)로 전송할 수 있다. 구체적으로, 서버(100)는 서명 키가 삽입(Injection) 된 어플리케이션 체크 모듈을 전자 장치(200)로 전송할 수 있다.
이후, 서버(100)는 전자 장치(200)로부터 어플리케이션의 식별 정보가 수신되면, 식별 정보가 상술한 서명 키에 의해 서명되어 있는지 여부 및 식별 정보가 기저장된 식별 정보에 매칭되는지 여부에 기초하여, 어플리케이션의 무결성을 판단할 수 있다.
구체적으로, 서버(100)는 전자 장치(200)로부터 수신된 식별 정보가 서명 검증 알고리즘에 의해 유효성이 검증되고, 기저장된 식별 정보에 매칭되면 어플리케이션이 위조 또는 변조되지 않은 것으로 판단하고, 식별 정보가 서명 검증 알고리즘에 의해 유효성이 검증되지 않거나, 기저장된 식별 정보에 매칭되지 않으면 어플리케이션이 위조 또는 변조된 것으로 판단할 수 있다.
서버(100)는 어플리케이션이 위조 또는 변조된 것으로 판단되면, 해당 어플리케이션의 삭제 등을 유도할 수 있다.
이와 같이, 전자 장치(200)로부터 수신된 식별 정보가 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부에 기초하여 어플리케이션의 무결성을 판단함으로써, 본 개시는 서버(100)에 의해 제공된 어플리케이션 체크 모듈에 의해 어플리케이션의 식별 정보가 획득된 것으로 신뢰할 수 있고, 어플리케이션의 무결성 여부에 대한 판단을 신뢰할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 서버를 설명하기 위한 블록도이다.
도 2를 참조하면, 본 개시의 일 실시 예에 따른 서버(100)는 메모리(110), 통신부(120) 및 프로세서(130)를 포함한다.
메모리(110)는 서버(100)의 구성요소의 전반적인 동작을 제어하기 위한 운영체제(Operating System: OS) 및 서버(100)의 구성요소와 관련된 명령 또는 데이터를 저장할 수 있다.
이에 따라, 프로세서(130)는 메모리(110)에 저장된 다양한 명령 또는 데이터 등을 이용하여 서버(100)의 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장(store)할 수 있다.
특히, 메모리(110)는 어플리케이션의 식별 정보를 저장할 수 있다. 여기에서, 어플리케이션의 식별 정보는 어플리케이션의 무결성을 판단하기 위한 정보로써, 어플리케이션에 해쉬 알고리즘을 적용하여 획득한 해쉬 값이 될 수 있다. 다만, 이는 일 실시 예일 뿐, 식별 정보는 위조 또는 변조되기 전 단계의 어플리케이션의 다양한 코드가 될 수 있다.
이를 위해, 메모리(110)는 휘발성 메모리(volatile memory) 또는 비휘발성(non-volatile memory) 중 하나 또는 그 이상을 포함할 수 있다. 휘발성 메모리는 DRAM(dynamic random access memory), SRAM(static RAM), SDRAM(synchronous DRAM), PRAM(phase-change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), FeRAM(ferroelectric RAM) 등을 포함할 수 있다. 비휘발성 메모리는 ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 메모리(flash memory) 등을 포함할 수 있다. 또한, 메모리(110)는 하드 디스크 드라이브(HDD, hard disk drive), 솔리드 스테이트 디스크(SSD, solid state disk), eMMC(embedded multi media card), UFS(universal flash storage)와 같은 비휘발성 매체(medium)를 포함할 수 있다.
통신부(120)는 다양한 외부 장치와 통신을 수행할 수 있다. 특히, 통신부(120)는 전자 장치(200)와 통신을 수행하여 다양한 데이터를 송수신할 수 있다.
구체적으로, 통신부(120)는 전자 장치(200)로부터 전자 장치(200)에 저장된 어플리케이션의 무결성 판단을 요청하는 신호를 수신할 수 있다.
여기에서, 어플리케이션은 어플리케이션 체크 모듈 컨테이너(Application Check Module Container)를 포함할 수 있다. 어플리케이션 체크 모듈 컨테이너는 후술할 어플리케이션 체크 모듈을 저장(또는, 임시 저장)할 수 있다.
통신부(120)는 전자 장치(200)에 저장된 어플리케이션의 무결성(integrity) 판단을 위한 어플리케이션 체크 모듈을 전자 장치(200)로 전송할 수 있다. 여기에서, 어플리케이션 체크 모듈은 전자 장치(200)에 저장된 어플리케이션의 식별 정보를 획득하는 모듈이 될 수 있다.
그리고, 통신부(120)는 전자 장치(200)로부터 어플리케이션에 대응되는 식별 정보를 수신할 수 있다. 여기에서, 식별 정보는 어플리케이션 체크 모듈에 의해 생성된 식별 정보가 될 수 있다.
이를 위해, 통신부(120)는 와이파이 칩, 블루투스 칩, 무선 통신 칩 등을 포함할 수 있다.
프로세서(130)는 서버(100)의 전반적인 동작을 제어한다.
구체적으로, 프로세서(130)는 운영 체제 또는 응용 프로그램을 구동하여 프로세서(130)에 연결된 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 프로세서(130)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다.
이를 위해, 프로세서(130)는 해당 동작을 수행하기 위한 전용 프로세서(예, 임베디드 프로세서) 또는 메모리 디바이스에 저장된 하나 이상의 소프트웨어 프로그램을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)로 구현될 수 있다.
프로세서(130)는 전자 장치(200)에 저장된 어플리케이션의 무결성(integrity) 판단을 위한 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(120)를 제어할 수 있다.
구체적으로, 프로세서(130)는 전자 장치(200)로부터 어플리케이션의 무결성 판단을 요청하는 신호가 수신되는 경우, 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(120)를 제어할 수 있다.
어플리케이션 체크 모듈은 전자 장치(200)에 저장된 어플리케이션의 식별 정보를 획득하는 모듈이 될 수 있다. 구체적으로, 어플리케이션 체크 모듈은 전자 장치(200)에 저장된 어플리케이션에 해쉬 알고리즘(Hash algorithm)을 적용함으로써, 어플리케이션의 해쉬 값을 획득 하는 모듈이 될 수 있다.
한편, 프로세서(130)는 어플리케이션 체크 모듈을 전자 장치(200)로 전송함에 있어서, 서명 키가 삽입(Injection) 된 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(120)를 제어할 수 있다.
구체적으로, 프로세서(130)는 전자 장치(200)로부터 어플리케이션의 무결성 판단을 요청하는 신호가 수신되면, 서명 키를 포함하는 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(120)를 제어할 수 있다. 여기에서, 서명 키는 서명 알고리즘에 의해 생성된 키가 될 수 있으나, 반드시 이에 제한되는 것은 아니다.
한편, 서명 키는 일회용으로 사용되는 키(One time key)가 될 수 있다. 즉, 프로세서(130)는 어플리케이션 체크 모듈을 전자 장치(200)로 전송할 때마다 새로운 서명 키를 생성하고, 새로이 생성된 서명 키를 포함하는 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(130)를 제어할 수 있다.
예를 들어, 프로세서(130)는 상술한 무결성 판단을 요청하는 신호가 전자 장치(200)로부터 재차 수신되는 경우, 이전에 서명했던 서명 키와는 상이한 새로운 서명 키를 생성하고, 새로이 생성된 서명 키를 포함하는 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(130)를 제어할 수 있다.
그리고, 서명 키는 난독화(Obfuscation) 될 수 있다. 여기에서, 난독화는 해커 등의 공격자가 서명 키를 해석하기 어렵게 만들어 역공학을 통한 공격을 막는 기술을 의미한다.
구체적으로, 프로세서(130)는 데이터 난독화, 제어 난독화, 구획(Layout) 난독화, 집합 난독화, 예방 난독화 및 코드/데이터 암호화 등과 같은 다양한 방법을 통해 서명 키를 난독화 하고, 난독화 된 서명 키를 포함하는 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(130)를 제어할 수 있다.
이와 같이, 일회용으로 사용되는 서명 키 및 난독화 된 서명 키를 이용함으로써, 본 개시는 공격자의 공격을 효과적으로 방어할 수 있다.
프로세서(130)는 전자 장치(200)로부터 어플리케이션의 식별 정보가 수신되면, 식별 정보에 상술한 서명 키가 서명되어 있는지 여부 및 식별 정보가 기저장된 식별 정보에 매칭되는지 여부에 기초하여, 어플리케이션의 무결성을 판단할 수 있다. 여기에서, 식별 정보는 전자 장치(200)에 저장된 어플리케이션의 해쉬 값을 서명 키로 서명한 서명 값이 될 수 있다.
구체적으로, 프로세서(130)는 전자 장치(200)로부터 수신된 서명 값이 상술한 서명 키에 의해 서명된 것이고, 해쉬 값이 기저장된 해쉬 값에 매칭되면 어플리케이션이 위조 또는 변조되지 않은 것으로 판단하고, 서명 값이 상술한 서명 키에 의해 서명되어 있지 않거나, 해쉬 값이 기저장된 해쉬 값에 매칭되지 않으면 어플리케이션이 위조 또는 변조된 것으로 판단할 수 있다.
한편, 프로세서(120)는 상술한 서명 키에 대응되는 서명 검증 알고리즘에 의해, 전자 장치(200)로부터 수신된 서명 값의 유효성이 검증되면, 전자 장치(200)로부터 수신된 서명 값은 상술한 서명 키에 의해 서명된 것으로 판단할 수 있다. 즉, 프로세서(120)는 전자 장치(200)로부터 수신된 서명 값이 서명 검증 알고리즘에 의해 복호화 되면, 전자 장치(200)로부터 수신된 서명 값은 어플리케이션 체크 모듈에 삽입된 서명 키에 의해 서명된 것으로 판단할 수 있다.
이와 같이, 전자 장치(200)로부터 수신된 식별 정보가 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부에 기초하여 어플리케이션의 무결성을 판단함으로써, 본 개시는 서버(100)에 의해 제공된 어플리케이션 체크 모듈에 의해 어플리케이션의 식별 정보가 획득된 것으로 신뢰할 수 있고, 어플리케이션의 무결성 여부에 대한 판단을 신뢰할 수 있다.
한편, 프로세서(130)는 어플리케이션 체크 모듈을 전자 장치(200)로 전송한 때로부터 기설정된 시간 경과 후 식별 정보가 수신된 경우, 수신된 식별 정보에 기초하여 어플리케이션의 무결성을 판단하지 않을 수 있다. 여기에서, 기설정된 시간은 30초, 1분 등 사용자 명령에 따라 다양하게 설정될 수 있다.
구체적으로, 프로세서(130)는 어플리케이션 체크 모듈을 전자 장치(200)로 전송한 때로부터 기설정된 시간 경과 후 식별 정보가 수신된 경우, 수신된 식별 정보에 기초하여 어플리케이션의 무결성을 판단하지 않고, 이전의 서명 키와 상이한 새로운 서명 키를 생성하고, 새로이 생성된 서명 키를 포함하는 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(130)를 제어할 수 있다.
이는, 전자 장치(200)에 저장된 어플리케이션의 식별 정보를 획득할 수 있는 통상의 시간을 경과한 뒤 식별 정보가 수신된 경우이면, 공격자에 의해 조작된 식별 정보가 수신된 것일 수도 있음을 반영한 것이다.
여기에서, 생성되는 새로운 서명 키는 이전의 서명 키에 적용된 난독화 기법의 난독화 레벨보다 상대적으로 높은 레벨로 난독화 된 서명 키가 될 수 잇다.
즉, 프로세서(130)는 어플리케이션 체크 모듈을 전자 장치(200)로 전송한 때로부터 기설정된 시간 경과 후 식별 정보가 수신된 경우, 이전의 서명 키에 적용된 난독화 기법의 난독화 레벨보다 상대적으로 높은 레벨로 난독화 된 서명 키를 포함하는 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(130)를 제어할 수 있다.
예를 들어, 프로세서(130)는 이전의 서명 키를 하나의 난독화 기법을 통해 난독화한 경우, 새로이 생성하는 서명 키에는 복수의 난독화 기법을 중첩해서 난독화 함으로써, 공격자의 분석을 어렵게 하고, 보안 강도를 높일 수 있다. 이에 따라, 본 개시는 공격자의 공격을 효과적으로 방어할 수 있다.
한편, 여기서는 전자 장치(200)로부터 어플리케이션의 무결성 판단을 요청하는 신호가 수신되는 경우, 어플리케이션 체크 모듈을 전자 장치(200)로 전송하는 것으로 설명하였다.
다만, 반드시 이에 한정되는 것은 아니고, 프로세서(130)는 다양한 경우에 있어서 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(130)를 제어할 수 있다.
구체적으로, 프로세서(130)는 기설정된 시간 간격으로, 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(120)를 제어할 수 있다. 여기에서, 기설정된 시간 간격은 1주일, 1개월 등 사용자 명령에 따라 다양하게 설정될 수 있다.
또는, 프로세서(130)는 전자 장치(200)로부터, 어플리케이션의 서비스를 요청하는 신호가 수신되는 경우, 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(120)를 제어할 수도 있다. 여기에서, 어플리케이션의 서비스를 요청하는 신호는, 어플리케이션의 업데이트를 요청하는 신호가 될 수 있다.
이와 같이, 본 개시는 사용자의 요청이 없는 경우에도 전자 장치(200)에 저장된 어플리케이션의 무결성을 판단함으로써, 위, 변조된 어플리케이션에 의해 사용자의 중요 정보가 유출되는 경우를 효과적으로 방지할 수 있다.
도 3a 내지 도 3b는 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 실시 예를 설명하기 위한 도면이다.
도 3a에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(200)는 스마트 폰으로 구현될 수 있다. 다만, 이는 일 실시 예일 뿐, 전자 장치(200)는 스마트 TV, 컴퓨터, 노트북, PC, 태블릿, 캠코더 등과 같은 다양한 전자 장치가 될 수 있음은 물론, 세탁기, 냉장고, 로봇 청소기 등의 IoT 디바이스가 될 수 있다. 또한, 전자 장치(200)는 스마트 워치 등의 웨어러블 디바이스가 될 수도 있다.
전자 장치(200)는 사용자 명령에 따라, 전자 장치(200)에 저장된 어플리케이션의 무결성 판단을 요청하는 신호를 서버(100)로 전송할 수 있다.
예를 들어, 도 3a에 도시된 바와 같이, 전자 장치(100)는 무결성 판단을 요청하기 위한 사용자 입력이 수신되면, 무결성 판단을 요청하는 신호를 서버(100)로 전송할 수 있다.
이 경우, 프로세서(130)는 전자 장치(200)로부터 어플리케이션의 무결성 판단을 요청하는 신호를 수신하고, 전술한 바와 같이, 서명 키를 포함하는 어플리케이션 체크 모듈을 전자 장치(200)로 전송하도록 통신부(120)를 제어할 수 있다.
그리고, 전자 장치(200)는 어플리케이션 체크 모듈이 수신되면, 전자 장치(200)에 저장된 어플리케이션의 식별 정보를 서버(100)로 전송할 수 있다. 여기에서, 식별 정보는 어플리케이션의 해쉬 값을 서명 키로 서명한 서명 값이 될 수 있다.
프로세서(130)는 어플리케이션의 식별 정보가 수신되면, 전자 장치(200)에 저장된 어플리케이션의 무결성을 판단할 수 있다. 구체적으로, 프로세서(130)는 수신된 서명 값이 상술한 서명 키에 의해 서명되어 있고, 해쉬 값이 기저장된 해쉬 값에 매칭되면 어플리케이션이 위조 또는 변조되지 않은 것으로 판단하고, 서명 값이 서명 키에 의해 서명되어 있지 않거나, 해쉬 값이 기저장된 해쉬 값에 매칭되지 않으면 어플리케이션이 위조 또는 변조된 것으로 판단할 수 있다.
그리고, 프로세서(130)는 상술한 판단 결과, 어플리케이션이 위조 또는 변조된 것으로 판단되면, 해당 어플리케이션의 삭제 등을 유도하는 메시지를 전자 장치(200)로 전송할 수 있다.
예를 들어, 도 3b에 도시된 바와 같이, 프로세서(130)는 전자 장치(200)에 저장된 어플리케이션이 해킹되었음을 알리고, 해당 어플리케이션을 삭제한 후 재설치 할 것을 유도하는 메시지를 전자 장치(200)로 전송할 수 있다.
또는, 프로세서(130)는 상술한 판단 결과, 어플리케이션이 위조 또는 변조되지 않은 것으로 판단되면, 도 3c에 도시된 바와 같이, 해당 어플리케이션은 안전하다는 메시지를 전자 장치(200)로 전송할 수 있다.
이와 같이, 본 개시는 판단 결과를 전자 장치(200)에 제공함으로써, 전자 장치(200)의 사용자는 위, 변조된 어플리케이션을 통해 개인 정보가 유출되는 것을 방지할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 실시 예를 설명하기 위한 도면이다.
도 4에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(200)는 홈 스마트 기능을 제공하는 AI 스피커가 될 수 있다.
이 경우, 전자 장치(200)는 사용자로부터 전자 장치(200)에 설치된 어플리케이션의 무결성 판단을 요청하는 사용자 음성이 수신될 경우, 어플리케이션의 무결성 판단을 요청하는 신호를 서버(100)로 전송할 수 있다.
구체적으로, 전자 장치(200)는 사용자 음성을 STT(Speech to Text) 알고리즘을 통해 텍스트로 변환하고, 변환된 텍스트를 서버(100)로 전송할 수 있다.
이 경우, 프로세서(130)는 전자 장치(200)로부터 수신된 텍스트에 기초하여, 전자 장치(200)에 저장된 어플리케이션의 무결성 판단을 위한 무결성 체크 어플리케이션을 전자 장치(200)로 전송하도록 통신부(130)를 제어할 수 있다.
그리고, 상술한 바와 같이, 프로세서(130)는 전자 장치(200)로부터 전자 장치(200)에 저장된 어플리케이션의 식별 정보를 수신하고, 수신한 식별 정보가 서명 키에 의해 서명되어 있는지 여부 및 수신한 식별 정보가 기저장된 식별 정보에 매칭되는지 여부에 기초하여, 어플리케이션이 위조 또는 변조된 것인지를 판단할 수 있다.
그리고, 프로세서(130)는 상술한 판단 결과, 어플리케이션이 위조 또는 변조된 것으로 판단되면, 해당 어플리케이션의 삭제 등을 유도하는 음성에 대응하는 신호를 전자 장치(200)로 전송할 수 있다.
예를 들어, 도 4에 도시된 바와 같이, 프로세서(130)는 전자 장치(200)에 저장된 어플리케이션이 해킹되었음을 알리고, 해당 어플리케이션을 삭제한 후 재설치 할 것을 유도하는 음성에 대응되는 신호를 전자 장치(200)로 전송할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 실시 예를 설명하기 위한 도면이다.
프로세서(130)는 전자 장치(200)로부터 어플리케이션의 무결성 판단을 요청하는 신호를 수신할 수 있다. 여기에서, 어플리케이션은 외부 전자 장치에 저장된 어플리케이션이 될 수 있다.
예를 들어, 도 5를 참조하면, 외부 전자 장치(300)는 웹 캠이 될 수 있다. 한편, 이는 일 실시 예이고, 외부 전자 장치(300)는 세탁기, 냉장고, 에어컨, 로봇 청소기 등의 다양한 전자 장치가 될 수 있다.
프로세서(130)는 전자 장치(200)로부터 외부 전자 장치(300)에 저장된 어플리케이션의 무결성 판단을 요청하는 신호가 수신되면, 외부 전자 장치(300)로 서명 키를 포함하는 어플리케이션 체크 모듈을 전송할 수 있다.
그리고, 프로세서(130)는 외부 전자 장치(300)로부터, 외부 전자 장치(300)에 저장된 어플리케이션의 식별 정보를 수신할 수 있다. 여기에서, 식별 정보는 외부 전자 장치(300)에 저장된 어플리케이션의 해쉬 값을 서명 키로 서명한 서명 값이 될 수 있다.
그리고, 프로세서(130)는 외부 전자 장치(300)로부터 전자 장치(300)에 저장된 어플리케이션의 식별 정보를 수신하고, 수신한 식별 정보가 서명 키에 의해 서명되어 있는지 여부 및 수신한 식별 정보가 기저장된 식별 정보에 매칭되는지 여부에 기초하여, 어플리케이션이 위조 또는 변조된 것인지를 판단할 수 있다.
그리고, 프로세서(130)는 상술한 판단 결과, 어플리케이션이 위조 또는 변조된 것으로 판단되면, 해당 어플리케이션의 삭제 등을 유도하는 메시지를 전자 장치(200)로 전송할 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 프로세서(130)는 외부 전자 장치(300)에 저장된 어플리케이션이 해킹되었음을 알리고, 해당 어플리케이션을 삭제한 후 재설치 할 것을 유도하는 메시지를 전자 장치(200)로 전송할 수 있다.
이와 같이, 외부 전자 장치(300)에 저장된 어플리케이션의 무결성 여부를 전자 장치(200)와 연동하여 사용자에게 제공함으로써, 특히 외부 전자 장치(300)가 디스플레이나 스피커를 구비하지 않은 IoT 디바이스인 경우, 사용자는 보다 편리하게 어플리케이션의 무결성 여부를 확인할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 어플리케이션 마켓을 통해 어플리케이션의 무결성을 판단하는 실시 예를 설명하기 위한 블록도이다.
본 개시의 일 실시 예에 따른 서버(100)는 복수의 어플리케이션 각각의 식별 정보를 저장하는 마켓 서버가 될 수 있다. 구체적으로, 서버(100)는 어플리케이션 개발자에 의해 개발된 어플리케이션에 관한 각종 정보를 저장하고, 어플리케이션 설치 파일을 전자 장치에 전송하는 마켓 서버가 될 수 있다.
이 경우, 서버(100)는 외부 서버(400)로부터 전자 장치(200)에 저장된 어플리케이션의 무결성 판단을 요청하는 신호를 수신할 수 있다.
구체적으로, 외부 서버(400)는 전자 장치(200)에 저장된 어플리케이션의 무결성 판단을 요청하는 신호가 전자 장치(200)로부터 수신되면, 서버(100)로 전자 장치(200)에 저장된 어플리케이션의 무결성 판단을 요청하는 신호를 전송할 수 있다.
서버(100)는 외부 서버(400)로부터 전자 장치(200)에 저장된 어플리케이션의 무결성 판단을 요청하는 신호가 수신되면, 서명 키를 포함하는 어플리케이션 체크 모듈(Application Check Module)을 전자 장치(200)로 전송할 수 있다.
그리고, 서버(100)는 전자 장치(200)로부터 전자 장치(200)에 저장된 어플리케이션에 대응되는 식별 정보가 수신되면, 기저장된 복수의 식별 정보 중 전자 장치(200)에 저장된 어플리케이션의 식별 정보에 대응되는 정보를 판단할 수 있다.
구체적으로, 서버(100)는 전자 장치(200)로부터 전자 장치(200)에 저장된 어플리케이션의 해쉬 값을 서명 키로 서명한(또는, 계산한) 서명 값이 수신되면, 수신된 서명 값이 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부 및 수신된 해쉬 값이 어플리케이션의 해쉬 값에 매칭되는지 여부에 기초하여, 어플리케이션의 무결성을 판단할 수 있다.
이후, 서버는 상기 판단 결과에 관한 정보를 전자 장치(200) 및/또는 서버(400)로 전송할 수 있다. 서버(400)로 상기 판단 결과에 관한 정보를 전송할 경우, 서버(400)는 해당 정보를 전자 장치(200)로 전송할 수 있다.
이와 같이, 본 개시의 일 실시 예에 따른 서버가 마켓 서버로 구현될 경우, 어플리케이션을 관장하는 개개의 모든 외부 서버가 어플리케이션의 무결성 판단을 위한 하드웨어 내지 소프트웨어를 구비할 필요 없이, 마켓 서버만 해당 하드웨어 내지 소프트웨어를 구비하면 족하므로, 기술적, 경제적으로 유리한 효과를 가질 수 있다.
도 7은 본 개시의 일 실시 예에 따른 어플리케이션의 무결성을 판단하는 흐름도이다.
서버는, 전자 장치에 저장된 어플리케이션의 무결성(integrity) 판단을 위한 어플리케이션 체크 모듈(Application Check Module)을 전자 장치로 전송(S710)할 수 있다.
여기에서, 어플리케이션 체크 모듈은 전자 장치(200)에 저장된 어플리케이션의 식별 정보를 획득하는 모듈이 될 수 있다. 구체적으로, 어플리케이션 체크 모듈은 전자 장치(200)에 저장된 어플리케이션에 해쉬 알고리즘(Hash algorithm)을 적용함으로써, 어플리케이션의 해쉬 값을 획득하는 모듈이 될 수 있다.
한편, 서버(100)는 어플리케이션 체크 모듈을 전자 장치(200)로 전송함에 있어서, 서명 키가 삽입(Injection) 된 어플리케이션 체크 모듈을 전자 장치(200)로 전송할 수 있다.
이후, 서버는, 전자 장치로부터 어플리케이션에 대응되는 식별 정보를 수신(S720)할 수 있다.
그리고, 서버는, 수신된 식별 정보가 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부 및 수신된 식별 정보가 메모리에 기저장된 식별 정보와 매칭되는지 여부에 기초하여, 어플리케이션의 무결성을 판단(S730)할 수 있다.
구체적으로, 서버(100)는 전자 장치(200)로부터 수신된 식별 정보에 상술한 서명 키가 서명되어 있고, 식별 정보가 기저장된 식별 정보에 매칭되면 어플리케이션이 위조 또는 변조되지 않은 것으로 판단하고, 식별 정보에 서명 키가 서명되어 있지 않거나, 식별 정보가 기저장된 식별 정보에 매칭되지 않으면 어플리케이션이 위조 또는 변조된 것으로 판단할 수 있다.
서버(100)는 어플리케이션이 위조 또는 변조된 것으로 판단되면, 해당 어플리케이션의 삭제 등을 유도할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 서버에 설치 가능한 소프트웨어 또는 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 발명의 다양한 실시 예들에 따른 방법들은, 기존 서버의 소프트웨어 업그레이드, 또는 하드웨어 업그레이드만으로도 구현될 수 있다.
또한, 상술한 본 발명의 다양한 실시 예들은 서버에 구비된 임베디드 서버, 또는 외부의 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시에 따른 어플리케이션의 무결성을 판단하는 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100: 서버
110: 메모리
120: 통신부
130: 프로세서
200: 전자 장치

Claims (20)

  1. 서버에 있어서,
    메모리;
    통신부; 및
    상기 통신부를 통해, 전자 장치에 저장된 어플리케이션의 무결성(integrity) 판단을 위한 어플리케이션 체크 모듈(Application Check Module)을 상기 전자 장치로 전송하고,
    상기 전자 장치로부터 상기 어플리케이션에 대응되는 식별 정보가 수신되면, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 수신된 식별 정보가 상기 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부 및 상기 수신된 식별 정보가 상기 메모리에 기저장된 식별 정보에 매칭되는지 여부에 기초하여, 상기 어플리케이션의 무결성을 판단하는, 서버.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 수신된 식별 정보가 상기 서명 키에 의해 서명되어 있지 않거나, 상기 수신된 식별 정보가 상기 기저장된 식별 정보에 매칭되지 않는 경우, 상기 어플리케이션의 무결성을 부정하는, 서버.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 전자 장치로부터 상기 어플리케이션의 무결성 판단을 요청하는 신호가 수신되면, 상기 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 서버.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 어플리케이션의 무결성 판단을 요청하는 신호가 재차 수신되는 경우, 상기 서명 키와 상이한 새로운 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 서버.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 서명 키를 난독화하고, 상기 난독화 된 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 서버.
  6. 제1항에 있어서,
    상기 식별 정보는, 상기 어플리케이션에 대응되는 해쉬(Hash) 값을 상기 서명 키로 서명한 서명 값을 포함하고,
    상기 프로세서는, 서명 검증 알고리즘에 기초하여 상기 서명 값의 유효성이 검증되면, 상기 수신된 식별 정보가 상기 서명 키에 의해 서명된 것으로 판단하는, 서버.
  7. 제1항에 있어서,
    상기 프로세서는,
    기설정된 시간 간격으로, 상기 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 서버.
  8. 제1항에 있어서,
    상기 프로세서는,
    상기 전자 장치로부터, 상기 어플리케이션의 서비스를 요청하는 신호가 수신되는 경우, 상기 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 서버.
  9. 제1항에 있어서,
    상기 프로세서는,
    상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송한 때로부터 기설정된 시간 경과 후 상기 식별 정보가 수신된 경우, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하지 않고, 상기 서명 키와 상이한 새로운 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 서버.
  10. 제9항에 있어서,
    상기 프로세서는,
    상기 생성된 서명 키를 상기 서명 키에 적용된 난독화 기법의 난독화 레벨보다 상대적으로 높은 레벨로 난독화하고, 상기 난독화된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 서버.
  11. 어플리케이션의 무결성을 판단하는 방법에 있어서,
    전자 장치에 저장된 어플리케이션의 무결성(integrity) 판단을 위한 어플리케이션 체크 모듈(Application Check Module)을 상기 전자 장치로 전송하는 단계; 및
    상기 전자 장치로부터 상기 어플리케이션에 대응되는 식별 정보가 수신되면, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하는 단계;를 포함하고,
    상기 판단하는 단계는,
    상기 수신된 식별 정보가 상기 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부 및 상기 수신된 식별 정보가 기저장된 식별 정보에 매칭되는지 여부에 기초하여, 상기 어플리케이션의 무결성을 판단하는, 어플리케이션의 무결성을 판단하는 방법.
  12. 제11항에 있어서,
    상기 판단하는 단계는,
    상기 수신된 식별 정보가 상기 서명 키에 의해 서명되어 있지 않거나, 상기 수신된 식별 정보가 상기 기저장된 식별 정보와 일치하지 않는 경우, 상기 어플리케이션의 무결성을 부정하는, 어플리케이션의 무결성을 판단하는 방법.
  13. 제11항에 있어서,
    상기 전송하는 단계는,
    상기 전자 장치로부터 상기 어플리케이션의 무결성 판단을 요청하는 신호가 수신되면, 상기 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 어플리케이션의 무결성을 판단하는 방법.
  14. 제13항에 있어서,
    상기 어플리케이션의 무결성 판단을 요청하는 신호가 재차 수신되는 경우, 상기 서명 키와 상이한 새로운 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는 단계;를 더 포함하는, 어플리케이션의 무결성을 판단하는 방법.
  15. 제11항에 있어서,
    상기 전송하는 단계는,
    상기 서명 키를 난독화하고, 상기 난독화 된 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 어플리케이션의 무결성을 판단하는 방법.
  16. 제11항에 있어서,
    상기 식별 정보는, 상기 어플리케이션에 대응되는 해쉬(Hash) 값을 상기 서명 키로 서명한 서명 값을 포함하고,
    상기 판단하는 단계는,
    서명 검증 알고리즘에 기초하여 상기 서명 값의 유효성이 검증되면, 상기 수신된 식별 정보가 상기 서명 키에 의해 서명된 것으로 판단하는, 어플리케이션의 무결성을 판단하는 방법.
  17. 제11항에 있어서,
    상기 전송하는 단계는,
    기설정된 시간 간격으로, 상기 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 어플리케이션의 무결성을 판단하는 방법.
  18. 제11항에 있어서,
    상기 전송하는 단계는,
    상기 전자 장치로부터, 상기 어플리케이션의 서비스를 요청하는 신호가 수신되는 경우, 상기 서명 키를 포함하는 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는, 어플리케이션의 무결성을 판단하는 방법.
  19. 제11항에 있어서,
    상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송한 때로부터 기설정된 시간 경과 후 상기 식별 정보가 수신된 경우, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하지 않고, 상기 서명 키와 상이한 새로운 서명 키를 생성하고, 상기 생성된 서명 키를 포함하는 상기 어플리케이션 체크 모듈을 상기 전자 장치로 전송하는 단계;를 더 포함하는, 어플리케이션의 무결성을 판단하는 방법.
  20. 어플리케이션의 무결성을 판단하는 시스템에 있어서,
    복수의 어플리케이션 각각의 식별 정보를 저장하는 서버; 및
    전자 장치에 저장된 어플리케이션의 무결성(integrity) 판단을 요청하는 신호를 상기 서버로 전송하는 외부 서버;를 포함하고,
    상기 서버는,
    상기 무결성 판단을 요청하는 신호가 수신되면, 어플리케이션 체크 모듈(Application Check Module)을 상기 전자 장치로 전송하고, 상기 전자 장치로부터 상기 어플리케이션에 대응되는 식별 정보가 수신되면, 상기 수신된 식별 정보에 기초하여 상기 어플리케이션의 무결성을 판단하고,
    상기 서버는,
    상기 수신된 식별 정보가 상기 어플리케이션 체크 모듈에 포함된 서명 키에 의해 서명되어 있는지 여부 및 상기 수신된 식별 정보가 상기 메모리에 기저장된 복수의 식별 정보 중 상기 어플리케이션의 식별 정보에 매칭되는지 여부에 기초하여, 상기 어플리케이션의 무결성을 판단하는, 무결성 판단 시스템.
KR1020180149333A 2018-11-28 2018-11-28 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법 KR102537788B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180149333A KR102537788B1 (ko) 2018-11-28 2018-11-28 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법
US16/601,983 US11308238B2 (en) 2018-11-28 2019-10-15 Server and method for identifying integrity of application
EP19890918.6A EP3850512A4 (en) 2018-11-28 2019-10-23 SERVER AND METHOD OF IDENTIFYING THE INTEGRITY OF AN APPLICATION
PCT/KR2019/013968 WO2020111517A1 (en) 2018-11-28 2019-10-23 Server and method for identifying integrity of application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180149333A KR102537788B1 (ko) 2018-11-28 2018-11-28 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법

Publications (2)

Publication Number Publication Date
KR20200063535A true KR20200063535A (ko) 2020-06-05
KR102537788B1 KR102537788B1 (ko) 2023-05-30

Family

ID=70770821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180149333A KR102537788B1 (ko) 2018-11-28 2018-11-28 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법

Country Status (4)

Country Link
US (1) US11308238B2 (ko)
EP (1) EP3850512A4 (ko)
KR (1) KR102537788B1 (ko)
WO (1) WO2020111517A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210281423A1 (en) * 2020-03-09 2021-09-09 Kabushiki Kaisha Toshiba Information processing device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230129409A1 (en) * 2021-10-26 2023-04-27 Carrier Corporation Algorithm for secure communications using symmetric keys

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014673A1 (en) * 2001-07-16 2003-01-16 Francotyp Postalia Ag & Co. Kg Arrangement and method for modifying the functionality of a security module
US20070006214A1 (en) * 2005-06-20 2007-01-04 Dubal Scott P Updating machines while disconnected from an update source
KR20170088858A (ko) * 2014-11-28 2017-08-02 톰슨 라이센싱 애플리케이션 무결성 검증을 제공하기 위한 방법 및 디바이스
KR20170094736A (ko) * 2016-02-11 2017-08-21 라인 가부시키가이샤 파일 보호 방법 및 시스템

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100879807B1 (ko) * 2006-12-11 2009-01-22 소프트캠프(주) 보안 문서의 반출입 제어를 위한 통제시스템
US8218772B2 (en) * 2008-06-30 2012-07-10 Samsung Electronics Co., Ltd. Secure multicast content delivery
US20120198234A1 (en) 2011-01-31 2012-08-02 Intuit Inc. Method and apparatus for ensuring the integrity of a downloaded data set
US9781151B1 (en) 2011-10-11 2017-10-03 Symantec Corporation Techniques for identifying malicious downloadable applications
KR20130125245A (ko) 2012-05-08 2013-11-18 주식회사 핑거 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템
AU2013259469A1 (en) * 2012-05-09 2014-11-27 SunStone Information Defense Inc. Methods and apparatus for identifying and removing malicious applications
KR101740256B1 (ko) 2012-11-26 2017-06-09 한국전자통신연구원 모바일 앱 무결성 보증 장치 및 방법
KR20140106940A (ko) 2013-02-27 2014-09-04 한국전자통신연구원 모바일 단말용 애플리케이션 검증 장치
KR101509585B1 (ko) 2013-08-23 2015-04-07 주식회사 마크애니 모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템
KR101532765B1 (ko) 2013-10-02 2015-07-02 주식회사 엔젠소프트 어플리케이션 위변조 방지 시스템 및 방법
KR20150126495A (ko) * 2014-05-02 2015-11-12 삼성전자주식회사 서비스 정보를 제공하는 전자 장치 및 방법
KR20160006925A (ko) * 2014-07-10 2016-01-20 한국전자통신연구원 앱 무결성 검증 장치 및 그 방법
JP2016025628A (ja) 2014-07-24 2016-02-08 株式会社リコー 情報処理システム、および電子機器
EP3026558A1 (en) 2014-11-28 2016-06-01 Thomson Licensing Method and device for providing verifying application integrity
US9749323B2 (en) 2015-03-27 2017-08-29 Intel Corporation Technologies for secure server access using a trusted license agent
KR102446384B1 (ko) * 2015-09-18 2022-09-22 삼성전자주식회사 사용자 단말 및 서버 장치
KR102013983B1 (ko) 2016-06-13 2019-10-21 (유)아홉 애플리케이션 무결성 인증 방법 및 인증 서버
US11295317B2 (en) * 2017-02-23 2022-04-05 International Business Machines Corporation Authentication of packaged products
US10949526B2 (en) * 2018-01-25 2021-03-16 Salesforce.Com, Inc. User device authentication
US20190384587A1 (en) * 2018-06-14 2019-12-19 Honeywell International Inc. System and method for installing loadable software airplane parts (lsap) of a set of certified orchestrated procedures using a blockchain network
KR20190046724A (ko) 2019-04-22 2019-05-07 넷마블 주식회사 어플리케이션의 무결성 검증 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014673A1 (en) * 2001-07-16 2003-01-16 Francotyp Postalia Ag & Co. Kg Arrangement and method for modifying the functionality of a security module
US20070006214A1 (en) * 2005-06-20 2007-01-04 Dubal Scott P Updating machines while disconnected from an update source
KR20170088858A (ko) * 2014-11-28 2017-08-02 톰슨 라이센싱 애플리케이션 무결성 검증을 제공하기 위한 방법 및 디바이스
KR20170094736A (ko) * 2016-02-11 2017-08-21 라인 가부시키가이샤 파일 보호 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210281423A1 (en) * 2020-03-09 2021-09-09 Kabushiki Kaisha Toshiba Information processing device
US11888990B2 (en) * 2020-03-09 2024-01-30 Kabushiki Kaisha Toshiba Information processing device controlling analysis of a program being executed based on a result of verification of an analysis program

Also Published As

Publication number Publication date
US11308238B2 (en) 2022-04-19
WO2020111517A1 (en) 2020-06-04
KR102537788B1 (ko) 2023-05-30
EP3850512A4 (en) 2021-11-10
US20200167502A1 (en) 2020-05-28
EP3850512A1 (en) 2021-07-21

Similar Documents

Publication Publication Date Title
KR102381153B1 (ko) 신원 정보에 기초한 암호화 키 관리
US9660986B2 (en) Secure access method and secure access device for an application program
US20140289535A1 (en) Cryptographic System and Methodology for Securing Software Cryptography
TW202036347A (zh) 資料儲存、驗證方法及裝置
WO2013107362A1 (zh) 一种保护数据的方法和系统
US20200169400A1 (en) Trusted execution based on environmental factors
US20150358321A1 (en) Storage device, information processing apparatus, and information processing method
KR102234825B1 (ko) 암호 동작들의 안전한 수행
TWI724681B (zh) 基於身分資訊管理密碼金鑰
KR102537788B1 (ko) 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법
KR102583995B1 (ko) 암호화 프로그램 다양화
CN113127844A (zh) 一种变量访问方法、装置、系统、设备和介质
KR102026279B1 (ko) 애플리케이션을 관리하는 방법
KR101473656B1 (ko) 모바일 데이터 보안 장치 및 방법
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
US20170149561A1 (en) Method and system for identifying manipulation of data records
JP6368531B2 (ja) 暗号処理装置、暗号処理システム、および暗号処理方法
Choi et al. Hardware-assisted credential management scheme for preventing private data analysis from cloning attacks
US11968202B2 (en) Secure authentication in adverse environments
KR20240066716A (ko) 콘텐츠 복호화 키를 관리하는 방법 및 이를 위한 장치
CN115442805A (zh) 密钥找回方法、服务器及识别卡
KR20170100235A (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
GRNT Written decision to grant