KR20220170461A - 어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법 - Google Patents

어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법 Download PDF

Info

Publication number
KR20220170461A
KR20220170461A KR1020210081311A KR20210081311A KR20220170461A KR 20220170461 A KR20220170461 A KR 20220170461A KR 1020210081311 A KR1020210081311 A KR 1020210081311A KR 20210081311 A KR20210081311 A KR 20210081311A KR 20220170461 A KR20220170461 A KR 20220170461A
Authority
KR
South Korea
Prior art keywords
security label
application
file
communication modem
hash value
Prior art date
Application number
KR1020210081311A
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 KR1020210081311A priority Critical patent/KR20220170461A/ko
Publication of KR20220170461A publication Critical patent/KR20220170461A/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/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/604Tools and structures for managing or administering access control systems
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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

Abstract

실시예에 의한 어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법이 개시된다. 상기 어플리케이션의 권한 관리 장치는 적어도 하나의 어플리케이션 데이터를 입력받고, 상기 입력받은 어플리케이션 데이터로부터 해시값을 산출하고, 산출된 해시값을 암호화하여 해시 파일을 생성하는 제1 제어 유닛; 상기 어플리케이션 데이터에 부여할 보안 레이블을 입력받고 상기 입력받은 보안 레이블이 미리 저장된 보안 레이블 리스트에 포함되는지를 확인하는 제2 제어 유닛; 및 상기 입력받은 보안 레이블이 상기 보안 레이블 리스트에 포함되는 경우 상기 어플리케이션 데이터, 상기 해시 파일, 상기 보안 레이블을 포함하는 바이너리 파일을 생성하여 상기 생성된 바이너리 파일을 통신 모뎀에 제공하는 제3 제어 유닛을 포함하고, 상기 보안 레이블 리스트는 상기 통신 모뎀에서 허용하는 권한을 갖는 보안 레이블을 포함하고, 상기 권한은 능동적 엔티티인 주체와 수동적 엔티티인 객체 간 또는 객체들 간의 역할에 따라 부여되고, 상기 보안 레이블은 상기 주체 또는 상기 객체의 종류를 정의한 카테고리와 상기 주체 또는 상기 객체의 역할을 정의한 레이블를 포함한다.

Description

어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법{APPARATUS FOR MANAGING AUTHORITY OF APPLICATION, COMMUNICATION MODEM SYSTEM INCLUDING IT AND METHOD THEREOF}
실시예는 어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법에 관한 것이다.
일반적으로 외부에서 개발된 OEM 어플리케이션이 통신 모뎀에 탑재되는 경우 특별한 제약없이 기존 시스템 어플리케이션과 동일한 루트(root) 계정 권한에서 실행될 수 있다.
루트 계정 권한으로 실행되는 OEM 어플리케이션에 의한 의도치 않은 동작 또는 루트 계정 권한이 탈취 되었을 경우, 외부 공격자에 의한 시스템 객체가 손상될 가능성이 있다. 예컨대, 이러한 시스템 객체의 손상으로는 UART(Universal Asynchronous Receiver/Transmitter)나 PCM(Pulse Code Modulation) 등의 하드웨어 장치에 접근하여 임의의 데이터를 전송하거나, 모뎀 설정 등 주요 시스템 데이터를 변경하거나 메모리 영역에 직접 접근하여 파일을 손상시키는 행위 등이 포함될 수 있다.
또한 동일한 루트 계정 권한으로 실행되는 OEM 어플리케이션별 기능 및 역할에 따른 권한 설정이 불가능하다. 따라서 어플리케이션 A에는 필요하지 않는 권한이지만, 어플리케이션 B에서 필요한 권한일 경우 어플리케이션 A에도 어플리케이션 B에 부여한 권한을 가질 수 밖에 없다.
또한 모뎀에 내장되는 OEM 어플리케이션의 경우 모뎀 생산이 완료된 후 외부 업체에서 ADB(android Debug Bridge) 인터페이스를 통해 업데이트가 이루어진다. 이때, 모뎀 내에서 ADB 명령을 처리하는 어플리케이션이 OEM 어플리케이션에 대한 쓰기(write) 권한을 갖기 때문에 공격자가 ADB 접속 후 OEM 어플리케이션을 변경할 수 있다.
따라서 모뎀에 내장되는 OEM 어플리케이션을 보호할 수 있는 방법뿐 아니라 OEM 어플리케이션을 통해 모뎀의 내부 시스템을 보호할 수 있는 방법이 필요한 실정이다.
실시예는, 어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법을 제공할 수 있다.
실시예에 따른 어플리케이션의 권한 관리 장치는 적어도 하나의 어플리케이션 데이터를 입력받고, 상기 입력받은 어플리케이션 데이터로부터 해시값을 산출하고, 산출된 해시값을 암호화하여 해시 파일을 생성하는 제1 제어 유닛; 상기 어플리케이션 데이터에 부여할 보안 레이블을 입력받고 상기 입력받은 보안 레이블이 미리 저장된 보안 레이블 리스트에 포함되는지를 확인하는 제2 제어 유닛; 및 상기 입력받은 보안 레이블이 상기 보안 레이블 리스트에 포함되는 경우 상기 어플리케이션 데이터, 상기 해시 파일, 상기 보안 레이블을 포함하는 바이너리 파일을 생성하여 상기 생성된 바이너리 파일을 통신 모뎀에 제공하는 제3 제어 유닛을 포함하고, 상기 보안 레이블 리스트는 상기 통신 모뎀에서 허용하는 권한을 갖는 보안 레이블을 포함하고, 상기 권한은 능동적 엔티티인 주체와 수동적 엔티티인 객체 간 또는 객체들 간의 역할에 따라 부여되고, 상기 보안 레이블은 상기 주체 또는 상기 객체의 종류를 정의한 카테고리와 상기 주체 또는 상기 객체의 역할을 정의한 레이블을 포함할 수 있다.
상기 보안 레이블은 [prefix::label]의 형식이고, 상기 prefix에는 상기 카테고리가 기록되고, 상기 label에는 상기 레이블이 기록될 수 있다.
상기 제1 제어 유닛은 해시 함수를 이용하여 상기 입력받은 어플리케이션 데이터로부터 해시값을 산출하고, 상기 산출된 해시값을 상기 해시 파일에 기록하고, 상기 해시 파일을 개인키를 이용하여 암호화할 수 있다.
상기 바이너리 파일의 파일 시스템은 헤더 영역과 데이터 영역을 포함하고, 상기 제2 제어 유닛은 상기 입력받은 보안 레이블이 상기 보안 레이블 리스트에 포함되는 경우 상기 보안 레이블을 상기 헤더 영역의 아이노드에 기록할 수 있다.
실시예에 따른 통신 모뎀 시스템은 청구항 제1항 내지 제4항 중 어느 한 항에 따른 단말 장치; 및 상기 단말 장치로부터 상기 바이너리 파일을 제공받고, 상기 제공받은 바이너리 파일을 기초로 어플리케이션을 구동하는 통신 모뎀을 포함할 수 있다.
상기 통신 모뎀은 상기 제공받은 바이너리 파일로부터 암호화된 해시 파일을 추출하고, 공개키를 이용하여 상기 암호화된 해시 파일을 복호화하여 상기 복호화된 해시 파일에 포함된 적어도 하나의 어플리케이션 데이터에 대한 해시값을 복원하고, 상기 복원된 해시값을 기초로 상기 어플리케이션을 구동할 수 있다.
상기 통신 모뎀은 해시 함수를 이용하여 상기 수신된 바이너리 파일에 포함된 적어도 하나의 어플리케이션 데이터 각각으로부터 해시값을 산출하고, 상기 복원된 해시값과 상기 산출된 해시값이 일치하는지를 비교하고, 상기 복원된 해시값과 상기 산출된 해시값이 일치하는 경우, 상기 보안 레이블을 기초로 부여된 권한에 따라 상기 어플리케이션을 구동할 수 있다.
상기 단말 장치는 상기 보안 레이블을 기초로 미리 저장된 권한 테이블로부터 부여된 권한을 확인하고, 상기 확인된 권한에 따라 상기 어플리케이션을 구동할 수 있다.
상기 권한 테이블은 상기 보안 레이블과 미리 정의된 객체에 대한 권한을 포함할 수 있다.
실시예에 따른 어플리케이션의 권한 관리 방법은 적어도 하나의 어플리케이션 데이터를 입력받고, 상기 입력받은 어플리케이션 데이터로부터 해시값을 산출하고, 산출된 해시값을 암호화하여 해시 파일을 생성하는 단계; 상기 어플리케이션 데이터에 부여할 보안 레이블을 입력받고 상기 입력받은 보안 레이블이 미리 저장된 보안 레이블 리스트에 포함되는지를 확인하는 단계; 및 상기 입력받은 보안 레이블이 상기 보안 레이블 리스트에 포함되는 경우 상기 어플리케이션 데이터, 상기 해시 파일, 상기 보안 레이블을 포함하는 바이너리 파일을 생성하여 상기 생성된 바이너리 파일을 통신 모뎀에 제공하는 단계를 포함하고, 상기 보안 레이블 리스트는 상기 통신 모뎀에서 허용하는 권한을 갖는 보안 레이블을 포함하고, 상기 권한은 능동적 엔티티인 주체와 수동적 엔티티인 객체 간 또는 객체들 간의 역할에 따라 부여되고, 상기 보안 레이블은 상기 주체 또는 상기 객체의 종류를 정의한 카테고리와 상기 주체 또는 상기 객체의 역할을 정의한 레이블를 포함할 수 있다.
실시예에 따르면, MAC 메커니즘을 이용하여 어플리케이션의 권한을 관리하되, 어플리케이션에 대하여 주체와 객체를 기능과 역할에 따라 다수의 카테고리로 분리하고, 각 카테고리별로 보안 레이블과 권한을 부여하도록 함으로써, 각 어플리케이션별로 허용된 동작만을 수행하기 때문에 시스템 보안이 강화될 수 있다.
실시예에 따르면, 어플리케이션 데이터에 대한 해시값을 산출하고 산출된 해시값을 기초로 어플리케이션 데이터의 정상 여부를 판단하기 때문에 모뎀에 로드되는 부하를 최소화하면서 파일의 손상 및 외부 공격에 의한 파일 변경을 검출할 수 있다.
실시예에 따르면, 어플리케이션의 기능 또는 역할마다 보안 레이블이 부여되기 때문에 공격자가 ADB 접속을 통해 어플리케이션을 변경하는 것이 차단될 수 있다.
도 1은 실시예에 따른 어플리케이션의 권한을 관리하기 위한 시스템을 나타내는 도면이다.
도 2는 도 1에 도시된 통신 모뎀의 상세한 구성을 나타내는 도면이다.
도 3은 도 1에 도시된 단말 장치의 상세한 구성을 나타내는 도면이다.
도 4는 도 3에 도시된 단말 장치의 동작을 설명하기 위한 도면이다.
도 5는 실시예에 따른 바이너리 파일의 파일 시스템을 설명하기 위한 도면이다.
도 6은 실시예에 따른 해시값의 추출 및 암호화 과정을 설명하기 위한 도면이다.
도 7은 실시예에 따른 보안 레이블의 할당 및 삽입 과정을 설명하기 위한 도면이다.
도 8은 실시예에 따른 바이너리 파일의 검증 및 실행 과정을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합, 치환하여 사용할 수 있다.
또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.
또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, “A 및(와) B, C 중 적어도 하나(또는 한 개 이상)”로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.
또한, 본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다.
이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.
그리고, 어떤 구성 요소가 다른 구성요소에 ‘연결’, ‘결합’ 또는 ‘접속’된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결, 결합 또는 접속되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 ‘연결’, ‘결합’ 또는 ‘접속’ 되는 경우도 포함할 수 있다.
또한, 각 구성 요소의 “상(위) 또는 하(아래)”에 형성 또는 배치되는 것으로 기재되는 경우, 상(위) 또는 하(아래)는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, “상(위) 또는 하(아래)”으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.
실시예에서는, MAC 메커니즘을 이용하여 어플리케이션의 권한을 관리하되, 어플리케이션에 대하여 주체와 객체를 기능과 역할에 따라 다수의 카테고리로 분리하고, 각 카테고리별로 보안 레이블과 권한을 부여하도록 한, 새로운 방안을 제안한다.
이때, 강제적 접근 제어(Mandatory Access Control, MAC) 메커니즘은 접근에 대해 주체-객체 패러다임(subject-object paradigm)을 사용한다. MAC은 컴퓨팅 장치 상의 접근 제어의 한 형태로서, 읽기, 쓰기 또는 실행과 같은 연산을 수행하기 위해 시스템은 어떤 주체가 어떤 객체에 접근 가능한지 결정한다. 주체와 객체는 파일 시스템 상의 어떤 또는 모든 객체일 수 있다. 임의 접근 제어(discretionary access control, DAC)와 달리 MAC 제어는 제한된 권한을 지닌 사용자뿐만 아니라 관리자 권한을 지닌 사용자도 제약할 수 있다. MAC에서는 사용자가 아니라 시스템이 준수될 정책을 결정한다. MAC의 예로는 SELinux(Security Enhanced Linux) 및 SMACK(Simplified Mandatory Access Control Kernel)이 있다.
특히 실시예에서는 SMACK을 이용하여 어플리케이션의 권한을 관리하고자 한다.
도 1은 실시예에 따른 어플리케이션의 권한을 관리하기 위한 시스템을 나타내는 도면이고, 도 2는 도 1에 도시된 통신 모뎀의 상세한 구성을 나타내는 도면이고, 도 3은 도 1에 도시된 단말 장치의 상세한 구성을 나타내는 도면이고, 도 4는 도 3에 도시된 단말 장치의 동작을 설명하기 위한 도면이다.
도 1 내지 도 3을 참조하면, 실시예에 따른 통신 모뎀 시스템은 통신 모뎀(100) 및 단말 장치(200)를 포함하고, 통신 모뎀(100)과 단말 장치(200)는 유선 또는 무선 연동할 수 있다.
통신 모뎀(100)은 차량용 통신 모뎀 특히, 텔레메틱스(telematics) 통신 모뎀일 수 있다. 여기서 텔레메틱스는 통신(Telecommunication)과 정보과학(Informatics)의 합성어로 차량, 항공, 선박 등 운송장비에 내장된 컴퓨터와 무선통신기술, 위성항법장치, 인터넷에서 문자 신호와 음성신호를 바꾸는 기술 등에 의해 정보를 주고 받을 수 있는 무선 데이터 서비스를 의미한다. 즉 텔레메틱스는 차량과 같은 운송 수단을 플랫폼으로 한 무선 통신 기술이라 할 수 있다.
통신 모뎀(100)은 적어도 하나의 어플리케이션을 구동할 수 있다. 여기서 어플리케이션은 자체적으로 개발된 어플리케이션인 제1 어플리케이션, 차량 제조사(OEM), 차량 공급사(Tier1) 등의 외부에서 개발된 어플리케이션인 제2 어플리케이션을 포함할 수 있다. 예컨대, 제1 어플리케이션은 시스템 어플리케이션(system application), 제2 어플리케이션은 OEM 어플리케이션일 수 있다.
도 2를 참조하면, 실시예에 따른 통신 모뎀(100)은 디바이스 영역(100a), 커널 영역(kernel space, 100b), 사용자 영역(user space, 100c)을 포함할 수 있다.
디바이스 영역(100a)은 데이터를 송신 또는 수신하기 위한 하드웨어의 동작을 지원할 수 있다. 여기서 하드웨어는 통신 모듈(110), 프로세서(120), 메모리(130)를 포함할 수 있다.
통신 모듈(110)은 외부의 전자 장치와 유선 또는 무선으로 데이터를 송수신할 수 있다. 통신 모듈(110)은 무선 통신 모듈과 유선 통신 모듈을 포함할 수 있다. 통신 모듈(110)은 하나의 칩으로 구현되거나 물리적으로 분리된 별도의 칩으로 구현될 수 있다.
프로세서(120)는 적어도 하나의 어플리케이션을 구동하고 적어도 하나의 구성 요소 즉, 하드웨어 또는 소프트웨어 구성 요소를 제어하여 데이터를 처리할 수 있다. 프로세서(120)는 어플리케이션 프로세서(Application Processor, AP)일 수 있다.
프로세서(120)는 미리 정의된 권한 테이블을 기초로 어플리케이션의 권한을 부여하고 관리할 수 있다. 여기서 권한 테이블은 SMACK 기반의 테이블로, 어플리케이션의 기능 또는 역할별로 보안 레이블(security label)과 정책(policy)이 정의될 수 있다.
이때, 보안 레이블과 정책을 부여하는 과정을 예를 들어 설명하면 다음과 같다.
먼저, 주체(subject)와 객체(object)를 종류별로 다음의 [표 1]과 같이 4개의 카테고리로 분리할 수 있다. 여기서 주체는 시스템에서 능동적 엔티티(active entity)로, 실행의 기본 단위인 태스크(task)일 수 있다. 객체는 시스템에서 수동적 엔티티(passive entity)로, 모든 타입의 파일, IPC, 태스크가 될 수 있다.
카테고리 의미
Cust OEM applications
Dev Linux devices
mnt Mount point
sys System applications
카테고리를 기초로 어플리케이션의 기능 또는 역할별로 보안 레이블이 생성될 수 있다. 이렇게 생성된 보안 레이블 중 일부를 설명하면 다음의 [표 2]와 같이 나타낼 수 있다.
보안 레이블 의미 보안 레이블 의미
cust::app1 OEM application1 cust::app2 OEM application2
dev::mem NAND(file system) / RAM related device node dev::uart UART related device node
mnt::cache Cache mount point mnt::data Data mount point
sys::adb Adb related applications and files sys::net Network related applications and files
상기 표2와 같이 보안 레이블은 [prefix::label]과 같은 포맷으로 형성될 수 있다. 이러한 보안 레이블은 상기 표1의 카테고리별로 구분되어 생성되어야 하기 때문에 프리픽스(prefix)를 두어 카테고리의 파악이 가능하도록 할 수 있다.
이때, 프리픽스로 cust, sys를 갖는 보안 레이블은 주체가 될 수 있고, 프리픽스 cust, dev, mnt, sys를 갖는 보안 레이블은 객체가 될 수 있다. 따라서 주체인 어플리케이션과 객체 간 또는 어플리케이션 간 역할 기능에 따라 정책이 설정될 수 있다.
이렇게 생성된 정책 중 일부를 설명하면 다음의 [표 3]과 같이 나타낼 수 있다.
o s cust::app1 cust::app2 sys::adb sys::net
cust::app1 - rw rwx rx
cust::app2 r - - rx
dev::mem - - - -
dev::uart rw - - -
mnt::cache rwxat rwxt rwxa -
mnt::data rx rwx - rwx
sys::adb rw r - r
sys::net rwx rwx rx -
여기서 정책은 객체에 대한 권한을 부여하는 것으로, 권한은 다음의 [표 4]와 같이 나타낼 수 있다.
권한 의미
a 'a' indicates that append access should be granted
r 'r' indicates that read access should be granted
w 'w' indicates that write access should be granted
x 'x' indicates that execute access should be granted
t 't' indicates that the rule requests transmutation
메모리(130)는 카테고리, 보안 레이블, 주체인 어플리케이션과 객체 간 또는 주체인 어플리케이션 간 역할 기능에 따라 권한이 설정되어 있는 권한 테이블을 저장할 수 있다.
커널 영역(100b)은 통신 모뎀의 운영 체제(Operating System, OS)에 포함될 수 있다. 커널 영역(100b)은 데이터 처리를 제어하기 위한 다양한 기능을 제공할 수 있다.
사용자 영역(100c)은 커널 영역(100b)으로부터 전달된 데이터들을 사용하는 동작들이 수행될 수 있다. 즉, 사용자 영역(100c)에서 동작하는 어플리케이션들의 목적에 부합하도록 커널 영역(100b)으로부터 전달된 데이터들이 사용될 수 있다. 어플리케이션은 통신 모뎀에 관련된 장원을 제어하는 운영 체제 상에서 구동될 수 있다.
단말 장치(200)는 통신 모뎀에 어플리케이션을 제공하되, 어플리케이션에 보안 레이블을 부여하여 보안 레이블이 부여된 어플리케이션을 통신 모뎀에 제공할 수 있다. 이때, 단말 장치(200)는 어플리케이션에 부여하는 보안 레이블의 값은 통신 모뎀에서 허용하는 값으로 할당할 수 있다. 또한 단말 장치(200)는 보안 레이블이 부여된 어플리케이션이 포함된 바이너리 파일을 통신 모뎀에 제공할 수 있다.
도 3을 참조하면, 실시예에 따른 단말 장치(200)는 통신부(210), 제어부(220), 저장부(230)를 포함할 수 있다. 이때, 단말 장치(200)는 리눅스 기반으로 동작하는 장치일 수 있지만 반드시 이에 한정되지 않는다.
통신부(210)는 제1 통신 유닛(211)과 제2 통신 유닛(212)을 포함할 수 있다.
제1 통신 유닛(211)은 서비스 서버와 연동하여 데이터를 송신 또는 수신할 수 있다. 예컨대, 제1 통신 유닛(211)은 서비스 서버로부터 통신 모뎀에 제공할 어플리케이션이 포함된 바이너리 파일을 수신할 수 있다.
제2 통신 유닛(212)은 통신 모뎀과 유선 또는 무선으로 연동하여 데이터를 송신 또는 수신할 수 있다. 예컨대, 제2 통신 유닛(212)은 암호화된 해시값과 미리 정해진 보안 레이블이 부여된 어플리케이션이 포함된 바이너리 파일을 통신 모뎀에 송신할 수 있다.
제어부(220)는 해시 파일과 보안 레이블이 부여된 바이너리 파일을 생성하고, 생성된 바이너리 파일을 통신 모뎀에 제공할 수 있다. 이러한 제어부(220)는 기능에 따라 제1 제어 유닛(221), 제2 제어 유닛(222), 제3 제어 유닛(223)을 포함할 수 있다.
도 4를 참조하면, 제1 제어 유닛(221)은 통신 모뎀에 제공할 어플리케이션 데이터로부터 해시값을 산출할 수 있다. 제1 제어 유닛(221)은 해시 함수(hash function)를 이용하여 어플리케이션 데이터부터 해시값을 산출할 수 있다. 해시 함수는 컴퓨터 암호화 기술의 일종으로, 주어진 원문에서 고정된 길이의 의사난수를 생성하는 연산기법이며 생성된 값은 '해시값'이라고 한다. 암호 알고리즘에서는 키가 사용되지만 해시 함수에서는 키를 사용하지 않기 때문에 같은 입력에 대해서는 항상 같은 출력이 나온다. 이러한 함수를 사용하는 목적은 입력 메시지에 대한 변경할 수 없는 증거값을 뽑아냄으로써 메시지의 오류나 변조를 탐지할 수 있는 무결성을 제공하기 위해서다. 이러한 해시 함수 알고리즘으로는 예컨대, MD5(Message Digest Algorithm 5), SHA(Secure Hash Algorithm) 등을 포함할 수 있다.
제1 제어 유닛(221)은 산출된 해시값을 미리 정해진 개인키로 암호화하고, 암호화된 해시값을 기록한 해시 파일을 생성할 수 있다.
제2 제어 유닛(222)은 허용 가능한 보안 레이블을 어플리케이션에 부여할 수 있다. 리눅스 파일 시스템에서는 파일에 대한 다양한 정보를 저장하는 아이노드(inode)를 제공한다. 제2 제어 유닛(222)은 어플리케이션마다 부여된 보안 레이블을 파일 시스템의 아이노드에 삽입할 수 있다.
제3 제어 유닛(223)은 어플리케이션 데이터, 해시 파일, 보안 레이블을 포함하는 바이너리 파일을 생성할 수 있다.
저장부(230)는 어플리케이션이 포함된 바이너리 파일, 보안 레이블 리스트를 포함할 수 있다. 보안 레이블 리스트는 통신 모뎀이 허용하는 보안 레이블을 포함할 수 있다.
도 5는 실시예에 따른 바이너리 파일의 파일 시스템을 설명하기 위한 도면이다.
도 5를 참조하면, 실시예에 따른 바이너리는 파일 시스템(file system)을 포함하고, 파일 시스템은 헤더(header) 부분과 데이터(data) 부분으로 나뉠 수 있다.
헤더 부분은 다수의 아이노드를 포함할 수 있다. 다수의 아이노드 각각은 데이터 부분의 데이터에 각각 매칭될 수 있다. 여기서는 어플리케이션1(App1), 어플리케이션2(App2), 구성 파일, 암호화된 해시 파일에 대한 정보를 갖는 아이노드를 포함할 수 있다.
데이터 부분은 다수의 데이터를 포함할 수 있다. 여기서, 다수의 데이터는 어플리케이션1(App1), 어플리케이션2(App2), 구성 파일, 암호화된 해시 파일을 포함할 수 있다.
실시예에서는, 모뎀에 로드되는 부하를 최소화하기 위하여 어플리케이션이 포함된 바이너리 파일 전체를 암호화하지 않고 바이너리 파일로부터 해시값을 추출하여 그 추출된 해시값만을 암호화하고자 한다. 이러한 해시값을 이용하면 비트 플립에 의한 파일 손상 및 외부의 공격에 의한 파일 변경 등을 검출할 수 있다.
도 6은 실시예에 따른 해시값의 추출 및 암호화 과정을 설명하기 위한 도면이다.
도 6을 참조하면, 실시예에 따른 단말 장치는 적어도 하나의 제2 어플리케이션을 생성하는 경우, 해시값을 기록할 해시 파일을 생성할 수 있다(S601). 여기서 해시 파일은 다이제스트 파일(digest file)일 수 있다.
단말 장치는 적어도 하나의 제2 어플리케이션데이터를 입력 받고(S602), 입력된 모든 어플리케이션 데이터로부터 해시값을 미리 정해진 순서대로 산출할 수 있다(S603).
단말 장치는 산출된 해시값을 해시 파일에 미리 정해진 순서로 기록할 수 있다(S604).
단말 장치는 바이너리 파일의 모든 어플리케이션 데이터으로부터 해시값을 산출하였는지를 확인할 수 있다(S605).
단말 장치는 바이너리 파일의 모든 어플리케이션 데이터로부터 해시값을 산출한 경우, 개인키를 불러오고(S606), 불러온 개인키를 이용하여 해시 파일을 암호화할 수 있다(S607).
실시예에서는 RSA 개인키를 이용하여 특정한 파일을 암호화하고 나중에 RSA 공개키를 이용하여 다시 복호화하는 방법을 사용한다. RSA 개인키 및 공개키를 표현하는 방식(format)은 PEM(Privacy-enhanced Electronic Mail) 포맷, DER(Distinguished Encoding Rule) 포맷이 있는데, 주로 PEM 포맷을 사용하고 있다. 예컨대, 실시예에서는 PEM 포맷의 개인키를 사용할 수 있는데, PEM 포맷의 개인키를 암호화에 사용하기 위해서는 RSA 키쌍 구조(RSA keypair Structure)로 변환해야 한다.
실시예에서는, 어플리케이션이 포함된 바이너리 파일 생성 시 허용된 보안 레이블만이 바이너리 파일에 할당이 가능하기 때문에 임의의 보안 레이블을 삽입할 수 없다.
도 7은 실시예에 따른 보안 레이블의 할당 및 삽입 과정을 설명하기 위한 도면이다.
도 7을 참조하면, 실시예에 따른 단말 장치는 적어도 하나의 제2 어플리케이션을 생성한 경우, 사용자로부터 원하는 보안 레이블을 입력 받을 수 있다(S701).
단말 장치는 보안 레이블을 입력 받으면, 미리 저장된 보안 레이블 리스트를 불러오고(S702), 불러온 보안 레이블 리스트를 기초로 입력된 보안 레이블이 사용 가능한지를 확인할 수 있다(S703).
단말 장치는 입력된 보안 레이블이 사용 가능한 경우, 입력된 보안 레이블을 바이너리 파일의 파일 시스템의 해당 어플리케이션의 정보를 갖는 아이노드에 삽입할 수 있다(S704).
실시예에서는, 적어도 하나의 제2 어플리케이션 데이터가 포함된 바이너리 파일로부터 제2 어플리케이션 데이터에 대한 암호화된 해시값을 공개키로 복원하여 복원된 해시값을 이용하여 제2 어플리케이션 데이터가 정상적인 데이터인지를 확인할 수 있다.
도 8은 실시예에 따른 바이너리 파일의 검증 및 실행 과정을 설명하기 위한 도면이다.
도 8을 참조하면, 실시예에 따른 통신 모뎀은 단말 장치로부터 어플리케이션이 포함된 바이너리 파일을 수신하는 경우(S801), 수신된 바이너리 파일로부터 암호화된 해시 파일을 추출할 수 있다(S802).
통신 모뎀은 바이너리 파일을 기초로 공개키(public key)를 검색할 수 있다(S803). 여기서 공개키는 해당 차량 제조사 또는 차량 공급사의 개인키와 한 쌍인 공개키일 수 있다.
통신 모뎀은 검색된 공개키를 이용하여 암호화된 해시 파일을 복호화하여(S804) 복호화된 해시 파일에 포함된 적어도 하나의 어플리케이션 데이터에 대한 해시값을 복원할 수 있다(S805).
또한, 통신 모뎀은 미리 정해진 해시 함수를 이용하여 수신된 바이너리 파일에 포함된 적어도 하나의 어플리케이션 데이터 각각으로부터 해시값을 산출할 수 있다(S806).
통신 모뎀은 복원된 해시값과 산출된 해시값이 일치하는지를 비교할 수 있다(S807).
이때, 통신 모뎀은 복원된 해시값과 산출된 해시값이 일치하는 경우, 어플리케이션이 정상적으로 생성되었다고 판단하여 수신된 바이너리 파일을 기초로 부여된 권한에 따라 해당 어플리케이션을 구동시킬 수 있다(S808).
반면, 통신 모뎀은 복원된 해시값과 산출된 해시값이 일치하지 않는 경우, 어플리케이션이 정상적으로 생성되지 않았거나 예기치 않은 비트플립(bit flip) 등으로 인해 바이너리 파일이 손상되었다고 판단하여 서비스 모드로 진입할 수 있다(S809).
본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 통신 모뎀
110: 통신모듈
120: 프로세서
130: 메모리
200: 단말 장치
210: 통신부
211: 제1 통신 유닛
212: 제2 통신 유닛
220: 제어부
221: 제1 제어 유닛
222: 제2 제어 유닛
223: 제3 제어 유닛
230: 저장부

Claims (10)

  1. 적어도 하나의 어플리케이션 데이터를 입력받고, 상기 입력받은 어플리케이션 데이터로부터 해시값을 산출하고, 산출된 해시값을 암호화하여 해시 파일을 생성하는 제1 제어 유닛;
    상기 어플리케이션 데이터에 부여할 보안 레이블을 입력받고 상기 입력받은 보안 레이블이 미리 저장된 보안 레이블 리스트에 포함되는지를 확인하는 제2 제어 유닛; 및
    상기 입력받은 보안 레이블이 상기 보안 레이블 리스트에 포함되는 경우 상기 어플리케이션 데이터, 상기 해시 파일, 상기 보안 레이블을 포함하는 바이너리 파일을 생성하여 상기 생성된 바이너리 파일을 통신 모뎀에 제공하는 제3 제어 유닛을 포함하고,
    상기 보안 레이블 리스트는 상기 통신 모뎀에서 허용하는 권한을 갖는 보안 레이블을 포함하고,
    상기 권한은 능동적 엔티티인 주체와 수동적 엔티티인 객체 간 또는 객체들 간의 역할에 따라 부여되고,
    상기 보안 레이블은 상기 주체 또는 상기 객체의 종류를 정의한 카테고리와 상기 주체 또는 상기 객체의 역할을 정의한 레이블를 포함하는, 어플리케이션의 권한 관리 장치.
  2. 제1항에 있어서,
    상기 보안 레이블은 [prefix::label]의 형식이고, 상기 prefix에는 상기 카테고리가 기록되고, 상기 label에는 상기 레이블이 기록되는, 어플리케이션의 권한 관리 장치.
  3. 제1항에 있어서,
    상기 제1 제어 유닛은,
    해시 함수를 이용하여 상기 입력받은 어플리케이션 데이터로부터 해시값을 산출하고,
    상기 산출된 해시값을 상기 해시 파일에 기록하고,
    상기 해시 파일을 개인키를 이용하여 암호화하는, 어플리케이션의 권한 관리 장치.
  4. 제1항에 있어서,
    상기 바이너리 파일의 파일 시스템은 헤더 영역과 데이터 영역을 포함하고,
    상기 제2 제어 유닛은,
    상기 입력받은 보안 레이블이 상기 보안 레이블 리스트에 포함되는 경우 상기 보안 레이블을 상기 헤더 영역의 아이노드에 기록하는, 어플리케이션의 권한 관리 장치.
  5. 청구항 제1항 내지 제4항 중 어느 한 항에 따른 단말 장치; 및
    상기 단말 장치로부터 상기 바이너리 파일을 제공받고, 상기 제공받은 바이너리 파일을 기초로 어플리케이션을 구동하는 통신 모뎀을 포함하는 통신 모뎀 시스템.
  6. 제5항에 있어서,
    상기 통신 모뎀은,
    상기 제공받은 바이너리 파일로부터 암호화된 해시 파일을 추출하고,
    공개키를 이용하여 상기 암호화된 해시 파일을 복호화하여 상기 복호화된 해시 파일에 포함된 적어도 하나의 어플리케이션 데이터에 대한 해시값을 복원하고,
    상기 복원된 해시값을 기초로 상기 어플리케이션을 구동하는, 통신 모뎀 시스템.
  7. 제6항에 있어서,
    상기 통신 모뎀은,
    해시 함수를 이용하여 상기 제공받은 바이너리 파일에 포함된 적어도 하나의 어플리케이션 데이터 각각으로부터 해시값을 산출하고,
    상기 복원된 해시값과 상기 산출된 해시값이 일치하는지를 비교하고,
    상기 복원된 해시값과 상기 산출된 해시값이 일치하는 경우, 상기 보안 레이블을 기초로 부여된 권한에 따라 상기 어플리케이션을 구동하는, 통신 모뎀 시스템.
  8. 제7항에 있어서,
    상기 단말 장치는,
    상기 보안 레이블을 기초로 미리 저장된 권한 테이블로부터 부여된 권한을 확인하고, 상기 확인된 권한에 따라 상기 어플리케이션을 구동하는, 통신 모뎀 시스템.
  9. 제8항에 있어서,
    상기 권한 테이블은,
    상기 보안 레이블과 미리 정의된 객체에 대한 권한을 포함하는, 통신 모뎀 시스템.
  10. 적어도 하나의 어플리케이션 데이터를 입력받고, 상기 입력받은 어플리케이션 데이터로부터 해시값을 산출하고, 산출된 해시값을 암호화하여 해시 파일을 생성하는 단계;
    상기 어플리케이션 데이터에 부여할 보안 레이블을 입력받고 상기 입력받은 보안 레이블이 미리 저장된 보안 레이블 리스트에 포함되는지를 확인하는 단계; 및
    상기 입력받은 보안 레이블이 상기 보안 레이블 리스트에 포함되는 경우 상기 어플리케이션 데이터, 상기 해시 파일, 상기 보안 레이블을 포함하는 바이너리 파일을 생성하여 상기 생성된 바이너리 파일을 통신 모뎀에 제공하는 단계를 포함하고,
    상기 보안 레이블 리스트는 상기 통신 모뎀에서 허용하는 권한을 갖는 보안 레이블을 포함하고,
    상기 권한은 능동적 엔티티인 주체와 수동적 엔티티인 객체 간 또는 객체들 간의 역할에 따라 부여되고,
    상기 보안 레이블은 상기 주체 또는 상기 객체의 종류를 정의한 카테고리와 상기 주체 또는 상기 객체의 역할을 정의한 레이블를 포함하는, 어플리케이션의 권한 관리 방법.
KR1020210081311A 2021-06-23 2021-06-23 어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법 KR20220170461A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210081311A KR20220170461A (ko) 2021-06-23 2021-06-23 어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210081311A KR20220170461A (ko) 2021-06-23 2021-06-23 어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20220170461A true KR20220170461A (ko) 2022-12-30

Family

ID=84538544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210081311A KR20220170461A (ko) 2021-06-23 2021-06-23 어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20220170461A (ko)

Similar Documents

Publication Publication Date Title
US7594257B2 (en) Data security for digital data storage
US6857076B1 (en) Data security for digital data storage
US6175924B1 (en) Method and apparatus for protecting application data in secure storage areas
US8392727B2 (en) System and method for transparent disk encryption
AU2006205315B2 (en) Method and portable storage device for allocating secure area in insecure area
US7171557B2 (en) System for optimized key management with file groups
US20110016330A1 (en) Information leak prevention device, and method and program thereof
US20070067647A1 (en) Data security for digital data storage
US20060236104A1 (en) Method and apparatus for encrypting and decrypting data in a database table
US10528749B2 (en) Methods and apparatus for containerized secure computing resources
US20080307522A1 (en) Data Management Method, Program For the Method, and Recording Medium For the Program
KR20080059675A (ko) 신뢰성 있는 이동 플랫폼 구조
KR20140051350A (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
WO2011148224A1 (en) Method and system of secure computing environment having auditable control of data movement
US20220358054A1 (en) Protection of data in memory of an integrated circuit using a secret token
CN114942729A (zh) 一种计算机系统的数据安全存储与读取方法
US20040003275A1 (en) Information storage apparatus, information processing system, specific number generating method and specific number generating program
US20240152630A1 (en) Security system and method for real-time encryption or decryption of data using key management server
KR20220170461A (ko) 어플리케이션의 권한을 관리하기 위한 장치, 이를 포함하는 통신 모뎀 시스템 및 그 방법
US20220327211A1 (en) Data processing system and method capable of separating application processes
JP2023136601A (ja) ソフトウェア管理装置、ソフトウェア管理方法、及びプログラム
CN112784322A (zh) 位元锁磁盘管理系统
CN112784321A (zh) 磁盘资安系统
KR20020034862A (ko) 컴퓨터의 응용프로그램의 비밀값 제어방법