KR102376229B1 - 파일을 전자 장치 내의 랜덤 액세스 메모리로 로딩하는 방법 및 연관된 전자 장치 - Google Patents
파일을 전자 장치 내의 랜덤 액세스 메모리로 로딩하는 방법 및 연관된 전자 장치 Download PDFInfo
- Publication number
- KR102376229B1 KR102376229B1 KR1020150154362A KR20150154362A KR102376229B1 KR 102376229 B1 KR102376229 B1 KR 102376229B1 KR 1020150154362 A KR1020150154362 A KR 1020150154362A KR 20150154362 A KR20150154362 A KR 20150154362A KR 102376229 B1 KR102376229 B1 KR 102376229B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- operating system
- execution environment
- ree
- random access
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
- Data Mining & Analysis (AREA)
Abstract
본 발명은 전자 장치의 프로세서에 의한 신뢰된 운영 체제의 실행 때문에, 신뢰된 실행 환경(TEE)에서, 또는 리치 실행 환경(REE)에서 기능하도록 설계되는 전자 장치 내의 랜덤 액세스 메모리로 파일을 로딩하는 방법에 관한 것이며, 방법은, - 신뢰된 운영 체제에 의해 적어도 하나의 파일을 식별하는 정보(L1)를 수신하는 단계 E10; - 신뢰된 운영 체제에 의해 적어도 하나의 소정의 기준에 식별된 파일의 합치를 검증하는 단계 E11; - 합치의 경우에, 리치 실행 환경(REE)에서 기능할 때 판독 전용 모드에서 액세스 가능한 랜덤 액세스 메모리의 영역(Z2)으로 식별된 파일을 로딩하는 단계 E13을 포함하는 것을 특징으로 한다. 연관된 전자 장치가 또한 제안된다.
Description
본 발명은 신뢰된 실행 환경(trusted execution environment)과 리치 실행 환경(rich execution environment) 사이에서 파일의 공유에 관한 것이다.
본 발명은 특히 신뢰된 실행 환경 및 리치 실행 환경에서 기능하도록 설계되는 전자 장치 내의 랜덤 액세스 메모리로 파일을 로딩하는 방법뿐만 아니라 이와 같은 종류의 전자 장치에 관한 것이다.
본 발명은 신뢰된 실행 환경 및 리치 실행 환경 둘 다에 의해 사용될 수 있는 공유 메모리 영역이 제공될 때 특히 유리하게 적용된다.
예를 들어 논문 "The Untapped Potential of Trusted Execution Environments on Mobile Devices" by J.-E. Ekberg, K. Kostiainen and N. Asokan in IEEE Security & Privacy, volume PP edition 99, 16 April 2014에 설명된 바와 같이, 소정의 애플리케이션(application)만이 설치되고 실행될 수 있는 신뢰된 실행 환경(TEE)을 제공하는 것을 가능하게 하는 신뢰된 운영 체제를 사용함으로써 전자 장치의 기능을 안전하게 하는 것이 공지되어 있다.
이와 같은 신뢰된 환경은 일반적으로 보안 제약이 더 느슨하고 따라서 다수의 애플리케이션이 설치될 수 있는 리치 실행 환경(REE)과 함께 제공된다. 리치 환경은 전자 장치가 신뢰된 운영 체제와 별개의 리치 운영 체제(리치 OS)를 실행하는 것에 의존한다.
2개의 실행 환경 사이의 양호한 분리 및 따라서 양호한 기능 보안을 보장하기 위해, 전용 메모리 공간은 일반적으로 각각의 실행 환경을 위해, 특히 랜덤 액세스 메모리에 제공된다.
그럼에도 불구하고, 특히 프리젠테이션 "Next Generation Mobile Rootkits" by T. Roth, BlackHat Europe 2013(상기 언급된 논문 내에 참조 [15]로 인용됨)에서 언급된 바와 같이, 2개의 실행 환경에 의해 액세스 가능한 공유 메모리 영역을 사용하는 것이 추가로 제안되었다.
본 발명은 전자 장치의 프로세서에 의한 신뢰된 운영 체제의 실행 때문에, 신뢰된 실행 환경에서, 또는 리치 실행 환경에서 기능하도록 설계되는 전자 장치 내의 랜덤 액세스 메모리로 파일을 로딩하는 방법을 제안한다.
이와 같은 맥락에서, 본 발명은 전자 장치의 프로세서에 의한 신뢰된 운영 체제의 실행 때문에, 신뢰된 실행 환경에서, 또는 리치 실행 환경에서 기능하도록 설계되는 전자 장치 내의 랜덤 액세스 메모리로 파일을 로딩하는 방법을 제안하며, 방법은 하기 단계: 즉,
- 신뢰된 운영 체제에 의해 적어도 하나의 파일을 식별하는 정보를 수신하는 단계;
- 신뢰된 운영 체제에 의해 적어도 하나의 소정의 기준에 식별된 파일의 합치를 검증하는 단계;
- 합치되는 경우에, 리치 실행 환경에서 기능할 때 판독 전용 모드에서 액세스 가능한 랜덤 액세스 메모리의 영역으로 식별된 파일을 (예를 들어 신뢰된 운영 체제에 의해) 로딩하는 단계를 포함하는 것을 특징으로 한다.
따라서, 신뢰된 운영 체제는 신뢰된 실행 환경과 리치 실행 환경 사이에 공유되는 랜덤 액세스 메모리 영역으로 파일의 로딩을 제어하며, 이와 같은 공유 영역은 리치 실행 환경에서 기능하는 동안에 판독 전용 모드에서 액세스 가능하고 따라서 그곳에 저장되며, 신뢰된 실행 환경에서 기능하는 동안에 특히 사용되는 파일은 리치 실행 환경에서 실행되는 애플리케이션에 의해 손상될 수 없다.
이와 같은 로딩 방법은 이하에 상세히 설명되는 바와 같이, 전자 장치를 시동할 시에, 또는 기능하는 동안에, 예를 들어 리치 실행 환경에 파일에 대응하거나 파일을 사용하는 애플리케이션에 기동(launch)할 때 실행될 수 있다.
식별된 파일은 애플리케이션, 예를 들어 라이브러리 또는 데이터 세트이다.
선택적이며 그에 따라 비제한적인 다른 특징에 따르면:
- 파일을 식별하는 정보는 리치 실행 환경에서 기능하는 동안에 준비되는 요건의 기술(예를 들어 요건의 목록)에 포함되고;
- 요건의 기술은 리치 실행 환경에 설치되는 애플리케이션의 사용 빈도를 나타내는 데이터의 함수로 구성되며;
- 요건의 기술은 다수의 기준에 관한 사용 통계의 함수로 구성되고;
- 방법은 신뢰된 운영 체제에 의해 로딩된 파일의 지정 및 로딩된 파일의 저장 어드레스(예를 들어 이하에 표시되는 가상 어드레스)를 포함하는 공유 목록을 구성하는 단계를 포함하며;
- 공유 목록은 로딩된 파일과 연관되는 무결성 검증 정보를 포함하고;
- 공유 목록은 신뢰된 운영 체제에 의해 생성되고 로딩된 파일에 관한 증명서를 포함하며;
- 공유 목록은 리치 실행 환경에서 기능하는 동안에 판독 전용 모드에서 액세스 가능한 상기 랜덤 액세스 메모리 영역에 저장되고;
- 상기 로딩은 비휘발성 메모리(예를 들어 재프로그래밍 가능 비휘발성 메모리)로부터 달성되며;
- 상기 영역은 가상 어드레스가 관련 가상 어드레스와 별개의 물리 어드레스를 지적하는 것에 의해 리치 실행 환경에서 기능하는 동안에 판독 전용 모드에서 액세스 가능하고;
- 파일을 식별하는 정보는 리치 실행 환경으로부터 신뢰된 실행 환경으로의 절환 시에 수신된다.
이 방법은 요건의 기술에 언급되는 각각의 파일에 대해 리치 실행 환경에서 실행되는 하기 단계: 즉,
- 언급된 파일이 판독 전용 모드에서 액세스 가능한 상기 랜덤 액세스 메모리 영역으로 로딩되었는지를 판단하는 단계;
- 그렇지 않으면, 리치 실행 환경에서 기능하는 동안에 기록 모드에서 액세스 가능한 다른 랜덤 액세스 메모리 영역으로 관련 파일을 로딩하는 단계를 더 포함할 수 있다.
이 제안된 방법은 하기 단계: 즉,
- 리치 실행 환경에서의 새로운 애플리케이션의 설치 후에, 신뢰된 운영체제에 요건의 갱신된 기술(description)을 송신하는 단계;
- 리치 실행 환경에서 기능하는 동안에 판독 전용 모드에서 액세스 가능한 랜덤 액세스 메모리의 영역으로 요건의 갱신된 기술에 지정되는 새로운 파일을 로딩하는 단계를 더 포함할 수 있다.
본 발명은 또한 적어도 하나의 프로세서 및 랜덤 액세스 메모리를 포함하고 프로세서에 의한 신뢰된 운영 체제의 실행 때문에 신뢰된 실행 환경에서 또는 리치 실행 환경에서 기능하도록 설계되는 전자 장치를 제안하고, 신뢰된 운영 체제는 적어도 하나의 파일을 식별하는 정보를 수신하고, 적어도 하나의 소정의 기준과 식별된 파일의 합치를 검증하고, 합치의 경우에, 리치 실행 환경에서 기능하는 동안에 판독 전용 모드에서 액세스 가능한 랜덤 액세스 메모리 영역으로 식별된 파일을 로딩하도록 설계되는 것을 특징으로 한다.
이와 같은 전자 장치는 방법에 관해 상기 공식화되는 선택적 특징 중 하나 이상을 더 가질 수 있다.
하기 설명은 비제한적인 예로서 제공되는 첨부 도면을 참조하여, 본 발명이 무엇으로 이루어지고 본 발명을 실시하기 위해 어떻게 감소될 수 있는지를 분명히 설명한다.
첨부 도면에서:
도 1은 본 발명의 맥락에 사용되는 전자 장치의 주요 구성 요소를 나타낸다;
도 2는 도 1로부터의 전자 장치에서 2개의 실행 환경의 사용을 도식적으로 나타낸다;
도 3은 본 발명의 맥락에서 제안된 바와 같은 랜덤 액세스 메모리의 공유를 예시한다;
도 4a는 도 1로부터의 전자 장치에 저장되고 본 발명의 맥락에 사용되는 함수 테이블을 나타낸다;
도 4b는 변형 실시예에 사용될 수 있는 사용 통계를 저장하는 3차원 테이블을 나타낸다;
도 5는 본 발명에 따른, 파일을 랜덤 액세스 메모리로 로딩하는 방법의 일 예를 나타낸다;
도 6은 도 5로부터의 방법 동안에 생성되는 함수 목록을 나타낸다.
첨부 도면에서:
도 1은 본 발명의 맥락에 사용되는 전자 장치의 주요 구성 요소를 나타낸다;
도 2는 도 1로부터의 전자 장치에서 2개의 실행 환경의 사용을 도식적으로 나타낸다;
도 3은 본 발명의 맥락에서 제안된 바와 같은 랜덤 액세스 메모리의 공유를 예시한다;
도 4a는 도 1로부터의 전자 장치에 저장되고 본 발명의 맥락에 사용되는 함수 테이블을 나타낸다;
도 4b는 변형 실시예에 사용될 수 있는 사용 통계를 저장하는 3차원 테이블을 나타낸다;
도 5는 본 발명에 따른, 파일을 랜덤 액세스 메모리로 로딩하는 방법의 일 예를 나타낸다;
도 6은 도 5로부터의 방법 동안에 생성되는 함수 목록을 나타낸다.
도 1은 본 발명이 사용되는 전자 장치(10)의 주요 구성 요소를 나타낸다.
이와 같은 전자 장치(10), 여기에서 단말(예를 들어 스마트폰)은 마이크로프로세서 기반 아키텍처를 이용한다. 전자 장치는 대신에 비디오 디코더(또한 셋톱 박스로도 공지됨) 또는 연결된 전자 장치(예컨대 팔찌, 손목시계, 고글(goggle) 또는 도보계(step counter))일 수 있다.
전자 장치(10)는 프로세서(2), 예를 들어 시스템 온 칩(SoC) 마이크로프로세서를 포함한다. 프로세서(2)에 더하여, 이와 같은 시스템은 다양한 기능을 갖는 다른 전자 구성요소, 예를 들어 판독 전용 메모리 또는 ROM(도시되지 않음), 랜덤 액세스 메모리 또는 RAM(4), 및 재프로그래밍 가능 비휘발성 메모리(6), 예를 들어 전기적 소거 가능 및 프로그램 가능 판독 전용 메모리(EEPROM)를 포함한다.
도 2는 전자 장치(10)에서 2개의 실행 환경의 사용을 도식적으로 나타낸다.
이 때문에, 전자 장치(10)의 프로세서(2)는 2개의 별개 운영 체제를 실행할 수 있다: 보안 운영 체제(보안 OS)로 때때로 언급되는 리치 운영 체제(리치 OS)(20), 및 신뢰된 운영 체제(신뢰된 OS)(30).
리치 운영 체제(20)는 사용자를 위해 매우 자유롭게 애플리케이션의 다운로딩, 설치 및 실행을 가능하게 한다. 따라서, 리치 운영 체제(20)의 사용은 리치 실행 환경(REE)을 생성한다.
다른 한편, 신뢰된 운영 체제(30)를 사용하여 기능하는 전자 장치(10)의 맥락에서, 애플리케이션을 다운로드하고 설치하기 위한 옵션은 신뢰된 운영 체제를 사용하는 것이 전자 장치(10)에서 신뢰된 실행 환경(TEE)을 생성할 수 있도록 (예를 들어 특정인증을 갖는 애플리케이션에) 제한된다.
이와 같은 신뢰된 실행 환경은 예를 들어 2와 7 사이의 레벨을 갖는 ISO 15408 표준, 또는 FIPS(Federal Information Processing Standard) 140-2에 대응하는, EAL(Evaluation Assurance Level) 공통 기준에 합치하는 보안의 레벨을 제공한다.
전자 장치(10)는 또한 전자 장치(10)의 프로세서(2)에 의해 실행될 수 있는 보안 모니터(40)를 사용한다. 보안 모니터(40)는 리치 운영 체제(20)를 사용하는 전자 장치(10)의 기능과 신뢰된 운영 체제(30)를 사용하는 전자 장치(10)의 기능 사이에서 스위칭을 제어하여, 전자 장치(10)는 2개의 운영 체제(20, 30) 중 1개만을 사용하여(즉, 상기 언급된 2개의 환경 중 1개에서만) 항상 기능한다. 도 2에 도시된 바와 같이, 보안 모니터(40)의 기능은 신뢰된 운영 체제(30)와 동일한 보안 요건에 합치하고 따라서 보안 모니터(40)는 일반적으로 신뢰된 실행 환경(TEE)의 일부인 것으로 간주된다.
한 실현 가능한 실시예에 따르면, 절환 전에 실행되는 운영 체제(예를 들어 리치 운영 체제(20))는 절환시에 대기 상태에 들어가고 그 다음에 프로세서(예를 들어 특히 키패드 및/또는 스크린 및/또는 다른 입력-출력 모듈을 포함하는 인간-기계 인터페이스)의 외부에 있는 요소에 대한 모든 액세스는 대기 상태에 있는 운영 체제에 대해 금지되어, 절환에 의해 활성화되는 운영 체제(여기에서는 신뢰된 운영 체제(30))는 외부 요소, 여기에서 인간-기계 인터페이스를 완전히 제어한다.
보안 모니터(40)는 또한 파일을 이하에 설명되는 랜덤 액세스 메모리로 로딩하는 방법의 예에 도시된 바와 같이, 정보를 절환 전에 실행되고 있었던 운영 체제로부터 절환 후에 실행되는 운영 체제로 전달하는 것을 절환 시에 가능하게 할 수 있다.
여기에서 설명되는 예에서, 리치 운영 체제(20) 및 신뢰된 운영 체제(30) 는 전자 장치(10)의 프로세서(2)에 의해 실행된다. 2개의 프로세서를 포함하는 전자 장치는 대신에 사용될 수 있으며, 리치 운영 체제(20)는 하나 상에서 실행되고 신뢰된 운영 체제(30)는 다른 것 상에서 실행된다.
도 3은 본 발명의 맥락에서 사용되는 3개의 영역(Z1, Z2, Z3)으로 랜덤 액세스 메모리(4)의 분할을 나타낸다.
랜덤 액세스메모리(4)의 제1 영역(Z1)은 신뢰된 운영 체제(30)에 의해서만 판독 모드 및 기록 모드에서 액세스 가능하다. 리치 운영 체제(20), 및 따라서 리치 실행 환경(REE)에서 실행되는 애플리케이션은 제1 영역(Z1)에 액세스할 수 없다.
예를 들어, 제1 영역(Z1)은 어드레스의 제1 범위(P1) 내의 어드레스, 여기에서 더 중요한 바이트가 h00과 h0F 사이인 어드레스를 사용하는 신뢰된 운영 체제(30)에 의해 액세스 가능하다(표기 hxy는 숫자 xy가 16진 표기로 표현되는 것을 의미함). 이들의 어드레스는 예를 들어 랜덤 액세스 메모리(4) 내의 물리 어드레스에 대응한다.
랜덤 액세스 메모리(4)의 제2 영역(Z2)은 신뢰된 운영 체제(30) 및 리치 운영 체제(20) 둘 다에 의해 사용되는 공유 영역이다. 더 정확히 말하면, 제2 영역(Z2)은 신뢰된 운영 체제(30)에 의해 판독 모드 및 기록 모드에서 액세스 가능하며, 다른 한편, 제2 영역(Z2)은 리치 운영 체제(20)에 의해 판독 전용 모드에서 액세스 가능하다. 따라서, 리치 운영 체제(20), 및 따라서 마찬가지로 리치 실행 환경(REE)에서 실행되는 애플리케이션은 제2 영역(Z2)에서 기록할 수 없다.
예를 들어, 제2 영역(Z2)은 어드레스의 제2 범위(P2) 내의 어드레스, 여기에서 더 중요한 바이트가 h10과 h1F 사이인 어드레스를 사용하는 신뢰된 운영 체제(30)에 의해 액세스 가능하다. 이들의 어드레스는 예를 들어 랜덤 액세스 메모리(4) 내의 물리 어드레스에 대응한다. 다른 한편, 제2 영역(Z2)은 어드레스의 제2 범위(P2)와 별개의 어드레스의 제3 범위(P3) 내의 어드레스, 여기에서 더 중요한 바이트가 h20과 h2F 사이인 어드레스를 사용하는 리치 운영 체제(20)로부터 (판독 전용 모드에서) 액세스 가능하다.
랜덤 액세스 메모리(4)의 제3 영역(Z3)은 리치 운영 체제(20)(및 리치 실행 환경(REE)에서 실행되는 애플리케이션)의 사용을 위해 제공된다. 따라서, 이와 같은 제3 영역(Z3)은 리치 운영 체제(20)에 의해, 그리고 후자, 즉 리치 실행 환경(REE)에서 실행되는 애플리케이션을 통해 판독 모드 및 기록 모드에서 액세스 가능하다.
신뢰된 운영 체제(30)에 의한 제3 영역(Z3)의 사용이 정상 기능의 특징은 아니지만, 신뢰된 운영 체제(30)에는 판독 모드 및/또는 기록 모드에서 제3 영역(Z3)을 액세스할 가능성이 주어질 수 있다. 신뢰된 실행 환경(TEE)에서 수행되는 애플리케이션에(예를 들어 인증에 관하여) 부과되는 제한은 실제로 예를 들어 랜덤 액세스 메모리(4)의 모두가 보안 이유로 재설정되어야 하면, 신뢰된 실행 환경(TEE)으로부터 제3 영역(Z3)으로의 액세스가 예외 상황에 제한되는 것을 보장하는 것을 가능하게 한다. 따라서, 예를 들어, 신뢰된 운영 체제(30)는 제3 영역(Z3)에서 사용자에 링크되는 데이터(성명, 인터페이스 정보 등)를 판독할 수 있다. 그것의 일부에 대해, 제3 영역(Z3) 내에 데이터를 기록하는 것은 특정 상황에(예를 들어 신뢰된 운영 체제(30)의 특정 명령 및/또는 특정 상태에) 제한될 것이다.
예를 들어, 제3 영역(Z3)은 어드레스의 제3 범위(P3)와 별개의 어드레스의 제4 범위(P4) 내의 어드레스를 사용하는 리치 운영 체제(20)에 의해 액세스 가능하며, 어드레스의 제4 범위(P4)는 여기에서 더 중요한 바이트가 h00과 h1F 사이인 어드레스에 대응한다. 제3 영역(Z3)이 신뢰된 운영 체제(30)로부터 액세스 가능하면, 액세스는 어드레스의 제1 및 제2 범위(P1, P2)와 별개의 어드레스의 제5 범위(P5) 내의 어드레스, 여기에서 더 중요한 바이트가 h20과 h3F 사이인 어드레스에 의해 성취될 수 있다. 이들의 후자 어드레스는 예를 들어 랜덤 액세스 메모리(4) 내의 물리 어드레스에 대응한다.
제2 및 제3 영역(Z2, Z3)은 예를 들어 에일리어스(alias)의 사용을 통해, 랜덤 액세스 메모리(4) 내의 물리 어드레스와 별개의 (가상) 어드레스에서 리치 운영 체제(20)에 의해(및 따라서 리치 실행 환경(REE)에서 실행되는 애플리케이션에 대해) 액세스 가능하며, 이는 이와 같은 애플리케이션이 판독 전용 모드에서 제2 영역(Z2)에 액세스하는 것을 허용하는 것과 동시에, 랜덤 액세스 메모리(4)를 상이한 영역(Z1, Z2, Z3)으로 분할하고 리치 실행 환경(REE)에서 실행되는 애플리케이션에 의해 제1 영역(Z1) 내의 임의의 액세스를 방지하는 것을 가능하게 한다는 점을 주목한다.
도 4a는 전자 장치(10), 예를 들어 재프로그래밍 가능 비휘발성 메모리(6)에 저장되는 함수 테이블을 나타낸다.
제1 테이블(T1)은 리치 실행 환경(REE)에 설치되는 각각의 애플리케이션(APPL1, APPL2, APPL3)에 대해 관련 애플리케이션의 사용 빈도를 나타내는 데이터를 저장한다. 사용 빈도를 나타내는 이와 같은 데이터는 예를 들어 소정의 기간, 여기에서는 일주일의 기간에 걸쳐 애플리케이션을 사용한 수이다. 예를 들어, 전자 장치에 구비되는 배터리를 충전하거나 방전하는 사이클에 연관된 기준과 같은, 시간 기준과는 별개인 기준에 의해 정의되는, 가변 기간의 시간 경과에 걸친 사용 횟수가 대신 계산될 수 있다.
설치되는 다양한 애플리케이션(APPL1, APPL2, APPL3)은 또한 예를 들어 도 4a에 도시된 바와 같은 제1 테이블(T1)에서, 사용 빈도를 감소시킴으로써 분류될 수 있다.
다차원 테이블(예를 들어 도 4b에 도시된 바와 같은 3차원 테이블)은 다수의 기준에 따른 사용 통계를 저장하기 위해 대신에 사용될 수 있다. 따라서, 각각의 애플리케이션(APPLi)에 대해, 예를 들어, 도 4b에 도시된 바와 같이, 시간(T)(예를 들어, 시각 및 요일) 및 위치(L)의 함수로서 사용 통계(S)(예를 들어 사용 빈도)가 저장된다.
이와 같은 경우에, 다양한 애플리케이션(APPLi)은 현재 시간에 대응하는 일주일 내의 시간(T) 및 현재 위치에 대응하는 위치(L)에 관한 통계를 사용하는 사용 빈도를 감소시킴으로써 분류될 수 있다.
제2 테이블(T2)은 리치 실행 환경(REE)에 설치되는 각각의 애플리케이션(APPL1, APPL2, APPL3)에 대해 실행 동안에 관련된 애플리케이션에 의해 사용되는 상이한 자원(또는 파일)을 저장하며, 이들 자원은 예를 들어 함수 라이브러리(LIB1, LIB2, LIB3) 또는 데이터 세트(또는 파일)(DAT1, DAT2, DAT4, DAT6)이다.
전자 장치(10) 상에 설치되는 애플리케이션(상기 언급된 애플리케이션(APPL1, APPL2, APPL3)이 관련되는 리치 실행 환경(REE)에서의 사용을 위함) 및 애플리케이션이 사용하는 자원(여기에서 함수(LIB1, LIB2, LIB3) 및 데이터(DAT1, DAT2, DAT4, DAT6))은 (예를 들어 도시되지 않은 전자 장치(10)의 전기통신 수단을 사용하여, 서비스 제공자 서버와 같은 원격 컴퓨터로부터 애플리케이션을 다운로드한 후에) 재프로그래밍 가능 비휘발성 메모리(6)에 저장된다.
그럼에도 불구하고, 프로세서(2)에 의해 실행되어야 하는 애플리케이션(뿐만 아니라 가능하게는 애플리케이션이 사용할 수 있는 자원의 적어도 일부)은 이하에 설명되는 바와 같이, 애플리케이션의 기동을 가속화하기 위해, 사용자에 의한 애플리케이션의 선택 후에 또는 사전에, 랜덤 액세스 메모리(4)로 로딩된다.
도 5는 전자 장치(10)를 시작할 시에 파일을 랜덤 액세스 메모리(4)로 로딩하는 방법의 일 예를 나타낸다.
이와 같은 방법은 시작된 후에(예를 들어 사용자에 의해 전원이 공급된 때에) 전자 장치(10)를 초기화하는 단계 E0로 시작한다. 이와 같은 초기화 단계 E0 후에, 랜덤 액세스 메모리(4)의 모든 바이트는 일반적으로 랜덤 액세스 메모리(4)의 물리 설계 또는 초기화 단계 E0에 포함되는 강제 재초기화 하위 단계 때문에 사전 결정 값(예를 들어 h00 또는 hFF)을 갖는다.
초기화 단계 E0는 전자 장치(10)의 기능을 초기화하기 위해 필요한 다른 하위 단계, 예를 들어 신뢰된 운영 체제(30)를 재프로그래밍 가능 비휘발성 메모리(6)로부터 랜덤 액세스 메모리(4)로 로딩하는 단계 및 그것의 실행을 시작하는 단계를 포함한다.
초기화 단계 E0 다음에 신뢰된 운영 체제(30)가 신뢰된 실행 환경(TEE)의 맥락에서 사용되는 파일(애플리케이션 및 애플리케이션에 의해 사용되는 자원, 특히 라이브러리 및 데이터)을 랜덤 액세스 메모리(4)의 제1 영역(Z1)으로 로딩하는 것을 명령하는 단계 E2가 이어진다. 여기에서 설명되는 실시예에서, 파일은 (이미 표시된 바와 같이, 파일이 이전에 저장되었던 장소인) 재프로그래밍 가능 비휘발성 메모리(6)로부터 제1 영역(Z1)으로 로딩(즉, 복사)된다.
제1 영역(Z1)에 파일의 정확한 저장은 예를 들어 랜덤 액세스 메모리(4)에서 비롯되는(가능하게는 메모리로 기록되는 데이터에 대한 체크섬(checksum)에 의해 동반되는) 정확한 기능 표시자를 대기하고 그리고/또는 기록될 데이터와 비교하기 위해 기록되는 데이터를 판독함으로써, 신뢰된 운영 체제(30)에 의해 검증될 수 있다.
단계 E2 동안에 제1 영역(Z1)으로 로딩되는 애플리케이션은 예를 들어 기본 기능성(예컨대 전자 장치(10)의 보안 기능에 관한 것)을 사용하는 애플리케이션 또는 전자 장치(10)가 신뢰된 실행 환경(TEE)의 맥락에서 기능할 때 자주 사용되는 애플리케이션이다.
이 방법은 신뢰된 운영 체제(30)가 요건의 목록을 획득하기 위해 요청(REQ)을 리치 운영 체제(20)에 송신하고 리치 운영 체제(20)로 핸드오버하는 단계 E4로 계속된다. 이미 지시된 바와 같이, 정보(여기에서 요청(REQ))의 송신 및 신뢰된 운영 체제(30)로부터 리치 운영 체제(20)로의 절환은 예를 들어 보안 모니터(40)에 의해 수행된다.
따라서, 리치 운영 체제(20)는 단계 E6에서 (예를 들어 보안 모니터(40)에 의해 랜덤 액세스 메모리(4)로 로딩된 후에) 프로세서(2)에 의해 실행되고 단계 E4에서 신뢰된 운영 체제(30)에 의해 송신되는 요청(REQ)을 수신한다.
그 다음, 단계 E7에서, 리치 운영 체제(20)는 요청되었던 요건의 목록(L1)을 준비하며, 이는 이하에 설명되는 바와 같이 리치 실행 환경(REE)의 맥락에서 예측할 수 있는 파일(애플리케이션 및 그러한 애플리케이션에 의해 사용되는 자원, 특히 라이브러리 및 데이터) 사용을 표시한다.
이 때문에, 리치 운영 체제(20)는 예를 들어 가장 자주 사용되는 애플리케이션(즉, 여기에서 애플리케이션(APPL2))을 결정하기 위해, 제1 테이블(T1)을 참고하고, 그 다음 이와 같은 애플리케이션에 의해 사용되는 자원(여기에서 라이브러리(LIB1, LIB3) 및 데이터 파일(DAT1))을 결정하기 위해 제2 테이블(T2)을 참고한다.
그 다음, 이와 같은 방식으로 결정된 파일(즉 가장 자주 사용되는 애플리케이션(APPL2) 및 이와 같은 애플리케이션에 의해 사용되는 자원(LIB1, LIB3, DAT1))에 대한 참조는 요건의 목록(L1)에 추가된다.
이와 같은 프로세스는 선택적으로 예를 들어 사용 빈도의 감소 순서로, 요건의 목록(L1)에 열거되는 파일에 대응하는 메모리 크기가 사전 정의 임계값(예를 들어 랜덤 액세스 메모리(4)의 제2 영역(Z2)의 크기와 동일함)에 도달할 때까지, 다른 애플리케이션에 대해, 또는 대안적으로, 리치 실행 환경(REE)에서의 사용을 위해 설치되는 모든 애플리케이션에 대해 반복될 수 있다.
따라서, 도 6에서, 애플리케이션(APPL3) 및 자원(LIB2, DAT2)에 대한 참조는 요건의 목록(L1)에 추가되었다. (요건의 목록(L1)에 이미 언급된 파일, 여기에서 라이브러리(LIB3)에 대한 참조는 요건의 목록(L1)에 다시 추가되지 않는다는 점을 주목한다).
사용 통계(예를 들어 전자 장치(10)가 사용된 제1 시간)가 이용 가능하지 않으면, 리치 운영 체제(20)는 예를 들어 (재프로그래밍 가능 비휘발성 메모리(6)에 이와 같은 목적을 위해 저장되는) 초기목록을 요건의 목록(L1)으로서 사용한다.
리치 운영 체제(20)는 단계 E8에서 요건의 목록(L1)을 신뢰된 운영 체제(30)에 송신한다. 위에 이미 표시된 바와 같이, 여기에서, 이와 같은 정보의 전송은 보안 모니터(40)에 의해 관리되고 전자 장치의 기능을 리치 실행 환경(REE)으로부터 신뢰된 실행 환경(TEE)으로 절환함으로써 동반된다.
따라서, 신뢰된 운영 체제(30)의 실행은 요건의 목록(L1)의 수신으로, 단계 E10에서 재개된다.
그 다음, 단계 E11에서, 신뢰된 운영 체제(30)는 파일이 어떤 기준, 여기에서 하기 기준 중 적어도 하나와 합치되는 것을 검증함으로써 이와 같은 파일이 공유 메모리 영역(또는 제2 영역)(Z2) 내의 로딩과 호환 가능한지를 요건의 목록(L1)에 언급되는 각각의 파일에 대해 판단한다:
- 파일은 신뢰된 실행 환경(TEE)(파일이 신뢰된 운영 체제(30)에 의해 인증되고 그리고/또는 설치되었던 - 즉, 재프로그래밍 가능 비휘발성 메모리(6)로 로딩된 - 경우임)에서 사용될 수 있으며;
- 한편으로 신뢰된 실행 환경(TEE)에서 기능하는 동안 및 다른 한편으로 리치 실행 환경(REE)에서 기능하는 동안에 이와 같은(동일한) 파일의 사용은 허용된다(일부 파일은 신뢰된 실행 환경(TEE)에서의 사용을 위해 예약되는 것으로 지정되고 그에 따라 리치 실행 환경(REE)에서의 사용으로부터 금지될 수 있는데, 그 예를 들자면 고차원 보안을 필요로 하는 파일이다).
예를 들어, 신뢰된 운영 체제(30)는 실제로 파일이 일부 운영 체제에 의해 사용되는 권리 시스템에 제공되는 플래그와 같은, 관련 파일의 전용 위치에 포함되는 플래그(또는 2진 표시)에 의해 공유 메모리 영역(Z2) 내의 로딩과 호환 가능한지를 판단한다.
도 6을 참조하여 여기에서 설명되는 예에서, 애플리케이션(APPL2)은 인증 없이, 리치 실행 환경(REE)에서 전자 장치(10)의 기능 동안에 설치되는 애플리케이션이고, 라이브러리(LIB2)는 때때로 신뢰된 실행 환경(TEE)의 맥락에서 그리고 때때로 리치 실행 환경(REE)의 맥락에서 사용되도록 요구되지 않는 암호 함수(예를 들어 암호화, 복호화 및/또는 전자 서명)의 라이브러리이다. 고차원 보안을 필요로 하는 이와 같은 라이브러리는 일반적으로 증명되고 보안을 사용하는 것은 일반적으로 그것의 무결성을 점검하는 것을 수반한다.
따라서, 이와 같은 예에서, 신뢰된 운영 체제(30)는 하기 파일이 랜덤 액세스 메모리(4)의 제2 영역(Z2)으로 로딩될 수 있다는 것을 단계 E11에서 결정한다: LIB1, LIB3, DAT1, APPL3, DAT2.
단계 E12에서, 신뢰된 운영 체제(30)는 제2 영역(Z2)으로 로딩될 이들의 파일에 관한 전체적인 체크섬을 계산한다.
그 다음, 신뢰된 운영 체제(30)는 단계 E11에서 결정되는 파일(여기에서는 파일(LIB1, LIB3, DAT1, APPL3, DAT2))을 제2 영역(Z2)으로 로딩하기 위해 단계 E13으로 진행할 수 있다. 여기에서, 이들의 파일은 재프로그래밍 가능 비휘발성 메모리(6)로부터 로딩된다(즉, 신뢰된 운영 체제(30)하에 재프로그래밍 가능 비휘발성 메모리(6)로부터 랜덤 액세스 메모리(4)의 제2 영역(Z2)으로 복사됨).
제2 영역(Z2)에 파일의 정확한 저장은 예를 들어 랜덤 액세스 메모리(4)에서 비롯되는(가능하게는 단계 E12에서 위에 지시된 바와 같이 컴퓨팅 되는, 메모리에 기록되는 데이터에 대한 체크섬의 검증에 의해 동반되는) 정확한 기능의 표시자를 대기하고 그리고/또는 기록될 데이터와 비교하기 위해 기록되는 데이터를 판독함으로써, 신뢰된 운영 체제(30)에 의해 검증될 수 있다. 대안적으로, 상기 제안된 바와 같이 로딩될 파일의 모두에 관한 전체적인 체크섬을 사용하는 대신에, 체크섬은 로딩될 각각의 파일을 위해 사용될 수 있다.
더욱이, 신뢰된 운영 체제(30)는 사본이 단계 E13에서 제2 영역(Z2)으로 로딩 되었던 파일로 단계 E2에서 로딩된 제1 영역(Z1) 내의 메모리 공간을 해소할 수 있다. 신뢰된 실행 환경(TEE)에서 기능하는 동안에, 이들의 파일은 실제로 제2 영역(Z2)에서 그것을 판독함으로써 참고되거나 실행될 수 있고 따라서 제1 영역(Z1)에서 그것의 복사를 유지할 의미가 없다.
그 다음, 단계 E14에서, 신뢰된 운영 체제(30)는 예를 들어, 도 6에 도시된 바와 같이, 제2 영역(Z2)으로 로딩 되는 각각의 파일에 대해 포함하는 공유 목록(L2)를 생성하기 위해 진행한다:
- 관련된 파일의 지정(DES);
- 파일에 액세스하기 위해 리치 운영 체제(20)에 의해 사용될 수 있는 바와 같이, 관련된 파일이 저장되는 어드레스(여기에서 가상 어드레스)(ADR)(즉 어드레스의 제3 범위(P3) 내의 어드레스);
- 예를 들어 순환 중복 점검(CRC) 코드의 형태인, 관련된 파일의 무결성의 검증에 관한 정보(INT);
- (리치 운영 체제(20)가 실제로 제2 영역(Z2)으로의 관련된 파일의 로딩을 실시하게 한 신뢰된 운영 체제(30)였던 것을 나중에 검증할 수 있게 하기 위해) 신뢰된 운영 체제(30)에 의해 관련되는 파일에 대해 생성되는 증명서(CERT).
여기에서 설명되는 예에서, 검증 정보(INT)는 관련된 파일이 저장되는 메모리 범위에 대한 순환 중복 점검 알고리즘의 적용에 의해 상기 표시된 바와 같이 획득된다. 하기 알고리즘 중 하나가 예를 들어 사용된다: 보안 해시 알고리즘 SHA-2, SHA-3 또는 메시지 다이제스트 5(MD5). 대안적으로, 체크섬 또는 메시지 인증 코드(MAC)가 사용될 수 있다.
공유 목록(L2)은 파일이 랜덤 액세스 메모리(4)에 저장되는 물리 어드레스를 제2 영역(Z2)으로 로딩 되는 각각의 파일에 대해 더 포함할 수 있다.
단계 E16에서, 신뢰된 운영 체제(30)는 이와 같은 방식으로 생성되는 공유 목록(L2)를 리치 운영 체제(20)에 송신한다. 이전과 같이, 이와 같은 송신은 리치 실행 환경(REE)으로의 절환에 의해 보안 모니터(40)를 통해 여기에서 달성된다.
대안적으로, 공유 목록(L2)은 리치 운영 체제(20)에 의해 액세스 가능한 사전 정의 메모리 위치에서, 예를 들어 랜덤 액세스 메모리(4)의 제2 영역(Z2) 내의 사전 정의 위치에서 신뢰된 운영 체제(30)에 의해 저장될 수 있다.
공유 목록(L2)이 사용되었을 때 손상되지 않았던 것을 검증하기 위해, 신뢰된 운영 체제(30)에 의해 생성되고 공유 목록(L2)와 연관되는 순환 중복 점검(CRC) 코드가 저장될 수 있다.
단계 E16에서 개시되는 절환 때문에, 리치 운영 체제(20)는 가능하게는 공유 목록(L2)와 연관되는 순환 중복 점검 코드의 검증과 함께, 단계 E18에서 다시 실행되고 수신된 공유 목록(L2)를 저장한다(또는 방금 언급된 변형 내의 사전 정의 위치에서 공유 목록(L2)에 액세스함).
따라서, 전자 장치(10)의 후속 기능 동안에, 리치 운영 체제(20) 및 리치 실행 환경(REE)의 맥락에서 실행되는 애플리케이션은 공유 테이블(L2)을 참고하고 관련된 파일에 대한 공유 테이블(L2)에 표시되는 어드레스(ADR)에서 제2 영역(Z2)에 저장되는 파일을 액세스할 수 있어, 가능하게는 관련된 파일에 대한 파일 공유 테이블(L2)에 존재하는 증명서(CERT) 덕분에 관련된 파일 및/또는 파일의 소스에 대해 공유 테이블(L2)에 존재하는 정보(INT)를 사용하여 파일의 무결성을 검증한다.
수신되는(또는 사전 정의 위치에서 고려될 수 있는) 공유 목록(L2) 및 단계 E7에서 준비되는 요건의 목록(L1)에 기초하여, 리치 운영 체제(20)는 단계 E20에서 (차이를 설정함으로써) 요건의 목록(L1)으로 언급되는 파일이 제2 영역(Z2)으로 로딩 되지 않았는지를 판단한다(제2 영역(Z2)으로 로딩되는 파일은 공유 목록(L2)에 지정됨).
그 다음, 요건의 목록(L1)에 존재하고 공유 목록(L2)에 없는 바와 같은 단계 E20에서 결정되는 파일은 단계 E22에서 제3 영역(Z3)으로 로딩되며, 즉 리치 운영 체제(20)의 제어 하에 재프로그래밍 가능 비휘발성 메모리(6)(파일이 이전에 설치되었던 장소)로부터 랜덤 액세스 메모리(4)의 제3 영역(Z3)으로 복사된다.
더욱이, 제3 영역(Z3)에 파일의 정확한 저장은 예를 들어 랜덤 액세스 메모리(4)에서 비롯되는(가능하게는 메모리로 기록되는 데이터에 대한 체크섬에 의해 동반되는) 정확한 기능의 표시자를 대기하고 그리고/또는 기록될 데이터와 비교하기 위해 기록되는 데이터를 판독함으로써 리치 운영 체제(20)에 의해 검증될 수 있다.
이것은 랜덤 액세스 메모리(4)의 다양한 영역(Z1, Z2, Z3)으로 파일의 로딩을 완료하고 따라서 정상 기능은 예를 들어 전자 장치(10)의 인간-기계 인터페이스(도시되지 않음)의 수준에서 사용자로부터의 명령을 대기함으로써 단계 E24에서 시작할 수 있다.
정상 기능은 새로운 애플리케이션이 기능의 맥락에서 리치 실행 환경(REE)에 설치될 때까지 계속된다.
그 다음, 리치 운영 체제(20)는 단계 E26에서 요건의 갱신된 목록(L1')을 준비하고 이와 같은 요건의 목록을 신뢰된 운영 체제(30)에 송신한다.
신뢰된 운영 체제(30)는 요건의 갱신된 목록(L1')을 수신하고 (단계 E10에서와 같이) 새로운 파일이 제2 영역(Z2)으로 로딩되는 것, 및 가능하게는 파일이 새로운 파일에 대한 메모리 공간을 비우기 위해 제2 영역(Z2)으로부터 삭제되는 것을 결정한다. 이것은 예를 들어 FIFO(first in, first out), LRU(least recently used), LFU(least frequently used) 또는 임의 우선순위 메모리 페이지 관리 방법을 사용한다.
그 다음, 신뢰된 운영 체제(30)는 제2 영역(Z2)으로 로딩될 새로운 파일에 관한 순환 중복 점검 코드를 계산하고 제2 영역(Z2)으로 새로운 파일의 기록을 명령한다(단계 E30).
그 다음, 단계 E32에서, 신뢰된 운영 체제(30)는 (제2 영역(Z2)으로 로딩 되는 새로운 파일을 고려하기 위해) 공유 목록(L2)를 갱신한다. 그 다음, 방법은 후술되는 단계 E16으로 계속되어 (갱신된) 공유 목록의 송신을 갖는 리치 실행 환경(REE)으로 절환하며 새로운 애플리케이션이 기능하는 데 필요하고 영역(Z2)으로 로딩 되지 않았던 파일의 영역(Z3)으로 로딩한다.
방금 설명되었던 단계 E26 내지 E32에 대한 대안으로서, 방법은 상기 설명된 바와 같은 단계 E4 내지 E16에서 파일을 영역(Z2)으로 로딩하는 방법을 전체적으로 수행하기 위해 리치 실행 환경(REE) 내의 새로운 애플리케이션의 설치로 단계 E4로 순환(loop)될 수 있다.
Claims (14)
- 전자 장치(10)의 프로세서(2)에 의한 신뢰된 운영 체제(30)의 실행에 의한 신뢰된 실행 환경(TEE)에서 기능하도록 또는 리치 실행 환경(REE)에서 기능하도록 설계되는 상기 전자 장치(10) 내의 랜덤 액세스 메모리(4)로 파일을 로딩하는 방법으로서,
- 상기 신뢰된 운영 체제(30)가, 적어도 하나의 파일을 식별하는 정보를 수신하는 단계 (E10) - 상기 적어도 하나의 파일을 식별하는 정보는, 상기 리치 실행 환경(REE)에서 기능하는 동안에 준비되는, 요건의 기술(L1)에 포함됨 -;
- 상기 신뢰된 운영 체제(30)가, 상기 정보에 의해 식별된 파일이 적어도 하나의 소정의 기준에 합치하는지를 검증하는 단계 (E11);
- 상기 신뢰된 운영 체제(30)가 상기 정보에 의해 식별된 상기 식별된 파일이 상기 적어도 하나의 기준에 합치한다고 판단한 경우에, 상기 리치 실행 환경(REE)에서 기능할 때, 판독 전용 모드에서 액세스 가능한 상기 랜덤 액세스 메모리(4)의 영역(Z2)으로, 상기 식별된 파일을 로딩하는 단계 (E13)를 포함하는 것을 특징으로 하는, 로딩 방법. - 삭제
- 제1항에 있어서,
상기 요건의 기술(L1)은, 상기 리치 실행 환경(REE)에서 설치되는 애플리케이션의 사용 빈도를 나타내는 데이터(T1)의 함수로서 생성되는(E7), 로딩 방법. - 제1항에 있어서,
상기 요건의 기술(L1)은, 복수의 기준에 관한 사용 통계의 함수로서 생성되는(E7), 로딩 방법. - 제1항에 있어서,
상기 요건의 기술(L1)에 열거된 파일의 각각에 대해 상기 리치 실행 환경(REE)에서 실행되는 단계들로서,
- 상기 열거된 파일이, 상기 판독 전용 모드에서 액세스 가능한 상기 랜덤 액세스 메모리(4)의 영역(Z2)으로 로딩되었는지를 판단하는 단계; 및
- 로딩되지 않았으면, 상기 리치 실행 환경(REE)에서 기능하는 동안에, 기록 모드에서 액세스 가능한 상기 랜덤 액세스 메모리(4)의 다른 영역(Z3)으로 상기 열거된 파일을 로딩하는 단계를 더 포함하는, 로딩 방법. - 제1항 또는 제3항에 있어서,
상기 신뢰된 운영 체제(30)가, 상기 로딩된 파일의 지정(DES) 및 상기 로딩된 파일의 저장 어드레스(ADR)를 포함하는 공유 목록(L2)을 생성하는 단계 (E14)를 더 포함하는, 로딩 방법. - 제6항에 있어서,
상기 공유 목록(L2)은, 상기 로딩된 파일과 연관된 무결성 검증 정보(INT)를 포함하는, 로딩 방법. - 제6항에 있어서,
상기 공유 목록(L2)은, 상기 신뢰된 운영 체제(30)에 의해 생성된, 상기 로딩된 파일에 관한 인증(CERT)를 포함하는, 로딩 방법. - 제6항에 있어서,
상기 공유 목록(L2)은, 상기 리치 실행 환경(REE)에서 기능하는 동안에, 상기 판독 전용 모드에서 액세스 가능한 상기 랜덤 액세스 메모리(4)의 영역(Z2)에 저장되는, 로딩 방법. - 제1항 또는 제3항에 있어서,
상기 랜덤 액세스 메모리(4)에 로딩되는 상기 파일은, 비휘발성 메모리(6)로부터 판독되는, 로딩 방법. - 제1항 또는 제3항에 있어서,
상기 영역(Z2)은, 가상 어드레스 - 상기 가상 어드레스는 상기 가상 어드레스와는 다른 물리 어드레스를 가리킴 - 를 사용하여, 상기 리치 실행 환경(REE)에서 기능하는 동안에, 판독 전용 모드에서 액세스 가능한, 로딩 방법. - 제1항 또는 제3항에 있어서,
상기 적어도 하나의 파일을 식별하는 정보는, 상기 리치 실행 환경(REE)으로부터 상기 신뢰된 실행 환경(TEE)으로의 절환시에 수신되는, 로딩 방법. - 제1항 또는 제3항에 있어서,
- 상기 리치 실행 환경(REE)에서의 신규 애플리케이션의 설치 후에, 상기 신뢰된 운영 체제(30)로, 요건의 갱신된 기술(L1')을 송신하는 단계 (E26);
- 상기 리치 실행 환경(REE)에서 기능하는 동안에, 상기 판독 전용 모드에서 액세스 가능한 상기 랜덤 액세스 메모리(4)의 영역(Z2)으로 상기 요건의 갱신된 기술(L1')에 열거된 신규 파일을 로딩하는 단계 (E30)을 더 포함하는, 로딩 방법. - 적어도 하나의 프로세서(2) 및 랜덤 액세스 메모리(4)를 포함하고, 상기 프로세서(2)에 의한 신뢰된 운영 체제(30)의 실행에 의한 신뢰된 실행 환경(TEE)에서 기능하도록 또는 리치 실행 환경(REE)에서 기능하도록 설계되는 전자 장치(10)로서,
상기 신뢰된 운영 체제(30)는 적어도 하나의 파일을 식별하는 정보를 수신하고 - 상기 적어도 하나의 파일을 식별하는 정보는, 상기 리치 실행 환경(REE)에서 기능하는 동안에 준비되는, 요건의 기술(L1)에 포함됨 -,
상기 신뢰된 운영 체제(30)가, 상기 정보에 의해 식별된 파일이 적어도 하나의 소정의 기준에 합치하는지를 검증하고,
상기 신뢰된 운영 체제(30)가 상기 정보에 의해 식별된 상기 식별된 파일이 상기 적어도 하나의 기준에 합치한다고 판단한 경우에, 상기 리치 실행 환경(REE)에서 기능하는 동안에, 판독 전용 모드에서 액세스 가능한 상기 랜덤 액세스 메모리(4)의 영역(Z2)으로 상기 식별된 파일을 로딩하도록 설계되는 것을 특징으로 하는, 전자 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1460679A FR3028069B1 (fr) | 2014-11-05 | 2014-11-05 | Procede de chargement de fichier en memoire vive dans un appareil electronique et appareil electronique associe |
FR1460679 | 2014-11-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160053814A KR20160053814A (ko) | 2016-05-13 |
KR102376229B1 true KR102376229B1 (ko) | 2022-03-18 |
Family
ID=52779737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150154362A KR102376229B1 (ko) | 2014-11-05 | 2015-11-04 | 파일을 전자 장치 내의 랜덤 액세스 메모리로 로딩하는 방법 및 연관된 전자 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10037426B2 (ko) |
EP (1) | EP3018609B1 (ko) |
KR (1) | KR102376229B1 (ko) |
CN (1) | CN105574414B (ko) |
ES (1) | ES2718322T3 (ko) |
FR (1) | FR3028069B1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10546131B2 (en) * | 2015-10-22 | 2020-01-28 | Mcafee, Llc | End-point visibility |
US10430706B2 (en) * | 2016-12-01 | 2019-10-01 | Via Alliance Semiconductor Co., Ltd. | Processor with memory array operable as either last level cache slice or neural network unit memory |
CN106875562B (zh) * | 2017-03-02 | 2021-09-10 | 钟晓华 | 一种文件网络鉴证装置 |
CN110383277B (zh) * | 2017-03-07 | 2021-09-14 | 华为技术有限公司 | 虚拟机监视器测量代理 |
CN110489971A (zh) * | 2018-05-15 | 2019-11-22 | 微软技术许可有限责任公司 | 安全的数据集管理 |
US11093604B2 (en) * | 2018-07-27 | 2021-08-17 | BicDroid Inc. | Personalized and cryptographically secure access control in trusted execution environment |
CN112528288A (zh) * | 2019-08-30 | 2021-03-19 | 华为技术有限公司 | 可信应用的运行方法、信息处理和内存分配方法及装置 |
CN110555293A (zh) * | 2019-09-10 | 2019-12-10 | 百度在线网络技术(北京)有限公司 | 用于保护数据的方法、装置、电子设备和计算机可读介质 |
EP3835951A1 (en) * | 2019-12-13 | 2021-06-16 | Virtual Open Systems | System platform initializer for mixed-critical systems |
KR102276527B1 (ko) * | 2020-11-11 | 2021-07-13 | (주)소셜인프라테크 | 오브젝트의 정보 변경 방지를 위한 오브젝트 발행 시스템 |
CN114115732A (zh) * | 2021-11-10 | 2022-03-01 | 深圳Tcl新技术有限公司 | 数据处理方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100031325A1 (en) * | 2006-12-22 | 2010-02-04 | Virtuallogix Sa | System for enabling multiple execution environments to share a device |
US20140075502A1 (en) * | 2012-09-11 | 2014-03-13 | Selim Aissi | Resource management of execution environments |
US20140095918A1 (en) * | 2012-09-28 | 2014-04-03 | Per Ståhl | Method and Apparatus for Maintaining Secure Time |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7299292B2 (en) * | 2002-03-29 | 2007-11-20 | Widevine Technologies, Inc. | Process and streaming server for encrypting a data stream to a virtual smart card client system |
US7921303B2 (en) * | 2005-11-18 | 2011-04-05 | Qualcomm Incorporated | Mobile security system and method |
US20120110575A1 (en) | 2010-10-29 | 2012-05-03 | Unisys Corp. | Secure partitioning with shared input/output |
US9413538B2 (en) * | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
WO2013174503A1 (en) * | 2012-05-21 | 2013-11-28 | Eth Zurich | Secure loader |
CN102722665B (zh) * | 2012-05-22 | 2015-04-29 | 中国科学院计算技术研究所 | 基于tpm/vtpm的可信程序列表生成方法及系统 |
US20140250290A1 (en) * | 2013-03-01 | 2014-09-04 | St-Ericsson Sa | Method for Software Anti-Rollback Recovery |
-
2014
- 2014-11-05 FR FR1460679A patent/FR3028069B1/fr active Active
-
2015
- 2015-11-02 ES ES15192654T patent/ES2718322T3/es active Active
- 2015-11-02 EP EP15192654.0A patent/EP3018609B1/fr active Active
- 2015-11-04 US US14/932,347 patent/US10037426B2/en active Active
- 2015-11-04 CN CN201510740529.1A patent/CN105574414B/zh active Active
- 2015-11-04 KR KR1020150154362A patent/KR102376229B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100031325A1 (en) * | 2006-12-22 | 2010-02-04 | Virtuallogix Sa | System for enabling multiple execution environments to share a device |
US20140075502A1 (en) * | 2012-09-11 | 2014-03-13 | Selim Aissi | Resource management of execution environments |
US20140095918A1 (en) * | 2012-09-28 | 2014-04-03 | Per Ståhl | Method and Apparatus for Maintaining Secure Time |
Also Published As
Publication number | Publication date |
---|---|
EP3018609B1 (fr) | 2019-01-02 |
ES2718322T3 (es) | 2019-07-01 |
CN105574414B (zh) | 2020-11-10 |
FR3028069B1 (fr) | 2016-12-09 |
EP3018609A1 (fr) | 2016-05-11 |
KR20160053814A (ko) | 2016-05-13 |
US20160125186A1 (en) | 2016-05-05 |
US10037426B2 (en) | 2018-07-31 |
CN105574414A (zh) | 2016-05-11 |
FR3028069A1 (fr) | 2016-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102376229B1 (ko) | 파일을 전자 장치 내의 랜덤 액세스 메모리로 로딩하는 방법 및 연관된 전자 장치 | |
US8683213B2 (en) | Progressive boot for a wireless device | |
JP4956292B2 (ja) | 情報セキュリティ装置およびカウンタ制御方法 | |
JP2021509189A (ja) | ブロックチェーンベースのトランザクション処理方法および装置 | |
WO2020063001A1 (zh) | 基本输入输出系统固件的管理方法、装置和服务器 | |
US20150095652A1 (en) | Encryption and decryption processing method, apparatus, and device | |
US9021568B2 (en) | Verification method for verifying validity of program, and verification system | |
EP2434683A1 (en) | Electronic device, key generation program, recording medium, and key generation method | |
US9787663B2 (en) | Replaying a batch of secure commands in a secure channel | |
EP2196936A1 (en) | Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit | |
CN107870793B (zh) | 一种应用程序中加载so文件的方法及装置 | |
KR20150017844A (ko) | 페이지 구성 방법 및 이를 지원하는 전자 장치 | |
EP2051181A1 (en) | Information terminal, security device, data protection method, and data protection program | |
CN111201553B (zh) | 一种安全元件及相关设备 | |
EP3455779A1 (en) | Techniques for determining an anti-replay counter for preventing replay attacks | |
CN112384922A (zh) | 加密密钥分布 | |
WO2018063724A1 (en) | Method and apparatus for sharing security metadata memory space | |
EP1465038B1 (en) | Memory security device for flexible software environment | |
CN107995230B (zh) | 一种下载方法及终端 | |
KR102421318B1 (ko) | 장치의 시스템 온 칩의 보안 모듈로의 복수의 액세스를 관리하기 위한 디바이스 | |
CN114675865A (zh) | 空中下载技术升级方法、装置、存储介质及终端设备 | |
CN109872136B (zh) | 隔离数字钱包的升级方法、系统、冷钱包、热钱包 | |
CN109150534B (zh) | 终端设备及数据处理方法 | |
CN106534103B (zh) | Wifi设备的控制方法及装置 | |
CN117592037A (zh) | 控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |