KR20230136708A - 컨센서스 기반 온라인 인증 - Google Patents

컨센서스 기반 온라인 인증 Download PDF

Info

Publication number
KR20230136708A
KR20230136708A KR1020237032128A KR20237032128A KR20230136708A KR 20230136708 A KR20230136708 A KR 20230136708A KR 1020237032128 A KR1020237032128 A KR 1020237032128A KR 20237032128 A KR20237032128 A KR 20237032128A KR 20230136708 A KR20230136708 A KR 20230136708A
Authority
KR
South Korea
Prior art keywords
encryption
secret
password
devices
user
Prior art date
Application number
KR1020237032128A
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 KR20230136708A publication Critical patent/KR20230136708A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/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/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/3271Cryptographic 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 challenge-response
    • H04L9/3273Cryptographic 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 challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • 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/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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/63Location-dependent; Proximity-dependent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/67Risk-dependent, e.g. selecting a security level depending on risk profiles

Abstract

컨센서스 기반 온라인 인증을 위한 방법 및 시스템이 제공된다. 암호화 장치는 암호화 장치에 의해 생성된 인증 암호를 기반으로 인증될 수 있다. 암호화 장치는 보안 평가 요청을 하나 이상의 지원 장치로 송신할 수 있다. 지원 장치는 암호화 장치, 다른 보안 장치 및 상황 정보를 개별적으로 평가할 수 있다. 지원 장치는 보안 평가에 기반하여 암호화 장치와 다중 당사자 연산에 참여하기로 선택할 수 있다. 참여를 선택한 지원 장치는, 하나 이상의 비밀 공유분 또는 부분 연산을 암호화 장치로 송신할 수 있다. 암호화 장치는 비밀 공유분 또는 부분 연산을 사용하여 인증 암호를 생성할 수 있다. 인증 암호는 복호화 장치로 송신될 수 있고, 이는 인증 암호를 해독하고 그 내용을 평가하고 그 내용에 기반하여 암호화 장치를 인증할 수 있다.

Description

컨센서스 기반 온라인 인증{CONSENSUS-BASED ONLINE AUTHENTICATION}
인증은 온라인 애플리케이션의 보안을 개선하기 위해 일반적으로 사용되는 기술이다. 예를 들어, 사용자가 웹 기반 이메일 클라이언트를 통해 자신의 이메일에 액세스하려고 시도하는 경우, 웹 서버는 일반적으로 사용자를 인증하기 위해 사용자명과 패스워드를 제공한 후 그들에게 민감한 보안성 리소스에 대한 액세스 권한을 부여하도록 한다.
일부 온라인 서비스는 더 나아가 "2단계" 인증을 사용하고, 여기서 사용자는 인증 프로세스의 일부로 몇 가지 증거를 제공하도록 요구된다. 예를 들어, 휴대폰 2단계 인증은, 사용자가 패스워드를 제공하는 것뿐만 아니라 SMS로 그들 휴대폰에 보내진 짧은 코드를 제공하는 것을 포함할 수 있다.
사기꾼은 종종 이들 방법을 악용하여 사기성 인증을 한다. 종종 암호를 훔치고, 많은 소비자 전자 장치를 해킹 또는 훔쳐서 2단계 인증 방법을 트릭으로 만들 수 있다. 사기성 인증은 사이버 보안 위협의 핵심 요소이다. 또한, 고급 인증 방법은 일반적으로 사용자를 괴롭히는데, 그 이유는 사용자가 덜 보안적인 인증 방법 하에서 더 많은 정보를 기억해야 하거나 제공할 수 있기 때문이다. 예를 들어, 사용자가 자기 휴대폰을 잃어버린 경우, 사용자는 더 이상 2단계 인증을 수행할 수 없다.
따라서, 새롭고 안전하며 편리한 온라인 인증 방법이 필요하다.
구현예는 암호화 장치를 인증하는 방법 및 시스템에 관한 것이다. 이들 구현예 중 일부는 "컨센서스 기반 온라인 인증"으로 지칭될 수 있다.
암호화 장치를 인증하는 데 사용되는 인증 암호를 생성하기 위해, 암호화 장치는 하나 이상의 지원 장치로부터 보안 평가를 요청할 수 있다. 하나 이상의 지원 장치는 보안 평가를 수행할 수 있고, 하나 이상의 지원 장치 중 일부는 암호화 장치를 갖는 다중 당사자 연산에 참여할 수 있다. 다중 당사자 연산은 인증 암호를 생성할 수 있다. 인증 암호는 암호화 장치로부터 복호화 장치로 송신될 수 있다. 복호화 장치는 인증 암호를 해독하고 평가할 수 있다. 복호화 장치는 평가에 기반하여 암호화 장치를 인증할 수 있다.
일 구현예는 암호의 생성에 참여하기 위한 방법에 관한 것으로, 상기 방법은, 지원 장치에서 다음을 수행하는 단계를 포함하고: 보안 평가에 대한 요청을 수신하는 단계(상기 요청은 상기 지원 장치가 암호를 생성하기 위해 다중 당사자 연산에 참여하도록 하는 것이고, 상기 지원 장치는 하나 이상의 비밀 값으로부터 생성된 하나 이상의 비밀 공유분을 저장함); 보안 데이터를 수신하는 단계; 상기 보안 데이터를 제공하는 장치의 현재 상태에 대응하는 하나 이상의 보안 속성을 상기 보안 데이터로부터 식별하는 단계; 상기 하나 이상의 보안 속성을 상기 지원 장치에 액세스 가능한 기준과 비교하는 단계; 상기 하나 이상의 보안 속성을 기준 데이터에 비교하는 단계에 기반하여, 다중 당사자 연산 참여 여부를 결정하는 단계; 및 상기 지원 장치가 참여하기로 결정하는 경우, 부분 암호화 값을 하나 이상의 암호화 엔진에 제공하는 단계를 수행하고, 상기 부분 암호화 값은 상기 하나 이상의 암호화 엔진에 의해 사용되도록 구성되어 상기 다중 당사자 연산을 통해 암호를 생성하고, 상기 부분 암호화 값은 상기 하나 이상의 비밀 공유분, 상기 하나 이상의 비밀 공유분 중 적어도 하나를 사용한 적어도 하나의 부분 연산 또는 이의 조합을 포함한다.
다른 구현예는 암호를 생성시키기 위한 방법에 관한 것으로서, 상기 방법은 암호화 장치에서 다음을 수행하는 단계를 포함하고: 보안 평가에 대한 요청을 하나 이상의 지원 장치에 송신하는 단계(상기 요청은 상기 하나 이상의 지원 장치가 암호를 생성하기 위해 다중 당사자 연산에 참여하도록 하는 것이고, 상기 하나 이상의 지원 장치는 하나 이상의 비밀 값으로부터 생성된 하나 이상의 비밀 공유분을 저장함); 상기 하나 이상의 지원 장치에 보안 데이터를 송신하는 단계; 상기 하나 이상의 지원 장치의 적어도 일부로부터 복수의 부분 암호화 값을 수신하는 단계(상기 부분 암호화 값은 상기 하나 이상의 비밀 공유분 중 적어도 하나, 상기 하나 이상의 비밀 공유분 중 적어도 하나를 사용한 적어도 하나의 부분 연산 또는 이의 조합을 포함함); 및 상기 하나 이상의 지원 장치와 상기 암호화 장치 중 적어도 두 개로부터 얻은 복수의 부분 암호화 값을 사용하여 암호를 생성하는 단계를 수행한다.
다른 구현예는 암호를 해독하는 방법에 관한 것으로, 상기 방법은 복호화 시스템에서 다음을 수행하는 단계를 포함하고: 상기 복호화 시스템의 하나 이상의 복호화 장치 전체에 걸쳐 복수의 비밀을 저장하는 단계(상기 복수의 비밀은 또한 암호화 시스템에 의해 저장되고, 상기 복수의 비밀 각각은 상이한 보증 수준과 연관해서 상기 복호화 시스템에 의해 저장되고, 상기 암호화 시스템의 암호화 장치가 제2 보증 수준에 대한 것보다 제1 보증 수준에 대해 더 많은 비밀 공유분을 제공하는 경우 상기 제1 보증 수준이 상기 제2 보증 수준보다 더 높음); 상기 암호화 시스템으로부터 암호를 수신하는 단계; 상기 복수의 비밀 중 제1 비밀을 선택해 상기 암호를 해독하기 위해 사용하는 단계(상기 제1 비밀은 상기 제1 보증 수준에 상응함); 상기 제1 비밀이 상기 암호를 해독하기 위해 사용되었는지 판단하는 단계; 상기 제1 비밀을 사용하여 기밀 정보를 얻도록 상기 암호를 해독하는 단계; 및 상기 제1 보증 수준에 기반하여, 상기 기밀 정보를 제1 프로토콜에 처리하는 단계를 수행한다.
이들 및 기타 구현예를 아래에서 더욱 상세하게 설명한다. 예를 들어, 다른 구현예는 본원에서 설명되는 방법과 연관된 시스템, 장치, 및 컴퓨터 판독가능 매체에 관한 것이다.
구현예의 본질 및 이점의 더 나은 이해는 다음의 상세한 설명 및 첨부 도면을 참조하여 얻어질 수 있다.
특정 구현예를 설명하기 전에, 일부 용어를 상세히 설명할 수 있다.
용어
"서버 컴퓨터"는 강력한 컴퓨터 또는 컴퓨터의 클러스터를 포함할 수 있다. 예를 들어, 서버 컴퓨터는, 큰 메인프레임, 미니컴퓨터 클러스터, 또는 한 유닛으로서 기능하는 서버의 그룹일 수 있다. 일례로, 서버 컴퓨터는 웹 서버에 연결된 데이터베이스 서버일 수 있다. 서버 컴퓨터는, 하나 이상의 연산 장치를 포함할 수도 있고, 하나 이상의 클라이언트 컴퓨터로부터의 요청을 서비스하기 위해 다양한 연산 구조, 배열, 및 편집 중 임의의 것을 사용할 수도 있다.
"메모리"는, 전자 데이터를 저장할 수 있는 임의의 적합한 장치(들)일 수 있다. 적합한 메모리는, 원하는 방법을 구현하도록 프로세서에 의해 실행될 수 있는 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 메모리의 예로는, 하나 이상의 메모리 칩, 디스크 드라이브 등을 포함할 수 있다. 이러한 메모리는, 임의의 적합한 전기 동작 모드, 광학 동작 모드, 및/또는 자기 동작 모드를 사용하여 동작할 수 있다.
"프로세서"는 임의의 적합한 데이터 연산 장치(들)를 지칭할 수 있다. 프로세서는, 원하는 기능을 달성하도록 함께 동작하는 하나 이상의 마이크로프로세서를 포함할 수 있다. 프로세서는, 사용자 및/또는 시스템 생성 요청을 실행하기 위한 프로그램 구성요소를 실행하는 데 적절한 적어도 하나의 고속 데이터 프로세서를 포함한 CPU를 포함할 수 있다. CPU는, AMD의 Athlon, Duron 및/또는 Opteron; IBM 및/또는 Motorola의 PowerPC; IBM과 Sony의 Cell 프로세서; Intel의 Celeron, Itanium, Pentium, Xeon, 및/또는 XScale; 및/또는 기타 프로세서(들)의 마이크로프로세서일 수 있다.
"암호화 키"라는 용어는 암호화 또는 복호화에 사용되는 것을 지칭할 수 있다. 암호화 키는, 예를 들어 두 개의 큰 솟수 번호의 곱을 지칭할 수 있다. 암호화 키는 RSA(Rivest, Shamir, Adleman) 또는 AES(Advanced Encryption Standard)와 같은 암호화 시스템에서 사용될 수 있으며, 일반텍스트를 암호화하고 암호텍스트 출력을 생성하는 데 사용될 수 있고, 암호텍스트를 해독하고 일반텍스트 출력을 생성할 수 있다. 암호화 키는, 암호화 및 복호화에 동일한 키가 사용될 수 있는 경우 대칭적이거나, 암호화 및 복호화에 사용되는 상이한 키가 사용될 수 있는 경우 비대칭적일 수 있다.
"일반텍스트"라는 용어는 일반 형태인 텍스트를 지칭할 수 있다. 예를 들어, 이는 "안녕, 어떻게 지내?"라는 문구와 같이, 사람이나 컴퓨터에 의해 읽을 수 있는 텍스트를 의미할 수 있다. 또한 비암호화된 형태의 텍스트를 지칭할 수 있다. 수 또는 기타 기호는 또한 일반텍스트일 수 있다.
"암호텍스트"라는 용어는 암호화된 형태인 텍스트를 지칭할 수 있다. 예를 들어, 이는 사람 또는 컴퓨터에 의해 판독되기 전에, 해독되어야 하는 텍스트를 지칭할 수 있다. 암호텍스트는 RSA 또는 AES 같이 임의 수의 암호화 알고리즘 또는 암호화 시스템에 의해 생성될 수 있다.
"암호 장치"는 암호화 및 복호화를 비롯한 암호화 작업을 수행할 수 있는 임의의 장치를 지칭할 수 있다. 암호 장치의 예로는 데스크톱 컴퓨터, 랩톱, 서버, 스마트 폰, 스마트워치, 태블릿, 비디오 게임 콘솔 또는 기타 휴대용 전자 장치가 있다. 암호 장치는 애플리케이션을 실행하여 암호화 작업을 수행할 수 있다. "암호화 장치" 및 "복호화 장치"는 암호 장치의 두 가지 예이다. 암호 장치는 "비밀" 또는 "비밀 공유"를 보유할 수 있다.
"지원 장치"는 암호화 작업을 수행하는 데 암호 장치를 보조할 수 있는 임의의 장치를 지칭할 수 있고 하나 이상의 비밀 공유분을 보유할 수 있다. 예로서, 지원 장치는 암호화 장치에 비밀 또는 비밀 공유분을 제공함으로써 암호 장치를 보조할 수 있다. 지원 장치는 암호 장치일 수 있다. 지원 장치는, 다른 지원 장치를 포함한 다른 암호 장치의 보안 평가를 또한 수행할 수도 있다.
"다중 당사자 연산"이라는 용어는 다수의 당사자가 수행하는 연산을 지칭할 수 있다. 서버 또는 컴퓨터와 같은 각 당사자는, 연산에 일부 입력을 가질 수 있다. 예를 들어, 한 당사자는 직사각형의 한 변의 길이를 알고 다른 상대방은 다른 한 변의 길이를 알고 있을 수 있다. 두 당사자는 직사각형의 영역을 결정하기 위해 다중 당사자 연산을 수행할 수 있다.
"보안 다중 당사자 연산"이라는 용어는 보안인 다중 당사자 연산을 지칭할 수 있다. 많은 경우, 이는 다중 당사자 연산을 지칭하고, 여기서 당사자는 정보 또는 다른 입력을 서로 공유하지 않는다. 예를 들어, 두 당사자는 서로에게 그들의 부를 드러내지 않고서 그들 중 누가 더 부자인지를 알고싶을 수 있다. 두 당사자는, 이를 달성하기 위해 가블드 회로(garbled circuit)와 같은 보안 다중 당사자 연산 기술을 사용할 수 있다.
"비밀"은, 암호화 프로세스의 일부로서 숨겨진 값 또는 대상을 지칭할 수 있다. 암호화 프로세스의 보안은, 단지 몇몇 당사자에게만 알려진 비밀에만 의존할 수 있다. 예를 들어, 비밀은 암호화 키일 수 있다. 비밀을 노출하면, 의도한 당사자 이외의 당사자가 메시지를 암호화하거나 해독할 수 있다.
"공유 비밀"은 다중 당사자 간에 공유된 비밀 값 또는 대상을 지칭할 수 있다. 예를 들어, 공유 비밀은, 다중 당사자 각각이 암호화 키의 일부를 보유하도록 분할된 암호화 키일 수 있다. 예를 들어, 128 비트 암호화 키는 여덟 당사자 사이에서 분할되어 각 당사자는 16 비트 암호화 키를 보유할 수 있다.
"비밀 공유분"은 공유 비밀로부터 파생된 값을 지칭할 수 있다. 예로서 비밀 공유분은 비밀 값의 처음 12비트일 수 있다. 비밀 공유분은 또한 수를 갖는 이진 배타적-OR 비밀 값일 수 있다. 비밀 공유분은 일부 경우에 비밀을 재현하기 위해 여러 다른 비밀 공유분과 조합될 수 있다.
"해시 함수"는, 임의 크기의 데이터를 고정 크기의 데이터에 매핑하는 데 사용할 수 있는 임의의 함수를 지칭할 수 있다. 해시 함수는 빠른 데이터 조회를 수행하는 데 사용할 수 있다. 또한, 데이터를 해당 "해시 값"으로 대체하여 데이터를 숨기거나 불분명하게 하기 위해 사용할 수 있다. 예를 들어, 해싱 알고리즘을 사용하여 256 비트 시퀀스로 긴 메시지를 변환할 수 있다. 해시 함수가 "충돌에 저항"하면, 동일한 값으로 해시되는 두 개의 메시지를 찾기가 어렵다는 것을 의미하고, 해시 알고리즘을 사용하여 "약속 메시지"를 생성하고, 이 메시지는 암호화된 메시지를 변조하지 않았는지 검증하는 데 사용할 수 있다.
"약속 메시지"는, 행동 과정이 약속되었음을 검증하는 데 사용될 수 있는 메시지를 지칭할 수 있다. 암호화 텍스트에서, 약속 메시지는, 암호화된 메시지가 변조되지 않았음을 검증하는 데 사용될 수 있는 메시지를 지칭할 수 있다. 메시지가 암호화되기 전에, 약속 메시지는, 예를 들어 해시 함수를 통해 상기 메시지 상에 기반하여 생성될 수 있다. 이 약속 메시지는 암호화된 메시지와 함께 송신될 수 있다. 메시지가 해독되면, 수신자는 자신의 약속 메시지를 동일한 방식으로 생성할 수 있다. 수신된 약속 메시지와 생성된 약속 메시지는 일치를 검증하기 위해 비교될 수 있다.
"유사 무작위 함수"는 무작위로 나타나는 출력을 생성하는 결정 함수를 지칭할 수 있다. 유사 무작위 함수에는 해시 함수, 특히 충돌 저항성 해시 함수뿐만 아니라 타원형 곡선 군을 포함할 수 있다. 유사 무작위 함수는 랜덤 오라클에 근접할 수 있으며, 이는 출력 도메인으로부터 무작위 출력으로 입력을 매핑하는 이상적인 암호화 원시 함수이다. 유사 무작위 함수는 유사 무작위 수 생성기로부터 구성될 수 있다.
"무작위 임시값" 또는 "암호화 임시값"은 제한된 횟수만 사용할 수 있는 임의의 수를 지칭할 수 있다. 무작위 임시값은 무작위로 또는 유사 무작위로 생성될 수 있고, 암호화 해시 함수에 사용될 수 있다. 무작위 임시값은 "재생 공격"과 같은 일부 형태의 암호화 공격을 방지할 수 있다.
용어 "보안 데이터"는 장치 또는 시스템의 보안을 추론하기 위해 사용될 수 있는, 하나 이상의 "보안 속성"을 포함하는 패킷 또는 메시지를 지칭할 수 있다. 보안 데이터는 암호화 또는 압축된 형태일 수 있고, 보안 속성을 추출하기 위해 특별히 해석해야 할 수도 있다. 보안 속성의 예로는, 무엇보다 애플리케이션 서명, 랩톱 장치 구성 및 지문, 사용자 ID 및 인증 상태, 멀웨어 방지 보호 상태, 랩톱 위치, 로컬 시간 및 사용 데이터가 있다.
"보증 수준"이라는 용어는, 어떤 것에 대해 실체가 갖는 신뢰가 얼마인지 측정하거나 표시하는 것을 의미할 수 있다. 예를 들어, 보증 수준은, 암호가 사기 목적으로 생성되지 않았음을 암호화 시스템이 얼마나 확신을 갖는지에 대응할 수 있다. 보증 수준은 비밀에 해당할 수 있다. 높은 보증 수준에 해당하는 비밀은, 낮은 보증 수준에 해당하는 비밀보다 더 많은 비밀 공유분을 필요로 할 수 있다.
도 1a는 일부 구현예에 따라 클라이언트 컴퓨터와 서버 컴퓨터 사이의 통신을 나타낸 메시지 흐름도를 간략히 나타낸다.
도 1b는 일부 구현예에 따른 시스템의 블록도를 나타낸다.
도 2는 일부 구현예에 따른 장치 보안 분류 차트를 나타낸다.
도 3은 일부 구현예에 따른 비밀 공유분 프로비저닝 네트워크를 나타낸다.
도 4는 일부 구현예에 따른 인증 암호를 생성하는 방법을 나타낸다.
도 5는 일부 구현예에 따른 다중 당사자 연산을 나타낸다.
도 6은 일부 구현예에 따른 다중 당사자 연산의 일부로서 암호화 장치에 단일 비밀 공유분을 제공하는 지원 장치의 블록도를 나타낸다.
도 7은 일부 구현예에 따른 다중 당사자 연산의 일부로서 암호화 장치에 다중 비밀 공유분을 제공하는 지원 장치의 블록도를 나타낸다.
도 8은 일부 구현예에 따른 3개의 서로 다른 보증 수준에서 인증 암호 생성을 자세히 설명하는 블록도를 나타낸다.
도 9는 일부 구현예에 따른 암호화 시스템 및 복호화 시스템에 의해 수행되는 암호화 시스템을 인증하는 방법을 나타낸다.
도 10은 일부 구현예에 따른 인증 요청, 암호화 장치, 및 지원 장치의 블록도를 나타낸다.
도 11은 일부 구현예에 따른 컴퓨터 시스템을 나타낸다.
구현예는 인증 암호를 생성하는 방법을 제공함으로써, 온라인 인증의 보안을 개선할 수 있다. 지원 장치 모음과 더불어 암호화 장치는, 함께 작용하여 암호화 장치와 연관된 사용자를 인증하는 데 사용될 수 있는 인증 암호를 생성할 수 있다. 지원 장치는 암호 생성에 참여할지 여부를 결정할 수 있고, 일부 지원 장치는 참여하지 않을 수 있다. 또한 일부 지원 장치는 다른 지원 장치보다 더 많이 참여할 수 있다. 이 암호는 복호화 장치로 송신될 수 있고, 복호화 장치는 암호를 해독하고 그 내용을 평가하며 사용자를 인증할 수 있다. 이러한 인증 암호는, 장치 중 적극적인 협업이 주어지면 사기꾼이 자체적으로 생성하는 데 어려울 수 있다. 이와 같이, 사기꾼은 허위 인증할 수 없고 보호된 정보에 액세스할 수 없다. 따라서, 구현예는 사기성 용도에 취약한 종래의 인증 방법에 비해 개선을 제공할 수 있다.
다음 섹션은, 컨센서스 기반 온라인 인증을 보다 상세하게 수행하기 위해 사용된 방법과 시스템을 설명한다. 섹션 I은 인증 보안의 현재 문제점에 대한 구현예를 소개한다. 섹션 II는 인증 및 암호화에 대한 컨센서스 개요를 제공한다. 섹션 III은 일부 구현예에 따른 컨센서스 기반 온라인 인증을 수행하는 시스템을 설명한다. 섹션 IV는 컨센서스 기반 온라인 인증의 방법을 설명한다. 섹션 V는 지원 장치에 의해 수행되는 보안 평가 절차를 논의한다. 섹션 VI는 인증 암호를 생성하기 위해 사용되는 다중 당사자 연산에 대해 설명한다. 섹션 VII는 복호화 장치에 의해 수행되는 인증 프로세스를 설명한다. 섹션 VIII은 일부 추가 장치 구성을 설명하고, 섹션 IX는 일부 구현예에 따른 컴퓨터 시스템을 설명한다.
I. 소개
많은 웹 기반 클라이언트 서버 상호 작용에서 인증은 점점 더 일반적이다. 인터넷 사용자는, 웹 기반 이메일 클라이언트 액세스, 온라인 쇼핑, 또는 헬스케어 제공자와 통신하는 경우에, 자주 인증한다. 대부분의 경우, 인증은, 사용자명과 패스워드를 입력하는 사용자 및 정보가 올바른지 확인함으로써 사용자를 인증하는 서버를 단순히 포함한다.
도 1a는 비 보안 네트워크를 통해 클라이언트 및 서버 상호 작용의 블록도를 보여준다. 사용자(110)와 연관된 클라이언트 컴퓨터(120)는, 비 보안 네트워크(190)(예컨대, 인터넷)를 통해 서버 컴퓨터(160)로 요청(101)을 송신한다. 서버 컴퓨터(160)는 응답(102)을 생성하고 클라이언트 컴퓨터(120)에 송신할 수 있다. 이 모델은 많은 온라인 상호 작용을 설명할 수 있다.
일례로, 랩톱과 같은 클라이언트 컴퓨터(120)를 작동시키는 사용자(110)는, 요청(101)을 이메일 서버로서 작동하는 서버 컴퓨터(160)로 웹 기반 이메일 계정에 액세스하여 송신할 수 있다. 요청(101)은 인증을 수행하기 위해 사용되는 정보, 예컨대 사용자명과 패스워드를 포함할 수 있다. 요청(101)은 비 보안 네트워크(190)를 통해 암호화된 형태로 송신될 수 있고, 서버 컴퓨터(160)에 의해 수신될 수 있다.
서버 컴퓨터(160)는 요청(101)을 프로세스하고 응답을 생성할 수 있다(102). 예를 들어, 사용자명 및 패스워드 정보가 정확하면, 서버 컴퓨터(160)는 사용자(110)를 인증할 수 있고, 응답(102)은, 사용자(110)가 요청했던 이메일 데이터일 수 있다. 정보가 부정확한 경우, 응답은 그 결과에 대한 메시지일 수 있다. 응답(102)은, 바람직하게는 암호화되어 비 보안 네트워크(190)를 통해 클라이언트 컴퓨터(120)로 송신된다.
이 모델에 여러 보안 문제가 있다. 이러한 문제점 하나는, 서버 컴퓨터(160)가 사용자(110)를 모르는 것이다. 서버 컴퓨터(160)가 인증에 필요한 자격 증명을 수신하는 경우, 서버 컴퓨터(160)는 사용자(110)의 자격 증명을 획득한 사용자(110)가 올바른 사용자인지 또는 사기꾼인지 실제로 알 수 없다. 사기꾼은 종종 사용자명과 패스워드를 수집하고, 인증 시스템이 그 자리에 있음에도 불구하고 개인 정보를 훔치기 위해 이를 사용한다.
종래의 모델에 대한 다른 문제 하나는, 서버 컴퓨터(160)가 상호 작용 동안에 클라이언트 컴퓨터(120)의 보안을 고려하지 않는다는 것이다. 일부 경우에, 클라이언트 컴퓨터(120)는 해커에 의해 손상되거나 원격식으로 제어될 수 있다. 이 경우, 사용자(110)는, 클라이언트 컴퓨터(120)가 서버 컴퓨터(160)에 요청(101)을 보내는 데 사용되고 있음을 알 수 없고 이에 관련되지 않는다. 해커는 클라이언트 컴퓨터(120) 상에 저장된 패스워드 또는 다른 정보를 사용하여, 요청(101)(예: 인증 요청)을 송신하고 응답(102)(예컨대 개인 정보)을 수신할 수 있다. 응답(102)은, 클라이언트 컴퓨터(120)로부터 해커로 사용자(110)가 인지하지 못한 채 전달될 수 있다.
사용자(110)가 바로 자기 자신임을 검증하거나 클라이언트 컴퓨터(120)의 보안을 검증하기 위해, 종래의 시스템에서는 보안 평가가 전혀 수행되지 않는다. 그러나, 구현예는 사용자 보안 평가와 장치 보안 평가를 허용한다. 사용자 보안 평가는 사용자(110)가 합법적인 사용자인지 정확하게 검증하고, 장치 보안 평가는 클라이언트 컴퓨터(120)가 안전하고 괜찮은 상태인지 검증한다. 이들 보안 평가는 인증 프로세스를 크게 개선하고 잘못된 인증 및 불법 데이터 액세스를 방지한다.
II. 컨센서스 인증 및 암호화
컨센서스 기반 온라인 인증을 수행하는 데 사용되는 시스템 및 방법은 도 1b를 참조하여 보다 잘 이해될 수 있다. 이 도면을 또한 섹션 III에서 자세히 설명할 것이다.
도 1b는, 다수의 지원 장치(104 내지 106) 및 암호화 장치(108)를 포함하는 사용자 장치(102)의 모음을 포함하는, 컨센서스 기반 온라인 인증을 수행하기 위해 사용되는 시스템(100)의 블록도를 보여준다. 또한, 복호화 장치(110) 및 사이드 채널(112)이 나타나 있다.
사용자 장치(102)는 사용자가 보유하는 장치의 모음이다. 이들 장치(즉, 암호화 장치(108) 및 지원 장치(104 내지 106))는 랩톱, 데스크톱 컴퓨터, 스마트 폰, 스마트 워치, 스마트 카, 비디오게임 콘솔 등과 같은 전자 장치를 포함할 수 있다. 복호화 장치(110)는 메시지를 해독할 수 있는 컴퓨터 또는 서버 컴퓨터일 수 있다. 이들 장치는 인터넷과 같은 네트워크를 통해 서로 통신할 수 있다. 또한 블루투스 또는 와이파이와 같은 다른 수단을 통해 서로 통신할 수 있다. 이들 장치는 암호화 작업을 가능하게 하는 특수 소프트웨어 또는 애플리케이션을 작동할 수 있다.
지원 장치(104 내지 106) 및 암호화 장치(108)는 또한 그들의 메모리에 저장된 "비밀 공유분"을 가질 수 있다. 이들 비밀 공유분은 암호화 작업에 사용되는 값인 "공유 비밀" 또는 "비밀"에서 파생될 수 있다. 이들 비밀 공유분은, 지원 장치(104 내지 106) 및 인증 암호를 생성하기 위한 암호화 장치에 의해 사용될 수 있고, 섹션 III에서 더욱 상세하게 논의된다.
일반적으로 말하면, 구현예는, 지원 장치(104 내지 106)의 도움으로 인증 암호를 생성하는 암호화 장치(108)를 포함할 수 있다. 암호화 장치(108)는 이 인증 암호를 복호화 장치(110)로 송신한다. 복호화 장치(110)는 인증 암호를 해독하고 평가한다. 복호화 장치(110)는 평가에 기반하여 암호화 장치(108)를 인증할 수 있다. 예를 들어, 복호화 장치(110)는 웹 기반 이메일 서버일 수 있고, 암호화 장치(108)를 인증할 수 있어, 사용자로 하여금 암호화 장치(108)를 사용하여 자신의 이메일을 체크시킨다.
일례로, 사용자는 태블릿 컴퓨터(이 경우, 암호화 장치(108))를 작동시킬 수 있고 웹 브라우저를 통해 웹 기반 이메일 클라이언트까지 탐색할 수 있다. 태블릿은, 사용자명과 패스워드를 입력하기보다는 인증 암호를 생성하고 이메일 서버로 이를 송신할 수 있다(복호화 장치(110)).
태블릿은 지원 장치(104 내지 106)에 보안 평가용 요청을 송신한다. 이것은, 사용자의 손목용 스마트 워치, 다른 방에 있는 스마트 폰, TV에 연결된 비디오게임 콘솔을 포함할 수 있다. 태블릿은, 로컬 네트워크(예컨대, 사용자의 홈 와이파이 네트워크)를 통해, 인터넷 또는 기타 적절한 수단을 통해 이 요청을 송신할 수 있다.
지원 장치(104 내지 106)는 사용자 보안 평가와 장치 보안 평가를 모두 수행할 수 있고, 다른 지원 장치가 보안 평가를 수행하도록 돕기 위해 정보를 서로 송신할 수 있다. 예로서, 사용자는 엄지 지문과 같은 생체 인식을 사용하여 태블릿(암호화 장치(108))을 잠금 해제할 수 있다. 태블릿은, 타임스탬프 및 생체 인식 또는 생체 인식 템플릿을 지원 장치(104 내지 106)에 전송할 수 있다. 이 정보는 사용자 보안 평가의 일부로서 지원 장치(104 내지 106)에 의해 사용될 수 있다. 스마트 워치(지원 장치)는 생체 인식 템플릿이 스마트 워치에 저장된 템플릿과 일치하거나 스마트 워치에 액세스할 수 있음을 검증할 수 있고, 이는 사용자가 태블릿을 잠금 해제하였음을 나타낸다. 또 다른 예로서, 스마트 워치는 사용자의 손목으로부터 심장 박동 정보를 추적할 수 있다. 스마트 워치는 심박 정보를 다른 지원 장치로 잔송할 수 있다.
각각의 지원 장치(104 내지 106)는 데이터를 개별적으로 평가하고 사용자의 보안 상태를 결정할 수 있다. 예로서, 사용자의 스마트 폰은, 사용자가 스마트 워치(최근 심박 데이터로 표시됨)를 갖고 있고 최근에 태블릿과 같이 있었음을 결정할 수 있다. 또한, 데이터는, 스마트 워치가 태블릿 근처에 있고 따라서 사용자가 태블릿을 작동시키는 것이 매우 가능함을 보여준다. 스마트 폰은, 사용자가 태블릿을 작동시키고 있고 따라서 합법적인 목적을 위해 암호를 생성할 수 있음이 보증된다.
각 지원 장치(104 내지 106)는 또한 개별적으로 장치 보안 평가를 수행할 수 있다. 이 장치 보안 평가는 사용자 장치(102)가 보안 상태에 있는지 여부를 평가하는 것이다. 예를 들어, 비디오게임 콘솔은 태블릿에서 보안 상태 데이터를 수신할 수 있다. 보안 상태 데이터는, 태블릿이 활성 방화벽과 바이러스 백신 기능을 갖춘 보안 운영 시스템을 실행 중임을 나타낼 수 있다. 비디오게임 콘솔은, 태블릿이 해커에 의해 손상되지 않고 따라서 합법적인 목적을 위해 암호를 생성할 수 있음이 보증된다.
개별 보안 평가에 기반하여, 각각의 지원 장치(104 내지 106)는 암호화 장치(108)를 사용하여 다중 당사자 연산에 참여할지 여부를 결정한다. 사기꾼이 암호를 생성하지 않음을 보증하는 지원 장치는 참여하기로 결정할 수 있는 반면, 그렇지 않은 지원 장치는 참여하지 않기로 결정할 수 있다. 다중 당사자 연산은 인증 암호를 생성한다.
다중 당사자 연산은, 각 참여 지원 장치(104 내지 106)가 비밀 공유분에 기반하여 "부분 연산"을 생성하는 것을 포함한다. 태블릿(암호화 장치(108))은 암호화 키를 생성하는 일부로서 부분 연산을 조합할 수 있다. 태블릿이 부분 연산을 충분히 수신하는 경우, 다중 당사자 연산을 오직 완료할 수 있다. 태블릿이 부분 연산을 너무 적게 수신하는 격우, 태블릿은 인증 암호를 생성할 수 없다. 따라서, 지원 장치(104 내지 106) 중 적어도 일부는, 인증 암호를 생성하기 위해 컨센서스에 도달해야 한다. 비밀 공유분 및 다중 당사자 연산은 섹션 III과 VI에 자세히 설명된다.
인증 암호가 성공적으로 생성되면, 태블릿은 암호를 이메일 서버(복호화 장치(110))에 송신할 수 있다. 이메일 서버는 암호를 해독하고 그 안에 암호화된 데이터를 평가할 수 있다. 암호화된 데이터는 보증 수준을 포함하거나 이와 연관될 수 있으며, 이는, 사용자 장치(102)가 사용자 식별 정보뿐만 아니라 인증 요청이 합법적이라는 것을 확실히 나타낸다. 암호화된 데이터는 패스워드 또는 생체 인식 등의 기밀 정보도 포함될 수 있다. 이러한 사용자 식별 정보는, 지원 장치(104 내지 106) 또는 암호화 장치(108) 중 하나에 의해 제공될 수 있다. 이 정보를 기반으로, 이메일 서버는 태블릿에 응답을 다시 송신하여, 사용자로 하여금 태블릿을 사용하여 자신의 이메일에 액세스시킬 수 있다. 특히, 사용자는 프로세스에 직접 관여하지 않았고 태블릿에 로그인 정보를 제공할 필요가 없었고, 결과적으로 보다 사용자 친화적인 경험을 하게 된다. 다음 섹션은, 지원 장치(104 내지 106), 암호화 장치(108) 및 복호화 장치(110)뿐만 아니라 전체 시스템에 대해 더욱 상세하게 논의한다.
III. 지원 장치 및 시스템
A. 시스템 수준 다이어그램
도 1b는 구현예에 따라 인증 시스템의 블록도를 보여주며, 다수의 지원 장치(104 내지 106), 암호화 장치(108), 복호화 장치(110), 및 사이드 채널(112)을 포함한 사용자 장치(102) 모음을 포함한다.
사용자 장치(102)는, 하나 이상의 암호화 장치(108)와 함께 임의의 수의 지원 장치를 포함할 수 있다. 사용자 장치(102)는 어떤 방식으로 사용자와 연관될 수 있다. 예로서, 사용자 장치(102)는 사용자에 의해 소유, 임대 또는 대여되는 장치일 수 있다. 사용자 장치(102)는, 암호화 작업 중에 지원 장치나 암호 장치로서 기능할 수 있는 임의의 수의 암호화 장치를 포함할 수 있다. 일부 예시는 무엇보다 스마트 폰, 스마트 워치, 랩톱 컴퓨터, 데스크톱 컴퓨터, 비디오게임 콘솔, 스마트 자동차를 포함한다.
도 1b는 두 개의 지원 장치, 지원 장치(104) 및 지원 장치(106)를 명시적으로 보여준다. 이들 지원 장치는 하나 이상의 비밀 공유분을 보유할 수 있다. 이들 지원 장치는 인증 암호를 생성하는 데 있어서 지원 역할을 할 수 있다. 지원 장치는 개별적으로 보안 평가를 수행할 수 있고, 이들 보안 평가에 기반하여 암호화 장치(108)에 비밀 공유분, 부분 연산 또는 파생 값을 제공할 수 있다.
지원 장치(104 내지 106)는 임의의 적절한 통신 수단을 통해 서로 통신할 수 있고 암호화 장치(108)와 통신할 수도 있다. 예로서, 지원 장치(104 내지 106)는 이더넷, USB, FireWire 등을 통해 통신할 수 있다. 지원 장치(104 내지 106)는 와이파이, 블루투스, 블루투스 저에너지(BLE) 등의 무선 상호 연결을 통해 통신할 수 있다. 지원 장치(104 내지 106)는, 인터넷 또는 셀룰러 네트워크와 같은 보안 또는 비 보안 네트워크를 통해 서로 또는 암호화 장치와 통신할 수 있다. 지원 장치(104 내지 106)는 허브 또는 프록시 장치를 통해 통신할 수도 있다. 허브 또는 프록시 장치는 사용자 장치(102) 간의 통신을 중계할 수 있다. 지원 장치(104 내지 106)는 P2P 방식으로 통신할 수 있다.
지원 장치(104 내지 106)는 프로세서, 컴퓨터 판독가능 매체, 및 보안 메모리를 보유할 수 있다. 보안 메모리는 하나 이상의 비밀 공유분을 안전하게 저장할 수 있고, 컴퓨터 판독가능 매체 상에 또는 컴퓨터 판독가능 매체 내에 위치할 수도 있다. 컴퓨터 판독가능 매체는 또한 하나 이상의 소프트웨어 응용프로그램 또는 소프트웨어 모듈을 포함할 수 있다. 이들 소프트웨어 애플리케이션 또는 소프트웨어 모듈은 일부 구현예에 따른 방법을 수행하기 위해 지원 장치(104 내지 106)에 의해 사용될 수 있다.
지원 장치(104 내지 106)는 사이드 채널(112)을 통해 복호화 장치(110)와 통신할 수 있다. 이들 통신은 메시지 또는 보안 평가 보고서를 포함할 수 있다. 복호화 장치(110)는, 암호화 장치(108)를 인증하는 경우 이들 통신을 고려할 수 있다. 일례로, 보안 평가 보고서는 사용자 장치(102)가 안전하지 않다는 것을 나타낼 수 있고, 인증 암호는 의심을 가지고 취급되어야 한다.
사용자 장치(102) 간의 통신은 암호화되거나 비 암호화될 수 있다. 예로서, 사용자 장치(102)는 암호화 키를 설정하기 위해 하나 이상의 Diffie-Hellman 키의 교환을 수행할 수 있다. 이들 암호화 키는 사용자 장치(102) 사이에서 송신된 통신을 암호화하고 해독하는 데 사용될 수 있다.
암호화 장치(108)는, 지원 장치(104 내지 106)에 보안 평가 요청을 송신할 수 있다. 암호화 장치(108)는, 지원 장치(104 내지 106)로부터 비밀 공유분, 파생 값, 또는 부분 연산을 수신할 수 있다. 또한, 암호화 장치(108)는 암호화 키를 생성하기 위해 비밀 공유분, 이러한 비밀 공유분으로부터 파생된 값, 또는 부분 연산을 조합할 수 있다. 암호화 장치(108)는 또한 암호화 키를 사용하여 인증 암호를 생성할 수도 있다. 암호화 장치(108)는 인증 암호 및 보증 수준을 복호화 장치(110)로 송신할 수 있다.
암호화 장치(108)는 프로세서, 컴퓨터 판독가능 매체, 및 보안 메모리를 보유할 수 있다. 보안 메모리는 하나 이상의 비밀 공유분을 안전하게 저장할 수 있고, 컴퓨터 판독가능 매체 상에 또는 컴퓨터 판독가능 매체 내에 위치할 수도 있다. 컴퓨터 판독가능 매체는 또한 하나 이상의 소프트웨어 응용프로그램 또는 소프트웨어 모듈을 포함할 수 있다. 암호화 장치(108)는 이들 소프트웨어 응용프로그램 또는 소프트웨어 모듈을 사용하여 상기 열거된 기능의 일부 또는 전부를 수행할 수 있다.
암호화 장치(108)는 지원 장치(104 내지 106)와 유사할 수 있다. 암호화 장치(108)는 암호화된 또는 비 암호화된 방식으로 사용자 장치(102)와 복호화 장치(110)와 통신할 수 있고, 유선 또는 무선 상호 연결을 통해 통신할 수 있다. 추가 암호화 장치(108)는 인터넷 또는 셀룰러 네트워크와 같은 네트워크를 통해 통신할 수 있다. 암호화 장치(108)는 임의의 수의 적합한 프로토콜, 표준 또는 기술을 사용하여 이들 기능을 수행할 수 있다.
복호화 장치(110)는 암호화 장치(108)를 인증하기 위해, 암호화 장치(108)로부터 수신된 인증 암호를 해독할 수 있다. 여기에는 비밀 공유분, 파생 값 또는 부분 연산을 사용하여 복호화 키를 생성하고 상기 복호화 키를 사용하여 인증 암호를 해독하는 단계를 포함할 수 있다. 복호화 장치(110)는 암호화 장치(108)를 인증하기 위해, 복호화된 인증 암호 및 임의의 수신된 보증 수준을 추가로 평가할 수 있다. 복호화 장치(110)는 사이드 채널(112)을 통해 지원 장치(104 내지 106)으로부터 메시지 또는 다른 통신을 수신할 수 있다. 복호화 장치(110)는, 암호화 장치(108)를 인증하는 부분으로서, 이들 메시지 또는 통신을 평가하는 것을 취할 수 있다. 일부 구현예에서, 복호화 장치(110)는 대신에 복호화 장치의 모음을 포함하는 복호화 시스템일 수 있다. 복호화 시스템의 복호화 장치는 다중 당사자 복호화 방법을 사용하여 인증 암호를 집합적으로 해독할 수 있다. 예를 들어, 복호화 시스템의 복호화 장치는 공유 비밀과 연관된 비밀 공유분을 각각 저장할 수 있고, 그들의 비밀 공유분을 사용하여, 수신된 인증 암호를 복호화하는 데 사용될 수 있는 암호화 키를 생성할 수 있다.
B. 지원 장치
전술한 바와 같이, 지원 장치는 스마트 폰, 스마트 워치, 스마트 카, 태블릿, 랩톱, 및 데스크톱 컴퓨터 등과 같은 개인 전자 장치일 수 있다. 지원 장치는 지원 장치 기능을 수행하기 위해 특수 소프트웨어 애플리케이션을 작동할 수 있다. 지원 장치는 프로세서 및 컴퓨터 판독가능 매체를 보유할 수 있고, 보안 메모리에 저장된 하나 이상의 비밀 공유분을 보유할 수 있다. 지원 장치는 유선 또는 무선 상호 연결을 통해 다른 장치와 통신할 수 있고, 인터넷 또는 셀룰러 통신 네트워크와 같은 네트워크를 통해 통신할 수 있다.
지원 장치는 일부 맥락에서 지원 장치로서 작용할 수 있고, 다른 맥락에서 암호화 장치로서 기능할 수 있다. 예를 들어, 사용자는 랩톱을 사용하여 이메일에 액세스하려고 시도할 수 있다. 랩톱은 사용자의 스마트 폰을 지원하는 인증 암호를 생성할 수 있다. 이 경우, 랩톱은 암호화 장치로 기능하고 스마트 폰은 지원 장치로서 기능한다. 다른 시점에서, 사용자는 스마트 폰을 사용하여 이메일에 액세스하려고 시도할 수 있다. 스마트 폰은 사용자의 랩톱을 지원하는 인증 암호를 생성할 수 있다. 이 경우, 스마트 폰은 암호화 장치로 기능하고 랩톱은 지원 장치로서 기능한다.
지원 장치는 레지스트리에 나열되거나 달리 등록될 수 있다. 각 지원 장치와 암호화 장치는 레지스트리의 사본을 보유할 수 있다. 추가적으로 또는 대안적으로, 허브 또는 프록시 장치는 레지스트리의 사본을 보유할 수 있다.
지원 장치는 등록 프로세스를 통해 등록될 수 있다. 이 등록 프로세스는, 신규 지원 장치가 기존 사용자 장치 네트워크에 추가되는 경우에 발생할 수 있다. 대안적으로, 사용자 장치 네트워크가 존재하지 않는 경우, 신규 사용자 장치 네트워크를 생성할 수 있다. 신규 사용자 장치 네트워크를 생성하면, 신규 레지스트리를 생성하고 신규 지원 장치를 레지스트리의 제1 입력으로 추가하는 단계를 포함할 수 있다. 신규 레지스트리는 신규 지원 장치 또는 프록시 또는 허브 장치에서 생성될 수 있다. 다중 지원 장치가 레지스트리에 동시 등록될 수 있다.
등록 프로세스 동안, 지원 장치는 하나 이상의 비밀 공유분으로 프로비저닝될 수 있다. 이들 비밀 공유분은 다른 지원 장치 및 암호화 장치, 허브 또는 프록시 장치, 위탁 외부 서버 또는 복호화 장치에 의해 상기 지원 장치에 프로비저닝될 수 있다. 대안적으로, 상기 지원 장치는 장치 네트워크에 등록되기 전에 비밀 공유분을 보유할 수 있거나, 또는 장치 네트워크에 등록된 후에 비밀 공유분을 프로비저닝 받을 수 있다.
지원 장치는, 상기 지원 장치 또는 암호화 장치의 장치 구성 역량과 장치의 보안 역량에 기반하여 분류를 보유할 수 있다. 장치의 구성 역량은, 장치를 얼마나 쉽게 수정 또는 재프로그래밍하는지를 지칭할 수 있다. 장치의 보안 역량은, 장치가 얼마나 안전한지를 지칭할 수 있다.
다음 하위 섹션은 지원 장치 등록, 지원 장치 분류 및 비밀 공유분에 대해 자세히 설명할 것이다.
1. 등록
사용자 장치 네트워크의 각 지원 또는 암호화 장치는 다른 지원 또는 암호화 장치의 레지스트리를 구비할 수도 있다. 각각의 지원 장치는 이 레지스트리를 사용하여 각각의 다른 지원 장치 및 암호화 장치에 대한 보안 평가를 식별하고 수행할 수 있다. 신규 장치가 사용자 장치 네트워크에 등록되거나 사용자 장치 네트워크에서 제거됨에 따라, 레지스트리는 네트워크의 구성 요소 변경을 반영하도록 업데이트될 수 있다. 일부 경우에, 이는 허브 또는 프록시 장치에 의해 중계될 수 있다.
레지스트리는 다양한 형태를 가질 수 있다. 일례로, 레지스트리는 목록 또는 관계형 데이터베이스와 같은 데이터 구조일 수 있고, 이는 각각의 등록된 지원 장치 및 암호화 장치를 고유하게 식별하기에 충분한 정보를 유지한다. 예를 들어, 이것은 고유 식별자와 같은 정보, 예컨대 일련 번호, 및/또는 IP 주소 또는 MAC 주소를 포함할 수 있다. 신규 장치가 사용자 장치 네트워크와 레지스트리에 추가되는 경우, 신규 장치는 고유 식별자 및 그 IP 주소를 사용자 장치 네트워크의 각각의 다른 장치에 송신할 수 있다. 신규 장치는 고유 식별자 및 그 IP 주소를 허브 또는 프록시 장치로 송신할 수 있다. 각 장치는 해당 레지스트리를 업데이트하여 신규 장치를 사용자 장치 네트워크에 이제 등록할 수 있도록 한다. 허브 또는 프록시 장치의 경우, 허브 또는 프록시 장치는 정보를 암호 장치 네트워크의 각각의 다른 지원 장치 또는 암호화 장치에 송신할 수 있고, 각각의 장치는 그들 각각의 레지스트리를 업데이트할 수 있다.
필요에 따라 장치 레지스트리로부터 마찬가지로 지원 장치 또는 암호화 장치를 제거할 수도 있다. 예로서, 사용자는 이전 랩톱을 교체 및 판매할 수 있다. 랩톱이 더 이상 사용자에 속하거나 사용자와 연결되어 있지 않으므로, 사용자 장치 네트워크에서 제거될 수 있다. 이것은 소프트웨어 애플리케이션을 통해 수행될 수 있으며 자동으로 발생할 수 있다. 예를 들어, 사용자가 판매하기 전에 랩톱의 공장 리셋을 수행하는 경우, 공장 리셋은 사용자 장치 네트워크에서 랩톱을 제거시킬 수 있다.
사용자 장치 네트워크에서 제거되는 지원 또는 암호화 장치는, 사용자 장치 네트워크 또는 프록시 또는 허브 장치의 다른 모든 장치에 메시지 또는 표시를 송신할 수 있다. 이 메시지는, 장치가 네트워크를 떠나고 있고 각 장치의 해당 레지스트리에서 제거해야 함을 표시할 수 있다. 각 장치는 해당 레지스트리에서 장치를 제거할 수 있으며, 결과적으로 장치가 네트워크에서 "비등록"될 수 있다.
일부 경우에, 장치를 등록하는 단계는, 추가적으로 사용자 장치 네트워크에 있는 현재 모든 장치와 상호 인증을 설정하는 단계를 포함할 수 있다. 이는 장치 네트워크의 지원 또는 암호화 장치 사이의 모든 통신이 엔드-투-엔드 암호화되도록 암호화 시스템을 설정하는 단계를 포함할 수 있다. 이는, Diffie-Hellman 키 교환과 같이, 암호 장치 네트워크의 신규 장치와 각각의 다른 장치 사이의 키 교환 프로토콜을 사용하는 것을 포함할 수 있다. 대안적으로, 장치 등록의 전후에 키 교환이 발생할 수 있다. 장치는, TLS 또는 Opacity 프로토콜과 같은 송신 기반 암호화를 추가로 사용할 수 있다.
신규 지원 또는 암호화 장치가 사용자 장치 네트워크에 등록되는 경우에, 비밀 공유분을 프로비저닝 받을 수 있다. 이들 비밀 공유분은 다른 지원 장치 또는 암호화 장치나 위탁 외부 서버 또는 당사자에 의해 생성될 수 있다. 일부 경우에, 위탁 외부 서버는 복호화 장치일 수 있다.
대안적으로, 지원 장치는 장치 네트워크에 등록되기 전에 비밀 공유분을 보유하거나 또는 프로비저닝될 수 있거나, 장치 네트워크에 등록된 후 비밀 공유분으로 프로비저닝될 수 있다.
2. 분류
지원 및 암호화 장치는 보안 수준에 의해 구분되거나 분류될 수 있으며, 이는 장치가 얼마나 안전한지를 설명하는 척도이다. 이 분류는 장치 보안 평가의 일부로 사용될 수 있다(아래의 섹션 V를 참조). 보안 수준이 높은 암호화 장치는 지원 장치에 의해 신뢰받을 수 있으며, 보안 수준이 낮은 암호화 장치는 그만큼 신뢰받을 수 없다. 그 결과, 보안 수준에 대응하는 신뢰 수준에 따라 장치 보안 평가가 더 엄격하거나 덜 엄격할 수 있다. 또한, 분류는 지원 장치에 프로비저닝된 많은 비밀 공유분에 관련될 수 있다. 보안 수준이 낮은 지원 장치는 해커에 의해 더욱 쉽게 손상될 수 있다. 그 결과, 해커는 그 지원 장치에서 비밀 공유분을 획득할 수 있다. 위험을 최소화하기 위해, 비밀 공유분은 그 지원 장치에 거의 프로비저닝되지 않을 수 있다.
도 2는 장치 구성 역량(210) 및 보안 역량(220)에 대해 지원 또는 암호화 장치 보안의 도표를 보여준다. x축은 장치의 보안 역량(220)을 세부적으로 나타내며, 오른쪽에서 왼쪽으로 증가한다. y축은 장치의 구성 역량(210)을 세부적으로 나타내며, 하부에서 상부로 증가한다. 각 상자는, x축 상의 위치에 대해 보안 역량(220) y축 상의 위치에 대한 장치 구성 역량(210)을 갖는 지원 또는 암호화 장치와 대응한다. 예로서, 장치는, 사용자가 프로그래밍할 수 있고 고급 소프트웨어 보안을 갖는 경우에 중형 보안(204)을 갖는 것으로 분류될 수 있다.
다음과 같은 세 가지 예시적 장치 구성 역량이 나타나 있다: 사용자에 의해 프로그래밍 가능, 예컨대 PC; 위탁 실체에 의해 프로그래밍 가능, 예컨대 자격증을 소유한 기술자에 의해서만 프로그래밍될 수 있는 스마트 카; 또는 프로그래밍 불가, 예컨대 메트로 스마트 카드.
또한 5가지 보안 역량이 나타나 있다: 특정 방어 없음(예, 방화벽 또는 기타 보호 소프트웨어가 없는 기본 OS), 기본 소프트웨어 기반 보안(예, 서명된 코드), 고급 소프트웨어 기반 보안(예, 화이트 박스 액세스 감지), 하드웨어 기반 보안(예, 보안 부트 또는 보안 실행 엔진) 또는 고급 하드웨어 기반 보안(예: 변조 방지 시스템).
장치가 쉽게 구성될수록 장치 보안은 감소하고, 장치 보안 역량이 증가할수록 장치는 어렵게 구성된다. 장치(202)는 낮은 보안 장치의 예시이다. 장치(206)는 매우 높은 보안 장치의 예시이다.
장치 보안은, 장치에 비밀 공유분을 프로비저닝하는 방법과 상관 관계가 있을 수 있다. 장치 보안을 더 높인 장치는, 보안이 낮은 장치보다 더 많은 비밀 공유분을 제공 받을 수 있다. 이는, 장치 보안이 더 높은 장치가 손상될 가능성이 더 낮기 때문이다. 결과적으로, 해커 또는 악성 사용자가 해당 장치에 저장된 비밀 공유분을 획득할 가능성이 낮다. 마찬가지로, 장치 보안은 장치 보안 평가에 팩토링될 수 있다. 보안이 낮은 장치는 보안이 매우 높은 장치보다 더 엄격한 평가를 경험할 수 있다. 예를 들어, 낮은 보안 암호화 장치는 사기꾼에 의해 더욱 쉽게 손상될 수 있다. 그 결과, 사기성 목적을 위해 인증 암호가 생성되는 가능성은 더 높고, 지원 장치는 보다 엄격한 보안 평가를 수행하여 보상할 수 있다.
3. 비밀 공유분
각각의 지원 장치 및 암호화 장치는 하나 이상의 비밀 공유분을 보유할 수 있다. 이들 비밀 공유분은 공유 비밀(또는 "비밀")에서 파생될 수 있으며 사용자 장치 네트워크의 다른 장치에서 숨겨질 수 있다. 장치가 사용자 장치 네트워크에 추가되거나 장치가 레지스트리에 등록되어 있는 경우, 장치는 비밀 공유분(들)을 프로비저닝 받을 수 있다.
비밀 공유분은 비밀 공유 시스템에 기반하거나 그로부터 파생될 수 있다. 비밀 공유 시스템은 m/n 비밀 공유 시스템일 수 있다. 이러한 시스템에서, 총 비밀 공유분 수 nm 개의 비밀 공유분 모음이, 공유 암호를 생성하거나 재생성하는 데 충분하다.
비밀 공유 방법 하나는 Shamir의 비밀 공유이다. Shamir 비밀 공유를 이용하면, 공유 비밀은 다항식 P(x)의 계수 보통 0차 계수 P(0)로서 암호화된다. 다항식의 자유도(계수의 수보다 하나 미만, 또는 다항식에서 가장 큰 차수항)는 값 m-1과 같다. 다항식의 계수는 무작위로 또는 다른 적합한 방법을 통해 생성될 수 있다. n 개 지원 장치 각각은 그 비밀 공유분으로서 다항식의 하나 이상의 샘플링된 값이 주어질 수 있다. 예를 들어, 5개의 장치 그룹에서 첫 번째 장치는 P(1)과 P(2)를 구비할 수 있고, 두 번째는 P(3) P(4) 등등 그리고 5번째 장치는 P(9) 및 P(10)를 구비한다. 이는 적절한 보안 프로비저닝 시스템을 사용하여 수행될 수 있다. 예를 들어, 위탁 외부 서버는 사용자 장치 네트워크의 각 지원 장치와 Diffie-Hellman 키 교환을 수행할 수 있다. 그런 다음 위탁 외부 서버가 비밀 공유분을 그들의 해당 장치에 송신할 수 있다.
mn 미만인 경우, m 개 비밀 공유분이 주어진 다항식 P(x) 를 재구성하는 것이 가능하다. 이것은, m 개 고유점이 m-1 자유도의 다항식을 유일하게 정의하는 사실의 결과이다. Lagrange 다항식의 사용과 같은 다항식 보간 형태를 통해 다항식을 재구성할 수 있다.
다항식을 일단 구성하면, P(0) 값은 암호화 프로세스의 일부로서 결정되고 사용될 수 있다. 예를 들어, P(0) 값은 암호화 장치에 의해 암호화 키로 사용될 수 있다. 대안적으로, 비밀 공유분과 공유 비밀은 그 값이 위장되도록 보다 복잡한 작업의 일부로서 사용될 수 있다. P(0)가 재구성되는 대신에, P(0)로부터 파생되거나 연관된 값이 재구성될 수 있다. 또한, 생성된 값은 일반적으로 암호화 임시값과 연관되며, 1회 무작위로 생성된 값이다. 이러한 방식으로 공유 비밀은 숨긴 채로 남지만, 이로부터 파생된 값을 암호화 및 복호화 장치에 의해 일관되게 생성될 수 있다. 따라서, 상기 값은 대칭 암호화 키로서 사용될 수 있거나 대칭 암호화 키를 도출하는 데 사용될 수 있고, 암호화 장치로 하여금 인증 암호를 생성시키고 복호화 장치로 하여금 이를 해독시킨다.
Shamir의 비밀 공유는, 비밀 공유분을 분배하는 데 사용되는 많은 방법 중 하나로서 공유 비밀이 재구성될 수 있다. 다른 많은 방법이 있으며, 상기 설명은 비제한적인 예로서 의도된다.
지원 장치 및 암호화 장치는, 신규 비밀 공유분을 생성해서 이들 신규 비밀 공유분을 신규 지원 또는 암호화 장치에 제공할 수 있다. 이는, 인증 암호를 생성하는 데 사용되는 방법과 유사하나 동일하지 않은 프로세스를 포함할 수 있다. 암호화 장치는, 신규 지원 또는 암호화 장치에 대한 신규 비밀 공유분을 생성하는 부분으로서 보안 평가를 요청할 수 있다. 사용자 장치 네트워크에 현재 등록된 각 지원 장치는, 암호화 장치, 다른 지원 장치 및 신규 장치에 대한 보안 평가를 수행할 수 있다. 상기 보안 평가에 기반하여, 각 지원 장치는 하나 이상의 비밀 공유분을 제공하는 것을 선택할 수 있다. 상기 암호화 장치는, 이들 비밀 공유분을 사용하여 공유 비밀 또는 공유 비밀로부터 파생된 값을 재구성할 수 있다. 이 값으로부터 신규 비밀 공유분이 등록 프로세스의 일부로서 신규 지원 또는 암호화 장치로 생성되어 송신될 수 있다.
예를 들어, Shamir의 비밀 공유를 사용하여, 상기 공유 비밀은 다항식의 계수로 존재한다. 각 비밀 공유분은 이 다항식의 샘플링된 값에 해당한다. 비밀 공유분의 임계 수를 수집함으로써, 공유 비밀과 다항식을 재구성할 수 있다. 다항식으로부터, 신규 값에서 다항식을 샘플링함으로써 신규 비밀 공유분을 생성할 수 있다. 이들 신규 비밀 공유분이 등록 프로세스의 일부로서 신규 지원 또는 암호화 장치로 송신될 수 있다. 일부 경우에, 비밀 공유분 자체를 송신하기 보다는, 파생된 값 또는 부분 연산을 암호화 장치에 송신할 수 있다. 암호화 장치는 신규 비밀 공유분을 생성하기 위해 이들 파생 값 또는 부분 연산을 조합할 수 있다.
일부 경우에, 공유 비밀 및 다항식을 완전히 재구성하기 보다는, 공유 비밀 또는 파생된 다항식으로부터 파생된 값이 구성될 수 있다. 이 경우, 비밀 공유분은 파생된 값 또는 다항식으로부터 생성될 수 있고, 신규 지원 또는 암호화 장치에 제공될 수 있다.
지원 장치 및 암호화 장치가 공유 비밀을 생성해 이들을 신규 지원 또는 암호화 장치에 프로비저닝하는 다른 방법이 많이 있으며, 상기 설명은 비제한적인 예로서 의도된다.
대안적으로, 비밀 공유분은 위탁 외부 서버를 통해 지원 장치 또는 암호화 장치에 프로비저닝될 수 있다. 도 3은, 위탁 외부 서버(302), 통신 네트워크(304), 및 지원 장치(306 내지 308)와 암호화 장치(310)를 포함한 사용자 장치 네트워크(312)를 포함하는 시스템 블록도를 보여준다.
위탁 외부 서버(302)는, 통신 네트워크(304), 예컨대 인터넷, 셀룰러 통신 네트워크, 또는 광역 네트워크(WAN) 또는 LAN(근거리 네트워크)을 통해 지원 장치(306 내지 308) 및 암호화 장치(310)와 통신할 수 있는 서버 또는 장치일 수 있다. 위탁 외부 서버(302)는 프로세서 및 컴퓨터 판독가능 매체를 보유할 수 있고, 비밀 값 또는 비밀 공유분을 생성하는 데 필요한 임의의 작업이 가능할 수도 있다. 예로서, 위탁 외부 서버(302)는 암호적으로 안전한 무작위 번호 생성기를 사용하여 무작위 수를 많이 생성하고, 이들 무작위 수를 다항식 P(x)의 계수로서 해석하고 x의 개별 값에 대해 이 다항식을 평가한다. 위탁 외부 서버(302)는 또한 다수의 사용자 장치와 안전한 통신을 확립하고, 지원 장치(306 내지 308) 및 암호화 장치(310)를 포함한 사용자 장치 네트워크(312) 내의 사용자 장치에 이들 개별 값을 송신하는 능력을 가질 수 있다.
통신 네트워크(304)는, 장치, 컴퓨터 및 서버가 서로 통신할 수 있는 인터넷 또는 셀룰러 통신 네트워크와 같은 네트워크를 포함할 수 있다. 통신 네트워크(304)는 안전하거나 안전하지 않을 수 있다. 장치는 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol)와 같이 허용된 여러 프로토콜을 통해 이 네트워크 상에 통신할 수 있다. 통신 네트워크(304) 상의 통신은 암호화되거나 암호화되지 않을 수 있다.
사용자 장치 네트워크(312)는, 각각 서로 통신하거나, 또는 프록시 또는 허브 장치와 작동 통신에 있는 다수의 사용자 장치를 포함할 수 있다. 사용자 장치 네트워크(312)는 도 1b의 사용자 장치(102)와 실질적으로 유사할 수 있다. 사용자 장치 네트워크(312)는 많은 지원 장치(306 내지 308)뿐만 아니라 암호화 장치(310)를 포함할 수 있다.
지원 장치(306 내지 308)는 프로세서, 통신 인터페이스 및 컴퓨터 판독가능 매체를 보유할 수 있다. 이들 지원 장치(306 내지 308)는 도 1b로부터의 지원 장치(104 내지 106)와 실질적으로 유사할 수 있다. 이들은, 비밀 공유분(들)이 소프트웨어 또는 암호 생성 동안 지원 역할을 수행할 수 있게 하는 기타 애플리케이션과 함께 안전하게 저장될 수 있는 보안 메모리를 보유할 수 있다.
위탁 외부 서버(302)는 비밀 공유분을 생성할 수 있고, 통신 네트워크(304)를 통해 암호화된 또는 암호화되지 않은 형태로 비밀 공유분을 사용자 장치 네트워크(312)의 사용자 장치로 송신할 수 있다. 위탁 외부 서버(302)는, 복호화 장치, 예컨대 도 1b로부터의 복호화 장치(110), 또는 웹 서버와 같은 다른 서버일 수 있다. 위탁 외부 서버(302)는, 비밀 공유분과 같은 데이터를 사용자 장치 네트워크(312) 내의 장치에 안전하게 송신하기 위해, 사용자 장치 네트워크(312) 내의 장치와 키 교환을 수행할 수 있다.
C. 암호화 장치
암호화 장치는, 사용자 또는 암호화 장치 자체를 인증하기 위한 목적으로 인증 암호를 생성할 수 있는 장치일 수도 있다. 일부 경우에, 암호화 장치는 지원 장치로서 작용할 수 있다. 예를 들어, 랩톱은 사용자를 인증하기 위한 암호화 장치로서 사용되어 그들이 자신의 이메일 서버에 액세스할 수 있게 한다. 스마트 폰은 지원 장치로서 기능하고, 보안 평가를 수행하고, 비밀 공유분, 부분 연산 또는 파생 값을 랩톱에 송신할 수 있다. 랩톱은 이들 비밀 공유분, 파생 값, 또는 부분 연산을 사용하여 암호화 키를 생성할 수 있고, 이는 보증 수준 또는 사용자를 고유하게 식별하는 정보와 같은 정보를 암호화하는 데 사용될 수 있다. 이 암호화된 정보인 인증 페이로드(payload)는 복호화 장치로 송신될 수 있다. 그러나, 다른 시점에는, 역할이 역전될 수도 있고, 스마트 폰은 암호화 장치로서 작용할 수 있고, 랩톱은 지원 장치로서 작용할 수 있다. 따라서, 암호화 장치는 또한 지원 장치일 수도 있고, 지원 장치는 또한 암호화 장치일 수도 있다.
암호화 장치는, 프로세서 및 프로세서에 결합된 컴퓨터 판독가능 매체를 보유할 수 있다. 암호화 장치는 코드 또는 애플리케이션을 보유할 수 있으며, 이로 하여금 컨센서스 기반 온라인 인증을 수행하는 데 필요한 기능 및 작업을 수행시킨다. 여기에는, 약속 메시지 생성, 부분 연산 결합, 키 생성 씨드 생성, 암호화 키 생성, 및 암호화 키를 사용하여 인증 암호 생성이 포함될 수 있다. 암호화 장치는 또한, 하나 이상의 비밀 공유분이 저장될 수 있는 보안 메모리를 보유할 수 있다.
D. 복호화 장치
복호화 장치는, 인증 암호를 수신하고 인증 암호를 해독하고 암호 해독된 컨텐츠를 해석하고 그 컨텐츠에 기초하여 사용자 또는 암호화 장치를 인증할 수 있는 임의의 장치를 포함할 수 있다. 또한, 복호화 장치는 사이드 채널을 통해 지원 장치로부터의 통신을 수신할 수 있다. 복호화 장치는, 사용자 또는 암호화 장치의 인증 여부를 결정하는 경우 이들 통신을 고려할 수 있다.
복호화 장치는, 인증 암호를 해독하기 위한 목적으로 암호화 키를 생성할 수 있다. 복호화 장치는, 암호화 장치가 암호화 키를 생성하는 방법과 실질적으로 유사한 방식으로 이 키를 생성할 수 있다. 여기에는, 비밀 공유분 또는 부분 연산을 결합, 키 생성 씨드 생성, 키 생성 씨드에 기반한 암호화 키 생성을 포함할 수 있다.
일부 경우에, 복호화 장치는 대신에 복호화 장치 및 다수의 지원 장치를 포함한 복호화 장치 네트워크일 수도 있다. 지원 장치는 하나 이상의 비밀 공유분을 보유할 수 있다. 복호화 장치는 지원 장치로부터 하나 이상의 비밀 공유분을 수신할 수 있다. 복호화 장치는 비밀 공유분을 수신하거나 인증 암호를 해독하기 전에 지원 장치로부터 보안 평가를 요청할 수 있다.
대안적으로, 복호화 장치는, 인증 암호를 해독하기 위해 사용될 수 있는 하나 이상의 암호화 키를 단순히 보유할 수 있다. 이들 암호화 키는 서로 다른 보증 수준에 해당할 수 있다. 예로서, 복호화 장치는 낮은, 중간 및 높은 보증 수준에 대응하는 3개의 암호화 키를 보유할 수 있다. 복호화 장치는 올바른 보증 수준에 대응하는 키를 사용하여 인증 암호를 해독할 수 있다. 복호화 장치는 암호화 장치에 의해 보증 수준을 통지받을 수 있고, 대응하는 키를 사용하여 인증 암호를 해독할 수도 있다. 복호화 장치는 보증 수준을 통지받지 못할 수도 있고, 인증 암호가 성공적으로 해독될 때까지 각각의 암호화 키로 인증 암호를 해독하려고 시도할 수 있다.
복호화 장치는 사용자 또는 암호화 장치의 인증 여부를 결정하기 위해, 암호 해독된 정보를 평가할 수 있다. 예로서, 인증 암호는, 암호화된 보증 수준과 함께 사용자를 고유하게 식별하는 암호화된 정보(예컨대, 저장된 패스워드, 생체 인식 등)로 구성될 수 있다. 인증 암호는 명시된 보증 수준(예: "중간")과 연관될 수 있다. 복호화 장치는 인증 암호를 해독하고 현재 암호 해독된 보증 수준을 명시된 보증 수준, 소정의 보증 수준, 또는 소정의 임계 보증 수준과 비교할 수 있다. 일치하는 경우, 복호화 장치는 사용자를 인증하기 위해 외부 데이터베이스의 복호화 장치에 저장된 정보와 고유 식별 정보를 비교할 수 있다. 그런 다음 복호화 장치는 보증 수준을 소정의 보증 수준과 비교할 수 있다. 예를 들어, 복호화 장치는, "낮은" 보증 수준이 제공되는 경우에, 어떠한 사용자나 암호화 장치를 인증하지 않을 수 있다. 보증 수준이 임계 보증 수준을 충족시키는 경우, 복호화 장치는 암호화 장치 또는 사용자를 인증할 수 있다.
복호화 장치는 반드시 사용자 장치 네트워크에서 지원 장치 또는 지원 장치의 수를 인식할 수 없다. 일부 경우에, 복호화 장치는 암호화 장치나 허브 장치에만 인터페이스할 수 있다.
IV. 컨센서스 인증 프로세스
보안 평가를 수행하고 인증 암호를 생성하는 프로세스는, 도 4를 참조하여 더 잘 이해될 수 있다.
도 4는 암호화 장치(402), 지원 장치(404), 및 다른 지원 장치(406)의 모음에 의해 수행되는 방법(400)의 통신 흐름도를 나타낸다.
단계(408)에서, 암호화 장치(402)는 보안 평가 요청을 지원 장치(404) 및 다른 지원 장치(406)에 송신할 수 있다. 보안 평가 요청은, 암호화 장치에서 실행되는 애플리케이션으로부터 생성되거나 송신될 수 있다. 대안적으로, 보안 평가 요청은, 지원 장치(404) 또는 다른 지원 장치(406)와 같은 다른 장치로부터 생성되거나 송신될 수 있다. 또한, 보안 평가 요청은, 지원 장치(404) 및 다른 지원 장치(406)가 인증 암호를 생성하기 위해 다중 당사자 연산에 참여하는 것을 추가로 요청할 수 있다. 이 요청은 지원 장치(404) 및 다른 지원 장치(406)로 직접 또는 간접적으로 송신될 수 있다. 이는 인터넷 또는 셀룰러 통신 네트워크와 같은 네트워크를 통해 송신될 수도 있다. 이는 블루투스, 와이파이, USB, FireWire, 이더넷 또는 기타 적절한 통신 수단을 통해 송신될 수 있다. 이는 통신 프로토콜 또는 표준 일체에 따라 송신될 수 있다. 일부 경우에, 요청은 암호화 장치(402), 지원 장치(404) 및 다른 지원 장치(406) 사이의 통신을 중계하는 허브 또는 프록시 장치를 통해 송신될 수도 있다.
선택적인 단계(409)에서, 지원 장치(404) 및 다른 지원 장치(406)는 암호화 장치(402)로부터 보안 데이터를 요청할 수 있다. 지원 장치(404) 및 다른 지원 장치(406)는 사용자 또는 장치 보안 평가의 일부로서 이 보안 데이터를 사용할 수 있다. 예를 들어, 저장된 생체 인식 템플릿을 포함하는 보안 데이터는, 태블릿과 같은 암호화 장치(402)로부터 스마트 워치와 같은 지원 장치(404)로 송신될 수 있다. 스마트 워치는, 보안 평가의 일부로 스마트 워치에 저장되거나 액세스 가능한 생체 인식 템플릿과 상기 생체 인식 템플릿을 비교할 수 있다. 보안 데이터에 대한 요청은, 허브 또는 프록시 장치를 통해, 또는 인터넷 또는 셀룰러 통신 네트워크와 같은 네트워크를 통해 송신할 수 있다.
단계(410)에서, 암호화 장치(402)는 보안 데이터를 지원 장치(404) 및 다른 지원 장치(406)에 송신할 수 있다. 보안 평가 요청과 마찬가지로, 보안 데이터는 적절한 수단, 표준 또는 프로토콜을 사용하여 송신될 수 있으며, 일부 경우에는 허브 또는 프록시 장치를 통해 송신될 수 있다. 보안 데이터는 암호화된 또는 압축된 형태일 수 있고, 다수의 보안 로그를 포함할 수 있다. 보안 데이터는 암호화 장치(402), 지원 장치(404), 및 다른 지원 장치(406)의 보안 상태, 예컨대 애플리케이션 서명, 랩톱 장치 구성 및 지문, 사용자 아이디 및 인증 상태, 맬웨어 방지 상태, 랩톱 위치, 로컬 시간 및 사용 데이터를 평가하는 데 사용될 수 있는 임의의 수의 보안 속성을 포함할 수 있다. 일부 구현예에서, 지원 장치(404) 및 다른 지원 장치(406)는 다른 소스, 예컨대 허브 또는 프록시 서버와 같은 지원 장치 또는 외부 실체로부터 보안 데이터를 수신하거나 수집할 수 있다.
단계(412)에서, 지원 장치(404) 및 다른 지원 장치(406)는 보안 데이터로부터 하나 이상의 보안 속성을 식별할 수 있다. 이들 보안 속성은 위에 나열된 보안 속성을 포함할 수 있고, 보안 속성은 또한, 보안 데이터의 소스를 식별하기 위해 지원 장치(404) 또는 다른 지원 장치(406)에 의해 사용될 수 있는, 하나 이상의 서명된 디지털 인증서와 같은 식별 데이터를 포함할 수 있다. 일부 경우에, 보안 데이터는 암호화된 형태일 수 있고, 보안 속성을 추출하기 위해 지원 장치(404) 및 다른 지원 장치(406)에 의해 수정되거나 해석될 수도 있다. 보안 데이터는 로그 형태일 수 있으며, 이 경우 지원 장치(404) 및 다른 지원 장치(406)는 보안 속성을 추출하기 위해 로그를 스캔하거나 구문 분석할 수 있다.
단계(414)에서, 지원 장치(404) 및 다른 지원 장치(406)는 보안 속성을 기준 데이터와 비교할 수 있다. 각 지원 장치는 기준 데이터의 자체 세트를 보유하거나 이에 액세스할 수 있다. 이 기준 데이터에는 시간에 따라 기록된 다수의 보안 속성 이력이 포함될 수 있다. 예를 들어, 지원 장치(404)는 전년도에 걸쳐 암호화 장치(402) 위치에 대한 기준 데이터를 보유할 수 있다. 이것은 또한, 암호화 장치(402)를 실행하는 암호화 기반 애플리케이션의 애플리케이션 서명을 포함할 수 있다. 또한, 이력 데이터는 엄지 지문 또는 펄스 기록과 같은 생체 인식 정보를 포함할 수 있다. 기준 데이터는 낮은, 중간 또는 높은 보증 인증 이벤트의 예시를 포함할 수 있다. 기준 데이터는 다른 평가 또는 분류, 예컨대 고위험 위치와 고위험 기간을 포함할 수 있다. 또한, 기준 데이터는 주어진 시간에 특정 사용자를 인증할 때의 위험과 관련하여, 하나 이상의 예전 사용자 인증 위험 추정치를 포함할 수 있다.
또한, 보안 속성을 기준 데이터와 비교하는 것의 일부로서, 지원 장치(404) 또는 다른 지원 장치(406)는 장치 그룹의 동료 장치(예, 도 1의 사용자 장치(102))로서 보안 데이터의 소스(예, 암호화 장치(402))를 식별하는 것을 포함할 수 있다. 지원 장치는, 적절한 종래의 디지털 인증서 검증 또는 인증 기술을 사용하여, 서명된 디지털 인증서를 검증하여 보안 데이터의 소스를 인증할 수 있다.
지원 장치(404)는, 보유한 임의의 기준 데이터를 다른 지원 장치(406)와 공유할 수 있다. 마찬가지로, 다른 지원 장치(406)는, 보유한 임의의 기준 데이터를 지원 장치(404)와 공유할 수 있다. 이 공유는 유선 또는 무선, 직접 또는 간접 통신 채널을 통해 수행될 수 있다. 일부 경우에, 데이터는, 암호화 장치(402), 지원 장치(404), 및 다른 지원 장치(406) 사이의 통신을 중계하는 허브 또는 프록시 장치를 통해, 지원 장치 사이에서 공유될 수 있다.
보안 속성을 기준 데이터와 비교하면 보안 데이터를 참조 데이터와 비교하여 이상점을 식별할 수 있다. 예를 들어, 위치에 대응하는 보안 속성은 위치 이력에 대비해 비교될 수 있다. 암호화 장치(402)는 특정 도시 또는 주와 같은 한 영역 또는 부위에서 이력을 통해 발견되었을 수 있다. 암호화 장치(402)가 그 영역 또는 부위를 벗어나는 경우, 지원 장치(404) 또는 다른 지원 장치(406)는 이상점을 기록할 수 있다. 지원 장치(404) 또는 다른 지원 장치(406)는, 전형적이거나 과거 이력적인 암호화 장치(402)의 영역과 암호화 장치(402)에 의해 보고된 영역 사이의 거리를 결정하고 평가할 수 있다. 지원 장치(404) 또는 다른 지원 장치(406)는, 그 위치에서 암호화 장치를 관찰할 가능성을 결정하기 위해 t-테스트와 같은 일부 형태의 통계 분석을 수행할 수 있다. 지원 장치(404) 또는 다른 지원 장치(406)는 또한, 암호화 장치(402)의 보고된 위치를 높은 위험 위치 목록에 대해 비교할 수 있다.
다른 이러한 비교는, 암호화 장치(402)에 의해 제공된 임의의 애플리케이션 서명을 평가하는 것을 포함한다. 암호화 장치(402)는, 암호화 장치(402)가 컨센서스 기반 온라인 인증을 수행할 수 있게 하는 애플리케이션을 실행할 수 있다. 이 애플리케이션은, 애플리케이션 서명, 즉 애플리케이션을 특성화하는 파라미터를 가질 수 있다. 애플리케이션 서명은 과거 애플리케이션 서명 이력과 비교할 수 있다. 애플리케이션 서명의 변화는 애플리케이션이 수정되었음을 나타낼 수 있고, 이는 손상된 프로그램 또는 암호화 장치(402)의 표시일 수 있다. 지원 장치(404) 및 다른 지원 장치(406)는 또한, 암호화 장치(402)의 하드웨어 또는 소프트웨어 보안 상태를 분석할 수 있다. 예컨대, 장치가 기본 소프트웨어 기반 보안, 예컨대 서명된 코드, 화이트 박스 액세스 감지 등의 고급 소프트웨어 기반 보안, 또는 보안 부트나 보안 실행 엔진과 같은 하드웨어 기반 보안을 갖는지 여부를 분석할 수 있다. 지원 장치(404) 또는 다른 지원 장치(406)는 또한, 암호화 장치(402)가 방화벽, 맬웨어 방지 또는 바이러스 백신 소프트웨어를 보유하고 있는지를 결정할 수 있고, 암호화 장치(402)가 사용자 또는 사기꾼에 의해 어느 정도 변경될 수 있는지를 평가(예컨대, 장치가 사용자에 의해 재프로그램될 수 있는지 여부를 평가)할 수 있다. 이들 보안 비교는 수치 오류 또는 위험 값을 초래할 수 있다. 이들 오류 또는 위험 값은 개별 보안 속성이 비정상인 정도를 나타낼 수 있다. 이들 보안 비교는 하나 이상의 AI 알고리즘, 예컨대 머신 러닝 분류기, 예컨대 지원 벡터 머신을 사용하여 수행될 수 있고, 이는 보안 속성의 조합을 이상 또는 정상 분류로 분류하는 데 사용될 수 있다. 이렇게 다른 보안 비교 및 보안 비교 방법은 많이 있으며, 상기 내용은 비제한적인 예시로만 의도된다.
단계(416)에서, 지원 장치(404) 및 다른 지원 장치(406)는, 다중 당사자 연산에 참여할지 여부를 결정할 수 있다. 이 결정은, 임계치 오류 또는 위험 값에 대해 전술한 오류 또는 위험 값을 평가하는 것을 포함할 수 있다. 예를 들어, 보안 속성의 각 특성에 해당하는 각 오류 또는 위험 값을 합산하여 임계치와 비교할 수 있다. 다른 예로서, 각각의 오차 또는 위험 값은 그 자체의 해당 임계치와 비교될 수 있고, 예를 들어 거리에 대응하는 위험 값은 거리에 대응하는 임계치와 비교될 수 있다. 다른 예로서, 각각의 오차 또는 위험 값은 전통적 또는 가중 평균을 사용하여 평균화될 수 있어, 임계치에 대해 비교될 수 있는 단일 값을 생성한다. 또 다른 예로서, 각 오류 또는 위험 값은 인공 지능 또는 머신 러닝 모델에 의해 평가될 수 있다. 이 모델은, 각 오류 또는 위험 값을 입력으로 취할 수 있고, 다중 당사자 연산에 참여할지 여부에 대한 결정을 내릴 수 있다. 지원 장치(404) 및 서로 다른 지원 장치(406)는 오차, 위험 점수 또는 다른 요인에 기반하여, 다중 당사자 연산에 각각 제공할 수 있는 비밀 공유분 또는 파생 값의 수를 결정할 수 있다.
단계(418)에서, 암호화 장치(402)는 지원 장치의 일부 또는 전부로부터 부분 암호화 값을 수신할 수 있다. 암호화 장치(402)는, 지원 장치(404) 및 다른 지원 장치(406)에 배포된 총 비밀 공유분 수 이하인 수의 부분 암호화 값을 수신할 수 있다. 부분 암호화 값은 비밀 공유분 또는 비밀 공유분으로부터 파생된 값, 예컨대 부분 연산, 공유 비밀과 연관되거나 이로부터 파생된 값을 생성하는 일부 방식으로 조합될 수 있는 값을 포함할 수 있다. 부분 암호화 값은 암호화된 형태로 송신될 수 있고 암호화 장치(402)에 의해 해독될 수도 있다. 부분 암호화 값은 또한 허브 또는 프록시 장치를 통해 암호화 장치(402)로 송신될 수도 있다.
단계(420)에서, 암호화 장치(402)는 부분 암호화 값을 조합하여 암호화 키를 생성할 수 있고, 이는 인증 암호를 생성하기 위해 사용될 수 있다. 암호화 장치(402)가, 지원 장치(404)와 다른 지원 장치(406)로부터 부분 암호화 값의 임계 수 이상을 수신하는 경우에, 암호화 키가 생성될 수 있다. 일부 경우에, 암호화 장치(402)는 수신된 부분 암호화 값의 수에 따라 상이한 암호화 키를 생성할 수 있다. 이들 상이한 암호화 키는 상이한 보증 수준에 대응할 수 있어서, 작은 수의 암호화 값을 사용하여 생성된 암호화 키는 낮은 보증 수준과 일치하고, 많은 수의 암호화 값을 사용하여 생성된 암호화 키는 높은 보증 수준과 일치한다.
암호화 키는, 고급 암호화 표준(AES) 키 생성 알고리즘과 같은 적절한 키 생성 알고리즘을 사용하여 생성될 수 있다. 이는, 수학적 또는 소프트웨어 기능을 사용하여 수신된 부분 암호화 값을 조합하고, 이들 수신된 부분 암호화 값을 키 생성 알고리즘에 대한 입력으로서 적용하는 것에 의해, 달성될 수 있다. 일단 암호화 키가 생성되면, 이는, 암호화 키를 사용하여 메시지 또는 진술서를 암호화함으로써, 인증 암호를 생성하기 위해 사용될 수 있다. 예를 들어, AES 암호화 키가 생성되는 경우, 암호화 장치(402)는 AES에 따라 메시지 또는 진술서를 암호화하여 인증 암호를 생성할 수 있다.
암호화 키는 인증 암호를 생성하기 위해 사용될 수 있다. 인증 암호는 많은 양식을 취할 수 있다. 예를 들어, 인증 암호는, 보안 평가 동안에 지원 장치(404) 및 다른 지원 장치(406)에 의해 결정된 보증 레벨의 암호화된 진술서일 수 있다. 인증 암호가 복호화 장치에 의해 암호 해독되는 경우, 복호화 장치는 진술서를 평가하고, 그 내용에 기반하여 암호화 장치(402)를 인증할 수 있거나 인증하지 않을 수 있다. 예를 들어, 복호화 장치는, 높은 보증 수준 암호를 생성할 수 있는 암호화 장치(402)만을 인증할 수 있다.
인증 암호는, 또한 "해독 성공"과 같이 암호화된 예상 진술서의 형태를 취할 수도 있다. 이 진술서는, 암호가 성공적으로 해독되었음을 검증하는 데 사용될 수 있다. 복호화 장치는, 임의의 수의 보증 레벨에 대응하는 임의의 수의 암호화 키를 사용하여 인증 암호를 해독하고, 알려진 진술서에 대한 결과를 평가하려고 시도한다. 부정확한 암호화 키를 사용하여 인증 암호를 해독하는 경우, 그 결과는 이해할 수 없는 진술서 또는 숫자 모음일 것으로 예상된다. 일단 복호화 장치가 인증 암호를 올바른 암호화 키로 성공적으로 해독하는 경우, 복호화 장치는 알려진 진술서에 대해 예상 진술서를 비교할 수 있다. 일치하는 경우, 복호화 장치는 사용된 암호화 키에 기초하여 보증 수준을 추론할 수 있고, 보증 수준에 기반하여 암호화 장치(402)를 인증할 수 있다.
인증 암호를 생성한 후, 암호화 장치(402)는 인증 암호를 직접적으로, 또는 프록시 또는 허브 장치를 통해 복호화 장치에 선택적으로 송신할 수 있다.
V. 보안 평가
전술한 바와 같이, 컨센서스 기반 온라인 인증은, 암호화 장치에 의해 초기화될 수 있는 보안 평가 프로토콜 또는 "보안 평가"를 포함할 수 있다. 예를 들어, 암호화 장치는 보안 평가 요청을 하나 이상의 지원 장치로 송신할 수 있다.
하나 이상의 지원 장치는, 암호화 장치가 제공한 보안 데이터 및 보안 속성을 사용하여 보안 평가를 수행할 수 있다. 또한, 하나 이상의 지원 장치는 보안 데이터, 보안 속성, 및 보안 평가의 일부로서 서로와 기준 데이터를 공유할 수 있다. 보안 평가는 암호화 장치, 다른 지원 장치, 또는 인증 암호 생성의 일반적인 맥락의 평가를 포함할 수 있다.
각 지원 장치는 수집된 정보를 사용하여 개별 보안 평가를 수행할 수 있다. 개별 보안 평가는 인증 암호 생성의 성질, 예컨대 인증 암호가 사기성 목적을 위해 생성되고 있는지의 여부와 관련될 수 있다. 예를 들어, 사기꾼이 사용자의 개인 의료 기록에 불법적으로 액세스하기 위해 인증 암호를 생성하려고 시도하는 경우, 다수의 지원 장치는 사기 목적으로 인증 암호가 생성되고 있음을 판단할 수 있다.
각각의 보안 평가에 기반하여, 각각의 지원 장치는, 암호화 장치가 암호화 키를 생성할 수 있도록 암호화 장치에 비밀 공유분 또는 파생 값을 많이 제공할 수 있다. 암호화 키는 인증 암호를 생성하기 위해 사용될 수 있다. 인증 암호는 복호화 장치로 송신될 수 있고, 복호화 장치는 인증 암호를 해독하고 그 내용에 기반하여 암호화 장치를 인증할 수 있다.
지원 장치가, 사기성 목적을 위해 인증 암호를 생성할 가능성이 있다고 판단하는 경우, 지원 장치는 어떠한 비밀 공유분 또는 파생 값을 암호화 장치에 제공하지 않을 수 있다. 충분한 지원 장치가 참여를 거부하는 경우, 암호화 장치는, 암호화 키를 생성하도록 최소 임계 수를 충족시키기 위한 비밀 공유 또는 파생 값을 충분히 갖지 않을 수 있다. 이러한 방식으로, 지원 장치는 보안 평가에 기반하여 인증 암호의 생성을 효과적으로 차단하였다. 또한, 지원 장치는, 도 1b에 나타낸 사이드 채널(112)과 같이, 사이드 채널을 통해 복호화 장치와 통신할 수 있다. 이 통신은 복호화 장치에게, 수신했거나 수신할 수 있는 인증 암호가 사기성일 가능성이 있음을 표시할 수 있다. 그 결과, 복호화 장치는 암호화 장치를 인증하지 않기로 결정할 수 있다.
보안 평가는 장치 보안 평가 및 사용자 보안 평가를 포함할 수 있다. 장치 보안 평가는 각각의 지원 장치 및 암호화 장치에 대한 평가를 포함한다. 지원 장치는 장치 보안, 예컨대 방화벽 또는 바이러스 백신 소프트웨어의 현재 상태, 장치의 과거 이력 상태 등에 관련된 데이터를 서로 교환한다. 사용자 보안 평가는, 사용자를 포함한 사용자 또는 상황 정보에 대한 평가를 포함한다. 사용자 보안 평가는 사용자 행동 프로파일 또는 생체 인식 정보 등의 데이터 송신을 포함할 수 있다. 이 데이터는 사용자의 상태를 측정하는 데 사용할 수 있다. 예를 들어, 사용자 보안 평가는, 사용자가 암호화 장치에 존재하는지 여부에 대한 판단을 포함할 수 있다. 사용자가 암호화 장치에 있는 경우, 이는 사용자가 암호를 생성할 가능성이 있게 된다. 사용자 보안 평가는 사용자 인증 위험 추정치를 또한 포함할 수 있으며, 이는 사용자 인증과 연관된 위험 수준을 나타낸다.
다음 하위 섹션은 장치 보안 평가, 사용자 보안 평가 및 보증 수준에 대해 자세히 설명한다.
A. 장치 보안 평가
전체 보안 평가 프로세스의 일부로서, 지원 장치는 암호화 장치 및 다른 지원 장치를 평가할 수 있다. 이는, 암호화 장치와 다른 지원 장치로부터 보안 데이터를 수집하고, 상기 보안 데이터로부터 관련 보안 속성을 추출하고, 현재 승인된 구성, 동작 프로파일 및 과거 이력 상태와 같은 기준 데이터와 비교할 수 있다.
과거 이력 데이터 또는 과거 이력 상태는, 인증 암호가 생성된 이전 위치, 인증 암호를 생성하기 위한 이전 목적(예, 이메일 계정에 액세스하기 위해, 물품을 구매하기 위해, 등등), 인증 암호가 생성된 이전 시간, 암호화 장치의 이전 IP 주소를 포함할 수 있다.
지원 장치는, 암호화 장치가 인증 암호를 생성하는 데 있어서 일부 악의적인 역량으로 작동 중인지 여부를 판단할 수 있다. 지원 장치는 다른 지원 장치가 암호화 장치와 공모하는지 또는 달리 악의적인 역량으로 작동하는지 여부를 추가로 판단할 수 있다.
예를 들어, 사기꾼은 랩톱과 태블릿을 훔칠 수 있다. 사기꾼은, 태블릿에서 애플리케이션을 수행하는 보안 평가를 수정했을 수 있다. 사기꾼은 구매를 위해 랩톱을 사용하려고 시도할 수 있고, 이 목적을 위해 인증 암호를 생성하려고 시도할 수 있다. 수정된 보안 평가 애플리케이션을을 사용하는 태블릿은, 인증 암호가 합법적인 목적을 위해 생성되고 있음을 수정된 보안 평가를 통해 결론을 내릴 수 있다. 이러한 방식으로 손상된 태블릿은, 불법 인증 암호를 생성하기 위해 랩톱과 공모한다.
장치 구성은, 장치가 연관 기능을 수행하도록 구성되는 방법을 지칭할 수 있다. 랩톱과 같은 컴퓨터 시스템의 경우, 장치 구성은 그 장치와 연관된 다수의 설정을 지칭할 수 있다. 예를 들어, 랩톱은, 관리자 승인 없이 랩톱에 프로그램 또는 애플리케이션이 설치되지 않도록 구성될 수 있다. 다른 예로서, 랩톱은, 애플리케이션이 홈 와이파이 네트워크와 같은 사설 네트워크 및 커피 숍에서의 와이파이 네트워크와 같은 비공용 네트워크를 통해 원격 서버와 오직 통신할 수 있다. 다른 예로서, 장치 구성은, 장치 레지스트리의 설정, 운영 체제에 대해 낮은 수준의 설정을 저장하는 데이터베이스를 지칭할 수 있다.
장치 구성의 다른 하나의 예는, 포트 설정이나 포트 포워딩 설정이다. 장치는, 운영 체제의 통신 엔드포인트인 특정 포트를 통해 통신을 수신하도록 구성될 수 있다. 장치는 또한, 특정 포트 또는 다양한 포트를 통해 통신을 수신할 수 없도록 구성될 수 있다. 장치는, 허용 또는 허용되지 않는 포트를 네트워크 관리자만 수행할 수 있도록 구성될 수 있다.
또한 방화벽, 맬웨어 또는 바이러스 백신 설정도 장치 구성으로 간주될 수 있다. 방화벽의 보안 상태 또는 맬웨어 방지 및 바이러스 방지 소프트웨어의 민감도를 포함할 수 있다. 예를 들어, 장치가 샌드박스를 사용하여 테스트되지 않거나 신뢰할 수 없는 프로그램 또는 코드를 실행하는 지 여부를 포함한다. 장치 또는 보안 구성으로 설명될 수 있는 다수의 요소 또는 특징부가 있으며, 이들은 비제한적인 예시로만 의도된다.
지원 장치는, 장치에 대응하는 데이터 또는 암호화 장치와 다른 지원 장치의 보안 구성을 수신할 수 있다. 이 데이터는, 해당 장치에 대한 각 관련 설정 또는 구성에 관한 필드를 갖는 정렬된 목록과 같이, 많은 형태를 취할 수 있다. 이들 필드는 승인된 구성과 비교될 수 있다.
예를 들어, 승인된 구성은 다음과 같은 설정을 포함할 수 있다: "일체의 제3자 또는 승인되지 않은 프로그램은 어느 조건에서도 설치되도록 허용하지 않음", "이 허용된 포트 범위에 대해서만 통신", 및 "한 시간에 한 번 바이러스 스캔을 수행". 보안 평가를 수행한 지원 장치는, 이렇게 승인된 구성에 대해 수신된 데이터를 비교할 수 있다. 평가 중인 암호화 장치 또는 지원 장치가 "제3자 프로그램 설치 허용," "자유롭게 통신" 및 "프롬프트된 경우에만 바이러스 스캔 수행"과 같은 구성이 있을 경우, 피평가 장치는 승인된 구성을 충족시키지 않고, 마찬가지로 지원 장치는 상기 피평가 장치와 연관된 심각한 위험 또는 낮은 수준의 보증이 있음을 판단할 수 있고, 임의의 비밀 공유분의 제공을 거부할 수 있거나 그 결과로서 암호화 장치에 대한 소수의 비밀 공유분만 제공할 수 있다.
장치의 상태는, 해당 장치를 설명할 수 있는 변수("상태 변수")의 임의의 모음을 지칭할 수 있다. 많은 경우에, 상태 변수 또는 상태 변수 모음이 장치 구성과 겹칠 수 있다. 예를 들어, 방화벽 상태와 같은 상태 변수(즉, 방화벽이 현재 사용 가능?)가 구성인 것으로 또한 간주될 수 있다. 상태 변수는 또한, 특정 하드웨어 상태, 예컨대 장치의 랜덤 액세스 메모리 같은 메모리의 특정 블록의 컨텐츠를 포함할 수 있다. 상태 변수는 또한, 장치가 사운드를 설정했는지 여부, 볼륨이 설정되었는지 여부 등의 요인을 포함할 수 있다. 스마트 폰 지원 또는 암호화 장치의 경우에, 카메라 또는 마이크가 활성화되었는지, 현재 배터리 수준, 앱이 실행 중인지 여부 등을 포함할 수 있다. 상태 데이터는, 장치의 위치 또는 다른 장치, 예를 들어 블루투스를 통해 페어링되는지 여부를 또한 포함할 수 있다. 사실상, 장치의 상태는 해당 장치에 대해 설명하는 임의의 식별 가능한 특징을 포함할 수 있다.
상태는 상태 변수의 목록 또는 데이터베이스로 표현될 수 있고, 이는 보안 평가의 일부로서 하나 이상의 지원 장치로 송신될 수 있다. 수신된 상태는 보안 평가의 일부로서 과거 이력 상태 데이터와 비교될 수 있다.
과거 이력 상태 데이터는, 임의의 기간에 걸쳐 기록된 임의의 수의 상태 변수를 포함할 수 있다. 예를 들어, 과거 이력 상태 데이터는 12시간 동안, 하루, 한 달, 일 년 등에 걸쳐 기록되었을 수 있다. 일부의 경우, 다수의 이벤트에 걸쳐 과거 이력 상태 데이터가 기록되었을 수 있다. 예를 들어, 마지막 10개의 각 보안 평가 중에, 지원 장치는 이들 각각의 보안 평가 중에 수신된 상태 데이터를 기록하고 저장할 수 있다. 또한, 지원 장치 및 암호화 장치는, 과거 이력 상태의 기록을 확립하기 위해 규칙적이거나 불규칙적인 간격으로 상태 데이터를 교환할 수 있다. 예를 들어, 매일 밤 오후 10:00시에 각 장치는 상태 데이터를 서로 교환할 수 있다.
수신된 상태 데이터를 과거 이력 상태 데이터와 비교하여 임의의 이상점을 결정할 수 있다. 수신된 상태 데이터가 과거 이력 상태 데이터와 다른 경우, 지원 장치는 보안 평가의 일부로서 낮은 보증 수준으로 결론을 낼 수 있으며, 암호화 장치에 일체의 비밀 공유분 또는 파생 값을 제공하는 것을 거부할 수 있다. 수신된 상태 데이터가 과거 이력 상태 데이터와 일치하는 경우, 지원 장치는 암호화 장치에 일부 비밀 공유분 또는 파생 값을 제공할 수 있다.
일례로, 지원 장치는, 평가된 암호화 또는 지원 장치의 위치를, 시간의 경과에 따른 해당 장치의 과거 이력 위치와 비교할 수 있다. 현재 수신된 위치가 과거 이력 위치 상태 데이터에서 추론된 일반적인 위치와 실질적으로 다를 경우, 지원 장치는 의심되는 것으로 볼 수 있다. 지원 장치는, 실질적인 차이를 평가하기 위해 임의의 적절한 알고리즘을 사용할 수 있다.
예를 들어, 과거 이력 상태 데이터가, 상기 피평가 장치가 매우 협재화되었다고, 예를 들어 사용자가 소유한 집이나 아파트로부터 드물게 이동하는 경우를 제안하는 경우에, 피평가 장치가 100 마일 떨어진다면, 상기 지원 장치는 의심스러움을 발견할 수 있다. 반면, 피평가 장치가 자주 이동하면(스마트 폰이나 스마트 자동차의 경우와 같이), 지원 장치는 피평가 장치의 위치에 대한 가중치를 줄 수 없거나 또는 이를 거의 갖지 않는다. 또한, 시간이 지남에 따라 피평가 장치의 위치에 측정 가능한 또는 주목할 만한 경향이 있는 경우(예를 들어, 사용자가 도로 여행을 취하고 있고, 장치가 일부 지리적 영역에 걸쳐 서부에서 동부로 일반적으로 이동하는 경우), "실질적인 차이"가 해당 장치의 예상되는 경로로부터 시간에 따라 일부 편차를 구성할 수 있고, 예를 들어, 장치가 현재 미국을 건너 서부에서 동부로 일반적으로 이동한다 하면, 그 다음 현재 위치 데이터는 장치가 소말리아에 있음을 보여준다. 이들 요인 또는 방법은 임의의 수의 모델, 알고리즘 또는 추론을 사용하여 분석될 수 있다. 예를 들어, 머신 러닝 알고리즘, 예측 필터, 앙상블 등.
다른 예로서, 피평가 장치는 명확한 패턴을 확립했을 수 있고, 그 패턴으로부터의 편차는 의심되는 것으로 간주될 수 있다. 예를 들어, 만약 장치가 항상 조용하거나 음소거된 상태이고 현재 수신된 상태 데이터는 볼륨이 최대화되었음을 나타내는 경우, 이는 (아마도 음량 상태가 조용한 것을 선호하는) 사용자 이외의 다른 실체가 장치를 작동시키고 있음을 나타낼 수 있다. 이는 평가 지원 장치에 의해 의심되는 것으로 보여질 수 있다.
지원 장치는 다른 것보다 상태 변수에 많은 가중치를 주거나 일부 차이를 가질 수 있다. 예를 들어, "플래시 메모리 상에 저장된 사진 수"와 같은 상태 변수는 많은 가중치를 줄 수 있는 것은 아닌 반면에, 장치의 위치와 같은 상태 변수가 매우 가중치 처리될 수 있다. 또한, 과거 이력 상태 값과 현재 상태 값 사이의 각각의 차이는 오류 용어와 같은 숫자로 변환되거나 표현될 수 있다. 이들 오류 용어는, 피평가 장치가 의심스러운지 여부를 판단하기 위해 평균과 같은 일부 방식으로 조합될 수 있으며, 임계치와 비교될 수 있다. 일부 경우에, 이들 차이는 일부 규칙 집합에서 보일 수 있다. 규칙 세트로부터의 규칙은 "장치가 예상 위치에서 500마일 이상이면 어떠한 비밀 공유분 또는 파생 값을 제공하지 않는다"를 지시할 수 있다. 이 경우, 피평가 장치가 예상 위치로부터 500 마일 이상이라고 일단 판단하면, 평가 지원 장치는 평가 프로세스를 중단시키고 비밀 공유분 또는 파생 값을 제공하지 않을 수 있다.
일부 경우에, 현재 수신된 상태 데이터와 과거 이력 데이터 간의 차이가, 인공 지능 또는 머신 러닝 모델에 대한 입력으로 적용될 수 있다. 예를 들어, 라벨링된 데이터에 기반하여, 의심되는 장치 및 의심되지 않는 장치를 식별하기 위해 지원 벡터 기계를 훈련시킬 수 있다. 수신된 상태 데이터, 또는 상태 데이터와 과거 이력 데이터 간의 차이는 이 지원 벡터 기계에 대한 입력으로서 제공될 수 있고, 지원 벡터 기계는 피평가 장치가 의심스러운 것인지의 여부에 대한 분류를 제공할 수 있다.
또한, 장치 보안 평가는 "구배 응답"을 생성할 수 있고, 즉 평가 지원 장치는 암호화 장치 또는 다른 지원 장치와 같이 피평가 장치가 "의심스러움" 또는 "의심스럽지 않음"을 결정할 수 없고 오히려 의심의 정도를 결정할 수 있다. 이러한 의심 정도는, 사기꾼이나 악의적인 사용자가 평가된(피평가) 장치를 손상시킬 확률과 같은 확률로 표현될 수 있다. 예를 들어 양호한 보안 평가의 경우, 즉 장치는 승인된 장치 구성에 따라 구성되고, 장치의 상태가 장치의 과거 이력 상태로부터 큰 정도로 벗어나지 않고, 손상 확률은 낮은 것(예, 1%)으로 평가 지원 장치에 의해 결정될 수 있다. 보안 평가가 나쁜 경우, 손상 확률은 높을 수 있는 것(예, 75%)으로 평가 지원 장치에 의해 결정될 수 있다.
지원 장치는, 이 확률 점수 또는 계산된 다른 구배 응답에 비례하는 비밀 공유분을 제공할 수 있다. 예를 들어, 지원 장치는 10 개의 비밀 공유분 또는 파생 값을 제공하는 것을 "계획"할 수 있으며, 각 10% 손상 확률에 대해 비밀 공유분 또는 파생 값을 하나 덜 제공할 수 있고, 즉 0%의 손상 확률에 대해 지원 장치는 10 개의 비밀 공유분 또는 파생 값을 제공하고, 70%의 확률에 대해, 지원 장치는 3 개의 비밀 공유 또는 파생 값을 제공하고, 100%의 확률에 대해 지원 장치는 비밀 공유 또는 파생 값을 제공하지 않는다.
장치 보안 평가에는 행동 구성 요소도 포함될 수 있다. 이러한 행동 구성 요소는, 일정 기간에 걸쳐 암호화 장치 또는 다른 지원 장치에 의해 수행된 최근의 작업을 평가할 수 있다. 이러한 작업의 예는 외부 서버에 데이터를 송신하는 단계, 메모리에 저장된 데이터를 삭제하는 단계, 메모리를 새로운 목적으로 할당하는 단계, 애플리케이션을 실행하는 단계, 보호된 리소스에 액세스하려고 시도하는 단계 등을 포함할 수 있다.
장치의 일반적인 행동은, 적절한 여러 시간 프레임에 걸쳐 장치에 의해 수행되는 작업의 일반적인 패턴 또는 순서를 구성할 수 있다. 예를 들어, 장치는 일반적으로 20분 마다 이메일 서버에서 이메일을 수신할 수 있다. 이 패턴은 행동을 구성할 수 있다.
암호화 장치 또는 지원 장치는, 임의의 적절한 형태로 최근의 작업 또는 행동을 송신할 수 있다. 예를 들어, 이는 실행 로그, 즉 일정 기간에 걸쳐 피평가 장치에 의해 실행되는 프로세스의 상세 목록이다. 이 실행 로그는, 피평가 장치가 비정상적인 동작을 나타내는 것인지 여부를 판단하기 위해 과거 이력 실행 로그에 대해 비교될 수 있다.
예를 들어, 과거 이력 행동 데이터는 피평가 장치가 특정 작동 또는 일련의 작동(예컨대, 보호된 메모리 유닛에 액세스를 시도)을 드물게 수행하고, 현재 수신된 행동 또는 실행 로그는 해당 작동을 대규모로 또는 상당한 횟수로 수행함을 보여준다고 제안하는 경우, 피평가 장치는 비정상적인 행동을 보이는 것으로 간주될 수 있다. 이러한 비정상적인 행동은, 암호화 또는 지원 장치를 손상되거나 의심스러운 것으로 표시하거나 특성화할 수 있다. 평가 지원 장치는 보안 평가에서 이러한 비정상적인 행동을 고려할 수 있다.
현재 수신된 행동 정보 및 과거 이력 행동 정보의 비교는, 다수의 방법을 사용하여 수행될 수 있으며, 이들 중 다수는 수신된 상태 데이터와 과거 이력 상태 데이터를 비교하기 위해 사용되는 방법과 상당히 유사할 수 있다. 평가 지원 장치는, 과거 이력 행동 데이터와 현재 수신된 상태 데이터 간의 차이에 기반하여 오류 또는 편차 값을 결정할 수 있고, 이 오류 또는 편차 값이 소정 임계치를 초과할 경우 피평가 장치가 의심스러운 것으로 판단할 수 있다. 평가 지원 장치는 장치의 행동을 평가하고 분류하기 위해 인공 또는 머신 러닝 알고리즘을 사용할 수 있다. 평가 지원 장치는 피평가 장치 행동을 평가하기 위해 규칙 세트를 사용할 수 있고, 평가 지원 장치는 평가시 개별 행동을 갖는 것을 나타내는 가중치 또는 다른 값을 할당할 수 있다.
결론적으로, 인증 암호 생성 작업이 합법적인지 여부를 결정하기 위해, 지원 장치 모음의 각 지원 장치는, 암호화 장치 및 다른 지원 장치로부터 다수의 보안 속성을 포함한 보안 데이터를 수신할 수 있다. 이들 보안 데이터 및 보안 속성은 구성 특성, 장치 상태 및 행동 특성에 관한 것일 수 있다. 각 지원 장치는 수신된 데이터를 과거 이력 데이터와 비교할 수 있으며, 이는 장치 간에 송신, 풀링 또는 교환될 수 있다. 이 평가는 각각의 지원 장치로 하여금, 암호화 장치 및 각각의 다른 지원 장치가 의심되거나 손상될 수 있는지 여부를 결정할 수 있다. 각 지원 장치는 자체 개별 결론에 도착할 수 있다. 이러한 결론에 기반하여, 각각의 지원 장치는 암호화 장치에 많은 비밀 공유분 또는 파생 값을 제공할 수 있다. 암호화 장치 또는 다른 지원 장치가 손상될 가능성이 낮다고 판단하는 경우, 각각의 지원 장치는 더 많은 비밀 공유분을 제공할 수 있고, 암호화 장치 또는 다른 지원 장치가 손상될 가능성이 높다고 판단하는 경우, 비밀 공유분을 덜 제공할 수 있다.
B. 사용자 보안 평가
각 지원 장치는 또한, 전체 보안 평가 프로토콜의 일부로 사용자 보안 평가를 수행할 수 있다. 이 사용자 보안 평가는, 센서 데이터 또는 사용자의 상태와 관련될 수 있는 다른 정보를 평가하는 것을 포함할 수 있다. 예를 들어, 사용자 보안 평가는 스마트 워치에 맥박 산소측정기를 사용하는 것을 포함할 수 있다. 맥박 산소측정기가 맥박을 감지하는 경우, 누군가, 아마 사용자가 스마트 워치를 착용하고 있을 가능성이 있음을 암시한다. 마찬가지로, 스마트 워치를 잠금 해제하는 부분으로서, 최근 엄지 지문 스캔이 사용자 보안 평가에 포함될 수 있다. 사용자 상태 데이터의 다른 예는, 스마트 폰이나 스마트 워치에 결합된 가속도계 또는 균형 센서와 같은 다른 센서로부터 추론될 수 있다. 가속도계 운동의 규칙적인 변동은 사용자의 보행, 사용자가 이동하는 다양한 방법을 특성화할 수 있다. 이렇게 추론된 보행 패턴은 과거 이력 보행 패턴과 비교될 수 있고, 상당한 차이점은 사용자 이외의 실체가 스마트 워치 또는 스마트 폰을 보유하고 있음을 나타낼 수 있다.
사용자 보안 데이터는, 사용자 상태를 해석하거나 측정할 수 있는 사용자 근접 장치로부터 사용자 상태를 해석 또는 측정할 수 없는 사용자 원거리 장치로 송신될 수 있다. 예를 들어, 스마트 워치는, 피부 컨덕턴스 센서, 피부 온도 센서, 산소 측정 센서, 심박수 모니터 등과 같은 센서를 통해 많은 사용자 특성을 측정하도록 잘 배치될 수 있다. 다른 한편으로, 랩톱은 이들 사용자 특성을 측정할 수 없다. 스마트 워치 또는 스마트 폰과 같은 지원 장치는, 이렇게 수집된 사용자 데이터를 랩톱 또는 데스크톱 컴퓨터와 같은 다른 지원 장치에 송신할 수 있고, 다른 장치는 자신의 보안 평가에서 해당 데이터를 사용할 수 있다.
사용자 보안 평가는, 감지되거나 추론된 사용자 데이터를 과거 이력 사용자 데이터 또는 사용자 기록과 비교하고 현재 데이터와 과거 데이터 간의 편차를 측정함으로써, 수행될 수 있다. 편차가 일부 소정의 임계치를 초과하는 경우, 평가 지원 장치는 사용자 상태가 의심되는 것으로 판단할 수 있으며, 결과적으로 다중 당사자 연산에 비밀 공유 또는 파생 값을 제공할 수 없다. 대안적으로 또는 추가적으로, 평가 지원 장치는 인공 지능 또는 머신 러닝 모델, 예를 들어 지원 벡터 기계를 사용할 수 있다. 지원 벡터 기계와 같은 모델은, 지원 장치에 의해 수집된 사용자 데이터를 취할 수 있고, 사용자 상태가 의심되는지 여부에 대한 분류를 생성할 수 있다. 다른 경우에, 지원 장치는 규칙 세트를 사용하여 사용자 상태가 의심되는지 여부를 평가할 수 있다. 예를 들어, 스마트 워치에 의해 심박동이 감지되지 않으면 사용자가 존재하지 않는다는 표시가 될 수 있다. 이는 다른 보안 데이터의 맥락에 따라 의심되는 것으로 간주될 수 있다.
또한, 사용자 보안 평가는 사용자의 행동 특성을 평가하는 것을 포함할 수 있다. 예를 들어, 사용자는 자신의 이메일에 액세스하거나 자주 액세스하는 웹 공급자로부터 물품을 구입하기 위해 자주 인증하는 것으로 알려질 수 있다. 이들 인증이 자주 또는 습관적으로 발생하는 경우, 이들은 전형적인 사용자 행동을 구성할 수 있다. 암호화 장치가 이들 목적 중 하나에 대해 인증을 시도하는 경우, 이는 사용자가 인증 프로세스에 관여할 가능성이 있음을 암시한다. 반대로, 암호화 장치가 새로운 목적으로 인증 암호를 생성하려고 시도하는 경우(예컨대
지원 장치는 사용자 보안 평가 및 장치 보안 평가를 일렬로 또는 하나 이상의 다른 보안 평가에 추가로 사용하여, 인증 암호 생성의 맥락 또는 암호화 장치나 다른 지원 장치가 의심스러운지 여부를 결정할 수 있다. 각 지원 장치는, 이들 보안 평가의 결과에 기반하여 많은 비밀 공유분 또는 파생 값을 제공할 수 있다.
또한, 일부 지원 장치는 사용자, 예를 들어 생체 인식 템플릿을 인증하는 데 사용될 수 있는 개인 식별 정보 또는 다른 정보를 보유할 수 있다. 이들 지원 장치는 암호화 장치에 이 템플릿을 송신하여 암호화 장치가 인증 암호에 이 개인 식별 정보를 포함시키도록 할 수 있다. 복호화 장치는, 암호화 장치를 인증하기 위해 기존 기록에 대해 이 정보를 검증할 수 있다.
일부 경우에서, 사용자 존재가 설정되지 않을 수도 있다(예, 스마트 시계의 심장 박동 센서를 통해 심박동이 감지되지 않음). 이들 경우에, 암호화 장치는 사용자로부터 추가 사용자 정보 또는 인증을 쿼리할 수 있다. 여기에는 사용자가 암호를 입력하거나, 생체 인식 정보를 제공하거나, 비밀 질문에 응답하는 것이 포함될 수 있다.
C. 보증 수준
전술한 바와 같이, 컨센서스 기반 온라인 인증의 시스템 및 방법은 여러 상이한 보증 수준을 제공할 수 있다. 이들 보증 수준은, 시스템이 인증 암호의 정당성을 얼마나 잘 확신하는지 나타낼 수 있다. 높은 보증 수준은 인증 암호가 사용자를 대신하여 생성되며 사기꾼이 아님을 표시한다. 낮은 보증 수준은 인증 암호가 사용자를 대신하여 생성될 가능성이 있음을 표시한다.
보증 수준은 비밀 공유분 임계치를 기반으로 할 수 있다. 비밀 공유분 임계치는, 암호화 장치가 암호화 키를 생성하기에 필요한 비밀 공유분 또는 파생 값의 최소 수를 나타낼 수 있다. 이것은 m/n 비밀 공유로, n 개 중 m 개의 비밀 공유분이 단일 "공유 비밀" 또는 공유 비밀과 연관된 값을 복제하는 데 필요하다. 공유 비밀 또는 파생 값은 암호화 키로서 또는 암호화 키를 생성하는 프로세스의 일부로서 사용될 수 있다. 이 암호화 키는 인증 암호를 생성하기 위해 사용될 수 있다.
여러 보증 수준이 있는 경우, 각 보증 수준에 해당하는 여러 공유 비밀, 및 각 비밀과 각 보증 수준에 해당하는 여러 임계치가 있을 수 있다. 예를 들어, Shamir의 비밀 공유 접근법을 사용하면, 3개의 보증 수준은 3개의 다항식, 및 이들 다항식에 인코딩된 세 개의 공유 비밀에 대응할 수 있다. 각 보증 레벨은 다른 임계치를 가질 수 있다. m 1, m 2, m 3. 예를 들어, 12개 지원 장치의 경우(n = 12), 낮은 보증 수준 m 1은 4와 같을 수 있고, 중간 보증 수준 m 2는 7과 같을 수 있고, 높은 보증 수준 m 3은 10과 같을 수 있다. 이러한 방식으로, 참여 지원 장치의 수에 따라 상이한 공유 비밀 또는 파생 값이 생성된다.
참여 지원 장치가 암호화 장치에 4개 미만의 비밀 공유분을 제공하는 경우, 공유 비밀 또는 파생 값을 구성할 수 없다. 그 결과, 암호화 키를 생성해서 인증 암호를 생성하는 데 사용할 수 없다. 암호화 장치에 4개 내지 6개의 비밀 공유분이 제공되는 경우, 낮은 보증 수준에 해당하는 공유 비밀 또는 파생 값을 구성할 수 있다. 낮은 보증 수준에 대응하는 암호화 키를 생성할 수 있고, 낮은 보증 수준에 대응하는 인증 암호를 생성하는 데 추가로 사용될 수 있다.
참여 지원 장치가 암호화 장치에 7개 내지 9개의 비밀 공유분을 제공하는 경우, 중간 보증 수준에 해당하는 공유 비밀 또는 파생 값을 구성할 수 있다. 낮은 보증 수준에 대응하는 암호화 키를 생성할 수 있고, 중간 보증 수준에 대응하는 인증 암호를 생성하는 데 사용될 수 있다.
마찬가지로, 참여 지원 장치가 암호화 장치에 10개 이상의 비밀 공유분을 제공하는 경우, 높은 보증 수준에 해당하는 공유 비밀 또는 파생 값을 구성할 수 있다. 높은 보증 수준에 대응하는 암호화 키를 생성할 수 있고, 높은 보증 수준에 대응하는 인증 암호를 생성하는 데 사용될 수 있다.
인증 암호는 복호화 장치로 송신될 수 있다. 복호화 장치는, 인증 암호를 암호화하는 데 사용되는 암호화 키에 대응하는 암호화 키를 사용하여 인증 암호를 해독할 수 있다. 즉, 복호화 장치는 낮은 보증 수준에 대응하는 암호화 키를 생성하고 사용하여, 낮은 보증 인증 암호를 해독할 수 있다 등.
인증 암호는 보증 수와 페어링될 수 있으며, 이는 인증 암호를 생성하기 위해 사용되는 암호화 키를 생성하는 데, 사용되는 비밀 공유분의 수를 나타낸다. 복호화 장치는 이 수를 해석하고 보증 수준에 대응하는 암호화 키를 생성할 수 있다. 예를 들어, 인증 암호가 숫자 "7"과 페어링을 이루면, 복호화 장치는 7개의 비밀 공유분이 중간 보증 수준에 대응하는 암호화 키를 생성하기 위해 사용되었다고 가정할 수 있다. 복호화 장치는 중간 보증 수준 암호화 키를 생성할 수 있고, 중간 보증 수준 암호화 키를 사용하여 인증 암호를 해독할 수 있다.
일부 경우에, 복호화 장치는 많은 비밀 공유분을 보유할 수 있거나, 암호 해독을 돕는 다수의 지원 장치에 비밀 공유분이 제공되는 복호화 네트워크의 일부일 수도 있다. 복호화 장치는 인증 암호를 생성하는 데 사용되는 것과 동일한 수의 비밀 공유분(7)을 수신할 수 있고, 이어서 암호화 키를 생성할 수 있다. 이 암호화 키는 인증 암호를 해독하는 데 사용될 수 있다.
마찬가지로, 인증 암호는 보증 수준, 예컨대 "낮은", "중간", 또는 "높은"을 나타내는 메시지 또는 진술서와 연관될 수 있다. 복호화 장치는, 명시된 보증 수준에 대응하는 암호화 키를 생성하고 암호화 키를 사용하여 인증 암호를 해독할 수 있다.
일부 경우에, 인증 암호는 임의의 숫자, 메시지, 진술서 또는 표시와 페어링이 되지 않을 수 있다. 이 경우, 복호화 장치는 인증 암호를 해독하기 위해 "추측 및 확인"과 같은 방법을 채용할 수 있다. 보증 레벨의 수가 합리적이라면, 복호화 장치는 각 보증 수준에 대응하는 암호화 키를 차례로 생성할 수 있고, 각각의 암호화 키로 인증 암호를 해독하려고 시도할 수 있다. 암호 해독 결과 컴퓨터 또는 사람이 읽을 수 있는 메시지가 표시되면, 인증 암호를 해독하기 위해 정확한 암호화 키를 사용했다. 암호 해독 결과 컴퓨터 또는 사람이 읽을 수 있는 메시지가 표시되지 않으면, 부정확한 키가 사용되었으며, 복호화 장치는, 정확한 암호화 키를 생성할 때까지 다른 암호화 키를 생성하고 시도할 수 있다.
VI. 다중 당사자 연산
암호화 장치는, 지원 장치로부터 암호화 장치에 송신된 비밀 공유분 또는 파생 값을 사용하여 보안 다중 당사자 연산을 수행할 수 있다. 이 보안 다중 당사자 연산은 m/n 비밀 공유 방식을 기반으로 할 수 있고, 여기서 암호화 장치는 n 개의 비밀 공유분 또는 파생 값 총 수 중 m 개의 비밀 공유분 또는 파생 값 임계 수를 수집해서 공유 비밀 또는 공유 비밀로부터 유도된 값을 재구성할 수 있다. 비밀 공유 방식은, 공유 비밀 또는 공유 비밀에서 유도된 값이 사용된 비밀 공유분과 상관없이 재구성되는 것을 허용할 수 있다. 일례로서, 비밀 {A, B, C, D 및 E}를 갖는 3/5 비밀 공유 방식이 주어지면, 사용된 3개의 공유분에 관계없이, 동일한 공유 비밀 또는 파생 값이 재구성될 수 있다. 비밀 {A, B, C}는 {B, D 및 E}와 동일한 공유 비밀을 생성할 수 있다. 공유 비밀 또는 파생 값은 암호화 장치에 의해 사용되어 암호화 키를 생성할 수 있다. 암호화 키를 사용하여, 사용자를 유일하게 식별하는 보증 정보 또는 정보를 암호화함으로써 인증 암호를 생성할 수 있다. 이러한 인증 암호는 복호화 장치로 송신될 수 있으며, 이는 대응하는 암호화 키를 사용하여 인증 암호를 해독할 수 있고 암호화 장치를 인증하기 위해 암호 해독된 정보를 해석할 수 있다.
안전한 다중 당사자 연산은 유사 무작위 기능을 사용할 수 있다. 보안 다중 당사자 연산은 유사 무작위 기능, 예컨대 타원형 곡선 그룹, 해싱 알고리즘 또는 AES 암호화 시스템과 같은 유사 무작위 기능을 사용하여 무작위 오라클을 에뮬레이션하거나 이에 근접할 수 있고, 이는 하나 이상의 비밀 공유분을 헷갈리게하는 데 사용될 수 있고, 프로세스 중에 하나 이상의 파생 값 또는 부분 연산을 발생시킬 수 있다. 보안 다중 당사자 연산은 비밀 공유분 또는 공유 비밀을 추가로 보호하기 위해, 무작위 또는 유사 무작위 수 생성을 추가적으로 포함할 수 있다. 보안 다중 당사자 연산은 비밀 공유분, 부분 연산 또는 파생 값을 조합하여 공유 비밀과 연관되거나 관련되거나 파생된 값을 생성할 수 있다. 이 파생 값은, 전파된 암호 블록 체인 모드, 전자 코드북 모드, 암호 피드백 모드, 카운터 모드 등에서 작동하는 AES 키 생성 알고리즘과 같은 키 생성 알고리즘의 입력으로 사용될 수 있다. 이 키는, 사용자를 유일하게 식별하는 보증 수준 정보 및 데이터를 암호화하기 위해 사용되어 인증 암호를 생성할 수 있다. 상기 단계는 예시로만 의도된 것으로서, m/n 비밀 공유 방식을 사용해 보안 다중 당사자 암호화를 수행하기 위한 여러 가지 방법이 있다.
암호화 장치는 암호화 장치에 필요한 임의의 정보와 함께 암호를 송신하여, 자체 암호화 키를 생성하고 인증 암호를 해독할 수 있다. 이는 보안 다중 당사자 연산의 일부로서 암호화 장치에 의해 생성된 무작위 수를 포함할 수 있다. 이는 또한 "약속 메시지", 암호화 작업이 정확히 수행되었는지 검증하는 데 사용될 수 있는 메시지 또는 값을 포함할 수 있다.
복호화 장치는 공유 비밀을 전부 보유할 수 있거나, 비밀 공유분 모음을 보유할 수 있다. 복호화 장치는, 복호화 장치 및 다수의 지원 장치(각각은 비밀 공유분을 보유함)를 포함하는, 복호화 네트워크를 포함할 수 있다. 이 경우, 암호화 장치는 지원 장치로부터 비밀 공유분을 수신하거나 수집하여, 암호화 장치에 의해 완료된 다중 당사자 연산과 유사한 다중 당사자 연산을 완료한다. 이러한 다중 당사자 연산은, 암호화 장치에 의해 생성된 것과 동일한 암호화 키를 생성하기 위해, 비밀 공유분의 임계 수를 수집하는 것을 포함할 수 있다. 이러한 암호화 키는 인증 암호를 해독하는 데 사용되어 그 내용이 분석될 수 있다.
도 5는 일부 구현예에 따른 인증 암호를 생성하기 위한 다중 당사자 연산을 예시적으로 나타낸다. 도 5는 암호화 장치(502) 및 참여 지원 장치(504)에 의해 수행되는 방법(500)을 나타낸다.
단계(506)에서, 암호화 장치(502)는 무작위 임시값을 생성할 수 있다. 이는 유사 무작위 수 생성기를 사용하여 수행될 수 있다.
단계(508)에서, 암호화 장치(502)는 보안 평가 동안에 지원 장치로부터 수신된 보증 수준 및 사용자 정보에 기반하여, 약속 메시지를 생성할 수 있다. 일부 구현예에서, 사용자 정보는 암호화될 수 있다. 이 약속 메시지는, 타원형 곡선 암호화와 같은 유사 무작위 기능을 구현하는 소프트웨어 또는 코드를 사용하여 생성될 수 있다.
단계(510)에서, 암호화 장치(502)는 참여 지원 장치(504)에 약속 메시지를 송신할 수 있다. 참여 지원 장치(504)는, 하나 이상의 비밀 공유분 또는 파생 값을 다중 당사자 연산에 제공하기로 결정한 지원 장치를 포함할 수 있다. 이는, 암호화 장치(502) 및 참여 지원 장치(504)의 통신 인터페이스를 사용하여 달성될 수 있다. 약속 메시지는 암호화된 또는 비 암호화된 형태로 적절한 프로토콜을 사용하여 송신될 수 있다. 또한, 약속 메시지는 인터넷 또는 셀룰러 통신 네트워크와 같은 통신 네트워크를 통해 송신될 수도 있다. 암호화 장치(502)는 약속 메시지를 허브 또는 프록시 장치에 송신할 수 있고, 허브 또는 프록시 장치는 참여 지원 장치(504)에 약속 메시지를 분배할 수 있다.
단계(512)에서, 참여 지원 장치(504)는 각각의 비밀 공유분 및 약속 메시지를 사용하여 부분 연산의 수를 계산하여, 부분 연산의 수가, 각 참여 지원 장치(504)가 다중 당사자 연산에 제공하도록 선택한 비밀 공유분 또는 파생 값의 수에 동일하거나 비례할 수 있도록 한다.
부분 연산은 여러 방법으로 생성될 수 있다. 예로서, 지원 장치에 의해 생성된 부분 연산은 h = = w k 로 정의될 수 있고, 여기서 h는 부분 연산이고, w는 약속 메시지이고, k는 지원 장치가 보유한 비밀 공유분들의 비밀 공유분이다. 각 참여 지원 장치는 다수의 개별 부분 연산을 생성할 수 있으며, 각각은 그 지원 장치가 보유하고 있는 비밀 공유분들의 비밀 공유분 및 약속 메시지를 사용하여 생성된다.
부분 연산을 생성하기 위한 다른 하나의 방법은, 참여 지원 장치(504) 각각이 AES 암호화 시스템과 같은 분배된 유사 무작위 기능에 기반하여, 부분 연산을 생성하는 것을 포함할 수 있다. 각 참여 지원 장치는 비밀 공유분들의 비밀 공유분을 암호화 키로 사용하여 약속 메시지를 암호화할 수 있다. 참여 지원 장치는 여러 번 약속 메시지를 복사할 수 있고, 비밀 공유분의 모음 중 상이한 비밀 공유분으로 각각의 복사본을 암호화할 수 있고, 이런 방식으로 다중 당사자 연산의 일부로서 암호화 장치(502)에 제공될 수 있는 다수의 부분 연산을 생성한다.
단계(514)에서, 참여 지원 장치(504)는 부분 연산을 암호화 장치(502)로 송신할 수 있다. 부분 연산은 통신 인터페이스를 통해 수신될 수 있고, 암호화된 또는 비 암호화된 형태로 네트워크를 통해 직접 또는 간접적으로 송신될 수 있고, 허브 또는 프록시 장치로 송신될 수 있고, 이는 그런 다음 이를 암호화 장치에 송신할 수 있다.
단계(516)에서, 암호화 장치(502)는 부분 연산에 기반하여 키 생성 씨드를 생성할 수 있다. 이는, 여러 방법으로 수신된 부분 연산을 조합하는 것을 포함할 수 있다. Shamir의 비밀 공유에 기반한 m/n 비밀 공유 시스템에서, 이는 Lagrange 계수의 생성을 포함할 수 있다.
일례로서, 암호화 장치(502)는, 참여 지원 장치(50) 각각에 대한 비밀 S에 대해 Lagrange 계수 λ i,S 를 결정할 수 있다. 암호화 장치(502)는 그 다음 암호화 키 씨드 y로 결정할 수 있고, 여기서 h i 는 부분 연산이고 λ i,S 는 계산된 Lagrange 계수이다. Lagrange 계수로 상승된 부분 연산을 중간 연산이라고 지칭할 수 있다.
단계(518)에서, 암호화 장치(502)는 키 생성 씨드에 기반하여 암호화 키를 생성한다. 이는 AES 키와 같은 대칭 키일 수 있으며, "aes-128-ctr" 키 생성기와 같은 임의 수의 키 생성 알고리즘을 사용하여 생성될 수 있다.
단계(520)에서, 암호화 장치(502)는, 인증 암호를 생성하기 위해 단계(518)에서 생성된 암호화 키를 사용하여 보증 수준, 사용자 식별 정보 및 무작위 임시값을 암호화할 수 있다.
상기 설명은, 인증 암호를 생성하기 위해 암호화 장치(502) 및 참여 지원 장치(504)에 의해 다중 당사자 연산이 수행될 수 있는 방법의 비제한적인 예시로만 의도된다.
다음 하위 섹션은 장치 참여에 대해 자세한 내용을 설명하고, 상이한 참여 모델, 및 장치 참여와 보증 수준 간의 연관성을 포함한다.
A. 바이너리 장치 참여
구현예는 다수의 지원 장치 참여 모델을 구축할 수 있다. 일례로서, 바이너리 참여 모델에서, 각각의 지원 장치는 단일 비밀 공유분을 보유할 수 있다. 각 지원 장치는 해당 비밀 공유분, 파생 값 또는 부분 연산을 암호화 장치에 송신함으로써, 다중 당사자 연산에 참여할 수 있다. 지원 장치는 비밀 공유분을 송신하지 않음으로서 참여를 거부할 수 있다. 바이너리 참여 모델의 이점은 단순성과 공정성이며, 지원 장치는 다른 지원 장치보다 더 많은 공유분 또는 파생 값을 제공할 수 없기 때문에, 따라서 다른 지원 장치가 참여하기로 선택하지 않는 경우, 다른 지원 장치는 암호화 작업을 통과시킬 수 없다. 바이너리 참여는 도 6을 참조하여 더 잘 이해될 수 있다.
도 6은 지원 장치(602, B 604, 606, 608) 및 암호화 장치(610)를 포함하는 시스템(600)의 블록도를 나타낸다. 도 6의 각각의 지원 장치는 단일 비밀 공유분을 보유한다.
도 6에서, 각각의 지원 장치는 자체 참여 상태를 갖고, 해당 지원 장치가 암호화 장치(610)와 함께 다중 당사자 연산에 참여할 것인지 여부를 나타낸다. 참여 상태(601)는 지원 장치(602)에 대응하고, 참여 상태(603)는 지원 장치(604)에 대응하고, 참여 상태(605)는 지원 장치(606)에 대응하고, 참여 상태(607)는 지원 장치(608)에 대응한다. 참여 결정은 체크 표시로 표시되는 반면, 참여하지 않기로 결정한 결정은 "x"로 표시되어 있다. 주어진 지원 장치는 보안 평가에 기반하여 참여하기로 결정할 수 있고, 보안 평가에 대한 섹션을 참조하기 바란다. 도 6의 지원 장치(602, 606, 608)는 다중 당사자 연산에 참여하는 것으로 나타나 있고, 각각의 참여 상태(601, 605, 607)는 체크 마크로 표시된다. 이들 지원 장치는, 보안 평가 동안에 인증 암호가 합법적인 목적을 위해 생성되는 것으로 결론을 내릴 수 있고, 그 결과 참여하기로 결정을 내릴 수 있다. 지원 장치(604)는 연산에 참여하지 않는 것으로 나타나 있다. 지원 장치(604)는, 보안 평가 동안에 인증 암호가 불법적인 목적을 위해 생성되는 것으로 결론을 내릴 수 있고, 그 결과 참여하지 않기로 결정을 내릴 수 있다.
도 6에서, 참여 장치와 암호화 장치(610) 사이에 키로 표시된 비밀 공유분, 부분 연산, 또는 파생 값의 송신으로서 참여를 나타낸다. 이들 비밀 공유분 또는 부분 연산은, 암호화되거나 비 암호화된 형태로, 네트워크를 통해 직접 또는 간접적으로, 또는 프록시 또는 허브 장치를 통해, 암호화 장치(610)로 송신될 수 있다.
암호화 장치(610)는 이들 비밀 공유분 또는 부분 연산을 수집하고 이를 일부 방식으로 조합할 수 있다. 일례로서, 암호화 장치(610)가 비밀 공유분을 수신하는 경우, 이들 비밀 공유분을 조합하여, 메시지를 암호화해서 암호를 생성하기 위해 키로 사용될 수 있는 비밀을 재생성할 수 있다. 다른 예로서, 암호화 장치(610)는 소정의 방법에 따른 부분 연산을 조합하여, 유사 무작위 기능의 분배를 사용하는 것과 같이, 암호화 키를 생성할 수 있다.
지원 장치(604)의 참여 및 그에 상응하는 비밀 공유분 또는 부분 연산이 없더라도, 다중 당사자 연산을 완료하는 것이 가능할 수 있다. 시스템(600)은 Shamir의 비밀 공유와 같은 임계치 기반의 비밀 공유 방식을 사용할 수 있다. 이러한 방식은, 지원 장치의 임계 수가 비밀 공유분 또는 부분 연산을 제공하는 경우, 부분 연산을 기반으로 한 비밀 값 또는 암호화 작업의 재구성을 가능하게 할 수 있다. 이들 임계치 방식을 "m/n"으로서 지칭할 수 있고, 여기서, 비밀 공유분 총 수 n에 대해 m은 공유 비밀 또는 비밀 값을 재생성하기 위해 필요한 비밀 공유분, 파생 값 또는 부분 연산의 임계 수이다.
B. 부분 참여
부분 참여 모델은 바이너리 참여 모델에 대한 대안이다. 부분적 참여를 통해 각 지원 장치는 많은 비밀 공유분을 보유할 수 있다. 이 경우, 각 지원 장치는 하나 이상의 비밀 공유분, 파생 값 또는 부분 연산을 암호화 장치에 송신함으로써 참여할 수 있다. 송신된 비밀 공유분, 파생 값 또는 부분 연산의 수는 보안 평가 동안 해당 지원 장치에 의해 결정된 보증 수준에 비례할 수 있다. 지원 장치는 비밀 공유분을 일체 송신하지 않음으로써 참여를 거부할 수 있다. 부분 참여 모델의 이점은 유연성이다. 개별 지원 장치는 보증 정도에 따라에 참여할 수 있고, 즉 지원 장치가 더 확실하고 더 적은 비밀 공유분, 파생 값 또는 부분 연산을 제공한다면, 더 많은 비밀 공유분, 파생 값 또는 부분 연산을 제공할 수 있다. 이러한 방식으로, 암호화 장치에 의해 수신된 비밀 공유, 파생 값 또는 부분 연산의 수는 지원 장치에 의해 수행되는 전반적인 보안 평가를 더 잘 반영할 수 있다. 부분 참여 모델은 도 7을 참조하여 더 잘 이해될 수 있다.
도 7은 다수의 지원 장치를 포함하는 시스템(700)의 블록도를 나타내고, 지원 장치(702, 704, 706, 708)를 포함한다. 또한, 암호화 장치(710)가 나타나 있다. 도 7에서, 각각의 지원 장치는 키 기호로 표시된 4개의 비밀 공유분을 갖는다. 예시 목적상 4개의 비밀 공유분이 선택되었고, 지원 장치(702 내지 708)는 임의의 수의 비밀 공유분을 보유할 수 있다.
도 7에서, 각각의 지원 장치는 참여 상태를 갖는다. 참여 상태(701)는 지원 장치(702)에 대응하고, 참여 상태(703)는 지원 장치(704)에 대응하고, 참여 상태(705)는 지원 장치(706)에 대응하고, 참여 상태(707)는 지원 장치(708)에 대응한다. 이 경우, 지원 장치(702), 지원 장치(706) 및 지원 장치(708)는 다중 당사자 연산에 참여하기로 선택하고, 체크 표시 참여 상태(701, 705, 707)로 표시되며, 지원 장치(704)는 다중 당사자 연산에 참여하지 않고, "x" 참여 상태(703)로 표시된다.
참여 지원 장치는, 이들의 비밀 공유분, 비밀 공유분으로부터 파생된 값 또는 비밀 공유분에 대응하는 부분 연산을 암호화 장치(710)에 제공할 수 있다. 각 지원 장치는 다른 수의 비밀 공유분, 파생 값 또는 부분 연산을 제공할 수 있다. 도 7에서, 지원 장치(702)는 2개의 비밀 공유분을 제공하는 한편, 지원 장치(706)는 하나를 제공하고, 지원 장치(708)는 4개를 제공한다.
다중 당사자 연산에 참여하는 각각의 지원 장치는, 전술한 보안 평가 결과를 기반으로 다수의 비밀 공유분을 제공할 수 있다. 일례로서, 지원 장치(708)는 보안 평가에 기반하여, 인증 암호가 95%의 확률로 정당한 목적을 위해 생성되고 있음을 판단했을 수 있다. 지원 장치(708)는 그 결과, 그의 비밀 공유분 4개 모두를 제공할 수 있다. 예시를 계속하기 위해, 지원 장치(706)는 보안 평가에 기반하여, 인증 암호가 55% 확률로 정당한 목적을 위해 생성되고 있음을 판단했을 수 있다. 지원 장치(706)는 정당한 목적을 위해 인증 암호가 생성되고 있지 않음을 판단하였다. 그러나, 지원 장치(706)의 관점에서, 불법적인 목적을 위해 인증 암호가 생성될 상당한 기회가 있다. 지원 장치(706)는 이러한 판단을 반영하여 겨우 단일 비밀 공유분, 부분 연산 또는 파생 값만을 제공할 수 있다.
또한, 일부 지원 장치가 다른 지원 장치보다 더 많은 비밀 공유분을 보유할 수 있는 경우도 있을 수 있다. 일부 지원 장치가 다른 장치보다 신뢰할 수 있는 경우 또는 보안 평가에서 보다 정확할 경우에, 이러한 상황이 바람직할 수 있다. 예를 들어, 강력한 하드웨어 기반 보안을 가진 지원 장치는, 손상에 덜 취약할 수 있고 결과적으로 더 많은 비밀 공유분을 제공받을 수 있다. 마찬가지로, 고속 프로세서 및 RAM(임의 액세스 메모리)이 많은 장치는, 더 약하거나 덜 정교한 장치보다 보안 평가를 더 잘 수행할 수 있으며 더 많은 공유분을 위탁받을 수 있다. 또한, 장치는 다른 장치보다 더 많은 과거 이력 또는 기준 데이터를 가질 수 있고, 결과적으로 사기성 암호화 연산과 합법적인 암호화 연산을 더 잘 구별할 수 있다. 몇 년 동안 사용자가 소유한 스마트 워치는, 한 달 전에 구입한 랩톱보다 더 많이 인증 암호 생성의 부분일 수 있다.
C. 참여 및 보증 수준
암호의 보증 수준은 장치 참여와 관련될 수 있다. 암호화 장치에 의해 수신된 공유 비밀, 파생 값, 또는 부분 연산의 수에 따라, 암호화 장치는 서로 다른 보증 수준에 대응하는 암호를 상이하게 생성할 수 있다. 이는, 더 많은 지원 장치가 참여하기를 선택하거나 더 많은 수의 비밀 공유분을 제공하는 경우, 더 높은 보증 암호가 생성될 수 있고, 이는 지원 장치 사이에 컨센서스가 존재하고, 상기 암호는 아마도 합법적이라는 것을 복호화 장치에 표시한다. 장치 참여 및 보증 수준 사이의 연관성은 도 8을 참조하여 더 잘 이해될 수 있다.
도 8은 3개의 그룹을 갖는 블록도를 나타내며, 각 그룹은 상이한 보증 수준에 대응한다. 그룹(802)은 낮은 보증 수준에 대응하고, 그룹(810)은 중간 보증 수준에 대응하고, 그룹(818)은 높은 보증 수준에 대응한다.
그룹(802)은, 지원 장치(804), 암호화 장치(806) 및 복호화 장치(808)의 모음을 나타낸다. 다이어그램은, 암호화 장치(806)에 총 10개의 비밀 공유분 중 2개의 비밀 공유분 또는 파생 값(키 기호로 표시)을 송신하는 지원 장치(804)를 나타낸다. 암호화 장치(806)는 인증 암호를 생성하고 이를 복호화 장치(808)로 송신한다. 복호화 장치(808)는 인증 암호를 해독하고 보증 수준을 결정하며, 이 경우 낮은 보증 수준이다.
그룹(810)은, 지원 장치(812), 암호화 장치(814) 및 복호화 장치(816)의 모음을 나타낸다. 다이어그램은, 암호화 장치(814)에 총 10개의 비밀 공유분 중 5개의 비밀 공유분 또는 파생 값을 송신하는 지원 장치(812)를 나타낸다. 암호화 장치(814)는 인증 암호를 생성하고 이를 복호화 장치(816)로 송신한다. 복호화 장치(816)는 인증 암호를 해독하고 보증 수준을 결정하며, 이 경우 중간 보증 수준이다.
그룹(818)은, 지원 장치(820), 암호화 장치(822) 및 복호화 장치(824)의 모음을 나타낸다. 다이어그램은, 암호화 장치(822)에 총 10개의 비밀 공유분 중 8개의 비밀 공유분 또는 파생 값을 송신하는 지원 장치(820)를 나타낸다. 암호화 장치(822)는 인증 암호를 생성하고 이를 복호화 장치(824)로 송신한다. 복호화 장치(824)는 인증 암호를 해독하고 보증 수준을 결정하며, 이 경우 높은 보증 수준이다.
상기 실시예가 3개의 보증 수준, 낮은, 중간, 및 높은 것으로 논의되었지만, 구현예는 임의의 수의 보증 수준을 제공할 수 있다.
다음 섹션은, 인증 암호를 해독하고 그 내용을 평가하며 암호화 장치를 인증하기 위해, 복호화 장치가 사용할 수 있는 프로세스에 대해 설명한다.
VII. 복호화 장치에 의한 인증
인증 암호가 일단 생성되면, 인증 암호는 복호화 시스템으로 송신될 수 있다. 복호화 시스템은 암호를 해독하고 암호화된 데이터를 평가할 수 있다. 복호화 장치는 평가에 기반하여 암호화 장치를 인증할 수 있다. 복호화 시스템이 수행하는 방법은 도 9를 참조하여 더 잘 이해될 수 있다.
도 9는, 인증 암호를 해독하고 기밀 정보를 처리하기 위한 복호화 시스템(904)에 의해 수행되는 방법(900)을 나타낸다. 상기 암호는, 도 4의 단계(420) 또는 도 5의 단계(520)에서 생성된 암호와 같이, 암호화 장치에 의해 생성된 암호일 수 있다.
단계(906)에서, 복호화 시스템(904)은 하나 이상의 복호화 장치에 걸쳐 복수의 비밀을 저장한다. 복호화 시스템(904)은 단일 복호화 장치 또는 다수의 복호화 장치를 포함할 수 있다. 대안적으로, 복호화 시스템(904)은 단일 복호화 장치, 및 지원 장치 모음을 포함할 수 있다. 이들 비밀은 "공유 비밀"일 수 있으며 해당 비밀 공유분을 가질 수 있다. 또한, 비밀은 특정 암호화 장치 또는 암호화 시스템과 연관될 수도 있다. 예를 들어, 암호화 시스템은 낮은, 중간 및 높은 보증 수준에 대응하는 세 개의 비밀을 가질 수 있으며, 이들 비밀에 대응하는 많은 비밀 공유분을 가질 수 있다. 복호화 시스템(904)은 동일한 비밀 세트를 보유하고, 암호를 암호화하고 해독하는 데 일관성 있게 한다. M/N 비밀 공유는, 암호를 암호화하기 위해 사용되는 M개 비밀 공유분의 동일한 조합이 암호를 해독하기 위해 필요함을 요구하지 않는다. 따라서, 복호화 시스템은, M개 비밀 공유분, 부분 암호화 값, 또는 부분 암호화 값으로부터 파생된 값의 다른 조합을 사용하여 암호를 해독할 수 있다. 암호화 시스템(902)과 연관된 비밀은, 예를 들어 복호화 네트워크(904)이 도 3의 위탁 외부 서버(302)인 경우, 보안 채널을 통해 복호화 네트워크(904)로부터 이전에 수신되었을 수 있다.
복호화 시스템(904)에 저장된 비밀은 상이한 보증 수준과 연관될 수 있다. 예를 들어, 제1 비밀은 높은 보증 수준에 해당할 수 있고, 제2 비밀은 낮은 보증 수준에 해당할 수 있다. 제1 보증 수준은 제2 보증 수준보다 높을 수 있다. 또한, 이들 비밀과 그에 대응하는 보증 수준은, 추가적으로 다수의 비밀 공유분에 대응할 수 있다. 예를 들어, 높은 보증 수준에 해당하는 비밀은, 낮은 보증 수준에 해당하는 비밀보다 더 많은 비밀 공유분을 필요로 할 수 있다.
단계(908)에서, 복호화 시스템(904)은 암호화 시스템(902)으로부터 인증 암호(또한 "암호"라고도 함)를 수신한다. 암호화 시스템(902)은 암호화 장치 및 하나 이상의 지원 장치를 포함할 수 있다. 암호화 시스템(902)은 도 1의 사용자 장치(102)의 모음과 유사할 수 있다. 이 암호는 전술한 방법을 사용하여 생성되었을 수 있고, 도 4의 단계(420) 또는 도 5의 단계(520)에서 생성된 암호와 실질적으로 유사할 수 있다.
단계(910)에서, 복호화 시스템(904)은 복수의 비밀 중 제1 비밀을 선택한다. 이는, 하나 이상의 복호화 장치의 보안 메모리로부터 하나 이상의 비밀 공유분을 검색하고 이들 비밀 공유분을 사용하여 제1 비밀을 생성하는 것을 포함할 수 있다. 제1 비밀은, 암호를 해독하기 위해 사용될 수 있는 암호화 키를 생성하는 데 사용될 수 있다. 제1 비밀은 제1 보증 수준에 해당할 수도 있다.
단계(912)에서, 복호화 시스템(904)은 암호를 암호화하는 데 제1 비밀을 사용하였음을 판단할 수 있다. 일부 구현예에서, 청구된 보증 수준은 암호와 연관된다. 복호화 시스템은 청구된 보증 수준(예: "높은 보증")을 해석하고, 청구된 보증 수준에 대응하는 제1 비밀을 사용하여 암호를 암호화하였는지를 판단할 수 있다. 대안적으로, 청구된 보증 수준이 암호와 연관되지 않는 경우, 제1 비밀을 사용하여 암호를 암호화하였는지 판단하는 단계는 제1 비밀로부터 생성된 암호화 키를 사용하여 암호를 해독하려고 시도하는 단계를 포함할 수 있다. 암호 해독 작업이 성공적이라면, 이때 제1 비밀을 사용하여 암호를 암호화하였다. 복호화 작업의 성공은 여러 방법으로 검증될 수 있다. 예를 들어, 암호를 생성하기 위해 데이터가 암호화되기 전에, 데이터는 문자 또는 값의 특정 시퀀스(예: "00000000" 또는 "SUCCESS")로 "패딩"될 수 있다. 이들 시퀀스가 무작위로 나타날 가능성은 극히 낮기 때문에, 암호 해독 작업이 성공적이었음을 나타낸다.
그렇지 않고 암호 해독 작업이 성공적이지 않다면, 제1 비밀을 사용하지 않고 암호를 암호화하였다. 이는 위와 유사한 방식으로 검증될 수 있다. 해독된 암호는 잘 정의된 형태를 가질 수 있고, 만약 해독된 암호가 이렇게 잘 정의된 형태로부터 벗어나는 경우, 이는 암호가 성공적으로 해독되지 않았음을 표시한다. 예를 들어, 해독된 모든 암호가 "00000000"으로 이끌면, 이 시퀀스로 이끌지 않는 해독된 암호는, 제대로 해독되지 않았다. 이 경우, 복호화 시스템(904)은 다른 보증 레벨에 대응하는 암호화 키와 같이, 제2 비밀로부터 파생된 암호화 키를 사용하여 암호를 해독하려고 시도할 수 있다. 복호화 시스템(904)은, 암호를 성공적으로 해독하거나 비밀이 부족해질 때까지, 보유한 각 비밀에 대응하는 각각의 암호화 키를 반복적으로 시도할 수 있다.
대안적으로, 복호화 시스템(904)은 "높은 보증"과 같이, 암호와 연관된 명시된 보증 수준을 수신했을 수도 있다. 이 보증 수준은 문자열, 예를 들어 "높은 보증" 또는 "낮은 보증"을 나타내는 메시지로서 송신될 수 있다. 이는 또한 코드로 송신될 수도 있다. 예를 들어, 암호화 시스템(902)은 8개의 비트를 암호의 앞부분에 첨부할 수 있다. 이들 8개의 비트는 서로 다른 보증 수준에 대응할 수 있다. 예를 들어, "00000001"은 매우 낮은 보증 수준에 대응할 수 있고 "11111111"은 매우 높은 보증 수준에 대응할 수 있다. 복호화 시스템(904)은 이들 비트를 분석하여 명시된 보증 수준을 결정하고, 그런 다음 암호에서 이들을 제거할 수 있다. 복호화 시스템(904)은, 명시된 보증 수준에 대응하는 비밀을 사용하여 암호화 키를 추가로 생성하고 해당 암호화 키를 사용하여 암호를 해독하려고 시도할 수 있다. 암호가 성공적으로 해독되면, 암호의 실제 보증 수준이 명시된 보증 수준과 일치한다. 일례로서, 제1 비밀에 해당하는 보증 수준은 "10001000"일 수 있다. 복호화 시스템(904)은, 이 보증 수준을 해석하고, 암호를 해독하고, 명시된 보증 수준이 제1 비밀에 대응하는 보증 수준과 동일한지 검증할 수 있다. 맞다면, 암호를 암호화하는 데 제1 비밀이 사용되었다.
단계(914)에서, 복호화 시스템(904)은 제1 비밀을 사용하여 암호를 해독할 수 있다. 이는, 암호화 키로서 제1 비밀을 사용하거나, 키 생성 알고리즘을 사용하여 암호화 키를 생성하기 위해 제1 비밀을 사용하는 것을 포함할 수 있다. 해독된 암호는 기밀 정보를 포함할 수 있다. 기밀 정보는 비교 보증 수준 및 사용자 정보를 포함할 수 있다. 비교 보증 수준은, 암호 보증 수준의 확인 또는 검증으로 사용될 수 있다. 사용자 정보는, 사용자를 유일하게 식별하는 정보, 예컨대 패스코드, 생체 인식 정보, 전화번호, 계정 번호 등을 포함할 수 있다. 사용자 정보는 암호화된 사용자 정보일 수 있다.
단계(916)에서, 복호화 시스템(904)은 제1 프로토콜에 따라 기밀 정보를 처리할 수 있다. 제1 프로토콜은, 암호화 시스템(902) 또는 암호화 시스템(902) 내의 암호화 장치를 인증하는 인증 프로토콜일 수도 있다. 예를 들어, 기밀 정보는 패스워드를 구성할 수 있으며, 기밀 정보를 처리하는 것은 패스워드가 저장된 패스워드와 일치하는지 검증하는 것을 포함할 수 있다. 대안적으로, 기밀 정보는 트랜잭션 세부 정보와 함께 결제 계좌 번호일 수 있다. 이 경우, 기밀 정보의 처리는, 결제 계좌 번호를 사용하여 트랜잭션을 수행하는 것을 포함할 수 있다. 다른 하나의 예로서, 복호화 시스템(904)이 웹 기반 이메일 서버인 경우, 기밀 정보를 처리하는 것은 기밀 정보와 연관된 이메일 계정을 결정하는 것을 포함할 수 있다.
제1 프로토콜은, 인증 암호에서 암호화된 보증 수준을 임계 보증 수준에 대해 비교하는 것을 포함할 수 있다. 예를 들어, 제1 프로토콜은, 보증 수준이 "중간" 보증 수준 이상일 경우에, 암호화 장치만을 인증하도록 허용할 수 있다. 보증 수준이 더 낮은 경우, 복호화 시스템(904)은 기밀 정보를 처리하는 것을 멈출 수 있거나, 오류 코드 또는 오류 메시지를 암호화 시스템(902)에 반환할 수 있다. 제1 프로토콜은 또한, 사용자 정보를 데이터베이스의 사용자 정보와 비교하는 것을 포함할 수 있다. 사용자 정보가 데이터베이스의 항목과 일치하고 보증 수준이 임계 보증 수준을 초과하는 경우, 복호화 시스템(904)은 암호화 시스템(902) 또는 암호화 장치를 인증할 수 있다.
인증의 결과는 복호화 시스템(904)의 특성에 따라 달라질 수 있다. 예를 들어, 복호화 시스템(904)이 웹 기반 이메일 서버인 경우, 인증은 암호화 장치가 해당 이메일 서버에서 이메일에 액세스할 수 있게 하는 결과를 가질 수 있다. 복호화 시스템(904)이 결제 처리 네트워크인 경우, 인증은 트랜잭션 또는 결제를 완료할 수 있다. 복호화 시스템(904)이 건물 액세스 단말기인 경우, 인증은 도어를 간단히 잠글 수 있다. 일반적으로, 인증은 위와 같지 않으면 위험할 작동 또는 이벤트 결과를 가질 수 있고, 인증과 관련하여 발생할 수 있는 복호화 시스템 및 대응하는 이벤트의 다른 예를 많이 갖는다.
VIII. 추가 구성
구현예는 지원 장치 및 암호화 장치의 다양한 구성을 제공하며, 이들 구성에 대응하는 다양한 방법을 제공한다. 도 10은 예를 들어, 지원 장치 및 암호화 장치의 블록도를 보여주며, 구현예를 더 잘 이해하기 위해 사용될 수 있다. 일반적으로, 도 10은, 지원 장치(1002, 1022)로부터 보안 데이터를 수신하고, 보안 평가(1012)를 수행하고, 암호화 엔진(1012)을 사용하여 암호를 생성하는, 암호화 장치(1010)를 나타낸다. 암호는, 자체 암호화 엔진(1006) 및 부분 암호화 값(1004)을 사용하여 제2 암호를 생성하는 지원 장치(1002)로 송신된다.
인증 요청자/지원 장치(1002)는 암호화 기능, 예컨대 암호화 다중 당사자 연산 및 암호화를 수행할 수 있다. 인증 요청자/지원 장치(1002)는 부분 암호화 값(1004), 암호화 엔진(1006) 및 보안 데이터(1008)를 보유한다.
인증 요청자는 인증 목적으로 암호를 요청한다. 예시적인 사용 사례에서, 인증 요청자는 랩톱과 같은 사용자 장치일 수 있으며, 전자 상거래와 같은 트랜잭션의 일부로서 사용될 수 있다. 이러한 사용 사례에서, 인증 요청자는, 트랜잭션 승인의 일부로서 복호화 시스템(예, 결제 처리 네트워크)에 의해 해독 및 분석될 수 있는 트랜잭션 암호를 요청할 수 있다.
암호화 엔진(1006)은 컴퓨터 판독가능 매체 상의 코드, 명령어 또는 프로그램일 수 있다. 암호화 엔진은, 암호를 생성하는 일부로서 암호화 기능을 수행하도록 구성된 특수 하드웨어일 수도 있다. 비록 인증 요청자/지원 장치(1002)가 지원 장치일지라도, 암호를 생성하는 일부로서 일부 암호화를 수행할 수 있다. 암호화 엔진(1006)은 암호를 생성하는 일부로서 부분 암호화 값(1004)을 사용할 수 있다. 부분 암호화 값은, 하나 이상의 비밀 공유분, 암호화된 형태의 하나 이상의 비밀 공유분, 하나 이상의 비밀 공유분으로부터 파생된 하나 이상의 부분 연산 또는 이들의 조합을 포함할 수 있다.
보안 데이터(1008)는, 지원 장치(1002)에 저장되거나 또는 그에 액세스할 수 있는 데이터베이스 또는 데이터의 다른 저장소일 수 있다. 또한, 일부 보안 데이터(1008)는, 인증/암호화 생성 요청 동안 또는 그 이전에, 지원 장치(1002)에 의해 생성될 수 있다. 일부 보안 데이터(1008)는 프록시 장치, 허브 장치, 또는 외부 보안 감사와 같은 외부 소스로부터 수신될 수 있다.
암호화 장치(1010)는 암호화 엔진(1012), 비밀 공유분 또는 부분 암호화 값(1014), 보안 데이터(1016), 보안 평가(1018)를 수행하기 위한 구성 요소 또는 코드, 및 센서(1020)를 포함할 수 있다. 암호화 엔진(1012)은 암호화 엔진(1006)과 실질적으로 유사할 수 있다. 보안 데이터(1016)는 별개 보안 데이터를 포함할 수 있지만, 유사한 보안 개념 또는 속성을 포함할 수 있다(섹션 V 참조). 또한, 부분 암호화 값(1014)은 부분 암호화 값(1004)과 동일하지 않지만, 부분 암호화 값은 모두 동일한 공유 비밀로부터 파생될 수 있다.
보안 평가 구성 요소(1018)는, 섹션 V에서 전술한 바와 같이, 보안 평가를 수행하기 위한 코드, 명령어, 또는 특화된 하드웨어를 포함할 수 있다. 암호화 장치(1010)는 인증 요청자/지원 장치(1002), 지원 장치(1022), 자체(보안 데이터(1016)를 통해) 및 센서(1020)로부터 보안 데이터를 수신할 수 있다. 센서(1020)는, 보안 평가(1018)에 사용될 수 있는 보안 데이터를 제공할 수 있다. 예를 들어, 암호화 장치(1010)는 생체 인식 센서(1020)를 갖는 스마트 폰일 수 있다. 사용자는, 생체 인식 센서(1020)를 통한 지문과 같은 생체 인식 입력을 요청받을 수 있다. 지문의 생체 인식 캡처는, 보안 평가(1018)의 일부로서 암호화 장치(1010)에 저장되거나 이에 액세스될 수 있는 생체 인식 또는 생체 인식 템플릿에 비교될 수 있다.
지원 장치(1022)는 보안 데이터(1024) 및 센서(1026)를 보유할 수 있다. 보안 데이터는, 보안 데이터 요소(1008, 1016)보다 별개 보안 데이터를 포함할 수 있다. 센서(1020)는, 보안 평가(1018)에 사용될 수 있는 보안 데이터를 제공할 수 있다. 예를 들어, 지원 장치는 펄스 센서(1026)를 갖는 스마트 워치일 수 있다. 펄스 센서는, 사용자의 펄스와 관련된 특성과 보안 데이타를 보안 평가(1018)에 제공할 수 있다. 펄스의 존재는 사용자가 암호가 생성되는 시점에 존재함을 암시한다.
인증 요청자/지원 장치(1002)는 보안 평가 요청을 생성할 수 있고, 상기 요청을 암호화 장치(1010)로 송신한다. 인증 요청자/지원 장치는, 단계(1028)에서 암호화 장치(1010)로 보안 데이터(1008)를 보낼 수 있다. 지원 장치(1022)는, 보안 데이터(1024)와 센서(1026)의 센서 데이터를 포함한 보안 데이터를 암호화 장치(1010)로 보낼 수 있다. 암호화 장치(1010)는, 보안 데이터 구성 요소(1016) 및 센서(1020)를 통해 그 자체로부터 보안 데이터를 추가로 수신할 수 있다.
인증 요청자/지원 장치(1002)가 개별 보안 평가를 수행하지 않는 것으로 나타나 있지만, 일부 구현예에서, 인증 요청자/지원 장치(1002)는 자체적인 보안 평가를 수행할 수 있다. 보안 평가 요청은 내부적일 수 있고, 즉 인증 요청자/지원 장치(1002)로부터 유래되고, 인증 요청자/지원 장치(1002)의 보안 평가 구성 요소에 의해 수신될 수 있다. 보안 평가 요청은 또한, 다른 지원 장치 및 암호화 장치, 예컨대 암호화 장치(1010) 및 지원 장치(1022)로 송신될 수 있다. 또한, 보안 평가를 수행하는 각 장치는 내부적으로(즉, 장치 자체에서) 보안 데이터를 수신할 수 있고, 보안 데이터 구성 요소(1016)로부터 보안 데이터를 수신하는 암호화 장치(1010)로 나타낸다.
섹션 V에 설명된 바와 같은 보안 데이터 외에, 보안 데이터는 또한 보안 데이터의 소스(즉, 인증 요청자/지원 장치(1002))를 식별하는 데 사용될 수 있는 정보를 포함할 수 있다. 보안 데이터는 또한, 인증 요청자/지원 장치(1002)를 인증하는 데 사용될 수 있는 정보를 포함할 수도 있다. 예를 들어, 보안 데이터는 여러 보안 속성을 포함할 수 있다. 보안 데이터의 소스를 식별하기 위해 이들 보안 속성을 사용할 수 있다. 예를 들어, 보안 속성은, 다른 지원 장치 또는 암호화 장치(1010) 상의 승인된 장치의 백색 목록과 같이, 기준 데이터와 비교될 수 있는 장치 식별자 또는 IP 주소를 포함할 수 있다. 또한, 보안 속성은, 인증 요청자/지원 장치의 인증에 사용될 수 있는 정보, 예컨대 서명된 디지털 인증서를 추가로 포함할 수 있다. 기준 데이터와 보안 속성을 비교하는 단계는, 암호화 장치(1010), 인증 요청자/지원 장치(1002), 또는 임의의 다른 지원 장치(1022)가 데이터를 수신하는 임의의 및 모든 장치의 아이덴티티를 결정하거나 식별하기 위한 임의의 적절한 인증 기능을 수행하는 단계를 포함할 수 있다. 보안 속성을 기준 데이터와 비교하는 것은, 보안 데이터를 보내는 장치가 적절한 인증서를 갖고 있음을 검증하는 단계, 예컨대 임의의 적절한 인증서 검증 방법을 사용하여 공개 키 인증서를 검증하는 것을 포함할 수 있다.
암호화 장치(1010)는, 수집된 보안 데이터를 사용하여 보안 평가(1018)를 수행할 수 있고, 다중 당사자 연산에 참여하기로 결정할 수 있다. 암호화 장치(1018)는 자체 부분 암호화 값(1014)을 암호화 엔진(1012)에 송신할 수 있다. 일부 구현예에서, 부분 암호화 값은 암호화 장치(1010) 상의 암호화 엔진(1012)보다는, 암호화 엔진(1006)과 같은 다른 장치 상의 암호화 엔진으로 송신될 수도 있다. 대안적으로, 부분 암호화 값은, 암호화 엔진(1006) 및 암호화 엔진(1012)과 모두와 같이, 하나 이상의 암호화 엔진으로 송신될 수도 있다.
암호화 엔진(1012)은 부분 암호화 값(1014)을 사용하여 다중 당사자 연산을 통해 암호를 생성할 수 있다. 암호는, 복호화 시스템에 의해 처리될 수 있는 보증 수준 및 사용자 정보 또는 기밀 정보를 포함할 수 있다. 암호는, 단계(1032)에서 인증 요청자/지원 장치(1002)로 송신될 수 있다.
인증 요청자/지원 장치(1002)는 암호화 엔진(1006)에서 제1 암호를 수신할 수 있다. 인증 요청자/지원 장치(1002)는 자체 부분 암호화 값 및 제1 암호화를 사용하여 제2 암호를 생성할 수 있다. 단계(1034)에서, 인증 요청자/지원 장치(1002)는 인증 요청의 일부로서 생성된 암호를, 예를 들어 암호를 해독하고 보증 수준을 결정하고 암호에서 기밀 정보를 처리할 수 있는 복호화 시스템으로 송신할 수 있다. 암호는, 암호와 연관된 청구, 예컨대 청구되거나 명시된 보증 수준, 위험 요인 또는 청구와 관련된 신뢰 점수와 함께 송신될 수 있다.
특히, 일부 지원 장치(예, 지원 장치(1022))는, 암호화 작업을 실행시키거나 비밀 공유분을 제공하거나, 암호를 생성시킬 수 있는 구성 요소를 보유하지 않을 수 있다. 이들 지원 장치는, 암호화 장치와 다른 지원 장치에 보안 데이터를 제공함으로써, 보안 평가에 계속 참여할 수 있다. 마찬가지로, 지원 장치는 여전히 암호화 또는 암호 생성 기능을 수행할 수 있고, 예컨대 지원 장치의 부분 암호화 값과 수신된 암호에 기반하여 신규 암호를 생성할 수 있다. 일부 구현예에서, 지원 장치는 각각 차례로 암호를 수신할 수 있고, 자신의 부분 암호화 값을 암호에 제공할 수 있고, 최종 암호를 다음 지원 장치에 제공할 수 있고, 결국 인증 요청자가 복호화 시스템으로 송신할 수 있는 암호를 생성할 수 있다.
IX. 컴퓨터 시스템
본원에서 언급된 컴퓨터 시스템은 임의의 적절한 수의 서브시스템을 이용할 수 있다. 이러한 서브시스템의 예는 도 11의 컴퓨터 장치(1100) 내에 나타나 있다. 일부 구현예에서, 컴퓨터 시스템은 단일 컴퓨터 장치를 포함하고, 여기서 서브시스템은 컴퓨터 장치의 구성 요소일 수 있다. 다른 구현예에서, 컴퓨터 시스템은 내부 구성 요소와 함께 다중 컴퓨터 장치를 포함할 수 있고, 각각은 서브시스템이다.
도 11에 나타낸 서브 시스템은 시스템 버스(1105)를 통해 상호 연결된다. 프린터(1104), 키보드(1108), 저장 장치(들)(1109), 디스플레이이 어댑터(1111)에 결합되는 모니터(1106), 및 기타 장치와 같은 추가 서브시스템이 나타나 있다. I/O 제어기(1001)에 결합하는 주변 장치와 입력/출력(I/O) 장치는, 입력/출력(I/O) 포트(1007)와 같이 당업계에 공지된 임의의 수의 수단(예, USB, FireWire®)에 의해 컴퓨터 시스템에 연결될 수 있다. 예를 들어, I/O 포트(1007) 또는 외부 인터페이스(1010)(예, 이더넷, 와이파이 등)는 인터넷, 마우스 입력 장치, 또는 스캐너 등의 광대역 네트워크에 컴퓨터 시스템(1000)을 연결하기 위해 사용될 수 있다. 시스템 버스(1005)를 통한 상호 연결은, 중앙 프로세서(1003)로 하여금 각 서브시스템과 통신시키고 시스템 메모리(1002) 또는 저장 장치(들)(1009)(예, 하드 드라이브 또는 광 디스크와 같은 고정형 디스크)로부터의 명령어 실행뿐만 아니라, 서브시스템 간의 정보 교환을 제어시킨다. 시스템 메모리(1002) 및/또는 저장 장치(들)(1009)는 컴퓨터 판독가능 매체를 구현할 수도 있다. 본원에서 언급된 임의의 데이터는 하나의 구성 요소로부터 다른 구성요소로 출력될 수 있고, 사용자에게 출력될 수 있다.
컴퓨터 시스템은, 예를 들어, 외부 인터페이스(1010)에 의해 또는 내부 인터페이스에 의해 함께 접속된 복수의 동일한 구성 요소 또는 서브시스템을 포함할 수 있다. 일부 구현예에서, 컴퓨터 시스템, 서브시스템, 또는 장치는 네트워크를 통해 통신할 수 있다. 이러한 경우, 하나의 컴퓨터는 클라이언트로서 간주될 수 있고 다른 컴퓨터는 서버로서 간주될 수 있으며, 각 컴퓨터는 동일한 컴퓨터 시스템의 일부일 수 있다. 클라이언트와 서버 각각은, 여러 시스템, 서브시스템, 또는 구성 요소를 포함할 수 있다.
설명된 임의 구현예는, 하드웨어(예를 들어, 주문형 집적 회로 또는 필드 프로그래머블 게이트 어레이)를 사용하고/사용하거나 일반적으로 프로그래밍 가능한 프로세서를 갖는 컴퓨터 소프트웨어를 사용하는 제어 로직의 형태로 모듈 방식으로 또는 통합 방식으로 구현될 수 있다는 점을 이해해야 한다. 본원에서 사용되는 바와 같이, 프로세서는, 단일 회로 기판 상의 또는 네트워크화된, 싱글 코어 프로세서, 동일한 집적 칩 상의 멀티 코어 프로세서, 또는 다수의 처리 유닛을 포함한다. 당업자는, 본원에 제공되는 교시와 개시 내용에 기초하여, 하드웨어 및/또는 하드웨어와 소프트웨어의 조합을 이용하여 설명된 구현예를 구현하기 위한 다른 방식 및/또는 방법을 알고 이해할 것이다.
본원에서 설명된 임의의 소프트웨어 구성요소 또는 기능은, 예를 들어, Java, C, C++, C#, Objective-C, Swift 등의 임의의 적절한 컴퓨터 언어, 또는 예를 들어 종래의 또는 객체 지향 기술을 사용하는 Perl 또는 Python 등의 스크립팅 언어를 사용하는 프로세서에 의해 실행되는 소프트웨어 코드로서 구현될 수 있다. 소프트웨어 코드는, 저장 및/또는 송신을 위해 컴퓨터 판독가능 매체 상에 일련의 명령어 또는 커맨드로서 저장될 수 있으며, 적절한 매체는, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 하드 드라이브 또는 플로피 디스크와 같은 자기 매체, 또는 콤팩트 디스크(CD) 또는 DVD(디지털 다기능디스크)와 같은 광 매체, 플래시 메모리 등을 포함한다. 컴퓨터 판독가능 매체는 이러한 저장 장치 또는 송신 장치의 임의의 조합일 수 있다.
이러한 프로그램은 또한, 인터넷 프로토콜을 포함한 다양한 프로토콜을 따르는 유선, 광, 및/또는 무선 네트워크를 통한 송신에 적합한 캐리어 신호를 사용하여 인코딩되고 송신될 수 있다. 이와 같이, 일부 구현예에 따른 컴퓨터 판독가능 매체는 이러한 프로그램으로 인코딩된 데이터 신호를 사용하여 생성될 수 있다. 프로그램 코드로 인코딩된 컴퓨터 판독가능 매체는, 호환 장치와 함께 패키징될 수 있고 또는 (예를 들어, 인터넷 다운로드를 통해) 다른 장치들과는 별도로 제공될 수 있다. 이러한 임의의 컴퓨터 판독가능 매체는, 단일 컴퓨터 제품(예를 들어, 하드 드라이브, CD, 또는 전체 컴퓨터 시스템) 상에 또는 내부에 상주할 수 있으며, 시스템 또는 네트워크 내의 상이한 컴퓨터 제품들 상에 또는 내부에 존재할 수 있다. 컴퓨터 시스템은, 본원에 언급된 결과들 중 임의의 결과를 사용자에게 제공하기 위한 모니터, 프린터, 또는 다른 적합한 디스플레이를 포함할 수 있다.
본원에서 설명되는 방법은, 단계를 수행하도록 구성될 수 있는 하나 이상의 프로세서를 포함한 컴퓨터 시스템으로 완전히 또는 부분적으로 수행될 수 있다. 따라서, 구현예는 본원에 설명된 임의의 방법의 단계를 수행하도록 구성된 컴퓨터 시스템에 관한 것일 수 있고, 각각의 단계 또는 각각의 단계 그룹을 수행하는 상이한 구성 요소를 잠재적으로 갖는다. 번호가 매겨진 단계로서 제시되지만, 본원에서 방법 단계는 동일한 시간에 또는 다른 순서로 수행될 수 있다. 또한, 이들 단계의 일부는 다른 방법으로부터의 다른 단계의 부분과 함께 사용될 수도 있다. 또한, 단계의 전부 또는 일부는 선택적일 수 있다. 또한, 임의의 방법의 임의의 단계는 모듈, 회로, 또는 이들 단계를 수행하기 위한 다른 수단으로 수행될 수 있다.
구체적 구현예의 특정 상세 내용은 구현예의 사상 및 범주를 벗어나지 않으면 임의의 적합한 방식으로 조합될 수도 있다. 그러나, 다른 구현예는 각각의 개별 양태 또는 이들 각각의 양태의 특정 조합에 관한 것일 수 있다. 예시적인 구현예의 전술은 예시 및 설명의 목적으로 제시되었다. 설명된 정확한 형태로 구현예를 제한하거나 하나도 빠뜨리는 것이 없도록 의도하는 것은 아니고, 상술한 교시 관점에서 많은 개조 및 변형이 가능하다. 구현예는 구현 원리 및 실제 응용을 가장 잘 설명하기 위해 선택되고 설명됨으로써, 당업자는 다양한 구현예 및 특정 용도에 맞는 이들 구현예에 대한 다양한 구현과 다양한 변형을 최대한 활용할 수 있게 한다.
단수("일", "하나", "특정한 하나")의 인용은 특정하게 반대로 나타내지 않는다면 "하나 이상"을 의미하는 것으로 의도된다. "또는"의 사용은 "포괄적인 또는"을 의미하기 위해 의도되며, 구체적으로 언급하지 않는 한 "독점적인 또는"을 의미하지 않는다.
본원에 언급한 모든 특허, 특허 출원, 간행물, 및 설명은 모든 목적을 위해 그 전체 내용이 참조로 포함된다. 어느 것도 종래 기술인 것으로 인정되지는 않는다.

Claims (22)

  1. 암호의 생성에 참여하기 위한 방법으로서, 상기 방법은,
    하나 이상의 지원 장치에 의해, 보안 평가 요청을 수신하는 단계(상기 요청은 상기 하나 이상의 지원 장치가 상기 암호를 생성하기 위한 다중 당사자 연산에 참여하기 위한 것이고, 상기 하나 이상의 지원 장치 각각은 하나 이상의 비밀 공유분으로부터 생성된 복수의 비밀 공유분 중 하나 이상의 비밀 공유분을 저장하며, 상기 하나 이상의 비밀 공유분은, 비밀 공유분 총 수 n개 중 m개의 비밀 공유분 모음이 공유된 비밀을 생성하기에 충분한 m / n 비밀 공유 체계를 사용하여 생성됨);
    상기 하나 이상의 지원 장치에 의해, 상기 보안 데이터를 제공하는 장치의 현재 상태에 대응하는 하나 이상의 보안 속성을 포함한 보안 데이터를 수신하는 단계;
    상기 하나 이상의 보안 속성에 기초하여, 상기 하나 이상의 지원 장치에 의해, 상기 다중 당사자 연산에 참여할지 여부를 결정하는 단계로서, 상기 결정 단계는 상기 하나 이상의 지원 장치 중 적어도 하나의 지원 장치에 의해 참여할지를 결정하는 단계를 포함하는 단계; 및
    상기 적어도 하나의 지원 장치가 참여하기로 결정하는 단계에 응답하여, 상기 적어도 하나의 지원 장치에 의해, 적어도 하나의 부분 암호화 값을 암호화 장치에 제공하는 단계를 포함하되,
    상기 적어도 하나의 부분 암호화 값은 상기 암호화 장치에 의해 사용되어 상기 다중 당사자 연산을 통해 상기 암호를 생성하도록 구성되고,
    상기 부분 암호화 값은 상기 하나 이상의 비밀 공유분을 포함하고, 적어도 하나의 부분 연산은 상기 하나 이상의 비밀 공유분 중 적어도 하나 또는 이들의 조합을 사용하여 유도되는, 방법.
  2. 제1항에 있어서, 상기 보안 데이터는,
    암호화 장치의 위치, 사용자 인증 위험 추정치, 사용자가 상기 암호화 장치와 같이 있는지 여부, 상기 암호를 생성하기 위한 목적, 상기 암호화 장치에서의 로컬 시각, 상기 장치에서의 로컬 시간, 및 상기 암호화 장치의 IP 주소로 이루어진 군 중 하나 이상을 포함하는, 방법.
  3. 제1항에 있어서, 기준 데이터는,
    상기 암호화 장치의 하나 이상의 이전 위치, 하나 이상의 이전 사용자 인증 위험 추정치, 사용자가 이전에 상기 암호화 장치와 같이 있었는지 여부, 하나 이상의 암호를 생성하기 위한 하나 이상의 이전 목적, 하나 이상의 암호를 생성했던 하나 이상의 이전 시각, 및 상기 암호화 장치의 하나 이상의 이전 IP 주소 중 하나 이상을 포함하는, 방법.
  4. 제1항에 있어서, 상기 다중 당사자 연산에 참여할지 여부를 결정하는 단계는,
    사기성 목적을 위해 상기 암호가 생성되는 가능성을 판단하는 단계;
    상기 가능성을 소정의 보증 레벨과 비교하는 단계; 및
    상기 가능성이 상기 소정의 보증 레벨 미만인 것에 응답하여 상기 다중 당사자 연산에 참여하기로 결정하는 단계를 추가로 포함하는, 방법.
  5. 제1항에 있어서,
    하나 이상의 다른 지원 장치로 상기 보안 데이터 요청을 송신하는 단계; 및
    상기 하나 이상의 다른 지원 장치로부터 상기 보안 데이터를 수신하는 단계를 추가로 포함하는, 방법.
  6. 제1항에 있어서, 상기 부분 암호화 값에 포함된 다수의 비밀 공유분은, 사기성 목적을 위해 상기 암호가 생성되는 가능성에 반비례하는, 방법.
  7. 제1항에 있어서, 상기 암호는 보증 레벨 및 사용자 정보 중 하나 이상을 포함하는, 방법.
  8. 제1항에 있어서, 상기 하나 이상의 보안 속성은 상기 보안 데이터의 소스를 식별하기 위해 상기 하나 이상의 지원 장치에 의해 사용되는 식별 데이터를 포함하고,
    상기 다중 당사자 연산에 참여할지 여부를 결정하는 단계는, 상기 식별 데이터를 사용하여, 상기 하나 이상의 지원 장치를 포함한 장치 그룹에서 피어가 되도록 상기 보안 데이터의 소스를 식별하는 단계를 추가로 포함하는, 방법.
  9. 제1항에 있어서, 상기 하나 이상의 보안 속성은 하나 이상의 서명된 디지털 인증서를 포함하고,
    상기 다중 당사자 연산에 참여할지 여부를 결정하는 단계는, 상기 서명된 디지털 인증서를 검증함으로써 상기 보안 데이터의 하나 이상의 소스를 인증하는 단계를 추가로 포함하는, 방법.
  10. 제1항에 있어서, 상기 다중 당사자 연산에 참여할지 여부를 결정하는 단계는,
    사기성 목적을 위해 상기 암호가 생성되는 가능성을 판단하는 단계;
    상기 가능성을 소정의 보증 레벨과 비교하는 단계; 및
    상기 가능성이 상기 소정의 보증 레벨 이상인 것에 응답하여 상기 다중 당사자 연산에 참여하기로 결정하는 단계를 포함하는, 방법.
  11. 암호를 생성하기 위한 방법으로서, 상기 방법은 암호화 장치에서 수행되고,
    보안 평가 요청을 하나 이상의 지원 장치에 송신하는 단계(상기 요청은 상기 하나 이상의 지원 장치가 상기 암호를 생성하기 위한 다중 당사자 연산에 참여하기 위한 것이고, 상기 하나 이상의 지원 장치는 하나 이상의 비밀 공유분으로부터 생성된 복수의 비밀 공유분 중 하나 이상의 비밀 공유분을 저장하며, 상기 하나 이상의 비밀 공유분은, 비밀 공유분 총 수 n개 중 m개의 비밀 공유분 모음이 공유된 비밀을 생성하기에 충분한 m / n 비밀 공유 체계를 사용하여 생성됨);
    상기 하나 이상의 지원 장치에 보안 데이터를 송신하는 단계;
    상기 하나 이상의 지원 장치 분 적어도 하나의 지원 장치로부터 적어도 하나의 부분 암호화 값을 수신하는 단계(상기 적어도 하나의 부분 암호화 값은 상기 적어도 하나의 지원 장치에 의해 저장된 하나 이상의 비밀 공유분에 기초하여 생성됨); 및
    상기 적어도 하나의 부분 암호화 값 및 상기 암호화 장치의 부분 암호화 값을 사용하여 상기 암호를 생성하는 단계를 포함하는, 방법.
  12. 제11항에 있어서, 상기 보안 데이터는, 상기 암호화 장치의 위치, 사용자 인증 위험 추정치, 사용자가 상기 암호화 장치와 같이 있는지 여부, 상기 암호를 생성하기 위한 목적, 상기 암호화 장치에서의 로컬 시각, 상기 하나 이상의 지원 장치에서의 로컬 시간, 및 상기 암호화 장치의 IP 주소 중 하나 이상을 포함하는, 방법.
  13. 제11항에 있어서, 상기 암호를 복호화 장치에 송신하는 단계를 추가로 포함하고, 상기 복호화 장치는 보증 레벨을 생성하기 위해 상기 암호를 해독하고, 상기 보증 레벨은, 상기 암호가 사기성 목적을 위해 생성되었을 가능성에 비례하는, 방법.
  14. 제11항에 있어서, 상기 암호는 암호화된 보증 레벨 및 암호화된 사용자 정보 중 하나 이상을 포함하는, 방법.
  15. 암호를 해독하는 방법으로서, 상기 방법은 복호화 시스템에 의해 수행되고,
    상기 복호화 시스템의 하나 이상의 복호화 장치 상에 복수의 비밀을 저장하는 단계(상기 복수의 비밀은 또한 암호화 시스템에 의해 저장되고, 상기 복수의 비밀 각각은 상이한 보증 레벨과 연관해서 상기 복호화 시스템에 의해 저장되고, 상기 암호화 시스템의 암호화 장치는 상기 복수의 비밀 중에서 상기 제1 보증 레벨보다 낮은 제2 보증 레벨에 대해 제2 비밀을 생성하는 것보다 제1 보증 레벨에 대해 제1 비밀을 생성하기 위해 더 많은 비밀 공유분을 제공함);
    상기 암호화 시스템으로부터 상기 암호를 수신하는 단계;
    상기 복수의 비밀 중에서, 특정 보증 레벨에 대응하는 비밀을 선택하여 상기 암호를 해독하는 단계;
    상기 비밀을 사용하여 정보를 얻도록 상기 암호를 해독하는 단계; 및
    상기 특정 보증 레벨에 대응하는 프로토콜에 기초하여 상기 정보를 처리하는 단계를 포함하는, 방법.
  16. 제15항에 있어서,
    상기 비밀을 선택하는 단계는 상기 제1 비밀을 선택하는 단계를 포함하고,
    상기 해독 단계는 상기 제1 비밀을 사용하여 기밀 정보를 얻도록 상기 암호를 해독하는 단계를 포함하고,
    상기 처리 단계는 제1 프로토콜에 기초하여 상기 기밀 정보를 처리하는 단계를 포함하는, 방법.
  17. 제16항에 있어서, 상기 암호화 시스템으로부터 상기 특정 보증 레벨을 수신하는 단계; 및
    상기 특정 보증 레벨을 상기 제1 보증 레벨과 비교함으로써 상기 제1 비밀이 상기 암호를 암호화하는 데 사용되었다고 결정하는 단계, 및 상기 비교에 기초하여 상기 특정 보증 레벨이 상기 제1 보증 레벨과 일치하는지 결정하는 단계를 추가로 포함하는, 방법.
  18. 제16항에 있어서, 상기 기밀 정보는 비교 보증 레벨 및 사용자 정보를 포함하고,
    제1 프로토콜에 따라 상기 기밀 정보를 처리하는 단계는, 상기 비교 보증 레벨을 소정의 임계 보증 레벨과 비교하는 단계, 및 상기 사용자 정보를 사용자 기록에 대해 비교하는 단계를 포함하는, 방법.
  19. 제16항에 있어서,
    상기 기밀 정보와 상기 제1 프로토콜에 기초하여 상기 암호화 시스템의 암호화 장치 중 하나를 인증하는 단계를 추가로 포함하는, 방법.
  20. 하나 이상의 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어는 컴퓨터 시스템에 의해 실행되는 경우에 상기 컴퓨터 시스템으로 하여금 제1항 내지 제19항 중 어느 한 항의 방법을 수행하게 하는, 매체.
  21. 제20항에 있어서, 상기 컴퓨터 시스템은 상기 비일시적 컴퓨터 판독가능 매체 상에 저장된 복수의 명령어를 수행하도록 구성된 프로세서를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  22. 제1항 내지 제19항 중 어느 한 항의 방법을 수행하도록 구성된 하나 이상의 프로세서를 포함하는 시스템.
KR1020237032128A 2018-03-29 2018-03-29 컨센서스 기반 온라인 인증 KR20230136708A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2018/025089 WO2019190522A1 (en) 2018-03-29 2018-03-29 Consensus-based online authentication
KR1020207030344A KR102582094B1 (ko) 2018-03-29 2018-03-29 컨센서스 기반 온라인 인증

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207030344A Division KR102582094B1 (ko) 2018-03-29 2018-03-29 컨센서스 기반 온라인 인증

Publications (1)

Publication Number Publication Date
KR20230136708A true KR20230136708A (ko) 2023-09-26

Family

ID=68058280

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237032128A KR20230136708A (ko) 2018-03-29 2018-03-29 컨센서스 기반 온라인 인증
KR1020207030344A KR102582094B1 (ko) 2018-03-29 2018-03-29 컨센서스 기반 온라인 인증

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207030344A KR102582094B1 (ko) 2018-03-29 2018-03-29 컨센서스 기반 온라인 인증

Country Status (6)

Country Link
US (2) US11522687B2 (ko)
EP (1) EP3777020B1 (ko)
KR (2) KR20230136708A (ko)
CN (1) CN111886828B (ko)
SG (1) SG11202009317SA (ko)
WO (1) WO2019190522A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018208118A1 (de) * 2018-05-23 2019-11-28 Robert Bosch Gmbh Verfahren und Vorrichtung zum Authentifizieren einer über einen Bus übertragenen Nachricht
KR20200100481A (ko) * 2019-02-18 2020-08-26 삼성전자주식회사 생체 정보를 인증하기 위한 전자 장치 및 그의 동작 방법
US11245680B2 (en) * 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
WO2021008797A1 (en) * 2019-07-16 2021-01-21 British Telecommunications Public Limited Company User authentication based on behavioural biometrics
WO2021025631A1 (en) * 2019-08-05 2021-02-11 Securify Bilisim Teknolojileri Ve Guvenligi Egt. Dan. San. Ve Tic. Ltd. Sti. A method for generating digital signatures
US11139962B2 (en) 2019-12-30 2021-10-05 THALES DIS CPL CANADA, Inc. Method, chip, device and system for authenticating a set of at least two users
US11799638B2 (en) * 2021-01-06 2023-10-24 Paypal, Inc. Shared cryptogram generation during multi-party digital token processing
CN114500072B (zh) * 2022-02-10 2024-01-26 数贸科技(北京)有限公司 报文数据的传输方法及系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070101401A1 (en) * 2005-10-27 2007-05-03 Genty Denise M Method and apparatus for super secure network authentication
CA2811923A1 (en) * 2010-09-21 2012-03-29 Actividentity, Inc. Shared secret establishment and distribution
TW201417598A (zh) 2012-07-13 2014-05-01 Interdigital Patent Holdings 安全性關聯特性
EP2904759B1 (en) * 2013-01-08 2020-05-27 Bar-Ilan University A method for providing security using secure computation
US8904195B1 (en) * 2013-08-21 2014-12-02 Citibank, N.A. Methods and systems for secure communications between client applications and secure elements in mobile devices
GB201407863D0 (en) * 2013-10-30 2014-06-18 Barclays Bank Plc Transaction authentication
US10396984B2 (en) * 2014-05-02 2019-08-27 Barclays Services Limited Apparatus and system having multi-party cryptographic authentication
WO2016033610A1 (en) * 2014-08-29 2016-03-03 Visa International Service Association Methods for secure cryptogram generation
US9577829B1 (en) * 2014-09-03 2017-02-21 Amazon Technologies, Inc. Multi-party computation services
WO2016105553A1 (en) 2014-12-26 2016-06-30 Interdigital Patent Holdings, Inc. Continuous device/uicc based authentication for lte systems
CN114282928A (zh) * 2016-02-23 2022-04-05 恩链控股有限公司 基于区块链系统结合钱包管理系统的加密密钥存储和转移
CA3014929A1 (en) * 2016-03-15 2017-09-21 Visa International Service Association Validation cryptogram for interaction
US20170289134A1 (en) * 2016-03-30 2017-10-05 Ping Identity Corporation Methods and apparatus for assessing authentication risk and implementing single sign on (sso) using a distributed consensus database
US11063941B2 (en) 2016-05-13 2021-07-13 Nec Corporation Authentication system, authentication method, and program

Also Published As

Publication number Publication date
US20200412528A1 (en) 2020-12-31
EP3777020A1 (en) 2021-02-17
CN111886828A (zh) 2020-11-03
SG11202009317SA (en) 2020-10-29
WO2019190522A1 (en) 2019-10-03
US20230033988A1 (en) 2023-02-02
CN111886828B (zh) 2024-03-19
EP3777020B1 (en) 2023-12-13
US11522687B2 (en) 2022-12-06
KR20200127258A (ko) 2020-11-10
EP3777020A4 (en) 2021-03-31
KR102582094B1 (ko) 2023-09-22

Similar Documents

Publication Publication Date Title
KR102582094B1 (ko) 컨센서스 기반 온라인 인증
JP6941146B2 (ja) データセキュリティサービス
Syed et al. Zero trust architecture (zta): A comprehensive survey
JP6701364B2 (ja) パスワードなしのコンピュータログインのサービス支援モバイルペアリングのためのシステム及び方法
TWI578749B (zh) 用於遷移金鑰之方法及設備
CN106104562B (zh) 机密数据安全储存和恢复系统及方法
US20200202032A1 (en) Systems and methods for front-end and back-end data security protocols
JP2019531567A (ja) 装置認証のシステム及び方法
ES2753349T3 (es) Método, sistema de comunicación y producto de programa informático para autenticación biométrica y autorización
KR102549337B1 (ko) 생체인식 프로토콜 표준을 위한 시스템 및 방법
Derhab et al. Two-factor mutual authentication offloading for mobile cloud computing
JP2017524306A (ja) 暗号化操作における悪意のある変更に対する保護
Nimmy et al. A novel multi-factor authentication protocol for smart home environments
Yang et al. Cloud password manager using privacy-preserved biometrics
JP2022541919A (ja) バイオメトリックプロトコル標準に関するシステム及び方法
Ruoti et al. End-to-end passwords
Sagar et al. Measuring the security and reliability of authentication of social networking sites
Kim et al. Security analysis and bypass user authentication bound to device of windows hello in the wild
Ahamad et al. A secure and resilient scheme for telecare medical information systems with threat modeling and formal verification
Nguyen et al. A multi-factor biometric based remote authentication using fuzzy commitment and non-invertible transformation
US11621848B1 (en) Stateless system to protect data
US11528144B1 (en) Optimized access in a service environment
US20230155825A1 (en) Cryptographic device, system and method therof
US20230239154A1 (en) Secure communication of user device data
Yu et al. Authentication Methods Based on Digital Fingerprint Random Encryption IBC.

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination