KR20220086580A - 분산형 컴퓨터 애플리케이션들을 구축하기 위한 비-보관 툴 - Google Patents
분산형 컴퓨터 애플리케이션들을 구축하기 위한 비-보관 툴 Download PDFInfo
- Publication number
- KR20220086580A KR20220086580A KR1020227013537A KR20227013537A KR20220086580A KR 20220086580 A KR20220086580 A KR 20220086580A KR 1020227013537 A KR1020227013537 A KR 1020227013537A KR 20227013537 A KR20227013537 A KR 20227013537A KR 20220086580 A KR20220086580 A KR 20220086580A
- Authority
- KR
- South Korea
- Prior art keywords
- client
- private key
- user
- server
- credentials
- Prior art date
Links
- 238000004883 computer application Methods 0.000 title abstract description 7
- 238000000034 method Methods 0.000 claims description 102
- 238000013475 authorization Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 25
- 230000007246 mechanism Effects 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 a third party or a trusted authority
- H04L9/3213—Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0478—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/53—Network services using third party service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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 key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/062—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/108—Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
분산 컴퓨팅 시스템 상에서 실행되는 분산형 컴퓨터 애플리케이션들을 구축하기 위한 메커니즘. 본 기술은 웹 브라우저, 클라이언트 애플리케이션, 또는 다른 소프트웨어 내에서 작동하고 브라우저를 통해 분산형 컴퓨터 애플리케이션들에의 액세스를 제공한다. 본 기술은, 사용자 아이덴티티를 표현하는 공개-개인 키 쌍이 클라이언트 머신 상에서 생성된 후에 하나의 중앙집중형 컴퓨팅 시스템에 의존하는 일 없이 제3자 플랫폼에 의해 직접 암호화되는 비-보관 기술이다.
Description
사용자 데이터가 보안되도록 유지하는 것은 오랫동안 중요한 이슈였다. 오늘날 대부분의 애플리케이션들은 사용자명/이메일/전화 + 패스워드 보안 모델로 구축되는데, 이는 많은 이유들로 시대에 뒤떨어져 있다. 예를 들어, 패스워드 유출들이 만연해졌다. 패스워드들을 갖는 데이터베이스가 존재하는 경우, 패스워드 데이터를 현금화하려고 시도하는 정교한 해커들에 의해 패스워드들이 도난당하는 것은 종종 시간 문제일 뿐이다.
사실상, 심지어 해시 및 솔트된 패스워드(hashed and salted password)들도 보안되지 않는다. 일단 해시된 패스워드들의 데이터베이스가 도난당하면, 해커들은 수십만 개의 노드들을 갖는 병렬 GPU들 또는 봇넷(botnet)들을 이용하여, 막대한 분산 컴퓨팅 리소스(distributed computing resource)들을 그 패스워드들의 그 데이터베이스에 향하게 하여, 평문 식별자-패스워드 쌍(plaintext identifier-password pair)들을 복구하려는 희망으로 초당 수천억 개의 패스워드 조합들을 시도할 수 있다.
일단 공격자들이, 데이터베이스에 저장된 것과 동일한 해시로 해시되는 패스워드를 발견하면, 이들은 그 식별자-패스워드 쌍을 가져와서 은행 어카운트(bank account)들과 같은 다른 애플리케이션들에 대해 그것을 시도할 것이다. 많은 경우들에서, 솔트 및 해시된 패스워드 데이터베이스가 대략 매분마다 다른 유효한 식별자-패스워드 쌍을 넘겨줄 수 있다. 이것은 자체적으로 매년 약 50만 개의 패스워드들이 유출되는 - 이는 몇 년마다 2배로 된다 - 결과로 된다. 회사들이 패스워드들을 비밀들로서 사용하여 민감한 데이터를 암호화(encrypt)하는 경우, 그것은 대칭형 암호화와 매우 유사한데, 여기서 암호화 키는, 무차별 대입(brute-force)에 의해 쉽게 크래킹(crack)될 수 있는 취약 패스워드(weak password)이다.
부가적으로, 성공적인 인증 후에 사용자 세션들이 종종 하이재킹(hijack)되어, 공격자들이 그 사용자의 애플리케이션 리소스들을 악용하게 한다. 그러한 액세스를 방지하기 위해, 시스템은 사용자 요청이 있을 때마다 사용자를 재인증할 필요가 있을 것이다. 이것은 사용자들이 매 단일 요청마다 이들의 패스워드를 타이핑해야 하는 경우 극도로 번거로운 사용자 경험을 만든다.
데이터가 보안되게 하기 위한 개선된 시스템이 필요하다.
본 기술은, 대략적으로 설명하면, 분산 컴퓨팅 시스템 상에서 실행되는 분산형 컴퓨터 애플리케이션(decentralized computer application)들을 구축하기 위한 비-보관 인증 시스템(non-custodial authentication system)을 제공한다. 본 기술은 웹 브라우저, 클라이언트 애플리케이션, 또는 다른 소프트웨어 내에서 작동하고 브라우저를 통해 분산형 컴퓨터 애플리케이션들에의 액세스를 제공한다. 본 기술은, 사용자 아이덴티티(user identity)를 표현하는 공개-개인 키 쌍(public-private key pair)이 클라이언트 머신 상에서 생성된 후에 하나의 중앙집중형 컴퓨팅 시스템(centralized computing system)에 의존하는 일 없이 제3자 플랫폼에 의해 직접 암호화되는 비-보관 기술이다.
본 시스템은 각각의 사용자 및 애플리케이션 조합에 대해 생성된 공개-개인 키 쌍들을 사용하여, 아이덴티티 인증 및 인가에 관련된 작업을 수행한다. 본 기술의 비-보관 키 관리 시스템은, 네트워크에 걸쳐 위치되고 사용자의 디바이스로부터 원격으로 있는 하드웨어 보안 모듈(hardware security module)(HSM)을 사용하여, 키 정보를 저장하고, 엑스포팅(export)될 수 없는 마스터 키를 사용하여 암호화 및 암호화해제(decryption)를 수행한다.
일부 경우들에서, 방법은 클라이언트에 대해 비-보관 인증을 수행한다. 방법은 클라이언트에 의해 개인 키를 생성하는 것으로 시작할 수도 있고, 여기서 클라이언트는 사용자와 연관된다. 분산형 식별자 토큰(decentralized identifier token)(DIDT)이 클라이언트에서 개인 키로부터 생성될 수 있다. 그 후에, 사용자는 DIDT에 기초하여 애플리케이션에 대해 인증될 수 있다.
일부 경우들에서, 비일시적 컴퓨터 판독가능 저장 매체에는 프로그램이 구현될 수 있다. 프로그램은 프로세서에 의해 실행가능하여 클라이언트에 대해 비-보관 인증을 수행하기 위한 방법을 수행할 수 있다. 방법은 클라이언트에 의해 개인 키를 생성하는 것으로 시작할 수도 있고, 여기서 클라이언트는 사용자와 연관된다. 분산형 식별자 토큰(DIDT)이 클라이언트에서 개인 키로부터 생성될 수 있다. 그 후에, 사용자는 DIDT에 기초하여 애플리케이션에 대해 인증될 수 있다.
일부 경우들에서, 시스템은 클라이언트에 대해 비-보관 인증을 수행할 수 있다. 시스템은, 메모리 및 프로세서를 갖는 서버를 포함할 수 있다. 메모리는, 메모리에 저장되고 프로세서에 의해 실행되는 하나 이상의 모듈들을 포함할 수 있다. 프로세서에 의해 실행될 때, 시스템은 클라이언트에 의해 개인 키를 생성할 수 있고, 여기서 클라이언트는 사용자와 연관된다. 시스템은, 클라이언트에서, 개인 키로부터 분산형 식별자 토큰(DIDT)을 추가로 생성할 수도 있다. 그 후에, 시스템은 DIDT에 기초하여 애플리케이션에 대해 사용자를 인증할 수 있다.
도 1은 위임된 키 관리 시스템의 블록 다이어그램이다.
도 2a는 비-보관 시스템에서 개인 키를 생성하기 위한 프로세스를 예시한다.
도 2b는 사용자에 의해 트랜잭션에 서명하기 위한 방법을 예시한다.
도 2c는 개인 키를 복구하기 위한 방법을 예시한다.
도 3은 위임된 키 관리 시스템에 대한 로그인 프로세스의 예시적인 방법이다.
도 4는 액세스 토큰을 요청하기 위한 예시적인 방법이다.
도 5는 범위지정된 크리덴셜(scoped credential)들을 결정하기 위한 예시적인 방법이다.
도 6은 허가를 결정하기 위한 예시적인 방법이다.
도 7은 분산형 애플리케이션 트랜잭션을 전송하기 위한 예시적인 방법이다.
도 8은 분산형 콘트랙트 함수(decentralized contract function)를 전송하기 위한 예시적인 방법이다.
도 9는 분산형 사용자 서명을 수행하기 위한 예시적인 방법이다.
도 10은 분산형 식별자 토큰을 생성하기 위한 예시적인 방법이다.
도 11은 분산형 식별자 토큰으로 애플리케이션 인증을 수행하기 위한 예시적인 방법이다.
도 12는 어카운트 복구를 수행하기 위한 예시적인 방법이다.
도 13은 사용자를 로그아웃하기 위한 예시적인 방법이다.
도 14는 본 기술을 구현하기 위한 컴퓨팅 환경의 블록 다이어그램이다.
도 2a는 비-보관 시스템에서 개인 키를 생성하기 위한 프로세스를 예시한다.
도 2b는 사용자에 의해 트랜잭션에 서명하기 위한 방법을 예시한다.
도 2c는 개인 키를 복구하기 위한 방법을 예시한다.
도 3은 위임된 키 관리 시스템에 대한 로그인 프로세스의 예시적인 방법이다.
도 4는 액세스 토큰을 요청하기 위한 예시적인 방법이다.
도 5는 범위지정된 크리덴셜(scoped credential)들을 결정하기 위한 예시적인 방법이다.
도 6은 허가를 결정하기 위한 예시적인 방법이다.
도 7은 분산형 애플리케이션 트랜잭션을 전송하기 위한 예시적인 방법이다.
도 8은 분산형 콘트랙트 함수(decentralized contract function)를 전송하기 위한 예시적인 방법이다.
도 9는 분산형 사용자 서명을 수행하기 위한 예시적인 방법이다.
도 10은 분산형 식별자 토큰을 생성하기 위한 예시적인 방법이다.
도 11은 분산형 식별자 토큰으로 애플리케이션 인증을 수행하기 위한 예시적인 방법이다.
도 12는 어카운트 복구를 수행하기 위한 예시적인 방법이다.
도 13은 사용자를 로그아웃하기 위한 예시적인 방법이다.
도 14는 본 기술을 구현하기 위한 컴퓨팅 환경의 블록 다이어그램이다.
본 기술은, 대략적으로 설명하면, 분산 컴퓨팅 시스템 상에서 실행되는 분산형 컴퓨터 애플리케이션들을 구축하기 위한 비-보관 인증 시스템을 제공한다. 본 기술은 웹 브라우저, 클라이언트 애플리케이션, 또는 다른 소프트웨어 내에서 작동하고 브라우저를 통해 분산형 컴퓨터 애플리케이션들에의 액세스를 제공한다. 본 기술은, 사용자 아이덴티티를 표현하는 공개-개인 키 쌍이 클라이언트 머신 상에서 생성된 후에 하나의 중앙집중형 컴퓨팅 시스템에 의존하는 일 없이 제3자 플랫폼에 의해 직접 암호화되는 비-보관 기술이다.
본 시스템은 각각의 사용자 및 애플리케이션 조합에 대해 생성된 공개-개인 키 쌍들을 사용하여, 아이덴티티 인증 및 인가에 관련된 작업을 수행한다. 본 기술의 비-보관 키 관리 시스템은, 네트워크에 걸쳐 위치되고 사용자의 디바이스로부터 원격으로 있는 "하드웨어 월렛(hardware wallet)" 시스템을 사용하여, 키 정보를 저장하고 암호화 및 암호화해제를 수행한다.
본 시스템에 의해 생성된 키 쌍들을 사용하여 분산형 인증이 제공된다. 이 시스템은, 인증 토큰(분산형 식별자 토큰, 또는 DIDT)에 서명하는 데 사용될 수 있는 키 쌍을 사용자에게 제공한다. 키는 사용자의 아이덴티티를 표현한다. 생성된 토큰이 사용자 액션들을 인증 및 인가하는 데 사용될 수 있다. 키 쌍들은 위임된 키 관리, 또는 비-보관 키 관리를 구현하는 데 사용될 수 있다.
본 메커니즘은 서버리스 아키텍처(serverless architecture)를 구현하기 위한 플랫폼을 제공하는 제3자 시스템들과 함께 사용될 수 있다. 플랫폼은, 예를 들어 아마존(Amazon, Inc.)과 같은, 서버리스 애플리케이션에 대한 글로벌 플랫폼일 수도 있다. 다른 제3자 플랫폼들이 또한 사용될 수도 있다.
본 명세서에서 설명되는 본 기술은, 사용자 식별을 관리하고 인증 및 인가 프로세스를 보호하는 것에 관련된 기술적 문제들을 해결한다. 실수들은 손상된 사용자 프라이버시 또는 아이덴티티로부터 비인가된 액세스 그리고 심지어 재정적 손실로 이어진다. 대부분의 애플리케이션은 사용자명 및 패스워드 조합들을 사용하여 사용자 식별을 결정한다. 이들 방법들은 시대에 뒤떨어져 있는데, 이는 적어도 패스워드 유출들이 만연하고, 회사 리소스들로부터 도난당한 해시된 패스워드들을 복구하기 위해 리소스들이 사용될 수 있기 때문이다. 암호화 표준들이 또한 데이터를 보호하는 데 사용될 수 있고, 최신 보안 시스템들에서 사용되고 있다. 그러나, 암호화 기반 보안의 소비자 배포는 수용가능한 사용자 경험을 제공하는 것에 실패하였다. 예를 들어, 암호화 키들은, 변경될 수 없는 컴퓨터 생성된 긴 스트링들의 텍스트이므로, 이들은 사용자들이 작업하기 어렵다. 추가로, 개인 키의 손실 또는 도난으로부터 복구하는 것이 매우 어렵고 종종 불가능할 수 있다.
본 기술은, 사용자 식별을 관리하고 인증 및 인가 프로세스를 보호하는 것에 관련된 기술적 문제를 해결한다. 본 기술은 키 관리 기법들 및 분산형 식별자 토큰(DIDT)을 사용하여 사용자 아이덴티티를 관리한다. 키 관리는, 원격 하드웨어 보안 모듈(HSM)들을 사용하여 클라이언트에서 생성된 개인 키를 암호화하는 것을 수반한다. 본 기술은 패스워드들 및 사용자명들보다 더 보안된 보호를 갖는 분산형 솔루션을 제공하지만, 개인 키가 클라이언트 디바이스 상에서 손실된 경우 그 키를 암호화해제하는 것이 가능하다는 부가적인 이익을 제공한다.
도 1은 위임된 키 관리 시스템의 블록 다이어그램이다. 도 1의 블록 다이어그램(100)은 클라이언트(110), 서버(125), 및 제3자 시스템(155)을 포함한다. 클라이언트(110)는 브라우저(115) 및 사용자 아이덴티티(120)를 포함한다. 사용자 아이덴티티는, 사용자 식별 정보, 메타데이터, 및 전체 시스템의 사용자와 연관된 다른 데이터를 포함할 수도 있다. 브라우저(115)는, 인터페이스를 통해, 콘텐츠 페이지들을 포함하여 네트워크 콘텐츠를 렌더링하는 애플리케이션을 포함할 수도 있다.
서버(125)는 웹 콘텐츠(130), 서버 엔진(135), 사용자 테이블(140), 키 테이블(145), 및 사용자 데이터베이스(150)를 포함한다. 웹 콘텐츠(130)는, 클라이언트(110)에서 서버(125)에 의해 브라우저(115)에 제공되는 콘텐츠이다. 웹 콘텐츠는, 콘텐츠 페이지들, 인터페이스들, 및 클라이언트(110)에서의 사용자가 위임된 키 관리 시스템에 액세스하게 하기 위한 다른 정보를 포함한다. 서버 엔진(135)은, 서버(125)에 연결하기 위한 API를 포함한다. 사용자 테이블(140)은 사용자에 대한 사용자 메타데이터 및 식별 정보를 포함한다. 키 테이블(145)은, 각각의 사용자에 대해 저장되는 암호화된 키를 포함한다. 사용자 데이터베이스는 각각의 사용자에 대한 식별 정보를 포함한다.
클라이언트(110) 및 서버(125)는 위임된 키 관리 시스템을 제공하기 위해 다양한 상이한 제3자 시스템들과 함께 사용될 수도 있다. 제3자(155)와 관련하여 논의된 모듈들은 예시적인 것이고, 다른 타입들의 제3자 시스템들이 서버(125) 및 클라이언트(110)와 호환되도록 의도된다.
제3자 시스템(155)은, 액세스 토큰 서비스(160), 크리덴셜 서비스(165), 허가 서비스(170), 및 하드웨어 보안 모듈 리소스(175)를 제공하는 하나 이상의 서버들을 포함한다. 액세스 토큰 서비스(160)는 토큰을 생성하여 이를 사용자에게 제공할 수 있다. 크리덴셜 서비스(165)는 특정 사용자에 대한 크리덴셜들을 핸들링한다. 허가 서비스(170)는 크리덴셜을 이용하여 수신된 요청을 프로세싱하는 데 사용된다. 예를 들어, 허가 서비스는 사용자가 리소스에 액세스하기 위한 허가를 갖고 있는지를 확인하기 위해 체크들을 수행할 수 있다. 하드웨어 보안 모듈 리소스(175)는 사용자들이 데이터를 암호화 및 암호화해제하기 위한 보안을 제공한다. 크리덴셜 서비스(165)는 제3자 시스템에의 직접적인 액세스를 제공하여 서버(125)를 바이패스(bypass)한다.
동작 시에, 클라이언트(110)에서의 사용자가 서버(125)를 통해 인증을 수행할 수도 있다. 그 후에 서버(125)는 제3자 시스템과 통신할 수도 있고, 그 후에 제3자 시스템은 최종 사용자를 위한 토큰을 생성할 수도 있다. 토큰은 특정 크리덴셜과 교환하는 데 사용될 수 있다. 예를 들어, 크리덴셜은 클라이언트 측에서 암호화 및 암호화해제하기 위해 하드웨어 보안 모듈 리소스(175)에 액세스하는 데 사용될 수 있다. 토큰을 제공하는 것, 크리덴셜을 획득하는 것, 그리고 트랜잭션들을 수행하는 것이 도 2 내지 도 10과 관련하여 아래에 더 상세히 논의된다.
도 2a는 비-보관 시스템에서 개인 키를 생성하기 위한 프로세스를 예시한다. 도 2는 클라이언트(110), 서버(125), 제3자 서비스(155), 및 하드웨어 보안 모듈(175)을 포함한다. 동작들 202 내지 220이 요소들(110, 125, 155, 및 175) 사이에서 발생한다. 먼저, 가입 이벤트(sign-up event)가 클라이언트에서 검출된다(202). 가입 이벤트는, 클라이언트 디바이스에서 사용자에 의해 개시된 새로운 어카운트 요청을 포함할 수도 있다. 가입 요청 메시지(202)가 클라이언트(110)로부터 서버(125)로 송신된다. 서버(125)는 가입 메시지(205)를 수신하고 사용자를 인증한다. 인증은, 가입 이벤트를 개시한 사용자와 연관된 이메일 어카운트로 이메일을 전송하는 것을 포함할 수 있다.
사용자를 인증한 후에, 서버는 새로운 사용자 요청 메시지를 생성한다(204). 새로운 사용자 요청 메시지는 서버(125)로부터 제3자 서비스(155)로 송신된다. 제3자 서비스는 206에서 새로운 사용자 요청을 수신하고, 시간 제한 액세스 토큰(time bound access token)을 생성하며, 토큰을 서버(125)에 송신한다. 시간 제한 액세스 토큰은, 토큰 내에 포함되는 생존 시간(time-to-live)(TTL) 데이터를 포함할 수도 있다. 서버는 208에서 시간 제한 토큰을 클라이언트(110)에 포워딩한다. 시간 제한 토큰은 클라이언트(110)가 제3자 서비스(155)와 직접 통신하게 한다.
클라이언트(110)는 210에서 시간 제한 액세스 토큰을 제3자 서비스(155)에 송신한다. 제3자 서비스는 단계 212에서 액세스 토큰(예를 들어, 시간 제한 액세스 토큰)을 수신하고, 마스터 키 및 범위지정된 크리덴셜(예를 들어, 인증 정보를 포함하는 레코드)을 생성하며, 범위지정된 크리덴셜을 사용자에게 송신한다. 범위지정된 크리덴셜들을 사용자에게 제공함으로써, 사용자는 제3자 서비스에서 작업하여, 예를 들어 암호화 및 암호화해제를 위해, 제3자 서비스 상에 저장된 이들의 마스터 키들에 액세스하는 것이 가능해진다. 서버는 이 단계에서 바이패스되고, 범위지정된 크리덴셜들을 위조하거나 또는 가로챌 수 없다. 일부 경우들에서, 액세스 토큰 및 범위지정된 크리덴셜들은, 감사 로그(audit log)들 및 생존 시간(TTL)이 인에이블된 상태에서, 제3자 서비스에 의해 동적으로 생성될 수 있다.
클라이언트는 단계 214에서 범위지정된 크리덴셜들에 기초하여 공개-개인 키 쌍을 생성한다. 공개-개인 키 쌍은, 클라이언트에서의 네트워크 브라우저 내에서 구현되는 자바스크립트 아이프레임(JavaScript iframe) 내에서 생성된다. 아이프레임은, 본 기술을 통합한 것일 수도 있는 애플리케이션에 액세스불가능하다. 공개-개인 키 쌍은 암호화, 예를 들어, 암호로 보안된 의사 랜덤 256비트 엔트로피(cryptographically secure pseudo-random 256-bit entropy)를 사용하여 생성될 수 있다. 일부 경우들에서, 공개-개인 키 쌍은 ECDSA(secp256k1) 알고리즘을 사용하여 생성될 수 있는데, 이 알고리즘은 페이로드에 서명하고 DIDT를 검증하는 데에도 또한 사용될 수 있다. 일단 생성되면, 생성된 키 쌍 및 범위지정된 크리덴셜들이 단계 216에서 제3자 서비스에 송신된다. 그 후에, 제3자 서비스는 단계 217에서 생성된 키 쌍 및 범위지정된 크리덴셜들을 하드웨어 보안 모듈에 전송할 수도 있다. 하드웨어 서비스 모듈은 사용자 및 특정 애플리케이션에 전용된다. 하드웨어 서비스 모듈은 단계 218에서 개인 키 및 범위지정된 크리덴셜들을 수신하고, 마스터 키를 사용하여 개인 키를 암호화하며, 암호화된 개인 키를 제3자 서비스에 다시 송신한다. 그 후에, 제3자 서비스는 단계 218에서 암호화된 개인 키를 클라이언트에 송신한다. 키들이 암호화된 후에, 키가 클라이언트 네트워크 브라우저의 아이프레임 상에 저장되고 단계 220에서 암호화된 키의 사본(copy)이 서버(125)에 업로드된다. 키의 업로드된 사본은 사용자의 아이덴티티를 복구하는 데 사용될 수 있다. 사용자가 이에 후속하여 인증할 때, 암호화된 개인 키가 클라이언트에 의해 아이프레임으로부터 액세스되고, 사용자들은 직접 제3자 서비스를 이용하여 암호화된 키를 암호화해제할 수 있다.
도 2b는 사용자에 의해 트랜잭션에 서명하기 위한 방법을 예시한다. 도 2b에서, 통신 요소들은, 로그인된 사용자를 갖는 클라이언트(110), 서버(125), 제3자 서비스(155), 하드웨어 보안 모듈(175), 및 블록체인 서비스(185)이다. 로그인된 사용자를 갖는 클라이언트는 단계 230에서 제3자 서비스에 시간 제한 액세스 토큰을 제공한다. 제3자 서비스는 단계 232에서 액세스 토큰을 수신하고, 범위지정된 크리덴셜을 생성하며, 범위지정된 크리덴셜을 클라이언트에 다시 송신한다. 그 후에, 범위지정된 크리덴셜들이 단계 234에서 클라이언트에 의해 하드웨어 보안 모듈에 송신된다. 범위지정된 크리덴셜들이 송신되어 암호화된 개인 키를 암호화해제한다. 하드웨어 보안 모듈은 단계 236에서 범위지정된 크리덴셜들을 수신하고, 범위지정된 크리덴셜들을 사용하여 암호화된 개인 키를 암호화해제하며, 암호화해제된 개인 키를 리턴한다. 일단 암호화해제된 개인 키가 클라이언트에 의해 수신되면, 클라이언트는 단계 238에서 암호화해제된 개인 키를 사용하여 트랜잭션 데이터에 서명할 수 있다. 개인 키가 단계 240에서 클라이언트에서의 메모리로부터 퍼지(purge)될 수도 있다. 그 후에, 서명된 트랜잭션 데이터가 단계 242에서 서버에 제출될 수도 있다. 그 후에, 서버(125)는 단계 244에서 서명된 트랜잭션 데이터를 블록체인 서비스(185)에 제출할 수도 있다. 일단 수신되면, 서명된 트랜잭션 데이터가 블록체인(185)에 의해 저장되고, 단계 246에서 확인 또는 제출 결과가 서버(125)에 리턴된다. 제출 결과의 수신 시에, 단계 248에서 결과가 서버로부터 클라이언트로 리턴된다.
도 2c는 개인 키를 복구하기 위한 방법을 예시한다. 도 2c에서 통신하는 요소들은 클라이언트(110), 서버(125), 제3자 서버들(155), 및 하드웨어 보안 모듈(175)을 포함한다. 먼저, 클라이언트는 단계 250에서 잊어버린 패스워드 요청에 관한 메시지를 서버(125)에 전송할 수도 있다. 서버(125)는 메시지로서 사용자의 패스워드를 재설정하기 위한 이메일을 전송할 수도 있다(252). 메시지들이 사용자의 이메일 서비스(280)에 전송된다. 그 후에, 사용자들은 단계 254에서 클라이언트(110)에서 그리고 서버가 패스워드 재설정 이메일을 올려보낸 것이 통지된다. 사용자가 이들의 패스워드를 재설정할 수도 있고 단계 256에서 패스워드 재전송 메시지가 클라이언트(110)로부터 서버(125)로 전송된다. 그 후에, 단계 258에서 시간 제한 액세스 토큰 요청이 서버(125)에 의해 제3자 서비스(155)에 전송된다. 제3자 서비스는 단계 260에서 요청을 수신하고 시간 제한 액세스 토큰을 생성하며, 토큰을 서버(125)에 송신한다. 서버(125)는 단계 262에서 토큰을 수신하고 액세스 토큰을 클라이언트(110)에 포워딩한다.
클라이언트(110)는 단계 264에서 액세스 토큰을 제3자 서비스에 송신할 수도 있다. 제3자 서비스(155)는 단계 266에서 토큰을 수신할 수도 있고 사용자에 대한 범위지정된 크리덴셜들을 클라이언트에 다시 송신한다. 범위지정된 크리덴셜들의 수신 시에, 클라이언트는 단계 268에서 서버로부터 암호화된 개인 키를 요청할 수도 있다. 클라이언트가 암호화된 개인 키를 초기에 생성할 때, 사용자가 이들의 크리덴셜들을 복구할 필요가 있는 경우에 사본이 서버(125)에 전송된다. 서버는 단계 270에서 클라이언트의 요청에 응답하여 암호화된 개인 키를 제공한다. 범위지정된 크리덴셜들 및 개인 키가, 개인 키를 암호화해제하라는 요청과 함께, 단계 272에서 클라이언트(110)로부터 하드웨어 보안 모듈로 송신된다. 하드웨어 보안 모듈(175)은 단계 274에서 요청들을 수신하고, 개인 키를 암호화해제하며, 암호화해제된 개인 키를 클라이언트(110)에 리턴한다.
도 3은 위임된 키 관리 시스템에 대한 로그인 프로세스의 예시적인 방법이다. 단계 310에서 예를 들어 전화 번호, 이메일과 같은 사용자 정보, 또는 다른 정보가 사용자에 의해 제공되고 클라이언트에서 수신된다. 도 3의 방법과 관련하여 전화 번호가 논의되고 있지만, 다른 정보, 예컨대 이메일, 사용자명, 또는 다른 정보가 로그인을 수행하기 위해 사용자로부터 수신될 수 있다. 클라이언트(110)에 의해 수신된 전화 번호가 서버(125)에 제공된다. 단계 315에서 전화 번호가 기존 어카운트와 연관되는지 또는 새로운 전화 번호인지 여부에 관한 결정이 서버(125)에서 이루어진다. 전화 번호가 어카운트와 연관되고 새로운 전화 번호가 아닌 경우, 사용자는 단계 355에서 전화 번호를 사용하여 인증된다. 그 후에, 도 3의 방법은 단계 350에서 로그인 세션으로 리턴되고 로그인 프로세스는 단계 360에서 종료된다.
제공된 사용자 정보가 단계 315에서 새로운 전화 번호, 이메일 또는 다른 정보인 경우, 그러면 사용자에 대한 셋업 프로세스가 개시된다. 먼저, 단계 320에서 인증이 수행된다. 그 후에, 액세스 토큰이 단계 330에서 수신된다. 액세스 토큰은 클라이언트(110)에서 사용자에 의해 수신될 수도 있다. 액세스 토큰을 수신하기 위한 더 많은 세부사항들이 도 3의 방법과 관련하여 논의된다. 그 후에, 액세스 토큰은 단계 335에서 범위지정된 크리덴셜들과 교환될 수도 있다. 액세스 토큰은 직접 제3자 시스템을 이용하여 크리덴셜들과 단지 교환될 수 있다. 단계 335에 대한 더 많은 세부사항이 도 4의 방법과 관련하여 논의된다.
단계 320 내지 335와 동시에, 단계 325에서 공개 키 및 개인 키가 생성된다. 공개 및 개인 키는 클라이언트 디바이스(110)의 브라우저에서 생성될 수도 있다. 단계 340에서 클라이언트 디바이스(110) 상의 개인 키들을 암호화하기 위해 범위지정된 크리덴셜들을 이용하는 하드웨어 보안 모듈이 액세스되는데, 이는 서버(125)를 완전히 바이패스한다. 이러한 방식으로, 사용자가 개인 키들을 암호화하기 위해 범위지정된 크리덴셜들을 이용하는 하드웨어 보안 모듈과 상호작용하도록 요구된다. 단계 340에 대한 더 많은 세부사항이 도 5의 방법과 관련하여 논의된다.
개인 키들의 암호화 후에, 암호화된 개인 키가 단계 345에서 업로드되고 사용자 로그인 세션이 단계 350에서 계속된다. 그 후에, 도 3의 방법이 단계 360에서 종료된다.
도 4는 토큰을 요청하기 위한 예시적인 방법이다. 도 4의 방법은 도 2의 방법의 단계 230에 대한 더 많은 세부사항을 제공한다. 먼저, 단계 410에서 토큰 요청이 수신된다. 그 후에, 토큰 요청이 새로운 사용자와 연관되는지 여부에 관한 결정이 단계 415에서 이루어진다. 요청이 새로운 사용자로부터의 것이 아닌 경우, 사용자 아이덴티티 및 리소스들이 단계 435에서 검색된다. 일부 경우들에서, 사용자 아이덴티티 및 리소스는 제3자에게 특정될 수도 있다. 그 후에, 방법은 단계 440으로 계속되는데 여기서 단계 440에서 액세스 토큰이 사용자에게 리턴되며, 도 4의 방법은 단계 445에서 종료된다.
단계 415에서 토큰 요청에 기초하여 사용자가 새로운 사용자인 것으로 결정되는 경우, 단계 420에서 사용자 어카운트가 생성되고 아이덴티티 풀(identity pool)에 부가된다. 임의로, 그 후에 전용 하드웨어 보안 모듈 리소스가 단계 425에서 생성된다. 일부 경우들에서, 특정 사용자에 대한 것보다는 오히려, 풀에 대해 전용 하드웨어 보안 리소스가 생성될 수도 있다. 따라서, 일단 사용자가 생성되면 부가적인 풀이 필요한 경우에만 전용 하드웨어 보안 모듈 리소스가 단계 425에서 단지 생성될 수도 있다. 단계 430에서 액세스를 제약하도록 그리고 사용자 아이덴티티와 리소스를 링크시키도록 폴리시(policy)가 업데이트된다. 그 후에, 새롭게 생성된 사용자로부터의 액세스 토큰이 단계 440에서 리턴되고, 방법은 단계 445에서 종료된다.
도 5는 범위지정된 크리덴셜들을 결정하기 위한 예시적인 방법이다. 먼저, 범위지정된 크리덴셜들 요청이 단계 510에서 수신된다. 그 후에, 공급된 액세스 토큰이 단계 515에서 검증된다. 단계 520에서 토큰이 유효한지 여부에 관한 결정이 이루어진다. 토큰이 유효하지 않은 경우, 범위지정된 크리덴셜들 요청은 단계 535에서 거부되고 도 5의 프로세스는 단계 540에서 종료된다.
단계 520에서 토큰이 유효한 것으로 결정되는 경우, 토큰은 단계 525에서 범위지정된 크리덴셜들과 교환된다. 일부 경우들에서, 사용자들이 한 사이트로 유도되는데, 여기서 토큰은, 특정 사용자 아이덴티티 풀과 연관된 범위지정된 크리덴셜들과 교환된다. 그 후에, 사용자는 특정 리소스들에 액세스하기 위한 풀과 연관된 허가들을 가질 것이다. 그 후에, 범위지정된 크리덴셜들은 단계 530에서 사용자에게 리턴된다. 크리덴셜들은 제3자 시스템에 의해 클라이언트에게 리턴된다. 일부 경우들에서, 위임된 키 관리 시스템을 구현하기 위해서는, 제3자 시스템에 의해 크리덴셜들이 리턴되어야 한다. 그 후에, 도 5의 방법이 단계 540에서 종료된다.
도 6은 허가를 결정하기 위한 예시적인 방법이다. 도 6의 방법은 도 2의 방법의 단계 240에 대한 더 많은 세부사항을 제공한다. 먼저, 전용 하드웨어 보안 모듈이 단계 610에서 액세스된다. 그 후에, 사용자 공급된 크리덴셜들이 단계 615에서 검증되고, 단계 620에서 사용자 크리덴셜들이 유효한지 여부에 관한 결정이 이루어진다. 일부 경우들에서, 사용자가 제3자 서비스로부터 크리덴셜들을 다시 수신할 때, 제3자 서비스는 이에 후속하여 크리덴셜들이 유효한지를 결정할 수도 있다. 크리덴셜들이 유효하지 않은 경우, 리소스 액세스는 단계 625에서 거부되고 도 6의 방법은 단계 645에서 종료된다.
단계 620에서 크리덴셜들이 유효한 것으로 결정되는 경우, 크리덴셜들은 단계 630에서 폴리시에 대해 체크된다. 폴리시는, 특정 사용자 풀과 연관된 사용들에 적용된다. 맡겨진 역할이 있고, 특정 사용자 풀에 대해 인증하는 모든 사람이 이들의 크리덴셜들로 체크된다. 인증이 성공적인 경우, 사용자는 특정된 역할로 될 수 있다. 특정 역할은, 역할에 부여된 특정 폴리시를 가질 것이다.
폴리시에 대해 크리덴셜들을 체크한 후에, 단계 635에서 사용자가 리소스에 액세스할 수 있는지 여부에 관한 결정이 이루어진다. 사용자가 리소스에 액세스하기 위한 허가를 갖지 않는 경우, 단계 625에서 리소스 액세스가 거부되고 방법은 단계 645로 계속된다. 제3자 시스템에 의해 결정된 바와 같이 사용자가 리소스에 액세스할 수 있는 경우, 리소스 액세스는 단계 640에서 허용되고 도 6의 방법은 단계 645에서 종료된다.
일부 경우들에서, 본 기술은 트랜잭션들에 서명하는 데 사용될 수 있다. 암호화된 개인 키에 기초하여 트랜잭션 데이터가 서명될 수 있다. 서명된 트랜잭션 데이터는, 함께 링크되는 블록들에 데이터를 저장하는 복수의 링크된 피어-투-피어 컴퓨터(peer-to-peer computer)들에서의 저장을 위해 제출될 수 있다.
도 7은 분산형 애플리케이션 트랜잭션을 전송하기 위한 예시적인 방법이다. 먼저, 단계 710에서 사용자가 로그인된다. 로그인 후에, 암호화된 개인 키가 로그인 사용자에 대해 클라이언트(110) 상에 존재하는지 여부에 관한 결정이 단계 715에서 이루어진다. 암호화된 개인 키가 존재하는 경우, 단계 725에서 액세스 토큰이 수신된다. 암호화된 개인 키가 사용자에 대해 존재하지 않는 경우, 암호화된 개인 키가 단계 720에서 검색되고, 방법은 단계 725로 계속된다.
단계 725에서 액세스 토큰이 수신된다. 그 후에, 액세스 토큰은 단계 730에서 범위지정된 크리덴셜들과 교환된다. 다음으로, 단계 735에서 암호화된 개인 키들을 암호화해제하기 위해 범위지정된 크리덴셜들을 이용하는 하드웨어 보안 모듈이 액세스된다.
페이로드가 단계 740에서 구성된다. 페이로드는 분산형 애플리케이션들에 대한 플랫폼 상의 사용을 위해 구성된다. 일부 경우들에서, 플랫폼은 분산형 애플리케이션들에 대한 글로벌 플랫폼일 수도 있다. 일단 개인 키로 암호화해제 및 암호화가 완료되면, 사용자는 실행 동작들을 위해 그것을 클라이언트 사이트 상에서 사용할 수 있다. 그 후에, 페이로드가 단계 745에서 개인 키를 사용하여 서명된다. 그 후에, 서명된 페이로드는 단계 750에서 분산형 애플리케이션 플랫폼 네트워크에 전송된다. 그 후에, 도 7의 방법이 단계 755에서 종료된다.
도 8은 분산형 콘트랙트 함수를 전송하기 위한 예시적인 방법이다. 사용자가 단계 810에서 로그인한다. 로그인 프로세스는 도 2의 방법과 관련하여 더 상세히 논의된다. 로그인 후에, 단계 815에서 암호화된 개인 키가 로그인한 사용자에 대해 클라이언트(110) 상에 존재하는지 여부에 관한 결정이 이루어진다. 암호화된 개인 키가 존재하는 경우, 도 8의 방법은 단계 825로 계속된다. 암호화된 개인 키가 이미 존재하지 않는 경우, 암호화된 개인 키가 단계 820에서 검색되고, 방법은 단계 825로 계속된다.
단계 825에서 액세스 토큰이 수신된다. 그 후에, 액세스 토큰은 단계 830에서 범위지정된 크리덴셜들과 교환될 수도 있다. 단계 835에서 암호화된 개인 키들을 암호화해제하기 위해 범위지정된 크리덴셜들을 이용하는 하드웨어 보안 모듈이 액세스될 수 있다. 그 후에, 콘트랙트 콜 페이로드(contract call payload)가 단계 840에서 구성될 수도 있다. 일부 경우들에서, 페이로드는 분산형 애플리케이션에 대해 해석될 수 있다.
페이로드가 단계 845에서 개인 키를 이용하여 서명될 수 있고, 그 후에 서명된 페이로드는 단계 850에서 분산형 애플리케이션 플랫폼에 전송된다. 그 후에, 도 8의 방법이 단계 855에서 종료된다.
도 9는 분산형 사용자 서명을 수행하기 위한 예시적인 방법이다. 단계 910에서 사용자가 로그인된다. 사용자 로그인은 도 2의 방법과 관련하여 논의된 바와 같이 진행된다. 로그인 후에, 단계 915에서 개인 키가 사용자에 대해 클라이언트(90) 상에 존재하는지 여부에 관한 결정이 이루어진다. 사용자 키가 존재하는 경우, 도 9의 방법은 단계 925로 계속된다. 개인 키가 존재하지 않는 경우, 단계 920에서 로그인한 사용자에 대해 암호화된 개인 키가 검색되고 도 9의 방법은 단계 925로 계속된다.
단계 925에서 액세스 토큰이 수신된다. 그 후에, 액세스 토큰은 단계 930에서 범위지정된 크리덴셜들과 교환될 수도 있다. 단계 935에서 암호화된 개인 키들을 암호화해제하기 위해 범위지정된 크리덴셜들을 이용하는 하드웨어 보안 모듈이 액세스될 수 있다.
그 후에, 페이로드가 단계 945에서 개인 키를 이용하여 서명될 수 있다. 그 후에, 서명된 페이로드는 단계 950에서 분산형 애플리케이션 플랫폼에 전송될 수 있다. 그 후에, 도 9의 방법이 단계 955에서 종료된다.
도 10은 분산형 식별자 토큰을 생성하기 위한 예시적인 방법이다. 단계 1010에서 사용자가 로그인된다. 사용자가 로그인된 동안의 일부 포인트에서, 단계 1015에서 암호화된 개인 키가 존재하는지 여부에 관한 결정이 이루어진다. 암호화된 개인 키가 존재하지 않는 경우, 단계 1020에서 암호화된 개인 키가 검색된다. 그 후에, 도 10의 방법은 단계 1025로 계속된다. 암호화된 개인 키가 존재하는 경우, 시스템은 단계 1025에서 액세스 토큰을 수신한다. 액세스 토큰은 단계 1030에서 하드웨어 보안 모듈로부터 클라이언트에 의해 범위지정된 크리덴셜들과 교환된다. 하드웨어 보안 모듈은 단계 1035에서 암호화된 개인 키들을 암호화해제하기 위해 범위지정된 크리덴셜들을 이용하여 액세스된다. 단계 1040에서 분산형 식별자 토큰(DIDT) 페이로드가 구성된다. 단계 1045에서 DIDT 페이로드는 개인 키를 이용하여 서명된다. 그 후에, 도 10의 방법이 단계 1050에서 종료된다.
도 11은 분산형 식별자 토큰으로 애플리케이션 인증을 수행하기 위한 예시적인 방법이다. 단계 1110에서 로그인 요청이 수신된다. 그 후에, 단계 1115에서 분산형 식별자 토큰(DIDT)이 생성된다. DIDT는 예를 들어 클라이언트 애플리케이션 또는 네트워크 브라우저 아이프레임에 의해 클라이언트에서 생성될 수도 있다. 도 10의 방법은 DIDT 토큰을 생성하기 위한 더 많은 세부사항을 제공한다. 그 후에, DIDT는 단계 1120에서 애플리케이션으로 리턴된다. 애플리케이션은 단계 1125에서 분산형 식별자 토큰을 검증할 수 있다. 그 후에, 단계 1130에서 분산형 식별자 토큰이 검증되는지 여부에 관한 결정이 이루어진다. 토큰이 검증되지 않은 경우, 그러면 도 11의 방법은 단계 1140에서 종료된다. 토큰이 애플리케이션에 의해 검증되는 경우, 애플리케이션은 단계 1135에서 사용자를 성공적으로 검증한다. 그 후에, 도 11의 방법이 단계 1140에서 종료된다.
도 12는 어카운트 복구를 수행하기 위한 예시적인 방법이다. 단계 1210에서 어카운트 복구를 개시하라는 요청이 사용자로부터 수신된다. 단계 1215에서 복구 이메일들이 사용자에게 전송된다. 사용자는 단계 1220에서 그리고 이메일을 통해 사용자에게 제공된 패스워드 재설정 링크로 패스워드를 재설정할 수도 있다. 일단 패스워드가 재설정되었다면, 사용자는 단계 1225에서 로그인을 다시 수행하도록 프롬프트될 수도 있다. 그 후에, 암호화된 개인 키가 단계 1230에서 사용자에게 리턴될 수도 있다. 그 후에, 도 12의 방법이 단계 1235에서 종료된다.
도 13은 사용자를 로그아웃하기 위한 예시적인 방법이다. 먼저, 사용자는 단계 1310에서 로그아웃된다. 사용자에 대한 암호화된 개인 키가 단계 1320에서 사용자에 대한 클라이언트 측에서 삭제된다. 그 후에, 사용자 로그인 세션이 단계 1330에서 비활성화된다. 그 후에, 도 13의 방법이 단계 1340에서 종료된다.
도 14는 본 기술에서 구현하기 위한 컴퓨팅 환경의 블록 다이어그램이다. 도 14의 시스템(1400)은 배터리 클라이언트(140), 서버(145), 및 제3자 시스템(155)을 구현하는 머신들의 유사한 것들의 맥락들에서 구현될 수도 있다. 도 14의 컴퓨팅 시스템(1400)은 하나 이상의 프로세서들(1410) 및 메모리(1420)를 포함한다. 메인 메모리(1420)는 프로세서(1410)에 의한 실행을 위한 명령어들 및 데이터를 부분적으로 저장한다. 메인 메모리(1420)는 동작 중일 때 실행가능 코드를 저장할 수 있다. 도 14의 시스템(1400)은 대용량 스토리지 디바이스(1430), 휴대용 저장 매체 드라이브(들)(1440), 출력 디바이스들(1450), 사용자 입력 디바이스들(1460), 그래픽 디스플레이(1470), 및 주변기기 디바이스들(1480)을 더 포함한다.
도 14에 도시된 컴포넌트들은 단일 버스(1490)를 통해 연결되는 것으로서 도시되어 있다. 그러나, 컴포넌트들은 하나 이상의 데이터 전송 수단을 통해 연결될 수도 있다. 예를 들어, 프로세서 유닛(1410) 및 메인 메모리(1420)는 로컬 마이크로프로세서 버스를 통해 연결될 수도 있고, 대용량 스토리지 디바이스(1430), 주변기기 디바이스(들)(1480), 휴대용 스토리지 디바이스(1440), 및 디스플레이 시스템(1470)은 하나 이상의 입/출력(I/O) 버스들을 통해 연결될 수도 있다.
자기 디스크 드라이브, 광학 디스크 드라이브, 플래시 드라이브, 또는 다른 디바이스로 구현될 수도 있는 대용량 스토리지 디바이스(1430)는, 프로세서 유닛(1410)에 의한 사용을 위한 데이터 및 명령어들을 저장하기 위한 비휘발성 스토리지 디바이스이다. 대용량 스토리지 디바이스(1430)는 본 발명의 실시예들을 구현하기 위한 시스템 소프트웨어를, 메인 메모리(1420)에 그 소프트웨어를 로딩할 목적으로 저장할 수 있다.
휴대용 스토리지 디바이스(1440)는 플로피 디스크, 콤팩트 디스크 또는 디지털 비디오 디스크, USB 드라이브, 메모리 카드 또는 스틱, 또는 다른 휴대용 또는 착탈식 메모리와 같은 휴대용 비휘발성 저장 매체와 함께 동작하여, 도 14의 컴퓨터 시스템(1400)으로 그리고 그로부터 데이터 및 코드를 입력 및 출력한다. 본 발명의 실시예들을 구현하기 위한 시스템 소프트웨어는 그러한 휴대용 매체 상에 저장되고 휴대용 스토리지 디바이스(1440)를 통해 컴퓨터 시스템(1400)에 입력될 수도 있다.
입력 디바이스들(1460)은 사용자 인터페이스의 일 부분을 제공한다. 입력 디바이스들(1460)은, 영숫자 및 다른 정보를 입력하기 위한 키보드와 같은 영숫자 키패드, 포인팅 디바이스 예컨대 마우스, 트랙볼, 스타일러스, 커서 방향 키들, 마이크로폰, 터치스크린, 가속도계, 및 다른 입력 디바이스들을 포함할 수도 있다. 부가적으로, 도 14에 도시된 바와 같은 시스템(1400)은 출력 디바이스들(1450)을 포함한다. 적합한 출력 디바이스들의 예들은 스피커들, 프린터들, 네트워크 인터페이스들, 및 모니터들을 포함한다.
디스플레이 시스템(1470)은 액정 디스플레이(LCD) 또는 다른 적합한 디스플레이 디바이스를 포함할 수도 있다. 디스플레이 시스템(1470)은 텍스트 및 그래픽 정보를 수신하고 디스플레이 디바이스에 출력하기 위해 정보를 프로세싱한다. 디스플레이 시스템(1470)은 또한 터치스크린으로서 입력을 수신할 수도 있다.
주변기기들(1480)은, 컴퓨터 시스템에 부가적인 기능성을 부가하기 위한 임의의 타입의 컴퓨터 지원 디바이스를 포함할 수도 있다. 예를 들어, 주변기기 디바이스(들)(1480)는 모뎀 또는 라우터, 프린터, 및 다른 디바이스를 포함할 수도 있다.
1400의 시스템은 또한, 일부 구현들에서, 안테나들, 라디오 송신기들 및 라디오 수신기들(1490)을 포함할 수도 있다. 안테나들 및 라디오들은 스마트 폰들, 태블릿들, 및 무선으로 통신할 수도 있는 다른 디바이스들과 같은 디바이스들에서 구현될 수도 있다. 하나 이상의 안테나들은 셀룰러 네트워크들, Wi-Fi 네트워크들, 블루투스 디바이스와 같은 상용 디바이스 네트워크들, 및 다른 라디오 주파수 네트워크들에 걸쳐 데이터를 전송 및 수신하기에 적합한 하나 이상의 라디오 주파수들에서 동작할 수도 있다. 디바이스들은, 안테나들을 사용하여 전송 및 수신된 신호들을 프로세싱하기 위한 하나 이상의 라디오 송신기들 및 수신기들을 포함할 수도 있다.
도 14의 컴퓨터 시스템(1400)에 포함된 컴포넌트들은, 본 발명의 실시예들에서의 사용에 적합할 수도 있는 컴퓨터 시스템들에서 전형적으로 발견되는 것들이고, 본 기술분야에 잘 알려져 있는 그러한 컴퓨터 컴포넌트들의 광범위한 카테고리를 표현하도록 의도된다. 따라서, 도 14의 컴퓨터 시스템(1400)은 퍼스널 컴퓨터, 핸드헬드 컴퓨팅 디바이스, 스마트 폰, 모바일 컴퓨팅 디바이스, 워크스테이션, 서버, 미니컴퓨터, 메인프레임 컴퓨터, 또는 임의의 다른 컴퓨팅 디바이스일 수 있다. 컴퓨터는 상이한 버스 구성들, 네트워킹된 플랫폼들, 멀티-프로세서 플랫폼들 등을 또한 포함할 수 있다. 자바(Java), .NET, C, C++, Node.JS, 및 다른 적합한 언어들을 포함하는 언어들뿐만 아니라, 유닉스(Unix), 리눅스(Linux), 윈도우즈(Windows), 매킨토시(Macintosh) OS, 안드로이드(Android)를 포함하는 다양한 운영 체제들이 사용될 수 있다.
본 명세서의 기술의 전술한 상세한 설명은 예시 및 설명의 목적으로 제시되었다. 그것은 본 기술을 개시된 정밀한 형태로 제한하거나 또는 총망라하도록 의도된 것이 아니다. 상기의 교시에 비추어 많은 수정들 및 변형들이 가능하다. 설명된 실시예들은 본 기술의 원리들 및 그의 실제 적용예를 가장 잘 설명하기 위해 선정되어, 그에 의해 본 기술분야의 통상의 기술자들이 고려된 특정 용도에 적합하게 다양한 실시예들에서 그리고 다양한 수정들과 함께 본 기술을 가장 잘 이용하는 것을 가능하게 하였다. 본 기술의 범위는 본 명세서에 첨부된 청구범위에 의해 정의되는 것으로 의도된다.
Claims (20)
- 클라이언트에 대한 비-보관 인증(non-custodial authentication)을 수행하기 위한 방법으로서,
상기 클라이언트에 의해 개인 키를 생성하는 단계 - 상기 클라이언트는 사용자와 연관됨 -;
상기 클라이언트에서, 상기 개인 키로부터 분산형 식별자 토큰(decentralized identifier token)(DIDT)을 생성하는 단계; 및
상기 DIDT에 기초하여 애플리케이션에 대해 상기 사용자를 인증하는 단계
를 포함하는, 방법. - 제1항에 있어서,
서버로부터 클라이언트에 의해 원격 서비스로부터의 액세스 토큰을 수신하는 단계; 및
상기 액세스 토큰에 기초하여 상기 원격 서비스로부터 범위지정된 크리덴셜(scoped credential)들을 수신하는 단계
를 더 포함하고,
상기 범위지정된 크리덴셜들은 제3 서비스에 클라이언트 인가를 제공하는, 방법. - 제2항에 있어서,
상기 개인 키의 암호화된 사본(encrypted copy)에 액세스하는 단계;
상기 개인 키의 암호화된 사본 및 상기 범위지정된 크리덴셜들을 상기 원격 서비스에 제공하는 단계; 및
상기 원격 서비스로부터 상기 클라이언트에 의해 암호화해제(decrypt)된 개인 키를 수신하는 단계
를 더 포함하는, 방법. - 제3항에 있어서,
제3자 서비스와 통신하는 하드웨어 보안 모듈이 상기 개인 키를 암호화해제 및 암호화하는 단계를 더 포함하는, 방법. - 제4항에 있어서,
상기 하드웨어 보안 모듈은, 상기 원격 서비스에 의해 엑스포팅(export)될 수 없는 마스터 키를 사용하여 상기 개인 키를 암호화해제 및 암호화하는, 방법. - 제2항에 있어서,
상기 생성된 개인 키 및 범위지정된 크리덴셜들을 원격 하드웨어 보안 모듈에 송신하는 단계; 및
상기 하드웨어 보안 모듈로부터 암호화된 개인 키를 수신하는 단계
를 더 포함하는, 방법. - 제1항에 있어서,
서버에 의해 상기 클라이언트로부터 메시지를 수신하는 단계 - 상기 메시지는 상기 클라이언트에서 사용자를 식별함 -;
제3자 서비스에 상기 사용자를 등록하는 단계;
상기 제3자 서비스에 상기 사용자를 등록하는 단계에 응답하여 상기 제3자 서비스로부터 상기 서버에 의해 액세스 토큰을 수신하는 단계; 및
상기 서버에 의해 상기 클라이언트에 상기 액세스 토큰을 송신하는 단계
를 더 포함하는, 방법. - 제1항에 있어서,
상기 클라이언트로부터 서버로 암호화된 개인 키를 업로드하는 단계를 더 포함하는, 방법. - 제1항에 있어서,
상기 클라이언트는 네트워크 브라우저를 포함하고, 상기 네트워크 브라우저는 아이프레임(iframe)을 제공하고, 상기 개인 키는 상기 아이프레임 내의 코드에 의해 생성되고, 상기 DIDT는, 상기 네트워크 브라우저의 아이프레임 내에서 실행되는 코드에 의해 생성되는, 방법. - 제8항에 있어서,
상기 클라이언트로부터 손실된 패스워드 이벤트를 검출하는 단계;
상기 서버에 의해 상기 클라이언트에 제2 액세스 토큰을 제공하는 단계;
상기 클라이언트에 의해 상기 액세스 토큰에 기초하여 범위지정된 크리덴셜들에 액세스하는 단계;
상기 범위지정된 크리덴셜들 및 상기 암호화된 키를 원격 서비스에 송신하는 단계; 및
상기 범위지정된 크리덴셜들에 적어도 부분적으로 기초하여 상기 클라이언트에 의해 상기 개인 키의 암호화해제된 사본을 수신하는 단계
를 더 포함하는, 방법. - 제1항에 있어서,
암호화된 개인 키에 기초하여 트랜잭션 데이터에 서명하는 단계; 및
함께 링크되는 블록들에 데이터를 저장하는 복수의 링크된 피어-투-피어 컴퓨터(peer-to-peer computer)들에 저장되도록 상기 트랜잭션 데이터를 제출하는 단계
를 더 포함하는, 방법. - 프로그램이 구현된 비일시적 컴퓨터 판독가능 저장 매체로서,
상기 프로그램은 클라이언트에 대한 비-보관 인증을 수행하기 위한 방법을 위한 방법을 수행하도록 프로세서에 의해 실행가능하고, 상기 방법은,
상기 클라이언트에 의해 개인 키를 생성하는 단계 - 상기 클라이언트는 사용자와 연관됨 -;
상기 클라이언트에서, 상기 개인 키로부터 분산형 식별자 토큰(DIDT)을 생성하는 단계; 및
상기 DIDT에 기초하여 애플리케이션에 대해 상기 사용자를 인증하는 단계
를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제1항에 있어서,
서버로부터 클라이언트에 의해 원격 서비스로부터의 액세스 토큰을 수신하는 단계; 및
상기 액세스 토큰에 기초하여 상기 원격 서비스로부터 범위지정된 크리덴셜들을 수신하는 단계
를 더 포함하고,
상기 범위지정된 크리덴셜들은 제3 서비스에 클라이언트 인가를 제공하는, 방법. - 제2항에 있어서,
상기 개인 키의 암호화된 사본에 액세스하는 단계;
상기 개인 키의 암호화된 사본 및 상기 범위지정된 크리덴셜들을 상기 원격 서비스에 제공하는 단계; 및
상기 원격 서비스로부터 상기 클라이언트에 의해 암호화해제된 개인 키를 수신하는 단계
를 더 포함하는, 방법. - 제2항에 있어서,
상기 생성된 개인 키 및 범위지정된 크리덴셜들을 원격 하드웨어 보안 모듈에 송신하는 단계; 및
상기 하드웨어 보안 모듈로부터 암호화된 개인 키를 수신하는 단계
를 더 포함하는, 방법. - 제1항에 있어서,
서버에 의해 상기 클라이언트로부터 메시지를 수신하는 단계 - 상기 메시지는 상기 클라이언트에서 사용자를 식별함 -;
제3자 서비스에 상기 사용자를 등록하는 단계;
상기 제3자 서비스에 상기 사용자를 등록하는 단계에 응답하여 상기 제3자 서비스로부터 상기 서버에 의해 액세스 토큰을 수신하는 단계; 및
상기 서버에 의해 상기 클라이언트에 상기 액세스 토큰을 송신하는 단계
를 더 포함하는, 방법. - 제1항에 있어서,
상기 클라이언트로부터 서버로 암호화된 개인 키를 업로드하는 단계를 더 포함하는, 방법. - 제1항에 있어서,
상기 클라이언트는 네트워크 브라우저를 포함하고, 상기 네트워크 브라우저는 아이프레임을 제공하고, 상기 개인 키는 상기 아이프레임 내의 코드에 의해 생성되고, 상기 DIDT는, 상기 네트워크 브라우저의 아이프레임 내에서 실행되는 코드에 의해 생성되는, 방법. - 제8항에 있어서,
상기 클라이언트로부터 손실된 패스워드 이벤트를 검출하는 단계;
상기 서버에 의해 상기 클라이언트에 제2 액세스 토큰을 제공하는 단계;
상기 클라이언트에 의해 상기 액세스 토큰에 기초하여 범위지정된 크리덴셜들에 액세스하는 단계;
상기 범위지정된 크리덴셜들 및 상기 암호화된 키를 원격 서비스에 송신하는 단계; 및
상기 범위지정된 크리덴셜들에 적어도 부분적으로 기초하여 상기 클라이언트에 의해 상기 개인 키의 암호화해제된 사본을 수신하는 단계
를 더 포함하는, 방법. - 클라이언트에 대한 비-보관 인증을 수행하기 위한 시스템으로서,
메모리 및 프로세서를 포함하는 서버; 및
상기 메모리에 저장되는 하나 이상의 모듈들
을 포함하고,
상기 하나 이상의 모듈들은 상기 프로세서에 의해 실행되어:
서버로부터 클라이언트로 원격 서비스를 위한 액세스 토큰을 제공하고,
상기 액세스 토큰에 기초하여 제3자 서비스로부터 범위지정된 크리덴셜들을 수신하고,
상기 범위지정된 크리덴셜들에 기초하여 사용자를 인증하는, 시스템.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962904689P | 2019-09-24 | 2019-09-24 | |
US62/904,689 | 2019-09-24 | ||
PCT/US2020/052533 WO2021062020A1 (en) | 2019-09-24 | 2020-09-24 | Non-custodial tool for building decentralized computer applications |
US17/031,372 | 2020-09-24 | ||
US17/031,372 US11546321B2 (en) | 2019-09-24 | 2020-09-24 | Non-custodial tool for building decentralized computer applications |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220086580A true KR20220086580A (ko) | 2022-06-23 |
KR102678262B1 KR102678262B1 (ko) | 2024-06-24 |
Family
ID=74881355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227013537A KR102678262B1 (ko) | 2019-09-24 | 2020-09-24 | 분산형 컴퓨터 애플리케이션들을 구축하기 위한 비-보관 툴 |
Country Status (5)
Country | Link |
---|---|
US (4) | US11546321B2 (ko) |
EP (1) | EP4035333A4 (ko) |
KR (1) | KR102678262B1 (ko) |
CN (1) | CN114788226B (ko) |
WO (1) | WO2021062020A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12074864B2 (en) | 2019-09-24 | 2024-08-27 | Magic Labs, Inc. | Non-custodial tool for building decentralized computer applications |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10715327B1 (en) * | 2018-05-30 | 2020-07-14 | Architecture Technology Corporation | Software credential token issuance based on hardware credential token |
US10855667B2 (en) * | 2018-06-01 | 2020-12-01 | Paypal, Inc. | Using keys with targeted access to the blockchain to verify and authenticate identity |
US11394538B2 (en) * | 2019-11-05 | 2022-07-19 | David Lee Anthony Ramirez | System and method for verifying the no-later-than date-of-existence, data integrity, identity of the recorder, and timestamp of the recording for digital content |
US20210314293A1 (en) * | 2020-04-02 | 2021-10-07 | Hewlett Packard Enterprise Development Lp | Method and system for using tunnel extensible authentication protocol (teap) for self-sovereign identity based authentication |
US11456871B2 (en) * | 2020-11-03 | 2022-09-27 | Provide Technologies, Inc. | System and method for autonomous mapping of enterprise identity |
CN113641986B (zh) * | 2021-08-27 | 2024-04-02 | 上海金融期货信息技术有限公司 | 基于SoftHSM实现联盟链用户私钥托管方法与系统 |
US11714894B2 (en) * | 2021-12-10 | 2023-08-01 | Fmr Llc | Authenticating client applications using an identity fabric blockchain |
US20230275905A1 (en) * | 2022-02-25 | 2023-08-31 | Bank Of America Corporation | Detecting and preventing botnet attacks using client-specific event payloads |
WO2023167257A1 (ja) * | 2022-03-02 | 2023-09-07 | Sushi Top Marketing株式会社 | トークン制御システム |
CN114666066A (zh) * | 2022-05-20 | 2022-06-24 | 杭州天谷信息科技有限公司 | 私钥的恢复方法和系统及更新方法和系统 |
US12105799B2 (en) | 2022-05-31 | 2024-10-01 | As0001, Inc. | Systems and methods for security intelligence exchange |
US20240340301A1 (en) * | 2022-05-31 | 2024-10-10 | As0001, Inc. | Adaptive security architecture based on state of posture |
WO2024173886A1 (en) | 2023-02-17 | 2024-08-22 | Magic Labs, Inc. | Non-custodial tool for data encryption and decryption with decentralized data storage and recovery |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050160298A1 (en) * | 2004-01-20 | 2005-07-21 | Arcot Systems, Inc. | Nonredirected authentication |
US20130074158A1 (en) * | 2011-09-20 | 2013-03-21 | Nokia Corporation | Method and apparatus for domain-based data security |
US20180330368A1 (en) * | 2017-05-11 | 2018-11-15 | Circle Media Labs Inc. | Secure authenticated passwordless communications between networked devices |
US10225084B1 (en) * | 2015-12-29 | 2019-03-05 | EMC IP Holding Company LLC | Method, apparatus and computer program product for securely sharing a content item |
KR20190081299A (ko) * | 2017-12-29 | 2019-07-09 | 부경대학교 산학협력단 | 블록체인 기반 데이터 접근 제어 시스템 및 방법 |
US20190280864A1 (en) * | 2015-07-14 | 2019-09-12 | Fmr Llc | Seed Splitting and Firmware Extension for Secure Cryptocurrency Key Backup, Restore, and Transaction Signing Platform Apparatuses, Methods and Systems |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8201233B2 (en) * | 2006-02-06 | 2012-06-12 | Cisco Technology, Inc. | Secure extended authentication bypass |
US9002018B2 (en) * | 2006-05-09 | 2015-04-07 | Sync Up Technologies Corporation | Encryption key exchange system and method |
US8510810B2 (en) * | 2008-12-23 | 2013-08-13 | Bladelogic, Inc. | Secure credential store |
US8429731B2 (en) * | 2010-03-29 | 2013-04-23 | Denso International America, Inc. | Authentication bypass method |
AU2013200916B2 (en) | 2012-02-20 | 2014-09-11 | Kl Data Security Pty Ltd | Cryptographic Method and System |
US8856517B2 (en) * | 2012-11-27 | 2014-10-07 | Oracle International Corporation | Access management system using trusted partner tokens |
US9124569B2 (en) | 2013-06-14 | 2015-09-01 | Microsoft Technology Licensing, Llc | User authentication in a cloud environment |
US9961048B2 (en) * | 2014-09-07 | 2018-05-01 | Definitive Data Security, Inc. | System and associated software for providing advanced data protections in a defense-in-depth system by integrating multi-factor authentication with cryptographic offloading |
US20160323244A1 (en) * | 2015-05-01 | 2016-11-03 | Telemetry Limited | Secure reporting of events |
US9866545B2 (en) * | 2015-06-02 | 2018-01-09 | ALTR Solutions, Inc. | Credential-free user login to remotely executed applications |
US10063557B2 (en) * | 2015-06-07 | 2018-08-28 | Apple Inc. | Account access recovery system, method and apparatus |
US10171448B2 (en) * | 2015-06-15 | 2019-01-01 | Airwatch Llc | Single sign-on for unmanaged mobile devices |
US9923888B2 (en) * | 2015-10-02 | 2018-03-20 | Veritas Technologies Llc | Single sign-on method for appliance secure shell |
US20170109752A1 (en) * | 2015-10-15 | 2017-04-20 | Mastercard International Incorporated | Utilizing enhanced cardholder authentication token |
US9832024B2 (en) * | 2015-11-13 | 2017-11-28 | Visa International Service Association | Methods and systems for PKI-based authentication |
US9705859B2 (en) * | 2015-12-11 | 2017-07-11 | Amazon Technologies, Inc. | Key exchange through partially trusted third party |
CN105721502B (zh) * | 2016-04-11 | 2019-02-01 | 上海上实龙创智慧能源科技股份有限公司 | 一种用于浏览器客户端和服务器的授权访问方法 |
EP3472970A4 (en) * | 2016-06-17 | 2019-11-27 | Weimer, Jonathan | BLOCK CHAIN SYSTEMS AND METHOD FOR USER AUTHENTICATION |
US10263778B1 (en) * | 2016-12-14 | 2019-04-16 | Amazon Technologies, Inc. | Synchronizable hardware security module |
US10205709B2 (en) * | 2016-12-14 | 2019-02-12 | Visa International Service Association | Key pair infrastructure for secure messaging |
US10637658B2 (en) * | 2017-01-25 | 2020-04-28 | Salesforce.Com, Inc. | Secure internal user authentication leveraging public key cryptography and key splitting |
US10666644B2 (en) * | 2017-02-08 | 2020-05-26 | Revbits, LLC | Enterprise key and password management system |
US10812475B2 (en) * | 2017-04-18 | 2020-10-20 | Servicenow, Inc. | Authenticating access to an instance |
JP7222484B2 (ja) * | 2017-06-02 | 2023-02-15 | ブルーフィン ペイメント システムズ エルエルシー | セキュアなインラインフレームを使用したオンライン支払い処理のシステムおよび方法 |
US20190081299A1 (en) | 2017-09-08 | 2019-03-14 | Samsonite IP Holdings S.ar.l. | Battery Case with Shock-Absorbing Impact Geometry |
US20200313856A1 (en) * | 2019-03-29 | 2020-10-01 | 0Chain, LLC | Systems and methods of blockchain platform for intermediaries and passwordless login |
KR20240093786A (ko) * | 2018-01-17 | 2024-06-24 | 티제로 아이피, 엘엘씨 | 고객 지갑을 복원하기 위해 n개의 키 중 m개를 사용하는 다중 승인 시스템 |
US10693646B2 (en) * | 2018-02-27 | 2020-06-23 | Bank Of America Corporation | Event execution using a blockchain approach |
EP3762844A4 (en) * | 2018-03-07 | 2021-04-21 | Visa International Service Association | SECURE REMOTE TOKEN RELEASE WITH ONLINE AUTHENTICATION |
CN110290094B (zh) * | 2018-03-19 | 2022-03-11 | 华为技术有限公司 | 一种数据访问权限的控制方法和装置 |
US11641278B2 (en) * | 2018-03-27 | 2023-05-02 | Workday, Inc. | Digital credential authentication |
US10607027B1 (en) * | 2018-12-05 | 2020-03-31 | Cyberark Software Ltd. | Secretless secure data distribution and recovery process |
CN110149212B (zh) * | 2019-05-31 | 2022-05-27 | 杭州安恒信息技术股份有限公司 | 一种数据库安全加固方法、装置及电子设备 |
US12063508B2 (en) * | 2019-06-21 | 2024-08-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and apparatus for device authentication and authorisation |
US11233658B2 (en) * | 2019-08-14 | 2022-01-25 | OX Labs Inc. | Digital transaction signing for multiple client devices using secured encrypted private keys |
KR102678262B1 (ko) | 2019-09-24 | 2024-06-24 | 매직 랩스, 인크. | 분산형 컴퓨터 애플리케이션들을 구축하기 위한 비-보관 툴 |
-
2020
- 2020-09-24 KR KR1020227013537A patent/KR102678262B1/ko active IP Right Grant
- 2020-09-24 US US17/031,372 patent/US11546321B2/en active Active
- 2020-09-24 CN CN202080081118.5A patent/CN114788226B/zh active Active
- 2020-09-24 EP EP20868333.4A patent/EP4035333A4/en active Pending
- 2020-09-24 WO PCT/US2020/052533 patent/WO2021062020A1/en unknown
-
2022
- 2022-12-30 US US18/148,934 patent/US11818120B2/en active Active
-
2023
- 2023-09-15 US US18/468,531 patent/US11968206B2/en active Active
-
2024
- 2024-01-08 US US18/406,799 patent/US12074864B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050160298A1 (en) * | 2004-01-20 | 2005-07-21 | Arcot Systems, Inc. | Nonredirected authentication |
US20130074158A1 (en) * | 2011-09-20 | 2013-03-21 | Nokia Corporation | Method and apparatus for domain-based data security |
US20190280864A1 (en) * | 2015-07-14 | 2019-09-12 | Fmr Llc | Seed Splitting and Firmware Extension for Secure Cryptocurrency Key Backup, Restore, and Transaction Signing Platform Apparatuses, Methods and Systems |
US10225084B1 (en) * | 2015-12-29 | 2019-03-05 | EMC IP Holding Company LLC | Method, apparatus and computer program product for securely sharing a content item |
US20180330368A1 (en) * | 2017-05-11 | 2018-11-15 | Circle Media Labs Inc. | Secure authenticated passwordless communications between networked devices |
KR20190081299A (ko) * | 2017-12-29 | 2019-07-09 | 부경대학교 산학협력단 | 블록체인 기반 데이터 접근 제어 시스템 및 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12074864B2 (en) | 2019-09-24 | 2024-08-27 | Magic Labs, Inc. | Non-custodial tool for building decentralized computer applications |
Also Published As
Publication number | Publication date |
---|---|
US11968206B2 (en) | 2024-04-23 |
US11818120B2 (en) | 2023-11-14 |
CN114788226A (zh) | 2022-07-22 |
EP4035333A1 (en) | 2022-08-03 |
KR102678262B1 (ko) | 2024-06-24 |
WO2021062020A1 (en) | 2021-04-01 |
US20240007460A1 (en) | 2024-01-04 |
EP4035333A4 (en) | 2022-11-16 |
US20230139222A1 (en) | 2023-05-04 |
US20240146721A1 (en) | 2024-05-02 |
US12074864B2 (en) | 2024-08-27 |
CN114788226B (zh) | 2024-06-07 |
US11546321B2 (en) | 2023-01-03 |
US20210092108A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102678262B1 (ko) | 분산형 컴퓨터 애플리케이션들을 구축하기 위한 비-보관 툴 | |
US10904234B2 (en) | Systems and methods of device based customer authentication and authorization | |
US20220255931A1 (en) | Domain unrestricted mobile initiated login | |
US20200067922A1 (en) | Out-of-band authentication based on secure channel to trusted execution environment on client device | |
US11102191B2 (en) | Enabling single sign-on authentication for accessing protected network services | |
US9191394B2 (en) | Protecting user credentials from a computing device | |
US9197420B2 (en) | Using information in a digital certificate to authenticate a network of a wireless access point | |
US20130205380A1 (en) | Identity verification | |
US20180091487A1 (en) | Electronic device, server and communication system for securely transmitting information | |
CN109981665B (zh) | 资源提供方法及装置、资源访问方法及装置和系统 | |
US20170339163A1 (en) | System and method for remote authentication with dynamic usernames | |
US20180262471A1 (en) | Identity verification and authentication method and system | |
US10635826B2 (en) | System and method for securing data in a storage medium | |
Khan et al. | A brief review on cloud computing authentication frameworks | |
US20140250499A1 (en) | Password based security method, systems and devices | |
KR102053993B1 (ko) | 인증서를 이용한 사용자 인증 방법 | |
CN105072136A (zh) | 一种基于虚拟驱动的设备间安全认证方法和系统 | |
WO2022140469A1 (en) | Domain unrestricted mobile initiated login | |
CN102780812A (zh) | 一种利用移动终端实现安全输入的方法和系统 | |
KR102542840B1 (ko) | 오픈 api 기반의 금융 인증 서비스 제공 방법 및 시스템 | |
Nosouhi et al. | Towards Availability of Strong Authentication in Remote and Disruption-Prone Operational Technology Environments | |
KR101737925B1 (ko) | 도전-응답 기반의 사용자 인증 방법 및 시스템 | |
US20170012973A1 (en) | Trust framework for secured digital interactions between entities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |