KR20200101211A - 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법 - Google Patents

전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법 Download PDF

Info

Publication number
KR20200101211A
KR20200101211A KR1020190019534A KR20190019534A KR20200101211A KR 20200101211 A KR20200101211 A KR 20200101211A KR 1020190019534 A KR1020190019534 A KR 1020190019534A KR 20190019534 A KR20190019534 A KR 20190019534A KR 20200101211 A KR20200101211 A KR 20200101211A
Authority
KR
South Korea
Prior art keywords
security
block chain
electronic device
authentication
signature
Prior art date
Application number
KR1020190019534A
Other languages
English (en)
Inventor
이유나
최종근
박성진
장우석
제성민
하승민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190019534A priority Critical patent/KR20200101211A/ko
Priority to PCT/KR2020/002312 priority patent/WO2020171538A1/en
Priority to US16/794,557 priority patent/US20200265418A1/en
Publication of KR20200101211A publication Critical patent/KR20200101211A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3672Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes initialising or reloading thereof
    • 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/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3227Aspects of commerce using mobile devices [M-devices] using secure elements embedded in M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/363Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes with the personal data of a user
    • 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/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • 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/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • 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/4014Identity check for transactions
    • 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/4014Identity check for transactions
    • G06Q20/40145Biometric identity checks
    • 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/405Establishing or using transaction specific rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

다양한 실시예에 따르면, 전자 장치에 있어서, 외부 전자 장치와 무선 통신하는 통신 회로와, 디스플레이와, 메모리 및 상기 통신 회로, 디스플레이 및 메모리와 전기적으로 연결되는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 일반 OS와 보안 OS를 운용하고, 상기 메모리는, 실행 시에 상기 적어도 하나의 프로세서가, 상기 일반 OS에서 상기 통신 회로를 통해 블록 체인에 대응하는 서명 요청 메시지를 수신하고, 상기 서명 요청 메시지 수신에 응답하여 블록 체인 관리 소프트웨어를 구동하고, 상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 서명 요청 메시지를 전달하고, 상기 보안 OS에서 구동되는 보안 어플리케이션을 기반으로 사용자 인증 요청 화면을 구성하여 상기 디스플레이에 출력하고, 전자 서명에 대한 사용자 인증 입력 수신에 응답하여 상기 메모리에 저장된 개인 키를 반영하여 상기 서명 요청 메시지에 전자 서명을 상기 보안 OS에서 수행하고, 상기 전자 서명된 메시지를 상기 블록 체인 관리 소프트웨어를 통해 상기 일반 OS에서 상기 블록 체인 네트워크와 관련된 어플리케이션으로 전달하도록 하는 인스트럭션들을 저장할 수 있다.
다른 실시예도 가능하다.

Description

전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법{ELECTRONIC DEVICE AND METHOD FOR PROVIDING DIGITAL SIGNATURE SERVICE OF BLOCK CHAIN USING THE SAME}
본원 발명은 전자 장치 및 전자 서명 서비스 방법에 관한 것으로, 보다 구체적으로 블록 체인에 기반한 전자 거래 시 전자 장치를 이용하여 블록 체인의 전자 서명 서비스를 제공하는 방법에 관한 것이다.
전자 서명(digital signature)은 전자 문서나 디지털 데이터에 대한 변조 방지와 서명을 생성한 주체를 식별 하기 위한 기술로 정보 통신망에 기반한 전자 문서의 교환이나 전자 상거래 시 사용되고 있다.
최근 네트워크에 참여한 사용자 모두의 공동 작업을 통하여 블록을 생성하고, 생성된 블록을 모든 참여자가 검증하고 이를 승인함으로써 모두가 동일한 블록을 보유하고, 일부 사용자에 의한 데이터 위조를 방지하는 블록 체인 기술이 다양한 분야에서 적용되고 있다. 블록 체인은 중앙화된 서버가 없는 분산형 네트워크 환경에서 보안성과 무결성을 유지하는 기술로 일 예를 들어, 전자 화폐 또는 암호 화폐 서비스에 이용되고 있다.
블록 체인의 일 예로, 이더리움(ethereum) 네트워크는 전자 화폐에 대한 스마트 계약(smart contracts)을 수행하는 어플리케이션을 등록하여 실행할 수 있는 플랫폼이다. 이더리움 플랫폼에서는 모든 참여 노드(예: 이더리움 클라이언트)가 거래 장부를 통해 트랜잭션을 검증하고, 검증 결과를 기반으로 거래를 승인할 수 있다. 또한, 블록 체인 기술은 암호 화폐를 보관하고, 사용자의 정보와 암호화된 키를 관리하는 전자 지갑과 연동될 수 있다.
전자 지갑은 암호화된 내용에 대한 모든 접근 권한을 가지는 개인 키(private key)와 개인 키에 대칭하여 데이터의 진위 여부를 검증할 수 있는 공개 키(public key)에 기반하여 전자 거래 서비스를 제공할 수 있다. 사용자 정보를 저장하지 않는 이더리움 네트워크의 특성 상 블록 체인 서비스 이용 시 개인 키의 관리가 중요하며, 개인 키를 관리하기 위한 다양한 방법들이 제시되고 있다. 예를 들어, 블록 체인 서비스에서 전자 지갑은 온라인을 통해 거래 사이트 전자 지갑을 이용하는 방법이 있을 수 있다. 또는 사용자 개인이 개인 키를 관리하기 위해서 네트워크에 연결된 개인 전자 장치 또는 클라우드에 저장하거나 온라인과 연결을 끊는 장치(예: USB, 하드웨어 지갑 장치)에 저장하는 방법이 있을 수 있다, 그러나, 별도의 저장 장치에 개인 키를 저장하는 경우 필요시마다 소장해야 하거나 분실과 같이 관리가 어려울 수 있다. 이에 따라 블록 체인 전자 거래 시 보다 편리하고 용이하게 개인 키를 안전하게 관리할 수 있는 방안이 필요하다.
다양한 실시예에 따르면, 전자 장치에 있어서, 외부 전자 장치와 무선 통신하는 통신 회로와, 디스플레이와, 메모리 및 상기 통신 회로, 디스플레이 및 메모리와 전기적으로 연결되는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 일반 OS와 보안 OS를 운용하고, 상기 메모리는, 실행 시에 상기 적어도 하나의 프로세서가, 상기 일반 OS에서 상기 통신 회로를 통해 블록 체인에 대응하는 서명 요청 메시지를 수신하고, 상기 서명 요청 메시지 수신에 응답하여 블록 체인 관리 소프트웨어를 구동하고, 상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 서명 요청 메시지를 전달하고, 상기 보안 OS에서 구동되는 보안 어플리케이션을 기반으로 사용자 인증 요청 화면을 구성하여 상기 디스플레이에 출력하고, 전자 서명에 대한 사용자 인증 입력 수신에 응답하여 상기 메모리에 저장된 개인 키를 반영하여 상기 서명 요청 메시지에 전자 서명을 상기 보안 OS에서 수행하고, 상기 전자 서명된 메시지를 상기 블록 체인 관리 소프트웨어를 통해 상기 일반 OS에서 상기 블록 체인 네트워크와 관련된 어플리케이션으로 전달하도록 하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따르면, 전자 장치의 블록 체인 기반의 전자 서명 서비스 방법에 있어서, 전자 장치의 프로세서가 일반 OS 에서 통신 회로를 통해 블록 체인에 대응하는 서명 요청 메시지를 수신하는 동작과, 상기 서명 요청 메시지 수신에 응답하여 블록 체인 관리 소프트웨어를 구동하는 동작과, 상기 블록 체인 서명 관리 소프트웨어를 통해 상기 일반 OS에서 보안 OS로 상기 서명 요청 메시지를 전달하는 동작과, 상기 보안 OS에서 구동되는 보안 어플리케이션을 통해 상기 서명 요청 메시지에 대응하는 사용자 인증 요청 화면을 구성하여 디스플레이에 출력하는 동작과, 상기 전자 서명에 대한 사용자 인증 입력을 수신하는 동작과, 상기 보안 OS에서 사용자 인증 입력에 응답하여 전자 장치에 저장된 개인 키를 반영하여 상기 서명 요청 메시지에 전자 서명을 수행하는 동작과 그리고 상기 전자 서명된 메시지를 상기 블록 체인 관리 소프트웨어를 통해 상기 일반 OS에서 동작하는 상기 블록 체인 네트워크와 관련된 어플리케이션으로 전달하는 동작을 포함하고, 상기 보안 OS는 상기 프로세서의 제어 하에, 상기 일반 OS와 분리되어 운용되는 OS인 것을 특징으로 특징으로 할 수 있다.
다양한 실시예에 따르면, 전자 장치는 별도의 개인 키 관리 장치 없이, 분산형 네트워크(예: 블록 체인 네트워크, 이더리움 네트워크) 기반의 전자 거래 시 보안 영역에서 자동으로 개인 키를 호출하여 전자 서명함으로써, 네트워크 차단으로 보안이 보장되는 콜드 윌렛(cold wallet) 특성을 제공하는 전자 지갑 서비스를 제공할 수 있다.
다양한 실시예에 따르면, 블록 체인 네트워크 거래 시 블록 체인 네트워크를 이용하는 서비스 또는 블록 체인 응용 프로그램의 호스트 정보를 요청하여 서명 인증 시 사용자에게 호스트 정보를 서명 요구 정보와 함께 제공하고, 보안 환경에서 사용자 인증 입력에 응답하여 전자 서명을 수행함으로써 서명 절차에 대한 보안성 및 신뢰성을 강화할 수 있다.
도 1은 다양한 실시 예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 본 개시의 다양한 실시예에 따른, 전자 장치의 하드웨어 블록도이다.
도 3은 다양한 실시예에 따른, 전자 장치에서 운용되는 REE(rich execution environment)및 TEE(trunsted execution environment)를 도시하는 블럭도이다
도 4는 다양한 실시예에 따른 전자 서명을 위한 전자 장치의 구성 요소들 간의 인터페이스를 도시한다.
도 5는 다양한 실시예에 따른 전자 장치의 블록 체인 기반의 전자 서명 서비스를 위한 데이터 흐름을 도시한다.
도 6은 다양한 실시예에 따르면 전자 장치의 블록 체인 기반의 전자 서명 서비스 방법을 도시한다.
도 7a및 도 7b는 다양한 실시예에 따른 전자 장치의 전자 서명 인증 요청 화면의 예시를 도시한다.
도 8은 다양한 실시예에 따른 분산형 네트워크 장치와 전자 장치간의 동작을 도시한다.
도 1은 다양한 실시 예들에 따른 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(101)에는, 이 구성 요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시 예에서는, 이 구성 요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드(embedded)된 채 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성 요소(예: 하드웨어 또는 소프트웨어 구성 요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시 예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성 요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(volatile memory)(132)에 로드(load)하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(non-volatile memory)(134)에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치(CPU, central processing unit) 또는 어플리케이션 프로세서(AP, application processor)), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치(GPU, graphic processing unit), 이미지 시그널 프로세서(ISP, image signal processor), 센서 허브 프로세서(sensor hub processor), 또는 커뮤니케이션 프로세서(CP, communication processor))를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(inactive)(예: 슬립(sleep)) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(active)(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성 요소들 중 적어도 하나의 구성 요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))과 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성 요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(OS, operating system)(142), 미들 웨어(middleware)(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성 요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)는, 예를 들면, 마이크, 마우스, 키보드, 또는 디지털 펜(예: 스타일러스 펜) 등을 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커(speaker) 또는 리시버(receiver)를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시 예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)는, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서(pressure sensor))를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시 예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시 예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서(gesture sensor), 자이로 센서(gyro sensor), 기압 센서(barometer sensor), 마그네틱 센서(magnetic sensor), 가속도 센서(acceleration sensor), 그립 센서(grip sensor), 근접 센서(proximity sensor), 컬러 센서(color sensor)(예: RGB(red, green, blue) 센서), IR(infrared) 센서, 생체 센서(biometric sensor), 온도 센서(temperature sensor), 습도 센서(humidity sensor), 또는 조도 센서(illuminance sensor) 등을 포함할 수 있다.
인터페이스(177)는 전자 장치(101)의 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜(protocol)들을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD(secure digital) 카드 인터페이스, 또는 오디오 인터페이스 등을 포함할 수 있다.
연결 단자(connection terminal)(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시 예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터) 등을 포함할 수 있다.
햅틱 모듈(haptic module)(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시 예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터(motor), 압전 소자(piezoelectric element), 또는 전기 자극 장치(electrical stimulation device) 등을 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시 예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일 실시 예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지(fuel cell)를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, Wi-Fi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN(wide area network))와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다.
무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI, international mobile subscriber identity))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시 예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 하나의 안테나를 포함할 수 있다. 일 실시 예에 따르면, 안테나 모듈(197)은 복수의 안테나들을 포함할 수 있다. 이런 경우, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시 예에 따르면, 방사체 이외에 다른 부품(예: RFIC)가 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
상기 구성 요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고, 신호(예: 명령 또는 데이터)를 상호 간에 교환할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104) 간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다.
일 실시 예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104 또는 108) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들(102, 104)에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들(102, 104)은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅(cloud computing), 분산 컴퓨팅(distributed computing), 또는 클라이언트-서버 컴퓨팅(client-server computing) 기술이 이용될 수 있다.
다양한 실시예에 따르면, 제1 네트워크(198) 또는 제2 네트워크(199)는 블록 체인 네트워크일 일 수 있다. 전자 장치(101)는 블록 체인 네트워크 환경에서 동작할 수 있다. 블록 체인 네트워크는 복수 개의 노드로 구성된 P2P(peer to peer) 분산 네트워크를 의미하며, 예를 들어, 이더리움 네트워크 일수 있으나, 이에 한정하는 것은 아니다.
블록 체인 네트워크에 참여하는 복수의 노드가 서로 연결 및 통신할 수 있으며, 각 노드는 부분 또는 전체의 블록 체인을 저장할 수 있다. 노드는 블록체인 네트워크에 연결된 모든 컴퓨팅 장치(예; 전자 장치)를 의미할 수 있다. 블록은 암호 화폐가 사용하는 해시(hash)함수로 이루어져 있다.
블록 체인 네트워크의 노드 중 일부는 컴퓨터의 연산 능력을 이용해 일일이 함수를 대입하는 방식으로 해시를 찾게 되는 채굴(maining) 과정을 수행할 수 있다. 노드는 전자 지갑, 블록 체인 데이터베이스, 검증 엔진, 채굴 엔진, P2P 네트워크 배포(브로드캐스트) 중 적어도 하나의 기능을 수행할 수 있다.
일 예를 들어 전자 장치는 레퍼런스 클라이언트(reference client), 풀노드(full node), 마이닝 노드 (mining node), 라이트웨이트 월 렛 노드(lightweight wallet node) 중 적어도 하나의 방식으로 블록 체인 네트워크에 참여할 수 있다. 레퍼런스 클라이언트(reference client)는 사용자들의 전자 지갑 관리 모듈, 블록 채굴(block mining)을 위한 마이닝 모듈(mining Module), 전체 블록 체인 중 전부 또는 적어도 일부의 블록을 저장하는 블록체인 데이터베이스(blockchain database), 트랜잭션(transaction)을 블록체인 분산 네트워크에 브로드캐스트(broadcast)하는 네트워크 라우팅 모듈(network routing module)을 포함하는 노드를 의미할 수 있다. 풀노드(full node)는 블록체인 데이터베이스, 네트워크 라우팅 모듈을 포함하는 노드를 의미할 수 있다. 솔로 마이너 노드(solo miner node)는, 마이닝 모듈, 블록체인 데이터베이스, 네트워크 라우팅 모듈을 포함하는 노드를 의미할 수 있다. 마이닝 노드 (mining mode)는, 풀 마이닝 노드(pool mining node)에 연결되는 게이트웨이 라우터(gateway router)와 마이닝 모듈을 포함하는 가벼운 노드를 의미할 수 있다. 라이트웨이트 월 렛 노드(lightweight wallet node)는 블록체인의 헤더정보만 저장하고, 전자 지갑 관리 모듈을 보유하여 사용자의 전자 지갑을 저장하며, 블록체인 데이터베이스를 포함하지 않아 트랜잭션 생성이나 블록 체인 네트워크에 접근하기 위해서는 제3자가 소유한 노드에 의존하는 가벼운 노드를 의미할 수 있다.
이하, 다양한 실시예에 따른 전자 장치는 사용자의 전자 지갑을 저장하며, 블록 체인 네트워크에 참여할 수 있는 노드일 수 있으나, 이에 한정하는 것은 아니며, 다른 방식에 의해 블록 체인 네트워크에 참여할 수도 있다.
도 2는 본 개시의 다양한 실시예에 따른, 전자 장치의 하드웨어 블록도이다.
도 2를 참조하면, 다양한 실시예에 따른 전자 장치(101)(예: 도 1의 전자 장치(101))는 디스플레이(210)(예: 도 1의 표시 장치(160)), 통신 회로(220)(예: 도 1의 통신 모듈 (190)), 메모리(230)(예: 도 1의 메모리(130) 및 프로세서(240)(예: 도 1의 프로세서(120))를 포함할 수 있으며, 도 1의 구성요소 일부가 추가될 수 있다.
일 실시예에 따르면, 전자 장치(101)는 블록 체인 관리 모듈(245)을 더 포함할 수 있다. 블록 체인 관리 모듈(245)은 블록 체인 관리 소프트웨어(SW; software)(예: 블록 체인 키스토어)에 의해 구동될 수 있다.
디스플레이(210)는 프로세서(240)의 제어 하에, 블록 체인 네트워크와 관련된 정보를 출력할 수 있다. 디스플레이(210)는 프로세서(240)의 제어 하에, 일반 OS에서 처리하는 데이터 및 보안 OS에서 처리하는 데이터를 출력할 수 있다.
통신 회로(220)는 블록 체인 네트워크에 기반한 데이터를 송수신할 수 있다. 일 예를 들어, 블록 체인 네트워크는 이더리움 네트워크 일 수 있으나, 이에 한정하는 것은 아니다.
일 실시예에 따르면, 통신 회로(220)는 프로세서(240)의 제어 하에, 스마트 계약을 블록 체인 네트워크에 전송할 수 있다. 블록 체인에 전송된 스마트 계약은 블록 체인 내의 모든 노드들과 동기화되어, 블록 체인 내의 모든 노드에 스마트 계약의 내용이 공개될 수 있다. 스마트 계약은 블록 체인에 기반한 자동화 계약 기술로서, 계약 조건을 실행하는 컴퓨터 트랜잭션 프로토콜을 의미할 수 있다. 예를 들어, 스마트 계약은 블록 체인 기술을 기반으로 계약 조건을 코딩하고, 조건에 부합하면 계약 내용이 이행되는 디지털 계약 방식을 의미할 수 있다.
일 실시예에 따르면, 통신 회로(220)는 블록 체인 네트워크로부터 블록 체인 데이터(예: 메시지)를 수신하고, 전자 장치(101)에 저장된 개인 키로 서명한 데이터(예: 전자 서명된 메시지)를 블록 체인 네트워크로 전송할 수 있다.
메모리(230)는 블록 체인과 관련된 정보를 저장할 수 있다. 예를 들어, 메모리(230)는 블록 체인 네트워크로 접근할 수 있는 분산형 어플리케이션, 암호 화폐 지갑 어플리케이션, 블록 체인 보안 어플리케이션 및 보안 유저 인터페이스 어플리케이션 중 적어도 하나를 저장할 수 있다. 일 예를 들어, 분산형 어플리케이션 및 암호 화폐 지갑 어플리케이션은 REE(rich execution environment)에서 동작되는 반면에 블록 체인 보안 어플리케이션 및 보안 유저 인터페이스 어플리케이션은 TEE(trunsted execution environment)에서 동작될 수 있다. 보안 OS에 운용 시 저장된 데이터는 암호화된 상태로 저장될 수 있다.
전자 장치(101)는 메모리(230)에 블록 체인 관리를 위한 별도의 보안 저장 영역 (예:eSE(embedded secure element), eSIM(embedded subscriber identity module))을 포함할 수 있다.
일 실시예에 따르면 메모리(230)는 블록 체인 관리 소프트웨어(SW; software)를 저장할 수 있다. 블록 체인 관리 소프트웨어는 스마트폰과 같은 휴대 장치에 적용되는 소프트웨어(예: APK(android package kit) 파일)일 수 있다. 블록 체인 관리 소프트웨어는 전자 장치(101)에 내장되거나 설치될 수 있다. 또는 블록 체인 관리 소프트웨어는 앱스토어를 통해 서버로부터 다운로드 받아 전자 장치에 설치될 수 있다.
프로 세서(240)는 전자 장치(101)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행할 수 있다. 프로세서(240)는 도 1의 프로세서(120)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다. 프로세서(240)는 블록 체인 관리 소프트웨어를 기반으로 블록 체인 관리 모듈(245)의 동작을 제어할 수 있다.
일 실시예에 따르면, 프로세서(240)는 일반 OS와 보안 OS로 분리하여 운용할 수 있다. 프로세서(240)가 일반OS로 구동 시 운용되는 리소스 영역을 일반 영역으로 이해할 수 있으며, 프로세서(240)가 보안 OS로 구동 시 운용되는 리소스 영역을 보안 영역으로 이해할 수 있다.
일 실시예에 따르면, 프로세서(240)는 블록 체인 관리 소프트웨어, 암호 화폐 어플리케이션 및 분산형 어플리케이션 중 적어도 하나를 제어하여 블록 체인 네트워크의 접속, 승인 및 거래 동작을 수행할 수 있다.
일 실시예에 따르면, 블록 체인 관리 모듈(245)은 프로세서(240)의 제어 하에, 블록 체인 관리 소프트웨어에 의해 동작할 수 있다. 블록 체인 관리 모듈(245)은, 블록 체인 네트워크 관련 어플리케이션과 연동하여 보안 OS에서 동작하는 블록 체인 보안 어플리케이션 및 보안 유저 인터페이스 어플리케이션의 데이터를 처리할 수 있다. 블록 체인 관리 모듈(245)은 블록 체인 관리 소프트웨어와 동일한 의미로 이해될 수 있다.
일 실시예에 따르면, 블록 체인 관리 모듈(245)은, 암호 화폐 지갑 어플리케이션을 통해 지갑 계정 시 블록 체인 메시지를 기반으로 암호화 알고리즘을 적용하여 블록 체인 네트워크에서 사용되는 공개 키(public key) 및 개인 키(private key)를 생성할 수 있다.
다른 실시예에 따르면, 블록 체인 관리 모듈(245)는 지갑 계정 생성 시 전자 장치(101)에 설정된 사용자 개인 정보 및 블록 체인 메시지를 기반으로 암호화 알고리즘을 적용하여 블록 체인 네트워크에서 사용되는 공개 키(public key) 및 개인 키(private key)를 생성할 수 있다. 여기서, 사용자 개인 정보는, 비밀번호 설정 정보, 지문 인증 정보, 홍채 인증 정보, 얼굴 인증 또는 패턴 인증 정보 중 적어도 하나일 수 있으나, 이에 한정하는 것은 아니다.
블록 체인 관리 모듈(245)은 공개 키와 개인 키를 한쌍을 이루어 생성할 수 있다. 블록 체인 관리 모듈(245)에 의해 생성된 개인 키는 블록 체인 관리 소프트웨어에 저장 또는 기록될 수 있다. 공개 키는 암호 화폐 지갑 어플리케이션 및 분산형 어플리케이션을 통해 블록 체인 네트워크로 전달될 수 있다.
일 실시예에 따르면, 블록 체인 관리 모듈(245)는 암호 화폐 지갑 어플리케이션을 통해 전달된 메시지를 보안 영역 내에서 암호화 알고리즘을 기반으로 저장된 개인 키를 반영하여 전자 서명을 수행할 수 있다.
일 실시예에 따르면, 블록 체인 관리 모듈(245)는 보안 영역으로 전달된 서명 인증 요청 메시지에 기반하여 사용자에게 서명 인증을 확인받기 위한 사용자 인증 요청 화면을 구성하고, 이를 디스플레이(210)에 출력하도록 제어할 수 있다. 블록 체인 관리 모듈(245)는 사용자 인증 입력을 수신하고, 사용자 인증 입력 정보에 응답하여 메모리의 보안 영역에 저장된 개인 키를 반영하여 서명 인증 요청 메시지에 전자 서명을 수행할 수 있다.
일 실시예에 따르면, 블록 체인 관리 모듈(245)는 사용자 인증 입력 정보에 사용자 개인 정보가 포함되어 있는 경우, 설정된 사용자 개인 정보와 일치하는 조건 하에 전자 서명을 수행할 수 있다.
블록 체인 관리 모듈(245)는 사용자 개인 정보와 일치하지 않는 경우, 전자 서명을 수행하지 않거나, 공개 키와 대응하는 개인 키와는 상이한 정보로 전자 서명을 수행할 수도 있다. 전자 서명이 잘못된 경우, 블록 체인은, 잘못 서명된 메시지에 의해 전자 장치(101)의 사용자 계정이 정당한 참여자가 아님을 인지할 수 있다.
일 실시예에 따르면, 블록 체인 관리 모듈(245)는 상기 전자 서명된 메시지를 메모리의 일반 영역에서 동작하는 암호 화폐 지갑 어플리케이션으로 전달할 수 있다.
일 실시예에 따르면, 프로세서(240)는 암호 화폐 지갑 어플리케이션으로 전달된 전자 서명된 메시지를 분산형 어플리케이션을 통해 블록 체인 네트워크로 전달할 수 있다. 전자 장치(101)는 블록 체인 네트워크에 대한 참여자 검증이 완료되면 블록 체인 네트워크 서비스를 이용할 수 있다.
도 3은 다양한 실시예에 따른, 전자 장치에서 운용되는 REE(rich execution environment)및 TEE(trunsted execution environment)를 도시하는 블럭도이다.
도 3을 참조하면, 다양한 실시예에 따른 전자 장치(101)(예: 도 1및 도 2의 전자 장치(101))는 보안 강화를 위해 복수의 보안 레벨을 가진 실행 환경을 운용할 수 있다. 복수의 실행 환경은, 예를 들면, REE(310) 및 TEE(320)를 포함할 수 있다. REE(310)는 제 1 보안 레벨을 가지는 제 1 실행 환경일 수 있다. TEE(320)는 제 1 보안 레벨과 다른(예: 높은) 제 2 보안 레벨을 가지는 제 2 실행 환경일 수 있다. 다른 실시예에 따르면, 전자 장치(101)는 제 3 보안 레벨을 가지는 추가적인 다른 실행 환경(예: 제 3 실행 환경)을 포함할 수 있으며, 이에 한정하는 것은 아니다.
전자 장치(101)는 운영 체제(OS; operating system)를 REE(310)와 TEE(320)로 분리하여 운용할 수 있다. REE(310)는 일반OS(예: non-secure OS)에서 구동되며, TEE(320)는 보안 OS(secure OS)에서 구동될 수 있다. 일반 OS는 예를 들어, android OS일 수 있으며, 보안 OS는 예를 들어, (예: teegris, QSEE, trustzone)일 수 있다. 보안 OS는 일반OS와 독립적으로 분리되며, 별도의 리소스를 기반으로 동작하여 허가되지 않은 프로그램이나 어플리케이션에서 접근하지 못하는 환경일 수 있다. 예를 들어, 전자 장치(101)는 가상의 코어를 생성할 수 있으며, 제1 가상 코어에서 일반 OS 를 구동하고 제2 가상 코어에서 보안 OS를 구동할 수 있다.
TEE(320) 환경에서 전자 장치(101)는 보안 OS에서 구동되는 보안 어플리케이션(TA; trusted application)을 기반으로 데이터를 암호화할 수 있다. TEE(320) 환경에서 전자 장치(101)는 일반 OS와는 다른 별도의 메모리(예: eSE, eSIM) 공간을 가지면서 암호화를 수행함으로써, 일반 OS와 일반 OS에서 구동되는 일반 어플리케이션(340)과 비교하여 데이터를 안전하여 보호할 수 있다. TEE(320) 환경에서 전자 장치(101)는 보안 어플리케이션(331)을 통해 암호화 및 복호화를 수행할 수 있다.
TEE(320)는 상대적으로 높은 보안 레벨이 요구되는 데이터를 안전한 환경 내에서 저장하고 관련 동작을 수행할 수 있다. TEE(320)는 전자 장치(101)의 어플리케이션 프로세서의 일반 OS상에서 동작하고, 전자 장치(101)의 제조 과정에서 결정된 신뢰할 수 있는 하드웨어 구조에 기반하여 동작할 수 있다. TEE(320)는 전자 장치(101)의 어플리케이션 프로세서의 보안 OS상에서 동작할 수 있다. . TEE(320)는 보안이 필요한 소프트웨어나 하드웨어를 보안 영역에서만 동작하게 하도록 설정할 수 있다. 전자 장치(101)는 하드웨어의 물리적 변경 또는 소프트웨어의 논리적 변경을 통하여 TEE(320) 를 운용할 수 있다.
TEE(320)는 REE(310)와 하드웨어적인 제약을 통하여 서로 분리될 수 있고, 동일한 하드웨어에서 소프트웨어적으로 분리되어 동작할 수 있다. REE(310)에서 동작하는 적어도 하나의 어플리케이션(예: 전자 지갑, 결제, 또는 브라우저)은 TEE(320)에 접근이 허용된 API(예: TEE functional API(321) 또는 TEE client API(323))를 이용할 수 있다. 일 실시예에 따르면, REE(310)에서 동작하는 적어도 하나의 어플리케이션(340)은 블록 체인 네트워크와 관련된 어플리케이션 및 분산형 어플리케이션일 수 있다.
REE(310)에서 동작하는 적어도 하나의 어플리케이션(340) (예: client application)은 API를 이용하여 REE 통신 에이전트(예: REE communication agent(315))에서 TEE 통신 에이전트(예: TEE communication agent(325))로 데이터(또는 메시지)를 전달할 수 있다. 메시지는 하드웨어적으로 TEE(320)에만 전달될 수 있도록 구현될 수 있다. 일 실시예에 따르면, 메시지는 분산형 어플리케이션 및 블록 체인 네트워크와 관련된 어플리케이션에 기반한 블록 체인 메시지일 수 있다.
TEE 통신 에이전트(325)는 메시지를 수신하여 메시지와 관련된 보안 어플리케이션(trusted application(TA)(331))(예: DRM, 보안 결제 모듈, 또는 블록 체인 어플리케이션)에 전달할 수 있다. TEE(320)에서 동작하는 적어도 하나의 보안 어플리케이션(예: trusted application (331))은 암호화된 데이터를 처리할 수 있다. 보안 어플리케이션(331)은 메시지에 관련된 동작을 수행할 수 있으며, 동작에 대한 결과를 TEE통신 에이전트(325)를 통하여 REE 통신 에이전트(315)에 전달할 수 있다. REE통신 에이전트(315)는 REE에서 운용 중인 적어도 하나의 어플리케이션(Client application(340)) 에 상기 결과를 전달할 수 있다.
일 실시예에 따르면, TEE(320)에서 동작하는 적어도 하나의 보안 어플리케이션(331)은 블록 체인 보안 어플리케이션 및 보안 유저 인터페이스 어플리케이션일 수 있다.
일 실시예에 따르면, 잔지 장치(101)는 트러스트존(trustzone(TZ))) TEEGRIS, QSEE (Qualcomm Secure Execution Environment) 중 하나를 운용할 수 있다. 예를 들어, \ 트러스트존은 ARM 사의 ARM 계열 프로세서 코어에서 하드웨어적으로 구현된 보안기능으로써 개방형 운영체제로 인해 보안이 취약한 모바일 전자 장치의 시스템 보안을 강화하기 위한 기술일 수 있다. 예를 들어, 하드웨어적으로 하나의 프로세서로 운용하는 경우, 전자 장치(101)는 둘 이상의 실행 환경을 운용하기 위해 프로세서를 시간적으로 분리하여 REE와 TEE를 구분함으로써 트러스트존을 운용할 수 있다. 또는 프로세서가 복수의 코어set인 경우 전자 장치(101)는 제1코어가 REE를 운용하고, 제2 코어가 TEE를 운용하도록 설정될 수 있다.
이하, 다양한 실시예에 따라 블록 코어 네트워크에 기반한 전자 서명 환경을 일반 영역과 보안 영역으로 구분하여 도시하기로 한다.
도 4는 다양한 실시예에 따른 전자 서명을 위한 전자 장치의 구성 요소들 간의 인터페이스를 도시한다.
도 4를 참조하면, 다양한 실시예에 따르면, 전자 장치(예: 전자장치(101))는 도 3의 일반 영역(Normal World, 예를 들어, REE) 및 보안 영역(Secure World, 예를 들어, TEE)에 기반하여 블록 체인 네트워크에 접근 또는 거래 시 전자 서명 서비스를 지원할 수 있다. 일반 영역은 일반OS로 구동 시 운용되는 영역을 의미하며, 보안 영역은 보안 OS로 구동 시 운용되는 영역을 의미할 수 있다.
일 실시예에 따르면, 일반 영역(310)은 분산형 어플리케이션(410), 및 블록 체인 네트워크와 관련된 어플리케이션(420) 및 블록 체인 관리 소프트웨어(430)를 포함할 수 있다. 보안 영역(320)은 블록 체인 보안 어플리케이션(440) 및 보안 유저 인터페이스 어플리케이션(450)을 포함할 수 있다. 예를 들어, 분산형 어플리케이션(410) 및 블록 체인 네트워크와 관련된 어플리케이션(420)은 도 3의 REE(310)에서 구동되는 클라이언트 어플리케이션(340)일 수 있으며, 블록 체인 보안 어플리케이션(440) 및 보안 유저 인터페이스 어플리케이션(450)은 도 3의 TEE(320)에서 구동되는 보안 어플리케이션(trusted application(TA)(331))일 수 있다.
분산형 어플리케이션(410)은 블록 체인 플랫폼 또는 이더리움 네트워크 플랫폼에서 구동되는 어플리케이션일 수 있다. 예를 들어, 분산형 어플리케이션(410)은 블록 체인 서비스 어플리케이션(예: 디앱(Dapp, decenteralized application))일 수 있다. 분산형 어플리케이션(410)은 HTML, CSS, 자바 스트립트(예: web3js) 중 적어도 하나의 조합으로 구성될 수 있다. 분산형 네트워크(예: 블록 체인 네트워크)에 참여하는 참여자들은 분산형 어플리케이션(410)을 통해 분산형 네트워크에 참여한 다른 참여들과 상호 작용할 수 있다.
블록 체인 네트워크와 관련된 어플리케이션(420)은 분산형 어플리케이션(410)과 연동되는 암호 화페 지갑 어플리케이션 또는 블록 체인 네트워크와 연결되는 브라우저 어플리케이션일 수 있다.
일 실시예에 따르면, 블록 체인 네트워크와 관련된 어플리케이션(420)은 블록 체인에 기반한 정보를 제공하고 사용자와의 인터렉션을 위한 사용자 인터페이스 어플리케이션일 수 있다. 예를 들어, 블록 체인 네트워크와 관련된 어플리케이션(420)는 암호 화폐를 관리 및 사용하며, 블록 체인에서 변동된 정보를 암호 화폐에 반영할 수 있다. 블록 체인 네트워크와 관련된 어플리케이션(420)은 보안 환경에서 구동되는 블록 체인 관리 소프트웨어(430)와 연동될 수 있다.
일 실시예에 따르면 블록 체인 네트워크와 관련된 어플리케이션(420)이 암호 화폐 지갑 어플리케이션일 경우, 안호 화폐 지갑 어플리케이션은 네트워크 해킹을 방지하고 암호 화폐를 오프라인 상태로 안전하게 저장하는 콜드 윌렛(cold wallet) 방식일 수 있다.
일 실시예에 따르면, 블록 체인 네트워크와 관련된 어플리케이션(420)은 블록 체인 관리 소프트웨어((430)과 메시지 교환을 위한 통신 키트 소프트웨어(예: 익스텐션 키드(extension kit))를 포함할 수 있다. 예를 들어, 통신 키트 소프트웨어는 블록 체인 관리 소프트웨어를 이용할 수 있는 API (application Programming Interface)일 수 있다. 예를 들어, 도 3의 TEE(320)에 접근이 허용된 API(예: TEE functional API(321) 또는 TEE client API(323)) 형태일 수 있다.
일 실시예에 따르면, 블록 체인 관리 소프트웨어(430)는 통신 키트 소프트웨어(425)(예: 익스텐션 키드(extension kit)) 와 메시지를 교환할 수 있다. 블록 체인 관리 소프트웨어(430)는 보안 영역의 블록 체인 보안 어플리케이션(440) 및 보안 유저 인터페이스 어플리케이션(450)으로 메시지를 전달할 수 있다. 블록 체인 관리 소프트웨어(430)는 예를 들어, 스마트폰과 같은 휴대 장치에 적용되는 소프트웨어(예: APK(android package kit) 파일)일 수 있다. 도 4의 예시에서 블록 체인 관리 소프트웨어(430)는 REE(310)에 동작하는 것으로 서술되어 있으나, 다양한 실시예에 따르면, 블록 체인 관리 소프트웨어(430)는 TEE(320)에서 동작할 수 도 있다.
일 실시예에 따르면, 블록 체인 네트워크와 관련된 어플리케이션(420)은 블록 체인 보안 어플리케이션(440)과 연동하여 블록 체인 메시지를 기반으로 암호화 알고리즘을 적용하여 블록 체인 네트워크에서 사용되는 공개 키 및 개인 키를 생성할 수 있다. 블록 체인 네트워크는 공개 키(public key)를 통해 참여자 계정(account) 또는 주소 정보를 확인하며, 개인 키(private key)를 통해 참여자 계정을 검증할 수 있다.
일 실시예에 따르면, 블록 체인 네트워크와 관련된 어플리케이션(420)은 블록 체인 서비스 계정 생성 시 전자 장치(101)에 설정된 사용자 개인 정보 및 블록 체인 메시지를 기반으로 암호화 알고리즘을 적용하여 블록 체인 네트워크에서 사용되는 공개 키(public key) 및 개인 키(private key)를 생성할 수 있다. 여기서, 사용자 개인 정보는, 비밀번호 설정 정보, 지문 인증 정보, 홍채 인증 정보, 얼굴 인증 정보 또는 패턴 인증 정보 중 적어도 하나일 수 있으나, 이에 한정하는 것은 아니다.
일 실시예에 따르면, 공개 키 및 개인 키는 블록 체인 보안 어플리케이션(440)을 통해 생성될 수 있으며, 보안 영역의 블록 체인 관리 소프트웨어(430)에 저장(또는 기록)될 수 있다.
보안 유저 인터페이스 어플리케이션(450)은 보안 환경에서 블록 체인 메시지를 기반으로 사용자 인증 요청 화면을 구성할 수 있다. 사용자 인증 요청 화면은 블록 체인 네트워크를 이용하는 서비스 또는 블록 체인 응용 프로그램의 호스트 정보, 블록 체인 메시지 및 인증 수단 객체 중 적어도 하나를 포함할 수 있다. 인증 수단 객체는 사용자 입력을 요청하고 사용자 입력을 수신하기 위한 객체일 수 있다. 인증 수단 객체는 설정에 따라 비밀 번호 입력 항목, 지문 입력 항목, 홍채 입력 항목, 얼굴 인식 입력 항목 또는 확인 입력 항목 중 적어도 하나일 수 있으나, 이에 한정하는 것은 아니다.
일 실시예에 따르면, 보안 유저 인터페이스 어플리케이션(450)은 호스트 정보와 메시지를 기반으로 제1 사용자 인증 요청 화면을 구성하고, 사용자 승인 입력이 수신되면 전자 서명을 위한 인증 수단 객체를 포함하는 제2 사용자 인증 요청 화면을 구성할 수 있다. 예를 들어, 제2 사용자 인증 요청 화면에 포함된 인증 수단 객체는 암호 화폐 지갑 계정 생성 시 설정된 사용자 개인 정보를 입력받기 위한 객체일 수 있다.
일 실시예에 따르면, 보안 유저 인터페이스 어플리케이션(450)은 호스트 정보 및 메시지와 설정된 사용자 개인 정보를 입력 받기 위한 인증 수단 객체를 하나의 화면으로 구성할 수도 있다.
블록 체인 보안 어플리케이션(440)은 블록 체인 데이터를 처리할 수 있다. 일 예를 들어, 블록 체인 보안 어플리케이션(440)은 암호 화폐를 보관하고 관리할 수 있으며, 스마트 계약을 위한 전자 서명을 수행할 수 있다. 블록 체인 보안 어플리케이션(440)은 블록 체인 관리 소프트웨어(430)를 거쳐 전달된 블록 체인 메시지에 대해 전자 서명을 수행하고 전자 서명된 메시지를 블록 체인 관리 소프트웨어(430)로 전달할 수 있다.
일 실시예에 따르면, 블록 체인 보안 어플리케이션(440)은 보안 영역에 저장된 개인 키를 이용하여 전자 서명을 수행할 수 있다. 전자 서명된 메시지는, 전자 장치 고유의 개인 키를 기반으로 한 전자 서명, 전자 서명을 생성한 서명자 정보, 전자 서명을 생성하는데 사용된 알고리즘 정보, 블록을 식별할 수 있는 블록 식별 정보, 트랜잭션을 식별할 수 있는 트랜잭션 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 블록 체인 보안 어플리케이션(440)은 타원곡선암호화 알고리즘(Elliptic Curve cryptography, ECC)을 이용하여 개인 키를 기반으로 블록 체인 메시지에 전자 서명할 수 있다. 예를 들어, 전자 서명된 데이터는 타원곡선암호 알고리즘에서 사용되는 파라메터 값(또는 해시값)이외에 분산형 네트워크(예: 이더리움 네트워크)에서 서명한 주체의 주소정보를 검증하기 위한 값을 포함할 수 있다. 일 실시예에 따르면, 블록 체인 보안 어플리케이션(440)은 개인 키 생성 시 사용자 개인 정보를 비밀번호로 설정한 경우, 사용자 인증 입력 정보가 상기 사용자 개인 정보와 일치 시상기 서명 인증 요청 메시지에 전자 서명할 수 있다.
블록 체인 보안 어플리케이션(440)에서 전자 서명된 메시지는 블록 체인 소프트웨어를 통해 블록 체인 네트워크와 관련된 어플리케이션(420)로 전달되고, 분산형 어플리케이션(410)을 거쳐 블록 체인 네트워크로 전송될 수 있다.
이하, 블록 체인 네트워크와 관련된 어플리케이션(420)이 지갑 어플리케이션(예: 암호 화폐 지갑 어플리케이션)인 예시를 들어 설명하기로 하나, 블록 체인 네트워크와 관련된 어플리케이션(420)는 블록 체인 네트워크 또는 블록 체인 서비스를 이용할 수 있는 브라우저 어플리케이션, 결제 어플리케이션을 포함할 수 있다. 또한, 블록 체인 네트워크와 관련된 어플리케이션(420)는 보안 OS와 통신할 수 있는 통신 키트 소프트웨어를 사용하는 어플리케이션일 수 있다.
도 5는 다양한 실시예에 따른 전자 장치의 블록 체인 기반의 전자 서명 서비스를 위한 데이터 흐름을 도시한다.
도 5를 참조하면, 다양한 실시예에 따르면, 전자 장치(예: 전자 장치(101))의 프로세서(예: 도 2의 프로세서(240))는, 일반 영역(예: 도 3및 도4의 REE(310))에서 동작하는 분산형 어플리케이션(501)(예: 도 4의 분산형 어플리케이션(410)), 지갑 어플리케이션(502)(예: 도 4의 블록 체인 네트워크와 관련된 어플리케이션(420)), 블록 체인 키스토어(503)(예: 도 4 의 블록 체인 관리 소프트웨어(430)) 와, 보안 영역(예: 도 3및 도 4의 TEE(320))에서 동작하는 보안 유저 인터페이스(504)(예: 도 4의 보안 유저 인터페이스 어플리케이션) 및 블록 체인 보안 어플리케이션(505)(예: 도 4의 블록 체인 보안 어플리케이션(440)) 간의 데이터를 처리하여 블록 체인 메시지에 대한 전자 서명을 수행할 수 있다. 예를 들어, 프로세서는 일반 OS에서 분산형 어플리케이션(501), 지갑 어플리케이션(502) 및, 블록 체인 키스토어(503) 를 구동하며, 보안 OS에서 보안 유저 인터페이스 (504) 및 블록 체인 보안 어플리케이션(505)을 구동할 수 있다.
이하, 전자 장치(101)의 데이터 흐름을 위해 동작의 주체를 분산형 어플리케이션(501), 지갑 어플리케이션 (502), 블록 체인 키스토어(503), 보안 유저 인터페이스 (504) 및 블록 체인 보안 어플리케이션 (505)으로 정의하였으나, 이는 설명의 편의를 위하여 구분하였을 뿐, 각 동작들은 전자 장치의 프로세서에 의해 제어될 수 있다.
510동작에서 전자 장치(101)가 분산형 네트워크로부터 분산형 어플리케이션(501)은 프로세서의 제어 하에, 지갑 어플리케이션(502)으로 서명을 위한 요청 메시지를 전달할 수 있다.
520동작 에서 지갑 어플리케이션(502)은 프로세서의 제어 하에, 분산형 어플리케이션(501)으로 분산형 네트워크를 지원하는 호스트 정보를 요청할 수 있다. 예를 들어, 호스트 정보는 블록 체인 네트워크를 이용하는 서비스 또는 응용 프로그램의 호스트 정보일 수 있다.
525동작에서, 분산형 어플리케이션(501)은 프로세서의 제어 하에, 요청에 응답하여 지갑 어플리케이션(502)으로 분산형 네트워크를 지원하는 호스트 정보(예: URL정보, Dapp 이름, 호스트 이름 등)를 제공할 수 있다. 일 실시예에 따르면, 520동작 및 525동작은 생략될 수 있으며, 이에 한정하는 것은 아니다.
530동작에서, 지갑 어플리케이션(502)은 전자 서명 요청 메시지 및 호스트 정보 중 적어도 하나를 블록체인 키스토어(503)로 전달한다.
일 실시예에 따르면, 지갑 어플리케이션(502)은 블록 체인 네트워크 플랫폼과 전자 장치(101)와의 커넥트를 지원하며, 블록 체인 키스토어(503)와 통신하기 위한 통신 키트 소프트웨어(예: 익스텐션 키드(extension kit)를 포함할 수 있다. 블록 체인 키스토어(503)는 지갑 어플리케이션(502)에 포함된 통신 키트 소프트웨어를 통해 메시지를 교환할 수 있다.
일 실시예에 따르면, 분산형 어플리케이션(501) 또는 분산형 어플리케이션을 운영하는 서비스와 블록 체인 키스토어(503)에서 사전 공유된 공개 키가 존재하는 경우, 분산형 어플리케이션(501) 또는 분산형 어플리케이션(501)을 운영하는 서비스에서 전자 서명된 메시지를 블록 체인 키스토어(503)로 전달할 수 있다. 블록 체인 키스토어(503)는 분산형 어플리케이션(501) 또는 분산형 어플리케이션(501)을 운영하는 서비스에서 전달된 전자 서명된 메시지를 기반으로 신뢰할 수 있는 호스트에서 전송된 메시지인지를 확인할 수 있다. 예를 들어, 분산형 어플리케이션(501) 또는 분산형 어플리케이션(501)을 운영하는 서비스가 사전에 공개 키 및 개인 키를 이용하여 전자 서명된 메시지를 블록 체인 키스토어(503)에 제공함으로써, 블록 체인 키스토어(503)는 전자 서명된 메시지가 분산형 어플리케이션(501) 또는 분산형 어플리케이션(501)을 운영하는 서비스에서 전송한 메시지를 확인하고 전송된 메시지를 신뢰할 수 있다. 분산형 어플리케이션(501) 또는 분산형 어플리케이션(501)을 운영하는 서비스의 디지털 서명에 이용되는 공개 키 및 개인 키는 후술하는 블록 체인 보안 어플리케이션(505)에서 전자 서명하는 개인 키 및 공개 키와 상이한 키일 수 있다.
540동작에서, 블록 체인 키스토어(503)는 프로세서의 제어 하에, 호스트 정보 확인을 위한 요청 및 메시지를 보안 유저 인터페이스(504)로 전달할 수 있다. 보안 유저 인터페이스(504)는 프로세서의 제어 하에, 보안 OS에서 블록 체인 네트워크에 대한 호스트 정보를 확인하고 접근을 승인 받기 위한 제1 사용자 인증 요청 화면을 구성하고, 이를 디스플레이 할 수 있다. 제1 사용자 인증 요청 화면은 인증 요청 화면은 사용자에게 블록 체인 네트워크로의 접근을 확인, 블록 정보(또는 트랜잭션)/ 거래 정보에 대한 전자 서명에 대한 확인을 요구하는 화면일 수 있다. 제1 사용자 인증 요청 화면은 메시지, 호스트 정보 및 입력 확인 객체를 포함하여 구성될 수 있다.
532 동작에서, 보안 유저 인터페이스(504)는 입력 확인 객체를 포함하는 사용자 입력을 수신할 수 있다.
535 동작에서, 보안 유저 인터페이스(504)는 입력 확인에 대한 승인 정보를 블록 체인 키스토어(503)로 전달할 수 있다.
550동작에서, 블록 체인 키스토어(503)는 프로세서의 제어 하에, 전자 서명에 대한 인증 요청을 보안 유저 인터페이스(504)로 전달할 수 있다. 보안 유저 인터페이스 (504)는 보안 OS에서 사용자에게 블록 체인 메시지에 대해 전자 서명을 확인 받기 위해 제2 사용자 인증 요청 화면을 구성하고, 이를 디스플레이할 수 있다. 제2 사용자 인증 요청 화면은 사용자 인증을 위해 설정된 사용자 개인 정보의 입력을 요청하는 메시지 및 인증 수단 객체 중 적어도 하나를 포함할 수 있다. 인증 수단 객체는 설정된 비밀번호 인증, 지문 인증, 홍채 인증, 얼굴 인증 또는 패턴 인증 중 적어도 하나를 인증하기 위한 객체일 수 있다. 예를 들어, 사용자 개인 정보는 암호 화폐 지갑 어플리케이션 계정 생성 시 설정된 비밀 번호 정보일 수 있다. 사용자는 인증 수단 객체에 대응하여 사용자 개인 정보를 입력할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 540, 543 및 545 동작을 생략할 수 있으며, 540, 543 및 545 동작이 생략된 경우, 호스트 정보, 메시지 및 인증 수단 객체를 포함한 사용자 인증 요청 화면을 사용자에게 제공하고, 이를 기반으로 사용자 인증 입력 정보를 수신할 수도 있다.
555동작에서 보안 유저 인터페이스 (504)는 보안 OS에서 구성된 사용자 인증 요청 화면에 포함된 인증 수단 객체로부터 사용자 입력을 수신할 수 있다.
557 동작에서, 보안 유저 인터페이스 (504)는 사용자 입력 정보에 응답하여 블록 체인 키스토어(503)로 사용자 인증 정보를 전달할 수 있다.
560동작에서, 블록체인 키스토어(503)는 사용자 인증 정보에 응답하여 블록 체인 보안 어플리케이션(505)으로 요청 메시지에 대한 전자 서명을 요청할 수 있다. 블록 체인 보안 어플리케이션 (505)은 요청 메시지에 대해 보안 OS의 메모리에 저장된 개인 키를 기반으로 전자 서명을 수행할 수 있다. 전자 서명된 메시지는 전자 장치 고유의 개인 키를 기반으로 한 전자 서명, 전자 서명을 생성한 서명자 정보, 전자 서명을 생성하는데 사용된 알고리즘 정보, 블록을 식별할 수 있는 블록 식별 정보, 트랜잭션을 식별할 수 있는 트랜잭션 정보 중 적어도 하나를 포함할 수 있다.
565동작에서 블록 체인 보안 어플리케이션(505)은 전자 서명된 메시지를 블록 체인 키스토어(503)로 전달할 수 있다. 570동작에서, 블록 체인 키스토어(503)는 지갑 어플리케이션(502)으로 전자 서명된 메시지를 전달할 수 있다. 블록 체인 키스토어(503)는 지갑 어플리케이션(502)에 포함된 통신 키트 소프트웨어를 통해 전자 서명된 메시지를 지갑 어플리케이션(502)으로 전달할 수 있다.
575동작에서 지갑 어플리케이션(502)은 분산형 어플리케이션(501)으로 전자 서명된 메시지를 전달할 수 있다.
전자 장치(101)는 분산형 어플리케이션(501)을 통해 전자 서명된 메시지에 대한 사용자 계정을 검증한 결과를 확인하고 전자 장치(101)가 분산형 네트워크 서비스를 이용하도록 제어할 수 있다.
다양한 실시예에 따르면, 전자 장치(예: 도 1및 도 2의 전자 장치(101))에 있어서, 외부 전자 장치와 무선 통신하는 통신 회로(예: )(예: 도 1의 통신 모듈 (190), 도 2의 통신 회로(220))와, 디스플레이(예: 도 1의 표시 장치(160), 도 2의 디스플레이(210))와, 메모리(예: 도 1의 메모리(130), 도 2의 메모리(230)) 및 상기 통신 회로, 디스플레이 및 메모리와 전기적으로 연결되는 적어도 하나의 프로세서(예: 도 1의 프로세서(120), 도 2의 프로세서(240))를 포함하고, 적어도 하나의 프로세서는, 일반 OS(예: 도 3 및 도 4의 REE(310))과 보안 OS(예: 도 3및 도 4의 TEE(320))를 운용하고, 상기 메모리는, 실행 시에 상기 적어도 하나의 프로세서가, 상기 일반 OS 에서 상기 통신 회로를 통해 블록 체인에 대응하는 서명 요청 메시지를 수신하고, 상기 서명 요청 메시지 수신에 응답하여 블록 체인 관리 소프트웨어(예: 도 2의 블록 체인 관리 모듈(245)), 도 4의 블록 체인 관리 소프트웨어(430))를 구동하고, 상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 서명 요청 메시지를 전달하고, 상기 보안 OS에서 구동되는 보안 어플리케이션(예: 도 3의 보안 어플리케이션, 도 4의 블록 체인 보안 어플리케이션(440) 및 보안 유저 인터페이스 어플리케이션(450))을 기반으로 사용자 인증 요청 화면을 구성하여 상기 디스플레이에 출력하고, 전자 서명에 대한 사용자 인증 입력 수신에 응답하여 상기 메모리에 저장된 개인 키를 반영하여 상기 서명 요청 메시지에 전자 서명을 상기 보안 OS에서 수행하고, 상기 전자 서명된 메시지를 상기 블록 체인 관리 소프트웨어를 통해 상기 일반 OS에서 동작하는 상기 블록 체인 네트워크와 관련된 어플리케이션(예: 도 4의 블록 체인 네트워크와 관련된 어플리케이션(420), 도 5의 지갑 어플리케이션(502))으로 전달하도록 하는 인스트럭션들이 저장될 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 블록 체인 네트워크에 참여한 다른 노드와 거래 시에 상기 블록 체인 네트워크와 관련된 어플리케이션으로 전달된 서명 인증 요청 메시지를 상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 전달하고, 상기 서명 요청 메시지 수신 시마다 상기 보안 OS에서 상기 메모리에 저장된 개인 키를 이용해 전자 서명을 수행하도록 할 수 있다.
일 실시예에 따르면, 상기 블록 체인 네트워크와 관련된 어플리케이션은, 보안 영역과 메시지를 교환하기 위한 통신 키트 소프트웨어(예: 도 4의 통신 키트 소프트웨어(425))를 더 포함하고, 상기 서명 요청 메시지 및 상기 전자 서명된 메시지는 상기 통신 키트 소프트웨어 및 상기 체인 블록 관리 소프트웨어에 의해 교환될 수 있다.
일 실시예에 따르면, 상기 보안 OS에서 구동되는 보안 어플리케이션은 상기 블록 체인 네트워크와 관련된 어플리케이션과 연동하여 암호 화폐 인증에 사용되는 개인 키를 상기 보안 OS시 운용되는 메모리에 저장하고, 상기 보안 OS에서 구동되는 보안 어플리케이션을 실행하여 상기 저장된 개인 키를 반영하여 상기 서명 요청 메시지에 전자 서명을 수행하여 전자 서명된 메시지를 생성하도록 하는 인스트럭션들이 포함될 수 있다.
일 실시예에 따르면, 상기 블록 체인 네트워크와 관련된 어플리케이션은 암호 화폐 지갑 어플리케이션을 포함하고, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 암호 화폐 지갑 어플리케이션 계정 생성 시 블록 체인에 기반하여 공개 키 및 개인 키를 한쌍을 이루어 생성하고, 상기 공개 키는 상기 블록 체인 네트워크에 참여하는 다른 노드로 전달되고, 상기 개인 키는 상기 메모리의 보안 영역에 저장되도록 할 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 보안 OS에서 구동되는 보안 어플리케이션을 통해 상기 전자 장치에 설정된 사용자 개인 정보 및 블록 체인 메시지를 기반으로 암호화 알고리즘을 적용하여 공개 키 및 개인 키를 생성하도록 하고, 상기 사용자 인증 입력 정보가 상기 사용자 개인 정보와 일치하는 경우 상기 서명 인증 요청 메시지에 전자 서명하도록 할 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 보안 OS에서 구동되는 보안 어플리케이션을 TEE(trunsted execution environment), TEEGRIS, QSEE (Qualcomm Secure Execution Environment) 또는 트러스트 존 중 하나에서 동작하도록 할 수 있다.
일 실시예에 따르면, 상기 블록 체인 관리 소프트웨어는 상기 전자 장치에 내장 또는 설치되거나, 또는 앱스토어를 통해 다운로드되는 오픈 OS에 기반한 응용 프로그램일 수 있다.
일 실시예에 따르면, 상기 블록 체인 네트워크와 관련된 어플리케이션은, 상기 블록 체인 네트워크와 연결되는 분산형 어플리케이션 또는 블록 체인 네트워크와 통신하여 블록 체인 네트워크를 이용하는 서비스 또는 블록 체인 응용 프로그램의 호스트 정보를 요청하고, 상기 블록 체인 네트워크로부터 전달된 블록 체인 호스트 정보를 보안 OS로 전달하도록 하는 인스트럭션들이 저장될 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가 상기 보안 OS에서 구동되는 보안 어플리케이션을 통해 상기 블록 체인 네트워크 호스트 정보, 블록 체인 메시지 및 인증 수단 객체 중 적어도 하나를 포함하여 상기 사용자 인증 요청 화면을 구성하고, 상기 인증 수단 객체는 설정된 비밀번호 인증, 지문 인증, 페이스 인증, 패턴 인증, 홍채 인증 또는 입력 확인 인증 중 적어도 하나일 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 보안 영역에서 구동되는 보안 어플리케이션을 통해 호스트 정보를 확인하고 접근을 승인 받기 위한 제1 사용자 인증 요청 화면을 구성하여 상기 디스플레이에 출력하고, 사용자 승인 입력에 응답하여 사용자 인증을 위해 설정된 사용자 개인 정보의 입력을 요청하는 인증 수단 객체를 포함하는 제2 사용자 인증 요청 화면을 구성하여 상기 디스플레이에 출력하도록 하는 인스트럭션들을 더 포함하고 상기 인증 수단 객체는 설정된 비밀번호 인증, 지문 인증, 페이스 인증, 패턴 인증 또는 홍채 인증 중 적어도 하나일 수 있다.
도 6은 다양한 실시예에 따르면 전자 장치의 블록 체인 기반의 전자 서명 서비스 방법을 도시하며, 도 7및 도 7b는 다양한 실시예에 따른 전자 장치의 전자 서명 인증 요청 화면의 예시를 도시한다.
도 6을 참조하면, 다양한 실시예에 따르면, 전자 장치(예: 전자 장치(101))의 프로세서(예: 도 2의 프로세서(240))는, 610 동작에서 사용자 요청에 응답하여 분산형 마켓으로 진입을 요청할 수 있다. 분산형 마켓은 블록 체인 네트워크 또는 이더리움 네트워크 기반 마켓일 수 있다. 예를 들어, 전자 장치(101)는 웹브라우저를 통해 분산 형 마켓을 위한 웹 페이지에 접속할 수 있다. 일 실시예에 따르면, 610 동작은 생략될 수 있다.
620동작에서, 전자 장치(101)의 프로세서는 통신 회로를 통해 블록 체인 네트워크로부터 사용자 검증을 위한 전자 서명 요청 메시지를 수신할 수 있다.
일 예를 들어, 블록 체인 네트워크 서비스에서 참여자가 블록 체인(또는 이더리움) 클라이언트(예: 다른 노드의 다른 전자 장치)로 접근하게 되면, 이용자 계정에 기반한 소유자 확인을 위하여 서명된 확인 메시지를 송신해달라는 메시지를 수신할 수 있다. 블록 체인 클라이언트는 서명된 확인 메시지를 기반으로 이용자 계정의 적법성을 식별하여 이용자 계정으로 통해 블록 체인에 공유화된 데이터를 접근을 허용할 수 있다.
추가적으로 전자 장치(101)의 프로세서는 통신 회로를 제어하여 블록 체인 네트워크를 이용하는 서비스 또는 블록 체인 응용 프로그램의 호스트 정보를 요청하고, 블록 체인 네트워크로부터 호스트 정보를 수신하는 동작을 수행할 수 있으나, 도 6의 동작에서는 생략하였다.
630 동작에서, 전자 장치(101)의 프로세서는, 보안 영역으로 전자 서명 요청 메시지를 전달할 수 있다. 예를 들어, 전자 장치(101)의 프로세서는, 블록 체인 관리 소프트웨어를 구동하여 보안 영역에서 동작하는 보안 유저 인터페이스 어플리케이션 및 블록 체인 보안 어플리케이션을 실행시킬 수 있다. 전자 장치(101)의 프로세서는 지갑 어플리케이션에 포함된 통신 키트 소프트웨어와 블록 체인 관리 소프트웨어 사이의 메시지 교환을 제어할 수 있다.
640 동작에서, 전자 장치(101)의 프로세서는, 보안 영역의 보안 유저 어플리케이션을 기반으로 전자 서명을 위한 사용자 인증 요청 화면을 표시할 수 있다. 사용자 인증 요청 화면은 TEE에서 구현되며, 사용자 인증 요청 화면을 통해 입력된 정보는 TEE로 전달될 수 있다. 전자 장치(101)는7a에 도시된 바와 같이, 2 단계로 사용자 인증 요청 화면을 제공하여 사용자 입력을 수신 받을 수 있으나, 도 7b에 도시된 바와 같이, 1단계로 사용자 인증 요청 화면을 제공하여 사용자 입력을 수신 받을 수도 있다.
7a의 실시예에 따르면, 전자 장치는 블록 체인 네트워크에 대한 호스트 정보를 확인하고 접근을 승인 받기 위한 제1 사용자 인증 요청 화면(701)을 디스플레이에 출력하고, 사용자 승인 입력이 수신된 후에, 블록 체인 메시지에 대해 전자 서명을 인증 받기 위한 제2 사용자 인증 요청 화면(702)을 디스플레이에 출력할 수 있다.. 예를 들어, 도 7a에 도시된 바와 같이, 전자 장치(101)는 블록 체인 메시지가 수신되면 보안 OS에서 제1 사용자 인증 요청 화면(701)을 생성하고 이를 디스플레이에 출력할 수 있다. 제1 사용자 인증 요청 화면(70)은 블록 체인 네트워크의 호스트 정보(711), 요청 메시지(712) 및 확인 입력 승인 객체(730)를 포함할 수 있다. 사용자가 호스트 정보를 확인하여 확인 입력 승인 객체(730)를 선택하는 경우 전자 장치(101)는 보안 OS 에서 제2 사용자 인증 요청 화면(702)을 생성하고, 이를 디스플레이에 출력할 수 있다. 제2 사용자 인증 요청 화면(702)은 사용자 인증을 위해 설정된 사용자 개인 정보의 입력을 요청하는 메시지(735) 및 비밀번호 인증 객체(740)를 포함하여 구성될 수 있다. 7a의 실시예에서 제2 사용자 인증 요청 화면(702)은 비밀번호 입력을 위해 키패드(745)를 더 포함하여 구성될 수 있다. 사용자는 비밀번호 인증 객체(740)를 통해 블록 체인 네트워크 계정 생성 시 입력한 비밀 번호를 입력할 수 있다. 비밀 번호 인증 객체(740)는 화면의 예시일 뿐, 전자 장치(101)에 홍채 인식 정보, 지문 인식 정보, 얼굴 인식 정보, 패턴 인식정보 또는 숫자 인증 와 같이, 다른 사용자 개인 정보가 설정된 경우, 설정된 사용자 개인 정보에 기반한 인증 수단 객체가 구현될 수 도 있다. 제2 사용자 인증 요청 화면에서 사용자가 입력한 입력 정보와 설정된 비밀번호가 동일한 경우 전자 장치의 프로세서는 보안 영역에 저장된 개인 키를 기반으로 전자 서명을 수행할 수 있다.
7b의 실시예에 따르면, 전자 장치(101)는 블록 체인 네트워크의 호스트 정보, 요청 메시지 및 인증 수단 객체 포함하여 사용자 인증 요청 화면을 구성하고, 이를 디스플레이에 출력할 수 있다. 일 예를 들어, 전자 장치(101)는 계정 생성 시 설정된 사용자 개인 정보가 존재하는 하는 경우, 703에 도시된 바와 같이, 블록 체인 네트워크의 호스트 정보(721), 요청 메시지(722) 및 인증 수단 객체(723)를 포함하여 사용자 인증 요청 화면(703)을 구성할 수 있다. 인증 수단 객체(723))는 설정된 사용자 개인 정보에 따라 상이할 수 있다. 사용자 개인 정보가 비빌번호 인증으로 설정된 경우, 사용자 인증 요청 화면(703)은 키패드(724)를 더 포함하여 구성될 수 있다.
다른 예를 들어, 전자 장치는 설정된 사용자 개인 정보가 존재하지 않는 경우, 블록 체인 네트워크의 호스트 정보(731), 요청 메시지(732) 및 확인 객체(733)를 포함하여 사용자 인증 요청 화면(704)을 구성할 수 있다. 확인 객체(733)는 전자 장치(101)의 사용자 개인 정보 없이 사용자의 입력 승인만을 확인하는 객체일 수 있다.
650동작에서, 전자 장치(101)의 프로세서는, 보안 영역에서 구동 중인 보안 유저 인터페이스를 통해 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 사용자 인증 화면을 통해 비밀 번호 정보, 홍채 정보, 지문 정보, 얼굴 정보, 패턴 정보 또는 승인 확인 중 적어도 하나를 수행할 수 있다.
660 동작에서, 전자 장치(101)의 프로세서는, 사용자 입력에 응답하여 보안 영역에 저장된 개인 키를 이용하여 메시지에 대한 전자 서명을 수행할 수 있다.
일 실시예에 따른 전자 장치(101)는 사용자 개인 정보를 설정하여 개인 키가 생성된 경우, 7a 의 701/702 화면 또는 7b의 703 화면을 통해 입력된 사용자 개인 정보가 일치하는 경우 개인 키를 기반으로 메시지에 대한 전자 서명을 수행할 수 있다.
일 실시예에 따른 전자 장치(101)는 사용자 개인 정보 없이 개인 키가 생성된 경우, 도 7b에 704 화면을 디스플레이에 출력할 수 있으며, 승인 확인 입력 수신에 응답하여 개인 키를 기반으로 메시지에 대한 전자 서명을 수행할 수 있다.
670동작에서, 전자 장치(101)의 프로세서는, 전자 서명된 메시지를 일반 영역의 지갑 어플리케이션으로 전달할 수 있다. 680동작에서, 전자 장치(101)의 프로세서는, 개인 키로 전자 서명된 메시지를 분산형 마켓으로 전송할 수 있다.
도 8은 다양한 실시예에 따른 분산형 네트워크 장치와 전자 장치간의 동작을 도시한다.
도 8을 참조하면, 다양한 실시예에 따르면, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(101))와 분산형 장치(102_는 블록 체인 네트워크에 기반하여 통신할 수 있다. 분산형 장치(102)는 분산형 어플리케이션을 통해 블록 체인 네트워크에 참여하는 다른 노드의 전자 장치일 수 있다.
810 동작에서 전자 장치(101)는 분산형 장치(102)와 연결된 블록 체인에 접속 요청을 분산형 장치(102)로 전송할 수 있다.
820 동작에서 분산형 장치(102)는 전자 장치(101)의 접속 요청에 응답하여 전자 장치(101)의 계정 정보로 블록 체인 네트워크로 연결할지 여부를 요청하는 확인 요청을 전자 장치(101)로 요청할 수 있다. 전자 장치(101)는 분산형 장치(102)에서 요청된 정보를 디스플레이에 출력하고, 사용자로부터 승인 입력을 수신할 수 있다.
825 동작에서, 분산형 장치(102)는 전자 장치(101)의 계정 정보로의 연결 승인에 응답하여 블록 체인 네트워크의 이용자 등록 요청을 전자 장치(101)로 전송할 수 있다. 전자 장치(101)는 이용자 등록 요청에 대한 정보를 디스플레이에 출력하고, 이용자 등록 정보 및 사용자 승인 입력을 수신할 수 있다.
830 동작에서, 전자 장치(101)는 이용자 등록에 대한 정보 및 사용자 승인 정보를 분산형 장치(102)로 전송할 수 있다. 일 예를 들어, 825 동작 및 830 동작은, 블록 체인 네트워크 최초 접속 시 수행되는 동작일 수 있으며, 사용자 등록 후 820 및 830 동작은 생략될 수 있다.
840 동작에서 분산형 장치(102)는 블록 체인의 참여자인지를 검증하기 위해 서명 요청 메시지를 전자 장치(101)로 전송할 수 있다. .
일 예를 들어, 전자 장치(101)는 암호 화폐 지갑 어플리케이션 및 블록 체인 관리 소프트웨어를 구동하여 일반 영역과 보안 영역 사이에서의 메시지 교환을 수행할 수 있다. 암호 화폐 지갑 어플리케이션은 블록 체인 관리 소프트웨어((430)과 메시지 교환을 위한 통신 키트 소프트웨어(예: extension kit)를 포함할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 암호 화폐 지갑 어플리케이션에서 계정 생성 시 계정에 대응하는 공개 키를 분산형 장치(102)로 전송할 수 있다. 분산형 장치(102)는 전자 장치 계정에 대응하는 공개 키를 저장할 수 있다. 예를 들어, 블록 체인 데이터 베이스에는 블록 체인 네트워크에 참여하는 모든 노드에 대한 공개 키 정보가 저장될 수 있다.
830 동작에서 전자 장치(101)는 보안 영역에서 사용자 인증 입력을 확인할 수 있다. 전자 장치(101)는 서명 요청 메시지가 수신되면, 블록 체인 관리 소프트웨어를 구동하여 보안 영역에서 생성된 사용자 인증 요청 화면을 디스플레이에 출력하고, 사용자로부터 사용자 인증 입력을 수신할 수 있다. 보안 영역에서 수신된 사용자 인증 입력은 암호화되어 처리될 수 있다.
840 동작에서, 전자 장치(101)는 보안 영역에 저장된 개인 키를 기반으로 메시지에 대해 전자 서명을 수행하여 전자 서명된 메시지를 생성할 수 있다. 전자 서명된 메시지는 메시지에 전자 서명을 하기 위한 전자 서명 알고리즘을 적용할 수 있다. 예를 들어, 전자 서명 알고리즘은 타원곡선암호화 알고리즘일 수 있으나, 이에 한정하는 것은 아니다. 전자 서명 알고리즘은 메시지에 개인 키를 적용할 수 있다.
850 동작에서, 전자 장치(101)는 전자 서명된 메시지를 분산형 장치(102)로 전달할 수 있다. 860 동작에서, 분산형 장치(102)는 메시지에 포함된 전자 서명을 기반으로 사용자 검증하고 전자 장치(101)의 접속을 허용할 수 있다. 개인 키는 공개 키와 한 쌍으로 이루어져 있으므로 분산형 장치(102)는 개인 키를 기반으로 공개 키와 비교하여 개인 키에 대한 검증을 수행할 수 있다.
일 예를 들어, 분산형 장치(102)는, 개인 키로 전자 서명된 메시지에서 파라메터 값(또는 해시값) 을 추출하고, 타원곡선알고리즘의 복호화 과정을 통해 서명자의 주소(예: 계정 정보)를 추출하고, 추출된 정보 중 서명한 주체의 주소정보를 검증하기 위한 값을 통해 블록체인 네트워크에서 인증하는 정당한 참여자인지를 검증할 수 있다. 예를 들어, 분산형 장치(101)는 예를 들어, 블록 체인 네트워크 에서 Solidity(스마트 계약 작성 언어)에서 디폴트로 지원하는 ecrecover(예: msg, r, s, v) 함수를 통해 공개키와 연관된 주소를 복구하고 이를 기반으로 참여자의 계정을 검증할 수 있다.
870 동작에서, 분산형 장치(102)에 의해 접속 승인이 완료되면 전자 장치(101)는 분산 장치를 통해 블록 체인에 접속하여 블록 체인 서비스를 이용할 수 있다.
다양한 실시예에 따르면, 전자 장치(예: 도 1및 도 2의 전자 장치(101))의 블록 체인 기반의 전자 서명 서비스 방법에 있어서, 전자 장치의 프로세서(예: 도1의 프로세서(120), 도 2의 프로세서(240))가, 일반 OS(예: 도 3 및 도 4의 REE(310))에서 블록 체인에 대응하는 서명 요청 메시지를 수신하는 동작과, 상기 서명 요청 메시지 수신에 응답하여 블록 체인 관리 소프트웨어(예: 도 2의 블록 체인 관리 모듈(245)), 도 4의 블록 체인 관리 소프트웨어(430))를 구동하는 동작과, 상기 블록 체인 서명 관리 소프트웨어를 통해 일반 OS 에서 보안 OS(예: 도 3및 도 4의 TEE(320))로 상기 서명 요청 메시지를 전달하는 동작과, 상기 보안 OS 에서 구동되는 보안 어플리케이션(예: 도 3의 보안 어플리케이션, 도 4의 블록 체인 보안 어플리케이션(440) 및 보안 유저 인터페이스 어플리케이션(450))을 통해 상기 서명 요청 메시지에 대응하는 사용자 인증 요청 화면을 구성하여 디스플레이(예: 도 1의 표시 장치(160), 도 2의 디스플레이(210))에 출력하는 동작과, 상기 전자 서명에 대한 사용자 인증 입력을 수신하는 동작과, 상기 보안 OS에서 사용자 인증 입력에 응답하여 상기 전자 장치에 개인 키를 반영하여 상기 서명 요청 메시지에 전자 서명을 수행하는 동작과 그리고 상기 전자 서명된 메시지를 상기 블록 체인 관리 소프트웨어를 통해 상기 일반 OS에서 동작하는 상기 블록 체인 네트워크와 관련된 어플리케이션(예: 도 4의 블록 체인 네트워크와 관련된 지갑 어플리케이션(420), 도 5의 지갑 어플리케이션(502))으로 전달하는 동작을 포함하고, 상기 보안 OS는 상기 프로세서의 제어 하에, 상기 일반 OS 와 분리되어 운용되는 보안 OS 인 것을 특징으로 할 수 있다.
일 실시예에 따르면, 상기 서명 요청 메시지를 수신하는 동작은, 상기 일반 OS 에서 블록 체인 네트워크에 접속하기 위한 분산형 어플리케이션 또는 블록 체인 네트워크로부터 상기 블록 체인 네트워크와 관련된 어플리케이션으로 상기 서명 요청 메시지를 전달하는 동작과, 상기 블록 체인 네트워크와 관련된 어플리케이션에서 상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 상기 서명 요청 메시지를 전달하는 동작을 더 포함할 수 있다.
일 실시예에 따르면, 상기 전자 서명을 수행하는 동작은, 상기 블록 체인 네트워크 접속, 블록 정보 확인 또는 거래 시 마다 전달되는 메시지에 전자 서명을 수행할 수 있다.
일 실시예에 따르면, 상기 블록 체인 네트워크와 관련된 어플리케이션은, 상기 상기 블록 체인 관리 소프트웨어와 메시지를 교환하기 위한 통신 키트 소프트웨어를 더 포함하고, 상기 블록 체인 관리 소프트웨어를 구동하는 동작은, 상기 블록 체인 관리 소프트웨어와 상기 통신 키트 소프트웨어와 메시지를 교환하는 동작을 더 포함할 수 있다.
일 실시예에 따르면, 상기 블록 체인 관리 소프트웨어를 구동하는 동작은, 상기 보안 OS에서 구동되는 보안 어플리케이션을 통해 상기 전자 장치의 프로세서가 상기 보안 OS에서 상기 블록 체인 네트워크와 관련된 어플리케이션과 연동하여 블록 체인 계정 생성 시 블록 체인에 기반하여 공개 키와 개인 키를 한쌍을 이루어 생성하는 동작; 상기 체인 블록 네트워크로 전달되도록 상기 암호 화폐 지갑 어플리케이션으로 상기 공개 키를 전달하는 동작 및 상기 보안 OS시 운용되는 메모리에 상기 개인 키를 저장하는 동작을 더 포함할 수 있다.
일 실시예에 따르면, 상기 서명 요청 메시지에 전자 서명을 수행하는 동작은, 상기 전자 장치에 설정된 사용자 개인 정보 및 블록 체인 정보를 기반으로 공개 키 및 개인 키가 생성된 경우, 사용자 입증 입력에 대한 정보가 상기 설정된 사용자 개인 정보와 일치할 시 상기 개인 키를 이용해 전자 서명을 수행할 수 있다.
일 실시예에 따르면, 상기 블록 체인에 대응하는 서명 요청 메시지를 수신하는 동작은, 상기 상기 전자 장치의 프로세서가 상기 일반 OS에서 블록 체인 네트워크를 이용하는 서비스 또는 블록 체인 응용 프로그램의 호스트 정보를 요청하는 동작과, 상기 블록 체인 네트워크부터 수신된 블록 체인 호스트 정보를 상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 전달하는 동작을 더 포함할 수 있다.
일 실시예에 따르면, 상기 사용자 인증 요청 화면은, 상기 블록 체인 네트워크 호스트 정보, 블록 체인 메시지 및 인증 수단 객체 중 적어도 하나를 포함하고, 상기 인증 수단 객체는 설정된 비밀번호 인증, 지문 인증, 홍채 인증, 얼굴 인증, 패턴 인증 또는 입력 확인 인증 중 적어도 하나일 수 있다.
일 실시예에 따르면, 상기 사용자 인증 요청 화면을 구성하여 디스플레이에 출력하는 동작은, 호스트 정보를 확인하고 접근을 승인 받기 위한 제1 사용자 인증 요청 화면을 출력하는 동작과, 상기 제1 사용자 인증 요청 화면에 의해 사용자 승인 입력을 수신하는 동작과, 상기 사용자 승인 입력 수신에 응답하여 사용자 인증을 위해 설정된 사용자 개인 정보의 입력을 요청하는 인증 수단 객체를 포함하는 제2 사용자 인증 요청 화면을 출력하는 동작을 더 포함하고 상기 인증 수단 객체는, 설정된 비밀번호 인증, 지문 인증, 페이스 인증, 패턴 인증 또는 홍채 인증 중 적어도 하나일 수 있다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경(modifications), 균등물(equivalents), 또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성 요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어(firmware)로 구현된 유닛(unit)을 포함할 수 있으며, 예를 들면, 로직(logic), 논리 블록(logic block), 부품(component), 또는 회로(circuit) 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine)(예: 전자 장치(101))에 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들(instructions)을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러(compiler) 생성된 코드 또는 인터프리터(interpreter)에 의해 실행될 수 있는 코드(code)를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: CD-ROM, compact disc read only memory)의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
본 명세서와 도면에 개시된 본 발명의 다양한 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
101: 전자 장치
120,240: 프로세서
245: 블록 체인 관리 모듈
420; 블록 체인 네트워크와 관련된 어플리케이션
430: 블록 체인 관리 소프트웨어
310: REE
320: TEE

Claims (20)

  1. 전자 장치에 있어서,
    외부 전자 장치와 무선 통신하는 통신 회로;
    디스플레이;
    메모리 및
    상기 통신 회로, 디스플레이 및 메모리와 전기적으로 연결되는 적어도 하나의 프로세서를 포함하고,
    적어도 하나의 프로세서는, 일반 OS와 보안 OS를 운용하고,
    상기 메모리는, 실행 시에 상기 적어도 하나의 프로세서가,
    상기 일반 OS에서 상기 통신 회로를 통해 블록 체인에 대응하는 서명 요청 메시지를 수신하고, 상기 서명 요청 메시지 수신에 응답하여 블록 체인 관리 소프트웨어를 구동하고,
    상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 서명 요청 메시지를 전달하고,
    상기 보안 OS에서 구동되는 보안 어플리케이션을 기반으로 사용자 인증 요청 화면을 구성하여 상기 디스플레이에 출력하고, 전자 서명에 대한 사용자 인증 입력 수신에 응답하여 상기 메모리에 저장된 개인 키를 반영하여 상기 서명 요청 메시지에 전자 서명을 상기 보안 OS에서 수행하고, 상기 전자 서명된 메시지를 상기 블록 체인 관리 소프트웨어를 통해 상기 일반 OS에서 상기 블록 체인 네트워크와 관련된 어플리케이션으로 전달하도록 하는 인스트럭션들이 저장된 전자 장치.
  2. 제1항에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 블록 체인 네트워크에 참여한 다른 노드와 거래 시에 상기 블록 체인 네트워크와 관련된 어플리케이션으로 전달된 서명 인증 요청 메시지를 상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 전달하고,
    상기 서명 요청 메시지 수신 시마다 상기 보안 OS에서 상기 메모리에 저장된 개인 키를 이용해 전자 서명을 수행하도록 하는 전자 장치.
  3. 제1항에 있어서,
    상기 블록 체인 네트워크와 관련된 어플리케이션은, 보안 OS와 메시지를 교환하기 위한 통신 키트 소프트웨어를 더 포함하고,
    상기 서명 요청 메시지 및 상기 전자 서명된 메시지는
    상기 통신 키트 소프트웨어 및 상기 체인 블록 관리 소프트웨어에 의해 교환되는 것을 특징으로 하는 전자 장치.
  4. 제1항에 있어서,
    상기 보안 OS에서 구동되는 보안 어플리케이션은 ,
    상기 블록 체인 네트워크와 관련된 어플리케이션과 연동하여 암호 화폐 인증에 사용되는 개인 키를 상기 보안 OS시 운용되는 메모리에 저장하고, 상기 보안 OS에서 구동되는 보안 어플리케이션을 실행하여 상기 저장된 개인 키를 반영하여 상기 서명 요청 메시지에 전자 서명을 수행하여 전자 서명된 메시지를 생성하도록 하는 인스트럭션들이 포함되는 전자 장치.
  5. 제4항에 있어서,
    상기 블록 체인 네트워크와 관련된 어플리케이션은 지갑 어플리케이션, 결제 어플리케이션 또는 브라우저 어플리케이션 중 적어도 하나를 포함하고,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 블록 체인 네트워크 계정 생성 시 블록 체인에 기반하여 공개 키 및 개인 키를 한쌍을 이루어 생성하고, 상기 공개 키는 상기 블록 체인 네트워크에 참여하는 다른 노드로 전달되고, 상기 개인 키는 상기 메모리의 보안 영역에 저장되도록 하는 전자 장치.
  6. 제1항에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 보안 OS에서 구동되는 보안 어플리케이션을 통해 상기 전자 장치에 설정된 사용자 개인 정보 및 블록 체인 메시지를 기반으로 암호화 알고리즘을 적용하여 공개 키 및 개인 키를 생성하도록 하고,
    상기 사용자 인증 입력 정보가 상기 사용자 개인 정보와 일치하는 경우 상기 서명 인증 요청 메시지에 전자 서명하도록 하는 전자 장치.
  7. 제1항에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 보안 OS에서 구동되는 보안 어플리케이션을 TEE(trunsted execution environment), TEEGRIS, QSEE (Qualcomm Secure Execution Environment) 또는 트러스트 존 중 하나에서 동작하도록 하는 전자 장치.
  8. 제1항에 있어서,
    상기 블록 체인 관리 소프트웨어는 상기 전자 장치에 내장 또는 설치되거나, 또는 앱스토어를 통해 다운로드되는 오픈 OS에 기반한 응용 프로그램인 것을 특징으로 하는 전자 장치.
  9. 제1항에 있어서,
    상기 블록 체인 네트워크와 관련된 어플리케이션은,
    상기 블록 체인 네트워크와 연결되는 분산형 어플리케이션 또는 블록 체인 네트워크와 통신하여 블록 체인 네트워크를 이용하는 서비스 또는 블록 체인 응용 프로그램의 호스트 정보를 요청하고, 상기 블록 체인 네트워크로부터 전달된 블록 체인 호스트 정보를 보안 OS로 전달하도록 하는 인스트럭션들이 저장된 전자 장치.
  10. 제9항에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 보안 OS에서 구동되는 보안 어플리케이션을 통해 상기 블록 체인 네트워크 호스트 정보, 블록 체인 메시지 및 인증 수단 객체 중 적어도 하나를 포함하여 상기 사용자 인증 요청 화면을 구성하고,
    상기 인증 수단 객체는 설정된 비밀번호 인증, 지문 인증, 페이스 인증, 패턴 인증, 홍채 인증 또는 입력 확인 인증 중 적어도 하나인 것을 특징으로 하는 전자 장치.
  11. 제9항에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 보안 OS에서 구동되는 보안 어플리케이션을 통해 호스트 정보를 확인하고 접근을 승인 받기 위한 제1 사용자 인증 요청 화면을 구성하여 상기 디스플레이에 출력하고, 사용자 승인 입력에 응답하여 사용자 인증을 위해 설정된 사용자 개인 정보의 입력을 요청하는 인증 수단 객체를 포함하는 제2 사용자 인증 요청 화면을 구성하여 상기 디스플레이에 출력하도록 하는 인스트럭션들을 더 포함하고,
    상기 인증 수단 객체는 설정된 비밀번호 인증, 지문 인증, 페이스 인증, 패턴 인증 또는 홍채 인증 중 적어도 하나인 것을 특징으로 하는 전자 장치.
  12. 전자 장치의 블록 체인 기반의 전자 서명 서비스 방법에 있어서,
    전자 장치의 프로세서가 일반 OS 에서 통신 모듈을 통해 블록 체인에 대응하는 서명 요청 메시지를 수신하는 동작;
    상기 서명 요청 메시지 수신에 응답하여 블록 체인 관리 소프트웨어를 구동하는 동작;
    상기 블록 체인 서명 관리 소프트웨어를 통해 상기 일반 OS에서 보안 OS로 상기 서명 요청 메시지를 전달하는 동작;
    상기 보안 OS에서 구동되는 보안 어플리케이션을 통해 상기 서명 요청 메시지에 대응하는 사용자 인증 요청 화면을 구성하여 디스플레이에 출력하는 동작;
    상기 전자 서명에 대한 사용자 인증 입력을 수신하는 동작;
    상기 보안 OS에서 사용자 인증 입력에 응답하여 전자 장치에 저장된 개인 키를 반영하여 상기 서명 요청 메시지에 전자 서명을 수행하는 동작; 및
    상기 전자 서명된 메시지를 상기 블록 체인 관리 소프트웨어를 통해 상기 일반 OS에서 동작하는 상기 블록 체인 네트워크와 관련된 어플리케이션으로 전달하는 동작을 포함하고,
    상기 보안 OS는 상기 프로세서의 제어 하에, 상기 일반 OS와 분리되어 운용되는 OS인 것을 특징으로 하는 방법.
  13. 제12항에 있어서,
    상기 서명 요청 메시지를 수신하는 동작은,
    상기 일반 OS 에서 블록 체인 네트워크에 접속하기 위한 분산형 어플리케이션 또는 블록 체인 네트워크로부터 상기 블록 체인 네트워크와 관련된 어플리케이션으로 상기 서명 요청 메시지를 전달하는 동작; 및
    상기 블록 체인 네트워크와 관련된 어플리케이션에서 상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 상기 서명 요청 메시지를 전달하는 동작을 더 포함하는 방법.
  14. 제12항에 있어서,
    상기 전자 서명을 수행하는 동작은,
    상기 블록 체인 네트워크 접속, 블록 정보 확인 또는 거래 시 마다 전달되는 메시지에 전자 서명을 수행하는 것을 특징으로 하는 방법.
  15. 제12항에 있어서,
    상기 블록 체인 네트워크와 관련된 어플리케이션은, 상기 상기 블록 체인 관리 소프트웨어와 메시지를 교환하기 위한 통신 키트 소프트웨어를 더 포함하고,
    상기 블록 체인 관리 소프트웨어를 구동하는 동작은, 상기 블록 체인 관리 소프트웨어와 상기 통신 키트 소프트웨어와 메시지를 교환하는 동작을 더 포함하는 방법.
  16. 제12항에 있어서,
    상기 블록 체인 관리 소프트웨어를 구동하는 동작은,
    상기 보안 OS에서 구동되는 보안 어플리케이션을 통해 상기 전자 장치의 프로세서가 상기 보안 OS에서 상기 블록 체인 네트워크와 관련된 어플리케이션과 연동하여 블록 체인 계정 생성 시 블록 체인에 기반하여 공개 키와 개인 키를 한쌍을 이루어 생성하는 동작;
    상기 체인 블록 네트워크로 전달되도록 상기 암호 화폐 지갑 어플리케이션으로 상기 공개 키를 전달하는 동작; 및
    상기 보안 OS시 운용되는 메모리에 상기 개인 키를 저장하는 동작을 더 포함하는 방법.
  17. 제12항에 있어서,
    상기 서명 요청 메시지에 전자 서명을 수행하는 동작은,
    상기 전자 장치에 설정된 사용자 개인 정보 및 블록 체인 정보를 기반으로 공개 키 및 개인 키가 생성된 경우, 사용자 입증 입력에 대한 정보가 상기 설정된 사용자 개인 정보와 일치할 시 상기 개인 키를 이용해 전자 서명을 수행하는 것을 특징으로 하는 방법.
  18. 제12항에 있어서,
    상기 블록 체인에 대응하는 서명 요청 메시지를 수신하는 동작은,
    상기 상기 전자 장치의 프로세서가 상기 일반 OS에서 블록 체인 네트워크를 이용하는 서비스 또는 블록 체인 응용 프로그램의 호스트 정보를 요청하는 동작; 및
    상기 블록 체인 네트워크부터 수신된 블록 체인 호스트 정보를 상기 블록 체인 관리 소프트웨어를 통해 상기 보안 OS로 전달하는 동작을 더 포함하는 방법.
  19. 제18항에 있어서,
    상기 사용자 인증 요청 화면은, 상기 블록 체인 네트워크 호스트 정보, 블록 체인 메시지 및 인증 수단 객체 중 적어도 하나를 포함하고,
    상기 인증 수단 객체는 설정된 비밀번호 인증, 지문 인증, 홍채 인증, 얼굴 인증, 패턴 인증 또는 입력 확인 인증 중 적어도 하나인 것을 특징으로 하는 방법.
  20. 제18항에 있어서,
    상기 사용자 인증 요청 화면을 구성하여 디스플레이에 출력하는 동작은,
    호스트 정보를 확인하고 접근을 승인 받기 위한 제1 사용자 인증 요청 화면을 출력하는 동작; 및
    상기 제1 사용자 인증 요청 화면에 의해 사용자 승인 입력을 수신하는 동작; 및
    상기 사용자 승인 입력 수신에 응답하여 사용자 인증을 위해 설정된 사용자 개인 정보의 입력을 요청하는 인증 수단 객체를 포함하는 제2 사용자 인증 요청 화면을 출력하는 동작을 더 포함하고
    상기 인증 수단 객체는, 설정된 비밀번호 인증, 지문 인증, 페이스 인증, 패턴 인증 또는 홍채 인증 중 적어도 하나인 것을 특징으로 하는 전자 장치.
KR1020190019534A 2019-02-19 2019-02-19 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법 KR20200101211A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190019534A KR20200101211A (ko) 2019-02-19 2019-02-19 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법
PCT/KR2020/002312 WO2020171538A1 (en) 2019-02-19 2020-02-18 Electronic device and method for providing digital signature service of block chain using the same
US16/794,557 US20200265418A1 (en) 2019-02-19 2020-02-19 Electronic device and method for providing digital signature service of block chain using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190019534A KR20200101211A (ko) 2019-02-19 2019-02-19 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법

Publications (1)

Publication Number Publication Date
KR20200101211A true KR20200101211A (ko) 2020-08-27

Family

ID=72043456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190019534A KR20200101211A (ko) 2019-02-19 2019-02-19 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법

Country Status (3)

Country Link
US (1) US20200265418A1 (ko)
KR (1) KR20200101211A (ko)
WO (1) WO2020171538A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022098015A1 (ko) * 2020-11-04 2022-05-12 삼성전자 주식회사 내부 데이터가 포함된 트랜잭션을 생성하는 전자 장치 및 이의 동작 방법
KR20220128812A (ko) * 2021-03-15 2022-09-22 블록체인랩스 주식회사 백신 접종 디지털 인증서를 발급하고 증명하는 방법 및 그 시스템
WO2023106594A1 (ko) * 2021-12-08 2023-06-15 삼성전자 주식회사 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법
KR102612243B1 (ko) * 2022-09-23 2023-12-11 주식회사 개런터블 가상화폐 지갑 연동 방법 및 이를 수행하는 서버

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020035093A2 (en) * 2019-11-13 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. Dynamic blockchain data storage based on error correction code
WO2021175112A1 (en) * 2020-03-04 2021-09-10 Ebatte Holdings Limited Method for tracking and managing a power supplying device via a blockchain-based system
CN116194939A (zh) * 2020-11-04 2023-05-30 三星电子株式会社 用于生成包括内部数据的交易的电子装置及其操作方法
CN112950196A (zh) * 2021-03-11 2021-06-11 杭州复杂美科技有限公司 一种区块链钱包系统及其使用方法、设备、储存介质
CN113592484A (zh) * 2021-07-16 2021-11-02 支付宝(杭州)信息技术有限公司 一种账户的开立方法、系统及装置
CN114095505B (zh) * 2021-11-26 2023-04-11 四川启睿克科技有限公司 多usb设备区块链认证方法
CN115150149B (zh) * 2022-06-28 2024-01-30 北京送好运信息技术有限公司 一种基于区块链技术的电子邮箱管理多种数字通证的方法
WO2024056970A1 (fr) * 2022-09-16 2024-03-21 Ledger Antenne à fente comprenant un injecteur de signal radiofréquence à électrodes et dispositif comprenant une telle antenne
FR3139930A1 (fr) * 2022-09-16 2024-03-22 Ledger Dispositif électronique portatif empilable comprenant une antenne Bluetooth auto adaptative ayant deux axes de rayonnement.

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005052769A1 (ja) * 2003-11-28 2005-06-09 Matsushita Electric Industrial Co.,Ltd. データ処理装置
US10592898B2 (en) * 2012-09-12 2020-03-17 Zukunftware, Llc Obtaining a signature from a remote user
KR101628615B1 (ko) * 2015-04-17 2016-06-08 (주)에이티솔루션즈 보안운영체제를 이용한 안심서명 제공 방법
KR20160124336A (ko) * 2015-04-17 2016-10-27 주식회사 비즈모델라인 보안운영체제를 이용한 전자서명 제공 방법
KR101628614B1 (ko) * 2015-04-17 2016-06-08 (주)에이티솔루션즈 보안운영체제를 이용한 전자서명 처리 방법
US20160379212A1 (en) * 2015-06-26 2016-12-29 Intel Corporation System, apparatus and method for performing cryptographic operations in a trusted execution environment
US11282137B2 (en) * 2016-10-07 2022-03-22 The Toronto-Dominion Bank Secure element method for distributed electronic ledger
US11831409B2 (en) * 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
US11057366B2 (en) * 2018-08-21 2021-07-06 HYPR Corp. Federated identity management with decentralized computing platforms

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022098015A1 (ko) * 2020-11-04 2022-05-12 삼성전자 주식회사 내부 데이터가 포함된 트랜잭션을 생성하는 전자 장치 및 이의 동작 방법
KR20220128812A (ko) * 2021-03-15 2022-09-22 블록체인랩스 주식회사 백신 접종 디지털 인증서를 발급하고 증명하는 방법 및 그 시스템
WO2023106594A1 (ko) * 2021-12-08 2023-06-15 삼성전자 주식회사 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법
KR102612243B1 (ko) * 2022-09-23 2023-12-11 주식회사 개런터블 가상화폐 지갑 연동 방법 및 이를 수행하는 서버

Also Published As

Publication number Publication date
WO2020171538A1 (en) 2020-08-27
US20200265418A1 (en) 2020-08-20

Similar Documents

Publication Publication Date Title
KR20200101211A (ko) 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법
US11621855B2 (en) Electronic device and method for managing blockchain address using the same
JP6705064B1 (ja) ブロックチェーンノード通信方法および装置
CN107592964B (zh) 用于设备的所有权的多所有者转移的系统、装置和方法
CN109951489B (zh) 一种数字身份认证方法、设备、装置、系统及存储介质
US9386045B2 (en) Device communication based on device trustworthiness
US20220141036A1 (en) Electronic authentication device and method using blockchain
KR20190111042A (ko) 블록체인 노드들 간의 통신을 위한 방법, 장치와 전자 디바이스, 및 블록체인 기반 인증서 관리를 위한 방법, 장치와 전자 디바이스
US20140298412A1 (en) System and Method for Securing a Credential via User and Server Verification
TW202131257A (zh) 用於驗證對安全裝置功能性之線上存取之方法
US11496900B2 (en) Electronic device and method for storing user identification information
KR20210017083A (ko) 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법
JP6552714B2 (ja) データ処理方法およびシステム、ならびにウェアラブル電子デバイス
US20220239509A1 (en) Method for storing and recovering key for blockchain-based system, and device therefor
KR102616421B1 (ko) 생체 인증을 이용한 결제 방법 및 그 전자 장치
JP2022527798A (ja) 効率的なチャレンジ応答認証のためのシステム及び方法
TW202137199A (zh) 生物支付設備的認證方法、裝置、電腦設備和儲存媒體
KR102436485B1 (ko) 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법
CN114450663A (zh) 使用安全集成电路来更新固件的电子装置及其操作方法
CN116547959A (zh) 通过使用区块链网络共享数据的电子装置及其运行方法
CN111431840A (zh) 安全处理方法和装置
CN115362461A (zh) 用于向区块链账户发送加密货币的电子装置和用于运行该电子装置的方法
CN115104283A (zh) 电子设备和用于在电子设备中执行对等服务的方法
EP4044500B1 (en) Electronic device for ensuring integrity of electronic device intrinsic information, and operating method therefor
TWI696963B (zh) 票證發行與入場驗證系統與方法及使用於票證發行與入場驗證系統之用戶終端裝置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal