KR20210049421A - 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템 - Google Patents

블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템 Download PDF

Info

Publication number
KR20210049421A
KR20210049421A KR1020190133709A KR20190133709A KR20210049421A KR 20210049421 A KR20210049421 A KR 20210049421A KR 1020190133709 A KR1020190133709 A KR 1020190133709A KR 20190133709 A KR20190133709 A KR 20190133709A KR 20210049421 A KR20210049421 A KR 20210049421A
Authority
KR
South Korea
Prior art keywords
terminal
request
information
identification information
blockchain
Prior art date
Application number
KR1020190133709A
Other languages
English (en)
Other versions
KR102355708B1 (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 KR1020190133709A priority Critical patent/KR102355708B1/ko
Publication of KR20210049421A publication Critical patent/KR20210049421A/ko
Application granted granted Critical
Publication of KR102355708B1 publication Critical patent/KR102355708B1/ko

Links

Images

Classifications

    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 일 실시예에 따른 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법은, 식별 정보 및 요청 정보를 포함하는 메시지와, 메시지의 적어도 일부가 암호화된 정보를 포함하는 요청(request)을 단말로부터 수신하는 단계; 식별 정보에 대응되는 블록체인 주소 정보를 이용하여 암호화된 정보의 복호화를 수행하는 단계; 및 복호화의 결과에 기초하여 암호화된 정보가 블록체인 주소 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우 요청의 처리를 승인할 지의 여부를 결정하는 단계를 포함할 수 있다.

Description

블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템{METHOD FOR PROCESSING REQUEST BASED ON USER AUTHENTICATION USING BLOCKCHAIN KEY AND SYSTEM APPLYING SAME}
본 발명은 단말로부터의 수신한 요청(request)을 처리함에 있어서, 블록체인 키 기술을 이용하여 해당 요청의 정당성을 판단하고, 정당성 판단의 결과에 기초하여 요청(request)에 포함된 로그인, 인증, 결제 등의 동작을 처리하는 방법 및 상기 방법이 적용된 시스템에 관한 것이다.
생활수준의 향상과 정보통신 기술의 발달에 힘입어, 다수의 사람들이 개인용 컴퓨터(personal computer) 혹은 휴대용 전화기(cell phone)와 같은 개인용의 단말을 소지하여 사용하고 있다. 이와 같은 단말은 네트워크를 통하여 서버(server)와 연결되며, 서버로부터 다양한 서비스 혹은 콘텐츠를 제공받을 수 있다.
이러한 서비스 혹은 콘텐츠 제공과 관련된, 단말로부터의 요청(예컨대, 로그인, 성인 인증, 결제, 이체 요청 등)을 처리함에 있어서, 서버는 단말 혹은 사용자가 상기 요청을 할 수 있는 정당한 권한을 갖는지를 판단, 즉, 단말 혹은 사용자가 정당한 지의 여부를 확인해야 할 필요가 있다. 이와 같은 인증 방법의 가장 일반적인 예로서, 사용자가 정한 패스워드(password)를 이용한 방법을 들 수 있다. 서버는 사용자가 정한 패스워드를 가입 시 저장하고, 이후 단말로부터 입력된 패스워드가 올바른 지를 비교하여, 입력된 패스워드가 일치할 경우 정당한 사용자에 의한 요청이 수신된 것으로 확인할 수 잇다.
하지만, 기존의 인증 방식으로 사용되는 패스워드는 서버에도 저장된다는 점, 사용자가 패스워드 입력 시나 전송 시에 탈취가 가능하다는 점 등의 취약점을 이용한 다양한 해킹 방법이 등장하여 보안이 취약하다는 문제가 제기되고 있다. 예를 들어, 일반적으로 패스워드는 서비스를 제공하는 주체인 서버에도 저장되어 있기 때문에 서버가 해킹되는 경우, 사용자의 개인정보가 유출되거나 금전적인 피해가 발생할 수 있다. 또한, 특정 프로젝트를 수행하는 다수의 그룹원이 정보나 계획을 공유하기 위해 동일한 계정을 사용하여 패스워드를 공유하는 경우에는, 그룹원 간의 기술적 인증 수단 없이, 단순하게 구두, 메모, 메신저 등 보안이 이루어지지 않는 수단을 통해 비밀번호를 공유하는 경우가 많아, 비밀번호가 유출되어 프로젝트의 기밀이 외부로 유출될 위험이 존재한다.
본 발명이 해결하고자 하는 과제는, 블록체인 키 기술을 이용하여 정당한 사용자임을 인증할 수 있는 수단을 기본적으로 서버가 아닌 정당한 사용자만 보관할 수 있게 하고, 이를 통해 정당한 사용자만이 서버에 특정한 요청을 수행할 수 있도록 하는, 보다 안전하고 효과적인 인증 방법이 적용된 시스템을 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 서버에 의해 수행되는 인증 방법은, 식별 정보 및 요청 정보를 포함하는 메시지와, 상기 메시지의 적어도 일부가 암호화된 정보를 포함하는 요청을, 단말로부터 수신하는 단계, 상기 식별 정보에 대응되는 블록체인 주소 정보를 이용하여 상기 암호화된 정보의 복호화를 수행하는 단계 및 상기 복호화의 결과에 기초하여 상기 암호화된 정보가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우 상기 요청의 처리를 승인할 지의 여부를 결정하는 단계를 포함할 수 있다.
또한, 상기 결정하는 단계는, 상기 암호화된 정보가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우 상기 요청의 처리를 승인하는 단계를 포함할 수 있다.
또한, 상기 결정하는 단계는, 상기 암호화된 정보를 상기 식별 정보에 대응되는 블록체인 주소 정보를 이용하여 복호화할 때 도출되는 값이 소정의 값과 동일할 경우, 상기 암호화된 정보가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단하는 단계를 더 포함할 수 있다.
또한, 상기 식별 정보는, 상기 단말을 특정하거나, 상기 단말의 사용자를 특정하기 위한 정보이고, 상기 요청 정보는, 상기 서버에 의해 승인되어 수행되는 상기 단말의 동작에 관한 정보로서, 상기 동작은 로그인, 인증 및 결제 동작 중 적어도 하나를 포함할 수 있다.
또한, 상기 방법은, 상기 수신하는 단계의 이전에, 상기 식별 정보, 상기 식별 정보에 대응되는 블록체인 주소 정보 및 암호화된 검증 정보를 상기 단말로부터 제공받는 단계 및 상기 암호화된 검증 정보가, 상기 식별 정보에 대응되는 블록체인 주소 정보를 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우, 상기 제공받은 블록체인 주소 정보를 상기 식별 정보에 매칭시켜 상기 서버에 저장하는 단계를 포함할 수 있다.
또한, 상기 결정하는 단계는, 상기 복호화의 결과에 더하여, 상기 요청과 함께 획득된 추가 인증 수단에 기초한 추가 인증이 성공적인지의 여부에 기초하여 상기 요청의 처리를 승인할 지의 여부를 결정하는 단계를 포함할 수 있으며, 상기 추가 인증 수단은, 상기 단말의 접속 IP 주소(internet protocol address), 상기 단말의 접속 시간, 상기 단말의 OS(operating system)의 종류, 생체 인증 데이터, 패스워드(password) 및 개인 식별 번호(personal identification number, PIN) 중 적어도 하나를 포함할 수 있다.
또한, 상기 방법은, 상기 결정하는 단계의 결과, 상기 요청의 처리를 승인하지 않는 것으로 결정하여야 할 경우, 상기 식별 정보에 기 매칭된 수신처로 알림을 발송하는 단계를 더 포함할 수 있다.
또한, 상기 방법은, 상기 알림에 대한 회신을 수신하는 단계 및 상기 수신된 회신의 내용에 기초하여, 상기 요청의 처리를 승인하거나 거부하는 단계를 더 포함할 수 있다.
또한, 상기 방법은, 상기 수신된 회신의 내용에 기초하여, 상기 요청과는 상이한, 상기 단말로부터의 이후의 다른 요청은 상기 알림의 발송 없이 자동적으로 거부되도록 설정하는 단계를 더 포함할 수 있다.
또한, 상기 방법은, 상기 단말과 상이한 다른 단말로부터, 상기 식별 정보에 대응되는 블록체인 비밀키의 사용에 대한 신청을 수신하는 단계, 상기 신청이 정당한지의 여부를 소정의 기준에 의해 판정하는 단계 및 상기 신청이 정당하다고 판정될 경우, 상기 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 상기 서버를 거치지 않고 상기 다른 단말로 전송하도록, 상기 단말을 제어하는 단계를 더 포함할 수 있다.
또한, 상기 제어하는 단계는, 상기 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 P2P(peer-to-peer) 통신을 통하여 상기 다른 단말로 전송하도록, 상기 단말을 제어하는 단계를 포함할 수 있다.
또한, 상기 방법은, 상기 식별 정보를 포함하는, 상기 요청과는 상이한 다른 요청을, 상기 다른 단말로부터 수신하는 단계, 상기 식별 정보에 대응되는 블록체인 주소 정보를 이용하여, 상기 다른 요청에 포함된 암호화된 정보의 복호화를 수행하는 단계 및 상기 다른 요청에 포함된 상기 암호화된 정보가, 상기 다른 요청에 포함된 메시지의 적어도 일부가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우, 상기 다른 요청의 처리를 승인하는 단계를 더 포함할 수 있다.
또한, 상기 판정하는 단계는, 상기 다른 단말로부터, 상기 식별 정보에 대한 지정을 받는 단계, 상기 지정에 기초하여, 상기 다른 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 사용하는 것을 허용할 지의 여부에 대한 질의를, 상기 식별 정보에 기 매칭된 수신처로 전송하는 단계, 상기 질의에 대한 회신을 수신하는 단계 및 상기 수신된 회신에 기초하여, 상기 신청이 정당한지의 여부를 판정하는 단계를 포함할 수 있다.
또한, 상기 방법은, 상기 단말과 상이한 다른 단말로부터 상기 다른 단말이 생성한 제2 블록체인 주소를 수신하는 단계, 상기 다른 단말이 생성한 제3 블록체인 주소를 수신한 상기 단말로부터 상기 제3 블록체인 주소를 수신하는 단계, 상기 제2 블록체인 주소 및 상기 제3 블록체인 주소가 동일한 경우, 상기 단말과 상기 다른 단말의 식별 정보를 비교하거나 또는 상기 단말에 상기 다른 단말에 대해 질의하여 사용자의 동일성을 검증하는 단계 및 상기 검증을 기초로 상기 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 상기 서버를 거치지 않고 상기 다른 단말로 전송하도록 상기 단말을 제어하는 단계를 더 포함할 수 있다.
또한, 상기 방법은, 상기 다른 단말로부터, 상기 다른 단말에 대응되는 블록체인 주소를 수신하는 단계를 더 포함할 수 있으며, 상기 다른 단말에 대응되는 블록체인 주소는, 임의의 암호화된 정보가 상기 다른 단말에 대응되는 블록체인 비밀키를 이용하여 암호화된 것인지의 여부를 판단하는 데 이용될 수 있다.
또한, 상기 제어하는 단계는, 상기 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 상기 다른 단말에 대응되는 블록체인 주소로 암호화하여 상기 다른 단말로 전송하도록, 상기 단말을 제어하는 단계를 포함할 수 있다.
또한, 상기 다른 단말에 대응되는 블록체인 주소는 상기 서버로부터 상기 단말에 제공되며, 상기 다른 단말에 대응되는 블록체인 비밀키는 상기 다른 단말에 저장되어 있을 수 있다.
본 발명의 일 실시예에 따른, 인증 절차에 기초하여 단말로부터의 요청을 처리하는 서버는, 명령어를 저장하는 메모리와, 상기 명령어를 실행하도록 구성된 프로세서를 포함하되, 상기 명령어는 실행될 때, 상기 프로세서로 하여금, 식별 정보 및 요청 정보를 포함하는 메시지와, 상기 메시지의 적어도 일부가 블록체인 비밀키를 이용하여 암호화됨으로써 생성된 정보인 암호화된 정보를 포함하는 요청을 단말로부터 수신하는 동작, 상기 식별 정보에 대응되는 블록체인 주소 정보를 이용하여 상기 암호화된 정보의 복호화를 수행하는 동작 및 상기 복호화의 결과에 기초하여 상기 암호화된 정보가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우 상기 요청의 처리를 승인할 지의 여부를 결정하는 동작을 수행하도록 할 수 있다.
본 발명의 일 실시예에 따르면, 비공개 데이터인 블록체인 비밀키와 공개 데이터인 블록체인 주소를 이용한 암호화 및 복호화를 이용하여, 단말 혹은 사용자에 대한 인증을 안전하고 효과적으로 수행할 수 있으며, 부정한 인증 시도가 있을 경우 정당 사용자에게 이를 통지함으로써, 부정 인증으로 인한 피해를 미연에 방지할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 인증에 이용되는 비공개 데이터인 블록체인 비밀키가 서버를 거치지 않고 인증을 거친 다른 단말에 직접 전송될 수 있도록 하며, 이때 전송은 비밀키 공유 대상인 단말끼리만 아는 블록체인 주소 정보를 이용한 암호화를 통해 전송되고, 그 복호화는 공유 대상인 단말만이 보유하는 비밀키를 통해서만 가능하기에, 공유 과정에서의 탈취에 대한 보안성 또한 대폭 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른, 블록체인 기술을 이용한 인증 방법이 적용된 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른, 블록체인 기술을 이용한 인증 방법의 각 단계를 도시한 도면이다.
도 3a 및 3b는 본 발명의 일 실시예에 따른, 블록체인 기술을 이용한 인증 방법의 적용 예시를 설명하기 위한 도면이다.
도 4는 본 발명의 추가 실시예에 따른, 블록체인 기술을 이용한 인증 방법의 각 단계를 도시한 도면이다.
도 5는 본 발명의 또 다른 추가 실시예에 따른, 블록체인 기술을 이용한 인증 방법의 각 단계를 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 가입자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른, 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법이 적용된 시스템의 구성을 도시한 도면이다. 도 1의 시스템(10)은 서버(20), 제1 단말(100) 및 제2 단말(200)을 포함할 수 있다. 단, 도 1의 시스템(10)의 세부 구성은 본 발명의 일 실시예에 불과하므로, 도 1에 의해 본 발명의 기술적 사상이 제한적으로 해석되는 것은 아니다. 예컨대, 제1 단말(100) 및 제2 단말(200) 외의 또 다른 사용자 단말이 시스템(10)에 존재할 수 있다. 또한, 시스템(10)은 도 1에 도시된 구성 외에도, 서버 및 사용자 단말로 구성된 시스템이 포함할 수 있는 것으로서 통상의 기술자에게 자명한 구성을 더 포함할 수 있다.
서버(20)는 프로세서(processor) 및 메모리(memory)를 포함할 수 있으며, 프로세서는 메모리에 저장되어 있는 명령어를 실행함으로써, 상기 명령어에 기초한 일련의 동작을 수행할 수 있다. 제1 단말(100) 및 제2 단말(200)은 스마트폰(smartphone)과 같은 이동 단말일 수 있으나, 개인용 컴퓨터(personal computer)와 같은 비이동식 단말일 수도 있으며, 메모리나 프로세서와 같은 하드웨어 컴포넌트를 포함할 수 있음은 주지의 사실이다. 서버(server) 및 단말(terminal)이라는 개념은 통상의 기술자에게 자명한 것이므로, 서버(20), 제1 단말(100) 및 제2 단말(200)의 하드웨어적 구현에 대해서는 더 이상의 자세한 설명을 생략하도록 한다.
서버(20)는 제1 단말(100)이나 제2 단말(200)과 같은 사용자 단말에게 서비스와 콘텐츠 등을 제공할 수 있다. 제1 단말(100) 및 제2 단말(200)은 서버(20)와 네트워크를 통해 각각 연결되며, 이와 같은 네트워크는 유/무선 여부와 상관없이 현존하는 모든 종류의 네트워크가 될 수 있다.
제1 단말(100)과 제2 단말(200)과 같은 사용자 단말은, 서버(20)로부터 서비스 혹은 콘텐츠를 제공받는 것과 관련하여, 다양한 유형의 요청(예컨대, 로그인 요청, 성인 인증 요청, 결제 요청 및 이체 요청 등)을 서버(20)로 전송할 수 있다. 서버(20)는 이와 같은 사용자 단말로부터 전송된 요청을 승인할 지의 여부를 결정하기 위해, 상기 요청이 정당하게 이루어졌는지를 인증할 수 있다. 이와 관련하여, 본 발명의 일 실시예에서는, 비공개 데이터인 블록체인 비밀키와 공개 데이터인 블록체인 주소를 이용한 암호화 및 복호화를 이용하여, 이와 같은 인증 절차를 수행할 수 있다.
이하에서는, 본 발명의 일 실시예에 따른 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법에 대해 구체적으로 살펴보도록 한다.
도 2는 본 발명의 일 실시예에 따른, 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법의 각 단계를 도시한 도면이다. 도 2의 방법은 도 1의 서버(20) 및 제1 단말(100)에 의해 수행될 수 있다. 단, 도 2에 도시된 방법은 본 발명의 일 실시예에 불과하므로 도 2에 의해 본 발명의 사상이 한정 해석되는 것은 아니고, 도 2에 도시된 방법의 각 단계는 경우에 따라 도면과 그 순서를 달리하여 수행될 수 있음은 물론이며, 이러한 점은 이후의 도 4에 대해서도 같다. 또한, 도 2 및 4의 방법은 서버(20), 제1 단말(100) 및 제2 단말(200)에 애플리케이션 프로그램을 설치하는 방법을 통해 구현될 수 있으며, 보다 구체적으로는 SDK(software development kit), API(application programming interface) 등을 통해 구현될 수 있다.
또한, 도 2의 방법은 제1 단말(100) 혹은 제1 단말(100)의 사용자를 식별하기 위한 식별 정보나, 상기 식별 정보에 대응되는 블록체인 주소 및 블록체인 비밀키 등, 인증 과정에 필요한 정보들이 서버(20) 혹은 제1 단말(100)에 구비되어 있는 상태에서 수행된다는 가정 하에 설명을 진행하도록 한다. 도 2의 각 단계 수행을 위한 사전 절차에 관해서는 아래에서 도 4를 통하여 살펴보도록 한다.
우선 제1 단말(100)은, 서버(20)로 송신될 요청을 생성할 수 있다(S101). 이와 같은 요청의 종류로는 앞서 설명한 바와 같이 다양한 것들이 있을 수 있으나, 이하에서는 제1 단말(100)이 생성한 요청이 로그인 요청임을 가정하고 설명하도록 한다. 제1 단말(100)이 생성한 요청은, 식별 정보 및 요청 정보를 포함하는 메시지와, 상기 메시지의 전부 혹은 일부가 암호화됨으로써 생성된 정보인 암호화된 정보를 포함할 수 있다.
메시지에 포함된 정보 중, 식별 정보는 제1 단말(100) 혹은 제1 단말(100)의 사용자를 식별하기 위한 정보로서, 가장 일반적으로 생각할 수 있는 예에 의하면 제1 단말(100)의 사용자가 자신을 나타내기 위한 고유 정보인 ID(identification)일 수 있다. 이와 달리, 식별 정보는 사용자가 아닌 장치, 즉 제1 단말(100)을 나타내는 고유 정보일 수도 있으며, 이 경우 제1 단말(100)의 디바이스 ID, UUID(universally unique identifier), 디바이스 OS(operating system)의 식별번호 등이 될 수 있다. 물론, 제1 단말(100)과 사용자 모두를 나타내는 식별 정보가 이용될 수도 있을 것이다.
요청 정보는 요청의 구체적인 내용을 포함할 수 있다. 예컨대, 요청 정보는 메시지에 포함된 식별 정보로 서버(20)에 로그인하고자 한다는 취지를 포함할 수 있다.
제1 단말(100)은, 상기 메시지의 전부 혹은 일부로부터 암호화된 정보를 생성할 수 있으며, 이와 같은 암호화된 정보는 패스워드와 같은 고전적인 인증 수단을 대신할 수 있다. 제1 단말(100)은 상기 암호화된 정보를 생성함에 있어서, 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화할 수 있다.
여기서, 블록체인 비밀키 및 블록체인 주소를 이용한 암호화 및 복호화에 대해 설명하도록 한다. 어떤 암호화된 데이터가 있다고 가정할 때, 상기 암호화된 데이터가 특정 블록체인 비밀키를 이용하여 암호화된 것인지를 검증해야 할 필요가 있을 수 있다. 이 때, 상기 블록체인 비밀키에 대응되는 블록체인 주소를 이용하면 이와 같은 검증이 가능하며, 이러한 검증에는 공개 키 기반 구조(public key infrastructure, PKI)에 기초한 방식이 사용될 수 있다.
보다 구체적으로, 특정 블록체인 비밀키를 이용하여 암호화된 데이터를, 블록체인 비밀키와 대응되는 블록체인 주소를 이용하여 복호화할 경우, 소정의 값과 동일한 값이 도출된다면 상기 암호화된 데이터가 상기 특정 블록체인 비밀키를 이용하여 암호화된 것이라고 판단할 수 있으며, 이와 반대로 소정의 값과 동일한 값이 도출되지 않는다면 상기 암호화된 데이터가 상기 특정 블록체인 비밀키를 이용하여 암호화된 것이 아니라고 판단할 수 있다.
따라서, 블록체인 비밀키를 이용한 암호화를 "서명", 블록체인 주소를 이용한 복호화를 해당 서명의 "검증"이라고 각각 칭할 수 있다. 특정 블록체인 비밀키를 통한 서명의 검증은, 해당 특정 블록체인 비밀키에 대응되는 블록체인 주소를 이용한 복호화를 통해서만 가능하도록 할 수 있다. 이와 같은 알고리즘은 "비대칭키 암호화 알고리즘"이라 칭해지며, 구체적으로는 RSA, ECDSA 등의 알고리즘이 사용될 수 있다.
한편, 본 문서에 사용되는 용어인 '블록체인 비밀키'는 다양한 비대칭키 암호화 알고리즘에 기반한 비밀키(private key)를 포함할 수 있고, '블록체인 주소 정보'는 다양한 비대칭키 암호화 알고리즘에 기반한 공개키(public key)를 포함할 수 있다. 본 문서에서는 이해의 편의를 위해, 다양한 용어로 불릴 수 있는 용어를 '블록체인 비밀키' 및 '블록체인 주소'의 명칭으로 통일하여 그 개념을 기술하기로 한다.
제1 단말(100)은 식별 정보에 대응되는 블록체인 비밀키를 자신만이 저장하고 있도록 할 수 있으며, 블록체인 비밀키에 대응되는 블록체인 주소는 서버(20)를 비롯한 다른 주체들도 가질 수 있도록 할 수 있다.
이와 같은 방식에 의하면, 제1 단말(100)만이 요청에 포함된 메시지를 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화할 수 있으므로, 상기 식별 정보에 대응되는 블록체인 비밀키는, 요청이 제1 단말(100)에 의해 정당하게 생성되었다는 것을 입증하는 인증 수단으로서의 역할을 할 수 있다. 상기 요청에 대한 검증은 전술한 바와 같이 상기 식별 정보에 대응되는 블록체인 주소를 가진 주체라면 누구든지 가능하다. 이에 따르면, 상기 요청에 포함된 암호화된 정보는 공개된 정보인 블록체인 주소를 통해 누구나 해독이 가능하므로 암호화된 정보 그 자체가 보호될 수는 없지만, 암호화된 정보가 정당한지의 여부를 판별할 수는 있다.
한편, 비공개의 블록체인 비밀키를 이용한 암호화 및 공개된 블록체인 주소를 이용한 복호화를 서명 및 검증, 즉 인증에 이용하는 것과 달리, 반대로 공개된 블록체인 주소를 이용하여 데이터를 암호화하고, 비공개의 블록체인 비밀키를 이용하여 암호화된 데이터를 복호화 하도록 할 수도 있다. 이 경우, 공개되지 않은 블록체인 비밀키를 가진 정당한 사용자만이 암호화된 데이터를 해독할 수 있으므로, 정당하지 않은 사용자는 암호화된 데이터를 입수한다 하더라도 해독이 불가능하며, 결과적으로 암호화된 데이터는 정당하지 않은 사용자로부터 보호될 수 있다.
서버(20)는 제1 단말(100)에 의해 생성된 상기 요청을 제1 단말(100)로부터 수신(예컨대, 제1 단말(100)의 로그인 요청을 수신)할 수 있다(S102). 수신된 요청에 포함된 메시지의 식별 정보에 대응되는 블록체인 주소를 이용하여, 서버(20)는 수신된 요청에 포함된 암호화된 정보를 복호화할 수 있다(S103). 상기 식별 정보에 대응되는 블록체인 주소는 모두에게 공개되어 있으므로, 서버(20)는 상기 블록체인 주소를 직접 저장하고 있을 수도 있고, 필요할 경우 네트워크에 연결된 다른 장치로부터 제공받아 사용할 수도 있다.
복호화의 결과에 기초하여, 서버(20)는 제1 단말(100)로부터 수신된 요청의 처리를 승인할 지의 여부를 결정(예컨대, 제1 단말(100)의 로그인을 허용하거나 불허함)할 수 있다(S104). 보다 구체적으로, 추가적인 인증이 수행되어야 할 것과 같은 다른 조건이 없다면(S105), 서버(20)는 상기 암호화된 정보가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화됨으로써 생성된 것이라고 판단될 경우, 즉 요청이 정당하다고 판단될 경우 상기 요청의 처리를 승인(예컨대, 로그인의 허용)할 수 있다(S106).
반대로, 상기 암호화된 정보가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화됨으로써 생성된 것이 아니라고 판단된다면, 서버(20)는 상기 요청이 정당하지 않은 사용자 혹은 단말에 의해 생성된 것이라고 간주하고, 정당 사용자에게 알림을 발송하는 조치를 취하는 등의 다른 조건이 없다면(S108), 상기 요청의 처리를 거부(예컨대, 로그인의 불허)할 수 있다(S109).
이와 같은 인증 방법은, 패스워드 등 고전적인 인증 수단을 이용하는 종래의 방법에 비해 보안성이 높다는 장점을 가질 수 있다. 예컨대, 패스워드의 경우 정당한 사용자가 패스워드를 입력하는 모습이 정당하지 않은 사용자에게 그대로 노출된다면 그 신뢰성을 상실하게 되지만, 본 발명의 일 실시예에 따른 인증 방법의 경우, 식별 정보에 대응되는 블록체인 비밀키 자체가 제1 단말(100)로부터 유출된다거나 사용자가 제1 단말(100)의 점유를 상실하는 등의 상황이 발생하지 않는 이상, 인증의 신뢰성이 담보될 수 있다.
실시예에 따라서는, 추가 인증 수단이 더 이용될 수 있다. 예컨대, 서버(20)는 상기 복호화의 결과에 더하여, 상기 요청과 함께 획득된 추가 인증 수단에 기초한 추가 인증이 성공적인지의 여부에 기초하여 상기 요청의 처리를 승인할 지의 여부를 결정할 수도 있다(S107). 이와 같은 추가 인증 수단은, 제1 단말(100)의 접속 IP 주소(internet protocol address), 제1 단말(100)의 접속 시간, 제1 단말(100)의 OS(operating system)의 종류, 생체 인증 데이터, 패스워드(password) 및 개인 식별 번호(personal identification number, PIN) 등이 될 수 있으나, 반드시 이에 한정되는 것은 아니다.
추가 인증 수단을 이용할 경우, 서버(20)는 요청을 전송할 정당한 권한이 있는 단말들을 보다 효율적으로 관리할 수 있다. 예컨대, 접속 IP 주소를 추가 인증 수단으로 이용할 경우, 일정 집단(예컨대, 회사나 홈 네트워크) 내에 속해 있는 단말만을 정당한 권한이 있는 단말로 인정할 수 있다. 혹은, 접속 시간을 추가 인증 수단으로 이용할 경우에는, 특정 시간대(예컨대, 평일 업무 시간)에만 요청이 가능하도록 설정할 수도 있을 것이다.
한편, 실시예에 따라, 서버(20)는 상기 복호화의 결과 요청의 처리를 거부해야 하는 상황에서 바로 요청의 처리를 거부하는 대신, 정당한 사용자를 위해 식별 정보에 기 매칭된 수신처로 알림을 발송할 수도 있다(S110). 이 경우, 앞에서 서술한 바와는 달리 제1 단말(100)은 상기 식별 정보에 대응되는 정당한 사용자의 단말이 아닌 것(예컨대, 미등록 디바이스)이므로, 식별 정보에 대응되는 정당한 단말은 따로 있을 수 있으며, 서버(20)는 식별 정보에 기 매칭되어 있는 정당한 단말로 알림을 발송할 수 있다. 혹은, 식별 정보가 단말과 같은 장치가 아닌 특정 사용자를 나타낸다면, 서버(20)는 메일이나 SNS(social network service) 등을 통해 상기 특정 사용자의 계정으로 알림을 보낼 수도 있을 것이다. 이 경우, 알림은 메일, 단문 메시지(short message service, SMS) 혹은 SNS 어플리케이션의 팝업(pop-up) 메시지 등의 형태로 전송될 수 있다.
서버(20)는 상기 알림에 대한 회신을 수신하고, 수신된 회신의 내용이 긍정적인지 부정적인지 확인하며(S111), 확인된 회신의 내용에 기초하여 상기 요청의 처리를 승인하거나 거부할 수 있다. 만일 정당한 사용자가 회신을 통해, 요청이 정당함을 확인(예컨대, 자신이 새롭게 사용하게 된 제1 단말(100)을 통해 상기 요청을 정당하게 전송하였다는 취지의 답변을 함)한다면(즉, 긍정적인 답변을 한다면), 서버(20)는 요청의 처리를 승인할 수 있을 것이다(S106). 이와 달리, 정당한 사용자가 회신을 통해 요청이 정당하지 않다는 취지의 답변을 한다면(즉, 부정적인 답변을 한다면), 서버(20)는 요청의 처리를 거부하게 될 것이다(S109).
한편, 위에서 정당한 사용자로부터 요청이 정당하지 않다는 취지의 회신을 받을 경우, 서버(20)는 제1 단말(100)을 정당하지 않은 단말로 간주하고, 제1 단말(100)로부터의 이후의 다른 요청은 알림 발송 없이 자동적으로 거부되도록 설정할 수도 있다. 즉, 제1 단말(100)이 일종의 블랙리스트(blacklist)에 포함되도록 할 수 있다. 이를 통해, 동일한 부정 단말이 부정한 요청 전송을 복수 회 수행할 때마다 정당한 사용자가 매번 알림을 받게 되는 번거로움이 방지될 수 있다.
도 3a 및 3b는 본 발명의 일 실시예에 따른, 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법의 적용 예시를 설명하기 위한 도면이다. 도 3a 및 3b에 도시된 예시는 모두, 도 2의 방법 중 단계 S110에서 설명하는 알림의 유형이 될 수 있다. 도 3a의 예시는, 제1 단말(100)로부터의 요청이 서버(20)로의 로그인 혹은 접속 허용 요청일 경우의 예시가 될 수 있다. 도 3b의 예시는, 제1 단말(100)로부터의 요청이 결제 요청일 경우의 예시가 될 수 있다.
여기에서는, 도 4의 추가 실시예에 대해 설명하기에 앞서, 도 2의 방법의 수행의 전제가 되는 사전 등록 절차(예컨대, 회원 가입 절차)에 대해 잠시 설명하도록 한다. 즉, 이와 같은 사전 등록 절차는 도 2의 방법이 수행되기 전에 완료되어 있는 것이 바람직하다.
도 2의 방법의 수행을 위해서는, 앞서 설명한 바와 같이, 서버(20)가 식별 정보와, 해당 식별 정보에 대응되는 블록체인 주소 정보를 확보하고 있을 필요가 있다. 서버(20)는 제1 단말(100)이 생성한, 식별 정보 및 상기 식별 정보에 대응되는 블록체인 주소 정보를 제1 단말(100)로부터 제공받음으로써, 상기 제공받은 식별 정보를 포함하는 요청이 수신될 때마다 해당 요청에 포함되어 있는 암호화된 정보를 상기 대응되는 블록체인 주소 정보를 이용하여 복호화하기 위한 준비를 할 수 있다. 상기 식별 정보 및 블록체인 주소 정보는 서버(20)에 계속 저장되어 있는 것이 바람직하겠지만, 필요할 때마다 다른 장치로부터 서버(20)로 제공될 수도 있을 것이다.
한편, 식별 정보 및 상기 식별 정보에 대응되는 블록체인 주소 정보를 제공받을 때, 서버(20)는 암호화된 검증 정보를 제1 단말(100)로부터 함께 제공받을 수 있다. 이와 같은 암호화된 검증 정보는, 제1 단말(100)이 상기 식별 정보에 대응되는 블록체인 주소 정보를 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화하여 생성한 것일 수 있다. 서버(20)는 상기 암호화된 검증 정보를 블록체인 주소 정보를 이용하여 복호화함으로써, 상기 암호화된 검증 정보의 정당성(즉, 상기 식별 정보에 대응되는 블록체인 주소 정보를 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화함으로써 생성된 것인지의 여부)를 판단할 수 있으며, 정당하다고 판단된 경우, 상기 제공받은 블록체인 주소 정보를 상기 식별 정보에 매칭(matching)시켜 서버(20) 혹은 다른 장치에 저장할 수 있다.
도 4는 본 발명의 추가 실시예에 따른, 블록체인 기술을 이용한 인증 방법의 각 단계를 도시한 도면이다. 도 4의 실시예는 기존의 제1 단말(100)에 더하여, 제2 단말(200)을 정당한 권한이 있는 단말로 추가하는 것과 관련된 실시예이다. 예를 들면, 제1 단말(100)(ex. 스마트폰)을 사용하는 사용자가 소지하는 다른 단말인 제2 단말(200)(ex. 태블릿 PC, 데스크탑)을 통해서도 서버(20)에 접속 및 요청하는 경우, 또는 프로젝트를 진행하는 그룹원들이 보유한 제1 단말 내지 제 n 단말(n은 2 이상의 자연수)(ex. 다수의 컴퓨터)을 통해 같은 계정으로 서버(20)에 접속할 수 있도록 하는 경우가 있다. 아울러, 별도의 언급이 없다 하더라도, 도 2와 관련하여 설명된 사항들은 도 4의 실시예에도 적용될 수 있다.
먼저, 서버(20)는 제2 단말(200)로부터, 제1 단말(100) 혹은 제1 단말(100)의 사용자를 나타내는 식별 정보에 대응되는 블록체인 비밀키의 사용에 대한 신청을 수신할 수 있다(S201). 이와 같은 신청은 제1 단말(100)뿐 아니라 제2 단말(200)로도 도 2의 방법을 수행하는 것이 가능해지도록 하기 위한 목적을 갖는다.
서버(20)는 상기 신청이 정당한지의 여부를 소정의 기준에 의해 판정할 수 있다. 우선, 서버(20)는 상기 신청과 관련하여, 제2 단말(200)이 어떠한 식별 정보를 지정하였는지를 알아낼 수 있다(S202). 즉, 제2 단말(200)이 사용하기를 원하는 블록체인 비밀키가, 제1 단말(100) 혹은 제1 단말(100)의 사용자를 나타내는 식별 정보에 대응되는 블록체인 비밀키라는 취지를 알아내야 할 필요가 있다. 이러한 지정을 위한 취지는 상기 신청에 포함되어 있을 수도 있고, 별도의 메시지를 통해 제2 단말(200)로부터 서버(20)에 전달될 수도 있다.
다음으로, 서버(20)는 상기 식별 정보에 대한 지정에 기초하여, 제2 단말(200)이 상기 식별 정보에 대응되는 블록체인 비밀키, 즉 제1 단말(100)을 위한 블록체인 비밀키를 사용하는 것을 허용할 지의 여부에 대한 질의를, 상기 식별 정보에 기 매칭된 수신처로 전송할 수 있다(S203). 이와 같은 수신처는 제1 단말(100)이 될 수 있겠지만, 제1 단말(100)의 사용자의 메일이나 SNS(social network service) 계정일 수도 있다.
서버(20)는 상기 질의에 대한 회신을 수신할 수 있으며(S204), 상기 수신된 회신에 기초하여 제2 단말(200)에 의한 신청이 정당한지의 여부를 판정할 수 있다(S205). 물론 상기 회신은 제1 단말(100)의 사용자에 의해 발송된 것이며, 만일 제1 단말(100)의 사용자가 회신을 통해 거부의 의사를 표시한 경우, 서버(20)는 제2 단말(200)의 신청이 정당하지 않은 것으로 간주하고 제1 단말(100)을 위한 블록체인 비밀키의 신청을 불허할 수 있다(S206).
이와 달리, 제1 단말(100)의 사용자가 회신을 통해 승인의 의사를 표시한 경우, 이는 제2 단말(200)에 의한 신청이 제1 단말(100)의 사용자에 의해 정당하게 이루어졌다는 것을 나타내므로, 서버(20)는 제1 단말(100)이 제2 단말(200)로 제1 단말(100)을 위한 블록체인 비밀키를 전송하도록, 제1 단말(100)을 제어할 수 있다. 이 때, 상기 블록체인 비밀키는 서버(20)를 거치지 않고 제1 단말(100)로부터 제2 단말(200)로, 예컨대 P2P(peer-to-peer) 통신을 통하여 바로 전송될 수 있다. 이와 같이 서버(20)가 중간에 개입되지 않은 단말 간의 블록체인 비밀키 전송에 의해, 블록체인 비밀키의 복제가 종래의 중앙 관리식의 방법에 비해 보다 간편하게 이루어질 수 있다.
또한, 이와 같은 서버(20)를 거치지 않는 단말 간 전송이 이루어진다는 것은, 블록체인 비밀키에 관한 정보가 서버(20)에 저장되지 않는다는 것을 의미하므로, 서버(20)가 해킹당한다 하여도 제1 단말(100)의 블록체인 비밀키는 탈취되지 않기 때문에, 결과적으로 보다 높은 보안성이 달성될 수 있다.
그렇다 해도, 제1 단말(100)로부터 제2 단말(200)로 블록체인 비밀키가 전송될 때 블록체인 비밀키가 탈취됨으로써 부정하게 이용될 수 있다는 우려가 여전히 있을 수 있다. 이에 따라, 본 발명의 일 실시예에서는 제2 단말(200)의 블록체인 주소를 이용하여 제1 단말(100)의 블록체인 비밀키를 암호화하는 방식으로 이러한 문제를 해결하고 있다.
이하에서는 상기 방식에 따른 단계에 대해 설명하도록 한다. 제1 단말(100)과는 별개로, 제2 단말(200) 역시 자신의 고유한 제2 블록체인 주소 및 제2 블록체인 비밀키를 생성할 수 있다(S207). 제2 블록체인 주소는 공개될 수 있으므로, 서버(20)는 제2 단말(200)의 제2 블록체인 주소를 제2 단말(200)로부터 수신할 수 있으나(S208), 이에 반해 비공개 데이터인 제2 단말(200)의 제2 블록체인 비밀키는 제2 단말(200)에만 저장되어 제2 단말(200) 외부로 유출되지 않도록 관리된다.
앞서 설명한 바와 같은 취지로, 제2 단말(200)의 블록체인 비밀키로 암호화된 정보는 제2 단말(200)의 블록체인 주소를 이용하여 복호화될 수 있으며, 제2 단말(200)의 블록체인 주소로 암호화된 정보는 제2 단말(200)의 블록체인 비밀키를 이용하여 복호화될 수 있다. 이에 따라, 제2 단말(200)의 블록체인 주소는, 임의의 암호화된 정보가 제2 단말(200)의 블록체인 비밀키를 이용하여 암호화된 것인지의 여부를 판단하는 데 이용될 수 있으며, 제2 단말(200)의 블록체인 비밀키는, 제2 단말(200)의 블록체인 주소를 이용하여 암호화된 정보를 해독하는 데 이용될 수 있다.
서버(20)는 수신된 제2 단말(200)의 블록체인 주소를 제1 단말(100)로 전송하는 한편(S209), 제1 단말(100)이 자신이 저장하고 있는 자신의 블록체인 비밀키를 제2 단말(200)의 블록체인 주소로 암호화하여 제2 단말(200)로 송신하도록 제1 단말(100)에 명령할 수 있다(S210). 그러면 제1 단말(100)은 제1 단말(100) 자신의 블록체인 비밀키를 제2 단말(200)의 블록체인 주소로 암호화할 수 있으며(S211), 암호화된 제1 단말(100)의 블록체인 비밀키를 제2 단말(200)로 송신할 수 있다(S212).
이와 같이 제2 단말(200)의 블록체인 주소로 암호화된 제1 단말(100)의 블록체인 비밀키는 제2 단말(200)의 블록체인 비밀키를 이용하여서만 정상적으로 복호화할 수 있으므로, 제2 단말(200)의 블록체인 비밀키를 저장하고 있는 제2 단말(200) 외의 다른 주체가 제2 단말(200)의 블록체인 주소로 암호화된 제1 단말(100)의 블록체인 비밀키를 탈취한다 한들, 제2 단말(200)의 블록체인 비밀키를 갖고 있지 않기 때문에, 탈취한 제1 단말(100)의 블록체인 비밀키를 이용할 수 없다. 따라서, 이와 같은 방식에 의하면, 보안성이 더욱 향상될 수 있다.
도 5는 본 발명의 또 다른 추가 실시예에 따른, 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법의 각 단계를 도시한 도면이다. 도 5의 실시예는 기존의 제1 단말(100)에 더하여, 제2 단말(200)을 정당한 권한이 있는 단말로 추가하는 것과 관련된 실시예이다. 예를 들면, 제1 단말(100)(ex. 스마트폰)을 사용하는 사용자가 소지하는 다른 단말인 제2 단말(200)(ex. 태블릿 PC, 데스크탑)을 통해서도 서버(20)에 접속 및 요청하는 경우, 또는 프로젝트를 진행하는 그룹원들이 보유한 제1 단말 내지 제 n 단말(n은 2 이상의 자연수)(ex. 다수의 컴퓨터)을 통해 같은 계정으로 서버(20)에 접속할 수 있도록 하는 경우가 있다. 아울러, 별도의 언급이 없다 하더라도, 도 2와 관련하여 설명된 사항들은 도 4의 실시예에도 적용될 수 있다.
먼저, 제2 단말(200)은 제2 단말이 제1 단말과 동일한 사용자에 의해 사용된다는 정보를 포함하는 식별 정보, 블록체인 비밀키 및 블록체인 주소 정보를 생성할 수 있다(S301). 이후, 서버(20)는 제2 단말(200)로부터, 제1 단말(100) 혹은 제1 단말(100)의 사용자를 나타내는 식별 정보와 함께, 제2 단말(200)이 생성한 블록체인 주소 정보 및 제2 단말(200)이 생성한 블록체인 비밀키로 생성한 서명을 수신할 수 있다(S302). 서버(20)는 상기 서명이 올바른 것인지 상기 블록체인 주소 정보(또는 공개키)로 검증하여 서명이 올바른 경우, 제2 단말이 전송한 식별 정보 및 블록체인 주소 정보를 저장할 수 있다(S303).
이후, 제2 단말(200)은 제1 단말(100)에 제1 단말(100)의 블록체인 비밀키의 사용을 신청하고, 이를 위한 검증용 정보로 제2 단말(200)이 생성한 블록체인 주소 및 서명을 전송할 수 있다. 이와 같은 신청은 제1 단말(100)뿐 아니라 제2 단말(200)로도 도 2의 방법을 수행하는 것이 가능해지도록 하기 위한 목적을 갖는다.
이때, 제1 단말(100)은 제2 단말(200)로부터 수신한 블록체인 주소 정보가 올바르게 서버(20)에 저장되어 있는지 서버(20)에 확인할 수 있고, 서버(20)는 제1 단말(100)과 제2 단말(200)이 동일한 사용자에 의해 사용되는 것인지 확인한다(S305). 서버는 S302 단계에서 전송 받아 S303 단계에서 저장한 블록체인 주소와, S305 단계를 통해 전송받은 블록체인 주소가 동일한 경우, 제1 단말(100)과 제2 단말(200)의 식별 정보를 비교하여 동일 사용자를 판별하여 제1 단말(100)에 제2 단말(200)이 동일한 사용자임을 전송할 수 있다. 또는 도 4의 S203 내지 S206 단계와 마찬가지로 서버(20)는 제1 단말(100)에 제2 단말(200)에 대해 질의하여 사용자의 동일성을 검증할 수 있다.
제1 단말(100)은 S305 단계를 통해 제2 단말(200)이 전송한 블록체인 주소가동일 서버에 저장된 블록체인 주소와 동일한 것으로 확인하면, 제2 단말(200)로부터 수신한 서명이 올바른 것인지 판별하여, 제1 단말(100)의 블록체인 비밀키를 제2 단말(200)로 전송할 것인지 결정할 수 있다. 예컨대, 제1 단말(100)은 제2 단말(200)에 P2P(peer-to-peer) 통신을 통하여 제1 단말(100)의 블록체인 비밀키를 전송될 수 있다. 이와 같이 서버(20)가 중간에 개입되지 않은 단말 간의 블록체인 비밀키 전송에 의해, 블록체인 비밀키의 복제가 종래의 중앙 관리식의 방법에 비해 보다 간편하게 이루어질 수 있다.
또한, 이와 같은 서버(20)를 거치지 않는 단말 간 전송이 이루어진다는 것은, 블록체인 비밀키에 관한 정보가 서버(20)에 저장되지 않는다는 것을 의미하므로, 서버(20)가 해킹당한다 하여도 제1 단말(100)의 블록체인 비밀키는 탈취되지 않기 때문에, 결과적으로 보다 높은 보안성이 달성될 수 있다.
그렇다 해도, 제1 단말(100)로부터 제2 단말(200)로 블록체인 비밀키가 전송될 때 블록체인 비밀키가 탈취됨으로써 부정하게 이용될 수 있다는 우려가 여전히 있을 수 있다. 이에 따라, 본 발명의 일 실시예에서는 제2 단말(200)의 블록체인 주소를 이용하여 제1 단말(100)의 블록체인 비밀키를 암호화하는 방식으로 이러한 문제를 해결하고 있다.
S306 단계 판별 결과 제2 단말(200)의 서명이 정당한 경우, 제1 단말(100)은 제1 단말(100) 자신의 블록체인 비밀키를 제2 단말(200)의 블록체인 주소로 암호화할 수 있으며(S308), 암호화된 제1 단말(100)의 블록체인 비밀키를 제2 단말(200)로 송신할 수 있다(S309).
이와 같이 제2 단말(200)의 블록체인 주소로 암호화된 제1 단말(100)의 블록체인 비밀키는 제2 단말(200)의 블록체인 비밀키를 이용하여서만 정상적으로 복호화할 수 있으므로, 제2 단말(200)의 블록체인 비밀키를 저장하고 있는 제2 단말(200) 외의 다른 주체가 제2 단말(200)의 블록체인 주소로 암호화된 제1 단말(100)의 블록체인 비밀키를 탈취한다 한들, 제2 단말(200)의 블록체인 비밀키를 갖고 있지 않기 때문에, 탈취한 제1 단말(100)의 블록체인 비밀키를 이용할 수 없다. 따라서, 이와 같은 방식에 의하면, 보안성이 더욱 향상될 수 있다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방법으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 서버에 의해 수행되는 사용자 인증 기반의 요청 처리 방법으로서,
    식별 정보 및 요청 정보를 포함하는 메시지와, 상기 메시지의 적어도 일부가 암호화된 정보를 포함하는 요청(request)을, 단말로부터 수신하는 단계;
    상기 식별 정보에 대응되는 블록체인 주소 정보를 이용하여 상기 암호화된 정보의 복호화를 수행하는 단계; 및
    상기 복호화의 결과에 기초하여 상기 암호화된 정보가 상기 블록체인 주소 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우 상기 요청의 처리를 승인할 지의 여부를 결정하는 단계를 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  2. 제 1 항에 있어서,
    상기 수신하는 단계의 이전에,
    상기 식별 정보, 상기 식별 정보에 대응되는 블록체인 주소 정보 및 암호화된 검증 정보를 상기 단말로부터 제공받는 단계; 및
    상기 암호화된 검증 정보가, 상기 식별 정보에 대응되는 블록체인 주소 정보를 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우, 상기 제공받은 블록체인 주소 정보를 상기 식별 정보에 매칭(matching)시켜 상기 서버에 저장하는 단계를 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  3. 제 1 항에 있어서,
    상기 식별 정보는,
    상기 단말을 특정하거나, 상기 단말의 사용자를 특정하기 위한 정보이고,
    상기 요청 정보는,
    상기 서버에 의해 승인되어 수행되는 상기 단말의 동작에 관한 정보로서, 상기 동작은 로그인, 인증 및 결제 동작 중 적어도 하나를 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  4. 제 1 항에 있어서,
    상기 결정하는 단계는,
    상기 복호화의 결과에 더하여, 상기 요청과 함께 획득된 추가 인증 수단에 기초한 추가 인증이 성공적인지의 여부에 기초하여 상기 요청의 처리를 승인할 지의 여부를 결정하는 단계를 포함하며,
    상기 추가 인증 수단은,
    상기 단말의 접속 IP 주소(internet protocol address), 상기 단말의 접속 시간, 상기 단말의 OS(operating system)의 종류, 생체 인증 데이터, 패스워드(password) 및 개인 식별 번호(personal identification number, PIN) 중 적어도 하나를 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  5. 제 1 항에 있어서,
    상기 결정하는 단계의 결과, 상기 요청의 처리를 승인하지 않는 것으로 결정하여야 할 경우, 상기 식별 정보에 기 매칭된 수신처로 알림을 발송하는 단계;
    상기 기 매칭된 수신처로부터 상기 알림에 대한 회신을 수신하는 단계; 및
    상기 수신된 회신의 내용에 기초하여, 상기 요청의 처리를 승인하거나 거부하는 단계를 더 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  6. 제 1 항에 있어서,
    상기 단말과 상이한 다른 단말로부터 상기 다른 단말이 생성한 제2 블록체인 주소를 수신하는 단계;
    상기 다른 단말이 생성한 제3 블록체인 주소를 수신한 상기 단말로부터 상기 제3 블록체인 주소를 수신하는 단계;
    상기 제2 블록체인 주소 및 상기 제3 블록체인 주소가 동일한 경우, 상기 단말과 상기 다른 단말의 식별 정보를 비교하거나 또는 상기 단말에 상기 다른 단말에 대해 질의하여 사용자의 동일성을 검증하는 단계; 및
    상기 검증을 기초로 상기 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 상기 서버를 거치지 않고 상기 다른 단말로 전송하도록 상기 단말을 제어하는 단계를 더 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  7. 제 1 항에 있어서,
    상기 단말과 상이한 다른 단말로부터, 상기 식별 정보에 대응되는 블록체인 비밀키의 사용에 대한 신청을 수신하는 단계;
    상기 신청이 정당한지의 여부를 소정의 기준에 의해 판정하는 단계; 및
    상기 신청이 정당하다고 판정될 경우, 상기 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 상기 서버를 거치지 않고 상기 다른 단말로 전송하도록, 상기 단말을 제어하는 단계를 더 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  8. 제 7 항에 있어서,
    상기 제어하는 단계는,
    상기 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 P2P(peer-to-peer) 통신을 통하여 상기 다른 단말로 전송하도록, 상기 단말을 제어하는 단계를 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  9. 제 7 항에 있어서,
    상기 식별 정보를 포함하는, 상기 요청과는 상이한 다른 요청을, 상기 다른 단말로부터 수신하는 단계;
    상기 식별 정보에 대응되는 블록체인 주소 정보를 이용하여, 상기 다른 요청에 포함된 암호화된 정보의 복호화를 수행하는 단계; 및
    상기 다른 요청에 포함된 상기 암호화된 정보가, 상기 다른 요청에 포함된 메시지의 적어도 일부가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우, 상기 다른 요청의 처리를 승인하는 단계를 더 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  10. 제 7 항에 있어서,
    상기 판정하는 단계는,
    상기 다른 단말로부터, 상기 식별 정보에 대한 지정을 받는 단계;
    상기 지정에 기초하여, 상기 다른 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 사용하는 것을 허용할 지의 여부에 대한 질의를, 상기 식별 정보에 기 매칭된 수신처로 전송하는 단계;
    상기 질의에 대한 회신을 수신하는 단계; 및
    상기 수신된 회신에 기초하여, 상기 신청이 정당한지의 여부를 판정하는 단계를 포함하는,
    사용자 인증 기반의 요청 처리 방법.
  11. 제 10 항에 있어서,
    상기 신청을 수신하는 단계는,
    상기 다른 단말로부터 상기 다른 단말에 대응되는 블록체인 주소를 수신하는 단계를 포함하고,
    상기 다른 단말에 대응되는 블록체인 주소는,
    소정의 암호화된 정보가 상기 다른 단말에 대응되는 블록체인 비밀키를 이용하여 암호화된 것인지의 여부를 판단하는 데 이용되는,
    사용자 인증 기반의 요청 처리 방법.
  12. 제 11 항에 있어서,
    상기 제어하는 단계는,
    상기 다른 단말에 대응되는 블록체인 주소를 상기 단말에 제공하여, 상기 단말이 상기 식별 정보에 대응되는 블록체인 비밀키를 상기 다른 단말에 대응되는 블록체인 주소로 암호화하여 상기 다른 단말로 전송하도록 상기 단말을 제어하는 단계를 포함하고,
    상기 다른 단말은, 상기 다른 단말에 대응되는 블록체인 비밀키를 이용하여 상기 단말로부터 전송 받은 암호화된 블록체인 비밀키를 복호화하여 저장하는,
    사용자 인증 기반의 요청 처리 방법.
  13. 제 1 항 내지 제 12 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는 컴퓨터 판독 가능 기록매체에 저장된 프로그램.
  14. 제 1 항 내지 제 12 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체.
  15. 인증 절차에 기초하여 단말로부터의 요청을 처리하는 서버로서,
    명령어를 저장하는 메모리와,
    상기 명령어를 실행하도록 구성된 프로세서를 포함하되,
    상기 명령어는 실행될 때, 상기 프로세서로 하여금,
    식별 정보 및 요청 정보를 포함하는 메시지와, 상기 메시지의 적어도 일부가 암호화된 정보를 포함하는 요청(request)을 단말로부터 수신하는 동작;
    상기 식별 정보에 대응되는 블록체인 주소 정보를 이용하여 상기 암호화된 정보의 복호화를 수행하는 동작; 및
    상기 복호화의 결과에 기초하여 상기 암호화된 정보가 상기 블록체인 주소 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우 상기 요청의 처리를 승인할 지의 여부를 결정하는 동작을 수행하도록 하는,
    서버.
KR1020190133709A 2019-10-25 2019-10-25 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템 KR102355708B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190133709A KR102355708B1 (ko) 2019-10-25 2019-10-25 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190133709A KR102355708B1 (ko) 2019-10-25 2019-10-25 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템

Publications (2)

Publication Number Publication Date
KR20210049421A true KR20210049421A (ko) 2021-05-06
KR102355708B1 KR102355708B1 (ko) 2022-01-26

Family

ID=75916216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190133709A KR102355708B1 (ko) 2019-10-25 2019-10-25 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템

Country Status (1)

Country Link
KR (1) KR102355708B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102517001B1 (ko) * 2022-08-05 2023-04-03 주식회사 더문랩스 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법
WO2024131561A1 (zh) * 2022-12-23 2024-06-27 华为技术有限公司 通信认证方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287637A (ja) * 2007-05-21 2008-11-27 Necディスプレイソリューションズ株式会社 複数端末装置への一括認証システム
KR20180129027A (ko) * 2017-05-24 2018-12-05 라온시큐어(주) 프로그래밍이 가능한 블록체인과 통합 아이디 기반의 사용자 인증 방법 및 시스템
KR20180133944A (ko) * 2016-03-28 2018-12-17 블랙 골드 코인 인코포레이티드 블록 체인-기반 멀티팩터 개인 신원 확인을 제공하는 시스템들 및 방법들
JP6479723B2 (ja) * 2016-09-02 2019-03-06 日本電信電話株式会社 秘密鍵管理システムおよび秘密鍵管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287637A (ja) * 2007-05-21 2008-11-27 Necディスプレイソリューションズ株式会社 複数端末装置への一括認証システム
KR20180133944A (ko) * 2016-03-28 2018-12-17 블랙 골드 코인 인코포레이티드 블록 체인-기반 멀티팩터 개인 신원 확인을 제공하는 시스템들 및 방법들
JP6479723B2 (ja) * 2016-09-02 2019-03-06 日本電信電話株式会社 秘密鍵管理システムおよび秘密鍵管理方法
KR20180129027A (ko) * 2017-05-24 2018-12-05 라온시큐어(주) 프로그래밍이 가능한 블록체인과 통합 아이디 기반의 사용자 인증 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102517001B1 (ko) * 2022-08-05 2023-04-03 주식회사 더문랩스 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법
WO2024131561A1 (zh) * 2022-12-23 2024-06-27 华为技术有限公司 通信认证方法和装置

Also Published As

Publication number Publication date
KR102355708B1 (ko) 2022-01-26

Similar Documents

Publication Publication Date Title
US10116453B2 (en) Method for distributed trust authentication
US11336641B2 (en) Security enhanced technique of authentication protocol based on trusted execution environment
US11245526B2 (en) Full-duplex password-less authentication
US10594479B2 (en) Method for managing smart home environment, method for joining smart home environment and method for connecting communication session with smart device
CA3035817A1 (en) System and method for decentralized authentication using a distributed transaction-based state machine
JP2019508972A (ja) パスワードなしのコンピュータログインのサービス支援モバイルペアリングのためのシステム及び方法
US10171235B2 (en) User-initiated migration of encryption keys
EP2879421B1 (en) Terminal identity verification and service authentication method, system, and terminal
KR102177794B1 (ko) 사물인터넷 블록체인 환경에서의 디바이스 분산 인증 방법 및 이를 이용한 디바이스 분산 인증 시스템
US11363033B2 (en) Time-dependent blockchain-based self-verification user authentication method
CN104798083A (zh) 用于验证访问请求的方法和系统
US11438316B2 (en) Sharing encrypted items with participants verification
US10320774B2 (en) Method and system for issuing and using derived credentials
Noh et al. Secure authentication and four-way handshake scheme for protected individual communication in public wi-fi networks
KR102355708B1 (ko) 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템
US11522702B1 (en) Secure onboarding of computing devices using blockchain
US11824989B2 (en) Secure onboarding of computing devices using blockchain
CN114553426B (zh) 签名验证方法、密钥管理平台、安全终端及电子设备
CN108667800B (zh) 一种访问权限的认证方法及装置
CN113647051B (zh) 用于安全电子数据传输的系统和方法
Nishimura et al. Secure authentication key sharing between personal mobile devices based on owner identity
Patiyoot “Patiyoot” Cryptography Authentication Protocol for Computer Network
KR101490638B1 (ko) 스마트 카드 인증 방법, 이를 실행하는 서버 및 이를 실행하는 시스템
US20240364700A1 (en) Method and System for Securely Exchanging Cryptographic Challenge/Response Messages
JP7571954B2 (ja) 安全な電子データ転送のためのシステムと方法

Legal Events

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