KR101286767B1 - 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법 - Google Patents

동적 해싱을 이용한 애플리케이션 프로그램 검증 방법 Download PDF

Info

Publication number
KR101286767B1
KR101286767B1 KR1020130006737A KR20130006737A KR101286767B1 KR 101286767 B1 KR101286767 B1 KR 101286767B1 KR 1020130006737 A KR1020130006737 A KR 1020130006737A KR 20130006737 A KR20130006737 A KR 20130006737A KR 101286767 B1 KR101286767 B1 KR 101286767B1
Authority
KR
South Korea
Prior art keywords
verification
hash value
app
client
verification server
Prior art date
Application number
KR1020130006737A
Other languages
English (en)
Inventor
허영일
이윤승
정원준
Original Assignee
주식회사 엔에스에이치씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔에스에이치씨 filed Critical 주식회사 엔에스에이치씨
Priority to KR1020130006737A priority Critical patent/KR101286767B1/ko
Application granted granted Critical
Publication of KR101286767B1 publication Critical patent/KR101286767B1/ko

Links

Images

Classifications

    • 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
    • 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
    • H04L9/3242Cryptographic 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 involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법에 관한 것으로서, 보다 구체적으로는 네트워크를 통해 클라이언트에 설치된 애플리케이션 프로그램(이하, “앱”이라 함)을 검증하는 방법으로서, (1) 상기 클라이언트가, 검증 대상 앱의 실행파일에서 시작 위치 및 종료 위치를 설정하는 단계; (2) 상기 클라이언트가, 상기 설정한 시작 위치 및 종료 위치를 이용하여 상기 실행파일로 해시 값을 생성하는 단계; (3) 상기 클라이언트가, 상기 생성한 해시 값을 상기 공개키 암호화 방식에 의해 암호화하여 상기 검증 서버에 전송하는 단계; 및 (4) 상기 검증 서버가, 상기 전송받은 암호화된 해시 값을 공개키 암호화 방식으로 복호화하여 상기 검증 대상 앱을 검증하는 단계를 포함하되, 상기 단계 (1)에서는, 해시 값 생성 시마다 상기 시작 위치 및 종료 위치를 재설정하며, 상기 단계 (2)에서는, 상기 재설정된 시작 위치 및 종료 위치를 이용하여 해시 값을 생성하는 동적 해싱을 하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 동적 해싱을 이용한 앱 검증 방법에 따르면, 클라이언트가 검증 대상 앱의 실행파일로 해시 값을 생성하고 암호화하여 검증 서버에 전송하되, 해시 값 생성 시마다 시작 위치 및 종료 위치를 재설정하여 매번 상이한 해시 값을 생성하는 동적 해싱을 함으로써, 해커 등이 스니핑(sniffing) 등 각종 해킹에 의해 획득한 해시 값을 사용하여 검증 대상 앱을 검증할 수 없도록 하고, 안전하고 정확하게 검증 대상 앱을 검증할 수 있으며, 해킹 등에 의하여 검증 대상 앱의 실행파일 등에 흔적이 남거나 검증 대상 앱에 위변조가 일어났는지 여부를 정확하게 파악할 수 있다.
또한, 본 발명에 따르면, 공개키 암호화 방식을 이용하여 해시 값을 암호화하여 전송함으로써, 개인키를 알고 있는 검증 서버만 복호화를 할 수 있으므로 일반적인 네트워크를 이용하더라도 안전하게 해시 값을 송수신할 수 있으며, 이를 통해 안정적으로 검증 대상 앱의 검증을 할 수 있다.

Description

동적 해싱을 이용한 애플리케이션 프로그램 검증 방법{VERIFICATION METHOD FOR APPLICATION PROGRAM USING DYNAMIC HASHING}
본 발명은 애플리케이션 프로그램(이하, “앱”이라 함) 검증 방법에 관한 것으로서, 보다 구체적으로는 동적 해싱을 이용한 앱 검증 방법에 관한 것이다.
최근 네트워크 관련 기술의 발달과 통신 단말기의 급격한 보급을 통해, 유무선 통신망을 이용한 각종 서비스가 다양하게 제공되고 있다. 예를 들어, 인터넷이나 이동통신망 등을 이용하여 금융 거래, 전자 상거래 등 종래 오프라인에서 가능하던 각종 업무를 수행할 수 있게 되었다. 이때, 퍼스널 컴퓨터나 스마트 기기 등에 앱을 설치하고, 앱을 이용하여 각종 업무를 수행하는 경우가 많다.
특히, 최근에는 스마트폰, 태블릿 PC 등과 같은 스마트 기기가 급격히 보급되면서, 스마트 기기를 개인적인 용도뿐 아니라 업무 수행을 위해서 사용하는 경우도 점차 늘고 있다. 스마트 기기는 기능이 제한되어 있지 않고 앱을 통해 상당 부분 기능을 변경하거나 확장할 수 있는 제품을 가리킨다. 즉, 스마트 기기를 업무 수행을 위한 용도로 사용하게 되는 경우, 앱을 이용하는 경우가 많다.
이와 같이 스마트 기기를 이용하여 다양한 서비스가 제공되면서, 각종 앱을 통한 서비스가 늘어나고, 이와 같은 서비스의 이용자도 빠른 속도로 늘어남에 따라, 스마트 기기에 대한 해킹 위협이 급격하게 증가되고 있다. 또한, 정상적인 앱으로 위장한 악성 코드, 피싱 앱, 위변조 앱 등을 이용한 개인 정보 또는 금융 정보의 수집 등 각종 해킹 사고가 증가하고 있다. 따라서 앱의 실행 전에 실행하려고 하는 앱이 정상적인 앱인지, 정상적인 앱으로 위장한 각종 위변조 앱인지 여부를 검증하여 피해를 방지할 수 있는 기술의 개발이 시급한 실정이다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 클라이언트가 검증 대상 앱의 실행파일로 해시 값을 생성하고 암호화하여 검증 서버에 전송하되, 해시 값 생성 시마다 시작 위치 및 종료 위치를 재설정하여 매번 상이한 해시 값을 생성하는 동적 해싱을 함으로써, 해커 등이 스니핑(sniffing) 등 각종 해킹에 의해 획득한 해시 값을 사용하여 검증 대상 앱을 검증할 수 없도록 하고, 안전하고 정확하게 검증 대상 앱을 검증할 수 있으며, 해킹 등에 의하여 검증 대상 앱의 실행파일 등에 흔적이 남거나 검증 대상 앱에 위변조가 일어났는지 여부를 정확하게 파악할 수 있는, 동적 해싱을 이용한 앱 검증 방법을 제공하는 것을 그 목적으로 한다.
또한, 본 발명은, 공개키 암호화 방식을 이용하여 해시 값을 암호화하여 전송함으로써, 개인키를 알고 있는 검증 서버만 복호화를 할 수 있으므로 일반적인 네트워크를 이용하더라도 안전하게 해시 값을 송수신할 수 있으며, 이를 통해 안정적으로 검증 대상 앱의 검증을 할 수 있는, 동적 해싱을 이용한 앱 검증 방법을 제공하는 것을 또 다른 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 동적 해싱을 이용한 앱 검증 방법은, 네트워크를 통해 클라이언트에 설치된 앱을 검증하는 방법으로서,
(1) 상기 클라이언트가, 검증 대상 앱의 실행파일에서 시작 위치 및 종료 위치를 설정하는 단계;
(2) 상기 클라이언트가, 상기 설정한 시작 위치 및 종료 위치를 이용하여 상기 실행파일로 해시 값을 생성하는 단계;
(3) 상기 클라이언트가, 상기 생성한 해시 값을 상기 공개키 암호화 방식에 의해 암호화하여 상기 검증 서버에 전송하는 단계; 및
(4) 상기 검증 서버가, 상기 전송받은 암호화된 해시 값을 공개키 암호화 방식으로 복호화하여 상기 검증 대상 앱을 검증하는 단계를 포함하되,
상기 단계 (1)에서는, 해시 값 생성 시마다 상기 시작 위치 및 종료 위치를 재설정하며,
상기 단계 (2)에서는, 상기 재설정된 시작 위치 및 종료 위치를 이용하여 해시 값을 생성하는 동적 해싱을 하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 상기 단계 (1) 이전에는,
(0) 검증 서버와 상기 클라이언트가 공개키를 교환하는 단계를 더 포함할 수 있다.
더욱 바람직하게는, 상기 단계 (0)에서는,
상기 클라이언트가 상기 검증 서버의 공개키를 획득할 수 있다.
바람직하게는, 상기 단계 (2)에서는,
상기 클라이언트가 상기 검증 서버에 상기 검증 대상 앱의 정보를 더 전송할 수 있다.
더욱 바람직하게는, 상기 검증 대상 앱의 정보는,
상기 단계 (1)에서 설정된 시작 위치 및 종료 위치에 대한 정보를 포함할 수 있다.
더더욱 바람직하게는, 상기 단계 (4)에서는,
상기 검증 서버가, 상기 전송받은 검증 대상 앱의 정보를 이용하여 해시 값을 생성하며, 상기 복호화한 해시 값과 상기 생성한 해시 값을 비교하여 상기 검증 대상 앱을 검증할 수 있다.
바람직하게는,
상기 단계 (3)에서는, 상기 클라이언트가 상기 검증 서버의 공개키로 상기 해시 값을 암호화하여 전송하며,
상기 단계 (4)에서는, 상기 검증 서버가 상기 암호화된 해시 값을 개인키로 복호화할 수 있다.
바람직하게는, 상기 단계 (4) 이후에는,
상기 검증 서버가, 상기 단계 (4)에서 상기 검증 대상 앱의 검증에 성공하면, 상기 클라이언트에 검증 성공 신호를 전송하는 단계를 더 포함할 수 있다.
바람직하게는, 상기 단계 (4) 이후에는,
상기 검증 서버가, 상기 단계 (4)에서 상기 검증 대상 앱의 검증에 실패하면, 관리자에게 통보하는 단계를 더 포함할 수 있다.
본 발명에서 제안하고 있는 동적 해싱을 이용한 앱 검증 방법에 따르면, 클라이언트가 검증 대상 앱의 실행파일로 해시 값을 생성하고 암호화하여 검증 서버에 전송하되, 해시 값 생성 시마다 시작 위치 및 종료 위치를 재설정하여 매번 상이한 해시 값을 생성하는 동적 해싱을 함으로써, 해커 등이 스니핑 등 각종 해킹에 의해 획득한 해시 값을 사용하여 검증 대상 앱을 검증할 수 없도록 하고, 안전하고 정확하게 검증 대상 앱을 검증할 수 있으며, 해킹 등에 의하여 검증 대상 앱의 실행파일 등에 흔적이 남거나 검증 대상 앱에 위변조가 일어났는지 여부를 정확하게 파악할 수 있다.
또한, 본 발명에 따르면, 공개키 암호화 방식을 이용하여 해시 값을 암호화하여 전송함으로써, 개인키를 알고 있는 검증 서버만 복호화를 할 수 있으므로 일반적인 네트워크를 이용하더라도 안전하게 해시 값을 송수신할 수 있으며, 이를 통해 안정적으로 검증 대상 앱의 검증을 할 수 있다.
도 1은 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법을 구현하기 위한 시스템의 구성을 도시한 도면.
도 2는 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법을 구현하기 위한 시스템에서, 검증 서버의 세부적인 구성을 도시한 도면.
도 3은 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법의 흐름을 도시한 도면.
도 4는 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법에서, 신호 또는 데이터의 흐름을 도시한 도면.
도 5는 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법에서, 해시 값 검증 성공 또는 실패 시 처리 과정에 대하여 도시한 도면.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’ 되어 있다고 할 때, 이는 ‘직접적으로 연결’ 되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’ 되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’ 한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법을 구현하기 위한 시스템의 구성을 도시한 도면이다. 도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법을 구현하기 위한 시스템은, 클라이언트(100) 및 검증 서버(200)를 포함하여 구성될 수 있으며, 관리자 콘솔(300)을 더 포함하여 구성될 수 있다.
즉, 본 발명은 클라이언트(100)가 검증 대상 앱의 실행파일의 시작 위치 및 종료 위치를 이용하여 해시 값(hash value)을 생성하고 공개키 암호화 방식에 의해 암호화하여 검증 서버(200)에 전송하되, 해시 값 생성 시마다 시작 위치 및 종료 위치를 재설정하여 매번 상이한 해시 값을 생성하는 동적 해싱을 함으로써, 검증 서버(200)가 암호화된 해시 값을 수신하고 복호화하여 안전하게 검증 대상 앱을 검증할 수 있다. 이와 같이, 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법에서는, 매번 상이한 해시 값이 도출되고 이를 이용하여 검증을 처리하기 때문에, 해커 등이 스니핑 등 각종 해킹에 의해 획득한 해시 값을 사용하여 검증 대상 앱을 검증할 수 없다. 또한, 해시 함수에 의해 생성된 해시 값을 이용하여 검증 대상 앱을 검증하기 때문에, 해킹 등에 의하여 실행파일 등에 흔적이 남거나 위변조가 일어났는지 여부를 정확하게 파악할 수 있다. 뿐만 아니라, 공개키 암호화 방식을 이용하여 해시 값을 암호화하여 전송하기 때문에, 일반적인 네트워크를 이용하더라도 안전하게 검증 서버(200)가 해시 값을 수신할 수 있으며, 이를 통해 안정적으로 검증 대상 앱의 검증을 할 수 있다.
이하에서는, 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법을 구현하기 위한 시스템의 각 구성요소에 대하여 상세히 설명하도록 한다.
클라이언트(100)는, 검증 대상 앱이 설치되며, 네트워크를 통해 검증 서버(200)에 접속하여 검증 대상 앱을 검증하고자 하는 클라이언트(100)일 수 있다. 이때, 클라이언트(100)에서 검증 대상 앱이 실행될 때, 자동으로 검증 서버(200)에 접속하여 앱 검증을 처리하도록 함으로써, 검증된 앱이 실행되도록 제한할 수 있으며, 안전한 것으로 판단된 앱이 실행되도록 하여 보안을 강화할 수 있다.
한편, 클라이언트(100)는 각종 앱을 설치하여 기능을 변경하거나 확장하여 사용할 수 있는 스마트 기기일 수 있다. 구체적으로는 스마트폰, 스마트 노트, 태블릿 PC, 스마트 카메라, 스마트 TV 등일 수 있다. 다만, 본 발명의 클라이언트(100)가 나열한 바와 같은 단말기의 형태에 한정되는 것은 아니며, 앱의 실행파일에서 시작 위치 및 종료 위치를 설정하고 해시 값을 생성하며, 네트워크를 통해 검증 서버(200)에 해시 값을 전송하여 검증 대상 앱의 검증을 할 수 있다면, 구체적인 단말기의 형태에 관계없이 본 발명의 클라이언트(100)의 역할을 얼마든지 할 수 있다.
검증 서버(200)는, 네트워크를 통해 클라이언트(100)에 설치된 앱을 검증하는 서버일 수 있다. 검증 서버(200)는 클라이언트(100)로부터 전송받은 암호화된 해시 값을 복호화하여 검증 대상 앱을 검증할 수 있다. 이때, 시작 위치 및 종료 위치를 이용하여 검증 대상 앱의 해시 값을 생성하고 복호화한 해시 값과 비교함으로써, 검증 대상 앱을 검증할 수 있다. 또한, 검증 결과를 관리자 콘솔(300)에 전송하여 검증 결과에 대한 신속한 대처가 가능하도록 할 수 있다. 이때, 도 1에 도시된 바와 같이, 검증 서버(200)와 관리자 콘솔(300)은 암호화 통신을 통하여 각종 신호 및 데이터를 송수신함으로써, 보안을 강화할 수 있다. 검증 서버(200)의 세부적인 구성에 대해서는 추후 도 2를 참조하여 상세히 설명하도록 한다.
관리자 콘솔(300)은, 검증 서버(200)에서 검증한 검증 대상 앱에 대한 검증 결과를 확인하고 모니터링 하는 관리자의 단말기일 수 있다. 관리자 콘솔(300)은 검증 서버(200)로부터 검증 대상 앱의 검증 결과를 통보받고, 위변조가 일어난 것으로 판단되는 앱을 감시하고 조치를 취하거나, 위변조가 일어나지 않은 원본 앱을 클라이언트(100)에 다시 설치할 것을 요청하는 등의 조치를 취할 수 있다.
도 2는 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법을 구현하기 위한 시스템에서, 검증 서버(200)의 세부적인 구성을 도시한 도면이다. 도 2에 도시된 바와 같이, 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법을 구현하기 위한 시스템의 검증 서버(200)는, 송수신부(210), 데이터베이스(220), 암호화부(230) 및 앱 검증부(240)를 포함하여 구성될 수 있다.
송수신부(210)는, 인터넷, 인트라넷, 유무선 통신망, 이동통신망 등을 포함하는 네트워크를 통해 클라이언트(100)와 통신을 수행하고, 암호화 통신을 이용하여 관리자 콘솔(300)과 통신을 할 수 있다. 특히, 본 발명에서는 공개키를 이용하여 해시 값에 대한 암호화를 수행하기 때문에, 보안 되지 않는 일반적인 네트워크를 통해 클라이언트(100)와 공개키의 교환 등을 할 수 있으므로 효율적이다. 또한, 송수신부(210)는 클라이언트(100)로부터 전송받은 암호화된 해시 값을 암호화부(230)에 전달하고, 앱 검증부(240)로부터 검증 대상 앱에 대한 검증 결과를 전달받아 클라이언트(100)에 전송할 수 있다.
데이터베이스(220)는, 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법을 수행하기 위해 필요한 각종 데이터를 저장할 수 있다. 특히, 데이터베이스(220)는, 검증 서버(200)에 의해 검증이 가능한 앱의 원본 실행파일을 저장하고, 해시 함수를 더 저장하여 해시 함수를 이용하여 검증 대상 앱의 원본 실행파일로부터 해시 값을 생성할 수 있다. 본 발명에서는, 클라이언트가 동적 해싱을 이용하여 해시 값을 생성하므로, 검증 서버도 검증을 할 때마다 해시 값을 생성하여 사용할 수 있다. 또한, 데이터베이스(220)는 검증 대상 앱의 최신 버전을 포함하는 다양한 버전의 원본 실행파일을 저장함으로써, 검증 대상 앱이 위변조가 일어났는지 여부를 용이하게 파악할 수 있다.
암호화부(230)는, 클라이언트(100)가 암호화한 해시 값을 복호화할 수 있다. 특히, 암호화부(230)는 공개키 및 개인키를 관리하고 공개키를 클라이언트(100)와 교환함으로써, 안전한 암호화 및 복호화가 이루어지도록 할 수 있다. 이와 같이, 암호화부(230)에서 개인키를 관리하고 공개키 암호화 방식에 의해 복호화 처리를 함으로써, 개인키를 알고 있는 검증 서버(200)에서만 해시 값을 복호화할 수 있으므로, 안전성을 확보할 수 있다.
앱 검증부(240)는, 암호화부(230)에서 복호화한 해시 값을 이용하여 검증 대상 앱을 검증할 수 있다. 즉, 앱 검증부(240)는 데이터베이스(220)에 저장된 검증 대상 앱의 원본 실행 파일을 이용해 생성한 해시 값과, 암호화부(230)에서 복호화한 해시 값을 비교하여 검증 대상 앱을 검증할 수 있다. 즉, 두 해시 값을 비교하여 서로 상이하면 원래의 데이터도 어딘가 다르다는 것을 의미하므로, 두 해시 값이 동일하면 검증 대상 앱에 이상이 없는 것으로, 두 해시 값이 상이하면 검증 대상 앱에 위변조 가능성이 있는 것으로 판단할 수 있다.
도 3은 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법의 흐름을 도시한 도면이다. 도 3에 도시된 바와 같이, 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법은, 클라이언트(100)가 검증 대상 앱의 실행파일에서 시작 위치 및 종료 위치를 설정하는 단계(S100), 클라이언트(100)가 시작 위치 및 종료 위치를 이용하여 실행파일로 해시 값을 생성하는 단계(S200), 클라이언트(100)가 생성한 해시 값을 암호화하여 검증 서버(200)에 전송하는 단계(S300) 및 검증 서버(200)가 암호화된 해시 값을 복호화하여 검증 대상 앱을 검증하는 단계(S400)를 포함하여 구현될 수 있으며, 검증 서버(200)와 클라이언트(100)가 공개키를 교환하는 단계(S10)를 더 포함하여 구현될 수 있다.
도 4는 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법에서, 신호 또는 데이터의 흐름을 도시한 도면이다. 즉, 도 3 및 도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법에서는, 클라이언트(100)가 검증 대상 앱의 실행 파일에서 시작 위치 및 종료 위치를 설정하고(S100), 설정한 시작 위치 및 종료 위치를 이용하여 실행파일로 해시 값을 생성하며(S200), 생성한 해시 값을 공개키 암호화 방식으로 암호화하여 검증 서버(200)에 전송하면(S300), 검증 서버(200)가 복호화 과정을 거친 해시 값을 이용하여 검증 대상 앱을 검증할 수 있다(S400). 검증 대상 앱의 원활한 검증을 위하여 검증 서버(200)와 클라이언트(100)가 공개키를 미리 교환할 수 있다(S10).
이때, 단계 S100에서는 해시 값 생성 시마다 시작 위치 및 종료 위치를 재설정하며, 단계 S200에서는 재설정된 시작 위치 및 종료 위치를 이용하여 해시 값을 생성함으로써, 동적 해싱을 할 수 있다. 이와 같이, 검증 대상 앱의 검증을 위해 해시 값을 생성할 때마다, 해시 값 추출 행의 시작 위치와 종료 위치를 매번 상이하게 하므로, 생성된 해시 값이 매번 상이할 수 있다. 따라서 해커 등이 스니핑 등에 의해 해시 값을 획득하더라도, 획득한 해시 값을 재사용할 수 없으므로, 검증 대상 앱의 무결성을 정확하게 검증할 수 있고, 허위로 무결성 리포트를 할 수 없도록 하여 안정성 및 정확성을 확보할 수 있다.
이하에서는, 도 3 및 도 4를 참조하여 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법을 구성하는 각 단계에 대하여 상세히 설명하도록 한다.
단계 S10에서는, 검증 서버(200)와 클라이언트(100)가 공개키를 교환할 수 있다. 공개키는 공개되는 키로서 안전하지 않은 경로를 통해 전송되어도 상관없으므로, 네트워크를 통해 검증 서버(200)와 클라이언트(100) 사이에 공개키의 송수신이 일어날 수 있다. 특히, 단계 S10에서는, 클라이언트(100)가 검증 서버(200)의 공개키를 획득할 수 있다. 추후 상세히 설명할 단계 S300에서는 클라이언트(100)가 해시 값을 검증 서버(200)에 전송하게 되므로, 해시 값의 전송이 안전하게 이루어지도록 클라이언트(100)가 검증 서버(200)의 공개키를 획득하여 암호화에 이용하도록 할 수 있다.
단계 S100에서는, 클라이언트(100)가 검증 대상 앱의 실행파일에서 시작 위치 및 종료 위치를 설정할 수 있다. 즉, 단계 S100에서는 동적 해싱을 위하여 해시 값 생성 행의 시작 위치 및 종료 위치를 설정할 수 있으며, 단계 S100은 해시 값 생성 시마다 재실행될 수 있다.
단계 S200에서는, 클라이언트(100)가 단계 S100에서 설정한 시작 위치 및 종료 위치를 이용하여 실행파일로 해시 값을 생성할 수 있다. 해시 값은 해시 함수를 이용하여 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용해 생성된 값으로서, 데이터가 한 비트만 다르더라도 크게 달라지며, 동일한 데이터라도 시작 위치 및 종료 위치에 따라서도 크게 달라질 수 있다. 앱에 위변조가 일어나면 실행파일이 변경될 수 있고, 해킹 시도 등에 의해 실행파일에 흔적이 남을 수도 있다. 이와 같은 경우 단계 S100에서 생성한 해시 값은 원본 실행파일의 해시 값과는 전혀 상이할 수 있다. 또한, 단계 S100에서 해시 값 생성 시, 즉 검증 대상 앱의 검증 시마다 시작 위치 및 종료 위치를 재설정하므로, 단계 S200에서 생성된 해시 값은 검증 시마다 서로 상이할 수 있다.
단계 S300에서는, 클라이언트(100)가 생성한 해시 값을 공개키 암호화 방식에 의해 암호화하여 검증 서버(200)에 전송할 수 있다. 특히, 단계 S300에서는, 클라이언트(100)가 검증 서버(200)의 공개키로 해시 값을 암호화하여 전송할 수 있다. 즉, 공개키는 공개되는 키로서 누구에게나 알려져도 상관없는 키이므로, 클라이언트(100)는 단계 S20에서 검증 서버(200)의 공개키를 획득할 수 있으며, 단계 S300에서 검증 서버(200)의 공개키로 해시 값을 암호화함으로써 검증 서버(200)에서 복호화가 가능하도록 할 수 있다.
한편, 단계 S300에서는, 검증 대상 앱의 정보를 더 전송할 수 있다. 이때, 검증 대상 앱의 정보는, 해시 값 비교를 위하여 검증 대상 앱을 특정하기 위한 것으로서, 암호화하여 전송하는 해시 값이 어떤 앱에 대한 해시 값인지 특정할 수 있다면, 구체적인 정보의 종류는 한정되지 않을 수 있다. 또한, 검증 대상 앱의 정보는, 단계 S100에서 설정된 시작 위치 및 종료 위치에 대한 정보를 포함할 수도 있다. 즉, 검증 대상 앱의 검증을 위해서는 검증 서버(200)도 해시 값을 생성하여야 하므로, 동일한 해시 값 생성을 위해 클라이언트(100)로부터 시작 위치 및 종료 위치에 대한 정보를 전송받을 수 있다. 다만, 실시예에 따라서는, 클라이언트(100)와 검증 서버(200) 사이에 미리 정해진 규칙에 따라 시작 위치 및 종료 위치가 결정될 수도 있으므로, 정보 교환 없이도 검증 서버(200)가 시작 위치 및 종료 위치를 알 수 있는 경우에는 이러한 정보의 전송이 생략될 수 있다.
단계 S400에서는, 검증 서버(200)가 전송받은 암호화된 해시 값을 공개키 암호화 방식으로 복호화하여 검증 대상 앱을 검증할 수 있다. 즉, 단계 S400에서는, 검증 서버(200)가 데이터베이스(220)에 저장한 원본 실행파일로부터 해시 값을 생성하여, 생성한 해시 값과 단계 S300에서 전송받아 암호화부(230)에서 복호화한 해시 값을 비교하여 검증 대상 앱을 검증할 수 있으며, 검증 대상 앱의 검증은 검증 서버(200)의 앱 검증부(240)에서 처리될 수 있다. 이때, 단계 S400에서는, 검증 서버(200)가 단계 S300에서 전송받은 검증 대상 앱의 정보를 이용하여 해시 값을 생성하며, 복호화한 해시 값과 생성한 해시 값을 비교하여 검증 대상 앱을 검증할 수 있다.
즉, 시작 위치 및 종료 위치가 동일하고 해시 함수가 동일하므로, 두 해시 값이 서로 동일하면 검증 대상 앱의 위변조나 해킹 시도 등이 없는 것으로 볼 수 있으며, 검증에 성공한 것으로 판단할 수 있다. 반면, 해시 값이 서로 상이하면 실행파일이 어딘가 원본과 상이함을 의미할 수 있으며, 검증 대상 앱의 위변조 또는 해킹 시도 등이 있는 것으로 볼 수 있다. 이와 같은 경우에는, 검증에 실패한 것으로 판단하고 검증 대상 앱의 실행을 제한하는 등의 조치를 취할 수 있다.
한편, 단계 S400에서는, 검증 서버(200)가 암호화된 해시 값을 개인키로 복호화할 수 있다. 공개키 암호화 방식에서 공개키로 암호화된 정보는 개인키로만 복호화할 수 있으므로, 클라이언트(100)가 공개키로 암호화한 해시 값을 검증 서버(200)가 개인키로 복호화할 수 있다. 따라서 검증 서버(200)의 공개키로 암호화된 해시 값은, 보안 되지 않은 네트워크를 통해 전송되거나 전송 도중 유출되더라도 검증 서버(200)의 개인키를 알 수 없는 타인이 복호화할 수 없기 때문에, 보안이 유지될 수 있다.
도 5는 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법에서, 해시 값 검증 성공 또는 실패 시 처리 과정에 대하여 도시한 도면이다. 도 5에 도시된 바와 같이, 본 발명의 일실시예에 따른 동적 해싱을 이용한 앱 검증 방법은, 검증 서버(200)가 검증에 성공하면 클라이언트(100)에 검증 성공 신호를 전송하는 단계(S500) 및 검증 서버(200)가 검증에 실패하면 관리자에게 통보하는 단계(S600)를 더 포함하여 구현될 수 있다.
단계 S500에서는, 검증 서버(200)가 단계 S400에서 검증 대상 앱의 검증에 성공하면, 클라이언트(100)에 검증 성공 신호를 전송할 수 있다. 즉, 검증 서버(200)의 앱 검증부(240)에서 검증 대상 앱의 검증에 성공하면, 송수신부(210)를 통해 검증 성공 신호를 클라이언트(100)에 전송할 수 있다. 클라이언트(100)에서는 검증 성공 신호를 수신하여, 검증 대상 앱의 실행 등 각종 서비스를 처리할 수 있다. 특히, 보안이 중요한 금융 앱 등은 단계 S400의 검증이 성공한 경우에 서비스 이용이 가능하도록 함으로써, 앱을 통한 개인 정보의 유출이나 해킹 등의 피해를 막을 수 있다.
단계 S600에서는, 검증 서버(200)가 단계 S400에서 검증 대상 앱의 검증에 실패하면, 관리자에게 통보할 수 있다. 즉, 검증 서버(200)의 앱 검증부(240)에서 검증 대상 앱의 검증에 실패하면, 검증 대상 앱의 실행파일이 위조 또는 변조되었거나 해킹 시도 등이 이루어진 것으로 판단할 수 있다. 검증 서버(200)는 관리자 콘솔(300)에 이를 통보함으로써, 관리자가 검증에 실패한 검증 대상 앱을 모니터링 하고, 필요한 경우 이에 대응을 하도록 할 수 있다. 또한, 클라이언트(100)에 검증 실패 신호를 전송함으로써, 클라이언트(100)에서 검증 대상 앱의 실행이 제한되도록 하여 보안을 강화할 수도 있다.
한편, 본 발명은 다양한 통신 단말기로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터에서 판독 가능한 매체를 포함할 수 있다. 예를 들어, 컴퓨터에서 판독 가능한 매체는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD_ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
이와 같은 컴퓨터에서 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이때, 컴퓨터에서 판독 가능한 매체에 기록되는 프로그램 명령은 본 발명을 구현하기 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예를 들어, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
100: 클라이언트 200: 검증 서버
210: 송수신부 220: 데이터베이스
230: 암호화부 240: 앱 검증부
300: 관리자 콘솔
S10: 검증 서버와 클라이언트가 공개키를 교환하는 단계
S100: 클라이언트가 검증 대상 앱의 실행파일에서 시작 위치 및 종료 위치를 설정하는 단계
S200: 클라이언트가 시작 위치 및 종료 위치를 이용하여 실행파일로 해시 값을 생성하는 단계
S300: 클라이언트가 생성한 해시 값을 암호화하여 검증 서버에 전송하는 단계
S400: 검증 서버가 암호화된 해시 값을 복호화하여 검증 대상 앱을 검증하는 단계
S500: 검증 서버가 검증에 성공하면 클라이언트에 검증 성공 신호를 전송하는 단계
S600: 검증 서버가 검증에 실패하면 관리자에게 통보하는 단계

Claims (9)

  1. 네트워크를 통해 클라이언트에 설치된 애플리케이션 프로그램(이하, “앱”이라 함)을 검증하는 방법으로서,
    (1) 상기 클라이언트가, 검증 대상 앱의 실행파일에서 시작 위치 및 종료 위치를 설정하는 단계;
    (2) 상기 클라이언트가, 상기 설정한 시작 위치 및 종료 위치를 이용하여 상기 실행파일로 해시 값을 생성하는 단계;
    (3) 상기 클라이언트가, 상기 생성한 해시 값을 공개키 암호화 방식에 의해 암호화하여 검증 서버에 전송하는 단계; 및
    (4) 상기 검증 서버가, 상기 전송받은 암호화된 해시 값을 공개키 암호화 방식으로 복호화하여 상기 검증 대상 앱을 검증하는 단계를 포함하되,
    상기 단계 (1)에서는, 해시 값 생성 시마다 상기 시작 위치 및 종료 위치를 재설정하며,
    상기 단계 (2)에서는, 상기 재설정된 시작 위치 및 종료 위치를 이용하여 해시 값을 생성하는 동적 해싱을 하는 것을 특징으로 하는, 동적 해싱을 이용한 앱 검증 방법.
  2. 제1항에 있어서, 상기 단계 (1) 이전에는,
    (0) 상기 검증 서버와 상기 클라이언트가 공개키를 교환하는 단계를 더 포함하는 것을 특징으로 하는, 동적 해싱을 이용한 앱 검증 방법.
  3. 제2항에 있어서, 상기 단계 (0)에서는,
    상기 클라이언트가 상기 검증 서버의 공개키를 획득하는 것을 특징으로 하는, 동적 해싱을 이용한 앱 검증 방법.
  4. 제1항에 있어서, 상기 단계 (3)에서는,
    상기 클라이언트가 상기 검증 서버에 상기 검증 대상 앱의 정보를 더 전송하는 것을 특징으로 하는, 동적 해싱을 이용한 앱 검증 방법.
  5. 제4항에 있어서, 상기 검증 대상 앱의 정보는,
    상기 단계 (1)에서 설정된 시작 위치 및 종료 위치에 대한 정보를 포함하는 것을 특징으로 하는, 동적 해싱을 이용한 앱 검증 방법.
  6. 제5항에 있어서, 상기 단계 (4)에서는,
    상기 검증 서버가, 상기 전송받은 검증 대상 앱의 정보를 이용하여 해시 값을 생성하며, 상기 복호화한 해시 값과 상기 생성한 해시 값을 비교하여 상기 검증 대상 앱을 검증하는 것을 특징으로 하는, 동적 해싱을 이용한 앱 검증 방법.
  7. 제1항에 있어서,
    상기 단계 (3)에서는, 상기 클라이언트가 상기 검증 서버의 공개키로 상기 해시 값을 암호화하여 전송하며,
    상기 단계 (4)에서는, 상기 검증 서버가 상기 암호화된 해시 값을 개인키로 복호화하는 것을 특징으로 하는, 동적 해싱을 이용한 앱 검증 방법.
  8. 제1항에 있어서, 상기 단계 (4) 이후에는,
    상기 검증 서버가, 상기 단계 (4)에서 상기 검증 대상 앱의 검증에 성공하면, 상기 클라이언트에 검증 성공 신호를 전송하는 단계를 더 포함하는 것을 특징으로 하는, 동적 해싱을 이용한 앱 검증 방법.
  9. 제1항에 있어서, 상기 단계 (4) 이후에는,
    상기 검증 서버가, 상기 단계 (4)에서 상기 검증 대상 앱의 검증에 실패하면, 관리자 콘솔에 통보하는 단계를 더 포함하는 것을 특징으로 하는, 동적 해싱을 이용한 앱 검증 방법.
KR1020130006737A 2013-01-21 2013-01-21 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법 KR101286767B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130006737A KR101286767B1 (ko) 2013-01-21 2013-01-21 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130006737A KR101286767B1 (ko) 2013-01-21 2013-01-21 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법

Publications (1)

Publication Number Publication Date
KR101286767B1 true KR101286767B1 (ko) 2013-07-16

Family

ID=48997498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130006737A KR101286767B1 (ko) 2013-01-21 2013-01-21 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법

Country Status (1)

Country Link
KR (1) KR101286767B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200055251A (ko) * 2018-11-13 2020-05-21 네이버비즈니스플랫폼 주식회사 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법, 동적 토큰을 활용한 어플리케이션 관련 패킷 유효성 인증 방법 및 그 시스템
CN114296744A (zh) * 2021-11-15 2022-04-08 福建星云电子股份有限公司 一种基于多用户的充电桩离线升级方法及系统
WO2023153730A1 (ko) * 2022-02-10 2023-08-17 ㈜라바웨이브 유출 정보 보호 시스템 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177683A (ja) 2007-01-16 2008-07-31 Kyocera Mita Corp データ提供システム、データ受領システム、データ提供方法、データ提供プログラム及びデータ受領プログラム
KR20120090711A (ko) * 2011-02-08 2012-08-17 (주)바이너리소프트 모바일 단말용 애플리케이션 위변조 검증 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177683A (ja) 2007-01-16 2008-07-31 Kyocera Mita Corp データ提供システム、データ受領システム、データ提供方法、データ提供プログラム及びデータ受領プログラム
KR20120090711A (ko) * 2011-02-08 2012-08-17 (주)바이너리소프트 모바일 단말용 애플리케이션 위변조 검증 시스템 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200055251A (ko) * 2018-11-13 2020-05-21 네이버비즈니스플랫폼 주식회사 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법, 동적 토큰을 활용한 어플리케이션 관련 패킷 유효성 인증 방법 및 그 시스템
KR102200553B1 (ko) 2018-11-13 2021-01-11 네이버클라우드 주식회사 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법, 동적 토큰을 활용한 어플리케이션 관련 패킷 유효성 인증 방법 및 그 시스템
CN114296744A (zh) * 2021-11-15 2022-04-08 福建星云电子股份有限公司 一种基于多用户的充电桩离线升级方法及系统
WO2023153730A1 (ko) * 2022-02-10 2023-08-17 ㈜라바웨이브 유출 정보 보호 시스템 및 방법

Similar Documents

Publication Publication Date Title
US11258792B2 (en) Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium
CN110798315B (zh) 基于区块链的数据处理方法、装置及终端
US9094823B2 (en) Data processing for securing local resources in a mobile device
KR101754308B1 (ko) 모바일 민감 데이터 관리 방법 및 이를 수행하는 위탁 서버
US9003519B2 (en) Verifying transactions using out-of-band devices
EP2875460B1 (en) Anti-cloning system and method
CN106452764B (zh) 一种标识私钥自动更新的方法及密码系统
CN111708991A (zh) 服务的授权方法、装置、计算机设备和存储介质
US9288054B2 (en) Method and apparatus for authenticating and managing application using trusted platform module
CN111130799B (zh) 一种基于tee进行https协议传输的方法及系统
US20180204004A1 (en) Authentication method and apparatus for reinforced software
CN110069241B (zh) 伪随机数的获取方法、装置、客户端设备和服务器
CN114244522B (zh) 信息保护方法、装置、电子设备及计算机可读存储介质
CN110096849A (zh) 一种License授权认证方法、装置、设备及可读存储介质
KR101531662B1 (ko) 사용자 단말과 서버간 상호 인증 방법 및 시스템
CN104199657A (zh) 开放平台的调用方法及装置
CN104123488A (zh) 应用程序的验证方法和装置
CN111585995B (zh) 安全风控信息传输、处理方法、装置、计算机设备及存储介质
US10635826B2 (en) System and method for securing data in a storage medium
KR101286767B1 (ko) 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법
CN108933766B (zh) 一种提高设备id安全性的方法和客户端
CN105100030B (zh) 访问控制方法、系统和装置
TWI546698B (zh) 基於伺服器的登入系統、登入驗證伺服器及其驗證方法
EP4423969A1 (en) Method to establish a secure channel
CN109933994B (zh) 数据分级存储方法和装置以及计算设备

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160425

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170628

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180710

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190709

Year of fee payment: 7