KR20180132134A - 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치 및 방법 - Google Patents

복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치 및 방법 Download PDF

Info

Publication number
KR20180132134A
KR20180132134A KR1020187032629A KR20187032629A KR20180132134A KR 20180132134 A KR20180132134 A KR 20180132134A KR 1020187032629 A KR1020187032629 A KR 1020187032629A KR 20187032629 A KR20187032629 A KR 20187032629A KR 20180132134 A KR20180132134 A KR 20180132134A
Authority
KR
South Korea
Prior art keywords
secure
software application
temporary data
random access
access memory
Prior art date
Application number
KR1020187032629A
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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20180132134A publication Critical patent/KR20180132134A/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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3229Use of the SIM of a M-device as secure element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3227Aspects of commerce using mobile devices [M-devices] using secure elements embedded in M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/327Short range or proximity payments by means of M-devices
    • G06Q20/3278RFID or NFC payments by means of M-devices

Abstract

복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치는, 보안 요소 및 상기 보안 요소에 연결된 하나 이상의 중앙 처리 유닛을 포함하고; 상기 보안 요소는 프로세서 및 제1 랜덤 액세스 메모리를 포함하고; 상기 프로세서는 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행하도록 구성되고; 상기 제1 랜덤 액세스 메모리는 상기 보안 운영체제 소프트웨어 및 상기 하나 이상의 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장하도록 구성되고; 상기 프로세서는 추가로, 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제1 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 보안 요소 외부에 배치된 저장 기기로 마이그레이션하는 것을 제어하고, 상기 보안 운영체제 소프트웨어에 기초하여, 상기 제2 보안 소프트웨어 애플리케이션을 실행하도록 구성된다.

Description

복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치 및 방법
본 발명은 시스템 보안 기술 분야에 관한 것으로서, 특히 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치 및 방법에 관한 것이다.
모바일 결제(Mobile Payment)는 사용자가 이동 전화, 태블릿 컴퓨터 또는 웨어러블 장치와 같은 이동 단말기를 사용하여 구매한 상품 또는 서비스에 대한 지불을 허용하는 서비스 방식이다. 현재, 이동 단말기를 사용하여 모바일 결제를 구현하는 방식에는 세 가지 방식: 보안 디지털(Secure Digital, SD) 카드 솔루션, 가입자 식별 모듈(Subscriber Identity Module, SIM) 솔루션, 또는 근접장 통신(Near Field Communication, NFC)이 보안 요소(Secure Element, SE)와 결합되는 전 단말기(all-terminal) 솔루션이 있다. 현재, 근접장 통신이 보안 요소와 결합되는 전 단말기 솔루션이 모바일 결제를 구현하기 위한 주류 솔루션이 되고 있다.
기존의 전 단말기 솔루션은 도 1에 도시되어 있다. 이동 단말기(10)는 이동 단말기(10) 내부의 근접장 통신 유닛(101)을 사용하여 판매 시점(Point of sales, POS) 단말기(11)와 통신한다. 근접장 통신 유닛(101)과 POS 단말기(11) 사이의 단거리 무선 통신 링크(short-range wireless communications link)(12)는 양방향 채널이며, 모바일 결제 시에 기본적인 무선 통신 기능을 구현하기 위해 다양한 적용 가능한 단거리 무선 통신 프로토콜을 이용하여 구현될 수 있다. 예를 들면, 단거리 무선 통신 링크(12)는 POS 단말기(11)로부터 이동 단말기(10) 내부의 근접장 통신 유닛(101)에 POS 명령 데이터 등을 송신하는 데 사용될 수 있다. 보안 요소(102)는 독립적인 중앙 처리 유닛(Central Processing Unit, CPU)(103)에 연결되며, 금융 결제 서비스와 관련된 다양한 기능을 수행하고, 은행 서비스와 관련된 키 또는 인증서 등의 데이터를 저장하도록 구성된 구성요소일 수 있다. 거래 동안에, 보안 요소(102)는 근접장 통신 유닛(101)으로부터 POS 명령 데이터를 수신하고, 명령 데이터를 파싱하고, 금융 거래 계약(financial transaction agreement)에 따라 대응하는 응답을 한다. 이 응답은 근접장 통신 유닛(101)에 의해 POS 단말기(11)로 피드백되어, 모바일 결제에서의 데이터 전송을 완료하여, 거래 검증 카드(transaction verification card)의 역할을 하는 이동 단말기(10)의 기능을 구현한다. 중앙 처리 유닛(103)은 범용 운영체제 소프트웨어(1031), 예를 들어, 안드로이드(Android) 시스템 소프트웨어를 실행한다. 중앙 처리 유닛(103)은 근접장 통신 유닛(101) 및 보안 요소(102)를 제어하도록, 예를 들어, 근접장 통신 유닛(101) 및 보안 요소(102)의 인에이블 또는 디스에이블을 제어하도록 구성된다. 또한, 이동 단말기(10)는 입력 유닛(104)를 포함할 수 있다. 입력 유닛(104)은 터치 스크린일 수 있으며, 사용자 인터페이스(User Interface, UI)를 사용하여 사용자와 메시지를 교환하도록 구성될 수 있다. 따라서, 사용자는 UI를 사용하여 입력 유닛(104)에 조작 명령(operation instruction)을 입력하여, 범용 운영체제 시스템 소프트웨어(1031) 및 관련 소프트웨어 애플리케이션에 관련 조작을 지시할 수 있다. 조작 명령은 거래 확인, 개인 거래 패스워드 입력 등을 포함할 수 있다. POS 단말기(11)는 거래 단말 기기로서, 인터넷을 사용하여 네트워크 측의 클라우드 서버(14)에 액세스하여, 서버(14)를 이용하여 결제 서비스를 계산하고 완료한다. 네트워크 측의 서버(14)는 통상 은행에 의해 운영된다.
전 단말기 솔루션은 온라인 결제 및 오프라인 결제를 포함할 수 있다. 도 1에 도시된 바와 같이, 오프라인 결제 동안에, 이동 단말기(10)와 POS 단말기(11) 사이에서 비접촉식 카드 스와핑(non-contact card swiping), 즉 이동 전화의 스와핑이 수행된다. 근접장 통신 유닛(101)과 보안 요소(102)는 협력하여 결제 거래를 완료한다. 온라인 결제는 근접장 통신 유닛(101) 없이 구현될 수 있다. 이 경우, 중앙 처리 유닛(103)과 보안 요소(102)는 이동 통신 네트워크를 이용하여 인터넷에 액세스하여 온라인 결제를 구현할 수 있으며, 보안 요소(102)는 은행의 USB 키로서 기능하고 은행의 인증서를 저장 및 검증하도록 구성된다. 따라서, 도 1에서의 근접장 통신 유닛(101)은 선택적이다. 구체적으로, 도 1을 참조하면, 온라인 결제 동안에, 이동 단말기(10)는 오프라인 결제 동안의 근접장 통신 유닛(101)의 역할을 대체하도록 구성된 이동 통신 유닛(105)을 더 포함할 수 있다. 이동 통신 유닛(105)은 무선 액세스 네트워크(Radio Access Network, RAN)(15), 구체적으로는 무선 액세스 네트워크(15) 내의 기지국에 액세스하고, 무선 액세스 네트워크(15)를 이용하여 인터넷에 액세스한다. 인터넷은 인터넷 내의 서버(14)와 연결되어, 서버(14)는 명령 데이터를 수신하거나 보안 요소(102)에 정보를 송신할 수 있다. 보안 요소(102)는 명령 데이터를 파싱하고 금융 거래 계약에 따라 대응하는 응답을 하여, 이동 통신 유닛(105)이 모바일 인터넷을 사용하여 네트워크 측의 서버(14)에 데이터를 송신할 수 있도록 한다. 이 경우, 이동 통신 유닛(105)은 셀룰러 무선 통신 프로토콜을 실행하는 유닛일 수 있으며, 셀룰러 무선 통신 링크(13)를 사용하여 이동 단말기(10)를 인터넷에 액세스하도록 구성된다. 이동 통신 유닛(105)은 구체적으로 GSM(Global System for Mobile), UMTS(Universal Mobile Telecommunications System), WiMAX(Worldwide Interoperability for Microwave Access), 또는 LTE(Long Term Evolution)와 같은 셀룰러 무선 통신 프로토콜을 실행하여, 이동 단말기(10)의 모바일 인터넷 기능을 구현할 수 있다.
중국 특허출원 제201510201343.9호는 보안 요소(102) 및 중앙 처리 유닛(103)(또는 선택적으로 이동 통신 유닛(105)을 포함함)이 동일한 회로 기판에 통합되는, 즉, 마스터 칩(106)에 통합되는 솔루션을 제공한다. 또한, 보안 요소(102)는 마스터 칩(106) 외부의 저장 유닛으로부터 중앙 처리 유닛(103)에 의해 요구되는 안드로이드 또는 윈도우와 같은 범용 운영체제 소프트웨어를 로딩할 수 있다.
모바일 애플리케이션 시나리오가 발전함에 따라, 보안 요소(102)는 점점 더 많은 유형의 소프트웨어 애플리케이션을 실행하고, 보안 요소(102)의 애플리케이션 시나리오는 모바일 결제에 한정되지 않으며, 일부 SIM(가입자 식별 모듈) 카드 관련 소프트웨어, 예를 들어, 통신 운영자에 의해 커스터마이징된 소프트웨어 애플리케이션을 더 포함할 수 있다. 보안 요소(102)에 의해 실행되는 소프트웨어 애플리케이션의 수량이 증가함에 따라, 보안 요소(102)에서 대응하는 소프트웨어 애플리케이션을 실행하는 데 사용되는 메모리 공간에 대한 요구가 더 커진다. 그러나, 보안 요소(102)의 메모리 공간을 확장하는 것은 보안 요소(102)의 면적 및 비용을 증가시킬 수 있다.
본 발명의 실시예는 장치에서 하나 이상의 보안 소프트웨어 애플리케이션을 실행하는 보안 요소의 메모리 공간을 절약하기 위해, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치 및 방법을 제공한다.
제1 측면에 따르면, 본 발명의 일 실시예는 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치를 제공한다. 상기 장치는, 보안 요소 및 상기 보안 요소에 연결된 하나 이상의 중앙 처리 유닛을 포함하고; 상기 보안 요소는 프로세서 및 제1 랜덤 액세스 메모리를 포함하고; 상기 하나 이상의 중앙 처리 유닛은, 범용 운영체제 소프트웨어를 실행하고, 상기 범용 운영체제 소프트웨어의 작용 하에서 상기 보안 요소와 통신하도록 구성되고; 상기 프로세서는 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행하도록 구성되고; 상기 제1 랜덤 액세스 메모리는 상기 보안 운영체제 소프트웨어 및 상기 하나 이상의 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장하도록 구성되고; 상기 프로세서는 추가로, 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제1 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 보안 요소 외부에 배치된 저장 기기로 마이그레이션하는 것을 제어하고, 상기 보안 운영체제 소프트웨어에 기초하여, 상기 제2 보안 소프트웨어 애플리케이션을 실행하도록 구성되며; 상기 제2 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제2 임시 데이터는 상기 제1 랜덤 액세스 메모리에 임시로 저장된다.
제1 측면에서 제공되는 기술적 방안에 따르면, 프로세서는 적어도 일부 실행 중인 보안 소프트웨어 애플리케이션을 일시 중지할 수 있어, 제1 랜덤 액세스 메모리의 적어도 일부 메모리 공간이 절약되어, 제2 보안 소프트웨어 애플리케이션을 실행하는 데 사용될 수 있으므로, 보안 소프트웨어 애플리케이션의 동적 일시 중지 또는 로딩을 구현할 수 있다. 즉, 이 기술적 해결방안은 다음을 구현한다: 실행할 필요가 있는 보안 소프트웨어 애플리케이션이 일부 실행 중인 보안 소프트웨어 애플리케이션을 대체하는 데 사용되고, 대체된 보안 소프트웨어 애플리케이션의 실행 중에 생성된 임시 데이터는 외부 저장 기기로 마이그레이션된다. 이로써 제1 랜덤 액세스 메모리의 메모리 공간이 더 많이 소모되는 것을 방지하여, 제1 랜덤 액세스 메모리의 메모리 공간을 지나치게 크게 설계할 필요가 없으므로, 보안 요소의 면적과 비용을 감소시킬 수 있다.
선택적으로, 상기 프로세서는 한 순간에 단 하나의 보안 소프트웨어 애플리케이션을 실행하도록 설계될 수 있다. 상기 프로세서는 실행중인 보안 소프트웨어 애플리케이션을 동적으로 일시 중지하고 실행해야 하는 다른 보안 소프트웨어 애플리케이션을 로딩함으로써 실행중인 보안 소프트웨어 애플리케이션을 교체하여, 제1 랜덤 액세스 메모리의 메모리 공간에 대한 요구를 최소화할 수 있다.
선택적으로, 제1 랜덤 액세스 메모리는 SRAM(static random access memory), DRAM(dynamic random access memory) 또는 SDRAM(synchronous dynamic random access memory)일 수 있다.
선택적으로, 상기 하나 이상의 중앙 처리 유닛은 고급 축소 명령어 세트 컴퓨터 머신(Advanced RISC(Reduced Instruction Set Computer) Machine, ARM) 프로세서일 수 있다.
선택적으로, 상기 하나 이상의 중앙 처리 유닛이 범용 운영체제 소프트웨어의 작용 하에서 상기 보안 요소와 통신한다는 것은 다음을 포함할 수 있다: 상기 하나 이상의 중앙 처리 유닛은 상기 보안 요소의 실행을 제어할 수 있다. 예를 들어, 상기 보안 요소의 실행의 제어는 상기 보안 요소를 인에이블하는 것, 상기 보안 요소의 디스에이블하는 것, 상기 보안 요소가 저전력 소모 상태로의 진입을 제어하는 것, 및 상기 보안 요소의 작동 전압, 작동 전류 또는 클록 레이트를 조정하는 것 중 적어도 하나를 포함할 수 있다. 예를 들어, 통신은 IPC(Inter-Process Communication, 프로세스 간 통신) 규칙 또는 프로토콜을 따를 수 있다.
선택적으로, 상기 하나 이상의 보안 소프트웨어 애플리케이션 또는 상기 제2 보안 소프트웨어 애플리케이션은 각각 상기 저장 기기 내의 미리 설정된 공간 자원(또는 채널로 지칭됨)을 점유한다.
제1 측면에 따라, 제1 측면의 제1 가능한 구현예에서, 상기 프로세서는, 상기 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 상기 제1 보안 소프트웨어 애플리케이션을 실행하도록 구성되고, 추가로, 상기 제1 보안 소프트웨어의 실행을 일시 중지하고, 상기 제1 임시 데이터를 상기 저장 기기로 마이그레이션하는 것을 제어하고, 상기 보안 운영체제 소프트웨어에 기초하여, 상기 제2 보안 소프트웨어 애플리케이션을 실행하도록 구성된 제1 처리 유닛을 포함한다. 선택적으로, 상기 제1 처리 유닛은 중앙 처리 유닛일 수 있다. 이 구현예에서, 보안 소프트웨어 애플리케이션의 실행 및 임시 데이터의 마이그레이션이 동일한 처리 유닛에 의해 구현되기 때문에, 프로세서의 복잡도를 감소시킬 수 있다.
제1 측면에 따라, 제1 측면의 제2 가능한 구현예에서, 상기 프로세서는 제1 처리 유닛 및 제2 처리 유닛을 포함하고; 상기 제1 처리 유닛은, 상기 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 상기 제1 보안 소프트웨어 애플리케이션을 실행하고, 상기 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 임시 데이터의 마이그레이션을 트리거하도록 구성되고; 상기 제2 처리 유닛은 상기 제1 처리 유닛의 트리거에 기초하여, 상기 제1 임시 데이터를 상기 저장 기기로 마이그레이션하도록 구성되고; 상기 제1 처리 유닛은 추가로, 상기 제1 임시 데이터의 마이그레이션이 완료된 후에 상기 보안 운영체제 소프트웨어에 기초한 상기 제2 보안 소프트웨어 애플리케이션을 실행하도록 구성된다. 이 구현예에서는, 보안 소프트웨어 애플리케이션의 실행 및 임시 데이터의 마이그레이션이 상이한 처리 유닛에 의해 구현되기 때문에, 처리 효율을 향상시킬 수 있다. 선택적으로, 상기 제1 처리 유닛은 중앙 처리 유닛이다. 상기 제2 처리 유닛은 DMA(Direct Memory Access) 제어기이다.
제1 측면 또는 전술한 가능한 구현예들 중 어느 하나에 따라, 제1 측면의 제3 가능한 구현예에서, 상기 보안 요소 및 상기 하나 이상의 중앙 처리 유닛은 상기 장치 내의 제1 반도체 칩 내에 위치한다. 선택적으로, 상기 장치는 휴대형 전자 기기, 예를 들어 이동 전화, 태블릿 컴퓨터, 또는 웨어러블 장치일 수 있다. 보안 요소 및 하나 이상의 중앙 처리 유닛이 장치 내의 제1 반도체 칩에 통합되기 때문에, 집적 레벨이 향상되고 비용이 감소된다. 선택적으로, 상기 장치 내의 제1 반도체 칩은 셀룰러 기저대역 통신 프로세서, 그래픽 처리 장치 등을 더 포함할 수 있다.
제1 측면 또는 전술한 가능한 구현예들 중 어느 하나에 따라, 제1 측면의 제4 가능한 구현예에서, 상기 저장 기기는 상기 장치 내의 제2 반도체 칩 내에 위치한다. 선택적으로, 상기 저장 기기는 제2 랜덤 액세스 메모리이다. 상기 저장 기기는 보안 요소 외부에 배치된 독립적인 칩이기 때문에, 저장 기기의 메모리 공간은 비교적 커서, 상기 저장 기기는 본 실시예의 기술적 해결방안을 수행하는 데 충분히 사용될 수 있다.
선택적으로, 상기 제2 랜덤 액세스 메모리는 SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory) 또는 SDRAM(Synchronous Dynamic Random Access Memory)일 수 있다. 바람직하게는, 상기 제2 랜덤 액세스 메모리는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)이다.
제1 측면 또는 전술한 가능한 구현예들 중 어느 하나에 따라, 제1 측면의 제5 가능한 구현예에서, 상기 저장 기기는 보안 저장 영역을 포함하고, 상기 보안 저장 영역은 상기 프로세서에 의해 일시 중지되는 하나 이상의 보안 소프트웨어 애플리케이션의 제3 임시 데이터를 임시로 저장하는 데 전용된다(dedicated). 선택적으로, 상기 저장 기기는 상기 보안 요소 및 상기 하나 이상의 중앙 처리 유닛에 의해 공유될 수 있다. 상기 저장 기기는 상기 하나 이상의 중앙 처리 유닛에 의해 생성된 임시 데이터 또는 중간 데이터와, 상기 보안 요소에 의해 생성된 제3 임시 데이터 모두를 저장할 수 있다. 상기 하나 이상의 중앙 처리 유닛에 의해 생성된 임시 데이터와 상기 제3 임시 데이터 사이의 격리를 구현하기 위해, 상기 보안 소프트웨어 애플리케이션에 관한 제3 임시 데이터를 임시로 저장하는 데 전용되는 공간 또는 영역은 상기 저장 기기로부터 분리되므로, 보안을 향상시킨다. 상기 보안 저장 영역은 상기 제3 임시 데이터를 저장하는 데에만 사용되며, 상기 하나 이상의 중앙 처리 유닛에 의해 액세스될 수 없다. 따라서 보안 격리가 양호하다. 선택적으로, 상기 제3 임시 데이터는 일시 중지된 하나 이상의 보안 소프트웨어 애플리케이션 중의 각각의 보안 소프트웨어 애플리케이션의 임시 데이터를 포함할 수 있다.
제1 측면의 제5 가능한 구현예에 따라, 제1 측면의 제6 가능한 구현예에서, 상기 프로세서는 추가로, 상기 프로세서에 의해 일시 중지되는 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제3 보안 소프트웨어 애플리케이션를 종료할 필요가 있는 경우, 상기 저장 기기를 제어하여 상기 제3 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제4 임시 데이터를 삭제하도록 구성된다. 임의의 보안 소프트웨어 애플리케이션이 완전히 종료되면, 그 보안 소프트웨어 애플리케이션의 실행 중에 생성된 임시 데이터는 저장 기기로부터 삭제된다.
제1 측면 또는 전술한 가능한 구현예들 중 어느 하나에 따라, 제1 측면의 제7 가능한 구현예에서, 상기 장치는 상기 보안 요소에 연결된 제3 랜덤 액세스 메모리를 더 포함하고; 상기 제1 임시 데이터는 상기 프로세서에 의해 상기 제1 랜덤 액세스 메모리로부터 상기 제3 랜덤 액세스 메모리로 마이그레이션되고, 추가로 상기 제3 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션된다. 선택적으로, 상기 보안 요소는 마이그레이션될 필요가 있는 상기 제1 임시 데이터를 상기 제3 랜덤 액세스 메모리로 마이그레이션하고, 상기 하나 이상의 중앙 처리 유닛 또는 상기 하나 이상의 중앙 처리 유닛에 대응하는 제어기는 상기 제1 임시 데이터를 상기 제3 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션하도록 구성된다. 선택적으로, 상기 제3 랜덤 액세스 메모리는 상기 하나 이상의 중앙 처리 유닛과 상기 보안 요소 사이의 데이터 교환에 필요한 메모리이다. 상기 데이터 교환은 프로세스 간 통신 프로토콜(interprocess communication protocol)을 따를 수 있다. 선택적으로, 상기 하나 이상의 중앙 처리 유닛과 상기 보안 요소의 프로세서는 프로세스 간 통신 프로토콜 또는 인터럽트 명령을 사용하여 제어 정보를 교환하여, 상기 제3 랜덤 액세스 메모리를 중계기(relay)로서 사용하여 상기 제1 임시 데이터를 마이그레이션한다.
제1 측면 또는 전술한 가능한 구현예들 중 어느 하나에 따라, 제1 측면의 제8 가능한 구현예에서, 상기 제2 보안 소프트웨어 애플리케이션은 새롭게 시작된 보안 소프트웨어 애플리케이션이다. 선택적으로, 상기 하나의 중앙 처리 유닛은, 상기 보안 요소 내의 프로세서가 상기 제2 보안 소프트웨어 애플리케이션을 시작할 수 있도록, 상기 보안 요소에 시작 명령을 전송할 수 있다.
제1 측면 또는 전술한 가능한 구현예들 중 어느 하나에 따라, 제1 측면의 제9 가능한 구현예에서, 상기 제2 보안 소프트웨어 애플리케이션은 상기 프로세서에 의해 이전에 중지되어 다시 실행되는 소프트웨어 애플리케이션이고; 상기 프로세서는, 상기 제2 보안 소프트웨어 애플리케이션을 일시 중지하는 경우, 상기 제2 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션하고; 상기 제2 보안 소프트웨어 애플리케이션을 다시 실행할 필요가 있는 경우, 상기 제2 임시 데이터를 상기 저장 기기로부터 상기 제1 랜덤 액세스 메모리로 다시 마이그레이션하도록 구성된다. 선택적으로, 상기 제2 보안 소프트웨어 애플리케이션은 여러 번 일시 중지될 수 있고, 상기 제2 보안 소프트웨어 애플리케이션이 일시 중지될 때마다 상기 프로세서에 의해 상기 제1 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션되고, 상기 프로세서는, 상기 제2 보안 소프트웨어 애플리케이션이 재실행될 필요가 있을 때마다 상기 제2 임시 데이터를 상기 제1 랜덤 액세스 메모리로 다시 마이그레이션하여, 상기 보안 소프트웨어 애플리케이션의 유연한 동적 일시 중지 및 로딩을 구현한다.
제1 측면의 제9 가능한 구현예에 따라, 제1 측면의 제10 가능한 구현예에서, 상기 프로세서는, 상기 제1 랜덤 액세스 메모리로부터 상기 제2 임시 데이터를 획득하고, 상기 제2 임시 데이터를 상기 저장 기기로 마이그레이션하기 전에, 상기 제2 임시 데이터에 대해 암호화 또는 메시지 인증 코드(message authentication code, MAC) 연산 중 적어도 하나를 수행하고; 상기 저장 기기로부터 상기 제2 임시 데이터를 획득하고, 상기 제2 임시 데이터를 상기 제1 랜덤 액세스 메모리로 다시 마이그레이션하기 전에, 상기 제2 임시 데이터에 대해 암호해독 또는 MAC 검증 연산 중 적어도 하나를 수행한다. 제2 임시 데이터를 마이그레이션하기 전에, 프로세서는 제2 임시 데이터에 대해 암호화 또는 MAC 연산을 수행할 수 있다. 따라서 보안이 향상된다. 제2 보안 소프트웨어 애플리케이션을 재실행하기 전에, 프로세서는 제2 임시 데이터에 대해 암호해도록 또는 MAC 검증 연산을 수행한다. 암호해독 또는 MAC 검증 연산이 수행된 제2 임시 데이터만이 연속적으로 사용될 수 있다.
제1 측면의 제9 가능한 구현예에 따라, 제1 측면의 제11 가능한 구현예에서, 상기 장치는 암호화 유닛을 더 포함하고; 상기 프로세서는 추가로, 상기 제1 랜덤 액세스 메모리로부터 상기 제2 임시 데이터를 획득하고, 상기 제2 임시 데이터를 상기 저장 기기로 마이그레이션하기 전에, 상기 제2 임시 데이터를 상기 암호화 유닛에 제공하고, 상기 암호화 유닛의 보안 처리 후의 상기 제2 임시 데이터를 수신하도록 구성되며, 상기 암호화 유닛은 상기 제2 임시 데이터에 대해 암호화 또는 MAC 연산 중 적어도 하나의 보안 처리를 수행하여, 상기 보안 처리 후의 상기 제2 임시 데이터를 획득하도록 구성되고; 상기 프로세서는 추가로, 상기 저장 기기로부터 상기 제2 임시 데이터를 획득하고, 상기 제2 임시 데이터를 상기 제1 랜덤 액세스 메모리로 다시 마이그레이션하기 전에, 상기 제2 임시 데이터를 상기 암호화 유닛에 제공하고, 상기 암호화 유닛의 역 보안 처리 후의 상기 제2 임시 데이터를 수신하도록 구성되며, 상기 암호화 유닛은 추가로, 상기 제2 임시 데이터에 대해 암호해독 또는 MAC 검증 연산 중 적어도 하나의 역 보안 처리를 수행하도록 구성된다. 전술한 제10 구현예와 달리, 이 구현에서의 암호화 유닛은 상기 프로세서와 독립적인 유닛이며, 암호화, MAC, 또는 MAC 검증 연산에 전용된다. 성능이 더욱 최적화된다.
제1 측면의 제10 또는 제11 가능한 구현예에 따라, 제1 측면의 제12 가능한 구현예에서, 상기 제2 보안 소프트웨어 애플리케이션은 상기 프로세서에 의해 여러 번 일시 중지될 수 있고, 상기 제2 보안 소프트웨어 애플리케이션이 일시 중지될 때마다 상기 프로세서에 의해 상기 제1 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션되고, 상기 제2 보안 소프트웨어 애플리케이션이 일시 중지될 때마다 상기 제2 보안 소프트웨어 애플리케이션에 대해 암호화 또는 암호해독을 수행하기 위해 상이한 키가 사용된다. 동일한 보안 소프트웨어 애플리케이션의 경우에도, 보안 소프트웨어 애플리케이션이 일시 중지될 때마다 관련 임시 데이터에 대해 암호화 또는 암호해독을 수행하는 데 필요한 키가 상이하여, 보안이 보장된다.
제1 측면 또는 전술한 가능한 구현예들 중 어느 하나에 따라, 제1 측면의 제13 가능한 구현예에서, 상기 프로세서는 추가로, 상기 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 하나 이상의 중앙 처리 유닛에 의해 전송되는 사용자 명령을 수신하여, 상기 제2 보안 소프트웨어 애플리케이션의 실행을 활성화하도록 구성되며, 상기 사용자 명령은 상기 범용 운영체제 소프트웨어의 사용자 인터페이스(user interface, UI)를 통해 전달되는 조작 커맨드(operation command)에 의해 트리거된다.
제1 측면 또는 전술한 가능한 구현예들 중 어느 하나에 따라, 제1 측면의 제14 가능한 구현예에서, 상기 하나 이상의 보안 소프트웨어 애플리케이션은 모바일 결제 소프트웨어 애플리케이션 또는 가입자 식별 모듈(subscriber identity module, SIM) 카드 소프트웨어 애플리케이션 중 적어도 하나를 포함한다. 선택적으로, 상기 장치는 SIM 카드 또는 근접장 통신(near field communication, NFC) 유닛을 더 포함할 수 있다. 상기 NFC 유닛은 모바일 결제와 관련된 데이터를 외부 기기와 교환하도록 구성된다. 선택적으로, 상기 SIM 카드 소프트웨어 애플리케이션은 통신 운영자에 의해 커스터마이징된 가상 SIM 소프트웨어 또는 SIM 피처(feature) 소프트웨어 애플리케이션을 포함하지만 이에 한정되는 것은 아니다.
제1 측면 또는 전술한 가능한 구현예들 중 어느 하나에 따라, 제1 측면의 제15 가능한 구현예에서, 상기 하나 이상의 중앙 처리 유닛에 의해 실행되는 상기 범용 운영체제 소프트웨어와, 상기 보안 요소 사이에는 보안 격리가 존재한다. 선택적으로, 상기 보안 격리는 상기 하나 이상의 중앙 처리 유닛에 의해 실행되는 상기 범용 운영체제 소프트웨어 또는 상기 범용 운영체제 소프트웨어에 기초한 보통의 소프트웨어 애플리케이션이 상기 보안 요소 또는 상기 제1 랜덤 액세스 메모리에 액세스하는 것을 방지하기 위해 사용된다. 상기 방지는 데이터 기록, 데이터 판독 또는 데이터 수정 중 적어도 하나를 금지하는 것을 포함한다.
선택적으로, 상기 장치는 상기 하나 이상의 중앙 처리 유닛 또는 상기 보안 요소에 의해 생성된 데이터 결과를 저장하도록 구성된 비 전력 손실 휘발성 메모리, 예를 들어 판독 전용 메모리(read-only memory)를 더 포함할 수 있다.
선택적으로, 상기 보안 요소는 보안 운영체제 소프트웨어를 저장하도록 구성된 비 전력 손실 휘발성 메모리, 예를 들어 판독 전용 메모리를 더 포함하여, 상기 프로세서가 상기 보안 운영체제 소프트웨어를 상기 판독 전용 메모리부터 판독하여 상기 보안 운영체제 소프트웨어를 실행할 수 있도록 한다.
선택적으로, 상기 장치 내의 각각의 구성요소는 하드웨어이고, 각각의 구성요소는 복수의 트랜지스터 또는 논리 게이트 회로를 포함한다.
제2 측면에 따르면, 본 발명의 일 실시예는 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 방법을 제공한다. 상기 방법은, 하나 이상의 중앙 처리 유닛이 범용 운영체제 소프트웨어를 실행하는 단계; 보안 요소 내의 프로세서가 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행하는 단계; 상기 보안 요소 내의 제1 랜덤 액세스 메모리가 상기 보안 운영체제 소프트웨어 및 상기 하나 이상의 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장하는 단계; 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 프로세서가, 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제1 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 보안 요소 외부에 배치된 저장 기기로 마이그레이션하고, 상기 보안 운영체제 소프트웨에 기초하여, 상기 제2 보안 소프트웨어 애플리케이션을 실행하는 단계; 및 상기 제2 랜덤 액세스 메모리가 상기 제2 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제2 임시 데이터를 임시로 저장하는 단계를 포함한다.
선택적으로, 상기 제2 보안 소프트웨어 애플리케이션은 상기 프로세서에 의해 이전에 일시 중지되어 다시 실행되는 보안 소프트웨어 애플리케이션이고; 상기 방법은, 상기 제2 보안 소프트웨어 애플리케이션이 일시 중지되는 경우, 상기 프로세서가 상기 제2 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션하는 단계; 및 상기 제2 보안 소프트웨어 애플리케이션을 다시 실행할 필요가 있는 경우, 상기 프로세서가 상기 제2 임시 데이터를 상기 저장 기기로부터 상기 제1 랜덤 액세스 메모리로 다시 마이그레이션하는 단계를 더 포함한다.
선택적으로, 상기 하나 이상의 보안 소프트웨어 애플리케이션 각각 또는 상기 제2 보안 소프트웨어 애플리케이션은 상기 저장 기기 내의 미리 설정된 공간 자원(또는 채널로서 지칭됨)을 점유한다.
제3 측면에 따르면, 본 발명의 일 실시예는 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 반도체 칩을 제공한다. 상기 반도체 칩은, 보안 요소 및 상기 보안 요소에 연결된 하나 이상의 중앙 처리 유닛을 포함하고; 상기 보안 요소는 프로세서 및 제1 랜덤 액세스 메모리를 포함하고; 상기 하나 이상의 중앙 처리 유닛은, 범용 운영체제 소프트웨어를 실행하고, 상기 범용 운영체제 소프트웨어의 작용 하에서 상기 보안 요소와 통신하도록 구성되고; 상기 프로세서는 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행하도록 구성되고; 상기 제1 랜덤 액세스 메모리는 상기 보안 운영체제 소프트웨어 및 상기 하나 이상의 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장하도록 구성되고; 상기 프로세서는 추가로, 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제1 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 보안 요소 외부에 배치된 저장 기기로 마이그레이션하는 것을 제어하고, 상기 보안 운영체제 소프트웨어에 기초하여, 상기 제2 보안 소프트웨어 애플리케이션을 실행하도록 구성되며; 상기 제2 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제2 임시 데이터는 상기 제1 랜덤 액세스 메모리에 임시로 저장된다.
선택적으로, 상기 하나 이상의 보안 소프트웨어 애플리케이션 각각 또는 상기 제2 보안 소프트웨어 애플리케이션은 상기 저장 기기 내의 미리 설정된 공간 자원(또는 채널로서 지칭됨)을 점유한다.
제4 측면에 따르면, 본 발명의 일 실시예는 컴퓨터 프로그램을 제공한다. 상기 컴퓨터 프로그램은 프로세서를 구동하여, 상기 컴퓨터 프로그램에 포함되어 있는 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행하는 프로세스; 및 상기 컴퓨터 프로그램에 포함된 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제1 임시 데이터를 상기 프로세서에 대응하는 제1 랜덤 액세스 메모리로부터 상기 프로세서가 위치하는 보안 요소 외부에 배치된 저장 기기로 마이그레이션하는 것을 제어하고, 상기 보안 운영체제 소프트웨어에 기초하여, 상기 제2 보안 소프트웨어 애플리케이션을 실행하는 프로세스 - 여기서 상기 제2 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제2 임시 데이터는 상기 제1 랜덤 액세스 메모리가 임시로 저장됨 -를 수행하는 데 사용된다. 상기 보안 요소는 상기 프로세서 및 상기 제1 랜덤 액세스 메모리를 포함한다. 선택적으로, 상기 보안 요소와, 범용 운영체제 소프트웨어를 실행하는 하나 이상의 중앙 처리 유닛 사이에는 보안 격리가 존재한다. 상기 제1 랜덤 액세스 메모리는 상기 보안 운영체제 소프트웨어 및 상기 하나 이상의 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장하도록 구성된다.
선택적으로, 상기 보안 격리는 상기 하나 이상의 중앙 처리 유닛에 의해 실행되는 범용 운영체제 소프트웨어, 또는 상기 범용 운영체제 소프트웨어에 기초한 보통의 소프트웨어 애플리케이션이 상기 보안 요소 또는 상기 제1 랜덤 액세스 메모리에 액세스하는 것을 방지하기 위해 사용된다. 상기 방지는 데이터 기록, 또는 데이터 판독, 또는 데이터 수정 중 적어도 하나를 금지하는 것을 포함한다.
제5 측면에 따르면, 본 발명의 일 실시예는 컴퓨터로 판독 가능한 저장 매체를 제공하며, 상기 컴퓨터로 판독 가능한 저장 매체는 제4 측면에서 기술된 컴퓨터 프로그램을 저장한다.
제6 측면에 따르면, 본 발명의 일 실시예는 보안 요소를 제공한다. 상기 보안 요소는 프로세서 및 제1 랜덤 액세스 메모리를 포함한다. 상기 프로세서는 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행하도록 구성되고; 상기 제1 랜덤 액세스 메모리는 상기 보안 운영체제 소프트웨어 및 상기 하나 이상의 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장하도록 구성되고; 상기 프로세서는 추가로, 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제1 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 보안 요소 외부에 배치된 저장 기기로 마이그레이션하는 것을 제어하고, 상기 보안 운영체제 소프트웨어에 기초하여, 제2 보안 소프트웨어 애플리케이션을 실행하도록 구성되며, 상기 제2 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제2 임시 데이터는 상기 제1 랜덤 액세스 메모리에 임시로 저장된다.
본 발명의 실시예에 제공되는 기술적 방안에 따르면, 보안 애플리케이션 프로그램의 실행 중의 보안을 보장하는 경우에, 보안 요소의 하드웨어 구현의 비용 및 면적을 줄일 수 있어, 휴대형 전자 기기의 소형화에 대한 요구에 더 잘 적응할 수 있다.
본 발명의 실시예 또는 종래 기술의 기술적 방안을 더욱 명확하게 설명하기 위해, 실시예 또는 종래기술의 설명에 필요한 첨부도면을 간단히 설명한다. 명백하게, 이하의 설명에서의 첨부도면은 본 발명 또는 종래기술의 일부 실시예를 보여 줄 뿐이며, 해당 기술분야의 통상의 지식을 가진 자(이하, 당업자라 함)는 창의적인 노력없이 이들 첨부 도면으로부터 다른 도면을 도출할 수 있다.
도 1은 종래 기술의 모바일 결제 시나리오에서 보안 모바일 결제 소프트웨어 애플리케이션을 실행하는 데 사용되는 이동 단말기의 구성의 간략화된 개략도이다.
도 2는 본 발명의 일 실시예에 따른 모바일 결제 장치의 구성의 간략화된 개략도이다.
도 3은 본 발명의 일 실시예에 따른 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 모바일 결제 장치의 구성의 간략화된 개략도이다.
도 4는 본 발명의 일 실시예에 따른, 보안 격리를 가지며 복수의 보안 소프트웨어 애플리케이션을 제어하는 장치의 간략화된 개략도이다.
도 5는 본 발명의 일 실시예에 따른 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 방법의 간략화된 개략 흐름도이다.
이하, 본 발명의 실시예에서의 첨부 도면을 참조하여 본 발명의 실시예에서의 기술적 방안을 명확하고 완전하게 설명한다. 명백하게, 설명되는 실시예는 본 발명의 일부 실시예에 불과하고 전부는 아니다. 창의적인 노력없이 본 발명의 실시예에 기초하여 당업자에 의해 획득되는 다른 모든 실시예는 본 발명의 보호 범위 내에 있다.
도 2는 본 발명의 일 실시예에 따른 모바일 결제 장치(20)의 간략화된 개략 구성도이다. 모바일 결제 장치(20)는 이동 단말기(21)에 위치할 수 있다. 이동 단말기(21)는 이동 전화, 태블릿 컴퓨터, 웨어러블 기기 등의 다양한 휴대형 단말 기기와 같은 사용자 장비(User Equipment, UE)일 수 있다. 모바일 결제 장치(20)는 구체적으로 칩, 칩 세트, 또는 칩 또는 칩 세트를 싣고 있는 회로 보드일 수 있다. 칩, 칩 세트 또는 칩 또는 칩 세트를 싣고 있는 회로 보드는 필요한 소프트웨어의 작용 하에서 작동할 수 있다. 모바일 결제 장치(20)는 근접장 통신 유닛(201)을 포함할 수 있다. 근접장 통신 유닛(201)은 단거리 무선 통신 프로토콜을 실행하여, 인터넷을 액세스하여 모바일 결제 기능을 구현하고 이동 단말기(21) 외부에 위치하는 POS 단말기와 같은 결제 단말기와 결제 정보를 교환하여, 오프라인 결제를 구현한다. 이동 통신 유닛(202)은 결제 정보를 무선 액세스 네트워크와, 구체적으로는 셀룰러 무선 통신 프로토콜을 실행함으로써 무선 액세스 네트워크 내의 기지국 등과 교환하여, 기기국을 포함하는 무선 액세스 네트워크를 사용하여 인터넷에 액세스한다. 결국, 이동 통신 유닛(202)는, 결제 기능을 가지고 인터넷 상에 존재하는 서버와 결제 정보를 교환하여, 온라인 결제를 구현한다. 모바일 결제 장치(20)는 근접장 통신 유닛(201) 또는 이동 통신 유닛(202) 중 어느 하나를 포함하여, 오프라인 결제 또는 온라인 결제 중 어느 하나를 구현할 수 있음을 알 수있다. 근접장 통신 유닛(201)에 의해 실행되는 단거리 무선 통신 프로토콜에는 무선 주파수 식별(Radio Frequency Identification, RFID) 기술이 사용될 수 있다. 구체적으로, 유럽 컴퓨터 제조 협회(European Computer Manufactures Association, ECMA) 표준 프로토콜과 같은, 다양한 유형의 RFID 프로토콜이 지원될 수 있고, 블루투스 통신, 적외선 통신 및 WiFi(Wireless Fidelity) 프로토콜과 같은 다른 유형의 단거리 통신 프로토콜이 포함될 수 있다. 이동 통신 유닛(202)에 의해 실행되는 셀룰러 무선 통신 프로토콜은 GSM, UMTS, WiMAX 또는 LTE와 같은, 임의의 하나 이상의 셀룰러 무선 통신 프로토콜일 수 있어, 이동 통신 유닛(202)을 사용하여 셀룰러 이동 통신 네트워크에서 무선 액세스 네트워크와의 통신을 구현할 수 있다. 이동 통신 유닛(202)은 이동 단말기(21) 또는 모바일 결제 장치(20)에 포함 된 SIM 카드(도시하지 않음) 정보를 판독하여, 셀룰러 이동 통신 네트워크의 등록 및 인증을 구현할 수 있다. 무선 액세스 네트워크 내의 기지국은, 전술한 통신 기능을 구현하고 무선 액세스 네트워크 내에 있는 네트워크 요소라는 것을 이해할 수 있다. 기지국은 예를 들어 노드 B(NodeB), eNodeB 등의 복수의 형태를 가질 수 있다. 기지국을 포함하는 무선 액세스 네트워크는 결국 네트워크 내의 서버, 즉 클라우드 측의 서버에 연결되어, 서버와 모바일 결제 장치(20) 사이의 결제 정보 교환을 구현한다. 근접장 통신 유닛(201) 또는 이동 통신 유닛(202)은 통신 프로토콜을 실행하는 기저대역 유닛(baseband unit)을 포함할 수 있다. 선택적으로, 근접장 통신 유닛(201) 또는 이동 통신 유닛(202)은 무선 주파수 유닛을 더 포함할 수 있다. 무선 주파수 유닛은 무선 주파수 신호를 수신하고, 기저대역 유닛에 의한 처리를 위해 무선 주파수 신호를 기저대역 신호로 변환하도록 구성될 수 있다. 결제 정보는, 근접장 통신 유닛(201) 또는 이동 통신 유닛(202)에 의해 획득될 수 있도록, 무선 주파수 신호에 포함될 수 있다.
도 2의 모바일 결제 장치(20)는 저장 기기(203), 보안 요소(204) 및 하나 이상의 중앙 처리 유닛(205)를 더 포함한다. 하나 이상의 중앙 처리 유닛(205)은 안드로이드(Android) 운영체제 또는 윈도즈(Windows) 운영체제 또는 iOS 운영체제와 같은 범용 운영체체 소프트웨어를 실행하도록 구성된 범용 중앙 처리 유닛이다. 이러한 운영체제를 사용하여 일반적인 비 보안 소프트웨어 애플리케이션을 지원할 수 있다. 더 많은 수량의 중앙 처리 유닛(205)은 더 높은 데이터 처리 능력을 나타낸다. 범용 운영체제 소프트웨어는 다양한 범용 소프트웨어 애플리케이션을 실행하는 범용 소프트웨어 플랫폼이다. 범용 중앙 처리 유닛(205)은 ARM 아키텍처, 인텔 X86 아키텍처, MIPS(Million Instructions Per Second) 아키텍처 등에 기초하여 구현될 수 있다. 본 실시예에서는 이를 한정하지 않는다. 범용 중앙 처리 유닛(205)은 범용 운영체제 소프트웨어의 작용 하에서 근접장 통신 유닛(201), 이동 통신 유닛(202), 저장 기기(203) 및 보안 요소(204)를 제어한다. 구체적인 제어 프로세스는, 인에이블 제어, 디스에이블 제어, 또는 저전력 소모 상태로의 진입이나 탈출을 포함할 수 있다. 따라서, 범용 운영체제를 실행하는 중앙 처리 유닛(205)은 모바일 결제 장치(20)의 다른 부분들을 중앙 제어할 수 있어서, 이들 부분은 정상적으로 전원이 온/오프되거나, 저전력 소모 상태로 진입하거나 탈출, 예를 들어 휴면 상태로 진입하거나 탈출한다. 저전력 소모 상태에서 근접장 통신 유닛(201), 이동 통신 장치(202), 저장 기기(203) 또는 보안 요소(204) 중 어느 구성 요소의 전력 소모는 정상 동작 중의 구성요소의 전력 소모보다 낮다. 또한, 임의의 구성 요소에 대한 제어 프로세스는, 예를 들어 작동 상태를 제어하는 것과 같은 다른 제어 조작을 더 포함할 수 있다. 작동 상태를 제어하는 것은 작동 중의 구성요소의 작동 전압, 클록 레이트 또는 정보 처리 레이트를 조정하는 것일 수 있다. 본 실시예에서는 이를 한정하지 않는다. 구체적인 제어 프로세스에 대해서는, 종래기술에서의 범용 중앙 처리 유닛에 의해 다른 구성요소에 대해 수행되는 제어 조작을 참조한다.
도 2에서, 보안 요소(204) 및 하나 이상의 중앙 처리 유닛(205)은 모바일 결제 장치(20) 내의 제1 반도체 칩(IC1)에 위치한다. IC1은 모바일 결제 장치(20)의 마스터 칩이라고도 한다. 보안 요소(204) 및 하나 이상의 중앙 처리 유닛(205)은 동일한 반도체 마스터 칩(IC1)에 통합된다. 이러한 방식으로, 모바일 결제 하드웨어의 비용과 면적이 감소된다. 저장 기기(203)는 제2 반도체 칩(IC2)에 위치한다. 저장 기기(203)는 하나 이상의 중앙 처리 유닛(205) 또는 보안 요소(204)의 실행 중에 생성된 중간 데이터 또는 임시 데이터를 저장할 수 있다. 따라서, 저장 기기(203)는 SRAM, DRAM, SDRAM 또는 다른 랜덤 액세스 메모리와 같은 전력 손실(power-loss) 휘발성 저장 기기일 수 있다. 또한 DDR SDRAM이 선호된다. 도 2에 도시된 바와 같이, 모바일 결제 장치(20)는 비 전력 손실(non-power-loss) 휘발성 메모리(206)를 더 포함한다. 비 전력 손실 휘발성 메모리(206)는 모바일 결제 장치(20) 내의 제3 반도체 칩(IC3)에 위치한다. 비 전력 손실 휘발성 메모리 메모리(206)는 하나 이상의 중앙 처리 유닛(205) 또는 보안 요소(204)에 의해 생성된 데이터 결과를 저장하도록 구성된다. 비 전력 손실 휘발성 메모리(206)는 재생 방지 메모리 블록(Replay Protect Memory Block, RPMB) 메모리일 수 있다. 중간 데이터 또는 임시 데이터와 달리 데이터 결과는 장시간 저장할 수 있다. 반대로, 임시 데이터, 중간 데이터 또는 메모리 데이터는 소프트웨어 실행 중에 생성된 프로세스 데이터이다. 프로세스 데이터는 장시간 저장될 필요가 없으며, 기기 또는 장치가 전력 손실을 만나면, 손실될 수 있다. 임시 데이터는 운영체제의 실행 중 생성된 임시 데이터 및 소프트웨어 애플리케이션의 실행 중에 생성된 임시 데이터를 포함되지만 이에 한정되는 것은 아니다. 임시 데이터는 구체적으로 알고리즘 또는 프로세스의 실행 중에 생성된 다양한 중간 연산 결과 데이터 또는 구성 데이터를 포함할 수 있다.
본 발명의 실시예에서, 소프트웨어 애플리케이션을 시작하는 것은 소프트웨어 애플리케이션이 종료 상태에서 시작 상태로 변경된다는 것을 지시한다. 종료 상태의 소프트웨어 애플리케이션의 경우, 랜덤 액세스 메모리 또는 메모리는 그 소프트웨어의 중간 데이터 또는 임시 데이터를 보유하지 않는다. 시작 상태의 소프트웨어 애플리케이션은 일시 중지 상태 및 실행 상태를 포함할 수 있다. 일시 중지 상태의 소트프웨어 애플리케이션의 관련 알고리즘 및 프로세스는 더 이상 작동 또는 수행되지 않지만, 대기 상태에 있다. 이 경우, 관련 임시 데이터는 변경되지 않는다. 소프트웨어 애플리케이션이 실행 중 상태이면, 그 소프트웨어의 알고리즘 또는 프로세스가 작동 또는 수행되고 있다는 것을 지시하며, 실행중인 알고리즘 또는 프로세스에 기초하여, 새로운 임시 데이터 또는 중간 데이터가 생성된다.
선택적으로, 도 2에 도시된 바와 같이, 근접장 통신 유닛(201)은 모바일 결제 장치(20) 내의 다른 제4 반도체 칩(IC4) 내에 위치할 수 있다. 근접장 통신 유닛(201)은 도 2에 도시된 제4 반도체 칩(IC4)을 사용하여 구현될 수 있음을 알 수 있다. 또한 근접장 통신 유닛(201)은 마스터 칩(IC1)의 집적도를 더욱 향상시키고, 구현 비용을 절감하기 위해, 제1 반도체 칩(IC1)(도시 생략)에 위치할 수도 있다. 유사하게, 이동 통신 유닛(202)은 도 2에 도시된 바와 같이 모바일 결제 장치(20) 내의 다른 제5 반도체 칩 IC5 내에 독립적으로 위치할 수 있거나, 또는 제1 반도체 칩(IC1) 내에 위치할 수도 있다. 근접장 통신 유닛(201) 또는 이동 통신 유닛(202)이 마스터 칩(IC1)에 통합되는지는 당업자의 구체적인 설계에 의존한다.
본 발명의 실시예에서, 반도체 칩은 간단히 칩이라고도 지칭되며, 집적회로 기술을 사용하여 집적회로 기판(일반적으로 실리콘과 같은 반도체 재료) 상에 제조된 집적회로의 세트일 수 있다. 반도체 칩의 외부 층은 일반적으로 반도체 캡슐화 물질을 사용하여 캡슐화된다. 집적회로는 논리 게이트 회로, 금속 산화물 반도체(Metal-Oxide-Semiconductor, MOS) 트랜지스터, 바이폴라 트랜지스터 또는 다이오드와 같은, 트랜지스터를 포함할 수 있다. 반도체 칩은 통신, 연산, 또는 저장과 같은 다양한 기능을 구현하기 위해, 독립적으로 작동하거나 필요한 소프트웨어의 작용 하에 작동할 수 있다. 따라서, 본 발명의 본 실시예에서 언급된 장치의 각각의 구성요소는 하드웨어일 수 있으며, 각각의 구성요소는 복수의 논리 게이트 회로 또는 트랜지스터를 포함할 수 있다.
도 2의 일부 내용을 상세히 설명하면, 도 3은 제1 반도체 칩(IC1) 및 제2 반도체 칩(IC2)을 포함하고 본 발명의 일 실시예에 따른 하나 이상의 모바일 결제 소프트웨어 애플리케이션을 포함하는 복수의 보안 소프트웨어 애플리케이션의 실행을 제어할 수 있는 모바일 결제 장치의 간략화된 개략적 구성도이다. 제1 반도체 칩(IC1)은 보안 요소(204) 및 보안 요소(204)에 연결된 하나 이상의 범용 중앙 처리 유닛(205)을 포함한다. 보안 요소(204)는 중앙 처리 유닛(2041) 및 랜덤 액세스 메모리(2042)를 포함한다. 범용 중앙 처리 유닛(205)은 예를 들어 안드로이드 시스템과 같은 범용 운영체제 소프트웨어를 실행하고 범용 운영체제 소프트웨어의 작용 하에서 보안 요소(204)와 통신하도록 구성된 ARM 프로세서일 수 있다. 중앙 처리 유닛(2041)은 보안 운영체제 소프트웨어 및 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행하도록 구성된다. 랜덤 액세스 메모리(2042)는 보안 운영체제 소프트웨어 및 하나 이상의 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장하도록 구성된다. 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 중앙 처리 유닛(2041)은 추가로, 하나 이상의 보안 소프트웨어 애플리케이션 중의 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제1 임시 데이터를 랜덤 액세스 메모리(2042)로부터 제2 반도체 칩 내에 위치한 저장 기기(203)로 마이그레이션하고, 랜덤 액세스 메모리(2042)를 사용하여 제2 보안 소프트웨어 애플리케이션을 계속하여 실행하도록 구성된다. 이 실시예에서 언급된 하나 이상의 보안 소프트웨어 애플리케이션 및 제2 보안 소프트웨어 애플리케이션은 전술한 모바일 결제 소프트웨어 애플리케이션 또는 가입자 식별 모듈(SIM) 카드 소프트웨어 애플리케이션 중 적어도 하나를 포함할 수 있다. SIM 카드 소프트웨어 애플리케이션은 통신 운영자에 의해 커스터마이징된 가상 SIM 소프트웨어 또는 SIM 피처 소프트웨어 애플리케이션을 포함하지만 이에 한정되는 것은 아니다. 따라서, 본 실시예에서는 애플리케이션 시나리오로서 주로 모바일 결제를 사용하여 모바일 결제 장치(20)를 설명하지만, 실제로 모바일 결제 장치(20)는 모바일 결제 기능을 지원할 수 있을 뿐만 아니라, 이동 단말기(21)의 다른 유형의 요건을 충족시킬 수도 있다. 따라서, 본 실시예에서의 모바일 결제 장치(20)는 광의의 모바일 보안 장치로 이해되어야 한다.
선택적으로, 범용 중앙 처리 유닛(205)이 보안 요소(204)와 통신하는 경우, 범용 중앙 처리 유닛(205)은 보안 요소(204)의 실행을 제어할 수 있다. 보안 요소(204)의 실행의 제어(204)는, 보안 요소(204)를 인에이블하는 것, 보안 요소(204)를 디스에이블하는 것, 보안 요소(204)를 제어하여 저전력 소모 상태로 진입하는 것, 및 보안 요소(204)의 작동 전압, 작동 전류 또는 클록 레이트를 조정하는 것 중 적어도 하나를 포함할 수 있다. 범용 중앙 처리 유닛(205)과 보안 요소(204) 사이의 통신은 IPC 프로토콜을 따를 수 있다.
본 실시예에서, 범용 중앙 처리 유닛(205)에 의해 실행되는 범용 운영체제 소프트웨어와, 보안 요소(204) 사이에 보안 격리가 존재한다. 본 개시에서, 보안 격리는 보안 요소(204)에 대한 액세스 방지를 의미한다. 따라서, 보안 격리는 시스템 간의 액세스 권한 제어 수단으로 이해될 수 있다. 범용 중앙 처리 유닛(205)에 의해 실행되는 범용 운영체제 소프트웨어와, 보안 요소(204) 사이에 보안 격리가 존재한다는 것은 범용 중앙 처리 유닛(205)에 의해 실행되는 범용 운영체제 소프트웨어, 또는 범용 운영체제 소프트웨어에 기초한 보통의 소프트웨어 애플리케이션이 그 안의 보안 요소(204) 또는 랜덤 액세스 메모리(2041)에 액세스하는 것이 방지된다는 것을 의미한다. 또는, 보안 격리의 영향으로 인해, 범용 운영체제 소프트웨어 또는 보통의 소프트웨어 애플리케이션은 보안 요소(204) 또는 랜덤 액세스 메모리(2041)를 액세스할 수 없다. 범용 운영체제 소프트웨어에 기초한 복수의 보통의 소프트웨어 애플리케이션이 있으면, 보통의 소프트웨어 애플리케이션 중 적어도 일부 소프트웨어 애플리케이션이 보안 요소(204)를 액세스하는 것이 방지된다. 예를 들어 범용 중앙 처리 유닛(205)에 의해 실행되는 범용 운영체제 소프트웨어 또는 범용 운영체제 소프트웨어에 기초한 하나 이상의 보통의 소프트웨어 애플리케이션은 보안 요소(204)에 의해 실행되는 데이터 또는 랜덤 액세스 메모리(2041)에 의해 임시로 저장된 데이터를 판독하거나 수정할 수 없고, 데이터를 랜덤 액세스 메모리(2041)에 기록할 수 없어, 보안을 구현할 수 있다.
본 실시예에서, 중앙 처리 유닛(2041)은 랜덤 액세스 메모리(2042)의 적어도 일부 메모리 공간이 부분적으로 절약되어 제2 보안 소프트웨어 애플리케이션을 실행하는 데 사용될 수 있도록, 적어도 일부 실행중인 보안 소프트웨어 애플리케이션을 일시 중지할 수 있다. 중앙 처리 유닛(2041)은 일부 실행중인 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 보안 소프트웨어 애플리케이션으로 대체하고, 대체된 보안 소프트웨어 애플리케이션의 실행 중에 생성된 임시 데이터를 외부의 저장 기기로 마이그레이션하여, 랜덤 액세스 메모리(2042)의 더 많은 메모리 공간을 점유하는 것을 회피한다. 이러한 방식으로, 제1 랜덤 액세스 메모리의 매우 큰 메모리 공간을 설계할 필요가 없으므로, 보안 요소의 면적 및 비용이 감소된다. 이 방안은 특히 모바일 결제 분야에 적용할 수 있다. 범용 중앙 처리 유닛(205)과 달리, 보안 요소(204)는 보안 소프트웨어 애플리케이션을 처리하기 위한 전용 처리 기기이다. 따라서, 보안 요소(204)의 크기 및 비용을 제어하는 것은 상당히 중요하다. 본 발명의 본 실시예는 관련된 문제를 잘 해결할 수 있다.
구체적으로, 랜덤 액세스 메모리(2042)는 SRAM(static random access memory), DRAM(dynamic random access memory) 또는 SDRAM synchronous dynamic random access memory)일 수 있다. 또한, 제2 반도체 칩(IC2)에 위치한 저장 기기(203)는 통상의 랜덤 액세스 메모리이며, SRAM(static random access memory), DRAM(dynamic random access memory) 또는 SDRAM(synchronous dynamic random access memory)일 수 있다. 바람직하게는, 저장 기기(203)는 DDR SDRAM(double data rate synchronous dynamic random access memory)이다. 저장 기기(203)는 랜덤 액세스 메모리이기 때문에, 랜덤 액세스 메모리(2042)로부터 저장 기기(203)로의 데이터 마이그레이션 또는 저장 기기(203)로부터 랜덤 액세스 메모리(2042)로의 데이터 마이그레이션의 속도는 매우 빠르다. 복수의 보안 소프트웨어 애플리케이션 중의 임의의 소프트웨어가, 이 유연한 마이그레이션인(migrate-in) 및 마이그레이션아웃(migrate-out) 방식으로 언제든지 일시 중단되거나 재실행될 수 있다. 이것은 편리하고 유연하다. 보안 소프트웨어 애플리케이션이 실행될 필요가 있을 때마다 보안 소프트웨어 애플리케이션을 재시작할 필요가 없고, 보안 요소(204)에 과도한 임시 데이터를 유지할 필요가 없어 보안 요소(204)의 비용 및 면적을 감소시킬 수 있다.
제2 보안 소프트웨어 애플리케이션은 새로 시작되는 보안 소프트웨어 애플리케이션 또는 이전에 일시 중지된 소프트웨어일 수 있다. 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 중앙 처리 유닛(2041)은 범용 중앙 처리 유닛(205)에 의해 전송되는 사용자 명령을 수신하여 제2 보안 소프트웨어 애플리케이션의 실행을 활성화한다. 사용자 명령은 범용 운영체제 소프트웨어에 기초한 사용자 인터페이스(UI)를 통해 전달된 조작 커맨드에 의해 트리거된다. 사용자 인터페이스는 터치 스크린, 키보드, 마우스 또는 다른 입력 방식에 기초한 사용자 인터페이스를 포함할 수 있고, 사용자 인터페이스에 기초한 사용자의 임의의 형태의 정보 입력을 검출할 수 있다. 보안 요소(204)의 중앙 처리 유닛(2041), 및 범용 중앙 처리 유닛(205)은 명령 통신을 수행할 수 있거나, IPC 규칙 또는 프로토콜을 사용하여 데이터 교환을 구현할 수도 있다. 데이터 교환은 도 3에서의 랜덤 액세스 메모리(207)를 사용하여 구현될 수 있다. 이어서, 랜덤 액세스 메모리(207)의 기능을 상세하게 설명한다. IPC 프로토콜은 기존의 프로세스 간 통신 프로토콜을 따를 수 있다. 본 실시예에서는 상세한 설명을 생략한다.
제2 보안 소프트웨어 애플리케이션이 중앙 처리 유닛(2041)에 의해 이전에 일시 중지되어 다시 실행되는 보안 소프트웨어 애플리케이션이면, 제2 보안 소프트웨어 애플리케이션이 일시 중지될 때, 제2 보안 소프트웨어 애플리케이션에 대응하는 제2 임시 데이터는 중앙 처리 유닛(2041)에 의해 랜덤 액세스 메모리(2042)로부터 저장 기기(203)로 마이그레이션된다. 제2 보안 소프트웨어 애플리케이션을 다시 실행할 필요가 있는 경우, 중앙 처리 유닛(2041)은 저장 기기(203)로부터 제2 임시 데이터를 랜덤 액세스 메모리(2042)로 다시 마이그레이션하도록 구성된다. 따라서, 제2 보안 소프트웨어 애플리케이션은 여러 번 일시 중지될 수 있으며, 제2 보안 소프트웨어 애플리케이션이 일시 중지되거나, 재실행되거나, 보안 요소(204)에 로딩될 때마다 관련 임시 데이터는 랜덤 액세스 메모리(2042)와 저장 기기(203) 사이에 송신된다. 따라서, 보안 요소(204)는 한 순간에 단 하나의 보안 소프트웨어 애플리케이션을 실행할 수 있고, 다른 일시 중시된 보안 소프트웨어 애플리케이션의 임시 데이터를 저장 기기(203)에 저장할 수 있다. 이는 랜덤 액세스 메모리(2042)의 메모리 소비를 가능한 한 감소시키므로, 랜덤 액세스 메모리(2042)의 저장 공간은 매우 크게 설계될 필요가 없으며, 이에 따라 랜덤 액세스 메모리(2042) 및 보안 요소의 면적 및 비용을 감소시킨다.
선택적으로, 중앙 처리 유닛(2041)은 적어도 일부 보안 기능을 구현하도록 구성될 수 있다. 예를 들어, 제2 보안 소프트웨어 애플리케이션을 일시 중지할 필요가 있는 경우, 중앙 처리 유닛(2041)은 추가로, 랜덤 액세스 메모리(2042)로부터 제2 보안 소프트웨어 애플리케이션의 제2 임시 데이터를 획득하고, 제2 임시 데이터를 저장 기기(203)로 마이그레이션하기 전에, 제2 임시 데이터에 대해 암호화 또는 MAC 연산 중 적어도 하나의 보안 처리를 수행하도록 구성되어, 보안을 향상시킬 수 있다. 제2 보안 소프트웨어 애플리케이션을 실행하거나 재실행할 필요가 있는 경우, 중앙 처리 유닛(2041)은 추가로, 저장 기기(203)로부터 제2 임시 데이터를 획득하고, 제2 임시 데이터를 랜덤 액세스 메모리(2042)로 다시 마이그레이션하기 전에, 제2 임시 데이터에 대해 암호해독 또는 MAC 검증 연산 중 적어도 하나의 보안 처리를 수행하도록 구성된다. 암호해독 또는 MAC 연산이 수행된 제2 임시 데이터만이 계속해서 사용될 수 있다. 본 실시예에서, MAC 연산의 일 실시예는 해시 연산을 수행하는 것이다. 이에 상응하게, MAC 검증 연산을 수행하는 것은 해시 검증 연산을 수행하는 것일 수 있다. MAC 연산 또는 MAC 검증 연산 처리는 본 실시예의 후속 방안에서의 일례로서 해시 또는 해시 검증 연산을 주로 사용하여 설명된다. 사용된 MAC 연산 또는 MAC 검증 연산 처리를 인증하는 데 사용되는 다수의 알고리즘이 종래기술에서 제공된다는 것을 이해할 수 있다. 본 실시예에서는 이들 알고리즘의 세부사항을 설명하지 않는다.
대안적인 구현예에서, 도 3에 도시된 바와 같이, 보안 요소(204)는 암호화 유닛(2043)을 더 포함한다. 암호화 유닛(2043)은 암호화, 또는 MAC, 또는 MAC 검증을 포함한 보안 연산 처리와 같은 보안 기능을 수행하도록 구성된다. 중앙 연산 처리 장치(2041)를 사용하여 보안 연산 처리를 직접 수행하는 이전의 구현예와는 달리, 본 구현예에서의 암호화 유닛(2043)은 중앙 처리 유닛(2041)와는 독립된 유닛이며, 암호화, 또는 MAC 또는 MAC 검증과 같은 보안 연산에 전용된다. 성능이 더욱 최적화된다. 구체적으로, 제2 임시 데이터를 저장 기기(203)로 이전하기 전에, 중앙 처리 유닛(2041)은 암호화 유닛(2043)에 제2 임시 데이터를 제공하고, 암호화 유닛(2043)의 보안 처리 후의 제2 임시 데이터를 수신할 수 있다. 제2 임시 데이터를 랜덤 액세스 메모리(2042)로 다시 마이그레이션하기 전에, 중앙 처리 유닛(2041)은 암호화 유닛(2043)에 제2 임시 데이터를 제공하고, 암호화 유닛(2043)의 역 보안 처리 후의 제2 임시 데이터를 수신할 수 있다. 암호화 유닛(2043)에 의해 수행되는 보안 처리는 암호화 또는 MAC 연산 중 적어도 하나를 포함한다. 수행된 역 보안 처리는 암호해독 또는 MAC 검증 연산 중 적어도 하나를 포함한다.
다른 대안적인 구현예에서, 도 3에 도시된 바와 같이, 보안 요소(204)는 랜덤 액세스 메모리(2042)와 저장 기기(203) 사이의 데이터 마이그레이션의 구현을 제어하도록 구성된 DMA(Direct Memory Access, 직접 메모리 액세스) 제어기(2044)를 더 포함한다. DMA 제어기(2044)는 중앙 처리 유닛(2041)에 독립적인 구성요소이고, 보안 요소(204) 내의 임시 데이터를 다른 외부 기기 또는 인터페이스로 마이그레이션하는 데 전용되며, 중앙 처리 유닛(2041)은 대응하는 데이터 마이그레이션 기능을 필요로 하지 않는다. 이 경우, 중앙 처리 유닛(2041)은 보안 소프트웨어 애플리케이션을 실행하고 처리할 필요만 있으며, 데이터 마이그레이션은 DMA 제어기(2044)에 의해 구현된다. 선택적으로, 보안 요소(204) 내의 중앙 처리 유닛(2041), 암호화 유닛(2043) 및 DMA 제어기(2044)는 전체로, 즉 처리 연산 기능을 수행하는 프로세서로 간주될 수 있다. 랜덤 액세스 메모리(2042)는 프로세서의 메모리로서 사용된다. 보안 소프트웨어 애플리케이션 A의 실행을 일시 중지할 필요가 있는 경우, 중앙 처리 유닛(2041)은 랜덤 액세스 메모리(2042)에 일시적으로 저장된 보안 소프트웨어 애플리케이션 A의 임시 데이터의 마이그레이션을 트리거할 수 있다. 구체적으로, 중앙 처리 유닛(2041)은 트리거 신호 또는 인터럽트 신호를 DMA 제어기(2044)에 전송한다. 트리거 신호 또는 인터럽트 신호에 의해 트리거된 DMA 제어기(2044)는 임시 데이터를 랜덤 액세스 메모리(2042)로부터 저장 기기(203)로 마이그레이션한다. 마이그레이션이 완료된 후, 중앙 처리 유닛(2041)은 마이그레이션으로 인해 랜덤 액세스 메모리(2042) 내의 해제되거나 절약된 저장 공간을 사용하여 다른 보안 소프트웨어 애플리케이션 B를 실행할 수 있다.
하나 이상의 보안 소프트웨어 애플리케이션의 임시 데이터가 저장 기기(203)로 마이그레이션될 때, 대응하는 임시 데이터는 저장 기기(203)의 보안 저장 영역에 저장될 수 있다. 보안 저장 영역은 중앙 처리 유닛(2041)에 의해 일시 중지되는 하나 이상의 보안 소프트웨어 애플리케이션의 임시 데이터를 임시로 저장하는 데 전용된다. 저장 기기(203)는 보안 요소(204) 및 범용 중앙 처리 유닛(205)에 의해 공유될 수 있기 때문에, 저장 기기(203)는 범용 중앙 처리 유닛(205)에 의해 생성된 임시 데이터 또는 중간 데이터 및 보안 요소(204)에 의해 생성된 임시 데이터를 모두 저장할 수 있다. 전용 공간 또는 전용 영역은 저장 기기(203)로부터 분리되어, 범용 중앙 처리 유닛(205)에 의해 생성된 임시 데이터와 보안 요소(204)에서의 임시 데이터 사이의 격리를 구현함으로써, 보안을 향상시킨다. 격리된 보안 저장 영역은 범용 중앙 처리 유닛(205)에 의해 실행되는 범용 운영체제 소프트웨어 또는 범용 운영체제 소프트웨어에 기초한 보통의 소프트웨어 애플리케이션에 의해 액세스될 수 없다. 선택적으로, 범용 중앙 처리 유닛(205)은 신뢰 실행 환경(Trust Execute Environment, TEE)의 보안 저장 영역에 액세스할 수 있어, 보안 저장 영역의 데이터 마이그레이션인 또는 마이그레이션아웃을 구현할 수 있다. 보안 격리는 중앙 처리 유닛(205)에 의해 수행되는 신뢰 실행 환경과 중앙 처리 유닛(205)에 의해 또한 실행되는 범용 운영체제 소프트웨어(안드로이드 시스템 환경과 같은 것) 사이에 존재할 수 있다. 두 개의 독립된 소프트웨어 운영체제가 동일한 중앙 처리 유닛(205)에 의해 실행되더라도, 보안 격리로 인해, 범용 운영체제 소프트웨어의 실행 프로그램 또는 범용 운영체제 소프트웨어에 기초한 보통의 소프트웨어 애플리케이션은 신뢰 실행 환경을 액세스할 수 없다.
일반적으로, 저장 기기(203)는 DDR SDRAM이다. 저장 기기(203)의 저장 공간은 매우 크다. 저장 기기(203)로부터 특별히 분리된 보안 저장 영역은 보안 요소(204) 내의 랜덤 액세스 메모리(2042)보다 훨씬 클 수 있다. 따라서, 본 실시예에서 제공되는 보안 소프트웨어 애플리케이션의 실행을 제어하기 위한 장치 또는 기기는 매우 많은 수의 보안 소프트웨어 애플리케이션의 시작을 지원할 수 있다. 복수의 보안 소프트웨어 애플리케이션이 시작될 때, 예를 들어, 100명의 운업자의 SIM 카드 소프트웨어 애플리케이션 또는 100개의 은행 카드 결제 소프트웨어 애플리케이션이 동시에 시작될 때, 이 경우, 보안 요소(204) 내의 중앙 처리 유닛(2041)이 한 순간에 최대의 미리 설정된 수(하나가 바람직함)의 보안 소프트웨어 애플리케이션만을 실행하기 때문에 장치 또는 기기의 보안 요소(204)는 여전히 정상적으로 동작할 수 있고, 다른 보안 소프트웨어 애플리케이션은 일시 중지되고 대응 임시 데이터는 저장 기기(203)의 보안 저장 영역에 저장된다. 이는 복수의 보안 소프트웨어 애플리케이션의 동적인 일시 중지와 복구 및 관련된 임시 데이터의 동적인 마이그레이션인 또는 마이그레이션아웃을 구현하므로, 보안 요소(204)의 비용 및 면적을 감소시킨다.
중앙 처리 유닛(2041)에 의해 일시 중지되는 하나 이상의 보안 소프트웨어 애플리케이션 중의 제3 보안 소프트웨어 애플리케이션을 종료할 필요가 있는 경우, 중앙 처리 유닛(2041)은 추가로 저장 기기(203)를 제어하여 종료할 필요가 있는 보안 소프트웨어 애플리케이션의 실행 중에 생성된 임시 데이터를 삭제하도록 구성된다.
선택적으로, 제2 보안 소프트웨어 애플리케이션이 중앙 처리 유닛(2041)에 의해 여러 번 일시 중지 및 재실행되고, 저장 기기(203)와 랜덤 액세스 메모리(2042) 사이에 여러 번 송신되면, 중앙 처리 유닛(2041) 또는 암호화 유닛(2043)은 보안을 보장하기 위해, 제2 보안 소프트웨어 애플리케이션이 일시 중지될 때마다 제2 보안 소프트웨어 애플리케이션에 대해 암호화 또는 암호해독를 수행하기 위해 상이한 키를 사용한다.
선택적으로, 보안 요소(204)는 보안 운영체제 소프트웨어를 저장하도록 구성된 판독 전용 메모리와 같은, 비 전력 손실 휘발성 메모리(도시되지 않음)를 더 포함하여, 중앙 처리 유닛(2041)이 판독 전용 메모리로부터 보안 운영체제 소프트웨어를 판독하고 보안 운영체제 소프트웨어를 실행할 수 있도록 한다. 보안 운영체제 소프트웨어는 칩 운영체제(Chip Operating System, COS)일 수 있다. COS는 COS 미러라고도 하며, 상주 스마트 카드 또는 금융 집적회로(Integrated Circuit, IC) 카드 내의 운영체제 소프트웨어와 동등할 수 있다. 이 경우, 보안 요소(204)가 상주 스마트 카드의 기능 또는 금융 카드의 기능을 가지고, 외부 POS 단말기, 또는 외부 카드 판독기, 또는 클라우드 측의 외부 금융 서버에, 예를 들어 개인 계좌, 패스워드, 또는 개인 계좌를 검증하기 위해 은행 서버가 요구하는 다양한 검증 정보와 같은, 카드 스와핑처럼 모바일 결제 서비스에 필요한 데이터를 제공하도록 구성되는 것과 동등하다. 또, COS 미러는 또한 금융 서버, 카드 판독기 또는 POS 단말기로부터 보안 요소(204)에 전송된 다양한 결제 정보와 같은 외부 결제 정보를 수신 및 처리하기 위한 운영 플랫폼이며, 외부로부터 전송된 다양한 명령을 시행하는 데 사용될 수 있다. 물론, 플랫폼은, 모바일 보안 결제 외에도 다른 보안 소프트웨어 애플리케이션, 예를들어 SIM 카드 소프트웨어 애플리케이션을 지원할 수 있다.
본 실시예에서의 모바일 결제는 광의의 정의이며, 상업 및 금융 모바일 결제 서비스를 포함할 뿐만 아니라 대중 교통, 신분 카드 및 사회 보장 카드와 같은 다른 유형의 지불 서비스를 포함한다는 점에 유의해야 한다. 즉, 모바일 결제를 통해, 이동 단말기는 통신 피어에 연결되어 궁극적으로 서버와 결제 정보를 교환하고, 이동 통신 단말기 내의 하나 이상의 계정과 관련된 데이터 거래(data transaction), 데이터 교환 또는 데이터 결산(data settlement)를 구현할 수 있다. 데이터 거래, 데이터 교환 또는 데이터 결산의 단위는 통화(currency)를 포함할 뿐만 아니라 결제, 교환, 또는 거래 결산을 구현하는 데 사용될 수 있는 가상 통화, 다양한 보너스 포인트, 또는 신용 한도와 같은 다른 단위 일 수도 있다. 본 실시예에서는 이를 한정하지 않는다. 계정은 개인 계정, 그룹 계정 또는 조직 계정을 포함하지만 이에 한정되는 것은 아니다. 고정된 단말기에서만 구현되는 결제 행위와 비교할 때, 모바일 결제의 구현이 더 유연하고, 모바일 결제는 이동 단말기에 의해 실행된다. 따라서 언제 어디서나 결제할 수 있은 요건이 더 만족스러울 수 있다.
이해할 수 있는 것은, 본 발명의 전술한 실시예는 주로 모바일 결제 환경을 예로 들어 설명하고 있다는 것이다. 실제로, 보안 요소(204)는 높은 보안 레벨을 갖는 다양한 커스터마징된 소프트웨어 애플리케이션을 포함할 수 있은 다양한 보안 소프트웨어 애플리케이션을 실행할 수 있으며, 모바일 결제 소프트웨어 애플리케이션 또는 SIM 카드와 관련된 소프트웨어에 한정되지 않는다. 따라서 보안 소프트웨어 애플리케이션은 보통의 소프트웨어 애플리케이션과 다를 수 있다. 보안 소프트웨어 애플리케이션은 보안 요소(204)에서만 실행될 수 있고, 범용 운영체제 소프트웨어 또는 환경으로부터 격리된다. 본 실시예에서, 보안 운영체제 소프트웨어의 보안 레벨은 범용 운영체제 소프트웨어의 보안 레벨보다 높다. 보안 운영체제 소프트웨어에 기초한 보안 소프트웨어 애플리케이션의 보안 레벨은 범용 운영체제 소프트웨어에 기초한 보통의 소프트웨어 애플리케이션의 보안 레벨보다 높다. 두 운영체제는 격리되어 있어, 보안 운영체제 소프트웨어 환경이 범용 중앙 처리 유닛(205)에 의해 실행되는 범용 운영체제 소프트웨어 또는 보통의 소프트웨어 애플리케이션에 의해 임의로 액세스되지 않도록 보장한다.
유의해야 할 것은, 본 발명의 본 실시예에서는 복수의 범용 중앙 처리 유닛(205)이 있을 수 있다는 것이다. 복수의 범용 중앙 처리 유닛(205)과 보안 요소(204)와 같은 모바일 결제 장치(20) 내의 다른 구성요소 사이의 데이터 교환은 복수의 범용 중앙 처리 유닛(205) 중 임의의 하나 이상이 다른 구성 요소와 데이터를 교환하는 것을 의미할 수 있다. 모바일 결제 장치(20)가 작동 상태에 있는 경우, 복수의 중앙 처리 유닛(205)의 일부 또는 전부가 인에이블될 수 있다.
또한, 모바일 결제 장치(20)는 그래픽 처리 유닛(graphics processing unit, GPU), 오디오 처리 유닛, 전력 관리 유닛(power management unit, PMU), 글로벌 위치결정 시스템(global positioning system, GPS) 등을 더 포함할 수 있다. GPU는 또한 마스터 칩(IC1) 내에 위치할 수 있다. 또한, 이동 통신 단말기(21)는, 다양한 회로를 주로 포함하는 모바일 결제 장치(20) 이외에도, 입력을 위해 사용되는 터치 스크린, 디스플레이 및 예를 들어 중력 가속도계, 자이로스코프, 광 센서 등과 같은 기타 필요한 센서를 포함할 수 있다. 본 실시예에서는 해당 기술분야에 존재하는 이들 구성요소의 세부 사항을 설명하지 않는다.
도 3을 더 참조하면, 제1 반도체 칩(IC1)은 랜덤 액세스 메모리(207) 및 저장 제어기(208)를 더 포함할 수 있다. 범용 중앙 처리 유닛(205), 랜덤 액세스 메모리(207) 및 저장 제어기(208)는 하나의 범용 프로세서 시스템(200)에 포함될 수 있다. 범용프로세서 시스템(200)은 범용 운영체제 소프트웨어 및 보통의 소프트웨어 애플리케이션에 기초하여 실행될 수 있고, TEE 환경에서 선택적으로 작동할 수 있다. 범용 프로세서 시스템(200)은 보안 요소(204) 내의 데이터를 직접 액세스하거나 직접 판독할 수 없기 때문에, 범용 프로세서 시스템(200)은 랜덤 액세스 메모리(207)를 사용하여 보안 요소(204)와 데이터를 교환하며, IPC 프로토콜을 따른다.
보안 요소(204) 내의 랜덤 액세스 메모리(2042)가 제2 반도체 칩(IC2) 상에 배치된 저장 기기(203)와 임시 데이터를 교환하는 경우, 예를 들어 본 실시예에서 이전에 설명한 임시 데이터 마이그레이션을 구현하는 경우, 데이터 마이그레이션은 랜덤 액세스 메모리(207)를 통과해야 한다. 구체적으로, 중앙 처리 유닛(2041) 또는 DMA 제어기(2044)는 일시 정지될 필요가 있는 보안 소프트웨어 애플리케이션의 임시 데이터를 랜덤 액세스 메모리(2042)로부터 판독하고, 그 임시 데이터를 랜덤 액세스 메모리 액세스(207)에 기록하도록 구성된다. 저장 제어기(208)는 DMA 제어기일 수 있다. DMA 제어기는 TEE 환경에서 저장 기기(203)의 보안 저장 영역에 랜덤 액세스 메모리(207)의 임시 데이터를 기록하여, 보안 요소(204)로부터 저장 기기(203)로의 임시 데이터 마이그레이션을 구현할 수 있다. 마이그레이션이 완료된 후, 임시 데이터는 중앙 처리 유닛(2041), DMA 제어기(2044) 또는 저장 제어기(208)에 의해 랜덤 액세스 메모리(2042)로부터 삭제될 수 있다. 대안으로, 범용 중앙 처리 유닛(205)은 저장 기기(203)의 보안 저장 영역에 관련된 데이터를 기록하는 기능을 구현하도록 저장 제어기(208)를 교체할 수 있다. 따라서, 본 발명의 본 실시예에서, 중앙 처리 유닛(2041) 또는 DAM 제어기(2044)에 의해 수행되는 저장 기기(203)로의 데이터 마이그레이션은 저장 기기(203)로의 직접 데이터 마이그레이션를 포함할 뿐만 아니라, 랜덤 액세스 메모리(2041)와 저장 기기(203) 사이의 양방향 임시 데이터 마이그레이션도 포함한다. 인터럽트 명령 또는 IPC 프로토콜 명령이 제3자 랜덤 액세스 메모리를 사용함으로써 양방향 임시 데이터 마이그레이션의 구현을 제어하는 데 사용된다.
보안 소프트웨어 애플리케이션이 재실행될 때, 그 보안 소프트웨어 애플리케이션에 대응하는 임시 데이터는 범용 중앙 처리 유닛(205) 또는 저장 제어기(208)에 의해 판독되어, 랜덤 액세스 메모리(207)에 기록된다. 보안 요소(204) 내의 중앙 처리 유닛(2041) 또는 DMA 제어기(2044)는 랜덤 액세스 메모리(207)로부터 관련 임시 데이터를 추가로 판독하여, 그 임시 데이터가 랜덤 액세스 메모리(2042)로 다시 마이그레이션될 수 있도록 한다. 마이그레이션이 완료된 후, 임시 데이터는 중앙 처리 유닛(2041), DMA 제어기(2044), 또는 저장 제어기(208)에 의해 랜덤 액세스 메모리(2042)로부터 삭제될 수 있다. 데이터 마이그레이션을 구현하는 과정에서, 랜덤 액세스 메모리(207)는 데이터 중계 또는 포워딩의 역할을 수행한다. 도 3에서, 랜덤 액세스 메모리(207)는 범용 프로세서 시스템(200)에 위치한다. 실제로, 랜덤 액세스 메모리(207)는 보안 요소(204) 내에 위치할 수도 있다. 본 실시예에서는 랜덤 액세스 메모리(207)의 위치를 한정하지 않는다.
보안 요소(204) 또는 중앙 처리 유닛(2041)이 보안 소프트웨어 애플리케이션을 일시 중지하거나 재실행하는 경우, 보안 소프트웨어 애플리케이션의 임시 데이터 마이그레이션은 보안 요소(204) 또는 중앙 처리 유닛(2041)과 범용 프로세서 시스템(200) 또는 범용 중앙 처리 유닛(205) 사이의 명령 교환과 관련있을 수 있다. 이 경우, 중앙 처리 유닛(2041) 또는 범용 중앙 처리 유닛(205)은 종래기술에서 빈번히 사용된 인터럽트 명령을 사용하여 대응하는 마이그레이션 조작을 수행하도록 서로를 트리거할 수 있다. 예를 들어, 중앙 처리 유닛(2041)은 인터럽트 명령을 사용하여, 마이그레이션되어야 할 데이터가 랜덤 액세스 메모리(207)에 기록되었음을 중앙 처리 유닛(205)에 통지할 수 있으므로, 중앙 처리 유닛(205)은 스스로 데이터를 저장 기기(203)에 추가로 마이그레이션할 수 있거나 또는 저장 제어기(208)를 제어하여 데이터를 저장 기기(203)로 추가로 마이그레이션할 수 있다. 반대로, 중앙 처리 유닛(205) 또는 저장 제어기(208)가 저장 기기(203)의 데이터를 랜덤 액세스 메모리(207)에 기록한 후, 중앙 처리 유닛(205)은 중앙 처리 유닛(2041)에 인터럽트 명령을 전송하여, 중앙 처리 유닛(2041)이 마이그레이션을 완료하도록 완료하도록 명령한다. 중앙 처리 유닛(2041)은 스스로 랜덤 액세스 메모리(207) 내의 데이터를 랜덤 액세스 메모리(2042)로 마이그레이션할 수 있거나, 또는 DMA 제어기(2044)를 제어하여 랜덤 액세스 메모리(207) 내의 데이터를 랜덤 액세스 메모리(2042)로 마이그레이션하도록 할 수 있다. 또는 제어 정보를 교환하기 위해 인터럽트 명령이 사용되지 않으면, 중앙 처리 유닛(2041) 또는 범용 중앙 처리 유닛(205)은 종래기술에서 보통의 IPC 프로토콜을 사용하여 정보 교환을 구현하여, 마이그레이션 작업을 완료할 수 있다. 예를 들어, 범용 중앙 처리 유닛(205)은 인터럽트 명령 또는 IPC 프로토콜을 사용하여 중앙 처리 유닛(2041)과 정보를 교환하여, 범용 중앙 처리 유닛(205)이 데이터 마이그레이션을 구현하였음(데이터가 랜덤 액세스 메모리(207)로 또는 랜덤 액세스 메모리(207)로부터 마이그레이션되었음)을 중앙 처리 유닛(2041)에 통지할 수 있고, 중앙 처리 유닛(2041)에 나머지 데이터 마이그레이션을 계속하여 완료하도록 명령할 수 있다.
일반적으로, 보안 소프트웨어 애플리케이션의 실행 중에 생성된 임시 데이터는 64KB의 메모리 공간을 차지할 필요가 있다고 가정한다. 이 실시예에서는 채널(슬롯)의 개념이 도입될 수 있다. 채널은 소프트웨어 애플리케이션을 실행하는 데 필요하고 저장 기기(203) 내에 있는 공간 자원이다. 복수의 소프트웨어 애플리케이션이 시작되면, 범용 중앙 처리 유닛(205) 또는 중앙 처리 유닛(2041)은 각각의 소프트웨어 애프를리케이션에 하나의 채널을 저장 기기(203)에서 미리 할당할 수 있다. 예를 들어, 최대 16개의 채널이 보안 요소(204)에서 동시에 인에이블되도록 미리 설정될 수 있다. 각각의 채널은 하나의 보안 소프트웨어 애플리케이션이 실행되도록 허용한다. 즉, 저장 기기(203)에는 16개의 소프트웨어 애플리케이션에 각각 대응하는 저장 공간이 있으며, 그 저장 공간은 대응하는 소프트웨어가 일시 중지될 때, 관련 소프트웨어의 임시 데이터, 즉 메모리 데이터를 임시로 저장하는 데 사용된다. 도 3을 참조하고, 또한 도 4를 참조하면, 보안 격리를 갖고 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치의 일 실시예가 제공된다. 랜덤 액세스 메모리(2042)는 보안 운영체제 프로그램 자체(COS 미러)의 공간, 전역 데이터 공간 및 보안 소프트웨어 애플리케이션에 의해 점유되는 공간을 포함한다. COS 미러의 공간 크기는 대개 약 300KB이다. COS 미러는 어떤 소프트웨어 애플리케이션도 포함하지 않는 보안 운영체제 프로그램 자체이다. 전역 데이터 공간은 COS 미러 실행 중에 생성된 중간 데이터가 필요로 하는 공간이다.
도 4에 도시된 바와 같이, 저장 기기(203)에서, 보안 소프트웨어 애플리케이션에 의해 점유되는 공간은 복수의 채널을 포함한다. 각각의 채널은 하나의 보안 소프트웨어 애플리케이션(예: 채널 3에서 실행 중인 애플리케이션 A)를 수용한다. 애플리케이션 A가 실행을 끝내거나 종료될 때에만, 채널 3을 애플리케이션 B에 할당할 수 있으므로, 애플리케이션 B가 일시 중지되는 경우에 생성된 애플리케이션 B의 임시 데이터는 채널 3으로 마이그레이션될 수 있다. 이러한 방식으로, 저장 기기(203)는 최대 16개의 채널을 지원하는 것으로 가정한다. 이는 최대 16개의 애플리케이션을 시작할 수 있음을 나타낸다. 시작된 애플리케이션의 수량의 상한은 보안 요소(204) 또는 범용 중앙 처리 유닛(205)에 의해 설정될 수 있다. 보안 요소(204) 또는 중앙 처리 유닛(2041)은 외부적으로 입력된 커맨드에 따라, 어떤 애플리케이션을 새로 시작해야 하는지 또는 어떤 애플리케이션을 종료해야 하는지를 파싱할 수 있다. 물론, 더 많은 채널을 지원할 필요가 있다면, 범용 중앙 처리 유닛(205)은 저장 기기(203)에 이전에 언급된 보안 저장 영역으로서 더 큰 공간을 할당할 수 있다. 중계로서, 랜덤 액세스 메모리(207)는 보안 격리를 갖는 보안 요소(204)와 범용 프로세서 시스템(200) 사이에서 데이터를 송신 또는 교환하므로, 랜덤 액세스 메모리(2042) 내의 보안 소프트웨어 애플리케이션 공간 내의 임시 데이터는 채널 3과 같은 임의의 채널로 마이그레이션되거나, 채널 3의 데이터는 보안 소프트웨어 애플리케이션 공간으로 다시 마이그레이션된다.
데이터가 마이그레이션되기 전에 각각의 일시 중지된 애플리케이션의 데이터에 대해 수행되는 MAC 알고리즘 또는 해시 알고리즘은 SHA256 알고리즘을 포함할 수 있다. 연산에 의해 획득된 해시 값은 랜덤 액세스 메모리(2042)에 저장된다. 이어서, 저장 기기(203)로부터 데이터가 역으로 마이그레이션될 때, 저장된 해시 값이 해시 검사 또는 해시 검증에 사용된다. 해시 검증은 역으로 마이그레이션되는 데이터가 마이그레이션 이전의 데이터와 비교하여 훼손되지 않은 것을 보장할 수 있다. 해시 검증이 실패하거나 검증이 실패하면, 해시 검증을 수행하는 암호화 유닛(2043) 또는 중앙 처리 유닛(2041)은 에러를 보고할 수 있다. 에러는 경고 정보의 형태로 범용 중앙 처리 유닛(205)에 송신될 수 있고, 범용 운영체제에 기초한 사용자 인터페이스 상에 표시될 수 있다.
보안 요건으로 인해, 해시 알고리즘 이외에, 암호화 알고리즘이 마이그레이션될 데이터에 적용된다. 구체적으로, 고급 암호화 표준 알고리즘(Advanced Encryption Standard, AES) 256-CBC(Cipher Block Chaining, 암호 블록 체인) 알고리즘과 같은 대칭 암호화 알고리즘이 암호화를 수행하는 데 사용될 수 있다. 암호화에 사용되는 키(Key)는 여전히 랜덤 액세스 메모리(2042)에 저장될 수 있다. 키는 마이그레이션이 수행되기 전에 매번 무작위로 생성되므로, 각각 애플리케이션의 각각의 마이그레이션에 사용된 키가 상이한 것을 보장할 수 있다. 키는 중앙 처리 유닛(2041) 또는 다른 키 생성기(도시되지 않음)에 의해 구체적으로 생성될 수 있다. 본 실시예에서는 이를 한정하지 않는다.
도 5는 본 발명의 일 실시예에 따른 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 방법의 간략화된 개략 흐름도이다. 이 방법은 도 2 또는 도 3에 도시된 모바일 결제 장치에 의해 수행될 수 있다. S51에서, 하나 이상의 범용 중앙 처리 유닛(205)이 범용 운영체제 소프트웨어를 실행한다. 범용 중앙 처리 유닛(205)은 파워온 프로그램에서 비 전력 손실 휘발성 메모리(206) 또는 다른 비 전력 손실 휘발성 메모리로부터 범용 운영체제 소프트웨어의 프로그램 코드를 로딩 또는 실행할 수 있다. S52에서, 보안 요소(204) 내의 중앙 처리 유닛(2041)은 보안 운영체제 소프트웨어 및 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행한다. 시작 프로그램에서, 범용 운영체제 소프트웨어가 성공적으로 시작되었거나 시작되고 있으면, 보안 운영체제 소프트웨어가 시작될 수 있다. 하나 이상의 보안 소프트웨어 애플리케이션은 보안 운영체제 소프트웨어가 시작됨에 따라 디폴트로 시작되거나, 사용자 트리거에 따라 시작될 수 있다. 사용자는 범용 운영체제 소프트웨어에 기초한 사용자 인터페이스상에서 임의의 보안 소프트웨어 애플리케이션의 시작을 트리거할 수 있다. 사용자 인터페이스를 통한 트리거는 범용 중앙 처리 유닛(205)에 의해 검출되고, 범용 중앙 처리 유닛(205)은 명령을 생성한다. 명령은 보안 요소(204) 내의 중앙 처리 유닛(2041)에 송신되어, 중앙 처리 유닛(2041)이 보안 소프트웨어 애플리케이션을 시작하도록 명령한다. 전술한 실시예에서 설명한 바와 같이, 명령은 인터럽트 또는 IPC 프로토콜 명령에 기초한 명령일 수 있다.
또한, S53에서, 제1 보안 소프트웨어 애플리케이션이 실행을 시작할 때, 보안 요소(204) 내의 랜덤 액세스 메모리(2042)는 보안 운영체제 소프트웨어 및 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장한다고 가정한다.
S54에서, 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 중앙 처리 유닛(2041)은 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 임시 데이터를 랜덤 액세스 메모리(2042)로부터 도 2 또는 도 3에 도시된 저장 기기(203)로 마이그레이션한다. 구체적인 마이그레이션 프로세스에 대해서는, 이전의 구현예를 참조한다. 그 후, 중앙 처리 유닛(2041)은 보안 운영체제 소프트웨어에 기초하여 제2 보안 소프트웨어 애플리케이션을 실행한다. 보안 요소(204) 또는 보안 요소(204) 내의 중앙 처리 유닛(2041)이 중앙 처리 유닛(205)으로부터 애플리케이션 선택 커맨드(Select AID)을 수신한다고 가정한다. 이 커맨드는 사용자 인터페이스상에서 사용자에 의해 트리거되고, 새로운 소프트웨어 애플리케이션의 시작을 선택하는 데 사용된다. 범용 중앙 처리 유닛(205)은 트리거에 기초하여 명령(즉, 선택 커맨드)을 중앙 처리 유닛(2041)에 전송한다. 예를 들어, 명령은 채널 x의 명령 정보(CHx)를 싣고 있다. 이 정보는 저장 기기(203) 내의 채널 x가 소프트웨어 애플리케이션(즉, 제2 보안 소프트웨어 애플리케이션)을 새로 시작하는 데 자원으로서 사용된다는 것을 지시한다. 중앙 처리 유닛(2041)은 대응하는 소프트웨어 애플리케이션을 시작하고, 보안 요소(204) 내의 랜덤 액세스 메모리(2042)를 소프트웨어 애플리케이션을 실행하는데 필요한 메모리로서 사용한다. 새로운 소프트웨어 애플리케이션이 실행될 때, 채널 x는 즉시 사용되지 않지만, 유휴 상태에 있다. 이어서, 일단 소프트웨어 애플리케이션이 일시 중지되면, 채널 x는 그 소프트웨어 애플리케이션의 임시 데이터를 저장하는 데 사용된다. 이에 앞서, 중앙 처리 유닛(2041) 또는 암호화 유닛(2043)은 랜덤 액세스 메모리(2042)에서 실행중이고 채널 y에 대응하는 끝나지 않은 소프트웨어 애플리케이션(즉, 제1 보안 소프트웨어 애플리케이션)의 관련된 임시 데이터에 대해 암호화 및 해시 알고리즘 처리를 수행한다. 처리된 데이터는 외부 저장 기기(203) 내의 대응하는 채널 y에 저장된다. 내부 랜덤 액세스 메모리(2042)는 암호화 키 및 해시 값 중 적어도 하나를 저장하도록 구성되어, 제2 임시 데이터가 나중에 랜덤 액세스 메모리(2042)로 다시 마이그레이션될 필요가 있을 때 암호해독 또는 해시 검증 처리를 수행하는 데 사용될 수 있도록 한다.
S55에서, 랜덤 액세스 메모리 (2042)는 제2 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제2 임시 데이터를 임시로 저장한다. 즉, 제1 보안 소프트웨어 애플리케이션의 임시 데이터를 임시로 저장하기 위해 사용된 공간이, 실행중인 보안 소프트웨어 애플리케이션을 대체하기 위해, 제2 보안 소프트웨어 애플리케이션의 임시 데이터를 저장하는 데 사용된다.
또한, S56에서, 일시 중지된 제1 보안 소프트웨어 애플리케이션은 종료되거나 완전히 중지될 수 있다. 예를 들어, 채널 y상의 관련 소프트웨어 애플리케이션을 중단해야 할 필요가 있는 경우, 중앙 처리 유닛(2041)는 범용 중앙 처리 유닛(205)으로부터 전송된 정지 명령을 수신할 수 있다. 명령은 사용자 인터페이스상에서 사용자에 의해 트리거될 수 있으며, 중지될 필요가 있는 소프트웨어 애플리케이션에 대응하는 채널 번호 y를 포함할 수 있다. 여기서 정지는 저장 기기(203)의 채널 y에 대응하는 임시 데이터를 삭제하고, 그 임시 데이터에 대응하는 암호 키 및 해시 값을 랜덤 액세스 메모리(2042)로부터 삭제하는 것이다.
S54에서, 대안적으로, 제2 보안 소프트웨어 애플리케이션은 새롭게 시작된 소프트웨어 애플리케이션이 아니라, 이전에 일시 중지되고 관련 임시 데이터가 저장 기기(203)의 채널 z에 저장되어 있는 소프트웨어 애플리케이션일 수 있다. 이 경우 보안 요소(204) 또는 중앙 처리 유닛(2041)은 선택 커맨드 대신에 범용 중앙 처리 유닛(205)에 의해 전송된 APDU(Application Protocol Data Unit, 애플리케이션 프로토콜 데이터 유닛) 커맨드를 수신할 수 있다. APDU 커맨드는 실행을 재개해야 하는 제2 보안 소프트웨어 애플리케이션에 대응하는 채널 번호 x를 지시한다. 보안 요소(204) 또는 중앙 처리 유닛(2041)이 채널 번호 x를 포함하는 APDU 커맨드를 수신하면, 채널 y에 대응하는 실행 중인 보안 소프트웨어 애플리케이션의 임시 데이터에 대해 암호화 및 해시 알고리즘 처리가 수행되고, 처리된 데이터는 외부 저장 기기(203)의 y 채널에 저장된다. 랜덤 액세스 메모리(2042)는 여전히 대응하는 암호화 키 및 해시 값을 저장한다. 그 다음, 저장 기기(203)의 x 채널의 임시 데이터가 보안 요소(204)로 다시 마이그레이션되고, 그 데이터에 대해 암호해독 및 해시 검사(해시 검증)가 수행된다. 암호해독 및 성공적인 검증 후에, 중앙 처리 유닛(2041)은 랜덤 액세스 메모리(2042)의 보안 소프트웨어 애플리케이션 공간을 사용하여 재실행 소프트웨어 애플리케이션을 실행한다.
전술한 프로세스의 시퀀스 번호는 본 발명의 다양한 실시예에서의 실행 시퀀스를 의미하지 않는다는 것을 이해해야 한다. 프로세스의 실행 시퀀스는 프로세스의 기능 및 내부 논리에 따라 결정되어야 하며, 본 발명의 실시예의 구현 프로세스에 대한 어떠한 한정으로도 해석되어서는 안된다. 또한, 본 발명의 실시예는 서로 결합되거나 참조될 수 있다. 예를 들어, 도 5에 대응하는 방법 실시예의 일부 단계의 상세한 구현에 대해서는, 이전의 다른 실시예를 참조할 수 있다.
이해할 수 있는 것은, 본 발명의 하나 이상의 구현예가 주로 도 1 내지 도 5에 대응하는 이전 실시예에서의 장치(20)의 하드웨어 구현을 설명함으로써 설명되었다는 것이다. 또한 도 5에 대응하는 구현 단계 중 일부 또는 전부의 관련 기능은 소프트웨어 기능 유닛의 형태로 구현될 수도 있으며, 독립적인 제품으로서 판매되고 사용될 수도 있다. 관련 소프트웨어 기능 유닛은 컴퓨터 프로그램 제품일 수 있고, 컴퓨터로 판독 가능한 저장 매체에 저장될 수 있다. 컴퓨터 프로그램 제품은 이전의 실시예에서 언급한 범용 운영체제 소프트웨어, 범용 운영체제 소프트웨어에 기초한 보통의 소프트웨어 애플리케이션, 보안 운영체제 소프트웨어 및 보안 운영체체 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션 중 일부 또는 전부를 포함하여, 장치(20) 내의 관련 구성 요소를 구동하여 관련된 처리 방법 또는 기능을 구현할 수 있다. 이러한 이해를 바탕으로, 방법의 대응하는 기술적 방안의 적어도 일부는 컴퓨터 소프트웨어 제품, 즉 컴퓨터 코드의 형태로 구현될 수 있다. 컴퓨터 코드는 저장 매체에 저장될 수 있고, 대응하는 방법의 전부 또는 일부 단계를 수행하도록 컴퓨터 기기(전술한 이동 단말기 또는 개인용 컴퓨터일 수 있음)에게 명령하기 위한 여러 명령어를 포함한다. 전술한 저장 매체로는 USB 플래시 드라이브, 착탈식 하드 디스크, 판독 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 자기 디스크 또는 광 디스크와 같은, 프로그램 코드를 저장할 수 있은 임의의 매체를 포함한다.
이상은 본 발명의 예시적인 실시예에 불과하다. 당업자는 본 발명의 사상 및 범위를 벗어나지 않고 본 발명에 대한 다양한 수정 및 변형을 행할 수 있다. 예를 들어, 본 발명의 실시예에서의 첨부 도면에서 모든 구성 요소의 구체적인 형상 또는 구성은 실제 적용 시나리오에 따라 조정될 수 있다.

Claims (20)

  1. 보안 요소 및 상기 보안 요소에 연결된 하나 이상의 중앙 처리 유닛을 포함하고;
    상기 보안 요소는 프로세서 및 제1 랜덤 액세스 메모리를 포함하고;
    상기 하나 이상의 중앙 처리 유닛은, 범용 운영체제 소프트웨어를 실행하고, 상기 범용 운영체제 소프트웨어의 작용 하에서 상기 보안 요소와 통신하도록 구성되고;
    상기 프로세서는 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행하도록 구성되고;
    상기 제1 랜덤 액세스 메모리는 상기 보안 운영체제 소프트웨어 및 상기 하나 이상의 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장하도록 구성되고;
    상기 프로세서는 추가로, 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제1 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 보안 요소 외부에 배치된 저장 기기로 마이그레이션하는 것을 제어하고, 상기 보안 운영체제 소프트웨어에 기초하여, 상기 제2 보안 소프트웨어 애플리케이션을 실행하도록 구성되며, 상기 제2 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제2 임시 데이터는 상기 제1 랜덤 액세스 메모리에 임시로 저장되는,
    복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  2. 제1항에 있어서,
    상기 프로세서는, 상기 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 상기 제1 보안 소프트웨어 애플리케이션을 실행하도록 구성되고, 추가로, 상기 제1 보안 소프트웨어의 실행을 일시 중지하고, 상기 제1 임시 데이터를 상기 저장 기기로 마이그레이션하는 것을 제어하고, 상기 보안 운영체제 소프트웨어에 기초하여, 상기 제2 보안 소프트웨어 애플리케이션을 실행하도록 구성된 제1 처리 유닛을 포함하는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  3. 제1항에 있어서,
    상기 프로세서는 제1 처리 유닛 및 제2 처리 유닛을 포함하고;
    상기 제1 처리 유닛은, 상기 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 상기 제1 보안 소프트웨어 애플리케이션을 실행하고, 상기 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 임시 데이터의 마이그레이션을 트리거하도록 구성되고;
    상기 제2 처리 유닛은 상기 제1 처리 유닛의 트리거에 기초하여, 상기 제1 임시 데이터를 상기 저장 기기로 마이그레이션하도록 구성되고;
    상기 제1 처리 유닛은 추가로, 상기 제1 임시 데이터의 마이그레이션이 완료된 후에 상기 보안 운영체제 소프트웨어에 기초한 상기 제2 보안 소프트웨어 애플리케이션을 실행하도록 구성되는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 보안 요소 및 상기 하나 이상의 중앙 처리 유닛은 상기 장치 내의 제1 반도체 칩 내에 위치하는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 저장 기기는 상기 장치 내의 제2 반도체 칩 내에 위치하는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 저장 기기는 제2 랜덤 액세스 메모리인, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 저장 기기는 보안 저장 영역을 포함하고, 상기 보안 저장 영역은 상기 프로세서에 의해 일시 중지되는 하나 이상의 보안 소프트웨어 애플리케이션의 제3 임시 데이터를 임시로 저장하는 데 전용되는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  8. 제7항에 있어서,
    상기 프로세서는 추가로, 상기 프로세서에 의해 일시 중지되는 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제3 보안 소프트웨어 애플리케이션를 종료할 필요가 있는 경우, 상기 저장 기기를 제어하여 상기 제3 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제4 임시 데이터를 삭제하도록 구성되는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 장치는 상기 보안 요소에 연결된 제3 랜덤 액세스 메모리를 더 포함하고;
    상기 제1 임시 데이터는 상기 프로세서에 의해 상기 제1 랜덤 액세스 메모리로부터 상기 제3 랜덤 액세스 메모리로 마이그레이션되고, 추가로 상기 제3 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션되는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 제2 보안 소프트웨어 애플리케이션은 새롭게 시작된 보안 소프트웨어 애플리케이션인, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  11. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 제2 보안 소프트웨어 애플리케이션은 상기 프로세서에 의해 이전에 중지되어 다시 실행되는 소프트웨어 애플리케이션이고;
    상기 프로세서는, 상기 제2 보안 소프트웨어 애플리케이션을 일시 중지하는 경우, 상기 제2 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션하고;
    상기 제2 보안 소프트웨어 애플리케이션을 다시 실행할 필요가 있는 경우, 상기 제2 임시 데이터를 상기 저장 기기로부터 상기 제1 랜덤 액세스 메모리로 다시 마이그레이션하도록 구성되는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  12. 제11항에 있어서,
    상기 프로세서는 추가로, 상기 제1 랜덤 액세스 메모리로부터 상기 제2 임시 데이터를 획득하고, 상기 제2 임시 데이터를 상기 저장 기기로 마이그레이션하기 전에, 상기 제2 임시 데이터에 대해 암호화 또는 메시지 인증 코드(message authentication code, MAC) 연산 중 적어도 하나를 수행하고;
    상기 저장 기기로부터 상기 제2 임시 데이터를 획득하고, 상기 제2 임시 데이터를 상기 제1 랜덤 액세스 메모리로 다시 마이그레이션하기 전에, 상기 제2 임시 데이터에 대해 암호해독 또는 MAC 검증 연산 중 적어도 하나를 수행하도록 구성되는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  13. 제11항에 있어서,
    상기 장치는 암호화 유닛을 더 포함하고;
    상기 프로세서는 추가로, 상기 제1 랜덤 액세스 메모리로부터 상기 제2 임시 데이터를 획득하고, 상기 제2 임시 데이터를 상기 저장 기기로 마이그레이션하기 전에, 상기 제2 임시 데이터를 상기 암호화 유닛에 제공하고, 상기 암호화 유닛의 보안 처리 후의 상기 제2 임시 데이터를 수신하도록 구성되며, 상기 암호화 유닛은 상기 제2 임시 데이터에 대해 암호화 또는 MAC 연산 중 적어도 하나의 보안 처리를 수행하여, 상기 보안 처리 후의 상기 제2 임시 데이터를 획득하도록 구성되고;
    상기 프로세서는 추가로, 상기 저장 기기로부터 상기 제2 임시 데이터를 획득하고, 상기 제2 임시 데이터를 상기 제1 랜덤 액세스 메모리로 다시 마이그레이션하기 전에, 상기 제2 임시 데이터를 상기 암호화 유닛에 제공하고, 상기 암호화 유닛의 역 보안 처리 후의 상기 제2 임시 데이터를 수신하도록 구성되며, 상기 암호화 유닛은 추가로, 상기 제2 임시 데이터에 대해 암호해독 또는 MAC 검증 연산 중 적어도 하나의 역 보안 처리를 수행하도록 구성되는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  14. 제12항 또는 제13항에 있어서,
    상기 제2 보안 소프트웨어 애플리케이션은 상기 프로세서에 의해 여러 번 일시 중지될 수 있고, 상기 제2 보안 소프트웨어 애플리케이션이 일시 중지될 때마다 상기 프로세서에 의해 상기 제1 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션되고, 상기 제2 보안 소프트웨어 애플리케이션이 일시 중지될 때마다 상기 제2 보안 소프트웨어 애플리케이션에 대해 암호화 또는 암호해독을 수행하기 위해 상이한 키가 사용되는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    상기 프로세서는 추가로, 상기 제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 하나 이상의 중앙 처리 유닛에 의해 전송되는 사용자 명령을 수신하여, 상기 제2 보안 소프트웨어 애플리케이션의 실행을 활성화하도록 구성되며, 상기 사용자 명령은 상기 범용 운영체제 소프트웨어의 사용자 인터페이스를 통해 전달되는 조작 커맨드(operation command)에 의해 트리거되는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서,
    상기 하나 이상의 보안 소프트웨어 애플리케이션은 모바일 결제 소프트웨어 애플리케이션 또는 가입자 식별 모듈(subscriber identity module, SIM) 카드 소프트웨어 애플리케이션 중 적어도 하나를 포함하는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    상기 하나 이상의 중앙 처리 유닛에 의해 실행되는 상기 범용 운영체제 소프트웨어와, 상기 보안 요소 사이에는 보안 격리가 존재하는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치.
  18. 하나 이상의 중앙 처리 유닛이 범용 운영체제 소프트웨어를 실행하는 단계;
    보안 요소 내의 프로세서가 보안 운영체제 소프트웨어 및 상기 보안 운영체제 소프트웨어에 기초한 하나 이상의 보안 소프트웨어 애플리케이션을 실행하는 단계;
    상기 보안 요소 내의 제1 랜덤 액세스 메모리가 상기 보안 운영체제 소프트웨어 및 상기 하나 이상의 보안 소프트웨어 애플리케이션의 실행 중에 생성된 보안 임시 데이터를 임시로 저장하는 단계;
    제2 보안 소프트웨어 애플리케이션을 실행할 필요가 있는 경우, 상기 프로세서가, 상기 하나 이상의 보안 소프트웨어 애플리케이션 중의 제1 보안 소프트웨어 애플리케이션의 실행을 일시 중지하고, 상기 제1 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제1 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 보안 요소 외부에 배치된 저장 기기로 마이그레이션하고, 상기 보안 운영체제 소프트웨에 기초하여, 상기 제2 보안 소프트웨어 애플리케이션을 실행하는 단계; 및
    상기 제2 랜덤 액세스 메모리가 상기 제2 보안 소프트웨어 애플리케이션의 실행 중에 생성된 제2 임시 데이터를 임시로 저장하는 단계
    를 포함하는 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 방법.
  19. 제18항에 있어서,
    상기 제2 보안 소프트웨어 애플리케이션은 상기 프로세서에 의해 이전에 일시 중지되어 다시 실행되는 보안 소프트웨어 애플리케이션이고;
    상기 제2 보안 소프트웨어 애플리케이션이 일시 중지되는 경우, 상기 프로세서가 상기 제2 임시 데이터를 상기 제1 랜덤 액세스 메모리로부터 상기 저장 기기로 마이그레이션하는 단계; 및
    상기 제2 보안 소프트웨어 애플리케이션을 다시 실행할 필요가 있는 경우, 상기 프로세서가 상기 제2 임시 데이터를 상기 저장 기기로부터 상기 제1 랜덤 액세스 메모리로 다시 마이그레이션하는 단계를 더 포함하는 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 방법.
  20. 제18항 또는 제19항에 있어서,
    상기 하나 이상의 중앙 처리 유닛에 의해 실행되는 상기 범용 운영체제 소프트웨어와, 상기 보안 요소 사이에는 보안 격리가 존재하는, 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 방법.
KR1020187032629A 2016-04-14 2017-03-27 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치 및 방법 KR20180132134A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610232101.0A CN105912272B (zh) 2016-04-14 2016-04-14 一种控制多个安全应用软件的运行的装置和方法
CN201610232101.0 2016-04-14
PCT/CN2017/078314 WO2017177814A1 (zh) 2016-04-14 2017-03-27 一种控制多个安全应用软件的运行的装置和方法

Publications (1)

Publication Number Publication Date
KR20180132134A true KR20180132134A (ko) 2018-12-11

Family

ID=56746863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187032629A KR20180132134A (ko) 2016-04-14 2017-03-27 복수의 보안 소프트웨어 애플리케이션의 실행을 제어하는 장치 및 방법

Country Status (5)

Country Link
US (1) US10825014B2 (ko)
EP (1) EP3435221B1 (ko)
KR (1) KR20180132134A (ko)
CN (1) CN105912272B (ko)
WO (1) WO2017177814A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912272B (zh) 2016-04-14 2019-03-01 华为技术有限公司 一种控制多个安全应用软件的运行的装置和方法
EP3520318A4 (en) 2016-09-29 2020-04-29 Nokia Technologies Oy CONFIDENCE CALCULATION METHOD AND APPARATUS
WO2018119904A1 (zh) 2016-12-29 2018-07-05 华为技术有限公司 一种实现安全操作系统切换的片上系统和方法
EP3402152B1 (de) 2017-05-08 2019-10-16 Siemens Aktiengesellschaft Anlagenspezifisches, automatisiertes zertifikatsmanagement
CN111201553B (zh) 2017-10-16 2022-04-22 华为技术有限公司 一种安全元件及相关设备
CN109992362B (zh) * 2017-12-29 2021-08-13 Oppo广东移动通信有限公司 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN111386513B (zh) * 2018-05-03 2021-09-07 华为技术有限公司 数据处理的方法、装置和系统芯片
WO2019237304A1 (zh) 2018-06-14 2019-12-19 华为技术有限公司 一种密钥处理方法及装置
WO2020132962A1 (zh) * 2018-12-26 2020-07-02 华为技术有限公司 安全元件、数据处理装置及数据处理方法
CN111475430B (zh) * 2019-01-24 2023-04-11 深圳市文鼎创数据科技有限公司 Java卡芯片通信设备及通信方法
US11188685B2 (en) * 2019-02-22 2021-11-30 Google Llc Secure transient buffer management
CN110232275B (zh) * 2019-04-24 2021-04-27 维沃移动通信有限公司 一种控制方法及终端设备
CN110559645B (zh) * 2019-07-18 2021-08-17 荣耀终端有限公司 一种应用的运行方法及电子设备
US11366935B2 (en) * 2019-07-31 2022-06-21 Elo Touch Solutions, Inc. Multi-use payment device
CN111216134B (zh) * 2020-02-17 2021-11-09 达闼机器人有限公司 机器人的控制方法、装置、控制器、存储介质和机器人
FR3107975B1 (fr) * 2020-03-05 2022-12-02 Idemia France Procédé mis en œuvre dans un module à circuit intégré, module à circuit intégré correspondant, système comportant un tel module et programme d’ordinateur associé

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61127709A (ja) 1984-11-27 1986-06-16 Sumitomo Chem Co Ltd エチレン共重合体の製造方法
FR2751895B1 (fr) 1996-08-01 1998-10-02 Ceramiques Tech Soc D Module de traitement de fluide(s) a membrane(s) rigide(s) et procedes le mettant en oeuvre
CN100383744C (zh) * 2004-12-24 2008-04-23 联想(北京)有限公司 一种计算机多操作系统的切换方法
US7820776B2 (en) 2005-03-09 2010-10-26 Saudi Basic Industries Corporation Process for the preparation of an ethylene copolymer in a tubular reactor
GB0609973D0 (en) 2006-05-19 2006-06-28 Exxonmobil Chem Patents Inc An apparatus for the production of polyethylene and ethylene copolymers
GB0609974D0 (en) 2006-05-19 2006-06-28 Exxonmobil Chem Patents Inc A process for the production of polyethylene and ethylene copolymers
EP1870813B1 (en) * 2006-06-19 2013-01-30 Texas Instruments France Page processing circuits, devices, methods and systems for secure demand paging and other operations
US20100095348A1 (en) * 2008-10-10 2010-04-15 Ciphent, Inc. System and method for management and translation of technical security policies and configurations
US20100174631A1 (en) * 2009-01-07 2010-07-08 Onbest Technology Holdings Limited Secure device firmware
EP2544813B1 (en) 2010-03-12 2016-04-27 ExxonMobil Chemical Patents Inc. Polyethylene manufacturing system and method
US8335921B2 (en) * 2010-12-17 2012-12-18 Google, Inc. Writing application data to a secure element
CN103049694A (zh) * 2013-01-14 2013-04-17 上海慧银信息科技有限公司 一种智能金融交易终端的核心安全架构实现方法
CN104778794B (zh) 2015-04-24 2017-06-20 华为技术有限公司 移动支付装置和方法
CN105912272B (zh) * 2016-04-14 2019-03-01 华为技术有限公司 一种控制多个安全应用软件的运行的装置和方法

Also Published As

Publication number Publication date
US10825014B2 (en) 2020-11-03
EP3435221A4 (en) 2019-03-27
US20190050844A1 (en) 2019-02-14
EP3435221A1 (en) 2019-01-30
CN105912272B (zh) 2019-03-01
WO2017177814A1 (zh) 2017-10-19
EP3435221B1 (en) 2021-02-03
CN105912272A (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
US10825014B2 (en) Apparatus and method for controlling running of multiple security software applications
US11429950B2 (en) Mobile payment apparatus and method
US20190172047A1 (en) System on chip and processing device
US10853519B2 (en) System on chip and method for implementing secure operating system switching
US11212674B2 (en) Control method of secure module connected to a plurality of processors and electronic device for implementing the same
US9288107B2 (en) Method and system for controlling operations in a mobile communication device that is enabled for near field communication (NFC)
US20160103716A1 (en) Method for using shared device in apparatus capable of operating two operating systems
CN105404820A (zh) 文件安全存取系统与方法

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application