KR20190143847A - 장치 검증 및 인증을 위한 시스템 및 방법 - Google Patents

장치 검증 및 인증을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20190143847A
KR20190143847A KR1020197034311A KR20197034311A KR20190143847A KR 20190143847 A KR20190143847 A KR 20190143847A KR 1020197034311 A KR1020197034311 A KR 1020197034311A KR 20197034311 A KR20197034311 A KR 20197034311A KR 20190143847 A KR20190143847 A KR 20190143847A
Authority
KR
South Korea
Prior art keywords
computing device
processor
data set
shared data
elements
Prior art date
Application number
KR1020197034311A
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 KR20190143847A publication Critical patent/KR20190143847A/ko

Links

Images

Classifications

    • 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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving 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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Collating Specific Patterns (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

컴퓨팅 장치를 인증하는 방법들을 구현하도록 구성된 방법들, 시스템들 및 컴퓨팅 장치들에서, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치는 동적으로 업데이트되는 공유된 데이터 세트를 공유할 수 있다. 제1 컴퓨팅 장치는 제1 컴퓨팅 장치에 저장된 공유된 데이터 세트의 요소들을 선택할 수 있고 공유된 데이터 세트에서 선택된 요소들을 추출하기 위한 규칙 세트를 생성할 수 있다. 제2 컴퓨팅 장치는 규칙 세트를 사용하여 공유된 데이터 세트에서 선택될 요소들을 추출할 수 있고, 제2 결과를 생성할 수 있으며, 제2 결과를 제1 컴퓨팅 장치로 송신할 수 있다. 제2 컴퓨팅 장치는 규칙 세트를 사용하여 공유된 데이터 세트에서 선택될 요소들을 추출할 수 있고, 제2 결과를 발생시킬 수 있으며, 제2 결과를 제1 컴퓨팅 장치에 전송할 수 있다. 제1 컴퓨팅 장치는 제1 결과가 제2 결과와 매칭하는지 여부에 기초하여 제2 컴퓨팅 장치의 인증 여부를 결정할 수 있다.

Description

장치 검증 및 인증을 위한 시스템 및 방법
관련 출원
본 출원은 2017년 4월 21일자로 출원된 "Systems and Methods for Device Verification and Authentication(장치 검증 및 인증을 위한 시스템 및 방법)"이라는 명칭의 미국 가 출원 제15/493,572호의 우선권을 주장하며, 애 내용 전체는 모든 목적을 위해 여기에 참고로 포함된다.
디지털 환경의 발전으로 무엇보다도 빠른 통신 및 정보 거래가 크게 확장되었다. 그러나, 이러한 새로운 환경에서 사용되는 보안 패러다임은 공유 비밀 개념과 신뢰 수반으로 오래된 것들이다. 공유 비밀의 패러다임은 사용자와 시스템 간의 통신을 보호하기 위해 수많은 방법으로 - 사용자명 및 비밀번호로부터 - 디지털 환경에 통합되어져 왔다. 예를 들어, 이러한 개념은 보안 소켓 계층(Secure Socket Layer), 인증 기관(Certificate Authority), 공개 키 정보 보호 인프라스트럭처의 기반이 된다.
그러나, 디지털 환경은 비밀을 단기간 이상 유지하기 어려운 환경이고, 일단 비밀 유지가 상실되면 이전의 비밀 정보가 빠르고 완전히 원본 그대로 확산될 수 있다. 디지털 환경은 또한 공유 비밀과 자격 증명이 많은 "비밀"(예를 들어, 비밀번호, 디지털 인증서, 개인 정보 및 기타 유형의 인증 데이터)을 준암시장 및 암시장에서 자유롭게 거래되는 상품으로 변형시켜, 디지털 교환을 보호하기 위한 그러한 비밀의 이익을 상쇄시키는 "해킹"의 주요 대상이 된 환경이다. 그러나, 디지털 환경의 기저의 보안 메커니즘은 비밀이 여전히 비밀이라는 이러한 잘못된 가정의 안전한 작동에 의존하는 것에 머무른다.
컴퓨팅 장치의 제시된 아이디의 검증은 수많은 전자 통신의 중요한 양태이다. 그러나, 공유 비밀의 취약성, 뿐만 아니라 전송 통신의 취약성은 신뢰할 수 있는 장치 아이디 검증을 위한 디지털 인증서 또는 기타 유사한 정보의 신뢰성과 보안을 크게 약화시킨다.
다양한 실시 예는 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간에 공유된 데이터 세트를 동적으로 변경하는 방법들을 포함한다. 다양한 실시 예는 데이터 세트 업데이트 트리거가 발생했는지 여부를 결정하는 단계, 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 단계, 생성된 상기 명령에 따라 상기 메모리에 저장된 상기 공유된 데이터 세트를 변경하는 단계, 및 생성된 상기 명령을 생성된 상기 명령에 따라 제2 컴퓨팅 장치의 상기 공유된 데이터 세트를 변경하도록 상기 제2 컴퓨팅 장치로 송신하는 단계를 포함할 수 있다.
몇몇 실시 예에서, 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 단계는 제1 상기 컴퓨팅 장치에 수신되는 데이터 입력들에 기초하여 상기 공유된 데이터 세트에 새로운 부분을 추가하기 위한 명령을 생성하는 단계를 포함할 수 있다. 몇몇 실시 예에서, 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 단계는 상기 공유된 데이터 세트의 일 부분을 없애기 위한 명령을 생성하는 단계를 포함할 수 있다. 몇몇 실시 예에서, 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 단계는 상기 공유된 데이터 세트를 재배열시키기 위한 명령을 생성하는 단계를 포함할 수 있다. 몇몇 실시 예에서, 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 단계는 상기 공유된 데이터 세트를 변형시키기 위한 명령을 생성하는 단계를 포함할 수 있다.
몇몇 실시 예에서, 상기 방법은 상기 메모리에 저장된 상기 공유된 데이터 세트에서 요소들을 선택하는 단계, 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하기 위한 규칙 세트를 생성하는 단계, 및 상기 규칙 세트를 상기 제2 컴퓨팅 장치로 송신하는 단계를 더 포함할 수 있다. 상기한 실시 예들에서, 상기 방법은 상기 선택된 요소들을 변형시켜 제1 결과를 생성하는 단계, 상기 제2 컴퓨팅 장치로부터 상기 규칙 세트에 기초한 제2 결과를 수신하는 단계, 상기 제1 결과가 상기 제2 결과와 매칭하는지 여부를 결정하는 단계, 및 상기 제1 결과가 상기 제2 결과와 매칭하는지 여부에 기초하여 상기 제2 컴퓨팅 장치의 인증 여부를 결정하는 단계를 더 포함할 수 있다.
다양한 실시 예는 컴퓨팅 장치들을 인증하는 방법들을 포함한다. 다양한 실시 예는 제1 컴퓨팅 장치의 프로세서에 의해, 상기 제1 컴퓨팅 장치에 저장되고 또한 상기 제2 컴퓨팅 장치에도 저장되는 공유된 데이터 세트에서 요소들을 선택하는 단계, 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하기 위한 규칙 세트를 생성하는 단계, 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 선택된 요소들을 변형시켜 제1 결과를 생성하는 단계, 및 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 규칙 세트를 상기 제2 컴퓨팅 장치로 송신하는 단계를 포함할 수 있다. 다양한 실시 예는 상기 제2 컴퓨팅 장치의 프로세서에 의해, 상기 제1 컴퓨팅 장치로부터 상기 규칙 세트를 수신하는 단계, 상기 제2 컴퓨팅 장치의 상기 프로세서에 의해, 상기 규칙 세트를 사용하여 상기 제2 컴퓨팅 장치에 저장된 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하는 단계, 상기 제2 컴퓨팅 장치의 상기 프로세서에 의해, 추출된 상기 요소들을 변형시켜 제2 결과를 생성하는 단계, 및 상기 제2 컴퓨팅 장치의 상기 프로세서에 의해, 생성된 상기 제2 결과를 상기 제1 컴퓨팅 장치로 송신하는 단계를 포함할 수 있다.
다양한 실시 예는 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 제1 결과가 상기 제2 결과와 매칭하는지 여부를 결정하는 단계, 및 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 제1 결과가 제2 결과와 매칭하는지 여부에 기초하여 제2 컴퓨팅 장치의 인증 여부를 결정하는 단계를 포함할 수 있다.
몇몇 실시 예에서, 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하기 위한 상기 규칙 세트를 생성하는 단계는 상기 공유된 데이터 세트에서 요소들을 선택하는 단계 이전에 수행될 수 있다. 몇몇 실시 예는 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 제1 결과가 상기 제2 결과와 매칭하는지 여부에 기초하여 상기 제2 컴퓨팅 장치의 인증 여부에 대한 표시를 상기 제2 컴퓨팅 장치로 송신하는 단계를 더 포함할 수 있다.
몇몇 실시 예에서, 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 제1 컴퓨팅 장치에 저장되고 또한 상기 제2 컴퓨팅 장치에도 저장되는 상기 공유된 데이터 세트에서 요소들을 선택하는 단계는 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 공유된 데이터 세트의 하나 이상의 부분을 선택하는 단계, 및 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 공유된 데이터 세트의 상기 하나 이상의 부분 중에서 두 개 이상의 요소를 선택하는 단계를 포함할 수 있다.
몇몇 실시 예에서, 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 제1 컴퓨팅 장치에 저장되고 또한 상기 제2 컴퓨팅 장치에도 저장되는 상기 공유된 데이터 세트에서 요소들을 선택하는 단계는 상기 두 개 이상의 요소 중 하나를 주요 요소로서 선택하는 단계를 포함할 수 있다.
몇몇 실시 예에서, 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하기 위한 규칙 세트를 생성하는 단계는 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 선택된 상기 두 개 이상의 요소 간 하나 이상의 관계를 결정하는 단계, 및 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 선택된 상기 두 개 이상의 요소 간에 결정된 상기 하나 이상의 관계에 기초하여 상기 규칙 세트를 생성하는 단계를 더 포함할 수 있다.
몇몇 실시 예에서, 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 규칙 세트를 사용하여 상기 제2 컴퓨팅 장치에 저장된 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하는 단계는 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 규칙 세트에 나타나는 상기 공유된 데이터 세트의 하나 이상의 요소를 식별하는 단계, 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 상기 규칙 세트에 나타나는 선택된 상기 두 개 이상의 요소 간 하나 이상의 관계를 식별하는 단계, 및 상기 제1 컴퓨팅 장치의 상기 프로세서에 의해, 식별된 상기 하나 이상의 요소 및 상기 하나 이상의 관계를 사용하여 상기 공유된 데이터 세트에서 상기 하나 이상의 요소를 추출하는 단계를 포함할 수 있다. 몇몇 실시 예에서, 상기 공유된 데이터 세트는 하나 이상의 임시 아이디를 포함할 수 있다.
다양한 실시 예는 위에서 요약된 상기 방법들의 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는 컴퓨팅 장치들을 더 포함한다. 다양한 실시 예는 위에서 요약된 상기 방법들의 동작들을 수행하도록 각각 구성된 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치를 포함하는 시스템을 더 포함한다.
여기에 포함되고 본 명세서의 부분을 구성하는 첨부 도면들은 본 발명의 예시적인 실시 예들을 도시하고, 위에서 제공된 발명의 내용 및 아래에 제공될 구체적인 내용과 함께 본 발명의 특징들을 설명하는 역할을 한다.
도 1a 내지 도 1c는 다양한 실시 예와 사용하는 데 적합한 통신 시스템의 구성요소 블록도들이다.
도 2는 다양한 실시 예와 사용하는 데 적합한 통신 장치의 구성요소 블록도이다.
도 3a는 다양한 실시 예에 따라 하나의 컴퓨팅 장치를 다른 컴퓨팅 장치에 인증하는 방법을 도시하는 프로세스 흐름도이다.
도 3b는 다양한 실시 예에 따라 하나의 컴퓨팅 장치를 다른 컴퓨팅 장치에 인증하는 다른 방법을 도시하는 메시지 흐름도이다.
도 3c는 다양한 실시 예에 따른 방법(300)의 부분으로서 제1 컴퓨팅 장치에 의해 실행되는 동작들의 방법(300a)을 도시한다.
도 3d는 다양한 실시 예에 따른 방법(300)의 부분으로서 제2 컴퓨팅 장치에 의해 실행되는 동작들의 방법(300b)을 도시한다.
도 3e는 다양한 실시 예에 따른 방법(300)의 부분으로서 제3 컴퓨팅 장치에 의해 실행되는 동작들의 방법(300c)을 도시한다.
도 4는 다양한 실시 예에 따른 공유된 데이터 세트를 동적으로 변경하는 방법(400)을 도시한다.
도 5는 다양한 실시 예에 따른 데이터 세트(500)의 부분들의 요소들 간 관계들을 도시한다.
도 6a 내지 도 6d는 다양한 실시 예에 따른 공유된 데이터 세트들(600a-600d)의 부분들의 요소들 간 관계들을 도시한다.
도 7은 다양한 실시 예에 따른 제1 컴퓨팅 장치에 의해 제2 컴퓨팅 장치를 인증하는 방법(700)을 도시한다.
도 8은 다양한 실시 예에 따른 방법(700)의 부분으로서 제1 컴퓨팅 장치에 의해 실행되는 동작들의 방법(800)을 도시한다.
도 9는 다양한 실시 예에 따른 방법(700)의 부분으로서 제1 컴퓨팅 장치에 의해 실행되는 동작들의 방법(900)을 도시한다.
도 10은 다양한 실시 예에 따른 방법(700)의 부분으로서 제2 컴퓨팅 장치에 의해 실행되는 동작들의 방법(1000)을 도시한다.
도 11은 다양한 실시 예에 따른 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치를 양방향으로 인증하는 방법(1100)을 도시한다.
도 12는 다양한 실시 예에 따른 제1 컴퓨팅 장치를 제2 컴퓨팅 장치에 인증하는 방법(1200)을 도시한다.
도 13은 다양한 실시 예에 따른 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치를 양방향으로 인증하는 방법(1300)을 도시한다.
도 14는 다양한 실시 예를 구현하는 데 적합한 모바일 무선 컴퓨팅 장치의 구성요소 블록도이다.
도 15는 다양한 실시 예를 구현하는 데 적합한 휴대형 무선 통신 장치의 구성요소 블록도이다.
도 16은 다양한 실시 예를 구현하는 데 적합한 서버 장치의 구성요소 블록도이다.
실시 예가 첨부한 도면들을 참조하여 상세하게 설명될 것이다. 가능하다면, 동일하거나 유사한 부분들을 참조하기 위해 도면들 전체에 걸쳐 동일한 참조 부호가 사용될 것이다. 특정 예들 및 구현 예들에 대한 언급은 예시를 위한 것이고, 본 발명의 범위 또는 청구범위를 제한하려는 것은 아니다.
다양한 실시 예는 통신 시스템에서 공유 비밀 및 정적 정보의 패러다임에 의존하지 않는 컴퓨팅 장치와 연관된 동적 정보에 기초하여 컴퓨팅 장치의 다른 컴퓨팅 장치에의 인증을 가능하게 하는 방법들 및 방법들을 구현하도록 구성된 컴퓨팅 장치들(또는 다른 디지털 또는 프로그램 가능 장치들)을 제공한다.
각각의 컴퓨팅 장치의 임시 아이디는 주기적으로 또는 비주기적으로 변화하고 각각의 컴퓨팅 장치는 다른 컴퓨팅 장치들과 주기적으로 또는 비주기적으로 통신하여 새로운 임시 아이디들을 송신 및/또는 수신하기 때문에, 다양한 실시 예는 통신의 보안을 개선함으로써 임의의 통신 네트워크 또는 임의의 전자 통신 시스템의 보안 기능을 개선한다. 다양한 실시 예는 또한 액세스 및/또는 복사에 의한 공격에 취약할 수 있는 공유 비밀과 같이 쉽게 손상된 정적 식별 정보에 의존하지 않고 참여 컴퓨팅 장치의 아이디를 신뢰성있게 인증함으로써 임의의 통신 네트워크의 보안 기능을 개선한다.
"컴퓨팅 장치"라는 용어는 다양한 실시 예 방법을 수행하기 위해 프로그램 가능한 명령으로 구성될 수 있은 임의의 프로그램 가능한 컴퓨터 또는 프로세서를 지칭한다. 컴퓨팅 장치는 개인용 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 셀룰러 전화기, 스마트 폰, 인터넷 가능 셀룰러 전화기, Wi-Fi 가능 전자 장치, PDA(personal data assistant), 웨어러블 컴퓨팅 장치(스마트 워치, 목걸이, 메달 및 착용하도록 구성되고 웨어러블 아이템에 부착되거나 웨어러블 아이템에 내장 됨), 무선 액세서리 장치, 메모리 스틱, 동글, 무선 주변 기기, 사물 인터넷(IoT) 장치, 네트워크 요소와 같은 네트워크 요소 서버, 라우터, 게이트웨이 등(소위 "클라우드"컴퓨팅 장치 포함) 및 근거리 무선 장치(예를 들어, Bluetooth, Peanut, ZigBee 및/또는 Wi-Fi 라디오 등)가 장착된 유사한 전자 장치 및/또는 광역 네트워크 연결(예를 들어, 무선 광역 네트워크 트랜시버 또는 통신 네트워크에 대한 유선 연결을 사용하여 통신하기 위해 하나 이상의 셀룰러 무선 액세스 기술을 사용). 여기에서 사용되는 용어 "정보 거래"는 참여 장치의 아이디가 인증될 수 있은 임의의 통신 또는 다른 정보 교환을 지칭한다. 일부 실시 예들에서, 여기에 기술된 방법들을 구현하도록 구성된 방법들 및 컴퓨팅 장치들은 건강 관리 기록 관리, 보안 통신(예를 들어, 정부, 의료 기기)과 같은 참여 장치들의 아이디가 인증될 수 있는 다양한 상황에서 구현될 수 있다. 비즈니스, 정보 커뮤니티 등), 공공 기록 관리 시스템, 투표 시스템, 금융 서비스 시스템, 보안 중개 시스템 및 기타 여러 가지. 일부 실시 예들에서, 여기에 설명된 방법들을 구현하도록 구성된 방법들 및 컴퓨팅 장치들은 IoT 장치들 및 IoT 장치들 및 라우터, 서버, IoT 허브 또는 다른 유사한 장치와 같은 IoT 장치 제어기 중에서 구현될 수 있다. 특히, IoT 환경에서 구현될 때, 다양한 실시 예는 사람의 개입없이 분산 서비스 거부(DDoS) 공격을 방지하는데 특히 사용될 수 있다. 일부 실시 예들에서, 여기에 설명된 방법들을 구현하도록 구성된 방법들 및 컴퓨팅 장치들은 자율 차량, 반 자율 차량 및 원격 지향 차량에서 구현될 수 있다. 일부 실시 예들에서, 여기에 설명된 방법들을 구현하도록 구성된 방법들 및 컴퓨팅 장치들은 정보 거래에서의 컴퓨팅 장치의 참여를 인증할 수 있다. 일부 실시 예에서, 여기에 기술된 방법을 구현하도록 구성된 방법 및 컴퓨팅 장치는 상업성 컴퓨팅의 맥락에서 구현될 수 있으며, 이는 특정 컴퓨팅 장치의 참여가 인증될 수 있기 때문에 부인할 수없는 상업성 트랜잭션의 성능을 가능하게 한이다 참가자는 나중에 거래에 참여하는 것을 거부할 수 없다(예를 들어, 카드가없는 금융 거래)."구성요소", "시스템"등의 용어는 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 실행중인 소프트웨어 또는 소프트웨어와 같은 컴퓨터 관련 엔티티를 포함하는 것으로 의도되며, 특정 작업이나 기능을 수행하도록 구성되어 있다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 프로세스, 객체, 실행 파일, 실행 스레드, 프로그램 및/또는 컴퓨터 일 수 있지만, 이에 제한되지는 않는다. 예를 들어, 무선 장치에서 실행되는 응용 프로그램과 무선 장치 자체는 모두 구성요소라고할 수 있다. 하나 이상의 구성요소는 프로세스 및/또는 실행 스레드 내에 상주할 수 있으며, 구성요소는 하나의 프로세서 또는 코어에 국한되고 /되거나 둘 이상의 프로세서 또는 코어 사이에 분배될 수 있다. 또한, 이들 컴포넌트는 다양한 명령 및/또는 데이터 구조가 저장된 다양한 비일시적 컴퓨터 판독 가능 매체로부터 실행될 수 있다. 컴포넌트는 로컬 및/또는 원격 프로세스, 기능 또는 프로 시저 호출, 전자 신호, 데이터 패킷, 메모리 읽기/쓰기 및 다른 알려진 컴퓨터, 프로세서 및/또는 프로세스 관련 통신 방법을 통해 통신할 수 있다.
무엇보다도 디지털 환경은 전 세계적으로 빠른 통신 및 정보 거래를 가능하게 한이다. 그러나 현재의 디지털 환경은 불안정한 보안 기반, 즉 정적 공유 비밀의 오래된 패러다임에 있다. 20 세기 후반까지 수천 년 동안 운영 한 순수한 인간 환경과 오늘날 운영하는 디지털 환경 사이에는 근본적인 차이점이 많이 있다.또한, 디지털 환경은 시간이 지남에 따라 비밀을 유지하기 어려운 환경이다. 보안이 손실되면 이전의 비밀 정보가 신속하고 완전 충실도로 확산되어 공격자가 사용할 수 있다. 디지털 시스템 보안의 고장으로 인해 대량의 데이터 유출이 발생하고 거의 일반화되었으며 발생 빈도가 가속화되었다. 실제로, 사이버 보안 산업의 출현은 디지털 환경 전반에 걸쳐 일반적으로 고유 한 보안 실패를 나타냅니다. 일례로, 아이디 사기와 같은 사이버 범죄는 가장 빠르게 성장하는 범죄 중 하나이며, 위협은 기능과 규모가 계속 가속화되고 있다. 스마트 폰, 웨어러블 컴퓨터, 게임 시스템, 사물 인터넷 장치 등을 포함한 네트워크 연결 장치의 확산은 디지털 보안 위험의 규모와 범위를 악화시키고 있다. 예를 들어, 이러한 장치 중 다수는 자체적으로 신뢰할 수 없거나 신뢰할 수없는 모바일 네트워크와 상호 작용하고 있으며 이러한 장치 중 친숙한 데스크톱 및 랩톱의 기존 보안 기능을 수행할 수 있은 컴퓨팅 성능을 갖춘 장치는 거의 없다.대부분의 위반 사고에서 신뢰 위반 또는 공유 비밀(예를 들어, 자격 증명)의 오용은 실패의 근원이다. 특정 보안 실패는 신뢰와 보안을 제공하는 데 사용된 기술의 강도 부족으로 인해 발생할 수 있지만 일반적으로 디지털 환경의 보안 실패는 다양한 기술 배포를 사용하는 다양한 산업에서 발생했다. 보안 장애는 전반적으로 발생하며 배포된 특정 기술뿐만 아니라 해당 응용 프로그램 및 사용에 고유 한 관행 및 절차에 기인한다. 따라서 디지털 환경의 보안 실패는 실패한 공유 비밀의 신뢰 패러다임의 근본 전략에서보다 근본적이고 고유 한 것으로 인해 발생한다.디지털 보안의 현재 패러다임은 최소한 세 가지 기본 이유로 실패한다.(1) 현재 패러다임은 신뢰를 기반으로하며 신뢰는 실패한다.(2) 현재 패러다임은 안정 또는 정적 공유 비밀을 기반으로하지만 비밀은 비밀로 유지되지 않으며 인증된 사용자만큼 공격자에게 유용하다. 그리고(3) 대부분의 정보 거래는 익명 당사자들 사이에 있다. 따라서 "신뢰할 수 있은 시스템"은 침투 가능하고 취약하기 때문에 작동하지 않는다. 더욱이, 현재의 "신뢰 시스템"은 시간(또는 기간)에 따라 변하지 않는 정적 또는 내구성 정보의 사용으로 인해 대부분 침투 및 악용에 취약하다. 정책 및 인적 요소의 실패(예를 들어, 사회 공학, 태만 등).또한, 컴퓨팅 장치의 취지된 아이디 확인은 수많은 전자 통신의 중요한 측면이다. 그러나 공유 비밀의 취약성과 전송 통신의 취약성은 신뢰할 수 있은 장치 아이디 확인을위한 디지털 인증서 또는 기타 유사한 정보의 신뢰성을 크게 약화시킵니다.본 출원에 개시된 다양한 실시 예는 디지털 시스템의 보안 취약성을 해결하고, 향상된 사용자 인증뿐만 아니라 장치 간 통신을위한 전자 보안을 제공한다. 다양한 실시 예는 디지털 인증서의 지속적인 리프레시 및 변경을 제공하기 위해 컴퓨터로 구현되는 방법을 제공한다. 다양한 실시 예는 신뢰할 수 있은 시스템이 궁극적으로 안전하지 않다는 가정을 포함한다. 이러한 시스템은 침투 가능하고 취약하기 때문이다. 다양한 실시 예는 적어도 디지털 환경이 본질적으로 신뢰할 수 없기 때문에 다양한 네트워크 요소들 사이에서 신뢰를 갖지 않는 디지털 통신 시스템을 제공한다. 사이버 보안 분야의 출현은 이러한 고유 한 실패에 대한 대응이다.
다양한 실시 예는 공격자에 의해 효과적으로 사용될 수없는 제한된 기간의 인증 정보를 생성 및 공유함으로써 장치가 네트워크상에서 인증되는 방식을 변화시킨다. 공통 위협 벡터는 일반적으로 인코딩된 인증 정보를 해독하기 위해 컴퓨팅 파워를 사용하는 것이 아니라 인증 정보의 도난이다. 다양한 실시 예들에서, 인증 정보가 사용될 수 있은 기간은 분의 기간과 같이 비교적 짧을 수 있다. 이는 기존의 인증 기관(CA)의 유효 유효 기간과 대조되는 경우도 있으며 일부 경우 최대 수십 년이 소요될 수도 있다. 일부 실시 예들에서, 인증 정보의 지속 기간은 공격자가 정보를 획득하고 이용하는 데 걸리는 시간보다 짧은 것으로 결정될 수 있다. 다양한 실시 예는 인증 정보가 잠재적으로 취약하고 공격자에 의해 획득될 수 있다는 가정에 기초하며, 인증 정보의 유효 기간은 공격자가 정보를 발견하고 악용하기 전에 인증에 대한 유용성이 만료되도록 결정될 수 있다. 예를 들어, 최신 컴퓨팅 능력에 기초하여, 무차별 대입을 사용하여 일반적으로 사용되는 암호화 해시(예를 들어, MD5, SHA2 등)를 해독하는데 필요한 시간이 결정될 수 있다. 다양한 실시 예들에서, 인증 정보의 유효 기간은 컴퓨팅 기술의 진보가 그러한 정보를 발견하고 해독하는데 요구되는 시간을 감소시킴으로써 변경될 수 있다. 일부 실시 예들에서, 시스템은 암호화된 정보를 해독하는데 필요한 결정된 시간보다 짧은 정보를 인증하기 위한 유효 기간을 결정할 수 있다.
인증 정보의 유효 기간이 상대적으로 짧으면 그러한 인증 정보가 추측, 액세스 또는 "해킹"될 수 있은 가능성을 수십 배 정도 감소시켜 시스템을 공격하는 수단으로 사용할 수 있다. 이러한 인증 정보를 사용하면 승인되지 않은 장치가 이전에 허용 가능한 사용자 이름과 암호, 인증서 또는 기타 액세스 자격 증명을 제시하더라도 시스템은 원하는 장치 만 승인하고 권한이없는 장치에 대한 액세스를 거부할 수 있다. 따라서, 다양한 실시 예는 기존의 보안 기술 및 구성요소가 합법적 인 사용자 로그인 자격 증명의 완벽한 사본을 획득 한 공격자에 의해 장치 또는 시스템에 대한 액세스를 배제할 수 있게 한이다. 다양한 실시 예는 클라우드 보안과 같은 일회성 비밀번호를 이용하는 다른 보안 애플리케이션뿐만 아니라 사물 인터넷(IoT) 장치를 포함하는 광범위한 장치에 적용될 수 있다. 분산된 서비스 거부(DDoS) 공격의 수행에서 모집을위한 공격 또는 종속의 대상 일 수 있은 컴퓨팅 장치와 같은 다양한 장치들 간의 통신을 인증하기 위해 다양한 실시 예들이 적용될 수 있다.다양한 실시 예에서, 컴퓨팅 장치는 양방향, 3- 방향 인증을 수행하는데, 여기서 각 컴퓨팅 장치는 주기적으로(또는 비주기적으로) 컴퓨팅의 동적 및/또는 정적 상태 양상(단독 또는 조합)을 사용하여 임시 "임시 아이디"를 생성한다. 장치. 각각의 컴퓨팅 장치에 의해 생성된 임시 아이디는 2 개 이상의 다른 컴퓨팅 장치에 의해 교환되고 인증될 수 있다. 임시 아이디는 해싱 기술, 업데이트된 키스톤, 업데이트된 트러스트 앵커, 클라이언트 인증서 매핑, Active Directory, 인터넷 정보 서비스(IIS) 클라이언트 인증서 매핑, 디지털 인증서, 신뢰할 수 있은 타사 및 기타 보안 메커니즘을 포함한 기존 보안 방법과 함께 사용될 수 있다. . 다양한 실시 예는 인증된 사용자의 자격 증명을 소유 한 인증되지 않은 사용자에 의해 컴퓨터 네트워크 또는 온라인 환경에 로그인하려는 시도와 같은 인증된 컴퓨팅 장치를 가장하려는 시도를 물리 칠 수 있다. 다양한 실시 예는 또한 임의의 네트워크상에서 임의의 종류의 디지털 장치 사이의 보안 통신을 제공할 수 있다. 따라서, 다양한 실시 예는 종래의 인증 기술의 일반적인 취약점을 제거하는 통신 네트워크상의 컴퓨팅 장치 사이에 안전하고 신용 가능하며 인증된 통신을 제공할 수 있다.다양한 실시 예들에서, 임시 식별은 컴퓨팅 장치 내의 센서에 의해 획득된 임시 식별 또는 동적 정보를 생성하는 컴퓨팅 장치의 하나 이상의 변화 또는 동적 상태에 적어도 부분적으로 기초하여 동적으로 생성될 수 있다(예를 들어, 카메라, 마이크, 가속도계 등). 일부 실시 예들에서, 컴퓨팅 장치는 자신의 임시 아이디를 생성할 수 있다. 일부 실시 예들에서, 인증 서버와 같은 다른 컴퓨팅 장치는 컴퓨팅 장치에 대한 임시 식별을 생성할 수 있고 임시 식별은 컴퓨팅 장치에 의해 서버로부터 당겨 지거나 다른 소스(예를 들어)로부터 획득될 수 있다 통신 네트워크를 통해).일부 실시 예들에서, 주어진 임시 아이디는 한 번만 사용될 수 있다. 이러한 실시 예에서, 사용된 임시 아이디는 이후 사용 불가능할 수 있다.다양한 실시 예에서, 시간은 임시 아이디의 중요한 요소이다. 예를 들어, 임시 아이디의 만료는 비밀이 유지될 것으로 예상될 수 있은 적당한 시간으로 제한될 수 있다. 다양한 실시 예들에서, 컴퓨팅 장치는 임시 아이디가 공격자가 임시 아이디를 추측 또는 획득하기 위해 요구되는 시간보다 짧은 시간 동안 유용한 임시 아이디의 시간 제한 또는 지속 시간을 결정할 수 있다. 보안 네트워크에 대한 액세스 또는 보안 트랜잭션 완료와 같은 성공적인 공격. 시간 제한 또는 시간 기간을 넘어서서, 임시 아이디는 임의의 컴퓨팅 장치의 인증에 사용 불가능할 수 있다. 임시 아이디의 지속 기간은 주어진 통신 세션(예를 들어, VPN 세션 또는 인터넷 쇼핑 및 구매 세션)의 지속 기간보다 짧을 수 있다. 이러한 상황에서, 통신 세션 동안 컴퓨팅 장치에 대해 새로운 임시 식별 정보가 생성될 수 있고, 오래된 임시 식별 정보가 만료된 후에 통신 세션 내에서 데이터 교환을 확보하는데 사용될 수 있다.
일부 실시 예에서, 임시 아이디를 생성하는데 사용되는 생성 컴퓨팅 장치의 동적 양태는 빈번하거나 연속적으로 변경되어 각 임시 아이디는 상이한(즉, 변경된) 데이터에 기초한다. 그러한 실시 예들에서, 각각의 생성된 임시 식별 정보는 임시 식별 정보가 생성될 때 생성 컴퓨팅 장치의 동적 상태의 "스냅 샷"을 나타내는 고유 데이터(데이터 스트링으로 표시될 수 있음)를 포함할 수 있다. 다양한 실시 예는 고유 동적 인증서를 생성하기 위한 기초로서 하나 이상의 지속적으로 변화하는 조건을 참조하여 생성된 고유 데이터(또는 고유 데이터 문자열)를 사용한다. 결과적으로 공격자는 위조 ID를 생성하려는 시도에서 임시 아이디를 생성하기 위한 근거를 발견하기가 매우 어렵다.일부 실시 예에서, 컴퓨팅 장치는 각각의 컴퓨팅 장치가 새로운 임시 아이디를 생성할 수 있은 시점을 정보를 교환하거나 타이밍을 협상할 수 있다. 일부 실시 예에서, 컴퓨팅 장치(예를 들어, 서버)는 다른 컴퓨팅 장치(예를 들어, 사용자 장치)에게 새로운 임시 아이디를 생성하도록 지시할 수 있다. 새로운 임시 아이디를 생성하는 그러한 조정은 확장된 디지털 통신 세션 동안 임시 아이디의 빈번한 변화를 가능하게할 수 있다.일부 실시 예들에서, 컴퓨팅 장치는 작은 단위의 정적 정보를 저장할 수 있은 임시 식별 모듈과 같은 모듈을 포함할 수 있다. 정보는 텍스트, 이미지, 생체 정보 등을 포함할 수 있다. 일부 실시 예에서, 컴퓨팅 장치는 동적 정보를 정적 정보와 결합하여 임시 아이디를 생성할 수 있다. 정적 정보에 동적 정보를 추가하면 작은 요소를 변경하여 전체 문자열 정보를 변경할 수 있다. 또한, 조합된 동적 정보 및 정적 정보의 해시는 전체 데이터 세트의 변경을 요구하지 않고 정적 정보 단독의 해시와 상이할 것이다.일부 실시 예들에서, 통신 시스템에 참여하는 각각의 컴퓨팅 장치는 임시 아이디를 생성할 수 있다. 각각의 참여 통신 장치는 생성된 임시 아이디를 인증 서버에 전송할 수 있고, 이는 인증된 실시간 서버의 아이디 정보의 저장소로서 기능할 수 있다. 예를 들어, 2 개의 엔드 포인트 컴퓨팅 장치(예를 들어, 제 1 컴퓨팅 장치 및 제 2 컴퓨팅 장치)는 각각 임시 아이디를 생성할 수 있고, 생성된 임시 아이디를 각각 다른 컴퓨팅 장치 및 인증 서버(예를 들어, 제 3 컴퓨팅 장치)로 전송할 수 있다 ). 일부 실시 예들에서, 제 1 컴퓨팅 장치는 제 1 컴퓨팅 장치가 제 2 컴퓨팅 장치로부터 수신된 임시 아이디를 포함하는 쿼리를 인증 서버에 전송하여, 인증 서버가 제 2 컴퓨팅 장치의 임시 아이디를 인증하도록 요청한다. 제 3 컴퓨팅 장치는 제 2 컴퓨팅 장치 및 제 1 컴퓨팅 장치 둘 다로부터 수신된 제 2 컴퓨팅 장치의 임시 아이디를 비교할 수 있다. 임시 아이디가 일치한다고 결정한 것에 응답하여, 제 3 컴퓨팅 장치는 제 2 컴퓨팅 장치의 인증 성공의 표시를 제 1 컴퓨팅 장치에 전송할 수 있다. 일부 실시 예들에서, 인증 성공의 표시는 중간자 공격을 물 리치도록 구성된 방법들을 사용하여 제 3 컴퓨팅 장치에 의해 전송될 수 있다. 다양한 실시 예에서, 제 3 컴퓨팅 장치는 금융 서비스 시스템, 보안 중개 시스템, 건강 관리 기록 관리 시스템, 비즈니스를위한 보안 통신 시스템, 정부, 정보 커뮤니티 등을 포함하지만 이에 제한되지 않는 다양한 애플리케이션에서의 저장소로서 기능할 수 있다. , 공공 기록 시스템(예를 들어, 총기 등록 소, 자동차 부서 등), 투표 시스템 및 사물 인터넷 장치 중.
임시 아이디가 일치하지 않는다는 결정에 응답하여, 제 3 컴퓨팅 장치는 제 2 컴퓨팅 장치의 인증 실패의 표시를 제 1 컴퓨팅 장치에 전송할 수 있다. 일부 실시 예들에서, 인증 실패의 표시는 중간자 공격을 물 리치도록 구성된 방법들을 사용하여 제 3 컴퓨팅 장치에 의해 전송될 수 있다.일부 실시 예에서, 인증 서버(제 3 컴퓨팅 장치)는 임시 아이디를 생성하고 제 3 컴퓨팅 장치 임시 아이디를 제 1 및 제 2 컴퓨팅 장치로 전송할 수 있고, 제 1 및 제 2 컴퓨팅 장치는 제 3 컴퓨팅 장치의 임시 아이디를 비교할 수 있고 제 3 컴퓨팅 장치의 아이디를 스스로 인증한다.일부 실시 예들에서, 제 3 컴퓨팅 장치는 그것의 임시 아이디와 함께 *?*또는 그것의 임시 아이디와 별개로, 새로운 임시 아이디를 생성하기 위해 다른 컴퓨팅 장치들(예를 들어, 제 1 및 제 2 컴퓨팅 장치들)에 명령을 전송할 수 있다. 다양한 실시 예들에서, 통신 시스템에 참여하는 각각의 컴퓨팅 장치는 새로운 임시 아이디를 주기적으로 또는 비주기적으로 생성할 수 있다. 진행중인 통신 세션 동안, 이러한 새로운 임시 아이디는 통신 세션을 확보하는 하나 이상의 현재 임시 아이디가 만료되기 전에 충분히 생성되어 두 컴퓨팅 장치 및 제 3 컴퓨팅 장치는 새로운 임시 아이디의 교환 및 인증을 완료할 수 있다 새로운 아이덴티티에 의해 통신 세션이 중단되지 않고 보호될 수 있도록. 일부 실시 예들에서, 다른 새로운 컴퓨팅 장치로부터 임시 아이디를 수신하는 각각의 컴퓨팅 장치가 임시 아이디를 한 번만(상호 작용, 인증, 처리, 해시 등) 사용할 수 있도록, 각각의 새로운 임시 식별 정보는 일회용으로 설정될 수 있다. 그 후 수신된 임시 아이디를 사용할 수 없게된다. 또한, 공격자가 임시 아이디를 획득하여 사용할 수 있은 시간보다 짧은 시간 동안 새로운 각각의 임시 아이디에 대한 수명이 설정될 수 있다.다양한 실시 예는 성공적인 공격 후 보안을 신속하게 복원하도록 동작할 수 있다. 다양한 실시 예들에서, 인증 서버 또는 시스템에 참여하는 다른 장치에 대한 성공적인 공격은 모든 유출된 자격 증명 정보가 이전에 만료될 것이기 때문에 공격자에게 지속적인 가치가 없기 때문에, 상당한 시간 동안 시스템 보안을 손상시키지 않을 것이다. 악용될 수 있다. 따라서 인증 서버를 공격하여 인증 시스템이 손상되지 않을 수 있다. 다양한 실시 예는 내구성 및 지속 가능하고 임의의 모든 구성요소가 성공적으로 공격 및 공격될 가능성이있는 환경에서 성공적으로 동작하는 통신 시스템을 제공한다.일부 실시 예들에서, 제 1 컴퓨팅 장치 및 제 2 컴퓨팅 장치는(예를 들어, MD5, SHA1 또는 SHA2와 같은 해싱 알고리즘을 사용하여) 이전에 공유된 데이터 해시에 기초하여 신뢰 관계를 확립할 수 있다. 이전에 공유된 데이터 해시는 예를 들어 저장되고 공유된 시간 기반 일회용 암호 알고리즘(예를 들어, 인터넷 엔지니어링 태스크 포스 RFC 6238, 임시 일회용 암호(TOTP) 등)으로부터 생성될 수 있다. 이러한 미리 공유된 데이터 해시는 제 1 컴퓨팅 장치 및/또는 제 2 컴퓨팅 장치의 메모리에 저장될 수 있다. 일부 실시 예에서, 제 2 컴퓨팅 장치가 제 1 컴퓨팅 장치로부터 사용자 이름 및 비밀번호와 같은 로그인 데이터를 수신할 때 정보 거래 세션 또는 통신 세션과 같은 세션을 개시할 수 있다. 계정 또는 세션 식별자. 그러한 실시 예들에서, 로그인 데이터는 계정 또는 세션을 식별하는데 사용될 수 있지만, 로그인 데이터는 통신 보안 또는 임의의 컴퓨팅 장치 또는 사용자의 인증을 위해 사용되지 않을 수 있다.
일부 실시 예들에서, 제 1 컴퓨팅 장치는 임시 아이디를 생성하고 로그인 데이터와 별도로 또는 로그인 데이터와 별도로 임시 아이디를 제 2 장치로 전송할 수 있다. 제 1 컴퓨팅 장치는 제 1 컴퓨팅 장치의 동적 및/또는 정적 측면에 기초하거나 그에 의해 결정된 임시 아이디를 생성할 수 있다. 일부 실시 예에서, 제 1 컴퓨팅 장치의 동적 측면은 클록 시간, 칩 상태, 레지스터 상태, 컴퓨팅 장치의 센서에 의해 수신되거나 검출된 정보와 같이 비교적 빠르게 변하는 제 1 컴퓨팅 장치의 측면을 포함할 수 있다( 예를 들어, 가속도계, 광학 센서, 온도, 습도 등), GPS(Global Positioning System) 장치로부터의 위치 정보 또는 Wi-Fi 신호 또는 제 1 컴퓨팅 장치의 동적 측면에 기초한 임의의 다른 데이터 소스. 일부 실시 예에서, 제 1 컴퓨팅 장치가 카메라에 의해 캡처된 이미지 또는 비디오 클립, 마이크에 의해 캡처된 주변 사운드의 사운드 클립, 카메라에 의해 캡처된 오디오 비디오 클립 및 마이크 또는 제 1 컴퓨팅 장치의 주변 환경 또는 주변 조건. 일부 실시 예들에서, 동적 양상들은 외부 센서들 및 외부 랜덤 정보 소스들과 같이 랜덤하고 자주 변경되는 다른 소스들로부터 획득될 수 있다.제 2 컴퓨팅 장치는 인증 서버 또는 인증 기관으로서 기능할 수 있은 제 3 컴퓨팅 장치에 인증 쿼리를 전송할 수 있다.일부 실시 예에서, 인증 쿼리는 제 1 컴퓨팅 장치에 의해 생성된 임시 아이디를 포함할 수 있다. 일부 실시 예에서, 인증 서버는 제 1 컴퓨팅 장치의 임시 아이디를 저장할 수 있다.제 2 컴퓨팅 장치로부터의 인증 질의에 기초하여, 제 3 컴퓨팅 장치는 인증 질의를 제 1 컴퓨팅 장치로 전송할 수 있다. 제 3 컴퓨팅 장치로부터의 인증 질의에 응답하여, 제 1 컴퓨팅 장치는 제 1 컴퓨팅 장치의 임시 아이디를 제 3 컴퓨팅 장치로 전송할 수 있다. 일부 실시 예들에서, 제 1 컴퓨팅 장치는 제 1 컴퓨팅 장치의 임시 아이디의 해시를 생성할 수 있고 제 1 컴퓨팅 장치의 임시 아이디의 생성된 해시를 제 3 컴퓨팅 장치로 전송할 수 있다.일부 실시 예들에서, 제 3 컴퓨팅 장치는 제 2 컴퓨팅 장치로부터 수신된 제 1 컴퓨팅 장치의 임시 아이디와 제 1 컴퓨팅 장치로부터 수신된 제 1 컴퓨팅 장치의 임시 아이디를 비교할 수 있다. 수신된 2 개의 임시 아이디가 일치한다고 결정한 것에 응답하여, 제 3 컴퓨팅 장치는 제 1 컴퓨팅 장치의 인증 성공 표시를 제 2 컴퓨팅 장치에 전송할 수 있다. 수신된 2 개의 임시 아이디가 일치하지 않는다는 결정에 응답하여, 제 3 컴퓨팅 장치는 제 1 컴퓨팅 장치 인증 실패의 표시를 제 2 컴퓨팅 장치에 전송할 수 있다.
일부 실시 예에서, 제 3 컴퓨팅 장치(예를 들어, 인증 서버)는 로그인 시도의 성공 및 실패에 대한 감사 추적을 유지할 수 있다. 일부 실시 예에서, 감사 추적은 예를 들어, 각각의 시도 시간, 제 1 및 제 2 컴퓨팅 장치(및 임의의 다른 참여 컴퓨팅 장치)의 식별자, 사용 빈도, 인증 실패 빈도 및 기타를 식별하는 메타 데이터를 포함할 수 있다. 세부. 감사 추적은 위험 분석에 사용될 수 있으며 대시 보드 또는 기타보고 메커니즘을 통해 표시 및/또는 액세스할 수 있다. 다양한 실시 예에서, 임의의 참여 컴퓨팅 장치는 감사 추적을 유지할 수 있다. 일부 실시 예에서, 임시 아이디의 사본은 감사 추적의 일부로서 저장될 수 있다. 이러한 저장된 임시 아이디는 인증 목적으로 사용되지 않을 수 있지만, 참여하는 컴퓨팅 장치를 식별하고 특정 컴퓨팅 장치에 의한 특정 정보 거래에서의 참여를 확인하기 위해 사용될 수 있다. 일부 실시 예들에서, 감사 트레일에 저장된 정보는 예를 들어 어떤 방식으로 공격을 겨냥한 컴퓨팅 장치를 식별하는데 사용될 수 있다.다양한 실시 예는 공유 비밀 및 정적 정보의 현재 패러다임과 대조적으로, 각 컴퓨팅 장치의 임시 및/또는 동적 정보에 기초하여 통신 시스템에서 컴퓨팅 장치의 아이디를 인증할 수 있은 시스템을 제공한다. 다양한 실시 예들에서, 참여 컴퓨팅 장치는 제 2 컴퓨팅 장치 및 제 3 컴퓨팅 장치(예를 들어, 인증 서버)로부터 수신될 수 있은 임시 임시 아이디를 사용하여 제 2 컴퓨팅 장치의 아이덴티티를 인증할 수 있다. 다양한 실시 예는 현재의 보안 패러다임과 대조되며, 이는 정적 인증서와 같은 정적 정보 단위를 비밀로 유지하는 것에 기초한다. 각각의 컴퓨팅 장치의 임시 아이디는 빈번하게 변화하고 각각의 컴퓨팅 장치는 새로운 임시 아이디를 송신 및/또는 수신하는 다른 컴퓨팅 장치와 주기적(또는 비주기적) 통신을하기 때문에, 다양한 실시 예는 임의의 통신 네트워크 또는 임의의 전자 통신 시스템의 기능을 향상시킨다 통신 보안을 개선함으로써 통신을 손상시키기 위해, 공격자는(최소한) 3 개의 통신 경로(예를 들어, 제 1 및 제 2 컴퓨팅 장치 사이, 제 1 및 제 3 컴퓨팅 장치 사이 및 제 2 및 제 3 컴퓨팅 장치 사이)를 동시에 그리고 동 기적으로 침투해야 한이다. 두 통신 장치 사이다양한 실시 예는 현재 존재하는 임의의 인프라의 실질적인 변경 또는 변경을 요구하지 않고 다양한 컴퓨팅 장치 및/또는 통신 네트워크 또는 시스템을 사용하여 구현될 수 있다. 다양한 실시 예는 또한 액세스 및/또는 복사에 의한 공격에 취약할 수 있은 공유 비밀과 같은 정적 식별 정보에 의존하지 않고 참여하는 컴퓨팅 장치의 아이디를 신뢰성있게 인증함으로써 임의의 통신 네트워크의 기능을 향상시킨다.다양한 실시 예들에서, 다양한 방법들을 수행하도록 구성된 컴퓨팅 장치는 컴퓨팅 장치의 도난 또는 복제의 경우에 시스템에 액세스하는 것이 인증 해제되거나 차단될 수 있다.다양한 실시 예와 관련된 추가 세부 사항은 2016 년 11 월 17 일에 출원된 "다경로 인증을위한 시스템 및 방법"이라는 제목의 미국 가출원 제 62/423,593 호 및 2016 년 12 월 30 일에 출원된 미국 특허 출원 제 15/395,336 호에 개시되어있다. 여기에 참고로 포함된다.
다양한 실시 예는 둘 이상의 컴퓨팅 장치에 대한 다중 경로 동적 인증을위한 시스템 및 방법을 포함한다. 다양한 실시 예는 동적으로 변화하는 공유 정보 컨텍스트를 이용함으로써 통신 네트워크상에서 컴퓨팅 장치의 검증을 향상시키고 향상시킨다. 정보 컨텍스트는 예를 들어 동적으로 변화하는 공유 데이터 세트를 포함할 수 있다. 일부 실시 예에서, 2 개의 컴퓨팅 장치는 예를 들어 전술 한 바와 같이 임시 아이디의 사본을 저장함으로써 시간에 따라 공유 데이터 세트를 컴파일할 수 있다. 일부 실시 예에서, 데이터 세트는 임의의 유형의 데이터 파일 또는 데이터 요소를 사용하여 시간에 따라 구축될 수 있다. 다양한 실시 예에서, 2 개의 컴퓨팅 장치는 사용자 장치, 네트워크 서버, 인증 서버 또는 다른 컴퓨팅 장치와 같은 컴퓨팅 네트워크 내의 임의의 2 개의 엔드 포인트 장치를 포함할 수 있다. 공유 데이터 세트는 시간이 지남에 따라 컴파일될 수 있고, 때때로, 주기적으로 및/또는 트리거링 이벤트가 발생할 때 컴퓨팅 장치에 의해 변경될 수 있다. 공유 데이터 세트를 변경 또는 변경하는 것은 데이터 세트의 하나 이상의 부분을 재정렬하고, 데이터 세트에 정보를 추가하고, 데이터 세트로부터 정보를 빼고 /거나 공유 데이터 세트의 하나 이상의 부분을 변환하는 것을 포함할 수 있다.공유 데이터 세트는 둘 이상의 부분을 포함할 수 있다. 데이터 세트의 각 부분은 둘 이상의 요소를 포함할 수 있다. 일부 실시 예에서, 컴퓨팅 장치는 공유 데이터 세트의 둘 이상의 요소 사이의 관계를 결정할 수 있다. 둘 이상의 요소들 사이의 관계는 시간 차이, 위치 차이, 위치 차이, 색 차이, 피치 차이, 주파수 차이 또는 다른 차이와 같은 둘 이상의 요소들 간의 비교 차이를 포함할 수 있다. 둘 이상의 요소들 사이의 관계는 또한 둘 이상의 요소들 각각과 상대 시간, 위치, 위치, 색, 피치, 주파수 또는 다른 차이와 같은 제 3 요소 사이의 비교 차이를 포함할 수 있다.일부 실시 예들에서, 공유 데이터 세트는 복수의 파일들을 포함할 수 있은 동적으로 변경된 복합 공유 데이터 세트 인 참조 동적 컨텍스트 데이터베이스(RDCBD)를 포함할 수 있다. 일부 실시 예에서, 복수의 파일은 복수의 이미지 파일을 포함할 수 있다. 다양한 실시 예들에서, 컴퓨팅 장치들은 RDCBD를 변경하기 위해 합의된 방법을 사용할 수 있어서, RDCBD는 시간이 지남에 따라 변하여 두 컴퓨팅 장치들이 동일한 공유 데이터 세트를 유지하면서 RDCBD를 변경할 수 있게 한이다. 일부 실시 예에서, 공유 데이터 세트를 변경하는 방법은 컴퓨팅 장치에 의해 미리 합의될 수 있다. 일부 실시 예에서, 공유 데이터 세트를 변경하는 방법은 컴퓨팅 장치에 의해 동적으로 합의될 수 있다(예를 들어, "즉석에서").일부 실시 예에서, 하나 이상의 컴퓨팅 장치는 보안 통신을 위해 각 사용자 장치를 인증하기 위해 사용될 수 있은 규칙 세트를 하나 이상의 다른 컴퓨팅 장치로 생성하여 전송할 수 있다. 규칙 세트는 공유 데이터 세트로부터 선택된 요소를 식별할 수 있다. 일부 실시 예들에서, 컴퓨팅 장치는 공유 데이터 세트의 선택된 요소들 사이 또는 그들 사이의 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다.
일부 실시 예에서, 하나 이상의 컴퓨팅 장치는 보안 통신을 위해 각 사용자 장치를 인증하기 위해 사용될 수 있은 규칙 세트를 하나 이상의 다른 컴퓨팅 장치로 생성하여 전송할 수 있다. 일부 실시 예에서, 제 1 컴퓨팅 장치는 공유 데이터 세트로부터 데이터를 선택할 수 있다. 선택된 데이터는 공유 데이터 세트의 하나 이상의 부분들 중에서 둘 이상의 요소를 포함할 수 있다. 제 1 컴퓨팅 장치는 선택된 데이터 요소들 사이의 하나 이상의 관계를 결정할 수 있다. 제 1 컴퓨팅 장치는 규칙 세트를 제 2 컴퓨팅 장치로 전송할 수 있다. 규칙 세트는 공유 데이터 세트로부터 선택된 요소를 식별할 수 있다. 일부 실시 예들에서, 컴퓨팅 장치는 공유 데이터 세트의 선택된 요소들 사이 또는 그들 사이의 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다.일례로서, 공유 데이터 세트는 둘 이상의 이미지 파일을 포함할 수 있고, 각각의 이미지 파일은 다수의 픽셀(화상 요소)을 포함할 수 있다. 각각의 이미지 파일은 타임 스탬프 또는 다른 시간 정보, 위치 정보 및/또는 이미지가 획득된 지리적 위치 정보, 날씨 정보 등과 같은 추가 데이터와 연관될 수 있다. 각각의 픽셀은 이미지의 좌표 위치, 색상, 강도, 광도 등과 같은 다수의 정보 요소와 연관될 수 있다. 각 픽셀은 또한 각각의 이미지 파일의 정보와 관련될 수 있다. 따라서, 각각의 픽셀은 다수의 정보 요소와 연관될 수 있으며, 이는 변수로 간주될 수 있다. 일부 실시 예들에서, 규칙 세트는 공유 데이터 세트의 하나 이상의 픽셀을 식별하는 정보를 포함할 수 있다. 일부 실시 예에서, 규칙 세트는 공유 데이터 세트의 하나의 픽셀을 식별하는 정보 및 식별된 제 1 픽셀 및 관계 정보를 사용하여 하나 이상의 다른 픽셀을 식별할 수 있은 관계 정보를 포함할 수 있다.그러나, 공유 데이터 세트는 이미지 파일로 제한되지 않으며, 식별 가능한 데이터 요소를 포함할 수 있은 데이터 및/또는 둘 이상의 데이터 요소 간의 관계가 결정될 수 있은 데이터를 사용하여 공유 데이터 세트가 생성 또는 컴파일될 수 있다. 이러한 데이터의 예는 비디오 파일, 오디오 파일, 생체 샘플, 위치 데이터(예를 들어, GPS(Global Positioning Satellite) 시스템 데이터) 등을 포함한다.일부 실시 예에서, 제 1 컴퓨팅 장치는 공유 데이터 세트의 선택된 요소 내의 정보를 사용하여 결과를 생성할 수 있다. 일부 실시 예에서, 생성된 결과는 일련의 데이터를 포함할 수 있다. 일부 실시 예들에서, 생성된 결과는 공유 데이터 세트의 선택된 요소들에서의 정보에 기초한 값을 포함할 수 있다. 일부 실시 예들에서, 제 1 컴퓨팅 장치는 정보의 값들의 해시를 생성하는 것과 같이 선택된 요소들의 정보의 변환을 수행할 수 있다. 일부 실시 예들에서, 제 1 컴퓨팅 장치는 선택된 엘리먼트들의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 엘리먼트들의 정보의 변환(예를 들어, 해시 생성)을 수행하여 제 1 결과를 생성할 수 있다.
다양한 실시 예에서, 공유 데이터 세트를 갖는 제 2 컴퓨팅 장치는 제 1 컴퓨팅 장치로부터 규칙 세트를 수신하고 규칙 세트 및 공유 데이터 세트를 사용하여 공유 데이터 세트로부터 데이터 요소를 추출할 수 있다. 예를 들어, 제 2 컴퓨팅 장치는 규칙 세트를 그의 RDCDB의 저장된 버전에 적용하여 픽셀들(예를 들어) 및 데이터 세트에서의 관련 위치 또는 데더, 색상, 밀도에 대한 수치 값 등을 식별할 수 있다. 장치는 규칙 집합의 응용 프로그램에서 데이터 문자열을 만들 수 있다. 일부 실시 예에서, 생성된 결과는 일련의 데이터를 포함할 수 있다. 일부 실시 예들에서, 생성된 결과는 공유 데이터 세트의 선택된 요소들에서의 정보에 기초한 값을 포함할 수 있다. 일부 실시 예에서, 제 2 컴퓨팅 장치는 정보의 값의 해시를 생성하는 것과 같이 선택된 요소의 정보의 변환을 수행할 수 있다. 일부 실시 예들에서, 제 2 컴퓨팅 장치는 선택된 엘리먼트들의 또는 그 내의 정보에 기초하여 데이터 스트링을 생성할 수 있고, 제 2 결과를 생성하기 위해 데이터 스트링의 변환(예를 들어, 해시 생성)을 수행할 수 있다. 제 2 컴퓨팅 장치는 생성된 제 2 결과를 제 1 컴퓨팅 장치에 전송할 수 있다.일부 실시 예에서, 제 1 컴퓨팅 장치는 제 2 컴퓨팅 장치에 의해 생성된 제 2 결과를 수신할 수 있고, 제 1 결과(제 1 컴퓨팅 장치에 의해 생성됨)와 제 2 결과(제 2 컴퓨팅 장치에 의해 생성되고 수신 됨)를 결정하여 결정할 수 있다. 결과가 일치하는지 여부 결과가 일치한다고 결정한 것에 응답하여, 제 1 컴퓨팅 장치는 제 2 컴퓨팅 장치가 인증된 것으로 결정할 수 있다. 제 1 컴퓨팅 장치를 인증 한 후, 제 2 컴퓨팅 장치는 데이터 교환 세션(예를 들어, 정보 거래)을 시작할 수 있다.일부 실시 예에서, 제 2 컴퓨팅 장치는 제 1 컴퓨팅 장치가 제 2 컴퓨팅 장치를 인증할 수 있게 하는 정보를 제 1 컴퓨팅 장치에 제공하기 위해 동일하거나 상이한 공유 데이터 세트를 사용할 수 있다. 예를 들어, 제 2 컴퓨팅 장치는 제 1 컴퓨팅 장치가 공유 데이터 세트로부터 결과를 획득하고 획득 및 수신된 결과를 비교하여 제 2 컴퓨팅 장치를 인증하기 위해 규칙 세트 및 결과를 제 1 컴퓨팅 장치에 전송할 수 있다. 비슷한 방식으로.다양한 실시 예들에서, 각각의 컴퓨팅 장치는 서로의 컴퓨팅 장치를 독립적으로 인증할 수 있다. 공유 데이터 세트(예를 들어, RDCDB)가 지속적으로 변하기 때문에, 특정 카피를 획득 한 공격자는 컴퓨팅 장치가 공유 데이터 세트를 변경하기 전에 획득된 데이터 세트를 사용할 수 없을 가능성이 높다. 인증을 무효화하기 위해서는 하나 이상의 컴퓨팅 장치 중 하나에 지속적으로 존재하는 적조차도 각 참여 컴퓨팅 장치 내에 동시에 존재해야 할 것이다. 다양한 실시 예들에서, 각각의 컴퓨팅 장치가 독립적으로 그리고 상호 컴퓨팅 적으로 다른 컴퓨팅 장치(들)를 인증하지 않는 한, 하나 이상의 컴퓨팅 장치는 다른 컴퓨팅 장치가 인증되지 않은 것으로 결정하고 인증되지 않은 컴퓨팅 장치와의 추가 통신을 방지할 수 있다.다양한 실시 예에서, 3 개 이상의 컴퓨팅 장치가 그룹 통신 세션을 확립할 수 있다. 일부 실시 예들에서, 각각의 컴퓨팅 장치는 그룹 통신 세션에서 서로의 다른 컴퓨팅 장치를 독립적으로 인증할 수 있다. 일부 실시 예들에서, 그룹 통신 세션에 참가하기 위해, 컴퓨팅 장치는 그룹 통신 세션에서 서로 컴퓨팅 장치에 의해 인증될 필요가 있을 수 있다. 일부 실시 예들에서, 그룹 통신 세션을 확립하기 위해, 각각의 컴퓨팅 장치는 그룹 통신 세션에서 서로의 컴퓨팅 장치를 독립적으로 인증해야 할 수 있다.
다양한 실시 예가 다양한 통신 시스템(150) 내에 구현될 수 있으며, 이의 일례가 도 1a에 도시되어 있다. 통신 시스템(150)은 통신 네트워크를 사용하여 통신할 수 있는 다양한 개체, 이를테면 IoT 네트워크(154), 로펌(156), 방위 산업체(158), 하도급 업체(160), 은행(162), 보건소(164), 전자 상거래 업체(166) 및 통신사(168)를 포함할 수 있다. 각각의 개체들(154-168)은 서로 통신할 수 있다. 각각의 개체들(154-168)은 또한 인증 기관(152)과 통신할 수 있다. 인증 기관(152)은 아래에서 더 설명될 바와 같이, 컴퓨팅 장치의 인증을 가능하게 하기 위한 동작들을 수행하도록 구성된 하나 이상의 컴퓨팅 장치를 포함할 수 있다. 개체들(154-168)은 단지 대표적인 것이고, 통신 네트워크(150)는 보건 기록, 보안 통신(예를 들어, 사업체 또는 정부 기관을 위한), 공공 기록, 투표 시스템, 금융 서비스, 보안 중개 시스템, IoT 통신, 상거래 및 기타 다양한 상황을 핸들링할 수 있는 개체들을 비롯한 매우 다양한 개체를 포함할 수 있다.
다양한 실시 예가 다양한 통신 시스템(100) 내에 구현될 수 있으며, 이의 일례가 도 1b에 도시되어 있다. 도 1a 및 도 1b를 참조하면, 통신 시스템(100)의 요소들은 개체들(154-168) 중 임의의 개체에 사용될 수 있다. 통신 시스템(100)은 컴퓨팅 장치들(102, 104, 106 및 108)을 포함할 수 있다. 몇몇 실시 예에서, 컴퓨팅 장치들(102 및 104)은 사용자에 의해 직접 사용되는 컴퓨팅 장치, 이를테면 스마트폰, 랩탑 컴퓨터, 데스크탑 컴퓨터 기타 같은 종류의 것을 포함할 수 있다. 사용자가 컴퓨팅 장치들(102 및 104)과 유사한 하나보다 많은 그러한 컴퓨팅 장치를 작동할 수 있다는 것이 이해될 것이다. 몇몇 실시 예에서, 컴퓨팅 장치들(102 및 104)은 하나 이상의 IoT 장치를 포함할 수 있다. IoT 장치들의 비제한적인 예들로는 개인 또는 모바일 멀티미디어 플레이어, 게임 시스템 및 제어기, 스마트 텔레비전, 셋톱 박스, 스마트 주방 가전 제품, 스마트 전등 및 조명 시스템, 스마트 전기 계량기, 스마트 난방, 환기 및 에어컨(HVAC) 시스템, 스마트 서모스탯, 도어 및 창 잠금 장치를 포함하는 건물 보안 시스템, 차량 엔터테인먼트 시스템, 차량 진단 및 모니터링 시스템, 기계 대 기계 장치 및 무선 통신 경로 설정 및 무선 통신 경로를 통한 데이터 송/수신을 위한 프로그램 가능 프로세서 및 메모리 및 회로를 포함하는 유사한 장치를 포함한다. 컴퓨팅 장치들(102 및 104)은 또한 육지, 바다, 공기 또는 공간에서 이동의 이동을 할 수 있는 무인 자동, 반-자동 또는 로봇식 차량을 포함할 수 있다. 컴퓨팅 장치들(102 및 104)은 스마트 총기 또는 다른 프로세서 장착 무기 또는 무기 시스템을 더 포함할 수 있다.
몇몇 실시 예에서, 컴퓨팅 장치들(106 및 108)은 백-엔드 컴퓨팅 장치 이를테면 서버를 포함할 수 있다. 몇몇 실시 예에서, 컴퓨팅 장치(108)는 통신 링크(130)를 통해 전자 보안 시스템(114)과 통신할 수 있다. 몇몇 실시 예에서, 컴퓨팅 장치들(106 및 108)(그리고 가능하게 컴퓨팅 장치(114))은 하나의 개체에 의해 작동될 수 있다. 예를 들어, 보건소(164) 또는 통신사(168)가 컴퓨팅 장치들(106, 108 및/또는 114) 중 하나 이상을 작동시킬 수 있다. 몇몇 실시 예에서, 컴퓨팅 장치들(106, 108 및 114)은 하나보다 많은 개체에 의해 작동될 수 있다.
각각의 컴퓨팅 장치들(102, 104, 106 및 108)은 각각의 통신 링크(120, 122, 124, 126, 128 및 130)를 통해 통신 네트워크(112)와 통신할 수 있다. 몇몇 실시 예에서, 통신 네트워크(112)는 둘 이상의 통신 네트워크를 포함할 수 있다. 통신 링크들(120, 122, 124, 126, 128 및 130)은 유선 또는 무선 통신 링크들을 포함할 수 있고, 각각의 컴퓨팅 장치들(102, 104, 106 및 108), 전자 보안 시스템(114) 및 통신 네트워크(112) 간 통신을 가능하게 하기 위한 추가 장치들을 더 포함할 수 있다. 그러한 추가 장치들의 예들로는 액세스 포인트, 기지국, 라우터, 게이트웨이, 유선 및/또는 무선 통신 장치, 뿐만 아니라 광섬유 백홀 연결, 마이크로파 백홀 연결 및 다른 적합한 통신 링크들을 포함할 수 있는 백홀 통신 링크들을 포함할 수 있다.
몇몇 실시 예에서, 컴퓨팅 장치들(102, 104, 106 및 108) 및 전자 보안 시스템(114)은 보안 네트워크, 이를테면 기업 내부 네트워크, 정부 기관 보안 네트워크, 가상 사설 네트워크(VPN) 또는 다른 유사한 네트워크 환경의 부분일 수 있다. 그러한 보안 네트워크에서, 통신 링크들(120, 122, 124, 126, 128 및 130)은 추가 보안, 이를테면 하나 이상의 계층(즉, 개방형 시스템 간 상호 접속(OSI) 계층들)에서의 암호화 및 통신 링크들(120, 122, 124, 126, 128 및 130)을 따라 통신을 보호하기 위한 다른 구현 예들을 포함할 수 있다.
몇몇 실시 예에서, 컴퓨팅 장치(106)는 제한 없이, 보건 기록 관리, 보안 통신, 공공 기록 관리 시스템, 투표 시스템, 금융 서비스 시스템, 보안 중개 시스템을, IoT 장치 제어기로서, 상거래를 수행하기 위한 것을 비롯한 다양한 상황, 뿐만 아니라 다른 상황들에서 정보 트랜잭션들과 관련된 동작들을 수행하도록 구성될 수있다. 몇몇 실시 예에서, 컴퓨팅 장치(108)는 아래에서 더 설명될 바와 같이, 컴퓨팅 장치들(102, 104 및 106) 중 하나 이상과 같은 컴퓨팅 장치의 임시 아이디들 및 인증을 생성 및/또는 획득하는 것과 관련된 동작들을 수행하도록 구성될 수 있다.
몇몇 실시 예에서, 전자 보안 시스템(114)은 네트워크 모니터링 또는 네트워크 보안 기능들, 이를테면 네트워크 모니터링 시스템, 키 로깅 시스템 또는 다른 유사한 시스템을 수행하도록 구성될 수 있다. 몇몇 실시 예에서, 전자 보안 시스템(114)은 통신 네트워크(112)를 사용하여 또는 그것에 액세스하여 인가받지 않은 사용자 또는 전자 침입자를 감지할 수 있고, 인가받지 않은 사용자 또는 전자 침입자의 감지에 대한 표시를 컴퓨팅 장치(108)로 송신할 수 있다. 몇몇 실시 예에서, 전자 보안 시스템(114)은 다른 권한이 부여된 사용자로부터의 시스템, 메모리, 네트워크 요소 또는 네트워크 요소의 구성요소의 인가받지 않은 액세스(예를 들어, "내부자" 위협)를 모니터링 및/또는 감지하도록 구성될 수 있다. 몇몇 실시 예에서, 전자 보안 시스템(114)은 컴퓨팅 장치가 통신 시스템에 대한 액세스로부터 인증이 해제되어야 한다는 명령 또는 표시를 수신하도록 구성될 수 있다. 예를 들어, 전자 보안 시스템(114)은 네트워크 인증 시스템 또는 인사부 시스템 또는 통신 시스템의 권한이 부여된 사용자의 리스트를 제공하는 시스템 또는 또는 다른 유사한 시스템의 구성요소 또는 요소일 수 있다. 그러한 실시 예들에서, 전자 보안 시스템(114)은 컴퓨팅 장치의 인가가 제거 또는 차단되어야 함을 나타내는 명령 또는 다른 메시지를 수신할 수 있다. 몇몇 실시 예에서, 인가받지 않은 사용자 또는 전자 침입자가 감지되었다는 표시, 컴퓨팅 장치 인증이 제거 또는 차단되어야 한다는 표시 또는 다른 유사한 표시를 수신하는 것에 응답하여, 컴퓨팅 장치(108)는 아래에서 더 설명될 바와 같이, 새로운 임시 아이디를 획득하기 위한 명령을 컴퓨팅 장치들(102, 104 및 106) 중 하나 이상으로 송신할 수 있다.
통신 네트워크(112)는 개체 또는 기업 내 통신 네트워크들 및 외부 통신 네트워크들, 공중이 이용 가능한 통신 네트워크들 및 네트워크들의 조합뿐만 아니라 인터넷을 비롯한 인터네트워크들을 비롯한 다양한 통신 네트워크를 포함할 수 있다. 통신 네트워크(112)는 하나 이상의 유선 및 무선 통신 프로토콜을 사용하여 통신을 지원할 수 있다. 각각의 통신 링크들(120, 122, 124 및 126)은 양방향 유선 또는 무선 통신 링크들일 수 있다. 무선 통신 프로토콜들은 하나 이상의 무선 액세스 기술(RAT)을 포함할 수 있다. 무선 RAT들의 예들로는 3GPP LTE(Long Term Evolution), WiMAX(Worldwide Interoperability for Microwave Access), CDMA(Code Division Multiple Access), TDMA(Time Division Multiple Access), WCDMA(Wideband CDMA), GSM(Global System for Mobility) 및 기타 RAT들을 포함한다. RAT들의 예들로는 또한 Wi-Fi, 블루투스, 지그비, LTE 비허가 스펙트럼(LTE-U), 라이센스 지원 액세스(LAA) 및 MuLTEfire(무허가 캐리어 대역에서 LTE를 사용하는 시스템)를 포함할 수 있다. 유선 통신 프로토콜들은 이더넷, 점대점 프로토콜, HDLC(High-Level Data Link Control), ADCC(Advanced Data Communication Control Protocol) 및 TCP/IP(Transmission Control Protocol/Internet Protocol)과 같은 하나 이상의 유선 통신 프로토콜을 사용할 수 있는 다양한 유선 네트워크(예를 들어, 이더넷, TV 케이블, 전화 통신, 광섬유 및 기타 형태의 물리적 네트워크 연결)를 사용할 수 있다.
통신 링크들(120, 122 및 124)은 단일 링크들로서 도시되었지만, 각각의 통신 링크들은 복수의 유선 또는 무선 링크, 이를테면 복수의 주파수 또는 주파수 대역을 포함할 수 있으며, 이들 각각은 복수의 논리 채널을 포함할 수 있다. 또한, 각각의 다양한 통신 링크(120, 122 및 124)는 하나보다 많은 통신 프로토콜을 이용할 수 있다.
컴퓨팅 장치(108)는 데이터 저장소(110), 이를테면 메모리 장치, 데이터베이스, 서버 장치 또는 데이터를 저장할 수 있는 다른 장치와 통신할 수 있다. 몇몇 구현예에서, 데이터 저장소(110)는 감사 추적(audit trail) 및 관련 관련를 저장할 수 있다.
컴퓨팅 장치(108)는 시간이 지나면서 데이터 입력들(140)을 수신할 수 있다. 데이터 입력들(140)은 컴퓨팅 장치(108)가 다른 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102, 104 및 106))와 공유될 수 있는 데이터 세트를 생성하기 위해 사용할 수 있는 정보를 포함할 수 있다. 데이터 입력들(140)은 예를 들어, 이미지들, 사진들, 비디오, 사운드 기록(예를 들어, 음악, 주위 소리 기록 또는 다른 그러한 기록), 생체 인식 정보 입력들(예를 들어, 얼굴 인식 스캔, 홍채 인식, DNA 샘플, 성문 기록, 지문 기타 같은 종류의 것) 또는 임의의 다른 그러한 데이터 입력을 포함할 수 있다.
다양한 실시 예가 다양한 통신 시스템(180) 내에 구현될 수 있으며, 이의 일례가 도 1c에 도시되어 있다. 도 1a 내지 도 1c를 참조하면, 통신 시스템(150)의 요소들은 개체들(154-168) 중 임의의 개체에 사용될 수 있다. 통신 시스템(180)은 컴퓨팅 장치들(184, 186, 188, 190, 192, 194 및 196)을 포함할 수 있다. 컴퓨팅 장치들(190-196)은 파일 서버, 데이터베이스 또는 다른 유사한 네트워크-액세스 가능 데이터 소스들과 같은 네트워크 요소들을 포함할 수 있다. 컴퓨팅 장치들(184 및 186)은 임의의 형태의 사용자-작동 가능 네트워크 단말을 포함할 수 있고, 컴퓨팅 장치들(102 및 104)과 유사할 수 있다. 컴퓨팅 장치들(186-196)은 통신 네트워크(182)의 요소들일 수 있으며, 이에 대한 액세스는 통신 네트워크(182)에 대한 전자 액세스를 보호하도록 구성된 장치, 이를테면 방화벽(198)에 의해 보호될 수 있다.
방화벽(198)과 같은 종래의 통신 보안 구현 예들은 컴퓨팅 장치(184)와 같은 외부 장치에 의한 공격 또는 부당 이용으로부터 네트워크(182)를 보호할 수 있다. 그러나, 방화벽(198)은 컴퓨팅 장치(186)와 같은 방화벽(198) 내부에 있는 장치로부터의 공격 또는 부당 이용으로부터는 네트워크(182)를 보호하지 않을 수 있다.
다양한 실시 예는 컴퓨팅 장치들(184, 186, 190, 192, 194 및 196) 중 하나 이상과 같은 컴퓨팅 장치의 임시 아이디들을 생성 및/또는 획득하는 것, 그리고 이의 아이디의 인증과 관련된 동작들을 수행하도록 구성될 수 있는 컴퓨팅 장치(188)(제3 컴퓨팅 장치(1080와 유사할 수 있음)를 포함할 수 있다.
다양한 실시 예에서, 방화벽(198)은 트래픽 모니터링, 게이트웨이 기능, 라우팅 및 다른 유사한 기능과 네트워크 동작들을 수행하기 위해 채용될 수 있지만, 방화벽(198)은 컴퓨팅 장치들(184 및 186)과 같은 장치들의 보안 기능 또는 인증 기능은 수행하지 않을 수 있다. 그보다는, 통신 시스템(180)에서, 컴퓨팅 장치들(184 및186)은 컴퓨팅 장치(188)와 그리고/또는 서로 통신할 수 있어, 각각의 컴퓨팅 장치들(184 및186)의 아이디의 인증, 뿐만 아니라 몇몇 실시 예에서는 컴퓨팅 장치(188)의 아이디의 인증도 가능하게 한다. 유사하게, 통신 시스템(180)은 사용자명 및 비밀번호와 같이 컴퓨팅 장치(184 또는 186)에서 수신된 입력들을 사용하여 주장된 사용자를 또는 사용자 계정에 대한 포인터로서 식별하나, 통신 시스템(180)은 사용자명 및 비밀번호와 같은 자격 증명을 보안 목적 또는 인증 목적으로는 사용하지 않을 수 있다. 그보다, 통신 시스템(180)은 아래에서 더 설명될 바와 같이, 각각의 컴퓨팅 장치의 임시 및/또는 동적 정보에 기초하여 컴퓨팅 장치들(184 및 186)의 아이디를 인증할 수 있다.
도 2는 다양한 실시 예를 구현하는 데 적합한 컴퓨팅 장치(200)의 구성요소 블록도이다. 도 1 및 도 2를 참조하면, 다양한 실시 예에서, 컴퓨팅 장치(200)는 컴퓨팅 장치들(102, 104, 106 및 108)과 유사할 수 있다.
컴퓨팅 장치(200)는 프로세서를 포함할 수 있다. 프로세서(202), 특수 프로세서, 이를테면 주요 기능 외에 다양한 실시 예의 동작들을 실행하기 위한 프로세서-실행 가능 명령들로 구성 가능한 모뎀 프로세서, 다양한 실시 예의 동작들을 수행하도록 구성된 전용 하드웨어(즉, "펌웨어") 회로 또는 전용 하드웨어/펌웨어 및 프로그램 가능 프로세서의 조합은 다양한 실시 예의 동작들을 실행하기 위한 프로세서-실행 가능 명령들로 구성 가능할 수 있다.
프로세서(202)는 메모리(204)에 결합될 수 있으며, 이는 프로세서-실행 가능 명령들을 저장하는 비일시적 컴퓨터-판독 가능 저장 매체일 수 있다. 메모리(204)는 운영 체제, 뿐만 아니라 사용자 어플리케이션 소프트웨어 및 실행 가능 명령들도 저장할 수 있다. 메모리(204)는 또한 어레이 데이터 구조와 같은 어플리케이션 데이터도 저장할 수 있다. 메모리(204)는 하나 이상의 캐시, ROM(Read Only Memory), RAM(Random Access Memory), EEPROM(Electrically Erasable Programmable ROM), SRAM(Static RAM), DRAM(Dynamic RAM) 또는 다른 유형들의 메모리를 포함할 수 있다. 프로세서(202)는 메모리(204)에 그리고 그로부터 정보를 판독 및 기록할 수 있다. 메모리(204)는 또한 하나 이상의 프로토콜 스택과 연관된 명령들을 저장할 수도 있다. 프로토콜 스택은 일반적으로 무선 액세스 프로토콜 또는 통신 프로토콜을 사용하여 통신을 가능하게 하는 컴퓨터 실행 가능 명령들을 포함한다.
프로세서(202)는 또한 아래에서 더 설명될 바와 같이, 다양한 동작을 수행하도록 구성된 유닛들을 위한 다양한 모듈과 통신할 수 있다. 예를 들어, 프로세서(202)는 통신 인터페이스(206), 인증 모듈(208), 해싱 모듈(210), 임시 아이디 모듈(212), 해시 저장 모듈(214) 및 트랜잭션 모듈 (216)과 통신할 수 있다. 모듈들/유닛들(206-216)은 컴퓨팅 장치(200)상에서 소프트웨어 및 하드웨어로 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있다. 펌웨어, 칩, 시스템 온 칩(SOC), 다양한 실시 예의 동작들을 수행하도록 구성된 전용 하드웨어(즉, "펌웨어") 회로 또는 전용 하드웨어/펌웨어 및 프로그램 가능 프로세서의 조합. 프로세서(202), 메모리(204) 및 다양한 모듈/유닛(206-216)은 통신 버스 또는 임의의 다른 통신 회로 또는 인터페이스를 통해 통신할 수 있다.
통신 인터페이스(206)는 통신 네트워크(예를 들어, 통신 네트워크 (112))와의 통신을 가능하게 할 수 있는 네트워크 인터페이스를 포함할 수 있다. 통신 인터페이스(206)는 연결을 통해 하나 이상의 입/출력(I/O) 포트를 포함할 수 있다, 이를테면 이더넷 연결, 광섬유 연결, 광대역 케이블 연결, 전화선 연결 또는 다른 유형들의 유선 통신 연결이 제공될 수 있다. 통신 인터페이스(206)는 또한 무선 주파수 통신을 가능하게 할 수 있는 무선 유닛을 포함할 수도 있다.
인증 모듈(208)은 컴퓨팅 장치(200)에 로그인하기 위해 사용자로부터 입력을 수신하기 위해 하나 이상의 입력 장치를 제공하거나 그와 통신할 수 있다. 입력 장치들은 하나 이상의 버튼, 슬라이더, 터치 패드, 키보드, 생체 입력 장치, 카메라, 지문 판독기 및 다른 유사한 입력 장치를 포함할 수 있다.
임시 아이디 모듈 (212)은 컴퓨팅 장치(200)에 대한 임시 아이디를 생성할 수 있다. 임시 아이디는 컴퓨팅 장치(200)의 하나 이상의 동적 양태에 기초하여, 개별적으로 또는 다른 동적 또는 정적 정보와 조합될 수 있다. 컴퓨팅 장치(200)의 동적 양태들은 클록 시간, 칩 상태, 레지스터 상태 또는 제1 컴퓨팅의 동적 양태에 기초한 임의의 다른 데이터 소스와 같이 비교적 빠르게 변화하는 제1 컴퓨팅 장치의 양태들을 포함할 수 있다.
해싱 모듈(210)은 임시 아이디 모듈(212)에 의해 생성되는 임시 아이디의 해시를 생성할 수 있다. 해시 저장 모듈(214)은 임시 아이디 모듈(212)에 의해 생성된 임시 아이디 및/또는 해싱 모듈(210)에 의해 생성된 임시 아이디의 해시를 저장하기 위해, 메모리 장치를 포함하거나 메모리(204)와 통신할 수 있다.
트랜잭션 모듈(216)은 다른 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(102)와 컴퓨팅 장치(106) 사이)와의 트랜잭션과 관련된 통신을(뿐만 아니라 다른 통신도) 가능하게 할 수 있다. 몇몇 구현 예에서, 트랜잭션 모듈(216)은 트랜잭션 서버와의 간소화된 통신 및/또는 트랜잭션 프로세스를 제공하도록 구성된 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 몇몇 구현 예에서, 트랜잭션 모듈은 특정 서비스 제공자, 이를테면 소위 "1-클릭" 서비스와의 간소화된 통신 또는 다른 간소화된 통신/트랜잭션 프로세스를 제공하도록 구성된 하드웨어 및/또는 소프트웨어를 포함할 수 있다.
도 3a 및 3b는 몇몇 실시 예에 따라 제3 컴퓨팅 장치(예를 들어, 도 1b 내지 도 2의 108, 188 및 200)와의 상호 작용을 통해) 제1 컴퓨팅 장치(예를 들어,도 1b 내지 도 2의 컴퓨팅 장치(102, 104, 184, 186 및 200))를 제2 컴퓨팅 장치(예를 들어, 도 1b 내지 도 2의 컴퓨팅 장치(106, 190-196, 및 200))에 그리고 그 반대로 인증하는 시스템 방법(300)을 도시한다. 도 3c는 방법(300)의 부분으로서 제1 컴퓨팅 장치에 의해 실행되는 동작들의 방법(300a)을 도시한다. 도 3d는 방법(300)의 부분으로서 제2 컴퓨팅 장치에 의해 실행되는 동작들의 방법(300b)을 도시한다. 도 3e는 방법(300)의 부분으로서 제3 컴퓨팅 장치에 의해 실행되는 동작들의 방법(300c)을 도시한다. 도 1a 내지 도 3e를 참조하면, 방법(300)은 제1 컴퓨팅 장치의 프로세서(예를 들어, 프로세서(202) 및/또는 기타)(즉, 장치 프로세서) 제2 컴퓨팅 장치의 프로세서 및 제3 컴퓨팅 장치의 프로세서에 의해 구현될 수 있다.
다양한 실시 예에서, 방법(300) 이전에 또는 이의 부분으로서, 제1 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(102 또는 104)) 및 제 2 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(106))는 몇몇 실시 예에서, 인증 서버로서 기능할 수 있는 제3 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(108))로 계정들을 설정할 수 있다. 다양한 실시 예에서, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치는 각각의 컴퓨팅 장치가 방법(300)의 동작들을 수행할 수 있게 하는 하나 이상의 모듈(예를 들어, 모듈들(206-216))로 구성(예를 들어, 초기화, 구성, 설치 등)될 수 있다.
몇몇 실시 예에서, 제3 컴퓨팅 장치로 계정을 설정하는 것은 제3 컴퓨팅 장치와 제1/제2 컴퓨팅 장치 간 통신 경로를 결정 및/또는 협상하는 것을 포함할 수 있다. 몇몇 실시 예에서, 각각의 제1 및 제2 컴퓨팅 장치들은 하나 이상의 양태에서 상이한 제3 컴퓨팅 장치와의 통신 경로를 협상 또는 결정할 수 있다. 예를 들어, 각각의 컴퓨팅 장치 쌍은 상이한 암호화 방법 또는 프로토콜, 통신 프로토콜 또는 어플리케이션(예를 들어, 하이퍼 텍스트 마크업 언어(HTML), 단문 메시지 서비스(SMS) 문자 메시지) 기타 같은 종류의 것을 사용할 수 있다. 다양한 실시 예에서, 사용자는 제한 없이 복수의 인증 서버로 복수의 계정을 설정할 수 있다.
다양한 실시 예는 제1 컴퓨팅 장치, 제2 컴퓨팅 장치 및 제3 컴퓨팅 장치 중 임의의 두 컴퓨팅 장치 간 통신의 침해 및 손상에 대한 방어를 제공할 수 있다. 예를 들어, 중간자(MITM, man-in-the-middle) 공격은 두 네트워크 장치 간 통신을 비밀히 중계할 수 있고, 그러한 통신을 모니터링 및/또는 변경할 수 있다. 다양한 실시 예는 공격자가 거의 동시에 3개의 통신 경로: 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간 제1 통신 경로, 제2 컴퓨팅 장치와 제3 컴퓨팅 장치 간 제 2 통신 경로 및 제3 컴퓨팅 장치와 제1 컴퓨팅 장치 간 제3 통신 경로를 동시에 침해할 것을 요구할 것이다. 임시 아이디들은 동적이고 빈번하게 변경되므로, 공격자는 3개의 통신 경로를 사용하여 송신된 임시 아이디들을 훔치거나 가로채고 매우 빠르게 해독해야 할 것이다. 이러한 잠재적 취약점은 3개의 개별 통신 경로를 통해 3개의 컴퓨팅 장치 간에 교환되는 상이한 인증 정보들의 짧은 유효 기간에 의해 극복된다.
방법(300 및 300a)의 블록(302)에서, 제1 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(102 또는 104))의 프로세서는 제1 임시 아이디를 획득할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서가 제1 임시 아이디를 생성함으로써 제1 임시 아이디를 획득할 수 있다(예를 들어, 동작(302a)). 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 제3 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(108))로부터 생성된 제1 임시 아이디를 획득할 수 있다(예를 들어, 동작(302b)). 몇몇 실시 예에서, 제3 컴퓨팅 장치의 프로세서는 생성된 제1 임시 아이디를 제1 컴퓨팅 장치로 푸싱(pushing)할 수 있다(예를 들어, 제3 컴퓨팅 장치는 생성된 임시 아이디를 제1 컴퓨팅 장치로부터의 요청 없이 제1 컴퓨팅 장치로 송신할 수 있다). 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 제3 컴퓨팅 장치로부터 제1 임시 아이디를 풀링(pulling)할 수 있다. 예를 들어, 제1 컴퓨팅 장치는 임시 아이디에 대한 요청을 제3 컴퓨팅 장치로 송신할 수 있고, 제3 컴퓨팅 장치는 요청에 응답하여 임시 아이디를 제1 컴퓨팅 장치로 송신할 수 있다.
방법(300 및 300b)의 블록(304)에서, 제2 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(106))의 프로세서는 제2 임시 아이디를 생성할 수 있다(예를 들어, 동작(304a)). 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 제2 임시 아이디를 생성함으로써 제1 임시 아이디를 획득할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 제3 컴퓨팅 장치로부터 제2 임시 아이디를 획득할 수 있다(예를 들어, 동작(304b)). 몇몇 실시 예에서, 제3 컴퓨팅 장치의 프로세서는 제2 임시 아이디를 제2 컴퓨팅 장치로 푸싱할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 제3 컴퓨팅 장치로부터 제2 임시 아이디를 풀링할 수 있다.
방법(300 및 300c)의 블록(306)에서, 제3 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(108))의 프로세서는 제3 임시 아이디를 생성할 수 있다.
방법(300 및 300a)의 블록(308)에서, 제1 컴퓨팅 장치의 프로세서는 제1 임시 아이디를 제2 컴퓨팅 장치 및 제3 컴퓨팅 장치로 송신할 수 있다. 제1 임시 아이디의 제2 컴퓨팅 장치로의 송신은 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간에 설정되는 프로세스에 있는 통신 링크와 같은 임의의 개방형 통신 링크를 통할 수 있다. 몇몇 실시 예에서, 통신은 암호화될 수 있고, 그에 따라 송신은 초기 암호화 키가 교환된 후 실현될 수 있다. 몇몇 실시 예에서, 통신 링크는 컴퓨팅 장치들이 암호화 키들을 교환하기 전 다양한 실시 예를 통해 서로 인증할 수 있도록 개방형일 수 있다(즉, 암호화되지 않음). 제1 임시 아이디의 제3 컴퓨팅 장치로의 송신은 암호화될 수도 있고 암호화되지 않을 수도 있는 다른 통신 링크를 통할 수 있다. 몇몇 실시 예에서, 송신은 인터넷과 같은 공중 네트워크를 통할 수 있다. 몇몇 실시 예에서, 송신은 사설 또는 전용 통신 링크를 통할 수 있다.
방법(300 및 300b)의 블록(310)에서, 제2 컴퓨팅 장치의 프로세서는 제2 임시 아이디를 제1 컴퓨팅 장치 및 제3 컴퓨팅 장치로 송신할 수 있다. 제2 임시 아이디의 제1 컴퓨팅 장치로의 송신은 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간에 설정되는 프로세스에 있으며 제2 컴퓨팅 장치가 제1 임시 아이디를 수신하는 통신 링크와 같은 임의의 개방형 통신 링크를 통할 수 있다. 몇몇 실시 예에서, 통신은 암호화될 수 있고, 그에 따라 송신은 초기 암호화 키가 교환된 후 실현될 수 있다. 몇몇 실시 예에서, 통신 링크는 컴퓨팅 장치들이 암호화 키들을 교환하기 전 다양한 실시 예를 통해 서로 인증할 수 있도록 개방형일 수 있다(즉, 암호화되지 않음). 제2 임시 아이디의 제3 컴퓨팅 장치로의 송신은 암호화될 수도 있고 암호화되지 않을 수도 있는 다른 통신 링크를 통할 수 있다. 몇몇 실시 예에서, 송신은 인터넷과 같은 공중 네트워크를 통할 수 있다. 몇몇 실시 예에서, 송신은 사설 또는 전용 통신 링크를 통할 수 있다.
방법(300 및 300c)의 임의적 블록(312)에서, 제3 컴퓨팅 장치의 프로세서는 제3 임시 아이디를 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치로 송신할 수 있다. 제3 임시 아이디의 제1 및 제2 컴퓨팅 장치들로의 송신은 제3 컴퓨팅 장치가 제1 및 제2 임시 아이디들을 수신한 동일한 통신 링크들을 통할 수 있다. 그러한 통신 링크들은 암호화될 수도 있고 암호화되지 않을 수도 있다. 몇몇 실시 예에서, 송신은 인터넷과 같은 공중 네트워크를 통할 수 있다. 몇몇 실시 예에서, 송신은 사설 또는 전용 통신 링크를 통할 수 있다.
방법(300 및 300a)의 블록(314)에서, 제1 컴퓨팅 장치의 프로세서는 제2 임시 아이디를 포함하는 인증 질의를 제3 컴퓨팅 장치로 송신할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치는 인증 질의를 자동으로, 이를테면 백그라운드로 송신할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치는 인증 질의를 명령에 응답하여 송신할 수 있다. 몇몇 실시 예에서, 인증 요청은 제1 컴퓨팅 장치에 저장될 수 있는 소단위의 정보, 이를테면 문자, 이미지, 생체 인식 정보 또는 기타 쉽게 개인을 나타낼 수 있는 정보를 포함할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치는 인증 요청에 또는 이와 함께 소단위의 정보를 포함할 수 있다.
방법(300 및 300b)의 블록(316)에서, 제2 컴퓨팅 장치의 프로세서는 제1 임시 아이디를 포함하는 인증 질의를 제3 컴퓨팅 장치로 송신할 수 있다.
방법(300 및 300c)의 결정 블록(318)에서, 제3 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치로부터의 제2 임시 아이디가 제2 컴퓨팅 장치로부터의 제2 임시 아이디와 매칭하는지 여부를 결정할 수 있다. 몇몇 실시 예에서, 제3 컴퓨팅 장치는 이러한 동작을 수신된 두 개의 임시 아이디의 직접 비교에 의해 수행할 수 있다(예를 들어, 감산 및 나머지 확인). 몇몇 실시 예에서, 제3 컴퓨팅 장치는 이러한 동작을 수신된 임시 아이디들 중 하나 또는 양자에 관한 해시 함수를 수행하고 해시 함수(들)의 결과들을 비교함으로써 둘이 매칭하는지 여부를 결정함으로써 수행할 수 있다.
제1 컴퓨팅 장치로부터의 제2 임시 아이디가 제2 컴퓨팅 장치로부터의 제2 임시 아이디와 매칭하지 않는다는 결정(즉, 결정 블록(318) = "아니오")에 응답하여, 블록(322)에서 제3 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치의 인증 실패에 대한 표시를 제1 컴퓨팅 장치 및/또는 제2 컴퓨팅 장치로 송신할 수 있다.
제1 컴퓨팅 장치로부터의 제2 임시 아이디가 제2 컴퓨팅 장치로부터의 제2 임시 아이디와 매칭한다는 결정(즉, 결정 블록(318) = "예")에 응답하여, 블록(326)에서 제3 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치의 인증 성공에 대한 표시를 제1 컴퓨팅 장치 및/또는 제2 컴퓨팅 장치로 송신할 수 있다.
방법(300 및 300c)의 결정 블록(320)에서, 제3 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치로부터의 제1 임시 아이디가 제1 컴퓨팅 장치로부터의 제1 임시 아이디와 매칭하는지 여부를 결정할 수 있다.
제2 컴퓨팅 장치로부터의 제1 임시 아이디가 제1 컴퓨팅 장치로부터의 제1 임시 아이디와 매칭하지 않는다는 결정(즉, 결정 블록(320) = "아니오")에 응답하여, 제3 컴퓨팅 장치의 프로세서는 블록(324)에서 제1 컴퓨팅 장치의 인증 실패에 대한 표시를 제1 컴퓨팅 장치 및/또는 제2 컴퓨팅 장치로 송신할 수 있다.
제2 컴퓨팅 장치로부터의 제1 임시 아이디가 제1 컴퓨팅 장치로부터의 제1 임시 아이디와 매칭한다는 결정(즉, 결정 블록(320) = "예")에 응답하여, 블록(328)에서 제3 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치의 인증 성공에 대한 표시를 제1 컴퓨팅 장치 및/또는 제2 컴퓨팅 장치로 송신할 수 있다.
몇몇 구현 예에서, 인증 실패 또는 인증 성공에 대한 표시들은 매우 짧은 메시지 또는 데이터 구조를 포함할 수 있고 몇몇 구현 예에서, 그 표시는 각각 인증 실패 또는 인증 성공을 나타내는 단일 비트, 이를테면 0 또는 1를 포함할 수 있다.
방법(300 및 300c)의 블록들(326 및/또는 328)의 동작들 이후, 블록(330)에서 제3 컴퓨팅 장치의 프로세서는 새로운 임시 아이디들을 획득하기 위한 명령을 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치로 송신할 수 있다. 몇몇 실시 예에서, 명령은 각각, 제1 및 제2 컴퓨팅 장치들에서 새로운 임시 아이디를 생성하기 위한 명령을 포함할 수 있다. 몇몇 실시 예에서, 명령은 제3 컴퓨팅 장치로부터 새로운 임시 아이디를 획득하기 위한 명령을 제1 및 제2 컴퓨팅 장치들의 각각으로 각각 포함할 수 있다. 몇몇 실시 예에서, 제3 컴퓨팅 장치는 제1 또는 제2 컴퓨팅 장치 중 어느 하나로부터의 요청 없이 제1 및 제2 컴퓨팅 장치들의 각각에 대한 새로운 임시 아이디를 생성 및 송신할 수 있다.
그 다음 제1, 제2 및 제3 컴퓨팅 장치들의 프로세서들은 각각 방법들(300, 300a, 300b 및 300c)의 블록들(302, 304 및 306)의 동작들을 수행할 수 있다. 제1, 제2 및 제3 컴퓨팅 장치들은 때때로 다른 컴퓨팅 장치들의 백그라운드 인증을 수행하기 위해 간격을 두고 방법들(300, 300a, 300b 및 300c)의 동작들을 반복할 수 있다. 몇몇 실시 예에서, 제1, 제2 및 제3 컴퓨팅 장치들의 프로세서들은 제1, 제2 및 제3 컴퓨팅 장치들 중 다른 컴퓨팅 장치로부터의 명령 또는 기타 메시지로 또는 그러한 것 없이 때때로 방법들(300, 300a, 300b 및 300c)의 동작들을 반복할 수 있다. 장치 인증의 동적 시스템을 사용함으로써, 방법들(300, 300a, 300b 및 300c)은 임의의 임시 아이디들이 인터셉트되고 컴퓨팅 장치들 중 하나를 가장하는 데 사용될 수 있을 가능성을 상당히 감소시킨다.
몇몇 실시 예에서, 제3 컴퓨팅 장치는 제1 컴퓨팅 장치 및/또는 제2 컴퓨팅 장치의 인증 실패의 경우 블록(330 및 300c)의 동작들을 수행할 수 있다(332). 예를 들어, 제3 컴퓨팅 장치는 컴퓨팅 장치의 인증 실패에 참여 컴퓨팅 장치의 또는 시스템의 침해 또는 침해 시도에 대한 표시로서 응답할 수 있다. 다양한 실시 예에서, 시스템의 통신의 가능한 구멍 또는 실제 구멍에 응답하여, 제3 컴퓨팅 장치는 모든 참여 컴퓨팅 장치에 새로운 임시 아이디들을 획득할 것을 지시할 수 있다. 시스템에 참여하도록 구성된 컴퓨팅 장치들만이 새로운 임시 아이디를 획득할 수 있을 수 있으므로, 그렇게 구성되지 않은 컴퓨팅 장치들 - 이를테면 사이버 침입자들 및 다른 적들 - 은 새로운 임시 아이디를 획득할 수 없을 수 있고, 그 시스템을 사용하는 추가 통신으로부터 효율적으로 차단될 것이다.
몇몇 실시 예에서, 제1, 제2 및 제3 컴퓨팅 장치들의 프로세서들은 공격자가 제1 및/또는 제2 임시 아이디들을 획득 및 사용하기 위해 요구되는 결정된 시간 미만의 빈도로 그것들의 각각의 동작들을 반복할 수 있다. 예를 들어, 몇몇 실시 예에서, 제1, 제2 및/또는 제3 임시 아이디들의 지속 기간("유효 기간")이 공격자에 의해 임시 아이디들 중 하나 이상을 획득 및 부당 이용하기 위해 요구되는 시간보다 짧게 설정될 수 있다. 몇몇 실시 예에서, 제1 및/또는 제2 제3 컴퓨팅 장치들의 프로세서는 각각의 제1 및/또는 제2 임시 아이디의 유효 기간이 만료되었다는 결정에 응답하여 새로운 임시 아이디를 획득할 수 있다. 몇몇 실시 예에서, 제3 컴퓨팅 장치의 프로세서는 각각의 제1 및/또는 제2 임시 아이디의 유효 기간이 만료되었다는 결정에 응답하여 제1, 제2 및/또는 제3 컴퓨팅 장치들에 대한 새로운 임시 아이디를 생성할 수 있다.
도 3c는 방법(300)의 부분으로서 제1 컴퓨팅 장치에 의해 실행되는 동작들의 방법(300a)을 도시한다. 도 1a 내지 도 3e를 참조하면, 방법(300a)은 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다. 블록들(302, 308 및 314)에서, 제1 컴퓨팅 장치의 프로세서는 방법(300)의 같은 숫자로 넘버링된 블록들의 동작들을 수행할 수 있다.
결정 블록(333)에서, 제1 컴퓨팅 장치의 프로세서는 인증 성공에 대한 표시 또는 인증 실패에 대한 표시가 제3 컴퓨팅 장치로부터 수신되는지 또는 되었는지 여부를 결정할 수 있다. 몇몇 임의적인 실시 예에서, 프로세서는 제3 컴퓨팅 장치로부터 표시가 없는지 여부를 결정할 수도 있다.
인증 실패에 대한 표시가 수신된다는 또는 되었다는 결정(즉, 결정 블록(333) = "실패") 또는 임의로 표시가 수신되지 않았다는 결정(즉, 결정 블록(333) = "표시 없음")에 응답하여, 블록(334)에서 제1 컴퓨팅 장치의 프로세서는 인증 실패에 대한 표시를 저장할 수 있다.
블록(336)에서, 제1 컴퓨팅 장치의 프로세서는 보안 조치를 수행할 수 있다. 예를 들어, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치로 정보 트랜잭션을 수행하는 것을 중단할 수 있다. 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치와의 추가 통신을 차단할 수도 있다.
인증 성공에 대한 표시가 수신된다는 또는 되었다는 결정(즉, 결정 블록(333) = "성공")에 응답하여, 블록(338)에서 제1 컴퓨팅 장치의 프로세서는 인증 성공에 대한 표시를 저장할 수 있다.
블록(340)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치로 정보 트랜잭션을 수행할 수 있다. 그 다음 블록(302)에서 제1 컴퓨팅 장치의 프로세서는 새로운 임시 아이디를 획득할 수 있다. 예를 들어, 제1 컴퓨팅 장치의 프로세서는 임시 아이디의 유효 기간이 만료되었다고 결정할 수 있고, 임시 아이디의 유효 기간이 만료되었다는 결정에 응답하여 블록(302)에서 제1 컴퓨팅 장치의 프로세서가 새로운 임시 아이디를 획득할 수 있다.
임의적 블록(342)에서, 제1 컴퓨팅 장치의 프로세서는 제3 컴퓨팅 장치로부터 새로운 임시 아이디를 획득하기 위한 명령을 수신할 수 있다. 그 다음 제1 컴퓨팅 장치의 프로세서는 블록(302)의 동작들을 수행할 수 있다.
도 3d는 방법(300)의 부분으로서 제2 컴퓨팅 장치에 의해 실행되는 동작들의 방법(300b)을 도시한다. 도 1a 내지 도 3e를 참조하면, 방법(300b)은 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다. 블록들(304, 310 및 316)에서, 제2 컴퓨팅 장치의 프로세서는 방법(300)의 같은 숫자로 넘버링된 블록들의 동작들을 수행할 수 있다.
결정 블록(344)에서, 제2 컴퓨팅 장치의 프로세서는 인증 성공에 대한 표시 또는 인증 실패에 대한 표시가 제3 컴퓨팅 장치로부터 수신되는지 또는 되었는지 여부를 결정할 수 있다. 몇몇 임의적인 실시 예에서, 프로세서는 제3 컴퓨팅 장치로부터 표시가 없는지 여부를 결정할 수도 있다.
인증 실패에 대한 표시가 수신된다는 또는 되었다는 결정(즉, 결정 블록(344) = "인증 실패") 또는 임의로 표시가 수신되지 않았다는 결정(즉, 결정 블록(344) = "표시 없음")에 응답하여, 블록(346)에서 제2 컴퓨팅 장치의 프로세서는 인증 실패에 대한 표시를 저장할 수 있다.
블록(348)에서, 제2 컴퓨팅 장치의 프로세서는 보안 조치를 수행할 수 있다. 예를 들어, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치로 정보 트랜잭션을 수행하는 것을 중단할 수 있다. 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치와의 추가 통신을 차단할 수도 있다.
프로세서가 인증 성공에 대한 표시가 수신한다는 결정(즉, 결정 블록(344) = " 인증 성공")에 응답하여, 블록(350)에서 제2 컴퓨팅 장치의 프로세서는 인증 성공에 대한 표시를 저장할 수 있다.
블록(352)에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치로 정보 트랜잭션을 수행할 수 있다.
그 다음 블록(304)에서 제2 컴퓨팅 장치의 프로세서는 새로운 임시 아이디를 획득할 수 있다. 예를 들어, 제2 컴퓨팅 장치의 프로세서는 제2 임시 아이디의 유효 기간이 만료되었다고 결정할 수 있고, 제2 임시 아이디의 유효 기간이 만료되었다는 결정에 응답하여 블록(304)에서 제2 컴퓨팅 장치의 프로세서가 새로운 임시 아이디를 획득할 수 있다.
임의적 블록(354)에서, 제2 컴퓨팅 장치의 프로세서는 제3 컴퓨팅 장치로부터 새로운 임시 아이디를 획득하기 위한 명령을 수신할 수 있다. 그 다음 제2 컴퓨팅 장치의 프로세서는 블록(304)의 동작들을 수행할 수 있다.
도 3e는 방법(300)의 부분으로서 제3 컴퓨팅 장치에 의해 실행되는 동작들의 방법(300c)을 도시한다. 도 1a 내지 도 3e를 참조하면, 방법(300c)은 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다. 블록들(306-330)에서, 제3 컴퓨팅 장치의 장치 프로세서는 방법(300)의 같은 숫자로 넘버링된 블록들의 동작들을 수행할 수 있다.
블록(360)에서, 제3 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치로부터 인증 질의를 수신할 수 있다. 상술한 바와 같이, 결정 블록(318)에서, 제3 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치로부터의 제2 임시 아이디가 제2 컴퓨팅 장치로부터의 제2 임시 아이디와 매칭하는지 여부를 결정할 수 있다.
블록(362)에서, 제3 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치로부터 인증 질의를 수신할 수 있다. 상술한 바와 같이, 결정 블록(320)에서, 제3 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치로부터의 제1 임시 아이디가 제1 컴퓨팅 장치로부터의 제1 임시 아이디와 매칭하는지 여부를 결정할 수 있다.
도 4는 몇몇 실시 예에 따른 공유된 데이터 세트를 동적으로 변경하는 방법(400)을 도시한다. 도 1a 내지 도 4를 참조하면, 방법(400)은 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108, 184-188 및 200))의 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다.
다양한 실시 예는 동적으로 변화하는 공유된 정보 컨텍스트를 이용함으로써 통신 네트워크상에서 컴퓨팅 장치들의 검증을 향상시키고 개선한다. 정보 컨텍스트는 예를 들어, 동적으로 변화하는 공유된 데이터 세트를 포함할 수 있다. 몇몇 실시 예에서, 두 \컴퓨팅 장치는 예를 들어, 데이터 세트를 하나의 컴퓨팅 장치로부터 다른 컴퓨팅 장치로 송신함으로써 데이터 세트를 공유할 수 있다. 다양한 실시 예에서, 두 컴퓨팅 장치는 사용자 장치, 네트워크 서버, 인증 서버 또는 다른 컴퓨팅 장치와 같은 컴퓨팅 네트워크 내의 임의의 두 엔드 포인트 장치를 포함할 수 있다. 공유된 데이터 세트는 시간이 지나면서 컴파일링될 수 있고, 때때로, 주기적으로 그리고/또는 트리거링 이벤트가 발생하면 컴퓨팅 장치에 의해 변경될 수 있다. 공유된 데이터 세트를 변화시키는 것 또는 변경하는 것은 공유된 데이터 세트를 재배열시키는 것, 공유된 데이터 세트에 정보를 추가하는 것, 공유된 데이터 세트에서 정보를 없애는 것 그리고/또는 공유된 데이터 세트의 하나 이상의 부분을 변형시키는 것을 포함할 수 있다.
방법(400)(뿐만 아니라 방법들(700, 800, 900, 1000, 1100, 1200 및 1300))의 동작들은 아래에서 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치에 대하여 설명된다. 컴퓨팅 장치들(102, 104, 106, 108, 184 및 186) 중 임의의 컴퓨팅 장치 및 다른 컴퓨팅 장치들은 그러한 장치들이 방법(400)(뿐만 아니라 방법들(700, 800, 900, 1000, 1100, 1200 및 1300))에 대하여 설명될 바와 같이 제1 컴퓨팅 장치 또는 제2 컴퓨팅 장치로서 기능할 수 있다
블록들(402 및 404)에서, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치는 데이터 세트를 공유할 수 있다. 예를 들어, 제2 컴퓨팅 장치는 데이터 세트를 제1 컴퓨팅 장치로 송신할 수 있다. 몇몇 실시 예에서, 제1 및 제2 컴퓨팅 장치들은 때때로, 주기적으로, 비주기적으로, 초기화 절차의 일부로서 또는 몇몇 다른 시간에 데이터 세트를 공유할 수 있다.
블록(406)에서, 프로세서는 데이터 입력들을 수신할 수 있다. 예를 들어, 컴퓨팅 장치의 프로세서는 시간이 지나면서 데이터 입력들(예를 들어, 데이터 입력들(140))을 수신할 수 있다. 데이터 입력들은 컴퓨팅 장치의 프로세서가 다른 컴퓨팅 장치와 공유될 수 있는 데이터 세트를 생성하기 위해 사용할 수 있는 정보를 포함할 수 있다. 데이터 입력들은 예를 들어, 이미지들, 사진들, 비디오, 사운드 기록(예를 들어, 음악, 주위 소리 기록 또는 다른 그러한 기록), 생체 인식 정보 입력들(예를 들어, 얼굴 인식 스캔, 홍채 인식, DNA 샘플, 성문 기록, 지문 기타 같은 종류의 것) 또는 임의의 다른 데이터 입력을 포함할 수 있다.
결정 블록(408)에서, 프로세서는 공유된 데이터 세트 업데이트 트리거가 발생했는지 여부를 결정할 수 있다. 예를 들어, 프로세서는 일정 시간 기간이 경과했는지 여부를 결정할 수 있다. 다른 예로, 프로세서는 트리거 이벤트가 발생했는지 여부를 결정할 수 있다. 트리거 이벤트는, 예를 들어, 아래에서 더 설명될 바와 같이, 공유된 데이터 세트로부터 요소(들)를 추출하고, 요소(들)로부터 값을 결정하는 등과 같이 인증 프로세스에서 공유된 데이터 세트를 사용하는 것을 포함할 수 있다. 트리거 이벤트는 예를 들어, 공유된 데이터 세트를 업데이트하기 위한 하나 이상의 컴퓨팅 장치로부터의 요청을 포함할 수 있다. 트리거 이벤트는 예를 들어, 컴퓨팅 장치의 인증 실패 또는 인증 성공을 포함할 수 있다.
데이터 세트 업데이트 트리거가 발생하지 않았다는 결정(즉, 결정 블록(408) = "아니오"에 응답하여), 블록(406)에서 프로세서는 계속해서 데이터 입력들을 수신할 수 있다.
데이터 세트 업데이트 트리거가 발생했다는 결정(즉, 결정 블록(408) = "예")에 응답하여, 프로세서는 공유된 데이터 세트를 동적으로 변경하기 위한 하나 이상의 동작을 수행할 수 있다.
예를 들어, 블록(410)에서, 프로세서는 수신된 데이터 입력들에 기초하여 새로운 데이터 세트 부분을 추가하기 위한 명령을 생성할 수 있다. 몇몇 실시 예에서, 프로세서는 추가될 새로운 데이터 세트 부분을 생성할 수 있다. 몇몇 실시 예에서, 생성된 명령들은 (예를 들어, 아래에서 설명될 바와 같이, 제2 컴퓨팅 장치로 송신될 수 있는) 새로운 데이터 세트 부분의 생성을 가능하게 하는 명령들을 포함할 수 있다.
추가적으로 또는 대안적으로, 블록(412)에서 프로세서는 공유된 데이터 세트의 일 부분을 없애기 위한 명령을 생성할 수 있다.
추가적으로 또는 대안적으로, 블록(414)에서 프로세서는 공유된 데이터 세트를 재배열시키기 위한 명령을 생성할 수 있다. 예를 들어, 공유된 데이터 세트를 재배열시키는 것은 공유된 데이터 세트의 하나 이상의 부분을 상이한 시간, 장소, 위치 또는 공유된 데이터 세트의 다른 부분들에 관해 다른 차이로 배치하는 것을 포함할 수 있다.
추가적으로 또는 대안적으로, 블록(416)에서 프로세서는 공유된 데이터 세트를 변형시키기 위한 명령을 생성할 수 있다. 예를 들어, 프로세서는 공유된 데이터 세트의 하나 이상의 요소 및/또는 하나 이상의 부분을 변형시키기 위한 명령을 생성할 수 있다.
요소 및/또는 부분을 변형시키는 것은 요소 및/또는 부분의 하나 이상의 값을 변경하기 위한 하나 이상의 동작을 수행하는 것을 포함할 수 있다. 예를 들어, 이미지 또는 비디오 파일의 요소 및/또는 부분을 변형시키는 것은 회전, 플립핑, 역전, 위치 시프팅, 색상 시프팅, 필터 적용 또는 미리 설정된 변형(예를 들어, 사진 또는 비디오 편집 소프트에어 프로그램에서 이용 가능할 수 있는 바와 같은) 또는 다른 유사한 동작을 포함할 수 있다. 다른 예로, 음악 또는 오디오 파일의 요소 및/또는 부분을 변형시키는 것은 피치를 올리거나 내리는 것, 파일의 컨텐츠를 반전시키는 것, 오디오 파일의 내용을 역전시키는 것(즉, 선택된 축을 따라 컨텐츠를 변형시키는 것), 리버브, 디스토션, 플랜징 등과 같은 오디오 효과를 추가하는 것 또는 다른 유사한 동작을 포함할 수 있다. 다른 예로, 공유된 데이터 세트의 요소 및/또는 부분을 변형시키는 것은 데이터 요소들을 변형시키는 것(예를 들어, 오디오 데이터를 시각 데이터 또는 문자로 변형시키는 것)을 포함할 수 있다. 다른 예로, 공유된 데이터 세트의 요소 및/또는 부분을 변형시키는 것은 요소 및/또는 부분을 변형시키기 위해 하나 이상의 수학 함수를 수행하는 것을 포함할 수 있다.
블록(418)에서, 공유된 데이터 세트를 변경하기 위한 하나 이상의 명령을 생성할 수 있다. 하나 이상의 명령은 생성된 새로운 데이터 세트 부분에 기초하여 공유된 데이터 세트의 일 부분을 없애기 위한 명령 및/또는 공유된 데이터 세트를 재배열시키기 위한 명령일 수 있다.
블록(420)에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치로 하나 이상의 명령을 송신할 수 있다. 몇몇 실시 예에서, 생성된 명령들은 예를 들어, 블록(410)에서 생성될 수 있는 바와 같이) 새롭게 생성된 데이터 세트 부분(을 포함할 수 있다.
블록(422)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치로부터 하나 이상의 명령을 수신할 수 있다.
블록(424)에서, 제2 컴퓨팅 장치의 프로세서는 생성된 명령 또는 명령들에 기초하여 공유된 데이터 세트를 변경할 수 있다.
블록(426)에서, 제1 컴퓨팅 장치의 프로세서는 생성된 명령 또는 명령들에 기초하여 공유된 데이터 세트를 변경할 수 있다.
결정 블록(428)에서, 제2 컴퓨팅 장치의 프로세서는 검증 요청이 제2 컴퓨팅 장치의 프로세서에 의해 송신 또는 수신되었는지 여부를 결정할 수 있다.
검증 요청이 송신 또는 수신되지 않았다는 결정(즉, 결정 블록(428) = "아니오")에 응답하여, 블록(406)에서 제2 컴퓨팅 장치의 프로세서는 계속해서 데이터 입력들을 수신할 수 있다.
몇몇 실시 예에서, 검증 요청이 송신 또는 수신되었다는 결정(즉, 결정 블록(428) = "예")에 응답하여, 제2 컴퓨팅 장치의 프로세서는 도 7의 블록(710)으로 진행할 수 있다. 몇몇 실시 예에서, 검증 요청이 송신 또는 수신되었다는 결정(즉, 결정 블록(428) = "예")에 응답하여, 제2 컴퓨팅 장치의 프로세서는 도 11의 블록(1110)으로 진행할 수 있다.
결정 블록(430)에서, 제1 컴퓨팅 장치의 프로세서는 검증 요청이 제1 컴퓨팅 장치의 프로세서에 의해 송신 또는 수신되었는지 여부를 결정할 수 있다.
검증 요청이 송신 또는 수신되지 않았다는 결정(즉, 결정 블록(430) = "아니오")에 응답하여, 블록(422)에서 제1 컴퓨팅 장치의 프로세서는 다시 제2 컴퓨팅 장치로부터 하나 이상의 명령을 수신할 수 있다.
몇몇 실시 예에서, 검증 요청이 송신 또는 수신되었다는 결정(즉, 결정 블록(426) = "예")에 응답하여, 제1 컴퓨팅 장치의 프로세서는 도 7의 블록(702)으로 진행할 수 있다. 몇몇 실시 예에서, 검증 요청이 송신 또는 수신되었다는 결정(즉, 결정 블록(426) = "예")에 응답하여, 제1 컴퓨팅 장치의 프로세서는 도 11의 블록(1102)으로 진행할 수 있다.
도 5는 몇몇 실시 예에 따른 공유된 데이터 세트(500)의 일례를 도시한다. 몇몇 실시 예에서, 상기 공유된 데이터 세트는 둘 이상의 부분을 포함할 수 있다. 공유된 데이터 세트의 각 부분은 하나 이상의 요소를 포함할 수 있다. 몇몇 실시 예에서, 공유된 데이터 세트의 부분들은 이미지, 사진, 비디오, 사운드 기록, 생체 인식 입력 또는 다른 그러한 별개의 구성 요소와 같은 별개의 구성 요소를 포함할 수 있다.
몇몇 실시 예에서, 상기 공유된 데이터 세트는 컴퓨팅 장치들 중 하나의 두 개 이상의 임시 아이디를 포함할 수 있다. 예를 들어, 상술한 바와 같이, 제1 컴퓨팅 장치는 시간이 지나면서 일련의 임시 아이디를 생성할 수 있고 여기에 설명된 방법들을 사용하여 보안 통신의 정상적신 수행에서 임시 아이디들을 제2 컴퓨팅 장치로 송신할 수 있다. 제2 컴퓨팅 장치는 제1 컴퓨팅 장치에 의해 생성되는 그리고 그로부터 수신되는 임시 아이디들을 저장할 수 있다. 그에 따라, 몇몇 실시 예에서, 공유된 데이터 세트는 보안 및/또는 인증된 통신 동안 시간이 지나면서 수신되는 제1 컴퓨팅 장치의 임시 아이디들을 포함할 수 있다. 몇몇 실시 예에서, 상기 공유된 데이터 세트는 제1 컴퓨팅 장치의 두 개 이상의 임시 아이디를 포함할 수 있다.
공유된 데이터 세트(500)는 하나 이상의 부분, 이를테면 부분들(502, 504 및 506)을 포함할 수 있다. 각각의 부분들(502, 504 및 506)은 하나 이상의 요소를 포함할 수 있다. 예를 들어, 부분(502)은 요소들(520 및 522)을 포함할 수 있고, 부분(504)은 요소(524)를 포함할 수 있으며, 부분(506)은 요소들(526 및 528)을 포함할 수 있다. 몇몇 실시 예에서, 부분들(502, 504 및 506)은 각각 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102, 104, 106 및 108) 중 하나 이상)에 의해 생성된 임시 아이디일 수 있다. 몇몇 실시 예에서, 부분들(502, 504 및 506)은 사진, 사운드 기록, 지문, 생체 인식 데이터 또는 다른 별개의 부분들과 같은 별개의 구성 요소들을 포함할 수 있다.
몇몇 실시 예에서, 공유된 데이터 세트(500)는 시간이 지나면서 빌드업될 수 있다. 예를 들어, 제1 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(102, 104))는 시간이 지나면서 복수의 임시 아이디를 생성하고, 각 임시 아이디의 사본을 저장하고, 각 임시 아이디의 사본을 제2 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(108))로 송신함으로써, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치에 제1 컴퓨팅 장치의 임시 아이디로 구성된 공유된 데이터 세트를 제공할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치는 유사한 동작들, 임시 아이디들을 획득하는 것 그리고 그것의 임시 아이디들을 제1 컴퓨팅 장치에 제공하는 것을 수행할 수 있다. 몇몇 실시 예에서, 제1 및 제2 컴퓨팅 장치들은 공유된 데이터 세트를 생성하기 위해 각각의 제1 및 제2 컴퓨팅 장치들로부터 공유된 임시 아이디들을 조합할 수 있다. 몇몇 실시 예에서, 제1 및 제2 컴퓨팅 장치들은 각각 제1 컴퓨팅 장치의 임시 아이디들 및 제2 컴퓨팅 장치의 임시 아이디들 로 구성된 두 개의 별개의 공유된 데이터 세트를 각각 컴파일링할 수 있다.
몇몇 실시 예에서, 공유된 데이터 세트(500)는 하나의 컴퓨팅 장치에 의해 시간이 지나면서 빌드업된 다음 다른 컴퓨팅 장치와 공유될 수 있다. 예를 들어, 컴퓨팅 장치(108)는 시간이 지나면서 데이터 입력들(예를 들어, 데이터 입력들(140))을 수신할 수 있다. 데이터 입력들은 하나 이상의 별개의 구성 요소를 포함할 수 있어, 컴퓨팅 장치(108)는 시간이 지나면서 데이터 입력들의 데이터 세트를 빌드업할 수 있다. 그 다음 컴퓨팅 장치(108)는 다른 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(102, 104, 106))와 데이터 세트를 공유 또는 송신할 수 있다.
다양한 실시 예에서, 요소들(520-528)은 일 부분 내 각각의 요소의 식별 또는 인덱싱을 가능하게 하는 정보를 포함할 수 있다. 예를 들어, 요소는 그 부분 내 요소의 장소, 위치 및/또는 시간을 식별하는 정보 또는 각각의 선택된 요소의 인덱싱 또는 식별을 가능하게 하는 임의의 다른 정보를 포함할 수 있다
다양한 실시 예에서, 부분들(502-506) 및/또는 요소들(520-528)은 적어도 하나의 다른 데이터 요소에 대한 하나 이상의 관계가 결정될 수있는 데이터를 포함할 수 있다. 예를 들어, 502-506 및/또는 요소들(520-528)은 타임 스탬프와 연관될 수 있다. 다른 예로, 부분들 및/또는 요소들은 부분 및/또는 요소의 소, 위치, 색상, 피치, 주파수, 생체 인식 양태 또는 다른 양태과 같은 다양한 데이터와 연관될 수 있다. 두 개 이상의 요소 간 관계는 두 개 이상의 요소 간 비교 차이, 시간 차이, 장소 차이, 위치 차이, 색상 차이, 피치 차이, 주파수 차이, 생체 인식 차이 또는 다른 차이를 포함할 수 있다.
다른 예로, 요소들(520-528)은 부분 내 또는 상이한 위치들 간 상이한 위치들 또는 장소들을 가질 수 있다. 요소들(520-528)은 또한 두 개 이상의 다른 요소에 관한, 상이한 시간, 뿐만 아니라 상이한 위치들 또는 장소들과 연관될 수도 있다. 몇몇 실시 예에서, 세 개 이상의 요소는 하나의 요소의 두 개 이상의 다른 요소에 대한 관계를 정의할 수 있다. 예를 들어, 요소들(520, 522 및 524) 간 위치/장소 차이들은 세 개의 각도(각도 A, 각도 B 및 각도 D)를 정의할 수 있다. 유사하게, 요소들(520, 522, 524, 526 및 528) 간 상대 위치/장소 및/또는 시간 차이들은 추가 각도들(각도들 C, E, F, G, H, I 및 J)을 정의할 수 있다. 다양한 실시 예에서, 관계는 부분들 간 그리고/또는 공유된 데이터 세트(500) 내 시간 차이, 공간 차이, 거리 차이 또는 다른 정보 차이일 수 있다.
도 6a 내지 도 6d는 대표적인 공유된 데이터 세트들(600a, 600b, 600c 및 600d)을 도시한다. 공유된 데이터 세트는 다양한 유형의 데이터 중 하나 이상을 포함할 수 있고 도 5 및 도 6a 내지 도 6d에 도시된 예들은 제한으로서가 아니라 다양한 데이터 유형을 도시하는 것으로 의도된다.
예를 들어, 공유된 데이터 세트(600a)는 지문들(602a, 604a 및 606a)을 포함할 수 있다. 지문들(602a-606a)은 예를 들어, 지문 스캐너와 같은 생체 인식 스캔 장치에 의해 캡처될 수 있다. 지문들(602a-606a)은 시간이 지나면서 캡처될 수 있어, 지문들(602a-606a) 각각이 공유된 데이터 세트(600a)의 일 부분을 구성하게 된다. 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108))의 프로세서는 공유된 데이터 세트의 부분들(예를 들어, 지문들(602a-606a))에서 요소들(600a), 이를테면 요소들(620a-638a)을 선택할 수 있다. 몇몇 실시 예에서, 요소들(620a-638a)은 지문 미뉴셔(fingerprint minutiae)를 포함할 수 있다. 요소들(620a-638a)은 컴퓨팅 장치의 프로세서가 부분 내(예를 들어, 지문들(602a-606a) 중 하나 내) 각각의 요소를 식별 또는 인덱싱할 수 있게 하는 정보, 이를테면 그것의 부분 내 요소의 장소 또는 위치를 식별하는 정보를 포함할 수 있다. 또한, 각각의 부분은 타임 스탬프 또는 다른 시간 요소와 연관될 수 있다.
부분들(예를 들어, 지문들(602a-606a)) 및/또는 요소들(620a-638a)은 적어도 하나의 다른 데이터 요소에 대한 하나 이상의 관계가 결정될 수 있는 데이터, 이를테면 위치, 장소 및/또는 시간 정보를 포함할 수 있다. 몇몇 실시 예에서, 부분들 및/또는 요소들은 요소들 간 하나 이상의 관계가 결정될 수있는 데이터를 포함할 수 있다. 몇몇 실시 예에서, 관계들은 요소들 간 하나 이상의 비교 차이에 기초할 수 있다.
다른 예로, 공유된 데이터 세트(600b)는 사운드 기록들(602b, 604b 및 606b)을 포함할 수 있다. 사운드 기록들은 예를 들어, 마이크로폰 또는 유사한 장치에 의해 캡처될 수 있거나, 또는 사운드 기록들은 그러한 장치로부터 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108))의 프로세서에 의해 전자적으로 수신될 수 있다. 사운드 기록들(602b-606b)은 시간이 지나면서 캡처될 수 있고 시간 정보를 포함하거나 그와 연관될 수 있다. 각각의 사운드 기록들(602b-606b)은 공유된 데이터 세트(600b)의 일 부분을 구성할 수 있다. 추가적으로 또는 대안적으로, 단일 기록(예를 들어, 602b, 604b 또는 606b 중 하나)은 부분들, 예를 들어, 특정 시간 지속 기간의 부분들, 주파수 범위에 의해 구분되는 부분들, 진폭 범위들에 의해 구분되는 부분들 및 다른 구분들로 구분될 수 있다.
컴퓨팅 장치의 프로세서는 사운드 기록들(602b-606b)의 부분들에서 요소들, 이를테면 요소들(620b-630b)을 선택할 수 있다. 요소들(620b-630b)은 사운드 기록 부분 내 각각의 요소의 식별 또는 인덱싱을 가능하게 하는 정보, 이를테면 그것의 부분 내 요소의 장소 또는 위치를 식별하는 정보를 포함할 수 있다. 각각의 요소(620b-630b)는 타임 스탬프 또는 다른 시간 요소 및/또는 다른 정보, 이를테면 주파수, 피치 및 진폭, 어택률, 감쇠율, 지속 시간과 연관될 수 있다.
부분들(예를 들어, 하나 이상의 사운드 기록(602b)) 및/또는 요소들(620b-630b)은 적어도 하나의 다른 데이터 요소에 대한 하나 이상의 관계가 결정될 수 있는 데이터, 이를테면 위치, 장소 및/또는 시간 정보를 포함할 수 있다. 몇몇 실시 예에서, 부분들 및/또는 요소들은 요소들 간 하나 이상의 관계를 결정할 수있는 데이터를 포함할 수 있다. 몇몇 실시 예에서, 관계들은 쇼오들 간 하나 이상의 비교 차이에 기초할 수 있다.
다른 예로, 공유된 데이터 세트(600c)는 이미지들(602c, 604c 및 606c)을 포함할 수 있다. 이미지들(602c-606c)은 예를 들어, 도 6c에 도시된 바와 같은 얼굴을 가질 수 있으나, 다양한 실시 예에서 이미지들(602c-606c)은 임의의 이미지일 수 있다. 이미지들(602c-606c)은 예를 들어, 카메라 또는 다른 이미지 수신 장치에 의해 캡처될 수 있다. 이미지들(602c-606c)은 시간이 지나면서 캡처될 수 있어, 이미지들(602c-606c) 각각이 공유된 데이터 세트(600a)의 일 부분을 구성하게 된다. 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108))의 프로세서는 공유된 데이터 세트의 부분들(예를 들어, 이미지들(602c-606c))에서 요소들(600c), 이를테면 요소들(620c-636c)을 선택할 수 있다. 예를 들어, 컴퓨팅 장치의 프로세서는 안면 인식 또는 다른 유사한 시스템을 사용하여 요소들(620c-636c)을 선택할 수 있다. 요소들(620c-636c)은 컴퓨팅 장치의 프로세서가 부분 내(예를 들어, 이미지들(602c-606c) 중 하나 내) 각각의 요소를 식별 또는 인덱싱할 수 있게 하는 정보, 이를테면 그것의 부분 내 요소의 장소 또는 위치를 식별하는 정보를 포함할 수 있다. 또한, 각각의 부분은 타임 스탬프 또는 다른 시간 요소와 연관될 수 있다.
부분들(예를 들어, 이미지들(602c-606c)) 및/또는 요소들(620c-636c)은 적어도 하나의 다른 데이터 요소에 대한 하나 이상의 관계가 결정될 수 있는 데이터, 이를테면 위치, 장소 및/또는 시간 정보를 포함할 수 있다. 몇몇 실시 예에서, 요소들(620c-636c)은 이미지 정보, 이를테면 색상, 색조, 색깔, 그레이 스케일, RGB 정보, 팬톤 색상 번호, 디지털 색상 코드(예를 들어, 하이퍼 텍스트 마크업 언어 색상 코드), 채도, 밝기, 대비 또는 기타 이미지 정보와 연관될 수 있다. 몇몇 실시 예에서, 부분들 및/또는 요소들은 요소들 간 하나 이상의 관계가 결정될 수있는 데이터를 포함할 수 있다. 몇몇 실시 예에서, 관계들은 쇼오들 간 하나 이상의 비교 차이에 기초할 수 있다. 몇몇 실시 예에서, 비교 차이들은 색상, 색조, 색깔 등을 나타내는 정보의 상대, 선형 및/또는 수치 차이들을 비롯한 이미지 정보의 차이들을 포함할 수 있다.
다른 예로, 공유된 데이터 세트(600d)는 하나 이상의 생체 인식 데이터 유닛 또는 구성 요소, 이를테면 DNA 샘플(602d, 604d 및 606d)을 포함할 수 있다. 생체 인식 데이터는 적절한 스캐너 또는 캡처 장치에 의해 캡처되고 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108))의 프로세서에 의해 수신될 수 있다. 생체 인식 데이터는 시간이 지나면서 캡처될 수 있고 시간 정보를 포함하거나 그와 연관될 수 있다. 공유된 데이터 세트(600d)는 각각이 공유된 데이터 세트의 일 부분(예를 들어, 두 개 이상의 별개의 생체 인식 샘플)을 구성할 수 있는 두 개 이상의 생체 인식 데이터 구성 요소 또는 유닛을 포함할 수 있다. 추가적으로 또는 대안적으로, 생체 인식 샘플은 생체 인식 샘플에서 이용 가능한 정보에 기초하여 구분들이 결정될 수 있는 부분들로 구분될 수 있다. 예를 들어, DNA 샘플들(602d, 604d 및 606d)이 뉴클레오타이드 유형(예를 들어, 아데닌, 구아닌, 시토신 또는 티민), 염기쌍 유형(예를 들어, 아데닌-티민, 시토신-구아닌)에 의해 특정 염기쌍 길이 또는 수, DNA 백본의 특정 길이 또는 다른 구분으로 구분될 수 있다.
컴퓨팅 장치의 프로세서는 생체 인식 데이터 유닛(600d)의 부분들에서 요소들, 이를테면 요소들(620d-630d)을 선택할 수 있다. 요소들(620d-630d)은 생체 인식 데이터 내 각각의 요소의 식별 또는 인덱싱을 가능하게 하는 정보, 이를테면 그것의 부분 내 요소의 장소 또는 위치, 이를테면 DNA 가닥(602d)을 따르는 위치를 식별하는 정보를 포함할 수 있다. 각각의 요소(620d-630d)는 타임 스탬프 또는 다른 시간 요소와 연관될 수 있다.
부분들(예를 들어, 하나 이상의 생체 인식 데이터 유닛(602d)) 및/또는 요소들(620d-630d)은 적어도 하나의 다른 데이터 요소에 대한 하나 이상의 관계가 결정될 수 있는 데이터, 이를테면 위치, 장소 및/또는 시간 정보를 포함할 수 있다. 몇몇 실시 예에서, 부분들 및/또는 요소들은 요소들 간 하나 이상의 관계를 결정할 수있는 데이터를 포함할 수 있다. 몇몇 실시 예에서, 관계들은 쇼오들 간 하나 이상의 비교 차이에 기초할 수 있다.
도 7은 제1 컴퓨팅 장치(예를 들어,도 1b 내지 도 2의 컴퓨팅 장치(102, 104, 184, 186 및 200))를 제2 컴퓨팅 장치(예를 들어, 도 1b 내지 도 2의 컴퓨팅 장치(108, 188 및 200))에 인증하는 시스템 방법(700)을 도시한다. 도 1a 내지 도 7을 참조하면, 방법(700)은 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108, 184-188 및 200))의 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다.
블록(702)에서, 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트에서 요소들을 선택할 수 있다. 예를 들어, 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트(500)의 부분들(502, 504 및 506) 중에서 요소들(520, 522, 524, 526 및 528)을 선택할 수 있다. 다른 예로, 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트들(600a, 600b, 600c 또는 600d)에서 요소들을 선택할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트에서 랜덤으로 요소들을 선택할 수 있다.
블록(704)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들을 나타내는 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 규칙 세트는 공유된 데이터 세트에서 선택된 요소들을 식별할 수 있다. 예를 들어, 프로세서는 공유된 데이터 세트에서 선택된 요소들을 식별하는 규칙 세트를 생성할 수 있다.
몇몇 실시 예에서, 프로세서는 공유된 데이터 세트의 선택된 요소들 간 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다. 두 개 이상의 요소 간 관계는 두 개 이상의 요소 간 비교 차이, 시간 차이, 장소 차이, 위치 차이, 색상 차이, 피치 차이, 주파수 차이 또는 다른 차이를 포함할 수 있다. 다른 예로, 관계들은 세 개 이상의 요소 간 비교 차이들에 의해 정의될 수 있다. 예를 들어, 요소들(520, 522 및 524) 간 위치/장소 차이들은 세 개의 각도(각도 A, 각도 B 및 각도 D)를 정의할 수 있다. 유사하게, 요소들(520, 522, 524, 526 및 528) 간 상대 위치/장소 및/또는 시간 차이들은 추가 각도들(각도들 C, E, F, G, H, I 및 J)을 정의할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 예를 들어, 공유된 데이터 세트(, 600b, 600c 또는 600d)의 선택된 요소들 간 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다. 다양한 실시 예에서, 관계는 부분 내 시간 상대 차이, 공간 상대 차이, 거리 상대 차이 또는 다른 정보 차이일 수 있다. 요소들 간 관계(들)는 공유된 데이터 세트의 부분들 간에 결정될 수 있다.
몇몇 실시 예에서, 프로세서는 선택된 요소들의 식별자들 및 선택된 요소들 간 하나 이상의 관계의 조합을 사용하여 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 규칙 세트는 선택된 요소들 중 단지 하나의 식별자 및 하나의 선택된 요소들 및 다른 선택된 요소들의 관계들을 포함할 수 있다. 예를 들어, 규칙 세트는 다른 컴퓨팅 장치가 단지 요소(520) 및 요소(520) 및 다른 선택된 요소들(522-528)의 관계들에 대한 정보 를 사용하여 다른 선택된 요소들을 식별할 수 있게 하기에 충분한 요소(520)의 식별자 및 요소(520)의 다른 선택된 요소들(522-528)에 대한 관계들에 대한 정보를 포함할 수 있다. 몇몇 실시 예에서, 프로세서는 선택된 요소들의 식별자들 및 예를 들어, 공유된 데이터 세트들(600a, 600b, 600c 또는 600d)의 선택된 요소들 간 하나 이상의 관계의 조합을 사용하여 규칙 세트를 생성할 수 있다.
몇몇 실시 예에서, 생성된 규칙 세트는 편성 로직에 다라 편성되는 정보의 스트링으로서 포맷팅될 수 있다. 편성 로직이 효율적일수록, 생성된 규칙 세트은 작아질 수 있어, 수신 컴퓨팅 장치에 의한 보다 빠른 생성, 송신 및 처리를 가능하게 함으로써, 컴퓨팅 장치들의 프로세서들 뿐만 아니라 전송 인프라에 대한 부담을 감소시킨다.
블록(706)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들에 기초하여 제1 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 제1 결과는 데이터의 스트링을 포함할 수 있다. 몇몇 실시 예에서, 제1 결과는 공유된 데이터 세트의 선택된 요소들에서의 정보에 기초한 값을 포함할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보의 변형, 이를테면 정보 내 값들의 해시를 생성하는 것을 수행할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 요소들의 정보의 변형을 수행(예를 들어, 해시를 생성)하여 제1 결과를 생성할 수 있다.
블록(708)에서, 제1 컴퓨팅 장치의 프로세서는 규칙 세트를 제2 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(108))로 송신할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치는 규칙 세트를 포함하는 검증 요청을 제2 컴퓨팅 장치로 송신할 수 있다.
블록(710)에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치로부터 규칙 세트(또는 검증 요청)를 수신할 수 있다.
블록(712)에서, 제2 컴퓨팅 장치의 프로세서는 규칙 세트를 사용하여 공유된 데이터 세트에서 선택된 요소들을 추출할 수 있다. 예를 들어, 제2 컴퓨팅 장치의 프로세서는 각각의 선택된 요소들(520-528)의 식별자들을 사용하여 제2 컴퓨팅 장치에 저장된 공유된 데이터 세트에서 선택된 요소들을 추출 다른 예로, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들(예를 들어, 요소들(520-528) 중 하나 이상 또는 공유된 데이터 세트(600a, 600b, 600c 또는 600d)의 요소들 중 하나 이상) 중 하나의 하나 이상의 식별자 및 선택된 요소들 간 하나 이상의 관계를 사용하여 공유된 데이터 세트에서 선택된 요소들을 추출할 수 있다.
블록(714)에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들에 기초하여 제2 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 제2 결과는 데이터의 스트링을 포함할 수 있다. 몇몇 실시 예에서, 제2 결과는 공유된 데이터 세트의 선택된 요소들에서의 정보에 기초한 값을 포함할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보의 변형, 이를테면 정보 내 값들의 해시를 생성하는 것을 수행할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 요소들의 정보의 변형을 수행(예를 들어, 해시를 생성)하여 제1 결과를 생성할 수 있다. 다양한 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치가 제1 결과를 생성하기 위해 사용하는 제2 결과를 생성하는 동일한 방법을 사용할 수 있다.
블록(716)에서, 제2 컴퓨팅 장치의 프로세서는 제2 결과를 제1 컴퓨팅 장치로 송신할 수 있다.
블록(718)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치로부터 제2 결과를 수신할 수 있다.
결정 블록(720)에서, 제1 컴퓨팅 장치의 프로세서는 제1 결과가 제2 결과와 매칭하는지 여부를 결정할 수 있다. 예를 들어, 프로세서는 제1 결과 및 제2 결과의 곱이 제로와 같은지 여부를 결정할 수 있다. 다른 예로, 프로세서는 제1 결과 및 제2 결과를 비교할 수 있다. 제1 결과가 제2 결과와 매칭하지 않는다는 결정(즉, 결정 블록(720) = "아니오")에 응답하여, 블록(722)에서 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 인증되지 않았다고 결정할 수 있다.
블록(724)에서, 제1 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치가 제2 컴퓨팅 장치와 통신하는 것을 금지할 수 있다.
임의적 블록(726)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 인증되지 않았다는 표시를 송신할 수 있다. 예를 들어, 제1 컴퓨팅 장치는 표시를 제2 컴퓨팅 장치로 송신할 수 있다. 다른 예로, 제1 컴퓨팅 장치는 표시를 다른 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(108))로 송신할 수 있다.
제1 결과가 제2 결과와 매칭한다는 결정(즉, 결정 블록(720) = "예")에 응답하여, 블록(728)에서 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 인증되었다고 결정할 수 있다.
블록(730)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치와의 통신을 가능하게 할 수 있다.
임의적 블록(732)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 인증되었다는 표시를 송신할 수 있다. 예를 들어, 제1 컴퓨팅 장치는 표시를 제2 컴퓨팅 장치로 송신할 수 있다. 다른 예로, 제1 컴퓨팅 장치는 표시를 다른 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(108))로 송신할 수 있다.
그 다음 제1 컴퓨팅 장치의 프로세서는 블록(302)(도 3a, 도 3b 및도 3c)의 동작들로 진행할 수 있다.
몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서가 제2 컴퓨팅 장치와의 통신을 가능하게 한다면(예를 들어, 블록(730)), 제2 컴퓨팅 장치의 프로세서는 블록(302)(도 3a, 도 3b 및도 3c)의 동작들로 진행할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서가 제2 컴퓨팅 장치가 인증되었다는 표시를 송신한다면(예를 들어, 블록(732)), 제2 컴퓨팅 장치의 프로세서는 블록(302)(도 3a, 도 3b 및도 3c)의 동작들로 진행할 수 있다.
도 8은 방법(700)의 블록들(702 및 704)에서 수행될 수 있는 동작들을 포함하는 방법(800)을 도시한다. 도 1a 내지 도 8을 참조하면, 방법(800)은 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108, 184-188 및 200))의 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다.
도 4 및 도 7의 블록(402)의 동작들을 수행한 후, 블록(802)에서 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트의 하나 이상의 부분을 선택할 수 있다. 예를 들어, 프로세서는 공유된 데이터 세트들(500 및 600a-600d) 중 하나의 하나 이상의 부분을 선택할 수 있다.
블록(804)에서, 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트의 하나 이상의 부분 중에서 두 개 이상의 요소를 선택할 수 있다. 예를 들어, 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트(500 및 600a-600d) 중에서 두 개 이상의 요소(예를 들어, 요소들(522-528, 620a-638a, 620b-630b, 620c-636c 및 620d-630d))를 선택할 수 있다.
블록(806)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 두 개 이상의 요소 간 하나 이상의 관계를 결정할 수 있다. 몇몇 실시 예에서, 관계(들)는 공유된 데이터 세트(500 및 600a-600d)에 대하여 상술된 것들과 같이, 요소들 간 하나 이상의 비교 차이에 기초할 수 있다.
블록(808)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 두 개 이상의 요소 간에 결정된 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다. 예를 들어, 프로세서는 선택된 두 개 이상의 요소를 식별하는 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 프로세서는 공유된 데이터 세트의 선택된 요소들 간 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다. 두 개 이상의 요소 간 관계는 두 개 이상의 요소 간 비교 차이를 포함할 수 있다.
그 다음 제1 컴퓨팅 장치의 프로세서는 블록(706)(도 7)의 동작들을 수행할 수 있다.
도 9는 방법(700)의 블록들(702 및 704)에서 수행될 수 있는 동작들을 포함하는 방법(900)을 도시한다. 도 1a 내지 도 9를 참조하면, 방법(900)은 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108, 184-188 및 200))의 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다. 블록들(802 및 804)에서, 프로세서는 방법(800)의 같은 숫자로 넘버링된 블록들의 동작들을 수행할 수 있다.
블록(902)에서, 제1 컴퓨팅 장치의 프로세서는 요소들 중 하나를 주요 요소로서 선택할 수 있다. 예를 들어, 프로세서는 공유된 데이터 세트(500 및 600a-600d)에서 선택된 요소들(예를 들어, 요소들(522-528, 620a-638a, 620b-630b, 620c-636c 및 620d-630d))에서 주요 요소를 선택할 수 있다.
블록(904)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 주요 요소와 공유된 데이터 세트의 하나 이상의 다른 요소 간 하나 이상의 관계를 결정할 수 있다. 몇몇 실시 예에서, 관계(들)는 공유된 데이터 세트(500 및 600a-600d)에 대하여 상술된 것들과 같이, 요소들 간 하나 이상의 비교 차이에 기초할 수 있다.
블록(906)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 하나 이상의 다른 요소 간에 결정된 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다. 예를 들어, 프로세서는 주요 요소 및 주요 요소 및 공유된 데이터 세트의 하나 이상의 다른 요소 간 하나 이상의 관계를 식별하는 규칙 세트를 생성할 수 있다. 관계(들)은 요소들 간 하나 이상의 비교 차이를 포함할 수 있다. 예를 들어, 규칙 세트는 다른 컴퓨팅 장치가 단지 요소(520) 및 요소(520) 및 다른 선택된 요소들(522-528)의 관계들에 대한 정보 를 사용하여 공유된 데이터 세트에서 선택된 다른 요소들을 식별할 수 있게 하기에 충분한 요소(520)의 식별자 및 요소(520)의 다른 선택된 요소들(522-528)에 대한 관계들에 대한 정보를 포함할 수 있다.
그 다음 제1 컴퓨팅 장치의 프로세서는 블록(706)(도 7)의 동작들을 수행할 수 있다.
도 10은 방법(700)의 블록들(712)에서 수행될 수 있는 동작들을 포함하는 방법(1000)을 도시한다. 도 1a 내지 도 10을 참조하면, 방법(1000)은 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108, 184-188 및 200))의 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다.
도 7의 블록(710)의 동작들을 수행한 후, 블록(1002)에서 제2 컴퓨팅 장치의 프로세서는 공유된 데이터 세트를 획득할 수 있다. 예를 들어, 제2 컴퓨팅 장치의 프로세서는 메모리로부터 공유된 데이터 세트를 불러들일 수 있다.
블록(1004)에서, 제1 컴퓨팅 장치의 프로세서는 규칙 세트에 나타나는 공유된 데이터 세트의 하나 이상의 요소를 식별할 수 있다. 예를 들어, 규칙 세트는 공유된 데이터 세트에서 하나 이상의 선택된 요소를 식별할 수 있다. 다른 예로, 규칙 세트는 공유된 데이터 세트의 주요 요소를 식별할 수 있다.
블록(1006)에서, 제2 컴퓨팅 장치의 프로세서는 규칙 세트에 나타나는 하나 이상의 관계를 식별할 수 있다. 하나 이상의 관계는 공유된 데이터 세트의 요소들 중 하나 이상 요소의 하나 이상의 비교 차이에 기초할 수 있다. 하나 이상의 관계는 공유된 데이터 세트의 주요 요소와 관련될 수 있다.
블록(1008)에서, 제1 컴퓨팅 장치의 프로세서는 식별된 하나 이상의 요소 및/또는 하나 이상의 관계를 사용하여 공유된 데이터 세트에서 요소들을 추출할 수 있다. 몇몇 실시 예에서, 식별된 하나 이상의 요소 및/또는 하나 이상의 식별딘 관계는 제2 컴퓨팅 장치의 프로세서가 공유된 데이터 세트의 선택된 요소들을 식별할 수 있게 하기에 충분한 정보를 제공한다.
그 다음 제2 컴퓨팅 장치의 프로세서는 블록(714)(도 7)의 동작들을 수행할 수 있다.
도 11은 몇몇 실시 예에 따른 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치를 양방향으로 인증하는 방법(1100)을 도시한다. 도 1a 내지 도 11을 참조하면, 방법(1100)은 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108, 184-188 및 200))의 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다. 블록들(402 및 404)에서, 프로세서들은 방법(400)의 같은 숫자로 넘버링된 블록들의 동작들을 수행할 수 있다.
몇몇 실시 예에서, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치는 두 개 이상의 데이터 세트를 공유할 수 있다. 예를 들어, 제1 컴퓨팅 장치는 제1 데이터 세트를 생성 또는 컴파일링할 수 있고 제1 컴퓨팅 장치는 제1 데이터 세트를 제2 컴퓨팅 장치와 공유할 수 있다. 유사하게, 제2 컴퓨팅 장치는 제2 데이터 세트를 생성 또는 컴파일링할 수 있고 제2 데이터 세트를 제1 컴퓨팅 장치와 공유할 수 있다. 임의의 컴퓨팅 장치가 저장하거나 다른 컴퓨팅 장치와 공유할 수 있는 데이터 세트들의 수는 제한되지 않는다(데이터 세트들이 공유된 데이터 세트들이라면). 그에 따라, 방법(1100)에 대하여 아래에 설명될 동작들이 공유된 데이터 세트를 참조하였지만, 몇몇 실시 예에서 방법(1100)의 동작들은 둘 (이상의) 공유된 데이터 세트를 사용하여 수행될 수 있다.
몇몇 실시 예에서, 데이터 세트를 공유하는 것은 컴퓨팅 장치에 의해 생성되거나 그로부터 획득되는 하나 이상의 임시 아이디를 공유하는 것(즉, 송신 및/또는 수신하는 것)(예를 들어, 도 3의 동작들(302-306))을 포함할 수 있다.
블록(1102)에서, 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트(예를 들어, 제2 컴퓨팅 장치와 공유된)에서 요소들의 제1 세트를 선택할 수 있다. 예를 들어, 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트(500 및 600a-600d)의 부분들 중에서 요소들을 선택할 수 있다.
블록(1104)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들을 나타내는 제1 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 규칙 세트는 공유된 데이터 세트에서 선택된 요소들을 식별할 수 있다. 몇몇 실시 예에서, 프로세서는 공유된 데이터 세트의 선택된 요소들 간 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다. 두 개 이상의 요소 간 관계는 두 개 이상의 요소 간 비교 차이를 포함할 수 있다. 몇몇 실시 예에서, 프로세서는 선택된 요소들의 식별자들 및 선택된 요소들 간 하나 이상의 관계의 조합을 사용하여 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 규칙 세트는 선택된 요소들 중 단지 하나의 식별자 및 하나의 선택된 요소들 및 다른 선택된 요소들의 관계들을 포함할 수 있다.
블록(1106)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들에 기초하여 제1 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 제1 결과는 데이터의 스트링을 포함할 수 있다. 몇몇 실시 예에서, 제1 결과는 공유된 데이터 세트의 선택된 요소들에서의 정보에 기초한 값을 포함할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보의 변형, 이를테면 정보 내 값들의 해시를 생성하는 것을 수행할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 요소들의 정보의 변형을 수행(예를 들어, 해시를 생성)하여 제1 결과를 생성할 수 있다.
블록(1108)에서, 제1 컴퓨팅 장치의 프로세서는 규칙 세트를 제2 컴퓨팅 장치로 송신할 수 있다.
블록(1110)에서, 제2 컴퓨팅 장치의 프로세서는 공유된 데이터 세트(예를 들어, 제1 컴퓨팅 장치와 공유된)에서 요소들의 제2 세트를 선택할 수 있다. 예를 들어, 제2 컴퓨팅 장치의 프로세서는 공유된 데이터 세트(500 및 600a-600d)의 부분들 중에서 요소들을 선택할 수 있다.
블록(1112)에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들을 나타내는 제2 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 규칙 세트는 공유된 데이터 세트에서 선택된 요소들을 식별할 수 있다. 몇몇 실시 예에서, 프로세서는 공유된 데이터 세트의 선택된 요소들 간 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다. 두 개 이상의 요소 간 관계는 두 개 이상의 요소 간 비교 차이를 포함할 수 있다. 몇몇 실시 예에서, 프로세서는 선택된 요소들의 식별자들 및 선택된 요소들 간 하나 이상의 관계의 조합을 사용하여 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 규칙 세트는 선택된 요소들 중 단지 하나의 식별자 및 하나의 선택된 요소들 및 다른 선택된 요소들의 관계들을 포함할 수 있다.
블록(1114)에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들에 기초하여 제2 결과를 생성할 수 있다. 몇몇 실시 예에서, 제2 결과는 데이터의 스트링을 포함할 수 있다. 몇몇 실시 예에서, 제2 결과는 공유된 데이터 세트의 선택된 요소들에서의 정보에 기초한 값을 포함할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보의 변형, 이를테면 정보 내 값들의 해시를 생성하는 것을 수행할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 요소들의 정보의 변형을 수행(예를 들어, 해시를 생성)하여 제1 결과를 생성할 수 있다.
블록(1116)에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치로부터 제1 규칙 세트를 수신할 수 있다.
블록(1118)에서, 제2 컴퓨팅 장치의 프로세서는 제2 규칙 세트를 제1 컴퓨팅 장치로 송신할 수 있다.
블록(1120)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치로부터 제2 규칙 세트를 수신할 수 있다.
블록(1122)에서, 제1 컴퓨팅 장치의 프로세서는 제2 규칙 세트를 사용하여 공유된 데이터 세트에서 선택된 요소들(즉, 제2 컴퓨팅 장치에 의해 선택된 요소들)을 추출할 수 있다. 예를 들어, 제1 컴퓨팅 장치의 프로세서는 각각의 선택된 요소들의 식별자들을 사용하여 제1 컴퓨팅 장치에 저장된 공유된 데이터 세트에서 선택된 요소들을 추출할 수 있다. 다른 예로, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들 중 하나의 요소의 하나 이상의 식별자 및 선택된 요소들 간 하나 이상의 관계를 사용하여 공유된 데이터 세트에서 선택된 요소들을 추출할 수 있다.
블록(1124)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들에 기초하여 제3 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 제3 결과는 데이터의 스트링을 포함할 수 있다. 몇몇 실시 예에서, 제3 결과는 공유된 데이터 세트의 선택된 요소들에서의 정보에 기초한 값을 포함할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보의 변형, 이를테면 정보 내 값들의 해시를 생성하는 것을 수행할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 요소들의 정보의 변형을 수행(예를 들어, 해시를 생성)하여 제3 결과를 생성할 수 있다.
"변형(transformation)"은 보다 광범위하게(= 임의의 수학 연산, 수 시프팅, 임의의 조합 또는 연산; 임의의 언어로의 번역) 정의될 필요가 있다.
다양한 실시 예에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 제2 결과를 생성하기 위해 사용하는 제3 결과를 생성하는 동일한 방법을 사용할 수 있다.
블록(1126)에서, 제1 컴퓨팅 장치의 프로세서는 제3 결과를 제2 컴퓨팅 장치로 송신할 수 있다.
블록(1128)에서, 제2 컴퓨팅 장치의 프로세서는 제1 규칙 세트를 사용하여 공유된 데이터 세트에서 선택된 요소들(즉, 제1 컴퓨팅 장치에 의해 선택된 요소들)을 추출할 수 있다. 예를 들어, 제2 컴퓨팅 장치의 프로세서는 각각의 선택된 요소들의 식별자들을 사용하여 제2 컴퓨팅 장치에 저장된 공유된 데이터 세트에서 선택된 요소들을 추출할 수 있다. 다른 예로, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들 중 하나의 요소의 하나 이상의 식별자 및 선택된 요소들 간 하나 이상의 관계를 사용하여 공유된 데이터 세트에서 선택된 요소들을 추출할 수 있다.
블록(1130)에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들에 기초하여 제4 결과를 생성할 수 있다. 몇몇 실시 예에서, 제4 결과는 데이터의 스트링을 포함할 수 있다. 몇몇 실시 예에서, 제4 결과는 공유된 데이터 세트의 선택된 요소들에서의 정보에 기초한 값을 포함할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보의 변형, 이를테면 정보의 값들의 해시를 생성하는 것을 수행할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 요소들의 정보의 변형을 수행하여 제4 결과를 생성할 수 있다. 다양한 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치가 제1 결과를 생성하기 위해 사용하는 제1 결과를 생성하는 동일한 방법을 사용할 수 있다.
블록(1132)에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치로부터 제3 결과를 수신할 수 있다.
블록(1136)에서, 제2 컴퓨팅 장치의 프로세서는 제4 결과를 제1 컴퓨팅 장치로 송신할 수 있다.
블록(1136)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치로부터 제4 결과를 수신할 수 있다.
결정 블록(1138)에서, 제1 컴퓨팅 장치의 프로세서는 제1 결과가 제4 결과와 매칭하는지 여부를 결정할 수 있다. 예를 들어, 제1 컴퓨팅 장치의 프로세서는 공유된 데이터 세트에서 선택된 요소들을 사용하여 제1 컴퓨팅 장치의 프로세서에 의해 생성되는 제1 결과가 공유된 데이터 세트에서 선택된 요소들을 사용하여 제2 컴퓨팅 장치의 프로세서에 의해 생성되는 제4 결과와 매칭하는지 여부를 결정할 수 있다. 몇몇 실시 예에서, 비교는 제1 결과 및 제4 결과의 차이가 제로와 같은지 여부를 결정하는 것을 포함할 수 있다.
제1 결과가 제4 결과와 매칭하지 않는다는 결정(즉, 결정 블록(1138) = "아니오")에 응답하여, 블록(1140)에서 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 인증되지 않았다고 결정할 수 있다.
블록(1142)에서, 제1 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치가 제2 컴퓨팅 장치와 통신하는 것을 금지할 수 있다.
임의적 블록(1144)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 인증되지 않았다는 표시를 송신할 수 있다. 예를 들어, 제1 컴퓨팅 장치는 표시를 제2 컴퓨팅 장치로 송신할 수 있다. 다른 예로, 제1 컴퓨팅 장치는 표시를 다른 컴퓨팅 장치로 송신할 수 있다.
제2 결과가 제3 결과와 매칭한다는 결정(즉, 결정 블록(1138) = "예")에 응답하여, 블록(1146)에서 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 인증되었다고 결정할 수 있다.
블록(1148)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치와의 통신을 가능하게 할 수 있다.
임의적 블록(1150)에서, 제1 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 인증되었다는 표시를 송신할 수 있다. 예를 들어, 제1 컴퓨팅 장치는 표시를 제2 컴퓨팅 장치로 송신할 수 있다. 다른 예로, 제1 컴퓨팅 장치는 표시를 다른 컴퓨팅 장치로 송신할 수 있다.
다양한 실시 예에서, 그 다음 제1 컴퓨팅 장치의 프로세서는 블록(302)(도 3a, 도 3b 및도 3c)로 진행할 수 있다.
결정 블록(1152)에서, 제2 컴퓨팅 장치의 프로세서는 제2 결과가 제3 결과와 매칭하는지 여부를 결정할 수 있다. 제2 결과가 제3 결과와 매칭하지 않는다는 결정(즉, 결정 블록(1152) = "아니오")에 응답하여, 블록(1154)에서 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치가 인증되지 않았다고 결정할 수 있다.
블록(1156)에서, 제2 컴퓨팅 장치의 프로세서는 제2 컴퓨팅 장치가 제1 컴퓨팅 장치와 통신하는 것을 금지할 수 있다.
임의적 블록(1158)에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치가 인증되지 않았다는 표시를 송신할 수 있다. 예를 들어, 제2 컴퓨팅 장치는 표시를 제1 컴퓨팅 장치로 송신할 수 있다. 다른 예로, 제2 컴퓨팅 장치는 표시를 다른 컴퓨팅 장치로 송신할 수 있다.
제2 결과가 제3 결과와 매칭한다는 결정(즉, 결정 블록(1152) = "예")에 응답하여, 블록(1160)에서 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치가 인증되었다고 결정할 수 있다.
블록(1162)에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치와의 통신을 가능하게 할 수 있다.
임의적 블록(1164)에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치가 인증되었다는 표시를 송신할 수 있다. 예를 들어, 제2 컴퓨팅 장치는 표시를 제1 컴퓨팅 장치로 송신할 수 있다. 다른 예로, 제2 컴퓨팅 장치는 표시를 다른 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(108))로 송신할 수 있다.
다양한 실시 예에서, 그 다음 제2 컴퓨팅 장치의 프로세서는 블록(302)(도 3a, 도 3b 및도 3c)로 진행할 수 있다.
도 12는 제1 컴퓨팅 장치(예를 들어,도 1b 내지 도 2의 컴퓨팅 장치(102, 104, 184, 186 및 200))를 제2 컴퓨팅 장치(예를 들어, 도 1b 내지 도 2의 컴퓨팅 장치(108, 188 및 200))에 인증하는 시스템 방법(1200)을 도시한다. 도 1a 내지 도 12를 참조하면, 방법(1200)은 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108, 184-188 및 200))의 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다. 블록들(706-732)에서, 프로세서들은 방법(700)의 같은 숫자로 넘버링된 블록들의 동작들을 수행할 수 있다.
블록들(1202 및 1204)에서, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치의 프로세서들은 제1 임시 아이디들을 공유할 수 있다. 예를 들어, 상술한 바와 같이, 제1 컴퓨팅 장치는 하나 이상의 제1 임시 아이디를 생성 또는 획득할 수 있고 제1 컴퓨팅 장치는 하나 이상의 제1 임시 아이디를 제2 컴퓨팅 장치와 공유(예를 들어, 그것으로 송신)할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치는 시간이 지나면서 제1 임시 아이디들을 제2 컴퓨팅 장치와 공유할 수 있다. 몇몇 실시 예에서, 공유된 제1 임시 아이디들(즉, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치 양자에 저장된)이 공유된 데이터 세트를 구성할 수 있다. 몇몇 실시 예에서, 블록들(1202 및 1204)의 동작들은 공유된 데이터 세트를 동적으로 변경하기 위해, 방법(400)의 하나 이상의 동작을 포함할 수 있다.
블록(1206)에서, 제1 컴퓨팅 장치의 프로세서는 하나 이상의 제1 임시 아이디를 선택할 수 있다. 몇몇 실시 예에서, 선택된 제1 임시 아이디들은 제1 임시 아이디들의 공유된 데이터 세트의 부분들인 것으로 고려될 수 있다. 몇몇 실시 예에서, 선택된 제1 임시 아이디들은 이전에 사용된 제1 임시 아이디들일 수 있다. 예를 들어, 선택된 제1 임시 아이디들은 이전에 수행된 인증 동작에서 제1 컴퓨팅 장치를 인증하기 위해 사용되었을 수 있다.
블록(1208)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 하나 이상의 임시 아이디 내에서 요소들을 선택할 수 있다. 몇몇 실시 예에서, 선택된 요소들은 선택된 하나 이상의 임시 아이디에 포함되는 임의의 정보를 포함할 수 있다.
블록(1210)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들을 나타내는 규칙 세트를 생성할 수 있다. 몇몇 실시 예에서, 규칙 세트는 선택된 하나 이상의 제1 임시 아이디에서 선택된 요소들을 식별할 수 있다. 몇몇 실시 예에서, 프로세서는 선택된 임시 아이디들의 선택된 요소들 간 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다.
블록(706)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들을 변형시켜 제1 결과를 생성할 수 있다. 블록(412)에서, 제1 컴퓨팅 장치의 프로세서는 규칙 세트 및 제1 결과를 제2 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(108))로 송신할 수 있다. 블록(414)에서, 제2 컴퓨팅 장치의 프로세서는 규칙 세트 및 제1 결과를 수신할 수 있다.
블록(1212)에서, 제2 컴퓨팅 장치의 프로세서는 규칙 세트를 사용하여 제2 컴퓨팅 장치에 저장된 제1 임시 아이디에서 선택된 요소들을 추출할 수 있다. 예를 들어, 제2 컴퓨팅 장치의 프로세서는 각각의 선택된 요소들의 식별자들을 사용하여 제2 컴퓨팅 장치에 저장된 제1 임시 아이디들에서 선택된 요소들을 추출할 수 있다. 다른 예로, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들 중 하나의 요소의 하나 이상의 식별자 및 선택된 요소들 간 하나 이상의 관계를 사용하여 제1 임시 아이디들에서 선택된 요소들을 추출할 수 있다.
제2 컴퓨팅 장치의 프로세서는 블록(714)에서 추출된 요소들을 변형시켜 제2 결과를 생성할 수 있고 블록(716)에서 제2 결과를 제1 컴퓨팅 장치로 송신할 수 있다. 위에서 상당히 설명된 바와 같이, 제1 컴퓨팅 장치의 프로세서는 블록(718)에서 제2 컴퓨팅 장치로부터 제2 결과를 수신할 수 있고 결정 블록(720)에서 제1 결과가 제2 결과와 매창하는지 여부를 결정할 수 있다.
도 13은 몇몇 실시 예에 따른 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치를 양방향으로 인증하는 방법(1300)을 도시한다. 도 1a 내지 도 13을 참조하면, 방법(1300)은 컴퓨팅 장치(예를 들어, 컴퓨팅 장치들(102-108, 184-188 및 200))의 프로세서(예를 들어, 프로세서(202) 및/또는 기타)에 의해 구현될 수 있다. 블록들(1104-1164)에서, 프로세서들은 방법(1100)의 같은 숫자로 넘버링된 블록들의 동작들을 수행할 수 있다.
블록들(1301a 및 1301b)에서, 제1 컴퓨팅 장치의 프로세서 및 제2 컴퓨팅 장치의 프로세서들은 임시 아이디들을 공유할 수 있다. 예를 들어, 상술한 바와 같이, 제1 컴퓨팅 장치는 하나 이상의 제1 임시 아이디를 생성 또는 획득할 수 있고 제1 컴퓨팅 장치는 하나 이상의 제1 임시 아이디를 제2 컴퓨팅 장치와 공유(예를 들어, 그것으로 송신)할 수 있다. 몇몇 실시 예에서, 제1 컴퓨팅 장치는 시간이 지나면서 제1 임시 아이디들을 제2 컴퓨팅 장치와 공유할 수 있다. 몇몇 실시 예에서, 공유된 제1 임시 아이디들(즉, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치 양자에 저장된)이 공유된 데이터 세트를 구성할 수 있다.
추가적으로 또는 대안적으로, 상술한 바와 같이, 몇몇 실시 예에서, 제2 컴퓨팅 장치는 하나 이상의 제2 임시 아이디를 생성 또는 획득할 수 있고 제2 컴퓨팅 장치는 하나 이상의 제2 임시 아이디를 제1 컴퓨팅 장치와 공유(예를 들어, 그것으로 송신)할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치는 시간이 지나면서 제2 임시 아이디들을 제1 컴퓨팅 장치와 공유할 수 있다. 몇몇 실시 예에서, 공유된 제2 임시 아이디들(즉, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치 양자상에 저장된)이 제2 공유된 데이터 세트를 구성할 수 있다.
블록(1306)의 동작들에서, 몇몇 실시 예에서, 제2 컴퓨팅 장치는 제1 컴퓨팅 장치로부터 수신된 제1 임시 아이디들로 구성되는 공유된 데이터 세트에서 제2 임시 아이디들을 선택할 수 있다. 또한, 몇몇 실시 예에서, 제2 컴퓨팅 장치는 제2 컴퓨팅 장치에 의해 획득되고 제1 컴퓨팅 장치와 공유된 제2 임시 아이디들로 구성되는 공유된 데이터 세트에서 제2 임시 아이디들을 선택할 수 있다.
그에 따라, 몇몇 실시 예에서, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치는 두 개 이상의 데이터 세트를 공유할 수 있다.
몇몇 실시 예에서, 블록들(1301a 및 1301b)의 동작들은 공유된 데이터 세트(들)를 동적으로 변경하기 위해, 방법(400)의 하나 이상의 동작을 포함할 수 있다.
블록(1302)에서, 제1 컴퓨팅 장치의 프로세서는 하나 이상의 제1 임시 아이디를 선택할 수 있다. 몇몇 실시 예에서, 제1 임시 아이디들은 제2 컴퓨팅 장치와 공유되었을 수 있어, 제1 임시 아이디들은 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치에 의해 공유되는 데이터 세트가 된다. 몇몇 실시 예에서, 선택된 제1 임시 아이디들은 제1 임시 아이디들의 공유된 데이터 세트의 부분들일 수 있다.
블록(1304)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 하나 이상의 제1 임시 아이디내에서 제1 요소들을 선택할 수 있다.
블록(1104)에서, 제1 컴퓨팅 장치의 프로세서는 선택된 제1 요소들을 나타내는 제1 규칙 세트를 생성할 수 있다.
블록(1306)에서, 제2 컴퓨팅 장치의 프로세서는 하나 이상의 제2 임시 아이디를 선택할 수 있다. 다양한 실시 예에서, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치는 하나 이상의 데이터 세트를 공유할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치와 제1 공유된 데이터 세트에서 제2 임시 아이디들을 선택할 수 있다. 몇몇 실시 예에서, 제2 컴퓨팅 장치의 프로세서는 제1 컴퓨팅 장치와 제2 공유된 데이터 세트에서 제2 임시 아이디들을 선택할 수 있다. (한편 제1 컴퓨팅 장치는 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치 양자에 의해 공유되는 제1 데이터 세트에서 하나 이상의 제1 임시 아이디를 선택할 수 있다).
블록(1308)에서, 제2 컴퓨팅 장치의 프로세서는 선택된 하나 이상의 제2 임시 아이디에서 제2 요소들을 선택할 수 있다.
블록(1112)에서, 제2 컴퓨팅 장치의 프로세서는 선택된 제2 요소들을 나타내는 제2 규칙 세트를 생성할 수 있다.
블록(1310)에서, 제1 컴퓨팅 장치의 프로세서는 수신된 제2 규칙 세트를 사용하여 제2 임시 아이디들에서 선택된 요소들(즉, 제2 컴퓨팅 장치에 의해 선택된 요소들)을 추출할 수 있다. 예를 들어, 제1 컴퓨팅 장치의 프로세서는 각각의 선택된 요소들의 식별자들을 사용하여 제1 컴퓨팅 장치에 저장된 제2 임시 아이디들에서 선택된 요소들을 추출할 수 있다. 다른 예로, 제1 컴퓨팅 장치의 프로세서는 선택된 요소들 중 하나의 요소의 하나 이상의 식별자 및 선택된 요소들 간 하나 이상의 관계를 사용하여 제2 임시 아이디들에서 선택된 요소들을 추출할 수 있다.
블록(1312)에서, 제2 컴퓨팅 장치의 프로세서는 제1 규칙 세트를 사용하여 제1 임시 아이디들에서 선택된 요소들(즉, 제1 컴퓨팅 장치에 의해 선택된 요소들)을 추출할 수 있다. 예를 들어, 제2 컴퓨팅 장치의 프로세서는 각각의 선택된 요소들의 식별자들을 사용하여 제2 컴퓨팅 장치에 저장된 제1 임시 아이디들에서 선택된 요소들을 추출할 수 있다. 다른 예로, 제2 컴퓨팅 장치의 프로세서는 선택된 요소들 중 하나의 요소의 하나 이상의 식별자 및 선택된 요소들 간 하나 이상의 관계를 사용하여 제1 임시 아이디들에서 선택된 요소들을 추출할 수 있다.
다양한 실시 예는 동적으로 변화하는 공유된 정보 컨텍스트를 이용함으로써 통신 네트워크상에서 컴퓨팅 장치들의 검증을 향상시키고 개선한다. 정보 컨텍스트는 예를 들어, 공유된 데이터 세트를 포함할 수 있다. 몇몇 실시 예에서, 공유된 데이터 세트는 인증 및/또는 보안 트랜잭션들 동안 공유되는 컴퓨팅 장치의 두 개 이상의 임시 아이디를 포함할 수 있다. 몇몇 실시 예에서, 임시 아이디들은 두 컴퓨팅 장치 중 하나 또는 양자를 인증하는 데 이전에 사용되었을 수 있다. 이는 공유된 데이터 세트가 두 컴퓨팅 장치에 고유한 방식으로 시간이 지나면서 컴파일링될 수 있게 한다. 이러한 방식으로 공유된 데이터 세트를 빌드업하는 것은 두 컴퓨팅 장치 간 통신의 이력 컨텍스트에 고유한 공유된 데이터 세트를 보유할 수 있게 한다. 추가적으로, 그러한 공유된 데이터 세트는 예측 불가능한 방식으로 빈번하게 변화함으로써, 컴퓨팅 장치들 중 하나가 위태롭게 되고 공유된 데이터 세트가 도용되었더라도 컴퓨팅 장치들이 서로 쉽게 인증하고 사칭하는 자들을 인식할 수 있음을 보장한다. 공유된 데이터 세트는 때때로, 주기적으로 그리고/또는 트리거링 이벤트가 발생하면(예를 들어, 하나 또는 다른 컴퓨팅 장치가 침해되었다고 의심되면) 컴퓨팅 장치들 중 하나 또는 양자에 의해 변경될 수 있다. 공유된 데이터 세트를 변화시키는 것 또는 변경하는 것은 데이터 세트를 재배열시키는 것, 데이터 세트에 정보를 추가하는 것 그리고/또는 데이터 세트에서 정보를 없애는 것을 포함할 수 있다.
다양한 실시 예는 참여 통신 장치들의 인증을 가능하게 함으로써, 각각의 참여 컴퓨팅 장치, 뿐만 아니라 전체 통신 시스템의 기능을 개선할 수 있다. 다양한 실시 예는 보건 기록 관리, 보안 통신(예를 들어, 정부, 사업체, 정보 기관 등), 공공 기록 관리 시스템, 투표 시스템, 금융 서비스 시스템, 보안 중개 시스템 및 기타 많은 다른 시스템을 비롯한 광범위한 통신 및/또는 정보 트랜잭션 상황에서 각각의 참여 컴퓨팅 장치의 기능을 개선한다. 다양한 실시 예는 또한 사물 인터넷(Internet of Things)의 기능 및 다양한 IoT 장치 사이 또는 IoT 장치 및 IoT 장치 제어기, 이를테면 라우터, 서버, IoT 허브 또는 다른 유사한 장치 간 통신을 개선할 수도 있다. 특히, IoT 환경에서 구현될 때, 다양한 실시 예는 특히 사람의 개입 없이 분산 서비스 거부 공격(DDoS)을 방지하는 데 사용될 수 있다. 다양한 실시 예는 또한 원격 제어, 반자율 및 자율 차량들의 기능을 개선할 수도 있다. 다양한 실시 예는 특정 컴퓨팅 장치들의 참여가 인증될 수 있기 때문에, 인증 절차가 참여자가 실제로 정보 트랜잭션에 참여함을 추정하는 증거를 생성할 수 있는 거부할 수 없는 정보 거래의 성능을 가능하게 함으로써 통신 시스템의 기능을 개선할 수 있다.
도시되고 설명된 다양한 실시 예는 단지 청구범위의 다양한 특징을 설명하기 위한 예로서 제공된다. 그러나, 임의의 주어진 실시 예와 관련하여 도시되고 설명된 특징들은 반드시 관련 실시 예로 제한되는 것은 아니며 도시되고 설명된 다른 실시 예들과 함께 사용되거나 조합될 수 있다. 또한, 청구범위는 임의의 하나의 예시적인 실시 예에 의해 제한하려는 것이 아니다. 예를 들어, 방법들(300, 300a, 300b, 300c, 400, 700, 800, 900, 1000, 1100, 1200 및 1300)의 하나 이상의 동작은 방법들(300, 300a, 300b, 300c, 400, 700, 800, 900, 1000, 1100, 1200 및 1300)의 하나 이상의 동작으로 대체되거나 조합될 수 있다.
도 14는 다양한 실시 예를 구현하는 데 적합한 모바일 무선 컴퓨팅 장치(1400)의 구성요소 블록도이다. 도 1a 내지 도 14를 참조하면, 모바일 무선 통신 장치(1400)는 터치 스크린 제어기(1406) 및 내부 메모리(1404)에 결합되는 프로세서(1402)를 포함할 수 있다. 프로세서(1402)는 범용 또는 전용 처리 작업들을 위해 설계된 하나 이상의 멀티 코어 집적 회로일 수 있다. 내부 메모리(1404)는 휘발성 또는 비휘발성 메모리일 수 있고 또한 보안 및/또는 암호화된 메모리 또는 비보안 및/또는 암호화되지 않은 메모리 또는 이들의 임의의 조합일 수도 있다. 터치 스크린 제어기(1406) 및 프로세서(1402)는 또한 터치 스크린 패널(1412), 이를테면 저항 감지 터치 스크린, 용량 감지 터치 스크린, 적외선 감지 터치 스크린 등에 결합될 수 있다. 또한, 모바일 무선 통신 장치(1400)의 디스플레이는 터치 스크린 기능을 가질 필요는 없다.
모바일 무선 통신 장치(1400)는 통신을 송수신하기 송수신기(1408)위해 서로 그리고/또는 프로세서(1402)에 결합되는 두 개 이상의 무선 신호 (예를 들어, 블루투스, 지그비, 와이파이, 무선 주파수(RF) 등) 및 안테나(1410)를 가질 수 있다. 송수신기들(1408) 및 안테나들(1410)은 다양한 무선 전송프로토콜 스택 및 인터페이스를 구현하기 위해 상술된 회로와 사용될 수 있다. 모바일 무선 통신 장치(1400)는 프로세서 및 안테나들(1410)에 결합되어 둘 이상의 무선 액세스 기술을 통해 둘 이상의 셀룰러 네트워크를 통한 통신을 가능하게 하는 하나 이상의 셀룰러 네트워크 무선 모뎀 칩(들)(1416)을 포함할 수 있다.
모바일 무선 통신 장치(1400)는 프로세서(1402)에 결합되는 주변 무선 장치 연결 인터페이스(1418)를 포함할 수 있다. 주변 무선 장치 연결 인터페이스(1418)는 하나의 유형의 연결을 수용하도록 특유하게 구성될 수 있거나 USB, FireWire, Thunderbolt 또는 PCIe와 같은 공통 또는 독점적인 다양한 유형의 물리적 및 통신 연결을 수용하도록 구성될 수 있다. 주변 무선 장치 연결 인터페이스(1418)는 또한 유사하게 구성된 주변 장치 무선 장치 연결 포트(도시되지 않음)에 결합될 수 있다.
모바일 무선 통신 장치(1400)는 또한 오디오 출력들을 제공하기 위한 스피커들(1414)을 포함할 수 있다. 모바일 무선 통신 장치(1400)는 또한 여기세서 논의된 모든 또는 몇몇 구성 요소를 포함하기 위해 플라스틱, 금속 또는 재료들의 조합으로 구성된 하우징(1420)을 포함할 수 있다. 모바일 무선 통신 장치(1400)는 일회용 배터리 또는 충전용 배터리와 같이 프로세서 (1402)에 결합되는 전원(1422)을 포함할 수 있다. 충전용 배터리는 또한 모바일 무선 통신 장치(1400) 외부 소스로부터 충전 전류를 수용하기 위한 주변 무서 장치 연결 포트에 결합될 수도 있다. 모바일 무선 통신 장치(1400)는 또한 사용자 입력들을 수신하기 위한 물리 버튼(1424)을 포함할 수 있다. 모바일 무선 통신 장치(1400)는 또한 모바일 무선 통신 장치(1400)를 턴 온 및 오프하기 위한 전원 버튼(1426)을 포함할 수 있다.
다른 형태들의 컴퓨팅 장치들이 또한 다양한 양태로부터 이점을 얻을 수 있다. 그러한 컴퓨팅 장치들은 통상적으로 예시적인 랩탑 컴퓨터(150)를 도시하는 도 15에 도시된 구성요소들을 포함한다. 도 1a 내지 도 15를 참조하면, 컴퓨터(1500)는 일반적으로 휘발성 메모리(1502) 및 대용량 비휘발성 메모리, 이를테면 디스크 드라이브(1503)에 결합되는 프로세서(1501)를 포함한다. 컴퓨터(1500)는 또한 프로세서(1501)에 결합되는 CD(compact disc) 및/또는 DVD 드라이브(1504)를 포함할 수 있다. 컴퓨터(1500)는 또한 프로세서(1501)를 네트워크에 연결하기 위한 네트워크 연결 회로(1505)와 같은 데이터 연결을 설정하거나 외부 메모리 장치들을 수신하기 위해 프로세서(1501)에 결합되는 다수의 커넥터 포트를 포함할 수 있다. 컴퓨터(1500)는 또한 디스플레이(1507), 키보드(1508), 포인팅 디바이스 이를테면 트랙패드(1510) 및 다른 유사한 장치들을 포함할 수 있다.
다양한 실시 예는 컴퓨팅 장치를 통신 네트워크의 네트워크 요소로서 채용할 수 있다. 그러한 네트워크 요소들은 통상적으로 적어도 예시적인 네트워크 요소, 서버 장치(1600)를 도시하는 도 16에 도시된 구성요소들을 포함한다. 도 1a 내지 도 16을 참조하면, 서버 장치(1600)는 통상적으로 휘발성 메모리(1602) 및 대용량 비휘발성 메모리, 이를테면 디스크 드라이브(1603)에 결합되는 프로세서(1601)를 포함한다. 서버 장치(1600)는 또한 프로세서(1601)에 결합되는 플로피 디스크 드라이브, CD(compact disc) 또는 DVD(digital video disc) 드라이브(1606)와 같은 주변 메모리 액세스 장치를 포함할 수 있다. 서버 장치(1600)는 또한 다른 시스템 컴퓨터들 및 서버들에 결합되는 인터넷 및/또는 근거리 네트워크와 같은 네트워크와의 데이터 연결을 설정하기 위해 프로세서(1601)에 결합되는 네트워크 액세스 포트들(1604)(또는 인터페이스들)을 포함할 수 있다. 유사하게, 서버 장치(1600)는 주변 장치들, 외부 메모리 또는 다른 장치들에 연결하기 위한 USB, Firewire, Thunderbolt 등과 같은 추가 액세스 포트들을 포함할 수 있다.
프로세서들(1402, 1501, 1601)는 후술할 다양한 양태의 기능들을 비롯한 다양한 기능을 수행하도록 소프트웨어 명령들(어플리케이션들)에 의해 구성될 수있는 임의의 프로그램 가능 마이크로 프로세서, 마이크로 컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수 있다. 몇몇 모바일 장치에서, 다중 프로세서(1402)는 무선 통신 기능 전용의 하나의 프로세서 및 다른 어플리케이션 실행 전용의 하나의 프로세서와 같이 제공될 수 있다. 통상적으로, 소프트웨어 어플리케이션들은 프로세서(1402, 1501, 1601)로 액세스되고 로딩되기 전에 내부 메모리(1404, 1502, 1602)에 저장될 수 있다. 프로세서(1402, 1501, 1601)는 어플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 포함할 수 있다.
다양한 실시 예는 임의의 수의 단일 또는 다중 프로세서 시스템에서 구현될 수 있다. 일반적으로, 프로세스들은 짧은 시간 구획으로 프로세서상에서 실행되므로 다중 프로세스가 단일 프로세서상에서 동시에 실행되는 것처럼 보이게 된다. 타임 구획이 끝날 때 프로세스가 프로세서에서 제거되면, 프로세스의 현재 작동 상태와 관련된 정보가 메모리에 저장되므로 프로세스는 프로세서상의 실행으로 돌아올 때 프로세스가 그것의 동작들을 원활하게 재개할 수 있다. 이러한 동작 상태 데이터는 프로세스의 어드레스 공간, 스택 공간, 가상 어드레스 공간, 레지스터 세트 이미지(예를 들어, 프로그램 카운터, 스택 포인터, 명령 레지스터, 프로그램 상태 워드 등), 계정 정보, 권한, 액세스 제한 및 상태 정보를 포함할 수 있다.
프로세스는 다른 프로세스들을 생성할 수 있으며 생성된 프로세스(즉, 자식 프로세스)는 생성 프로세스(즉, 부모 프로세스)의 일부 권한 및 액세스 제한(즉, 컨텍스트)을 상속할 수 있다. 프로세스는 다른 프로세스들/스레드들과 그것들의 컨텍스트(예를 들어, 어드레스 공간, 스택, 권한 및/또는 액세스 제한 등)의 전부 또는 부분들을 공유하는 프로세스들인 다수의 경량 프로세스 또는 스레드를 포함하는 중량 프로세스일 수 있다. 그에 따라, 단일 프로세스는 단일 컨텍스트(즉, 프로세서의 컨텍스트) 내에서 공유, 액세스 및/또는 작동하는 다수의 경량 프로세스 또는 스레드를 포함할 수 있다.
전술한 방법 설명들 및 프로세스 흐름도들은 단지 예시적인 예들로서 제공되고, 다양한 실시 예의 블록들이 제시된 순서로 수행되어야 한다는 것을 요구하거나 암시하려는 것은 아니다. 해당 기술분야의 통상의 기술자에 의해 이해될 바와 같이, 전술한 실시 예들에서의 블록들의 순서를 임의의 순서로 수행될 수 있다. "그 후", "그 다음", "다음" 등과 같은 단어들은 블록들의 순서를 제한하려는 것이 아니고; 이러한 단어들은 단순히 방법들에 대한 설명을 통해 독자를 안내하기 위해 사용된다. 또한, 예를 들어, 관사 "하나", "한" 또는 "그"를 사용하는 단수의 청구항 요소들에 대한 임의의 언급은 요소를 단수로 제한하는 것으로 간주되지 않아야 한다.
여기에 개시된 실시 예들과 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로 및 알고리즘 블록은 전자 하드웨어, 컴퓨터 소프트웨어 또는 양자의 조합으로 구현될 수 있다. 하드웨어 및 소프트웨어의 이러한 상호 교환성을 명확하게 설명하기 위해, 다양한 예시적인 구성요소, 블록, 모듈, 회로 및 블록이 일반적으로 그것들의 기능의 관점에서 상술되었다. 그러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 전체 시스템에 부과 되는 특정 어플리케이션 및 설계 제약 조건에 따른다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션에 대해 다양한 방식으로 구현할 수 있지만, 그러한 구현 결정은 청구항의 범위를 벗어나게 하는 것으로 해석되어서는 안 된다.
여기에 개시된 실시 예들과 관련하여 설명된 다양한 예시적인 로직, 로직 블록, 모듈 및 회로를 구현하는 데 사용되는 하드웨어는 여기에 설명된 기능들을 수행하도록 설계된 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(Field Programmable Gate Array) 또는 다른 프로그램 가능 로직 장치, 이산 게이트 또는 트랜지스터 로직, 별개의 하드웨어 구성요소들 또는 이들의 임의의 조합으로 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로 프로세서 일 수 있지만, 대안적으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로 제어기 또는 상태 기계일 수 있다. 프로세서는 또한 통신 장치들의 조합, 예를 들어, DSP 및 마이크로 프로세서의 조합, 복수의 마이크로 프로세서, DSP 코어와 관련된 하나 이상의 마이크로 프로세서 또는 임의의 다른 그러한 구성의 조합으로서 구현될 수 있다. 대안적으로, 몇몇 블록 또는 방법은 주어진 기능에 특유한 회로에 의해 수행될 수 있다.
다양한 실시 예에서, 설명되는 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능은 비일시적 컴퓨터-판독 가능 매체 또는 비일시적 프로세서-판독 가능 매체상에 하나 이상의 명령 또는 코드로서 저장될 수 있다. 여기에 개시된 방법 또는 알고리즘의 동작들은 비일시적 컴퓨터-판독 가능 또는 프로세서-판독 가능 저장 매체상에 상주할 수 있는 프로세서-실행 가능 소프트웨어 모듈로 구현될 수 있다. 비일시적 컴퓨터-판독 가능 또는 프로세서-판독 가능 저장 매체는 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 저장 매체일 수 있다. 비제한적인 예로서, 그러한 비일시적 컴퓨터-판독 가능 또는 프로세서-판독 가능 매체는 RAM, ROM, EEPROM, FLASH 메모리, CD-ROM 또는 다른 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치들 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 디스크는 여기서 사용될 때, 디스크들이 일반적으로 자기적으로 데이터를 재생하는 CD(compact disc), 레이저 디스크(laser disc), 광 디스크(optical disc), DVD(digital versatile disc), 플로피 디스크(floppy disk) 및 블루레이 디스크(및 Blu-ray disc)를 포함하는 한편, 디스크들(discs)은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 상기의 조합들은 또한 비일시적 컴퓨터-판독 가능 매체 및 프로세서-판독 가능 매체의 범위 내에 포함된다. 또한, 방법 또는 알고리즘의 동작들은 비일시적 프로세서 판독-가능 매체 및/또는 컴퓨터 판독-가능 매체상에 하나 또는 임의의 조합 또는 코드들 및/또는 명령들의 세트로서 상주할 수 있으며, 이는 컴퓨터 프로그램 제품에 통합될 수 있다 .
개시된 실시 예들에 대해 전술한 설명은 해당 기술분야의 통상의 기술자가 청구범위를 만들거나 이용할 수 있게 하기 위해 제공된다. 이러한 실시 예들에 대한 다양한 변형이 해당 기술분야의 통상의 기술자들에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 청구범위의 범위를 벗어나지 않고 다른 실시 예들에 적용될 수 있다. 따라서, 본 개시는 여기에 도시된 실시 예들로 제한되도록 의도되지 않으며, 다음의 청구항들 및 여기에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위에 따라야 한다.

Claims (20)

  1. 컴퓨팅 장치와 제2 컴퓨팅 장치 간에 공유된 데이터 세트를 동적으로 변경하기 위한 상기 컴퓨팅 장치로서,
    메모리; 및
    상기 메모리에 결합되고 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는 프로세서로서, 상기 동작들은:
    데이터 세트 업데이트 트리거가 발생했는지 여부를 결정하는 동작;
    상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 동작;
    생성된 상기 명령에 따라 상기 메모리에 저장된 상기 공유된 데이터 세트를 변경하는 동작; 및
    생성된 상기 명령을 생성된 상기 명령에 따라 제2 컴퓨팅 장치의 상기 공유된 데이터 세트를 변경하도록 상기 제2 컴퓨팅 장치로 송신하는 동작을 포함하는, 시스템.
  2. 청구항 1에 있어서, 상기 프로세서는 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 동작이:
    제1 상기 컴퓨팅 장치에 수신되는 데이터 입력들에 기초하여 상기 공유된 데이터 세트에 새로운 부분을 추가하기 위한 명령을 생성하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  3. 청구항 1에 있어서, 상기 프로세서는 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 동작이:
    상기 공유된 데이터 세트의 일 부분을 없애기 위한 명령을 생성하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  4. 청구항 1에 있어서, 상기 프로세서는 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 동작이:
    상기 공유된 데이터 세트를 재배열시키기 위한 명령을 생성하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  5. 청구항 1에 있어서, 상기 프로세서는 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 동작이:
    상기 공유된 데이터 세트를 변형시키기 위한 명령을 생성하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  6. 청구항 1에 있어서, 상기 프로세서는:
    상기 메모리에 저장된 상기 공유된 데이터 세트에서 요소들을 선택하는 동작;
    상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하기 위한 규칙 세트를 생성하는 동작; 및
    상기 규칙 세트를 상기 제2 컴퓨팅 장치로 송신하는 동작을 더 포함하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  7. 청구항 6에 있어서, 상기 프로세서는:
    상기 선택된 요소들을 변형시켜 제1 결과를 생성하는 동작;
    상기 제2 컴퓨팅 장치로부터 상기 규칙 세트에 기초한 제2 결과를 수신하는 동작;
    상기 제1 결과가 상기 제2 결과와 매칭하는지 여부를 결정하는 동작; 및
    상기 제1 결과가 상기 제2 결과와 매칭하는지 여부에 기초하여 상기 제2 컴퓨팅 장치의 인증 여부를 결정하는 동작을 더 포함하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  8. 컴퓨팅 장치를 인증하기 위한 시스템으로서,
    제1 컴퓨팅 장치로서,
    제1 메모리; 및
    동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는 제1 프로세서로서, 상기 동작들은:
    상기 제1 컴퓨팅 장치에 저장되고 또한 상기 제2 컴퓨팅 장치에도 저장되는 공유된 데이터 세트에서 요소들을 선택하는 동작;
    상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하기 위한 규칙 세트를 생성하는 동작;
    상기 선택된 요소들을 변형시켜 제1 결과를 생성하는 동작; 및
    상기 규칙 세트를 상기 제2 컴퓨팅 장치로 송신하는 동작을 포함하는, 상기 제1 프로세서; 및
    제2 컴퓨팅 장치로서,
    통신 인터페이스;
    제2 메모리; 및
    상기 통신 인터페이스에 결합되고 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는 제2 프로세서로서, 상기 동작들은:
    상기 제1 컴퓨팅 장치로부터 상기 규칙 세트를 수신하는 동작;
    상기 규칙 세트를 사용하여 상기 제2 컴퓨팅 장치에 저장된 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하는 동작;
    추출된 상기 요소들을 변형시켜 제2 결과를 생성하는 동작; 및
    생성된 상기 제2 결과를 상기 제1 컴퓨팅 장치로 송신하는 동작을 포함하는, 상기 제2 프로세서를 포함하며;
    상기 제1 컴퓨팅 장치의 상기 프로세서는:
    상기 제1 결과가 상기 제2 결과와 매칭하는지 여부를 결정하는 동작; 및
    상기 제1 결과가 상기 제2 결과와 매칭하는지 여부에 기초하여 상기 제2 컴퓨팅 장치의 인증 여부를 결정하는 동작을 포함하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 더 구성되는, 시스템.
  9. 청구항 8에 있어서, 상기 제1 컴퓨팅 장치의 상기 프로세서는 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하기 위한 규칙 세트를 생성하는 동작이 상기 공유된 데이터 세트에서 요소들을 선택하는 동작 이전에 수행되도록 하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  10. 청구항 8에 있어서, 상기 제1 컴퓨팅 장치의 상기 프로세서는:
    상기 제1 결과가 상기 제2 결과와 매칭하는지 여부에 기초하여 상기 제2 컴퓨팅 장치의 인증 여부에 대한 표시를 상기 제2 컴퓨팅 장치로 송신하는 동작을 더 포함하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  11. 청구항 8에 있어서, 상기 제1 컴퓨팅 장치의 상기 프로세서는 상기 제1 컴퓨팅 장치에 저장되고 또한 상기 제2 컴퓨팅 장치에도 저장되는 공유된 데이터 세트에서 요소들을 선택하는 동작이:
    상기 공유된 데이터 세트의 하나 이상의 부분을 선택하는 동작; 및
    상기 공유된 데이터 세트의 상기 하나 이상의 부분 중에서 두 개 이상의 요소를 선택하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  12. 청구항 11에 있어서, 상기 제1 컴퓨팅 장치의 상기 프로세서는 상기 제1 컴퓨팅 장치에 저장되고 또한 상기 제2 컴퓨팅 장치에도 저장되는 공유된 데이터 세트에서 요소들을 선택하는 동작이:
    상기 두 개 이상의 요소 중 하나를 주요 요소로서 선택하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  13. 청구항 11에 있어서, 상기 제1 컴퓨팅 장치의 상기 프로세서는 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하기 위한 규칙 세트를 생성하는 동작:
    선택된 상기 두 개 이상의 요소 간 하나 이상의 관계를 결정하는 동작; 및
    선택된 상기 두 개 이상의 요소 간에 결정된 상기 하나 이상의 관계에 기초하여 상기 규칙 세트를 생성하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  14. 청구항 8에 있어서, 상기 제2 컴퓨팅 장치의 상기 프로세서는 상기 규칙 세트를 사용하여 상기 제2 컴퓨팅 장치에 저장된 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하는 동작이:
    상기 규칙 세트에 나타나는 상기 공유된 데이터 세트의 하나 이상의 요소를 식별하는 동작;
    상기 규칙 세트에 나타나는 선택된 상기 두 개 이상의 요소 간 하나 이상의 관계를 식별하는 동작; 및
    식별된 상기 하나 이상의 요소 및 상기 하나 이상의 관계를 사용하여 상기 공유된 데이터 세트에서 상기 하나 이상의 요소를 추출하는 동작을 포함하도록 하는 동작들을 수행하기 위한 프로세서-실행 가능 명령들로 구성되는, 시스템.
  15. 청구항 8에 있어서, 상기 공유된 데이터 세트는 하나 이상의 임시 아이디를 포함하는, 시스템.
  16. 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간에 공유된 데이터 세트를 동적으로 변경하기 위한 방법으로서,
    상기 제1 컴퓨팅 장치의 프로세서에 의해, 데이터 세트 업데이트 트리거가 발생했는지 여부를 결정하는 단계;
    상기 프로세서에 의해, 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 단계;
    상기 프로세서에 의해, 생성된 상기 명령에 따라 상기 메모리에 저장된 상기 공유된 데이터 세트를 변경하는 단계; 및
    상기 프로세서에 의해, 생성된 상기 명령을 생성된 상기 명령에 따라 제2 컴퓨팅 장치의 상기 공유된 데이터 세트를 변경하도록 상기 제2 컴퓨팅 장치로 송신하는 단계를 포함하는, 방법.
  17. 청구항 16에 있어서,
    상기 프로세서에 의해, 상기 메모리에 저장된 상기 공유된 데이터 세트에서 요소들을 선택하는 단계;
    상기 프로세서에 의해, 상기 공유된 데이터 세트에서 상기 선택된 요소들을 추출하기 위한 규칙 세트를 생성하는 단계; 및
    상기 프로세서에 의해, 상기 규칙 세트를 상기 제2 컴퓨팅 장치로 송신하는 단계를 더 포함하는, 방법.
  18. 청구항 17에 있어서,
    상기 프로세서에 의해, 상기 선택된 요소들을 변형시켜 제1 결과를 생성하는 단계;
    상기 프로세서에 의해 상기 제2 컴퓨팅 장치로부터, 상기 규칙 세트에 기초한 제2 결과를 수신하는 단계;
    상기 프로세서에 의해, 상기 제1 결과가 상기 제2 결과와 매칭하는지 여부를 결정하는 단계; 및
    상기 프로세서에 의해, 상기 제1 결과가 상기 제2 결과와 매칭하는지 여부에 기초하여 상기 제2 컴퓨팅 장치의 인증 여부를 결정하는 단계를 더 포함하는, 방법.
  19. 청구항 17에 있어서, 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 단계는:
    제1 상기 컴퓨팅 장치에 수신되는 데이터 입력들에 기초하여 상기 공유된 데이터 세트에 새로운 부분을 추가하는 명령, 상기 공유된 데이터 세트의 일 부분을 없애는 명령 및 상기 공유된 데이터 세트를 재배열시키는 동작 중 하나 이상을 위한 명령을 생성하는 단계를 포함하는, 방법.
  20. 청구항 17에 있어서, 상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 공유된 데이터 세트를 변경하기 위한 명령을 생성하는 단계는:
    상기 공유된 데이터 세트를 변형시키기 위한 명령을 생성하는 단계를 포함하는, 방법.
KR1020197034311A 2017-04-21 2018-03-27 장치 검증 및 인증을 위한 시스템 및 방법 KR20190143847A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/493,572 2017-04-21
US15/493,572 US10057269B1 (en) 2017-04-21 2017-04-21 Systems and methods for device verification and authentication
PCT/US2018/024521 WO2018194801A1 (en) 2017-04-21 2018-03-27 Systems and methods for device verification and authentication

Publications (1)

Publication Number Publication Date
KR20190143847A true KR20190143847A (ko) 2019-12-31

Family

ID=63143993

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197034311A KR20190143847A (ko) 2017-04-21 2018-03-27 장치 검증 및 인증을 위한 시스템 및 방법

Country Status (9)

Country Link
US (3) US10057269B1 (ko)
EP (1) EP3643037A4 (ko)
JP (1) JP2020518899A (ko)
KR (1) KR20190143847A (ko)
CN (1) CN110692226A (ko)
AU (1) AU2018256309A1 (ko)
CA (1) CA3061010A1 (ko)
MX (1) MX2019012571A (ko)
WO (1) WO2018194801A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170344703A1 (en) 2006-12-29 2017-11-30 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US11783925B2 (en) 2006-12-29 2023-10-10 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US9569587B2 (en) * 2006-12-29 2017-02-14 Kip Prod Pi Lp Multi-services application gateway and system employing the same
US9602880B2 (en) 2006-12-29 2017-03-21 Kip Prod P1 Lp Display inserts, overlays, and graphical user interfaces for multimedia systems
US11316688B2 (en) 2006-12-29 2022-04-26 Kip Prod P1 Lp Multi-services application gateway and system employing the same
WO2008085201A2 (en) 2006-12-29 2008-07-17 Prodea Systems, Inc. Managed file backup and restore at remote storage locations through multi-services gateway device at user premises
US11463439B2 (en) 2017-04-21 2022-10-04 Qwerx Inc. Systems and methods for device authentication and protection of communication on a system on chip
US10057269B1 (en) * 2017-04-21 2018-08-21 InfoSci, LLC Systems and methods for device verification and authentication
JP6925907B2 (ja) * 2017-08-09 2021-08-25 オムロンヘルスケア株式会社 データ送信装置、データ受信装置、方法及びプログラム
US11906741B2 (en) * 2018-11-06 2024-02-20 Nec Corporation Display control device, display control method, and non-transitory computer-readable medium storing program
US11824643B2 (en) * 2018-12-06 2023-11-21 Convida Wireless, Llc Security lifecycle management of devices in a communications network
US11399015B2 (en) 2019-06-11 2022-07-26 Bank Of America Corporation Data security tool
US10856170B1 (en) * 2019-06-12 2020-12-01 Cisco Technology, Inc. Reducing traffic in a low power and lossy network based on removing redundant certificate from authentication message destined for constrained wireless device via authenticated wireless device
CN112328556A (zh) * 2020-10-16 2021-02-05 威胜集团有限公司 电能量曲线数据存储方法、电能表及计算机可读存储介质
US20220141658A1 (en) * 2020-11-05 2022-05-05 Visa International Service Association One-time wireless authentication of an internet-of-things device
CN113064536B (zh) * 2021-06-01 2021-10-19 深圳传音控股股份有限公司 处理方法、处理设备及可读存储介质
CN113365275B (zh) * 2021-06-15 2022-05-13 哈尔滨工业大学 基于红外通信的身份认证***和方法
US20230050007A1 (en) * 2021-08-10 2023-02-16 Tegere, Inc. System security
CN113642050B (zh) * 2021-10-13 2022-02-08 联芸科技(杭州)有限公司 自配置加密硬盘及其配置方法、***及***的启动方法
US20240187411A1 (en) * 2022-12-04 2024-06-06 Asad Hasan Human system operator identity associated audit trail of containerized network application with prevention of privilege escalation, online black-box testing, and related systems and methods

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055637A (en) 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US7346616B2 (en) 2002-03-20 2008-03-18 Extended System, Inc. Synchronizing data shared between two devices independent of any other devices that may also share the data
JP3678417B2 (ja) * 2002-04-26 2005-08-03 正幸 糸井 個人認証方法及びシステム
US7743022B2 (en) 2003-02-28 2010-06-22 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
US7613919B2 (en) * 2004-10-12 2009-11-03 Bagley Brian B Single-use password authentication
US20070186115A1 (en) 2005-10-20 2007-08-09 Beijing Watch Data System Co., Ltd. Dynamic Password Authentication System and Method thereof
US7680067B2 (en) 2007-03-09 2010-03-16 Palm, Inc. Peer-to-peer data synchronization architecture
US8010778B2 (en) * 2007-06-13 2011-08-30 Intel Corporation Apparatus and methods for negotiating a capability in establishing a peer-to-peer communication link
US8776176B2 (en) * 2008-05-16 2014-07-08 Oracle America, Inc. Multi-factor password-authenticated key exchange
CN101287200A (zh) * 2008-05-21 2008-10-15 宇龙计算机通信科技(深圳)有限公司 分体式移动终端数据更新的方法及装置
US8321670B2 (en) 2008-07-11 2012-11-27 Bridgewater Systems Corp. Securing dynamic authorization messages
US9065868B2 (en) * 2009-04-08 2015-06-23 Blackberry Limited System and method for sharing data in a group of mobile devices
WO2011077819A1 (ja) 2009-12-22 2011-06-30 日本電気株式会社 検証装置、秘密情報復元装置、検証方法、プログラム、及び秘密分散システム
US8660882B2 (en) * 2010-07-16 2014-02-25 International Business Machines Corporation Maximizing retailer profit and customer satisfaction using multi-channel optimization
US8818769B2 (en) * 2010-10-28 2014-08-26 Parametric Technology Corporation Methods and systems for managing synchronization of a plurality of information items of a computer-aided design data model
US8839357B2 (en) * 2010-12-22 2014-09-16 Canon U.S.A., Inc. Method, system, and computer-readable storage medium for authenticating a computing device
EP2565605A1 (de) * 2011-08-29 2013-03-06 Siemens Aktiengesellschaft Strömungsmaschine mit einer Temperaturmesseinrichtung in einem Bereich des Rotors
US9258275B2 (en) 2012-04-11 2016-02-09 Varmour Networks, Inc. System and method for dynamic security insertion in network virtualization
WO2014144851A1 (en) * 2013-03-15 2014-09-18 Huawei Technologies Co., Ltd. Synchronizing and collaboration of information among a mobile device group
US9922102B2 (en) * 2013-07-31 2018-03-20 Splunk Inc. Templates for defining fields in machine data
US9489504B2 (en) 2013-10-03 2016-11-08 Qualcomm Incorporated Physically unclonable function pattern matching for device identification
US10552827B2 (en) 2014-09-02 2020-02-04 Google Llc Dynamic digital certificate updating
US10057269B1 (en) * 2017-04-21 2018-08-21 InfoSci, LLC Systems and methods for device verification and authentication

Also Published As

Publication number Publication date
AU2018256309A1 (en) 2019-12-12
MX2019012571A (es) 2020-02-26
US20180343260A1 (en) 2018-11-29
CA3061010A1 (en) 2018-10-25
EP3643037A1 (en) 2020-04-29
US10057269B1 (en) 2018-08-21
US20180343259A1 (en) 2018-11-29
JP2020518899A (ja) 2020-06-25
WO2018194801A1 (en) 2018-10-25
CN110692226A (zh) 2020-01-14
EP3643037A4 (en) 2021-04-14

Similar Documents

Publication Publication Date Title
US10057269B1 (en) Systems and methods for device verification and authentication
US10542002B2 (en) Systems and methods for device authentication
Nandy et al. Review on security of internet of things authentication mechanism
Dorri et al. Blockchain in internet of things: challenges and solutions
CN109417553B (zh) 经由内部网络监视来检测使用泄漏证书的攻击
Al-Naji et al. A survey on continuous authentication methods in Internet of Things environment
US10419226B2 (en) Systems and methods for device authentication
Iqbal et al. ALAM: Anonymous lightweight authentication mechanism for SDN-enabled smart homes
Ali et al. Towards secure IoT communication with smart contracts in a blockchain infrastructure
US10541989B2 (en) Systems and methods for ephemeral shared data set management and communication protection
US20190149552A1 (en) Systems and Methods for Dynamic Authentication and Communication Protection Using an Ephemeral Shared Data Set
Williams et al. Security aspects of internet of things–a survey
US20200111091A1 (en) Systems and Methods for Certifying Authenticated Transaction Information
Karnatak et al. A secure signature‐based access control and key management scheme for fog computing‐based IoT‐enabled big data applications
Babu et al. Enhancing cloud and IOT security: Leveraging IOT technology for multi-factor user authentication
Singh et al. A Case Study of Trust Management for Authorization and Authentication in IoT Devices Using Layered Approach
Sebbah Security Issues in the Internet of Things Check for updates Abderrezzak Sebbah and Benamar Kadri
Xagoraris et al. A Review of Zero Trust Security Framework (ZTF) for Sustainable and Resilient Smart Cities
WO2019045914A1 (en) DEVICE AUTHENTICATION SYSTEMS AND METHODS
WO2019126823A1 (en) Systems and methods for dynamic authentication and communication protection using an ephemeral shared data set