KR20200064017A - 블록체인 기법을 이용한 fido2.0 암호키를 생성하는 방법 - Google Patents

블록체인 기법을 이용한 fido2.0 암호키를 생성하는 방법 Download PDF

Info

Publication number
KR20200064017A
KR20200064017A KR1020190155427A KR20190155427A KR20200064017A KR 20200064017 A KR20200064017 A KR 20200064017A KR 1020190155427 A KR1020190155427 A KR 1020190155427A KR 20190155427 A KR20190155427 A KR 20190155427A KR 20200064017 A KR20200064017 A KR 20200064017A
Authority
KR
South Korea
Prior art keywords
key
server
fido
authentication
path
Prior art date
Application number
KR1020190155427A
Other languages
English (en)
Inventor
김일영
Original Assignee
주식회사 코인즈월렛
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코인즈월렛 filed Critical 주식회사 코인즈월렛
Publication of KR20200064017A publication Critical patent/KR20200064017A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • 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/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

블록체인 기법을 이용한 FIDO2 암호키를 생성하는 방법이 제공된다.

Description

블록체인 기법을 이용한 FIDO2.0 암호키를 생성하는 방법{METHOD FOR GENERATING FIDO2.O PUBLIC KEY AND PRIVATE KEY BASED ON BLOCKCHAIN}
본 개시는 FIDO2 암호키를 지원하는 방법에 관한 것이다.
FIDO(Fast Identity Online) 시스템은 모바일 환경에서 사용할 수 있는 인증 표준으로, FIDO 서버, FIDO클라이언트, ASM(Authenticator Specific Module), 인증자(Authenticator)로 구성될 수 있다. FIDO1.0의 확장된 형태인 FIDO2.0은 모바일(앱)을 포함한 PC, IoT 기기 등 다양한 환경에서 사용할 수 있는데, FIDO모듈을 플랫폼화하고 플랫폼에 포함되어 있는 내부 인증자 또는 외부 인증장치의 외부 인증자를 이용하여 인증이 가능하도록 한다. 상세히는 FIDO2.0은 FIDO 클라이언트, ASM 및 인증자가 플랫폼 형태로 통합되어 윈도우 또는 안드로이드 등에서 운영되는 운영체제 기반의 플랫폼과 웹브라우저를 기반으로 하는 웹 플랫폼이 제공된다. 특히, FIDO2.0은 사용자 단말기에 내장된 빌트인 인증자 외에 외부에서 연결되어 동작하는 외부 인증장치에 인증자를 탑재하여 사용가능하다.
FIDO2.0을 암호없는 인터넷 환경을 구성하기 위한 필수 요소로써, 향후 암호화폐 지갑이 FIDO2.0을 지원하는 것은 암호없는 안전한 암호화폐 거래를 위한 신뢰성 기술로 반드시 필요하다.
본 개시는 FIDO2.0 시스템에서 사용할 수 있는 외부 인증장치 구성을 제공할 수 있다.
본 개시의 일 특징에 따르면, 블록체인 기법을 이용한 FIDO2 암호키를 생성하는 방법이 제공된다.
본 개시에 따르면 별도로 공개키, 개인키 쌍을 저장하거나 할 필요가 없으므로 기존의 키 저장 방식에 비해 효율적이며 강화된 보안력을 가진다.
도 1은 본 개시의 일 실시예에 따른, FIDO2.0 시스템(100)을 개략적으로 도시한 도면이다.
도 2는 도 1의 외부인증장치(120)의 예시적 기능 구성을 도시한 기능 블록도이다.
도 3은 도 1의 외부인증장치(120)에서 공개키와 개인키를 유도하는 예시적인 흐름도이다.
본 개시의 이점들과 특징들 그리고 이들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해 질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 본 실시예들은 단지 본 개시의 개시가 완전하도록 하며 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려 주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로 본 개시를 한정하려는 의도에서 사용된 것이 아니다. 예를 들어, 단수로 표현된 구성 요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성 요소를 포함하는 개념으로 이해되어야 한다. 또한, 본 개시의 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성이 배제되는 것은 아니다. 또한, 본 명세서에 기재된 실시예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하는 기능적 부분을 의미할 수 있다.
덧붙여, 다르게 정의되지 않는 한 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 개시의 명세서에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면들을 참조하여 본 개시의 실시예들을 보다 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.
도 1은 본 개시의 일 실시예에 따른, FIDO2.0 시스템을 개략적으로 도시한 도면이다.
도 1에 도시된 바와 같이, FIDO2.0 시스템(100)은 FIDO서버(110), FIDO클라이언트(120), ASM(Authenticator Specific Module)(130), 외부인증장치(인증자)(140)를 포함할 수 있다.
도 1에 도시된 바에 따르면, 서버는 RP(Relying Party) 서버와 FIDO 서버(110)를 포함하며, RP 서버는 FIDO 서버(110) 보내는 메시지를 네트워크를 통해 RP 클라이언트로 전송한다. FIDO 서버(110)가 보내는 메시지는 RP 서버, 네트워크 및 RP 클라이언트를 거쳐 FIDO 클라이언트(120)로 전달되며, 메시지의 송수신 기능을 제외한 대부분의 서버 기능은 FIDO 서버(110)에서 수행될 수 있다.
본 개시의 일 실시예에서 FIDO 서버(110)는 인증장치에 대한 정책을 설정하고 사용자의 공개키를 등록, 관리 및 검증을 수행할 수 있다. 본 개시의 일 실시예에서, FIDO 서버(110)는 인증과 거래 확인을 위해 공개키 기반 전자서명을 활용하여 공개키 등록, 전자서명 생성 및 검증(인증과 거래확인), 등록 해지 과정을 수행할 수 있다.
일 실시예에서, FIDO 서버(110)는 생성된 공개키를 FIDO 서버에 등록할 수 있다. 일 실시예에서, FIDO 서버(110)는 시도-응답(challenge-Response)방식으로 서버에서 인증시도(Challenge)를 생성하여 사용자 단말에 전송하면 사용자는 전달받은 인증시도를 패스워드를 이용해 응답(Response)을 생성하여 서버로 재전송하여 응답을 검증할 수 있다.
일 실시예에서, 사용자 단말(FIDO 클라이언트)은 서버(FIDO 서버)로 사용자 정보의 등록을 요청할 수 있다. 등록 요청을 받은 서버(FIDO 서버)는 사용자 단말(FIDO 클라이언트)로 인증정보를 요청하고 관련 정책을 전송할 수 있다. 사용자 단말(FIDO 클라이언트)은 내외부의 인증장치를 통해 공개키 및 개인키를 생성하고 생성된 공개키를 서버(FIDO 서버)로 전송할 수 있다. 이때, 사용자 단말(FIDO 클라이언트)은 특정 FIDO 인증장치에서 사용자의 인증정보가 생성되었다는 것을 증명하는 전자서명 값(Attestation)을 함께 전송할 수 있다. 서버(FIDO 서버)는 사용자 단말(FIDO 클라이언트)로부터 전달받은 사용자 공개키를 저장할 수 있다.
일 실시예에서, FIDO 서버(110)는 또한 거래확인도 할 수 있는데, 인증과정과 유사하게 챌린지에 거래내역을 포함하여 전자서명 값을 생성하고 검증할 수 있다.
일 실시예에서, 사용자 단말(FIDO 클라이언트)은 서버(FIDO 서버)로부터 사용자 인증(로그인) 또는 거래 내용에 대한 전자서명을 받아 거래 확인을 받을 수 있다. 예컨대, 사용자 단말은 서버(FIDO 서버)로 인증/거래확인을 요청할 수 있다. 인증/거래확인을 요청 받은 서버는 검증을 위한 인증시도(Challenge)를 생성하여 사용자 단말(FIDO 클라이언트)로 전송할 수 있다. 이후 사용자 단말은 등록된 인증 정보를 통해 단말에 저장된 개인키를 추출하고 개인키를 이용하여 서버로부터 전달받은 인증시도(또는 거래 원문 데이터)를 전자서명할 수 있다. 사용자 단말은 서명된 인증시도(또는 거래 원문데이터)를 서버로 전송할 수 있다. 서버는 공개키를 이용하여 사용자 단말로부터 전달받은 내용의 위.변조 여부를 검증할 수 있다.
일 실시예에서, FIDO서버(110)는 저장된 개인키를 삭제하여 해당 서버에 대한 FIDO 등록을 해지할 수 있다.
본 개시의 일 실시예에서 FIDO클라이언트(120)는 FIDO서버(110)의 정책에 따라 인증자를 필터링하고 ASM(130)과 PR 클라이언트 간의 중계 역할을 수행할 수 있다.
본 개시의 일 실시예에서 ASM(130)은 FIDO 클라이언트의 요청을 인증자로 전달하고 인증자에서 생성된 응답 값을 FIDO 클라이언트로 전달하는 중계역할을 수행할 수 있다.
본 개시의 일 실시예에서 인증자(140)는, 예컨대 생체 인증 등으로 사용자를 사용자 단말에서 로컬 인증하고 서버에서의 원격 인증을 위한 공개키, 개인키 쌍을 생성하여 개인키를 이용하여 전자서명을 수행할 수 있다. 일 실시예에서, 인증자(140)는 사용자 단말 내부에 내장된 빌트인 인증자 또는 스마트폰, 토큰과 같은 외부에서 연결되어 동작하는 외부 인증장치에 설치되어 기능을 수행할 수 있다.
일 실시예에서 인증자(140)는 전자서명용 공개키 및 개인키를 생성하고 공개키를 FIDO서버에 전송하여 등록할 수 있다.
일 실시예에서, 인증자(140)가 외부장치에 위치하는 경우, 사용자 단말과의 통신을 위해 USB, NFC, BLE 등의 CTAP(Client to Authenticator Protocol) 표준연동 방식을 사용할 수 있다.
일 실시예에서, FIDO클라이언트(120), ASM(130) 및 인증자(140)는 플랫폼 형태로 통합되어 존재할 수 있다. 일 실시예에서, 윈도우 또는 안드로이드 등에서 운영되는 운영체제 기반의 플랫폼과 웹브라우저를 기반으로 하는 웹 플랫폼이 제공될 수 있다.
일 실시예에서, RP서버와 RP클라이언트는 UAF(Universal Authentication Factor) 또는 U2F(Universal Second Factor) 프로토콜을 사용할 수도 있고 서버에서 정의한 자체 프로토콜을 적용하여 통신할 수도 있다. 일 실시예에서, 사용자 단말과 FIDO 서버 간의 데이터 교환을 위해 전자서명 값을 안전하게 전달할 수 있는 자체 프로토콜을 설계하여 사용할 수 있다.
도 2는 도 1의 외부인증장치(120)의 예시적 기능 구성을 도시한 기능 블록도이다.
외부인증장치(140)에 탑재된 인증자는 암호화폐 지갑에서 사용하는 타원곡선 알고리즘과 해시 결합 기술을 이용하여 인증을 수행할 수 있다.
본 개시는 암호화폐 지갑에 탑재되는 타원곡선 알고리즘 기능에 사이트별로 식별 가능한 데이터와 보안 코드(PIN)를 결합하여 별도로 추가 정보를 저장하지 않고도 FIDO2에서 사용가능한 공개키와 개인키를 생성할 수 있다.
사이트별로 식별 가능한 데이터(예를 들어 웹사이트 주소, 이메일 등)과 보안 코드(PIN 숫자)를 해시한 값을 일정 바이트 단위로 나눈 뒤에 각 요소에 더한 집합을 만들 수 있다. 이후, 암호화폐 지갑의 타원곡선 알고리즘과 체인 코드를 결합하는 기법을 응용하여 자식 키(child key)를 생성할 수 있다. 생성된 자식 키의 공개키와 개인키 쌍을 FIDO2시스템에서 사용할 수 있다.
비트코인의 계층형 결정 지갑(Hierarchy deterministic wallet) 기술을 지원하는 암호화폐 지갑은 ECC(Elliptic curve cryptography) 타원곡선 알고리즘과 해시 함수, 체인 코드를 사용하여 최상위 키(개인키와 공개키)를 생성한다. 최상위 키는 루트 키(root key)라고도 부른다. 여기서, 체인 코드는 블록 체인에서 사용하는 고유의 상수 숫자이다.
최상위 키에서 CKD(Child Key Derivation)기법을 통해 자식 키(공개키와 개인키)를 유도해낼 수 있다. CKD기법을 이용해서 자식 키를 유도해 내기 위해서는 정수의 집합체인 1개 혹은 그 이상의 인덱스 번호 집합이 필요하다. 이 인덱스 번호 집합을 계층형으로 구성하면 자식 키에서 또 자식 키를 유도하는 식으로 재귀 호출로 유도할 수 있다. 이런 계층적인 형태를 계층형 결정 지갑 경로(Hierarchy Deterministic Wallet Path)라고 부르며, 예를 들어, m/10/20/30 으로 명령한다면 최상위 키에서 10번 인덱스를 가지는 자식 키를 유도하고, 이 자식 키에서 다시 20번 인덱스를 가지는 자식키를 유도하고, 다시 30번 인덱스를 가지는 자식 키를 유도한 것을 의미한다. 일반적인 비트코인 지갑 구현체에서 이런 경로를 지정하는 것은 BIP(Bitcoin Improvement Proposal)32 로 정의한다. 그러나 FIDO2 보안에서 사용할 공개키, 개인키를 일반적인 비트코인 지갑 구현체의 최상위 키 혹은 순차적인 인덱스를 이용해서 CKD 기법으로 생성한다면 유추하기 쉽고, 기존의 다른 경로를 사용하는 암호화폐 또는 블록체인과 키가 충돌할 가능성이 높다. 충돌된 경로를 가지게 되면 보안성이 약해질 수 있다. 따라서, 사이트 별로 식별 가능한 정보를 해시한 정수값을 가공하여 경로를 추출하여 충돌 가능성을 낮출 수 있다.
일 실시예에서, 식별 가능한 정보는 사이트의 호스트명(FQDN), URL 및 URI 정보, 메일 주소, 사용자 ID를 포함하고, 상기 정보를 1개 혹은 복수 개를 결합해서 사용할 수 있다.
한편, 호스트명(FQDN)을 식별 정보로 해시값을 추출하여 사용하는 경우 동일한 호스트명을 사용할 가능성이 존재하고 해시 값이 충돌할 수 있다. 본 개시의 일 실시예에서, 사용자마다 고유의 보안 코드(PIN)을 추가한 해시한 값을 각각의 요소에 사용하여 정수값을 추출할 수 있다. 해시 비트(hash bit)의 크기가 큰 알고리즘을 사용할수록 매우 큰 값의 정수값을 추출할 수 있으므로 무한에 가까운 경로를 만들어낼 수 있다.
예를 들어 SHA256을 사용할 경우 256비트의 정수값이므로 2의 256승인 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936의 값을 가지며, 이보다 큰 SHA384를 사용하면 384비트의 정수값을 가지고 경로를 만들 수 있다.
통상 계층 결정적 지갑에서 사용하는 경로 인덱스는 31비트를 사용하여 해시의 결과 값이 매우 클 수 있으므로, 경로 인덱스를 그대로 사용할 수는 없다. 따라서 계층 결정적 지갑 경로를 만들기 위해 정수값을 나눠서 사용할 수 있다.
위에 서술한 대로 알고리즘을 통해 계층 결정적 지갑의 경로 정보를 생성해서 CKD 유도를 한다면 순수 함수(pure function) 형태로 구현되므로, 다른 지갑이나 보안 시스템에서 외부 장치에 경로 정보를 저장하거나 사이트 식별 정보 및 보안 코드(PIN)를 저장하지 않을 수 있다. 따라서 계층 결정적 지갑을 지원하는 암호화폐에 해당 알고리즘 기능을 추가하면 저장장치를 쓰지 않는 효율적이고 보안이 뛰어난 구조의 FIDO2 키 생성을 가능하게 한다.
도 3은 도 1의 외부인증장치(140)에서 공개키와 개인키를 유도하여 인증을 수행하는 예시적인 흐름도이다.
먼저 단계(S310)에서, 사이트의 식별 가능한 정보를 해시한 값으로 집합 A를 생성한다. 일 실시예에서, X개의 비트로 Y번 해시를 하는 함수 Fhash를 정의하고, 이 함수에 식별 가능한 정보를 최소 1개 이상 입력하여 A라는 큰 정수를 얻는다. 식별 가능한 정보의 예로 웹 주소(HostID)나 메일 주소 등을 포함될 수 있다.
큰 정수 A는 n개의 바이트(byte) 혹은 멀티바이트(multibyte)로 이뤄진 배열의 집합으로 정의할 수 있다. 따라서 아래와 같은 수식이 성립한다.
Figure pat00001
예를 들어 SHA256을 사용하는 경우를 가정하면 함수 Fhash의 해시 결과값은 256비트가 된다. 256비트를 1바이트의 배열 요소들의 집합으로 정의하면, 집합 A는 32개의 원소를 가지게 된다. 만일 2바이트의 배열 집합으로 정의한다면 16개의 원소를 가진 집합이 되고, 3바이트의 배열 집합이라면 11개의 원소를 가진 집합으로 정의할 수 있다.
일 실시예에서, SHA256을 Y번 해시하는 Fhash 함수를 실행하여 얻은 해시 값을 핵스 코드(Hex Code)로 표시했을 때 아래와 같다고 하자. 이 값을 2바이트의 배열 요소를 집합으로 정의하면 아래와 같이 표시된다.
Figure pat00002
다음으로 단계(S320)에서, PIN 코드를 해시한 값으로 집합 B를 생성할 수 있다. 일 실시예에서, 사용자가 입력한 최소 4자리 이상의 보안 코드(PIN번호) 혹은 영문자, 특수문자를 포함하는 비밀번호를 앞서 단계1에서 해시한 방법과 같은 식으로 B라는 큰 정수를 생성할 수 있다. 이 경우 B도 1바이트(byte) 혹은 멀티바이트(multibyte)로 이뤄진 배열의 요소들의 집합으로 정의할 수 있다. 따라서 아래와 같은 식이 성립한다.
Figure pat00003
단계(S330)에서, 집합 A와 집합 B의 각 원소를 더하여 집합 C를 얻는다.
Figure pat00004
다음으로, 단계(S340)에서, CKD 경로를 유도한다.
함수 Fpath는 집합 C의 각 요소를 결정적 계층 지갑의 계층별 단절 경로(hardened path)의 인덱스 값으로 사용한다. 그리고 입력된 정수 i 값으로는 단절 경로의 자식 키의 마지막 경로 인덱스 번호로 사용하여 경로를 생성한다. 따라서 아래와 같은 식이 성립한다.
Figure pat00005
집합 C의 각 요소와 입력된 정수 i의 값은 암호화폐 지갑의 BIP32기능을 이용하기 위해 31비트 크기 미만이어야 하므로 31비트를 넘어가면 오버플로우(overflow) 처리하거나 해당 값을 더 작은 요소를 가지는 부분 집합으로 분해하여 집합 C의 모든 원소가 31비트 크기를 넘지 않도록 처리할 수 있다.
위 식에서 각각의 요소에서
Figure pat00006
으로 표기 되는 것을 단절 경로(hardened path)라고 부르며 집합의 하나의 원소마다 31비트의 범위를 가지므로 약 21억여개(2,147,483,648) 번호가 사용 가능하다.
단계(S310)의 예시에서 살펴본 바대로 집합을 256비트 해시를 사용하고 각 요소를 2바이트의 배열로 정의한다면 집합 C의 각 원소는 16개이고 각각 31비트의 범위를 가질 수 있으므로 21억 ^ 16의 단절 경로를 가지게 된다. 이는 거의 무제한에 가까운 단절 경로와 인덱스를 만들 수 있다.
이제 작성된 경로를 가지고 자식 키를 유도하기 위해 암호화폐 지갑에 BIP32의 경로를 넣는다. 경로에 따라 자식키 (공개키, 개인키) 쌍이 생성된다. 만들어진 자식키(공개키, 개인키)쌍은 FIDO2의 암호없는 응용 프로그램(passwordless application) 플랫폼을 만드는데 사용될 수 있다.
다음으로, 단계(S350)에서 유도된 자식 키를 가지고 FIDO2 인증을 시도한다.
만약 예외상황, 즉 인증이 실패하는 경우(S360), 즉 인증과정에서 유효시간이 지났거나 혹은 키가 유출되어서 이전에 사용되던 키를 폐기하였다면, 이전 단계에서 마지막 경로 인덱스 번호인 i값에 1증가 시켜서 다시 경로를 만들고 암호화폐 지갑으로부터 자식 키(공개키, 개인키)를 새롭게 유도하여 생성하고 FIDO2 인증을 재시도할 수 있다(S360).
예를 들어 이전에 유도된 경로가 m/27337′/2087′/.../18283′/0 이라면 마지막 인덱스 i의 값이 0인 상태이다. 이 키가 폐기되어서 인증 과정이 유효하지 않다면, 마지막 인덱스 0에 1을 추가하여 m/27337′/2087′/.../18283′/1 을 사용하여 경로를 다시 만들고 이를 통해 자식 키를 다시 유도해서 FIDO2 인증을 재시도 한다.
일 실시예에서, 재시도하는 과정에서 많은 통신량이 발생할 수 있으므로 키를 등록하는 과정에서 사용자 파라메터로 마지막 인덱스 번호를 서버측에 저장시키고, 인증시에는 서버측으로부터 이 파라메터값을 받도록 한다면 재시도 할 필요가 없이 인증 절차를 간략하게 사용할 수 있다.
마지막으로 단계(S370)에서, FIDO2 인증이 성공할 수 있다.
본 개시는 인터넷을 기반으로 한 블록체인 또는 암호화폐 기술을 응용한 IoT(Internet of Things), MES(Manufacturing Execution System), ERP(Enterprise Resource Planning), SCM(Supply-chain Management System), EV(Electric Vehicle), DID(Decentralized Identity) 등 다양한 시스템에 비대칭키를 사용한 인증 적용이 가능하며, 해킹 염려없는 안전한 시스템을 구축하는데 널리 이바지할 수 있다.
상기 방법은 특정 실시예들을 통하여 설명되었지만, 상기 방법은 또한 컴퓨터 판독 가능한 기록매체에 컴퓨터 판독 가능한 코드로서 구현하는 것이 가능하다. 컴퓨터 판독 가능한 기록매체는 컴퓨터 시스템에 의해 판독될 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터 판독 가능한 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터 판독 가능한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터에 의해 판독될 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 개시가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본원에 개시된 실시예들에 있어서, 도시된 구성 요소들의 배치는 발명이 구현되는 환경 또는 요구 사항에 따라 달라질 수 있다. 예컨대, 일부 구성 요소가 생략되거나 몇몇 구성 요소들이 통합되어 하나로 실시될 수 있다. 또한 일부 구성 요소들의 배치 순서 및 연결이 변경될 수 있다.
이상에서는 본 개시의 다양한 실시예들에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시예들에 한정되지 아니하며, 상술한 실시예들은 첨부하는 특허청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양하게 변형 실시될 수 있음은 물론이고, 이러한 변형 실시예들이 본 개시의 기술적 사상이나 범위와 별개로 이해되어져서는 아니 될 것이다. 따라서, 본 개시의 기술적 범위는 오직 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.

Claims (1)

  1. 블록체인 기법을 이용한 FIDO2 암호키를 생성하는 방법.
KR1020190155427A 2018-11-28 2019-11-28 블록체인 기법을 이용한 fido2.0 암호키를 생성하는 방법 KR20200064017A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180150123 2018-11-28
KR20180150123 2018-11-28

Publications (1)

Publication Number Publication Date
KR20200064017A true KR20200064017A (ko) 2020-06-05

Family

ID=71089034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190155427A KR20200064017A (ko) 2018-11-28 2019-11-28 블록체인 기법을 이용한 fido2.0 암호키를 생성하는 방법

Country Status (1)

Country Link
KR (1) KR20200064017A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2600965A (en) * 2020-11-13 2022-05-18 Nchain Holdings Ltd Key generation method
GB2600970A (en) * 2020-11-13 2022-05-18 Nchain Holdings Ltd Key derivation method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2600965A (en) * 2020-11-13 2022-05-18 Nchain Holdings Ltd Key generation method
GB2600970A (en) * 2020-11-13 2022-05-18 Nchain Holdings Ltd Key derivation method
WO2022100958A1 (en) * 2020-11-13 2022-05-19 Nchain Licensing Ag Key derivation method
WO2022101023A1 (en) * 2020-11-13 2022-05-19 Nchain Licensing Ag Key generation method

Similar Documents

Publication Publication Date Title
CN109983466B (zh) 一种基于区块链的账户管理系统以及管理方法、存储介质
US11683187B2 (en) User authentication with self-signed certificate and identity verification and migration
CN108064440B (zh) 基于区块链的fido认证方法、装置及系统
US20190036692A1 (en) System and method for generating a recovery key and managing credentials using a smart blockchain contract
US11824995B2 (en) Bridging digital identity validation and verification with the FIDO authentication framework
US20180152297A1 (en) System and Method For Digitally Signing Documents Using Biometric Data in a Blockchain or PKI
KR102564842B1 (ko) 디지털 인증서에 대한 모바일 인증 상호 운용성
US10771451B2 (en) Mobile authentication and registration for digital certificates
EP3133791B1 (en) Double authentication system for electronically signed documents
CN114503508A (zh) 用于在区块链上存储经认证的数据的计算机实施的方法和系统
KR20200064017A (ko) 블록체인 기법을 이용한 fido2.0 암호키를 생성하는 방법
KR20120091618A (ko) 연쇄 해시에 의한 전자서명 시스템 및 방법
CN101789939B (zh) 一种有效的可信OpenSSH的实现方法
Schwarz et al. Feido: Recoverable FIDO2 tokens using electronic ids
JP2015122073A (ja) ワンタイムパスワード生成方法およびこれを実行する装置
CN102694776A (zh) 一种基于可信计算的认证系统及方法
US20240005312A1 (en) Multi-Factor User Authentication Using Blockchain Tokens
KR101536122B1 (ko) 프린터 보안 솔루션 내 스마트카드를 이용한 안전한 사용자 인증 방법
Chander et al. RFID tag-based mutual authentication protocol with improved security for TMIS
Gowthami et al. Multi-factor based user authentication scheme for lightweight IoT devices
Aciobanitei et al. Lightweight version of SQRL authentication protocol based on cryptography in the cloud
Al-Ameri et al. A Blockchain-Based Secure Mutual Authentication System for E-Government Services
Tanwar et al. A Novel Framework for Efficient Multiple Signature on Certificate with Database Security
CN117097508A (zh) Nft跨设备安全管理的方法和装置
WO2023126491A1 (en) Method and system for generating digital signatures using universal composition