KR102297383B1 - 보안 데이터 처리 - Google Patents

보안 데이터 처리 Download PDF

Info

Publication number
KR102297383B1
KR102297383B1 KR1020140128664A KR20140128664A KR102297383B1 KR 102297383 B1 KR102297383 B1 KR 102297383B1 KR 1020140128664 A KR1020140128664 A KR 1020140128664A KR 20140128664 A KR20140128664 A KR 20140128664A KR 102297383 B1 KR102297383 B1 KR 102297383B1
Authority
KR
South Korea
Prior art keywords
module
security
memory
control processor
secure
Prior art date
Application number
KR1020140128664A
Other languages
English (en)
Other versions
KR20160036414A (ko
Inventor
김용철
이양수
장문수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020140128664A priority Critical patent/KR102297383B1/ko
Priority to US14/858,624 priority patent/US9904794B2/en
Publication of KR20160036414A publication Critical patent/KR20160036414A/ko
Application granted granted Critical
Publication of KR102297383B1 publication Critical patent/KR102297383B1/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

일반 모듈과 보안 모듈로 구분되는 제1 제어 모듈, 및 상기 제1 제어 모듈과 구분되는 제2 제어 모듈을 포함하는 전자 장치가 개시된다. 상기 일반 모듈은 상기 보안 모듈과 상기 제2 제어 모듈이 액세스 할 수 있는 보안 메모리를 설정하고, 상기 보안 모듈은 상기 설정된 보안 메모리의 유효성을 판단할 수 있다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.

Description

보안 데이터 처리{Processing Secure Data}
본 문서의 다양한 실시 예들은 보안 데이터를 처리하는 기술과 관련된다.
최근에는 다양한 연산 장치들이 내장된 이기종 멀티 코어 임베디드 시스템(multi-core embedded system)이 다양한 전자 장치에서 활용되고 있다. 예를 들어, 전자 장치에는 CPU와 같은 중앙 처리 장치 외에도, 다수의 병렬 코어를 포함하는 GPU나 DSP(digital signal processor)와 같은 연산 장치들이 포함되고 있다.
한편 전자 장치는 기존의 비밀번호 방식에서 한 단계 발전하여 보다 높은 보안성을 제공하기 위해 사용자의 생체 인식 정보, 예를 들어 지문 인식이나 홍채 인식과 같은 기술을 활용하고 있다.
일반적으로 전자 장치는 특정 프로세서나 특정 메모리 영역에 대한 보안을 설정할 수 있다. 이에 따라서는 해당 프로세서 내에서 동작하는 연산에 대해서는 어느 정도 안전성을 보장받을 수 있다. 그러나 전자 장치가 서로 다른 종류의 여러 연산 장치를 함께 활용하여 작업 효율을 향상시키고자 하는 경우에는, 이기종 간의 데이터 처리에 있어서 데이터의 보안이 보장되지 않는 경우가 발생할 수 있다.
본 문서의 다양한 실시 예들은, 복잡한 연산을 요구하면서 신속한 응답 시간을 필요로 하는 서비스 들에 대하여 이기종 간의 프로세서를 이용하여 효과적으로 연산을 수행하면서, 동시에 데이터의 높은 보안 상태를 만족시키는 기술을 제공할 수 있다.
본 문서의 다양한 실시 예에 따른 전자 장치는, 일반 모듈과 보안 모듈로 구분되는 제1 제어 모듈, 및 상기 제1 제어 모듈과 구분되는 제2 제어 모듈을 포함하는 전자 장치가 개시된다. 상기 일반 모듈은 상기 보안 모듈과 상기 제2 제어 모듈이 액세스 할 수 있는 보안 메모리를 설정하고, 상기 보안 모듈은 상기 설정된 보안 메모리의 유효성을 판단할 수 있다.
본 문서의 다양한 실시 예에 따르면, 사용자의 생체 데이터와 같은 보안 데이터를 높은 보안 상태를 유지하면서 신속하게 처리할 수 있다.
또한, 다양한 실시 예에 따르면 보안 메모리 영역의 유효성을 확인하는 과정을 두어, 전자 장치의 일부 영역이나 모듈이 해킹되더라도 보안 데이터를 안전하게 처리하고 유출을 방지할 수 있는 효과가 있다.
도 1은 다양한 실시 예에 따른 네트워크 환경 내의 전자 장치를 나타낸다.
도 2는 다양한 실시 예에 따른 전자 장치의 프로세서-메모리 구조를 나타낸다.
도 3은 다양한 실시 예에 따른 보안 데이터 처리 방법을 나타낸다.
도 4는 다양한 실시 예에 따른 생체 인식을 통한 사용자 인증 프로세스의 예시를 나타낸다.
도 5는 다양한 실시 예에 따른 전자 장치의 블록도를 나타낸다.
도 6은 다양한 실시 예에 따른 프로그램 모듈의 블록도를 나타낸다.
이하, 본 문서의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다", "가질 수 있다", "포함한다", 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B", "A 또는/및 B 중 적어도 하나", 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
다양한 실시 예에서 사용된 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 해당 구성요소들을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 게시된 기술과 관련된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성(또는 설정)된"은 하드웨어적으로 "특별히 설계된(specifically designed to)"것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성(또는 설정)된 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 문서의 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로 사용되는 사전에 정의된 용어들은 관련 기술의 문맥 상 가지는 의미와 동일 또는 유사한 의미를 가지는 것으로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.
본 문서의 다양한 실시 예들에 따른 전자 장치는, 예를 들면, 전자 장치는 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상 전화기, 전자북 리더기(e-book reader), 데스크탑 PC (desktop PC), 랩탑 PC(laptop PC), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라, 또는 웨어러블 장치(wearable device)(예: 스마트 안경, 머리 착용형 장치(head-mounted-device(HMD)), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 스마트 미러, 또는 스마트 와치(smart watch))중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에서, 전자 장치는 스마트 가전 제품(smart home appliance)일 수 있다. 스마트 가전 제품은, 예를 들면, 텔레비전, DVD 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync™, 애플TV™, 또는 구글 TV™), 게임 콘솔(예: Xbox™, PlayStation™), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시 예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller’s machine), 상점의 POS(point of sales), 또는 사물 인터넷 장치(internet of things)(예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기(thermostat), 가로등, 토스터(toaster), 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예에 따르면, 전자 장치는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에서, 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시 예에 따른 전자 장치는 플렉서블 전자 장치일 수 있다. 또한, 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 전자 장치를 포함할 수 있다.
이하, 첨부 도면을 참조하여, 다양한 실시 예에 따른 전자 장치가 설명된다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치 (예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 다양한 실시 예에 따른 네트워크 환경 내의 전자 장치를 나타낸다.
도 1을 참조하여, 다양한 실시 예에서의 네트워크 환경 100 내의 전자 장치 101이 기재된다. 상기 전자 장치 101은 버스 110, 제1 프로세서 120, 메모리 130, 입출력 인터페이스 150, 디스플레이 160, 통신 인터페이스 170, 및 제2 프로세서 180을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치 101은, 상기 구성요소들 중 적어도 하나를 생략하거나 다른 구성 요소를 추가적으로 구비할 수 있다.
상기 버스 110은, 예를 들면, 상기 구성요소들 110-180을 서로 연결하고, 상기 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
상기 제1 프로세서 120은, 중앙처리장치(CPU), AP(application processor), 또는 CP(communication processor) 중 하나 또는 그 이상을 포함할 수 있다. 상기 제1 프로세서 120은, 예를 들면, 상기 전자 장치 101의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
다양한 실시 예에서, 제1 프로세서 120은 메인 프로세서, 또는 메인 코어 프로세서(core processor)로 이해될 수 있다. 예를 들어, 전자 장치 101에 포함되는 여러 가지의 다른 구성 요소(예: 각종 모듈, 인터페이스, 또는 제2 프로세서 180과 같은 다양한 연산 장치)의 동작을 제어할 수 있는 처리 모듈은 제1 프로세서 120으로 이해될 수 있다. 또한 제1 프로세서 120은 보안 모듈과 일반 모듈로 논리적으로 구분될 수 있다. 예를 들어, 보안 모듈과 일반 모듈은, 가상화 방식 또는 가상화 방식과 유사하게 코드 및 데이터의 고립(isolation)을 통해 보안을 강화할 수 있는 방식을 이용하여 논리적으로 구분될 수 있다. 이와 관련된 제1 프로세서 120의 특징에 대해서는 도 2를 참조하여 후술한다.
상기 제2 프로세서 180은 상기 제1 프로세서 120과 다른 종류의 프로세서일 수 있다. 예를 들어, 상기 제1 프로세서 120은 CPU이고, 상기 제2 프로세서 180은 GPU(graphic processing unit), DSP(digital signal processer), FPGA(field-programmable gate array), 센서 코어(sensor core) 등일 수 있다.
상기 메모리 130은, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 상기 메모리 130은, 예를 들면, 상기 전자 장치 101의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시 예에 따르면, 상기 메모리 130은 소프트웨어 및/또는 프로그램 140을 저장할 수 있다. 상기 프로그램 140은, 예를 들면, 커널 141, 미들웨어 143, API(application programming interface) 145, 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 147 등을 포함할 수 있다. 상기 커널 141, 미들웨어 143, 또는 API 145의 적어도 일부는, 운영 시스템(operating system, OS)이라고 불릴 수 있다.
다양한 실시 예에서, 메모리 130은 보안 메모리 영역과 일반 메모리 영역으로 구분될 수 있다. 예를 들어, 제1 프로세서 120은 메모리 130의 일부 영역을 보안 메모리 영역으로 할당할 수 있다. 일부 실시 예에서, 메모리 130은 물리적으로 구분되는 복수의 메모리를 포함하고, 제1 프로세서 120은 상기 복수의 메모리 중 적어도 하나의 메모리, 또는 적어도 하나의 메모리 중 일부 영역을 상기 보안 메모리 영역으로 할당할 수 있다.
메모리 130의 일부 영역이 보안 메모리 영역으로 설정되면, 상기 보안 메모리 영역에 대한 액세스가 선택적으로 제한될 수 있다. 예를 들어, 제1 프로세서 120의 보안 모듈 및 제2 프로세서 180은 보안 메모리 영역에 접근할 수 있으나, 제1 프로세서 120의 일반 모듈은 보안 메모리 영역에 접근할 수 없게 될 수 있다.
상기 커널 141은, 예를 들면, 다른 프로그램들(예: 미들웨어 143, API 145, 또는 어플리케이션 프로그램 147)에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스 110, 제1 프로세서 120, 또는 메모리 130 등)을 제어 또는 관리할 수 있다. 또한, 상기 커널 141은 상기 미들웨어 143, 상기 API 145, 또는 상기 어플리케이션 프로그램 147에서 상기 전자 장치 101의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
상기 미들웨어 143은, 예를 들면, 상기 API 145 또는 상기 어플리케이션 프로그램 147이 상기 커널 141과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 상기 미들웨어 143은 상기 어플리케이션 프로그램 147로부터 수신된 작업 요청들과 관련하여, 예를 들면, 상기 어플리케이션 프로그램 147 중 적어도 하나의 어플리케이션에 상기 전자 장치 101의 시스템 리소스 (예: 버스 110, 제1 프로세서 120, 또는 메모리 130 등)를 사용할 수 있는 우선 순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 제어(예: 스케줄링 또는 로드 밸런싱)을 수행할 수 있다.
상기 API 145는, 예를 들면, 상기 어플리케이션 147이 상기 커널 141 또는 상기 미들웨어 143에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수 (예: 명령어)를 포함할 수 있다.
상기 입출력 인터페이스 150은, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 상기 전자 장치 101의 다른 구성요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 상기 입출력 인터페이스 150은 상기 전자 장치 101의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
상기 디스플레이 160은, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템(microelectromechanical systems, MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 상기 디스플레이 160은, 예를 들면, 사용자에게 각종 컨텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)을 표시할 수 있다. 상기 디스플레이 160은, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스처, 근접, 또는 호버링(hovering) 입력을 수신할 수 있다.
상기 통신 인터페이스 170은, 예를 들면, 상기 전자 장치 101과 외부 장치(예: 제1 외부 전자 장치 102, 제2 외부 전자 장치 104, 또는 서버 106) 간의 통신을 설정할 수 있다. 예를 들면, 상기 통신 인터페이스 170은 무선 통신 또는 유선 통신을 통해서 네트워크 162에 연결되어 상기 외부 장치 (예: 제2 외부 전자 장치 104 또는 서버 106)와 통신할 수 있다.
상기 무선 통신은, 예를 들면 셀룰러 통신 프로토콜로서, 예를 들면 LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, 또는 GSM 등 중 적어도 하나를 사용할 수 있다. 상기 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232), 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 상기 네트워크 162는 통신 네트워크(telecommunications network), 예를 들면, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망(telephone network) 중 적어도 하나를 포함할 수 있다.
상기 제1 및 제2 외부 전자 장치 102, 104 각각은 상기 전자 장치 101과 동일한 또는 다른 종류의 장치일 수 있다. 한 실시 예에 따르면, 상기 서버 106은 하나 또는 그 이상의 서버들의 그룹을 포함할 수 있다. 다양한 실시 예에 따르면, 상기 전자 장치 101에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치 102, 104, 또는 서버 106)에서 실행될 수 있다. 한 실시 예에 따르면, 상기 전자 장치 101이 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 상기 전자 장치 101은 상기 기능 또는 상기 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치 102, 104, 또는 서버 106)에게 요청할 수 있다. 상기 다른 전자 장치(예: 전자 장치 102, 104, 또는 서버 106)는 상기 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 상기 전자 장치 101로 전달할 수 있다. 상기 전자 장치 101은 수신된 결과를 그대로 또는 추가적으로 처리하여 상기 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시 예에 따른 전자 장치의 프로세서-메모리 구조를 나타낸다.
도 2는 다양한 실시 예에 따른 전자 장치의 하드웨어 구성 중 일부에 해당할 수 있다. 예를 들어, 도 2에서 설명하는 하드웨어의 구성은 도 1에 도시된 전자 장치 101의 제1 프로세서 120, 제2 프로세서 180, 및 메모리 130에 대응되는 구성으로 이해될 수 있다.
도 2의 전자 장치는 제1 제어 모듈 210(예: 제1 프로세서 120), 제2 제어 모듈 220(예: 제2 프로세서 180), 및 메모리 230(예: 메모리 130)을 포함할 수 있다. 다양한 실시 예에서, 제1 제어 모듈 210과 제2 제어 모듈 220은 하나의 SoC(system on chip) 내에 구현될 수 있다. 예를 들어, 모바일 디바이스용 AP는 CPU(예를 들어, 제1 제어 모듈 210에 대응) 및 GPU, DSP, 센서 코어(Sensor Core), ISP(image signal processor) 등(예를 들어, 제2 제어 모듈 220에 대응)을 포함하는 통합 칩으로 구현될 수 있다.
다양한 실시 예에서, 제1 제어 모듈 210은 하나의 물리 프로세스 코어에 대응될 수 있다. 또한 제1 제어 모듈 120은 보안(secure) 영역과 일반(normal) 영역으로 구분될 수 있다. 각각의 영역은 CPU의 레지스터가 서로 분리되며 페이지 테이블(page table) 관련 레지스터가 분리될 수 있다. 이에 따라서는 가상주소-물리주소 변환에 사용되는 테이블의 주소가 각각 다르게 설정될 수 있고, 이를 통해 각각의 영역이 서로 다른 주소 공간(address space)을 보게 할 수 있다. 다양한 실시 예에서, 제1 제어 모듈 210은 일반 영역에서(또는 일반 모드로) 동작하는 일반 모듈 211 및 보안 영역에서(또는 보안 모드로) 동작하는 보안 모듈 213을 포함하는 것으로 이해될 수 있다.
다양한 실시 예에서, 일반 모듈 211은 메모리 230의 일부 영역을 보안 영역 233으로 설정할 수 있다. 보안 영역 233이 설정되면, 일반 모듈 211 및 일반 모듈 211에 의해 보안 영역 233으로의 접근이 허가되지 않은 다른 프로세서는 보안 영역 233에 액세스할 수 없다. 만약 일반 모듈 211에서 또는 접근이 허가되지 않은 다른 프로세서가 보안 영역 233에 접근하는 경우 페이지 폴트(page fault)가 발생할 수 있다. 즉, 일반 모듈 211은 보안 영역 233을 설정한 후에는 메모리 230의 일반 영역 231에만 액세스할 수 있다.
일반 모듈 211은 보안 모듈 213으로 보안과 관련된 데이터의 처리를 요청할 수 있다. 보안 모듈 213은 보안과 관련된 데이터, 예를 들어 사용자의 생체 정보, 금융 결제와 관련된 인증 정보, 민감 정보(sensitive data) 등을 처리할 수 있다. 예를 들어, 일반 모듈 211은 보안 모듈 213으로 전자 장치 101의 잠금 해제를 위한 동작을 요청할 수 있다. 보안 모듈 213은 보안 어플리케이션을 실행하고 사용자로부터 획득된 잠금 해제 패턴 또는 비밀번호가 전자 장치 101의 잠금 해제 패턴 또는 비밀번호와 일치하는지 여부를 판단할 수 있다. 일반 모듈 211은 보안 모듈 213으로부터 판단 결과를 제공 받고, 이에 기초하여 전자 장치 101의 잠금 상태를 해제하거나 유지할 수 있다.
일반 모듈 211은 보안 모듈 213과 제2 제어 모듈 220 사이에서 작업 요청 및 메모리 주소를 전달할 수 있다. 다양한 실시 예에서, 보안 모듈 213은 보안 데이터 중 일부에 대한 연산을 제2 제어 모듈 220으로 위임할 수 있다. 예를 들어, 보안 모듈 213(예: CPU 중 보안 설정된 영역)은 어플리케이션의 연산-집약적인 부분은 제2 제어 모듈 220(예: 병렬 연산 처리를 위해 다수의 코어를 가진 GPU 등)로 처리를 요청하고, 자신은 나머지 코드만 처리할 수 있다.
전자 장치에는 보호될 필요가 있는 다양한 정보들이 사용될 수 있다. 단순하게는 4자리 숫자로 된 비밀번호부터 사용자의 지문이나 홍채와 같은 생체 인식 정보가 전자 장치에서 사용될 수 있다. 일부 정보(예: 비밀번호)들은 그 연산이 상대적으로 간단하지만, 일부 다른 정보(예: 생체 정보)들은 높은 복잡성의 연산을 필요로 할 수 있다. 복잡한 연산을 처리하기 위해서는 상대적으로 긴 처리 시간이 요구되지만, 사용자는 신속한 응답이 이루어지길 바란다. 예를 들어, 사용자는 전자 장치에 손가락을 갖다 대는 것과 실질적으로 동시에(예를 들어, 0.5ms 이내에) 전자 장치의 잠금 해제나 결제를 위한 인증이 이루어지길 바란다. 또한 사용자는 렌즈를 바라보면, 렌즈가 사용자의 눈을 촬영하고, 촬영 영상에서 홍채를 파악하기 위한 이미지 신호 처리가 수행되고, 촬영된 홍채 영상과 사용자의 등록된 홍채 영상이 매칭되는지 파악하는 정밀한 동작이 수행되어야 함에도, 즉각적으로 홍채 인식이 이루어지길 바란다. 본 문서의 다양한 실시 예에서 높은 복잡성을 요구하는 작업을 다른 프로세서, 특히 해당 작업을 위해 고안되거나(dedicated) 해당 작업 유형에 적합한 (예를 들어, CPU보다 훨씬 다수의 코어를 가지는) 프로세서에 할당하여 병렬적으로 작업을 가속시키는 경우, 높은 보안성에 대한 연산 처리와 함께 신속한 응답을 가능하게 할 수 있다.
전술한 생체 인식을 위한 연산 외에도, 본 문서에 개시된 다양한 방법 또는 장치들은 상대적으로 (예를 들어, 단일 프로세서 혹은 메인 프로세서를 이용하여 처리되는 연산 속도에 비하여) 신속한 처리 속도와 함께 보안을 유지할 수 있는 다양한 연산에 대하여 적용될 수 있다. 예를 들어, 보안 UI(secure UI) 또는 보안 상태(예: secure mode)에서 동작하는 보안과 관련된 TUI(예: 은행/금융 관련 어플리케이션에서 암호나 개인 정보 등을 입력하는 UI 등)의 동작에 본 문서의 다양한 실시 예가 적용될 수 있다. 예를 들어, TUI는 보안 OS(secure OS) 상에서 동작하여 여러 가지 제약 사항을 가질 수 있고 단순한 UI만 표현할 수 있기 때문에, 여러 종류의 보안 프로세스와 통신해야 하므로 순간적인 연산량이 많을 수 있다. 이와 같은 경우에 있어서, 제2 제어 모듈 220(예: GPU 등)을 활용하여 연산 량을 나누고 다양한 효과를 추가하여 일반적인 UI(예를 들어, 보안과 관련된 제약 사항 없이 구현되는 UI)의 구현이 가능해질 수 있다. 이상의 실시 예는 예시적인 것이며, 당업자 수준에서 다양하게 활용 및 변형 가능하다.
다양한 실시 예에서, 보안 모듈 213은 일반 모듈 211로 작업 요청과 함께 보안 데이터가 저장된 보안 영역 233의 메모리 주소(예: 입력 버퍼 235의 메모리 주소) 및 작업 결과가 저장될 보안 영역 233의 메모리 주소(예: 출력 버퍼 237의 메모리 주소)를 전달할 수 있다. 일반 모듈 211은 제2 제어 모듈로 상기 작업 요청 및 메모리 주소를 제공할 수 있다. 한편 제2 제어 모듈은 보안 모듈 213으로부터 위임 받은 작업을 완료하면, 작업을 완료하였다는 응답 및 작업 결과가 저장된 메모리 주소(예: 출력 버퍼 237의 메모리 주소)를 일반 모듈 211로 제공할 수 있다. 다만 이미 보안 모듈 213은 작업 결과가 저장될 메모리 주소를 알고 있으므로, 제2 제어 모듈은 메모리 주소를 선택적으로 전달할 수 있다. 예를 들어, 출력 버퍼 237의 메모리 주소 중 실제 작업 결과가 저장된 영역에 대한 메모리 주소만 전달하거나, 아예 전달하지 않을 수 있다. 일반 모듈 211은 제2 제어 모듈 220으로부터 상기 요청에 대한 응답 및/또는 메모리 주소를 전달 받으면, 이를 다시 보안 모듈 213으로 제공할 수 있다. 그러나 일부 실시 예에서, 보안 모듈 213과 제2 제어 모듈 220은 상호간에 직접 작업 요청 및 메모리 주소를 주고 받을 수도 있다.
제2 제어 모듈 220은 일반 모듈 211에 의해 보안 영역 233으로의 접근이 허가된 모듈일 수 있다. 제2 제어 모듈 220은 보안 데이터에 대한 연산을 수행하기 위해 입력 버퍼 235에 접근하여 보안 데이터를 획득할 수 있다. 또한 제2 제어 모듈 220은 출력 버퍼 237에 접근하여 연산 결과를 저장할 수 있다.
보안 모듈 213은 보안 모듈 213에서 직접 수행된 연산 결과 및/또는 제2 제어 모듈 221에서 수행된 연산 결과에 기초하여 보안 데이터에 대한 판단을 수행하고, 그 결과를 일반 모듈 211로 제공할 수 있다. 예를 들어, 제2 제어 모듈 220은 지문 영상에 대한 분석 결과를 출력 버퍼 237에 저장하고 보안 모듈 213으로 분석 완료 메시지 및 출력 버퍼 237의 메모리 주소를 전달하고, 보안 모듈 213은 출력 버퍼 237에 저장된 분석 결과와 사용자의 등록된 지문 데이터를 비교하여 일치 여부를 판단하고, 그 판단 결과(예: 일치 또는 불일치)를 일반 모듈 211로 제공할 수 있다. 일반 모듈 211은 보안 모듈 213으로부터 전달받은 결과에 기초하여 추가 동작, 예를 들어 잠금 해제/잠금 유지 또는 결제 승인/결제 거부 등을 수행할 수 있다. 이와 관련된 예시는 도 4를 참조하여 후술된다.
제1 제어 모듈 210과 제2 제어 모듈 220은 서로 다른 기종의 프로세스일 수 있고, 각각의 제어 모듈은 고유의 연산을 수행하고 있을 수 있다. 예를 들어, 제2 제어 모듈 220은 보안 모듈 213에 의해서 위임 받은 연산 작업 외에 제2 제어 모듈 220의 일반적인 연산(예: 그래픽 처리, 이미지 신호 처리, 디지털 신호 처리, 센싱 데이터 처리 등)을 수행하고 있을 수 있다. 이와 같은 연산 작업은 보안이 요구되지 않는 일반적인 작업일 수 있다. 다양한 실시 예에서, 제2 제어 모듈 220은 고유의 연산과 위임된 연산 사이의 충돌이나 혼합을 방지하기 위하여 캐시 메모리 221을 이용할 수 있다. 예를 들어, 제2 제어 모듈 220은 보안 모듈 213로부터 보안 연산 작업이 위임되면, 캐시 메모리를 클리어(clear)하고 상기 보안 연산 작업을 처리할 수 있다. 또한, 제2 제어 모듈 220은 보안 모듈 213으로부터 보안 연산 작업이 위임되면, 보안 작업 상태(예: 보안 모드)에서 연산 작업을 완료하고, 작업이 완료되면 캐시 메모리를 클리어 하여 일반 작업 상태(예: 일반 모드)로 스위칭될 수 있다. 또 다른 예로서, 제2 제어 모듈 220은 보안 연산 작업이 위임되면, 캐시 메모리 221을 제1 영역과 제2 영역으로 분할하고, 제1 영역에서는 제2 제어 모듈 220 고유의 연산 작업을 수행하고, 제2 영역을 보안 연산 작업을 위해 할당할 수 있다.
다양한 실시 예에서, 제2 제어 모듈 220은 보안 모듈 213으로부터 위임 받은 연산을 처리하기 위해 싱크(sync)를 맞추는 동작을 수행할 수 있다. 예를 들어, 제2 제어 모듈 220은 처리 대기 중인 작업(예: queue)에 상기 위임된 연산의 우선순위를 최우선 순위로 둘 수 있다. 또 다른 실시 예에서, 제2 제어 모듈 220은 작업이 요청된 순서대로 다른 연산을 우선 수행하고 상기 위임된 연산을 수행할 수 있다. 연산의 우선순위 조정은 제2 제어 모듈 220에 의해서 수행될 수도 있으나, 제1 제어 모듈 210(예: 보안 모듈 213 또는 일반 모듈 211)의 요청에 의해서도 수행될 수 있다.
도 3은 다양한 실시 예에 따른 보안 데이터 처리 방법을 나타낸다.
도 3을 참조하면, 동작 301에서 일반 모듈 211은 보안 메모리 영역을 할당할 수 있다. 예를 들어, 일반 모듈 211은 메모리 130 또는 메모리 230의 일부 영역, 혹은 복수의 메모리 중 적어도 하나의 메모리 또는 적어도 하나의 메모리 중 일부 영역을 보안 메모리 영역으로 할당할 수 있다.
동작 301은 다양한 경우에 트리거될 수 있다. 예를 들어, 전자 장치의 잠금 해제, 사용자 인증 정보(예: 인증서, 생체 정보 등)를 이용한 전자 결제와 관련된 프로세스를 포함하는 어플리케이션(예: 일반 어플리케이션)이나 기능이 실행될 때 동작 301이 시작될 수 있다. 다양한 실시 예에서, 전자 장치(예: 전자 장치 101)는 칩 또는 제품 제조 단계에서 미리 보안 메모리 영역을 할당해 놓을 수 있다.
동작 303에서, 일반 모듈 211은 보안 모듈 213으로 보안 어플리케이션의 실행을 요청하는 한편 동작 301에서 할당된 보안 메모리 영역의 주소를 전달할 수 있다. 다양한 실시 예에서, 보안 어플리케이션은 보안과 관련된 데이터를 처리하거나 기능을 실행하기 위한 어플리케이션으로 사용자에게 보여지지 않고 실행되는 어플리케이션일 수 있다. 예를 들어, 지문 인식을 통한 사용자 인증에 있어서, 사용자에게 지문 인식을 위한 동작(예: 손가락을 센서에 갖다 대시오)의 요청은 일반 어플리케이션에서 수행되고, 획득된 지문을 분석하여 사용자 인증 성공 여부를 결정하는 동작은 보안 어플리케이션에서 수행될 수 있다. 이 경우 보안 어플리케이션의 동작이나 인터페이스는 사용자에게(전자 장치의 디스플레이에) 제공되지 않을 수 있다. 보안 어플리케이션은 인텐트(intent) 등을 이용하여 일반 어플리케이션으로 인증 성공 여부를 전달하고, 일반 어플리케이션은 인증 성공 또는 실패에 따른 UI(user interface)를 제공할 수 있다.
동작 305에서 보안 모듈 213은 동작 303의 요청에 기반하여 보안 어플리케이션을 실행할 수 있다. 동작 307에서 보안 모듈 213은 동작 301에서 할당된 보안 메모리 영역이 유효한지 여부를 확인할 수 있다. 동작 305와 동작 307은 순차적으로 수행될 수도 있고, 병렬적으로 수행될 수도 있으며, 동작 307이 먼저 수행되고 나서 동작 305가 수행될 수도 있다.
동작 307에서 보안 모듈 213이 보안 메모리의 유효성을 확인(validate)하는 것은 다음과 같은 특징을 가질 수 있다. 예를 들어, 보안 모듈 213과 일반 모듈 211은 서로 고립(isolation)되어 있으므로, 외부 사용자가 루트 킷(root kit)과 같은 루트 계정(root account)의 권한을 획득하거나 획득한 권한을 이용하여 운영체제를 변조하더라도, 운영체제나 일반 어플리케이션은 모두 일반 모듈 211 상에서 동작하고 보안 모듈 213에는 접근할 수 없다. 그러나 이 경우에도 일반 모듈 211을 해킹하여 일반 메모리 영역을 마치 보안 메모리 영역인 것처럼 보안 모듈 213으로 전달하고, 보안 모듈 213의 처리 결과를 일반 메모리 영역(즉, 보안 메모리 영역인 것처럼 보안 모듈 213으로 전달된 메모리 영역)에 저장하도록 하여 해킹을 시도할 수 있다. 그러나 동작 307에서 보안 모듈 213이 메모리의 유효성을 확인하는 경우, 설정된 메모리 영역이 보안 메모리 영역인지 일반 메모리 영역인지 확인할 수 있고, 보안 메모리 영역으로 전달받은 영역이 실제로는 일반 메모리 영역으로 확인되는 경우, 추가적인 동작을 중단하거나 에러/경고 메시지를 발생시켜 해킹 위협으로부터 벗어날 수 있다.
다양한 실시 예에서, 보안 메모리의 유효성을 확인하는 동작은 임의의 동작과 함께 또는 동작 전/후로 수행될 수 있다. 예를 들어, 보안 메모리 유효성을 확인하도록 하는 API를 추가하는 작업 등을 통해, 제2 제어 모듈 220이 동작 317(입력 버퍼로부터 데이터를 읽어 들이는 동작)을 수행하기 전해 보안 메모리의 유효성을 확인하도록 할 수 있다. 또한, 보안 모듈 213이 동작 329(출력 버퍼로부터 데이터를 읽어 들이는 동작)를 수행하기 전에 보안 메모리의 유효성을 확인할 수도 있다. 다양한 실시 예에서, 제어 모듈(예: 일반 모듈 211, 보안 모듈 213, 제2 제어 모듈 220 등)이 보안 메모리에 데이터를 기록하거나 데이터를 읽을 때마다 보안 메모리의 유효성이 확인되는 동작이 함께 수행될 수 있다.
또한 보안 메모리 영역은 입력 버퍼(예: 입력 버퍼 영역 235) 및 출력 버퍼(예: 출력 버퍼 영역 237)을 포함할 수 있다. 입력 버퍼는 보안 모듈 213이 (센서 등을 통해) 획득한 보안 데이터를 저장하는 메모리 주소에 대응되고 출력 버퍼는 제2 제어 모듈 220이 보안 데이터의 연산 결과를 저장하는 메모리 주소에 대응될 수 있다. 보안 모듈 213은 각각의 버퍼에 해당하는 메모리 주소가 보안 메모리 영역 내에 위치하는지 확인하여, 보안 데이터가 일반 메모리 영역에 저장되는 것을 방지할 수 있다.
동작 309에서 보안 모듈 213은 획득한 보안 데이터(예: 사용자 지문 인식 데이터, 홍채 데이터 등)를 보안 메모리 내의 입력 버퍼에 저장(write)할 수 있다.
동작 311에서 보안 모듈 213은 일반 모듈 211로 입력 버퍼에 저장된 보안 데이터의 전부 또는 일부에 대한 작업을 요청할 수 있다. 이 때 보안 모듈 213은 입력 버퍼 및 출력 버퍼의 메모리 주소를 함께 전달할 수 있다. 한 실시 예에 따르면, 보안 모듈 213이 보안 데이터의 일부에 대해 연산을 요청하는 경우, 보안 데이터의 상기 일부가 저장된 입력 버퍼의 메모리 주소를 전달할 수 있다. 일반 모듈 211은 동작 311에서 전달받은 작업 요청 및 메모리 주소를 제2 제어 모듈 220으로 전달할 수 있다. 일부 실시 예에서, 보안 모듈 213은 제2 제어 모듈 220으로 상기 요청 및 메모리 주소를 직접 전달할 수도 있다.
동작 317에서, 제2 제어 모듈 220은 동작 313 또는 동작 315에서 전달 받은 메모리 주소를 참조하여 입력 버퍼로부터 보안 데이터의 전부 또는 일부를 획득(read)할 수 있다. 동작 319에서 제2 제어 모듈 220은 획득된 보안 데이터의 전부 또는 일부에 대하여 요청된 연산을 수행할 수 있다. 동작 321에서 제2 제어 모듈 220은 연산 결과를 동작 313 또는 동작 315에서 전달받은 메모리 주소를 참조하여 출력 버퍼에 저장할 수 있다.
상기 보안 데이터에 대한 연산이 종료되면, 동작 323에서 제2 제어 모듈 220은 연산이 종료되었다는 알림을 일반 모듈 211로 제공할 수 있다. 이 경우, 보안 모듈 213은 출력 버퍼의 메모리 주소를 이미 알고 있기 때문에, 제2 제어 모듈 220은 출력 버퍼의 메모리 주소를 선택적으로 함께 제공하거나 혹은 제공하지 않을 수 있다. 일부 실시 예에서, 제2 제어 모듈 220은 전달 받은 출력 메모리 주소 중 실제로 연산 결과가 저장된 메모리의 주소를 상기 연산 요청에 대한 응답과 함께 일반 모듈 211로 제공할 수 있다.
다양한 실시 예에서, 제2 제어 모듈 220은 보안 작업(예: 동작 317, 319, 321 등)을 수행하기 전/후에 각각 보안 상태의 설정/해제를 수행할 수 있다. 상기 보안 상태의 설정/해제는 제1 제어 모듈에 의해 설정(예: 동작 315 또는 동작 311~313에 의해 설정)되거나 해제(예: 동작 327 또는 동작 323~325에 대한 응답에 의해 해제) 될 수 있다. 또한 다양한 실시 예에서, 제2 제어 모듈 220은 보안 작업을 위임 받거나 보안 작업이 완료되었다고 판단되면, 능동적으로 보안 상태를 설정하거나 해제할 수 있다.
일반 모듈 211은 동작 323에서 전달받은 응답을 보안 모듈 213으로 제공할 수 있다. 이 경우, 동작 323에서 상기 응답과 함께 출력 버퍼의 메모리 주소가 전달된 경우, 일반 모듈 211은 상기 메모리 주소를 상기 응답과 함께 보안 모듈 213으로 전달할 수 있다. 만약 동작 323에서 메모리 주소 없이 연산이 종료되었다는 알림만이 제공된 경우, 동작 325에서 일반 모듈 211은 상기 작업 요청에 대한 응답으로 메모리 주소 없이 상기 알림을 제공할 수 있다.
동작 329에서 보안 모듈 213은 출력 버퍼에 저장된 데이터를 획득할 수 있다. 동작 323 내지 동작 327에서, 연산 결과가 저장된 메모리 주소가 보안 모듈 213으로 제공된 경우, 보안 모듈 213은 실제로 연산 결과가 저장된 메모리 영역만 탐색하여 작업 시간을 단축할 수 있다.
동작 331에서, 보안 모듈 213은 출력 버퍼에 저장된 데이터에 기초하여 보안 데이터의 처리 결과를 일반 모듈 211로 제공할 수 있다. 상술한 바와 같은 일련의 동작을 통해서, 일반 모듈 211이 보안 메모리 영역에 접근하는 것을 허용하지 않으면서도 보안 모듈 213과 제2 제어 모듈 220을 이용하여 신속한 연산 결과를 얻는 것이 가능하다.
동작 333에서 일반 모듈은 동작 331에서 전달된 결과에 기초하여 추가적인 동작을 수행할 수 있다. 예를 들어, 동작 331에서 보안 데이터 분석 결과 사용자 일치, 지문이나 홍채 등의 생체 데이터 일치 등에 대한 결과가 제공되면, 일반 모듈 333은 그에 따라 전자 장치의 잠금 해제나 결제, 사용자 인증 등의 동작을 수행할 수 있다.
도 4는 다양한 실시 예에 따른 생체 인식을 통한 사용자 인증 프로세스의 예시를 나타낸다. 도 4는 도 1 내지 도 3을 참조하여 전술한 전자 장치를 이용하여 구현되는 방법의 일 실시 예로 이해될 수 있다. 이에 따라서는 전술한 내용의 일부가 도 4의 설명에서 생략되거나 변형된 형태로 서술되더라도, 도 4의 실시 예에 해당 내용이 적용되거나 다른 형태로 구현되는 것이 가능하다.
도 4를 참조하면, 동작 410에서 전자 장치는 사용자의 생체 인식 프로세스를 시작할 수 있다. 예를 들어, 일반 모듈 211은 사용자의 생체 데이터 인식을 위한 UI를 제공하고, 동작 420에서 일반 모듈 211은 보안 어플리케이션에 의해 획득되는 데이터가 저장될 보안 메모리 영역을 설정할 수 있다. 동작 430에서 보안 모듈 213은 생체 데이터 획득을 위한 보안 어플리케이션을 실행할 수 있다.
동작 440에서 보안 모듈 213은 일반 모듈 211에 의해 설정된 보안 메모리 영역의 유효성을 검증할 수 있다. 동작 440에서 보안 메모리 영역이 유효한 보안 메모리 영역이 아니라고 판단되면, 도 4의 프로세스가 종료될 수 있다.
동작 450에서, 보안 모듈 213은 사용자로부터 입력되는 생체 데이터(예: 지문, 홍채 등)를 인식하여 동작 420에서 할당된 보안 메모리 영역에 저장할 수 있다. 또한 동작 460에서, 전자 장치는 생체 데이터를 분석하여 분석 결과를 보안 메모리에 저장할 수 있다.
구체적으로, 보안 모듈 213은 GPU 등과 같은 제2 프로세서 220으로 생체 데이터의 분석 연산의 전부 또는 일부를 위임할 수 있다. 예를 들어, 보안 모듈 213은 획득된 생체 데이터 중 제1 메모리 주소에 저장된 데이터는 직접 분석하고 제2 메모리 주소에 저장된 데이터는 제2 제어 모듈 220으로 분석을 요청할 수 있다. 한 실시 예에 따르면, 제1 메모리 주소와 제2 메모리 주소는 모두 보안 메모리 영역 내에 포함될 수 있다. 다른 실시 예에서, 보안 모듈 213은 획득된 생체 데이터 전부에 대한 분석을 제2 제어 모듈 220으로 요청할 수 있다. 보안 모듈 213과 제2 제어 모듈 220이 생체 데이터를 나누어서 분석한 경우, 보안 모듈 213은 저장된 분석 결과를 취합하는 동작을 추가로 수행할 수 있다.
동작 470에서 보안 모듈 213은 생체 인식에 성공하였는지 여부를 판단할 수 있다. 예를 들어, 생체 데이터가 지문인 경우, 동작 470에서 보안 모듈 213은 분석 결과가 등록된 사용자의 지문과 일치하는지 여부를 판단할 수 있다. 동작 470에서 인식 성공 여부를 판단하고, 보안 모듈 213은 그 결과를 일반 모듈 211로 제공할 수 있다.
인식에 성공한 경우, 동작 480에서 일반 모듈 211은 보안 모듈 213으로부터 제공된 결과에 기초하여 사용자를 정당한 사용자로 판단하여 사용자를 승인할 수 있다. 그러나 인식에 실패한 경우, 일반 모듈 211은 사용자를 거부(예: 잠금 상태 유지, 결제 거부 등)하거나, 동작 450 이전으로 진행하여, 사용자로부터 다시 생체 데이터를 입력하도록 할 수 있다. 일반 모듈 211은 만약 지정된 횟수(예: 5회) 이상 연속해서 생체 데이터 인식에 실패한 경우, 전자 장치를 지정된 시간(예: 1시간) 동안 잠금 상태로 변경하거나 생체 인식을 금지시킬 수 있다.
다양한 실시 예에 따르면, 서로 구분되는 일반 모듈과 보안 모듈을 포함하는 제1 제어 모듈과 제2 제어 모듈을 포함하는 전자 장치의 보안 데이터 처리 방법은, 상기 일반 모듈에서 보안 메모리를 설정하는 동작, 상기 보안 모듈에서 상기 보안 메모리의 유효성을 판단하는 동작, 상기 보안 메모리에 보안 데이터를 기록(write)하는 동작, 상기 기록된 보안 데이터의 적어도 일부에 대한 연산을 제2 제어 모듈로 요청하는 동작, 상기 보안 데이터의 적어도 일부에 대한 연산 결과를 상기 보안 메모리에 기록하는 동작, 및 상기 보안 모듈에서, 상기 연산 결과에 기초한 제어 신호를 상기 일반 모듈로 제공하는 동작을 포함할 수 있다.
다양한 실시 예에서, 상기 보안 메모리는 상기 보안 데이터가 저장되는 입력 버퍼 영역 및 상기 입력 버퍼 영역과 다른 주소를 갖는 출력 버퍼 영역을 포함하고, 상기 연산을 제2 제어 모듈로 요청하는 동작은, 상기 입력 버퍼 영역 및 상기 출력 버퍼 영역의 메모리 주소를 상기 요청과 함께 상기 제2 제어 모듈로 제공하는 동작을 포함할 수 있다.
다양한 실시 예에서, 상기 제어 신호를 상기 일반 모듈로 제공하는 동작은, 상기 메모리에 기록된 연산 결과와 등록된 사용자 정보를 비교하는 동작, 및 상기 비교 결과 상기 연산 결과가 상기 사용자 정보에 대응되면 사용자 인증을 허가하는 제어 신호를 상기 일반 모듈로 제공하고, 대응되지 않으면 상기 사용자 인증을 허가하지 않는 제어 신호를 상기 일반모듈로 제공하는 동작을 포함할 수 있다.
다양한 실시 예에서, 상기 보안 데이터는 사용자의 지문 또는 홍채 영상을 포함하고, 상기 제어 신호는 상기 전자 장치의 잠금 상태를 해제하거나, 상기 지문 또는 홍채 영상을 이용한 결제를 허가하도록 하는 신호일 수 있다. 이 외에도 본 문서에서 언급된 다양한 방법 및 그 확장이나 변형이 가능하다.
도 5는 다양한 실시 예에 따른 전자 장치 501의 블록도 500을 나타낸다.
도 5를 참조하면, 상기 전자 장치 501은, 예를 들면, 도 1에 도시된 전자 장치 101의 전체 또는 일부를 포함할 수 있다. 상기 전자 장치 501은 하나 이상의 어플리케이션 프로세서(AP) 510, 통신 모듈 520, SIM(subscriber identification module) 카드 524, 메모리 530, 센서 모듈 540, 입력 장치 550, 디스플레이 560, 인터페이스 570, 오디오 모듈 580, 카메라 모듈 591, 전력 관리 모듈 595, 배터리 596, 인디케이터 597, 및 모터 598을 포함할 수 있다.
상기 AP 510은, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 상기 AP 510에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 상기 AP 510은, 예를 들면, SoC(system on chip)로 구현될 수 있다. 한 실시 예에 따르면, 상기 AP 510은 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서(image signal processor)를 더 포함할 수 있다. 상기 AP 510은 도 5에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈 521)를 포함할 수도 있다. 상기 AP 510은 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장(store)할 수 있다.
다양한 실시 예에서, 상기 AP 510은 도 1의 제1 프로세서 120(예: CPU) 및 제2 프로세서 180(예: GPU)을 포함하는 것으로 이해될 수 있다. 또한 다양한 실시 예에서, 상기 AP 510은 복수의 제어 모듈(또는 복수의 서로 다른 AP)을 포함하고, 그 중 하나의 제어 모듈은 일반 모듈과 보안 모듈을 포함을 포함하는 제1 제어 모듈 210에, 다른 적어도 하나의 제어 모듈은 제2 제어 모듈 220에 대응될 수 있다.
상기 통신 모듈 520은, 도 1의 상기 통신 인터페이스 170과 동일 또는 유사한 구성을 가질 수 있다. 상기 통신 모듈 520은, 예를 들면, 셀룰러 모듈 521, Wi-Fi 모듈 523, BT 모듈 525, GPS 모듈 527, NFC 모듈 528 및 RF(radio frequency) 모듈 529를 포함할 수 있다.
상기 셀룰러 모듈 521은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시 예에 따르면, 상기 셀룰러 모듈 521은 가입자 식별 모듈(예: SIM 카드 524)을 이용하여 통신 네트워크 내에서 전자 장치 501의 구별 및 인증을 수행할 수 있다. 한 실시 예에 따르면, 상기 셀룰러 모듈 521은 상기 AP 510이 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시 예에 따르면, 상기 셀룰러 모듈 521은 커뮤니케이션 프로세서(CP)를 포함할 수 있다.
상기 Wi-Fi 모듈 523, 상기 BT 모듈 525, 상기 GPS 모듈 527 또는 상기 NFC 모듈 528 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 어떤 실시 예에 따르면, 셀룰러 모듈 521, Wi-Fi 모듈 523, BT 모듈 525, GPS 모듈 527 또는 NFC 모듈 528 중 적어도 일부(예: 두 개 이상)는 하나의 IC(integrated chip) 또는 IC 패키지 내에 포함될 수 있다.
상기 RF 모듈 529는, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. 상기 RF 모듈 529는, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter), LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시 예에 따르면, 셀룰러 모듈 521, Wi-Fi 모듈 523, BT 모듈 525, GPS 모듈 527 또는 NFC 모듈 528 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다.
상기 SIM 카드 524는, 예를 들면, 가입자 식별 모듈을 포함하는 카드 및/또는 내장 SIM(embedded SIM)을 포함할 수 있으며, 고유한 식별 정보(예: ICCID (integrated circuit card identifier)) 또는 가입자 정보(예: IMSI (international mobile subscriber identity))를 포함할 수 있다.
상기 메모리 530(예: 메모리 130)는, 예를 들면, 내장 메모리 532 또는 외장 메모리 534를 포함할 수 있다. 상기 내장 메모리 532는, 예를 들면, 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비-휘발성(non-volatile) 메모리 (예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 SSD(solid state drive) 중 적어도 하나를 포함할 수 있다.
상기 외장 메모리 534는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), 또는 메모리 스틱(memory stick) 등을 더 포함할 수 있다. 상기 외장 메모리 534는 다양한 인터페이스를 통하여 상기 전자 장치 501과 기능적으로 및/또는 물리적으로 연결될 수 있다.
상기 센서 모듈 540은, 예를 들면, 물리량을 계측하거나 전자 장치 501의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 상기 센서 모듈 540은, 예를 들면, 제스처 센서 540A, 자이로 센서 540B, 기압 센서 540C, 마그네틱 센서 540D, 가속도 센서 540E, 그립 센서 540F, 근접 센서 540G, 컬러 센서 540H(예: RGB 센서), 생체 센서 540I, 온/습도 센서 540J, 조도 센서 540K, 또는 UV(ultra violet) 센서 540M 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 센서 모듈 540은, 예를 들면, 후각 센서(E-nose sensor), EMG(electromyography) 센서, EEG(electroencephalogram) 센서, ECG(electrocardiogram) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 상기 센서 모듈 540은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시 예에서는, 전자 장치 501은 AP 510의 일부로서 또는 별도로, 센서 모듈 540을 제어하도록 구성된 프로세서를 더 포함하여, 상기 AP 510이 슬립(sleep) 상태에 있는 동안, 센서 모듈 540을 제어할 수 있다.
상기 입력 장치 550은, 예를 들면, 터치 패널(touch panel) 552, (디지털) 펜 센서(pen sensor) 554, 키(key) 556, 또는 초음파(ultrasonic) 입력 장치 558을 포함할 수 있다. 상기 터치 패널 552는, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 상기 터치 패널 552는 제어 회로를 더 포함할 수도 있다. 상기 터치 패널 552는 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다.
상기 (디지털) 펜 센서 554는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 시트(sheet)를 포함할 수 있다. 상기 키 556은, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 상기 초음파 입력 장치 558은 초음파 신호를 발생하는 입력 도구를 통해, 전자 장치 501에서 마이크 (예: 마이크 588)로 음파를 감지하여 데이터를 확인할 수 있다.
상기 디스플레이 560(예: 디스플레이 160)은 패널 562, 홀로그램 장치 564, 또는 프로젝터 566을 포함할 수 있다. 상기 패널 562는, 도 1의 디스플레이 160과 동일 또는 유사한 구성을 포함할 수 있다. 상기 패널 562는, 예를 들면, 유연하게(flexible), 투명하게(transparent), 또는 착용할 수 있게(wearable) 구현될 수 있다. 상기 패널 562는 상기 터치 패널 552와 하나의 모듈로 구성될 수도 있다. 상기 홀로그램 장치 564는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 상기 프로젝터 566은 스크린에 빛을 투사하여 영상을 표시할 수 있다. 상기 스크린은, 예를 들면, 상기 전자 장치 501의 내부 또는 외부에 위치할 수 있다. 한 실시 예에 따르면, 상기 디스플레이 560은 상기 패널 562, 상기 홀로그램 장치 564, 또는 프로젝터 566를 제어하기 위한 제어 회로를 더 포함할 수 있다.
상기 인터페이스 570은, 예를 들면, HDMI(high-definition multimedia interface) 572, USB 574, 광 인터페이스(optical interface) 576, 또는 D-sub(D-subminiature) 578을 포함할 수 있다. 상기 인터페이스 570은, 예를 들면, 도 1에 도시된 통신 인터페이스 170에 포함될 수 있다. 추가적으로 또는 대체적으로, 상기 인터페이스 570은, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD 카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
상기 오디오 모듈 580은, 예를 들면, 소리(sound)와 전기 신호를 쌍방향으로 변환시킬 수 있다. 상기 오디오 모듈 580의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스 150에 포함될 수 있다. 상기 오디오 모듈 580은, 예를 들면, 스피커 582, 리시버 584, 이어폰 586, 또는 마이크 588 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
상기 카메라 모듈 591은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시 예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, ISP(image signal processor), 또는 플래시(예: LED 또는 제논 램프(xenon lamp))를 포함할 수 있다.
상기 전력 관리 모듈 595는, 예를 들면, 상기 전자 장치 501의 전력을 관리할 수 있다. 한 실시 예에 따르면, 상기 전력 관리 모듈 595는 PMIC(power management integrated circuit), 충전 IC(charger integrated circuit), 또는 배터리 또는 연료 게이지(battery or fuel gauge)를 포함할 수 있다. 상기 PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 상기 배터리 게이지는, 예를 들면, 상기 배터리 596의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 상기 배터리 596은, 예를 들면, 충전식 전지(rechargeable battery) 및/또는 태양 전지(solar battery)를 포함할 수 있다.
상기 인디케이터 597은 상기 전자 장치 501 혹은 그 일부(예: AP 510)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 상기 모터 598은 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동(vibration), 또는 햅틱(haptic) 효과 등을 발생시킬 수 있다. 도시되지는 않았으나, 상기 전자 장치 501은 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 상기 모바일 TV 지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어 플로우(media flow) 등의 규격에 따른 미디어 데이터를 처리할 수 있다.
상기 전자 장치의 전술한 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성 요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시 예에서, 전자 장치는 전술한 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시 예에 따른 전자 장치의 구성 요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성 요소들의 기능을 동일하게 수행할 수 있다.
도 6은 다양한 실시 예에 따른 프로그램 모듈 610의 블록도 600을 나타낸다.
도 6을 참조하면, 한 실시 예에 따르면, 상기 프로그램 모듈 610(예: 프로그램 140)은 전자 장치(예: 전자 장치 101)에 관련된 자원을 제어하는 운영 체제 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램 147)을 포함할 수 있다. 상기 운영 체제는, 예를 들면, 안드로이드(android), iOS, 윈도우즈(windows), 심비안(symbian), 타이젠(tizen), 또는 바다(bada) 등이 될 수 있다.
프로그램 모듈 610은 커널 620, 미들웨어 630, API 660, 및/또는 어플리케이션 670을 포함할 수 있다. 상기 프로그램 모듈 610의 적어도 일부는 전자 장치 상에 프리로드(preload) 되거나, 서버(예: 서버 106)로부터 다운로드 가능하다.
상기 커널 620(예: 도 1의 커널 141)은, 예를 들면, 시스템 리소스 매니저 621 또는 디바이스 드라이버 623를 포함할 수 있다. 상기 시스템 리소스 매니저 621은 시스템 리소스의 제어, 할당, 또는 회수 등을 수행할 수 있다. 한 실시 예에 따르면, 상기 시스템 리소스 매니저 621은 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부 등을 포함할 수 있다. 상기 디바이스 드라이버 623은, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, Wi-Fi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다.
상기 미들웨어 630은, 예를 들면, 상기 어플리케이션 670이 공통적으로 필요로 하는 기능을 제공하거나, 상기 어플리케이션 670이 전자 장치 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 상기 API 660을 통해 다양한 기능들을 상기 어플리케이션 670으로 제공할 수 있다. 한 실시 예에 따르면, 상기 미들웨어 630(예: 미들웨어 143)은 런타임 라이브러리 635, 어플리케이션 매니저(application manager) 641, 윈도우 매니저(window manager) 642, 멀티미디어 매니저(multimedia manager) 643, 리소스 매니저(resource manager) 644, 파워 매니저(power manager) 645, 데이터베이스 매니저(database manager) 646, 패키지 매니저(package manager) 647, 연결 매니저(connectivity manager) 648, 통지 매니저(notification manager) 649, 위치 매니저(location manager) 650, 그래픽 매니저(graphic manager) 651, 또는 보안 매니저(security manager) 652 중 적어도 하나를 포함할 수 있다.
상기 런타임 라이브러리 635는, 예를 들면, 상기 어플리케이션 670이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 상기 런타임 라이브러리 635는 입출력 관리, 메모리 관리, 또는 산술 함수에 대한 기능 등을 수행할 수 있다.
상기 어플리케이션 매니저 641은, 예를 들면, 상기 어플리케이션 670 중 적어도 하나의 어플리케이션의 생명 주기(life cycle)를 관리할 수 있다. 상기 윈도우 매니저 642는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 상기 멀티미디어 매니저 643은 다양한 미디어 파일들의 재생과 관련된 포맷을 파악하고, 해당 포맷에 맞는 코덱(codec)을 이용하여 미디어 파일의 인코딩(encoding) 또는 디코딩(decoding)을 수행할 수 있다. 상기 리소스 매니저 644는 상기 어플리케이션 670 중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다.
상기 파워 매니저 645는, 예를 들면, 바이오스(BIOS: basic input/output system) 등과 함께 동작하여 배터리 또는 전원을 관리하고, 전자 장치의 동작에 이용되는 전력 정보 등을 제공할 수 있다. 상기 데이터베이스 매니저 646은 상기 어플리케이션 670 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 상기 패키지 매니저 647은 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다.
상기 연결 매니저 648은, 예를 들면, Wi-Fi 또는 블루투스 등의 무선 연결을 관리할 수 있다. 상기 통지 매니저 649는 도착 메시지, 약속, 근접성 알림 등의 사건(event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 상기 위치 매니저 650은 전자 장치의 위치 정보를 관리할 수 있다. 상기 그래픽 매니저 651은 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 상기 보안 매니저 652는 시스템 보안 또는 사용자 인증 등에 이용되는 제반 보안 기능을 제공할 수 있다. 한 실시 예에 따르면, 전자 장치(예: 전자 장치 101)가 전화 기능을 포함한 경우, 상기 미들웨어 630은 상기 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화 매니저(telephony manager)를 더 포함할 수 있다.
상기 미들웨어 630은 전술한 구성요소들의 다양한 기능의 조합을 형성하는 미들웨어 모듈을 포함할 수 있다. 상기 미들웨어 630은 차별화된 기능을 제공하기 위해 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 또한, 상기 미들웨어 630은 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다.
상기 API 660(예: API 145)는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠(tizen)의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
상기 어플리케이션 670(예: 어플리케이션 프로그램 147)은, 예를 들면, 홈 671, 다이얼러 672, SMS/MMS 673, IM(instant message) 674, 브라우저 675, 카메라 676, 알람 677, 컨택트 678, 음성 다이얼 679, 이메일 680, 달력 681, 미디어 플레이어 682, 앨범 683, 또는 시계 684, 건강 관리(health care)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보 제공(예: 기압, 습도, 또는 온도 정보 등을 제공) 등의 기능을 제공할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다.
한 실시 예에 따르면, 상기 어플리케이션 670은 상기 전자 장치(예: 전자 장치 101)와 외부 전자 장치(예: 전자 장치 102, 104) 사이의 정보 교환을 지원하는 어플리케이션(이하, 설명의 편의 상, "정보 교환 어플리케이션")을 포함할 수 있다. 상기 정보 교환 어플리케이션은, 예를 들면, 상기 외부 전자 장치에 특정 정보를 전달하기 위한 알림 전달(notification relay) 어플리케이션, 또는 상기 외부 전자 장치를 관리하기 위한 장치 관리(device management) 어플리케이션을 포함할 수 있다.
예를 들면, 상기 알림 전달 어플리케이션은 상기 전자 장치의 다른 어플리케이션(예: SMS/MMS 어플리케이션, 이메일 어플리케이션, 건강 관리 어플리케이션, 또는 환경 정보 어플리케이션 등)에서 발생된 알림 정보를 외부 전자 장치(예: 전자 장치 102, 104)로 전달하는 기능을 포함할 수 있다. 또한, 상기 알림 전달 어플리케이션은, 예를 들면, 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 상기 장치 관리 어플리케이션은, 예를 들면, 상기 전자 장치와 통신하는 외부 전자 장치(예: 전자 장치 104)의 적어도 하나의 기능(예: 외부 전자 장치 자체(또는 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는 해상도) 조절), 상기 외부 전자 장치에서 동작하는 어플리케이션 또는 상기 외부 전자 장치에서 제공되는 서비스(예: 통화 서비스 또는 메시지 서비스)를 관리 (예: 설치, 삭제, 또는 업데이트)할 수 있다.
한 실시 예에 따르면, 상기 어플리케이션 670은 상기 외부 전자 장치(예: 전자 장치 102, 104)의 속성(예: 전자 장치의 속성으로서, 전자 장치의 종류가 모바일 의료 기기)에 따라 지정된 어플리케이션(예: 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시 예에 따르면, 상기 어플리케이션 670은 외부 전자 장치(예: 서버 106 또는 전자 장치 102, 104)로부터 수신된 어플리케이션을 포함할 수 있다. 한 실시 예에 따르면, 상기 어플리케이션 670은 프리로드 어플리케이션(preloaded application) 또는 서버로부터 다운로드 가능한 제3자 어플리케이션(third party application)을 포함할 수 있다. 도시된 실시 예에 따른 프로그램 모듈 610의 구성요소들의 명칭은 운영 체제의 종류에 따라서 달라질 수 있다.
다양한 실시 예에 따르면, 상기 프로그램 모듈 610의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어, 또는 이들 중 적어도 둘 이상의 조합으로 구현될 수 있다. 상기 프로그램 모듈 610의 적어도 일부는, 예를 들면, 프로세서(예: AP 510)에 의해 구현(implement)(예: 실행)될 수 있다. 상기 프로그램 모듈 610의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트(sets of instructions) 또는 프로세스 등을 포함할 수 있다.
다양한 실시 예에 따른 전자 장치는, 일반 모듈과 보안 모듈을 포함하는 제1 제어 모듈, 및 상기 제1 제어 모듈과 구분되는 제2 제어 모듈을 포함하고,상기 일반 모듈은 상기 보안 모듈과 상기 제2 제어 모듈이 액세스 할 수 있는 보안 메모리를 설정하고, 상기 보안 모듈은 상기 설정된 보안 메모리의 유효성을 판단할 수 있다.
다양한 실시 예에서, 상기 보안 메모리는 보안 데이터가 저장되는 입력 버퍼 영역을 포함할 수 있다. 또한 상기 보안 메모리는 보안 데이터의 연산 결과가 저장되는 출력 버퍼 영역을 포함할 수 있다.
다양한 실시 예에서, 상기 보안 메모리는 보안 데이터가 저장되는 입력 버퍼로 동작하고, 상기 보안 데이터가 독출(read)된 후에는 상기 보안 데이터에 대한 연산 결과가 저장되는 출력 버퍼로 동작할 수 있다.
다양한 실시 예에서, 상기 보안 모듈은 상기 입력 버퍼 영역에 상기 보안 데이터를 기록하고, 상기 제2 제어 모듈로 상기 보안 데이터의 적어도 일부에 대한 연산을 요청할 수 있다. 또한 상기 보안 모듈은 상기 제2 제어 모듈로 상기 요청과 함께 상기 입력 버퍼 영역 및 상기 보안 데이터의 적어도 일부에 대한 연산 결과가 저장될 출력 버퍼 영역의 메모리 주소를 제공할 수 있다. 또한 상기 보안 모듈은 상기 요청 및 상기 메모리 주소를 상기 일반 모듈을 통해 상기 제2 제어 모듈로 제공할 수 있다.
다양한 실시 예에서, 상기 제2 제어 모듈은, 상기 요청에 대한 응답을 상기 보안 모듈로 제공할 수 있다. 또한 상기 제2 제어 모듈은 상기 응답을 상기 일반 모듈을 통해 상기 보안 모듈로 제공할 수 있다. 또한 상기 제2 제어 모듈은 상기 응답과 함께 상기 출력 버퍼 영역의 메모리 주소를 제공할 수 있다. 또한 상기 제2 제어 모듈은 상기 응답과 함께 상기 출력 버퍼 영역 중 상기 연산 결과가 기록된 메모리 주소를 제공할 수 있다.
다양한 실시 예에서, 상기 제2 제어 모듈은 캐시 메모리를 더 포함하고, 상기 제2 제어 모듈은 상기 요청을 수신하면 상기 캐시 메모리를 논리적으로 2개 이상으로 구분한 후 적어도 하나의 메모리를 이용하여 상기 연산을 수행할 수 있다. 또한 다양한 실시 예에서, 상기 제2 제어 모듈은 캐시 메모리를 더 포함하고, 상기 제2 제어 모듈은 상기 연산을 수행한 후 상기 캐시 메모리를 클리어(clear) 할 수 있다.
다양한 실시 예에서, 상기 제1 제어 모듈은 중앙 처리 장치(CPU)를 포함하고, 상기 제2 제어 모듈은 GPU, DSP(digital signal processer), FPGA(field-programmable gate array), 센서 코어(sensor core), 또는 상기 중앙 처리 장치와 구별되는 CPU 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에서, 상기 제1 제어 모듈과 상기 제2 제어 모듈은 하나의 SoC(system on chip) 내에 구현될 수 있다. 이 외에도 본 문서에 개시된 다양한 구성요소 및 기능이 적용될 수 있다.
본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어는, 프로세서(예: 제1 프로세서 120)에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 상기 메모리 130이 될 수 있다.
예를 들어, 다양한 실시 예에서, 컴퓨터 판독 가능한 명령어를 포함하는 저장 매체는 전술한 다양한 방법을 실행하기 위한 명령어를 포함(저장)하고 있을 수 있다. 예를 들어 상기 명령어는, 상기 제1 제어 모듈에서, 보안 메모리를 설정하고, 상기 보안 메모리의 유효성을 판단하고, 상기 보안 메모리에 보안 데이터를 기록하고, 상기 기록된 보안 데이터의 적어도 일부에 대한 연산을 상기 제2 제어 모듈로 요청하는 동작을 수행하고, 상기 제2 제어 모듈에서, 상기 보안 데이터의 적어도 일부에 대한 연산 결과를 상기 보안 메모리에 기록하는 동작을 수행하고, 상기 보안 모듈에서, 상기 연산 결과에 기초한 제어 신호를 상기 일반 모듈로 제공하는 동작을 수행하도록 할 수 있다.
상기 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM, DVD, 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM, RAM, 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시 예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시 예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
그리고 본 문서에 개시된 실시 예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 발명의 범위를 한정하는 것은 아니다. 따라서, 본 발명의 범위는, 본 발명의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시 예를 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치에 있어서,
    일반 모듈과 보안 모듈을 포함하는 제1 제어 프로세서, 및
    상기 제1 제어 프로세서와 구분되는 제2 제어 프로세서를 포함하고,
    상기 일반 모듈은 상기 보안 모듈과 상기 제2 제어 프로세서가 액세스 할 수 있는 보안 메모리를 설정하고, 상기 보안 모듈은 상기 설정된 보안 메모리의 유효성을 판단하도록 설정되는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 보안 메모리는 보안 데이터가 저장되는 입력 버퍼 영역을 포함하도록 설정되는 전자 장치.
  3. 청구항 1에 있어서,
    상기 보안 메모리는 보안 데이터의 연산 결과가 저장되는 출력 버퍼 영역을 포함하도록 설정되는 전자 장치.
  4. 청구항 1에 있어서,
    상기 보안 메모리는 보안 데이터가 저장되는 입력 버퍼로 동작하고, 상기 보안 데이터가 독출(read)된 후에는 상기 보안 데이터에 대한 연산 결과가 저장되는 출력 버퍼로 동작하도록 설정되는, 전자 장치.
  5. 청구항 2에 있어서,
    상기 보안 모듈은 상기 입력 버퍼 영역에 상기 보안 데이터를 기록하고, 상기 제2 제어 프로세서로 상기 보안 데이터의 적어도 일부에 대한 연산을 요청하도록 설정되는, 전자 장치.
  6. 청구항 5에 있어서,
    상기 보안 모듈은 상기 제2 제어 프로세서로 상기 요청과 함께 상기 입력 버퍼 영역 및 상기 보안 데이터의 적어도 일부에 대한 연산 결과가 저장될 출력 버퍼 영역의 메모리 주소를 제공하도록 설정되는, 전자 장치.
  7. 청구항 6에 있어서,
    상기 보안 모듈은 상기 요청 및 상기 메모리 주소를 상기 일반 모듈을 통해 상기 제2 제어 프로세서로 제공하도록 설정되는, 전자 장치.
  8. 청구항 5에 있어서,
    상기 제2 제어 프로세서는, 상기 요청에 대한 응답을 상기 보안 모듈로 제공하도록 설정되는, 전자 장치.
  9. 청구항 8에 있어서,
    상기 제2 제어 프로세서는 상기 응답을 상기 일반 모듈을 통해 상기 보안 모듈로 제공하도록 설정되는, 전자 장치.
  10. 청구항 8에 있어서,
    상기 제2 제어 프로세서는 상기 응답과 함께 출력 버퍼 영역의 메모리 주소를 제공하도록 설정되는, 전자 장치.
  11. 청구항 8에 있어서,
    상기 제2 제어 프로세서는 상기 응답과 함께 출력 버퍼 영역 중 상기 연산 결과가 기록된 메모리 주소를 제공하도록 설정되는, 전자 장치.
  12. 청구항 5에 있어서,
    상기 제2 제어 프로세서는 캐시 메모리를 더 포함하고,
    상기 제2 제어 프로세서는 상기 요청을 수신하면 상기 캐시 메모리를 논리적으로 2개 이상으로 구분한 후 적어도 하나의 메모리를 이용하여 상기 연산을 수행하도록 설정되는, 전자 장치.
  13. 청구항 5에 있어서,
    상기 제2 제어 프로세서는 캐시 메모리를 더 포함하고,
    상기 제2 제어 프로세서는 상기 연산을 수행한 후 상기 캐시 메모리를 클리어(clear) 하도록 설정되는, 전자 장치.
  14. 청구항 1에 있어서,
    상기 제1 제어 프로세서는 중앙 처리 장치(CPU)를 포함하고, 상기 제2 제어 프로세서는 GPU, DSP(digital signal processer), FPGA(field-programmable gate array), 센서 코어(sensor core), 또는 상기 중앙 처리 장치와 구별되는 CPU 중 적어도 하나를 포함하는, 전자 장치.
  15. 청구항 1에 있어서,
    상기 제1 제어 프로세서와 상기 제2 제어 프로세서는 하나의 SoC(system on chip) 내에 구현되도록 설정되는, 전자 장치.
  16. 제1 제어 프로세서와 제2 제어 프로세서를 포함하는 전자 장치의 보안 데이터 처리 방법에 있어서, 상기 제1 제어 프로세서는 서로 구분되는 일반 모듈과 보안 모듈을 포함하고,
    상기 일반 모듈에서 보안 메모리를 설정하는 동작,
    상기 보안 모듈에서 상기 보안 메모리의 유효성을 판단하는 동작,
    상기 보안 메모리에 보안 데이터를 기록(write)하는 동작,
    상기 기록된 보안 데이터의 적어도 일부에 대한 연산을 제2 제어 프로세서로 요청하는 동작,
    상기 보안 데이터의 적어도 일부에 대한 연산 결과를 상기 보안 메모리에 기록하는 동작, 및
    상기 보안 모듈에서, 상기 연산 결과에 기초한 제어 신호를 상기 일반 모듈로 제공하는 동작을 포함하는 방법.
  17. 청구항 16에 있어서,
    상기 보안 메모리는 상기 보안 데이터가 저장되는 입력 버퍼 영역 및 상기 입력 버퍼 영역과 다른 주소를 갖는 출력 버퍼 영역을 포함하고,
    상기 연산을 제2 제어 프로세서로 요청하는 동작은, 상기 입력 버퍼 영역 및 상기 출력 버퍼 영역의 메모리 주소를 상기 요청과 함께 상기 제2 제어 프로세서로 제공하는 동작을 포함하는, 보안 데이터 처리 방법.
  18. 청구항 16에 있어서, 상기 제어 신호를 상기 일반 모듈로 제공하는 동작은,
    상기 메모리에 기록된 연산 결과와 등록된 사용자 정보를 비교하는 동작, 및
    상기 비교 결과 상기 연산 결과가 상기 사용자 정보에 대응되면 사용자 인증을 허가하는 제어 신호를 상기 일반 모듈로 제공하고, 대응되지 않으면 상기 사용자 인증을 허가하지 않는 제어 신호를 상기 일반 모듈로 제공하는 동작을 포함하는, 보안 데이터 처리 방법.
  19. 청구항 18에 있어서,
    상기 보안 데이터는 사용자의 지문 또는 홍채 영상을 포함하고,
    상기 제어 신호는 상기 전자 장치의 잠금 상태를 해제하거나, 상기 지문 또는 홍채 영상을 이용한 결제를 허가하도록 하는 신호인, 보안 데이터 처리 방법.
  20. 컴퓨터 판독 가능한 명령어를 포함하는 저장 매체에 있어서, 상기 명령어는 제1 제어 프로세서 또는 제2 제어 프로세서에 의해 실행되고, 상기 제1 제어 프로세서는 일반 모듈과 보안 모듈을 포함하고, 상기 명령어는,
    상기 제1 제어 프로세서에서, 보안 메모리를 설정하고, 상기 보안 메모리의 유효성을 판단하고, 상기 보안 메모리에 보안 데이터를 기록하고, 상기 기록된 보안 데이터의 적어도 일부에 대한 연산을 상기 제2 제어 프로세서로 요청하는 동작을 수행하고,
    상기 제2 제어 프로세서에서, 상기 보안 데이터의 적어도 일부에 대한 연산 결과를 상기 보안 메모리에 기록하는 동작을 수행하고,
    상기 보안 모듈에서, 상기 연산 결과에 기초한 제어 신호를 상기 일반 모듈로 제공하는 동작을 수행하도록 하는, 저장 매체.
KR1020140128664A 2014-09-25 2014-09-25 보안 데이터 처리 KR102297383B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140128664A KR102297383B1 (ko) 2014-09-25 2014-09-25 보안 데이터 처리
US14/858,624 US9904794B2 (en) 2014-09-25 2015-09-18 Processing secure data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140128664A KR102297383B1 (ko) 2014-09-25 2014-09-25 보안 데이터 처리

Publications (2)

Publication Number Publication Date
KR20160036414A KR20160036414A (ko) 2016-04-04
KR102297383B1 true KR102297383B1 (ko) 2021-09-03

Family

ID=55584581

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140128664A KR102297383B1 (ko) 2014-09-25 2014-09-25 보안 데이터 처리

Country Status (2)

Country Link
US (1) US9904794B2 (ko)
KR (1) KR102297383B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6867156B2 (ja) * 2016-12-28 2021-04-28 ルネサスエレクトロニクス株式会社 半導体装置
US10387336B2 (en) * 2017-03-24 2019-08-20 Micron Technology, Inc. Memory protection based on system state
CN107578027A (zh) * 2017-09-18 2018-01-12 王文戈 一种便于拆卸的指纹辨析系统
KR102503440B1 (ko) * 2018-04-12 2023-02-27 삼성전자주식회사 보안 처리 모듈을 이용하여 보안 이미지를 획득하는 전자 장치
KR20220089871A (ko) * 2020-12-22 2022-06-29 삼성전자주식회사 디지털 아이디 정보를 제공하는 전자 장치 및 그 방법
CN113486410B (zh) * 2021-06-30 2023-11-21 海光信息技术股份有限公司 一种保护数据安全的方法、cpu核、cpu芯片和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100924043B1 (ko) * 2004-11-12 2009-10-27 소니 컴퓨터 엔터테인먼트 인코포레이티드 보안 데이터 프로세싱 및 전송을 위한 방법들 및 장치들
US20140237609A1 (en) * 2013-02-18 2014-08-21 Qualcomm Incorporated Hardware enforced content protection for graphics processing units

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120066696A1 (en) 2010-09-09 2012-03-15 Sattam Dasgupta Generic hardware and software platform for electronic devices in multimedia, graphics, and computing applications
US8375221B1 (en) 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
KR102180529B1 (ko) * 2013-03-13 2020-11-19 삼성전자주식회사 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100924043B1 (ko) * 2004-11-12 2009-10-27 소니 컴퓨터 엔터테인먼트 인코포레이티드 보안 데이터 프로세싱 및 전송을 위한 방법들 및 장치들
US20140237609A1 (en) * 2013-02-18 2014-08-21 Qualcomm Incorporated Hardware enforced content protection for graphics processing units

Also Published As

Publication number Publication date
KR20160036414A (ko) 2016-04-04
US9904794B2 (en) 2018-02-27
US20160092376A1 (en) 2016-03-31

Similar Documents

Publication Publication Date Title
US10554656B2 (en) Authentication processing method and electronic device supporting the same
US20180032712A1 (en) Electronic device and method for authenticating biometric information
US20180341937A1 (en) Method and apparatus for performing settlement transaction
US20170103382A1 (en) Method of providing payment service and electronic device for implementing same
US9774599B2 (en) Authenticating method and apparatus using electronic device
KR102327016B1 (ko) 권한 제어 방법 및 이를 운용하는 전자 장치
US10735390B2 (en) Method for authentication and electronic device supporting the same
CN106330854B (zh) 用于执行认证的方法及其电子装置
US10997584B2 (en) Payment system, electronic device and payment method thereof
KR102297383B1 (ko) 보안 데이터 처리
US20170270524A1 (en) Electronic device for performing secure payment and method thereof
KR102337990B1 (ko) 권한 설정 토큰을 이용하는 전자 장치
US20160253666A1 (en) Method and device for controlling payment function
KR102646892B1 (ko) 결제 수행 방법 및 이를 제공하는 전자 장치
US11010460B2 (en) Method for managing contents and electronic device thereof
KR102341162B1 (ko) 전자 장치 및 전자 장치의 공동 사용을 위한 방법
KR20170081500A (ko) 전자 장치 및 그의 동작 방법
EP3333795A1 (en) Electronic device and card registration method thereof
US20170078269A1 (en) Method for managing application and electronic device supporting the same
KR102319661B1 (ko) 전자 장치 및 전자 장치의 보안 정보 저장 방법
US11238453B2 (en) Device for performing security login service and method
US20170295174A1 (en) Electronic device, server, and method for authenticating biometric information
KR102320149B1 (ko) 어플리케이션을 실행하는 전자 장치 및 그 제어 방법
US10482237B2 (en) Method for processing security of application and electronic device supporting the same
KR102332669B1 (ko) 전자 장치의 동적 언어를 처리하는 방법 및 이를 사용하는 전자 장치

Legal Events

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