KR20160140159A - 전자 장치 및 커널 데이터 접근 방법 - Google Patents

전자 장치 및 커널 데이터 접근 방법 Download PDF

Info

Publication number
KR20160140159A
KR20160140159A KR1020150076420A KR20150076420A KR20160140159A KR 20160140159 A KR20160140159 A KR 20160140159A KR 1020150076420 A KR1020150076420 A KR 1020150076420A KR 20150076420 A KR20150076420 A KR 20150076420A KR 20160140159 A KR20160140159 A KR 20160140159A
Authority
KR
South Korea
Prior art keywords
area
kernel
data
normal
secure
Prior art date
Application number
KR1020150076420A
Other languages
English (en)
Other versions
KR102327782B1 (ko
Inventor
공선준
강병훈
Original Assignee
삼성전자주식회사
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 한국과학기술원 filed Critical 삼성전자주식회사
Priority to KR1020150076420A priority Critical patent/KR102327782B1/ko
Priority to US15/166,909 priority patent/US20160350543A1/en
Publication of KR20160140159A publication Critical patent/KR20160140159A/ko
Application granted granted Critical
Publication of KR102327782B1 publication Critical patent/KR102327782B1/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Automation & Control Theory (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

전자 장치의 커널 데이터 접근 방법은 상기 전자 장치가 부팅되면, 부팅 시에 노멀 영역에 포함된 커널 심볼에 관한 데이터를 보안 영역에 전송하는 동작; 노멀 영역 커널 데이터 관찰(observation) 요청이 있는지 판단하는 동작; 상기 노멀 영역 커널 데이터 관찰 요청이 있으면, 상기 노멀 영역 커널 데이터를 저장할 수 있는 상기 보안 영역의 가상 메모리 주소 공간의 할당을 조정하는 동작; 상기 노멀 영역 커널 데이터를 상기 노멀 영역에서 상기 보안 영역으로 전송하는 동작; 상기 노멀 영역 커널 데이터를 상기 보안 영역의 가상 주소 공간에 로드(load)하고, 상기 커널 심볼에 관한 데이터와 상기 노멀 영역 커널 데이터를 링크하는 동작; 및 상기 보안 영역의 가상 주소 공간에 로드된 상기 노멀 영역 커널 데이터를 관찰하는 동작을 포함한다.

Description

전자 장치 및 커널 데이터 접근 방법{ELECTRONIC DEVICE AND METHOD FOR APPROACHING TO KERNEL DATA}
본 발명은 보안 영역의 소프트웨어가 노멀 영역에서 동작하는 커널 데이터를 효율적으로 접근하는 방법 및 이 방법을 포함하는 전자 장치에 관한 것이다.
최근 스마트 폰, 태블릿 PC와 같은 휴대형 전자 장치가 대중화됨에 따라 전자 장치의 하드웨어 및 소프트웨어 또한 비약적으로 발전하여 휴대형 전자 장치의 사용 환경은 PC와 유사해지고 있다. 또한, 인터넷, 앱 스토어 등으로부터 다양한 애플리케이션을 다운로드하여 사용자가 원하는 편리한 기능이 제공되고 있다.
반면, 다양한 애플리케이션이 다운로드 됨에 따라 악성코드, 스파이웨어 등을 포함하는 악성 애플리케이션이 휴대형 전자 장치로 유입되어 네트워크 트래픽, 시스템 성능 저하, 파일 삭제, 개인 정보 유출 등의 사이버 공격의 피해를 입히고 있다.
이러한 사이버 공격에서, 커널(Kernel)이 공격 당하면, 사이버 공격자가 악의적으로 바이러스 백신을 우회하거나, 개인 정보가 유출될 수 있어, 커널의 무결성(integrity)를 보장해야 한다. 사이버 공격으로부터 커널의 무결성을 보장하기 위해, AP(Application)와 같은 프로세서는 노멀 영역(Normal World)와 보안 영역(Secure World)으로 실행영역을 분리하여 동작하고, 노멀 영역에서 보안 영역의 리소스 접근을 제한하고 보안 영역 상의 검수 도구(introspection tool)을 이용하여 커널의 무결성을 보호할 수 있다.
프로세서가 노멀 영역과 보안 영역으로 실행환경을 분리하더라도, 노멀 영역의 저장된 커널의 무결성 검사나 전자 장치의 인증과 같은 동작을 위해서, 노멀 영역과 보안 영역 간에 통신이 필요한 경우가 있다.
다만, 노멀 영역과 보안 영역은 서로 다른 가상주소 공간을 가지고 있어, 노멀 영역의 데이터를 보안 영역으로 전송하기 위해서는 다음과 같은 과정을 거쳐야 한다.
노멀 영역의 커널의 가상주소 공간 상에 보안 영역으로 전송할 데이터를 쓰고, 해당 가상주소에 해당하는 물리주소를 보안 영역에 알려준다. 보안 영역은 상기 물리주소에 해당하는 메모리 프레임을 페이지테이블에 맵핑하여 가상주소를 생성하고 이 주소를 통해 데이터를 읽는다.
또, 보안 영역에서 노멀 영역 상의 커널 데이터 구조에 접근하는 경우, 노멀 영역의 데이터 구조에 관한 가상주소를 물리주소로 변환한 후 이를 보안 영역의 페이지테이블에 맵핑하여 보안 영역 상의 가상주소로 접근해야 된다.
이와 같이, 복잡한 과정을 수반하는 문제가 있어 오류가 발생하기 쉬우며, 데이터 공유 시마다 보안 영역 상의 페이지테이블 맵핑 과정이 필요하므로 프로세서 성능을 저하시킨다.
본 발명의 실시예에 따른 커널 데이터 접근 방법 및 이 방법을 포함하는 전자 장치는 이중 메모리 주소 공간 접근법(Dual Memory Space Accessing, DMSA)으로 노멀 영역의 커널 데이터에 접근할 수 있는 방법을 제공한다.
본 발명의 실시예에 따른 전자 장치의 커널 데이터 접근 방법은 상기 전자 장치가 부팅되면, 부팅 시에 노멀 영역에 포함된 커널 심볼에 관한 데이터를 보안 영역에 전송하는 동작; 노멀 영역 커널 데이터 관찰(observation) 요청이 있는지 판단하는 동작; 상기 노멀 영역 커널 데이터 관찰 요청이 있으면, 상기 노멀 영역 커널 데이터를 저장할 수 있는 상기 보안 영역의 가상 메모리 주소 공간의 할당을 조정하는 동작; 상기 노멀 영역 커널 데이터를 상기 노멀 영역에서 상기 보안 영역으로 전송하는 동작; 상기 노멀 영역 커널 데이터를 상기 보안 영역의 가상 주소 공간에 로드(load)하고, 상기 커널 심볼에 관한 데이터와 상기 노멀 영역 커널 데이터를 링크하는 동작; 및 상기 보안 영역의 가상 주소 공간에 로드된 상기 노멀 영역 커널 데이터를 관찰하는 동작을 포함할 수 있다.
본 발명의 실시예에 따른 전자 장치는 표시부; 무선통신부; 노멀 영역 및 보안 영역으로 구성되며 저장부; 및 프로세서를 포함하며, 상기 프로세서는 부팅 시에 상기 노멀 영역에 포함된 커널 심볼에 관한 데이터를 상기 보안 영역에 전송하게 제어하고, 노멀 영역 커널 데이터 관찰(observation) 요청이 있는지 판단하며, 상기 노멀 영역 커널 데이터 관찰 요청이 있으면, 상기 노멀 영역 커널 데이터를 저장할 수 있는 상기 보안 영역의 가상 메모리 주소 공간의 할당을 조정하며, 상기 노멀 영역 커널 데이터를 상기 노멀 영역에서 상기 보안 영역으로 전송하게 제어하며, 상기 노멀 영역 커널 데이터를 상기 보안 영역의 가상 주소 공간에 로드(load)하고, 상기 커널 심볼에 관한 데이터와 상기 노멀 영역 커널 데이터를 링크하게 제어하며, 상기 보안 영역의 가상 주소 공간에 로드된 상기 노멀 영역 커널 데이터를 관찰할 수 있다.
본 발명의 다양한 실시예에 따른 접근 방법 및 이 방법을 포함하는 전자 장치는 이중 메모리 주소 공간 접근법(Dual Memory Space Accessing, DMSA)을 이용하여 노멀 영역의 커널 데이터에 접근함으로써, 프로세서의 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 전자 장치의 커널 데이터 접근 방법을 나타내는 순서도이다.
도 3은 본 발명의 일 실시예에 따른 전자 장치의 기능적 아키텍쳐를 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 전자 장치의 이중 메모리 주소 공간 접근법에 관한 아키텍쳐를 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 가상주소 맵핑 방법에 관한 아키텍쳐를 설명하는 도면이다.
이하, 본 개시의 다양한 실시예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시예의 다양한 변경 (modification), 균등물 (equivalent), 및/또는 대체물 (alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 발명의 일 실시예에 따른 전자 장치(100)는 컴퓨팅 리소스를 가지는 장치로서 예를 들어, 스마트 폰, 태블릿 PC, 디지털 카메라, 컴퓨터 모니터, PDA(Personal Digital Assistant), 전자 수첩, 데스크 탑 PC, PMP(Portable Multimedia Player), 미디어 플레이어(Media Player)(예를 들어, MP3 플레이어), 음향기기, 손목시계, 게임용 단말기, 웨어러블 디바이스, 가전기기(예를 들어, 냉장고, TV, 세탁기) 등을 포함할 수 있다.
본 발명의 일 실시예에 따른 전자 장치(100)는 보안 영역(secure world) 및 노멀 영역(normal world)을 가질 수 있다. 하드웨어(예를 들어, 메모리, CPU, AP 등)는 물리적으로 또는 논리적으로 여러 개의 영역(area)들로 구분될 수 있는데, 이러한 영역들 중 하나가 보안 영역에 해당할 수 있다. 보안 영역은 보안 기술이 적용된 운영체제와 이에 기반하여 동작하는 하드웨어 및 소프트웨어를 포함하여 구성될 수 있다. 전자 장치(100)는 이러한 보안 영역 내에서 메모리 덤프(memory dump), 변조와 같은 공격으로부터 안전하게 보호될 수 있다. 노멀 영역은 하드웨어 영역들 주 어느 하나가 될 수 있다. 또한 노멀 영역은 일반적인 운영체제(예를 들어, 안드로이드, 리눅스, 윈도우 등)와 이에 기반하여 동작하는 하드웨어 및 소프트웨어를 포함하여 구성될 수 있다.
본 발명의 일 실시예에서, 노멀 영역은 REE(Rich Execution Environment)로 불릴 수 있고, 보안 영역은 TEE(Trusted Execution Environment)라 불릴 수 있다.
본 발명의 일 실시예에서 애플리케이션은 클라이언트 애플리케이션(client application)과 신뢰된 애플리케이션(trusted application)으로 구분될 수 있다. 클라이언트 애플리케이션은 인증 및 인가를 요청하는 애플리케이션으로서 리눅스, 안드로이드, 윈도우 등과 같은 노멀(normal 또는 rich) 운영체제의 기반 하에 메모리에 로드되어 프로세스로써 동작하는 모든 애플리케이션을 포함한다. 클라이언트 어플리케이션은 노멀 영역(예를 들어, 노멀 영역의 하나의 구성)에 존재할 수 있다.
신뢰된 애플리케이션은 보안 영역 동작에 필요한 애플리케이션이거나, 커널 데이터의 무결성 검사(introspection), 증명(attestation)과 같이 보안이 필요한 프로세스에 있어서 보안 인증 및 인가를 위해 호출되는 보안 애플리케이션일 수 있다. 이러한 신뢰된 어플리케이션은 보안 영역(예를 들어, 보안 영역의 하나의 구성)에 존재할 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자 장치(100)의 블록도이다.
전자 장치(100)는 표시부(110), 입력부(120), 무선통신부(130), 오디오처리부(140), 메모리(150) 및 프로세서(160)를 포함할 수 있다.
표시부(110)는 프로세서(160)의 제어 하에 데이터를 화면에 표시할 수 있다. 프로세서(160)가 데이터를 처리(예를 들어, 디코딩(decoding)하여 버퍼에 저장하면 표시부(110)는 버퍼에 저장된 데이터를 아날로그 신호로 변환하여 화면에 표시할 수 있다. 표시부(110)에 전원이 공급되면 표시부(110)는 잠금 이미지를 화면에 표시할 수 있다. 잠금 이미지가 표시되고 있는 상태에서 잠금 해제 정보가 검출되면 프로세서(160)는 잠금을 해제할 수 있다. 표시부(110)는 프로세서(160)의 제어 하에 잠금 이미지 대신 예를 들어, 홈 이미지를 표시할 수 있다. 홈 이미지는 배경(background) 이미지(예를 들어, 사용자에 의해 설정된 사진)와 이 위에 표시되는 다수의 아이콘을 포함할 수 있다. 여기서 아이콘들은 각각 애플리케이션 또는 콘텐츠(예를 들어, 사진 파일, 비디오 파일, 녹음 파일, 문서, 메시지 등)을 지시할 수 있다. 아이콘들 중 하나 예를 들어, 메모 애플리케이션의 아이콘이 터치입력기구에 의해 터치되면 표시부(110)는 프로세서(160)의 제어 하에 메모장을 표시할 수 있다.
표시부(110)는 액정 표시 장치(Liquid Crystal Display; LCD), AMOLED(Active Matrix Organic Light Emitted Diode), PMOLED(Passive Matrix Organic Light Emitted Diode), 플랙서블 디스플레이(Flexible display) 또는 투명 디스플레이로 이루어질 수 있다.
터치패널(111)은 표시부(110)의 화면에 설치된 터치스크린이다. 구체적으로 터치패널(111)은 표시부(110)의 화면에 위치하는 애드 온 타입(add-on type)이나 표시부(110) 내에 삽입되는 온 셀 타입(on-cell type) 또는 인 셀 타입(in-cell type)으로 구현될 수 있다. 터치패널(111)은 화면에 대한 사용자의 제스처에 응답하여 터치이벤트를 발생하고, 터치이벤트를 AD(Analog to Digital) 변환하여 프로세서(160)로 전달할 수 있다. 이러한 터치패널(111)은 손 제스처를 감지하는 손 터치패널과 펜 제스처를 감지하는 펜 터치패널을 포함하여 구성된 복합 터치패널일 수 있다. 여기서 손 터치패널은 정전용량 방식(capacitive type)으로 구현될 수 있다. 물론 손 터치패널은 저항막 방식(resistive type), 적외선 방식 또는 초음파 방식으로도 구현될 수 있다. 또한, 손 패치패널은 손 제스처에 의해서만 터치이벤트를 발생하는 것은 아니며, 다른 물체 예를 들어, 정전용량 변화를 가할 수 있는 전도성 재질의 물체에 의해서도 터치이벤트를 생성할 수 있다. 펜 터치패널은 전자 유도 방식(electromagnetic induction type)으로 구성될 수 있다. 이에 따라, 펜 터치패널은 자기장을 형성할 수 있도록 특수 제작된 터치용 펜에 의해 터치이벤트를 생성할 수 있다.
입력부(120)는 사용자 설정 및 휴대형 전자장치(100)의 기능 제어와 관련한 입력 이벤트(예를 들어, 터치 이벤트, 키 이벤트)를 생성하여 프로세서(160)로 전달할 수 있다. 입력 이벤트는 전원 온/오프 이벤트, 볼륨 조절 이벤트, 화면 온/오프 이벤트, 셔터 이벤트 등을 포함할 수 있다. 프로세서(160)는 이러한 키 이벤트에 응답하여 상기한 구성들을 제어할 수 있다.
무선통신부(130)는 프로세서(160)의 제어 하에, 네트워크를 통해 외부장치와 음성 통화, 화상 통화 또는 데이터 통신을 수행할 수 있다. 무선통신부(130)는 송신되는 신호의 주파수를 상승변환 및 증폭하는 무선주파수 송신부와 수신되는 신호의 주파수를 저잡음 증폭 및 하강 변환하는 무선주파수 수신부를 포함할 수 있다. 또한, 무선통신부(130)는 이동 통신 모듈(예를 들어, 3세대(3-Generation) 이동통신모듈, 3.5세대(3.5-Generation) 이동 통신모듈 또는 4세대(4-Generation) 이동통신모듈, 디지털 방송 모듈(예를 들어, DMB 모듈) 및 근거리 통신모듈(예를 들어, 와이파이(wi-fi 모듈, 블루투스(bluetooth) 모듈, NFC(Near Field Communication) 모듈)을 포함할 수 있다. 본 발명의 일 실시예에 따른 무선통신부(130)는 애플리케이션 제공서버로부터 클라이언트 어플리케이션을 다운로드할 수 있으며, 보안 인증 서버를 통해 공개 키를 수신함으로써 인증 과정을 수행할 수 있다.
오디오 처리부(140)는 스피커 및 마이크와 결합하여 음성 인식, 음성 녹음, 디지털 레코딩 및 통화를 위한 오디오 신호(예를 들어, 음성 데이터)의 입력 및 출력을 수행할 수 있다. 오디오 처리부(140)는 프로세서(160)로부터 오디오 신호를 수신하고, 수신한 오디오 신호를 아날로그로 D/A 변환하고 증폭한 후 스피커로 출력할 수 있다.
오디오 처리부(140)는 마이크로부터 수신한 오디오 신호를 디지털로 A/D 변환한 후 프로세서(160)로 제공한다. 스피커는 오디오 처리부(140)로부터 수신한 오디오 신호를 음파(sound wave)로 변환하여 출력할 수 있다. 마이크는 사람이나 기타 소리원(sound source)로 전달된 음파를 오디오 신호로 변환할 수 있다.
저장부(150)는 디스크, 램(RAM), 롬(ROM) 또는 플래시 메모리 등으로 구성될 수 있다. 저장부(150)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 저장부(150)는, 예를 들면, 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다.
본 발명의 일 실시예에 따르면, 저장부(150)는 소프트웨어 및 프로그램을 저장할 수 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 애플리케이션 프로그래밍 인터페이스 (application programming interface (API), 및/또는 애플리케이션 프로그램 (또는 “애플리케이션”) 등을 포함할 수 있다.
커널, 미들웨어, 또는 API의 적어도 일부는, 운영 시스템 (operating system (OS))라 불릴 수 있다.
커널은, 예를 들면, 다른 프로그램들 (예: 미들웨어, API, 또는 애플리케이션 프로그램)에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들 (예: 버스, 저장부(150) 또는 프로세서(160) 등)을 제어 또는 관리할 수 있다.
또한, 커널은 미들웨어, API, 또는 애플리케이션 프로그램에서 전자 장치(100)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어는, 예를 들면, API 또는 애플리케이션 프로그램이 커널과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어는 애플리케이션 프로그램로부터 수신된 작업 요청들과 관련하여, 예를 들면, 애플리케이션 프로그램 중 적어도 하나의 애플리케이션에 전자 장치(100)의 시스템 리소스 (예: 버스, 저장부(150) 또는 프로세서(160) 등)를 사용할 수 있는 우선 순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 제어 (예: 스케쥴링 또는 로드 밸런싱)을 수행할 수 있다.
API는, 예를 들면, 애플리케이션이 커널 또는 미들웨어에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수 (예: 명령어)를 포함할 수 있다.
저장부(150)는 노멀 영역 및 보안 영역으로 구성될 수 있다. 노멀 영역은 전자 장치(100)의 메인 운영체제와 이에 기반 하여 동작하는 어플리케이션들이 설치된다는 개념에서 메인 영역으로 지칭될 수 있다. 보안 영역은 노멀 영역의 운영체제나 애플리케이션이 임의대로 접근할 수 없는 영역으로 활용될 수 있다.
보안 영역은 신뢰된 애플리케이션, 보안 OS 및 보안 모니터로 구성될 수 있다. 신뢰된 애플리케이션들은 내재화 애플리케이션 및 서드파티 애플리케이션으로 분류될 수 있다. 보안 모니터는 노멀 영역 및 보안 영역 간의 인터페이스 역할을 할 수 있다. 예를 들어, ARM(Advance RISC Machine)사의 트러스트 존(TrustZone) 기술이 본 발명의 일 실시예에 따라 보안 모니터로 적용될 수 있다. 보안 모니터는 노멀 영역과 보안 영역의 주소공간을 공유할 수 있게 할 수 있다. 추가적으로, 신뢰된 애플리케이션은 커널 데이터의 무결성 검사(introspection), 증명(attestation)과 같이 보안이 필요한 프로세스에 있어서 보안 인증 및 인가를 위해 호출되는 보안 애플리케이션일 수 있다. 이러한 신뢰된 어플리케이션은 보안 영역(예를 들어, 보안 영역의 하나의 구성)에 존재할 수 있다.
보안 영역 사용자 데이터는 보안 코어 및 신뢰된 애플리케이션에 의해 생성되는 데이터일 수 있다. 보안 영역 사용자 데이터는 보안 코어, 보안 애플리케이션 및 보안 모니터에서만 접근이 가능하며 노멀 영역에서는 접근할 수 없다.
보안 OS는 모듈 매니저 및 커널 모듈을 포함할 수 있다. 모듈 매니저는 노멀 영역에서 전송받은 노멀 영역 커널 데이터를 보안 영역의 주소공간에 로드하고, 커널 모듈은 노멀 영역 커널 데이터와 커널 심볼을 링크한다. 커널 모듈은 보안 영역에 로드된 노멀 영역 커널 데이터를 관찰(observation) 할 수 있다.
노멀 영역은 가상 주소 공간 상에 노멀 영역 사용자 데이터 및 노멀 영역 커널 데이터를 저장할 수 있다. 가상 주소 공간 상에 노멀 영역 사용자 데이터 및 노멀 영역 커널 데이터에 대한 주소를 노멀 영역 페이지 테이블로 저장할 수 있다.
보안 영역은 실행 컨텍스트에서 사용할 수 있는 페이지테이블을 가리키는 레지스터(Translation Table Base Register, TTBR)를 제공할 수 있다. 보안 영역은 보안 영역 TTBCR(Translation Table Base Configuration Register) 및 두 개의 보안 영역 TTBR(보안 영역 TTBR0, 보안 영역 TTBR1)를 포함할 수 있다.
보안 영역 TTBCR을 통해 보안 영역 TTBR0 및 보안 영역 TTBR1이 어떻게 사용될지 정의할 수 있다. 본 발명의 일 실시예에 따르면, 보안 영역 TTBCR은 메모리 주소 공간을 분할하여, 보안 영역 TTBR0 및 보안 영역 TTBR1 중 적어도 하나에 보안 영역의 동작에 필요한 데이터(예를 들어, 보안 영역 사용자 데이터 및 보안 영역 커널 데이터)의 페이지테이블 주소를 가리키게 한다.
또, 보안 영역 TTBCR은 보안 영역의 동작에 필요한 데이터가 저장되지 않은 보안 영역 TTBR0 및 보안 영역 TTBR1 중 적어도 하나에 노멀 영역의 페이지테이블 주소를 가리키게 할 수 있다.
노멀 영역은 사용자 공간 및 커널을 포함할 수 있다. 사용자 공간은 클라이언트 애플리케이션을 포함할 수 있다.
클라이언트 애플리케이션은 노멀 운영체제의 기반 하에 동작하며 클라이언트 애플리케이션은 내재화 애플리케이션(embedded application)과 서드파티 어플리케이션(3rd party application)으로 분류될 수 있다. 예를 들어, 내재화 애플리케이션은 웹 브라이저(web browser), 이메일(email) 프로그램, 인스턴트 메신저(instant messenger) 등이다. 노멀 영역 사용자 데이터는 노멀 운영체제 및 클라이언트 애플리케이션에 의해 생성되는 데이터, 노멀 운영체제 및 클라이언트 애플리케이션의 실행에 필요한 데이터 및 무선통신부(130)를 통해 외부 장치로부터 수신한 데이터를 저장할 수 있다.
커널은 TEE 드라이버를 포함할 수 있다. TEE 드라이버는 전자 장치(100)의 부팅 시에 커널 심볼 데이터(예를 들어, 심볼 테이블)을 보안 영역으로 전송할 수 있다. 구체적으로, TEE 드라이버는 전자 장치(100)의 부팅 시에 커널 심볼 데이터(예를 들어, 심볼 테이블)을 보안 영역의 모듈 매니저로 전송할 수 있다.
노멀 영역은 가상 주소 공간 상에 노멀 영역 사용자 데이터 및 노멀 영역 커널 데이터를 저장할 수 있다. 가상 주소 공간 상에 노멀 영역 사용자 데이터 및 노멀 영역 커널 데이터에 대한 주소를 노멀 영역 페이지 테이블로 저장할 수 있다.
노멀 영역은 실행 컨텍스트에서 사용할 수 있는 페이지테이블을 가리키는 레지스터(Translation Table Base Register, TTBR)를 제공할 수 있다. 노멀 영역은 노멀 영역 TTBCR(Translation Table Base Configuration Register) 및 두 개의 노멀 영역 TTBR(노멀 영역 TTBR0, 노멀 영역 TTBR1)를 포함할 수 있다.
노멀 영역 TTBCR을 통해 노멀 영역 TTBR0 및 노멀 영역 TTBR1이 어떻게 사용될지 정의할 수 있다.
프로세서(160)는 전자 장치(100)의 전반적인 동작 전자 장치(100) 내부 구성들 간의 신호 흐름을 제어하고 데이터를 처리하는 기능을 수행하고 배터리에서 상기 구성들로의 전원 공급을 제어할 수 있다.
프로세서(160)는 하나 이상의 CPU(Central Processing Unit)로 구성될 수 있다. CPU는 자료의 연산 및 비교와 명령어 해석 및 실행 등을 수행하는 컴퓨터 시스템의 핵심적인 제어 유닛이다. 또한, CPU는 하나 이상의 독립 코어가 단일 집적 회로로 이루어진 하나의 패키지(package)로 통합될 수 있다.
본 발명의 일 실시예에서 프로세서(160)는 롬(ROM) 및 메인 메모리(main memory unit)을 포함할 수 있다. 롬(ROM)은 초기 부팅과정을 수행할 수 있는 구성으로서 롬 부트로더 (ROM bootloader), CRTM(Core Root Trust Measurement) 및 보안 해시를 포함할 수 있다. 롬 부트로더는 전자 장치(100)의 파워 온 또는 리셋 시 시스템의 초기 구성을 형성하는 기능을 수행할 수 있다. 롬 부트로더는 저장부(150)의 신뢰된 프로그램 및 보안 영역 사용자 데이터를 메인 메모리로 로딩할 수 있다. CRTM은 롬 부트로더에 의해 메인 메모리로 로딩된 보안 부트로더 등의 구성들의 무결성을 측정하는 기능을 수행할 수 있다.
메인 메모리는 램(RAM)으로 구성될 수 있다. 프로세서(160)의 CPU는 메인 메모리에 접근하여 메인 메모리에 로딩된 각종 프로그램 및 데이터를 읽을 수 있고, 읽어 온 프로그램의 명령을 해독할 수 있으며, 해독 결과에 따른 기능을 실행할 수 있다.
본 발명의 실시예에 따른 프로세서(160)는 부팅 시에 노멀 영역에 포함된 커널 심볼에 관한 데이터를 보안 영역에 전송하게 제어한다. 프로세서(160)는 노멀 영역 커널 데이터 관찰(observation) 요청이 있는지 판단하여, 노멀 영역 커널 데이터 관찰 요청이 있으면, 노멀 영역 커널 데이터를 저장할 수 있는 상기 보안 영역의 가상 메모리 주소 공간의 할당을 조정한다. 프로세서(160)는 노멀 영역 커널 데이터를 노멀 영역에서 보안 영역으로 전송하게 제어한다. 프로세서(160)는 노멀 영역 커널 데이터를 보안 영역의 가상 주소 공간에 로드(load)하고, 커널 심볼에 관한 데이터와 상기 노멀 영역 커널 데이터를 링크하게 제어한다. 프로세서(160)는 보안 영역의 가상 주소 공간에 로드된 상기 노멀 영역 커널 데이터를 관찰할 수 있다.
본 발명의 일 실시예에 따른 프로세서(160)는 보안 영역 TTBCR(Translation Table Base Configuration Register)을 통해, 상기 보안 영역의 가상 공간의 일부 주소에 상기 노멀 영역 커널 데이터를 저장할 수 있도록 할당할 수 있다.
도 2는 본 발명의 일 실시예에 따른 전자 장치(100)의 커널 데이터 접근 방법을 나타내는 순서도이다.
도 1 및 도 2를 참조하면, 전자 장치(100)는 201 동작에서, 파워 온 또는 리셋될 수 있다. 이에 따라, 전자 장치(100)의 부팅 과정이 시작될 수 있다.
전자 장치(100)는 203 동작에서, 프로세서(160) 제어 하에, 부팅 시에 노멀 영역에 포함된 커널 심볼에 관한 데이터를 보안 영역으로 전송할 수 있다.
일 실시예에서, 전자 장치(100)는 203 동작에서, 프로세서(160) 제어 하에, 부팅 시에 노멀 영역의 TEE 드라이버를 통해 노멀 영역에 포함된 커널 심볼에 관한 데이터(예를 들어, 심볼 테이블)를 보안 영역의 모듈 매니저로 전송할 수 있다.
전자 장치(100)는 205 동작에서, 프로세서(160) 제어 하에, 클라이언트 애플리케이션 또는 신뢰된 애플리케인션에 의해 노멀 영역 커널 데이터의 관찰(observation) 요청이 있는지 판단한다. 커널 데이터의 관찰 요청은 커널 데이터의 무결성 검사일 수 있다.
노멀 영역 커널 데이터의 관찰 요청이 없으면, 전자 장치(100)는 203 동작으로 분기한다.
노멀 영역 커널 데이터의 관찰 요청이 있으면, 전자 장치(100)는 207 동작에서, 프로세서(160) 제어 하에, 노멀 영역 커널 데이터를 저장할 수 있도록 보안 영역의 가상 메모리 주소 공간의 할당을 조정한다.
일 실시예에서, 전자 장치(100)는 207 동작에서, 프로세서(160) 제어 하에, 보안 영역 TTBCR을 통해 보안 영역 TTBR0 및 보안 영역 TTBR1 중 적어도 하나에 보안 영역의 동작에 필요한 데이터(예를 들어, 보안 영역 사용자 데이터 및 보안 영역 커널 데이터)의 페이지테이블 주소를 가리키게 하고, 보안 영역의 동작에 필요한 데이터가 저장되지 않은 보안 영역 TTBCR의 페이지테이블 주소를 가리키지 않는 보안 영역 TTBR에 노멀 영역의 페이지테이블 주소 값을 가리키게 할 수 있다.
전자 장치(100)는 209 동작에서, 프로세서(160) 제어 하에, 노멀 영역 커널 데이터를 노멀 영역에서 보안 영역으로 전송한다.
일 실시예에서, 전자 장치(100)는 209 동작에서, 프로세서(160) 제어 하에, 노멀 영역 커널 데이터를 보안 모니터를 통해 보안 영역의 모듈 매니저로 전송한다.
전자 장치(100)는 211 동작에서, 프로세서(160) 제어 하에, 노멀 영역 커널 데이터를 보안 영역의 가상 주소 공간에 로드(load)하고, 커널 심볼에 관한 데이터와 노멀 영역 커널 데이터를 링크한다.
일 실시예에서, 전자 장치(100)는 211 동작에서, 프로세서(160) 제어 하에, 모듈 매니저는 노멀 영역 커널 데이터를 보안 영역의 가상 주소 공간에 로드(load)하고, 커널 모듈은 가상 주소 공간에 로드된 노멀 영역 커널 데이터와 커널 심볼에 관한 데이터를 링크한다. 커널 모듈은 가상 주소 공간에 로드된 노멀 영역 커널 데이터와 커널 심볼에 관한 데이터를 링크한다.
커널 모듈은 노멀 영역 커널 데이터의 모듈 빌드를 통해 ELF 포맷(Executable and Linking Format)으로 구성될 수 있다. 커널 모듈은 ELF 포맷으로 구성되므로, 노멀 영역 커널 데이터의 데이터 타입 및 매크로를 보안 영역에서 사용할 수 있고, 보안 영역에서 커널 심볼을 이용하여 노멀 영역 커널 데이터에 접근이 가능하다.
전자 장치(100)는 213 동작에서, 프로세서(160) 제어 하에, 보안 영역의 가상 주소 공간에 로드된 노멀 영역 커널 데이터를 관찰한다.
도 3은 본 발명의 일 실시예에 따른 전자 장치(100)의 기능적 아키텍쳐를 설명하는 도면이다.
노멀 영역(310)은 사용자 공간(user space, 320) 및 커널 공간(kernel space, 330)를 포함한다. 사용자 공가(320)은 적어도 하나의 클라이언트 애플리케이션(321)를 포함한다.
노멀 운영체제의 기반 하에 동작하며 클라이언트 애플리케이션(321)은 내재화 애플리케이션(embedded application)과 서드파티 어플리케이션(3rd party application)으로 분류될 수 있다. 예를 들어, 내재화 어플리케이션은 웹 브라이저(web browser), 이메일(email) 프로그램, 인스턴트 메신저(instant messenger) 등이다. 클라이언트 애플리케이션(321)의 실행에 필요한 데이터 및 무선통신부(130)를 통해 외부 장치로부터 수신한 데이터를 저장할 수 있다.
커널 공간(330)은 다른 프로그램들에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들을 제어 또는 관리할 수 있다. 커널 공간(330)은 미들웨어, API, 또는 애플리케이션 프로그램에서 전자 장치(100)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
커널 공간(330)은 TEE 드라이버(331)를 포함한다. TEE 드라이버(331)는 전자 장치(100) 부팅 시에, 커널 공간(330)에 저장된 커널 심볼에 관한 데이터를 보안 영역의 모듈 매니저(371)에 전달한다.
보안 영역(350)은 신뢰된 애플리케이션(360), 보안 OS 공간(370) 및 보안 모니터(380)를 포함한다. 신뢰된 애플리케이션(360)은 보안 영역(350) 동작에 필요한 애플리케이션이거나, 커널 데이터의 무결성 검사(introspection), 증명(attestation)과 같이 보안이 필요한 프로세스에 있어서 보안 인증 및 인가를 위해 호출되는 보안 애플리케이션일 수 있다.
보안 OS 공간(370)은 보안 기술이 적용된 운영체제이다. 보안 OS 공간(370)은 모듈 매니저(371) 및 커널 모듈(372)를 포함한다.
모듈 매니저(371)는 노멀 영역(310)에서 전송받은 노멀 영역 커널 데이터를 보안 영역(350)의 주소공간에 로드하고, 커널 모듈(372)은 노멀 영역 커널 데이터와 커널 심볼을 링크한다. 커널 모듈(371)은 보안 영역에 로드된 노멀 영역 커널 데이터를 관찰(observation) 할 수 있다.
보안 모니터(380)는 노멀 영역(310) 및 보안 영역(350) 간의 인터페이스 역할을 할 수 있다. 보안 모니터(380)는 노멀 영역(310)과 보안 영역(350)의 주소공간을 공유할 수 있게 할 수 있다.
도 4는 본 발명의 일 실시예에 따른 전자 장치(100)의 이중 메모리 주소 공간 접근법에 관한 아키텍쳐를 설명하는 도면이다.
노멀 영역(410)은 노멀 영역 가상 주소 공간(420)를 포함한다. 노멀 영역 가상 주소 공간(420)은 노멀 영역 사용자 데이터(421) 및 노멀 영역 커널 데이터(422)를 저장할 수 있다. 노멀 영역 페이지테이블(430)은 노멀 영역 가상 주소 공간(420) 상의 노멀 영역 사용자 데이터(421) 및 노멀 영역 커널 데이터(422)의 주소 또는 테이터 구조를 저장할 수 있다.
노멀 영역 TTBCR(441)는 노멀 영역 TTBR0(442) 및 노멀 영역 TTBR1(443)이 어떻게 사용될지 정의할 수 있다. 예를 들어, 노멀 영역 TTBCR(441)는 노멀 영역 TTBR0(442)이 노멀 영역 가상 주소 공간(420) 상의 노멀 영역 사용자 데이터(421) 및 노멀 영역 커널 데이터(422)의 주소 또는 테이터 구조를 저장한 노멀 영역 페이지테이블(430)을 가리키게 할 수 있다.
보안 영역(450)은 보안 영역 가상 주소 공간(460)를 포함한다.
보안 영역 가상 주소 공간(460)은 보안 영역 사용자 데이터(461), 보안 영역 커널 데이터(462), 노멀 영역에서 전달받은 노멀 영역 사용자 데이터(421) 및 노멀 영역 커널 데이터(422)를 저장할 수 있다.
보안 영역 페이지테이블(470)은 보안 영역 가상 주소 공간(460) 상의 보안 영역 사용자 데이터(461) 및 보안 영역 커널 데이터(462)의 주소 또는 테이터 구조를 저장할 수 있다.
보안 영역 TTBCR(481)는 보안 영역 TTBR0(482) 및 보안 영역 TTBR1(483)이 어떻게 사용될지 정의할 수 있다. 예를 들어, 보안 영역 TTBCR(481)는 보안 영역 TTBR0(442)이 보안 영역 가상 주소 공간(460) 상의 보안 영역 사용자 데이터(461), 보안 영역 커널 데이터(462)의 주소 또는 테이터 구조를 저장한 보안 영역 페이지테이블(470)을 가리키게 할 수 있다. 보안 영역 TTBCR(481)는 보안 영역 TTBR1(483)이 노멀 영역 사용자 데이터(421) 및 노멀 영역 커널 데이터(422)의 주소 또는 테이터 구조를 저장한 노멀 영역 페이지테이블(430)을 가리키게 할 수 있다.
도 5는 본 발명의 일 실시예에 따른 전자 장치(100)의 가상주소 맵핑 방법에 관한 아키텍쳐를 설명하는 도면이다.
노멀 영역 가상 주소(510)는 노멀 영역 사용자 데이터(520) 및 노멀 영역 커널 데이터(530)를 포함할 수 있다. 노멀 영역 커널 데이터(530)는 적어도 하나 이상의 커널 정보(531) 및 커널 심볼에 관한 데이터(532)를 포함할 수 있다.
커널 심볼에 관한 데이터(532)는 전자 장치(100) 부팅 시에 보안 영역(550)의 모듈 매니저(371)에 전달된다. 노멀 영역 커널 데이터를 관찰하라는 커널 호출 명령어(560)가 모듈 매니저(371)에 전달되면, 모듈 매니저(3710)는 적어도 하나 이상의 커널 정보(531)를 보안 영역(550) 상에 가상 주소 공간에 로드한다. 모듈 매니저(371)는 커널 모듈(372)을 제어하여, 커널 모듈(372)이 커널 심볼에 관한 데이터(예를 들어, 심볼 테이블, 570)이 적어도 하나 이상의 커널 정보(371)에 대응되게 링크하도록 제어한다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (16)

  1. 전자 장치의 커널 데이터 접근 방법에 있어서,
    상기 전자 장치가 부팅되면, 부팅 시에 노멀 영역에 포함된 커널 심볼에 관한 데이터를 보안 영역에 전송하는 동작;
    노멀 영역 커널 데이터 관찰(observation) 요청이 있는지 판단하는 동작;
    상기 노멀 영역 커널 데이터 관찰 요청이 있으면, 상기 노멀 영역 커널 데이터를 저장할 수 있는 상기 보안 영역의 가상 메모리 주소 공간의 할당을 조정하는 동작;
    상기 노멀 영역 커널 데이터를 상기 노멀 영역에서 상기 보안 영역으로 전송하는 동작;
    상기 노멀 영역 커널 데이터를 상기 보안 영역의 가상 주소 공간에 로드(load)하고, 상기 커널 심볼에 관한 데이터와 상기 노멀 영역 커널 데이터를 링크하는 동작; 및
    상기 보안 영역의 가상 주소 공간에 로드된 상기 노멀 영역 커널 데이터를 관찰하는 동작을 포함하는 커널 데이터 접근 방법.
  2. 제 1항에 있어서,
    상기 부팅 시에 노멀 영역에 포함된 커널 심볼에 관한 데이터를 보안 영역에 전송하는 동작은
    상기 노멀 영역의 커널에 포함된 TEE 드라이버를 통해, 상기 커널 심볼에 관한 데이터를 상기 보안 영역의 모듈 매니저로 전송하는 동작인 것을 특징으로 하는 커널 데이터 접근 방법.
  3. 제 1항에 있어서,
    상기 노멀 영역 커널 데이터를 저장할 수 있는 상기 보안 영역의 가상 메모리 주소 공간의 할당을 조정하는 동작은
    보안 영역 TTBCR(Translation Table Base Configuration Register)을 통해, 상기 보안 영역의 가상 공간의 일부 주소에 상기 노멀 영역 커널 데이터를 저장할 수 있도록 할당하는 동작인 것을 특징으로 하는 커널 데이터 접근 방법.
  4. 제 3항에 있어서,
    상기 보안 영역 TTBCR을 통해, 보안 영역의 가상 공간의 일부 주소에 상기 노멀 영역 커널 데이터를 저장할 수 있도록 할당하는 동작은
    보안 영역 TTBR0(Translation Table Base Register 0) 및 보안 영역 TTBR1(Translation Table Base Register 1) 중 적어도 하나에 보안 영역의 동작에 필요한 데이터의 페이지테이블 주소를 가리키게 하고, 보안 영역의 동작에 필요한 데이터가 저장되지 않은 보안 영역 TTBR0 및 보안 영역 TTBR1 중 적어도 하나에 페이지테이블 주소를 가리키지 않는 보안 영역 TTBR에 노멀 영역의 페이지테이블 주소를 가리키게 하는 동작인 것을 특징으로 하는 커널 데이터 접근 방법.
  5. 제 1항에 있어서,
    상기 노멀 영역 커널 데이터를 상기 노멀 영역에서 상기 보안 영역으로 전송하는 동작은
    상기 노멀 영역 커널 데이터를 보안 모니터를 통해 상기 보안 영역의 모듈 매니저로 전송하는 동작인 것을 특징으로 하는 커널 데이터 접근 방법.
  6. 제 5항에 있어서,
    상기 노멀 영역 커널 데이터를 보안 영역의 가상 주소 공간에 로드하고, 상기 커널 심볼에 관한 데이터와 상기 노멀 영역 커널 데이터를 링크하는 동작은
    상기 모듈 매니저를 통해 상기 노멀 영역 커널 데이터를 상기 보안 영역의 가상 주소 공간에 로드하는 동작인 것을 특징으로 하는 커널 데이터 접근 방법.
  7. 제 6항에 있어서,
    상기 노멀 영역 커널 데이터를 보안 영역의 가상 주소 공간에 로드하고, 상기 커널 심볼에 관한 데이터와 상기 노멀 영역 커널 데이터를 링크하는 동작은
    상기 보안 영역의 커널 모듈을 통해, 가상 주소 공간에 로드된 상기 노멀 영역 커널 데이터와 상기 커널 심볼에 관한 데이터를 링크하는 동작인 것을 특징으로 하는 커널 데이터 접근 방법.
  8. 제 7항에 있어서,
    상기 커널 모듈은
    상기 노멀 영역 커널 데이터의 모듈 빌드를 통해 ELF 포맷(Executable and Linking Format)으로 구성되는 것을 특징으로 커널 데이터 접근 방법.
  9. 표시부;
    무선통신부;
    노멀 영역 및 보안 영역으로 구성되며 저장부; 및
    프로세서를 포함하며,
    상기 프로세서는
    부팅 시에 상기 노멀 영역에 포함된 커널 심볼에 관한 데이터를 상기 보안 영역에 전송하게 제어하고, 노멀 영역 커널 데이터 관찰(observation) 요청이 있는지 판단하며, 상기 노멀 영역 커널 데이터 관찰 요청이 있으면, 상기 노멀 영역 커널 데이터를 저장할 수 있는 상기 보안 영역의 가상 메모리 주소 공간의 할당을 조정하며, 상기 노멀 영역 커널 데이터를 상기 노멀 영역에서 상기 보안 영역으로 전송하게 제어하며, 상기 노멀 영역 커널 데이터를 상기 보안 영역의 가상 주소 공간에 로드(load)하고, 상기 커널 심볼에 관한 데이터와 상기 노멀 영역 커널 데이터를 링크하게 제어하며, 상기 보안 영역의 가상 주소 공간에 로드된 상기 노멀 영역 커널 데이터를 관찰하는 전자 장치.
  10. 제 9항에 있어서,
    상기 프로세서는
    상기 노멀 영역의 커널에 포함된 TEE 드라이버를 통해, 상기 커널 심볼에 관한 데이터를 상기 보안 영역의 모듈 매니저로 전송하는 전자 장치.
  11. 제 9항에 있어서,
    상기 프로세서는
    보안 영역 TTBCR(Translation Table Base Configuration Register)을 통해, 상기 보안 영역의 가상 공간의 일부 주소에 상기 노멀 영역 커널 데이터를 저장할 수 있도록 할당하는 전자 장치.
  12. 제 11항에 있어서,
    상기 프로세서는
    보안 영역 TTBR0(Translation Table Base Register 0) 및 보안 영역 TTBR1(Translation Table Base Register 1) 중 적어도 하나에 보안 영역의 동작에 필요한 데이터의 페이지테이블 주소를 가리키게 하고, 보안 영역의 동작에 필요한 데이터가 저장되지 않은 보안 영역 TTBR0 및 보안 영역 TTBR1 중 적어도 하나에 페이지테이블 주소를 가리키지 않는 보안 영역 TTBR에 노멀 영역의 페이지테이블 주소를 가리키게 하는 전자 장치.
  13. 제 9항에 있어서,
    상기 프로세서는
    상기 노멀 영역 커널 데이터를 보안 모니터를 통해 상기 보안 영역의 모듈 매니저로 전송하게 제어하는 전자 장치.
  14. 제 13항에 있어서,
    상기 프로세서는
    상기 모듈 매니저를 통해 상기 노멀 영역 커널 데이터를 상기 보안 영역의 가상 주소 공간에 로드하는 전자 장치.
  15. 제 15항에 있어서,
    상기 프로세서는
    상기 보안 영역의 커널 모듈을 통해, 가상 주소 공간에 로드된 상기 노멀 영역 커널 데이터와 상기 커널 심볼에 관한 데이터를 링크하는 전자 장치.
  16. 제 15항에 있어서,
    상기 커널 모듈은
    상기 노멀 영역 커널 데이터의 모듈 빌드를 통해 ELF 포맷(Executable and Linking Format)으로 구성되는 것을 특징으로 하는 전자 장치.
KR1020150076420A 2015-05-29 2015-05-29 전자 장치 및 커널 데이터 접근 방법 KR102327782B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150076420A KR102327782B1 (ko) 2015-05-29 2015-05-29 전자 장치 및 커널 데이터 접근 방법
US15/166,909 US20160350543A1 (en) 2015-05-29 2016-05-27 Electronic device and method of accessing kernel data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150076420A KR102327782B1 (ko) 2015-05-29 2015-05-29 전자 장치 및 커널 데이터 접근 방법

Publications (2)

Publication Number Publication Date
KR20160140159A true KR20160140159A (ko) 2016-12-07
KR102327782B1 KR102327782B1 (ko) 2021-11-18

Family

ID=57398821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150076420A KR102327782B1 (ko) 2015-05-29 2015-05-29 전자 장치 및 커널 데이터 접근 방법

Country Status (2)

Country Link
US (1) US20160350543A1 (ko)
KR (1) KR102327782B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170095780A (ko) 2017-08-04 2017-08-23 안나영 클락 윌슨 모델을 적용한 모바일 장치 및 그것의 동작 방법
KR20180082221A (ko) * 2017-01-10 2018-07-18 주식회사 시큐아이 패킷 처리 장치 및 방법
KR20200073411A (ko) * 2018-12-14 2020-06-24 서울여자대학교 산학협력단 메모리 정보 획득 시스템 및 방법
KR20200073413A (ko) * 2018-12-14 2020-06-24 서울여자대학교 산학협력단 신뢰 실행 환경 시스템

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10416991B2 (en) 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
CN108242997B (zh) * 2016-12-26 2020-12-22 联芯科技有限公司 安全通信的方法与设备
US11119939B2 (en) * 2017-08-21 2021-09-14 Alibaba Group Holding Limited Methods and systems for memory management of kernel and user spaces
CN107835185B (zh) * 2017-11-21 2020-10-02 广州大学 一种基于ARM TrustZone的移动终端安全服务方法及装置
US11714910B2 (en) * 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
US11531627B2 (en) 2019-03-08 2022-12-20 International Business Machines Corporation Secure storage isolation
US11487906B2 (en) 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
US11640361B2 (en) * 2019-03-08 2023-05-02 International Business Machines Corporation Sharing secure memory across multiple security domains
US20220261476A1 (en) * 2019-07-22 2022-08-18 Nec Corporation Security management device, security management method and non-transitory computer-readable medium
US11237891B2 (en) * 2020-02-12 2022-02-01 International Business Machines Corporation Handling asynchronous memory errors on kernel text

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140110637A (ko) * 2013-03-08 2014-09-17 삼성전자주식회사 데이터 보호 방법 및 이를 구현하는 전자 장치
KR20150007034A (ko) * 2013-07-10 2015-01-20 삼성전자주식회사 휴대형 전자장치의 어플리케이션 보안 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140110637A (ko) * 2013-03-08 2014-09-17 삼성전자주식회사 데이터 보호 방법 및 이를 구현하는 전자 장치
KR20150007034A (ko) * 2013-07-10 2015-01-20 삼성전자주식회사 휴대형 전자장치의 어플리케이션 보안 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
고병수 외 2인, "컴퓨터 포렌식을 지원하는 보안 감사/추적 모듈 설계", 한국컴퓨터정보학회 논문지, 2004.03. *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180082221A (ko) * 2017-01-10 2018-07-18 주식회사 시큐아이 패킷 처리 장치 및 방법
KR20170095780A (ko) 2017-08-04 2017-08-23 안나영 클락 윌슨 모델을 적용한 모바일 장치 및 그것의 동작 방법
KR20200073411A (ko) * 2018-12-14 2020-06-24 서울여자대학교 산학협력단 메모리 정보 획득 시스템 및 방법
KR20200073413A (ko) * 2018-12-14 2020-06-24 서울여자대학교 산학협력단 신뢰 실행 환경 시스템

Also Published As

Publication number Publication date
US20160350543A1 (en) 2016-12-01
KR102327782B1 (ko) 2021-11-18

Similar Documents

Publication Publication Date Title
KR102327782B1 (ko) 전자 장치 및 커널 데이터 접근 방법
US11256496B2 (en) Apparatus and method for managing application
US11579899B2 (en) Method and device for dynamically managing kernel node
WO2018228199A1 (zh) 一种授权方法以及相关设备
KR102320151B1 (ko) 어플리케이션을 설치하는 전자 장치 및 그 제어 방법
US11379573B2 (en) Trusted application access control method and terminal
US11222118B2 (en) Method for updating selinux security policy and terminal
CN106874037B (zh) 应用程序安装方法、装置及移动终端
KR102428461B1 (ko) 선택적 암호화 방법 및 그를 이용한 전자 장치
WO2017211205A1 (zh) 一种白名单更新方法和装置
US20170031692A1 (en) Method for managing device and electronic device supporting the same
US10929523B2 (en) Electronic device and method for managing data in electronic device
US20150067669A1 (en) Method for managing application and electronic device thereof
WO2013159632A1 (zh) 实现安全防护的方法、防火墙、终端及可读存储介质
US11803636B2 (en) Security system and method
US10430091B2 (en) Electronic device and method for storing security information thereof
US20170046524A1 (en) Electronic device for controlling file system and operating method thereof
KR20140114263A (ko) 어플리케이션 인증 방법 및 이를 구현하는 전자 장치
US10482237B2 (en) Method for processing security of application and electronic device supporting the same
US20210011736A1 (en) Method and apparatus for managing application
KR101223981B1 (ko) 안전한 애플리케이션 실행을 위한 가상화 장치, 서버 및 방법
KR20160100746A (ko) 어플리케이션을 실행하는 전자 장치 및 그 제어 방법
KR20150007034A (ko) 휴대형 전자장치의 어플리케이션 보안 방법
CN109145598B (zh) 脚本文件的病毒检测方法、装置、终端及存储介质
US20150220720A1 (en) Electronic device and method for controlling access to given area thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right