KR20170030408A - 결제를 위한 방법 및 장치 - Google Patents

결제를 위한 방법 및 장치 Download PDF

Info

Publication number
KR20170030408A
KR20170030408A KR1020150158476A KR20150158476A KR20170030408A KR 20170030408 A KR20170030408 A KR 20170030408A KR 1020150158476 A KR1020150158476 A KR 1020150158476A KR 20150158476 A KR20150158476 A KR 20150158476A KR 20170030408 A KR20170030408 A KR 20170030408A
Authority
KR
South Korea
Prior art keywords
module
payment
information
token
electronic device
Prior art date
Application number
KR1020150158476A
Other languages
English (en)
Other versions
KR102458145B1 (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 US15/259,609 priority Critical patent/US10546291B2/en
Priority to EP19170815.5A priority patent/EP3537362A1/en
Priority to EP16187868.1A priority patent/EP3142056A1/en
Priority to PCT/KR2016/010137 priority patent/WO2017043904A1/en
Priority to CN201610814064.4A priority patent/CN107067250A/zh
Publication of KR20170030408A publication Critical patent/KR20170030408A/ko
Priority to US16/750,413 priority patent/US10803452B2/en
Application granted granted Critical
Publication of KR102458145B1 publication Critical patent/KR102458145B1/ko

Links

Images

Classifications

    • 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/08Payment architectures
    • G06Q20/16Payments settled via telecommunication 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
    • 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/325Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices using wireless networks
    • 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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • 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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • 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/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4018Transaction verification using the card verification value [CVV] associated with the card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication

Abstract

전자 장치는 적어도 하나의 토큰을 저장하도록 동작할 수 있는 보안 모듈; 제 1 통신 모듈; 제 2 통신 모듈; 및 상기 보안 모듈, 상기 제 1 통신 모듈 및 상기 제2 통신 모듈에 기능적으로 연결된 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는 상기 제 1 통신 모듈 또는 상기 제 2 통신 모듈 중 결제를 위해 이용될 적어도 하나의 통신 모듈을 결정하고, 및 상기 적어도 하나의 토큰 중 상기 적어도 하나의 통신 모듈에 관련된 토큰을 포함하는 결제 정보를 외부 전자 장치에 전송하도록 설정될 수 있다.

Description

결제를 위한 방법 및 장치{APPRATUS AND METHOD FOR PAYMENT}
다양한 실시예들은, 전자 장치에 관한 것으로, 예를 들면, 전자 장치를 이용해 결제가 가능한 제어부를 포함하는 전자 장치에 관한 것이다.
다양한 실시예들은, 전자 장치에 관한 것으로, 예를 들면, 전자 결제 시스템에 대한 장치 및 방법에 관한 것이다.
이동 통신 기술의 발전과 더불어, 전자 장치는 음성 통화 기능뿐만 아니라 다양한 데이터 통신 기능을 수행할 수 있다. 전자 장치, 예를 들어, 모바일 기기 또는 사용자 기기는 다양한 어플리케이션을 통해서 다양한 서비스를 제공할 수 있다. 전자 장치는, 멀티미디어 서비스, 예를 들어, 뮤직 서비스, 동영상 서비스, 또는 디지털 방송 서비스, 또는 통화, 무선 인터넷, 단문 메시지 서비스(SMS, short message service), 멀티미디어 메시징 서비스(MMS, multimedia messaging service) 등의 네트워크 기반의 통신 서비스 등을 제공할 수 있다. 또한 전자 장치는, 단순한 통신 매체에서 커뮤니케이션, 유통, 인터넷, 또는 결제 등 다양한 기능이 가능한 기기로 진화하면서 사회, 문화, 금융, 또는 유통 산업분야 전반에 걸쳐 사용될 수 있다. 전자 장치는, 예를 들어, 결제 기능에서 전자 장치를 통한 모바일 결제 방식을 제공할 수 있다. 전자 장치는, 예를 들면, 현금에서 플라스틱 카드로 이행해 왔던 결제 방식에서 상기 전자 장치를 이용하여 결제를 할 수 있다. 전자 장치는, 예를 들면, 모바일 결제 서비스(mobile payment service)을 이용하여, 온라인 또는 오프라인(실제 상점이나 음식점에서 상품을 구입하여 결제를 진행하는 경우)상에서 이루어지는 서비스와 재화를 구매할 수 있도록 결제 기능을 제공할 수 있다. 또한 전자 장치는, 예를 들면, 결제 정보를 수신 또는 송신하기 위한 통신 기능을 구비할 수 있다.
다양한 실시예들은, 모바일 결제 서비스를 위한 적어도 하나의 통신모듈을 이용하여 인증정보를 전송하는 방법 및 그 전자장치에 관한 것이다.
다양한 실시예들은, 모바일 결제 서비스를 위해, 시간 정보를 이용하여 보안성이 높은 결제 정보를 생성 및 전송하는 방법 및 그 전자장치에 관한 것이다.
다양한 실시예에 따른 전자 장치는 적어도 하나의 토큰을 저장하도록 동작할 수 있는 보안 모듈; 제 1 통신 모듈; 제 2 통신 모듈; 및 상기 보안 모듈, 상기 제 1 통신 모듈 및 상기 제2 통신 모듈에 기능적으로 연결된 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는 상기 제 1 통신 모듈 또는 상기 제 2 통신 모듈 중 결제를 위해 이용될 적어도 하나의 통신 모듈을 결정하고, 및 상기 적어도 하나의 토큰 중 상기 적어도 하나의 통신 모듈에 관련된 토큰을 포함하는 결제 정보를 외부 전자 장치에 전송하도록 설정될 수 있다.
다양한 실시예에 따른 방법은 제 1 보안 영역, 제 2 보안 영역 및 적어도 하나의 결제 신호 모듈을 포함하는 전자 장치의 결제 정보 보안 방법에서, 상기 제 1 보안 영역에 상기 적어도 하나의 결제 신호 모듈 각각에 대응되는 적어도 하나의 토큰을 저장하는 동작; 상기 제 1 보안 영역 또는 상기 제 2 보안 영역 중 적어도 하나의 보안 영역에서 타임스탬프를 생성하는 동작; 상기 적어도 하나의 토큰 중에서 상기 적어도 하나의 결제 신호 모듈 중 하나에 대응하는 토큰 및 상기 타임스탬프 중 적어도 하나에 기초하여, 상기 제 2 보안 영역에서 결제 신호를 생성하는 동작; 및 상기 결제 신호를 외부 전자 장치에 전송하는 동작을 포함할 수 있다.
다양한 실시예에 따른 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체는 보안 영역 및 적어도 하나의 결제 신호 모듈을 포함하는 전자 장치에서, 상기 보안 영역에 상기 적어도 하나의 결제 신호 모듈 각각에 대응되는 적어도 하나의 토큰을 저장하는 동작; 상기 보안 영역에서 타임스탬프를 생성하는 동작; 상기 적어도 하나의 토큰 중에서 상기 적어도 하나의 결제 신호 모듈 중 하나에 대응하는 토큰 및 상기 타임스탬프에 적어도 일부 기초하여, 상기 보안 영역에서 결제 신호를 생성하는 동작; 및 상기 결제 신호를 외부 전자 장치에 전송하는 동작을 실행할 수 있다.
다양한 통신방식에 기반하여 모바일 결제 서비스를 제공할 수 있다. 또한, 다양한 실시예들은, 보안성이 높은 보안영역을 사용함으로써 더욱 안전한 무선 결제 환경을 제공할 수 있다.
도 1은 다양한 실시예에 따른 네트워크 환경을 도시하는 블럭도이다.
도 2는 다양한 실시예에 따른 전자 장치의 블럭도를 도시한다.
도 3은 다양한 실시예에 따른 프로그램 모듈의 블록도를 도시한다.
도 4는 다양한 실시예에 따른 전자 장치에서 운용되는 복수의 실행 환경을 도시한다.
도 5a 내지 5c는 다양한 실시예에 따른 TEE(trunsted execution environment)의 하드웨어 구조를 도시한다.
도 6은 다양한 실시예에 따른 결제 시스템을 도시한다.
도 7은 다양한 실시예에 따른 결제를 수행하기 위한 결제 시스템을 도시한다.
도 8은 다양한 실시예에 따른 전자 장치의 하드웨어 구조를 도시한다.
도 9는 다양한 실시예에 따른 토큰을 관리하기 위한 결제 시스템을 도시한다.
도 10은 다양한 실시 예에 따른 NFC(near field communication)를 이용한 결제 방식을 지원하는 전자장치를 도시한다.
도 11은 다양한 실시예에 따른 토큰을 이용한 결제 트랜젝션(transaction)하기 위한 방법을 도시한다.
도 12는 다양한 실시 예에 따른 전자장치의 구성도를 도시한다.
도 13은 다양한 실시 예에 따른 전자장치의 동작 방법을 위한 흐름도를 도시한다.
도 14는 다양한 실시 예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시한다.
도 15는 다양한 실시 예에 따른 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시한다.
도 16은 다양한 실시 예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시한다.
도 17은 다양한 실시 예에 따른 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시한다.
도 18는 다양한 실시예에 따른 전자 장치의 실행 환경에서 실행되기 위한 프로그램 모듈들을 도시한다.
도 19는 다양한 실시 예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시한다.
도 20은 다양한 실시 예에 따른 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시한다.
도 21은 다양한 실시 예에서 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 다른 동작 방법을 위한 흐름도를 도시한다.
도 22는 다양한 실시 예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시한다.
도 23은 다양한 실시 예에 따른 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시한다.
도 24는 다양한 실시 예에서 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 다른 동작 방법을 위한 흐름도를 도시한다.
도 25는 다양한 실시 예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시한다.
도 26은 다양한 실시 예에 따른 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시한다.
도 27은 다양한 실시 예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시한다.
도 28은 다양한 실시 예에 따른 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시한다.
도 29는 다양한 실시 예에 따른 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 다른 동작 방법을 위한 흐름도를 도시한다.
도 30은 다양한 실시 예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시한다.
도 31은 다양한 실시 예에 따른 모바일 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시한다.
도 32는 다양한 실시예에 따른 결제를 위한 정보 생성을 위한 전자 장치의 내부 구성 요소들 간의 인터페이스를 도시한다.
도 33은 다양한 실시예에 따른 결제를 위한 정보 생성을 위한 전자 장치의 내부 구성 요소들 간의 인터페이스를 도시한다.
도 34는 다양한 실시예에 따른 결제를 위한 정보 생성을 위한 전자 장치의 내부 구성 요소들 간의 인터페이스를 도시한다.
도 35는 다양한 실시예에 따른 결제를 위한 정보 생성을 위한 전자 장치의 내부 구성 요소들 간의 인터페이스를 도시한다.
도 36은 다양한 실시예에 다른 결제 정보의 유효 시간에 관한 도면이다.
도 37 내지 도 39는 다양한 실시예에 따른 결제 수단(예, 카드)의 구조의 일 예에 대한 도면이다.
도 40은 다양한 실시예에 따른 결제 정보의 구조를 도시한다.
도 41은 다양한 실시예에 따른 트랜젝션 데이터의 구조를 도시한다.
도 42는 다양한 실시예에 따른 결제 인증 데이터의 구조를 도시한다.
도 43는 다양한 실시예에 따른 결제 중계 모듈이 결제 어플리케이션의 PIN(personal identification number) 입력을 통한 인증 요청을 TEE의 보안 식별자 처리 모듈로 중계하는 기능을 도시한다.
도 44내지 45는 본 발명의 다양한 실시예에 따른 결제 중계 모듈이 생체 정보를 이용하여 인증을 수행한 결과를 이용하여 결제를 수행하는 방법을 도시한다.
도 46는 본 발명의 다양한 실시예에 따른 토큰 크립토그램을 생성하는 방법을 도시한다.
도 47은 다양한 실시예에 따른 타임스탬프 정보를 기초하여 생성된 결제 정보를 이용하여 결제 과정을 나타내는 순서도이다.
도 48은 다양한 실시예에 따른 타임스탬프 정보를 기초하여 생성된 결제 정보를 이용하여 결제 과정을 나타내는 순서도이다.
도 49는 다양한 실시예에 따른 토큰을 이용한 결제 트랜젝션(transaction)하기 위한 방법을 도시한다.
이하, 본 문서의 다양한 실시예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "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 personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에 따르면, 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에서, 전자 장치는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션(navigation) 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), 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은, 다양한 실시예에 따른, 네트워크 환경을 도시하는 블럭도(100)이다. 도1을 참조하여, 전자 장치 (101, 102 또는 104) 또는 서버(106)가 네트워크(162) 또는 근거리 통신(164)를 통하여 서로 연결될 수 있다. 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다.
버스(110)는, 예를 들면, 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
프로세서(120)는, 중앙처리장치(central processing unit(CPU)), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(application programming interface(API))(145), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(147) 등을 포함할 수 있다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템(operating system(OS))으로 지칭될 수 있다.
커널(141)은, 예를 들면, 다른 프로그램들(예: 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147)에서 전자 장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션 프로그램(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다.
또한, 미들웨어(143)는 어플리케이션 프로그램(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션 프로그램(147) 중 적어도 하나에 전자 장치(101)의 시스템 리소스(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여할 수 있다. 예컨대, 미들웨어(143)는 상기 적어도 하나에 부여된 우선 순위에 따라 상기 하나 이상의 작업 요청들을 처리함으로써, 상기 하나 이상의 작업 요청들에 대한 스케쥴링 또는 로드 밸런싱 등을 수행할 수 있다.
API(145)는, 예를 들면, 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
입출력 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(101)의 다른 구성요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 입출력 인터페이스(150)는 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이(160)는, 예를 들면, 액정 디스플레이(liquid crystal display(LCD)), 발광 다이오드(light-emitting diode(LED)) 디스플레이, 유기 발광 다이오드(organic light-emitting diode(OLED)) 디스플레이, 또는 마이크로 전자기계 시스템(microelectromechanical systems(MEMS)) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)을 표시할 수 있다. 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다.
통신 인터페이스(170)는, 예를 들면, 전자 장치(101)와 외부 장치(예: 제 1 외부 전자 장치(102), 제 2 외부 전자 장치(104), 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치(예: 제 2 외부 전자 장치(104) 또는 서버(106))와 통신할 수 있다.
무선 통신은, 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE(long-term evolution), LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용할 수 있다. 또한, 무선 통신은, 예를 들면, 근거리 통신(164)을 포함할 수 있다. 근거리 통신(164)은, 예를 들면, WiFi(wireless fidelity), 블루투스(Bluetooth), NFC(near field communication), MST(magnetic stripe transmission), 또는 GNSS(global navigation satellite system) 등 중 적어도 하나를 포함할 수 있다.
MST는 전자기 신호를 이용하여 전송 데이터에 따라 펄스를 생성하고, 상기 펄스는 자기장 신호를 발생시킬 수 있다. 전자 장치(101)는 상기 자기장 신호를 POS(point of sales)에 전송하고, POS는 MST 리더(MST reader)를 이용하여 상기 자기장 신호는 검출하고, 검출된 자기장 신호를 전기 신호로 변환함으로써 상기 데이터를 복원할 수 있다.
GNSS는 사용 지역 또는 대역폭 등에 따라, 예를 들면, GPS(global positioning system), Glonass(global navigation satellite system), Beidou navigation satellite system(이하 “Beidou”) 또는 Galileo, the European global satellite-based navigation system 중 적어도 하나를 포함할 수 있다. 이하, 본 문서에서는, “GPS”는 “GNSS”와 혼용되어 사용(interchangeably used)될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 또는 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는 다양한 실시예에 따른, 전자 장치(201)를 도시하는 블록도(200)이다. 전자 장치(201)는, 예를 들면, 도 1에 도시된 전자 장치(101)의 전체 또는 일부를 포함할 수 있다. 전자 장치(201)는 하나 이상의 프로세서(예: AP(application processor))(210), 통신 모듈(220), (가입자 식별 모듈(224), 메모리(230), 센서 모듈(240), 입력 장치(250), 디스플레이(260), 인터페이스(270), 오디오 모듈(280), 카메라 모듈(291), 전력 관리 모듈(295), 배터리(296), 인디케이터(297), 및 모터(298) 를 포함할 수 있다.
프로세서(210)는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서(210)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(210)는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 한 실시예에 따르면, 프로세서(210)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서(image signal processor)를 더 포함할 수 있다. 프로세서(210)는 도 2에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈(221))를 포함할 수도 있다. 프로세서(210) 는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장(store)할 수 있다.
통신 모듈(220)은, 도 1의 통신 인터페이스(170)와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈(220)은, 예를 들면, 셀룰러 모듈(221), WiFi 모듈(222), 블루투스 모듈(223), GNSS 모듈(224)(예: GPS 모듈, Glonass 모듈, Beidou 모듈, 또는 Galileo 모듈), NFC 모듈(225), MST 모듈(226), 및 RF(radio frequency) 모듈(227)를 포함할 수 있다.
셀룰러 모듈(221)은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 가입자 식별 모듈(예: SIM 카드)(229)을 이용하여 통신 네트워크 내에서 전자 장치(201)의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 프로세서(210)가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 커뮤니케이션 프로세서(CP: communication processor)를 포함할 수 있다.
WiFi 모듈(222), 블루투스 모듈(223), GNSS 모듈(224), NFC 모듈(225) 또는 MST 모듈(226) 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 어떤 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(222), 블루투스 모듈(223), GNSS 모듈(224), NFC 모듈(225) 또는 MST 모듈(226) 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다.
RF 모듈(227)은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈(227)은, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter), LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(222), 블루투스 모듈(223), GNSS 모듈(224), NFC 모듈(225) 또는 MST 모듈(226) 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다.
가입자 식별 모듈(229)은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 및/또는 내장 SIM(embedded SIM)을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
메모리(230)(예: 메모리(130))는, 예를 들면, 내장 메모리(232) 또는 외장 메모리(234)를 포함할 수 있다. 내장 메모리(232)는, 예를 들면, 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: 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 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나를 포함할 수 있다.
외장 메모리(234)는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱(memory stick) 등을 더 포함할 수 있다. 외장 메모리(234)는 다양한 인터페이스를 통하여 전자 장치(201)와 기능적으로 및/또는 물리적으로 연결될 수 있다.
보안 모듈(236)은 메모리(230)보다 상대적으로 보안 레벨이 높은 저장 공간을 포함하는 모듈로써, 안전한 데이터 저장 및 보호된 실행 환경을 보장해주는 회로일 수 있다. 예를 들면, 전자 장치는 높은 보안성이 요구되는 데이터(예:생체 정보, 개인정보, 카드정보)를 암호화하고, 암호화에 사용한 키를 보안 모듈(236)에 저장 할 수 있다. 보안 모듈(236)은 별도의 회로로 구현될 수 있으며, 별도의 프로세서를 포함할 수 있다. 보안 모듈(236)은, 예를 들면, 탈착 가능한 스마트 칩, 시큐어 디지털(secure digital(SD)) 카드 내에 존재하거나, 또는 전자 장치(201)의 고정 칩 내에 내장된 내장형 보안 요소(embedded secure element(eSE))를 포함할 수 있다. 또한, 보안 모듈(236)은 전자 장치(201)의 운영 체제(operating system(OS))와 다른 운영 체제로 구동될 수 있다. 예를 들면, JCOP(java card open platform) 운영 체제를 기반으로 동작할 수 있다.
센서 모듈(240)은, 예를 들면, 물리량을 계측하거나 전자 장치(201)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈(240)은, 예를 들면, 제스처 센서(240A), 자이로 센서(240B), 기압 센서(240C), 마그네틱 센서(240D), 가속도 센서(240E), 그립 센서(240F), 근접 센서(240G), 컬러(color) 센서(240H)(예: RGB(red, green, blue) 센서), 생체 센서(240I), 온/습도 센서(240J), 조도 센서(240K), 또는 UV(ultra violet) 센서(240M) 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로(additionally or alternatively), 센서 모듈(240)은, 예를 들면, 후각 센서(E-nose sensor), EMG 센서(electromyography sensor), EEG 센서(electroencephalogram sensor), ECG 센서(electrocardiogram sensor), IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈(240)은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 전자 장치(201)는 프로세서(210)의 일부로서 또는 별도로, 센서 모듈(240)을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서(210)가 슬립(sleep) 상태에 있는 동안, 센서 모듈(240)을 제어할 수 있다.
입력 장치(250)는, 예를 들면, 터치 패널(touch panel)(252), (디지털) 펜 센서(pen sensor)(254), 키(key)(256), 또는 초음파(ultrasonic) 입력 장치(258)를 포함할 수 있다. 터치 패널(252)은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널(252)은 제어 회로를 더 포함할 수도 있다. 터치 패널(252)은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다.
(디지털) 펜 센서(254)는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트(sheet)를 포함할 수 있다. 키(256)는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치(258)는 마이크(예: 마이크(288))를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이(260)(예: 디스플레이(160))는 패널(262), 홀로그램 장치(264), 또는 프로젝터(266)를 포함할 수 있다. 패널(262)은, 도 1의 디스플레이(160)와 동일 또는 유사한 구성을 포함할 수 있다. 패널(262)은, 예를 들면, 유연하게(flexible), 투명하게(transparent), 또는 착용할 수 있게(wearable) 구현될 수 있다. 패널(262)은 터치 패널(252)과 하나의 모듈로 구성될 수도 있다. 홀로그램 장치(264)는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터(266)는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치(201)의 내부 또는 외부에 위치할 수 있다. 한 실시예에 따르면, 디스플레이(260)는 패널(262), 홀로그램 장치(264), 또는 프로젝터(266)를 제어하기 위한 제어 회로를 더 포함할 수 있다.
인터페이스(270)는, 예를 들면, HDMI(high-definition multimedia interface)(272), USB(universal serial bus)(274), 광 인터페이스(optical interface)(276), 또는 D-sub(D-subminiature)(278)를 포함할 수 있다. 인터페이스(270)는, 예를 들면, 도 1에 도시된 통신 인터페이스(170)에 포함될 수 있다. 추가적으로 또는 대체적으로(additionally and alternatively), 인터페이스(270)는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD(secure digital) 카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈(280)은, 예를 들면, 소리(sound)와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈(280)의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스(145)에 포함될 수 있다. 오디오 모듈(280)은, 예를 들면, 스피커(282), 리시버(284), 이어폰(286), 또는 마이크(288) 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
카메라 모듈(291)은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, ISP(image signal processor), 또는 플래시(flash)(예: LED 또는 xenon lamp 등)를 포함할 수 있다.
전력 관리 모듈(295)은, 예를 들면, 전자 장치(201)의 전력을 관리할 수 있다. 한 실시예에 따르면, 전력 관리 모듈(295)은 PMIC(power management integrated circuit), 충전 IC(charger integrated circuit), 또는 배터리 또는 연료 게이지(battery or fuel gauge)를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리(296)의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리(296)는, 예를 들면, 충전식 전지(rechargeable battery) 및/또는 태양 전지(solar battery)를 포함할 수 있다.
인디케이터(297)는 전자 장치(201) 또는 그 일부(예: 프로세서(210))의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터(298)는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동(vibration), 또는 햅틱(haptic) 효과 등을 발생시킬 수 있다. 도시되지는 않았으나, 전자 장치(201)는 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 모바일 TV 지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(mediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있다.
본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치는 본 문서에서 기술된 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시예에 따른 전자 장치의 구성요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
도 3은 다양한 실시예에 따른, 프로그램 모듈(310)을 도시하는 블록도(300)이다. 한 실시예에 따르면, 프로그램 모듈(310)(예: 프로그램(140))은 전자 장치(예: 전자 장치(101))에 관련된 자원을 제어하는 운영 체제(operating system(OS)) 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램(147))을 포함할 수 있다. 운영 체제는, 예를 들면, 안드로이드(androidTM), iOSTM, 윈도우즈(windowsTM), 심비안(symbianTM), 타이젠(tizenTM), 또는 바다(badaTM) 등이 될 수 있다.
프로그램 모듈(310)은 커널(320), 미들웨어(330), 어플리케이션 프로그래밍 인터페이스(application programming interface (API))(360), 및/또는 어플리케이션(370)을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 전자 장치 상에 프리로드(preload) 되거나, 외부 전자 장치(예: 전자 장치(102, 104), 서버(106) 등)로부터 다운로드(download) 가능하다.
커널(320)(예: 커널(141))은, 예를 들면, 시스템 리소스 매니저(321) 및/또는 디바이스 드라이버(323)를 포함할 수 있다. 시스템 리소스 매니저(321)는 시스템 리소스의 제어, 할당, 또는 회수 등을 수행할 수 있다. 한 실시예에 따르면, 시스템 리소스 매니저(321)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부 등을 포함할 수 있다. 디바이스 드라이버(323)는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다.
미들웨어(330)는, 예를 들면, 어플리케이션(370)이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션(370)이 전자 장치 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 API(360)를 통해 다양한 기능들을 어플리케이션(370)으로 제공할 수 있다. 한 실시예에 따르면, 미들웨어(330)(예: 미들웨어(143))는 런타임 라이브러리(335), 어플리케이션 매니저(application manager)(341), 윈도우 매니저(window manager)(342), 멀티미디어 매니저(multimedia manager)(343), 리소스 매니저(resource manager)(344), 파워 매니저(power manager)(345), 데이터베이스 매니저(database manager)(346), 패키지 매니저(package manager)(347), 연결 매니저(connectivity manager)(348), 통지 매니저(notification manager)(349), 위치 매니저(location manager)(350), 그래픽 매니저(graphic manager)(351), 보안 매니저(security manager)(352), 또는 결제 매니저(354) 중 적어도 하나를 포함할 수 있다.
런타임 라이브러리(335)는, 예를 들면, 어플리케이션(370)이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리(335)는 입출력 관리, 메모리 관리, 또는 산술 함수에 대한 기능 등을 수행할 수 있다.
어플리케이션 매니저(341)는, 예를 들면, 어플리케이션(370) 중 적어도 하나의 어플리케이션의 생명 주기(life cycle)를 관리할 수 있다. 윈도우 매니저(342)는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(343)는 다양한 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱(codec)을 이용하여 미디어 파일의 인코딩(encoding) 또는 디코딩(decoding)을 수행할 수 있다. 리소스 매니저(344)는 어플리케이션(370) 중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다.
파워 매니저(345)는, 예를 들면, 바이오스(BIOS: basic input/output system) 등과 함께 동작하여 배터리(battery) 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보 등을 제공할 수 있다. 데이터베이스 매니저(346)는 어플리케이션(370) 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(347)는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다.
연결 매니저(348)는, 예를 들면, WiFi 또는 블루투스 등의 무선 연결을 관리할 수 있다. 통지 매니저(349)는 도착 메시지, 약속, 근접성 알림 등의 사건(event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 위치 매니저(350)는 전자 장치의 위치 정보를 관리할 수 있다. 그래픽 매니저(351)는 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저(352)는 시스템 보안 또는 사용자 인증 등에 필요한 제반 보안 기능을 제공할 수 있다. 한 실시예에 따르면, 전자 장치(예: 전자 장치(101))가 전화 기능을 포함한 경우, 미들웨어(330)는 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화 매니저(telephony manager)를 더 포함할 수 있다. 결제 매니저(354)는 어플리케이션(370)으로부터 결제를 위한 정보를 어플리케이션(370) 또는 커널(320)에 중계할 수 있다. 또한 외부 장치로부터 수신한 결제에 관련된 정보를 전자 장치(200) 내부에 저장하거나 내부에 저장된 정보를 외부 장치에 전달할 수 있다.
미들웨어(330)는 전술한 구성요소들의 다양한 기능의 조합을 형성하는 미들웨어 모듈을 포함할 수 있다. 미들웨어(330)는 차별화된 기능을 제공하기 위해 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 또한, 미들웨어(330)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다.
API(360)(예: API(145))는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드(AndroidTM) 또는 iOSTM의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠(tizenTM)의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션(370)(예: 어플리케이션 프로그램(147))은, 예를 들면, 홈(371), 다이얼러(372), SMS/MMS(373), IM(instant message)(374), 브라우저(375), 카메라(376), 알람(377), 컨택트(378), 음성 다이얼(379), 이메일(380), 달력(381), 미디어 플레이어(382), 앨범(383), 시계(384), 결제(385), 건강 관리(health care)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보 제공(예: 기압, 습도, 또는 온도 정보 등을 제공) 등의 기능을 수행할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다.
한 실시예에 따르면, 어플리케이션(370)은 전자 장치(예: 전자 장치(101))와 외부 전자 장치(예: 전자 장치(102, 104)) 사이의 정보 교환을 지원하는 어플리케이션(이하, 설명의 편의 상, "정보 교환 어플리케이션")을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치에 특정 정보를 전달하기 위한 알림 전달(notification relay) 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리(device management) 어플리케이션을 포함할 수 있다.
예를 들면, 알림 전달 어플리케이션은 전자 장치의 다른 어플리케이션(예: SMS/MMS 어플리케이션, 이메일 어플리케이션, 건강 관리 어플리케이션, 또는 환경 정보 어플리케이션 등)에서 발생된 알림 정보를 외부 전자 장치(예: 전자 장치(102, 104))로 전달하는 기능을 포함할 수 있다. 또한, 알림 전달 어플리케이션은, 예를 들면, 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다.
장치 관리 어플리케이션은, 예를 들면, 전자 장치와 통신하는 외부 전자 장치(예: 전자 장치(102, 104))의 적어도 하나의 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 외부 전자 장치에서 동작하는 어플리케이션 또는 외부 전자 장치에서 제공되는 서비스(예: 통화 서비스 또는 메시지 서비스 등)를 관리(예: 설치, 삭제, 또는 업데이트)할 수 있다.
한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치(예: 전자 장치(102, 104))의 속성(에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션 등)을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치(예: 서버(106) 또는 전자 장치(102, 104))로부터 수신된 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 프리로드 어플리케이션(preloaded application) 또는 서버로부터 다운로드 가능한 제3자 어플리케이션(third party application)을 포함할 수 있다. 도시된 실시예에 따른 프로그램 모듈(310)의 구성요소들의 명칭은 운영 체제의 종류에 따라서 달라질 수 있다.
다양한 실시예에 따르면, 프로그램 모듈(310)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어, 또는 이들 중 적어도 둘 이상의 조합으로 구현될 수 있다. 프로그램 모듈(310)의 적어도 일부는, 예를 들면, 프로세서(예: 프로세서(210))에 의해 구현(implement)(예: 실행)될 수 있다. 프로그램 모듈(310)의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트(sets of instructions) 또는 프로세스 등을 포함할 수 있다.
본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(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)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 메모리(130)가 될 수 있다.
컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM(compact disc read only memory), DVD(digital versatile disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM(read only memory), RAM(random access memory), 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다. 그리고 본 문서에 개시된 실시예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 문서에서 기재된 기술의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 문서의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시예를 포함하는 것으로 해석되어야 한다.
도 4는, 다양한 실시예에 따른, 전자 장치(예: 전자 장치(101))에서 운용되는 REE(rich execution environment)(410) 및 TEE(trunsted execution environment)(420)를 도시하는 블럭도(400)이다. 다양한 실시예에 따르면, 전자 장치는 보안 강화를 위해 복수의 보안 레벨을 가진 실행 환경을 운용할 수 있다. 복수의 실행 환경은, 예를 들면, REE(410) 및 TEE(420)를 포함할 수 있다. REE는, 예를 들면, 제 1 보안 레벨을 가지는 제 1 실행 환경일 수 있다. TEE는, 예를 들면, 제 1 보안 레벨과 다른(예: 높은) 제 2 보안 레벨을 가지는 제 2 실행 환경일 수 있다. 한 실시예에 따르면, 전자 장치(101)는 제 3 보안 레벨을 가지는 추가적인 다른 싱행 환경(예: 제 3 실행 환경)을 포함할 수 있으며, 이에 한정하는 것은 아니다.
TEE는 상대적으로 높은 보안 레벨이 요구되는 데이터를 안전한 환경 내에서 저장하고 관련 동작을 수행할 수 있다. TEE는 전자 장치의 어플리케이션 프로세서 상에서 동작하고, 전자 장치의 제조 과정에서 결정된 신뢰할 수 있는 하드웨어 구조에 기반하여 동작할 수 있다. TEE는 어플리케이션 프로세서 또는 메모리를 노멀 영역(normal area)과 보안 영역으로 구분하여 보안 영역에서 동작할 수 있다. TEE는 보안이 필요한 소프트웨어나 하드웨어를 보안 영역에서만 동작하게 하도록 설정할 수 있다. 전자 장치는 하드웨어의 물리적 변경 또는 소프트웨어의 논리적 변경을 통하여 TEE를 운용할 수 있다.
TEE는 REE와 하드웨어적인 제약을 통하여 서로 분리될 수 있고, 동일한 하드웨어에서 소프트웨어적으로 분리되어 동작할 수 있다. REE에서 동작하는 적어도 하나의 어플리케이션(예: 결제, 컨택트, 이메일, 또는 브라우저 등)은 TEE에 접근이 허용된 API(예: TEE functional API 또는 TEE client API)를 이용할 수 있다. 상기 적어도 하나의 어플리케이션은 상기 API를 이용하여 REE의 통신 에이전트(REE communication agent)에서 TEE의 통신 에이전트)(TEE communication agent)로 메시지를 전달할 수 있다. 상기 메시지는 하드웨어적으로 TEE에만 전달될 수 있도록 구현될 수 있다. TEE의 통신 에이전트는 상기 메시지를 수신하여 상기 메시지와 관련된 보안 어플리케이션(trusted application(TA))(예: DRM(digital rights management), 보안 결제 모듈, 또는 보안 생체 정보 모듈 등)에 전달할 수 있다. 보안 어플리케이션은 상기 메시지에 관련된 동작을 수행할 수 있으며, 동작에 대한 결과를 TEE의 통신 에이전트를 통하여 REE의 통신 에이전트에 전달할 수 있다. 상기 REE의 통신 에이전트는 REE에서 운용 중인 적어도 하나의 어플리케이션에 상기 결과를 전달할 수 있다.
도 5(a) 내지 5(c)은, 다양한 실시예에 따른, TEE의 하드웨어 구조를 도시하는 블럭도(500)다. 도 5(a)는 하드웨어적으로 하나의 프로세서와 하나의 메모리를 REE와 TEE로 구분하여 사용하는 경우(예: ARM의 트러스트존(Trustzone(TZ)))를 도시한다. 한 실시예에 따르면, TEE의 하드웨어 구조는 On-SoC(510) 및 external memories(520)를 포함할 수 있다. On-SoC(510)는 마이크로 프로세싱 코어(501), RAM(502), ROM(503), peripheral(504), crypto accelerator(505) 또는 OTP fields(506)를 포함할 수 있다. 트러스트존은 둘 이상의 실행 환경을 운용하기 위해 프로세서를 시간적으로 분리하여 REE와 TEE를 구분하여 사용할 수 있다. 또한, 트러스트존은 하나의 메모리를 REE에서 접근 가능한 영역 및 TEE에서 접근 가능한 영역으로 구분하여 사용할 수 있다.
도 5(b)는 TEE를 위한 프로세서가 REE를 운용하기 위한 프로세서와 같이 on-chip형태로 구현되어 있지만 별도의 프로세싱 코어 셋으로 구현된 경우를 도시한다. 한 실시예에 따르면, On-SoC(510)는 마이크로 프로세싱 코어(501) 이외에 하나이상의 프로세서를 포함하는 On-chip security subsystem(507)을 추가로 포함할 수 있다. 이런 경우, On-SoC(510)은 REE를 운용하고, On-chip security subsystem(507)은 TEE를 운용하도록 설정될 수 있다. 도 5(b)의 경우에는 도 5(a)와 마찬가지로 하나의 메모리를 REE에서 접근 가능한 영역 및 TEE에서 접근 가능한 영역으로 구분하여 사용할 수 있다.
도 5(c)는 TEE를 위한 프로세서가 하드웨어적으로 별도의 chip으로 구현되어 REE를 운용하기 위한 프로세서가 구현된 chip과 분리되어 있는 경우를 도시한다. 도 5(c)를 참조하면, On-Soc(510)는 REE를 운용하고, 상기 On-Soc(510)의 외부에 구비된 하나 이상의 external security co-processor(530)는 TEE를 운용하도록 설정될 수 있다.
도 6를 참조하면, 다양한 실시예에 따른, 결제 시스템(600)을 도시한다.
다양한 실시예에 따르면, 결제 시스템(600)은, 전자 장치(device)(610) 및/또는 서버(server)를 포함할 수 있다. 또한, 예를 들면, 상기 서버는 결제 서버(620), 토큰 서버(token server, token service provider)(630), 또는 금융 서버(issuer)(640)를 포함할 수 있다. 상기 전자 장치(610)는, 예를 들면, 결제 어플리케이션(payment application, wallet application)(612) 및/또는 결제 매니저(614)를 포함할 수 있다. 상기 결제 서버(620)는, 예를 들면, 결제 서비스 서버(622)(622) 및/또는 토큰 요구자 서버(token requester, token requester server)(624)를 포함할 수 있다.
다양한 실시예에 따르면, 상기 결제 어플리케이션(612)은, 결제 어플리케이션(612)(예: 삼성 페이 어플리케이션(Samsung PayTM application)을 포함할 수 있다. 상기 결제 어플리케이션(612)은, 예를 들면, 결제와 관련된 사용자 인터페이스(예: UI(user interface) 또는 UX(user experience)를 제공할 수 있다. 상기 결제와 관련된 사용자 인터페이스는 월렛 사용자 인터페이스(wallet UI/UX)를 포함할 수 있다. 예를 들면, 상기 결제 어플리케이션(612)은, 카드 등록(card registration), 지불(payment), 또는 거래와 관련된 사용자 인터페이스를 제공할 수 있다. 상기 결제 어플리케이션(612)은, 예를 들면, 문자 판독기(예: OCR(optical character reader/recognition)) 또는 외부 입력(예: 사용자 입력)을 통한 카드 등록과 관련된 인터페이스를 제공할 수 있다. 또한, 상기 결제 어플리케이션(612)은, 예를 들면, 신원 확인(ID&V, identification and verification)를 통한 사용자 인증과 관련된 인터페이스를 제공할 수 있다.
다양한 실시예에 따르면, 상기 결제 어플리케이션(612)은, 상기 결제 어플리케이션(612)을 이용하여 결제 거래를 수행할 수 있다. 예를 들면, 상기 결제 어플리케이션(612)은, Simple Pay, Quick Pay 또는 지정된 어플리케이션 실행을 통해 사용자에게 결제 기능을 제공할 수 있다. 사용자는, 상기 결제 어플리케이션(612)을 이용하여 결제 기능을 수행하고, 상기 결제 기능과 연관된 정보를 제공받을 수 있다.
다양한 실시예에 따르면, 상기 결제 매니저(614)는, 카드사와 관련된 정보를 포함할 수 있다. 예를 들면, 상기 결제 매니저(614)는, 카드사 SDK(software development kit)를 포함할 수 있다.
다양한 실시예에 따르면, 상기 결제 서버(620)는, 전자 결제 또는 모바일 결제를 위한 관리 서버를 포함할 수 있다. 상기 결제 서버(620)는, 예를 들면, 상기 전자 장치(610)로부터 결제와 관련된 정보를 수신해서 외부로 송신하거나 상기 결제 서버(620)에서 처리할 수 있다.
다양한 실시예에 따르면, 상기 결제 서버(620)는, 상기 결제 서비스 서버(622) 및/또는 토큰 요구자 서버(624)를 이용하여, 상기 전자 장치(610)와 상기 토큰 서버(630) 사이에서 정보를 송수신할 수 있다. 상기 결제 서비스 서버(622)는, 예를 들면, 결제 서버(예: Samsung payment server)(620)를 포함할 수 있다. 상기 결제 서비스 서버(622)는, 예를 들면, 서비스 계정(예: Samsung account) 또는 사용자 계정과 연동된 카드 정보를 관리 할 수 있다. 또한, 상기 결제 서비스 서버(622)는, 상기 결제 어플리케이션(612)와 관련된 API(application program interface) 서버를 포함할 수 있다. 또한, 상기 결제 서비스 서버(622)는, 예를 들면, 상기 계정 관리 모듈(예: account integration 또는 Samsung account integration)을 제공할 수 있다.
다양한 실시예에 따르면, 상기 토큰 요구자 서버(624)는, 결제와 관련된 정보를 처리하기 위한 인터페이스를 제공할 수 있다. 예를 들면, 상기 토큰 요구자 서버(624)는, 결제와 관련된 정보(예: 토큰(token))의 발급, 삭제, 또는 활성화를 수행할 수 있다. 또는 상기 결제 매니저(614)와 기능적으로 연결되어 상기 결제에 필요한 정보를 제어할 수 있다.
다양한 실시예에 따르면, 상기 전자 장치(610)에 포함된 상기 결제 어플리케이션(612)과 상기 결제 서버(620)에 포함된 상기 결제 서비스 서버(622)는 기능적으로 연결될 수 있다. 예를 들면, 상기 결제 어플리케이션(612)은 상기 결제 서버(620)로 결제와 관련된 정보를 송수신할 수 있다. 한 실시예에 따르면, 상기 상기 전자 장치(610)에 포함된 상기 결제 매니저(614)와 상기 결제 서버(620)에 포함된 상기 토큰 요구자 서버(624)는 기능적으로 연결될 수 있다. 예를 들면, 상기 결제 매니저(614)는 상기 토큰 요구자 서버(624)로 결제와 관련된 정보를 송수신할 수 있다.
다양한 실시예에 따르면, 상기 토큰 서버(630)는, 결제와 관련된 정보(예: 토큰)를 발급하거나 결제와 관련된 정보를 관리할 수 있다. 예를 들면, 상기 토큰 서버(630)는, 토큰의 동작 주기(like cycle)을 제어할 수 있고, 상기 동작 주기는 생성, 수정, 또는 삭제 기능을 포함할 수 있다. 또한 상기 토큰 서버(630)는, 예를 들면, 토큰 관리 서버를 포함할 수 있고, 토큰 설정(token provisioning), 신원 확인(ID&V, identification and verification), 갱신(replenishment), 또는 Life Cycle 관리를 수행할 수 있다. 또한 금융 서버와 관련된 정보의 통합(intergration)을 수행할 수 있다.
다양한 실시예에 따르면, 상기 결제 서버(620) 및/또는 상기 토큰 서버(630)는 동일 또는 유사한 영역에 위치하거나 서로 분리된 영역에 위치할 수 있다. 예를 들면, 상기 결제 서버(620)는 제 1 서버에, 상기 토큰 서버(630)는 제 2 서버에 포함될 수 있다. 또한, 예를 들면, 상기 결제 서버(620) 및/또는 상기 토큰 서버(630)가 하나의 서버(예: 제 1 서버 또는 제 2 서버)에 구분되어 구현될 수 있다.
다양한 실시예에 다르면, 상기 금융 서버(640)는 카드 발급을 수행할 수 있다. 예를 들면, 상기 금융 서버(640)는, 카드 발급 은행을 포함할 수 있다. 또한 사용자에게 제공되는 결제에 필요한 정보를 생성할 수 있다. 상기 사용자는 상기 금융 서버(640)에서 생성된 상기 결제에 필요한 정보를 상기 결제 어플리케이션(612)을 이용하여 상기 전자 장치(610)에 저장할 수 있다. 또한 상기 금융 서버(640)는 상기 토큰 서버(630)와 기능적으로 연결되어 상기 결제에 필요한 정보를 송수신할 수 있다.
도 7은, 다양한 실시예에 따른, 결제를 수행하기 위한 결제 시스템을 도시하는 블럭도(700)이다. 도7을 참조하면, 결제 시스템은 전자 장치(710)(예: 전자 장치(101)), 결제 서버(720)(예: 서버(106)), 토큰 서비스 프로바이더(token service provider(TSP))(730)(예: 서버(106) 또는 다른 서버(미도시)) 및 POS(point of sales)(740)(예: 전자 장치(102))를 포함할 수 있다. 한 실시예에 따르면, 결제 시스템은 하나 이상의 추가 전자 장치(750 or 760)를 포함할 수 있다. 상기 하나 이상의 추가 전자 장치는 상기 전자 장치(710)와 기능적으로(예: 통신) 연결 가능한 웨어러블 장치(750)(예: 스마트 시계) 또는 액세서리(760)(예: LoopPayTM사의 fob 형태 장치)를 포함할 수 있다. 한 실시예에 따르면, LoopPayTM 사의 fob 형태 장치는 마이크를 통해 전자 장치(710)와 연결된 외부 결제 모듈을 포함할 수 있다.
한 실시예에 따르면, 전자 장치(710)는 결제 기능을 동작할 수 있다. 전자 장치(710)는 결제 기능을 수행하기 위해 카드(예: 마스터카드 또는 비자 등의 신용 카드)를 전자 장치(710) 또는 결제 서버(720)에 등록할 수 있다. 결제 서버(720)는 전자 장치(710)를 통해서 등록된 카드 외에도, 전자 장치(710)에 대응하는 사용자의 다른 전자 장치(예: 전자 장치(750))를 통해서 등록된 카드 또는 다른 사용자의 전자 장치를 통해서 등록된 다른 카드를 포함하는 복수의 등록된 카드들에 대한 정보를 관리할 수 있다.
한 실시예에 따르면, 결제 서버(720)는 등록한 카드 정보에 해당하는 토큰 정보를 토큰 서비스 프로바이더(730)로부터 획득하여 전자 장치(710)에 전달할 수 있다. 결제 서버(720)은, 예를 들면, 결제 서비스 서버 또는 토큰 요구자 서버를 포함할 수 있다. 결제 서비스 서버는 사용자의 카드 정보를 관리할 수 있다. 계정을 기반으로 결제에 관련된 서비스를 제공할 수 있다. 토큰 요구자 서버는 결제 동작에 필요한 토큰 정보를 토큰 서비스 프로바이더(730)에게 요청하여 토큰 정보를 획득할 수 있다.
토큰 서비스 프로바이더(730)는 결제 과정에서 사용되는 토큰을 발행할 수 있다. 한 실시예에 따르면, 토큰은 카드의 정보인 primary account number(PAN)을 대체하는 값일 수 있다. 한 실시예에 따르면, 토큰은 bank indentification number(BIN) 등을 이용하여 생성될 수 있다. 또한, 생성된 토큰은 토큰 서비스 프로바이더(730)에 의해서 암호화되거나, 또는 암호화되지 않은 상태로 결제 서버(720)로 전송된 후, 결제 서버(720)에 의해 암호화될 수 있다. 암호화된 토큰 정보는 결제 서버(720)를 통해 전자 장치(710)으로 전달된 후, 전자 장치(710)에서 복호화 될 수 있다. 한 실시예에 따르면, 토큰은 토큰 서비스 프로바이더(730)에서 생성 및 암호화되고, 결제 서버(720)를 거치지 않고 전자 장치(710)로 전달될 수 있다. 다른 실시예에 따르면, 결제 서버(720)는 토큰 생성 기능을 포함할 수도 있으며, 이런 경우, 결제 시스템에는 별도의 토큰 서비스 프로바이더(730)가 사용되지 않을 수도 있다.
전자 장치(710)는, 예를 들면, 근거리 통신(예: 블루투스 또는 WiFi)에 기반하여 기능적으로 연결된 하나 이상의 다른 전자 장치들(750 또는 760) 중의 적어도 하나를 이용하여 결제를 수행할 수 있다. 한 실시예에 따르면, 다른 전자 장치(750) 는 웨어러블 장치(예: 스마트 시계)일 수 있으며, 이런 경우, 전자 장치(710)는 토큰 서비스 프로바이더(730)로부터 전달된 토큰을 웨어러블 장치에 전달할 수 있다. 한 실시예에 따르면, 다른 전자 장치(760) 는 액세서리(예: LoopPayTM사의 fob 형태 장치))일 수 있으며, 이런 경우, 전자 장치(710)는 그 입출력 인터페이스(150)(예: 이어폰(286))를 통하여 상기 액세서리(예: LoopPayTM사의 fob 형태 장치)과 기능적으로 연결될 수 있다.
도 8은, 다양한 실시예에 따른, 결제 기능을 수행할 수 있는 전자 장치(예: 전자 장치(101))의 하드웨어 구조를 도시하는 블록도(800)이다. 한 실시예에 따르면, 전자 장치는, 예를 들면, 카메라 모듈(801), 가속도 센서(803), 자이로 센서(805), 생체 센서(807), MST 모듈(810), NFC 모듈(820), MST 제어 모듈(830), NFC 제어 모듈(840), 프로세서(850), 및 메모리(860)를 포함할 수 있다. 카메라 모듈(801)은 결제에 필요한 카드를 촬영하여 카드 정보를 획득할 수 있다. 카메라 모듈(801)은 OCR(optical character reader) 기능을 통해 카드에 표기되어 있는 카드 정보(예: 카드 회사, 카드 넘버, 카드 유효 날짜, 또는 카드 소유주 등)를 인식할 수 있다. 또는 사용자가 전자 장치에 포함된 입력 장치(예: 터치 패널, 펜 센서, 키, 초음파 입력 장치, 또는 마이크 입력 장치 등)를 이용하여 필요한 카드 정보를 전자 장치에 입력할 수 있다.
한 실시예에 따르면, 가속도 센서(803) 또는 자이로 센서(805)는 결제 시 전자 장치의 위치 상태를 획득할 수 있다. 획득된 전자 장치(예: 전자 장치(101))의 위치 정보는 프로세서(850)에 전달되고, 프로세서는 획득된 전자 장치의 위치 상태에 기반하여 MST 모듈(810)에서 POS로 송출되는 자기장의 세기(전류 세기)를 조절하거나, 코일 안테나가 복수개인 경우, 사용되는 코일 안테나를 선택할 수도 있다. 한 실시예에 따르면, MST 제어 모듈(830)은 데이터 수신 모듈(831) 및 출력 변환 모듈(833)을 포함할 수 있다. 데이터 수신 모듈(831)은 프로세서(850) 또는 보안 모듈(예: eSE)이 전송하는 결제 정보를 포함한 logical low/high 형태의 펄스 시그널(pulse signal)을 전달받을 수 있다. 한 실시예에 따르면 데이터 수신 모듈(831)이 수신한 데이터는 마그네틱 카드의 magnetic stripe의 트랙 데이터의 형태를 가질 수 있다. 예를 들면, 상기 수신한 데이터는 magnetic stripe 의 tack1,2 또는 3의 포맷 중 적어도 하나 이상의 포맷에 토큰과 결제 인증(verification) 데이터를 삽입한 형태일 수 있다.
출력 변환 모듈(833)은 데이터 수신 모듈(831)에서 인식된 데이터를 MST 모듈(810)로 전달하기 위하여, 필요한 형태로 변환하는 회로를 포함할 수 있다. 상기 회로는, 예를 들면, MST 모듈(810)의 양단에 공급되는 전압의 방향을 제어하는 H-Bridge를 포함할 수 있다. H-Bridge는 4개의 스위치 구조를 이용해서 H 모양으로 연결한 회로 구조를 포함할 수 있다.
한 실시예에 따르면, 상기 카메라 모듈(801) 또는 입력 장치(예를들면, 터치 패널, 펜 센서 등)를 통해 입력된 카드 정보에 기반하여, 전자 장치는 통신 모듈(미도시)를 통해 카드 회사/은행 서버로부터 마그네틱 카드의 magnetic stripe 에 포함되어 있는 결제 정보(예: track1/2/3 또는 token 정보)를 전달받고 이를 메모리(860) 또는 별도의 보안 모듈(236)(예: eSE)에 필요한 형태로 저장할 수 있다.
한 실시예에 따르면, MST 모듈(810)과 NFC모듈(820)를 통해 POS로 전달되는 토큰은 기반되는 카드가 같다고 해도 서로 상이 할 수 있다. 예를 들면, MST모듈(810)을 통해 외부기기(예: POS)로 전달되는 토큰(예: 디지털 카드 번호)의 마지막 네 자리가 1111이라고하면 NFC모듈(820)을 통해 외부기기(예: POS)로 전달되는 토큰(예: 디지털 카드 번호)의 마지막 네 자리는 2222일 수 있다.
도 9는, 다양한 실시예에 따른, 결제 시스템(900)을 도시한다.
다양한 실시예에 따르면, 결제 시스템(900)은, 전자 장치(device)(910) 및/또는 복수의 서버(server)를 포함할 수 있다. 예를 들면, 상기 복수의 서버는 결제 서버(920), 제 1 토큰 서버(token server, token service provider)(934), 제 2 토큰 서버(token server, token service provider)(944), 또는 제 1 금융 서버(issuer or card network)(932), 제 2 금융 서버(issuer or card network)(942), TSM(trusted service manager)(936)을 포함할 수 있다. 상기 전자 장치(910)는, 예를 들면, 결제 어플리케이션(payment application, wallet application)(912), 결제 매니저(914) 및/또는 보안 저장소(916)를 포함할 수 있다. 상기 결제 서버(920)는, 예를 들면, 결제 서비스 서버(922) 및/또는 토큰 요구자 서버(token requester, token requester server)(924)를 포함할 수 있다. 상기 제 1 금융서버(932), 제 1 토큰서버(934), TSM(936)의 구성요소들의 조합을 하나의 서버(예: 제 1 관리서버)로 구현 될 수 있다. 예를 들면, 제 1 관리서버(930)은 (제 1 금융서버와 제 1 토큰서버) 또는 (제 1 금융서버와 TSM) 또는 (제 1 토큰서버와 TSM) 또는 (제 1 금융서버와 TSM), (제 1 금융서버와 제 1 토큰서버와 TSM)와 같은 조합으로 구성될 수 있다. 상기 제 2 금융서버(942), 제 2 토큰서버(944)는 하나의 서버로(예: 제 2 관리서버(940)) 구현 될 수 있다.
다양한 실시예에 따르면, 상기 결제 어플리케이션(912)(예: 결제 어플리케이션 612)은, 예를 들어, 삼성 페이 어플리케이션(Samsung PayTM Application)을 포함할 수 있다. 상기 결제 어플리케이션(912)은, 예를 들면, 결제와 관련된 사용자 인터페이스(예: UI(user interface) 또는 UX(user experience)를 제공할 수 있다. 상기 결제와 관련된 사용자 인터페이스는 월렛 사용자 인터페이스(wallet UI/UX)를 포함할 수 있다. 예를 들면, 상기 결제 어플리케이션(912)은, 카드 등록(card registration), 지불(payment), 또는 거래와 관련된 사용자 인터페이스를 제공할 수 있다. 상기 결제 어플리케이션(912)은, 예를 들면, 문자 판독기(예: OCR(optical character reader/recognition)) 또는 외부 입력(예: 사용자 입력)을 통한 카드 등록과 관련된 인터페이스를 제공할 수 있다. 또한, 상기 결제 어플리케이션(912)은, 예를 들면, 신원 확인(ID&V, identification and verification)를 통한 사용자 인증과 관련된 인터페이스를 제공할 수 있다.
다양한 실시예에 따르면, 상기 결제 어플리케이션(912)은, 상기 결제 어플리케이션(912)을 이용하여 결제 거래를 수행할 수 있다. 예를 들면, 상기 결제 어플리케이션(912)은, Simple Pay, Quick Pay 또는 지정된 어플리케이션 실행을 통해 사용자에게 결제 기능을 제공할 수 있다. 사용자는, 상기 결제 어플리케이션(912)을 이용하여 결제 기능을 수행하고, 상기 결제 기능과 연관된 정보를 제공받을 수 있다.
다양한 실시예에 따르면, 상기 결제 매니저(914)는, 카드사와 관련된 정보를 포함할 수 있다. 예를 들면, 상기 결제 매니저(914)는, 카드사 SDK(software development kit)를 포함할 수 있다.
다양한 실시예에 따르면, 상기 보안 저장소(916)는 보안 모듈(236), 보안 영역(예: TEE(trusted execution environment))을 포함할 수 있다. 제 1 금융서버 또는 제 2 금융서버에서 발행한 결제 관련 프로그램(예: applet, trusted application)이 설치 될 수 있다. 한 실시예에 따르면, 상기 결제 관련 프로그램은 MST로 송출하기 위한 결제 정보(예: 토큰, 토큰 크립토그램, 시간 인증 코드, 결제 횟수)를 마그네틱 카드의 트랙 데이터 포맷에 맞게 생성해 줄 수 있다. 예를 들면, 상기 시간 인증 코드는 결제 정보에 대한 유효성을 체크하기 위한 값으로 상기 시간 인증 코드 생성을 위해 특정시간 값을 사용할 수 있다. 한 실시예에 따르면, 상기 특정시간 값으로 UTC(Coordinated Universal Time) 정보를 이용할 수 있다. 예를 들면, 전자장치는 NITZ(network identity and time zone) 또는 NTP(network time protocol)를 통해 UTC 정보를 획득할 수 있고, 외부 서버(예: 제 1 관리서버)도 UTC 정보를 획득하면 전자장치와 외부서버는 시간이 동기화 되어 상기 시간 인증 코드를 인증할 수 있다. 외부 서버도 전자장치와 동일한 방법(예: NITZ 또는 NTP)을 이용해서 특정시간 값을 획득할 수 있다.
보안 저장소(916)는 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키)를 저장할 수 있다.
상기 TSM(936)은 보안 저장소(916)에 설치된 상기 결제 관련 프로그램과 통신하여 결제 정보를 저장 및 관리(예: 삭제, 정보 업데이트)를 할 수 있다.
다양한 실시예에 따르면, 상기 결제 서버(920)는, 전자 결제 또는 모바일 결제를 위한 관리 서버를 포함할 수 있다. 상기 결제 서버(920)는, 예를 들면, 상기 전자 장치(910)로부터 결제와 관련된 정보를 수신해서 외부로 송신하거나 상기 결제 서버(920)에서 처리할 수 있다.
다양한 실시예에 따르면, 상기 결제 서버(920)는, 상기 결제 서비스 서버(922) 및/또는 토큰 요구자 서버(924)를 이용하여, 상기 전자 장치(910)와 상기 제 1 금융서버(932) 사이에서 정보(예: 토큰 발급 요청)를 송수신할 수 있다. 상기 결제 서비스 서버(922)는, 예를 들면, 결제 서버(예: Samsung payment server)(920)를 포함할 수 있다. 상기 결제 서비스 서버(922)는, 예를 들면, 서비스 계정(예: Samsung account) 또는 사용자 계정과 연동된 카드 정보를 관리 할 수 있다. 또한, 상기 결제 서비스 서버(922)는, 상기 결제 어플리케이션(912)와 관련된 API(application program interface) 서버를 포함할 수 있다. 또한, 상기 결제 서비스 서버(922)는, 예를 들면, 상기 계정 관리 모듈(예: account integration 또는 Samsung account integration)을 제공할 수 있다.
다양한 실시예에 따르면, 상기 토큰 요구자 서버(924)는, 결제와 관련된 정보를 처리하기 위한 인터페이스를 제공할 수 있다. 예를 들면, 상기 토큰 요구자 서버(924)는, 결제와 관련된 정보(예: 토큰(token))의 발급, 삭제, 또는 활성화를 수행할 수 있다. 또는 상기 결제 매니저(914)와 기능적으로 연결되어 상기 결제에 필요한 정보를 제어할 수 있다.
다양한 실시예에 따르면, 상기 전자 장치(910)에 포함된 상기 결제 어플리케이션(912)과 상기 결제 서버(920)에 포함된 상기 결제 서비스 서버(922)는 기능적으로 연결될 수 있다. 예를 들면, 상기 결제 어플리케이션(912)은 상기 결제 서버(920)로 결제와 관련된 정보를 송수신할 수 있다. 한 실시예에 따르면, 상기 상기 전자 장치(910)에 포함된 상기 결제 매니저(914)와 상기 결제 서버(920)에 포함된 상기 토큰 요구자 서버(924)는 기능적으로 연결될 수 있다. 예를 들면, 상기 결제 매니저(914)는 상기 토큰 요구자 서버(924)로 결제와 관련된 정보를 송수신할 수 있다.
다양한 실시예에 따르면, 상기 제 1 금융서버(932)와 제 2 금융서버(942)는 결제 관련된 정보(예: 토큰)을 발급하기 위한 데이터를 관리할 수 있다. 예를 들면, 제 1 금융서버(932)는 제 2 토큰서버에서 발급한 제 1 결제정보와 연관된 다른 제 2결제정보를 발급하도록 제 1 토큰서버에 요청 할 수 있다. 또한, 제 1 금융서버(932)는 토큰 발급을 제 1 토큰서버(934)로 요청 할 때 제 1 토큰과 제 2 토큰이 관련된 토큰임을 확인 할 수 있는 정보(예: 토큰 ID)를 저장 및 관리 할 수 있다.
한 실시예에 따르면, 상기 제 1 결제 정보(예: 디지털 카드 번호, 토큰 또는/및 토큰 크립토그램을 생성하기 위한 키)와 제 2 결제 정보(예: 디지털 카드 번호, 토큰 또는/및 토큰 크립토그램을 생성하기 위한 키)는 전자장치(910)에서 결제 시에 사용하는 전송 방식(예: MST, NFC)에 따라 각각 발급되는 토큰일 수 있다. 예를 들면, 제 1결제 정보는 MST를 이용하여 결제할 때, 제 2 결제정보는 NFC를 이용하여 결제할 때 사용될 수 있다. 하지만, 반대의 경우도 가능하며, 제 1 결제정보와 제 2 결제정보가 같은 경우도 존재할 수 있다. 상기 토큰은 PAN을 대체하는 디지털 카드 번호를 의미하는 것일 수 있다. 상기 제 1 결제정보 중 적어도 일부 또는 제 2 결제정보 중 적어도 일부는 전자장치(910)에서 상점의 POS 기기 또는 네트워크를 통해 외부로 전송되며 금융서버에서는 토큰을 확인하여 결제 승인 여부를 판단할 수 있다.
다양한 실시예에 따르면, 상기 제 1 토큰서버(934)와 제 2 토큰서버(944)는 결제와 관련된 정보(예: 토큰)를 발급하거나 결제와 관련된 정보를 관리할 수 있다. 예를 들면, 상기 제 1 토큰 서버(934)는, 토큰의 동작 주기(life cycle)을 제어할 수 있고, 상기 동작 주기는 생성, 수정, 또는 삭제 기능을 포함할 수 있다. 또한 상기 제 1 토큰 서버(934)는, 예를 들면, 토큰 관리 서버를 포함할 수 있고, 토큰 설정(token provisioning), 신원 확인(ID&V, identification and verification), 갱신(replenishment), 또는 Life Cycle 관리를 수행할 수 있다. 또한 금융 서버와 관련된 정보의 통합(integration)을 수행할 수 있다.
다양한 실시예에 따르면, 상기 TSM(936)는 제 1 토큰서버(934)와 제 2 토큰서버(944)에서 발급한 제 1 토큰 및/또는 제 2 토큰을 보안 저장소(916)에 설치 할 수 있다. 또한, 해당 토큰을 포함한 결제 정보를 생성 및 관리 할 수 있게 하기 위한 결제 관련 프로그램을 설치할 수 있다.
도 10은 다양한 실시 예에 따른 NFC(near field communication)를 이용한 결제 방식을 지원하는 전자장치를 도시한다.
상기 도 10을 참조하면, 전자장치(1000)는, 예를 들면, 프로세서(1001), NFC 제어기(1003), NFC RF 모듈(1005), 보안 모듈(secure element)(1007)을 포함하여 구성될 수 있다.
상기 프로세서(1001)는 전반적인 전자장치의 동작을 제어할 수 있다. 상기 프로세서(1001)는 TEE을 지원하지 않는 프로세서이거나 상기 TEE을 지원하는 프로세서일 수 있다.
전자 장치(예: 스마트폰)에 내장되어 있는 NFC 모듈의 경우 안드로이드(AndroidTM)와 같은 Rich OS와 연결되어있고, 보안이 낮은 OS(혹은 Rich OS, 노멀 영역에서 동작하는 OS)의 칩셋과 보안영역을 연결하는 인터페이스로 사용되는 구조일 수 있으나, 이에 한정하는 것은 아니다.
NFC 제어기(1003)는 NFC 통신방식에 기반하여 데이터를 처리할 수 있다. 예컨대, 카드 에뮬레이션, 리더/라이터(Reader/Writer), P2P(peer to peer)의 세 가지 통신 모드로 동작할 수 있다. 상기 카드 에뮬레이션 모드는 보안 모듈(1007)에 저장된 인증정보를 외부 리더기로 전송하는 방식으로, 결제 기능, 교통카드 기능, ID 카드 등의 사용자 인증 기능 등에 적용할 수 있다. 리더 모드는 외부 태그 정보를 읽어 들이는 방식일 수 있다. P2P는 기기간 데이터 교환을 지원하는 모드로써, 전자적 형태의 명함, 연락처 정보, 디지털 사진, URL 등의 데이터 교환을 수행할 수 있다.
NFC RF 모듈(1005)은 안테나로부터 수신되는 신호를 해당 복조 방식에 기반하여 복조하여 복조된 신호를 NFC 제어기(1003)로 제공하거나, NFC 제어기(103)로부터 데이터를 해당 변조방식에 기반하여 변조하여 안테나를 통해 송신할 수 있다.
보안영역(secure element) 모듈(1007)은 거래 또는 인증과 관련된 정보를 저장할 수 있다. 예컨대, 거래 또는 인증과 관련된 정보는, PAN(primary account number), 토큰, 암호화 키 등의 보안을 요구하는 정보 등을 포함할 수 있다. 상기 PAN은 신용카드의 정보를 포함하는 것으로, 카드의 고유 번호를 의미하고, 상기 신용카드의 고유 번호는 암호화되지 않은 정보일 수 있다. 상기 토큰은 상기 신용카드의 고유 번호를 대체하는 정보로 사용될 수 있다. PAN 또는 토큰 등은 전자 결제 시 이용되는 정보일 수 있고, 암호화 키는 결제 인증을 위한 암호화 데이터를 생성하는데 이용될 수 있다. 상기 토큰 및 PAN은 생성된 암호화 데이터와 같이 전송될 수 있다.
상기 보안 모듈(1007)은 NFC 제어기(1003)에 의해서만 액세스 가능하며, 상기 프로세서(1001)는 상기 보안 모듈(1007)을 액세스할 수 있는 권한이 없을 수 있다.
다양한 실시 예에서, 전자장치의 NFC 모듈은 노멀 영역의 OS와 연결되어있어, NFC 모듈은 노멀 영역의 OS의 칩셋과 보안영역을 연결하는 인터페이스를 수행할 수 있다. 보안 레벨이 높은 보안영역에 대한 접근은 NFC 모듈 내부의 컨트롤러를 통해서만 가능할 수 있다.
상기 NFC 제어기(1003), 상기 NFC RF 모듈(1005), 상기 보안 모듈(1007)은 하나의 칩 또는 패키지로 구현될 수 있다. 이하, 상기 NFC 제어기(1003), 상기 NFC RF 모듈(1005), 상기 보안 모듈(1007)은 포함하는 하나의 패키지는 NFC 모듈일 수 있다.
도 11은, 다양한 실시예에 따른, 토큰을 이용한 결제 트랜젝션(transaction)을 설명 도 11에 설명하는 구성 요소들은 앞서 설명한 결제 시스템의 구성요소와 일치할 수 있다. 한 실시예에 따르면, 전자장치(910)는 NFC및/또는 MST를 사용하여 결제 트랜잭션을 수행할 수 있다. 이하 동작은 NFC및/또는 MST를 이용한 결제 트랜잭션을 하나의 예로써 설명하지만, 본 발명의 다양한 실시예는 이에 한정되지 않는다.
1111동작은 전자장치(910)에서 NFC를 이용해POS(1101)로 결제 정보(예: 토큰, 토큰 크립토그램)을 전송하는 방법을 설명한다. 예를 들면, 결제 트랜젝션을 시작하면 전자장치(910)는 외부 NFC신호를 감지하는 것을 기다리고 있을 수 있다. 이 때, POS(1101)로부터 active 신호를 받으면 전자장치(910)가 NFC신호를 발생시켜 제 1결제 정보를 전송할 수 있다.
1113동작은 전자장치(910)에서 MST를 이용해 POS(1101)로 결제 정보(예: 토큰, 토큰 크립토그램)를 전송하는 방법을 설명한다. 예를 들면, 결제 트랜젝션을 시작하면 전자장치(910)는 Track 데이터 포맷에 제 2 결제 정보를 포함시켜 MST 신호를 POS(1101)의 자기신호 리더기로 전송할 수 있다. 한 실시예에 따르면, 상기 Track 데이터 포맷에는 특정 시간을 이용하여 생성한 인증 코드가 포함될 수 있다. 예를 들면, 전자장치(910)는 NITZ 또는 NTP로부터 획득한 UTC를 이용하여 인증 코드를 생성하고 이를 Track 데이터 포맷에 제 2 결제정보와 인증 코드를 넣어 MST 신호를 POS(1101)의 자기신호 리더기로 전송할 수 있다.
1115동작에서 POS(1101)에서 전자장치(910)로부터 전달 받은 제 1 결제 정보(1111동작) 또는 제 2 결제 정보(1113동작)를 제 1 금융 서버(932)로 전달할 수 있다. 한 실시예에 따르면, 제 1 금융서버(932)는 1115동작으로 받은 제 1 결제 정보(1111동작) 또는 제 2 결제 정보(1113동작)에 대한 인증을 수행 할 수 있다. 예를 들면, 제 1 금융서버(932)는 제 2 결제 정보(1113동작)에 포함된 또는 함께 전달된 시간 정보 또는 시간 정보를 이용하여 만들어진 인증 코드를 확인하여 설정한 시간을 넘어서 받은 제 2 결제 정보(1113동작)를 결제 인증에 대한 실패를 결과값으로 외부 장치(예: POS, 제 2 금융서버)로 전달할 수 있다. 상기 설명한 인증 방법은 제 2 금융서버에서도 유사하게 수행 될 수 있다.
1117 동작은, 제1 금융서버가 전달 받은 정보가 제 2 결제 정보일 경우 제 1 토큰 서버(934)가 제 2 결제 정보를 제 1 결제 정보로 변경하는 방법을 설명할 수 있다. 예를 들면, 제1금융서버가 전달 받은 정보가 제 2 결제 정보인 경우에, 제 1 금융서버는 제 1 토큰서버에 제 2 결제정보를 전달할 수 있다. 제 1금융서버는 제 2 결제 정보를 발급할 때(도9에 설명 참조) 제 1 결제 정보와 제 2 결제정보를 매칭할 수 있다. 결제 트랜젝션에서는 상기 매칭된 정보를 이용하여 제 2 결제정보에 매칭되는 제 1 결제정보를 확인할 수 있으며, 관련된 제 1 결제 정보를 확인할 수 있다.
1119 동작에서 제 1 금융서버(932)는 제 2 금융서버(842)에 제 1 결제정보에 대한 인증을 요청할 수 있다.
1121동작에서 제 2 금융서버(942)는 전달받은 제 1 결제정보에 대한 인증을 POS(1101)로 전달 할 수 있다. 인증 결과에 따라 POS(1101)은 거래 완료의 영수증을 출력하거나, 거래 실패의 메시지를 표시할 수 있다.
도 12는 다양한 실시 예에 따른 전자장치의 구성도를 도시하고 있다.
상기 도 12를 참조하면, 전자장치는 프로세서(1200), UICC(1202), 메모리(1204), 입력 장치(1206), 디스플레이 모듈(1208), 기저대역 모듈(1214), RF 모듈(1216), 제 1 통신모듈(1210), 제 2 통신모듈(1212)을 포함할 수 있다.
프로세서(1200)는 상기 전자장치의 전반적인 동작을 제어할 수 있다. 예를 들어, 음성통화 및 데이터통신을 위한 처리 및 제어를 수행하고, 통상적인 기능에 더하여 다양한 실시 예에서 결제 애플리케이션을 실행하여 결제 서비스 기능을 처리할 수 있다. 그리고 프로세서(1200)는 REE(rich execution environment)/TEE(trusted execution environment)에서 동작할 수 있다. 상기 TEE는 인증정보와 같은 민감한 데이터들을 안전한 환경 내에서 저장하고 실행하고 보호할 수 있다. 상기 REE는 상기 TEE보다 보안이 취약한 환경에서 데이터들을 처리할 수 있다.
예컨대, 프로세서(1200)는 인증정보 전송을 위한 사용자 입력이 있거나 또는 상기 전자장치가 PoS(point of sales) 기기의 리더기에 근접하거나 접촉할 때, 결제 또는 인증과 관련된 정보의 전송 요청을 검출할 수 있다. 즉, 프로세서(1200)는 사용자 입력(혹은 사용자 인터페이스)을 통해 인증정보의 전송 명령을 수신하거나, 상기 PoS 기기로부터 인증정보의 요청을 수신할 수 있다. 더하여, 프로세서(1200)는 상기 요청된 인증정보의 전송을 위한 통신방식을 결정할 수 있다. 예컨대, 프로세서(1200)는 상기 요청된 인증정보가 제 1 통신모듈(1210)에 기반한 결제방식과 관련이 있을 때, 제 1 통신모듈(1210)을 선택하고, 상기 요청된 정보가 제 2 통신모듈(1212)에 기반한 결제방식과 관련이 있을 때, 제 2 통신모듈(1212)을 선택할 수 있다.
한 실시예에 따르면, 상기 프로세서(1200)는 각 통신방식에 대응하는 인증정보들을 수집하는 보안 모듈에서 상기 인증정보 전송 요청에 대응되는 인증정보를 획득할 수 있다. 예컨대, 상기 보안 모듈은 제 1 통신모듈(1210)에 기반한 결제방식에 이용되는 제 1 인증정보 및 제 2 통신모듈(1212)에 기반한 결제방식에 이용되는 제 2 인증정보를 저장할 수 있다.
그리고, 상기 프로세서(1200)는 획득된 인증정보(예: 제 1 인증정보 또는 제 2 인증정보)를 제 1 통신모듈(1210) 또는 제 2 통신모듈(1212)을 통해 전송할 수 있다.
한 실시예에 따르면, 상기 보안 모듈은 다양한 형태로 구현될 수 있다. 예컨대, 상기 보안 모듈은 전자장치의 내부 메모리(1204) 또는 UICC(Universal IC Card)(1202)의 일부 또는 전체 영역에 포함될 수 있다. 또는, 제1 통신모듈(1210) 또는 제2 통신모듈(1212)의 내부에 구현될 수 있다.
다양한 실시예에서, 상기 보안 모듈은 별도의 칩으로 분리된 형태(embedded secure element)로 구현될 수도 있고, 소형 이동식 플래시 메모리 카드(micro SD)에 탑재하는 방식으로 구현될 수도 있다.
한 실시예에 따르면, 상기 보안 모듈은 프로세서(1200) 내부의 다른 하나의 구성요소와 결합되어 하나의 패키지 형태로 구현될 수도 있다.
상기 프로세서(1200)는 TEE 환경에서 상기 보안영역에 액세스 가능하고, REE 환경에서 상기 보안영역에 액세스되지 않을 수 있다. 또는, TEE 환경이 아니더라도 특정 모듈(예: 제 2 통신모듈(1212), 제 1 통신모듈(1210))만 상기 보안영역에 액세스할 수 있다.
상기 거래 또는 인증과 관련된 정보의 전송 요청에 대응하여, 적어도 하나의 보안 모듈로부터 적어도 하나의 인증정보를 획득하는 실시 예들을 하기 도 14 내지 도 31을 참조하기로 한다.
한 실시예에 따르면, 상기 프로세서(1200)는 상기 적어도 하나의 인증정보를 처리하여 적어도 하나의 통신모듈(예, 제 1 통신모듈(1210), 제 2 통신모듈(1212))을 통해 송신할 수 있다. 예컨대, 상기 전자장치는 PAN, 토큰, 암호화 키 같은 거래 또는 인증과 관련된 정보 중 상기 암호화 키를 이용하여 암호화 데이터를 생성하고, 상기 거래 또는 인증과 관련된 정보의 상기 토큰과 상기 생성된 암호화 데이터를 같이 제 1 통신모듈(1210) 또는 제 2 통신모듈(1212) 중 적어도 하나를 통하여 전송할 수 있다.
이하의 설명에 있어서 통상적인 프로세서(1200)의 처리 및 제어에 관한 설명은 생략한다.
메모리(1204)는 프로그램 메모리, 데이터 메모리 및 불휘발성 메모리 등을 포함할 수 있다. 상기 프로그램 메모리는 상기 전자장치의 전반적인 동작을 제어하기 위한 프로그램을 저장할 수 있다. 상기 프로그램 메모리는 플래시 메모리(flash memory)를 사용할 수 있다. 상기 데이터 메모리는 상기 전자장치 동작 중에 발생되는 데이터를 일시 저장하는 기능을 수행할 수 있다. 상기 데이터 메모리는 램(Random Access Memory)을 사용할 수 있다. 상기 불휘발성 메모리는 시스템 파라미터(system parameter) 및 기타 저장용 데이터(전화번호, SMS 메시지, 화상 데이터 등)를 저장할 수 있다. 상기 불휘발성 메모리는 EEPROM을 사용할 수 있다. 본 발명에 따라 상기 메모리(1204)는 보안영역으로 사용될 수 있다. 다양한 실시 예에서, 상기 메모리(1204)는 REE/TEE에 따라 구분되어 동작할 수 있다. 예를 들어, 도 5a내지 도5c에 도시된 바와 같이, REE환경의 메모리와 TEE환경의 메모리가 별도의 하드웨어 칩으로 구성될 수도 있다. 더하여 REE환경의 메모리와 TEE환경의 메모리가 하나의 하드웨어 칩에서 주소영역(address)를 달리해서 사용될 수도 있다. 다양한 실시예에서, 상기 메모리(1204)에는 상기 인증정보가 저장될 수 있다. 예를 들어, NFC 통신 모듈을 통하여 상기 인증정보를 전송하는 경우, Host Card Emulation mode에서는 상기 메모리(1204)로부터 상기 인증정보를 획득할 수 있다. 더하여 near field magnetic stripe data transmission 의 경우에도 상기 메모리(1204)로부터 상기 인증정보를 획득할 수 있다. 상기 인증 정보는 REE 환경 또는 TEE 환경의 메모리 중 적어도 하나에 저장될 수 있다.
입력 장치(1206)는 0 ∼ 9의 숫자키들과, 메뉴키(menu), 취소키(지움), 확인키, 통화키(TALK), 종료키(END), 인터넷 접속키, 네비게이션 키들(상/하/좌/우) 등 다수의 기능키들을 구비하며, 사용자가 누르는 키에 대응하는 키입력 데이터를 상기 프로세서(1200)로 제공할 수 있다. 디스플레이 모듈(1208)는 상기 전자장치의 동작 중에 발생되는 상태 정보, 다양한 동영상 및 정지영상 등을 디스플레이할 수 있다. 상기 디스플레이 모듈(1208)는 칼라 액정 디스플레이 장치(LCD: liquid crystal display)를 사용할 수 있다. 다양한 실시 예에서, 상기 디스플레이 모듈(1208)는 상기 프로세서(1200)로부터 인증 결과를 제공받아 그 결과를 디스플레이할 수 있다.
RF모듈(Radio Frequency module)(1216)은 안테나(1218)를 통해 수신되는 라디오 주파수(RF) 신호를 해당 통신방식에 기반하여 주파수 하강시켜 기저대역 모듈(1214)로 제공하고, 상기 기저대역 모듈(1214)로부터의 기저대역신호를 주파수 상승시켜 상기 안테나(1218)를 통해 송신할 수 있다. 상기 기저대역 모듈(1214)는 상기 RF모듈(1216)과 상기 프로세서(1200) 사이에 송수신되는 기저대역 신호를 처리할 수 있다. 예를 들어, 상기 해당 통신방식은 LTE(long term evolution), LTE-A(long term evolution-advanced), CDMA(code division multiple access), WCDMA(wideband code division multiple access), UMTS(universal mobile telephone system), GSM(global system for mobile communications) 또는 5G 통신방식 중 적어도 하나일 수 있다.
상기 제 1 통신모듈(1210)은, 예를 들면, 단방향(예를 들어 송신)통신을 수행할 수 있다. 상기 단방향 통신의 예로 near field magnetic stripe data transmission 통신방식을 이용할 수 있다. 또한, 상기 제1 통신모듈(1210)은 제 1 인증정보를 처리하여 PoS 기기로 전송할 수 있다.
상기 제 2 통신모듈(1212)은, 예를 들면, 양방향 통신(예를 들어 송신 및 수신)을 실행할 수 있다. 상기 양방향 통신의 예로 상기 제 2 통신모듈(1212)은 NFC 통신방식을 사용할 수 있다. 또한, 상기 제 2 통신모듈(1212)은 제 2 인증정보를 처리하여 PoS 기기로 전송할 수 있다.
다양한 실시 예에서, 양방향 통신방식(예: NFC 통신모듈)에 기반한 결제방식을 이용하는 경우, 예컨대, 상기 전자장치가 PoS 기기의 리더기에 근접하거나 접촉할 때, 상기 제 2 통신모듈(1212)가 PoS 기기로부터 인증정보의 요청을 통해 직접 수신함으로써, 상기 제 2 통신모듈(1212)이 상기 제 2 통신모듈(1212)에 기반한 결제방식에 대응하는 제 2 인증정보를 PoS 기기로 전송할 수 있다. 단방향 통신방식(예: near field magnetic stripe data transmission)에 기반한 결제방식을 이용하는 경우, 상기 제 1 통신모듈(1210)은 PoS 기기로부터 데이터를 수신할 수 없고 상기 PoS 기기에 데이터를 전송만 할 수 있기 때문에 프로세서(1200)로부터 인증정보의 전송 명령에 따라, 상기 제 1 통신모듈(1210)에 기반한 결제방식에 대응하는 제 1 인증정보를 PoS 기기로 전송할 수 있다. UICC(Universal IC Card)(1202)는 가입자 식별 모듈을 포함하는 카드일 수 있으며, 전자장치의 특정 위치에 형성된 슬롯에 삽입될 수 있다. 상기 UICC (1202)는 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
구현에 따라, 상기 제 1 통신모듈(1210) 또는 상기 제 2 통신모듈(1212)은 상기 전자장치와 분리되어 상기 전자장치의 커넥터(예: 오디오 잭(audio jack)(미도시함) 또는 USB 커넥터)를 통해 연결될 수 있다.
다양한 실시 예에서, 상기 제1 통신모듈(1210)은 near field magnetic stripe data transmission 방식에 제한되지 않으며, 바코드 혹은 QR 코드, 오디오 데이터를 출력하는 모듈로 대체될 수 있다. 예컨대, 상기 제1 통신모듈(1210) 대신 바코드 혹은 QR 코드를 디스플레이하는 디스플레이 모듈(1208)가 단방향 통신모듈로 사용될 수도 있다. 또는 오디오 데이터를 출력하는 스피커가 단방향 통신모듈로 사용될 수 도 있다.
마찬가지로, 상기 제2 통신모듈(1212)은 NFC 통신방식 대신에 다른 다양한 양방향 통신방식이 적용될 수 있다.
도 13은 다양한 실시 예에 따른 전자장치의 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 13을 참조하면, 전자장치(예: 도 12의 프로세서(1200))는 1300 동작에서 적어도 하나의 인증정보를 전송하기 위한 통신모듈을 선택할 수 있다. 예컨대, 전자장치는 인증정보 전송을 위한 사용자 입력이 있거나 또는 상기 전자장치가 PoS(point of sales) 기기의 리더기에 근접하거나 접촉할 때, 해당 인증정보를 전송을 위한 통신모듈을 선택할 수 있다.
예를 들어, 인증정보 전송을 위한 사용자 입력(예: 지문 인증)이 있는 경우, 상기 전자장치는 상기 제 1 통신모듈(1210)을 선택하고 상기 전자장치가 PoS(point of sales) 기기의 리더기에 근접하거나 접촉할 때, 상기 전자장치는 상기 제 2 통신모듈(1212)을 선택할 수 있다.
구현에 따라, 인증정보 전송을 위한 트랜잭션이 발생하는 경우(다시 말해, PoS 기기가 NFC 통신방식 및 near field magnetic stripe data transmission 방식을 지원하는 경우), 상기 전자장치는 상기 제 1 통신모듈(1210) 및 상기 제 2 통신모듈(1212)을 모두 선택할 수 있다.
상기 전자장치(예: 도 12의 프로세서(1200))는 1302 동작에서 상기 거래 또는 인증과 관련된 정보의 전송 요청에 대응하여, 적어도 하나의 보안 모듈 또는 메모리 중 적어도 하나로부터 적어도 하나의 인증정보를 획득할 수 있다. 상기 인증 정보는 PAN, 토큰, 또는 키(key) 중 적어도 하나로 구성될 수 있다. 예컨대, 상기 토큰은 사용자의 신용카드를 대체하여 사용하는 디지털 데이터로써, 해당 신용카드를 등록할 시 상기 신용카드 회사의 서버로부터 수신할 수 있다. 상기 키는 상기 신용카드 회사 또는 키를 분배하는 인증센터의 서버로부터 주기적으로 수신하거나 혹은 필요 시 요청되어 보안 모듈 또는 메모리 중 적어도 하나에 저장될 수 있다. 또한, 상기 키는 상품 지불에 대한 인증을 위한 암호화 데이터를 생성하는데 이용될 수 있다.
적어도 하나의 보안영역으로부터 적어도 하나의 인증정보를 획득하는 실시 예들을 하기 도 14 내지 도 31를 참조하여 설명할 것이다.
상기 전자장치(예: 도 12의 프로세서(1200))는 1304 동작에서 상기 적어도 하나의 인증정보를 처리하여 적어도 하나의 통신모듈(예: 도 12의 제 1 통신 모듈(1210) 또는 제 2 통신 모듈(1212))을 통해 송신할 수 있다. 예컨대, 상기 전자장치는 상기 인증정보의 키를 통해 암호화 데이터를 생성하고, 상기 인증정보의 토큰과 상기 생성된 암호화 데이터와 같이 송신할 수 있다. 예컨대, 상기 토큰과 상기 키로 생성된 암호화 데이터는 메시지형태로 전송될 수 있다. 그리고 상기 토큰은 동적 데이터일 수 있다. 상기 키는 동적 데이터일 수 있다.
한편, 인증 타입에 따라, 인증정보의 토큰 및/또는 키가 구분될 수 있다. 예컨대, 제1 인증 방식을 이용하는 경우, 제1 토큰 및 제1 키가 이용되고, 제2 인증 방식을 이용하는 경우, 제2 토큰 및 제2 키가 이용될 수 있다. 다양한 실시예에 따르면, 상기 제1 인증 방식은 상기 near field magnetic stripe data transmission통신을 이용하는 결제 방식이고 상기 제2 인증 방식은 NFC 통신을 이용하는 결제 방식일 수 있다.
도 14는 다양한 실시예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시하고 있다.
상기 도 14를 참조하면, AP(application processor)(1401)는 상기 도 12의 프로세서(1200)에 대응하고, 제 1 통신모듈(1403)는 상기 도 12의 제 1 통신모듈 (1210)에 대응하고, 그리고 제 2 통신모듈(1405)는 상기 도 12의 제 2 통신모듈 (1212)에 대응할 수 있다. 상기 제 1 통신모듈(1403) 및 제 2 통신모듈(1405)은 전기적으로 AP (1401)에 연결되어 있고, 보안 모듈(1407)은 제 2 통신모듈(1405)에 전기적으로 연결될 수 있다. 그리고 제 1 통신모듈(1403)과 제 2 통신모듈(1405) 사이도 기능적으로 연결될 수 있다.
다양한 실시예에서, 제 1 통신 모듈(1403)은 MST 모듈(예: MST 모듈(810))일 수 있고, 제 2 통신 모듈(1405)은 NFC 모듈(예: NFC 모듈(820))일 수 있다. 보안 모듈(1407)은 내장형 보안 요소(eSE)일 수 있다.
상기 AP(1401)는 제 1 인증서비스 트랜잭션을 검출하여 제 1 인증서비스 트랜잭션 명령을 상기 제 1 통신모듈(1403)로 전달할 수 있다. 다양한 실시예에 따르면, 상기 제 1 인증 서비스 트랜잭션 명령은 제 1 통신모듈(1403)을 기반한 인증절차를 수행하도록 하는 명령이 될 수 있다. 예를 들어, 상기 입력은 사용자에 의해 발생될 수 있다.
또한, 상기 AP(1401)는 상기 제 2 통신모듈(1405)로부터 제 2 인증정보(1407-2)에 대응하는 인증결과를 제공받아 디스플레이 모듈(1208)에 디스플레이하도록 제어할 수 있다.
상기 제 1 통신모듈(1403)은 상기 AP(1401)로부터 인증서비스 트랜잭션 명령을 수신할 시, 상기 제 2 통신모듈(1405)에 제 1 인증정보(1407-1)를 요청하여 상기 제 2 통신모듈(1405)를 통해 제공받는다. 더하여, 상기 제 1 통신모듈(1403)는 상기 제 1 인증정보(1407-1)를 처리하여(예컨대, 키를 이용하여 암호화 데이터를 생성하고 토큰과 상기 생성된 암호화 데이터를 메시지형태로 생성하는 동작) 상기 POS 기기로 송신할 수 있다.
상기 제 2 통신모듈(1405)은 상기 전자장치가 POS 기기에 근접하거나 접속될 시, 제 2 인증서비스 트랜잭션을 검출하고, 상기 보안 모듈(1407)으로부터 상기 제 2 인증정보(1407-2)를 획득하고, 상기 제2 인증정보(1407-2)를 처리하여 상기 POS 기기로 송신할 수 있다. 또한, 상기 제2 통신모듈(1405)는 인증결과에 대한 정보를 피드백 받아 그 결과를 상기 AP(1401)로 제공할 수 있다.
상기 보안 모듈(1407)은 상기 제 2 통신모듈(1405)에 의해서만 액세스 가능하며, 상기 AP(1401) 또는 상기 제 1 통신모듈(1403)가 액세스할 수 없는 저장공간일 수 있다. 실시예에서, 상기 보안 모듈(1407)은 상기 제 1 인증정보(1407-1) 및 상기 제 2 인증정보(1407-2)를 포함할 수 있다.
다양한 실시 예에서, 상기 보안 모듈(1407)에 저장된 적어도 하나의 인증정보(예를 들어, 제 1 인증정보 (1409-1)는 전기적으로 AP(1401)와 연결되는 일반 메모리(1409)에 저장될 수 있다. 여기서, 상기 일반 메모리(1409)는 노멀 영역의 상기 AP(1401)에 의해 액세스될 수 있다.
도 15는 다양한 실시 예에 따른 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 15를 참조하면, 1500 동작에서 제 1 인증 서비스의 트랜잭션이 발생하는 경우, AP(701)는 1502동작으로 진행하여 제 1 통신모듈(1403)로 상기 제1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
상기 제 1 통신모듈(1403)는 1504동작에서 제 2 통신모듈(1405)로 지불 결제를 위한 제 1 인증정보를 요청할 수 있다.
상기 제 2 통신모듈(1405)는 1506동작에서, 상기 제 2 통신모듈(1405)에서 보안영역(1507)으로부터 지불 결제를 위한 제 1 인증정보를 획득할 수 있다.
상기 제 2 통신모듈(1405)는 1508동작에서, 상기 획득한 지불 결제를 위한 인증 정보를 상기 제 1 통신모듈(1403)로 전달할 수 있다.
상기 제 1 통신모듈(1403)는 1510동작에서, 상기 인증 정보를 처리하여 제 1 통신모듈(1210)을 통해 송신할 수 있다.
다양한 실시 예에서, 1502동작 이후에 상기 제 1 통신 모듈(1403)은 1516 동작에서 상기 인증 정보를 메모리(1409)로부터 획득할 수 있다. 상기 획득한 인증 정보는 1510 동작에서 송신할 수 있다.
반면, 1500동작에서 제 2 인증 서비스의 트랜잭션이 발생하는 경우, 상기 제 2 통신모듈(1405)는 1512동작으로 진행하여 보안 모듈(1407)으로부터 지불 결제를 위한 제 2 인증정보를 획득할 수 있다.
상기 제 2 통신모듈(1407)는 1514동작에서 상기 인증 정보를 처리한 후 제 2 통신모듈(1212)을 통해 송신할 수 있다.
도 16은 다양한 실시예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시하고 있다.
상기 도 16을 참조하면, AP(1601)는 상기 도 12의 프로세서(1200)에 대응하고, 제 1 통신모듈(1603) 는 상기 도 12의 제 1 통신모듈 (1210)에 대응하고, 제 2 통신모듈(1605)는 상기 도 12의 제 2 통신모듈 (1212)에 대응할 수 있다. 상기 제 1 통신모듈(1603) 및 제 2 통신모듈(1605)는 전기적으로 AP (1601)에 연결되어 있고, 제 1 보안 모듈(1607)은 제 1 통신모듈(1603)에 전기적으로 연결될 수 있다. 그리고 제 2 보안 모듈(1609)은 제 2 통신모듈(1609)에 전기적으로 연결될 수 있다.
다양한 실시예에서, 제 1 통신 모듈(1603)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 제 2 통신 모듈(1605)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 제 1 보안 모듈(1607)은 제 1 내장형 보안 요소(eSE)일 수 있다. 제 2 보안 모듈(1609)은 제 2 내장형 보안 요소(eSE)일 수 있다.
상기 AP(1601)는 제 1 인증서비스 트랜잭션을 검출하고, 제 1 인증서비스 트랜잭션 명령을 상기 제 1 통신모듈(1603)로 전달할 수 있다. 또한, 상기 AP(1601)는 상기 제 2 통신모듈(1605)로부터 상기 제 2 인증정보에 대응하는 인증결과를 제공받아 디스플레이 모듈(1208)에 디스플레이하도록 제어할 수 있다.
상기 제 1 통신모듈(1603)는 상기 AP(1601)로부터 인증서비스 트랜잭션 명령을 수신할 시, 상기 제 1 보안 모듈(1607)으로부터 상기 제 1 인증정보(1607-1)를 획득하고, 상기 제 1 인증정보(1607-1)를 처리하여 상기 POS 기기로 송신할 수 있다.
상기 제 2 통신모듈(1605)는 상기 전자장치가 POS 기기에 근접하거나 접속될 시, 인증서비스 트랜잭션을 검출하고, 상기 제 2 보안 모듈(1609)으로부터 상기 제 2 인증정보(1609-2)를 획득하고, 상기 제 2 인증정보(1609-2)를 처리하여 상기 POS 기기로 송신할 수 있다. 또한, 상기 제 2 통신모듈(1605)는 인증결과에 대한 정보를 피드백 받아 그 결과를 상기 AP(1601)로 제공할 수 있다.
상기 제 1 보안 모듈(1607)은 상기 제 1 통신모듈(1603)에 의해서만 액세스 가능하며, 상기 제 2 보안 모듈(1609)은 상기 제 2 통신모듈(1605)에 의해서만 액세스 가능하며, 상기 AP(1601) 또는 상기 제 1 통신모듈(1603)는 상기 제 2 보안 모듈(1609)을 액세스할 수 없고, 상기 AP(1601) 또는 상기 제 2 통신모듈(1605)는 상기 제 1 보안 모듈(1607)을 액세스할 수 없는, 저장공간일 수 있다.
다양한 실시 예에서, 상기 제 1 인증정보(1607-1)는 전기적으로 AP(1601)와 연결되는 일반 메모리(1611)에 저장될 수 있다. 여기서, 상기 일반 메모리(1611)는 노멀 영역의 상기 AP(1201)에 의해 액세스될 수 있다.
도 17은 다양한 실시 예에 따른 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 17을 참조하면, 1700동작에서 제 1 인증 서비스의 트랜잭션이 발생하는 경우, AP(1601)는 1702동작으로 진행하여 제 1 통신모듈(1603)로 상기 제 1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
상기 제 1 통신모듈(1603)는 1704동작에서, 제 1 보안 모듈(1607) 또는 메모리(1711) 중 적어도 하나로부터 지불 결제를 위한 인증정보(예: 제 1 인증정보)를 획득할 수 있다.
상기 제 2 통신모듈(1605)는 1706동작에서, 상기 인증 정보를 처리하여 제 1 통신모듈(1603)을 통해 송신할 수 있다.
반면, 1700동작에서 제 2 인증 서비스의 트랜잭션이 발생하는 경우, 상기 제 2 통신모듈(1605)는 1708동작으로 진행하여 제 2 보안 모듈(1609)으로부터 지불 결제를 위한 인증 정보를 획득할 수 있다.
상기 제 2 통신모듈(1605)는 1710동작에서 상기 인증 정보를 처리하여 제 2 통신모듈(1605)을 통해 송신할 수 있다.
도 18은, 다양한 실시예에 따른, 결제 기능을 수행할 수 있는 전자 장치(예: 전자 장치(101))의 실행 환경(1801)에서 실행되기 위한 프로그램 모듈들을 도시하는 블럭도(1800)이다. 도18을 참조하면, 실행 환경(1801)은, 예를 들면, REE(1810) 및 TEE(1820)를 포함할 수 있다.
한 실시예에 따르면, REE는 결제를 위해서, 예를 들면, 결제 어플리케이션(1830)(예: 결제 (어플리케이션) 385), 결제 매니저(1840)(예: 결제 매니저(354)), 및 커널(1850)(예: 커널(320))을 포함할 수 있다. 한 실시예에 따르면, 결제 어플리케이션(1830)은, 예를 들면, 결제 관리 모듈(1831), 서버 연동 모듈(1833), 인증 모듈(1835), 주변 장치 관리 모듈(1837)을 포함할 수 있다. 또한, 도 32 내지 도 36의 결제 어플리케이션을 포함할 수 있다.
한 실시예에 따르면, 결제 관리 모듈(1831)은 카드 등록, 카드 인증, 카드 삭제, 및 결제를 위한 동작을 수행할 수 있다. 결제 관리 모듈은 사용자의 카드를 등록할 수 있다. 전자 장치(예: 전자 장치(101))는 사용자로부터 카드 등록 요청을 수신할 수 있다. 전자 장치는 카메라 모듈을 이용하여 카드 이미지를 획득할 수 있다. 결제 관리 모듈은 OCR 모듈을 통해 카드 이미지를 획득할 수 있다. 결제 관리 모듈은 카드 정보에 연관된 정보(예: 비밀번호, 집 주소, 이메일 주소, 전화 번호, 또는 계정 ID)를 사용자로부터 입력 받거나 결제 서버(720)로부터 획득할 수 있다.
한 실시예에 따르면, 결제 관리 모듈(1831)은 등록된 카드를 디스플레이(160)를 통해 사용자에게 표시할 수 있다. 사용자는 등록된 카드 중 적어도 일부 정보(예: 카드 이름, 집 주소, 전화 번호, 결제 시도 횟수, 또는 결제 알림 정보 수신 여부 등)를 수정할 수 있다. 결제 관리 모듈(1831)은 각각의 카드에 따른 거래 내역을 표시할 수 있다. 결제 관리 모듈(1831)은 전자 장치와 기능적으로 연결된 웨어러블 장치(예: 스마트 와치)에 등록된 카드 정보를 표시할 수 있다.
한 실시예에 따르면, 결제 관리 모듈(1831)은 등록된 카드를 이용하여 결제 동작을 수행할 수 있다. 사용자는 결제를 위해 등록된 다수의 카드 중 하나의 카드를 선택할 수 있다. 사용자는 전자 장치를 POS(point of sales)(740)로 가져갈 수 있다. 결제 관리 모듈(1831)은 POS(740)로부터 전달받은 제품 정보(예: 가격)를 디스플레이(160) 통해 표시할 수 있다. 결제 관리 모듈(1831)은 결제를 위해 인증 모듈(1835)을 통해 사용자 인증(예: 지문 인증)을 수행할 수 있다. 인증이 완료 된 경우, 결제 관리 모듈(1831)은 결제가 완료되었다는 알림 정보를 디스플레이(160)를 통해 표시할 수 있다.
한 실시예에 따르면, 전자 장치(전자 장치 101 또는 전자 장치710)는 MST 모듈 또는 NFC 모듈 중 적어도 하나를 이용하여 결제 정보를 POS로 전송할 수 있다. 인식률을 높이기 위해 MST 모듈과 NFC 모듈을 동시에 이용하여 결제 정보를 POS로 전송할수도 있다. 혹은, MST 모듈을 이용하여 전송하고, 결제가 실패했을 경우 NFC 모듈을 이용하여 전송할 수 있다. 결제가 실패한 경우를 인식하는 방법은 POS 또는 3rd party(예: financial institution)로부터 알림을 받거나 지정된 시간을 초과했을 경우를 포함할 수 있다. 다양한 실시예는 순서에 한정하지 않으며, 반대로도 가능하다.
한 실시예에 따르면, 전자 장치는 사용자가 기 등록된 카드 중 적어도 하나의 카드를 삭제하는 요청을 수신할 수 있다. 결제 관리 모듈(1831)은 해당 카드에 해당하는 정보를 메모리(130)로부터 삭제할 수 있다. 결제 관리 모듈(1831)은 상기 적어도 하나의 카드에 해당하는 정보를 삭제할 것을 결제 서버(720)에 요청할 수 있다.
한 실시예에 따르면, 결제 관리 모듈(1831)은 카드의 소유주와 카드 등록을 하는 사용자가 일치하는지 확인할 수 있다. 결제 관리 모듈(1831)은, 예를 들면, ID&V(identification & verification) 모듈을 포함할 수 있다. 결제 관리 모듈(1831)은 문자, 이메일, ARS, 또는 전화 통화를 통해 사용자 인증을 수행할 수 있다. 또한, 카드사 또는 은행에서 발행한 어플리케이션을 통해 인증을 수행할 수 있다. 결제 관리 모듈(1831)을 통해 등록된 카드는 인증을 거친 후 사용될 수 있다.
한 실시예에 따르면, 결제 관리 모듈(1831)은 OCR 모듈을 포함할 수 있다. OCR 모듈은 사람이 쓰거나 기계로 인쇄한 문자의 이미지를 스캐너로 획득하여 기계가 읽을 수 있는 문자로 변환할 수 있다. 전자 장치는 카메라 모듈을 통해 사용자가 소지한 카드의 이미지를 획득할 수 있다. OCR 모듈은 카드 이미지로부터 카드에 기입된 이미지, 문자, 또는 숫자를 기계가 읽을 수 있는 문자로 변환할 수 있다. OCR 모듈은 변환된 문자를 통해 사용자의 카드 정보(예: 카드 번호, 사용자 이름, 또는 유효 기간)를 획득할 수 있다. 전자 장치는 OCR 모듈을 통해 사용자의 카드 정보를 획득하여 카드 등록 과정을 수행할 수 있다.
한 실시예에 따르면, 결제 관리 모듈(1831)은 결제를 하기 위해 생성된 바코드를 디스플레이(160)를 통해 표시할 수 있다. 예를 들어, 결제 관리 모듈(1831)은 POS(740)로부터 바코드 리더기를 통해 결제가 수행될 수 있는 바코드를 생성하는 명령을 수신할 수 있다. 결제 관리 모듈(1831)은 상기 명령에 기반하여 바코드를 생성할 수 있다.
한 실시예에 따르면, 서버 연동 모듈(1833)은 결제 서버(720) 또는 토큰 서비스 프로바이더(730)로부터 결제 관련 메시지, 기기 관련 메시지, 또는 서비스 관련 메시지를 수신할 수 있다. 서버 연동 모듈(1833)은 상기 메시지를 결제 관리 모듈(1831)로 전달할 수 있다.
한 실시예에 따르면, 서버 연동 모듈(1833)은, 예를 들면, 푸시 관리 모듈(push management module) 및 계정 관리 모듈(account management module)을 포함할 수 있다. 예를 들어, 결제 서버(720)로부터 수신한 메시지가 토큰(token)과 연관된 푸시 알림(push notification) 형태면 푸시 관리 모듈에서 수신한 메시지를 처리하고, 수신한 메시지가 계정 관련 정보(예: 삼성 계정)면 계정 관리 모듈에서 수신한 메시지를 처리할 수 있다.
한 실시예에 따르면, 푸시 관리 모듈은 결제 서버(720)로부터 수신된 푸시 알림 또는 푸시 메시지(push notification 또는 push message) 정보를 연산, 처리(handle)할 수 있다. 푸시 메시지는 결제 매니저(payment manager)(1840 또는 354) 내부의 결제 중계 모듈(1841)을 통하여 결제 어플리케이션(1830) 내부의 서버 연동 모듈(1833)로 전달될 수 있고, 직접적으로 결제 어플리케이션(1830)으로 전달 될 수 있다. 전달된 푸시 메시지 중에서 적어도 일부 메시지는 결제 관리 모듈(1831)로 전달되어 카드 관련 정보를 업데이트 하고 결제 서버(720)와 동기화 될 수 있다.
한 실시예에 따르면, 결제 서비스(720)는 계정 관련 정보를 관리하는 계정 서버 또는 결제 관련 정보를 제공하는 토큰 요구자 서버를 포함할 수 있다. 계정 서버와 토큰 요구자 서버는 별도의 장치(예: 서버 106)로 구현될 수도 있고, 하나의 장치에 포함될 수도 있다.
한 실시예에 따르면, 푸시 관리 모듈에서 수신되는 메시지 정보는 아래 표 1과 같이 권한 설정(예: token provisioning), 중지(예: token suspension), 폐기(예: token disposal), 상태 전환(예: token status change), 추가 발급(예: token replenishment), 결제 확인(예: transaction notification) 등의 토큰 및 결제 관련 정보를 포함할 수 있다.
계정 관리 모듈에서 송신/수신하는 메시지는 분실 전자 장치 확인 기능(예: lost device, find my mobile), 원격 차단(예: remote lock/unlock), 멤버십 관리(예: loyalty/membership cards), 웹 연동 기능(예: website portal-online) 등의 전자 장치 관련된 정보 중 적어도 일부를 포함 할 수 있다.
Push management Use case details
Token Token provisioning withID & V 외부서버에서 전자 장치 내 푸시 관리 모듈로 Identification, verification 목적의 카드 정보를 토큰 설치 및 인증을 위해 내려줌
Token suspension 외부서버에서 전자 장치 내 푸시 관리 모듈로 토큰의 사용 중지를 위해 전달
Token resume 외부서버에서 전자 장치내 푸시 관리 모듈로 토큰의 사용 재개를 위해 전달
Token disposal 외부서버에서 전자 장치내 푸시 관리 모듈로 토큰 폐기를 위해 전달
Token status change 외부서버에서 전자 장치내 푸시 관리 모듈로 카드 상태 변경을 위해 전달
Token Replenishment 외부서버에서 전자 장치내 푸시 관리 모듈로 토큰 추가 발급을 위해 전달
Transaction Notification 외부서버(결제서버)에서 전자 장치내 푸시 관리 모듈로 토큰 결제 내역을 전달
Device Lost Device (Find my mobile) 외부 서버(서비스서버)와 전자 장치내 계정관리모듈간의 분실 내역 정보 전달
Remote lock /unlock 외부 서버(서비스서버)와 전자 장치내 계정관리모듈간의 원격 기기 차단 명령 전달
Loyalty/Membership cards 외부 서버(서비스서버)와 전자 장치내 계정관리모듈간의 멤버십 정보 전달
Website (online) 외부 서버(서비스서버)와 전자 장치내 계정관리모듈간의 웹 연동 기능 지원
한 실시 예에 따르면, 결제 관리 모듈에서 획득된 token provisioning ID & V 정보가 결제 서버(720)를 거쳐 외부 서버로 성공적으로 전달되고 전달된 토큰(token) 관련 정보가 유효(validate)하면, 예를 들면, “push token {id} status changed” 메시지를 서버 연동 모듈(1833)에서 이를 수신하여 결제 관리 모듈(1831)로 전달할 수 있다.
한 실시 예에 따르면, 전자 장치의 결제 관리 모듈(1831)에서 획득된 카드 정보 일시 중지(예: token suspension) 정보는 결제 서버(720)의 사용 중지 명령을 결제 어플리케이션(1830)으로 전달하여 모바일 결제를 위한 카드 설정 상태를 활성(active) 상태에서 비활성(inactive) 상태로 전환할 수 있다.
한 실시 예에 따르면, 전자 장치의 분실이 발생하면 결제 서버(720)는 결제 서버(720)에 저장된 모든 토큰 정보를 삭제 혹은 일시 정지시킬 수 있다. 이를 결제 어플리케이션(1830)에 동기화하기 위해 푸시 메시지를 전송할 수 있다. 결제 서버(720)는 상기 결제 중계 모듈(1831) 또는 서버 연동 모듈(1833)(예: 푸시 관리 모듈, 계정 관리 모듈)을 통하여 결제 어플리케이션(1831)으로 전달될 수 있다.
표 2를 참조하면, 전자 장치 및 결제 중계 모듈(1831)에서 지원하는 푸시 API 내용으로 결제 중계 모듈(1831)에 따라 구분되어 별도로 구현될 수 있다.
API Description type validation
device.push Contains push platform Json required
device.push.spp.id Samsung Push Id. String required
device.push.gcm.id Google Push Id. String optional
한 실시 예에 따르면, 계정 관리 모듈(account management module)은 결제 서버(720)와 주고 받는 사용자 고유의 식별자(예: Samsung account id 또는 device id), 카드, 또는 멤버십 등의 정보를 결제 어플리케이션에서 관리 할 수 있다. 상기 사용자 식별자는 여러 사업자의 카드(예: 비자 카드 또는 마스터 카드)를 관리하기 위하여 사용자가 가입한 계정 또는 전자 장치와 관련된 포털 계정 또는 전자 장치의 고유 식별자(예: 모델명, MAC address, IMEI, 고유 번호(serial number), UUID, 또는 아이디(ID) 등)를 포함할 수 있다. 더하여, 상기 고유 식별자는 상기 계정을 통하여 결제 서버(720)에서 생성하여 전달받은 값일 수 있다.
계정 관리 모듈은 상기 사용자의 계정 또는 전자 장치 식별자를 이용하여 카드의 등록, 추가, 삭제, 중복 등록, 사용 중지, 또는 사용 재개 등을 관리 할 수 있다. 이 외에도 전자 장치와 웨어러블 장치(wearable device))간에 카드 정보를 송출 (import/export)하는 경우에도 생성된 계정 또는 전자 장치 식별자를 기반으로 카드의 등록, 추가, 삭제, 중복 등록 확인, 사용 중지, 또는 사용 재개 등을 관리 할 수 있다.
이때, 계정 기반의 관리 방법은 하나의 계정을 공유하는 복수의 전자 장치 또는 복수 사용자가 관리되어 전자 장치 별로 고유의 계정(예: 삼성 계정)을 사용하거나 하나의 계정으로 복수의 전자 장치를 통합 관리될 수 있다.
한 실시 예에 따르면, 결제 관리 모듈(1831)의 광학 문자 인식 모듈(예: OCR 모듈)을 통해 생성된 제 1 카드(예: 비자 카드)와 제 2카드(예: 마스터 카드) 정보는 삼성 계정 가입 시 생성한 계정(예: registration02@samsung.com)을 기반으로 상기 카드를 등록할 수 있다. 이때, 등록된 정보는 결제 서버(720)와 상기 생성한 계정 기반으로 동기화 될 수 있다.
한 실시 예에 따르면, 바코드 인터페이스(barcode interface)를 통해 생성된 멤버십(membership) 정보는 삼성 계정 가입 시 생성한 계정(예: registration01@samsung.com)을 기반으로 제 1카드(예: 삼성 포인트 카드(Samsung points card)), 제 2카드(예: CJ 멤버십 포인트 카드(CJ membership points card))를 등록할 수 있다. 상기 등록된 정보는 결제 서버(720)와 상기 생성한 계정 기반으로 동기화 될 수 있다.
또한 사용자는 결제 어플리케이션에서 로그인 이후 계정 기반으로 카드의 활성/비활성(active / inactive) 상태 결정하여 계정 관리 모듈(1831)을 이용하여 결제 서버(710)로 전달 할 수 있으며 이와는 반대로 서버 관리 웹 페이지(예: 서버 포털)에서 계정 기반의 카드 상태를 관리 전환시킬 수 있다. 또한, 계정 관리 모듈은 서비스 계정(예: registration01@samsung.com)과 연계된 카드 정보(예: 비자 카드 ID & V) 및 멤버십 정보(예: CJ membership points, registraion001@Cj.com)를 서버와 연동하여 관리할 수 있다. 상기 멤버십 정보는 카드 결제 시 결제 처리 정보(예: 결제 금액)와 멤버십 누적 정보(예: 포인트 점수, 마일리지 등)를 연동하여 자동으로 적립, 차감할 수 있다.
이처럼 계정 관리 모듈을 포함하는 결제 어플리케이션이 설치되면 어느 기기에서라도 사용자의 계정 로그인(log in 또는sign in) 과정 한번으로 기존의 등록된 카드 일부 또는 전부의 설정 상태를 지속적으로 연동하여 사용할 수 있다. 또한, 인증 보안 레벨이 상대적으로 낮은 멤버십 정보도 사용자의 계정 중심으로 등록, 연계되어 추가적인 인증 과정을 줄 일 수 있다.
한 실시예에 따르면, 인증 모듈(1835)은 결제를 위한 카드 또는 사용자의 인증을 수행하기 위한 UI(user interface)를 디스플레이(160)를 통해 표시할 수 있다. 인증 모듈은, 예를 들면, 생체 정보 모듈을 포함할 수 있다.
한 실시예에 따르면, 생체 정보 모듈은 사용자의 생체 정보를 획득할 수 있다. 사용자의 생체 정보는, 예를 들면, 지문, 홍채, 얼굴 이미지, 목소리, 심장 박동, 또는 혈압 정보를 포함할 수 있다. 전자 장치는 센서 모듈을 통해 사용자의 생체 정보를 획득할 수 있다. 예를 들면, 지문 센서를 통해 사용자의 지문 정보를 획득할 수 있다. 또는, 전자 장치는 카메라 모듈을 통해 사용자의 홍채 정보를 획득할 수 있다. 생체 정보 모듈은 사용자의 생체 정보를 획득하기 위한 UI(user interface)를 디스플레이(160)를 통해 표시할 수 있다.
한 실시예에 따르면, 생체 정보 모듈은 사용자가 전자 장치에 등록된 카드 정보를 이용하여 결제를 시도 할 때, 전자 장치에 기능적으로 연결된 보안 메모리(예: 내장형 보안 요소(eSE) 또는 보안 환경에서 접근 가능한 메모리)로부터 보안 데이터(예: 토큰)를 획득하기 위해 인증을 수행할 수 있다. 전자 장치는 사용자 인증을 위해 생체 정보 모듈을 통해 사용자의 생체 정보(예: 지문 또는 홍채)를 획득할 수 있다. 획득된 생체 정보는 결제 매니저(1840)의 생체 정보 관리 모듈(1843)에게 전달할 수 있다. 한 실시예에 따르면 보안 메모리는 암호화된 키로 저장되는 데이터를 포함하는 메모리일 수 있다.
한 실시예에 따르면, 생체 정보 모듈(1843)은 사용자가 인터넷 웹 페이지 상의 전자 결제 진행 시 전자 장치에 등록된 카드 정보와 생체 정보를 이용하여 결제를 진행 할 수 있다. 전자 장치에 기능적으로 연결된 메모리 또는 보안 모듈(예: eSE 또는 보안 환경에서 접근 가능한 메모리)로부터 보안 데이터(예: 토큰)를 획득하기 위해 사용자는 인증을 수행할 수 있다. 전자 장치에서 사용자 인증이 성공적으로 진행되면 이를 외부 서버와 연동하여 별도의 인터넷 웹 페이지 상의 전자 결제 과정 없이 이를 빠른 자동 인증(예: FIDO: fast identity online) 하도록 할 수 있다. 즉, 온라인 결제 시에 필요한 인증 과정을 생체 정보 모듈과 연동하여 빠른 인증을 진행 할 수 있다.
한 실시예에 따르면, 전자 장치는 사용자의 지문과 결제할 카드를 지정해 놓을 수 있다. 예를 들어, 사용자는 결제 어플리케이션에서 지문을 이용하여 인증을 수행하는 경우, 오른손 엄지는 비자 카드, 오른손 검지는 마스터 카드 등으로 지정하여 사용자가 인증하는 순간 해당 카드로 결제하도록 할 수 있다.
한 실시예에 따르면, 주변 장치 관리 모듈(1837)은 전자 장치와 기능적으로 연결된 외부 장치를 관리할 수 있다. 주변 장치 관리 모듈(1837)은, 예를 들면, MST 주변 장치 모듈 및 웨어러블 장치 모듈을 포함 할 수 있다.
한 실시예에 따르면, MST 주변 장치 모듈은 MST 액세서리(예: LoopPayTM사의 fob 형태 장치)와 전자 장치 간의 유무선 연결 여부를 출력하고 이를 기반으로 사용자에게 적합한 UI(user interface)를 제공할 수 있다. UI는 MST 액세서리가 연결된 상태에서 카드 등록, 삭제, 또는 결제 과정을 진행하고 출력 할 수 있다. MST 주변 장치 모듈은 MST 액세서리와 연결된 상태에서 결제에 필요한 다양한 카드 정보를 전자 장치 또는 MST 액세서리 내 별도의 메모리에 저장할 수 있다. 이는 MST 액세서리와 비 연결 상태에서도 전자 장치 또는 MST 액세서리 독립적으로 결제를 진행할 수 있도록 할 수 있다.
웨어러블 장치 모듈은 웨어러블 장치(예: 시계, 헤드셋, 안경, 또는 반지 등)와 전자 장치 간의 유무선 연결 여부를 출력하고 이를 기반으로 사용자에게 적합한 UI(user interface)를 제공할 수 있다. 상기 유무선 연결은 BT, BLE, WiFi, Zigbee, 또는 Z-wave 등의 다양한 인터페이스를 포함할 수 있고, 특정 accessory protocol(samsung accessory protocol(SAP))을 적용하여 구현할 수 있다. 상기 UI는 웨어러블 장치가 연결된 상태에서 카드 등록, 삭제, 결제 수행 과정을 진행하고 이를 출력 할 수 있다. 상기 카드 등록, 삭제, 결제 수행 과정에서 웨어러블 장치 모듈은 웨어러블 장치와 근거리 기반의 secure session을 생성 여부를 출력하고 전자 장치 또는 웨어러블 장치 상의 사용자 입력 값을 송 수신하고 이를 표시할 수 있다. 상기 사용자의 입력은 결제에 필요한 다양한 카드 정보와 그 외의 부가 인증 정보(예: PIN, 사용자 고유 패턴 관련 데이터, 지문 인식 관련 데이터, 웨어러블 장치 베젤부 또는 디스플레이(160)의 터치 입력 값 등)를 포함할 수 있다.
한 실시예에 따르면, 전자 장치는 웨어러블 장치 또는 액세서리에 하나의 결제 정보를 공유할 수 있다. 예를 들어, 하나의 비자 카드에 대한 정보를 웨어러블 장치와 전자 장치에 모두 저장할 수 있다. 한 실시예에 따르면, 전자 장치는 웨어러블 장치 또는 액세서리에 하나의 카드 정보에서 발생된 다른 카드 정보를 각각 저장할 수 있다. 예를 들어, 하나의 비자 카드 정보에서 발급된 다른 토큰을 하나는 전자 장치에 저장하고 다른 하나는 액세서리 또는 웨어러블 장치에 저장할 수 있다. 한 실시예에 따르면, 하나의 카드정보에서 발급된 다른 토큰을 하나는 전자 장치에 저장하고 다른 하나는 액세서리 또는 웨어러블 장치에 저장하는 경우, 하나의 장치의 결제 모듈이 활성화 되면, 다른 장치의 결제모듈은 비활성화할 수 있다. 예를 들어, 하나의 비자 카드 정보에서 발급된 다른 토큰이 하나는 전자 장치에 저장되고 다른 하나는 액세서리 또는 웨어러블 장치에 저장되는 경우, 웨어러블 장치로 결제할 때는 전자 장치의 결제가 비활성화 될 수 있다. 더하여, 전자 장치로 결제를 수행할 경우에는 웨어러블 장치의 결제가 비활성화 될 수 있다.
한 실시예에 따르면, 결제 매니저(1840)는, 예를 들면, 결제 중계 모듈(1841), 생체 정보 관리 모듈(1843), 및 보안 환경 중계 모듈(1846)을 포함 할 수 있다. 한 실시예에 따르면, 결제 중계 모듈(1841)은 카드 또는 카드에 대응하는 정보(예: 토큰)를 결제 어플리케이션, 커널 또는 결제 서버(710)로 중계할 수 있다. 결제 중계 모듈(1841)은 통신 모듈(예: NFC 모듈, MST 모듈)을 통해 오프라인 결제를 할 수 있다. NFC를 이용한 결제 방식은 POS를 통해서 구동 가능하고, MST 를 이용한 결제 방식은 사용자 입력에 의해 구동 될 수 있다. 또한, 결제 중계 모듈(1841)은 통신 모듈(예: 셀룰러 모듈, RF 모듈, WIFI 모듈 등)을 통해 온라인 결제를 할 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 카드 또는 카드에 대응하는 정보(예: 토큰)의 상태 관리(예: card/token lifecycle 관리)를 할 수 있다. 결제 중계 모듈(1841)은 지불과 관련된 적어도 하나의 API(application programming interface)를 결제 어플리케이션(1830)에 제공할 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 적어도 하나의 결제와 관련된 시스템 서비스들에 의해 제공되는 인터페이스, 결제 모듈로 접근 하기 위한 결제 서비스, 커널(kernel) 무결성 인증을 위한 TIMA(trustzone-based integrity measurement architecture), 지문인식 결과 조회(예: 보안/비보안 모드 모두 지원), PIN 또는 PAN(primary account number) 입력 등을 위한 보안 UI를 제공하는 시스템 서비스 인터페이스들을 더 포함할 수 있다. 결제 중계 모듈(1841)은 TEE(1820)에 메시지 또는 명령어를 전달하기 위하여, 암호화 라이브러리를 포함할 수 있다. 결제 중계 모듈(1841)은 상기 암호화 라이브러리를 통하여 TEE(1820)와 메시지 또는 명령어를 주고 받을 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 일반적인 카드 관리 기능으로서 카드 추가, 삭제, 갱신 등의 기능을 제공하는 카드 관리 기능을 포함 할 수 있다. 결제 중계 모듈(1841)은 제 1 결제 SDK(software development kit) 또는 제 2결제 SDK를 포함할 수 있다. 제 1 결제 SDK(예: 삼성 SDK)는 전자 장치에 내장되어 있을 수 있다. 제 2 결제 SDK는 카드사 또는 은행에서 제공될 수 있으며, 전자 장치에 설치 될 수 있다. 결제 중계 모듈(1841)은 제 1 결제 SDK 또는 제 2 결제 SDK를 이용하여 카드 정보에 따라 해당하는 결제 SDK를 선택할 수 있다. 또한, 기본 카드를 설정 하거나 기본 카드 외의 다른 카드를 선택할 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 일반 토큰 및 키 관리 기능으로서 초기 권한 설정(token provisioning), 추가 발급(token replenishment), 중지(token suspension), 재개(token resume), 폐기(token disposal) 등의 메시지를 결제 서버(710)로 전송할 수 있다.
한 실시예에 따르면, 결제 모듈(1821)은 전자 장치 또는 외부의 다른 전자 장치로부터 토큰 및 토큰 크립토그램(cryptogram)을 획득할 수 있다. 한 실시예에 따르면, 상기 토큰 크립토그램은 이후 암호 정보, 암호, 크립토그램(cryptogram), 암호화, 암호 방법과 같은 의미로 사용 될 수 있다. 한 실시예에 따르면, 상기 토큰 크립토그램은 결제 트랜젝션의 유효성을 체크하기 위한 데이터를 포함할 수 있다. 한 실시예에, 따르면, 결제 모듈(1821)을 도 32 내지 도 35의 보안 어플리케이션을 포함할 수 있다. 예를 들면, 수신한 시간정보를 보안 모듈(예: eSE)에 전달할 수 있다. 또 다른 실시예에 따르면, 상기 TA는 보안 모듈(예: eSE)로부터 트랙2 형태의 데이터를 받아 결제 인증(verification) 데이터를 생성하여 트랙2 형태의 데이터 안에 삽일 할 수 있다. 상기 토큰 및 토큰 크립토그램(cryptogram)을 생성할 수 있는 키(예를 들어, limited used key(LUK) 또는 single used key)는 REE(1810) 또는 TEE(1820)에 저장될 수 있다. 더하여, 상기 REE(1810)에 상기 토큰과 상기 키를 저장하는 경우에는 상기 TEE의 결제 모듈이 TEE(1820)의 키(예를 들어, device root key(DRK))를 이용하여 암호화하여 저장할 수 있다. 전자 장치가 결제를 수행하는 경우, 결제 중계 모듈(1841)은 상기 암호화된 토큰을 결제 모듈을 통해 복호화된 상태로 획득할 수 있다. 상기 전자 장치는 상기 토큰 크립토그램을 생성할 수 있는 키 또는 토큰이 TEE에 저장되는 경우, 상기 TEE의 키를 이용하여 암호화된 형태로 저장할 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 토큰 서비스 프로바이더(token service provider(TSP))(730)로부터 푸시 메시지(push message)를 받아 결제 어플리케이션에 전달할 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 제 1 결제SDK(카드사 또는 은행 제공)가 자체 토큰 관리 기능을 제공하는 경우, 토큰 관리 기능 요청 수신 시 상기 제 2 결제SDK로 중계하는 기능을 더 포함 할 수 있다. 예를 들어, 비자 카드의 SDK로 토큰 또는 key를 획득한 결제 중계 모듈은 삼성 SDK를 이용하여 TEE(1820) 내의 결제 모듈에 전달할 수 있다. 한 실시예에 따르면, 결제 중계 모듈(1841)은 결제 시 별도 하드웨어 장치(예: 보안 모듈 또는 secure element(SE)) 없이 소프트웨어 만으로 가상 카드를 전자 장치에서 사용 가능하게 할 수 있는 HCE(host card emulation) 기능을 결제 프레임워크 상에 더 포함 할 수 있다. 상기 HCE 기능은 토큰 및 토큰 크립토그램(token cryptogram)을 통신 모듈(예: NFC)을 통해 POS와 관련된 메시지 규격(예: application protocol data unit(APDU))을 이용하여 전달 할 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 POS로부터 수신 된 메시지를 처리하는 기능을 포함 할 수 있다. 상기 POS 관련 메세지 처리 기능은 POS에 응답 할 결제 데이터를 관리하는 기능을 포함 할 수 있다. 상기 POS 관련 메시지 해석 기능은 제1 결제 SDK가 자체 POS 관련 메세지 처리 기능을 제공하는 경우 상기 POS 관련 메세지를 상기 제1 결제 SDK로 중계하는 기능을 더 포함 할 수 있다. 한 실시예에 따르면, 결제 중계 모듈(1841)은 상기 카드 데이터, 토큰 데이터, 또는 트랜잭션 데이터 등을 저장하기 위한 데이터베이스를 적어도 하나 포함 할 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 NFC로 결제하는 방법과 MST로 결제하는 방법 중 적어도 하나의 방법을 선택할 수 있다. 예를 들어, NFC로 먼저 결제를 수행하고, MST를 결제하는 방법, MST로 먼저 결제를 수행하고 NFC로 결제를 수행하는 방법, NFC와 MST를 같이 결제를 수행하는 방법을 포함할 수 있다. 한 실시예에 따르면, 한 통신 모듈로 결제를 수행한 후 다른 통신 모듈로 결제를 수행하는 경우, 결제 중계 모듈은 먼저 결제를 수행한 통신 모듈로 결제를 수행한 결과에 대한 응답이 없거나 지정된 시간이 지난 후에 다른 통신 모듈로 결제를 수행할 수 있다.
한 실시예에 따르면 결제 중계 모듈(1841)은 하나의 카드에 대해서 토큰과 PAN 정보를 모두 가지고 있는 경우, 적어도 하나를 이용하여 결제를 수행할 수 있다. 결제 중계 모듈은 POS가 PAN으로 결제 가능한지 토큰을 결제 가능한지를 확인할 수 있다. 예를 들어, 전자 장치는 BLE를 통해서 결제 가능한 정보를 수신할 수 있고, 결제 중계 모듈은 상기 정보를 확인할 수 있다. 결제 중계 모듈은 확인한 정보를 기반으로 토큰으로 결제 가능한 경우에는 토큰으로 결제를 수행하고, PAN으로 결제 가능한 경우에는 PAN으로 결제를 수행하도록 할 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 결제 네트워크에 의해 제공되는 SDK를 더 포함 할 수 있다. 상기 SDK는 토큰 관리, POS 관련 메세지 처리, 또는 토큰/카드 데이터베이스를 포함 할 수 있다.
한 실시예에 따르면, 보안 환경 중계 중계 모듈(1846)은, 결제 모듈(1821) 혹은 생체 정보 모듈(1825)에서 제공하는 기능을 사용 하기 위해 생체 정보 드라이버 모듈(1851)이나 보안환경 드라이버 모듈(1853)에 결제 어플리케이션이 접근 할 수 있도록 중계하는 기능을 더 포함할 수 있다. 결제 중계 모듈(1841)은 보안 환경 중계 모듈(1846)에 메시지 또는 명령어를 전달하기 위하여, 암호화 라이브러리를 포함할 수 있다. 결제 중계 모듈(1841)은 상기 암호화 라이브러리를 통하여 보안 환경 중계 모듈(1846)과 메시지 또는 명령어를 주고 받을 수 있다.
본 발명의 다양한 실시예는 상기 결제 매니저(1840) 상에 TEE의 보안 식별자 처리 모듈의 기능을 결제 어플리케이션에서 사용 할 수 있도록 연결 된 보안 환경 중계 모듈(1846)을 더 포함 할 수 있다.
한 실시예에 따르면, 상기 결제 중계 모듈(1841)은 결제 어플리케이션(1830)의 PIN 입력을 통한 인증 요청을 TEE(1820)의 보안 식별자 처리 모듈(1823)로 중계하는 기능을 포함 할 수 있다. 구체적인 중계하는 기능은 도 22에서 후술한다.
일반 어플리케이션은 지문 인식 요청 시 성공 또는 실패 여부를 획득할 수 있다. 보안 결제 어플리케이션(payment trusted app)은 보안 생체 결과(secure fingerprint result)를 획득할 수 있다. 상기 보안 생체 결과는 일회성 난수 및 성공/실패 여부를 조합하여 암호화한 형태가 될 수 있다. 상기 일회성 난수는 TEE(1820)의 하드웨어 키(예: device root key(DRK))를 통해 암호화 될 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 결제를 수행하기 위해 보안 환경 드라이버 모듈(1853)을 통하여, 결제 모듈(1821)을 결제 수행을 하라는 메시지를 전달할 수 있다. 결제 모듈(1821)은 인증 동작이 필요함을 보안 환경 드라이버 모듈(1853)을 통해 결제 중계 모듈(1841)에 알릴 수 있다. 결제 중계 모듈(1841)은 인증 동작을 위해 생체 정보 관리 모듈(1843)과 생체 정보 드라이버 모듈(1851)을 통하여 생체 센서(240I)에 생체 정보를 획득하라는 명령을 내릴 수 있다. 더하여, 결제 중계 모듈(1841)은 생체 정보 관리 모듈(1843)과 보안 환경 드라이버 모듈(1853)을 통하여 TEE(1820)의 생체 정보 모듈(1825)에 인증 확인 메시지를 전달할 수 있다. 생체 센서(240I)는 TEE(1820)의 생체 정보 모듈(1825)에서 획득할 수 있다. 생체 정보 모듈(1825)은 기 저장된 사용자의 생체 정보와 생체 센서로부터 획득된 정보를 비교하여 동일 사용자 여부를 확인할 수 있다. 상기 확인된 정보를 기반으로 생체 정보 모듈(1825)은 보안 환경 드라이버 모듈(1853)을 통하여 생체 정보 관리 모듈(1843)에 인증 여부를 전달하고, 생체 정보 관리 모듈(1843)은 결제 중계 모듈(1841)에 전달할 수 있다. 상기 결제 중계 모듈(1841)과 생체 정보 관리 모듈(1843)은 하나로 구성될 수도 있으며, 별도의 모듈로도 구성될 수 있다.
한 실시예에 따르면, 결제 중계 모듈(1841)은 외부 장치를 통해서 인증을 수행할 수 있다. 예를 들어, 전자 장치는 결제 서버(720)(예: 삼성 계정 서버 또는 토큰 요구자 서버)에 생체정보(예: 지문 또는 홍채 등)에 대한 인증을 요청할 수 있다. 상기 결제 서버(720)은 사용자의 생체 정보에 대한 인증을 수행하고 해당 결과를 상기 전자 장치에 전달할 수 있다. 상기 결제 중계 모듈(1841)은 인증이 완료된 경우 토큰 서비스 프로바이더에 인증이 완료되었다는 정보를 포함하는 데이터를 전달하여 토큰 프로비저닝하는 과정을 수행할 수 있다. 더하여 상기 전자 장치는 상기 인증 결과에 따라 인증이 완료된 경우 결제를 수행하고, 인증이 완료되지 않거나, 인증되지 않은 경우 결제를 수행하지 않을 수 있다.
한 실시예에 따르면, 커널(1850)은, 예를 들면, 생체 정보 드라이버 모듈(1851) 및 보안 환경 드라이버 모듈(1853)을 포함할 수 있다. 생체 정보 드라이버 모듈(1851)은 결제 매니저(1840)의 생체 정보 관리 모듈(1843)로부터 전달되는 메시지를 생체 센서(240I)에 전달할 수 있다. 생체 센서에서 획득되는 생체 정보는 상기 생체 정보 드라이버 모듈을 통해서 REE(1810) 내의 모듈로 전달되지 않고, TEE(1820)내에 생체 정보 모듈(1825)로 전달될 수 있다.
한 실시예에 따르면, 보안 환경 드라이버 모듈(1853)은 REE(1810) 내의 모듈에서 TEE(1820) 내의 모듈에 전달하기 위한 인터페이스 역할을 할 수 있다. 예를 들어, TEE의 일 실시예인 ARM의 트러스트존(Trustzone)의 경우 어플리케이션 프로세서가 시분할로 REE와 TEE의 동작을 수행하는데, REE에서 TEE로 메시지를 전달하기 위한 별도의 데이터 패스를 하드웨어적으로 구현할 수 있다. 이 경우 이 하드웨어에 접근하기 위한 드라이버 모듈이 상기 보안 환경 드라이버 모듈(1853)일 수 있다. 상기 보안 환경 드라이버 모듈은 TEE 내의 모듈의 동작에 대한 메시지를 REE 내의 모듈에 전달할 수 있다.
한 실시예에 따르면, TEE는 결제 모듈(1821), 보안 식별자 처리 모듈(1823), 생체 정보 모듈(1825), 및 MST 드라이버 모듈(1827)을 포함할 수 있다. 전자 장치(701)는 TEE(1820)를 통해 상대적으로 높은 보안이 요구되는 데이터를 안전한 환경 내에서 저장하고 관련 동작을 수행할 수 있다. TEE(1820)는 전자 장치의 어플리케이션 프로세서 상에서 동작하고, 전자 장치의 제조 동작에서 결정된 신뢰할 수 있는 TEE는 전자 장치 내에 있는 보안 영역을 의미할 수 있다. 상기 전자 장치는 TEE를 통해 상대적으로 높은 보안이 요구되는 데이터를 안전한 하드웨어 구조에 기반하여 동작할 수 있다. TEE는 어플리케이션 프로세서와 메모리 영역을 노멀 영역(Normal)과 보안 영역으로 구분하여 동작하도록 할 수 있다. 더하여, 보안이 필요한 소프트웨어나 하드웨어를 보안 영역에서만 동작하게 하도록 할 수 있다. 전자 장치REE(1810) 민감한 정보에 관련된 동작을 수행해야 하는 경우 TEE(1820)에 접근할 수 있는 API와 드라이버를 통해서만 TEE(1820)에 접근이 가능할 수 있다. TEE(1820)은 관련된 정보에 대한 제한된 데이터를 REE 에 넘겨줄 수 있다. TEE는 내부적으로 저장되는 데이터를 하드웨어 key(예를 들어, device root key(DRK))를 통해서 암호화할 수 있다. TEE 내부의 데이터는 별도의 복호화 과정이 없는 경우 REE에서 해석하지 못할 수 있다.
TEE(1820)는 TEE 내부의 어플리케이션(예: 보안 어플리케이션(trusted application) 또는 결제 모듈 등)은 전자 장치 외부의 다른 전자 장치(예: 토큰 서비스 프로바이더(730)) 에 메시지를 전달할 수 있다.
한 실시예에 따르면, TEE는 trusted OS와 보안 어플리케이션 (trusted application)을 포함할 수 있다. 더하여, 보안에 관련된 암호화 모듈, 보안이 필요한 하드웨어에서 데이터를 수집할 수 있는 드라이버 등을 포함할 수 있다. 보안 어플리케이션(trusted application)은 결제 모듈을 포함할 수 있다. 더하여 결제 정보를 통신 모듈을 통해서 외부에 전달할 수 있다. 예를 들어, 결제 정보를 MST 드라이버를 통해MST 컨트롤러(MST제어모듈(830)에, 또는 NFC 드라이버를 통해 NFC 컨트롤러(NFC제어모듈(840))에 전달하여 POS에 전송할 수 있다.
한 실시예에 따르면, REE(1810)에 대한 무결성 여부를 확인할 수 있다. 전자 장치는REE의 이미지의 무결성 여부를 TEE(1820)에 저장할 수 있다. TEE를 지원하는 REE 부팅의 경우, 부팅의 순서는 부트로더가 실행되면, TEE를 부팅하고, REE를 부팅할 수 있다. TEE가 부팅이 되면 TEE의 내부에 REE의 무결성 정보를 확인하여 REE 부팅 후에 사용자에게 나타낼 수 있다. 한 실시예에 따르면, REE가 해킹 또는 루팅 등에 의해서 REE의 이미지가 훼손 되었을 경우 무결성에 문제가 있다고 결정할 수 있다. 무결성에 문제가 발생한 경우, TEE에 접근할 수 없도록 할 수 있다. 예를 들어, 결제 중계 모듈(1841)이 보안 환경 드라이버 모듈(1853)을 통해서 TEE에 메시지나 명령어를 전달하고자 할 때 TEE의 커널에서 이 메시지나 명령어를 무시하거나 메시지 수신을 거부할 수 있다.
한 실시예에 따르면, 결제 모듈(1821)은 은행, 카드사(예: 비자 카드(Visa card) 또는 마스터 카드(Master card) 등) 등에서 설치하는 어플리케이션일 수 있다. 상기 결제 모듈은 적어도 하나 이상일 수 있다. 전자 장치에서 사용자가 결제 관리 모듈(1831)을 이용하여 결제 서버(720)(예: mobile application platform, payment gateway, token requestor, token service provider, trusted service manager, 또는 은행 서버 등) 또는 토큰 서비스 프로바이더(730)에 인터넷을 통하여 접속하여 상기 결제 모듈(1821)을 설치하겠다고 승인하면, 토큰 서비스 프로바이더(730)는 설치에 관련한 동작을 수행할 수 있다. 예를 들어, 결제 관리 모듈(1831)은 OCR을 통하여 플라스틱 카드의 카드 넘버와 유효기간 정보를 획득하여 상기 서버에 결제 모듈(1821)을 설치하기 위한 카드 등록 동작을 수행할 수 있다. 카드/은행 회사에 따라 각 토큰 서비스 프로바이더(730)의 연결 정보를 가지고 있는 결제 중계 모듈(1841)을 통하여 네트워크에 있는 상기 토큰 서비스 프로바이더(730)에 연결하여 설치 파일을 수신하고 결제 중계 모듈(1841)은 상기 정보를 TEE에 전달하여 결제 모듈(1821)을 설치하도록 할 수 있다. 이러한 과정은 provisioning 과정 또는 card registration 과정이라고 부를 수 있다. TEE의 결제 모듈(1821)은 여러 개의 모듈이 있을 수 있다. 각각의 결제 모듈들은 TEE 내부에서 데이터를 주고 받을 수 없으며, 격리된 형태로 구성될 수 있다.
한 실시예에 따르면, 결제 모듈(1821)은 결제 서버(720)와 데이터 커뮤니케이션에 사용하기 위한 어플리케이션일 수 있다. 상기 결제 모듈은 신용 카드, 직불 카드(debit card), 멤버십 카드 등의 정보를 포함할 수 있다. 상기 결제 모듈은 상기 외부의 다른 전자 장치와 암호화를 통해 통신을 주고 받을 수 있다. 상기 암호화의 과정은 상기 결제 모듈을 전달한 카드 제조 회사에 따라 달라질 수 있다. 상기 서버는 상기 결제 모듈의 상태를 제어할 수 있다. 예를 들어, 상기 결제 모듈을 활성화(activation)하거나 임시로 정지(suspension)하거나, 재활성화(resume)하거나, 삭제(disposal)할 수 있다.
한 실시예에 따르면, 결제 모듈(1821)은 카드 정보에 관련되는 정보를 저장할 수 있다. 예를 들어, 상기 카드 정보(예를 들어, PAN(primary account number))에 대응되는 토큰(token), token reference ID, PAN의 일부분, PAN product ID, token requestor ID, token assurance level, token assurance data, 토큰(token)의 유효기간, 암호화 key, 토큰 서비스 프로바이더(730)에서 제공한 값(예: OPT(one time password), 중 적어도 하나일 수 있다. 상기 토큰(token)은 토큰 서비스 프로바이더(730) 의 상태에 의해서 제어될 수 있다. 예를 들어, 토큰(token)은 활성화(activation)하거나 임시로 정지(suspension)하거나, 재활성화(resume)하거나, 삭제(disposal)할 수 있다. 상기 토큰(token)은 기본적으로 카드 정보(예: PAN)에 대응하는 정적인(static) 정보일 수 있다.
한 실시예에 따르면, 결제 모듈(1821)은 결제를 수행하는 경우 결제할 카드를 결정할 수 있다. 예를 들어, 사용자의 선택에 따라 적어도 하나 이상의 결제 관리 모듈(1831)에서 사용자가 선택한 카드에 대응하는 결제 모듈이 결정될 수 있다. 상기 결정된 카드에 대해 상기 결제 관리 모듈은 결제 중계 모듈(1841)에 전달할 수 있다. 상기 결제 중계 모듈은 결정된 카드 정보에 대해서 보안 환경 드라이버 모듈(1853)을 통해 상기 결제 모듈(1821)에 전달할 수 있다. 상기 결제 모듈은 보유하고 있는 카드 정보들 중에서 실제 결제에 이용되는 카드 리스트를 관리할 수 있다. 상기 결정된 카드 정보에 기반하여 상기 실제 결제에 이용되는 카드 리스트를 변경할 수 있다. 상기 변경은 결정된 카드 정보에 대해서 카드 리스트에서 우선 순위를 높이거나, 결정된 카드 정보 외의 다른 카드 정보는 삭제하는 방법일 수 있다.
한 실시예에 따르면, 결제를 수행하는 경우 카드 정보에 관련되는 정보에 기반하여 결제 모듈은 결제에 이용되는 정보를 만들 수 있다. 표 3을 참조하면, 결제에 이용되는 정보는 token, token reference ID, PAN의 일부분, PAN product ID, token requestor ID, token assurance level, token assurance data, token의 유효기간, token cryptogram, POS entry mode, token requestor indicator 등일 수 있다.
Field Name Comment
Payment Token The Payment Token number refers to a surrogate value for a PAN that is a 13 to 19-digit numeric value that passes basic validation rules of an account number, including the Luhn check digit. Payment Tokens are generated within a BIN range or Card range that has been designated as a Token BIN Range and flagged accordingly in all appropriate BIN tables. Payment Tokens are generated such that they will not have the same value as or conflict with a real PAN.
Transaction messages
The Payment Token number will be passed through the authorization, capture, clearing, and exception messages in lieu of the PAN.
The Payment Token number may optionally be passed from the Token Service Provider to the Card Issuer as part of the authorization request.
Token Expiry Date The expiration date of the Payment Token that is generated by and maintained in the Token Vault. The Token Expiry Date field carries a 4-digit numeric value that is consistent with the ISO 8583 format.
Transaction messages
The Token Expiry Date is passed in lieu of PAN Expiry Date.
The value is replaced by the Token Service Provider with the PAN Expiry Date which is then passed to the Card Issuer as part of the authorisation request.
Last 4 Digits of PAN The last four digits of the PAN to be provided optionally through the Acquirer to the Merchant for customer service usage such as being printed on the consumer receipt.
PAN Product ID The last four digits of the PAN to be provided optionally through the Acquirer to the Merchant for customer service usage such as being printed on the consumer receipt.
PAN Product ID The PAN Product ID is an optional identifier used for determining the type of Card product that was tokenized. It may be included in cases where transparency of this information is necessary.
Transaction messages
The PAN Product ID may optionally be passed from the Token Service Provider to the Acquirer as part of the authorisation response.
POS Entry Mode This specification uses the POS Entry Mode field to indicate the mode through which the Payment Token is presented for payment. Each Payment Network will define and publish any new POS Entry Mode values as part of its existing message specifications and customer notification procedures.
Transaction messages
POS Entry Mode is an existing field that will be passed through the authorisation, capture, clearing, and exception messages.
Token Requestor ID This value uniquely identifies the pairing of Token Requestor with the Token Domain. Thus, if a given Token Requestor needs Tokens for multiple domains, it will have multiple Token Requestor IDs, one for each domain. It is an 11-digit numeric value assigned by the Token Service Provider and is unique within the Token Vault:
Positions 1-3: Token Service Provider Code, unique to each Token Service Provider
Positions 4-11: Assigned by the Token Service Provider for each requesting entity and Token Domain
Transaction messages
Token Requestor ID can be optionally passed through the authorisation, capture, clearing, and exception messages.
Token Assurance Level Token Assurance Level is a value that allows the Token Service Provider to indicate the confidence level of the Payment Token to PAN / Cardholder binding. It is determined as a result of the type of ID&V performed and the entity that performed it.
The Token Assurance Level is set when issuing a Payment Token and may be updated if additional ID&V is performed. It is a two-digit value ranging from 00 which indicates the Payment Token has no ID&V that has been performed to a value of 99 indicating the highest possible assurance. The specific method to produce the value is defined by the Token Service Provider.
Transaction messages
Token Assurance Level will be provided by the Token Service Provider.
The value may be optionally passed to the Card Issuer as part of the authorisation request.
The value may optionally be passed to the Acquirer / Merchant in the authorisation response, capture, clearing, and exception processing messages.
Token Assurance Data This data provided by the Token Service Provider contains supporting information for the Token Assurance Level.
Transaction messages
This data may be optionally passed to the Card Issuer as part of the authorisation request.
Token Cryptogram This cryptogram is uniquely generated by the Token Requestor to validate authorised use of the Token. The cryptogram will be carried in different fields in the transaction message based on the type of transaction and associated use case:
NFC contactless transactions will carry the Token Cryptogram in existing chip data fields.
Other transactions, such as those originating from a digital wallet, may carry the Token Cryptogram in an existing field.
Transaction messages
The Token Cryptogram will be passed in the authorisation request and validated by the Token Service Provider and / or the Card Issuer.
Token Request Indicator An indicator used to indicate that the message is intended to authenticate the Cardholder during a Payment Token Request.
한 실시예에 따르면, 결제 모듈(1821)은 토큰 서비스 프로바이더(730) 또는 결제 서버(720)(예: 결제 서비스 서버 또는 토큰 요구자 서버)를 통해서 토큰 크립토그램(token cryptogram)을 생성할 수 있는 key(예를 들어, limited used key(LUK) 또는 single used key)를 전달 받을 수 있다. 상기 key는 데이터 네트워크 또는 SMS 등을 통해서 전달받을 수 있다.
상기 key는 전자 장치와 토큰 서비스 프로바이더(730)에 보안 채널을 이용하여 주고 받을 수 있다. 상기 보안 채널은 상기 key와는 다른 별도의 key(예를 들어, public key, private key를 이용하는 방법)에 의해서 주고 받는 데이터를 암호화하는 논리적 채널일 수 있다. 더하여, 상기 결제 모듈 내부에 토큰 크립토그램을 생성할 수 있는 key를 생성하는 모듈을 포함할 수 있다. 전자 장치는 상기 key를 생성하는 모듈을 상기 토큰 서비스 프로바이더(730) 또는 결제 서버(720)를 통해서 전달받을 수 있다. 또는 전자 장치장치의 제조 동작에서 포함될 수 있다. 전자 장치
한 실시예에 따르면, 결제 모듈은 상기 토큰 크립토그램을 생성할 수 있는 key(예를 들어 limited used key 또는 single used key)를 이용하여 토큰 크립토그램을 생성할 수 있다. 결제 모듈은 매 거래 또는 특정 횟수의 거래, 특정 시간 내의 거래 등 정해진 규칙에 따라 다른 key를 사용할 수 있다. 토큰 서비스 프로바이더(730)는 상기 key와 쌍(pair)으로 된 key를 소유할 수 있다. 토큰 서비스 프로바이더(730)는 상기 쌍으로 된 key를 통해서 암호화된 토큰 크립토그램을 복호화할 수 있다.
한 실시예에 따르면, 결제 모듈(1821)은 토큰 크립토그램을 생성할 수 있는 key를 이용하여 토큰 크립토그램을 생성할 수 있다. 구체적인 내용은 도 46에서 후술한다.
한 실시예에 따르면, 결제를 수행하는 경우, 전자 장치는 결제 어플리케이션에서 결제를 수행하겠다는 메시지를 결제 중계 모듈(1841)에 전달할 수 있다. 결제 중계 모듈(1841)은 MST로 결제하거나 NFC로 결제할 지를 결정할 수 있다. MST로 결제하는 경우, 결제 수행에 필요한 정보(예를 들어, token, token cryptogram, 결제 인증 데이터, PAN 정보의 일부, 토큰(token) 유효 기간 등)을 TEE의 결제 모듈에서 획득하여 TEE 내의 MST 드라이버 모듈(1827)에 전달할 수 있다. MST 드라이버 모듈(1827)은 상기 정보를 MST 컨트롤러에 전달할 수 있다. 상기 MST 컨트롤러는 상기 정보를 결제 수행하기 위해 송신할 수 있다. 또한, MST 드라이버 모듈(1827)은 도 32 내지 도 35의 MST 드라이버 모듈의 기능을 포함할 수 있다.
한실시예에 따르면, 상기 정보를 결제 어플리케이션(1830)으로 전달할 수 있다.
한 실시예에 따르면, 전자 장치는NFC로 결제하는 경우 상기 결제 수행에 필요한 정보를 TEE의 NFC 드라이버 모듈에 전달할 수 있다. NFC드라이버 모듈은 NFC 컨트롤러에 상기 결제 수행에 필요한 정보를 전달할 수 있다. NFC 컨트롤러는 상기 정보를 기반하여 결제를 수행할 수 있다.
한 실시예에 따르면, 전자 장치는 NFC로 결제하는 경우 POS에서 지정된 메시지가 전달되는 경우 결제를 수행할 수 있다. 예를 들어, NFC 컨트롤러는 POS(750)에서 지정된 메시지가 전달되어 NFC 모듈에서 감지하는 경우 이를 NFC 드라이버 모듈에게 전달할 수 있다. NFC 드라이버 모듈은 POS로부터 메시지가 전달 되었음을 REE의 결제 중계 모듈(1841)에 전달할 수 있다. 상기 결제 중계 모듈(1841)은 결제를 수행하기 위해 토큰 크립토그램을 생성할 수 있다. 상기 토큰 크립토그램은 토큰 크립토그램을 생성할 수 있는 key(예를 들어, limited used key 또는 single used key)를 이용하여 TEE의 결제 모듈(1821)에서 생성할 수 있다. 상기 생성된 토큰 크립토그램은 REE에 전달될 수 있다. 상기 결제 중계 모듈(1841)은 네트워크 모듈(예를 들어, NFC 관련 host card emulation 모듈)을 통해 상기 토큰과 토큰 크립토그램을 포함하는 결제 관련 정보를 전달할 수 있다. 상기 네트워크 모듈은 NFC 모듈을 통하여 상기 결제 관련 정보를 POS로 전달할 수 있다.
한 실시예에 따르면, 상기 결제 모듈은 상기 토큰, 토큰 유효 기간, token requestor ID, 토큰 크립토그램등을 포함하는 정보를 외부 전자 장치에 전달할 수 있다. 예를 들어, 상기 결제 모듈은 상기 결제 정보를 MST 통신 모듈을 통해서 POS(point of sales)(750)에 전달할 수 있다. 더하여 NFC 통신 모들을 통해서 POS에 전달할 수 있다.
한 실시예에 따르면, 상기 결제 모듈은 POS(750)와 결제 동작에서 지정된 정보를 송수신할 수 있다. NFC의 경우 POS에서 먼저 정보를 수신하여 수행할 수 있다. MST의 경우에는 사용자의 명시적 입력 또는 전자 장치 내부 알고리즘에 기반하여 POS에 토큰과 토큰 크립토그램을 포함하는 결제 관련 정보를 전송할 수 있다.
한 실시예에 따르면, 생체 정보 모듈(1825)은 전자 장치를 사용하는 사용자의 생체 정보를 저장하고 생체 센서로부터 받아들이는 정보와 비교하여 사용자를 인증할 수 있다. 상기 생체 정보 모듈(1825)로는 지문 정보 모듈, 홍채 정보 모듈 등이 있을 수 있다. 상기 생체 정보 모듈은 생체 센서(240I)로부터 정보를 수집할 수 있다. 결제 어플리케이션에서 사용자의 생체 정보를 인증하라는 내용을 디스플레이(160)에 보여주면, 사용자는 생체 센서를 통해서 생체 정보를 전달할 수 있다. 상기 결제 어플리케이션의 인증 모듈은 생체 정보 관리 모듈을 통하여 생체 정보 드라이버 모듈(1851)에 생체 정보를 수집하라는 메시지를 전달할 수 있다. 상기 생체 정보 드라이버 모듈은 생체 센서에 상기 메시지를 전달할 수 있다. 상기 생체 센서는 생체 정보를 수집하여 TEE에 전달할 수 있다. 상기 TEE의 생체 정보 모듈은 상기 저장된 사용자의 생체 정보와 비교하여 인증 여부를 보안 환경 드라이버 모듈을 통해 REE의 생체 정보 관리 모듈을 통하여 결제 어플리케이션의 인증 모듈에 전달할 수 있다. 상기 결제 어플리케이션은 상기 인증 여부를 디스플레이에 보여줄 수 있다. 상기 사용자의 생체 정보는 TEE 내에 저장되거나, 암호화된 상태로 REE에 저장되거나, 보안 모듈(236)(예: eSE)에 저장될 수 있다.
한 실시예에 따르면, 보안 식별자 처리 모듈(1823)은 전자 장치에서 필요하거나 결제에 관련된 인증에 관련된 입력값을 사용자 입력을 통해 획득할 수 있다. 예를 들어, 상기 입력값은 결제 수행 중에 PIN(personal identification number)일 수 있다. 더하여 상기 입력값은 카드에 관련된 정보일 수 있다. 예를 들어 PAN(primary account number), 카드 유효 기간(expiration date) 또는 CVV(card verification value) 등일 수 있다. 더하여 Chip PIN 또는 ATM(Automated teller machine) PIN 등일 수 있다. 상기 보안 식별자 처리 모듈(1823)은 어플리케이션의 형태로 표시될 수 있다. 상기 보안 식별자 처리 모듈의 어플리케이션이 화면 상에 그려지기 위해 필요한 그래픽 라이브러리는 TEE(1820)에 저장되어 있을 수 있다. 상기 TEE 저장되어 있는 그래픽 라이브러리는 REE(1810)에 있는 그래픽 라이브러리와 다를 수 있다. 상기 보안 식별자 처리 모듈은 PIN 등의 입력 값에 의한 사용자 인증을 수행하고 그 결과를 결제 중계 모듈(1841)을 통하여 결제 관리 모듈(1831)에 전달할 수 있다. 한 실시예에 따르면, 보안 환경 중계 모듈(1846)이 보안 환경 드라이버 모듈(1853)을 통해 전달한 암호화된 일회성 난수(예: nonce)를 수신할 수 있다. 보안 식별자 처리 모듈(1823)은 상기 사용자 입력으로 획득한 입력값과 상기 일회성 난수를 TEE 내의 암호화 key(예를 들어, device root key)를 이용하여 암호화하여 보안 환경 중계 모듈(1846)에 전달할 수 있다. 상기 보안 환경 중계 모듈은 보안 환경 드라이버 모듈(1853)을 통하여 결제 모듈(1821)에 암호화된 상기 입력값과 일회성 난수를 전달할 수 있다. 상기 결제 모듈은 상기 입력값과 일회성 난수를 TEE 내의 하드웨어 키를 이용하여 복호화 할 수 있다. 상기 결제 모듈은 상기 일회성 난수의 생성했던 값과 수신한 값이 같다는 것을 이용하여 REE를 통하여 전달된 상기 입력값이 무결하다는 것을 확인할 수 있다. 상기 결제 모듈은 입력값이 무결하다는 것에 기반하여 입력값을 통해 사용자 인증을 수행할 수 있다. 상기 결제 모듈은 사용자 인증을 통하여 결제를 수행할 수 있다. 한 실시예에 따르면, 팩토리 리셋은 전자 장치의 소프트웨어 이미지를 기존 공장에서 출하한 상태로 되돌리는 동작일 수 있다. 상기 동작은 어플리케이션을 통해 사용자의 명시적 동작으로 수행될 수 있다. 더하여 지정된 조건(예: 시스템이 해킹되었다고 판단되는 경우)에 상기 해킹을 판단하여 모니터링하는 모듈이 팩토리 리셋을 수행할 수 있다. 상기 동작이 수행되는 경우, 전자 장치에 저장된 데이터들이 리셋이 되기 때문에, 사용자의 결제 관련 정보 역시 리셋될 수 있다. 상기 결제 관련 정보에 대해서 결제 서버(720)에서 저장될 수 있다. 사용자가 결제 서버(720)에 계정을 기반으로 접속하는 경우, 상기 결제 관련 정보에 기반하여 다시 카드 등록과 결제 모듈을 설치하는 동작을 수행하도록 할 수 있다. 리셋이 되는 경우, 전자 장치 내에 저장된 결제 관련 모듈은 상기 결제 서버(720)를 통해서 토큰 서비스 프로바이더(730)에 알려 비활성화하도록 할 수 있다. 전자 장치의 네트워크가 비활성화 된 경우에는, 상기 알리는 동작을 수행하지 못할 수 있다. 이 경우에는 전자 장치가 팩토리 리셋을 수행한 후, 상기 결제 서버(720)에 계정을 기반으로 접속할 수 있다. 전자 장치는 상기 결제 서버(720)를 통하여 기 등록된 카드 리스트를 확인할 수 있고, 결제 서버(720)를 통하여 토큰 서비스 프로바이더(730)에 상기 기 등록된 전자 장치의 카드 모듈 또는 token 등을 비활성화할 수 있다. 더하여, 결제 서버(720)의 카드 리스트를 기반으로 전자 장치는 카드 등록을 다시 수행하여 결제 모듈 또는 token 등을 수신받을 수 있다.
도 19는 다양한 실시예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시하고 있다.
상기 도 19를 참조하면, 제 1 모드의 AP(1901) 및 제2 모드의 AP(1903)는 상기 도 12의 프로세서(1200)에 대응하고, 제1 통신모듈(1905)은 상기 도 12의 제 1 통신모듈 (1210)에 대응하고, 제 2 통신모듈(1907)는 상기 도 12의 제 2 통신모듈 (1212)에 대응할 수 있다. 여기서, 제 1 모드의 AP(1901)는 노멀 영역(예: REE)에서 동작하는 프로세서(1200)일 수 있고, 제 2 모드의 AP(1903)는 보안영역(secure world)(예: TEE)에서 동작하는 프로세서(1200)일 수 있다. 다양한 실시예에 따르면, 제 1 모드의 AP(1901)와 제 2 모드의 AP(1103)은 하나의 프로세서이거나 또는 분리된 구성의 프로세서일 수 있다.
다양한 실시예에서, 제 1 통신 모듈(1905)은 MST 모듈(예: MST 모듈(810))일 수 있고, 제 2 통신 모듈(1907)은 NFC 모듈(예: NFC 모듈(820))일 수 있다. 보안 모듈(1909)은 내장형 보안 요소(eSE)일 수 있다.
상기 제 1 통신모듈(1905) 및 상기 제 2 통신모듈(1907)는 기능적으로 제 2 모드의 AP(1903)에 연결되어 있고, 보안 모듈(1909)은 제 2 통신모듈(1907)에 전기적으로 연결되거나 상기 제 2 모드의 AP(1903)에 전기적으로 연결될 수 있다.
상기 제 1 모드의 AP(1901)는 노멀 영역에서 해당 애플리케이션을 실행하여 처리할 수 있다.
상기 제 2 모드의 AP(1903)는 보안이 요구되는 애플리케이션들(예: DRM(digital rights management), 결제 애플리케이션, 기업 정보를 처리하는 애플리케이션, 은행업무 애플리케이션)을 보안영역에서 실행하여 처리할 수 있다. 상기 보안영역에서 안전한 주변장치와의 인터페이싱을 포함해 모든 보안 관련 기능이 수행될 수 있다. 도 19에서 상기 제 1 모드의 AP(1901)와 상기 제 2 모드의 AP(1903)를 구분하여 나타내었지만, 상기 제 1 모드의 AP(1901)와 상기 제 2 모드의 AP(1903)는 하나의 프로세서로 구현 가능하며, 노멀 영역과 보안영역은 시분할(time sharing)로 동작할 수 있다.
상기 제 1 모드의 AP(1901)는 제 1 인증서비스 트랜잭션을 검출하고, 인증서비스 트랜잭션 명령을 상기 제 2 모드의 AP(1903)로 전달할 수 있다.
상기 제 2 모드의 AP(1903)는 인증서비스 트랜잭션 명령 및 제 1 인증정보(1909_1)를 상기 제 1 통신모듈(1905)로 전달할 수 있다. 상기 제 2 모드의 AP(1903)는 보안 모듈(1909)에 접근하여 상기 제 1 인증정보(1909-1)를 획득할 수 있다. 또한, 상기 제 2 모드의 AP(1903)는 상기 제 2 통신모듈(1907)로부터 상기 제 2 인증정보(1909-2)에 대응하는 인증결과를 제공받아 디스플레이 모듈(1208)에 디스플레이하도록 제어할 수 있다.
구현에 따라서, 상기 제 2 모드의 AP(1903)는 상기 제 2 통신모듈(1907)로부터 상기 제 2 인증정보(1909-2)를 요청받을 시, 상기 보안 모듈(1909)으로부터 상기 제 2 인증정보(1909-2)를 획득하여 상기 제 2 통신모듈(1907)로 전달할 수 있다.
상기 제 1 통신모듈(1905)는 상기 제 2 모드의 AP(1903)로부터 인증서비스 트랜잭션 명령 및 상기 제 1 인증정보(1909-1)를 수신할 시, 상기 제 1 통신모듈(1905)는 상기 제 1 인증정보(1909-1)를 처리하여 상기 POS 기기로 송신할 수 있다.
상기 제 2 통신모듈(1907)는 상기 전자장치가 POS 기기에 근접하거나 접속될 시, 제 2 인증서비스 트랜잭션을 검출하고, 상기 보안 모듈(1909)으로부터 상기 제 2 인증정보(1909_2)를 획득하고, 상기 제 2 인증정보(1909-2)를 처리하여 상기 POS 기기로 송신할 수 있다. 또한, 상기 제 2 통신모듈(1907)는 인증결과에 대한 정보를 피드백 받아 그 결과를 상기 제 2 모드의 AP(1903)로 제공할 수 있다.
구현에 따라서, 상기 제 2 통신모듈(1907)는 상기 전자장치가 POS 기기에 근접하거나 접속될 시, 상기 제 2 모드의 AP(1903)에 상기 제 2 인증정보(1909-2)를 요청하여 상기 제 2 모드의 AP(1903)를 통해 제공받을 수도 있다.
상기 보안 모듈(1909)은 상기 제 2 통신모듈(1907) 또는 상기 제 2 모드의 AP(1903)에 의해서만 액세스 가능하며, 상기 제 1 모드의 AP(1901) 및 상기 제 1 통신모듈(1905)가 액세스할 수 없는 저장공간일 수 있다. 실시 예에서, 상기 보안 모듈(1909)은 near field magnetic stripe data transmission용 상기 제 1 인증정보(1909-1) 및 NFC용 상기 제 2 인증정보(1909-2)를 포함할 수 있다.
다양한 실시 예에서, 상기 제 1 인증정보(1909-1)는 전기적으로 제 1 모드의 AP(1901)와 연결되는 일반 메모리(1911)에 저장될 수 있다.
도 20은 다양한 실시예에 따른 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 20을 참조하면, 2000동작에서 제1 인증 서비스의 트랜잭션이 발생하는 경우, 제 1 모드의 AP(1901)는 2002동작으로 진행하여 제 2 모드의 AP(1903)로 상기 제 1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
상기 제 2 모드의 AP(1903)는 2004동작에서 보안 모듈(1909) 또는 메모리(1911) 중 적어도 하나로부터 지불 결제를 위한 인증 정보를 획득할 수 있다.
상기 제 2 모드의 AP(1903)는 2006동작에서 제 1 통신모듈(1905)로 상기 획득한 지불 결제를 위한 제 1 인증 정보를 전달하고 그리고 상기 제 1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
상기 제 1 통신모듈(1905)는 2008동작에서 상기 인증 정보를 처리하여 송신할 수 있다.
2000동작에서 제 2 인증 서비스의 트랜잭션이 발생하는 경우, 제 2 통신모듈(1907)는 2010동작에서, 상기 제 2 모드의 AP(1903)로 지불 결제를 위한 인증 정보를 요청할 수 있다.
상기 제 2 모드의 AP(1903)는 2012동작에서, 보안 모듈(1909)으로부터 지불 결제를 위한 인증 정보를 획득할 수 있다.
상기 제 2 모드의 AP(1903)는 2014동작에서, 제 2 통신모듈(1907)로 상기 획득한 지불 결제를 위한 인증 정보를 전달할 수 있다.
상기 제 2 통신모듈(1907)는 2016동작에서 상기 인증 정보를 송신할 수 있다.
다양한 실시 예에서, 2000동작에서 제 2 인증 서비스의 트랜잭션이 발생하는 경우, 제 2 통신모듈(1907)는 직접 상기 보안 모듈(1909)으로부터 지불 결제를 위한 인증 정보를 획득하여 송신할 수도 있다.
또한, 다양한 실시 예에서, 제 1 모드의 AP(1901)에서 제 2 모드의 AP(1903)로 상기 제1 인증 서비스의 트랜잭션 명령이 전달될 때, 상기 제 2 모드의 AP(1903)에서 직접 상기 보안 모듈(1909)으로부터 지불 결제를 위한 인증 정보를 획득하는 대신에 하기 도 21과 같이 상기 제 2 모드의 AP(1903)에서 제 1 통신모듈(1905)로 상기 제 1 인증 서비스의 트랜잭션 명령을 전달한 후, 제 1 통신모듈(1905)로부터 지불 결제를 위한 인증 정보를 요청받을 수도 있다.
도 21은 제 3 실시 예에서 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 다른 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 21을 참조하면, 제 1 모드의 AP(1901)에서 제 2 모드의 AP(1903)로 상기 제 1 인증 서비스의 트랜잭션 명령이 전달될 때, 2101동작에서 제 2 모드의 AP(1903)에서 상기 제 1 통신모듈(1905)로 상기 제 1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2103동작에서, 상기 제 1 통신모듈(1905)는 상기 제 2 모드의 AP(1903)에 지불 결제를 위한 인증 정보를 요청할 수 있다.
2105동작에서, 상기 제 2 모드의 AP(1903)는 보안 모듈(1909) 또는 메모리(1911) 중 적어도 하나 지불 결제를 위한 인증 정보를 획득할 수 있다.
2107동작에서, 상기 제 2 모드의 AP(1903)는 제 1 통신모듈(1905)로 상기 획득한 지불 결제를 위한 인증 정보를 전달할 수 있다.
2109동작에서, 상기 제 1 통신모듈(1905)는, 상기 인증 정보를 송신할 수 있다.
도 22는 다양한 실시예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시하고 있다.
상기 도 22를 참조하면, 제 1 모드의 AP(2201) 및 제 2 모드의 AP(2203)는 상기 도 12의 프로세서(1200)에 대응하고, 제 1 통신모듈(2205)은 제 1 통신모듈 (1210)에 대응하고, 제 2 통신모듈(2207)는 상기 도 12의 제 2 통신모듈 (1212)에 대응할 수 있다. 여기서, 제 1 모드의 AP(2201)는 노멀 영역(예: REE)에서 동작하는 프로세서일 수 있고, 제 2 모드의 AP(2203)는 보안 영역(예: TEE)에서 동작하는 프로세서일 수 있다.
상기 제 1 통신모듈(2205) 및 상기 제 2 통신모듈(2207)는 전기적으로 제 2 모드의 AP (2203)에 연결되어 있고, 제 2 보안 모듈(2209)은 제 2 통신모듈(2207)에 전기적으로 연결되거나 상기 제 2 모드의 AP(2203)에 전기적으로 연결될 수 있다. 그리고 상기 제 1 보안 모듈(2211)은 상기 제 2 모드의 AP(2203)에 전기적으로 연결될 수 있다.
다양한 실시예에서, 제 1 통신 모듈(2205)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 제 2 통신 모듈(2207)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 제 1 보안 모듈(2211)은 제 1 내장형 보안 요소(eSE)일 수 있다. 제 2 보안 모듈(2209)은 제 2 내장형 보안 요소(eSE)일 수 있다.
상기 제 1 모드의 AP(2201)는 제 1 인증서비스 트랜잭션을 검출하고, 상기 인증서비스 트랜잭션 명령을 상기 제 2 모드의 AP(2203)로 전달할 수 있다.
상기 제 2 모드의 AP(2203)는 상기 인증서비스 트랜잭션 명령 및 제1 인증정보(2211-1)를 상기 제 1 통신모듈(2205)로 전달할 수 있다. 상기 제2 모드의 AP(2203)는 제 1 보안 모듈(2211)에 접근하여 제 1 인증정보(2211-1)를 획득할 수 있다. 또한, 상기 제 2 모드의 AP(2203)는 상기 제 2 통신모듈(2207)로부터 상기 제 2 인증정보(2209-2)에 대응하는 인증결과를 제공받아 디스플레이 모듈(1208)에 디스플레이하도록 제어할 수 있다.
구현에 따라서, 상기 제 2 모드의 AP(2203)는 상기 제 2 통신모듈(2207)로부터 상기 제 2 인증정보(2209-2)를 요청받을 시, 상기 제 2 보안영역(2209)에 액세스하여 상기 제 2 인증정보(2209-2)를 획득하고 획득한 상기 제 2 인증정보(2209-2)를 상기 제 2 통신모듈(2207)로 전달할 수 있다.
상기 제 1 통신모듈(2205)는 상기 제 2 모드의 AP(2203)로부터 인증서비스 트랜잭션 명령 및 상기 제 1 인증정보(2211-1)를 수신하고 상기 제 1 인증정보(2211-1)를 처리하여 상기 POS 기기로 송신할 수 있다.
상기 제 2 통신모듈(2207)는 상기 전자장치가 POS 기기에 근접하거나 접속될 시, 제 2 인증서비스 트랜잭션을 검출하고, 상기 제 2 보안 모듈(2209)에 액세스하여 상기 제 2 인증정보(2209_2)를 획득하고, 그리고 획득한 상기 제 2 인증정보(2209_2)를 처리하여 상기 POS 기기로 송신할 수 있다. 또한, 상기 제 2 통신모듈(2207)는 인증결과에 대한 정보를 피드백받아 그 결과를 상기 제 2 모드의 AP(2203)로 제공할 수 있다.
상기 제 1 보안 모듈(2211)은 상기 제2 모드의 AP(2203)에 의해서만 액세스 가능하며, 상기 제 2 보안 모듈(2209)은 상기 제 2 모드의 AP(2203) 및 상기 제 2 통신모듈(2207)에 의해서만 액세스 가능하며, 상기 제 1 모드의 AP(2201) 또는 상기 제 1 통신모듈(2205)은 상기 제 1 보안 모듈(2211) 및 상기 제 2 보안 모듈(2209)을 직접(direct) 액세스할 수 없고, 상기 제 1 모드의 AP(2201) 또는 상기 제 2 통신모듈(2207)는 상기 제 1 보안 모듈(2211)을 직접 (Direct)액세스할 수 없는, 저장공간일 수 있다.
다양한 실시 예에서, 상기 제 1 인증정보는 전기적으로 제 1 모드의 AP(2201)와 연결되는 일반 메모리(2213)에 저장될 수 있다.
도 23은 다양한 실시예에 따른 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 23을 참조하면, 2300동작에서 제 1 인증 서비스의 트랜잭션이 발생하는 경우, 2302동작으로 진행하여 제 1 모드의 AP(2201)는 제 2 모드의 AP(2203)로 상기 제 1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2304동작에서, 상기 제 2 모드의 AP(2203)는 제 2 보안 모듈(2209) 또는 메모리(2213) 중 적어도 하나로부터 지불 결제를 위한 인증 정보를 획득할 수 있다.
2306동작에서, 상기 제 2 모드의 AP(2203)는 제 1 통신모듈(2205)로 상기 획득한 지불 결제를 위한 인증 정보를 전달하고 그리고 상기 제 1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2308동작에서, 상기 제 1 통신모듈(2205)는, 상기 인증 정보를 송신할 수 있다.
반면, 2300동작에서 제 2 인증 서비스의 트랜잭션이 발생하는 경우, 2310동작에서, 제 2 통신모듈(2207)는 상기 제 2 모드의 AP(2203)로 지불 결제를 위한 인증 정보를 요청할 수 있다.
2312동작에서, 상기 제 2 모드의 AP(2203)는 제 1 보안 모듈(2211)으로부터 지불 결제를 위한 인증 정보를 획득할 수 있다.
2314동작에서, 상기 제 2 모드의 AP(2203)는 제 2 통신모듈(2207)로 상기 획득한 지불 결제를 위한 인증 정보를 전달할 수 있다.
2316동작에서, 상기 제 2 모드의 AP(2203)는, 제 2 통신모듈(2207)을 이용하여 상기 인증 정보를 송신할 수 있다.
다양한 실시 예에서, 2300동작에서 제 2 인증 서비스의 트랜잭션이 발생하는 경우, 제 2 통신모듈(2207)는 직접 상기 제 2 보안 모듈(2209)으로부터 지불 결제를 위한 인증 정보를 획득하여 송신할 수도 있다.
또한, 다양한 실시 예에서, 제 1 모드의 AP(2201)에서 제 2 모드의 AP(2203)로 상기 제1 인증 서비스의 트랜잭션 명령이 전달될 때, 상기 제 2 모드의 AP(2203)에서 직접 상기 제 1 보안영역(2211)으로부터 지불 결제를 위한 인증 정보를 획득하는 대신에 하기 도 24과 같이 상기 제 2 모드의 AP(2203)에서 제 1 통신모듈(2205)로 상기 제 1 인증 서비스의 트랜잭션 명령을 전달한 후, 제 1 통신모듈(2205)로부터 지불 결제를 위한 인증 정보를 요청받을 수도 있다.
도 24는 다양한 실시예에서 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 다른 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 24를 참조하면, 제 1 모드의 AP(2201)는 제 2 모드의 AP(2203)로 상기 제 1 인증 서비스의 트랜잭션 명령이 전달될 때, 2401 동작에서 제 2 모드의 AP(2203)는 상기 제 1 통신모듈(2205)로 상기 제 1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2403동작으로 진행하여 상기 제 1 통신모듈(2205)는 상기 제 2 모드의 AP(2203)에 지불 결제를 위한 인증 정보를 요청할 수 있다.
2405동작에서, 상기 제 2 모드의 AP(2203)는 제 1 보안 모듈(2211) 또는 메모리(2213) 중 적어도 하나로부터 지불 결제를 위한 인증 정보를 획득할 수 있다.
2407동작에서, 상기 제 2 모드의 AP(2203)는 제 1 통신모듈(2205)로 상기 획득한 지불 결제를 위한 인증 정보를 전달할 수 있다.
2408동작에서, 전자 장치(예: 제 1 통신모듈(2205))는 상기 인증 정보를 외부 장치(예: PoS)로 송신할 수 있다.
도 25는 다양한 실시예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시하고 있다.
상기 도 25를 참조하면, 제 1 모드의 AP(2501) 및 제 2 모드의 AP(2503)는 상기 도 12의 프로세서(1200)에 대응하고, 제 1 통신모듈(2505)는 상기 도 12의 제 1 통신모듈 (1210)에 대응하고, 제 2 통신모듈(2507)는 상기 도 12의 제 2 통신모듈 (1212)에 대응할 수 있다. 여기서, 제 1 모드의 AP(2501)는 노멀 영역(예: REE)에서 동작하는 프로세서(1200)일 수 있고, 제 2 모드의 AP(2503)는 보안 영역(예: TEE)에서 동작하는 프로세서(1200)일 수 있다.
상기 제 1 통신모듈(2505) 및 제 2 통신모듈(2507)는 전기적으로 제 2 모드의 AP (2503)에 연결되어 있고, 보안 모듈(2509)은 제 2 통신모듈(2507)에 전기적으로 연결될 수 있다. 더하여, 상기 보안 모듈(2509)은 제 1 통신모듈(2507)에 전기적으로 연결될 수 있다.
다양한 실시예에서, 제 1 통신 모듈(2505)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 제 2 통신 모듈(2507)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 보안 모듈(2509)은 내장형 보안 요소(eSE)일 수 있다.
상기 제 1 모드의 AP(2501)는 인증서비스 트랜잭션을 검출하고, 제 1 인증서비스 트랜잭션 명령을 상기 제 2 모드의 AP(2503)로 전달할 수 있다.
상기 제 2 모드의 AP(2503)는 제 1 인증서비스 트랜잭션 명령 및 제 1 인증정보(2509-1)를 상기 제 1 통신모듈(2505)로 전달할 수 있다. 또한, 상기 제 2 모드의 AP(2503)는 상기 제 2 통신모듈(2507)로부터 상기 제 2 인증정보(2509-2)에 대응하는 인증결과를 제공받아 디스플레이 모듈(1208)에 디스플레이하도록 제어할 수 있다.
상기 제 1 통신모듈(2505)은 상기 제 2 모드의 AP(2503)로부터 인증서비스 트랜잭션 명령을 수신할 시, 상기 제 2 통신모듈(2507)에 제 1 인증정보(2509-1)를 요청하여, 상기 제 2 통신모듈(2507)를 통해 제 1 인증정보(2509-1)를 수신할 수 있다.
구현에 따라서, 상기 제 1 통신모듈(2505)는 상기 제 2 모드의 AP(2503)로부터 인증서비스 트랜잭션 명령을 수신할 시, 직접 상기 보안 모듈(2509)을 액세스하여 제1 인증정보(2509_1)를 획득할 수도 있다.
상기 제1 통신모듈(2505)는 상기 제1 인증정보(2509_1)를 처리하여 상기 POS 기기로 송신할 수 있다.
상기 제2 통신모듈(2507)는 상기 제1 통신모듈(2505)로부터 제1 인증정보를 요청받을 시, 상기 보안 모듈(2509)을 액세스하여 제1 인증정보(2509_1)를 획득하고 획득한 제1 인증정보(2509_1)를 상기 제1 통신모듈(2505)로 제공할 수 있다.
또한, 상기 제2 통신모듈(2507)는 상기 전자장치가 POS 기기에 근접하거나 접속될 시, 제2 인증서비스 트랜잭션을 검출하고, 직접 상기 보안 모듈(2509)에 액세스하여 상기 제2 인증정보(2509_2)를 획득하고, 상기 제2 인증정보(2509_2)를 처리하여 상기 POS 기기로 송신할 수 있다. 또한, 상기 제2 통신모듈(2507)는 인증결과에 대한 정보를 피드백받아 그 결과를 상기 제2 모드의 AP(2503)로 제공할 수 있다.
상기 보안 모듈(2509)은 상기 제1 통신모듈(2505) 또는 상기 제1 통신모듈(2505)에 의해서만 액세스 가능하며, 상기 제1 모드의 AP(2501) 및 상기 제2 모드의 AP(2503)가 액세스할 수 없는 저장공간일 수 있다. 실시 예에서 상기 보안 모듈(2509)은 상기 제1 인증정보(2509_1) 및 상기 제2 인증정보(2509_2)를 저장할 수 있다.
다양한 실시 예에서, 상기 제1 인증정보는 전기적으로 제1 모드의 AP(2501)와 연결되는 일반 메모리(2511)에 저장될 수 있다.
도 26은 다양한 실시예에 따른 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 26을 참조하면, 2600동작에서 제1 인증 서비스의 트랜잭션이 발생하는 경우, 2602동작으로 진행하여 제1 모드의 AP(2501)는 제2 모드의 AP(2503)로 상기 제1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2604동작에서, 상기 제2 모드의 AP(2503)는 상기 제1 통신모듈(2505)로 상기 제1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2606동작으로 진행하여 상기 제1 통신모듈(2505)는 제2 통신모듈(2507)에 지불 결제를 위한 제1 인증 정보를 요청할 수 있다.
2608동작에서, 제2 통신모듈(2507)는 보안 모듈(2509)으로부터 지불 결제를 위한 인증 정보(예를 들어, 제1 인증 정보(2509-1))를 획득할 수 있다.
2610동작에서, 상기 제2 통신모듈(2507)는 상기 제1 통신모듈(2505)로 상기 획득한 지불 결제를 위한 제1 인증 정보를 전달할 수 있다.
다양한 실시 예에서, 상기 제2 모드의 AP(2503)는 상기 제1 통신모듈(2505)로 상기 제1 인증 서비스의 트랜잭션 명령이 전달될 때, 2614동작에서 직접 상기 제1 통신모듈(2505)에서 보안 모듈(2509) 또는 메모리(2511) 중 적어도 하나로부터 지불 결제를 위한 제1 인증 정보를 획득할 수도 있다.
2620동작에서, 상기 제1 통신모듈(2505)는, 인증 정보를 송신할 수 있다.
반면, 2600동작에서 제2 인증 서비스의 트랜잭션이 발생하는 경우, 2616동작으로 진행하여 상기 제2 통신모듈(2507)는 보안 모듈(2509)으로부터 지불 결제를 위한 인증 정보(예를 들어, 제2 인증 정보(2509_2))를 획득할 수 있다.
2618동작에서, 상기 제2 통신모듈(2507)는, 상기 인증 정보를 송신할 수 있다.
도 27는 제6 실시 예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시하고 있다. 상기 도 27를 참조하면, 제1 모드의 AP(2701) 및 제2 모드의 AP(2703)는 상기 도 12의 프로세서(1200)에 대응하고,, 제1 통신모듈(2705)는 상기 도 12의 제1 통신모듈 (1210), 제2 통신모듈(2709)는 상기 도 12의 제2 통신모듈 (1212)에 대응할 수 있다. 여기서, 제1 모드의 AP(2701)는 노멀 영역(예: REE)에서 동작하는 프로세서(1200)일 수 있고, 제2 모드의 AP(2703)는 보안 영역(예: TEE)에서 동작하는 프로세서(1200)일 수 있다.
상기 제1 통신모듈(2705) 및 제2 통신모듈(2709)는 전기적으로 제2 모드의 AP (2703)에 연결되어 있고, 제2 보안 모듈(2711)은 제2 통신모듈(2709)에 전기적으로 연결될 수 있다. 그리고 제1 보안 모듈(2707)은 제1 통신모듈(2705)에 전기적으로 연결될 수 있다.
다양한 실시예에서, 제 1 통신 모듈(2705)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 제 2 통신 모듈(2709)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 제 1 보안 모듈(2707)은 제 1 내장형 보안 요소(eSE)일 수 있다. 제 2 보안 모듈(2711)은 제 2 내장형 보안 요소(eSE)일 수 있다.
상기 제1 모드의 AP(2701)는 인증서비스 트랜잭션을 검출하고, 제1 인증서비스 트랜잭션 명령을 상기 제2 모드의 AP(2703)로 전달할 수 있다.
상기 제2 모드의 AP(2703)는 제1 인증서비스 트랜잭션 명령 및 제1 인증정보(2707_1)를 상기 제1 통신모듈(2705)로 전달할 수 있다. 또한, 상기 제2 모드의 AP(2703)는 상기 제2 통신모듈(2709)로부터 상기 제2 인증정보(2711_2)에 대응하는 인증결과를 제공받아 디스플레이 모듈(508)에 디스플레이하도록 제어할 수 있다.
상기 제1 통신모듈(2705)는 상기 제2 모드의 AP(2703)로부터 인증서비스 트랜잭션 명령을 수신할 시, 직접 상기 제1 보안영역(2707)을 액세스하여 제1 인증정보(2707_1)를 획득할 수 있다. 그리고 획득한 상기 제1 인증정보(2707_1)를 처리하여 상기 POS 기기로 송신할 수 있다.
상기 제2 통신모듈(2709)는 상기 전자장치가 POS 기기에 근접하거나 접속될 시, 제2 인증서비스 트랜잭션을 검출하고, 상기 제2 보안 모듈(2711)에 액세스하여 상기 제2 인증정보(2711_2)를 획득하고, 그리고 획득한 상기 제2 인증정보(2711_2)를 처리하여 상기 POS 기기로 송신할 수 있다. 또한, 상기 제2 통신모듈(2709)는 인증결과에 대한 정보를 피드백받아 그 결과를 상기 제2 모드의 AP(2703)로 제공할 수 있다.
상기 제1 보안영역(2707)은 상기 제1 통신모듈(2705)에 의해서만 액세스 가능하며, 상기 제2 보안영역(2711)은 상기 제2 통신모듈(2709)에 의해서만 액세스 가능하며, 상기 제1 모드의 AP(2701) 또는 상기 제2 모드의 AP(2703)는 상기 제1 보안영역(2707) 및 상기 제2 보안영역(2711)을 액세스할 수 없는 저장공간일 수 있다.
다양한 실시 예에서, 상기 제1 인증정보는 전기적으로 제1 모드의 AP(2701)와 연결되는 일반 메모리(2713)에 저장될 수 있다.
도 28은 제6 실시 예에 따른 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 28을 참조하면, 2800동작에서 제1 인증 서비스의 트랜잭션이 발생하는 경우, 2802동작으로 진행하여 제1 모드의 AP(2701)는 제2 모드의 AP(2703)로 상기 제1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2804동작에서, 상기 제2 모드의 AP(2703)는 상기 제1 통신모듈(2705)로 상기 제1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2806동작에서, 상기 제1 통신모듈(2705)는 제1 보안영역(2707) 또는 메모리(2713) 중 적어도 하나로부터 지불 결제를 위한 인증 정보를 획득할 수 있다.
2808동작에서, 상기 제1 통신모듈(2705)는, 상기 인증 정보를 송신할 수 있다.
반면, 2800동작에서 제2 인증 서비스의 트랜잭션이 발생하는 경우, 2810동작으로 진행하여 상기 제2 통신모듈(2709)는 제2 보안 모듈(2711)으로부터 지불 결제를 위한 인증 정보를 획득할 수 있다.
2812동작에서, 상기 제2 통신모듈(2709)는, 상기 인증 정보를 송신할 수 있다.
다양한 실시 예에서, 2800동작에서 제2 인증 서비스의 트랜잭션이 발생하는 경우, 하기 도 29의 동작 방법으로 지불 결제가 수행될 수도 있다.
도 29는 제6 실시 예에서 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 다른 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 29를 참조하면, 제2 인증 서비스의 트랜잭션이 발생하는 경우, 2900동작으로 진행하여 제1 모드의 AP(2701)는 제2 모드의 AP(2703)로 상기 제1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2902동작에서, 상기 제2 모드의 AP(2703)는 상기 제2 통신모듈(2709)로 상기 제2 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
2904동작에서, 상기 제2 통신모듈(2709)는 제2 보안 모듈(2711)으로부터 지불 결제를 위한 인증 정보를 획득할 수 있다.
2906동작에서, 상기 제2 모드의 AP(2703)는, 제2 통신모듈(2709)을 이용하여 상기 인증 정보를 송신할 수 있다.
도 30은 제7 실시 예에 따른 전자장치의 내부 구성요소들간 인터페이스를 도시하고 있다.
상기 도 30을 참조하면, 제1 모드의 AP(3001) 및 제2 모드의 AP(3003)는 상기 도 12의 프로세서(1200)에 에 대응하고, 제1 통신모듈(3005)는 상기 도 12의 제1 통신모듈(1210)에 대응하고, 제2 통신모듈(3005)는 상기 도 12의 제2 통신모듈 (1212)에 대응할 수 있다. 여기서, 제1 모드의 AP(3001)는 노멀 영역(예: REE)에서 동작하는 프로세서(1200)일 수 있고, 제2 모드의 AP(3003)는 보안 영역(예: TEE)에서 동작하는 프로세서(1200)일 수 있다.
상기 제1 통신모듈(3005) 및 제2 통신모듈(3007)는 전기적으로 제2 모드의 AP (3003)에 연결되어 있고, 보안 모듈(3009)은 제1 통신모듈(3005), 제2 통신모듈(3007) 및 제2 모드의 AP(3003)에 각각 전기적으로 연결될 수 있다.
다양한 실시예에서, 제 1 통신 모듈(3005)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 제 2 통신 모듈(3007)은 MST 모듈(예: MST 모듈(810)) 또는 NFC 모듈(예: NFC 모듈(820)) 중 적어도 하나일 수 있다. 보안 모듈(3009)은 내장형 보안 요소(eSE)일 수 있다.
상기 제1 모드의 AP(3001)는 인증서비스 트랜잭션을 검출하고, 인증서비스 트랜잭션 명령을 상기 제2 모드의 AP(3003)로 전달할 수 있다.
상기 제2 모드의 AP(3003)는 제1 인증서비스 트랜잭션 명령을 상기 제1 통신모듈(3003)로 전달하고, 보안 모듈(3009)에 상기 제1 인증정보(3009_1)를 상기 제1 통신모듈(3005)로 전달 요청할 수 있다.
다양한 실시예에서, 상기 제2 모드의 AP(3003)는 제2 인증서비스 트랜잭션이 발생할 시, 보안 모듈(3009)에 상기 제2 인증정보(3009_1)를 상기 제2 통신모듈(3003)로 전달 요청할 수 있다.
상기 제2 모드의 AP(3003)는 보안 모듈(3009)에 접근하여 상기 제1 인증정보(3009_1)를 획득할 수 있다. 또한, 상기 제2 모드의 AP(3003)는 상기 제2 통신모듈(3007)로부터 상기 제2 인증정보(3009_2)에 대응하는 인증결과를 제공받아 디스플레이 모듈(1208)에 디스플레이하도록 제어할 수 있다.
상기 제1 통신모듈(3005)는 상기 제2 모드의 AP(3003)로부터 인증서비스 트랜잭션 명령을 수신하고 보안 모듈(3009)으로부터 상기 제1 인증정보(3009_1)를 수신할 수 있다. 그리고, 상기 제1 통신모듈(3005)는 상기 수신한 제1 인증정보(3009_1)를 처리하여 상기 POS 기기로 송신할 수 있다.
상기 제2 통신모듈(3007)는 상기 전자장치가 POS 기기에 근접하거나 접속될 시, 제2 인증서비스 트랜잭션을 검출하고, 직접 상기 보안 모듈(3009)에 액세스하여 상기 제2 인증정보(3009_2)를 획득하고, 상기 획득한 제2 인증정보(3009_2)를 처리하여 상기 POS 기기로 송신할 수 있다. 또한, 상기 제2 통신모듈(3007)는 인증결과에 대한 정보를 피드백받아 그 결과를 상기 제2 모드의 AP(3003)로 제공할 수 있다.
구현에 따라서, 상기 제2 통신모듈(3007)는 상기 전자장치가 POS 기기에 근접하거나 접속될 시, 상기 제2 모드의 AP(3003)에 상기 제2 인증정보(3009_2)를 요청하여 상기 제2 모드의 AP(3003)를 통해 제공받을 수도 있다.
상기 보안 모듈(3009)은 상기 제2 모드의 AP(3001) 및 상기 제2 통신모듈(3005)에 의해서만 액세스 가능하며, 상기 제1 모드의 AP(3001)가 액세스할 수 없는 저장공간일 수 있다. 다만, 상기 제1 통신모듈(3005)는 보안 모듈(3009)으로부터 단방향으로 제1 인증정보(3009_1)를 수신할 수 있다. 실시 예에서, 상기 보안 모듈(3009)은 상기 제1 인증정보(3009_1) 및 상기 제2 인증정보(3009_2)를 포함할 수 있다.
다양한 실시 예에서, 상기 제1 인증정보는 전기적으로 제1 모드의 AP(3001)와 연결되는 일반 메모리(3011)에 저장될 수 있다.
다양한 실시 예에 따르면, 제2 모드의 AP(3001)는 인증정보를 저장할 수 있다. 예를 들어, 도 5a에 기재된 trusted RAM(501)에 인증 정보를 저장할 수 있다. 여기에서, 제2 모드의 AP(3001)에 저장된 인증 정보는 제1 통신모듈(3005) 및 제2 통신모듈(3007)을 통해 전송될 수 있다. 예를 들어, 상기 제2 모드의 AP(3001)는 하나의 인증 정보를 제1 통신모듈(3005) 및 제2 통신모듈(3007)을 통해 수신 장치로 전송할 수 있다.
다른 실시예에 따르면, 제2 모드의 AP(3001)에 저장된 인증 정보는 제1 통신모듈(3005)을 통해 전송되는 제1 인증 정보와 제2 통신모듈(3007)을 통해 전송되는 제2 인증 정보를 포함할 수 있다. 예를 들어, 상기 제2 모드의 AP(3001)는 제1 인증 정보를 제1 통신모듈(3005)를 통해 수신 장치로 전송할 수 있으며, 제2 인증 정보를 제2 통신모듈(3007)을 통해 수신 장치로 전송할 수 있다. 다양한 실시예에 따르면, 상기 제2 모드의 AP(3001)는 저장된 인증 정보 가운데 적어도 하나의 인증 정보만을 수신 장치로 전송할 수 있다. 예를 들어, 전송하고자 하는 인증 정보에 대응하는 통신 모듈을 통해 수신 장치로 전송할 수 있다.
도 31을 제7 실시 예에 따른 모바일 근거리 결제 서비스를 위한 복수의 통신모듈을 포함한 전자장치의 동작 방법을 위한 흐름도를 도시하고 있다.
상기 도 31을 참조하면, 3100동작에서 제1 인증 서비스의 트랜잭션이 발생하는 경우, 3102동작으로 진행하여 제1 모드의 AP(3001)는 제2 모드의 AP(3003)로 상기 제1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
3104동작에서, 상기 제2 모드의 AP(3003)는 상기 제1 통신모듈(3005)로 상기 제1 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
3106동작에서, 상기 제2 모드의 AP(3003)는 보안 모듈(3009) 또는 메모리(3011) 중 적어도 하나에 상기 제1 통신모듈(3105)로 지불 결제를 위한 인증 정보를 전달 요청할 수 있다.
3108동작에서, 상기 보안 모듈(3009) 또는 메모리(3011) 중 적어도 하나는 상기 제1 통신모듈(3005)로 지불 결제를 위한 인증 정보를 전달할 수 있다.
3110동작에서, 상기 제1 통신모듈(3005)는, 상기 보안 모듈(3009)으로부터 수신된 상기 인증 정보를 송신할 수 있다.
반면, 3100동작에서 제2 인증 서비스의 트랜잭션이 발생하는 경우, 3112동작으로 진행하여 제1 모드의 AP(3001)는 제2 모드의 AP(3003)로 상기 제2 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
3114동작에서, 상기 제2 모드의 AP(3003)는 상기 제2 통신모듈(2007)로 상기 제2 인증 서비스의 트랜잭션 명령을 전달할 수 있다.
3116동작에서, 상기 제2 통신모듈(3007)는 상기 제2 모드의 AP(3003)에 지불 결제를 위한 인증 정보를 요청하여 획득할 수 있다.
3118동작에서, 상기 제2 통신모듈(3007)는, 상기 인증 정보를 송신할 수 있다.
도 32는 다양한 실시예에 따른 결제를 위한 정보 생성을 위한 전자 장치의 내부 구성 요소들 간의 인터페이스를 도시한다.
전자장치(예: 전자장치(101))는 노멀 영역(Normal World, 예를 들어, REE(410)) 및 보안 처리 영역을 포함할 수 있다.
노멀 영역은 결제 어플리케이션(3201), 예를 들어, 도 9의 결제 어플리케이션(912)을 적어도 하나 이상 포함할 수 있다. 보안 처리 영역은 보안 영역(Secure World, 예를 들어, TEE(420))와 보안 모듈(예: 내장형 보안 요소(embedded Secure Element, eSE)를 포함할 수 있다. 보안 처리 영역은 보안이 요구되는 데이터를 안전한 환경 내에서 저장하고 관련된 동작을 수행할 수 있는 영역일 수 있다.
다양한 실시예에서, 보안 처리 영역은 적어도 하나의 이상의 보안 모듈(예: eSE)로만 구성될 수 있다. 적어도 하나의 이상의 보안 모듈(예: eSE)로만 보안 처리 영역이 구성되면, 보안 모듈(eSE) 중 적어도 하나는 TEE 내의 구성 요소의 동작(예를 들어, MST 드라이버 모듈, 또는 보안 어플리케이션의 동작)을 수행할 수 있다.
다양한 실시예에서, 보안 처리 영역은 적어도 하나의 이상의 보안 영역(예: TEE)으로만 구성될 수 있다. 적어도 하나의 이상의 보안 영역(예: TEE)으로만 보안 처리 영역이 구성되면, 보안 영역(예: TEE) 중 적어도 하나는 보안 모듈(eSE)의 동작을 수행할 수 있다.보안 영역은 TEE 내부의 어플리케이션(예: 보안 어플리케이션(3202,trusted application, TA), 보안 모듈(3203, 예를 들어, 내장형 보안 요소(eSE), 도 9의 보안 저장소(916)) 및 MST 드라이버 모듈(3205, MST TA, 예를 들어, 도 18의 MST 드라이버 모듈(1827))을 포함할 수 있다. 보안 모듈(3203)은 하나 이상의 결제 관련 프로그램(applet)을 저장할 수 있다.
결제 어플리케이션(3201)은 현재 시간에 관련된 정보(예를 들어, UTC(Coordinated Universal Time) 정보)를 보안 영역으로 전송할 수 있다.
예를 들면, 전자장치(예: 전자장치(101))는 전자 장치에 포함된 운영체제(예를 들어, AndroidTM OS) 통해 UTC 정보를 획득할 수 있다. 전자장치(예: 전자장치(101))는 NITZ(network identity and time zone) 또는 NTP(network time protocol)등을 통해 UTC 정보를 획득할 수 있고, 외부 서버(예: 제 1 관리서버)도 UTC 정보를 획득하면 전자장치와 외부서버는 시간이 동기화 되어 상기 시간 인증 코드를 인증할 수 있다. 외부 서버도 전자장치와 동일한 방법(예: NITZ 또는 NTP)을 이용해서 특정시간 값을 획득할 수 있다.
결제 어플리케이션(3201)은 현재 시간에 관련된 정보(예: UTC 정보)를 보안 어플리케이션(3202, TA)로 전송할 수 있다. 보안 어플리케이션(3202)는 현재 시간에 관련된 정보(예: UTC 정보)를 보안 모듈(3203)에 전달할 수 있다.
보안 모듈(3203)은 적어도 하나 이상의 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키)를 포함할 수 있다. 전자장치(예: 전자장치(101))는 적어도 하나 이상의 통신모듈(예를 들어, 도 12의 제 1 통신 모듈(1210), 및 제 2 통신 모듈(1212)를 포함할 수 있다. 보안 모듈(3203)은 적어도 하나의 통신 모듈 각각에 대응하는 인증 정보를 포함할 수 있다.
보안 모듈(3203)은 결제 관련 프로그램(3204)를 이용하여 카드에서 트랙 2(track 2) 정보를 생성할 수 있다. 결제 관련 프로그램(3204)은, 암호와 관련된 알고리즘, 예를 들어, HMAC (hash-based message authentication code) 알고리즘을 포함할 수 있다.
결제 관련 프로그램(3204)은 현재 시간에 관련된 정보(예: UTC 정보) 및 적어도 하나 이상의 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키) 중 적어도 하나에 기초하여, 타임스탬프 정보 및 결제 정보(예를 들어, 트랙 2(track 2) 정보) 중 적어도 하나 이상을 생성할 수 있다. 타임스탬프 정보를 이용하여 생성된 결제 정보는 MST 모듈에 대응하는 인증정보를 이용하여 생성될 수 있다.
트랙 2(track 2) 정보는 결제에 이용되는 결제 정보로서, 결제 정보는 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나 이상을 포함할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
버전 정보(version information)는 결제 정보의 생성의 알고리즘 버전을 나타내는 정보일 수 있고, 시퀀스 번호는 결제 정보가 사용된 횟수를 카운팅하는 정보일 수 있다.
타임스탬프 정보는 현재 시간, 프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period) 중 적어도 하나를 이용하여 생성될 수 있다.
현재 시간은 UTC 정보에 기초한 시간일 수 있다. 현재 시간은 결제 어플리케이션(3201)이 결제를 요청한 시간일 수 있다. 프로비저닝 타임(provisioning time)은 토큰이 배포될 때, 토큰 서버 또는 토큰 서비스 프로바이더(token service provider(TSP), 예를 들어, 도 7의 730)에서 전자 장치로 토큰이 전달된 시간일 수 있다. 기준 시간(reference time)은 영점 값(zero value)로 설정될 수 있다. 다양한 실시예에서, 기준 시간(reference time)은, 예를 들어, 프로비저닝 타임(provisioning time)과 동일할 수 있다.
유효 기간(validity period)은 결제 요청한 시간으로부터 시작되어 생성된 토큰(Token)이 유효하게 사용될 수 있도록 미리 설정된 시간으로서, 전자 장치는 결제 서버, 또는 금융 서버로부터 유효 기간에 대한 정보를 수신할 수 있다. 예를 들어, 유효 기간(validity period)은 180초로 설정될 수 있다.
보안 모듈(3201), 보안 어플리케이션(3202) 또는 보안 영역 중 적어도 하나는 UTC 정보에 기초한 현재 시간, 프로비저닝 타임(provisioning time) 및 유효 기간(validity period)을 이용하여 타임스탬프 정보를 생성할 수 있다.
예를 들어, 타임스탬프 정보는 수학식 1과 같을 수 있다.
[수학식 1]
타임스탬프 정보=FLOOR((현재 시간- 프로비저닝 타임) / 유효 기간)
FLOOR 함수는 소수점 내림에 관한 함수일 수 있다.
다양한 실시예에서, 보안 모듈(3201), 보안 어플리케이션(3202) 또는 보안 영역 중 적어도 하나는 UTC 정보에 기초한 현재 시간, 기준 시간(reference time) 및 유효 기간(validity period)을 이용하여 타임스탬프 정보를 생성할 수 있다.
예를 들어, 타임스탬프 정보는 수학식 2와 같을 수 있다.
[수학식 2]
타임스탬프 정보=FLOOR((현재 시간- 기준 시간) / 유효 기간)
보안 모듈(3201)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나 이상을 포함하는 정보를 토큰 크립토그램 생성을 위한 키를 이용하여 인증 코드 또는 인증 정보를 생성할 수 있다.
보안 모듈(3201)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number) 및 인증 코드 또는 인증 정보 중 적어도 하나 이상을 포함하는 결제 정보(예, 트랙 2 정보)를 생성할 수 있다.
다양한 실시예에 따르면, 보안 모듈(3201)은 토큰 크립토그램 생성을 위한 키를 이용하여 UTC 정보를 암호화한 원타임 패스워드(One Time Password) 코드를 생성하고, 원타임 패스워드(One Time Password) 코드를 이용하여 결제 정보를 생성할 수 있다.
보안 모듈(3201)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number) 및 원타임 패스워드(one time password) 코드 중 적어도 하나 이상을 포함하는 결제 정보(예, 트랙 2 정보)를 생성할 수 있다.
생성된 결제 정보는 MST 드라이버 모듈(3205, MST TA, 예를 들어, 도 18의 MST 드라이버 모듈(1827))을 이용하여 결제 어플리케이션(3201) 또는 외부 전자 장치로 전송될 수 있다.
다양한 실시예에 따르면, 생성된 결제 정보는 NFC 모듈(예, 도 8의 820)을 이용하여 결제 어플리케이션(3201) 또는 외부 전자 장치로 전송될 수 있다.
도 33은 다양한 실시예에 따른 결제를 위한 정보 생성을 위한 전자 장치의 내부 구성 요소들 간의 인터페이스를 도시한다.
전자장치(예: 전자장치(101))는 노멀 영역(Normal World, 예를 들어, REE(410)) 및 보안 처리 영역을 포함할 수 있다.
노멀 영역은 결제 어플리케이션(3301), 예를 들어, 도 9의 결제 어플리케이션(912)을 적어도 하나 이상 포함할 수 있다. 보안 처리 영역은 보안 영역(Secure World, 예를 들어, TEE(420))을 포함할 수 있다. 보안 처리 영역은 보안이 요구되는 데이터를 안전한 환경 내에서 저장하고 관련된 동작을 수행할 수 있는 영역일 수 있다.
보안 영역은 TEE 내부의 어플리케이션(예: 보안 어플리케이션(3304,trusted application(TA)), 토큰 보안 어플리케이션(3302, 예를 들어, 내장형 보안 요소 (eSE), 도 9의 보안 저장소(916)) 및 MST 드라이버 모듈(3305, MST TA, 예를 들어, 도 18의 MST 드라이버 모듈(1827))을 포함할 수 있다. 토큰 보안 어플리케이션(3302)은 결제 관련 프로그램(3303, SDK)을 포함할 수 있다.
결제 어플리케이션(3301)은 현재 시간에 관련된 정보(예를 들어, UTC(Coordinated Universal Time) 정보)를 보안 영역으로 전송할 수 있다.
예를 들면, 전자장치(예: 전자장치(101))는 전자 장치에 포함된 운영체제(예를 들어, AndroidTM OS) 통해 UTC 정보를 획득할 수 있다. 전자장치(예: 전자장치(101))는 NITZ(network identity and time zone) 또는 NTP(network time protocol)를 통해 UTC 정보를 획득할 수 있고, 외부 서버(예: 제 1 관리서버)도 UTC 정보를 획득하면 전자장치와 외부서버는 시간이 동기화 되어 상기 시간 인증 코드를 인증할 수 있다. 외부 서버도 전자장치와 동일한 방법(예: NITZ 또는 NTP)을 이용해서 특정시간 값을 획득할 수 있다.
결제 어플리케이션(3301)은 현재 시간에 관련된 정보(예: UTC 정보)를 보안 어플리케이션(3304, TA)로 전송할 수 있다.
토큰 보안 어플리케이션(3302)은 적어도 하나 이상의 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키)를 포함할 수 있다. 전자장치(예: 전자장치(101))는 적어도 하나 이상의 통신모듈(예를 들어, 도 12의 제 1 통신 모듈(1210), 및 제 2 통신 모듈(1212)를 포함할 수 있다. 토큰 보안 어플리케이션(3302)은 적어도 하나의 통신 모듈 각각에 대응하는 인증 정보를 포함할 수 있다.
토큰 보안 어플리케이션(3302)은 결제 관련 프로그램(3303)를 이용하여 카드에서 트랙 2(track 2) 정보를 생성할 수 있다. 보안 어플리케이션(3304, TA)은 현재 시간에 관련된 정보(예: UTC 정보)및 적어도 하나 이상의 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키) 중 적어도 하나에 기초하여, 타임스탬프 정보 및 결제 정보(예를 들어, 수정된 트랙 2(track 2) 정보) 중 적어도 하나 이상을 생성할 수 있다. 타임스탬프 정보를 이용하여 생성된 결제 정보는 MST 모듈에 대응하는 인증정보를 이용하여 생성될 수 있다. 보안 어플리케이션(3304, TA)은, 암호와 관련된 알고리즘, 예를 들어, HMAC (Hash-based Message Authentication Code) 알고리즘을 포함할 수 있다.
수정된 트랙 2(track 2) 정보는 결제에 이용되는 결제 정보로서, 결제 정보는 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나 이상을 포함할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
타임스탬프 정보는 현재 시간, 프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period) 중 적어도 하나를 이용하여 생성될 수 있다.
현재 시간은 UTC 정보에 기초한 시간일 수 있다. 현재 시간은 결제 어플리케이션(3301)이 결제를 요청한 시간일 수 있다. 프로비저닝 타임(provisioning time)은 토큰이 배포될 때, 토큰 서버 또는 토큰 서비스 프로바이더(token service provider(TSP), 예를 들어, 도 7의 730)에서 전자 장치로 토큰이 전달된 시간일 수 있다. 기준 시간(reference time)은 영점 값(zero value)로 설정될 수 있다. 다양한 실시예에서, 기준 시간(reference time)은, 예를 들어, 프로비저닝 타임(provisioning time)과 동일할 수 있다.
유효 기간(validity period)은 결제 요청한 시간으로부터 시작되어 생성된 토큰(Token)이 유효하게 사용될 수 있도록 미리 설정된 시간으로서, 전자 장치는 결제 서버, 또는 금융 서버로부터 유효 기간에 대한 정보를 수신할 수 있다. 예를 들어, 유효 기간(validity period)은 180초로 설정될 수 있다.
토큰 보안 어플리케이션(3302), 보안 어플리케이션(3304) 또는 보안 영역 중 적어도 하나는 UTC 정보에 기초한 현재 시간, 프로비저닝 타임(provisioning time) 및 유효 기간(validity period)을 이용하여 타임스탬프 정보를 생성할 수 있다.
다양한 실시예에서, 토큰 보안 어플리케이션(3302), 보안 어플리케이션(3304) 또는 보안 영역 중 적어도 하나는 UTC 정보에 기초한 현재 시간, 기준 시간(reference time) 및 유효 기간(validity period)을 이용하여 타임스탬프 정보를 생성할 수 있다.
보안 어플리케이션(3304)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나 이상을 포함하는 정보를 토큰 크립토그램 생성을 위한 키를 이용하여 인증 코드 또는 인증 정보를 생성할 수 있다.
보안 어플리케이션(3304)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number) 및 인증 코드 또는 인증 정보 중 적어도 하나 이상을 포함하는 결제 정보(예, 수정된 트랙 2 정보)를 생성할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
다양한 실시예에 따르면, 보안 어플리케이션(3304)은 토큰 크립토그램 생성을 위한 키를 이용하여 UTC 정보를 암호화한 원타임 패스워드(One Time Password) 코드를 생성하고, 원타임 패스워드(One Time Password) 코드를 이용하여 결제 정보를 생성할 수 있다.
보안 어플리케이션(3304)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number) 및 원타임 패스워드(One Time Password) 코드 중 적어도 하나 이상을 포함하는 결제 정보(예, 수정된 트랙 2 정보)를 생성할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
생성된 결제 정보는 MST 드라이버 모듈(3305, MST TA, 예를 들어, 도 18의 MST 드라이버 모듈(1827))을 이용하여 결제 어플리케이션(3301) 또는 외부 전자 장치로 전송될 수 있다.
다양한 실시예에 따르면, 생성된 결제 정보는 NFC 모듈(예, 도 8의 820)을 이용하여 결제 어플리케이션(3301) 또는 외부 전자 장치로 전송될 수 있다.
도 34는 다양한 실시예에 따른 결제를 위한 정보 생성을 위한 전자 장치의 내부 구성 요소들 간의 인터페이스를 도시한다.
전자장치(예: 전자장치(101))는 노멀 영역(Normal World, 예를 들어, REE(410)) 및 보안 처리 영역을 포함할 수 있다.
노멀 영역은 보안 시간 모듈(3401), 결제 어플리케이션(3402), 예를 들어, 도 9의 결제 어플리케이션(912)을 적어도 하나 이상 포함할 수 있다. 보안 처리 영역은 보안 영역(Secure World, 예를 들어, TEE(420))을 포함할 수 있다. 보안 처리 영역은 보안이 요구되는 데이터를 안전한 환경 내에서 저장하고 관련된 동작을 수행할 수 있는 영역일 수 있다.
보안 영역은 TEE 내부의 어플리케이션(예: 보안 어플리케이션(3403,trusted application(TA)), 보안 모듈(3404, 예를 들어, 내장형 보안 요소(eSE), 도 9의 보안 저장소(916)) 및 MST 드라이버 모듈(3406, MST TA, 예를 들어, 도 18의 MST 드라이버 모듈(1827))을 포함할 수 있다. 보안 모듈(3404)은 결제 관련 프로그램(3405, Applet)을 포함할 수 있다.
보안 시간 모듈(3401)은 사용자 권한으로 변경되지 않는 시간 정보를 관리하는 모듈로서, 노멀 영역(Normal World, 예를 들어, REE(410))에 포함될 수 있다. 다양한 실시예에서, 노멀 영역(Normal World, 예를 들어, REE(410)), 보안 영역(Secure World, 예를 들어, TEE(420)) 또는 전자장치 외부(예: 서버)에 구현될 수 있다. 시간 정보는 주기적으로 외부 장치와 싱크를 맞출 수 있다. 전자장치(예: 전자장치(101))는 전자 장치 내의 시간 정보를 사용자가 변경할 수 없도록 할 수 있다.
보안 시간 모듈(3401)은 현재 시간에 관련된 정보(예를 들어, UTC(Coordinated Universal Time) 정보)를 결제 어플리케이션(3402)에 전송할 수 있다.
결제 어플리케이션(3402)은 현재 시간에 관련된 정보(예를 들어, UTC(Coordinated Universal Time) 정보)를 보안 영역으로 전송할 수 있다.
예를 들면, 전자장치(예: 전자장치(101))는 전자 장치에 포함된 운영체제(예를 들어, AndroidTM OS) 통해 UTC 정보를 획득할 수 있다. 전자장치(예: 전자장치(101))는 NITZ(network identity and time zone) 또는 NTP(network time protocol)를 통해 UTC 정보를 획득할 수 있고, 외부 서버(예:제 1 관리서버)도 UTC 정보를 획득하면 전자장치와 외부서버는 시간이 동기화 되어 상기 시간 인증 코드를 인증할 수 있다. 외부 서버도 전자장치와 동일한 방법(예:NITZ 또는 NTP)을 이용해서 특정시간 값을 획득할 수 있다.
결제 어플리케이션(3402)은 현재 시간에 관련된 정보(예: UTC 정보)를 보안 어플리케이션(3403, TA)로 전송할 수 있다. 보안 어플리케이션(3403)은 현재 시간에 관련된 정보(예: UTC 정보)를 보안 모듈(3404)에 전달할 수 있다.
보안 모듈(3404)은 적어도 하나 이상의 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키)를 포함할 수 있다. 전자장치(예: 전자장치(101))는 적어도 하나 이상의 통신모듈(예를 들어, 도 12의 제 1 통신 모듈(1210), 및 제 2 통신 모듈(1212)를 포함할 수 있다. 보안 모듈(3404)은 적어도 하나의 통신 모듈 각각에 대응하는 인증 정보를 포함할 수 있다.
보안 모듈(3404)은 결제 관련 프로그램(3405)를 이용하여 카드에서 트랙 2(track 2) 정보를 생성할 수 있다. 결제 관련 프로그램(3405)은, 암호와 관련된 알고리즘, 예를 들어, HMAC (Hash-based Message Authentication Code) 알고리즘을 포함할 수 있다.
결제 관련 프로그램(3405)은 현재 시간에 관련된 정보(예: UTC 정보) 및 적어도 하나 이상의 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키) 중 적어도 하나에 기초하여, 타임스탬프 정보 및 결제 정보(예를 들어, 트랙 2(track 2) 정보) 중 적어도 하나 이상을 생성할 수 있다. 타임스탬프 정보를 이용하여 생성된 결제 정보는 MST 모듈에 대응하는 인증정보를 이용하여 생성될 수 있다.
트랙 2(track 2) 정보는 결제에 이용되는 결제 정보로서, 결제 정보는 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나 이상을 포함할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
타임스탬프 정보는 현재 시간, 프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period) 중 적어도 하나를 이용하여 생성될 수 있다.
현재 시간은 UTC 정보에 기초한 시간일 수 있다. 현재 시간은 결제 어플리케이션(3402)이 결제를 요청한 시간일 수 있다. 프로비저닝 타임(provisioning time)은 토큰이 배포될 때, 토큰 서버 또는 토큰 서비스 프로바이더(token service provider(TSP), 예를 들어, 도 7의 730)에서 전자 장치로 토큰이 전달된 시간일 수 있다. 기준 시간(reference time)은 영점 값(zero value)로 설정될 수 있다. 다양한 실시예에서, 기준 시간(reference time)은, 예를 들어, 프로비저닝 타임(provisioning time)과 동일할 수 있다.
유효 기간(validity period)은 결제 요청한 시간으로부터 시작되어 생성된 토큰(Token)이 유효하게 사용될 수 있도록 미리 설정된 시간으로서, 전자 장치는 결제 서버, 또는 금융 서버로부터 유효 기간에 대한 정보를 수신할 수 있다. 예를 들어, 유효 기간(validity period)은 180초로 설정될 수 있다.
보안 모듈(3404), 보안 어플리케이션(3403) 또는 보안 영역 중 적어도 하나는 UTC 정보에 기초한 현재 시간, 프로비저닝 타임(provisioning time) 및 유효 기간(validity period)을 이용하여 타임스탬프 정보를 생성할 수 있다.
다양한 실시예에서, 보안 모듈(3404), 보안 어플리케이션(3403) 또는 보안 영역 중 적어도 하나는 UTC 정보에 기초한 현재 시간, 기준 시간(reference time) 및 유효 기간(validity period)을 이용하여 타임스탬프 정보를 생성할 수 있다.
보안 모듈(3404)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나 이상을 포함하는 정보를 토큰 크립토그램 생성을 위한 키를 이용하여 인증 코드 또는 인증 정보를 생성할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
보안 모듈(3404)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number) 및 인증 코드 또는 인증 정보 중 적어도 하나 이상을 포함하는 결제 정보(예, 트랙 2 정보)를 생성할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
다양한 실시예에 따르면, 보안 모듈(3404)은 토큰 크립토그램 생성을 위한 키를 이용하여 UTC 정보를 암호화한 원타임 패스워드(One Time Password) 코드를 생성하고, 원타임 패스워드(One Time Password) 코드를 이용하여 결제 정보를 생성할 수 있다.
보안 모듈(3404)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number) 및 원타임 패스워드(One Time Password) 코드 중 적어도 하나 이상을 포함하는 결제 정보(예, 트랙 2 정보)를 생성할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
생성된 결제 정보는 MST 드라이버 모듈(3406, MST TA, 예를 들어, 도 18의 MST 드라이버 모듈(1827))을 이용하여 결제 어플리케이션(3402) 또는 외부 전자 장치로 전송될 수 있다.
다양한 실시예에 따르면, 생성된 결제 정보는 NFC 모듈(예, 도 8의 820)을 이용하여 결제 어플리케이션(3402) 또는 외부 전자 장치로 전송될 수 있다.
도 35는 다양한 실시예에 따른 결제를 위한 정보 생성을 위한 전자 장치의 내부 구성 요소들 간의 인터페이스를 도시한다.
전자장치(예: 전자장치(101))는 노멀 영역(Normal World, 예를 들어, REE(410)) 및 보안 처리 영역을 포함할 수 있다.
노멀 영역은 결제 어플리케이션(3501), 예를 들어, 도 9의 결제 어플리케이션(912)을 적어도 하나 이상 포함할 수 있다. 보안 처리 영역은 보안 영역(Secure World, 예를 들어, TEE(420))을 포함할 수 있다. 보안 처리 영역은 보안이 요구되는 데이터를 안전한 환경 내에서 저장하고 관련된 동작을 수행할 수 있는 영역일 수 있다.
보안 영역은 보안 시간 모듈(3502), TEE 내부의 어플리케이션(예: 보안 어플리케이션(3503,trusted application(TA)), 보안 모듈(3504, 예를 들어, 내장형 보안 요소(eSE), 도 9의 보안 저장소(916)) 및 MST 드라이버 모듈(3506, MST TA, 예를 들어, 도 18의 MST 드라이버 모듈(1827))을 포함할 수 있다. 보안 모듈(3504)은 결제 관련 프로그램(3505, Applet)을 포함할 수 있다.
보안 시간 모듈(3502)은 사용자 권한으로 변경되지 않는 시간 정보를 관리하는 모듈로서, 보안 영역(Secure World, 예를 들어, TEE(420))에 포함될 수 있다. 다양한 실시예에서, 노멀 영역(Normal World, 예를 들어, REE(410)), 보안 영역(Secure World, 예를 들어, TEE(420)) 또는 전자장치 외부(예: 서버)에 구현될 수 있다. 시간 정보는 주기적으로 외부 장치와 싱크를 맞출 수 있다. 전자장치(예: 전자장치(101))는 전자 장치 내의 시간 정보를 사용자가 변경할 수 없도록 할 수 있다.
결제 어플리케이션(3501)은 보안 시간 모듈(3502)에 보안 시간을 요청할 수 있다.
보안 시간 모듈(3502)은 현재 시간에 관련된 정보(예를 들어, UTC(Coordinated Universal Time) 정보)를 보안 어플리케이션(3503)에 전송할 수 있다.
예를 들면, 전자장치(예: 전자장치(101))는 전자 장치에 포함된 운영체제(예를 들어, AndroidTM OS) 통해 UTC 정보를 획득할 수 있다. 전자장치(예: 전자장치(101))는 NITZ(network identity and time zone) 또는 NTP(network time protocol)를 통해 UTC 정보를 획득할 수 있고, 외부 서버(예:제 1 관리서버)도 UTC 정보를 획득하면 전자장치와 외부서버는 시간이 동기화 되어 상기 시간 인증 코드를 인증할 수 있다. 외부 서버도 전자장치와 동일한 방법(예:NITZ 또는 NTP)을 이용해서 특정시간 값을 획득할 수 있다.
보안 어플리케이션(3503)은 현재 시간에 관련된 정보(예: UTC 정보)를 보안 모듈(3504)에 전달할 수 있다.
보안 모듈(3504)은 적어도 하나 이상의 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키)를 포함할 수 있다. 전자장치(예: 전자장치(101))는 적어도 하나 이상의 통신모듈(예를 들어, 도 12의 제 1 통신 모듈(1210), 및 제 2 통신 모듈(1212)를 포함할 수 있다. 보안 모듈(3504)은 적어도 하나의 통신 모듈 각각에 대응하는 인증 정보를 포함할 수 있다.
보안 모듈(3504)은 결제 관련 프로그램(3505)를 이용하여 카드에서 트랙 2(track 2) 정보를 생성할 수 있다. 결제 관련 프로그램(3505)은, 암호와 관련된 알고리즘, 예를 들어, HMAC (Hash-based Message Authentication Code) 알고리즘을 포함할 수 있다.
결제 관련 프로그램(3505)은 현재 시간에 관련된 정보(예: UTC 정보) 및 적어도 하나 이상의 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키) 중 적어도 하나에 기초하여, 타임스탬프 정보 및 결제 정보(예를 들어, 트랙 2(track 2) 정보) 중 적어도 하나 이상을 생성할 수 있다. 타임스탬프 정보를 이용하여 생성된 결제 정보는 MST 모듈에 대응하는 인증정보를 이용하여 생성될 수 있다.
트랙 2(track 2) 정보는 결제에 이용되는 결제 정보로서, 결제 정보는 타임스탬프 정보, 유효(expiry), 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나 이상을 포함할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
타임스탬프 정보는 현재 시간, 프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period) 중 적어도 하나를 이용하여 생성될 수 있다.
현재 시간은 UTC 정보에 기초한 시간일 수 있다. 현재 시간은 결제 어플리케이션(3501)이 결제를 요청한 시간일 수 있다. 프로비저닝 타임(provisioning time)은 토큰이 배포될 때, 토큰 서버 또는 토큰 서비스 프로바이더(token service provider(TSP), 예를 들어, 도 7의 730)에서 전자 장치로 토큰이 전달된 시간일 수 있다. 기준 시간(reference time)은 영점 값(zero value)로 설정될 수 있다. 다양한 실시예에서, 기준 시간(reference time)은, 예를 들어, 프로비저닝 타임(provisioning time)과 동일할 수 있다.
유효 기간(validity period)은 결제 요청한 시간으로부터 시작되어 생성된 토큰(Token)이 유효하게 사용될 수 있도록 미리 설정된 시간으로서, 전자 장치는 결제 서버, 또는 금융 서버로부터 유효 기간에 대한 정보를 수신할 수 있다. 예를 들어, 유효 기간(validity period)은 180초로 설정될 수 있다.
보안 모듈(3504), 보안 어플리케이션(3503) 또는 보안 영역 중 적어도 하나는 UTC 정보에 기초한 현재 시간, 프로비저닝 타임(provisioning time) 및 유효 기간(validity period)을 이용하여 타임스탬프 정보를 생성할 수 있다.
다양한 실시예에서, 보안 모듈(3504), 보안 어플리케이션(3503) 또는 보안 영역 중 적어도 하나는 UTC 정보에 기초한 현재 시간, 기준 시간(reference time) 및 유효 기간(validity period)을 이용하여 타임스탬프 정보를 생성할 수 있다.
보안 모듈(3504)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나 이상을 포함하는 정보를 토큰 크립토그램 생성을 위한 키를 이용하여 인증 코드 또는 인증 정보를 생성할 수 있다.
보안 모듈(3504)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number) 및 인증 코드 또는 인증 정보 중 적어도 하나 이상을 포함하는 결제 정보(예, 트랙 2 정보)를 생성할 수 있다.
다양한 실시예에 따르면, 보안 모듈(3504)은 토큰 크립토그램 생성을 위한 키를 이용하여 UTC 정보를 암호화한 원타임 패스워드(One Time Password) 코드를 생성하고, 원타임 패스워드(One Time Password) 코드를 이용하여 결제 정보를 생성할 수 있다.
보안 모듈(3504)은 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number) 및 원타임 패스워드(One Time Password) 코드 중 적어도 하나 이상을 포함하는 결제 정보(예, 트랙 2 정보)를 생성할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
생성된 결제 정보는 MST 드라이버 모듈(3506, MST TA, 예를 들어, 도 18의 MST 드라이버 모듈(1827))을 이용하여 결제 어플리케이션(3501) 또는 외부 전자 장치로 전송될 수 있다.
다양한 실시예에 따르면, 생성된 결제 정보는 NFC 모듈(예, 도 8의 820)을 이용하여 결제 어플리케이션(3501) 또는 외부 전자 장치로 전송될 수 있다.
다양한 실시예에 따르면, 전자장치(예: 전자장치(101)) 적어도 하나의 토큰을 저장하도록 동작할 수 있는 보안 모듈(예: 보안모듈(3203)); 제 1 통신 모듈(예: NFC 모듈(820)); 제 2 통신 모듈(예: MST 모듈(810)); 및 상기 보안 모듈(3203, eSE), 상기 제 1 통신 모듈(예: NFC 모듈(820))및 상기 제2 통신 모듈(예: MST 모듈(810))에 기능적으로 연결된 적어도 하나의 프로세서(예: 프로세서(1200))를 포함하며, 상기 적어도 하나의 프로세서(예: 프로세서(1200))는 상기 제 1 통신 모듈(예: NFC 모듈(820)) 또는 상기 제 2 통신 모듈(예: MST 모듈(810)) 중 결제를 위해 이용될 적어도 하나의 통신 모듈을 결정하고, 및 상기 적어도 하나의 토큰 중 상기 적어도 하나의 통신 모듈에 관련된 토큰을 포함하는 결제 정보를 외부 전자 장치(예: 결제 서버, 금융 서버, POS)에 전송하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서(예: 프로세서(1200))는 타임스탬프, 카드의 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나를 이용하여 상기 결제 정보를 생성하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 타임스탬프는 프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period) 중 적어도 하나에 기초하여 생성될 수 있다.
다양한 실시예에 따르면, 상기 적어도 하나의 토큰은 상기 제 1 통신 모듈(예: NFC 모듈(820))과 관련된 제 1 토큰 및 상기 제 2 통신 모듈(예: MST 모듈(810))과 관련된 제 2 토큰을 포함하고, 상기 결제 정보는 상기 제 1 토큰 또는 상기 제 2 토큰 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따르면, 상기 보안 모듈(예: 보안 모듈(3203))은 내장형 보안 요소(eSE)를 포함할 수 있다.
다양한 실시예에 따르면, 상기 제 1 통신 모듈(예: NFC 모듈(820))은 적어도 하나의 근거리 통신(NFC, Near Field Communication) 모듈을 포함할 수 있다.
다양한 실시예에 따르면, 상기 제 2 통신 모듈(예: MST 모듈(810))은 적어도 하나의 MST(Magnetic Stripe data Transmission) 통신 모듈을 포함하는 전자 장치.
다양한 실시예에 따르면, 상기 적어도 하나의 프로세서(예: 프로세서(1200))는 상기 보안 모듈(예: 제 1 보안 모듈(1607), 보안 모듈(3203)) 또는 상기 프로세서(예: 프로세서(1200))와 기능적으로 연결된 다른(another) 보안 모듈(예: 제 2 보안 모듈(1609), 토큰 보안 어플리케이션(3302)) 중 적어도 하나에서 타임스탬프를 생성하고, 상기 타임스탬프 및 상기 적어도 하나의 통신 모듈에 관련된 상기 토큰 중 적어도 하나에 기초하여, 상기 다른 보안 모듈(예: 제 2 보안 모듈(1609), 토큰 보안 어플리케이션(3302))에서 상기 결제 정보를 생성하도록 설정된 전자 장치.
다양한 실시예에 따르면, 상기 적어도 하나의 프로세서(예: 프로세서(1200))는 상기 타임스탬프 및 상기 토큰 중 적어도 하나에 기초하여 토큰 크립토그램 (cryptogram)를 생성하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 보안 모듈(예: 제 1 보안 모듈(1607), 보안 모듈(3203))은 결제 관련 프로그램(예: 결제 관련 프로그램(3204), payment applet)을 포함할 수 있다.
다양한 실시예에 따르면, 제 1 보안 영역(예: 보안 모듈(3203)), 제 2 보안 영역(예: 토큰 보안 어플리케이션(3302)) 및 적어도 하나의 결제 신호 모듈(예: 예: MST 모듈(810) 또는 NFC 모듈(820))을 포함하는 전자 장치(예: 전자 장치(101))의 결제 정보 보안 방법에서, 상기 방법은 상기 제 1 보안 영역(예: 보안 모듈(3203))에 상기 적어도 하나의 결제 신호 모듈(예: MST 모듈(810) 또는 NFC 모듈(820)) 각각에 대응되는 적어도 하나의 토큰을 저장하는 동작; 상기 제 1 보안 영역(예: 보안 모듈(3203)) 또는 상기 제 2 보안 영역(예: 토큰 보안 어플리케이션(3302)) 중 적어도 하나의 보안 영역에서 타임스탬프를 생성하는 동작; 상기 적어도 하나의 토큰 중에서 상기 적어도 하나의 결제 신호 모듈(예: MST 모듈(810) 또는 NFC 모듈(820)) 중 하나에 대응하는 토큰 및 상기 타임스탬프 중 적어도 하나에 기초하여, 상기 제 2 보안 영역(예: 토큰 보안 어플리케이션(3302))에서 결제 신호를 생성하는 동작; 및 상기 결제 신호를 외부 전자 장치(예: 결제 서버, 금융 서버, POS)에 전송하는 동작을 포함할 수 있다.
다양한 실시예에 따르면, 상기 결제 신호를 생성하는 동작은 상기 타임스탬프 및 상기 토큰 중 적어도 하나에 기초하여 토큰 크립토그램(cryptogram)을 생성하는 동작을 포함하고, 상기 결제 신호는 상기 토큰 및 상기 토큰 크립토그램을 포함할 수 있다.
다양한 실시예에 따르면, 상기 결제 신호는 카드의 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따르면, 상기 타임스탬프는 프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period) 중 적어도 하나에 기초하여 생성될 수 있다.
다양한 실시예에 따르면, 상기 제 1 보안 영역(예: 보안 모듈(3203))은 결제 관련 프로그램(payment applet)을 포함할 수 있다.
다양한 실시예에 따르면, 상기 제 2 보안 영역(예: 토큰 보안 어플리케이션(3302))은 상기 적어도 하나의 결제 신호 모듈과 관련된 적어도 하나의 어플리케이션을 포함할 수 있다.
다양한 실시예에 따르면, 상기 결제 신호는 적어도 하나의 어플리케이션으로 생성될 수 있다.
다양한 실시예에 따르면, 상기 적어도 하나의 결제 신호 모듈(예: MST 모듈(810) 또는 NFC 모듈(820))은 적어도 하나의 MST(Magnetic Stripe data Transmission) 통신 모듈 또는 적어도 하나의 근거리 통신(NFC, Near Field Communication) 모듈을 포함할 수 있다.
다양한 실시예에 따르면, 상기 제 1 보안 영역(예: TEE)은 제 1 보안 모듈(예 : eSE, 결제 관련 프로그램)을 포함하거나, 또는 상기 제 2 보안 영역(예: TEE)은 제 2 보안 모듈을 포함하고, 상기 적어도 하나의 토큰은 상기 제 1 보안 모듈(예 : eSE, 결제 관련 프로그램)에 저장되거나, 또는 상기 결제 신호는 상기 제 2 보안 모듈(예 : eSE, 결제 관련 프로그램)에서 생성될 수 있다.
도 36은 다양한 실시예에 다른 결제 정보의 유효 시간에 관한 도면이다.
도 32 내지 도 35를 참조하면, 결제 정보는 토큰, 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number) 및 인증 코드 또는 인증 정보 중 적어도 하나 이상을 포함할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
유효 기간(validity period)은 결제 요청한 시간으로부터 미리 설정된 시간으로서, 전자 장치는 결제 서버, 또는 금융 서버로부터 유효 기간에 대한 정보를 수신할 수 있다. 예를 들어, 유효 기간(validity period)은 180초로 설정될 수 있다.
유효 기간 내에 타임스탬프 정보를 포함하는 결제 정보가 금융서버로 전송되면 결제를 완료할 수 있다. 유효 기간 이후에 타임스탬프 정보를 포함하는 결제 정보가 금융서버로 전송되지 않으면, 결제가 이루어 지지 않을 수 있다.
다양한 실시예에서, 타임스탬프 정보는 수학식 3에 의해서 생성될 수 있다.
[수학식 3]
타임스탬프 정보=(현재시간-타임윈도우)/타임윈도우
수학식 3을 참조하면, 타임윈도우(time window)값이 도36과 같이 90 초면, verification_code 2가 생성되는 타임프레임이 0~89초이면 타임스탬프 정보가 0이 될 수 있다. TSP(토큰 서비스 프로바이더) 서버에서는 지연값(delay)를 계산하여 0~179 초까지는 유효 기간으로 판단할 수 있다.
도 37 내지 도 39는 다양한 실시예에 따른 결제 정보(예, 카드)의 구조의 일 예에 대한 도면이다.
도 37에서, 카드를 판독기(예, POS)에 통과시키면 카드의 마그네틱 선에 기록된 정보가 판독기의 철심 주변의 코일에 전기 신호를 유도함으로서, 카드에 관한 정보에 관한 유도된 자기장을 판독기가 신호로서 감지하여 정보를 처리할 수 있다.
다양한 실시예에 따른, 카드에 포함된 마그네틱 선에는 적어도 하나 이상의 트랙을 포함할 수 있다. 마그네틱 선은 트랙 1, 트랙2, 트랙 3에 정보를 포함할 수 있는데 이중 트랙 2의 정보를 이용하여 결제를 진행할 수 있다.
다양한 실시예에 따른 카드는 적어도 하나 이상의 트랙을 포함하는 정보를 포함할 수 있다.
도 38에서, 트랙 1에는 은행계좌 정보가 포함될 수 있고, 트랙 1의 데이터 정보 량은 79kb일 수 있다. 트랙 2에는 신용카드 번호, 발급일, 유효기간 등의 정보가 포함될 수 있고, 트랙 2의 데이터 정보 량은 40kb일 수 있다. 트랙 3에는 제휴사 등의 정보가 포함될 수 있다. 예를 들어, 결제에 이용되는 정보는 트랙 2 정보일 수 있다.
도 39에서, 트랙 2에 포함되는 정보는 다음과 같을 수 있다.
SS: 감시 시작(Start sentinel) -한 문자(one character, 예를 들어, ';')
PAN: 기본 계좌 번호(Primary account number (PAN))- 19개까지 문자, 예를들어, 카드 앞면에 인쇄된 카드 번호와 일치될 수 있음(up to 19 characters. Usually, but not always, matches the credit card number printed on the front of the card.)
FS: 필드 구분자 (Field Separator) - 한 문자(예를 들어, '=')
만료일(Expiration date) - YYMM양식의 4개 문자(four characters in the form YYMM)
서비스 코드(Service code) - 세 문자(three characters) 첫 번째 문자는 교환 규칙을 특정하고, 두 번째 문자는 인증처리를 특정하고, 세 번째 문자는 서비스 범위를 특정할 수 있음(The first digit specifies the interchange rules, the second specifies authorisation processing and the third specifies the range of services.)
임의적 데이터(DISCRETIONARY DATA)는 트랙 1과 동일할 수 있다.
ES: 감시 종료(End sentinel) - 한 문자(예를 들어 ‘?’)
LRC: 세로 중복 검사(Longitudinal redundancy check (LRC)) - 한 문자 일 수 있고, 트랙의 다른 데이터에서 계산된 유효 문자 (it is one character and a validity character calculated from other data on the track.) 대부분의 판독 장치는 카드를 프레젠테이션 층에 접촉할 때, 이 값을 리턴하지 않고, 판독 장치 내부적으로 입력을 확인하는데 이용할 수 있다. (Most reader devices do not return this value when the card is swiped to the presentation layer, and use it only to verify the input internally to the reader.)
금융 카드의 서비스 코드 값은 다음과 같다(Service code values common in financial cards):
제 1 문자(First digit)
1: 국제 교환 확인(International interchange OK)
2: 국제 교환, 가능하면 IC 칩 사용(International interchange, use IC (chip) where feasible)
5: 양자 간 계약에 따라 네셔널 교환 만 제외 (National interchange only except under bilateral agreement)
6: 양자 간 계약에 따라 네셔널 교환만 제외, 가능하면 IC 칩 사용(National interchange only except under bilateral agreement, use IC (chip) where feasible)
7: 양자 간 계약에 따라 국제 교환 제외(No interchange except under bilateral agreement (closed loop))
9: 테스트(Test)
제 2 문자(Second digit)
0: 정상(Normal)
2: 온라인 수단을 통한 연락 발급자(Contact issuer via online means)
4: 양자 간 계약에 따라 온라인 수단을 통한 연락 발급자 제외(Contact issuer via online means except under bilateral agreement)
제 3 문자(Third digit)
0: 제한없음, PIN 필요(No restrictions, PIN required)
1: 제한없음(No restrictions)
2: (현금 없이)상품 및 서비스만(Goods and services only (no cash))
3: ATM 만, PIN 필요( ATM only, PIN required)
4: 현금 만(Cash only)
5: (현금 없이)상품 및 서비스만, PIN 필요 (Goods and services only (no cash), PIN required)
6: 제한없음, 가능하면 PIN 사용(No restrictions, use PIN where feasible)
7: 현금 없이)상품 및 서비스만, 가능하면 PIN 사용(Goods and services only (no cash), use PIN where feasible)
도 40은 다양한 실시예에 따른 결제 정보의 구조를 도시한다.
결제 정보는 토큰(4001) 및 결제 인증 데이터(4002)를 포함할 수 있다. 토큰(4001)은 digital PAN(실제 카드번호를 대체하여 가상적으로 전자기기에서 사용할 수 있는 카드 번호)를 포함할 수 있다.
결제 인증 데이터(4002)는 토큰 크립토그램(4003, cryptogram) 및 트랜젝션 데이터(4004)를 포함할 수 있다.
결제 인증 데이터(4002)는 결제 트랜젝션 시에 해당 결제가 유효한지 전자 장치 외부 장치에서 체크하기 위해 필요할 수 있다. 토큰 크립토그램(4003)은 암호 정보, 암호, 크립토그램(cryptogram), 암호화, 암호 방법과 같은 의미로 사용 될 수 있다.
도 41은 다양한 실시예에 따른 트랜젝션 데이터의 구조를 도시한다.
트랜젝션 데이터(4101, transaction data)는 카드 유효 날짜(4102, card expired date)과 상점 정보(4103, merchant ID)를 포함할 수 있다. 상점 정보(4103, merchant ID)는 전자장치의 통신 모듈(3G, 4G, WiFI, NFC 등)을 이용하여 외부 장치로부터 획득할 수 있다.
도 42는 다양한 실시예에 따른 결제 인증 데이터의 구조를 도시한다.
결제 인증 데이터(4201)는 랜덤 번호(4202, random number), 인증 코드(4203, verification code) 또는 제너레이션 카운터(4204, generation counter) 중 적어도 하나 이상을 포함할 수 있다.
한 실시예에 따르면, 원타임 패스워드 번호(OTP number)는 토큰 크립토그램(cryptogram)의 하나의 예시일 수 있다.
도 43를 참조하면, 다양한 실시예에 따른, 결제 중계 모듈이 결제 어플리케이션의 PIN 입력을 통한 인증 요청을 TEE의 보안 식별자 처리 모듈로 중계하는 기능에 대해 도시한다.
상기 결제 중계 모듈은 일회성 난수(예: nonce)를 보안 환경 중계 모듈을 통해 TEE의 결제 모듈로부터 수신하는 기능, 보안 환경 중계 모듈을 통해 보안 식별자 처리 모듈로 PIN 결과를 요청하여 알아낸 PIN과 암호화된 PIN결과를 알아내는 기능, 결제 모듈에 기 암호화된 PIN 결과의 검증을 요청하는 기능을 포함 할 수 있다.
도 44 내지 45는, 다양한 실시예에 따른, 결제 중계 모듈(1841)이 생체 정보를 이용하여 인증을 수행한 결과를 이용하여 결제를 수행하는 방법(4400)을 도시한다. 한 실시예에 따르면, 결제 중계 모듈은 보안 환경 중계 모듈(1846)과 보안 환경 드라이버 모듈(1853)을 통하여 TEE 내의 결제 모듈(1821)에 일회성 난수(예: nonce)를 요청할 수 있다.
한 실시예에 따르면, 상기 결제 모듈은 상기 일회성 난수를 생성하여, TEE 내의 key(예: device root key(DRK))를 이용하여 암호화할 수 있다. 상기 결제 모듈은 상기 암호화된 일회성 난수를 보안 환경 드라이버 모듈(1853)을 통하여 보안 환경 중계 모듈(1846)에 전달할 수 있다. 동일 장치 안에서 실행 중인 어플리케이션 또는 모듈 간의 데이터 전송/전달은 메모리에 저장된 데이터를 접근할 수 있는 상태를 포함할수 있다.
한 실시예에 따르면, 상기 보안 환경 중계 모듈(1846)은 상기 암호화된 일회성 난수를 보안 환경 드라이버 모듈을 통하여 생체 정보 모듈(1825)에 전달할 수 있다. 상기 생체 정보 모듈은 상기 key를 이용하여 복호화할 수 있다. 상기 생체 정보 모듈은 생체 센서로부터 획득한 정보를 이용하여 사용자를 인증할 수 있다. 상기 생체 정보 모듈은 상기 사용자 인증 여부 정보를 상기 일회성 난수와 함께 상기 key로 암호화할 수 있다. 상기 생체 정보 모듈은 상기 암호화된 인증 여부 정보와 일회성 난수를 보안 환경 드라이버 모듈을 통하여 보안 환경 중계 모듈에 전달할 수 있다. 상기 보안 환경 중계 모듈은 상기 암호화된 인증 여부 정보와 일회성 난수를 보안 환경 드라이버 모듈을 통하여 상기 결제 모듈에 전달할 수 있다.
한 실시예에 따르면, 상기 결제 모듈은 상기 key를 통하여 상기 암호화된 인증 여부 정보와 일회성 난수를 복호화할 수 있다. 상기 결제 모듈은 상기 수신된 일회성 난수가 생성한 일회성 난수와 같은 지를 비교하여 인증 여부 정보가 REE에서 변질되었는지를 확인할 수 있다. 상기 비교는 전송한 일회성 난수와 수신한 일회성 난수가 완전히 일치하는지 여부를 판단할 수도 있고, 상기 전송한 일회성 난수와 상기 수신한 일회성 난수가 일치하지는 않으나 전송한 일회성 난수에 기반하여 생성된 일회성 난수인 경우 이를 일치하다고 판단할 수도 있다. 상기 두 일회성 난수가 일치하고, 인증이 성공한 경우 상기 결제 모듈은 결제를 수행할 수 있다. 상기 일회성 난수가 일치하지 않거나 인증이 성공하지 못한 경우 상기 결제 모듈은 결제를 수행하지 못할 수 있다.
한 실시예에 따르면, 상기 비교는 TEE 또는 REE 내에서 실행되는 다른 어플리케이션 또는 agent(예: 결제 매니저 또는 커널)에서 실행될 수도 있다.
도 46은, 다양한 실시예에 따른, 토큰 크립토그램을 생성하는 방법(4500)을 도시한다. 한 실시예에 따르면, 결제 모듈은 상기 토큰 크립토그램을 생성할 수 있는 key를 이용하여 토큰 크립토그램을 생성할 수 있다. 결제 모듈은 매 거래 또는 특정 횟수의 거래, 특정 시간 내의 거래 등 정해진 규칙에 따라 다른 key를 사용할 수 있다. 토큰 서비스 프로바이더(730)는 상기 key와 쌍(pair)으로 된 key를 소유할 수 있다. 상기 토큰 서비스 프로바이더(730)는 상기 쌍으로 된 key를 통해서 암호화된 토큰 크립토그램을 복호화할 수 있다.
상기 결제 모듈은 상기 key를 이용하여 토큰 크립토그램을 만드는 경우, key로 암호화하는 데이터와 암호화 엔진은 암호화 방법(예: AES, TKIP 등)에 따라 다양하게 달라질 수 있다.
도 47은 다양한 실시예에 따른 타임스탬프 정보를 기초하여 생성된 결제 정보를 이용하여 결제 과정을 나타내는 순서도이다.
결제 어플리케이션(4701, 예를 들어, 도 32의 결제 어플리케이션(3201))은 보안 영역(4703)에 결제 정보(예를 들어, 트랙 2 정보) 생성을 요청할 수 있다.
결제 어플리케이션(4701)으로부터 결제 정보(예를 들어, 트랙 2 정보) 생성을 요청받으면, 보안 영역(4703)은 결제 관련 프로그램(4705, 예를 들어, 도 32의 결제 관련 프로그램(3204))는 타임스탬프 정보를 이용하여 결제 정보(예를 들어, 트랙 2 정보)를 생성할 수 있다.
결제 정보(예를 들어, 트랙 2 정보)가 생성되면, 결제 관련 프로그램(4705)는 보안 영역(4703)에 생성된 결제 정보(예를 들어, 트랙 2 정보)를 전송할 수 있다.
보안 영역(4703)은 예를 들어, 도 32의 MST 드라이버 모듈(3205)을 통해, POS(4707)로 생성된 결제 정보(예를 들어, 트랙 2 정보)를 이용하여 트랜젝션 승인을 요청할 수 있다.
보안 영역(4703)으로부터 트랜젝션 승인을 요청을 전송받은 POS(4707)는 제 1 금융 서버(4711)에 생성된 결제 정보(예를 들어, 트랙 2 정보) 및 트랜젝션 승인 요청을 전달할 수 있다.
제 1 금융 서버(4711, 예를 들어, 도 9의 제 1 금융서버(932))는 토큰 서버(4713) 또는 토큰 서비스 프로바이더(token service provider(TSP))에 생성된 결제 정보(예를 들어, 트랙 2 정보)에 포함된 토큰(token)을 전송할 수 있다.
토큰 서버(4713) 또는 토큰 서비스 프로바이더(token service provider(TSP))는 제 1 금융 서버(4711)로부터 전달받은 토큰을 인증하고, 토큰 인증 결과를 제 1 금융 서버(4711)로 전송할 수 있다.
토큰 서버(4713) 또는 토큰 서비스 프로바이더(token service provider(TSP))는 결제 정보에 포함된 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number)를 토큰 서버(4713) 또는 토큰 서비스 프로바이더(token service provider(TSP))에 저장된 프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period)과 비교하여 토큰의 유효 여부를 판단할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
제 1 금융 서버(4711)은 토큰 인증 결과를 토큰 서버(4713) 또는 토큰 서비스 프로바이더(token service provider(TSP))로부터 수신하고, 제 2 금융 서버(4709, 도 9의 제 2금융서버(942))에 토큰 인증 결과 전송 및/또는 트랜젝션 승인을 요청할 수 있다.
제 2 금융 서버(4709)는 토큰 인증 결과 및 트랜젝션 승인 요청에 따라 트랜젝션 승인 여부를 판단할 수 있다. 토큰 인증 결과 토큰이 유효한 것으로 판단되면, 제 2 금융 서버(4709)는 트랜젝션 승인 결과를 제 1 금융 서버(4711)에 전달할 수 있다.
제 1 금융 서버(4711)는 트랜젝션 승인 결과를 POS(4707)로 전달할 수 있다.
도 48은 다양한 실시예에 따른 타임스탬프 정보를 기초하여 생성된 결제 정보를 이용하여 결제 과정을 나타내는 순서도이다.
결제 어플리케이션(4801, 예를 들어, 도 32의 결제 어플리케이션(3201))은 보안 영역(4803)에 결제 정보(예를 들어, 트랙 2 정보) 생성을 요청할 수 있다.
결제 어플리케이션(4801)으로부터 결제 정보(예를 들어, 트랙 2 정보) 생성을 요청받으면, 보안 영역(4803)은 결제 관련 프로그램(4805, 예를 들어, 도 32의 결제 관련 프로그램(3204))는 타임스탬프 정보를 이용하여 결제 정보(예를 들어, 트랙 2 정보)를 생성할 수 있다.
결제 정보(예를 들어, 트랙 2 정보)가 생성되면, 결제 관련 프로그램(4805)는 보안 영역(4803)에 생성된 결제 정보(예를 들어, 트랙 2 정보)를 전송할 수 있다.
보안 영역(4803)은 예를 들어, 도 32의 MST 드라이버 모듈(3205)을 통해, POS(4804)로 생성된 결제 정보(예를 들어, 트랙 2 정보)를 이용하여 트랜젝션 승인을 요청할 수 있다.
보안 영역(4803)으로부터 트랜젝션 승인을 요청을 전송받은 POS(4804)는 제 2 금융 서버(4807, 도 9의 제 2금융서버(942))에 생성된 결제 정보(예를 들어, 트랙 2 정보) 및 트랜젝션 승인 요청을 전달할 수 있다.
제 2 금융 서버(4807)는 토큰 서버(4809) 또는 토큰 서비스 프로바이더(token service provider(TSP))에 생성된 결제 정보(예를 들어, 트랙 2 정보)에 포함된 토큰(token)을 전송할 수 있다.
토큰 서버(4809) 또는 토큰 서비스 프로바이더(token service provider(TSP))는 제 2 금융 서버(4807)로부터 전달받은 토큰을 인증하고, 토큰 인증 결과를 제 2 금융 서버(4807)로 전송할 수 있다.
토큰 서버(4809) 또는 토큰 서비스 프로바이더(token service provider(TSP))는 결제 정보에 포함된 타임스탬프 정보, 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number)를 토큰 서버(4713) 또는 토큰 서비스 프로바이더(token service provider(TSP))에 저장된 프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period)과 비교하여 토큰의 유효 여부를 판단할 수 있다. 다양한 실시에에서, 결제 정보에 포함된 유효(expiry) 정보는 신용카드의 유효기간에 관한 정보일 수 있다.
제 2 금융 서버(4807)는 트랜젝션 승인 결과를 POS(4707)로 전달할 수 있다.
도 49는 다양한 실시예에 따른 토큰을 이용한 결제 트랜젝션(transaction)하기 위한 방법을 도시한다.
결제 트랜젝션을 시작하면 결제 어플리케이션(4901, 예를 들어, 도 32의 결제 어플리케이션(3201))은 보안 모듈(4903, 예를 들어, 도 32의 보안 모듈(3203))에 보안 어플리케이션(TA)을 통해 타임스탬프 정보를 전송할 수 있다.
보안 모듈(4903)은 결제 관련 프로그램(4905, 예를 들어, 도 32의 결제 관련 프로그램(3204))을 포함할 수 있다. 결제 관련 프로그램(4905)은 타임스탬프 정보 및 적어도 하나 이상의 결제 정보(예: 토큰, 토큰 크립토그램 생성을 위한 키) 중 적어도 하나에 기초하여, 결제 정보(예를 들어, 트랙 2(track 2) 정보)를 생성할 수 있다.
보안 모듈(4903)은 제 1 금융 서버(예를 들어, 도 9의 제 1 금융서버(932))의 TSM(4909)과 결제와 관련된 정보(예를 들어, 결제 정보)를 송수신할 수 있다.
결제 서버(4907, 예를 들어, 도 9의 결제 서버(920))는 결제 어플리케이션(4901)과 결제와 관련된 정보(예를 들어, 결제 정보)를 송수신할 수 있다.
제 1 금융 서버의 TSM(4909)은 제 1 금융 서버의 TSP(4911), 제 2 금융서버(4915, 예를 들어, 도 9의 제 2 금융서버(942)), 및 제 2 금융 서버의 TSP와 결제에 관련된 정보를 송수신하고 결제를 승인할 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다. 다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체(예: 메모리(130))에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다.
다양한 실시예에 따르면, 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체는 보안 영역(예: TEE) 및 적어도 하나의 결제 신호 모듈(예: MST 모듈(810) 또는 NFC 모듈(820))을 포함하는 전자 장치(예: 전자 장치(101))에서, 상기 보안 영역에 상기 적어도 하나의 결제 신호 모듈(예: MST 모듈(810) 또는 NFC 모듈(820))에 대응되는 적어도 하나의 토큰을 저장하는 동작; 상기 보안 영역(TEE)에서 타임스탬프를 생성하는 동작; 상기 적어도 하나의 토큰 중에서 상기 적어도 하나의 결제 신호 모듈(예: MST 모듈(810) 또는 NFC 모듈(820)) 중 하나에 대응하는 토큰 및 상기 타임스탬프에 적어도 일부 기초하여, 상기 보안 영역(예: TEE)에서 결제 신호를 생성하는 동작; 및 상기 결제 신호를 외부 전자 장치(예: 결제 서버, 금융 서버, POS)에 전송하는 동작을 실행할 수 있다.
명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.

Claims (20)

  1. 적어도 하나의 토큰을 저장하도록 동작할 수 있는 보안 모듈;
    제 1 통신 모듈;
    제 2 통신 모듈; 및
    상기 보안 모듈, 상기 제 1 통신 모듈 및 상기 제2 통신 모듈에 기능적으로 연결된 적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는
    상기 제 1 통신 모듈 또는 상기 제 2 통신 모듈 중 결제를 위해 이용될 적어도 하나의 통신 모듈을 결정하고, 및
    상기 적어도 하나의 토큰 중 상기 적어도 하나의 통신 모듈에 관련된 토큰을 포함하는 결제 정보를 외부 전자 장치에 전송하도록 설정된 전자 장치.
  2. 제 1항에 있어서, 상기 프로세서는,
    타임스탬프, 카드의 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나를 이용하여 상기 결제 정보를 생성하도록 설정된 전자 장치.
  3. 제 2항에 있어서,
    상기 타임스탬프는
    프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period) 중 적어도 하나에 기초하여 생성되는 전자 장치.
  4. 제 1항에 있어서,
    상기 적어도 하나의 토큰은 상기 제 1 통신 모듈과 관련된 제 1 토큰 및 상기 제 2 통신 모듈과 관련된 제 2 토큰을 포함하고,
    상기 결제 정보는 상기 제 1 토큰 또는 상기 제 2 토큰 중 적어도 하나를 포함하는 전자 장치.
  5. 제 1항에 있어서,
    상기 보안 모듈은
    내장형 보안 요소(eSE)를 포함하는 전자 장치.
  6. 제 1항에 있어서,
    상기 제 1 통신 모듈은
    적어도 하나의 근거리 통신(NFC, Near Field Communication) 모듈을 포함하는 전자 장치.
  7. 제 1항에 있어서,
    상기 제 2 통신 모듈은
    적어도 하나의 MST(Magnetic Stripe data Transmission) 통신 모듈을 포함하는 전자 장치.
  8. 제 1항에 있어서,
    상기 적어도 하나의 프로세서는
    상기 보안 모듈 또는 상기 프로세서와 기능적으로 연결된 다른(another) 보안 모듈 중 적어도 하나에서 타임스탬프를 생성하고,
    상기 타임스탬프 및 상기 적어도 하나의 통신 모듈에 관련된 상기 토큰 중 적어도 하나에 기초하여, 상기 다른 보안 모듈에서 상기 결제 정보를 생성하도록 설정된 전자 장치.
  9. 제 8항에 있어서,
    상기 적어도 하나의 프로세서는
    상기 타임스탬프 및 상기 토큰 중 적어도 하나에 기초하여 토큰 크립토그램 (cryptogram)를 생성하도록 설정된 전자 장치.
  10. 제 1항에 있어서,
    상기 보안 모듈은
    결제 관련 프로그램(payment applet)을 포함하는 전자 장치.
  11. 제 1 보안 영역, 제 2 보안 영역 및 적어도 하나의 결제 신호 모듈을 포함하는 전자 장치에서, 상기 제 1 보안 영역에 상기 적어도 하나의 결제 신호 모듈 각각에 대응되는 적어도 하나의 토큰을 저장하는 동작;
    상기 제 1 보안 영역 또는 상기 제 2 보안 영역 중 적어도 하나의 보안 영역에서 타임스탬프를 생성하는 동작;
    상기 적어도 하나의 토큰 중에서 상기 적어도 하나의 결제 신호 모듈 중 하나에 대응하는 토큰 및 상기 타임스탬프 중 적어도 하나에 기초하여, 상기 제 2 보안 영역에서 결제 신호를 생성하는 동작; 및
    상기 결제 신호를 외부 전자 장치에 전송하는 동작을 포함하는 방법.
  12. 제 11항에 있어서,
    상기 결제 신호를 생성하는 동작은
    상기 타임스탬프 및 상기 토큰 중 적어도 하나에 기초하여 토큰 크립토그램(cryptogram)을 생성하는 동작을 포함하고,
    상기 결제 신호는 상기 토큰 및 상기 암호를 포함하는 방법.
  13. 제 11항에 있어서,
    상기 결제 신호는
    카드의 유효(expiry) 정보, 서비스 코드(service code), 랜덤 번호(random number), 인증 번호(verification number), 버전 정보(version information) 또는 시퀀스 번호(sequence number) 중 적어도 하나를 포함하는 방법.
  14. 제 11항에 있어서,
    상기 타임스탬프는
    프로비저닝 타임(provisioning time), 기준 시간(reference time), 또는 유효 기간(validity period) 중 적어도 하나에 기초하여 생성되는 방법.
  15. 제 11항에 있어서,
    상기 제 1 보안 영역은
    결제 관련 프로그램(payment applet)인 방법.
  16. 제 11항에 있어서,
    상기 제 2 보안 영역은
    상기 적어도 하나의 결제 신호 모듈과 관련된 적어도 하나의 어플리케이션을 포함하는 방법.
  17. 제 16항에 있어서,
    상기 결제 신호는
    적어도 하나의 어플리케이션으로 생성되는 방법.
  18. 제 11항에 있어서,
    상기 적어도 하나의 결제 신호 모듈은
    적어도 하나의 MST(Magnetic Stripe data Transmission) 통신 모듈 또는 적어도 하나의 근거리 통신(NFC, Near Field Communication) 모듈을 포함하는 방법.
  19. 제 11항에 있어서,
    상기 제 1 보안 영역은 제 1 보안 모듈을 포함하거나, 또는 상기 제 2 보안 영역은 제 2 보안 모듈을 포함하고, 상기 적어도 하나의 토큰은 상기 제 1 보안 모듈에 저장되거나, 또는 상기 결제 신호는 상기 제 2 보안 모듈에서 생성되는 방법.
  20. 보안 영역 및 적어도 하나의 결제 신호 모듈을 포함하는 전자 장치에서, 상기 보안 영역에 상기 적어도 하나의 결제 신호 모듈에 대응되는 적어도 하나의 토큰을 저장하는 동작;
    상기 보안 영역에서 타임스탬프를 생성하는 동작;
    상기 적어도 하나의 토큰 중에서 상기 적어도 하나의 결제 신호 모듈 중 하나에 대응하는 토큰 및 상기 타임스탬프에 적어도 일부 기초하여, 상기 보안 영역에서 결제 신호를 생성하는 동작; 및
    상기 결제 신호를 외부 전자 장치에 전송하는 동작을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020150158476A 2015-09-09 2015-11-11 결제를 위한 방법 및 장치 KR102458145B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US15/259,609 US10546291B2 (en) 2015-09-09 2016-09-08 Method and apparatus for performing payment
EP19170815.5A EP3537362A1 (en) 2015-09-09 2016-09-08 Method and apparatus for performing payment
EP16187868.1A EP3142056A1 (en) 2015-09-09 2016-09-08 Method and apparatus for performing payment
PCT/KR2016/010137 WO2017043904A1 (en) 2015-09-09 2016-09-09 Method and apparatus for performing payment
CN201610814064.4A CN107067250A (zh) 2015-09-09 2016-09-09 用于执行支付的方法和装置
US16/750,413 US10803452B2 (en) 2015-09-09 2020-01-23 Method and apparatus for performing payment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562216041P 2015-09-09 2015-09-09
US62/216,041 2015-09-09

Publications (2)

Publication Number Publication Date
KR20170030408A true KR20170030408A (ko) 2017-03-17
KR102458145B1 KR102458145B1 (ko) 2022-10-24

Family

ID=58502103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150158476A KR102458145B1 (ko) 2015-09-09 2015-11-11 결제를 위한 방법 및 장치

Country Status (2)

Country Link
KR (1) KR102458145B1 (ko)
CN (1) CN107067250A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018187700A1 (en) * 2017-04-06 2018-10-11 Peter Muscat Method and hand held electronic device for executing cashless and creditless financial transactions
WO2019074326A1 (en) * 2017-10-12 2019-04-18 Samsung Electronics Co., Ltd. SECURE OFFLINE PAYMENT METHOD AND APPARATUS
WO2020076845A1 (en) * 2018-10-11 2020-04-16 Visa International Service Association Tokenized contactless transaction enabled by cloud biometric identification and authentication

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107362535B (zh) 2017-07-19 2019-04-26 腾讯科技(深圳)有限公司 游戏场景中的目标对象锁定方法、装置及电子设备
CN108090341A (zh) * 2017-12-15 2018-05-29 深圳市文鼎创数据科技有限公司 Java卡控制方法及Java卡
CN108737402B (zh) * 2018-05-10 2021-04-27 北京握奇智能科技有限公司 移动终端安全防护方法和装置
CN111833067B (zh) * 2018-05-28 2024-02-09 创新先进技术有限公司 一种移动支付方法、装置及支付系统
WO2020034098A1 (zh) 2018-08-14 2020-02-20 华为技术有限公司 人工智能ai处理方法和ai处理装置
CN109040088B (zh) * 2018-08-16 2022-02-25 腾讯科技(深圳)有限公司 认证信息传输方法、密钥管理客户端及计算机设备
CN114565382A (zh) * 2022-03-01 2022-05-31 汪泽希 一种交易账户匿名支付方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101264791B1 (ko) * 2012-12-05 2013-05-15 (주)세이퍼존 무선통신 기능을 갖는 융합 보안 인증 및 저장장치
WO2015025282A2 (en) * 2013-08-21 2015-02-26 Visa International Service Association Methods and systems for transferring electronic money
KR20150056440A (ko) * 2013-11-15 2015-05-26 주식회사 스마비스 하이브리드 스마트카드를 이용한 연계형 온라인 카드서비스 제공 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831734A (zh) * 2011-06-15 2012-12-19 上海博路信息技术有限公司 一种移动终端客户端的支付方法
CN102243739A (zh) * 2011-07-04 2011-11-16 中国建设银行股份有限公司 基于二维码的手机银行支付方法、系统及客户端
US8690059B1 (en) * 2013-01-20 2014-04-08 George Wallner System and method for a baseband nearfield magnetic stripe data transmitter
JP6296598B2 (ja) * 2013-11-26 2018-03-20 エムイービー株式会社 通信統合システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101264791B1 (ko) * 2012-12-05 2013-05-15 (주)세이퍼존 무선통신 기능을 갖는 융합 보안 인증 및 저장장치
WO2015025282A2 (en) * 2013-08-21 2015-02-26 Visa International Service Association Methods and systems for transferring electronic money
KR20150056440A (ko) * 2013-11-15 2015-05-26 주식회사 스마비스 하이브리드 스마트카드를 이용한 연계형 온라인 카드서비스 제공 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018187700A1 (en) * 2017-04-06 2018-10-11 Peter Muscat Method and hand held electronic device for executing cashless and creditless financial transactions
WO2019074326A1 (en) * 2017-10-12 2019-04-18 Samsung Electronics Co., Ltd. SECURE OFFLINE PAYMENT METHOD AND APPARATUS
CN111213171A (zh) * 2017-10-12 2020-05-29 三星电子株式会社 用于安全离线支付的方法和装置
US10839391B2 (en) 2017-10-12 2020-11-17 Samsung Electronics Co., Ltd. Method and apparatus for secure offline payment
CN111213171B (zh) * 2017-10-12 2023-05-23 三星电子株式会社 用于安全离线支付的方法和装置
WO2020076845A1 (en) * 2018-10-11 2020-04-16 Visa International Service Association Tokenized contactless transaction enabled by cloud biometric identification and authentication

Also Published As

Publication number Publication date
KR102458145B1 (ko) 2022-10-24
CN107067250A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
US10803452B2 (en) Method and apparatus for performing payment
KR102577054B1 (ko) 전자 결제 기능을 제공하는 전자 장치 및 그의 동작 방법
EP3262582B1 (en) Electronic device providing electronic payment function and operating method thereof
KR102530888B1 (ko) 결제 거래를 수행하는 방법 및 장치
CN107408251B (zh) 提供电子支付功能的电子设备及其操作方法
KR102458145B1 (ko) 결제를 위한 방법 및 장치
KR102461042B1 (ko) 결제 처리 방법 및 이를 지원하는 전자 장치
EP3136309A1 (en) Payment information processing method and apparatus of electronic device
US20160253669A1 (en) Method for providing payment service and electronic device thereof
US20170083882A1 (en) Secure payment method and electronic device adapted thereto
KR20170127854A (ko) 전자 결제 기능을 제공하는 전자 장치 및 그의 동작 방법
KR102586443B1 (ko) 전자 결제 기능을 제공하는 전자 장치 및 그 동작 방법
KR101775667B1 (ko) 결제 시스템, 전자 장치 및 전자 장치의 결제 방법
KR101775668B1 (ko) 전자 장치, 인증 대행 서버 및 결제 시스템
KR20170108555A (ko) 결제 수행 방법 및 이를 제공하는 전자 장치
EP3262586B1 (en) Payment means operation supporting method and electronic device for supporting the same
KR20170102696A (ko) 전자 결제 기능을 제공하는 방법 및 이를 지원하는 전자장치
KR20170026060A (ko) 전자 장치에서 결제 정보 처리 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant