KR102618922B1 - 무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법 - Google Patents

무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법 Download PDF

Info

Publication number
KR102618922B1
KR102618922B1 KR1020230054562A KR20230054562A KR102618922B1 KR 102618922 B1 KR102618922 B1 KR 102618922B1 KR 1020230054562 A KR1020230054562 A KR 1020230054562A KR 20230054562 A KR20230054562 A KR 20230054562A KR 102618922 B1 KR102618922 B1 KR 102618922B1
Authority
KR
South Korea
Prior art keywords
file
encryption
reverse engineering
submodule
encrypted
Prior art date
Application number
KR1020230054562A
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 KR1020230054562A priority Critical patent/KR102618922B1/ko
Application granted granted Critical
Publication of KR102618922B1 publication Critical patent/KR102618922B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • 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/602Providing cryptographic facilities or services
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

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

Abstract

본 발명은 무기체계 임베디드 시스템의 SW 역공학 방지장치 및 그 방법에 관한 것으로서, 특히 국방무기체계용 SW와 같은 중요한 응용 SW 자산이 탑재된 임베디드 장비가 도난/탈취당하여 OS 파일 시스템 및 응용SW가 외부에 노출되는 경우, 해당 응용 SW 실행파일에 대한 역공학을 방지하여 SW 복제 및 우회 또는 취약점 발굴을 방지하기 위해 파일 시스템 내 응용 SW를 암호화하여 저장하고, 실행 시 별도의 복호화 로딩 및 SW 실행 기능을 수행하도록 하는 무기체계 임베디드 시스템의 SW 역공학 방지장치 및 그 방법에 관한 것이다.

Description

무기체계 임베디드 시스템의 SW 역공학 방지장치 및 그 방법{Apparatus and method for Preventing SW reverse engineering of embedded system}
본 발명은 무기체계 임베디드 시스템의 SW(Software) 역공학 방지장치 및 그 방법에 관한 것으로서, 특히 국방무기체계용 SW와 같은 중요한 응용 SW 자산이 탑재된 임베디드 장비가 도난/탈취당하여 OS(Operating System) 파일 시스템 및 응용SW가 외부에 노출되는 경우, 해당 응용 SW 실행파일에 대한 역공학을 방지하여 SW 복제 및 우회 또는 취약점 발굴을 방지하기 위해 파일 시스템 내 응용 SW를 암호화하여 저장하고, 실행 시 별도의 복호화 로딩 및 SW 실행 기능을 수행하도록 하는 무기체계 임베디드 시스템의 SW 역공학 방지장치 및 그 방법에 관한 것이다.
국방 무기체계용 SW와 같은 중요한 응용 SW 자산이 탑재된 임베디드 장비가 외부인에 의해 도난/탈취당해 악의적인 목적을 가진 외부인이 해당 시스템의 파일 시스템을 확인하여 중요 SW 자산을 추출한 경우, 역공학 분석을 통해 SW 동작 원리 복제 및 우회 또는 취약점 발굴을 하는 경우가 있다.
이러한 역공학 기술을 활용한 분석을 방지하기 위한 기술은 크게 4가지로 분류될 수 있다.
첫 번째 기술은, 물리적 포트 제거이다. 주로 개발자 디버깅용으로 활용되는 UART, JTAG 포트를 포함한 다양한 물리적인 포트를 제거하여 내부 파일시스템으로 접근이 불가능하게 하거나, 임베디드 장비의 외부 하우징을 제거할 때 자동으로 소거되는 기술이 이에 속한다.
두 번째 기술은, SW 바이너리 가상화 및 난독화기술로서, SW 바이너리 난독화 기술은 응용 SW 개발하여 배포하기 직전 컴파일 단계에서 SW 코드에 의미 없는 코드를 집어넣어 복잡하게 컴파일을 하거나 가상 CPU를 포함하고, 가상 CPU 인스트럭션을 기반으로 컴파일하여 가상 CPU 인스트럭션에 대한 데이터 시트가 없이 분석하기 어렵게 만드는 기술이다.
세 번째 기술은, SW 패킹기술로서, SW 패킹 기술은 실행코드를 인코딩(압축)하고 최초 실행 시 실행코드를 디코딩하는 로직을 수행하는 기술이다.
네 번째 기술은, 암호화 기술로서, 암호화 기술은 다양한 암호화 알고리즘을 적용할 수 있으며 응용 SW 파일 자체를 암호화하는 것이다.
상기 첫 번째 기술로 분류된 물리적 포트 제거 기술이 포함된 역공학 방지 시스템은, 임베디드 장비가 탈취된 경우, 해당 장비의 파일 시스템에 접근할 수 있는 공격 표면이 줄어들기 때문에 역공학 대상 응용 SW의 추출 자체를 어렵게 한다.
상기 두 번째 기술로 분류된 SW 바이너리 가상화 및 난독화 기술이 포함된 역공학 방지 시스템은, 역공학 대상 응용 SW가 외부인에 노출되더라도 의미 없는 코드 및 분기들 때문에 분석할 코드의 양이 많아지거나 가상의 CPU 인스트럭션 셋에 대한 스펙이 없어 역공학 분석 도구가 분석을 할 수 없는 형태로 분석 난이도를 상승시킨다.
또한, 상기 세 번째 기술로 분류된 SW 패킹 기술이 포함된 역공학 방지 시스템은 SW 실행 시, 압축 해제하는 코드를 역공학해야 원본 SW 코드를 역공학할 수 있기 때문에 SW 바이너리 가상화 및 난독화 기술과 같이 분석 난이도를 상승시킨다.
그리고, 상기 네 번째로 분류된 암호화 기술이 포함된 역공학 방지 시스템은, SW 임베디드 장비가 탈취되어 파일시스템을 추출하고, 응용 SW가 노출된다고 하더라도 암호화 알고리즘 및 암호화 키를 모르면 실행 가능한 응용 SW의 원본 추출 자체를 어렵게 한다.
상기 종래의 4가지 기술 중, 첫 번째 기술이 적용된 역공학 방지 기술은, 임베디드 장비가 도난/탈취당했을 경우 응용 SW의 추출 자체를 어렵게 하기 위한 기술로써, 이러한 기술이 있음에도 파일 시스템에 접근하거나 개발 서버에 침투하여 역공학 대상 응용SW가 추출된 경우 SW 역공학을 허용할 수 있다는 문제점이 있다.
그리고, 두 번째 기술이 적용된 역공학 방지 기술은 코드 난독화의 패턴 또는 코드 가상화 기술의 패턴을 분석할 수 있는 숙련된 역공학 기술에 의해 응용 SW 역공학을 허용할 수 있으며 실행 시 시스템의 리소스를 많이 소모하고 응용 SW 속도가 느려질 수 있다는 성능상의 문제점이 있다.
또한, 세 번째 기술이 적용된 역공학 방지 기술은, 두 번째 기술이 가진 문제점과 동일하게 실행파일 압축(인코딩) 기법이 한정적이며, 한번 분석된 압축 기법이 데이터베이스화되어 외부인이 가지고 있는 경우 쉽게 역공학을 허용할 수 있으며 실행가능한 형태의 SW로 디코딩하는 로직으로 인한 리소스 소모 또는 속도 저하와 같은 성능상의 문제점이 있다.
또한, 네 번째 기술이 적용된 역공학 방지 기술은, SW 파일 자체를 암호화하기 때문에 SW 실행 전 SW가 복호화가 완료되어야 하며, 복호화되는 시점과 암호화되는 시점을 설정하기 어려운 점 때문에 주로 응용 SW보다는 파일에 대해 적용하는 경우가 많다.
따라서, 본 발명은 상기한 문제점을 해결하기 위한 것으로 본 발명의 목적은, 국방무기체계용 SW와 같은 중요한 응용 SW 자산이 탑재된 임베디드 장비가 도난/탈취당하여 OS 파일 시스템 및 응용SW가 외부에 노출되는 경우, 해당 응용 SW 실행파일에 대한 역공학을 방지하여 SW 복제 및 우회 또는 취약점 발굴을 방지하기 위해 파일 시스템 내 응용 SW를 암호화하여 저장하고 실행 시, 별도의 복호화 로딩 및 SW 실행 기능을 수행하도록 하는 무기체계 임베디드 시스템의 SW 역공학 방지장치 및 그 방법을 제공함에 있다.
즉, 본 발명에 따른 무기체계 임베디드 시스템의 SW 보호를 위한 역공학 방지방법은, 종래 기술의 문제점을 해결할 수 있을 뿐만 아니라 국내 국방기술이 적용된 무기체계 임베디드 장비의 수출 및 탈취되었을 때 국방기술의 유출에 대비하여 예방 및 대응할 수 있는 것이다.
본 발명에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 무기체계 임베디드 시스템의 SW 역공학 방지장치는, 운용자의 선택에 따라 암호화 방식과 암호화 정보를 파일 시스템에 설정하는 암호화 방법 설정 서브모듈; 운용자가 요청한 암호화 목록에 따라 상기 파일 시스템에 저장된 역공학 방지를 위한 SW 파일을 로드하고, 상기 파일 시스템에 저장된 암호화 정보와 운용자가 입력한 암호화 정보의 비교 결과에 따라 로드된 SW 파일의 암호화를 수행한 후, 암호화된 SW 파일을 파일 시스템에 저장하는 암호화 수행 서브모듈; 상기 파일 시스템에 저장된 암호화된 SW 파일이 역공학 방지를 위한 암호화된 SW 파일인 경우, 해당 파일 복호화를 위한 SW 파일로 제공하는 암호화 파일로드 서브모듈; 및 상기 암호화 파일 로드 서브모듈로부터 제공되는 역공학 방지를 위한 암호화된 SW 파일을 운용자가 제공하는 암호화 정보에 따라 복호화를 수행한 후, 복호화된 파일 SW를 실행하는 복호화 및 실행 서브모듈을 포함할 수 있다.
상기 암호화 방식은, 상용 암호 모듈 암호키 방식, 클라우드 암호키 방식, 비밀번호 기반 암호키 방식 중 적어도 하나이고, 상기 암호화 정보는, 상기 암호화 방법에 대응하는 암호키/해쉬값일 수 있으며, 상기 암호화 정보는, 파일 시스템에 보안칩에 존재하는 경우, 보안칩에 저장할 수 있다.
상기 암호화 수행 서브모듈은, 상기 파일 시스템에 저장된 암호화 정보와 운용자가 입력한 암호화 정보가 일치하는 경우, 운용자로부터 제공되는 암호화 목록에 해당하는 역공학 방지를 위한 SW 파일을 파일 시스템으로부터 불러온 후, 상기 암호화 정보에 따라 SW 파일의 암호화를 수행한 후, 암호화된 SW 파일을 파일 시스템에 저장할 수 있다.
상기 파일 시스템에 저장되는 암호화된 SW 파일은, 헤더에 암호화 방식 및 암호화 정보를 부가하여, 원본 파일과 동일한 경로상의 파일 시스템에 저장할 수 있다.
상기 파일 시스템은, 상기 역공학을 방지하기 위한 암호화된 SW 파일의 저장 시, 해당 파일에 대응하는 원본 파일을 삭제할 수 있다.
상기 암호화 파일 로드 서브모듈은, 상기 파일 시스템에 저장된 SW 파일을 불러온 후, 해당 SW 파일의 헤더를 확인한 후, 해당 SW 파일이 일반 응용 파일인지, 역공학 방지 대상 암호화 SW 파일인지를 판단할 수 있다.
상기 암호화 파일 로드 서브모듈은, 상기 판단 결과, 파일 시스템으로부터 불러온 SW 파일이 역공학 방지를 위한 암호화된 SW 파일인 경우, 상기 헤더에 포함된 암호화 방식에 따른 운용자에게 암호키를 입력받고, 암호화 방식 및 암호키와, 역공학 방지 대상 암호화 SW 파일을 상기 복호화 수행 및 실행 서브 모듈로 제공할 수 있다.
상기 복호화 수행 및 실행 서브모듈은, 상기 암호화 파일 로드 서브 모듈로부터 암호화 방식, 암호키, 역공학 방지 대상 암호화 SW 파일을 입력받고, 암호키를 해싱하여 암호화 방법 설정 서브모듈에 의해 파일 시스템에 저장된 암호키/해쉬값과 일치하는지 비교하여, 암호키/해쉬값이 일치할 경우, 해당 암호키와 암호화 방식을 이용하여 역공학 방지 대상 암호화 SW 파일을 복호화한 후, 메모리에 로드하고 실행을 수행할 수 있다.
상기 비교 결과, 상기 암호화 파일 로드 서브 모듈로부터 입력되어 해싱된 암호키/해쉬값과 상기 암호화 방법 설정 서브모듈에 의해 파일 시스템에 저장된 암호키/해쉬값이 일치하지 않을 경우, 운용자에게 에러를 출력할 수 있다.
한편, 본 발명의 다른 실시예에 따른 무기체계 임베디드 시스템의 SW 역공학 방지방법은, 암호화 방법 설정 서브모듈에서, 운용자의 선택에 따라 암호화 방법을 설정하고, 암호화 정보를 파일 시스템에 저장하는 단계; 암호화 수행 서브모듈에서, 운용자가 요청한 암호화목록에 따라 상기 파일 시스템에 저장된 역공학 방지를 위한 SW 파일을 로드하고, 상기 파일 시스템에 저장된 암호화 정보와 운용자가 입력한 암호화 정보의 비교 결과에 따라 로드된 SW 파일의 암호화를 수행한 후, 암호화된 SW 파일을 파일 시스템에 저장하는 단계; 암호화 파일 로드 서브모듈에서, 상기 파일 시스템에 저장된 암호화된 SW 파일이 역공학 방지를 위한 암호화된 SW 파일인 경우, 해당 파일 복호화를 위한 SW 파일로 제공하는 단계; 및 복호화 수행 및 실행 서브모듈에서, 상기 암호화 파일 로드 서브모듈로부터 제공되는 역공학 방지를 위한 암호화된 SW 파일을 운용자가 제공하는 암호화 정보에 따라 복호화를 수행한 후, 복호화된 파일 소프트웨어를 실행하는 단계를 포함할 수 있다.
상기 암호화 방법은, 상용 암호 모듈 암호키 방식, 클라우드 암호키 방식, 비밀번호 기반 암호키 방식 중 적어도 하나이고, 상기 암호화 정보는, 상기 암호화 방법에 대응하는 암호키/해쉬값일 수 있다.
상기 암호화 정보는, 파일 시스템에 보안칩에 존재하는 경우, 보안칩에 저장할 수 있다.
상기 암호화된 SW 파일을 파일 시스템에 저장하는 단계는, 상기 파일 시스템에 저장된 암호화 정보와, 운용자가 입력한 암호화 정보가 일치하는 경우, 운용자로부터 제공되는 암호화 목록에 해당하는 역공학 방지를 위한 SW 파일을 파일 시스템으로부터 불러온 후, 상기 암호화 정보에 따라 SW 파일의 암호화를 수행한 후, 암호화된 SW 파일을 파일 시스템에 저장할 수 있다.
상기 파일 시스템에 저장되는 암호화된 SW 파일은, 헤더에 암호화 방식 및 암호화 정보를 부가하여, 원본 파일과 동일한 경로상의 파일 시스템에 저장할 수 있다.
상기 파일 시스템에, 역공학을 방지하기 위한 암호화된 SW 파일의 저장 시, 해당 파일에 대응하는 원본 파일을 삭제하는 단계를 더 포함할 수 있다.
상기 해당 파일 복호화를 위한 SW 파일로 제공하는 단계는, 상기 파일 시스템에 저장된 SW 파일을 불러온 후, 해당 SW 파일의 헤더를 확인한 후, 해당 SW 파일이 일반 응용 파일인지, 역공학 방지 대상 암호화 SW 파일인지를 판단하는 단계를 포함할 수 있다.
상기 판단 결과, 파일 시스템으로부터 불러온 SW 파일이 역공학 방지를 위한 암호화된 SW 파일인 경우, 상기 헤더에 포함된 암호화 방식에 따른 운용자에게 암호키를 입력받고, 암호화 방식 및 암호키와, 역공학 방지 대상 암호화 SW 파일을 상기 복호화 수행 및 실행 서브 모듈로 제공할 수 있다.
상기 복호화된 파일 소프트웨어를 실행하는 단계는, 상기 암호화 파일 로드 서브 모듈로부터 암호화 방식, 암호키, 역공학 방지 대상 암호화 SW 파일을 입력받고, 암호키를 해싱하여 암호화 방법 설정 서브모듈에 의해 파일 시스템에 저장된 암호키/해쉬값과 일치하는지 비교하여, 암호키/해쉬값이 일치할 경우, 해당 암호키와 암호화 방식을 이용하여 역공학 방지 대상 암호화 SW 파일을 복호화한 후, 메모리에 로드하고 실행을 수행할 수 있다.
상기 비교 결과, 상기 암호화 파일 로드 서브 모듈로부터 입력되어 해싱된 암호키/해쉬값과 상기 암호화 방법 설정 서브모듈에 의해 파일 시스템에 저장된 암호키/해쉬값이 일치하지 않을 경우, 운용자에게 에러를 출력할 수 있다.
본 발명에 따르면, 중요한 SW 자산이 탑재된 임베디드 시스템을 판매할 경우 SW를 역공학한 후, 동일한 SW를 복제하여 동일한 기능의 저렴한 임베디드 시스템을 재 판매하거나 인증 우회를 통해 무료로 이용하거나, 악의적인 목적으로 취약점을 발굴하여 해당 임베디드 시스템을 사용하는 사용자를 대상으로 해킹 시도를 하는 등의 역공학 기술의 악용을 예방 및 방지할 수 있다.
특히, 국방 무기체계와 같은 임베디드 시스템의 경우 해외에 수출하거나 탈취당하는 경우, 역공학 기술을 이용하여 SW 동작원리 파악, 취약점 발굴, 복제 등과 같이 악용되었을 때 국익에 큰 영향을 미치므로 이러한 역공학 방지 기술이 필수적이다.
기존의 역공학 방지 기술들의 문제점을 보완하고 장점을 활용한 본 발명에서 제안하는 임베디드 시스템 SW 역공학 방지를 위한 SW 암/복호화 로딩 및 실행 모듈을 사용하면 이러한 위험성을 크게 낮출 수 있으며 하드웨어적인 역공학 방지 기술에 비해 다양한 시스템에 공용 모듈로 적용할 경우 비용을 크게 절감할 수 있는 효과가 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시 예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 본 발명에 따른 무기체계 임베디드 시스템의 SW 역공학 방지장치에 대한 블록 구성을 나타낸 도면.
도 2는 본 발명에 따른 무기체계 임베디드 시스템의 SW 보호를 위한 역공학 방지방법에 대한 동작 플로우챠트를 나타낸 도면.
본문에 개시되어 있는 본 발명의 실시 예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시 예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시 예들에 한정되는 것으로 해석되어서는 안 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, “포함하다” 또는 “가지다” 등의 용어는 개시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시 예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 플로우챠트(순서도)에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 본 발명의 바람직한 실시예에 따른 무기체계 임베디드 시스템의 SW 역공학 방지장치 및 그 방법에 대하여 첨부한 도면을 참조하여 상세하게 설명하기로 한다.
도 1은 본 발명에 따른 무기체계 임베디드 시스템의 SW 역공학 방지장치에 대한 블록 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명에 따른 무기체계 임베디드 시스템의 SW 보호를 위한 역공학 방지장치는, 암호화 방법 설정 서브모듈(100), 암호화 수행 서브모듈(200), 암호화 파일 로드 서버모듈(300), 복호화 수행 및 실행 서브모듈(400), 파일 시스템(500), ELF 로더(600) 및 실행부(700)를 포함할 수 있다.
먼저, 파일 시스템(500)은 다양한 일반 SW(암호화되지 않은 SW) 및 일반 SW에 대한 암호화를 위한 암호키 및 해쉬값을 운용자의 선택에 따라 설정 저장할 수 있다. 여기서, 별도의 보안칩이 존재하는 파일 시스템(500)의 경우에는 상기 보안칩에 상기 암호키 및 해쉬값을 저장할 수 있다.
상기 암호화 방법 설정 서브모듈(100)은 임베디드 시스템 개발사에 따라 암호화 방식이 모두 다를 수 있으므로 다양한 암호화 방식을 지원하기 위해 암호화 방법을 설정할 수 있도록 하는 인터페이스의 역할을 수행한다. 예를 들어 국방무기체계를 개발하는 국방 SW는 CC인증을 받은 암호화 모듈을 사용하게 되어 있는 경우도 있고, 일반 민간 개발사에서는 클라우드 암호키 관리 서버를 통한 암호화를 하는 경우도 있으며, 일반적으로는 비밀번호를 사용하는 경우도 있는데 이러한 다양한 경우를 만족하기 위한 서브 모듈이다.
즉, 암호화 방법 설정 서브 모듈(100)은 상용 암호 모듈 암호키 방식, 클라우드 암호키 방식, 비밀번호 기반 암호키 방식을 운용자로부터 입력받아 암호화방식을 설정한다. 이후 입력받은 암호키 방식에 대응하는 암호키를 운용자로부터 입력받아 암호키와 암호키 해시 값을 파일 시스템(500)에 저장한다. 여기서, 파일 시스템(500)에 보안칩에 존재하는 경우 보안칩에 저장할 수 있다.
한편, 운용자는 상기 암호화 방법 설정 서브모듈(100)에 암호키 방식, 및 암호키 방식에 대응하는 암호키를 제공함과 동시에, 암호화 수행 서브모듈(200) 및 암호화 파일 로드 서브모듈(300)에도 동일한 암호키를 제공할 수 있다.
상기 암호화 수행 서브 모듈(200)은 암호화 방법 설정 서브 모듈(100)을 통해 입력받은 암호키 방식과 암호키를 이용해 실제 보호하고자 하는 역공학 방지 대상 응용 SW를 별도의 헤더 정보를 포함하여 암호화를 수행하고, 암호화된 SW를 파일 시스템(500)에 저장할 수 있다. 이때, 별도의 헤더 정보는 암호화 파일 로드 서브 모듈(300)에서 활용하여 복호화 수행 및 실행 서브 모듈(400)로 전달할지 일반 실행 파일 실행 단계로 전달할지 확인하기 위한 내용이 포함될 수 있다.
즉, 암호화 수행 서브 모듈(200)은 암호화 방법 설정 서브 모듈(100)에서 파일 시스템(500)에 저장한 암호화 방식 및 암호키를 불러온 후, 운용자로부터 입력받은 암호키와 해시 값을 비교하고 역공학을 방지하고자 하는 응용 SW를 파일 시스템(500)으로부터 로드한다. 여기서, 상기 파일 시스템(500)으로부터 로드된 역공학을 방지하고자 하는 응용 SW는 운용자로부터 수신한 암호화 목록에 대응하는 응용 SW이다.
그리고, 암호화 수행 서브모듈(200)은 입력받은 역공학 방지 대상 응용 SW의 원본 파일을 파일 시스템(500)으로부터 불러온 암호화 방식 및 암호키 해쉬값을 활용하여 운용자로부터 입력받은 암호키의 해쉬값과 비교한다.
상기 비교 결과, 파일 시스템(500)으로부터 불러온 암호화 방식 및 암호키 해쉬값과 운용자로부터 입력받은 암호키의 해쉬값이 일치하면 파일 시스템(500)으로부터 불러온 응용 SW를 암호화하고, 파일의 시그니처와 암호화 방식에 대한 내용을 헤더로 작성하여 원본 파일과 동일한 경로에 역공학 방지 대상 암호화 응용 SW를 생성하여 파일 시스템(500)에 저장한다. 그리고, 상기 역공학 방지 대상 암호화 응용 SW가 생성되면 파일 시스템(500)에 저장되어 있던 원본 응용 SW는 삭제한다.
상기 암호화 파일 로드 서브모듈(300)은 암호화 수행 서브 모듈(200)에서 생성된 역공학 방지 대상 응용 SW가 암호화되어 저장된 파일이 실행될 때 헤더 정보를 확인하여 해당 SW가 일반 실행 파일인지 역공학 대상 암호화 응용SW 파일인지 확인한다. 그리고, 역공학 대상 암호화 응용SW 파일인 경우 복호화를 수행한 후 실행할 수 있도록 복호화 수행 및 실행 서브 모듈(400)로 제공한다.
즉, 암호화 파일 로드 서브모듈(300)은 ELF 파일 로드 시 동작하며 실행 파일의 헤더 정보를 확인하여 일반 실행 파일인지 암호화 수행 서브모듈(200)에서 암호화된 역공학 방지 대상 암호화 응용 SW인지 판단한다.
판단 결과, 일반 실행 파일인 경우, 해당 일반 실행 파일을 ELF 로더(600)로 제공하고, 역공학 방지 대상 암호화 응용 SW 파일인 경우 헤더에 포함된 암호화 방식에 맞는 암호키를 운용자로부터 입력받고, 암호화 방식 및 암호키와 역공학 방지 대상 암호화 응용 SW 파일을 복호화를 위해 복호화 수행 및 실행 서브 모듈(400)로 제공한다.
한편, 복호화 수행 및 실행 서브모듈(400)은 암호화 파일 로드 서브 모듈(300)에서 전달된 역공학 대상 암호화 응용 SW 파일에 대해 헤더 정보에 포함된 암호화 방법에 따라 복호화를 수행하고 복호화된 SW 파일을 ELF 로더(600)으로 제공하여 SW 실행부(700)의 메모리에 적재한 후, SW 실행부(700)를 통해 SW 실행할 수 있도록 한다.
즉, 복호화 수행 및 실행 서브 모듈(400)은 암호화 파일 로드 서브 모듈(300)로부터 암호화 방식, 암호키, 역공학 방지 대상 암호화 응용 SW 파일을 입력받고, 암호키를 해싱하여 암호화 방법 설정 서브 모듈(100)에서 파일 시스템(500)에 저장한 암호키 해싱된 값과 일치하는지 비교한다.
비교 결과, 암호키 해시 값이 일치할 경우, 해당 암호키와 암호화 방식을 활용하여 역공학 방지 대상 암호화 응용 SW 파일을 복호화한 후, 복호화된 역공학 방지 대상 암호화 응용 SW 파일을 ELF 로더(600)로 제공한다.
그러나, 복호화 수행 및 실행 서브모듈(400)은 암호화 파일 로드 서브 모듈(300)로부터 수신한 암호화 방식, 암호키와, 암호화 방법 설정 서브 모듈(100)에서 파일 시스템(500)에 저장한 암호키 해싱된 값이 일치하지 않는 경우, 운용자 단말에 에러를 출력할 수 있다.
ELF 로더(600)는 암호화 파일 로드 서브모듈(300)로부터 수신한 역공학 방지 대상 SW가 아닌 일반 SW 및 복호화 수행 및 실행 서브 모듈(400)로부터 제공하는 복호화된 역공학 방지 대상 암호화 응용 SW 파일을 로딩한 후, 복호화 수행 및 실행 서브 모듈(400)로부터 제공하는 복호화된 역공학 방지 대상 암호화 응용 SW 파일을 SW 실행부(700)의 메모리에 적재한 후, 정상 ELF 실행 로직을 수행하는 것이다.
상기와 같은 본 발명에 따른 무기체계 임베디드 시스템의 SW 역공학 방지장치의 동작에 상응하는 본 발명에 따른 무기체계 임베디드 시스템의 SW 역공학 방지방법에 대하여 첨부한 도면 2를 참조하여 단계적으로 설명하기로 한다.
도 2는 본 발명에 따른 무기체계 임베디드 시스템의 SW 역공학 방지방법에 대한 동작 플로우챠트를 나타낸 도면이다.
도 2를 참조하면, 먼저, 운용자로부터 입력된 암호 방식 정보를 이용하여 파일 시스템에 암호키 및 해쉬값을 저장한다(S201).
상기 S201 단계를 좀 더 구체적으로 살펴보면, 도 1에 도시된 암호화 방법 설정 서브모듈(100)은 상용 암호 모듈 암호키 방식, 클라우드 암호키 방식, 비밀번호 기반 암호키 방식을 운용자로부터 입력받아 설정하고, 운용자로부터 입력받은 암호키 방식에 대응하는 암호키와 암호키/해쉬값을 파일 시스템(500)에 저장한다(S201). 여기서, 파일 시스템(500)에 보안칩이 존재하는 경우에는 해당 보안칩에 암호키와 암호키 해시 값을 저장할 수 있다.
이어, 역공학 방지 대상 응용 SW를 파일 시스템으로부터 로드한 후, 상기 파일 시스템에 설정된 암호 방식에 따라 암호화를 수행한다(S202).
즉, 상기 S202단계는, 도 1에 도시된 암호화 수행 서브 모듈(200)에서, 상기 암호화 방법 설정 서브 모듈(100)을 통해 입력받은 암호키 방식과 암호키를 이용해 실제 보호하고자 하는 역공학 방지 대상 응용 SW를 별도의 헤더 정보를 포함하여 암호화를 수행하고, 암호화된 SW를 파일 시스템(500)에 저장할 수 있다. 이때, 별도의 헤더 정보는 암호화 파일 로드 서브 모듈(300)에서 활용하여 복호화 수행 및 실행 서브 모듈(400)로 전달할지 일반 실행 파일 실행 단계로 전달할지 확인하기 위한 내용이 포함될 수 있다.
즉, S202 단계에서의 암호화 수행 서브 모듈(200)은 파일 시스템(500)으로부터 암호화 방식 및 암호키 및 역공학을 방지하고자 하는 응용 SW를 파일 시스템(500)으로부터 불러온다. 여기서, 상기 파일 시스템(500)으로부터 불러온 역공학을 방지하고자 하는 응용 SW는 운용자로부터 수신한 암호화 목록에 대응하는 응용 SW이다.
그리고, 암호화 수행 서브모듈(200)은 파일 시스템(500)으로부터 불러온 역공학 방지 대상 응용 SW의 원본 파일을 파일 시스템(500)으로부터 불러온 암호화 방식 및 암호키 해쉬값을 운용자로부터 입력받은 암호키의 해쉬값과 비교한다.
상기 비교 결과, 파일 시스템(500)으로부터 불러온 암호키/해쉬값과 운용자로부터 입력받은 암호키/해쉬값이 일치하면, 파일 시스템(500)으로부터 불러온 응용 SW를 도 1에 도시된 암호화 수행 서브모듈(200)에서 암호화를 수행한다.
이어, 암호화된 파일의 헤더에 암호화 방식에 대한 내용을 작성하여 원본 파일과 동일한 경로에 역공학 방지 대상 암호화 응용 SW를 생성한 후, 생성된 SW를 파일 시스템(500)에 저장한다(S203). 이때, 상기 역공학 방지 대상 암호화 응용 SW가 생성되면 파일 시스템(500)에 저장되어 있던 해당 원본 응용 SW는 삭제한다.
이어, 도 1에 도시된 암호화 로드 서브모듈(300)에서는, 상기 S202 단계를 통해 파일 시스템에 저장된 역공학 방지 대상 응용 SW를 로드한 후, 로드된 응용 SW 헤더 정보를 확인하여 해당 SW가 일반 실행 파일인지 역공학 대상 암호화 응용SW 파일인지 확인한다. 그리고, 역공학 대상 암호화 응용SW 파일인 경우 복호화를 수행한 후 실행할 수 있도록 복호화 수행 및 실행 서브 모듈(400)로 제공한다(S203).
즉, 암호화 파일 로드 서브모듈(300)은 ELF 파일 로드 시 동작하며 실행 파일의 헤더 정보를 확인하여 일반 실행 파일인지 암호화 수행 서브모듈(200)에서 암호화된 역공학 방지 대상 암호화 응용 SW인지 판단한다.
판단 결과, 일반 실행 파일인 경우, 해당 일반 실행 파일을 ELF 로더(600)로 제공하고, 역공학 방지 대상 암호화 응용 SW 파일인 경우 헤더에 포함된 암호화 방식에 맞는 암호키를 운용자로부터 입력받고, 암호화 방식 및 암호키와 역공학 방지 대상 암호화 응용 SW 파일을 복호화를 위해 복호화 수행 및 실행 서브 모듈(400)로 제공한다.
이어, 복호화 수행 및 실행 서브모듈(400)은 상기 S203 단계를 통해 파일 시스템으로부터 로드된 역공학 대상 암호화 응용 SW 파일에 대해 헤더 정보에 포함된 암호화 방법에 따라 복호화를 수행한다(S204).
즉, 상기 S204 단계에서, 복호화 수행 및 실행 서브 모듈(400)은 암호화 파일 로드 서브 모듈(300)로부터 암호화 방식, 암호키, 역공학 방지 대상 암호화 응용 SW 파일을 입력받고, 암호키를 해싱하여 암호화 방법 설정 서브 모듈(100)에서 파일 시스템(500)에 저장한 암호키의 해싱된 값과 일치하는지 비교한다.
비교 결과, 암호키 해시 값이 일치할 경우, 해당 암호키와 암호화 방식을 활용하여 역공학 방지 대상 암호화 응용 SW 파일을 복호화한 후, 복호화된 역공학 방지 대상 암호화 응용 SW 파일을 도 1에 도시된 ELF 로더(600)로 제공한다.
그러나, 복호화 수행 및 실행 서브모듈(400)은 암호화 파일 로드 서브 모듈(300)로부터 수신한 암호화 방식, 암호키와, 암호화 방법 설정 서브 모듈(100)에서 파일 시스템(500)에 저장한 암호키의 해싱된 값이 일치하지 않는 경우, 운용자 단말에 에러를 출력할 수 있다.
이어, 복호화된 SW 파일을 메모리에 적재한 후, SW 실행하는 것이다(S205).
이상에서 전술한 본 발명의 일 실시예에 따른 무기체계 임베디드 시스템의 SW 역공학 방지방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 : 암호화 방법 설정 서브모듈
200 : 암호화 수행 서브모듈
300 : 암호화 파일 로드 서브모듈
400 : 복호화 수행 및 실행 서브모듈
500 : 파일 시스템
600 : ELF 로더
700 : SW 실행부

Claims (22)

  1. 무기체계 임베디드 시스템의 SW 역공학 방지장치에 있어서,
    운용자의 선택에 따라 암호화 방식과 암호화 정보를 파일 시스템에 설정하는 암호화 방법 설정 서브모듈;
    운용자가 요청한 암호화 목록에 따라 상기 파일 시스템에 저장된 역공학 방지를 위한 SW 파일을 로드하고, 상기 파일 시스템에 저장된 암호화 정보와 운용자가 입력한 암호화 정보의 비교 결과에 따라 로드된 SW 파일의 암호화를 수행한 후, 암호화된 SW 파일을 파일 시스템에 저장하는 암호화 수행 서브모듈;
    상기 파일 시스템에 저장된 암호화된 SW 파일이 역공학 방지를 위한 암호화된 SW 파일인 경우, 해당 파일 복호화를 위한 SW 파일로 제공하는 암호화 파일로드 서브모듈; 및
    상기 암호화 파일 로드 서브모듈로부터 제공되는 역공학 방지를 위한 암호화된 SW 파일을 운용자가 제공하는 암호화 정보에 따라 복호화를 수행한 후, 복호화된 파일 SW를 실행하는 복호화 및 실행 서브모듈을 포함하고,
    상기 암호화 방식은, 상용 암호 모듈 암호키 방식, 클라우드 암호키 방식, 비밀번호 기반 암호키 방식 중 적어도 하나이며,
    상기 암호화 정보는, 상기 암호화 방법에 대응하는 암호키/해쉬값이고,
    상기 암호화 정보는, 파일 시스템에 보안칩에 존재하는 경우, 보안칩에 저장하며,
    상기 암호화 수행 서브모듈은,
    상기 파일 시스템에 저장된 암호화 정보와 운용자가 입력한 암호화 정보가 일치하는 경우, 운용자로부터 제공되는 암호화 목록에 해당하는 역공학 방지를 위한 SW 파일을 파일 시스템으로부터 불러온 후, 상기 암호화 정보에 따라 SW 파일의 암호화를 수행한 후, 암호화된 SW 파일을 파일 시스템에 저장하고,
    상기 파일 시스템에 저장되는 암호화된 SW 파일은,
    헤더에 암호화 방식 및 암호화 정보를 부가하여, 원본 파일과 동일한 경로상의 파일 시스템에 저장하며,
    상기 파일 시스템은, 상기 역공학을 방지하기 위한 암호화된 SW 파일의 저장 시, 해당 파일에 대응하는 원본 파일을 삭제하고,
    상기 암호화 파일 로드 서브모듈은,
    상기 파일 시스템에 저장된 SW 파일을 불러온 후, 해당 SW 파일의 헤더를 확인한 후, 해당 SW 파일이 일반 응용 파일인지, 역공학 방지 대상 암호화 SW 파일인지를 판단하며,
    상기 암호화 파일 로드 서브모듈은,
    상기 판단 결과, 파일 시스템으로부터 불러온 SW 파일이 역공학 방지를 위한 암호화된 SW 파일인 경우, 상기 헤더에 포함된 암호화 방식에 따른 운용자에게 암호키를 입력받고, 암호화 방식 및 암호키와, 역공학 방지 대상 암호화 SW 파일을 상기 복호화 수행 및 실행 서브 모듈로 제공하고,
    상기 복호화 수행 및 실행 서브모듈은,
    상기 암호화 파일 로드 서브 모듈로부터 암호화 방식, 암호키, 역공학 방지 대상 암호화 SW 파일을 입력받고, 암호키를 해싱하여 암호화 방법 설정 서브모듈에 의해 파일 시스템에 저장된 암호키/해쉬값과 일치하는지 비교하여, 암호키/해쉬값이 일치할 경우, 해당 암호키와 암호화 방식을 이용하여 역공학 방지 대상 암호화 SW 파일을 복호화한 후, 메모리에 로드하고 실행을 수행하며,
    상기 비교 결과, 상기 암호화 파일 로드 서브 모듈로부터 입력되어 해싱된 암호키/해쉬값과 상기 암호화 방법 설정 서브모듈에 의해 파일 시스템에 저장된 암호키/해쉬값이 일치하지 않을 경우, 운용자에게 에러를 출력하는 것인 무기체계 임베디드 시스템의 SW 역공학 방지장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 무기체계 임베디드 시스템의 SW 역공학 방지방법에 있어서,
    암호화 방법 설정 서브모듈에서, 운용자의 선택에 따라 암호화 방법을 설정하고, 암호화 정보를 파일 시스템에 저장하는 단계;
    암호화 수행 서브모듈에서, 운용자가 요청한 암호화목록에 따라 상기 파일 시스템에 저장된 역공학 방지를 위한 SW 파일을 로드하고, 상기 파일 시스템에 저장된 암호화 정보와 운용자가 입력한 암호화 정보의 비교 결과에 따라 로드된 SW 파일의 암호화를 수행한 후, 암호화된 SW 파일을 파일 시스템에 저장하는 단계;
    암호화 파일 로드 서브모듈에서, 상기 파일 시스템에 저장된 암호화된 SW 파일이 역공학 방지를 위한 암호화된 SW 파일인 경우, 해당 파일 복호화를 위한 SW 파일로 제공하는 단계; 및
    복호화 수행 및 실행 서브모듈에서, 상기 암호화 파일 로드 서브모듈로부터 제공되는 역공학 방지를 위한 암호화된 SW 파일을 운용자가 제공하는 암호화 정보에 따라 복호화를 수행한 후, 복호화된 파일 소프트웨어를 실행하는 단계를 포함하고,
    상기 암호화 방법은, 상용 암호 모듈 암호키 방식, 클라우드 암호키 방식, 비밀번호 기반 암호키 방식 중 적어도 하나이며,
    상기 암호화 정보는, 상기 암호화 방법에 대응하는 암호키/해쉬값이고,
    상기 암호화 정보는,
    파일 시스템에 보안칩에 존재하는 경우, 보안칩에 저장하며,
    상기 암호화된 SW 파일을 파일 시스템에 저장하는 단계는,
    상기 파일 시스템에 저장된 암호화 정보와, 운용자가 입력한 암호화 정보가 일치하는 경우, 운용자로부터 제공되는 암호화 목록에 해당하는 역공학 방지를 위한 SW 파일을 파일 시스템으로부터 불러온 후, 상기 암호화 정보에 따라 SW 파일의 암호화를 수행한 후, 암호화된 SW 파일을 파일 시스템에 저장하고,
    상기 파일 시스템에 저장되는 암호화된 SW 파일은,
    헤더에 암호화 방식 및 암호화 정보를 부가하여, 원본 파일과 동일한 경로상의 파일 시스템에 저장하며,
    상기 파일 시스템에, 역공학을 방지하기 위한 암호화된 SW 파일의 저장 시, 해당 파일에 대응하는 원본 파일을 삭제하는 단계를 더 포함하고,
    상기 해당 파일 복호화를 위한 SW 파일로 제공하는 단계는,
    상기 파일 시스템에 저장된 SW 파일을 불러온 후, 해당 SW 파일의 헤더를 확인한 후, 해당 SW 파일이 일반 응용 파일인지, 역공학 방지 대상 암호화 SW 파일인지를 판단하는 단계를 포함하며,
    상기 판단 결과, 파일 시스템으로부터 불러온 SW 파일이 역공학 방지를 위한 암호화된 SW 파일인 경우, 상기 헤더에 포함된 암호화 방식에 따른 운용자에게 암호키를 입력받고, 암호화 방식 및 암호키와, 역공학 방지 대상 암호화 SW 파일을 상기 복호화 수행 및 실행 서브 모듈로 제공하고,
    상기 복호화된 파일 소프트웨어를 실행하는 단계는,
    상기 암호화 파일 로드 서브 모듈로부터 암호화 방식, 암호키, 역공학 방지 대상 암호화 SW 파일을 입력받고, 암호키를 해싱하여 암호화 방법 설정 서브모듈에 의해 파일 시스템에 저장된 암호키/해쉬값과 일치하는지 비교하여, 암호키/해쉬값이 일치할 경우, 해당 암호키와 암호화 방식을 이용하여 역공학 방지 대상 암호화 SW 파일을 복호화한 후, 메모리에 로드하고 실행을 수행하며,
    상기 비교 결과, 상기 암호화 파일 로드 서브 모듈로부터 입력되어 해싱된 암호키/해쉬값과 상기 암호화 방법 설정 서브모듈에 의해 파일 시스템에 저장된 암호키/해쉬값이 일치하지 않을 경우, 운용자에게 에러를 출력하는 것인 무기체계 임베디드 시스템의 SW 역공학 방지방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
KR1020230054562A 2023-04-26 2023-04-26 무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법 KR102618922B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230054562A KR102618922B1 (ko) 2023-04-26 2023-04-26 무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230054562A KR102618922B1 (ko) 2023-04-26 2023-04-26 무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR102618922B1 true KR102618922B1 (ko) 2023-12-28

Family

ID=89384841

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230054562A KR102618922B1 (ko) 2023-04-26 2023-04-26 무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR102618922B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110072111A (ko) * 2009-12-22 2011-06-29 한국저작권위원회 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법
KR101439923B1 (ko) * 2007-08-10 2014-09-17 에스케이플래닛 주식회사 콘텐츠의 선택적인 부분 암호화를 위한 drm 시스템 및방법
KR101696900B1 (ko) * 2015-07-27 2017-01-17 한길씨앤씨 주식회사 임베디드 시스템의 실행코드 암호화 및 복호화장치 및 이를 이용하여 정보유출 방지기능을 가지는 임베디드 시스템
KR102482880B1 (ko) * 2022-09-05 2022-12-29 한화시스템(주) 무기체계 임베디드 sw 보호를 위한 역공학 방지 시스템 및 그 방법
KR20230036197A (ko) * 2021-09-07 2023-03-14 배지호 NFT(Non-fungible Token)와 물리적 대상인 원본을 일체화하는 시스템 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101439923B1 (ko) * 2007-08-10 2014-09-17 에스케이플래닛 주식회사 콘텐츠의 선택적인 부분 암호화를 위한 drm 시스템 및방법
KR20110072111A (ko) * 2009-12-22 2011-06-29 한국저작권위원회 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법
KR101696900B1 (ko) * 2015-07-27 2017-01-17 한길씨앤씨 주식회사 임베디드 시스템의 실행코드 암호화 및 복호화장치 및 이를 이용하여 정보유출 방지기능을 가지는 임베디드 시스템
KR20230036197A (ko) * 2021-09-07 2023-03-14 배지호 NFT(Non-fungible Token)와 물리적 대상인 원본을 일체화하는 시스템 및 그 방법
KR102482880B1 (ko) * 2022-09-05 2022-12-29 한화시스템(주) 무기체계 임베디드 sw 보호를 위한 역공학 방지 시스템 및 그 방법

Similar Documents

Publication Publication Date Title
CN109923548B (zh) 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
KR101176646B1 (ko) 상태 검증을 사용하는 보호된 오퍼레이팅 시스템 부팅을 위한 시스템 및 방법
JP4975127B2 (ja) 取り外し可能な媒体に格納された実行可能なコードにタンパーエビデント性を提供する装置
RU2559728C2 (ru) Система и способ копирования файлов с зашифрованного диска
EP1365306A2 (en) Data protection system
WO2022028289A1 (zh) 数据加密方法、数据解密方法、装置、终端和存储介质
JPH1124919A (ja) 安全な記憶領域でアプリケーション・データを保護する方法及び装置
KR101414580B1 (ko) 다중 등급 기반 보안 리눅스 운영 시스템
Suciu et al. Horizontal privilege escalation in trusted applications
CN110543775B (zh) 一种基于超融合理念的数据安全防护方法及系统
KR102618922B1 (ko) 무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법
CN112507302A (zh) 基于密码模块执行的调用方身份鉴别方法及装置
KR20160102915A (ko) 모바일 가상화 기반의 스마트워크용 보안 플랫폼 관리 장치
Toll et al. The Caernarvon secure embedded operating system
CN111339578A (zh) 一种密钥存取方法、装置、系统、设备和存储介质
KR102591450B1 (ko) 윈도우 운영체제 중요 정보 탈취 방지를 위한 레지스트리 파서 및 암/복호화 모듈 및 그 운용방법
US11841970B1 (en) Systems and methods for preventing information leakage
KR102631080B1 (ko) 동형 암호화를 사용한 도커 이미지 인증 장치 및 방법
CN116305295B (zh) 用于下发小程序的方法及平台
US11308231B2 (en) Security control management for information security
KR101839699B1 (ko) 인증정보가 노출되지 않는 안전한 보안 usb 시스템 및 방법
CN118821233A (zh) 一种基于tpcm技术的可信计算机存储系统
CN115292727A (zh) 基于TrustZone的根文件系统加密方法及装置、设备及存储介质

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant