KR20210134655A - 보안 시스템 및 관련 방법 - Google Patents

보안 시스템 및 관련 방법 Download PDF

Info

Publication number
KR20210134655A
KR20210134655A KR1020217028270A KR20217028270A KR20210134655A KR 20210134655 A KR20210134655 A KR 20210134655A KR 1020217028270 A KR1020217028270 A KR 1020217028270A KR 20217028270 A KR20217028270 A KR 20217028270A KR 20210134655 A KR20210134655 A KR 20210134655A
Authority
KR
South Korea
Prior art keywords
key
hardened
encrypted data
data package
authentication code
Prior art date
Application number
KR1020217028270A
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 KR20210134655A publication Critical patent/KR20210134655A/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/321Cryptographic 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/3213Cryptographic 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/0822Key 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
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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/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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

방법은, 강화된 키를 엔트로피 해싱하는 단계; 강화된 키로부터 비대칭 키 쌍을 생성하는 단계; 강화된 비대칭 키 쌍 및 강화된 키로부터 키스페이스 체인코드를 생성하는 단계; 및 강화된 비대칭 키 쌍으로부터 검증 키 쌍을 생성하는 단계를 포함한다. 관련 시스템 및 방법이 여기에 개시되어 있다.

Description

보안 시스템 및 관련 방법
관련 출원들에 대한 상호 참조
본 출원은 2019년 2월 5일에 출원되고 발명의 명칭이 "보안 시스템 및 관련 방법(SECURITY SYSTEM AND RELATED METHODS)"인 미국 가출원 제62/801,148호에 대한 우선권을 주장하며, 그 전체 개시 내용은 모든 적절한 목적을 위해 참조로 여기에 포함된다. 본 출원은 2019년 2월 20일에 출원되고 발명이 명칭이 "보안 시스템 및 관련 방법(SECURITY SYSTEM AND RELATED METHODS)"인 미국 가출원 제62/807,832호에 대한 우선권을 주장하며, 그 전체 개시 내용은 모든 적절한 목적을 위해 참조로 여기에 포함된다.
본 발명은 사용자를 인증하기 위한 시스템 및 방법에 관한 것이다.
사용자를 인증하는 여러 방법이 이용 가능하다. 그러나 더 안전한 시스템이 필요한다.
예시적인 방법은, 강화된 키(hardened key)를 엔트로피 해싱(entropy hashing)하는 단계; 강화된 키로부터 비대칭 키 쌍을 생성하는 단계; 강화된 비대칭 키 쌍 및 강화된 키로부터 키스페이스 체인코드(keyspace chaincode)를 생성하는 단계; 및 강화된 비대칭 키 쌍으로부터 검증 키 쌍을 생성하는 단계를 포함한다.
예시적인 유형의(tangible) 컴퓨터 판독 가능 매체는 실행될 때 방법을 수행하는 명령어를 가진다. 이 방법은, 강화된 키를 엔트로피 해싱하는 단계; 강화된 키로부터 비대칭 키 쌍을 생성하는 단계; 강화된 비대칭 키 쌍 및 강화된 키로부터 키스페이스 체인코드를 생성하는 단계; 및 강화된 비대칭 키 쌍으로부터 검증 키 쌍을 생성하는 단계를 포함한다.
복구 키를 생성하는 예시적인 방법은, 강화된 키를 엔트로피 해싱하는 단계; 강화된 키로부터 비대칭 키 쌍을 생성하는 단계; 강화된 비대칭 키 쌍 및 강화된 키로부터 키스페이스 체인코드를 생성하는 단계; 상충 불가능(non-collidable) 의사 랜덤 값을 계산하는 단계; 및 의사 랜덤 값을 키스페이스 체인코드에 전달하여 복구 키를 생성하는 단계를 포함한다.
예시적인 유형의 컴퓨터 판독 가능 매체는 실행될 때 복구 키를 생성하는 방법을 수행하는 명령어를 포함한다. 이 방법은, 강화된 키를 엔트로피 해싱하는 단계; 강화된 키로부터 비대칭 키 쌍을 생성하는 단계; 강화된 비대칭 키 쌍 및 강화된 키로부터 키스페이스 체인코드를 생성하는 단계; 상충 불가능 의사 랜덤 값을 계산하는 단계; 및 의사 랜덤 값을 키스페이스 체인코드에 전달하여 복구 키를 생성하는 단계를 포함한다.
예시적인 방법은, 타원 곡선(elliptic curve)으로부터 공개 키와 개인 키를 갖는 비대칭 키 쌍을 제공하는 단계; 제1 메시지 인증 코드로 공개 키에 서명하는 단계; 공개 키 및 제1 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계; 또 다른 당사자로부터 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 수신하는 단계; 개인 키를 사용하여 제1 암호화된 데이터 패키지를 복호화하는 단계; 또 다른 당사자로부터 대칭 암호화 키와 난스(nonce)를 수신하는 단계; 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계를 포함하고, 제2 암호화된 데이터 패키지는 공개 식별자를 포함한다.
예시적인 유형의 컴퓨터 판독 가능 매체는 실행될 때 방법을 수행하는 명령어를 가진다. 방법은, 타원 곡선으로부터의 공개 키와 개인 키를 갖는 비대칭 키 쌍을 제공하는 단계; 제1 메시지 인증 코드로 공개 키에 서명하는 단계; 공개 키 및 제1 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계; 또 다른 당사자로부터 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 수신하는 단계; 개인 키를 사용하여 제1 암호화된 데이터 패키지를 복호화하는 단계; 또 다른 당사자로부터 대칭 암호화 키와 난스를 수신하는 단계; 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계를 포함하고, 제2 암호화된 데이터 패키지는 공개 식별자를 포함한다.
예시적인 방법은, 공개 키 및 제1 메시지 인증 코드를 또 다른 당사자로부터 수신하는 단계; 제1 메시지 인증 코드를 검증하는 단계; 공개 키를 사용하여, 대칭 암호화 키 및 제1 난스 상태를 갖는 제1 암호화된 데이터 패키지를 생성하는 단계; 제1 암호화된 데이터 패키지에 제2 메시지 인증 코드를 추가하는 단계; 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계; 또 다른 당사자로부터 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 수신하는 단계 - 제2 암호화된 데이터 패키지는 공개 식별자를 포함함 -; 제2 난스 상태 및 대칭 암호화 키를 사용하여, 제2 암호화된 데이터 패키지를 복호화하는 단계를 포함한다.
예시적인 유형의 컴퓨터 판독 가능 매체는 실행될 때 방법을 수행하는 명령어를 가진다. 방법은, 공개 키 및 제1 메시지 인증 코드를 또 다른 당사자로부터 수신하는 단계; 제1 메시지 인증 코드를 검증하는 단계; 공개 키를 사용하여, 대칭 암호화 키 및 제1 난스 상태를 갖는 제1 암호화된 데이터 패키지를 생성하는 단계; 제1 암호화된 데이터 패키지에 제2 메시지 인증 코드를 추가하는 단계; 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계; 또 다른 당사자로부터 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 수신하는 단계 - 제2 암호화된 데이터 패키지는 공개 식별자를 포함함 -; 제2 난스 상태 및 대칭 암호화 키를 사용하여, 제2 암호화된 데이터 패키지를 복호화하는 단계를 포함한다.
서비스 식별의 예시적인 방법은 인증하기 위해 개인 키를 사용하는 서비스 상에 저장된 공개 키를 갖는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 제공하는 단계를 포함한다.
예시적인 유형의 컴퓨터 판독 가능 매체는 실행될 때 서비스 식별 방법을 수행하는 명령어를 가진다. 이 방법은 인증하기 위해 개인키를 사용하는 서비스 상에 저장된 공개 키를 가지는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 제공하는 단계를 포함한다.
예시적인 웹 기반 서비스는 서비스 상에 저장된 공개 키를 가지며 인증하기 위해 개인 키를 사용하는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 포함한다.
유형의 컴퓨터 판독 가능 매체는, 실행될 때 개인 키에 대해 서비스에 저장된 공개 키를 인증하는 단계를 포함하는 웹 기반 서비스 방법을 수행하는 명령어를 포함한다.
도 1은 UDP 메시지 형식 프로토콜을 나타내는 표이다.
도 2는 프로토콜 표이다.
도 3은 오류 프로토콜을 나타내는 표이다.
도 4는 상태 천이 프로토콜을 나타내는 표이다.
도 5는 요청자 상태 천이 프로토콜이 있는 표이다.
도 6은 gLFSR 키 프로토콜이 있는 표이다.
도 7은 갈루아 난스 생성 선형 피드백 시프트 레지스터(Galois Nonce Generation Linear Feedback Shift Register)를 나타내는 표이다.
도 8은 리턴 패키지 컴파일을 나타내는 표이다.
도 9는 관련 프로토콜 표이다.
도 10은 서버 및 클라이언트 상태 천이를 나타내는 표이다.
도 11은 최대 gLFSR 표이다.
도 12는 상태 및 프로토콜 표이다.
도 13은 응답자, 요청자, 및 클라이언트 상태 천이를 나타내는 표이다.
도 14는 예시적인 토큰 직렬화 1을 나타내는 표이다.
도 15는 예시적인 토큰 직렬화 2를 나타내는 표이다.
도 16은 여기에 설명된 패스포트(passport)의 세부 사항을 나타내는 다이어그램이다.
도 17은 인증 및 인가 방법을 나타내는 도면이다.
도 18은 패스프레이즈 + 시드프레이즈(passphrase + seedphrase)의 상세를 나타내는 도면이다.
도 19는 토큰 서비스: 복구 및 데이터베이스 아키텍처를 나타내는 도면이다.
도 20은 예시적인 시스템을 나타내는 도면이다.
도 21은 예시적인 방법의 흐름도이다.
도 22는 예시적인 방법의 흐름도이다.
도 23은 예시적인 방법의 흐름도이다.
도 24는 예시적인 방법의 흐름도이다.
도 25는 예시적인 방법의 흐름도이다.
도 26은 예시적인 시스템의 도면이다.
여기에 설명된 실시예는 분산 인증 시스템에서 사용자를 인증하는 것과 관련된다. 여기에 설명된 실시예는 예를 들어, 패스포트를 사용하여 분산 인증 프로토콜 시스템에서 사용자를 인증하는 프로세스와 같은 사용자 인증 시스템 및/또는 방법을 포함할 수 있다. 여기에 설명된 실시예는 높은 수준의 신뢰성, 성능, 응답성, 확장성, 용량 및/또는 보안을 달성하도록 설계될 수 있다.
일부 실시예는 오라클 모델 인증 아키텍처를 포함할 수 있다. 오라클 프로토콜은 인증 시스템이 트랜잭션 패스포트 인증/인가 상호 작용을 협상하여 사용자 또는 원격 시스템을 검증하는 방법을 지시하는 방법을 포함할 수 있다.
일부 실시예는 피어 투 피어(peer-to-peer) 분산 인증 아키텍처 또는 프로토콜을 포함할 수 있다. 피어 투 피어 인증 프로토콜은 국부화된(localized) "테스트"를 포함할 수 있으며, 이 테스트가 정확한 인가된 패스포트에 의해 완료되면, 유효한 세션이 반환되고 프론트엔드 클라이언트로의 보안 접속이 협상된다. 세션 상태는 카운터 모듈(본 문서의 다른 섹션에서 정의됨) 내에 유지될 수 있다. 언제라도 엔드포인트가 서비스되면(served), 현재 "핑 - 퐁(ping - pong)" 상태가 중단되고 새 세션이 검증(validate)될 수 있다.
일부 실시예는 패스포트, 또는 분산 통신 및 상호작용 기능 아키텍처 또는 프로토콜을 포함할 수 있다. 패스포트는 사용자가 디지털 토큰을 수신할 수 있도록 개인 키 및 공개 키를 저장할 수 있는 암호화폐 지갑과 동일할 수 있다. 패스포트는 사용자의 계정(들)과 연관된 토큰을 저장하는 데 사용될 수 있으며, 이를 통해 사용자가 대응 공개 키를 저장하는 임의의 애플리케이션에 대해 사용자를 인가하게 허용할 수 있다.
일부 실시예는 토큰 서비스, 또는 서비스 제공자에 의해 실행되고 로컬에 설치된 복구 및 데이터베이싱 방법(들)의 아키텍처 변형을 포함할 수 있다. 토큰 서비스는 사용자가 자신의 서비스에 대한 액세스를 제공하기 위해 필요에 따라 배포될 수 있도록 최대 1800경개의(18 quintillion) 토큰과 공개 키를 저장할 수 있다. 토큰 서비스는 불변(immutable) 레코드를 저장하고 복구 프로세스를 설정하는 능력을 제공할 수 있다. 토큰 서비스는 회사가 비잔틴 장애 허용 네트워크(byzantine fault tolerant network) 또는 블록체인에 기록(write)할 수 있는 방법을 제공할 수 있다.
본원의 실시예에 대한 상세한 설명을 제공하기 전에, 달리 언급되지 않는 한, 본 개시의 목적을 위해 특정 정의가 제공된다:
비접속 시스템(connectionless system)은 메시지가 서로 독립적으로 전송되는 인스턴스를 참조하기 위해 여기에서 사용된다.
시스템에서 통신 모델은 낮은 수준의 이벤트 기반 시스템이다.
시스템에서 분산 컴퓨팅 모델은 둘 또는 다수의 컴포넌트가 동등하거나, 피어 투 피어 시스템에 있는 시스템이다.
미들웨어라는 용어는 일반적으로 상이한 컴퓨팅 시스템들에서 프로세스를 시작하는 데 사용되는 시스템으로서 이해된다. 미들웨어는 세션 관리를 처리하고 클라이언트가 서버를 찾고, 그리고/또는 원격 데이터 액세스 프로토콜을 제공할 수 있도록 디렉토리 서비스 역할을 한다. 미들웨어는 병행성 제어(concurrency control)를 제공하여 서버가 다수의 클라이언트를 처리하고, 접속의 보안 및/또는 무결성을 유지하고, 그리고/또는 네트워크에서 임의의 부정 행위(foul play)를 모니터링할 수 있다. 미들웨어는 필요한 경우 로컬 프로세스 및/또는 원격 프로세스를 종료할 수 있다.
네트워크 경합으로 인해 시간 초과(들)이 발생하거나 시스템 접속이 불량하고, 그리고/또는 충돌하는 네트워크 주소가 있는 경우 실패 지점이 발생할 수 있다. 전송 오류로 인해 메시지가 손실되거나 클라이언트와 서버 버전이 호환되지 않고 그리고/또는 서버의 데이터베이스가 손상된 경우에도 실패 지점이 발생할 수 있다. 실패 지점에는 애플리케이션의 클라이언트 측이 갑자기 고장나는 경우도 포함될 수 있다.
공개 키 암호화는 널리 배포될 수 있는 공개 키와 소유자만 알고 있는 개인 키를 포함하는 키 쌍을 사용하는 임의의 암호화 시스템을 포함한다. 이것은 두 가지 기능, 즉, 공개 키가 쌍을 이루는(paired) 개인 키의 소유자가 메시지를 전송했는지 검증하는 인증과, 쌍을 이루는 개인 키 소유자만 공개 키로 암호화된 메시지를 복호화할 수 있는 암호화를 달성한다.
갈루아 선형 피드백 시프트 레지스터(gLFSR)는 모듈식 내부 XOR 및 일대다 LFSR이라고도 하는 구성으로, 기존 LFSR과 동일한 출력 스트림을 생성할 수 있는 대체 구조이다. 갈루아 구성에서 시스템이 클록될 때 탭(taps)이 아닌 비트는 변경되지 않고 오른쪽으로 한 위치 이동된다. 반면에 탭은 다음 위치에 저장되기 전에 출력 비트와 XOR된다. 새 출력 비트는 다음 입력 비트이다. 이것의 효과는 출력 비트가 0일 때 레지스터의 모든 비트가 변경되지 않고 오른쪽으로 이동하고 입력 비트가 0이 된다는 것이다. 출력 비트가 1일 때 탭 위치의 비트는 모두 플립(비트가 0이면 1이 되고, 비트가 1이면 0이 됨)한 다음 전체 레지스터가 오른쪽으로 이동하고 입력 비트가 1이 된다.
암호학적으로 안전한 의사 난수 생성기는 고품질 소스에서 얻은 엔트로피, 일반적으로 운영 체제의 무작의성을 사용하여 보안 난수를 생성한다. 그러나 이러한 표면상 독립적인 여러 프로세스에서 예기치 않은 상관 관계가 발견되었다. 정보 이론적인 관점에서 볼 때, 생성될 수 있는 엔트로피인 무작위성의 양은 시스템에 의해 제공되는 엔트로피와 같다. "무작위성"을 결정하는 세 가지 기본 요소가 있다. 1) 무작위로 나타난다. 2) 값을 미리 예측할 수 없다. 3) 생성 후 안정적으로 재생성할 수 없다. 기본 시스템(native system)에서 시스템 PRNG를 `SecureRandom /dev/urandom` 프로세스로서 사용한다고 가정한다.
콘텐츠 암호화 키(Content Encryption Key; CEK)는 빠른 단일 서명 검증을 위한 공개 키 서명 시스템이다.
AEAD 알고리즘은 평문(plaintext)을 암호화하고 인증된 추가 데이터를 지정할 수 있도록 하며, 암호문 및 인증된 추가 데이터에 대해 통합 콘텐츠 무결성 검사를 제공하는 알고리즘이다. AEAD 알고리즘은 일반적으로 평문과 추가 인증 데이터 값의 두 가지 입력을 받아들이고 암호문과 인증 태그 값의 두 가지 출력을 생성한다.
인증 태그(Authentication Tag; aT)는 암호문의 무결성과 추가 인증 데이터를 보장하는 AEAD 동작의 출력이다.
암호화된 키(Encrypted Key; EK)는 암호화된 콘텐츠 암호화 키 값이다.
키 암호화(Key Encryption; kE)는 비대칭 암호화 알고리즘을 사용하여 CEK 값이 의도된 수신자에게 암호화되는 키 관리 모드이다.
초기화 벡터(Initialization Vector; IV)는 평문 값을 암호화할 때 사용되는 초기화 벡터 값이다.
암호문(Ciphertext; cT) 값은 추가 인증 데이터로 평문을 인증 암호화한 결과 데이터이다.
컴팩트 직렬화(Compact Serialization; cS)는 컴팩트 protobuf 웹 토큰 인코딩 형식이다.
키 래핑(Key Wrapping; kW)은 대칭 키 래핑 알고리즘을 사용하여 CEK 값이 의도된 수신자에게 암호화되는 키 관리 모드이다.
직접 암호화(Direct Encryption; dE)는 사용된 CEK 값이 당사자들 간에 공유되는 비밀 대칭 키 값인 키 관리 모드이다.
이제 이전에 참조된 오라클 모델 인증 아키텍처로 돌아가서 여기에 더 자세한 내용이 설명되어 있다. 프로토콜 설계는 다음 피처를 포함할 수 있다: 1) 타겟과의 성공적인 DHKE 이후까지 지점간(point-to-point)이 아닌 UDP 브로드캐스트; 2) 패스포트 및 인증 서비스에 의해 관리되는 이중 트랜잭션 상태; 3) 전송 프로토콜은 신뢰할 수 있다; 4) 손실된 응답 또는 응답 시간 초과는 모든 암호화 패키지의 재구축을 트리거해야 한다(메시지 패킷은 재사용되지 않음); 5) 바이트 인코딩 데이터 형식; 6) 통신이 폭발적(bursty)이며 서비스 품질 정의에 의해 관리되어야 한다; 7) 데이터 동기화는 인가 협상이 성공한 후에만 필요하다; 8) 애플리케이션에 구애받지 않는(agnostic) 통신 프로토콜.
버전 관리: 분산 시스템의 프로토콜은 시스템이 확장됨에 따라 시간이 지남에 따라 발전할 수 있다. 이로 인해 시간이 지남에 따라 호환성 문제가 발생하므로 여기에서 해결되어야 한다. 각 측은 이상적으로는 자신의 버전과 모든 이전 버전에 대한 메시지를 이해할 수 있어야 한다. 각 측은 구식 응답 형식으로 구식 쿼리에 대한 응답을 기록할 수 있어야 한다.
프로토콜 단계
1. In(msg): a. Desc: auth 서비스를 핑(ping)하고 TxHash의 초기 교환을 위해 DHKE를 요청한다. b. 오류: TxHash를 검증한다.
2. Enc(msg): a. Desc: 대칭 암호화 키의 전송을 협상한다. b. 오류: indv msg.를 검증한다.
3. Ver(msg): a. Desc: Enc(msg)를 검증하고 반환한다. b. 오류: 정확한 수신자를 검증한다.
In(msg): 의사 디피헬만(Pseudo-Diffie-Hellman) 키 교환, TxHash 식별. 초기 가정은 다음과 같다: 1. 응답자(Auth API)는 저장된 요청자(패스포트)에 대해 (TxHash, 공개 키)를 갖는다. 2. 요청자(패스포트)는 저장된 공개 키에 대해 상관된 개인 키를 가지고 있다.
예시적인 UDP 메시지 형식(100)을 나타내는 도 1을 참조한다.
데이터 형식: 서버는 타원 곡선 알고리즘에 전달된 무작위 큰 소수(난스(nonce))를 계산하고 타겟 공개 키를 찾기 위해 암호화된 TxHash가 성공적으로 반환될 때까지 출력 공개/개인 키를 저장한다. 생성된 공개 키는 요청자에게 반환되어 타겟 TxHash를 암호화한다. Msg = Select(g) 공개/개인 키 생성기. Pub -> 32 바이트. Pvt -> 32 바이트. TxHash -> ~ 32바이트.
상태는 요청자(패스포트)와 응답자(Auth API) 모두에 의해 관리된다. 언제라도 응답자가 실행 가능한 TxHash를 수신하기 전에 접속이 끊어지면, 상태는 초기 응답 msg로 재설정되며 트랜잭션 성공 여부와 관계없이 난스 및 생성된 공개/개인 키가 재설정되고 재생성된다. 난스 및 생성된 공개/개인 키는 두 번 사용되지 않는다.
본 명세서의 실시예에서 의존될 수 있는 예시적인 프로토콜 표(200)를 도시하는 도 2를 참조한다.
오류. 이 초기 단계에서 응답자(Auth API)가 유효한 TxHash를 수신하지 않으면, 가능한 재전송 공격(replay attacks)으로부터 보호하기 위해 상태가 재설정되고 트랜잭션이 새로 시작된다. 상태는 이중으로 관리되므로 임의의 오류 응답은 양쪽(요청자, 응답자)의 상태를 재설정해야 한다. 실제 오류 응답 코드는 널(null)이거나 허니 암호화(honey encryption)로 다시 패키징될 것이다(진짜 모양의 가짜 데이터 공급). 본 명세서의 실시예에서 의존될 수 있는 예시적인 오류 표(30)를 도시하는 도 3을 참조한다.
본 명세서의 실시예에서 의존될 수 있는 응답자 상태 천이 프로토콜(400)을 갖는 예시적인 표를 도시하는 도 4를 참조한다. 응답자(Auth API) 상태 천이도: In(msg) -> Enc(msg).
본 명세서의 실시예에서 의존될 수 있는 요청자 상태 천이 프로토콜(500)을 갖는 예시적인 표를 도시하는 도 5를 참조한다. 요청자(패스포트) 상태 천이도: In(msg) -> Enc(msg).
Enc(msg): 대칭 암호화 암호 교환, 해시 메시지 복호화 검증. In(msg)가 완료되면, In(msg) 프로토콜 동안 유효한 TxHash가 발견되었고 원래 IP/Port 요청자가 변경되지 않았다면 Enc(msg)가 다음 폴백 지점이 된다.
난스 생성. 그런 다음, 무작위로 생성된 8비트 컬렉션을 사용하여 gLFSR이 구현되어 시퀀스의 다음 난스를 생성한다. 롤링 난스 카운터는 각 상태 변경에 대해 증가된다. 대칭 암호화 알고리즘은 무작위로 생성된 키와 난스를 사용하여 수신/발신 암호(cyphers)를 암호화하고 복호화한다. 시프트 레지스터의 12 바이트가 16진수로 인코딩될 수 있으면, 16진수 문자열은 바이트 배열로 변환되고 난스로서 전달되어 시퀀스의(다음) 번호를 제공한다.
직렬화 형식. 올바른 시프트를 생성하기 위해, 7바이트 컬렉션이 암호화되고 대칭 암호화 알고리즘 키(32바이트) 앞에 추가된다. 4바이트: 버전 바이트(0x01). 1바이트: 패드(x). 7바이트: gLFSR 키. 2바이트: 패드(0x). 32바이트: 대칭 암호화 키.
여기에 설명된 실시예에서 의존될 수 있는 예시적인 gLFSR 키 프로토콜(600)을 예시하는 도 6을 참조한다.
본 명세서의 실시예에서 의존될 수 있는 예시적인 갈루아 난스 생성 선형 피드백 시프트 레지스터(700)를 도시하는 도 7을 참조한다.
데이터 형식. 응답자는 새로운 gLFSR 키, 대칭 암호화 알고리즘 키, 및 임의의 난스 해시를 생성한다. 그런 다음, 요청자 공개 키를 사용하여, 80바이트 Enc(msg)0 패키지는 암호화되고 개인 키 검증을 위해 요청자에게 전송된다. 요청자가 Enc(msg)0 패키지를 수신하면 해당 개인 키로 정보가 복호화된다. 그런 다음, 대칭 암호화 알고리즘을 사용하여 반환 패키지가 컴파일된다. 여기에 개시된 실시예에서 의존될 수 있는 예시적인 반환 패키지 컴파일(800)을 도시하는 도 8을 참조한다.
여기에 개시된 실시예에서 의존될 수 있는 예시적인 관련 프로토콜 표(900)을 예시하는 도 9가 참조된다.
오류. 어느 시점에서든 임의의 패키지를 복호화할 수 없는 경우 요청자와 응답자에게 오류 반환이 송신될 것이다. 모든 키, 난스, 및 해당 생성된 데이터가 재설정되고 접속이 종료된다.
Enc(msg)0 < || > 80 바이트이고, 요청자에 의해 오류 메시지가 생성되며, 상태가 재설정되면, 접속이 종료된다. 초기 요청 상태로 재설정하고 새 요청을 브로드캐스트한다.
반환된 해싱된 난스가 원래 생성된 해싱된 난스와 일치하지 않으면, 심각한 오류가 생성되고 추가 검사를 위해 관련 트래픽을 기록(log)해야 한다. 접속이 종료된다.
어느 시점에서든 패키지/메시지가 응답자 또는 요청자에게 재전송되거나 복제되면, 오류가 생성되고 접속이 종료된다.
접속 IP/포트 주소(들)가 변경되면, 상태가 재설정되고 접속이 종료된다.
여기에 개시된 실시예에 의존될 수 있는, 서버 및 클라이언트 상태 천이도(1000), Enc(msg) -> Ver(msg)의 예시적인 표를 도시하는 도 10을 참조한다.
본 명세서에 개시된 실시예에서 의존될 수 있는 예시적인 최대 gLFSR 표(1100)를 예시하는 도 11을 참조한다.
Ver(msg): 암호화된 해시의 검증, 세션 토큰 반환 -> 성공.
가정: 1) 요청자의 개인 키가 검증되었다. 2) 응답자는 해당 클라이언트 공개 키를 가지고 있다.
목적. Ver(msg)의 목적은 해당 요청자에게 반환된 세션 id와 비즈니스 서버 측 세션 토큰 관리를 생성하는 것이다. 반환 패키지는 공개 키, 개인 키, 및 암호학적으로 안전하고 고유한 세션 식별자를 포함한다.
"비행 전(pre-flight)" 암호화가 성공적으로 동작하려면, 타원 곡선 알고리즘에 의해 두 개의 공개/개인 키가 생성되고 전송 전에 키 교환이 처리된다. 이것은 비대칭 암호화 키 교환이다. 결과 패키지(들)는 복호화 키(개인 키)와 요청자 공개 키를 포함할 것이다. 요청자에 대해 역(inverse)이 완료된다. (개인 키, 클라이언트 공개 키).
개별 패키지가 준비되면, 요청자에 대한 80바이트 패키지가 대칭 암호화 알고리즘으로 래핑된다(wrapped). 그런 다음, 클라이언트는 저장된 환경 변수, 즉, 클라이언트 공개 키로 암호화된다.
직렬화 형식. 대칭 암호화 알고리즘은 TxHash 검증 후 필요한 암호화/복호화 프로토콜이므로 초기화된 gLFSR 난스 상태는 Ver(msg)로 유지되어야 한다.
요청자 반환 패키지: 암호화 패키지: 대칭 암호화 알고리즘. 16바이트: 고유한 세션 식별자. 32바이트: 공개 키(pub0). 32바이트: 개인 키(pvt1).
클라이언트 반환 패키지: 암호화 패키지: 타원 곡선 암호화. 16바이트: 고유한 세션 식별자. 32바이트: 공개 키(pub1). 32바이트: 개인 키(pvt0).
클라이언트 패키지 타겟은 서버 측 세션 관리 및 복호화를 위해 임시 캐시로 전송하는 것이다.
여기에 개시된 실시예에서 의존될 수 있는 예시적인 상태 및 프로토콜 표(1200)를 예시하는 도 12를 참조한다.
오류. 요청자나 클라이언트에 의해 Ver(msg) 반환 패키지가 복호화될 수 없으면, 오류 메시지가 영향을 받는 당사자에게 전파된다. 반환 패키지가 요청자에게 전송될 수 없거나, 패키지 시간 초과가 발생하면, 이전 메시지 상태로 재설정된다. Enc(msg) -> 난스 상태 0.
여기에 개시된 실시예에서 의존될 수 있는, 예시적인 응답자, 요청자, 및 클라이언트 상태 천이도(1300): Ver(msg) -> 완료를 도시하는 도 13이 참조된다.
미들웨어 통신 모델: UDP 또는 TCP를 통한 RPC. UDP는 UDP 소켓의 특성으로 인해 특별한 UDP 인식 처리(UDP aware handling)가 필요하다. 접속이 없고 주소로 데이터그램만 전송된다. 요청자 또는 응답자가 응답을 받으려면 각각의 요청자 또는 응답자가 청취 소켓을 설정한 다음 요청과 함께 요청자 또는 응답자 중 다른 하나에게 패킷을 전송해야 한다. 그런 다음, 요청자 또는 응답자 중 다른 하나는 전술한 요청자 또는 응답자의 주소에 응답할 것이다.
V2: 피어 투 피어 분산 인증 아키텍처는 클라이언트, 에이전트 및 제공자를 포함할 수 있다. 클라이언트는 에이전트를 인증하거나 인가하는 시스템 또는 서비스이다. 에이전트는 클라이언트 서비스에 대해 액세스를 요청하는 시스템, 서비스 또는 개인이다. 제공자는 설정 및 검증을 처리하는 시스템 또는 서비스이다. 일부 실시예에서, 키 인가 프로토콜은 사용자 이름, 비밀번호 또는 생체 인식을 사용하지 않고 클라이언트 인프라에 대해 에이전트를 안전하게 인가하고 인증하기 위한 종단 간 암호화 표준을 나타낸다. 이 섹션의 목적은 클라이언트와 에이전트 간의 초기화, 협상 및 통신을 설명하는 것이다. 여기에서 "protobuf" 웹 토큰 사양으로서 참조될 수 있는 프로토콜 버퍼 및 세션 인증 객체는 아래에 자세히 설명되어 있다. 계층적 결정적 디지털 키 시스템 능력은 이 문서의 패스포트 섹션에 설명되어 있다. 패스포트 상호 작용에 대한 표면 수준 설명도 여기에 포함된다.
키 인가 프로토콜 메커니즘은 에이전트가 클라이언트 인프라에 대해 인증하거나 인가하기 위해 성공적으로 완료되어야 하는 프로세스를 제공한다.
당업자는 지메일, 링크드인 또는 트위터와 같은 애플리케이션에 로그인하거나 온라인 뱅킹 플랫폼에서 내력 레코드(historic records)를 다운로드하는지 여부에 관계없이 클라우드 서버에 액세스해야 할 때 사용자 이름과 비밀번호가 현재 기본 액세스 방법임을 인식할 것이다. 이는 조직뿐만 아니라 개인에게도 수많은 문제를 제시한다. 조직은 개인 계정을 보호하기 위해 추가 인증 방법을 추가하는 방향으로 이동했다. 이러한 방법은 인가되지 않은 행위자가 액세스에 필요한 요소를 제공할 수 없을 가능성이 높다는 전제에 기초한 다중 인증, 이중 인증, 2단계 인증 또는 기타 유사한 방법을 포함하며, 사용자가 물리적 객체를 소유하고 있거나, 비밀을 알고 있거나, 특정 생체 인식을 갖거나, 특정 위치에 있어야 할 수 있다.
사용자 이름 및 비밀번호 인증과 연관된 문제는 다음을 포함하지만 이에 국한되지 않는다: 중간인 공격(Middle Person Attacks), 암호화 다운그레이드 공격, 계정 복구 프로세스 위반(개인 계정을 복구하기 위한 기본 계정 소유자의 이메일 또는 복구 통신 방법을 위반하는 것, 현재 자격 증명을 공격자가 선택한 자격 증명으로 교체하여 공격자를 인증/인가하는 것을 포함함), 악성 프로그램 공격(webext 또는 webapp 공격), 세션 재전송 공격, 외부 엔티티 공격, 크로스 사이트 스크립팅(Cross-Site scripting; XSS) 공격, SQL 주입 공격, 봇넷(Botnet) 공격 및/또는 자격 증명 피싱 공격.
사용자 이름과 비밀번호는 인터넷이나 디지털 인증이 시작된 이래로 인증 방법이 거의 또는 전혀 변경되지 않은 상태에서 사용되었다. 표준 사용자 이름/비밀번호 조합에 추가적인 복잡성이 추가되어 현재 표준에 기초하는 보안 인증 프로세스를 어렵게 만든다. 또 다른 문제는 많은 또는 대부분의 개인이 다수의 애플리케이션에 대해 동일한 비밀번호를 사용하여 개인의 애플리케이션 중 하나라도 침해되면 단일 실패 지점으로 이어진다는 것이다. 그런 다음, 공격자는 이미 침해된 계정을 찾고 사용자 이름(일반적으로 이메일 주소)과 비밀번호 해시(암호화된 형태의 비밀번호)를 긁어모으기(scrape)만 하면 된다. 이 정보가 인증할 서비스에 전달되면 공격자가 액세스 권한을 얻을 확률이 통계적으로 높다. 어떤 경우에는 유출된 평문 데이터베이스(암호화되지 않고 사람이 값을 읽을 수 있는 데이터베이스)가 특히 취약한 부분을 제공한다. 다중 인증(multi-factor authentication; MFA)과 연관된 문제는 비기술적 개인을 위한 자명하지 않은(nontrivial) 설정 및 유지 보수, 개인의 일회성 사용을 위한 과도한 복잡성, 실제 신원(identity) 수집의 회사 정보 위반을 포함하지만 이에 제한되지 않으며, 사용자 디바이스(들)가 알려지기 때문에 MFA의 이점을 종료한다. MFA는 또한 데이터베이싱 방법을 강제하지 않으며 잘못된 엔지니어링 관행은 MFA 여부와 상관없이 대량 유출(massbreaches)로 이어진다. 또한 대부분의 시스템은 여전히 이메일을 기본 복구 방법으로서 의존한다. 마지막으로 공격자가 동기가 있다고 가정하면 추가 공격 표면을 추가해도 문제가 해결되지 않기 때문에 인증 문제가 해결되지 않는다. 이는 동기 부여된 공격자를 위한 추가 단계를 추가할 뿐이다. 즉, 침해된 경우 침투된 계정에는 폴백 지점(fallback point)이 없으므로 필요에 따라 검출 메트릭(detection metrics)이 증가한다. 공격자가 복제된 버전의 디바이스(들)를 사용하여 보조 디바이스(즉, 휴대 전화 또는 애플리케이션)를 손상시킬 수 있는 경우, 공격자를 찾는 것은 예를 들어, P 대 NP와 같은 단순한 복잡성 문제가 된다. 또한 이메일이 폴백 방법으로 사용되는 경우 개인의 복구 방법이 먼저 위반되지 않았다는 보장이 없다; 또는 이 복구 방법이 공격의 교두보(beach head)였다.
키 인증 프로토콜은 표준 사용자 이름/이메일 검증에 대한 위반 조건을 식별했다.
피어 투 피어 네트워크(Peer-to-Peer Network; P2P): 모든 컴퓨터가 클라이언트이자 서버 역할을 하여 모든 컴퓨터가 네트워크의 다른 모든 컴퓨터와 데이터 및 서비스를 교환할 수 있도록 하는 컴퓨터 네트워크이다.
대칭 암호화 알고리즘(Symmetric Encryption Algorithm; SEA): 평문의 암호화와 암호문의 복호화 모두에 동일한 암호화 키를 사용하는 암호화 알고리즘. 키는 동일하거나 두 키 사이를 이동하는 간단한 변환이 있을 수 있다.
비대칭 암호화 알고리즘(Asymmetric Encryption Algorithm; AEA): 공개 키 암호화 또는 비대칭 암호화는 널리 배포될 수 있는 공개 키와 소유자만 알고 있는 개인 키를 포함하는 키 쌍을 사용하는 임의의 암호화 시스템이다.
타원 곡선 암호화(Elliptic Curve Cryptographic; ECC): 타원 곡선 암호화는 유한 필드에 대한 타원 곡선의 대수 구조를 기반으로 하는 공개 키 암호화에 대한 접근 방식이다. ECC는 동등한 보안을 제공하기 위해 비 ECC 암호화에 비해 더 작은 키가 필요하다.
암호화 해싱 함수(Cryptographic Hashing Function; CHF): 원본 데이터를 또 다른 값으로 마스킹한다. 해시 함수는 해시 표에서 값을 조회해야만 디코딩될 수 있는 값을 생성하는 데 사용될 수 있다. 표는 배열, 데이터베이스 또는 기타 데이터 구조일 수 있다. 좋은 암호화 해시 함수는 비가역적(non-invertible)이다.
암호화 서명(Cryptographic Signature; CS): 암호화 및 복호화 알고리즘을 사용하여 문서 또는 패키지의 출처와 내용을 검증하는 전자 문서 또는 패키지에 첨부된 디지털 파일이다.
암호화 난스: 한 번만 사용할 수 있는 임의의 숫자이다. 인증 프로토콜에서 난수 또는 의사 난수 생성으로서 사용되어 재전송 공격에서 오래된(stale) 메시지가 재사용될 수 없도록 보장한다. 이들은 또한 초기화 벡터(initialization vector; IV) 및 암호화 해시 함수로서 유용할 수 있다.
메시지 인증 코드(Message Authentication Code; MAC): 메시지를 인증하는 데 사용되는 짧은 정보이다. 메시지가 지정된 송신자로부터 왔고 의도된 수신자가 메시지를 수신하기 전에 변경되거나 수정되지 않았는지 확인하는 데 사용된다.
버전 관리: 버전 제어 시스템(VCS)은 지속적인 변경을 추적하고 지속적인 배포 파이프라인 보안 위험을 회피하는 데 사용된다. 공급망 보안 위험이 만연하고 공격 방법이 매우 다양하기 때문이다. 접점(point-of-contact)에서 애플리케이션 바이너리를 전환하는 것이 보안 베어러(security bearers)를 복호화하거나 차단(break)하는 것보다 쉬울 수 있기 때문이다. 버전 제어 시스템의 주요 목표는 파일 갱신 시 진행 중인 변경 사항 추적, 결과물 동기화, 이전 버전의 복원 및 백업, 분기된(branched) 변경 사항의 샌드박싱(sandboxing), 패키지 소유권 추적, 수정 사항 병합 및 분기이다. 다수의 버전 제어 방법이 사용될 수 있다. 사용되는 두 가지 주요 방법은 중앙 집중식 및 분산형(분산) 버전 제어 시스템, 중앙 집중식 버전 제어 시스템 및 분산형 버전 제어 시스템이다. 중앙 집중식 버전 제어 시스템은 전체 이력을 포함한 전체 패키지가 중앙 서버(예컨대, SVN)에서 관리되는 버전 관리이다. 분산 버전 제어 시스템: 전체 이력을 포함한 전체 패키지가 모든 시스템에 미러링되는 버전 제어(예컨대, git).
프로토콜 보안을 보장하고 유지하기 위해 액세스되고 있는 위치, 방법 및 대상은 엄격하게 제어되는 요소이다. 배포된 모든 정보의 유효성을 보장하기 위해 온라인으로 임의의 정보에 액세스하는 모든 개인은 원래 개발자 액세스 포인트를 사용하도록 요청된다. 미러링된 액세스 포인트는 악성 콘텐츠를 포함할 수 있다. 두 번째 검증은 획득된 패키지에 대해 개발자의 공개 키로 제공된 서명을 검증하는 것이다. 설치 전 패키지 인증을 위해서는 패키지 서명과 대응 공개 키가 모두 필요한다. 올바른 패키지를 다운로드했음을 인증하는 핵심 요소는 다음과 같다: 암호화 서명 생성 날짜는 릴리스 버전 타임라인에 대응한다; 패키지 암호화 서명은 올바른 해당 개발자에 의해 생성되었다; 제공된 검증(공개) 키는 올바른 해당 키이다; 암호화 서명은 공개 키로 성공적으로 검증되었다; 분산된 버전 제어 시스템은 하나의 추가 검증 단계를 가질 수 있다. 설계상 다수의 미러링된 액세스 포인트가 존재하는 경우, 제공된 서명과 키가 올바른지 검증하기 위해 다수의 소스 키 매칭(분산 패키지 합의)이 완료될 수 있다. 이 프로세스는 임의의 손상된 버전 제어 시스템도 식별할 수 있다. 반환된 서명이나 키 중 하나라도 일치하지 않으면. 이것은 즉시로 보고될 소스/버전 변조의 증거일 수 있다.
당업자는 공격이 다양한 지점으로부터 실행될 수 있고 프로세스/검증 보호가 다양한 단계 또는 위치에서 제공될 수 있음을 인식할 것이다. 일부 실시예에서, 객체 다운로드 자동화 검증이 제공될 수 있다. 일부 실시예에서, 분산 패키지 합의 시스템이 제공될 수 있다.
여기에 설명된 일부 실시예는 클라이언트 인프라에 대해 에이전트를 안전하게 설정, 인증 및/또는 인가한다. 이것은 서버 대 서버, 개인 대 서버, 개인 대 개인 또는 기타 시스템 수단을 통해 수행될 수 있다. 키 인증 프로토콜의 목표는 사용자 이름, 비밀번호 또는 생체 인식 디바이스를 사용하지 않고 에이전트를 검증할 수 있는 능력을 갖는 것일 수 있다. 일부 실시예는 비대칭 암호화 키를 갖는 확장 키 시스템을 제공한다. 클라이언트는 에이전트를 인증하기 위해 에이전트의 공개 키의 사본을 보유한다. 키 인증 프로토콜의 의도된 상호 작용은 기본적으로 강력한 암호화 프로토콜을 숨기고 계층화하면서 단순한 상호 작용을 유지하는 것이다. 올바르게 구현되면, 가설로서 클라이언트의 대량 데이터 유출 시 아래에 설명된 데이터베이싱 방법은 개별 에이전트의 개인 정보가 공개되는 것을 감소시키고 자격 증명 피싱, 유출된 소스의 자격 증명 일치 및 기타 직접, 사회적 또는 무차별 대입 공격 방법(brute-force attack methods)의 가능성을 감소시키는 데 도움이 된다.
시스템 아키텍처는 클라이언트 인프라에 대해 개별 에이전트를 인증하기 위해 "안전한(safe)" 타원 곡선 및 암호학적으로 안전한(secure) 난스에서 생성된 비대칭 암호화 키(공개 키-개인 키)를 사용하는 공통점과 함께 여러 방법 중 하나로 구성된 개별 컴포넌트를 포함할 수 있다. 일부 실시예에서, 각 키는 계층적 결정적 키 시스템에 접속되어, 모든 접속된 계정을 복구하는 프로세스를 만들고 올바른 패스프레이즈 및 니모닉 구문을 입력한다. 각 개별 공개 키--클라이언트 레코드는 여러 방법 중 하나로 기록될 수 있다. 데이터베이싱 방법의 주요 관심사는 레코드가 기록되도록 요청되면 해당 레코드가 불변(수정될 수 없는) 상태가 되거나 이 상태로 유지된다는 것이다. 그 레코드가 변경된다면 제거되지 않고 제거될 수 없다는 것이다. 대신 두 레코드가 접속될 것이다. 데이터베이싱 방법은 InterPlanetary 파일 시스템과 같은 분산 네트워크, 블록체인 네트워크(예컨대, 이더리움 네트워크), FTP 서버 저장소(예컨대, AWS S3), 암호화된 표 데이터베이스(예컨대, MySQL), 암호화된 관계형 데이터베이스(예컨대, Cassandra), 그래픽 데이터베이스(예컨대, Neo4j), 불변 레코드 텍스트 파일 등의 범위일 수 있다.
에이전트. 에이전트는 통신 매체와 디지털 패스포트를 갖는 최소 요건을 가지며, 1개 내지 2개의 소프트웨어를 포함한다. 브라우저 또는 웹 기반 애플리케이션에 대해 인증/인가하는 경우 브라우저와의 통신이 필요한다. (웹 확장 애플리케이션 또는 다른 방법) 웹 확장(또는 여기에서 방법)은 보안 메시징 버스로서 작동할 수 있다. 기본 기반 패스포트 애플리케이션에서 의도된 클라이언트 인프라 타겟인 브라우저 및/또는 도메인으로 메시지를 전달한다. 웹 확장은 브라우저 기반(파이어폭스, 크롬, 오페라, 사파리 등) 애플리케이션 또는 웹 확장에 포함된, 기본 패스포트의 동일한 기능을 가진 완전한 기능의 패스포트으로서 구성할 수 있다. 웹 확장 기반 패스포트은 기본 애플리케이션 기반 패스포트 상대에 비해 본질적으로 덜 안전한다. 기본 애플리케이션은 다른 보안 이점 중에서, 브라우저보다 내장된 인증서를 더 잘 포함할 수 있으며 안전하게 서명된 프로세스에 액세스할 수 있다. 기본 기반 패스포트 애플리케이션은 휴대폰, 태블릿 패드, 랩톱 또는 데스크톱 컴퓨터, 서버, ioT 또는 애플리케이션 특정 디바이스 등에서 에뮬레이트될 수 있는 일련의 핵심 기능이다.
패스포트는 상이한 클라이언트들과의 상호 작용을 생성, 포함, 저장, 검색, 및 검증하는 것이다. 패스포트는 암호 화폐 토큰을 한 당사자에서 또 다른 당사자로 전송하는 것과 유사한 새 계정 등록을 통해 계층적 결정적 암호 화폐 지갑처럼 설계된다. 연관된 FIAT 통화 가치와 실제 토큰 전송 간의 차이. 설명된 토큰은 불변 레코드를 보관하는 데 사용할 수 있는 많은 저장 유틸리티 옵션 중 하나일 뿐이다. 패스포트에 대한 전체 설명은 아래 패스포트 섹션에 제공된다. 에이전트가 한 클라이언트에 대해 인증하기 위한 단일 공개-개인 키 쌍 간의 상호 작용은 여기서 키 인증 프로토콜에 설명되어 있다.
고객. 클라이언트는 계정 기반(예컨대, Reddit.com), 개인용(예컨대, Twitter), 개인(예컨대, Gmail.com) 또는 보안 정보 인프라(예컨대, defence.gov), 또는 서비스가 액세스되거나 특별한 피처(features)에 액세스하기 전에 계정 소유자가 디지털 매체를 통해 신원을 검증해야 하는 임의의 시스템 등에 대한 액세스를 제공하는 임의의 서비스 또는 비즈니스이다. 클라이언트는 키 기반 인증 시스템을 효과적으로 활용하고 유지하기 위해 두 개의 소프트웨어(특정 서비스를 실행하는 데 필요한 임의의 그리고 모든 필수 인프라와 함께)가 필요한다. 클라이언트는 먼저 역직렬화 스크립트에 의해 사전 프로세싱되고 특정 동작이 수행되기 전에 검증되거나 이런 능력을 갖는 정의된 통신 종점을 가져야 한다. 둘째, 클라이언트는 인코딩된 공개 키를 저장할 수 있어야 하고 개별 키를 토큰 서비스에 안전하게 전달하여 내구성 있는 계정 레코드를 생성할 수 있어야 한다. 클라이언트 데이터베이스에 저장된 각 키는 최소한 계정 소유자와 연관된 공개 키를 포함해야 하지만, 많은 상이한 방법들로 키 인증 핸드셰이크를 완료하고 특정 에이전트를 안전하게 검증하기 위한 조합 데이터 필드를 지원하는 데 사용될 수 있는, 트랜잭션 해시(TxHash), 제1 공개 키, 제2 공개 키, 제1 복구 공개 키, 제2 복구 공개 키, 레코드 생성 시간(연도, 날짜, 시간, 초, 나노초), 다형성 신뢰 등급, 배열[known_ips], 및 기타 개별 데이터베이스 필드를 포함할 수 있다. 식별된 기본 프로토타입은 아래에 정의되어 있다.
제공자. 제공자는 클라이언트 시스템과 내장 또는 원격 토큰 서비스 간의 상호 작용을 배포하고, 이 상호작용이 안전하고 제대로 작동하며 필요한 폴백, 확장성 및 복구 방법을 갖추고 있다고 검증한다. 제공자는 선택된 불변 데이터베이싱 방법(들) 및 저장 소스와의 상호 작용을 정의한다. 레코드 전송 방법의 보안을 검증하고 연관된 에이전트 패스포트(즉, 계정 소유자)가 개별 레코드에 액세스할 수 있는지 검증한다. 에이전트와 클라이언트가 레코드를 복구하고 찾기 위한 올바른 검증된 방법(들)을 가진다고 검증하는 것이 필요하다.
제공자는 클라이언트의 직원이거나 또 다른 제3자 서비스일 수 있다. 제공자는 아키텍처 설정 중에만 정의된다. 설정이 완료되면, 지속적인 유지 및 기능 모니터링이 연관된 클라이언트에 의해 유지된다. 제공자는 또한 보안 서비스를 유지하는 데 필요한 지속적인 유지 및 모니터링을 제공할 수 있다.
Protobuf 웹 토큰(Protobuf Web Token; pWT).
웹 토큰은 정의된 직렬화 구조로서 프로토콜 버퍼를 사용하여 전송을 위해 패키징된 암호화된 구조화된 데이터에 대한 직렬화 방법을 나타낸다. Protobuf는 선택되는 효율적이고 빠르며 컴팩트하고 플랫폼 간 호환이 가능하기 때문에 기본 직렬화 방법으로서 표시된다. Protobuf는 구조화된 데이터를 컴파일할 수 있는 많은 직렬화 방법 중 하나일 뿐이며 효율적인 전송 방법으로 전달된다. 클라이언트와 에이전트 모두 올바른 해당 방법을 가지고 있는 한, 그 중 다수는 필요한 인증/인가 웹 토큰 데이터를 직렬화 및 역직렬화하는 데 사용된다. pWT의 일반적인 기능은 특정 클라이언트에 대해 에이전트를 인증하고 인가하는 데 필요한 정보를 정의하는 것이다. pWT는 둘 이상의 정의된 구조로 구성될 수 있다. 기본 요건은 해당 개인 키가 에이전트에 의해 패스포트에 소유 및 보유되어야 한다는 것이다. 클라이언트에 저장된 공개 키와 일치하여 유효성을 성공적으로 확인할 수 있는 능력을 가져야 한다.
웹 토큰 아키텍처 블록.
갈루아 카운터 모듈(Galois Counter Module; GCM), 갈루아 선형 피드백 시프트 레지스터(galois Linear Feedback Shift Register; gLFSR) 또는 다른 카운터(Counter; CTR) 모드. 사용: 모든 요청과 함께 동시 카운터 상태 모듈(concurrent counterstate module)을 전송하지 않고, 에이전트-클라이언트, 수신/발신 메시지 전송의 "핑-퐁(ping-pong)" 동안 메시지 유효성을 유지한다. 카운터 모듈은 다음 상태에 대한 암호화/복호화 시간에 초기화 벡터(initialization vector; IV)를 유도하는 데 사용된다. 최소 요건: 생성된 카운터 시퀀스는 정의 가능한 다항식 또는 갈루아 필드 내에서 반복되지 않도록 보장되어야 한다.
대칭 암호화 키(Symmetric Encryption Key; SEK). 사용: 수신/발신 메시지를 암호화/복호화하기 위함이고, 의도한 타겟에 의해서만 복호화 가능하다. 최소 요건: 타겟 키 엔트로피는 256비트 이상, 최소 키 엔트로피는 128비트이다.
해싱된 메시지 인증 코드(Hashed Message Authentication Code; HMAC). 사용: 데이터 무결성과 메시지 인증을 동시에 검증한다. 최소 요건: 공격자가 프로세싱하기 전에 메시지를 변조하지 않았다는 정확하고 입증 가능한 검증.
암호화 서명(Cryptographic Signature; CS). 사용: 에이전트의 부인 방지(non-repudiation), 절대 해당 키 검증. 최소 요건: 서명은 정품, 위조 불가능, 재사용 불가능, 변경 불가능, 취소 불가능이어야 한다.
트랜잭션 해시 또는 User_ID(Id). 사용: 에이전트 데이터베이스 레코드 위치. 최소 요건: 제공자가 제공한 불변 데이터베이스에 접속(attach)된다. 레코드 검증 및 계정 복구를 위한 액세스를 제공하는 일반 사용자에게 이용가능하다.
데이터 직렬화 형식(예컨대, protobuf(proto3))의 선택은 대부분의 (예컨대, 15개)의 데이터 직렬화 형식이 사용될 수 있다. 타겟 형식은 바이너리로 컴파일되고 표준화되거나 잘 알려져 있으며 제로 복사 동작을 지원한다. 또한, protobuf는 추가 비행 중 공격 변조 메트릭(in-flight attack tampering metric)으로 동작하는 능력을 갖는 할당된 필드 번호의 자동 생성을 제공한다. 새롭거나 고유한 반환 상태를 기대하여 메시지가 변경되거나 서버로 다시 미러링되는 경우, 복호화된 결과 메시지는 미리 정의된 메시지 정의 역직렬화에 맞지 않아 프로세스가 중단된다. 메시지 상태가 손상되면 복구 및 보호 동작이 사용가능하다; 제공자가 배포한 사양에 정의된 사전 정의 또는 개별 프롬프트된(prompted) 작업을 실행하면 시스템 또는 사용자 정의 보호 작업을 시작할 수 있다: (1) 세션 접속 재설정, 에이전트 재인증, (2) 세션 소유자에게 경고 메시지를 전송한 다음, 세션 접속 재설정, (3) 추가 검사를 위해 접속을 격리한 다음, 접속 재설정 또는 차단, (4) 블랙리스트 및 접속 차단.
보안 접속, 보안 전송 파이프라인을 검증하고 해당 접속에 대한 인증을 요청하는 에이전트의 신뢰성을 검증하기 위해 추가 보호 조치가 수행될 수 있다(검역, 검사 또는 블랙리스트 접속 풀에 추가됨). 클라이언트별 위험 태그 지정(tagging) 규칙 및 명명 규칙은 제공자 클라이언트별 시스템 배포 중에 생성될 수 있다.
대칭 알고리즘의 선택은 선택이 주어져야 한다. 대칭 암호화 알고리즘의 목표는 전송 중인 메시지를 보호하는 것이며 마지막 방어선 역할을 할 수 있다. 전송 중인 데이터의 진위성을 검증하기 위해 MAC을 통합하는 세 가지 주요 유형의 대칭 암호화 알고리즘이 있다.
예를 들어, MtE(MAC then Encrypt)는 평문 패키지에 MAC 식별자를 추가(append)하여 평문에 대해 MAC을 계산한다. 암호화하여 전송한다.
EtM(Encrypt then MAC) = SAFE는 예를 들어, 평문 패킷/콘텐츠를 암호화하며 암호문을 통해 MAC을 계산하고 이를 추가한다.
EaM(Encrypt and MAC)은 예를 들어, 평문을 통해 MAC을 계산하고 암호화한 다음 MAC을 추가했다.
메시지가 복호화되기 전에 메시지 유효성이 확인되어야 한다. 메시지 인증 코드를 확인하기 전에 MtE 또는 EaM 패키지를 복호화 및 프로세싱하는 것이 필요하기 때문에, 사용할 유일한 "안전한" 프로세스 방법은 EtM(Encrypt then Mac)이다. MtE 또는 EaM을 사용하면 MAC가 패킷을 검증하고 위해(mischief)를 검출하기 전에 활성 공격자가 암호화 프로세스의 보호된 기능을 볼 수 있다. 메시지 또는 응답 전에 수행해야 하는 2차 보호 조치는 메시지 길이를 모호하게 하는 것이다. 패킷 길이를 암호화하기 위해 2차 스트림 암호 인스턴스가 사용될 수 있거나, 메시지 표준화 블록 크기가 사용될 수 있다. 표준화된 블록 크기를 사용하려면, 오버플로 프로세스가 설정되어야 한다. 표준 블록 크기는 클라이언트 또는 전송 수락률에 따라 이론적으로 임의의 비트/바이트 크기로 설정할 수 있다.
예시 용어들: AEAD --------> 인증된 암호화 및 연관 데이터(authenticated encryption and associated data). EtM -----------> 암호화 후 MAC(encrypt then MAC). Sig/SIG ------> 암호화 서명(cryptographic signature). 키 -----------> 대칭 암호화 키(symmetric encryption key). Pubk ------> 공개 키(public Key). EtS -----------> 암호화 후 서명(encrypt then sign).
여기에 개시된 실시예에서 의존될 수 있는 예시적인 토큰 직렬화 1(1400)을 예시하는 도 14가 참조된다.
여기에 개시된 실시예에서 의존될 수 있는 예시적인 토큰 직렬화 2(1500)를 예시하는 도 15가 참조된다.
도 14 및 도 15는 토큰이 컴파일될 수 있는 방법에 대한 많은 예 중 두 가지만 도시한다. 토큰 직렬화의 주요 요건은: 종단 간 암호화, 무작위로 생성된 안전한 키를 위한 최소 256비트, "안전한 [EN.16]" 타원 곡선 사용, 프로세싱 또는 복호화가 수행되기 전에 MAC/SIG가 검증되어야 함, 모든 암호화/복호화 기능에 대한 표준화된 타임박싱(timeboxing)이 강제됨, 전송 중 메시지 크기 표준화, 은닉 또는 이중 암호 사용이다.
서비스 등록. 새 애플리케이션 등록은 역사적으로 사용자 이름/비밀번호 콤보의 설정을 수반한다. 이를 위해서는 사용자가 이 정보를 생성하거나 입력해야 한다. 키 인가 프로토콜은 타겟 시스템에 대한 에이전트 상호 작용에 기초해 자동으로 등록되도록 설정될 수 있다. 예를 들어, 에이전트가 전자상거래 애플리케이션으로 네비게이트하여 "손님으로 결제"하길 원한다. 클라이언트는 "손님"에 대한 등록을 자동으로 생성하여 향후 사용 및 검증을 위한 영구 신원(durable identity)을 생성할 기회를 갖는다. 에이전트가 사이트와 특정 상호 작용을 완료한 후에만 등록이 시작되도록 지정할 수도 있다.
예: 에이전트가 "가입" 버튼을 클릭한다. 에이전트는 클라이언트가 표준화될 특정 정보 또는 데이터 필드에 액세스하도록 승인하는 추가 옵션을 갖는다.
예: 에이전트가 "가입" 버튼을 클릭한다; 패스포트가 팝업되고 사용자에게 묻는다:(계정 설정을 완료하기 위해 {CA:domain.com}에 당신의 {email_address}를 전송해도 될까요?)(y/n), 이는 각 상호 작용이 정보 요청 중에 고유하게 맞춤화될 수 있기 때문에 등록+ 트랜잭션이라고 간주될 것이다. RRFI(registration + request for information)
등록 프로세스는 에이전트가 이미 기능하는 패스포트를 설정했다고 가정하는데, 이는 web-ext가 패스포트 또는 패스포트에 대한 메시지를 전달하는 방법으로서 동작할 수 있기 때문이다. 여기에 개시된 실시예에 의존될 수 있는, 트랜잭션되는 메시지/프로세스를 정의하는 것을 돕기 위해 패스포트를 별도로 보여주는 상세한 예시에 대해서는 도 16이 참조된다.
초기 가정: 공개-기본(Public-Main), 공개-복구(Public-Recovery) 및 개인-기본(Private-Main) 키가 준비되었다.
원하는 에이전트 상호 작용(가입, 자동 실행(autofire), 게스트로서 체크아웃)이 발생하면, 에이전트의 패스포트는 클라이언트에게 키 패키지(공개-기본, 공개-복구)를 전송할 것이다. 기본 키와 복구 키 모두 토큰 서비스에 기본 키를 전달하기 전에 내구성 매체를 통해 저장되어야 한다.
그런 다음 토큰 서비스는 원하는 타겟 네트워크를 기반으로 적절한 네트워크 주소를 생성한다. 위의 예는 분산 합의 기반 네트워크를 사용한다. 네트워크 주소가 진위성 및 유효성에 대해 검증되었다. 다음을 기록하는 불변 레코드가 생성된다: 1) 에이전트 네트워크 주소 + 암호화 서명. 2) 클라이언트 네트워크 주소 + 암호화 서명. 3) 고유 트랜잭션 식별자(TxID 또는 TxHash). 4) (선택 사항) 실행 시간. 5) (선택 사항) 에이전트 복구 키. 6) (선택 사항) 에이전트 보조 복구 키. 7) (선택 사항) 에이전트 보조 검증 키.
불변 레코드는 에이전트 패스포트 계정 복구, 클라이언트 레코드 데이터베이스 감사에 대해, 또는 완전히 분산된 인증 데이터베이스로서 사용된다/사용될 수 있다. 클라이언트가 정확성과 진위성을 위해 불변 레코드세트(recordset)를 제출, 생성 및 검증했으면 등록 프로세스가 기술적으로 완료된다.
여기에 개시된 실시예에서 의존될 수 있는 인증 및 인가 방법(1700)을 예시하는 예시적인 다이어그램에 대해서는 도 17이 참조된다.
패스포트는 웹 확장을 통해 사용자의 디바이스 상에 또는 사용자의 브라우저에서 기본적으로 실행할 수 있는, 사용자가 다운로드하는 애플리케이션이다. 패스포트는 사용자가 계정(들)을 갖는 애플리케이션에 대해 생성된 여기에 설명된 대로 사용자가 자신의 토큰을 저장할 수 있도록 한다.
사용자는 사용자 이름이나 개별 애플리케이션 비밀번호를 생성하지 않고 단일 패스포트 패스프레이즈만 생성한다. 비밀번호는 암호화 키 역할을 한다. 새 사용자가 생성되면 서비스 또는 애플리케이션 인증을 위해 제공된 임의의 액세스 토큰에 대해 개인/공개 키 쌍이 할당된다. 그런 다음, 비밀번호는 패스포트를 암호화하고 복호화하는 데 사용된다.
양식(form) 데이터 보안 저장 및 요청 모델. 신용 카드 보안 저장/요청 모델. 인증/인가(pub/pvt 키들). 네트워크 식별(와이파이 가입). 티켓팅 시스템(영화, 음악회, 서비스). 분산 버전 제어(서명된 다운로드 검증 시스템). ioT 자동 액세스 제어(디바이스 간 보안 통신). 제3자 검증 감사 시스템(특정 데이터 보기 모델). P2p 통신 플랫폼(비대칭 암호화 통신 모델). 서비스 등록 제공자(디렉토리 관리 시스템). 국부화된 p2p 소셜 미디어 접속(피어 공유를 위한 개별 p2p 네트워크 노드). SSH 또는 보안 터널링 허브(터미널 제어 키 회전 시스템). 보안 이메일 서비스(pgp 이메일과 유사; 기본적으로 완료/통합만 가능). VPN 통신 종점(네트워크 접속 시 새 VPN 등록 접속 설정). 추적할 수 없는 VPN(다중 점프 VPN 스캐터 필터를 위해 피어 검증(친구) 패스포트에 접속). 신뢰 또는 복구 네트워크(패스포트 복구뿐만 아니라 데이터 복구. 누드 사진은 스테가노그래피 암호화를 사용하여 보호된 다음 최소 수의 피어 검증(검증된 친구) 패스포트 간에 분할 또는 확산될 수 있음). - 가족 데이터 웨어하우징 - 예를 들어, 가족은 "동료"로 등록하고 다중 서명 시스템을 사용하여 더 큰 데이터 저장소를 설정하여 기억 상실이나 비극이 발생한 경우 노인 가족 구성원을 보호하여 올바른 사람들이 올바른 데이터 모두를 가즌 것을 보장할 수 있다. 프로젝트 Arq(모든 애플리케이션이 네트워크에 제출하는 동안 동일한 규칙 세트를 준수해야 하는 홀라크라틱(holacratic) 애플리케이션 공유 스테이션). 전문 인증서 - 예를 들어, 전문 엔지니어가 테스트를 받고 일정 기간 동안의 경험을 가지고 있으면, 전문 엔지니어는 PE 또는 전문 엔지니어 스탬프를 받을 수 있는 기회를 가지며, 패스포트는 주요 주소 중 하나를 "전문가” 검증 스탬프로서 사용할 수 있다. 국부화된 합의 네트워크 - 예를 들어, 디바이스가 함께 작동하여 자체 보안을 유지하는 경우, 모든 디바이스는 "백신" 또는 루트 검증 해시를 포함한다; 디바이스의 루트 검증 해시가 네트워크의 다른 디바이스와 일치하지 않고, 중요한 변경 사항이 검증되지 않은 경우 언제든지 해당 디바이스가 이전 상태로 재설정된다. 공급망 또는 체크포인트 검증: HD 키 시스템 사용; 개별 검증 키가 배포될 수 있으며 디바이스/소프트웨어가 단계적으로 검증될(stage verified) 필요가 있는 경우, 해당 단계의 개별 키가 발생하여 성공적인 트라이(Trie) 구조를 생성할 수 있으며, 여기서 모든 단계가 성공적으로 완료되면 루트 트라이 해시가 일치해야 한다; 그렇지 않은 경우 (x) 단계에서 일치하지 않는 해시는 오류/공격이 발생한 위치이다. 익명 계정 등록 및 액세스. 다른 사용 사례가 여기에서 고려된다.
여기에 개시된 실시예에서 의존될 수 있는 패스프레이즈 + 시드프레이즈(1800)의 예시적인 도면을 도시하는 도 18이 참조된다.
여기에 개시된 실시예에 의존될 수 있는 복구 및 데이터베이스 아키텍처(1900)를 갖는 예시적인 토큰 서비스를 예시하는 도 19가 참조된다. 일부 실시예에서, 예를 들어, 애플리케이션 프로그래밍 인터페이스, 즉, API는 패스포트 앱의 사용자의 신원을 인증하거나 검증하기 위해 여기에 설명된 토큰 서비스와 통신하거나 토큰 서비스를 제공할 수 있다.
사용 사례(들): 패스포트 레코드 복구. 레코드 복구. 분산 불변 데이터베이스. 메시지 스테이징 또는 p2p 통신 프로세싱. 홀라크라시 최상위 레지스트리. 국부화된 네트워크 인증 토큰 배포 시스템. P2P 검증 피어 목록(친구 목록 및 연락처 주소). p2p 임시 데이터 캐시. 개인 암호화 데이터 저장소. 인증서 관리자. 불변 데이터 저장소. 검증 데이터 서명이 검증되거나 교환하고, 변환되고, 새 하우징 매체에 로딩될 수 있는, ETL 사전 준비 데이터 웨어하우징 진위성 검증(지역 간 백업 또는 통과 저장소(transit store)를 고려함) 제3자 식별 하우징(복구 토큰 생성 -> KYC/AML 검증 신원 생성을 위한 개인 데이터에 접속). 시스템 프로세스 또는 비표준 시간에 대한 단계별 검증. 데이터베이스 기록 검증/데이터 차이 소스 확인. LTKH 또는 장기간 키 하우징(제3자 감사자가 연관된 공개 키를 필요로 한 경우 백업 및 기록(backup and records bullshit)을 위해 역사적으로 여기에 저장될 수 있음). 사용자/에이전트 엔드포인트 스터빙(체계적으로 또는 주기적으로 갱신되는 통신 인프라와 접속될 수 있는 영속성(durable) 메시징 엔드포인트 생성). 즉, 고정 IP -> VPN(매일 변경되는 키/주소), 장기간 통신을 위해 검증된 피어는 영속성 "정적" 엔드포인트를 저장한다. 다른 사용 사례가 여기에서 고려된다.
PreCryption 네트워크 암호화 프로토콜. PreCryption은 일회성 데이터 암호화 프로세스로서 사용되는 정의된 네트워크 프로토콜이다. 이것은 양식 기반 데이터의 유효성을 보장하는 데 사용될 수 있다. 제공된 에이전트 정보가 가치가 있는 경우(신용카드, 사회보장번호, 주소, 전화번호 등) 간단한 프로세스를 사용하여 양식 기반 공격(form based attacks)에 의해 에이전트 정보가 침해되는 것을 방지할 수 있다. 이 프로세스는 키 입력이 보호되지 않기 때문에 가능한 키로거(keylogger) 공격으로부터 에이전트를 보호하지 않는다. 가상화된 키보드를 사용하여 가능한 키로거 공격을 차단할 수 있다.
프로토콜 설계. 에이전트(사용자)가 타겟 양식으로 네비게이트하면, 추가적으로 숨겨진 값이 에이전트의 시스템으로 전송된다. 숨겨진 값은 공개된(public facing) 비대칭 암호화 키이다. 이 키는 양식에 정적으로 추가될 수 있다. 정적 공개 키가 사용되는 경우, 정적 키는 규정된 만료 날짜를 가져야 한다. 동적 공개 키가 전송되거나 해당 개별 양식 세션에 대한 키가 전송되는 경우, 에이전트는 올바른 키가 전송되었는지 검증할 수 없으므로 추가 검증 단계가 수행되어야 한다. 공격자가 자신이 선택한 키들 중 하나와 함께 전송된 공개 키를 "재전송(replay)"할 수 있으면, 암호화된 양식은 공격자에 의해서만 복호화될 수 있다. 따라서 양식 전송 전에 키 검증이 중요하며, 그렇지 않으면 중요한 개인 정보가 공격자에게 누출될 수 있다.
올바른 키가 검증되면 개별 평문 필드 길이를 마스킹하기 위해 개별 양식 값이 공격 대상이 될(targeted) 수 있다. 각 양식 필드 값에는 최대 문자 길이가 지정되며 최대 길이는 과거 사용자 상호 작용에 기초해 신중하게 선택된다. 각 필드의 최대 문자 용량은 구별할 수 없는 암호화된 양식 길이를 생성하는 데 활용되어 공격자가 필드 또는 값 크기를 찾을 수 있는 기회를 가린다(mask). 이것은 또한 초기 클라이언트 측 검증으로서 사용될 수 있는 표준 전체 양식 크기를 생성한다. 양식이 (x) 크기와 일치하지 않으면 누군가 비트를 조작했음을 나타낸다. 양식 암호화 프로세스는 표준 타이밍 목표에 기초해 타임박스(timebox)되거나 완료되어야 한다. 결과적인 암호화된 암호문은 첨부된 메시지 인증 코드(message authenticity code; MAC)를 가질 것이다. 암호문이 직렬화되면(JSON, XML 등), 양식을 전송할 준비가 된 것이다. 암호화 프로세스는 EtM(Encrypt then MAC) 프로세스 기반이어야 한다. EtM을 사용되지 않으면, 클라이언트가 잠재적인 암호화 파라미터 정보를 유출할 수 있다. 복호화 또는 프로세싱 전에 메시지 진위성이 검증되어야 하기 때문이다.
전송된 공개 키가 "일회성” 사용 키이고, 암호화된 양식 데이터가 수신되면 MAC가 검증되었다. 개별 필드가 복호화되고 검증된다. 복호화/프로세싱이 완료되었으면, 사용되는 키 쌍은 0으로 설정되거나(zero'd) 각 바이트/비트에 추가된 '0x0' 값을 갖도록 덮어쓰여진 메모리 공간을 갖는다.
사용 사례: 어디서든지 구조화된 데이터 필드는 안전한 방식으로 원하는 출력을 달성하기 위해 정보를 요청하는 데 사용된다. 그러나 PreCryption을 기본 방어선(primary line of defense)으로 사용해서는 안 된다. 기본 용도는 추가 데이터 비행 중 보호 또는 보호 수단이어야 한다.
다음 간행물은 모든 적절한 목적을 위해 참조로 여기에 포함된다. 정리 증명 절차의 복잡성. STOC '71: 컴퓨팅 이론에 대한 제3회 연례 ACM 심포지엄의 프로시딩(proceedings), 1971년 5월 발행, 151-158쪽, 링크: https://doi.org/10.1145/800157.805047. 중간 공격자에 대한 조사, STOC '71: 컴퓨팅 이론에 관한 제3차 연례 ACM 심포지엄의 프로시딩, 1971년 5월, 151-158쪽, 링크: https://doi.org/10.1145/800157.805047. RFC-7435 기회주의적 보안: 대부분의 경우 일부 보호. 링크k: https://www.rfc-editor.org/info/rfc7435. 적어도 늦어도 2019년 1월 22일에 발행됨. Stuxnet: 사이버 전쟁 무기 해부. 링크: https://ieeexplore.ieee.org/abstract/document/5772960. 적어도 늦어도 2019년 1월 22일에 발행됨. 재전송 공격 분류[암호화 프로토콜]. 링크: https://ieeexplore.ieee.org/abstract/document/315935. 적어도 늦어도 2019년 1월 22일에 발행됨. Xml 외부 엔티티 공격(xxe). 링크: http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20XML%20External%20Entity%20Attacks%20(XXE)%20-%20owasp.pdf. 적어도 늦어도 2019년 1월 22일에 발행됨. 크로스 사이트 스크립팅 공격의 진화. 링크: https://www.cgisecurity.com/lib/xss.pdf. 적어도 늦어도 2019년 1월 22일에 발행됨. SQL 주입 공격 검출을 위한 새로운 방법. 링크: https://www.sciencedirect.com/science/article/pii/S0895717711000689. 적어도 늦어도 2019년 1월 22일에 발행됨. 봇넷: 분류, 공격, 검출, 추적, 및 예방 조치. 링크: https://link.springer.com/article/10.1155/2009/692654. 적어도 늦어도 2019년 1월 22일에 발행됨. 피싱 공격 방지. 링크: https://patents.google.com/patent/US7681234B2/en. 적어도 늦어도 2019년 1월 22일에 발행됨. 10억 개의 키, 그러나 몇 개의 잠금 자물쇠(locks): 웹 싱글 사인온의 위기. 링크: https://dl.acm.org/citation.cfm?id=1900556. 적어도 늦어도 2019년 1월 22일에 발행됨. 공급망의 사이버 보안 위험. 링크: https://www.ncsc.gov.uk/content/files/protected_files/guidance_files/Cyber-security-risks-in-the-supply-chain.pdf. 적어도 늦어도 2019년 1월 22일에 발행됨. 행성간 파일 시스템(InterPlanetary File System). 링크: https://github.com/ipfs/papers/raw/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf. 적어도 늦어도 2019년 1월 22일에 발행됨. 데이터베이스 필드. 링크: https://www.progenygenetics.com/knowledgebase/index.php?/Knowledgebase/Article/View/21/0/database-field-types-and-database-fields. 적어도 늦어도 2019년 1월 22일에 발행됨. 데이터 직렬화 형식 비교(비학문적, 대략적인 형식 목록). 링크: https://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats. 적어도 늦어도 2019년 1월 22일에 발행됨. 타원 곡선 암호화를 위한 안전 곡선. 링크: https://safecurves.cr.yp.to/. 적어도 늦어도 2019년 1월 22일에 발행됨.
2FA, 3FA 및 기타 다중 요소 인증 프로세스가 여기에서 고려된다.
다양한 브라우저 통신 방법이 여기에서 고려된다. 스마트 계약 기능을 특징으로 하는 블록체인 기반 분산 컴퓨팅 플랫폼 및 운영 체제는 여기에서 이더리움 네트워크, 분산 네트워크 또는 블록체인 네트워크로 언급될 수 있다. 비블록 네트워크(non-block networks)에서 사용하기 위한 토큰 서비스가 여기에서 고려된다. 다른 비블록체인(non-blockchain) 기반 네트워크를 차단하지 않는 토큰 서비스가 여기에서 고려된다. 네트워크 차단기가 없는 패스포트가 여기에서 고려된다. 글로벌 통신 파라미터가 여기에서 고려된다.
이제 도 20으로 돌아가서, 예시적인 시스템(2000)이 이제 설명된다. 시스템(2000)은 사용자 인터페이스(2012), 데이터 저장소(2008), 및 프로세서(2010)를 갖는 사용자 컴퓨터(2002)를 포함할 수 있다. 프로세서(2010)는 실행될 때 후술되는 방법들 중 하나를 수행하는 명령어를 갖는 유형의 컴퓨터 판독가능 매체를 포함할 수 있다. 시스템(2000)은 사용자 컴퓨터(2002)와의 네트워크 통신(2006)을 갖는 서비스 서버(2004)를 포함할 수 있다. 서버(2004)는 데이터 저장소(2014), 제공자 인터페이스(2018), 및 프로세서(2016)를 포함할 수 있다. 프로세서(2016)는 실행될 때 후술되는 방법들 중 하나를 수행하는 명령어를 갖는 유형의 컴퓨터 판독가능 매체를 포함할 수 있다. 예로서, 사용자 컴퓨터(2002)는 방법(2100)을 수행하도록 구성될 수 있고 서버(2004)는 방법(2200)을 수행하도록 구성될 수 있다. 또 다른 예로서, 사용자 컴퓨터(2002)는 방법(2300)을 수행하도록 구성될 수 있고 서버(2004)는 방법(2400)을 수행하도록 구성될 수 있으며, 이로써 데이터가 안전하게 전송될 수 있다.
이제 도 21을 참조하면, 예시적인 방법(2100)이 이제 설명된다. 방법(2100)은 강화된 키(2102)를 엔트로피 해싱하고 강화된 키(2104)로부터 비대칭 키 쌍을 생성하는 단계를 포함할 수 있다. 방법(2100)은 강화된 비대칭 키 쌍 및 강화된 키(2106)로부터 키스페이스 체인코드를 생성하는 단계 및 강화된 비대칭 키 쌍(2108)으로부터 검증 키 쌍을 생성하는 단계를 포함할 수 있다.
방법(2100)의 일부 실시예에서, 비대칭 키 쌍(2104)을 생성하는 단계는 타원 곡선에 랜덤 값을 전달하는 단계를 포함한다. 일부 실시예에서, 타원 곡선은 안전한 타원 곡선이다. 방법(2100)의 일부 실시예에서, 강화된 키(2102)를 엔트로피 해싱하는 단계는 강화된 시드 키 및 강화된 복구 키를 엔트로피 해싱하는 단계를 포함한다. 방법(2100)은 사용자의 신원을 인증 또는 검증하거나 데이터를 암호화하는 방법을 포함할 수 있다.
방법(2100)은 프로토콜을 포함하거나 도 1 내지 20에 예시된 교시에 의존할 수 있다.
본 명세서의 실시예는 실행될 때 방법(2100)을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독가능 매체를 포함할 수 있다. 매체는 본질적으로 비일시적일 수 있다. 매체는 복수의 매체에 걸쳐 분산될 수 있다.
이제 도 22를 참조하면, 복구 키를 생성하는 방법(2200)이 설명된다. 방법(2200)은 강화된 키(2202)를 엔트로피 해싱하는 단계와, 강화된 키(2204)로부터 비대칭 키 쌍을 생성하는 단계를 포함할 수 있다. 방법(2200)은 강화된 비대칭 키 쌍 및 강화된 키(2206)로부터 키스페이스 체인코드를 생성하는 단계를 포함할 수 있다. 방법(2200)은 상충 불가능 의사 랜덤 값(2208)을 계산하는 단계와 의사 랜덤 값을 키스페이스 체인코드에 전달하여 복구 키(2210)를 생성하는 단계를 포함할 수 있다. 방법(2200)은 프로토콜을 포함하거나 도 1 내지 21에 예시된 교시에 의존할 수 있다.
본 명세서의 실시예는 실행될 때 방법(2200)을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체를 포함할 수 있다. 매체는 본질적으로 비일시적일 수 있고 복수의 매체에 걸쳐 분산될 수 있다.
이제 도 23을 참조하면, 예시적인 방법(2300)이 개시된다. 방법(2300)은, 타원 곡선으로부터의 공개 키 및 개인 키를 갖는 비대칭 키 쌍을 제공하는 단계(2302), 제1 메시지 인증 코드로 공개 키에 서명하는 단계(2304), 및 공개 키 및 제1 메시지 인증 코드를 또 다른 당사자에게 전송(2306)하는 단계를 포함할 수 있다. 방법(2300)은 또 다른 당사자로부터 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 수신하는 단계(2308)를 포함할 수 있다. 방법(2300)은 개인 키를 사용하여 제1 암호화된 데이터 패키지를 복호화하는 단계((2310)를 포함할 수 있다. 방법(2300)은 또 다른 당사자로부터 대칭 암호화 키 및 난스를 수신하는 단계(2312)를 포함할 수 있다. 방법(2300)은 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계(2314)를 포함할 수 있고, 여기서 제2 암호화된 데이터 패키지는 공개 식별자를 포함한다.
방법(2300)의 일부 실시예에서, 난스의 제2 상태 및 대칭 암호화 키를 사용하여 제2 암호화된 데이터 패키지가 생성된다. 방법(2300)은 난스에 상태를 할당하는 단계를 포함할 수 있다. 방법(2300)은 사용자의 신원을 인증 또는 검증하거나 데이터를 암호화하는 방법을 포함할 수 있다. 방법(2300)은 프로토콜을 포함하거나 도 1 내지 22에 예시된 교시에 의존할 수 있다.
본 명세서의 실시예는 실행될 때 방법(2300)을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체를 포함할 수 있다. 매체는 본질적으로 비일시적일 수 있다. 매체는 복수의 매체에 걸쳐 분산될 수 있다.
이제 도 24를 참조하면, 예시적인 방법(2400)이 이제 설명된다. 방법(2400)은 또 다른 당사자로부터 공개 키 및 제1 메시지 인증 코드를 수신하는 단계(2402), 및 제1 메시지 인증 코드를 검증하는 단계(2404)를 포함할 수 있다. 방법(2400)은 공개 키를 사용하여 대칭 암호화 키 및 제1 난스 상태를 갖는 제1 암호화된 데이터 패키지를 생성하는 단계(2406)를 포함할 수 있다. 방법(2400)은 제1 암호화된 데이터 패키지에 제2 메시지 인증 코드를 추가하는 단계(2408), 및 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계(2410)를 포함할 수 있다. 방법(2400)은 또 다른 당사자로부터 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 수신하는 단계(2412)를 포함할 수 있으며, 여기서 제2 암호화된 데이터 패키지는 공개 식별자를 포함한다. 방법(2400)은 제2 난스 상태 및 대칭 암호화 키를 사용하여, 제2 암호화된 데이터 패키지를 복호화하는 단계(2414)를 포함할 수 있다. 방법(2400)은 사용자의 신원을 인증 또는 검증하거나 데이터를 암호화하는 방법을 포함할 수 있다. 방법(2400)은 프로토콜을 포함하거나 도 1 내지 23에 예시된 교시에 의존할 수 있다.
본 명세서의 실시예는 실행될 때 방법(2400)을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체를 포함할 수 있다. 매체는 본질적으로 비일시적일 수 있고 복수의 매체에 걸쳐 분산될 수 있다.
도 25는 서비스 식별 방법(2500)을 도시한다. 이 방법(2500)은 인증하기 위해 개인 키를 사용하는 서비스 상에 저장된 공개 키를 갖는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 제공하는 단계를 포함한다. 방법(2500)은 사용자의 신원을 인증 또는 검증하거나 데이터를 암호화하는 방법을 포함할 수 있다. 방법(2500)은 프로토콜을 포함하거나 도 1 내지 24에 예시된 교시에 의존할 수 있다.
본 명세서의 실시예는 실행될 때 방법(2500)을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체를 포함할 수 있다. 매체는 본질적으로 비일시적일 수 있고 복수의 매체에 걸쳐 분산될 수 있다.
이제 도 26을 참조하면, 웹 기반 서비스를 사용자(2618)에게 제공하기 위한 시스템(2600)이 설명된다. 시스템(2600)은 네트워크 사이트(2604) 및 서비스를 지원하기 위한 서버(2610)를 갖는 웹 서비스 사이트(2602)를 포함할 수 있다. 사이트(2602)는 예를 들어, 유형의 컴퓨터 판독 가능 매체와 같은 프로세서(2606)를 갖거나 이와 통신할 수 있다. 사이트(2602)는 공개 키가 저장된 데이터 저장소(2608)를 포함할 수 있다. 컴퓨터(2612) 수단을 동작하는 사용자(2618)는 앱(2614)을 사용하여 개인 키를 생성할 수 있으며, 이는 컴퓨터(2612)에 저장된, 여기에 설명된 패스포트와 관련하여 실질적으로 설명된 바와 같을 수 있다. 개인 키는 본 기술 분야의 임의의 네트워크 수단(2616)을 통해 사이트(2602)로 전달될 수 있다. 프로세서(2606)는 앱(2614)으로부터의 개인 키에 대해 데이터 저장소(2608)로부터의 공개 키를 인증할 수 있다. 시스템(2600)은 서비스 상에 저장된 공개 키를 가지며 인증하기 위해 개인 키를 사용하는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 포함하는 웹 기반 서비스를 제공할 수 있다. 시스템(2600)은 프로토콜을 실행하거나 도 1 내지 25에 예시된 교시에 의존할 수 있다.
본 개시의 실시예는 실행될 때 방법을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체를 포함할 수 있다. 매체는 본질적으로 비일시적일 수 있다. 방법은 사용자의 신원을 인증 또는 검증하거나 데이터를 암호화하는 방법을 포함할 수 있다.
방법은, (1) 강화된 키를 엔트로피 해싱하는 단계; (2) 강화된 키로부터 비대칭 키 쌍을 생성하는 단계; (3) 강화된 비대칭 키 쌍 및 강화된 키로부터 키스페이스 체인코드를 생성하는 단계; 및 (4) 강화된 비대칭 키 쌍으로부터 검증 키 쌍을 생성하는 단계를 포함할 수 있다. 이 방법에서, 또한, 비대칭 키 쌍을 생성하는 단계는 (5) 타원 곡선에 랜덤 값을 전달하는 단계를 포함한다. 타원 곡선은 안전한 타원 곡선일 수 있다. 일부 실시예에서, 강화된 키를 해싱하는 엔트로피는 강화된 시드 키 및 강화된 복구 키를 엔트로피 해싱하는 단계를 포함한다.
제2 방법은 복구 키를 생성하는 방법을 포함할 수 있다. 제2 방법은, (1) 강화된 키를 엔트로피 해싱하는 단계; (2) 강화된 키로부터 비대칭 키 쌍을 생성하는 단계; (3) 강화된 비대칭 키 쌍 및 강화된 키로부터 키스페이스 체인코드를 생성하는 단계; (4) 상충 불가능 의사 랜덤 값을 계산하는 단계; 및 (5) 의사 랜덤 값을 키스페이스 체인코드에 전달하여 복구 키를 생성하는 단계를 포함한다.
제1 방법 및 제2 방법은 컴퓨터 판독 가능 매체에 의해 실행될 수 있다. 제1 방법 및 제2 방법은 실질적으로 동시에 또는 실질적으로 함께 실행될 수 있다.
제3 방법은, (1) 타원 곡선으로부터 공개 키와 개인 키를 갖는 비대칭 키 쌍을 제공하는 단계; (2) 제1 메시지 인증 코드로 공개 키에 서명하는 단계; (3) 공개 키 및 제1 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계; (4) 또 다른 당사자로부터 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 수신하는 단계; (5) 개인 키를 사용하여 제1 암호화된 데이터 패키지를 복호화하는 단계; (6) 또 다른 당사자로부터 대칭 암호화 키와 난스를 수신하는 단계; (7) 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계를 포함하고, 제2 암호화된 데이터 패키지는 공개 식별자를 포함한다. 제3 방법은 난스의 제2 상태와 대칭 암호화 키를 사용하여 제2 암호화 데이터 패키지가 생성되는 단계를 포함할 수 있다. 제3 방법은 난스에 상태를 할당하는 단계를 포함할 수 있다.
제4 방법은, (1) 공개 키 및 제1 메시지 인증 코드를 또 다른 당사자로부터 수신하는 단계; (2) 제1 메시지 인증 코드를 검증하는 단계; (3) 공개 키를 사용하여, 대칭 암호화 키 및 제1 난스 상태를 갖는 제1 암호화된 데이터 패키지를 생성하는 단계; (4) 제1 암호화된 데이터 패키지에 제2 메시지 인증 코드를 추가하는 단계; (5) 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계; (6) 또 다른 당사자로부터 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 수신하는 단계 - 제2 암호화된 데이터 패키지는 공개 식별자를 포함함 -; (7) 제2 난스 상태 및 대칭 암호화 키를 사용하여, 제2 암호화된 데이터 패키지를 복호화하는 단계를 포함할 수 있다.
본 개시의 실시예는 실행될 때 제3 방법을 수행하는 명령어를 포함하는 제1 유형의 컴퓨터 판독가능 매체, 및 실행될 때 제4 방법을 수행하는 명령어를 포함하는 제2 유형의 컴퓨터 판독가능 매체를 포함할 수 있다.
일부 실시예에서, 서비스 식별 방법이 제공된다. 이 방법은 인증하기 위해 개인 키를 사용하는 서비스 상에 저장된 공개 키를 갖는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 제공하는 단계를 포함한다. 방법은 본 개시에서 달리 설명된 다른 동작 또는 특징을 포함할 수 있다.
일부 실시예에서, 웹 기반 서비스가 제공된다. 서비스는 서비스 상에 저장된 공개 키를 갖고 인증할 개인 키를 사용하는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 포함할 수 있다. 서비스는 다른 피처를 포함할 수 있거나 본 개시에서 달리 설명된 동작으로부터 도출될 수 있다.
여기에 개시된 다양한 요소들 각각은 다양한 방식으로 달성될 수 있다. 본 개시는 임의의 장치 실시예, 방법 또는 프로세스 실시예의 변형이거나, 심지어 이들 중 임의의 요소의 단지 변형일지라도, 이러한 각각의 변형을 포함하는 것으로 이해되어야 한다. 특히, 각 요소에 대한 단어는 기능 또는 결과만 동일하더라도 동등한 장치 용어 또는 방법 용어로 표현될 수 있음을 이해해야 한다. 이러한 동등하거나 더 광범위하거나 훨씬 더 일반적인 용어는 각 요소 또는 동작의 설명에 포함되는 것으로 간주되어야 한다. 이러한 용어는 본 발명이 받을 수 있는 암시적으로 광범위한 범위를 명시하기 위해 원하는 경우 대체될 수 있다.
하나의 예로서, 모든 동작은 그 동작을 취하기 위한 수단으로 또는 그 동작을 유발하는 요소로 표현될 수 있음을 이해해야 한다. 유사하게, 개시된 각각의 물리적 요소는 그 물리적 요소가 용이하게 하는 동작의 개시를 포함하는 것으로 이해되어야 한다. 이 마지막 양상과 관련하여 "고정부(fastener)"의 개시는 명시적으로 논의되었는지 여부에 관계없이 "고정(fastening)" 동작의 개시를 포함하는 것으로 이해되어야 하며 반대로 "고정" 동작의 개시만 있었다면, 그러한 개시는 "고정 메커니즘"의 개시를 포함하는 것으로 이해되어야 한다. 이러한 변경 및 대체 용어는 설명에 명시적으로 포함되는 것으로 이해되어야 한다.
또한, "A, B, 또는 C 중 적어도 하나"를 인용하는 청구항은 "A"만을 요구하는 디바이스에서 판독되어야 하는 것으로 해석되어야 한다. 청구항은 "B"만 필요한 디바이스에서도 이해되어야(read) 한다. 청구항은 "C"만 필요한 디바이스에서도 이해되어야 한다.
유사하게, 청구항은 "A+B"를 필요로 하는 디바이스에서도 이해되어야 한다. 청구항은 "A+B+C" 등을 필요로 하는 디바이스에서도 이해되어야 한다.
청구항들은 또한 임의의 관계 언어(예컨대, 수직, 직선, 평행, 평면 등)가 "디바이스가 제조될 때의 또는 발명 당시의 합리적인 제조 공차 내에서(이 두 제조 공차 중 어느 공차가 더 크든지 간에)"라는 기재(recitation)를 포함하는 것으로 이해되도록 해석되어야 한다.
당업자는 본 명세서에 기술된 실시예에 의해 달성된 것과 실질적으로 동일한 결과를 달성하기 위해 본 발명, 그 용도 및 그 구성에서 수많은 변형 및 대체가 이루어질 수 있음을 쉽게 인식할 수 있다.
따라서, 본 발명을 개시된 예시적인 형태로 제한하려는 의도는 없다. 많은 변형, 수정 및 대안적인 구성이 청구항들에 표현된 바와 같이 본 발명의 범위 및 사상에 속한다.

Claims (22)

  1. 방법에 있어서,
    강화된 키(hardened key)를 엔트로피 해싱(entropy hashing)하는 단계;
    상기 강화된 키로부터 비대칭 키 쌍을 생성하는 단계;
    상기 강화된 키 및 강화된 비대칭 키 쌍으로부터 키스페이스 체인코드(keyspace chaincode)를 생성하는 단계; 및
    상기 강화된 비대칭 키 쌍으로부터 검증 키 쌍을 생성하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    비대칭 키 쌍을 생성하는 단계는 타원 곡선에 랜덤 값을 전달하는 단계를 포함하는 것인, 방법.
  3. 제2항에 있어서,
    상기 타원 곡선은 안전한 타원 곡선인 것인, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    강화된 키를 엔트로피 해싱하는 단계는 강화된 시드 키(seed key) 및 강화된 복구 키를 엔트로피 해싱하는 단계를 포함하는 것인, 방법.
  5. 실행될 때 방법을 수행하는 명령어를 포함하는 유형의(tangible) 컴퓨터 판독 가능 매체에 있어서, 상기 방법은,
    강화된 키를 엔트로피 해싱하는 단계;
    상기 강화된 키로부터 비대칭 키 쌍을 생성하는 단계;
    상기 강화된 키 및 강화된 비대칭 키 쌍으로부터 키스페이스 체인코드를 생성하는 단계; 및
    상기 강화된 비대칭 키 쌍으로부터 검증 키 쌍을 생성하는 단계
    를 포함하는 것인, 컴퓨터 판독 가능 매체.
  6. 제5항에 있어서,
    비대칭 키 쌍을 생성하는 단계는 타원 곡선에 랜덤 값을 전달하는 단계를 포함하는 것인, 컴퓨터 판독 가능 매체.
  7. 제6항에 있어서,
    상기 타원 곡선은 안전한 타원 곡선인 것인, 컴퓨터 판독 가능 매체.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    강화된 키를 엔트로피 해싱하는 단계는 강화된 시드 키 및 강화된 복구 키를 엔트로피 해싱하는 단계를 포함하는 것인, 컴퓨터 판독 가능 매체.
  9. 복구 키를 생성하는 방법에 있어서,
    강화된 키를 엔트로피 해싱하는 단계;
    상기 강화된 키로부터 비대칭 키 쌍을 생성하는 단계;
    상기 강화된 키 및 강화된 비대칭 키 쌍으로부터 키스페이스 체인코드를 생성하는 단계;
    상충 불가능(non-collidable) 의사 랜덤 값을 계산하는 단계; 및
    상기 의사 랜덤 값을 상기 키스페이스 체인코드에 전달하여 상기 복구 키를 생성하는 단계
    를 포함하는, 복구 키를 생성하는 방법.
  10. 실행될 때 복구 키를 생성하는 방법을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체에 있어서, 상기 방법은,
    강화된 키를 엔트로피 해싱하는 단계;
    상기 강화된 키로부터 비대칭 키 쌍을 생성하는 단계;
    상기 강화된 키 및 강화된 비대칭 키 쌍으로부터 키스페이스 체인코드를 생성하는 단계;
    상충 불가능 의사 랜덤 값을 계산하는 단계; 및
    상기 의사 랜덤 값을 상기 키스페이스 체인코드에 전달하여 상기 복구 키를 생성하는 단계
    를 포함하는 것인, 컴퓨터 판독 가능 매체.
  11. 방법에 있어서,
    타원 곡선으로부터 공개 키와 개인 키를 갖는 비대칭 키 쌍을 제공하는 단계;
    제1 메시지 인증 코드로 상기 공개 키에 서명하는 단계;
    상기 공개 키 및 상기 제1 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계;
    상기 또 다른 당사자로부터 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 수신하는 단계;
    상기 개인 키를 사용하여 상기 제1 암호화된 데이터 패키지를 복호화하는 단계;
    상기 또 다른 당사자로부터 대칭 암호화 키와 난스(nonce)를 수신하는 단계;
    제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 상기 또 다른 당사자에게 전송하는 단계
    를 포함하고,
    상기 제2 암호화된 데이터 패키지는 공개 식별자를 포함하는 것인, 방법.
  12. 제11항에 있어서,
    상기 제2 암호화된 데이터 패키지는 상기 난스의 제2 상태와 상기 대칭 암호화 키를 사용하여 생성되는 것인, 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 난스에 상태를 할당하는 단계를 더 포함하는, 방법.
  14. 실행될 때 방법을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체에 있어서, 상기 방법은,
    타원 곡선으로부터 공개 키와 개인 키를 갖는 비대칭 키 쌍을 제공하는 단계;
    제1 메시지 인증 코드로 상기 공개 키에 서명하는 단계;
    상기 공개 키 및 상기 제1 메시지 인증 코드를 또 다른 당사자에게 전송하는 단계;
    상기 또 다른 당사자로부터 제1 암호화된 데이터 패키지 및 제2 메시지 인증 코드를 수신하는 단계;
    상기 개인 키를 사용하여 상기 제1 암호화된 데이터 패키지를 복호화하는 단계;
    상기 또 다른 당사자로부터 대칭 암호화 키와 난스를 수신하는 단계;
    제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 상기 또 다른 당사자에게 전송하는 단계
    를 포함하고,
    상기 제2 암호화된 데이터 패키지는 공개 식별자를 포함하는 것인, 컴퓨터 판독 가능 매체.
  15. 제14항에 있어서,
    상기 제2 암호화된 데이터 패키지는 상기 난스의 제2 상태와 상기 대칭 암호화 키를 사용하여 생성되는 것인, 컴퓨터 판독 가능 매체.
  16. 제14항 또는 제15항에 있어서,
    상기 난스에 상태를 할당하는 단계를 더 포함하는 것인, 컴퓨터 판독 가능 매체.
  17. 방법에 있어서,
    공개 키 및 제1 메시지 인증 코드를 또 다른 당사자로부터 수신하는 단계;
    상기 제1 메시지 인증 코드를 검증하는 단계;
    상기 공개 키를 사용하여, 대칭 암호화 키 및 제1 난스 상태를 갖는 제1 암호화된 데이터 패키지를 생성하는 단계;
    상기 제1 암호화된 데이터 패키지에 제2 메시지 인증 코드를 추가하는 단계;
    상기 제1 암호화된 데이터 패키지 및 상기 제2 메시지 인증 코드를 상기 또 다른 당사자에게 전송하는 단계;
    상기 또 다른 당사자로부터 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 수신하는 단계 - 상기 제2 암호화된 데이터 패키지는 공개 식별자를 포함함 -;
    제2 난스 상태 및 상기 대칭 암호화 키를 사용하여, 상기 제2 암호화된 데이터 패키지를 복호화하는 단계
    를 포함하는, 방법.
  18. 실행될 때 방법을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체에 있어서, 상기 방법은,
    공개 키 및 제1 메시지 인증 코드를 또 다른 당사자로부터 수신하는 단계;
    상기 제1 메시지 인증 코드를 검증하는 단계;
    상기 공개 키를 사용하여, 대칭 암호화 키 및 제1 난스 상태를 갖는 제1 암호화된 데이터 패키지를 생성하는 단계;
    상기 제1 암호화된 데이터 패키지에 제2 메시지 인증 코드를 추가하는 단계;
    상기 제1 암호화된 데이터 패키지 및 상기 제2 메시지 인증 코드를 상기 또 다른 당사자에게 전송하는 단계;
    상기 또 다른 당사자로부터 제2 암호화된 데이터 패키지 및 제3 메시지 인증 코드를 수신하는 단계 - 상기 제2 암호화된 데이터 패키지는 공개 식별자를 포함함 -;
    제2 난스 상태 및 상기 대칭 암호화 키를 사용하여, 상기 제2 암호화된 데이터 패키지를 복호화하는 단계
    를 포함하는 것인, 컴퓨터 판독 가능 매체.
  19. 서비스 식별 방법에 있어서,
    인증하기 위해 개인 키를 사용하는 서비스 상에 저장된 공개 키를 가지는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 제공하는 단계를 포함하는, 서비스 식별 방법.
  20. 실행될 때 서비스 식별 방법을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체에 있어서, 상기 방법은,
    인증하기 위해 개인 키를 사용하는 서비스 상에 저장된 공개 키를 가지는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 제공하는 단계를 포함하는 것인, 컴퓨터 판독 가능 매체.
  21. 웹 기반 서비스에 있어서,
    서비스 상에 저장된 공개 키를 가지며 인증하기 위해 개인 키를 사용하는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 포함하는, 웹 기반 서비스.
  22. 실행될 때 웹 기반 서비스 방법을 수행하는 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체에 있어서, 상기 방법은,
    상기 서비스 상에 저장된 공개 키를 가지며 인증하기 위해 개인 키를 사용하는, 서비스 식별을 위한 비대칭 키 쌍 저장소를 제공하는 단계를 포함하는 것인, 컴퓨터 판독 가능 매체.
KR1020217028270A 2019-02-05 2020-02-03 보안 시스템 및 관련 방법 KR20210134655A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962801148P 2019-02-05 2019-02-05
US62/801,148 2019-02-05
US201962807832P 2019-02-20 2019-02-20
US62/807,832 2019-02-20
PCT/US2020/016347 WO2020163210A1 (en) 2019-02-05 2020-02-03 Security system and related methods

Publications (1)

Publication Number Publication Date
KR20210134655A true KR20210134655A (ko) 2021-11-10

Family

ID=71948029

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217028270A KR20210134655A (ko) 2019-02-05 2020-02-03 보안 시스템 및 관련 방법

Country Status (7)

Country Link
US (1) US20220103369A1 (ko)
EP (1) EP3921972A4 (ko)
JP (1) JP2022519681A (ko)
KR (1) KR20210134655A (ko)
AU (1) AU2020217563A1 (ko)
CA (1) CA3127649A1 (ko)
WO (1) WO2020163210A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3716570B1 (en) * 2019-03-29 2022-07-27 Mitsubishi Electric R&D Centre Europe B.V. Computational puzzles against dos attacks
US11477233B2 (en) * 2019-10-18 2022-10-18 Juniper Networks, Inc. Deploying secure neighbor discovery in EVPN
US11917067B2 (en) * 2019-12-28 2024-02-27 Intel Corporation Apparatuses, methods, and systems for instructions for usage restrictions cryptographically tied with data
CN112422532B (zh) * 2020-11-05 2024-02-23 腾讯科技(深圳)有限公司 业务通信方法、系统、装置及电子设备
FR3117718A1 (fr) * 2020-12-14 2022-06-17 Commissariat A L'energie Atomique Et Aux Energies Alternatives Méthode de divulgation sélective de données via une chaine de blocs
US11799662B2 (en) * 2021-02-15 2023-10-24 Sony Semiconductor Solutions Corporation Efficient data item authentication
CN115114082A (zh) * 2021-03-23 2022-09-27 伊姆西Ip控股有限责任公司 用于在物联网中备份数据的方法、设备和程序产品
US20230078954A1 (en) * 2021-09-10 2023-03-16 Assa Abloy Ab Fast bilateral key confirmation
CN114499832B (zh) * 2021-12-02 2023-04-07 四川大学 一种基于ecc的安全增强双向匿名认证密钥协商协议方法
CN115242468B (zh) * 2022-07-07 2023-05-26 广州河东科技有限公司 一种基于rs485总线的安全通信系统及其方法
WO2024015647A1 (en) * 2022-07-15 2024-01-18 Zelus Wallet Llc Multi-factor authentication (mfa) for smart contract wallets
CN115022092B (zh) * 2022-08-05 2022-11-11 中汽数据(天津)有限公司 车辆软件升级方法、设备和存储介质
CN117131531B (zh) * 2023-10-27 2024-01-02 四川省计算机研究院 基于Neo4j数据库的数据安全存储方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4833489B2 (ja) * 2000-06-05 2011-12-07 フィーニックス  テクノロジーズ  リミテッド 複数のサーバを使用した遠隔パスワード認証のためのシステム、方法およびソフトウェア
US8989390B2 (en) * 2005-12-12 2015-03-24 Qualcomm Incorporated Certify and split system and method for replacing cryptographic keys
US9130744B1 (en) * 2014-09-22 2015-09-08 Envelope, Llc Sending an encrypted key pair and a secret shared by two devices to a trusted intermediary
US9641338B2 (en) * 2015-03-12 2017-05-02 Skuchain, Inc. Method and apparatus for providing a universal deterministically reproducible cryptographic key-pair representation for all SKUs, shipping cartons, and items
US20170147808A1 (en) * 2015-11-19 2017-05-25 International Business Machines Corporation Tokens for multi-tenant transaction database identity, attribute and reputation management

Also Published As

Publication number Publication date
WO2020163210A1 (en) 2020-08-13
EP3921972A1 (en) 2021-12-15
JP2022519681A (ja) 2022-03-24
AU2020217563A1 (en) 2021-09-30
CA3127649A1 (en) 2020-08-13
EP3921972A4 (en) 2022-11-02
US20220103369A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
US20220103369A1 (en) Security system and related methods
KR102392420B1 (ko) 다중키 쌍 시그너처를 사용한 프로그램 실행 및 데이터 증명 체계
JP6811339B2 (ja) 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
US11533297B2 (en) Secure communication channel with token renewal mechanism
Das et al. An efficient multi‐gateway‐based three‐factor user authentication and key agreement scheme in hierarchical wireless sensor networks
US9565180B2 (en) Exchange of digital certificates in a client-proxy-server network configuration
CN110832519A (zh) 提高区块链网络与外部数据源之间的通信的完整性
US11153074B1 (en) Trust framework against systematic cryptographic
CN105681470A (zh) 基于超文本传输协议的通信方法、服务器、终端
Albalawi et al. A survey on authentication techniques for the internet of things
Obert et al. Recommendations for trust and encryption in DER interoperability standards
Thakur et al. Cryptographically secure privacy-preserving authenticated key agreement protocol for an IoT network: A step towards critical infrastructure protection
Raniyal et al. Passphrase protected device‐to‐device mutual authentication schemes for smart homes
Malik et al. L-ecqv: Lightweight ecqv implicit certificates for authentication in the internet of things
Das et al. A decentralized open web cryptographic standard
Hall-Andersen et al. nQUIC: Noise-based QUIC packet protection
Costea et al. Secure opportunistic multipath key exchange
Naher et al. Authentication of Diffie-Hellman protocol against man-in-the-middle attack using cryptographically secure CRC
Babu et al. Fog‐Sec: Secure end‐to‐end communication in fog‐enabled IoT network using permissioned blockchain system
Kumar et al. Hash based approach for providing privacy and integrity in cloud data storage using digital signatures
Bolannavar Privacy-Preserving Public Auditing using TPA for Secure Cloud Storage
Pérez Díaz et al. A PUF-based authentication mechanism for OSCORE
Büttner et al. Protecting FIDO Extensions Against Man-in-the-Middle Attacks
RU2771928C2 (ru) Безопасный обмен данными, обеспечивающий прямую секретность
Shin et al. A Secure MQTT Framework from PUF-based Key Establishment