KR20180073041A - 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체 - Google Patents

전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체 Download PDF

Info

Publication number
KR20180073041A
KR20180073041A KR1020160176452A KR20160176452A KR20180073041A KR 20180073041 A KR20180073041 A KR 20180073041A KR 1020160176452 A KR1020160176452 A KR 1020160176452A KR 20160176452 A KR20160176452 A KR 20160176452A KR 20180073041 A KR20180073041 A KR 20180073041A
Authority
KR
South Korea
Prior art keywords
control information
access control
executable file
electronic device
application program
Prior art date
Application number
KR1020160176452A
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 KR1020160176452A priority Critical patent/KR20180073041A/ko
Priority to US15/852,774 priority patent/US20180181727A1/en
Priority to PCT/KR2017/015382 priority patent/WO2018117747A1/en
Priority to EP17883588.0A priority patent/EP3523745B1/en
Publication of KR20180073041A publication Critical patent/KR20180073041A/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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/121Restricting unauthorised execution of programs
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2139Recurrent verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

전자 장치가 개시된다. 본 전자 장치는, 실행 파일 및 실행 파일에 의한 전자 장치의 리소스에 대한 접근 제어 정보를 포함하는 애플리케이션 프로그램을 저장하는 저장부 및 애플리케이션 프로그램에 대한 실행 명령이 입력되면, 애플리케이션 프로그램의 실행 파일을 실행하고, 애플리케이션 프로그램에 포함된 접근 제어 정보에 따라 전자 장치의 리소스에 대한 실행 파일의 접근 권한을 제어하는 프로세서를 포함한다.

Description

전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체 { ELECTRONIC DEVICE, METHOD FOR CONTROLLING THEREOF AND COMPUTER-READABLE RECORDING MEDIUM }
본 개시는 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체에 관한 것으로, 어플리케이션의 리소스에 대한 접근을 보다 효율적으로 제어할 수 있는 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체에 관한 것이다.
전자 기술이 발달함에 따라, 전자 장치는 통신망을 이용하여 인터넷망에 연결가능하며, 이를 이용하여 다양한 콘텐츠 등을 사용자에게 제공할 수 있게 되었다. 최근에 스마트폰, 스마트 TV와 같은 전자 장치는 다양한 애플리케이션의 설치가 가능하여, 사용자는 자신이 필요한 다양한 애플리케이션을 설치하여 사용하고 있다.
이와 같이 전자 장치에 설치되어 사용되는 특정 애플리케이션들은 전자 장치에 저장된 정보 및 리소스에 접근 또는 정보 수집을 위한 권한을 요구하기도 한다. 예컨대, 내비게이션 애플리케이션은 사용자의 위치에 대한 정보에 접근할 권한을 요구하며, 전화 애플리케이션은 전자 장치에 저장된 연락처 정보에 접근할 권한을 요구한다.
종래의 애플리케이션은 전자 장치에 저장된 정보 및 리소스에 접근하는데 사용되는 접근 제어 정보를 별도의 파일에 저장해왔다. 구체적으로, 종래의 애플리케이션은, 복수의 실행 파일이 각각 접근해야하는 전자 장치의 리소스에 대한 정보를 포함하는 각 실행 파일의 접근 제어 정보를, 복수의 접근 제어 정보만을 포함한 별도의 하나의 파일로 저장해왔다. 이에 따라 전자 장치는 애플리케이션을 설치하는 과정에서 각 리소스에 대한 접근 허용 여부를 사용자로부터 확인받고, 접근 제어 정보 및 접근 허용 여부를 전자 장치의 커널 내 메모리에 저장하였다. 이후, 사용자가 어플리케이션을 실행하여, 실행 파일이 리소스에 접근하려 할 때마다, 전자 장치는 메모리 내 접근 제어 정보를 이용하여 실행 파일의 리소스에 대한 접근을 제어할 수 있었다.
그러나, 이 경우, 설치 전 어플리케이션에 포함된 접근 제어 정보가 저장된 파일 또는 전자 장치의 메모리에 저장된 접근 제어 정보의 파일만 해킹하면, 애플리케이션이 사용자가 동의하지 않은 리소스로의 접근 및 정보 수집 등을 가능하게 하고, 전자 장치가 애플리케이션을 통해 악성 코드에 감염되는 등의 문제점이 발생할 수 있다.
이에 따라, 어플리케이션의 리소스로의 접근을 보다 안전하게 제어할 수 있는 기술의 필요성이 대두되었다.
본 개시는 상술한 문제점을 해결하기 위한 것으로, 본 개시의 목적은 애플리케이션의 리소스에 대한 접근을 보다 효율적으로 제어할 수 있는 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체를 제공함에 있다.
본 개시의 일 실시 예에 따른 전자 장치는, 실행 파일 및 상기 실행 파일에 의한 상기 전자 장치의 리소스에 대한 접근 제어 정보를 포함하는 애플리케이션 프로그램을 저장하는 저장부 및 상기 애플리케이션 프로그램에 대한 실행 명령이 입력되면, 상기 애플리케이션 프로그램의 실행 파일을 실행하고, 상기 애플리케이션 프로그램에 포함된 접근 제어 정보에 따라 상기 전자 장치의 리소스에 대한 상기 실행 파일의 접근 권한을 제어하는 프로세서를 포함한다.
이 경우, 상기 접근 제어 정보는, 상기 실행 파일에 포함될 수 있다.
한편, 상기 실행 파일은 상기 실행 파일 및 상기 접근 제어 정보를 기설정된 알고리즘에 기초하여 암호화한 전자 서명을 더 포함하고, 상기 프로세서는, 상기 전자 서명을 이용하여, 상기 실행 파일 및 상기 접근 제어 정보의 변조 여부를 판단하고, 상기 판단된 변조 여부에 따라 상기 전자 장치의 리소스에 대한 접근 권한을 상기 애플리케이션 프로그램에 부여할 수 있다.
이 경우, 상기 기설정된 알고리즘은 해시 함수를 포함하고, 상기 전자 서명은, 상기 해시 함수를 이용하여 산출된 상기 실행 파일 및 상기 접근 제어 정보에 대한 해시 코드를, 개인키(private key)를 이용하여 암호화한 값일 수 있다.
이 경우, 상기 저장부는, 상기 개인키와 대응되는 공개키(public key)를 저장하며, 상기 프로세서는, 상기 애플리케이션 프로그램 실행 명령이 입력되면, 상기 해시 함수를 이용하여 상기 실행 파일 및 상기 접근 제어 정보에 대한 해시 코드를 산출하고, 상기 실행 명령이 입력된 후 산출된 해시 코드와 상기 공개키를 이용하여 상기 전자 서명을 복호화한 해시 코드를 비교하여 변조 여부를 판단할 수 있다.
한편, 상기 전자 장치의 리소스는, 상기 전자 장치의 위치 정보, 카메라, 마이크, 스피커, 저장된 파일 및 상기 전자 장치와 연결된 외부 서버 중 적어도 하나를 포함할 수 있다.
한편, 상기 애플리케이션 프로그램은 적어도 하나의 접근 제어 정보를 각각 포함하는 복수의 실행 파일을 포함하고, 상기 프로세서는, 복수의 접근 제어 정보 중 적어도 하나의 접근 제어 정보가 변경되면, 상기 복수의 실행 파일 중 상기 접근 제어 정보가 변경된 실행 파일에 포함된 접근 제어 정보만 업데이트할 수 있다.
한편, 상기 프로세서는, 데이터를 임시 저장하는 휘발성 메모리를 더 포함하고, 리소스 접근 권한이 부여된 실행 파일에 포함된 접근 제어 정보를 상기 휘발성 메모리에 저장할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은, 실행 파일 및 상기 실행 파일에 의한 상기 전자 장치의 리소스에 대한 접근 제어 정보를 포함하는 애플리케이션 프로그램을 저장하는 단계, 상기 애플리케이션 프로그램에 대한 실행 명령을 입력받는 단계, 상기 애플리케이션 프로그램에 포함된 접근 제어 정보에 따라 상기 전자 장치의 리소스에 대한 상기 실행 파일의 접근 권한을 제어하는 단계 및 상기 실행 파일 및 상기 리소스에 대한 상기 실행 파일의 접근 권한을 이용하여 상기 애플리케이션 프로그램을 구동하는 단계를 포함한다.
이 경우, 상기 접근 제어 정보는, 상기 실행 파일에 포함될 수 있다.
한편, 상기 실행 파일은 상기 실행 파일 및 상기 접근 제어 정보를 기설정된 알고리즘에 기초하여 암호화한 전자 서명을 더 포함하고, 상기 리소스 접근 권한을 제어하는 단계는, 상기 전자 서명을 이용하여, 상기 실행 파일 및 상기 접근 제어 정보의 변조 여부를 판단하는 단계 및 상기 판단된 변조 여부에 따라 상기 전자 장치의 리소스에 대한 접근 권한을 상기 애플리케이션 프로그램에 부여하는 단계를 포함할 수 있다.
이 경우, 상기 기설정된 알고리즘은 해시 함수를 포함하고, 상기 전자 서명은, 상기 해시 함수를 이용하여 산출된 상기 실행 파일 및 상기 접근 제어 정보에 대한 해시 코드를, 개인키(private key)를 이용하여 암호화한 값일 수 있다.
이 경우, 상기 개인키와 대응되는 공개키(public key)를 저장하는 단계를 더 포함하고, 상기 변조 여부를 판단하는 단계는, 상기 애플리케이션 프로그램 실행 명령이 입력되면, 상기 해시 함수를 이용하여 상기 실행 파일 및 상기 접근 제어 정보에 대한 해시 코드를 산출하는 단계, 상기 공개키를 이용하여 상기 전자 서명을 복호화하는 단계 및 상기 실행 명령이 입력된 후 산출된 해시 코드와 상기 전자 서명을 복호화한 해시 코드를 비교하여 변조 여부를 판단하는 단계를 포함할 수 있다.
한편, 상기 전자 장치의 리소스는, 상기 전자 장치의 위치 정보, 카메라, 마이크, 스피커, 저장된 파일 및 상기 전자 장치와 연결된 외부 서버 중 적어도 하나를 포함할 수 있다.
한편, 상기 애플리케이션 프로그램은 적어도 하나의 접근 제어 정보를 각각 포함하는 복수의 실행 파일을 포함하고, 복수의 접근 제어 정보 중 적어도 하나의 접근 제어 정보가 변경되면, 상기 복수의 실행 파일 중 상기 접근 제어 정보가 변경된 실행 파일에 포함된 접근 제어 정보만 업데이트하는 단계를 더 포함할 수 있다.
한편, 상기 애플리케이션 프로그램 실행 명령이 입력되면, 리소스 접근 권한이 부여된 실행 파일에 포함된 접근 제어 정보를 휘발성 메모리에 임시 저장하는 단계를 더 포함할 수 있다.
한편, 전자 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서, 상기 제어 방법은, 실행 파일 및 상기 실행 파일에 의한 상기 전자 장치의 리소스에 대한 접근 제어 정보를 포함하는 애플리케이션 프로그램을 저장하는 단계, 상기 애플리케이션 프로그램에 대한 실행 명령을 입력받는 단계, 상기 애플리케이션 프로그램에 포함된 접근 제어 정보에 따라 상기 전자 장치의 리소스에 대한 상기 실행 파일의 접근 권한을 제어하는 단계 및 상기 실행 파일 및 상기 리소스에 대한 상기 실행 파일의 접근 권한을 이용하여 상기 애플리케이션 프로그램을 구동하는 단계를 포함한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블럭도,
도 2는 도 1의 전자 장치의 구체적인 구성을 나타내는 블럭도,
도 3은 본 개시의 일 실시 예에 따른 실행 파일 패키지 구조를 나타내는 도면,
도 4는 본 개시의 일 실시 예에 따른 전자 장치의 접근 제어 시스템을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도, 그리고,
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 전자 서명 인증 방법을 나타내는 흐름도이다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정에서, "포함하다." 또는 "구성되다." 등의 용어는 명세서상에 기재된 특징, 숫자, 한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
실시 예에 있어서 ‘모듈’ 혹은 ‘부’는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 ‘모듈’ 혹은 복수의 ‘부’는 특정한 하드웨어로 구현될 필요가 있는 ‘모듈’ 혹은 ‘부’를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블럭도이다.
도 1을 참조하면, 본 개시의 일 실시 예에 따른 전자 장치(100)는 저장부(110) 및 프로세서(120)를 포함한다.
구체적으로, 전자 장치(100)는 TV, PC, 랩탑 PC, 휴대폰, 태블릿 PC, PDA, MP3 플레이어, 키오스크, 전자 액자 등과 같이 다양한 유형의 장치로 구현될 수 있다. 휴대폰이나 태블릿 PC, PDA, MP3 플레이어, 랩탑 PC 등과 같이 휴대 가능한 유형의 장치로 구현되는 경우에는 모바일 디바이스로 명명할 수도 있으나, 본 명세서에서는 전자 장치로 통칭하여 설명한다.
저장부(110)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 저장부(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 저장부(110)는 프로세서(130)에 의해 액세스되며, 프로세서(130)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 저장부라는 용어는 저장부(110) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.
구체적으로, 저장부(110)는 전자 장치(100)의 구동시 필요한 각종 명령어의 집합인 프로그램을 저장할 수 있다. 여기서 프로그램은 특정의 서비스를 제공하기 위한 애플리케이션(또는, 응용 프로그램)을 포함할 수 있다.
이때, 애플리케이션은 애플리케이션을 구동할 수 있는 하나 또는 복수의 실행 파일을 포함할 수 있다. 여기서, 실행 파일은 코드화된 명령에 따라 지시된 작업을 수행하도록 하는 컴퓨터 파일을 말하는 것으로, 지시된 작업 내용에 따라 리소스에 접근이 필요할 수 있다. 스크립트나 바이트코드와 같은 인터프리터, CPU 또는 가상 머신을 위한 명령을 포함하는 파일도 실행 파일에 포함될 수 있다. 예를 들어, 실행 파일은 MS-DOS나 Windows에서의 '.exe' 등의 확장자를 갖는 파일들일 수 있으며, 리눅스에서의 elf 파일, 안드로이드 앱 내에서의 '.dex' 등의 확장자를 갖는 파일 등이 대표적일 수 있으며, 이에 한정되지는 않는다.
이때, 애플리케이션 프로그램은 애플리케이션 프로그램의 리소스 접근을 제어하는데 사용되는 접근 제어 정보를 더 포함할 수 있다. 구체적으로, 적어도 하나의 실행 파일 각각에 연관된 접근 제어 정보는, 각 접근 제어 정보와 대응되는 실행 파일에 포함되는 형태로 애플리케이션 프로그램에 저장될 수 있다. 예를 들어, 애플리케이션 프로그램은 적어도 하나의 실행 파일 각각에 관련된 접근 제어 정보를 각 실행 파일의 마지막에 첨부하여 저장할 수 있다. 여기서, 접근 제어 정보는 대응되는 실행 파일이 실행될 때 접근이 필요한 전자 장치(100)의 리소스에 대한 정보를 포함할 수 있다. 이때, 실행 파일 하나에 첨부되는 접근 제어 정보는 하나 또는 복수 개일 수 있다. 예를 들어, 접근 제어 정보는 대응되는 실행 파일의 접근이 필요한 전자 장치(100)의 적어도 하나의 리소스에 대한 정보를 리스트 형태로 포함할 수 있다.
여기서, 리소스는 전자 장치(100)에 구비된 구성일 수 있다. 구체적으로, 리소스는 전자 장치(100)에 구비된 카메라, 마이크, 스피커 및 저장부(110)에 저장된 전자 장치(100)의 위치 정보 및 파일 중 적어도 하나일 수 있다. 한편, 리소스는 전자 장치(100)와는 구분되는 별개의 외부 서버일 수도 있다. 구체적으로, 리소스는 인터넷 등의 네트워크를 통해 접속할 수 있는 인터넷 사이트 또는 타 전자 장치 등일 수 있다.
한편, 애플리케이션은 실행 파일 및 접근 제어 정보의 변조 여부를 확인하기 위한 전자 서명을 접근 제어 정보의 마지막에 첨부할 수 있다. 이때, 전자 서명은, 실행 파일 및 접근 제어 정보를 기설정된 알고리즘에 기초하여 암호화한 것일 수 있다. 여기서, 기설정된 알고리즘은 해시 함수일 수 있다. 다만, 전자 서명은 반드시 접근 제어 정보의 마지막에 첨부되어야 하는 것은 아니며, 전자 서명 및 실행 파일의 구별이 가능하다면, 전자 서명은 실행 파일의 앞에 첨부될 수도 있다.
이에 따라, 저장부(110)는 설치 과정을 통해 애플리케이션, 애플리케이션에 포함된 적어도 하나의 실행 파일, 각 실행 파일에 포함된 적어도 하나의 접근 제어 정보 및 변조 여부 확인을 위한 전자 서명을 저장할 수 있다.
한편, 상기한 바와 같은 애플리케이션 패키지의 상세한 구조는 이하 도 3을 참조하여 자세히 설명하기로 한다.
프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어하기 위한 구성이다. 구체적으로, 프로세서(130)는 저장부(110)에 저장된 각종 프로그램을 이용하여 전자 장치(100)의 전반적인 동작을 제어한다.
프로세서(120)는 애플리케이션에 대한 실행 명령이 입력되면, 애플리케이션에 포함된 실행 파일을 이용하여 애플리케이션을 구동할 수 있다. 이때, 프로세서(120)는 실행 파일에 포함된 접근 제어 정보에 따라 애플리케이션에 대한 리소스 접근 권한을 설정할 수 있다.
구체적으로, 프로세서(120)는 실행 파일 및 접근 제어 정보를 암호화한 전자 서명을 인증하여 실행 파일 및 접근 제어 정보의 변조 여부를 확인하고, 확인 결과에 따라 애플리케이션에 대한 리소스 접근 권한을 설정할 수 있다. 리소스 접근 권한 설정 과정에 대해서는 이하 도 6을 참조하여 자세히 설명한다.
한편, 프로세서(120)는 접근 제어 정보가 변경되면, 애플리케이션에 포함된 접근 제어 정보를 업데이트할 수 있다. 구체적으로, 복수의 실행 파일 중 적어도 하나의 실행 파일의 접근 제어 정보가 변경되면, 프로세서(120)는 애플리케이션에 포함된 복수의 접근 제어 정보 중 접근 제어 정보가 변경된 실행 파일에 포함된 접근 제어 정보만 업데이트할 수 있다.
이와 같이 본 개시에 따르면, 애플리케이션에 대한 접근 제어 정보가 별도의 파일로 구성되어 있어, 일부 접근 제어 정보가 변경되더라도 파일 전체를 업데이트 해야했던 종래에 비해, 변경된 접근 제어 정보만 업데이트 할 수 있어 업데이트에 소요되는 시간 및 메모리가 감소될 수 있다.
한편, 프로세서(120)는 데이터를 임시 저장하는 휘발성 메모리를 더 포함할 수 있다. 구체적으로, 프로세서(120)는 애플리케이션 실행 명령이 입력되면, 실행 파일 및 접근 제어 정보에 대한 변조 여부를 확인하여 애플리케이션의 리소스 접근 권한을 설정하고, 리소스 접근 권한이 부여된 실행 파일에 포함된 접근 제어 정보를 휘발성 메모리에 저장할 수 있다.
그리고, 프로세서(120)는 이후 애플리케이션 실행 명령이 다시 입력되면, 인증 과정 없이 휘발성 메모리에 저장된 접근 제어 정보를 사용하여 애플리케이션을 구동할 수 있다. 한편, 프로세서(120)는 전자 장치(100)의 전원을 껐다가 다시 켠 상태 등과 같이 휘발성 메모리에 적재되었던 데이터가 삭제된 후 애플리케이션 실행 명령을 입력하는 경우에는 실행 파일 및 접근 제어 정보에 대한 인증 과정을 수행하여 인증이 완료된 접근 제어 정보를 다시 휘발성 메모리에 저장할 수 있다.
이와 같이, 본 개시에 따르면 인증이 완료된 접근 제어 정보를 휘발성 메모리에 저장함으로써, 애플리케이션 실행에 있어서, 실행 과정 단순화 및 보안 유지의 효과를 모두 도모할 수 있다.
도 2는 도 1의 전자 장치의 구체적인 구성을 나타내는 블럭도이다.
도 2를 참조하면, 전자 장치(100)는 저장부(110), 프로세서(120) 및 리소스(130)을 포함할 수 있다.
저장부(110)는 설치된 애플리케이션의 패키지(111)(이하 애플리케이션 패키지로 기재)를 저장할 수 있다. 설명의 편의를 위해 전자 장치(100)의 저장부(110)에 하나의 애플리케이션 패키지(111)를 저장한 것으로 도시하였으나, 실제로는 애플리케이션 패키지(111)가 복수 개일 수 있다.
한편, 저장부(110)에 저장된 애플리케이션 패키지(111)는 실행 파일 패키지(112)를 포함할 수 있다. 구체적으로, 실행 파일 패키지(112)는 애플리케이션의 구동을 위한 실행 파일, 실행 파일에 포함된 접근 제어 정보 및 실행 파일과 접근 제어 정보를 암호화한 전자 서명이 포함될 수 있다. 이에 대해서는 이하 도 3을 참조하여 자세히 설명한다. 한편, 설명의 편의를 위해 애플리케이션 패키지(111)에 포함된 실행 파일 패키지(112)가 하나인 것으로 도시하였으나, 실제 구현시에는 복수의 실행 파일 패키지가 포함될 수 있다.
프로세서(120)는 RAM(121), ROM(122), CPU(123) 및 버스(124)를 포함할 수 있다. RAM(121), ROM(122) 및 CPU(123) 등은 버스(124)를 통해 서로 연결될 수 있다.
CPU(123)는 저장부(110)에 액세스하여, 저장부(110)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, CPU(123)는 명령을 해독하고, 저장부(110)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행할 수 있다.
ROM(122)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴-온 명령이 입력되어 전자 장치(100)에 전원이 공급되면, CPU(123)는 ROM(122)에 저장된 명령어에 따라 저장부(110)에 저장된 O/S를 RAM(121)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, CPU(123)는 저장부(110)에 저장된 각종 프로그램을 RAM(121)에 복사하고, RAM(121)에 복사된 프로그램을 실행시켜 각종 동작을 수행할 수 있다.
한편, 프로세서(120)는 설치된 애플리케이션에 대한 실행 명령이 입력되면, 애플리케이션에 포함된 복수의 실행 파일 및 복수의 실행 파일에 대응되는 복수의 접근 제어 정보에 대한 인증을 수행하여 애플리케이션에 대한 접근 권한을 설정할 수 있다. 이때, 프로세서(120)는 인증이 완료된 접근 제어 정보를 휘발성 메모리인 RAM(121)에 저장할 수 있다. 구체적으로, 프로세서(120)의 CPU(123)는 저장부(110)에 저장된 애플리케이션의 복수의 접근 제어 정보 중 인증이 완료되어 리소스 접근 권한이 부여된 실행 파일에 포함된 접근 제어 정보를 RAM(121)에 저장할 수 있다.
그리고, 프로세서(120)는 RAM(121)에 저장된 접근 제어 정보를 이용하여 애플리케이션이 리소스(130)에 접근하도록 할 수 있다. 여기서, 애플리케이션이 리소스(130)에 접근하는 것은, 애플리케이션의 실행 파일 및 접근 제어 정보를 이용하여 프로세서(120)가 리소스(130)의 동작을 제어하거나, 리소스(130)로부터 정보를 수집하여 처리하는 것을 의미할 수 있다.
이상에서는 프로세서(120)가 하나의 CPU(123)만을 포함하는 것으로 설명하였지만, 구현시에는 복수의 CPU(또는 DSP, SoC 등)로 구현될 수 있다.
리소스(130)는 전자 장치(100)에 구비된 구성일 수 있다. 구체적으로, 리소스는 전자 장치(100)에 구비된 GPS 칩(미도시), 비디오 프로세서(미도시), 카메라(미도시), 마이크(미도시), 스피커(미도시), 통신부(미도시), 오디오 프로세서(미도시) 및 저장부(110)에 저장된 전자 장치(100)의 위치 정보 및 파일 중 적어도 하나일 수 있다.
GPS 칩은 GPS(Grobal Positioning System) 위성으로부터 GPS 신호를 수신하여, 전자 장치(100)의 현재 위치를 산출하기 위한 구성요소이다. 프로세서(120)는 내비게이션 애플리케이션을 이용할 때나 그 밖에 사용자의 현재 위치가 필요할 경우에, GPS 칩을 이용하여 사용자 위치를 산출하여 사용하거나, GPS 칩을 이용하여 기 산출되어 저장부(110)에 저장된 전자 장치(100)의 위치 정보를 사용할 수 있다.
비디오 프로세서는 통신부를 통해 수신된 컨텐츠 또는, 저장부(110)에 저장된 컨텐츠에 포함된 비디오 데이터를 처리하기 위한 구성요소이다. 비디오 프로세서에서는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
오디오 프로세서는 통신부를 통해 수신된 컨텐츠 또는, 저장부(110)에 저장된 컨텐츠에 포함된 오디오 데이터를 처리하기 위한 구성요소이다. 오디오 프로세서에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
프로세서(120)는 멀티미디어 컨텐츠에 대한 재생 애플리케이션이 실행되면 비디오 프로세서 및 오디오 프로세서를 구동시켜, 해당 컨텐츠를 재생할 수 있다.
스피커는 오디오 프로세서에서 생성한 오디오 데이터를 출력한다.
마이크는 사용자 음성이나 기타 소리를 입력받아 오디오 데이터로 변환하기 위한 구성이다. 프로세서(120)는 마이크를 통해 입력되는 사용자 음성을 통화(call) 과정에서 이용하거나, 오디오 데이터로 변환하여 저장부(110)에 저장할 수 있다. 한편, 마이크는 복수의 위치에서 소리 입력을 받는 스테레오 마이크로 구성될 수 있다.
카메라는 사용자의 제어에 따라 정지 영상 또는 동영상을 촬상하기 위한 구성이다. 카메라는 전면 카메라, 후면 카메라와 같이 복수 개로 구현될 수 있다. 상술한 바와 같이, 카메라는 사용자의 시선 추적을 위한 실시 예에서 사용자의 이미지를 획득하기 위한 수단으로 사용될 수 있다.
카메라 및 마이크가 마련된 경우, 프로세서(120)는 마이크를 통해 입력되는 사용자 음성이나 카메라에 의해 인식되는 사용자 모션에 따라 제어 동작을 수행할 수도 있다. 즉, 전자 장치(100)는 모션 제어 모드나 음성 제어 모드로 동작할 수 있다. 모션 제어 모드로 동작하는 경우, 프로세서(120)는 카메라를 활성화시켜 사용자를 촬상하고, 사용자의 모션 변화를 추적하여 그에 대응되는 제어 동작을 수행한다. 음성 제어 모드로 동작하는 경우 프로세서(120)는 마이크를 통해 입력된 사용자 음성을 분석하고, 분석된 사용자 음성에 따라 제어 동작을 수행하는 음성 인식 모드로 동작할 수도 있다.
한편, 리소스는 전자 장치(100)와는 구분되는 별개의 외부 서버 또는 타 전자 장치일 수도 있다. 구체적으로, 리소스는 인터넷 사이트를 통해 접속할 수 있는 외부 서버 또는 타 전자 장치 등일 수 있다. 이에 대해서는 이하 도 4를 참조하여 자세히 설명한다.
한편, 도 2의 저장부(110) 및 프로세서(120)는 도 1에 도시된 저장부 및 프로세서와 동일한 구성인 바, 중복된 내용은 생략한다.
그 밖에, 도 2에 도시하지는 않았으나, 실시 예에 따라서는, 터치스크린 또는 터치 입력 기능이 없는 디스플레이, 전자 장치(100) 내에 USB 커넥터가 연결될 수 있는 USB 포트나, 헤드셋, 마우스, LAN 등과 같은 다양한 외부 단자와 연결하기 위한 다양한 외부 입력 포트, DMB(Digital Multimedia Broadcasting) 신호를 수신하여 처리하는 DMB 칩, 다양한 센서 등을 더 포함할 수 있음은 물론이다.
도 3은 본 개시의 일 실시 예에 따른 실행 파일 패키지 구조를 나타내는 도면이다.
도 3을 참조하면, 실행 파일 패키지(112)는 실행 파일(310), 접근 제어 정보(320) 및 전자 서명(340)을 포함한다.
실행 파일(310)에는 애플리케이션 구동을 위한 다양한 명령어가 포함될 수 있다. 그리고, 실행 파일(310)은 애플리케이션 구동시 필요한 리소스에 대한 접근 제어 정보(320)를 포함할 수 있다. 구체적으로, 접근 제어 정보(320)는 실행 파일(310)의 마지막에 첨부될 수 있다. 그러나 이에 한정되지 않고, 실행 파일(310)의 처음에 첨부될 수도 있다.
한편, 실행 파일(310)에 첨부되는 접근 제어 정보(320)는 실행 파일(310)을 이용하여 애플리케이션을 구동하는 경우 필요한 리소스에 대한 정보만을 포함할 수 있다. 구체적으로, 타 실행 파일을 이용하여 애플리케이션을 구동하는 경우 필요한 리소스에 대한 정보는 타 실행 파일에 첨부되는 접근 제어 정보에 포함될 수 있다.
실행 파일(310)은 실행 파일(310) 및 접근 제어 정보(320)를 기설정된 알고리즘에 기초하여 암호화한 전자 서명(340)을 더 포함할 수 있다. 여기서, 기설정된 알고리즘은 해시 함수를 포함할 수 있다. 구체적으로, 전자 서명(340)은, 실행 파일(310) 및 접근 제어 정보(320)에 대한 해시 코드(330)를 개인키(private key)를 이용하여 암호화환 값일 수 있다. 이때, 해시 코드(330)는, 실행 파일(310) 및 접근 제어 정보(320)에 대하여 해시 함수를 이용하여 산출된 것일 수 있다.
한편, 이상에서는 해시 코드 및 개인키를 이용하여 전자 서명을 생성하는 것으로 한정하여 설명하였으나, 이에 한정되지 않고, 데이터를 암호화하는 기술은 어떤 것이든 사용할 수 있다.
이와 같이, 본 개시에 따르면 실행 파일 및 실행 파일에 대한 접근 제어 정보를 함께 암호화하여 생성된 전자 서명이 첨부됨으로써, 전자 장치는 실행 파일 별로 변조 여부를 확인할 수 있고, 일부 파일에 변조가 확인 된 경우, 애플리케이션 전체가 아닌 변조가 확인된 실행 파일에 대해서만 리소스에 대한 접근을 제한하여 애플리케이션을 보다 효율적으로 구동할 수 있게 한다.
도 4는 본 개시의 일 실시 예에 따른 전자 장치의 접근 제어 시스템을 설명하기 위한 도면이다. 구체적으로, 도 4는 애플리케이션의 구동에 필요한 리소스가 전자 장치와는 구분되는 외부 서버 또는 타 전자 장치인 실시 예를 나타낸 것이다. 이는 방화벽(firewall)에 적용 가능한 실시 예로, 애플리케이션이 네트워크를 통해 전자 장치(100)의 외부에 존재하는 리소스에 접근하는 것을 제어하여, 정보 유출, 시스템 파괴 등의 보안 문제를 사전에 방지할 수 있다.
도 4를 참조하면, 본 실시 예에 따른 접근 제어 시스템은 전자 장치(100), 외부 서버(200) 및 전자 장치(100)와 외부 서버(200)를 연결하는 네트워크(10)를 포함할 수 있다.
전자 장치(100)는 저장부(110) 및 프로세서(120)를 포함할 수 있다. 이때, 저장부(110)는 실행 파일 패키지(112)를 포함한 애플리케이션 패키지(111)를 저장할 수 있다. 여기서, 실행 파일 패키지(112)는 실행 파일, 접근 제어 정보 및 전자 서명을 포함할 수 있다. 실행 파일 패키지(112)의 구조는 도 3에 도시된 바, 중복된 설명은 생략한다.
프로세서(120)는 애플리케이션 실행 명령이 입력되면, 실행 파일 패키지(112)에 포함된 전자 서명을 인증하여 실행 파일에 접근 권한을 설정할 수 있다. 이때, 접근 권한은, 애플리케이션이 전자 장치(100)의 외부에 존재하는 외부 서버(200)에 접근하는 것의 허용 여부에 대한 것일 수 있다. 그리고, 프로세서(120)는 접근 권한이 부여된 실행 파일의 접근 제어 정보를 이용하여 애플리케이션이 외부 서버(200)에 접근하도록 할 수 있다. 여기서, 애플리케이션이 외부 서버(200)에 접근한다는 것은, 애플리케이션의 실행 파일 및 접근 제어 정보를 이용하여 프로세서(120)가 외부 서버(200)에 접근하여 외부 서버(200)의 동작을 제어하거나, 외부 서버(200)로부터 정보를 수집하여 처리하는 것을 의미할 수 있다.
한편, 프로세서(120)는 네트워크(10)를 통하여 외부 서버(200)에 접근할 수 있다. 도 4에서는 설명의 편의를 위하여 네트워크(10)가 인터넷인 것으로 도시하고 설명하였으나, 이에 한정되지 않고, 로컬 네트워크 등 다양한 네트워크가 사용될 수 있다. 이에 따라, 외부 서버(200)는 인터넷 사이트를 통해 접속할 수 있는 서버일 수 있고, 로컬 네트워크를 통해 연결될 수 있는 타 전자 장치일 수도 있다.
한편, 도 4에서는 설명의 편의를 위하여 프로세서(120)가 네트워크(10)를 통해 외부 서버(200)에 접근하는 것으로 도시하였으나, 실제 구현시에는 프로세서(120)가 유선 또는 무선 네트워크를 통해 외부 서버(200)에 접근하도록 미도시된 통신부를 제어하는 형태로 구현될 수도 있다.
한편, 도 4에서의 전자 장치(100)는 도 1 내지 도 3의 전자 장치와 동일한 구성인 바, 중복된 설명은 생략한다.
도 5는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 5를 참조하면, 전자 장치는 실행 파일을 저장한다(S510). 구체적으로, 전자 장치는 애플리케이션을 설치하여, 애플리케이션에 대한 접근 제어 정보를 포함하는 실행 파일을 저장할 수 있다. 이때, 접근 제어 정보는 접근 제어 정보가 첨부되는 실행 파일에 대한 정보이고, 타 실행 파일에 대한 접근 제어 정보는 포함하지 않을 수 있다.
그 다음, 전자 장치는 실행 명령을 입력받을 수 있다(S520). 구체적으로, 전자 장치는 애플리케이션에 대한 실행 명령을 전자 장치에 구비된 입력부를 통해 입력받을 수 있다. 여기서 입력부는 사용자의 터치 입력을 수신할 수 있는 터치 스크린, 전자 장치에 구비된 물리 버튼, 마우스 또는 키보드의 입력을 수신할 수 있는 입력 포트 등일 수 있다.
그 다음, 전자 장치는 애플리케이션 프로그램에 포함된 실행 파일의 리소스에 대한 접근 권한을 제어할 수 있다(S530). 구체적으로, 전자 장치는 애플리케이션에 포함된 실행 파일, 접근 제어 정보 및 전자 서명을 이용하여 실행 파일 및 접근 제어 정보의 변조 여부를 확인하고, 실행 파일 및 접근 제어 정보가 변조되지 않은 것으로 인증되면, 애플리케이션 프로그램에 포함된 실행 파일의 리소스에 대한 접근 권한을 부여할 수 있다. 구체적으로는, 변조되지 않은 실행 파일에 리소스 접근 권한을 부여하는 것일 수 있다. 한편, 실행 파일 및 접근 제어 정보가 변조된 것으로 확인되면, 전자 장치는 변조된 실행 파일에 대한 리소스 접근을 제한할 수 있다.
그 다음, 전자 장치는 설정된 리소스 접근 권한 및 애플리케이션에 대응되는 실행 파일을 이용하여 애플리케이션을 구동할 수 있다(S540). 구체적으로, 전자 서명 인증을 통해 변조되지 않은 실행 파일에 리소스 접근 권한이 부여되면, 전자 장치는 부여된 리소스 접근 권한 및 실행 파일을 이용하여 애플리케이션을 구동할 수 있다.
이와 같이, 본 개시에 따르면 실행 파일 별로 접근 제어 정보를 포함하고, 이를 암호화한 전자 서명의 인증을 통해 접근 권한을 부여함으로써, 실행 파일 별 변조 여부에 대한 확인이 용이해지고, 이에 따라 변조된 실행 파일을 포함하는 애플리케이션 실행시 발생되는 보안 문제로부터의 보호가 강화될 수 있다.
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 전자 서명 인증 방법을 나타내는 흐름도이다.
도 6을 참조하면, 우선 전자 장치는 애플리케이션 실행 명령을 입력받을 수 있다(S610).
그 다음, 전자 장치는 애플리케이션에 대한 리소스 접근 권한을 설정하기 위해 전자 서명을 인증할 수 있다. 구체적으로, 전자 장치는 애플리케이션 실행 명령이 입력된 후, 해시 함수를 이용하여 실행 파일(310) 및 실행 파일(310)에 포함된 접근 제어 정보(320)에 대한 해시 코드를 산출할 수 있다(S620).
그 다음, 전자 장치는 전자 서명(340)을 공개키(public key)로 복호화하여 해시 코드를 산출할 수 있다(S630). 이때, 전자 서명(340)은 애플리케이션 제작 당시 실행 파일(310) 및 접근 제어 정보(320)에 대해 산출된 해시 코드를 애플리케이션 제작자의 개인키에 의해 암호화한 것일 수 있다.
그 다음, 전자 장치는 S620 단계에서 산출된 해시 코드와 S630 단계에서 전자 서명(340)을 복호화하여 산출된 해시 코드를 비교하여 변조 여부를 판단할 수 있다(S640).
이때, S620 단계에서 산출된 해시 코드와 S630 단계에서 전자 서명(340)을 복호화하여 산출된 해시 코드가 불일치하면, 전자 장치는 실행 파일(310) 및 접근 제어 정보(320) 중 적어도 하나가 변조된 것으로 판단하고(S640-Y), 변조된 실행 파일의 리소스에 대한 접근을 제한할 수 있다(S650).
한편, S620 단계에서 산출된 해시 코드와 S630 단계에서 전자 서명(340)을 복호화하여 산출된 해시 코드가 일치하면, 전자 장치는 실행 파일(310) 및 접근 제어 정보(320)가 변조되지 않은 것으로 판단하고(S640-N), 정상 실행 파일임이 인증된 실행 파일에 리소스에 대한 접근 권한을 부여할 수 있다(S660).
이때, 도시되지는 않았지만, 전자 장치는 리소스 접근 권한이 부여된 실행 파일의 접근 제어 정보를 프로세서의 휘발성 메모리에 임시 저장할 수 있다.
이와 같이, 본 개시의 다양한 실시 예에 따르면 실행 파일 별로 접근 제어 정보를 포함하고, 이를 암호화한 전자 서명의 인증을 통해 접근 권한을 부여함으로써, 실행 파일 별 변조 여부에 대한 확인이 용이해지고, 이에 따라 변조된 실행 파일을 포함하는 애플리케이션 실행시 발생되는 보안 문제로부터의 보호가 강화될 수 있다.
또한, 상술한 바와 같은 전자 장치의 제어 방법은, 상술한 바와 같은 제어 방법을 실행하기 위한 적어도 하나의 실행 프로그램(또는 애플리케이션)으로 구현될 수 있으며, 이러한 실행 프로그램은 컴퓨터 판독가능 기록매체(computer readable medium)에 저장되어 제공될 수 있다.
컴퓨터 판독가능 기록매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 애플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 판독 가능 매체에 저장되어 제공될 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어 져서는 안 될 것이다.
100 : 전자 장치 110 : 저장부
120 : 프로세서

Claims (17)

  1. 전자 장치에 있어서,
    실행 파일 및 상기 실행 파일에 의한 상기 전자 장치의 리소스에 대한 접근 제어 정보를 포함하는 애플리케이션 프로그램을 저장하는 저장부; 및
    상기 애플리케이션 프로그램에 대한 실행 명령이 입력되면, 상기 애플리케이션 프로그램의 실행 파일을 실행하고, 상기 애플리케이션 프로그램에 포함된 접근 제어 정보에 따라 상기 전자 장치의 리소스에 대한 상기 실행 파일의 접근 권한을 제어하는 프로세서;를 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 접근 제어 정보는,
    상기 실행 파일에 포함된 전자 장치.
  3. 제1항에 있어서,
    상기 실행 파일은 상기 실행 파일 및 상기 접근 제어 정보를 기설정된 알고리즘에 기초하여 암호화한 전자 서명을 더 포함하고,
    상기 프로세서는,
    상기 전자 서명을 이용하여, 상기 실행 파일 및 상기 접근 제어 정보의 변조 여부를 판단하고, 상기 판단된 변조 여부에 따라 상기 전자 장치의 리소스에 대한 접근 권한을 상기 애플리케이션 프로그램에 부여하는 전자 장치.
  4. 제3항에 있어서,
    상기 기설정된 알고리즘은 해시 함수를 포함하고,
    상기 전자 서명은,
    상기 해시 함수를 이용하여 산출된 상기 실행 파일 및 상기 접근 제어 정보에 대한 해시 코드를, 개인키(private key)를 이용하여 암호화한 값인 전자 장치.
  5. 제4항에 있어서,
    상기 저장부는,
    상기 개인키와 대응되는 공개키(public key)를 저장하며,
    상기 프로세서는,
    상기 애플리케이션 프로그램 실행 명령이 입력되면, 상기 해시 함수를 이용하여 상기 실행 파일 및 상기 접근 제어 정보에 대한 해시 코드를 산출하고, 상기 실행 명령이 입력된 후 산출된 해시 코드와 상기 공개키를 이용하여 상기 전자 서명을 복호화한 해시 코드를 비교하여 변조 여부를 판단하는 전자 장치.
  6. 제1항에 있어서,
    상기 전자 장치의 리소스는,
    상기 전자 장치의 위치 정보, 카메라, 마이크, 스피커, 저장된 파일 및 상기 전자 장치와 연결된 외부 서버 중 적어도 하나를 포함하는 전자 장치.
  7. 제1항에 있어서,
    상기 애플리케이션 프로그램은 적어도 하나의 접근 제어 정보를 각각 포함하는 복수의 실행 파일을 포함하고,
    상기 프로세서는,
    복수의 접근 제어 정보 중 적어도 하나의 접근 제어 정보가 변경되면, 상기 복수의 실행 파일 중 상기 접근 제어 정보가 변경된 실행 파일에 포함된 접근 제어 정보만 업데이트하는 전자 장치.
  8. 제1항에 있어서,
    상기 프로세서는,
    데이터를 임시 저장하는 휘발성 메모리를 더 포함하고, 리소스 접근 권한이 부여된 실행 파일에 포함된 접근 제어 정보를 상기 휘발성 메모리에 저장하는 전자 장치.
  9. 전자 장치의 제어 방법에 있어서,
    실행 파일 및 상기 실행 파일에 의한 상기 전자 장치의 리소스에 대한 접근 제어 정보를 포함하는 애플리케이션 프로그램을 저장하는 단계;
    상기 애플리케이션 프로그램에 대한 실행 명령을 입력받는 단계;
    상기 애플리케이션 프로그램에 포함된 접근 제어 정보에 따라 상기 실행 파일의 상기 전자 장치의 리소스에 대한 상기 실행 파일의 접근 권한을 제어하는 단계; 및
    상기 실행 파일 및 상기 리소스에 대한 상기 실행 파일의 접근 권한을 이용하여 상기 애플리케이션 프로그램을 구동하는 단계;를 포함하는 전자 장치의 제어 방법.
  10. 제9항에 있어서,
    상기 접근 제어 정보는,
    상기 실행 파일에 포함된 전자 장치의 제어 방법.
  11. 제9항에 있어서,
    상기 실행 파일은 상기 실행 파일 및 상기 접근 제어 정보를 기설정된 알고리즘에 기초하여 암호화한 전자 서명을 더 포함하고,
    상기 리소스 접근 권한을 제어하는 단계는,
    상기 전자 서명을 이용하여, 상기 실행 파일 및 상기 접근 제어 정보의 변조 여부를 판단하는 단계; 및
    상기 판단된 변조 여부에 따라 상기 전자 장치의 리소스에 대한 접근 권한을 상기 애플리케이션 프로그램에 부여하는 단계;를 포함하는 전자 장치의 제어 방법.
  12. 제11항에 있어서,
    상기 기설정된 알고리즘은 해시 함수를 포함하고,
    상기 전자 서명은,
    상기 해시 함수를 이용하여 산출된 상기 실행 파일 및 상기 접근 제어 정보에 대한 해시 코드를, 개인키(private key)를 이용하여 암호화한 값인 전자 장치의 제어 방법.
  13. 제12항에 있어서,
    상기 개인키와 대응되는 공개키(public key)를 저장하는 단계;를 더 포함하고,
    상기 변조 여부를 판단하는 단계는,
    상기 애플리케이션 프로그램 실행 명령이 입력되면, 상기 해시 함수를 이용하여 상기 실행 파일 및 상기 접근 제어 정보에 대한 해시 코드를 산출하는 단계;
    상기 공개키를 이용하여 상기 전자 서명을 복호화하는 단계; 및
    상기 실행 명령이 입력된 후 산출된 해시 코드와 상기 전자 서명을 복호화한 해시 코드를 비교하여 변조 여부를 판단하는 단계;를 포함하는 전자 장치의 제어 방법.
  14. 제11항에 있어서,
    상기 전자 장치의 리소스는,
    상기 전자 장치의 위치 정보, 카메라, 마이크, 스피커, 저장된 파일 및 상기 전자 장치와 연결된 외부 서버 중 적어도 하나를 포함하는 전자 장치의 제어 방법.
  15. 제11항에 있어서,
    상기 애플리케이션 프로그램은 적어도 하나의 접근 제어 정보를 각각 포함하는 복수의 실행 파일을 포함하고,
    복수의 접근 제어 정보 중 적어도 하나의 접근 제어 정보가 변경되면, 상기 복수의 실행 파일 중 상기 접근 제어 정보가 변경된 실행 파일에 포함된 접근 제어 정보만 업데이트하는 단계;를 더 포함하는 전자 장치의 제어 방법.
  16. 제11항에 있어서,
    상기 애플리케이션 프로그램 실행 명령이 입력되면, 리소스 접근 권한이 부여된 실행 파일에 포함된 접근 제어 정보를 휘발성 메모리에 임시 저장하는 단계;를 더 포함하는 전자 장치의 제어 방법.
  17. 전자 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서,
    상기 제어 방법은,
    실행 파일 및 상기 실행 파일에 의한 상기 전자 장치의 리소스에 대한 접근 제어 정보를 포함하는 애플리케이션 프로그램을 저장하는 단계;
    상기 애플리케이션 프로그램에 대한 실행 명령을 입력받는 단계;
    상기 애플리케이션 프로그램에 포함된 접근 제어 정보에 따라 상기 실행 파일의 상기 전자 장치의 리소스에 대한 상기 실행 파일의 접근 권한을 제어하는 단계; 및
    상기 실행 파일 및 상기 리소스에 대한 상기 실행 파일의 접근 권한을 이용하여 상기 애플리케이션 프로그램을 구동하는 단계;를 포함하는 컴퓨터 판독가능 기록 매체.



KR1020160176452A 2016-12-22 2016-12-22 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체 KR20180073041A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160176452A KR20180073041A (ko) 2016-12-22 2016-12-22 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체
US15/852,774 US20180181727A1 (en) 2016-12-22 2017-12-22 Electronic device, method for controlling thereof and computer-readable recording medium
PCT/KR2017/015382 WO2018117747A1 (en) 2016-12-22 2017-12-22 Electronic device, method for controlling thereof and computer-readable recording medium
EP17883588.0A EP3523745B1 (en) 2016-12-22 2017-12-22 Electronic device, method for controlling thereof and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160176452A KR20180073041A (ko) 2016-12-22 2016-12-22 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체

Publications (1)

Publication Number Publication Date
KR20180073041A true KR20180073041A (ko) 2018-07-02

Family

ID=62627575

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160176452A KR20180073041A (ko) 2016-12-22 2016-12-22 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체

Country Status (4)

Country Link
US (1) US20180181727A1 (ko)
EP (1) EP3523745B1 (ko)
KR (1) KR20180073041A (ko)
WO (1) WO2018117747A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200051977A (ko) * 2018-11-06 2020-05-14 전자부품연구원 분석엔진 운용 시스템, 장치 및 이의 분석엔진 갱신 방법

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
US7213266B1 (en) * 2000-06-09 2007-05-01 Intertrust Technologies Corp. Systems and methods for managing and protecting electronic content and applications
US20070277037A1 (en) * 2001-09-06 2007-11-29 Randy Langer Software component authentication via encrypted embedded self-signatures
US7380120B1 (en) * 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7272228B2 (en) * 2003-06-12 2007-09-18 International Business Machines Corporation System and method for securing code and ensuring proper execution using state-based encryption
WO2005008385A2 (en) * 2003-07-07 2005-01-27 Cryptography Research, Inc. Reprogrammable security for controlling piracy and enabling interactive content
US7293253B1 (en) * 2003-09-12 2007-11-06 Nortel Networks Limited Transparent interface migration using a computer-readable mapping between a first interface and a second interface to auto-generate an interface wrapper
US8352738B2 (en) * 2006-12-01 2013-01-08 Carnegie Mellon University Method and apparatus for secure online transactions
US8850211B2 (en) * 2009-04-27 2014-09-30 Qualcomm Incorporated Method and apparatus for improving code and data signing
US8255991B1 (en) * 2009-08-17 2012-08-28 Google Inc. Computer application pre-permissioning
KR101453742B1 (ko) * 2010-05-14 2014-10-22 에스케이플래닛 주식회사 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
US20110302655A1 (en) * 2010-06-08 2011-12-08 F-Secure Corporation Anti-virus application and method
US8782435B1 (en) * 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
US9053337B2 (en) * 2011-06-07 2015-06-09 Blackberry Limited Methods and devices for controlling access to a computing resource by applications executable on a computing device
US8832447B2 (en) * 2011-08-10 2014-09-09 Sony Corporation System and method for using digital signatures to assign permissions
US20130097659A1 (en) * 2011-10-17 2013-04-18 Mcafee, Inc. System and method for whitelisting applications in a mobile network environment
US8874634B2 (en) * 2012-03-01 2014-10-28 Motorola Mobility Llc Managing adaptive streaming of data via a communication connection
US9317689B2 (en) * 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
JP5912175B2 (ja) * 2012-08-21 2016-04-27 ソニー株式会社 情報処理装置、情報処理方法、プログラムおよびサーバ装置
US9594896B2 (en) * 2012-12-21 2017-03-14 Blackberry Limited Two factor authentication using near field communications
KR102180529B1 (ko) * 2013-03-13 2020-11-19 삼성전자주식회사 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치
KR20140112392A (ko) * 2013-03-13 2014-09-23 삼성전자주식회사 어플리케이션 접근 제어 방법 및 이를 구현하는 전자장치
US20140380445A1 (en) * 2013-03-17 2014-12-25 David Tunnell Universal Authentication and Data Exchange Method, System and Service
EP2979392B1 (en) * 2013-03-27 2019-08-14 Irdeto B.V. A challenge-response method and associated client device
US9270674B2 (en) * 2013-03-29 2016-02-23 Citrix Systems, Inc. Validating the identity of a mobile application for mobile application management
RU2635271C2 (ru) * 2015-03-31 2017-11-09 Закрытое акционерное общество "Лаборатория Касперского" Способ категоризации сборок и зависимых образов
WO2017035268A1 (en) * 2015-08-24 2017-03-02 Ricardo Richard Frederick Data obfuscation method and service using unique seeds
US10581601B2 (en) * 2016-03-24 2020-03-03 Vincent Ramoutar Secure wireless communication device and method
KR102035312B1 (ko) * 2016-04-25 2019-11-08 (주)이스톰 사용자 중심의 인증 방법 및 시스템
US10210334B2 (en) * 2016-10-04 2019-02-19 Dell Products L.P. Systems and methods for software integrity assurance via validation using build-time integrity windows

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200051977A (ko) * 2018-11-06 2020-05-14 전자부품연구원 분석엔진 운용 시스템, 장치 및 이의 분석엔진 갱신 방법

Also Published As

Publication number Publication date
EP3523745A1 (en) 2019-08-14
EP3523745B1 (en) 2021-08-25
US20180181727A1 (en) 2018-06-28
EP3523745A4 (en) 2019-08-14
WO2018117747A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
US10733304B2 (en) Method and apparatus for protecting digital content using device authentication
JP5940159B2 (ja) 非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置
CN101578609B (zh) 安全启动计算设备
US20160277186A1 (en) Securely recovering a computing device
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
KR102324336B1 (ko) 사용자 장치 및 그것에 대한 무결성 검증 방법
US20170288878A1 (en) Image processing apparatus and control method thereof
CN109657448B (zh) 一种获取Root权限的方法、装置、电子设备及存储介质
US9721102B2 (en) Boot mechanisms for bring your own management
JP2011210129A (ja) 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
KR20150017844A (ko) 페이지 구성 방법 및 이를 지원하는 전자 장치
KR20120123885A (ko) 저장 장치의 인증 장치 및 인증 장치 연결 수단을 구비한 저장 장치
KR102180529B1 (ko) 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치
KR101757407B1 (ko) 바이너리 병합 장치, 방법 및 컴퓨터 프로그램
CN114880011A (zh) Ota升级方法、装置、电子设备及可读存储介质
EP3523745B1 (en) Electronic device, method for controlling thereof and computer-readable recording medium
CN110851881B (zh) 终端设备的安全检测方法及装置、电子设备及存储介质
KR20190033930A (ko) 보안 정보를 암호화하는 전자 장치 및 그 작동 방법
KR101745821B1 (ko) 시큐어 부팅 방법 및 시스템
KR20210026233A (ko) 디바이스 리소스에 대한 접근을 제어하기 위한 전자 장치 및 그의 동작 방법
WO2019209893A1 (en) Operating system on a computing system
KR20150053277A (ko) 소프트웨어의 실행을 제어하기 위한 장치 및 그 방법
US10379833B2 (en) Method and apparatus for installation of trusted application in electronic device
CN113420340A (zh) 信息记录装置、计算机设备及信息记录方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal