KR102117584B1 - 로컬 디바이스 인증 - Google Patents

로컬 디바이스 인증 Download PDF

Info

Publication number
KR102117584B1
KR102117584B1 KR1020187010282A KR20187010282A KR102117584B1 KR 102117584 B1 KR102117584 B1 KR 102117584B1 KR 1020187010282 A KR1020187010282 A KR 1020187010282A KR 20187010282 A KR20187010282 A KR 20187010282A KR 102117584 B1 KR102117584 B1 KR 102117584B1
Authority
KR
South Korea
Prior art keywords
access
token
client device
resource
local
Prior art date
Application number
KR1020187010282A
Other languages
English (en)
Other versions
KR20180053701A (ko
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 KR20180053701A publication Critical patent/KR20180053701A/ko
Application granted granted Critical
Publication of KR102117584B1 publication Critical patent/KR102117584B1/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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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
    • 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
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/084Access security using delegated authorisation, e.g. open authorisation [OAuth] protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C2009/00753Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by active electrical keys
    • G07C2009/00769Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by active electrical keys with data transmission performed by wireless means
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C2209/00Indexing scheme relating to groups G07C9/00 - G07C9/38
    • G07C2209/04Access control involving a hierarchy in access rights
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/284Home automation networks characterised by the type of medium used
    • H04L2012/2841Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

개시된 실시예들은 디바이스 인증을 위해 컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램을 포함하는 컴퓨터 방법들, 시스템들 및 디바이스들을 포함한다. 예를 들어, 리소스 디바이스는 컴퓨팅 시스템으로 전송될 수 있는 마스터 액세스 토큰들을 생성하고 유지할 수 있다. 컴퓨팅 시스템은 리소스 디바이스의 소유자의 디바이스로부터, 클라이언트 디바이스에게 다양한 액세스 제한들에 따라 리소스 디바이스로의 제한된 액세스를 승인하는 데이터를 수신할 수 있다. 컴퓨팅 시스템은 액세스 제한을 지정하는 제한된 버전의 마스터 액세스 토큰을 생성하여 클라이언트 디바이스로 제공할 수 있다. 클라이언트 디바이스는 다이렉트 무선 접속을 통해 리소스 디바이스로 로컬 액세스 토큰을 제공할 수 있고, 리소스 디바이스는 컴퓨팅 시스템과의 통신없이 토큰을 검증하고 상기 요구된 액세스를 승인할 수 있다.

Description

로컬 디바이스 인증
본 출원은 2016년 1월 29일자로 출원된 미국 가출원 제62/288,960호의 우선권 및 모든 이점을 주장하며, 그 전체 내용이 본 명세서에 참조로서 통합된다.
본 발명은 저전력 네트워크를 통한 무선 통신과 관련된 기술을 개시한다.
스마트 잠금장치(smart locks), 스마트 가전기기(예를 들어, 세탁기, 스토브, 냉장고 등), 스마트 온도 조절 장치 및 원격 제어, 감지 및 조작이 가능한 다른 디바이스들과 같은 저전력 디바이스들이 보편화되어 일상 생활에 통합되고 있다. 이러한 디바이스들의 제한된 처리 능력과 이들이 동작하는 (예를 들어, 블루투스 저 에너지 (BLE) 네트워크와 같은) 저전력 네트워크에 의한 데이터 전송에 부과되는 대역폭 제한으로 인해 많은 일반 저전력 디바이스들이 기존의 액세스 제어 프로세스를 구현하지 못할 수 있다.
개시된 실시예들은 스마트 잠금장치(smart locks), 스마트 가전기기(예컨대, 세탁기, 스토브, 냉장고 등), 스마트 온도 조절 장치 및 원격 동작 및 제어가 가능한 다른 디바이스들과 같은 저전력 디바이스가, 클라우드 네트워크를 유지하는 컴퓨팅 시스템과 같은 하나 이상의 추가적인 디바이스로 액세스 제어 결정을 위임할 수 있게 하는 컴퓨터화된 프로세스에 관한 것이다. 개시된 실시예를 통해, 저전력 디바이스 (예컨대, 리소스 디바이스)는 다른 디바이스가 저전력 디바이스의 신원을 검증할 수 있게 하는 마스터 디바이스 토큰(token)과 다른 디바이스가 저전력 디바이스에 액세스할 수 있는 능력(ability)을 설정하는 마스터 액세스 토큰과 같은 하나 이상의 마스터 토큰을 생성하고 국부적으로 저장할 수 있다. 리소스 디바이스는 예를 들어, 자신의 마스터 토큰(들)을 컴퓨팅 시스템으로 전송함으로써 액세스 제어 결정을 컴퓨팅 시스템들 중 하나로 위임할 수 있다. 컴퓨팅 시스템은 수신된 마스터 토큰을 저장하고, 리소스 디바이스를 대신하여 리소스 디바이스에 액세스하도록 승인된 디바이스를 식별하는 액세스 제어 리스트 및 리소스 디바이스의 소유자에 의해 인증된 액세스에 부과된 다양한 제한(restriction) 및 제약(limitation)을 유지할 수 있다.
클라이언트 디바이스로부터 리소스 디바이스에 액세스하라는 요청을 수신하면, 컴퓨팅 시스템은 일부 양태에서, 소유자가 클라이언트 디바이스에게 리소스 디바이스에 대한 제한된 액세스를 승인했을 뿐만 아니라 요청된 액세스가 리소스 디바이스의 소유자에 의해 부과된 다양한 제한들 및 제약들과 일치한다는 것을 설정(establish)한다. 승인된 제한된 액세스를 용이하게 하기 위해, 컴퓨터 시스템은 마스터 디바이스 토큰에 기초한 로컬 디바이스 토큰 및 마스터 액세스 토큰에 기초한 로컬 액세스 토큰을 생성(generate) 또는 "발생(mint)"할 수 있다. 로컬 디바이스 토큰은 클라이언트 디바이스가 예를 들어 저전력 BLE 네트워크와 같은 다이렉트 디바이스-대-디바이스 무선 연결을 통해 리소스 디바이스와 보안 지향 연결을 수립하는 것을 가능하게 할 수 있으며, 로컬 액세스 토큰은 부과된 다양한 제한 및 제약을 특정하는 "단명(short-lived)" 토큰일 수 있다. 클라이언트 디바이스는 저전력 네트워크를 통해 리소스 디바이스에 이러한 로컬 토큰을 제공할 수 있으며 컴퓨팅 디바이스 또는 네트워크 액세스와 통신하지 않고 부과된 제한 및 제약에 따라 액세스를 협상할 수 있다.
하나의 일반적인 양태에서, 컴퓨터로 구현되는 방법은 장치의 하나 이상의 프로세서에 의해, 리소스 디바이스에 대한 마스터 액세스 토큰을 획득하는 단계, 하나 이상의 프로세서에 의해, 클라이언트 디바이스와 연관된 사용자를 식별하는 단계 및 하나 이상의 프로세서에 의해, 사용자가 리소스 디바이스에 대한 제한된 액세스를 수신하도록 승인되었는지 결정하는 단계를 포함한다. 상기 결정에 응답하여, 상기 방법은 하나 이상의 프로세서에 의해, 마스터 디바이스 토큰에 기초하여 로컬 액세스 토큰을 생성할 수 있다. 일부 양태에서, 로컬 액세스 토큰은 리소스 디바이스가 네트워크 연결을 요구하지 않고 리소스 디바이스에 대한 액세스를 승인하도록 구성될 수 있다. 이 방법은 또한하나 이상의 프로세서에 의해 리소스 디바이스에 대한 로컬 액세스 토큰을 클라이언트 디바이스로 제공하는 단계를 포함한다. 리소스 디바이스는 저전력 리소스 디바이스일 수 있다.
일부 구현예에서, 개시된 방법은, 사용자가 리소스 디바이스의 소유자 또는 리소스 디바이스에 대한 액세스를 제어할 수 있는 엔티티 중 적어도 하나에 의해 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증되었음을 결정하는 단계를 포함한다.
일부 구현예에서, 개시된 방법은 클라이언트 디바이스로부터 리소스 디바이스에 대한 제한된 액세스를 얻기 위한 요청을 수신하는 단계와, 요청에 응답하여 리소스 디바이스에 대한 로컬 액세스 토큰을 클라이언트 디바이스로 제공하는 단계를 포함할 수 있다. 소정(certain) 양태에서, 요청은 사용자의 식별자 또는 클라이언트 디바이스의 식별자 중 적어도 하나를 포함할 수 있다. 리소스 디바이스에 대한 로컬 액세스 토큰은 요청에 응답하여 클라이언트 디바이스로 제공될 수 있다.
일부 구현예에서, 개시된 방법은 수신된 요청의 적어도 일부에 기초하여 클라이언트 디바이스를 식별하는 단계와, 상기 클라이언트 디바이스가 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증되었음을 결정하는 단계와, 클라이언트 디바이스가 제한된 액세스를 수신하도록 승인되었다는 결정에 응답하여 로컬 액세스 토큰을 생성하는 단계를 포함한다.
일부 구현예에서, 개시된 방법은 리소스 디바이스에 대한 액세스 제어 리스트를 획득하는 단계를 포함할 수 있다. 일부 양태에서, 액세스 제어 리스트는 리소스 디바이스에 대한 대응하는 제한된 액세스들을 수신하도록 인증된 하나 이상의 사용자를 식별할 수 있다.
일부 구현예에서, 장치가 액세스 제어 리스트를 로컬 메모리에 저장하도록 구성된다.
일부 구현예에서, 개시된 방법은 액세스 제어 리스트에 기초하여, 하나 이상의 인증된 사용자들이 사용자를 포함하는지를 결정하는 단계와 및 하나 이상의 인증된 사용자들이 사용자를 포함한다는 결정에 응답하여 클라이언트 디바이스의 사용자가 제한된 액세스를 수신하도록 인증됨을 설정하는 단계를 포함할 수 있다.
일부 구현예에서, 개시된 방법은 리소스 디바이스의 소유자와 관련된 소유자 디바이스로부터 액세스 제어 데이터를 수신하는 단계와, 클라이언트 디바이스의 사용자를 인증된 사용자로서 식별하기 위해 액세스 제어 리스트의 적어도 일부를 변경(modify)하는 단계를 포함할 수 있다. 일부 양태에서, 액세스 제어 데이터는 사용자가 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증될 수 있다.
일부 구현예에서, 액세스 제어 데이터는 액세스 파라미터들을 포함할 수 있고, 액세스 파라미터는 사용자에게 승인된 제한된 액세스의 범위를 설정할 수 있다. 개시된 방법은 또한 액세스 파라미터를 포함하도록 액세스 제어 리스트의 적어도 일부를 변경하는 단계를 포함할 수 있다.
일부 구현예에서, 액세스 파라미터는 사용자에게 할당된 역할, 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한, 또는 토큰을 생성하는 클라이언트 디바이스의 능력에 대한 제한 중 적어도 하나를 포함할 수 있으며, 액세스 제어 리스트는 사용자와 관련된 하나 이상의 액세스 파라미터를 식별할 수 있다.
일부 구현예에서, 로컬 액세스 토큰은 하나 이상의 통고(caveat) 및 대응하는 키를 포함하는 마카롱(macaroon)을 포함할 수 있으며, 개시된 방법은 액세스 제어 리스트에 기초하여 사용자와 관련된 액세스 파라미터들을 식별하고, 로컬 액세스 토큰에 대한 만료 시간을 설정하고, 로컬 액세스 토큰의 하나 이상의 통고 내에만료 시간 및 식별된 액세스 파라미터들을 통합하는 동작들을 수행하는 단계를 더 포함할 수 있다.
일부 구현예에서, 개시된 방법은 사용자의 로컬 액세스 토큰에 대해 설정된 만료 시간을 통합하기 위해 액세스 제어 리스트의 적어도 일부를 변경하는 단계를 포함할 수 있다.
일부 실시예에서, 로컬 액세스 토큰은 사용자 또는 클라이언트 디바이스 중 적어도 하나를 식별하는 데이터를 포함할 수 있으며, 개시된 방법은 디지털 서명을 로컬 액세스 토큰에 적용하는 단계를 포함할 수 있다.
일부 실시예에서, 로컬 액세스 토큰은 예를 들어, 하나 이상의 통고 및 대응하는 키를 포함하는 마카롱을 포함할 수 있고, 대응하는 키는 적용된 디지털 서명을 포함할 수 있고, 개시된 방법은 하나 이상의 통고의 적어도 일부에 MAC 알고리즘을 적용하는 것에 기초하여 디지털 서명을 생성하는 단계를 포함할 수 있다.
일부 구현예에서,하나 이상의 통고는 토큰의 만료 날짜, 사용자에게 할당된 역할, 또는 사용자 또는 클라이언트 디바이스 중 적어도 하나를 식별하는 데이터 중 적어도 하나를 포함할 수 있다.
일부 구현예에서, 로컬 액세스 토큰은 디지털 인증서를 포함할 수 있다.
일부 구현예에서, 개시된 방법은 리소스 디바이스로부터 마스터 액세스 토큰을 수신하는 단계 및 마스터 액세스 토큰의 적어도 일부에 기초하여 로컬 액세스 토큰을 생성하는 단계를 포함할 수 있다.
일부 구현예에서, 마스터 클라이언트 토큰은, 예를 들어, 하나 이상의 제1 통고와 대응하는 제1 키를 갖는 제1 마카롱을 포함하고, 로컬 액세스 토큰은 하나 이상의 제2 통고와 대응하는 제2 키를 포함하는 제2 마카롱을 포함할 수 있다.
일부 구현예에서, 제2 통고는 제1 통고, 로컬 액세스 토큰의 만료 날짜, 및 사용자의 제한된 액세스와 관련된 하나 이상의 액세스 파라미터를 포함할 수 있으며, 상기 액세스 파라미터는 사용자에게 할당된 역할, 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한, 또는 클라이언트 디바이스가 토큰을 생성하는 능력에 대한 제한 중 적어도 하나를 포함할 수 있다.
일부 구현예에서, 개시된 방법은 리소스 디바이스로부터, 클라이언트 디바이스가 리소스 디바이스의 신원을 검증할 수 있게 하는 마스터 디바이스 토큰을 수신하는 단계, 상기 결정에 응답하여, 마스터 디바이스 토큰의 적어도 일부에 기초하여 로컬 디바이스 토큰을 생성하는 단계 및 로컬 디바이스 토큰을 클라이언트 디바이스로 제공하는 단계를 포함할 수 있다.
다른 일반적인 양태에서, 컴퓨터 구현 방법은, 리소스 디바이스의 하나 이상의 프로세서에 의해, 클라이언트 디바이스와 보안 무선 접속을 수립하는 단계와, 하나 이상의 프로세서에 의해, 클라이언트 디바이스로부터의 액세스 토큰으로부터 도출된 토큰 데이터와 상기 클라이언트 디바이스에 의한 리소스 디바이스로의 액세스 요청을 수신하는 단계, 하나 이상의 프로세서에 의해 그리고 네트워크를 통해 통신하지 않고, 상기 수신된 토큰 데이터가 리소스 디바이스로의 액세스를 인증하는 유효한 토큰으로부터 도출되었는지 결정하는 단계, 하나 이상의 프로세서에 의해 그리고 네트워크를 통해 통신하지 않고, 상기 액세스 토큰이 클라이언트 디바이스에 의해 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증하는지 결정하는 단계를 포함한다. 수신된 토큰 데이터가 유효한 토큰으로부터 도출되었다는 결정 및 상기 액세스 토큰이 클라이언트 디바이스에 의해 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증한다는 결정한 것에 응답하여, 상기 방법은 또한 클라이언트 디바이스에 의해 요청된 액세스를 리소스 디바이스로 제공하는 단계를 포함할 수 있다.
일부 구현예에서, 보안 무선 접속은 클라이언트 디바이스와 리소스 디바이스사이의 다이렉트 무선 접속을 포함할 수 있다.
일부 실시예에서, 다이렉트 무선 접속은 블루투스 저 에너지(BLE) 접속을 포함할 수 있다.
일부 구현예에서, 개시된 방법은 또한 클라이언트 디바이스로부터 통고 (caveat) 데이터 및 랜덤 데이터를 수신하는 단계와, 상기 통고 데이터는 로컬 디바이스 토큰으로부터 클라이언트 디바이스에 의해 추출되고, 상기 수신된 통고 및 랜덤 데이터의 적어도 일부에 기초하여 키 값을 계산하는 단계와, 상기 계산된 키 값을 클라이언트 디바이스로 전송하는 단계와, 그리고 상기 계산된 키 값과 상기 로컬 디바이스 토큰에 기초하여 클라이언트 디바이스에 의해 계산된 추가 키 값 사이의 대응 관계(correspondence)에 기초하여 클라이언트 디바이스와 보안 무선 접속을 수립하는 단계를 포함할 수 있다.
일부 구현예에서, 개시된 방법은 계산된 키 값을 세션 키로서 설정하는 단계를 포함할 수 있다.
일부 구현예에서, 통고 데이터 및 랜덤 데이터는 공유된 대칭 키를 사용하여 암호화될 수 있으며, 그리고 개시된 방법은 수신된 통고 데이터 및 랜덤 데이터를 해독하는 단계와, 공유된 대칭 키를 사용하여 상기 계산된 키 값을 암호화하는 단계와, 그리고 암호화된 키 값을 클라이언트 디바이스로 전송하는 단계를 포함한다.
일부 구현예에서, 리소스 디바이스는 클라우드 서버와 관련된 컴퓨터 시스템, 제3자 인증 서비스, 또는 리소스 디바이스 소유자의 디바이스 중 적어도 하나로 액세스 제어 결정을 위임할 수 있고, 그리고 적어도 하나의 컴퓨터 시스템, 제3자 인증 서비스, 또는 소유자 디바이스는 상기 액세스 토큰을 생성하고 액세스 토큰을 클라이언트 디바이스로 제공한다.
일부 구현예에서, 개시된 방법은 네트워크를 통해 통신하지 않고 상기 수립하는 단계, 수신하는 단계 및 제공하는 단계를 수행하는 단계를 포함할 수 있다.
일부 구현예에서, 액세스 토큰은 하나 이상의 통고 및 대응하는 키를 갖는 마카롱을 포함한다.
일부 구현예에서, 수신된 토큰 데이터가 네트워크를 통해 통신하지 않고 유효한 토큰으로부터 도출되었는지 결정하는 단계는 또한 수신된 토큰 데이터로부터 하나 이상의 통고를 추출하는 단계와, 추출된 통고 및 상기 리소스 디바이스에 의해 유지되는 마스터 액세스 토큰에 기초하여 상기 수신된 토큰 데이터의 사본을 계산하는 단계와, 수신된 토큰 데이터가 상기 계산된 사본에 대응하는지 결정하는 단계와, 그리고 상기 수신된 토큰 데이터가 상기 계산된 사본에 대응할 때, 상기 수신된 토큰 데이터가 유효한 토큰으로부터 도출됨을 설정(establish)하는 단계를 포함할 수 있다.
일부 구현예에서, 수신된 토큰 데이터가 네트워크를 통해 통신하지 않고 유효한 토큰으로부터 도출되었는지 결정하는 단계는 추출된 통고의 적어도 일부에 기초하여 상기 수신된 토큰 데이터에 대한 액세스의 체인을 식별하는 단계와, 그리고 수신된 토큰 데이터에 대한 액세스 체인을 검증하는 단계를 포함할 수 있다.
일부 구현예에서, 하나 이상의 통고는 액세스 토큰의 만료 날짜, 리소스 디바이스의 소유자에 의해 클라이언트 디바이스에 할당된 역할, 및 하나 이상의 액세스 파라미터를 포함할 수 있고, 상기 액세스 파라미터는 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한, 또는 클라이언트 디바이스가 토큰을 생성하는 능력에 대한 제한 중 적어도 하나를 포함하며, 그리고 상기 리소스 디바이스에 대한 액세스 요청은 리소스 디바이스의 하나 이상의 요청된 기능을 식별할 수 있다.
일부 구현예에서, 상기 액세스 토큰이 충분한 레벨의 액세스를 인증하는지 결정하는 단계는 만료 날짜에 기초하여, 액세스 토큰이 만료되지 않았음을 결정하는 단계와, 리소스 디바이스의 요청된 기능에 액세스하기 위해 상기 클라이언트 디바이스에 의해 요구된 역할을 식별하는 단계와, 요구된 역할이 할당된 역할과 일치하는지 결정하는 단계와, 하나 이상의 요청된 기능이 상기 하나 이상의 액세스 파라미터와 일치하는지를 결정하는 단계와, 그리고 (i) 액세스 토큰이 만료되지 않았으며 (ii) 요구된 역할이 할당된 역할과 일치하며 (iii) 하나 이상의 요청된 기능이 하나 이상의 액세스 파라미터와 일치한다는 결정에 응답하여, 상기 액세스 토큰이 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증함을 설정하는 단계를 포함할 수 있다.
일부 구현예에서, 리소스 디바이스는 클라우드 서버와 관련된 컴퓨터 시스템, 제3자 인증 서비스, 또는 리소스 디바이스 소유자의 디바이스 중 적어도 하나로 액세스 제어 결정을 위임하고, 그리고 적어도 하나의 컴퓨터 시스템, 제3자 인증 서비스, 또는 소유자 디바이스는 상기 액세스 토큰을 생성하고 상기 액세스 토큰을 클라이언트 디바이스로 제공한다.
다른 실시예에서, 대응하는 시스템, 디바이스 및 컴퓨터 프로그램은 컴퓨터 저장 디바이스에 인코딩된 방법의 동작을 수행하도록 구성될 수 있다. 하나 이상의 프로세서를 갖는 디바이스는 동작 중에 디바이스가 동작을 수행하게 하는 디바이스 상에 설치된 소프트웨어, 펌웨어,하드웨어, 또는 이들의 조합으로 구성될 수 있다.하나 이상의 컴퓨터 프로그램은 디바이스에 의해 실행될 때, 디바이스로 하여금 동작들을 수행하게 하는 명령을 갖도록 구성될 수 있다.
본 명세서에 개시된 기술의 구현은 다음 이점들 중 하나 이상을 제공할 수 있다. 디바이스는 액세스 제어 결정을 원격 시스템에 위임할 수 있다. 이를 통해 디바이스상의 전력 요구량, 처리 요구량 및 네트워크 대역폭 요구량을 줄이면서 디바이스에 대한 정교한 보안 및 액세스 제어를 가능하게 한다. 시스템은 승인될 특정 권한들이나 제한들을 허용하는 세분화된 액세스 제어를 허용할 수 있다. 또한 시스템은 인증된 사용자가 다양한 조건이나 제한에 따라 제한된 액세스를 다른 사용자에게 위임할 수 있도록 허용할 수 있다. 또한, 원격 시스템이 사용자 또는 디바이스에 인증을 결정하더라도 보안 체계는 원격 시스템과 보안 디바이스 간의 통신이 요구되지 않도록 구성된다. 즉, 액세스가 요청되면, 보안 디바이스는 원격 시스템과 계속 통신하지 않고도 요청자가 인증되었는지를 결정할 수 있다. 이러한 방식으로, 인증 방식은 네트워크 연결이 없는 경우에도 유효한다. 네트워크 연결 없이 인증을 수행하는 능력은 또한 소형 또는 배터리 구동 디바이스들에 특히 유리한 전력 요구량을 줄일 수 있다.
본 명세서에서 설명된 요지(subject matter)의 하나 이상의 실시예의 세부 사항은 첨부된 도면 및 이하의 설명에서 설명된다. 주제의 다른 잠재적인 특징, 양태 및 장점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 예시적인 컴퓨팅 시스템의 도면이다.
도 2는 디바이스들사이의 액세스 제어 결정의 위임을 용이하게 하는 데이터의 예시적인 교환을 나타내는 도면이다.
도 3은 리소스 디바이스로부터 하나 이상의 컴퓨팅 디바이스로 액세스 제어 결정을 위임하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 클라이언트 디바이스에 의한 리소스 디바이스의 토큰 기반 액세스를 용이하게 하는 데이터의 예시적인 교환을 나타내는 도면이다.
도 5는 리소스 디바이스에 대한 액세스를 승인하는 예시적인 프로세스의 흐름도이다.
도 6은 본 발명에서 설명된 시스템 및 방법을 구현하는데 사용될 수 있는 컴퓨팅 디바이스의 블록도이다.
다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
도 1은 리소스 디바이스로부터 하나 이상의 다른 디바이스 및/또는 컴퓨터 시스템으로 액세스 제어 결정을 위임하고, 네트워크 액세스를 요구하지 않고 리소스 디바이스에 대한 액세스를 승인하는 디바이스-특정 토큰을 제공하기 위한 예시적인 시스템(100)을 도시한다. 예를 들어, 시스템(100)은 시스템(100)의 하나 이상의 컴포넌트를 상호 연결할 수 있는 리소스 디바이스(102), 소유자 디바이스(104), 클라이언트 디바이스(106), 컴퓨팅 시스템(108) 및 통신 네트워크(122)를 포함할 수 있다.
게다가, 특정 양태에서, 시스템(100)은 또한 시스템(100)의 하나 이상의 컴포넌트들을 다이렉트 연결할 수 있는 하나 이상의 로컬 무선 통신 네트워크(예컨대, 무선 피어-투- 피어 접속 등)을 포함할 수 있다. 예를 들어, 도 1에서, 시스템(100)은 리소스 디바이스(102) 및 소유자 디바이스(104)를 다이렉트 연결하는 로컬 무선 통신 네트워크(124)를 포함할 수 있으며, 추가로 또는 대안적으로 리소스 디바이스 (102) 및 클라이언트 디바이스(106)를 다이렉트 연결하는 로컬 무선 통신 네트워크 (126)를 포함할 수 있다. 그러나, 개시된 실시예는 이러한 예시적인 로컬 무선 통신 네트워크에 한정되지 않으며, 다른 양태에서, 시스템(100)은 시스템 (100)의 구성 요소에 적합한 임의의 추가 또는 대체 수(number)의 로컬 무선 통신 네트워크를 포함할 수 있다.
일반적으로, 리소스 디바이스(102)는 리소스 디바이스(102)에게만 알려진 일부 비밀키, 예를 들어, 루트 키를 생성 또는 유지할 수 있다. 리소스 디바이스 (102)는 루트 키로부터 도출된 마스터 키 또는 마스터 토큰을 생성한다. 이어서, 리소스 디바이스(102)는 마스터 토큰을 신뢰 기관에 전송하여 액세스 관리 권한을 신뢰 기관에 위임한다. 일부 구현예에서, 신뢰 기관은 컴퓨팅 시스템(108)과 같이인터넷을 통해 액세스 가능한 원격 서버 시스템이다. 위임이 완료된 후, 신뢰 기관은 리소스 디바이스(102)에 접촉하지 않고서도 리소스 디바이스(102)에 액세스하기 위한 임의의 수의 액세스 키 또는 액세스 토큰을 생성할 수 있다. 리소스 디바이스(102)는 심지어 새로운 액세스 토큰이 생성될 때 턴 오프되거나 오프라인될 수 있다.
차후에, 타인이 리소스 디바이스(102)에 대한 액세스를 요청할 때, 요청한 타인은 신뢰 기관으로부터 획득된 액세스 토큰을 제시한다. 액세스 토큰으로부터, 리소스 디바이스(102)는 (i) 액세스 토큰이 디바이스 루트 키로부터 도출되었고, (ii) 액세스 토큰이 적정 액세스 관리 기관에 의해 발행되었음을 검증할 수 있을 것이다. 또한, 리소스 디바이스(102)는 액세스 토큰의 제시자(presenter)에게 승인된 액세스 권한, 특권 및 제약을 결정할 수 있다. 이는 리소스 디바이스(102)가 액세스 토큰에 기초하여 그리고 액세스 관리 권한이 위임된 신뢰 기관과 통신하지 않고 액세스를 제공할지 여부 및 제공할 액세스의 범위(scope)를 결정할 수 있게 한다.
리소스 디바이스(102)는 몇몇 양태에서, 통신 네트워크(122)를 통해 시스템 (100)의 컴포넌트와의 통신을 확립하고 추가로 또는 대안으로 로컬 무선 통신 네트워크(124, 126)를 통해 다이렉트 접속을 확립하도록 구성될 수 있는, (예를 들어, 저전력 마이크로 컨트롤러 유닛(MCU) 및/또는 시스템-온-칩(SoC)에 의해 동작되는) 저전력 디바이를 포함할 수 있다. 예를 들어, 저전력 디바이스는 배터리에 의해 전원 공급되는 디바이스 또는 전력 제한이 있는 디바이스일 수 있다. 예로서, 리소스 디바이스(122)는 무선 스피커 세트, 무선 프린터 또는 다른 전자 디바이스, 스마트 락, 스마트 가전기기(예컨대, 냉장고, 스토브 및/또는 세탁기), 스마트 온도 조절 장치 또는 다른 센서를 포함하고, 그리고 무엇보다도 네트워크(122)를 통한 컴퓨팅 시스템(108)과의 통신, 로컬 무선 통신 네트워크(124)를 통한 소유자와의 다이렉트통신 및 추가 또는 대안적으로 로컬 무선 통신 네트워크(126)를 통한 클라이언트 디바이스(106)와의 다이렉트 통신을 확립할 수 있는 임의의 추가 또는 대체의 디바이스(예컨대, IOT(Internet-of-Things) 연결 디바이스)를 포함할 수 있지만, 이에 한정되지 않는다. 일부 구현예에서, 리소스 디바이스(102)는 위브(Weave) 또는 마이크로 위브(μWave) 프로토콜에 따라 "서버" 디바이스로서 기능할 수 있다.
소유자 디바이스(104)와 클라이언트 디바이스(106)는 모바일 전화기, 스마트 폰, 태블릿 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 웨어러블 컴퓨터, 음악 플레이어, 전자책 리더, 네비게이션 시스템, 또는 통신 네트워크(122), 로컬 무선 통신 네트워크(124) 및/또는 로컬 무선 통신 네트워크(126)를 통해 시스템(100)의 컴포넌트와 통신을 설정할 수 있는 임의의 다른 적절한 컴퓨팅 디바이스일 수 있지만, 이에 한정되지는 않는다. 게다가, 컴퓨팅 시스템(108)은 개시된 실시예와 일치하는 하나 이상의 프로세스를 수행하고 네트워크(122)를 통해 시스템(100)의 하나 이상의 컴포넌트와 통신하도록 메모리에 저장된 소프트웨어 명령을 실행하도록 구성된 하나 이상의 컴퓨터 시스템을 포함할 수 있다.
또한, 특정 양태에서, 로컬 네트워크들(124 및/또는 126)은 블루투스 저 에너지(BLE) 네트워크와 같은 무선 개인 영역 네트워크(PAN)를 포함할 수 있다. 다른 양태에서, 개시된 실시예와 일치하여, 네트워크(122) 및 추가 또는 대안적으로 하나 이상의 로컬 네트워크(124 및 126)는 무선 로컬 영역 네트워크(LAN), 예를 들어, "Wi-Fi" 네트워크, RF 네트워크, 근거리 통신(NFC) 네트워크, 다중 무선 LAN을 연결하는 도시권 네트워크(Metropolitan Area Network: MAN) 및 광역 통신망(WAN) 예컨대, 인터넷을 포함한다.
일부 실시예에서, 시스템(100)의 컴포넌트는 클라이언트 디바이스(106)에 액세스 제어 권한을 부여하고 클라이언트 디바이스(106)가 승인된 액세스 제어 권한에 따라 리소스 디바이스(102)를 액세스할 수 있게 하는 액세스 제어 프로토콜을 구현할 수 있다. 예를 들어, 종래의 액세스 제어 프로세스는 하나 이상의 인증된 디바이스(예컨대, 클라이언트 디바이스(106))와 이들 인증된 디바이스에 제공되는 액세스 레벨을 식별하는 액세스 제어 리스트(예컨대, ACL)를 유지하기 위하여 액세스 가능 디바이스(예컨대, 리소스 디바이스(102))를 필요로 할 수 있다. 디바이스로부터 액세스 요청을 수신하면, 액세스 가능 디바이스는 ACL을 파싱하여 요청 디바이스가 승인된 디바이스인지 여부를 결정할 수 있고, 그렇다면 요청 디바이스로 제공되는 레벨 및/또는 타입을 결정할 수 있다.
그러나, 전술한 바와 같이, 리소스 디바이스(102)는 저전력 MCU 및 SoC에 의해 동작되는 디바이스들을 포함할 수 있다. 이들 저전력 MCU 및/또는 SoC는 상대적으로 낮은 클럭 속도로 작동하며 제한된 로컬 메모리를 포함하므로, 다수의 인증된 디바이스에 대한 ACL을 유지 관리할 수 없으며 (예컨대, 클라이언트 디바이스(106)로부터 또는 시스템(100)의 다른 클라이언트 디바이스로부터의) 개별 요청을 처리하고 인증하는데 충분한 속도로 액세스 제어 프로토콜을 수행할 수 없다. 저전력 MCU 및/또는 SoC에 의해 부과된 제한을 고려할 때, 개시된 실시예와 일치하는 액세스 제어 프로토콜은 액세스 제어 결정을 리소스 디바이스(102)로부터 시스템(100)의 다른 컴포넌트로 위임할 수 있고, 리소스 디바이스(102)로의 액세스가 인증된 디바이스를 식별할 수 있으며, 리소스 디바이스(102)에 제시될 때 인증된 디바이스가 리소스 디바이스(102)의 기능에 액세스할 수 있도록 하는 로컬 토큰을 생성 (generate) 또는 "발생(mint)"할 수 있다.
예로서, 리소스 디바이스(102), 소유자 디바이스(104) 및 클라이언트 디바이스(106)는 각각 네트워크(122)를 통해 컴퓨팅 시스템(108)과 통신을 수립할 수 있으며, 개시된 실시예와 일치하는 액세스 제어 프로토콜은 리소스 디아비스(102)가 액세스 제어 결정을 컴퓨팅 시스템(108)에 위임할 수 있게 한다. 본 명세서에 설명된 일부 양태에서, 컴퓨팅 시스템(108)은 클라우드 서버(예컨대, Google CloudTM에 의해 유지되는 서버)로서 기능할 수 있고, 소유자 디바이스(104)(및 추가 또는 대안적으로 리소스 디바이스(102)에 대한 액세스를 제어하거나 관리하는 엔티티의 다른 디바이스)로부터 수신된 입력에 기초하여 리소스 디바이스(102)를 대신하여 ACL을 생성 및 유지할 수 있다. 또한, 후술하는 바와 같이, 컴퓨팅 시스템(108)은 인증된 디바이스(예컨대, 클라이언트 디바이스(106))가 리소스 디바이스(102)의 신원을 검증하고, 리소스 디바이스(102)에 대한 클라이언트 디바이스(106)의 액세스의 레벨, 타입 및 지속 기간을 지정하는 것을 가능케 하는 로컬 토큰을 생성 또는 발생할 수 있다.
소정 양태에서, 리소스 디바이스(102)의 액세스 제어 결정을 컴퓨팅 디바이스(108)로 위임하는 액세스 제어 프로토콜을 개시하기 위해, (예를 들어, 리소스 디바이스(102)에 대한 액세스를 가지거나 제어하는 엔티티에 의해 유지되는) 소유자 디바이스(104)는 네트워크(124)를 통해 리소스 디바이스(102)를 탐색(discover)하는 하나 이상의 프로세스를 수행할 수 있다. 예를 들어, 리소스 디바이스(112)는 네트워크(124)를 통해 동작하는 디바이스들에게 탐색 가능할 수 있고, 네트워크 (124)를 통해 동작하는 디바이스들에게 탐색 가능 상태(discoverable state)를 나타내는 광고 데이터를 브로드캐스트할 수 있다. 하나의 예에서, 리소스 디바이스(102)는 공개적으로 탐색될 수 있으며, 브로드캐스트 광고 데이터는 리소스 디바이스(102)의 디바이스 식별자(예컨대, 미디어 액세스 제어(MAC) 어드레스, IP 어드레스 등)를 포함할 수 있다. 디바이스 식별자 수신시, 소유자 디바이스(104)는 리소스 디바이스(102)를 탐색 및 리소스 디바이스(102)와 페어링하여, (예를 들어, 네트워크(104)를 통해) 리소스 디바이스(102)와 다이렉트 무선 접속을 수립할 수 있다.
다른 경우에서, 리소스 디바이스(122)는 사적으로 탐색 가능할 수 있고, 광고 데이터 내에 임시 식별자(ephemeral identifier: EID) 데이터를 포함하여 시스템(100) 내에서 동작하는 하나 이상의 사설 네트워크에 그 멤버쉽(membership)을 표시할 수 있다. 예를 들어, 사적으로 탐색 가능한 경우, 리소스 디바이스(102)는 하나 이상의 사설 네트워크의 멤버들 사이에서 공유되는 개인 암호키를 사용하여 생성된 특정 길이의 난수(예컨대, 16비트 난수) 및 그 난수의 디지털 서명을 포함하는 광고 데이터를 브로드 캐스팅할 수 있다. 일부 양태에서, 리소스 디바이스 (102)는 난수 및 공유된 개인 암호키에 메시지 인증 코드(MAC) 알고리즘(예컨대, 16바이트의 태그 길이를 갖는 HMAC SHA256 알고리즘)을 적용함으로써 디지털 서명을 생성할 수 있다. 소유자 디바이스(104)는 광고 데이터를 수신하여, 공유된 개인 암호키를 사용하여 난수의 추가 디지털 서명을 생성하고, 수신 및 생성된 디지털 서명이 일치할 때 리소스 디바이스(102)를 탐색하여, 네트워크(124)를 통해 리소스 디바이스(102)와 다이렉트 무선 접속을 수립할 수 있다.
성공적인 탐색 및 페어링시, 소유자 디바이스(104)는 리소스 디바이스 (102)를 컴퓨팅 시스템(108)에 등록하고 개시된 실시예와 일치하는 액세스 제어 프로세스를 구현하도록 하나 이상의 프로세스(예컨대, "부트스트래핑(bootstrapping)" 프로세스)를 수행할 수 있다. 예를 들어, 소유자 디바이스(104)는 네트워크(122)를 통해 컴퓨팅 시스템(108)과의 통신을 수립할 수 있고, 컴퓨팅 시스템(108)으로 하나 이상의 인증 크리덴셜((예컨대, 클라우드 서비스 계정, 패스워드, 생체 인식 데이터, 토큰, 인증서 등과 관련된 로그인)을 제공할 수 있다. 컴퓨팅 시스템(108)은 일부 양태에서, 수신된 인증 크리덴셜과 저장된 클라우드-서비스 계정 데이터(예컨대, Google CloudTM과 같은 클라우드 서비스 계정을 갖는 사용자 또는 GAIATM 계정을 갖는 사용자를 나타내는 데이터)를 비교하여 소유자 디바이스(104)의 사용자(예컨대, 소유자 디바이스 (104)의 사용자(예컨대, 소유자 디바이스(104)의 소유자 및/또는 소유자 디바이스(104)에 대한 액세스를 제어하는 엔티티)를 인증할 수 있다.
인증에 성공하면, 소유자 디바이스(104)는 (예를 들어, 실행된 모바일 애플리케이션 및/또는 클라우드 서비스와 연련된 웹 페이지를 통해) 그래픽 사용자 인터페이스를 통해 등록 템플릿을 생성하여 사용자에게 제시할 수 있다. 등록 템플릿은, 몇몇 양태에서, 개시된 실시예와 일치하는 하나 이상의 액세스 제어 프로세스에 대한 리소스 디바이스(102)를 등록하는 사용자의 의도를 나타낸다. 또한, 예로서, 소유자 디바이스(104)는 리소스 디바이스(102), 소유자 디바이스(104) 및/또는 클라우드 서비스에 대한 사용자 계정을 식별하는 데이터를 포함할 수 있는 제시된 등록 템플릿으로의 사용자에 의해 입력된 등록 데이터를 수신할 수 있고, 소유자 디바이스(104)는 하나 이상의 보안 통신 프로토콜(예컨대, 보안 하이퍼텍스트 전송 프로토콜(HTTPS) 등)을 사용하여 네트워크(122)를 통해 컴퓨팅 시스템(108)으로 등록 데이터를 전송할 수 있다.
컴퓨팅 시스템(108)은 수신된 등록 데이터를 처리하여 소유자 디바이스 (104), 사용자의 클라우드 서비스 계정(예컨대, 사용자의 GAIATM 계정, Google CloudTM을 갖는 사용자 계정) 및 리소스 디바이스(102)에 링크된 고유 등록 티켓 식별자를 생성할 수 있다. 컴퓨팅 시스템(108)은, 일부 경우에, 생성된 등록 티켓 식별자를 로컬 메모리 또는 데이터 저장소에 저장할 수 있으며, 생성된 등록 티켓 식별자를 하나 이상의 보안 통신 프로토콜(예컨대, 보안 하이퍼 텍스트 전송 프로토콜(HTTPS) 등)을 사용하여 네트워크(122)를 통해 소유자 디바이스(104)로 전송할 수 있다.
소유자 디바이스(104)는 컴퓨팅 시스템(108)으로부터 등록 티켓 식별자를 수신하고, 몇몇 양태에서, 공유 개인 암호키를 사용하여 등록 티켓 식별자를 암호화하여 네트워크(124)를 통해 리소스 디바이스(102)로 암호화 등록 티켓 식별자를 전송할 수 있다. 리소스 디바이스(102)는 로컬 메모리 또는 데이터 저장소에 저장될 수 있는 암호화된 등록 티켓 식별자를 수신하여 해독할 수 있다. 또한, 특정 양태에서, 리소스 디바이스(102)는 등록 프로세스를 완료하기 위해 (예를 들어, 위브 프로토콜들과 일치하는 프리벳(Privit) API와 같은 적절한 애플리케이션 프로그래밍 인터페이스(API)에 대한 호출을 통해) 컴퓨팅 시스템(108)으로 등록 티켓 식별자를 제공할 수 있다.
컴퓨팅 시스템(108)은 API를 통해 등록 티켓 식별자를 수신하고, 등록 티켓 식별자에 기초하여 소유자 디바이스(104) 및 클라우드 서비스 계정을 식별할 수 있다. 결정에 응답하여, 컴퓨팅 시스템(108)은 리소스 디바이스(102)에 대한 하나 이상의 인증 크리덴셜을 생성할 수 있고, 리소스 디바이스(102)에 대한 하나 이상의 액세스 제어 리스트(예컨대, ACL)를 생성하고 국부적으로 저장할 수 있다. 후술하는 바와같이, 생성 및 저장된 ACL은 무엇보다도, 리소스 디바이스(102)에 액세스하도록 인증된 디바이스 및 인증된 액세스의 범위를 정의, 제한 및/또는 제약하는 하나 이상의 액세스 파라미터를 식별할 수 있다. 컴퓨팅 시스템(108)은 전술한 임의의 보안 통신 프로토콜을 사용하여 네트워크(122)를 통해 리소스 디바이스(102)로생성된 인증 크리덴셜을 전송할 수 있다. 리소스 디바이스(102)는 발행된 인증 크리덴셜을 수신하여 로컬 메모리 또는 데이터 저장소에 저장할 수 있고, 일부 양태에서, 컴퓨팅 시스템(108)은 발행된 인증 크리덴셜에 기초하여 리소스 디바이스(102)와 보안 통신 세션을 설정할 수 있다.
등록이 성공적으로 이루어지면, 리소스 디바이스(102), 소유자 디바이스 (104), 클라이언트 디바이스(106) 및 컴퓨팅 시스템(108)은 개시된 실시예와 일치하는 하나 이상의 액세스 제어 프로토콜을 구현하는 동작을 집합적으로 수행할 수 있다. 예를 들어, 개시된 프로세스는 리소스 디바이스(102)가 액세스 제어 결정을 컴퓨팅 시스템(108)(예컨대, Google CloudTM에 의해 유지되는 서버와 같은 클라우드 서버)에 위임할 수 있게 하며, 이는 소유자 디바이스(104)에 의해 부과된 하나 이상의 제한 및/또는 제약에 따라 클라이언트 디바이스(106)에 리소스 디바이스 (102)에 대한 액세스를 제공하는 하나 이상의 토큰을 생성할 수 있다.
이들 및 다른 액세스 제어 프로세스를 구현하기 위하여, 하나 이상의 암호 키 및 토큰을 생성, 수신 및/또는 저장하도록 리소스 디바이스(102), 소유자 디바이스(104), 클라이언트 디바이스(106) 및/또는 컴퓨팅 시스템이 구성될 수 있다. 예를 들어, 본 발명에서 기술된 탐색(discovery) 프로세스 동안, 리소스 디바이스 (102)는 리소스 디바이스(102)가 로컬 메모리 또는 데이터 저장소에 저장할 수 있고 리소스 디바이스(102)에 의해 기밀로 유지될 수 있는 루트 암호화 키를 생성할 수 있다.
또한, 소정 양태에서, 리소스 디바이스(102), 소유자 디바이스(104) 및/또는 클라이언트 디바이스(106)는, 초기 핸드 셰이크 프로세스 중에 수동 청취자로부터의 임의의 디바이스-특정 정보를 차단(obscure)하기 위해 네트워크(124)(및 네트워크(126)를 통해 클라이언트 디바이스(104)와 또한 함께)를 통해 리소스 디바이스와 소유자 디바이스(104)간의 통신을 암호화할 수 있는 공유된 개인 암호화 키의 로컬 사본을 저장할 수 있다. 소정 양태에서, 공유된 개인 암호화 키는 저장된 루트 암호 키를 사용하여 리소스 디바이스(102)에 의해 생성될 수 있고, 리소스 디바이스(102)는 공유된 개인 암호화 키를 네트워크(124 및 126) 중 각각의 네트워크를 통해 소유자 디바이스(104) 및/또는 클라이언트 디바이스(106)로 제공할 수 있다. 다른 양태에서, 리소스 디바이스(112)는 초기 등록 및/또는 부트스트래핑 프로세스동안 상기 공유된 개인 암호화 키를 추가 디바이스(예컨대, 리소스 디바이스(112)의 소유자에 의해 보유되는 디바이스) 및/또는 컴퓨팅 시스템(108)(예컨대, Google CloudTM에 의해 유지되는 서버와 같은 클라우드 서버)로 제공할 수 있다. 이어서 추가 디바이스 및/또는 컴퓨팅 시스템(108)은 공유된 개인 암호화 키를 후술하는 바와같은 하나 이상의 로컬 액세스 토큰의 일부로서 클라이언트 디바이스(106)에 제공할 수 있다.
개시된 실시예들과 일치하는 디바이스 및 액세스 토큰은 마카롱으로 포맷될 수 있으며, 마카롱은 중첩된 방식(nested fashion)으로 각 통고(caveat)에 메시지 인증 코드(MAC) 알고리즘을 적용함으로써 재귀적으로 계산된 일련의 바이트-스트링 (예컨대, 통고) 및 인증 태그(예컨대, 디지털 서명)을 포함한다. 아래에 설명된 바와 같이, 통고에는 디바이스 식별자, 디바이스-특정 암호화 키의 식별자 및/또는 액세스 제약(예컨대, 만료 날짜, 시간적 제한, 권한 레벨, 재공유에 대한 제한, 세션 기반 제한, 일시적 제한 등)이 포함될 수 있지만 이에 국한되는 것은 아니다. 또한, 이하에서 설명되는 추가 양태에서, 이전에 생성된 마카롱은 추가 통고를 부가하고 이전의 태그를 키로서 사용하여 추가 통고에 MAC알고리즘을 재귀적으로 적용함으로써 (예를 들어, 리소스 디바이스(102), 소유자 디바이스(104), 컴퓨팅 디바이스(108)등에 의해) 확장될 수 있다. 개시된 실시예와 일치하는 MAC 알고리즘은 태그 길이가 16바이트인 HMAC SHA256 알고리즘 및 클라이언트 디바이스(106) 및 리소스 디바이스(112)에 적합한 다른 알고리즘을 포함할 수 있지만, 이에 한정되는 것은 아니다.
예를 들어, 리소스 디바이스(102)는 상술한 바와 같이, 마카롱으로 포맷될 수 있는 마스터 디바이스 토큰 및 마스터 액세스 토큰을 생성할 수 있다. 마스터 디바이스 토큰의 통고들은 리소스 디바이스(102)에 의해 생성된 리소스 디바이스 (102)의 식별자(예컨대, MAC 어드레스 등) 및 랜덤 데이터(예컨대, 랜덤 넌스(nonce))를 포함할 수 있지만, 이에 한정되는 것은 아니다. 추가적인 예에서, 마스터 액세스 토큰의 통고들은 무엇보다도 리소스 디바이스(102)의 소유자 및 랜덤 넌스와 관련된 역할 또는 권한 레벨(예컨대, 최고의 이용 가능 권한)을 포함할 수 있다. 리소스 디바이스(102)는 또한 예를 들어 저장된 루트 암호화 키 및 (예를 들어, 적절한 MAC 알고리즘을 사용하여) 마스터 디바이스 및 액세스 토큰의 각각의 통고에 기초하여 마스터 디바이스 및 액세스 토큰에 대한 디지털 서명을 생성할 수 있다. 생성된 디지털 서명(예컨대, 마카롱들 중 대응하는 것에 대한 인증 태그로서 작용할 수 있는)은 어떤 경우에는, 악의적인 사용자가 리소스 디바이스(102)와 시스템(100)의 다른 컴포넌트 사이의 전송 중에 하나 이상의 토큰을 가로채고 수정할 가능성을 감소시킬 수 있다.
전술한 바와 같이, 개시된 실시예와 일치하는 액세스 제어 프로토콜은 리소스 디바이스(102)가 자신의 액세스 제어 결정을 소유자 디바이스(104)에 의해 부과된 제한 및 제약에 따라 하나 이상의 추가 디바이스(예컨대, 클라이언트 디바이스(106))로 액세스 권한을 제공할 수 있는 컴퓨팅 시스템에 위임할 수 있도록 할 수 있다. 이러한 위임을 용이하게 하기 위해, 리소스 디바이스(102)는 (예를 들어, 전술한 임의의 보안 통신 프로토콜을 사용하여) 마스터 디바이스 및 액세스 토큰을 네트워크(122)를 통해 컴퓨팅 시스템(108)으로 전송할 수 있다.
일부 양태에서, 컴퓨팅 시스템(108)은 리소스 디바이스(102)로부터 마스터 디바이스 및 액세스 토큰들을 수신하고, 마스터 디바이스 및 액세스 토큰을 소유자 디바이스(104)와(그리고 부가적으로 또는 대안적으로 소유자 디바이스(104)의 사용자의 클라우드 서비스 계정과) 연관시킬 수 있으며, 마스터 디바이스 및 액세스 토큰을 로컬 메모리 또는 데이터 저장소에 저장할 수 있다. 소정 양태에서, 그리고 도 2를 참조하여 기술된 바와 같이, 컴퓨팅 시스템(108)은 소유자 디바이스(104)에 의한 액세스에 부과된 제한 및/또는 제약에 따라 클라이언트 디바이스(106)가 리소스 디바이스(102)의 하나 이상의 기능에 액세스하는 것을 허용(grant)하는 로컬 디바이스 및 액세스 토큰을 생성할 수 있다.
도 2는 개시된 실시예에 따라 리소스 디바이스(102)로부터 컴퓨팅 시스템 (108)으로 액세스 제어 결정의 위임을 용이하게 하는 데이터(200)의 예시적인 교환을 나타내는 개략도이다. 예로서, 전술한 예시적인 기술 중 임의의 것을 사용하여, 리소스 디바이스(102)는 마카롱으로 포맷될 수 있고 리소스 디바이스(102)로부터 컴퓨팅 시스템(108)으로 전송될 수 있는 마스터 디바이스 및 액세스 토큰을 생성할 수 있다. 그러나 개시된 실시예들은 리소스 디바이스(102)에 의해 생성된 마스터 디바이스 및 액세스 토큰에 제한되지 않으며, 다른 양태에서, 개시된 실시예에 따른 마스터 디바이스 및 액세스 토큰은 소유자 디바이스(104), (도 1에 도시되지 않은) 리소스 디바이스(102)를 제어하는 엔티티와 연관된 다른 디바이스 및 시스템(100) 내에서 동작할 수 있고 위임된 액세스에 적합한 임의의 추가 또는 대체 디바이스에 의해 생성될 수 있다.
전술한 바와 같이, 일부 양태에서, 컴퓨팅 시스템(108)은 리소스 디바이스 (102)에 액세스하도록 인증된 하나 이상의 디바이스들을 식별하는 액세스 제어 리스트(예컨대, ACL) 및 추가로 상기 인증된 액세스를 정의, 제한 및/또는 제약하는 하나 이상의 액세스 파라미터를 생성하고 유지할 수 있다. 소정 양태에서, 액세스 파라미터은 만료 날짜, 세션 기반 제한(예컨대, 단일의 수립된 통신 설정에 대한 위임된 액세스 제한), 시간적 제한(예컨대, 유효 기간, 유효 날짜 및 시간 등), 인증된 액세스 타입에 대한 제한(예컨대, 기능의 사용, 설정의 수정 등), 인증된 디바이스와 관련된 역할(예컨대, 소유자, 관리자, 사용자 등), (예를 들어, 추가 토큰을 생성하기 위해) 인증된 디바이스가 액세스를 추가로 위임할 수 있는 능력(ability) 및/또는 (예를 들어, 네트워크(122)에 대한 액세스없이) 오프라인으로 리소스 디바이스(102)에 액세스하는 인증된 디바이스의 능력을 포함할 수 있지만 이에 국한되는 것은 아니다. 그러나, 개시된 실시예는 이러한 예시적인 액세스 파라미터에 제한되지 않으며, 다른 양태에서, 개시된 실시예와 일치하는 ACL은 컴퓨팅 시스템(108), 리소스 디바이스(102) 및 인증된 디바이스(예컨대, 클라이언트 디바이스(106))에 적합한 임의의 추가 또는 대체 액세스 파라미터들을 포함할 수 있다. 또한, 하나 이상의 액세스 파라미터는 (예를 들어, 대응하는 사용자로부터 수신된 입력에 기초하여) 소유자 디바이스(104)에 의해 설정(establish)될 수 있고, 추가로 또는 대안적으로, 리소스 디바이스(102) 및/또는 인증된 디바이스(예컨대, 클라이언트 디바이스(106)의 속성에 기초하여 컴퓨팅 시스템(108)에 의해 설정된 디폴트 파라미터를 나타낼 수 있다.
일 실시예에서, 소유자 디바이스(104)의 사용자는 (예를 들어, 소유자 디바이스(104)에 의해 실행되는 모바일 애플리케이션 및/또는 소유자 디바이스(104)에 의한 프리젠테이션을 위해 액세스되고 랜더링된 웹 페이지에 의해 생성된 바와같이) 컴퓨팅 시스템(108)과 연관된 그래픽 사용자 인터페이스(GUI)에 액세스할 수 있다. 일부 양태에서, 제시된 GUI는 (예를 들어,하나 이상의 ACL 내의) 리소스 디바이스(102)로 액세스하도록 인증된 하나 이상의 디바이스를 식별하고, 인증된 디바이스들 각각에 대한 하나 이상의 액세스 파라미터를 식별할 수 있으며, 사용자가 추가 인증된 디바이스를 ACL에 부가하도록 할 수 있으며, 추가 인증된 디바이스에 대한 액세스 파라미터를 지정할 수 있다.
예를 들어, 소유자 디바이스(104)에 의해 제시된 GUI에 대한 입력으로서, 사용자는 (i) 클라이언트 디바이스(106)를 리소스 디바이스(102)에 액세스하도록 인증된 디바이스로서 식별하고,(ii) 클라이언트 디바이스(106)의 인증된 액세스의 범위를 정의, 제한 및/또는 제약하는 하나 이상의 액세스 파라미터를 특정하는 정보를 제공할 수 있다. 일부 예에서, 클라이언트 디바이스(106)를 식별하는 정보는 디바이스 식별자 및/또는 클라이언트 디바이스(106)를 동작시키는 사용자의 식별자를 포함할 수 있다. 또한, 전술한 바와 같이, 정보는 만료 날짜, 세션 기반 제한, 시간적 제한, 인증된 액세스의 타입, 역할, 후속 위임에 대한 제한 및 소유자 디바이스 (104)에 의해 부과된 오프-라인 액세스에 대한 제한을 포함하는 액세스파라미를 특정할 수 있지만, 이에 한정되는 것은 아니다. 일부 예에서, 개시된 실시예와 일치하여, 특정된 역할은 소유자 디바이스(104)와 관련된 비교 역할(comparable role)과 같거나 그보다 낮아야 한다.
도 2에 도시된 바와 같이, 소유자 디바이스(104)는 사용자에 의해 입력된 정보를 수신하여, 전술한 임의의 보안 통신 프로토콜을 사용하여 네트워크(122)를 통해 컴퓨팅 시스템(108)으로 전송될 수 있는 액세스 제어 데이터(201)로 패키징한다. 소정 양태에서, 액세스 제어 데이터(201)는 컴퓨팅 시스템(108)이 소유자 디바이스(104) 및/또는 소유자 디바이스(104)의 사용자를 인증할 수 있게 하는 하나 이상의 인증 그리덴셜(예컨대, 사용자의 클라우드 서비스 계정의 사용자 이름, 패스워드, 생체 인식 데이터 등)을 또한 포함할 수 있다.
컴퓨팅 시스템(108)은 소유자 디바이스(104)로부터 액세스 제어 데이터(201)를 수신하여, 하나 이상의 인증 그리덴셜에 기초하여 소유자 디바이스(104) 및/또는 소유자 디바이스(104)의 사용자를 인증할 수 있다. 또한, 일부 양태에서, 컴퓨팅 시스템(108)은 액세스 제어 데이터(201)를 파싱하여, 새로 인증된 디바이스(예컨대, 클라이언트(106)) 및 클라이언트 디바이스(106)의 인증된 액세스의 범위를 정의하는 하나 이상의 액세스 파라미터를 식별하는 데이터를 획득할 수 있다. 소정 실시예에서, 컴퓨팅 시스템(108)은 리소스 디바이스(102)에 대응하는 저장된 ACL의일부를 액세스하여 클라이언트 디바이스(106)를 식별하는 데이터 및 추가로(예를 들어, 갱신된 ACL(202)을 생성하기 위해) 리소스 디바이스(102)에 액세스하는 클라이언트 디바이스(106)의 능력을 정의, 제약 및/또는 제한하는 액세스 파라미터를 포함하도록 액세스된 ACL 부분을 갱신할 수 있다.
또한, 일부 실시예에서, 클라이언트 디바이스(106)의 사용자는 클라우드 서비스 계정(예컨대, 컴퓨팅 시스템(108)에 의해 유지되는 Google CloudTM 또는 다른 클라우드 서비스)과 연관될 수 있고, 클라이언트 디바이스(106)는 컴퓨팅 시스템 (108)에 의해 발행된 하나 이상의 인증 크리덴셜을 국부적으로 저장할 수 있다. 소정 양태에서, 클라이언트 디바이스(106)는 인증 데이터(203)를 (예컨대, 전술한 임의의 보안 통신 프로토콜을 사용하여 네트워크(122)를 통해) 컴퓨팅 시스템(108)으로 전송할 수 있다. 인증 데이터(203)는 무엇보다도 클라이언트 디바이스(106)에게 발행된 하나 이상의 인증 크리덴셜을 포함할 수 있고, 컴퓨팅 시스템(108)은 수신된 인증 크리덴셜과 저장된 클라우드-서비스 계정 데이터(예컨대, 유효한 GAIATM 계정을 식별하는 데이터, 유효한 Google CloudTM 계정을 식별하는 데이터 등)의 비교에 기초하여 클라이언트 디바이스(106)를 인증할 수 있다.
만약 수신된 인증 그리덴셜이 저장된 클라우드 서비스 계정 데이터와 일치하지 않으면, 컴퓨팅 시스템(108)은 실패한 인증 시도를 나타내는 결과 데이터(204)를 생성하여 클라이언트 디바이스(104)로 전송할 수 있다. 그러나, 컴퓨팅 시스템(108)이 수신된 인증 크리덴셜을 저장된 클라우드 서비스 계정 데이터의 일부와 일치시키는 경우, 컴퓨팅 시스템(108)은 인증 프로세스가 성공적이라고 간주하고, 성공적인 인증을 확인하는 결과 데이터(204)를 클라이언트 디바이스(106)로 전송할 수 있다.
성공적인 인증에 응답하여, 클라이언트 디바이스(106)는 리소스 디바이스 (102)를 액세스하기 위한 요청(예컨대, 액세스 요청(205))을 생성하여 (예를 들어, 전술한 임의의 보안 통신 프로토콜을 사용하는 네트워크(122)를 통해) 컴퓨팅 시스템(108)으로 전송할 수 있다. 액세스 요청(205)은 몇몇 양태에서, 리소스 디바이스 (102)의 식별자(예컨대, MAC 어드레스, IP 어드레스 등)를 포함할 수 있다. 다른 양태에서, 개시된 실시예와 일치하여, 액세스 요청(205)은 디바이스-특정적이 아니며, 대신에 소유자 디바이스(104)가 클라이언트 디바이스(106)에 액세스 권한을 부여한 모든 디바이스에 대한 액세스를 요청할 수 있다. 전술한 바와 같이, 클라이언트 디바이스(106)는 전술한 임의의 보안 통신 프로토콜을 사용하여 네트워크(122)를 통해 컴퓨팅 시스템(108)으로 액세스 요청(205)을 전송할 수 있다.
컴퓨팅 시스템(108)은 액세스 요청(205)을 수신하여, 리소스 디바이스(102)로의 요청된 액세스가 소유자 디바이스(104)에 의해 클라이언트 디바이스(106)에 부여된 액세스 레벨과 일치하는지 결정할 수 있다. 예를 들어, 컴퓨팅 시스템(108)은 액세스 요청(205)을 파싱하여 리소스 디바이스(102) 및 추가 또는 대안으로 클라이언트 디바이스(106)을 식별할 수 있다. 소정 양태에서, 컴퓨팅 시스템(108)은 리소스 디바이스(102)에 대응하는 ACL의 국부적으로 저장된 사본(copy)에 액세스하여, ACL의 엔트리(entry)에 기초하여 소유자 디바이스(104)가 클라이언트 디바이스 (106)에게 리소스 디바이스(102)에 대한 액세스를 승인했는지 여부를 결정할 수 있다.
만약 ACL 엔트리에 기초하여, 컴퓨팅 시스템(108)이 소유자 디바이스(104)가 클라이언트 디바이스(106)(및/또는 클라이언트 디바이스(106)의 사용자)에게 리소스 디바이스(102)에 대한 액세스를 승인하지 않았다고 결정한다면, 컴퓨팅 시스템(108)은 (도 2에 도시되지 않은) 승인된 액세스의 부재(lack)를 나타내는 에러 메시지를 생성하여 클라이언트 디바이스(106)로 전송할 수 있다. 그러나, 컴퓨팅 시스템(108)이 클라이언트 디바이스(106)(및/또는 클라이언트 디바이스(106)의 사용자)에게 리소스 디바이스(102)에 대한 액세스를 승인했음을 결정하면, 컴퓨팅 시스템(108)은 리소스 디바이스(102)의 하나 이상의 기능에 액세스 하는 클라이언트 디바이스(106)의 능력을 일괄적으로 용이하게 하는 로컬 디바이스 토큰 및 로컬 액세스 토큰(예컨대, 도 2의 로컬 토큰 데이터(206))을 생성할 수 있다.
소정 양태에서, 컴퓨팅 시스템(108)은 (예를 들어, 성공적인 등록 프로세스이후에 리소스 디바이스(102)에 의해 생성되고 수신된) 마스터 디바이스 및 액세스 토큰들의 저장된 사본들을 액세스할 수 있고, 마스터 디바이스 및 액세스 토큰 각각에 대한 확장(extension)에 기초하여 마스터 디바이스 토큰 및 로컬 디바이스 토큰을 생성 및 "발생(mint)"할 수 있다. 예를 들어, 전술한 바와 같이, 마스터 디바이스 토큰은 마카롱(macaroon)으로 포맷될 수 있으며, 그 통고(caveat)는 리소스 디바이스(102)의 식별자(예컨대, MAC 어드레스 등) 및 리소스 다비이스(102)에 의해 생성된 랜덤 데이터(예컨대, 디바이스-특정 랜덤 넌스)를 포함할 수 있지만 이에 한정되는 것은 아니다. 로컬 디바이스 토큰을 생성하기 위해, 컴퓨팅 시스템(108)은 하나 이상의 추가적인 통고(예컨대, 클라이언트 디바이스(106)의 디바이스 식별자, 랜덤 논스로서의 추가 랜덤 데이터 등)를 부가하고 이어서 이전 태그를 키로 사용하여 추가 통고에 적절한 MAC 알고리즘을 재귀적으로 적용함으로써 마스터 디바이스 토큰을 확장할 수 있다.
또한, 예를 들어, 마스터 액세스 토큰 역시 마카롱으로 포맷될 수 있으며, 그 통고는 리소스 디바이스의 소유자와 관련된 역할(예컨대, 이용 가능한 가장 높은 권한) 및/또는 리소스 디바이스(102)에 의해 생성된 랜덤 데이터(예컨대, 디바이스-특정 랜덤 넌스)를 포함할 수 있지만 이에 국한되는 것은 아니다. 소정 양태에서, 로컬 액세스 토큰을 생성하기 위해, 컴퓨팅 시스템(108)은 추가의 랜덤 데이터(예컨대, 랜덤 넌스)와 함께, 리소스 디바이스(102)의 클라이언트 디바이스(106)의 액세스상에서 소유자 디바이스(104)에 의해 부과된 하나 이상의 제약 및/또는 제한(즉, ACL에 저장된 하나 이상의 액세스 파라미터)을 식별하는 추가 통고를 부가함으로써 마스터 디바이스 토큰을 확장할 수 있다.
예를 들어, 컴퓨팅 시스템(108)은 리소스 디바이스(102)에 액세스하기 위한 클라이언트 디바이스(106)의 능력에서 소유자 디바이스(104)에 의해 부과된 하나 이상의 제약 및/또는 제한을 나타내는 액세스 파라미터를 추출하기 위해 리소스 디바이스(102)에 대응하는 ACL을 처리할 수 있다. 위에서 언급한 바와 같이, 부과된 제약 및 제한에는 만료 날짜, 시간적 제한(예컨대, 액세스의 유효 날짜 및 시간), 세션 기반 제한(예컨대, 단일의 수립된 통신 세션에 대한 위임된 액세스 제한), 액세스 타입에 대한 제한(예컨대, 기능의 사용, 설정의 수정 등), 클라이언트 디바이스(106)의 역할(예컨대, 소유자, 관리자, 사용자 등), (예를 들어, 추가 토큰을 생성하기 위해) 클라이언트 디바이스(106)가 액세스를 추가로 위임할 수 있는 능력 및/또는 (예를 들어, 네트워크에 대한 액세스없이) 오프라인으로 리소스 디바이스(102)에 액세스하는 클라이언트 디바이스(106)의 능력을 포함할 수 있지만 이에 한정되는 것은 아니다. 이어서, 컴퓨팅 시스템(108)은 (예를 들어, 마스터 액세스 토큰으로부터의) 이전 태그를 키로 사용하여 추가 통고 세트에 적절한 MAC 알고리즘을 적용함으로써 로컬 액세스 토큰에 대한 새로운 태그를 생성할 수 있다.
일부 양태에서, 생성된 로컬 디바이스 및 액세스 토큰들은 (즉, 1시간, 1일 등의 기간 동안 유효할 수 있는) "단명"일 수 있고, 컴퓨팅 시스템(108)은 생성된 로컬 디바이스 및 액세스 토큰들을 로컬 메모리 또는 데이터 저장소에 저장할 수 있다. 또한, 개시된 실시예와 일치하는 MAC 알고리즘은 16바이트의 태그 길이를 갖는 HMAC SHA256 알고리즘 및 클라이언트 디바이스(106), 리소스 디바이스(112) 및 네트워크(122)에 적합한 다른 알고리즘을 포함할 수 있지만, 이에 제한되지는 않는다. 그런 다음 컴퓨팅 시스템(108)은 생성된 로컬 디바이스 및 액세스 토큰들(예컨대, 로컬 토큰 데이터(206))을 포함하는 데이터를 생성하여, 로컬 토큰 데이터 (206)를 상술한 임의의 보안 통신 프로토콜을 사용하여 네트워크(122)를 통해 클라이언트 디바이스(106)로 전송할 수 있다. 일부 양태에서, 클라이언트 디바이스 (106)는 네트워크(122)를 통해 컴퓨팅 시스템(108)으로부터 로컬 토큰 데이터(206)를 수신하여, 로컬 디바이스 및 액세스 토큰들의 사본을 로컬 메모리 또는 데이터 저장소 내에 저장할 수 있다.
도 3은 개시된 실시예에 따라 리소스 디바이스로부터 하나 이상의 컴퓨팅 디바이스로 액세스 제어 결정을 위임하는 예시적인 프로세스(300)의 흐름도이다. 소정 양태에서, 클라우드 서버(예컨대, 컴퓨팅 시스템(108))로서 동작하는 컴퓨터 시스템은, 리소스 디바이스(예컨대, 리소스 디바이스(102))가 액세스 제어 결정을 컴퓨터 컴퓨팅 시스템(108)으로 위임할 수 있게 하고, 리소스 디바이스의 소유자(예컨대, 소유자 디바이스(104)의 디바이스에 의해 지정된 하나 이상의 클라이언트 디바이스(예컨대, 클라이언트 디바이스(106)로 리소스 디바이스(102)를 액세스 하기 위한 권리를 제공할 수 있게 하는 예시적인 프로세스(300)의 단계들을 수행할 수 있다.
일부 양태에서, 개시된 실시예와 일치하여, 소유자 디바이스(104)는 네트워크(124)를 통해 동작하는 리소스 디바이스(102)를 탐색(discover)하는 동작을 수행할 수 있다. 예를 들어, 리소스 디바이스(102)는 네트워크(124)를 통해 동작하는 디바이스들에 대해 탐색 가능할 수 있고, 탐색 가능 상태를 나타내는 광고 데이터를 네트워크(124)를 통해 동작하는 디바이스들에게 브로드캐스할 수 있다. 소정 양태에서, 리소스 디바이스(102)는 공개적으로 또는 사적으로 탐색 가능할 수 있고, 소유자 디바이스(104)는 상술한 임의의 예시적인 기술들을 사용하여 공개적으로 또는 사적으로 탐색 가능 상태에서 리소스 디바이스(102)를 탐색할 수 있다.
소유자 디바이스(104)가 리소스 디바이스(102)를 성공적으로 탐색한 것에 응답하여, 컴퓨팅 시스템(108)은 리소스 디바이스(102)를 등록하고, 리소스 디바이스(102)를 리소스 디바이스(102) 소유자의 클라우드 서비스 계정(예컨대, GAIATM 계정, Google CloudTM 계정 등) 및 추가적으로 또는 대안적으로 소유자 디바이스 (104)와 연관시키는 동작을 (예를 들어, 단계(302)에서) 수행할 수 있다. 예를 들어, 소유자 디바이스(104)는 네트워크(122)를 통해 컴퓨팅 시스템(108)과 통신을 수립하고, 컴퓨팅 시스템(108)으로 하나 이상의 인증 크리덴셜(예컨대, 사용자 이름, 패스워드, 생체 인식 데이터, 토큰, 디지털 인증서 등)을 제공할 수 있다. 일부 양태에서, 컴퓨팅 시스템(108)은 소유자 디바이스(104)를 인증하기 위해 상기 수신된 인증 그리덴셜을 저장된 인증 데이터(예컨대, 저장된 GAIATM 계정 데이터, 저장된 Google CloudTM 계정 데이터 등)와 비교할 수 있다.
상술한 바와 같이, 소유자 디바이스(104)는 (예를 들어, 소유자 디바이스의 사용자가 제시된 등록 템플릿에 입력한 데이터에 기초하여) 컴퓨팅 시스템(108)과 리소스 디바이스(102)의 등록을 지원하는 데이터를 생성할 수 있고, 생성된 등록 데이터를 네트워크(122)를 통해 (예를 들어, 전술한 임의의 보안 통신 프로토콜을 사용하여) 컴퓨팅 시스템(108)으로 전송할 수 있다. 생성된 등록 데이터는 리소스 디바이스(102), 소유자 디바이스(104) 및/또는 리소스 디바이스(102)의 소유자와 관련된 클라우드 서비스 계정을 식별하는 데이터를 포함할 수 있지만, 이에 한정되는 것은 아니다.
컴퓨터 컴퓨팅 시스템(108)은 단계(302)에서 등록 데이터를 수신할 수 있고, 소유자 디바이스(104), 소유자의 클라우드 서비스 계정 및 리소스 디바이스(102)에 링크된 고유 등록 티켓 식별자를 생성할 수 있다. 컴퓨팅 시스템(108)은, 일부 경우에, 생성된 등록 티켓 식별자를 로컬 메모리 또는 데이터 저장소에 저장할 수 있으며, 생성된 등록 티켓 식별자를 하나 이상의 보안 통신 프로토콜(예컨대, 보안 하이퍼텍스트 전송 프로토콜(HTTPS) 등)을 사용하여 네트워크(122)를 통해 소유자 디바이스(104)로 전송할 수 있다.
소유자 디바이스(104)는 컴퓨팅 시스템(108)으로부터 등록 티켓 식별자를 수신할 수 있고, 일부 양태에서, 암호화된 등록 티켓 식별자를 네트워크(124)를 통해 리소스 디바이스(102)로 전송하기 전에 공유된 개인 암호화 키를 사용하여 등록 티켓 식별자를 암호화할 수 있다. 리소스 디바이스(102)는 로컬 메모리 또는 데이터 저장소에 저장될 수 있는 암호화된 등록 티켓 식별자를 수신할 수 있다(적절한 경우 해독할 수 있다). 또한, 소정 양태에서, 리소스 디바이스(102)는 등록을 완료하기 위해 (예를 들어, 위브 프로토콜과 일치하는 프리벳 API와 같은 적절한 애플리케이션 프로그래밍 인터페이스(API)에 대한 호출을 통해) 컴퓨팅 시스템(108)으로 등록 티켓 식별자를 제공할 수 있다.
컴퓨팅 시스템(108)은 API를 통해 등록 티켓 식별자를 수신할 수 있고, (예를 들어, 단계(302)에서) 등록 티켓 식별자에 기초하여 하나 이상의 인증 크리덴셜을 생성하여 리소스 디바이스(102)로 발행할 수 있다. 컴퓨팅 시스템(108)은 생성되고 발행된 인증 그리덴셜을 네트워크(122)를 통해 리소스 디바이스(102)로 전송할 수 있으며, 리소스 디바이스(102)는 발행된 인증 그리덴셜을 수신하여 로컬 메모리 또는 데이터 저장소에 저장할 수 있다. 또한, 발행된 인증 크리덴셜에 기초하여, 리소스 디바이스(102)는 네트워크(122)를 통해 컴퓨팅 시스템(108)과 보안 통신 세션을 수립할 수 있다.
추가적인 양태에서, 리소스 디바이스(102)의 등록에 응답하여, 컴퓨팅 시스템(108)은 (예를 들어, 단계 304에서) 리소스 디바이스(102)에 대한 액세스 제어 리스트(예컨대, ACL)를 생성하고 국부적으로 저장할 수 있다. 생성 및 저장된 ACL은 무엇 보다도, 리소스 디바이스(102)에 액세스하도록 인증된 하나 이상의 디바이스 및 인증된 액세스에서 소유자 디바이스(104)에 의해 부과된 제약 및 제한을 정의하는 하나 이상의 액세스 파라미터를 식별할 수 있다. 소정 양태에서, 액세스 파라미터는 토큰 만료 날짜, 세션 기반 제한(예컨대, 단일 수립된 통신 설정에 대한 위임된 액세스 제한), 시간적 제한(예컨대, 유효 기간 등), 액세스 타입에 대한 제한(예컨대, 예컨대, 특정 기능의 사용, 설정 수정 등), 인증된 디바이스(예컨대, 소유자, 관리자, 사용자 등)에 할당된 역할 또는 권한 레벨, (예를 들어, 재공유를 위해) 인증된 디바이스가 액세스를 추가로 위임할 수 있는 능력 및/또는 (예를 들어, 네트워크에 대한 액세스없이) 오프라인으로 리소스 디바이스(102)에 액세스하는 인증된 디바이스의 가용성을 포함할 수 있지만 이에 한정되는 것은 아니다. 일부 예에서, 컴퓨팅 시스템(108)은 생성 및 저장된 ACL을 소유자 디바이스 (104) 및/또는 소유자 디바이스(104)와 연관된 클라우드 서비스 계정과 연관시킬 수 있으며, 후술하는 바와같이 컴퓨팅 시스템(108)은 소유자 디바이스(104)로부터 수신된 액세스 제어 데이터에 응답하여 상기 저장된 ACL을 액세스하고 수정하는 프로세스를 수행할 수 있다.
소정 양태에서, 리소스 디바이스(102)는 소유자 디바이스(104)에 의해 부과된 제약들 및 제한들에 따라 하나 이상의 추가 디바이스들(예컨대, 클라이언트 디바이스(106))과 액세스 권한(access privilege)을 공유할 수 있는 컴퓨팅 디바이스 (108)에게 자신의 액세스 제어 결정들을 위임할 수 있다. 이러한 위임을 용이하게 하기 위해, 리소스 디바이스(102)는 (예를 들어, 발행된 인증 크리덴셜에 기초하여) 컴퓨팅 시스템(108)과 보안 통신 세션을 수립할 수 있고, 마스터 디바이스 토큰 및 마스터 액세스 토큰의 사본을 (예를 들어, 상술한 임의의 보안 통신 프로토콜을 사용하여) 네트워크(122)를 통해 컴퓨팅 시스템(108)으로 전송할 수 있다. 일부 양태에서, 컴퓨팅 디바이스(108)는 (예를 들어, 단계 306에서) 리소스 디바이스(102)로부터 마스터 디바이스 및 액세스 토큰들을 수신하여, 수신된 마스터 디바이스 및 액세스 토큰들을 로컬 메모리 또는 데이터 저장소에 저장할 수 있다. 후술하는 바와 같이, 컴퓨팅 시스템(108)은 리소스 디바이스(102)로 하나 이상의 클라이언트 디바이스(예컨대, 클라이언트 디바이스(106)) 액세스를 제공하는 로컬 토큰을 생성하기 위해 마스터 디바이스 및/또는 액세스 토큰의 구조를 수정할 수 있다.
예를 들어, 상술한 바와 같이, 마스터 디바이스 및 액세스 토큰은 중첩 방식으로 각 통고에 메시지 인증 알고리즘(MAC)을 적용함으로써 바이트 스트링(예컨대, 통고)의 시퀀스 및 재귀적으로 계산된 인증 태그(예컨대, 디지털 서명)를 갖는 마카롱으로서 포맷될 수 있다. 마스터 디바이스 토큰의 통고는 리소스 디바이스(102)의 식별자(예컨대, MAC 어드레스 등) 및 리소스 디바이스(102)에 의해 생성된 랜덤 데이터(예컨대, 디바이스-특정 랜덤 넌스)를 포함할 수 있지만 이에 한정되는 것은 아니다. 추가적인 예에서, 마스터 액세스 토큰의 통고는 무엇보다도, 리소스 디바이스의 소유자(예컨대, 가장 높은 가용한 권한) 및 디바이스-특정 랜덤 넌스와 관련된 관련된 역할 또는 권한 레벨을 포함할 수 있다. 또한, 토큰에 적용된 디지털 서명은 일부 예에서, 악의적인 사용자가 통고 데이터의 일부를 가로채서 비인가된 (unauthorized) 수정을 수행할 가능성을 감소시킬 수 있다.
소정 양태에서, 컴퓨팅 시스템(108)은 (예를 들어 단계(308)에서) 소유자 디바이스(104)로부터 액세스 제어 데이터(예컨대, 도 2의 액세스 제어 데이터(201))를 수신하도록 구성될 수 있다. 수신된 액세스 제어 데이터는 예를 들어, (i) 리소스 디바이스(102)에 액세스하도록 인증된 디바이스(예컨대, 클라이언트 디바이스(106))를 식별하고, (ii) 클라이언트 디바이스의 인증된 액세스를 정의, 제약 및/또는 제한하는 하나 이상의 파라미터를 특정하는 정보를 포함할 수 있다. 일부 예에서, 소유자 디바이스(104)의 사용자는 (예를 들어, 소유자 디바이스에 의해 실행된 모바일 애플리케이션104) 및/또는 소유자 디바이스(104)에 의한 프리젠 테이션을 위해 액세스 및 렌더링된 웹 페이지에 의해 생성된) 컴퓨팅 시스템(108)과 연관된 그래픽 유저 인터페이스(GUI)에 대한 입력으로서 상기 수신된 액세스 제어 데이터의 적어도 일부를 제공할 수 있다.
예를 들어, 수신된 액세스 제어 데이터는 클라이언트 디바이스(106)의 식별자 및/또는 클라이언트 디바이스(106)를 동작시키는 사용자의 식별자를 포함할 수 있다. 또한, 전술한 바와 같이, 수신된 액세스 제어 데이터는 세션 기반 제한, 시간적 제한, 액세스 타입에 대한 제한, 역할 또는 권한 레벨, 후속 위임에 대한 제한 및 리소스 디바이스(102)에 액세스하는 클라이언트 디바이스(106)의 능력에서 소유자 디바이스(104)에 의해 부과된 오프라인 액세스에 대한 제한을 포함하는 액세스 파라미터를 특정할 수 있으나, 이에 한정되는 것은 아니다. 일부 예에서, 개시된 실시예와 일치하여, 소유자 디바이스(104)의 사용자에 의해 지정된 역할 또는 권한 레벨은 소유자 디바이스(104)의 비교 가능한 권한 레벨과 같거나 그보다 낮아야 한다. 추가적인 양태에서, 수신된 액세스 제어 데이터는 컴퓨팅 시스템(108)이 소유자 디바이스(104) 및/또는 소유자 디바이스(104)의 사용자를 인증할 수 있게 하는 하나 이상의 인증 그리덴셜(예컨대, 소유자 디바이스(104)와 연관된 클라우드 서비스 계정의 로그인 명칭, 패스워드, 생체 인식 데이터 등)을 포함할 수 있다.
단계(310)에서, 컴퓨팅 시스템(108)은 (예를 들어, 수신된 인증 크리덴셜과 저장된 클라우드-서비스 계정 데이터의 비교에 기초하여) 소유자 디바이스(104)를 인증하고, 또한 새로 인증된 디바이스(예컨대, 클라이언트 디바이스(106)) 및 리소스 디바이스(102)에 대한 클라이언트 디바이스(106)의 액세스를 정의, 제약 및 제한하는 하나 이상의 파라미터를 식별하기 위해 상기 수신된 액세스 제어 데이터를 파싱하도록 구성될 수 있다. 컴퓨팅 시스템(108)은 또한 국부적으로 저장된 ACL을 액세스하여, 단계(312)에서, 클라이언트 디바이스(106) 및 하나 이상의 액세스 파라미터(예컨대, 도 2의 갱신된 ACL(202))를 식별하는 데이터를 포함하도록 액세스된 ACL의 적어도 일부분을 수정할 수 있다.
일부 양태에서, 클라이언트 디바이스(106)의 사용자는 클라우드 서비스 계정 (예컨대, 컴퓨팅 시스템(108)에 의해 유지되는 Google CloudTM 또는 다른 클라우드 서비스)과 연관될 수 있고, 클라이언트 디바이스(106)는 컴퓨팅 시스템(108)에 의해 발행된 하나 이상의 인증 크리덴셜을 국부적으로 저장할 수 있다. 클라이언트 디바이스(106)는, 일부 예에서, 상술한 임의의 보안 통신 프로토콜을 사용하여 네트워크(122)를 통해 컴퓨팅 시스템(108)으로 인증 데이터(예컨대, 도 2의 인증 데이터(203))를 전송할 수 있다. 컴퓨팅 시스템(108)은 (예컨대, 단계(314)에서) 클라이언트 디바이스(106)로부터 인증 데이터를 수신하여, (예컨대, 단계(316)에서) 본 발명에서 설명된 임의의 예시적인 기술을 사용하여 상기 수신된 인증 데이터와 저장된 클라우드 서비스 계정 데이터의 비교에 기초하여 클라이언트 디바이스(106)를 인증할 수 있다.
만약 컴퓨팅 시스템(108)이 클라이언트 디바이스(106)의 인증 크리덴셜을 저장된 클라우드 서비스 계정 데이터와 매칭시킬 수 없는 경우(예컨대, 단계(316)의 NO), 컴퓨팅 시스템(108)은 (예컨대, 단계(318)에서) 실패한 인증을 나타내는 오류 데이터를 생성하여 네트워크(122)를 통해 클라이언트 디바이스(106)로 전송한다. 이어서 예시적인 프로세스(300)는 단계(320)에서 완료된다.
그러나, 컴퓨팅 시스템(108)이 클라이언트 디바이스의 인증 크리덴셜을 저장된 클라우드 서비스 계정 데이터의 일부와 매칭시킬 수 있다면(예컨대, 단계(316)의 YES), 컴퓨팅 시스템(108)은 (예컨대, 단계(322)에서) 성공적인 인증의 확인을 생성하여 네트워크(122)를 통해 클라이언트 디바이스(106)로 전송할 수 있다.
성공적인 인증에 응답하여, 클라이언트 디바이스(106)는 리소스 디바이스 (102)(예를 들어, 액세스 요청(205))로의 로컬 액세스에 대한 요청을 생성하여 컴퓨팅 시스템(108)으로 전송할 수 있다. 액세스 요청(205)은 일부 양태에서, 리소스 디바이스(102) 및 클라이언트 디바이스(106)의 식별자(예컨대, MAC 어드레스, IP 어드레스 등)을 포함할 수 있다.
컴퓨팅 시스템(108)은 (예를 들어, 단계 324에서) 클라이언트 디바이스(106)로부터 액세스 요청을 수신하여, (예를 들어, 단계 324에서) 요청된 액세스가 소유자 디바이스(104)에 의해 클라이언트 디바이스(106)에게 승인된 액세스와 일치하는지 여부를 결정할 수 있다. 예를 들어, 단계(326)에서, 컴퓨팅 시스템(108)은 수신된 액세스 요청을 파싱하여 리소스 디바이스(102) 및 추가적으로 또는 대안적으로 클라이언트 디바이스(106)를 식별할 수 있다. 컴퓨팅 시스템(108)은 또한 리소스 디바이스(102)에 대응하는 ACL의 국부적으로 저장된 사본에 액세스할 수 있고, ACL의 엔트리에 기초하여 소유자 디바이스(104)가 클라이언트 디바이스(106)에게 리소스 디바이스(102)에 대한 액세스를 승인했는지 여부를 결정할 수 있다.
소유자 디바이스(104)가 클라이언트 디바이스(106)에게 액세스를 승인하지 않은 경우(예컨대, 단계(326)의 NO), 컴퓨팅 시스템(108)은 단계(318)로 복귀하여 클라이언트 디바이스(106)에 대한 승인된 액세스의 결여(lack)를 나타내는 오류 데이터를 생성하여 네트워크(122)를 통해 전송할 수 있다. 그런 다음 예시적인 프로세스(300)는 단계(320)에서 완료된다.
대안으로, 컴퓨팅 시스템(108)이 소유자 디바이스(104)가 클라이언트 디바이스(106)에게 리소스 디바이스(102)에 대한 액세스를 승인한 것으로 결정한 경우(예컨대, 단계(326)의 YES), 컴퓨팅 시스템(108)은 (예를 들어, 단계(328)에서) 리소스 디바이스(102)에 대한 클라이언트 디바이스(106)의 액세스를 일괄적으로 용이하게 하는 로컬 디바이스 토큰 및 로컬 액세스 토큰(예컨대, 도 2의 로컬 토큰(206))을 생성할 수 있다. 소정 양태에서, 단계(328)에서, 컴퓨팅 시스템(108)은 (예를 들어, 성공적인 등록 프로세스 후에 리소스 디바이스(102)에 의해 생성되고 리소스 디바이스(102)로부터 수신된 바와 같은) 마스터 디바이스 및 액세스 토큰의 국부적으로 저장된 사본에 액세스할 수 있으며, 마스터 디바이스 및 액세스 토큰 각각에 대한 확장에 기초하여 로컬 디바이스 토큰 및 로컬 액세스 토큰을 생성 및 "발생(mint)"할 수 있다.
예를 들어, 전술한 바와 같이, 마스터 디바이스 토큰은 마카롱으로 포맷될 수 있고, 그 통고는 리소스 디바이스(102)의 식별자(예컨대, MAC 어드레스 등) 및 리소스 디바이스(102)에 의해 생성된 랜덤 데이터(예컨대, 랜덤 넌스)를 포함하지만, 이에 한정되지 않는다. 단계(328)에서 로컬 디바이스 토큰을 생성하기 위해, 컴퓨팅 시스템(108)은 하나 이상의 추가적인 통고(예를 들어, 클라이언트 디바이스(106)의 디바이스 식별자, 랜덤 논스로서의 추가 랜덤 데이터 등)를 부가함으로써 마스터 디바이스 토큰을 확장할 수 있으며, 이전 태그를 키로 사용하여 추가적인 통고에 적절한 MAC 알고리즘을 재귀적으로 적용할 수 있다.
또한, 예를 들어, 마스터 액세스 토큰은 마카롱으로 포맷될 수 있으며, 그 통고는 리소스 디바이스의 소유자(예컨대, 가장 높은 가용 권한) 및/또는 리소스 디바이스(102)에 의해 생성된 랜덤 데이터(예컨대, 랜덤 넌스)와 관련된 역할 또는 권한 레벨을 포함할 수 있지만, 이에 한정되는 것은 아니다. 소정 양태에서, 단계(328)에서 로컬 액세스 토큰을 생성하기 위해, 컴퓨팅 시스템(108)은 추가적인 랜덤 데이터(예컨대, 랜덤 논스)와 함께 소유자 디바이스(104)에 의해 리소스 디바이스(102)의 클라이언트 디바이스(106)의 액세스에 부과된 하나 이상의 제약 및/또는 제한(예컨대, ACL에 저장된 하나 이상의 액세스 파라미터)을 식별하는 하나 이상의 추가적인 통고를 부가함으로써 마스터 액세스 토큰을 확장시킬 수 있다
예를 들어, 컴퓨팅 시스템(108)은 소유자 디바이스(104)에 의해 상기 리소스 디바이스(102)를 액세스하는 클라이언트 디바이스(106)의 능력에 부과된 제약 및/또는 제한을 나타내는 액세스 파라미터를 추출하기 위해 국부적으로 저장된 ACL을 파싱할 수 있다. 위에서 언급한 바와 같이, 부과된 제약 및 제한에는 만료 날짜, 시간적 제한(예컨대, 액세스의 유효한 날짜 및 시간), 세션 기반 제한(예컨대, 단일 수립된 통신 설정에 대한 위임된 액세스 제한), 액세스 타입에 대한 제한(예컨대, 예컨대, 사용, 설정 수정 등), 클라이언트 디바이스(106)(예컨대, 소유자, 관리자, 사용자 등)의 역할, 액세스를 추가로 위임하는 클라이언트 디바이스(106)의 능력(예컨대, 추가 토큰 발생) 및/또는 (예를 들어, 네트워크(122)에 대한 액세스없이) 오프라인으로 리소스 디바이스(122)를 액세스하는 클라이언트 디바이스(106)의 능력을 포함할 수 있지만 이에 한정되는 것은 아니다. 그런 다음 컴퓨팅 디바이스 (108)는 (예를 들어, 마스터 액세스 토큰으로부터의) 이전 태그를 키로 사용하여 추가 통고 세트에 적절한 MAC 알고리즘을 적용함으로써 로컬 액세스 토큰을 위한 새로운 태그를 생성할 수 있다.
이어서, 컴퓨팅 시스템(108)은 (예를 들어, 단계(320))에서 전술한 임의의 보안 통신 프로토콜을 사용하여 네트워크(122)를 통해 클라이언트 디바이스(106)로 생성된 로컬 디바이스 및 액세스 토큰(예컨대, 도 2의 로컬 토큰 데이터(206)을 전송할 수 있다. 그런 다음 예시적인 프로세스(300)는 단계(320)에서 완료된다.
전술한 실시예에서, 컴퓨팅 시스템(108)은 클라이언트 디바이스(106)로부터 수신된 액세스 요청에 응답하여 로컬 디바이스 및/또는 액세스 토큰을 생성하도록 구성될 수 있다. 다른 양태에서, 개시된 실시예들과 일관되게, 컴퓨팅 시스템(108)은 로컬 디바이스 및/또는 액세스 토큰을 특정 또는 사전 결정된 간격(예컨대, 매시간, 매일 등)으로 또는 하나 이상의 이벤트(예컨대, 소유자 디바이스(104)로부터의 요청에 응답하여 ACL에 대한 수정)의 발생 검출에 응답하여 생성 및 저장하는 프로세스를 대신 수행할 수 있다. 추가적인 양태에서, 컴퓨팅 시스템(108)은 또한 로컬 디바이스 및/또는 액세스 토큰들의 추가 버전을 특정 또는 사전 결정된 간격으로 또는 전술한 임의의 이벤트에 응답하여 (예를 들어, 전술한 임의의 보안 통신 프로토콜을 사용하는 네트워크(122)를 통해) 클라이언트 디바이스(106)로 "푸시 (push)하는 동작을 수행할 수 있다.
소정 실시예에서, 전술한 예시적인 프로세스는 리소스 디바이스(102)가 액세스 제어 결정을 컴퓨팅 시스템(108)(예를 들어, Google CloudTM에 의해 유지되는 서버와 같은 클라우드 서버)에 위임할 수 있게 하며, 이는 소유자 디바이스(104)에 의해 부과된 하나 이상의 제약 및/또는 제한에 따라 클라이언트 디바이스(106)에 리소스 디바이스(102)에 대한 액세스를 제공할 수 있게 한다. 예를 들어, 전술한 바와 같이, 컴퓨팅 시스템(108)은 로컬 디바이스 토큰 및 로컬 클라이언트를 클라이언트 디바이스(106)로 제공할 수 있다. 아래에서 설명되는 추가 실시예에서, 로컬 디바이스 및 액세스 토큰은 클라이언트 디바이스(106)가 (예를 들어, 네트워크 (126)를 통해) 리소스 디바이스(102)와 보안 다이렉트 무선 접속을 수립하고, 소유자 디바이스(104) 또는 컴퓨팅 시스템(108)과 추가 네트워크 통신을 요구하지 않고 소유자 디바이스에 의해 부과된 제약 및/또는 제한에 따라 리소스 디바이스 (102)를 액세스하도록 할 수 있다.
개시된 실시예와 일치하는 일부 양태에서, 클라이언트 디바이스(106)는 네트워크(126)를 통해 동작하는 리소스 디바이스(102)를 탐색하는 동작들을 수행할 수 있다. 예를 들어, 리소스 디바이스(102)는 네트워크(126)를 통해 동작하는 디바이스들을 탐색할 수 있고, 네트워크(126)를 통해 동작하는 디바이스로 그것들의 탐색 가능 상태를 나타내는 광고 데이터를 브로드캐스할 수 있다. 소정 양태에서, 리소스 디바이스(102)는 공개적으로 또는 사적으로 탐색할 수 있고, 클라이언트 디바이스(106)는 상술한 임의의 예시적인 기술들을 사용하여 공개적으로 또는 사적으로 검색 가능 상태에서 리소스 디바이스(102)를 탐색할 수 있다
클라이언트 디바이스(106)가 리소스 디바이스(102)를 탐색할 때, 클라이언트 디바이스(106)와 리소스 디바이스(102)는 전술한 저에너지 BLE 네트워크와 같은 네트워크(126)를 통해 보안 다이렉트 연결을 수립하는 프로세스를 시작할 수 있다. 예를 들어, 클라이언트 디바이스(106)는 (예를 들어, 컴퓨팅 시스템(108)으로부터 수신된) 로컬 디바이스 토큰을 수신 및 저장할 때, 랜덤 데이터(예컨대, 클라이언트-특정 랜덤 넌스)를 생성할 수 있고, 저장된 로컬 토큰으로부터 일련의 통고를 추출할 수 있다. 추출된 일련의 통고는 리소스 디바이스(102)의 식별자(예컨대, MAC 어드레스 등) 및 리소스 디바이스(102)에 의해 생성된 랜덤 데이터(예컨대, 디바이스-특정 랜덤 넌스)를 포함할 수 있지만, 이에 한정되는 것은 아니다.
특정 양태에서, 클라이언트 디바이스(106)는 저장된 로컬 디바이스 토큰 및 생성된 클라이언트-특정 랜덤 넌스에 대한 MAC 알고리즘(예를 들어, 16바이트의 태그 길이를 갖는 HMAC SHA256 알고리즘)의 애플리케이션에 기초하여 대칭 암호화 키의 제1값(예를 들어, 제1 해시)을 계산하도록 구성될 수 있다. 또한, 도 4를 참조하여 후술하는 바와 같이, 클라이언트 디바이스(106)는 리소스 디바이스(102)가 (예를 들어, 리소스 디바이스(102)에 의해 유지되는) 루트 암호 키에 재귀적으로 적용되는 MAC 알고리즘, 추출된 통고 시퀀스 및 생성된 클라이언트-특정 랜덤 넌스에 기초하여 대칭 암호화 키의 제2값을 계산하도록 요청할 수 있고, 제1 및 제2 대칭 암호화 키의 비교에 기초하여 리소스 디바이스(102)의 신원을 추가로 검증할 수 있다.
도 4는 개시된 실시예에 따라, 클라이언트 디바이스(106)에 의한 리소스 디바이스(102)의 토큰 기반 액세스를 용이하게 하는 데이터(400)의 예시적인 교환을 나타내는 개략도이다. 예를 들어, 클라이언트 디바이스(106)는 리소스 디바이스가 대칭 암호화 키의 제2값을 계산하도록 요청하는 데이터(예를 들어, 키 요청 데이터(401))를 네트워크(126)를 통해 리소스 디바이스(102)로 전송할 수 있다. 키 요청 데이터(401)는 추출된 통고 시퀀스 및 클라이언트-특정 랜덤 넌스를 포함할 수 있지만 이에 한정되는 것은 아니며, 소정 양태에서, 클라이언트 디바이스(106)는 전술한 바와 같이 공유 개인 암호화 키를 사용하여 키 요청 데이터(401)를 암호화할 수 있다. 그러나, 개시된 실시예는 이들 예시적인 암호화 방식(scheme)에 제한되지 않으며, 다른 양태에서, 클라이언트 디바이스(106)는 키 요청 데이터(401), 클라이언트 디바이스(106), 및 리소스 디바이스에 적절한 임의의 추가 또는 대체 암호화 방식을 사용하여 키 요청 데이터(401)를 암호화할 수 있다 102)(또는, 대안적으로 암호화 없이 평문으로 키 요청 데이터(401)를 전송할 수 있다).
일부 양태에서, 리소스 디바이스(102)는 키 요청 데이터(401)를 수신할 수 있고(적절하다면 해독할 수 있고), 루트 암호화 키, 추출된 통고 시퀀스 및 생성된 클라이언트 특정 랜덤 넌스에 대한 MAC 알고리즘의 재귀적 애플리케이션에 기초하여 상기 대칭 암호화 키의 요청된 제2 값을 계산할 수 있다. 예를 들어, MAC 알고리즘은 16바이트의 태그 길이를 갖는 HMAC SHA256 알고리즘을 포함할 수 있다. 리소스 디바이스(102)는 일부 예에서, 루트 암호화 키 및 추출된 통고 시퀀스에 대한 MAC 알고리즘의 제1애플리케이션에 기초하여 해쉬값을 계산할 수 있으며, 계산된 해쉬값과 클라이언트-특정 랜덤 넌스에 대한 AC 알고리즘의 제2애플리케이션에 기초하여 대칭 암호화 키의 제2값을 계산할 수 있다. 리소스 디바이스(102)는 일부 양태에서, 네트워크(126)를 통해 클라이언트 디바이스(106)로 제2 암호화 키(예컨대, 키 값 데이터(402))를 포함하는 키 데이터를 전송할 수 있다. 일부 예에서, 전술한 바와같이, 리소스 디바이스(102)는 공유된 개인 암호화 키 및 추가 또는 대안으로 키 값 데이터(402), 리소스 디바이스(102) 및 클라이언트 디바이스(106)에 적합한 임의의 다른 암호화 방식을 이용하여 키 데이터를 함호화할 수 있다(또는 대안으로, 암호화없이 평문으로 키 요청 데이터(401)를 전송할 수 있다).
클라이언트 디바이스(106)는 계산된 제1값과 비교할 수 있는 대칭 암호화 키의 제2 값을 얻기 위해 키 값 데이터(402)를 수신할 수 있다(적절하다면 해독할 수 있다). 클라이언트 디바이스(106)가 제1 및 제2 값이 일치하지 않는다고 결정하면, 클라이언트 디바이스(106)는 실패한 연결 시도를 나타내는 응답을 (도 4에 도시되지 않은) 리소스 디바이스(102)로 전송하는데, 이는 클라이언트 디바이스(106)와의 접속 프로세스를 취소하고 리소스 디바이스(102)가 네트워크(126)를 통해 동작하는 다른 디바이스와 탐색 프로세스를 개시하기 위해 추가적인 광고 데이터를 브로드캐스트하도록 할 수 있다.
대안적으로, 클라이언트 디바이스(106)가 대칭 암호화 키의 제1값과 제2값간의 매칭을 결정하면, 클라이언트 디바이스(106)는 리소스 디바이스(102)의 신원을 검증할 수 있고, 네트워크(126)를 통해 리소스 디바이스(102)와의 보안 다이렉트 접속을 수립할 수 있다. 소정 양태에서, 리소스 디바이스(102)의 신원을 검증함으로써(예컨대, 클라이언트 디바이스(106)가 올바른 디바이스와 접속을 수립하고 있음), 클라이언트 디바이스(106)는 공격자 또는 악의적인 사용자가 중간자 공격 (man-in-the-middle attack)을 시도하지 않도록 보장할 수 있다. 또한, 클라이언트 디바이스(106) 및 리소스 디바이스(102)에 의해 계산된 대칭 암호화 키들의 제1 및 제2 값은 일부 양태에서, 클라이언트 디바이스(106)가 저장된 로컬 액세스 토큰에 따라 리소스 장치(102)의 하나 이상의 기능에 액세스할 수 있게 하는 통신을 포함하여, 수립된 다이렉트 무선 접속을 통해 클라이언트 디바이스(106)와 리소스 디아비스 (102) 간의 향후 통신(future communications)을 암호화할 수 있는 세션 키(403)를 나타낼 수 있다.
소정 양태에서, 클라이언트 디바이스(106)는 리소스 디바이스(102)의 하나 이상의 기능을 액세스하기 위한 요청(예컨대, 로컬 액세스 요청 데이터(404))을 수립된 무선 접속을 통해 리소스 디바이스(102)로 전송할 수 있다. 클라이언트 디바이스(106)는 예를 들어, 요청된 로컬 액세스(예를 들어, 범위, 타입 및/또는 액세스 지속 시간)를 식별하는 데이터를 포함할 수 있고, 또한 저장된 로컬 액세스 토큰의 사본을 포함할 수 있다. 리소스 디바이스(102)는 로컬 액세스 요청 데이터 (404)를 수신(그리고 적절한 경우 해독)할 수 있고, 로컬 액세스 토큰 및 요청된 액세스를 식별하는 데이터를 획득하기 위해 로컬 액세스 요청 데이터(404)를 파싱할 수 있다. 일부 양태에서, 리소스 디바이스(102)는 로컬 액세스 토큰 및 그 표시된 인증 체인의 유효성을 설정할 수 있고, 요청된 로컬 액세스가(예를 들어, 컴퓨팅 시스템(108)에 의한 로컬 액세스 토큰의 하나 이상의 통고에 내포된) 로컬 액세스 토큰 내에 포함된 액세스 파라미터와 일치하는지 여부를 결정할 수 있다.
예를 들어, 전술한 바와 같이, 컴퓨팅 시스템(108)은 리소스 디바이스(102)에 의해 생성되고 유지되는 마스터 액세스 토큰의 확장에 기초하여 로컬 액세스 토큰을 생성할 수 있다. 소정 양태에서, 리소스 디바이스(102)는 (예를 들어, 클라이언트 디바이스(106)의 로컬 액세스 권한을 정의하는 액세스 파라미터들을 지정할 수 있는) 로컬 액세스 토큰의 수신된 사본으로부터 일련의 통고를 추출할 수 있고, 추출된 통고 시퀀스 및 (예를 들어, 리소스 디바이스(102)에 의해 생성되고 저장된) 마스터 액세스 토큰에 MAC 알고리즘을 적용하여 로컬 액세스 토큰의 디바이스-특정 사본을 생성할 수 있다.
로컬 액세스 토큰의 수신된 것과 디바이스-특정 사본들이 일치할 때(예를 들어, 로컬 액세스 토큰의 수신된 것과 디바이스-특정 사본의 태그가 일치할 때), 리소스 디바이스(102)는 로컬 액세스 토큰의 수신된 사본의 유효성을 확립할 수 있다. 소정 양태에서, 그리고 결정된 유효성에 응답하여, 클라이언트 디바이스(106)에 의해 요청된 액세스가, 예를 들어, 추출된 통고 시퀀스의 액세스 파라미터들 내에 특정된, 소유자 디바이스(104)에 의해 승인된 액세스와 일치하는지 여부를 결정할 수 있다.
예를 들어, 리소스 디바이스(102)는 클라이언트 디바이스(106)로부터 수신된 액세스 요청을 분석하여 하나 이상의 요청된 기능을 식별하고, 클라이언트 디바이스(106)가 요청된 기능에 액세스하는 데 필요한 역할을 결정하거나 식별할 수 있다. 또한, 상술한 바와 같이, 리소스 디바이스(102)는 추출된 통고 시퀀스에 기초하여 로컬 액세스 토큰이 아직 만료되지 않았음(예컨대, 액세스 파라미터들에 지정된 만료 날짜이 아직 발생하지 않았음)을 결정할 수 있다. 리소스 디바이스(102)는 또한 (예를 들어, 액세스 파라미터 내에 지정된 역할에 기초하여) 클라이언트 디바이스(106)에 할당된 역할 또는 권한 레벨을 식별할 수 있고, 소유자 디바이스(104)에 의해 부과된 하나 이상의 추가 제한(예를 들어, 시간적 제한, 액세스 타입에 대한 제한, 오프 라인 사용에 대한 제한 및 후속 위임에 대한 제한 등)을 식별할 수 있다.
소정 양태에서, 리소스 디바이스(102)는 요청된 기능에 액세스하기 위해 클라이언트 디바이스(106)에 의해 요구되는 역할이 (예를 들어, 소유자 디바이스 (104)에 의해) 클라이언트 디바이스(106)에 할당된 역할과 일치하는지를 결정할 수 있고, 또한 요청된 기능이 소유자 디바이스(104)에 의해 부과된 하나 이상의 추가 제한과 일치하는지 결정할 수 있다. 요청된 액세스가 할당된 역할 및 부과된 제한과 일치할 때, 리소스 디바이스(102)는 네트워크(126)를 통해 클라이언트 디바이스(106)로 결정된 일치성을 나타내고 요청된 액세스의 승인을 확인하는 데이터(예컨대, 액세스 확인 데이터(405))를 생성 및 전송할 수 있어, 요청된 액세스를 클라이언트 디바이스(106)로 승인할 수 있다(예컨대, 승인된 액세스(406).
대안적으로, 리소스 디바이스(102)가 요청된 액세스가 할당된 역할 및/또는 부과된 제한과 일치하지 않는다고 판단하는 경우, 리소스 디바이스(102)는 네트워크(126)를 통해 클라이언트 디바이스(106)로 (예를 들어, 요청된 액세스를 수정하도록 클라이언트 디바이스(106)에게 프롬프트할 수 있는) 에러 메시지(도 4에 미도시)를 셍성하여 전송할 수 있다. 클라이언트 디바이스(106)와 리소스 디바이스 (102)는 클라이언트 디바이스(106)가 리소스 디바이스(102)에 액세스하는 것을 용이하게 하는 추가 데이터를 교환할 수 있다.
도 5는 개시된 실시예에 따라, 클라이언트 디바이스가 리소스 디바이스에 액세스하는 것을 승인하는 예시적인 프로세스(500)의 흐름도이다. 소정 양태에서, 리소스 디바이스(102)(예컨대, 리소스 디바이스(102))는 리소스 디바이스(102)가 액세스를 요청하는 클라이언트 디바이스(예컨대, 클라이언트 디바이스(106))와 보안 및 다이렉트 무선 접속을 수립하는 것을 가능하게 할 수 있는 예시적인 프로세스 (500)의 단계들을 수행할 수 있으며, 다이렉트 무선 접속을 통해 클라이언트 디바이스(106)에 의해 리소스 디바이스(102)에 제시된 로컬 액세스 토큰(예컨대, 로컬 액세스 토큰)에 기초하여 클라이언트 디바이스(106)로 액세스를 승인할 수 있다.
일부 양태에서, 리소스 디바이스(102)는 클라이언트 디바이스(106)에 의해 수행되는 검증 동작과 관련하여, (단계(502))에서 전술한 임의의 예시적인 기술을 사용하여 네트워크(126)를 통해 리소스 디바이스(102)와 클라이언트 디바이스(106) 사이에 보안 및 다이렉트 무선 접속을 수립할 수 있다. 예를 들어, 전술한 바와 같이, (예를 들어, 클라이언트 디바이스(106)에 의해 계산된) 대칭 암호화 키의 클라이언트-특정 값이 (예를 들어, 리소스 디바이스(102)에 의해 계산된) 대칭 암호화 키의 디바이스-특정 값에 대응할 때, (단계(502))에서 클라이언트 디바이스(106)와 리소스 디바이스(102)는 네트워크(126)를 통해 보안 및 지향 무선 접속을 집합적으로 수립할 수 있다. 또한, 클라이언트 디바이스(106)와 리소스 디바이스(102)는, 클라이언트 디바이스(106) 및 리소스 디바이스(102)가 (예를 들어, 단계(502)에서 수립된 바와 같이) 보안, 지향된 무선 접속을 통해 후속 통신을 암호화 할 수 있는 세션 키(예컨대, 도 4의 세션 키들(403))로서 대칭 암호화 키의 클라이언트-특정 및 디바이스-특정 값들 각각을 집합적으로 설정할 수 있다.
일부 양태에서, 리소스 디바이스(102)는 수립된 무선 접속을 통해 클라이언트 디바이스(106)로부터 리소스 디바이스의 하나 이상의 기능을 액세스하기 위한 요청(예컨대, 도 4의 로컬 액세스 요청 데이터(404))을 수신할 수 있다(예컨대, 단계(504)에서). 일부 양태에서, 수신된 요청은 요청된 로컬 액세스(예컨대, 범위 (scope), 타입 및/또는 액세스 지속 기간)를 식별하는 데이터를 포함할 수 있고, 또한 저장된 로컬 액세스 토큰의 사본을 포함할 수 있다.
리소스 디바이스(102)는 수신된 요청을 파싱하여 로컬 액세스 토큰의 적어도 일부 및 요청된 액세스를 식별하는 데이터를 획득할 수 있고, 일부 양태에서, (예를 들어, 단계(506)에서) 로컬 액세스 토큰 및 그것의 표시된 인증 체인의 유효성을 결정할 수 있다. 예를 들어, 전술한 바와 같이, 컴퓨팅 시스템(108)은 리소스 디바이스(102)에 의해 생성되고 유지되는 마스터 액세스 토큰의 확장에 기초하여 로컬 액세스 토큰을 생성할 수 있다. 리소스 디바이스(102)는, 소정 양태에서, (예를 들어, 클라이언트 디바이스(106)의 로컬 액세스 권한을 정의하는 액세스 파라미터들을 지정할 수 있는) 로컬 액세스 토큰의 수신된 부분으로부터 일련의 통고를 추출할 수 있고, 추출된 통고 시퀀스 및 (예컨대, 리소스 디바이스(102)에 의해 생성되고 저장된) 마스터 액세스 토큰에 MAC 알고리즘을 적용하여 로컬 액세스 토큰의 수신된 부분의 디바이스-특정 사본을 계산할 수 있다. 또한, 리소스 디바이스 (102)는 로컬 액세스 토큰의 수신 및 계산된 사본들의 비교(예컨대, 마카롱 형태의 로컬 액세스 토큰의 수신 및 계산된 사본들의 태그 비교)에 에 기초하여 로컬 액세스 토큰의 유효성을 결정할 수 있다(따라서, 수신된 부분이 리소스 디바이스(102)에 대한 액세스를 인증하는 유효한 토큰으로부터 파생된 것으로 결정한다). 소정 양태에서, 리소스 디바이스(102)는 국부적으로 저장된 데이터에 기초하여 그리고 네트워크(122)를 통해 컴퓨팅 시스템(108)과 통신하지 않고, 수신된 로컬 액세스 토큰의 유효성을 결정하도록 구성될 수 있다.
리소스 디바이스(102)가 로컬 액세스 토큰의 수신된 사본이 로컬 액세스 토큰의 계산된 사본과 매치하지 않는 것으로 결정한 경우(예컨대, 단계(506)의 NO), 리소스 디바이스(102)는 (예를 들어, 단계(508)에서) 무효한 로컬 액세스 토큰을 나타내는 에러 데이터를 생성하여 클라이언트 디바이스(106)로 전송할 수 있다. 그런 다음 단계(510)에서 예시적인 프로세스(500)가 완료된다.
그러나, 리소스가 로컬 액세스 토큰의 수신된 사본과 계산된 사본사이의 일치를 검출한 경우(예컨대, 단계(506)의 YES), 리소스 디바이스(102)는 로컬 액세스 토큰의 수신된 부분이 유효한 토큰으로부터 파생되었음을 설정할 수 있고, 따라서 (예를 들어, 단계(512)에서) 로컬 액세스 토큰의 유효성을 확설정할 수 있다. 특정 양태에서, 결정된 유효성에 응답하여, 리소스 디바이스(102)는 클라이언트 디바이스(106)에 의해 요청된 액세스가, 예를 들어, 추출된 통고 시퀀스의 액세스 파라미터내에 특정된, 소유자 디바이스(104)에 의해 승인된 액세스와 일치하는지 여부를 결정할 수 있다(예를 들어, 단계(514에서)).
예를 들어, 단계(514)에서, 리소스 디바이스(102)는 클라이언트 디바이스 (106)로부터 수신된 액세스 요청을 파싱하여 하나 이상의 요청된 기능을 식별하고, 클라이언트 디바이스(106)가 상기 요청된 기능에 액세스하는데 요구되는 역할을 결정하거나 식별한다. 또한, 리소스 디바이스(102)는 통고 시퀀스의 부분들에 기초하여, 로컬 액세스 토큰이 아직 만료되지 않았음(예를 들어, 액세스 파라미터들에 지정된 만료 날짜이 아직 발생하지 않았음)을 결정할 수 있다. 단계(514)에서, 리소스 디바이스(102)는 또한 (예를 들어, 액세스 파라미터 내에 지정된 역할에 기초하여) 클라이언트 디바이스(106)에 할당된 역할 또는 권한 레벨을 식별할 수 있고, 소유자 디바이스(104)에 의해 클라이언트 디바이스(106)에 부과된 하나 이상의 추가 제한(예컨대, 시간적 제한, 액세스 타입에 대한 제한, 오프 라인 사용에 대한 제한 및 후속 위임에 대한 제한 등)을 식별할 수 있다.
소정 양태에서, 리소스 디바이스(102)는 요청된 기능들에 액세스하기 위해 클라이언트 디바이스(106)에 의해 요구된 역할이(예를 들어, 소유자 디바이스(104)에 의해) 클라이언트 디바이스(106)에 할당된 역할과 일치하는지를 단계(516)에서 결정할 수 있으며, 요청된 기능들이 (예를 들어, 액세스 파라미터들 내에서) 소유자 디바이스(104)에 의해 부과된 추가 제한 및 제한과 일치하는지 여부를 더 결정할 수 있다. 리소스 디바이스(102)가 상기 요구된 역할이 할당된 역할과 일치하지 않는다고 결정할 때(예를 들어, 요청된 기능이 "관리자"역할을 요구하고, 클라이언트 디바이스(106)에 "사용자"의 하위 역할이 할당된 소유자 디바이스) 및/또는 요청된 기능들이 부과된 제약들 및 제한들과 일치하지 않을 때(예컨대, 단계(516)의 NO), 리소스 디바이스(102)는 단계(518)로 되돌아 가서 네트워크(126)를 통해 클라이언트 디바이스(106)로 에러 메시지를 생성하여 전송할 수 있다. 그런 다음 예시적인 프로세스(500)는 단계(510)에서 완료된다.
대안적으로, 만약 디소스 디바이스(102)가 요구된 역할이 할당된 역할과 일치하고 요청된 기능들이 부과된 제약 및 제한과 일치한다고 결정하면(예컨대, 단계 (516)의 YES), 리소스 디바이스(102)는 결정된 일치성을 나타내고 요청된 액세스의 승인을 확인하는 데이터(예컨대, 도 4의 액세스 확인 데이터(405))를 생성하여 (예를 들어, 단계(518)에서 네트워크(126)를 통해 클라이언트 디바이스(106)로 전송할 수 있다. 리소스 디바이스(102)는 요청된 액세스를 클라이언트 디바이스(106)에 승인할 수 있고, (단계(520)에서 요청된 기능들에 대한 클라이언트 디바이스(106)의 액세스를 용이하게 하는 추가 데이터를 교환할 수 있다. 그런 다음 예시적인 프로세스(500)는 단계(510)에서 완료된다.
하나 이상의 개시된 예시적인 실시예를 사용하여, 리소스 디바이스(102)(예컨대, 소유자 디바이스(104))를 소유하거나 제어하는 엔티티의 디바이스는 (예를 들어, 클라이언트 디바이스(106)를 통해) 하나 이상의 클라이언트 디바이스와 리소스 디바이스(102)에 대한 액세스를 공유할 수 있다. 상술한 바와 같이, 소유자 디바이스(104)는 네트워크(122)를 통해 컴퓨팅 시스템(108)과 통신을 수립할 수 있고, 액세스 권한을 갖는 하나 이상의 엔티티를 식별하는 데이터(예를 들어, 클라이언트 디바이스(106)의 디바이스 식별자)를 제공하고 이들 액세스 권한을 정의하는 제약 및/또는 제한을 특정할 수 있다. 그러나, 개시된 실시예는 클라이언트 디바이스(106)에 대한 액세스 권리의 제공을 용이하게 하기 위해 소유자 디바이스(104)와 클라이언트 디바이스(106) 사이의 직접적인 무선 연결을 필요로 하지 않으며 클라이언트 디바이스(106)가 소유자 디바이스(104)에 대한 자신의 신원을 검증하거나 증명할 것을 요구하지도 않는다. 또한, 상술한 소정 실시예에서, 소유자 디바이스(104)는 오프라인 및/또는 전원 오프일 수 있는 리소스 디바이스(102) 및 클라이언트 디바이스(106)와 독립적인 컴퓨팅 시스템(108)에 대해 자신을 인증하고 공유된 액세스 권한을 나타내는 데이터를 제공할 수 있다.
또한, 전술한 바와 같이, 클라이언트 디바이스(106)는 네트워크(122)를 통해 컴퓨팅 시스템(108)에 대해 자신을 인증하고, (예를 들어, 소유자 디바이스(104)에 의해 부과되고 컴퓨팅 시스템(108)에 의해 유지되는 액세스 제어 리스트(ACL)에 통합되는 제약 및/또는 제한에 따라) 리소스 디바이스(102)에 대한 클라이언트 디바이스(106)의 액세스를 용이하게 하는 로컬 디바이스 및 액세스 토큰을 획득할 수 있다. 클라이언트 디바이스(106)가 이들 토큰을 요청하여 획득하기 위해 네트워크 (122)를 통해 컴퓨팅 시스템(108)과 통신을 구축할 수 있지만, 개시된 실시예는 클라이언트 디바이스(106)가 이들 토큰을 요청하여 획득하는 프로세스를 수행하는 동안 네트워크(122)에 접속하지 않고 오프라인일 수 있는 리소스 디바이스(102) 및 소유자 디바이스(104)에 대한 요구 사항을 부과하지 않는다.
추가적인 양태에서, 클라이언트 디바이스(106) 및 리소스 디바이스(102)는 리소스 디바이스(102)의 하나 이상의 기능들에 대한 클라이언트 디바이스(106)의 액세스를 검증 및 설정하기 위해 네트워크(126)(예컨대, 저 에너지 BLE 네트워크)를 통해 데이터를 교환할 수 있다. 개시된 실시예는 클라이언트 디바이스(106) 및/또는 리소스 디바이스(102)가 전술한 예시적인 협상 프로세스 동안 네트워크(122)에 접속될 필요가 없으며, 또한 리소스 디바이스(102)는 (예를 들어, 클라이언트 디바이스(106)에 의해 제공되는) 로컬 액세스 토큰의 유효성을 클라이언트 디바이스(106), 소유자 디바이스(104) 및/또는 컴퓨팅 시스템(108)과 오프라인으로 그리고 통신 부재 상태로 결정할 수 있다.
또한, 상술한 바와 같이, 로컬 디바이스 인증과 로컬 액세스 토큰은 컴퓨팅 시스템(108)에 의한 생성 직후에 만료되는 (예컨대, 생성 또는 발생 후 30분, 1시간, 1일 등의 만료 날짜의) "단명" 토큰을 나타낼 수 있다. 다른 실시예에서, 개시된 실시예와 일관되게, 소유자 디바이스(104)는 네트워크 디바이스(122)에 접속되지 않고 오프라인인 동안 상기 인증된 디바이스(예컨대, 클라이언트 디바이스 (106))에게 리소스 디바이스(102)에 액세스 하는 권한(permission)를 승인할 수 있다. 예를 들어, 컴퓨팅 시스템(108)은 (예컨대, 상술한 임의의 예시적인 기술을 사용하여) 대응하는 로컬 액세스 토큰의 통고 데이터 부분 내에 클라이언트 디바이스(106)에게 승인된 오프라인 액세스를 지정할 수 있다. 부가적으로, 소정 실시예에서, 컴퓨팅 시스템(108)은 리소스 디바이스(102)에 대한 클라이언트 디바이스(106)의 오프라인 액세스를 용이하게 하기 위해 (예를 들어, 컴퓨팅 시스템(108)에 의한 생성 이후 일, 주 또는 월에 만료하는 "긴 수명(long-lived)"을 생성하도록) 대응하는 로컬 액세스 토큰의 만료 날짜을 지연시킬 수 있다.
또한, 소정의 예시적인 실시예에서, 소유자 디바이스(104)에 의해 리소스 디바이스(102)에 대한 액세스가 승인된 디바이스의 사용자((예컨대, 클라이언트 디바이스(106)의 사용자)는 컴퓨터 컴퓨팅 시스템(108)에 의해 유지되는 클라우드 서비스의 계정(예컨대, GAIATM 계정 및/또는 Google CloudTM 계정)을 유지할 수 있고, 리소스 디바이스(102)에 대응하는 액세스 제어 리스트(ACL)는 클라우드-서비스 계정에 부여된 승인된 액세스와 관련될 수 있다. 그러나, 개시된 실시예는 클라우드 서비스 계정 소유자에게 액세스를 승인하는 프로세스로 제한되지 않으며, 다른 실시예에서, 소유자 디바이스(104)는 액세스 권한을 인증된 디바이스에 승인하는 제어 데이터를 전송할 수 있고, 전술한 바와같이 인증된 다비이스의 사용자에 의한 대역외(out-of-band) 통신 메카니즘이 로컬 디바이스 및 액세스 토큰에 액세스할 수 있음을 식별할 수 있다. 예를 들어, 대역 외 통신 메커니즘은 이메일 어드레스 또는 계정, 소셜 미디어 네트워크(예컨대, FacebookTM, TwitterTM, Google+TM 등) 내의 핸들(handle), 채팅 네트워크 또는 메시징 서비스 내의 핸들(예컨대, WhatsAppTM 사용자 이름), 및 SMS 및/또는 MMS 텍스트 메시지를 수신할 수 있는 전화 번호를 포함할 수 있지만, 이에 한정되지는 않는다.
개시된 실시예와 일치하는 소정 양태에서, 컴퓨팅 시스템(108)은 대역 외 통신 메커니즘을 식별하는 데이터를 대응하는 ACL의 일부분 내에 통합할 수 있다. (예를 들어, 전술한 임의의 예시적인 기술을 사용하여) 로컬 디바이스 및/또는 액세스 토큰을 생성할 때, 컴퓨팅 시스템(108)은 ACL의 일부분으로부터 대역 외 통신 메커니즘을 식별할 수 있고, 로컬 디바이스 및/또는 액세스 토큰에 액세스하여 국부적으로 저장하는 능력을 클라이언트 디바이스(106)에 제공하는 URL을 생성할 수 있으며, 대역 외 통신 메커니즘에 따라 클라이언트 디바이스(106)로 상기 URL을 전송할 수 있다.
예를 들어, 클라이언트 디바이스(106)의 사용자는 (예를 들어, 클라이언트 디바이스(106)의 디스플레이 유닛 내에서 터치하거나 클릭함으로써) URL을 활성화할 수 있고, 클라이언트 디바이스(106)는 로컬 디바이스 및/또는 토큰에 액세스할 수 있다. 다른 예들에서, 클라이언트 디바이스(106)에 의해 실행되는 애플리케이션 프로그램(예를 들어, AndroidTM의 CroissantTM)은 수신된 URL을 자동으로 인식하여 사용자 개입없이 백그라운드에서 로컬 디바이스 및/또는 액세스 토큰을 패치할 수 있다. 일부 양태에서, 컴퓨팅 시스템(108)은 클라이언트 디바이스(106)에 의한 액세스 시도의 횟수에 대한 보다 짧은 유효 기간 및 제약을 포함하여 대역 외 통신 메커니즘을 통해 검색된 로컬 디바이스 및/또는 액세스 토큰에 추가적인 제한을 부과할 수 있다.
또한, 소정 양태에서, 리소스 디바이스(102)는 (예를 들어, 소유자의 옵트 아웃(opt-out)으로 인해) 네트워크(122)를 통해 컴퓨팅 시스템(108)에 접속될 수 없을 수 있고, 추가적으로 또는 대안적으로 (예를 들어, 스마트 락 등과 같은 저전력 디바이스에서 발생할 수 있는 바와같이) 네트워크(122)에 액세스할 수 없을 수도 있다. 네트워크(122)에 대한 액세스가 없는 경우, 리소스 디바이스(102)는 액세스 제어 결정을 컴퓨팅 시스템(108)으로 위임할 수 없고, 또한 시스템(108)상에 마스터 디바이스 및/또는 액세스 토큰을 저장할 수 없거나 컴퓨팅 시스템(108)이 마스터 디바이스 및/또는 액세스 토큰에 기초하여 추가적인 로컬 토큰을 생성할 것을 요구할 수 없다.
추가적인 실시예에서, 네트워크(122)에 대한 액세스가 없는 경우, 리소스 디바이스(102)는 액세스 제어 결정을 소유자 디바이스(104)(및 추가적으로 또는 대안적으로, 소유자 디바이스(104)에 의해 지정된 다른 디바이스)로 위임할 수 있고, 소유자 디바이스(104)는 (예를 들어, 전술한 예시적인 탐색 프로세스 이후에 네트워크(124)를 통해 전송된) 마스터 디바이스 및/또는 액세스 토큰의 사본을 유지할 수 있다. 추가적인 양태에서, 소유자 디바이스(104)는 액세스 제어 리스트를 설정, 유지 및/또는 갱신하고, 클라이언트 디바이스(106)로부터 리소스 디바이스에 액세스하기 위한 요청을 수신하고, 또한, 전술한 임의의 예시적인 프로세스를 사용하여 로컬 디바이스 및/또는 액세스 토큰을 생성 또는 발생할 수 있다.
개시된 실시예들은 예를 들어, 소유자 디바이스(104)가 임의의 적절한 대역 외 통신 메커니즘을 사용하여 상기 생성된 로컬 디바이스 및/또는 액세스 토큰을 인증된 디바이스들(예컨대, 클라이언트 디바이스(106))와 공유하도록 할 수 있다. 예를 들어, 소유자 디바이스(104)는 저장된 로컬 디바이스 및/또는 액세스 토큰을 나타내는 BLOB 및/또는 URL을 생성할 수 있고, 임의의 대역 외 통신 채널(예를 들어, 텍스트 메시지, 이메일 메시지, 다이렉트 채팅 메시지, 소셜 미디어 메시징 등)을 사용하여 BLOB 및/또는 URL을 전송할 수 있다. 클라이언트 디바이스(106)는 BLOB 및/또는 URL을 수신할 수 있고, 수신된 BLOB 및/또는 URL을 처리하여 로컬 디바이스 및/또는 액세스 토큰을 (예를 들어, 사용자 개입을 통해 또는 프로그래밍 방식으로) 로컬 메모리 또는 데이터 저장소에 저장할 수 있다. 개시된 실시예는 암호화되지 않은 대역 외 통신 채널을 통해 BLOB 및/또는 URL을 전송할 수 있으며, 따라서 기본(underlying) 전송 메커니즘을 암묵적으로 신뢰할 수 있다.
또한, 전술한 소정 실시예에서, 리소스 디바이스(102)는 강한 클라우드 기반인증에 의존하는 (예를 들어, Google CloudTM과 같은 클라우드 서비스를 유지하는) 컴퓨팅 시스템(108)으로 액세스 제어 결정을 위임한다. 다른 양태에서, 개시된 실시예들과 일치하여, 리소스 디바이스(102)는 (예를 들어, 리소스 디바이스(102)로부터 수신된) 마스터 디바이스 및/또는 액세스 토큰들을 저장할 수 있는 제3자 인증기관(third party authority)에 이들 액세스 제어 결정을 위임할 수 있고, 전술한 임의의 예시적인 프로세스를 사용하여 새로운 보다 제한된 토큰을 생성하고 다양한 전송을 통해 이들을 공유할 수 있다. 소정 양태에서, 제3자 인증 기관은 토큰 생성, 토큰 수명 및 범위에 대한 제어를 수행할 수 있다.
다수의 예시적인 실시예가 설명되었다. 그럼에도 불구하고, 본 개시의 사상 및 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있음을 이해할 것이다. 예를 들어, 위에 표시된 흐름들의 다양한 형태가 재 배열, 추가 또는 제거된 단계와 함께 사용될 수 있다.
본 명세서에서 설명되는 실시예들 및 모든 기능 동작들은 본 명세서에 개시된 구조 및 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함하여, 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉 데이터 처리 디바이스에 의해 실행되거나 데이터 처리 디바이스의 동작을 제어하기 위해 컴퓨터 판독 가능 매체 상에 인코딩된 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 기계-판독 가능 저장 디바이스, 기계-판독 가능 저장 기판, 메모리 디바이스, 기계 판독 가능 전파 신호에 영향을 미치는 물질의 조성물 또는 이들 중하나 이상의 조합일 수 있다. 컴퓨터-판독 가능 매체는 비-일시적인 컴퓨터 판독 가능 매체일 수 있다. "데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터들을 포함하여, 데이터를 처리하기 위한 모든 장치, 디바이스 및 기계를 포함한다. 상기 장치는 하드웨어 이외에, 해당(in question) 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들의 하나 이상의 조합을 구성하는 코드에 대한 실행 환경을 생성하는 코드를 포함할 수 있다. 전파 신호는 인위적으로 생성된 신호, 예를 들어 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하기 위해 생성된 기계-생성 전기적, 광학적 또는 전자기적 신호이다.
컴퓨터 프로그램(또는 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일된 또는 해석된 언어를 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있으며, 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브 루틴, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하는모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 반드시 파일 시스템의 파일과 일치하지는 않는다. 프로그램은 다른 프로그램이나 데이터(예컨대, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하고 있는 파일의 일부분, 해당 프로그램 전용의 단일 파일, 또는 다수의 조정 파일(예컨대, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있으며 통신 네트워크로 상호 연결된 여러 대의 컴퓨터에서 실행되도록 배포ehlf 수 있다.
본 명세서에서 설명된 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름은 또한 FPGA(filed programmable gate array) 또는 ASIC(주문형 집적 회로)과 같은 특수 목적의 논리 회로에 의해 수행될 수 있으며, 장치는 또한 FPGA 또는 ASIC로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은 예를 들어 범용 및 특수 목적 마이크로 프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스 예를 들어, 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두에 동작 가능하게 결합될 것이다. 그러나, 컴퓨터는 그러한 디바이스를 가질 필요가 없다. 또한, 컴퓨터는 태블릿 컴퓨터, 모바일 전화기, 개인 휴대 정보 단말기(PDA), 모바일 오디오 플레이어, GPS(Global Positioning System) 수신기와 같은 다른 디바이스에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 미디어는 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비 휘발성 메모리, 미디어 및 메모리 디바이스들을 포함한다. 내부하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 또는 그 안에 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 실시예들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스 예를 들어, CRT(cathode ray tube), LCD (liquid crystal display) 모니터, 터치 스크린 디스플레이와 사용자가 컴퓨터로 정보를 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트팩볼을 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 디바이스가 사용자와의 상호 작용을 제공하기 위해 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있다. 사용자로부터의 입력은 음향(acoustic), 음성(speech) 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다.
실시예들은 예를 들어 데이터 서버로와 같은 백 엔드 컴포넌트를 포함하거나, 또는 예를 들어 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 또는 예를 들어 애플리케이션 서버를 포함하거나, 또는 예를 들어 사용자가 개시된 기술의 구현예와 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 컴포넌트를 포함하거나 또는 하나 이상의 백 엔드, 미들웨어 또는 프론트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예들은 근거리 통신망("LAN") 및 예를 들어 인터넷과 같은 광역 통신망("WAN")을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 전형적으로 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
또한, 본 명세서에서 논의된 시스템이 사용자에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 경우, 사용자는 프로그램 또는 기능이 사용자의 사회적 네트워크, 사회적 행동 또는 활동, 직업, 사용자의 선호 또는 사용자의 현재 위치에 관한 정보와 같은 개인 정보를 수집하는지 여부를 제어하거나 또는 사용자에게 더 관련이 있는 콘텐츠 서버로부터 콘텐츠를 수신할지 여부 및 수신 방법을 제어할 수 있는 기회를 제공받을 수 있다. 게다가, 소저 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 익명 처리되므로 개인 식별 정보가 제거될 수 있다. 예를 들어, 사용자의 신원은 익명으로 처리하여 사용자가 개인 식별 정보를 확인할 수 없도록 하거나 사용자의 특정 위치가 결정될 수 없도록 사용자의 지리적 위치는 도시, 우편 번호 또는 주 레벨(state level)과 같이 위치 정보가 있는 곳에서 일반화될 수 있다. 따라서, 사용자는 컨텐츠 서버가 사용하는 정보의 수집 방식을 제어할 수 있다.
본 명세서는 많은 세부 사항을 포함하지만, 이들은 제한으로서 해석되어서는 안되며, 오히려 특정 실시예에 특정된 특징들의 설명으로서 해석되어야 한다. 개별 실시예들의 맥락에서 본 명세서에 기술된 소정 특징들은 또한 단일 실시예에서 조합되어 구현될 수 있다. 반대로, 단일 실시예의 문맥에서 설명된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하고 심지어 그 자체로 초기에 청구된 것으로서 위에서 기술될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징이 일부 경우에는 조합으로부터 제거될 수 있고, 청구된 조합은 서브 조합의 서브 조합 또는 변형을 지향할 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이것은 이러한 동작들이 도시된 특정 순서로 또는 순차적 순서로 수행되거나, 모든 예시된 동작들이 수행되어, 바람직한 동작을 달성할 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 실시예에서 다양한 시스템 컴포넌트들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 기술된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있다.
따라서, 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구 범위에서 열거된 동작은 상이한 순서로 수행될 수 있고 여전히 바람직한 결과를 달성할 수 있다.
도 6은 클라이언트 또는 서버 또는 복수의 서버로서 본 명세서에 개시된 시스템 및 방법을 구현하는데 사용될 수 있는 컴퓨팅 디바이스(600, 650)의 블록도이다. 컴퓨팅 디바이스(600)는 랩탑, 데스크탑, 워크스테이션, 개인 정보 단말기, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 나타내기 위한 것이다. 컴퓨팅 디바이스(650)는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트 폰 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태의 모바일 디바이스들을 나타 내기 위한 것이다. 또한 컴퓨팅 디바이스(600 또는 650)는 USB(universal serial bus) 플래시 드라이브들을 포함할 수 있다. USB 플래시 드라이브는 운영 체제 및 다른 애플리케이션들을 저장할 수 있다. USB 플래시 드라이브는 다른 컴퓨팅 디바이스의 USB 포트에 삽입될 수 있는 무선 송신기 또는 USB 커넥터와 같은 입력/출력 컴포넌트들을 포함할 수 있다. 본 명세서에 도시된 컴포넌트들, 이들의 접속 및 관계 및 그 기능들은 단지 예시적인 것을 의미하며, 본 명세서에 기재된 및/또는 청구된 발명의 구현을 제한하는 것을 의미하지는 않는다.
컴퓨팅 디바이스(600)는 프로세서(602), 메모리(604), 저장 디바이스(606), 메모리(604) 및 고속 확장 포트(610)에 연결되는 고속 인터페이스(608), 및 저속 버스(614) 및 저장 디바이스(606)에 연결되는 저속 인터페이스(612)를 포함한다. 각각의 컴포넌트(602, 604, 606, 608, 610 및 612)는 다양한 버스들을 사용하여 상호 연결되고, 공통 마더 보드 상에 또는 적절하게 다른 방식으로 장착될 수 있다. 프로세서(602)는 메모리(604) 또는 저장 디바이스(606)에 저장된 명령을 포함하는 컴퓨팅 디바이스(600) 내에서 실행하기 위한 명령을 처리하여, 고속 인터페이스 (608)에 연결된 디스플레이(616)와 같은 외부 입/출력 디바이스상의 GUI에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현예에서, 다수의 메모리 및 타입들의 메모리와 함께, 적절하게, 다수의 프로세서 및/또는 다수의 버스가 사용될 수 있다. 또한, 다수의 다수의 컴퓨팅 디바이스(600)는 (예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템으로서) 필요한 동작의 일부를 제공하는 각각의 디바이스에 접속될 수 있다.
메모리(604)는 컴퓨팅 디바이스(600) 내의 정보를 저장한다. 일 실시예에서, 메모리(604)는 휘발성 메모리 유닛(들)이다. 다른 구현예에서, 메모 리 (604)는 비 휘발성 메모리 유닛(들)이다. 메모리(604)는 또한 자기 또는 광학 디스크와 같은 컴퓨터 판독 가능 매체의 다른 형태일 수 있다.
저장 디바이스(606)는 컴퓨팅 디바이스(600)를 위한 대용량 저장 디바이스를 제공할 수 있다. 일 구현예에서, 저장 디바이스(606)는 플로피 디스크 디바이스,하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크의 디바이스들 또는 다른 구성을 포함하는 디바이스들의 어레이일 수 있다. 컴퓨터 프로그램 제품은 정보 매체(carrier)에 확실하게 구현될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 상술한 바와 같은 하나 이상의 방법을 수행하는 명령들을 포함할 수 있다. 정보 매체는 메모리(604), 저장 디바이스(606) 또는 프로세서(602)상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
고속 제어기(608)는 컴퓨팅 디바이스(600)에 대한 대역폭 집중(bandwidth-intensive) 동작을 관리하고, 저속 제어기(612)는 낮은 대역폭 집중 동작을 관리한다. 이러한 기능 할당은 단지 예시일 뿐이다. 일 구현예에서, 고속 제어기(608)는 메모리(604), 디스플레이(616)(예를 들어 그래픽 프로세서들 또는 가속기를 통해) 및 다양한 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(610)에 결합된다. 구현예에서, 저속 제어기(612)는 저장 디바이스(606) 및 저속 확장 포트(614)에 연결된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 예를 들어 네트워크 어댑터를 통해 키보드, 포인팅 디바이스, 스캐너, 또는 스위치 또는 예를 들어 네트워크 라우터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스와 같은 하나 이상의 입/출력 디바이스에 연결될 수 있다.
컴퓨팅 디바이스(600)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(600)는 표준 서버(620)로서 또는 그러한 서버들의 그룹에서 여러 번 구현될 수 있다. 또한, 컴퓨팅 디바이스(600)는 랙(rack) 서버 시스템(624)의 일부로서 구현될 수도 있다. 또한, 컴퓨팅 디바이스(600)는 랩탑 컴퓨터(622)와 같은 개인용 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(600)로부터의 컴포넌트는 디바이스(650)와 같은 모바일 디바이스(미도시)의 다른 컴포넌트들과 결합될 수 있다. 이러한 디바이스들 각각은 컴퓨팅 디바이스(600, 650) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스(600, 650)로 구성될 수 있다.
컴퓨팅 디바이스(650)는 다른 컴포넌트들 중에서 프로세서(652), 메모리 (664), 디스플레이(654)와 같은 입/출력 디바이스, 통신인터페이스(666) 및 송수신기(668)를 포함한다. 디바이스(650)는 추가적인 저장을 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스를 또한 구비할 수 있다. 각각의 컴포넌트(650, 652, 664, 654, 666 및 668)는 다양한 버스를 사용하여 상호 접속되며, 몇몇 컴포넌트는 공통 마더 보드 상에 또는 적절하게 다른 방식으로 장착될 수 있다.
프로세서(652)는 메모리(664)에 저장된 명령을 포함하여 컴퓨팅 디바이스(650) 내의 명령을 실행할 수 있다. 프로세서는 개별 및 다수의 아날로그 및 디지털 프로세서를 포함하는 칩의 칩셋으로 구현될 수 있다. 또한, 프로세서는 다수의 아키텍처 중 임의의 것을 사용하여 구현될 수 있다. 예를 들어, 프로세서(410)는 CISC(복합 명령 세트 컴퓨터) 프로세서, RISC(축소 명령 세트 컴퓨터) 프로세서 또는 MISC(최소 명령 세트 컴퓨터) 프로세서일 수 있다. 프로세서는 예를 들어 사용자 인터페이스의 제어, 디바이스(650)에 의해 실행되는 애플리케이션들 및 디바이스(650)에 의한 무선 통신과 같은 디바이스(650)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(652)는 제어 인터페이스(658) 및 디스플레이(654)에 연결된 디스플레이 인터페이스(656)를 통해 사용자와 통신할 수 있다. 디스플레이(654)는 예를 들어, TFT(Thin-Film-Semiconductor Liquid Crystal Display) 디스플레이 또는 OLED(Organic Light Emitting Diode) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(656)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(654)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(658)는 사용자로부터 명령을 수신하고 프로세서(652)에 제출하기 위해 이들을 변환할 수 있다. 또한, 외부 인터페이스(662)는 프로세서(652)와의 통신으로 제공되어, 다른 디바이스와 디바이스(650)의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(662)는 예를 들어 일부 구현에서는 유선 통신용으로 또는 다른 구현예에서는 무선 통신용으로 제공될 수 있으며, 다중 인터페이스가 또한 사용될 수 있다.
메모리(664)는 컴퓨팅 디바이스(650) 내의 정보를 저장한다. 메모리(664)는 컴퓨터 판독 가능 매체 또는 미디어, 휘발성 메모리 유닛(들) 또는 비 휘발성 메모리 유닛(들) 중 하나 이상으로서 구현될 수 있다. 확장 메모리(674)는 또한 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장인터페이스(672)를 통해 디바이스(650)에 제공되어 연결될 수 있다. 이러한 확장 메모리(674)는 디바이스(650)를 위한 여분의 저장 공간을 제공하거나 디바이스(650)를 위한 애플리케이션 또는 다른 정보를 저장할 수도 있다. 특히, 확장 메모리(674)는 전술한 프로세스들을 수행하거나 보충하기 위한 명령을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(674)는 디바이스(650)에 대한 보안 모듈로서 제공될 수 있고, 디바이스(650)의 안전한 사용을 허용하는 명령들로 프로그램될 수 있다. 또한 보안 애플리케이션들은 SIMM 카드에 식별 정보를 해킹할 수 없게 배치하는 것과 같은 추가 정보와 함께 SIMM 카드를 통해 제공될 수 있다.
메모리는 예를 들어, 후술되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 실시예에서, 컴퓨터 프로그램 제품은 정보 매체에 확실하게 구체화된다. 컴퓨터 프로그램 제품은 실행될 때 상술한 바와같은 하나 이상의 방법을 수행하는 명령들을 포함한다. 정보 매체는 예를 들어 송수신기(668) 또는 외부 인터페이스(662)를 통해 수신될 수 있는 메모리(664), 확장 메모리(674) 또는 프로세서(652)상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
디바이스(650)는 필요에 따라 디지털 신호 처리 회로를 포함할 수 있는 통신인터페이스(666)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(666)는 GSM 음성 호출, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드 또는 프로토콜하에서 통신을 제공할 수 있다. 이러한 통신은, 예를 들어 무선 주파수 송수신기(668)를 통해 발생할 수 있다. 또한, 블루투스, Wi-Fi 또는 다른 송수신기(미도시)를 사용하는 것과 같은 단거리 통신이 발생할 수 있다. 또한, GPS(Global Positioning System) 수신기 모듈(670)은 디바이스(650)상에서 실행되는 애플리케이션에 의해 적절하게 사용될 수 있는 추가의 네비게이션 및 위치 관련 무선 데이터를 디바이스(650)에 제공할 수 있다.
디바이스(650)는 또한 사용자로부터 음성 정보를 수신하여 그것을 이용 가능한 디지털 정보로 변환할 수 있는 오디오 코덱(660)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(660)은 마찬가지로, 예를 들어 디바이스(650)의 핸드셋 내의 스피커를 통하는 것과 같이 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 음성 전화 호출로부터의 사운드를 포함할 수 있고, 기록된 사운드(예컨대, 음성 메시지, 음악 파일 등)를 포함할 수 있고, 디바이스(650)상에서 동작하는 애플리케이션에 의해 생성된 사운드를 포함할 수도 있다.
컴퓨팅 디바이스(650)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(650)는 셀룰러 전화(680)로서 구현될 수 있다. 컴퓨팅 디바이스(650)는 또한 스마트 폰(682), 개인 휴대 정보 단말기 또는 다른 유사한 이동 디바이스의 일부로서 구현될 수도 있다.
본 명세서에 기술된 시스템 및 기술의 다양한 구현예들은 디지털 전자 회로, 집적 회로, 특별히 설계된 ASIC(주문형 집적 회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령을 수신하고 이들로 데이터를 전송하도록 결합된, 특수 또는 범용일 수 있는 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템상에서 실행 가능하고 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려짐)은 프로그래머블 프로세서를 위한 기계 명령들을 포함하고, 고레벨 절차적 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용되는 "기계 판독 가능 매체", "컴퓨터 판독 가능 매체"라는 용어는 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예컨대, 자기 디스크, 광학 디스크, 메모리, 기계 판독 가능 신호로서 기계 명령을 수신하는 기계 판독 가능 매체를 포함하여, 프로그래머블 프로세서에 기계 명령 및/또는 데이터를 제공하는데 사용되는 프로그램 가능 논리 디바이스(PLD)를 포함한다. "기계 판독 가능 신호"라는 용어는 기계 명령 및/또는 데이터를 프로그래머블 프로세서에 제공하기 위해 사용되는 모든 신호를 의미한다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 시스템 및 기술은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예컨대, CRT (cathode ray tube) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 컴퓨터로 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 디바이스들이 사용자와의 상호 작용을 제공하는데 또한 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백(예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백)일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다.
본 명세서에 설명된 시스템 및 기술은 백 엔드 컴포넌트(예컨대, 데이터 서버)를 포함하거나 미들웨어 컴포넌트(예컨대, 애플리케이션 서버)를 포함하거나 프런트 엔드 컴포넌트(예컨대, 사용자가 본 명세서에서 설명된 시스템 및 기술의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터) 또는 백 엔드, 미들웨어 또는 프런트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 근거리 통신망(LAN), 광역 통신망(WAN), 피어 투 피어(ad-hoc 또는 정적 멤버를 갖는) 네트워크, 그리드 컴퓨팅 인프라구조 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
본 발명의 다수의 실시예가 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있음이 이해될 것이다. 예를 들어, 위에 표시된 흐름의 다양한 형태가 재 배열, 추가 또는 제거된 단계와 함께 사용될 수 있다. 또한, 로컬 디바이스 인증의 몇몇 애플리케이션이 설명되었지만, 다수의 다른 애플리케이션이 고려될 수 있음을 인식해야 한다. 따라서, 다른 실시예들은 다음의 청구항들의 범위 내에 있다.

Claims (69)

  1. 컴퓨터 구현 방법으로서,
    장치의 하나 이상의 프로세서에 의해, 리소스 디바이스에 대한 마스터 액세스 토큰을 획득하는 단계;
    하나 이상의 프로세서에 의해, 클라이언트 디바이스와 연관된 사용자를 식별하는 단계;
    하나 이상의 프로세서에 의해, 사용자가 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증되었는지 결정하는 단계;
    상기 결정에 응답하여, 하나 이상의 프로세서에 의해, 마스터 디바이스 토큰에 기초하여 로컬 액세스 토큰을 생성하는 단계, 상기 로컬 액세스 토큰은 리소스 디바이스에 네트워크 접속을 요구하지 않으면서 리소스 디바이스에 대한 액세스를 승인하도록 구성되며; 및
    하나 이상의 프로세서에 의해, 리소스 디바이스에 대한 로컬 액세스 토큰을 클라이언트 디바이스로 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 결정하는 단계는
    사용자가 리소스 디바이스의 소유자 또는 리소스 디바이스에 대한 액세스를 제어할 수 있는 엔티티 중 적어도 하나에 의해 상기 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증된 것으로 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 식별하는 단계는,
    상기 클라이언트 디바이스로부터 리소스 디바이스에 대한 제한된 액세스를 획득하기 위한 요청을 수신하는 단계, 상기 요청은 사용자의 식별자 또는 클라이언트 디바이스의 식별자 중 적어도 하나를 포함하고; 및
    상기 요청에 응답하여, 리소스 디바이스에 대한 로컬 액세스 토큰을 클라이언트 디바이스로 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 방법은 :
    상기 수신된 요청의 적어도 일부에 기초하여 클라이언트 디바이스를 식별하는 단계; 및
    상기 클라이언트 디바이스가 리소스 디바이스에 대한 제한된 액세스를 수신하도록 승인되었는지를 결정하는 단계를 더 포함하고; 그리고
    상기 생성하는 단계는 클라이언트 디바이스가 제한된 액세스를 수신하도록 인증된 결정에 응답하여 로컬 액세스 토큰을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 상기 리소스 디바이스에 대한 액세스 제어 리스트를 획득하는 단계를 더 포함하고, 상기 액세스 제어 리스트는 리소스 디바이스에 대한 대응하는 제한된 액세스를 수신하도록 인증된 하나 이상의 사용자를 식별하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 장치가 액세스 제어 리스트를 로컬 메모리에 저장하도록 구성되는 것을 특징으로 하는 방법.
  7. 제5항에 있어서, 상기 결정하는 단계는,
    액세스 제어 리스트에 기초하여, 하나 이상의 인증된 사용자가 클라이언트 디바이스와 연관된 사용자를 포함하는지 결정하는 단계; 및
    하나 이상의 인증된 사용자가 상기 사용자를 포함한다는 결정에 응답하여, 클라이언트 디바이스의 사용자가 상기 제한된 액세스를 수신하도록 승인된 것으로 설정(establish)하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제5항에 있어서,
    소유자 디바이스로부터 액세스 제어 데이터를 수신하는 단계, 상기 소유자 디바이스는 리소스 디바이스의 소유자와 관련되고, 상기 액세스 제어 데이터는 사용자로 하여금 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증하고; 및
    클라이언트 디바이스의 사용자를 인증된 사용자로서 식별하기 위해 액세스 제어 리스트의 적어도 일부를 변경(modify)하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 액세스 제어 데이터는 액세스 파라미터들을 포함하고, 상기 액세스 파라미터들은 사용자에게 승인된 제한된 액세스의 범위를 설정하고; 그리고
    상기 방법은 액세스 파라미터들을 포함하도록 액세스 제어 리스트의 적어도 일부를 변경(modify)하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 액세스 파라미터들은
    사용자에게 할당된 역할, 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한 또는 클라이언트 디바이스가 토큰을 생성하는 능력(ability)에 대한 제한 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  11. 제5항에 있어서, 상기 액세스 제어 리스트는
    사용자와 관련된 하나 이상의 액세스 파라미터를 식별하며, 상기 액세스 파라미터는 사용자에게 할당된 역할, 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한 또는 클라이언트 디바이스가 토큰을 생성하는 능력에 대한 제한 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 로컬 액세스 토큰은 마카롱(macaroon)을 포함하고, 상기 마카롱은 하나 이상의 통고(caveat) 및 대응하는 키를 포함하며; 그리고
    상기 생성하는 단계는,
    액세스 제어 리스트에 기초하여, 사용자와 관련된 액세스 파라미터들을 식별하는 단계;
    로컬 액세스 토큰에 대한 만료 시간을 설정하는 단계; 및
    만료 시간 및 식별된 액세스 파라미터들을 로컬 액세스 토큰의 하나 이상의 통고 내에 통합하는 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제12항에 있어서, 상기 사용자의 로컬 액세스 토큰에 대해 설정된 만료 시간을 통합하기 위해 액세스 제어 리스트의 적어도 일부를 변경하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 제1항에 있어서,
    상기 로컬 액세스 토큰은 클라이언트 디바이스 또는 클라이언트 디바이스와 관련된 사용자 중 적어도 하나를 식별하는 데이터를 포함하고; 그리고
    상기 생성하는 단계는 로컬 액세스 토큰에 디지털 서명을 적용하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    상기 로컬 액세스 토큰은 마카롱(macaroon)을 포함하고, 상기 마카롱은 하나 이상의 통고(caveat) 및 대응하는 키를 포함하며;
    상기 대응하는 키는 적용된 디지털 서명을 포함하고; 그리고
    상기 생성하는 단계는 하나 이상의 통고의 적어도 일부에 MAC 알고리즘을 적용하는 것에 기초하여 디지털 서명을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 제15항에 있어서, 상기 하나 이상의 통고는
    토큰의 만료 날짜, 사용자에게 할당된 역할, 또는 사용자 또는 클라이언트 디바이스 중 적어도 하나를 식별하는 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  17. 제1항에 있어서, 상기 로컬 액세스 토큰은 디지털 인증서를 포함하는 것을 특징으로 하는 방법.
  18. 제1항에 있어서,
    상기 획득하는 단계는 리소스 디바이스로부터 마스터 액세스 토큰을 수신하는 단계를 포함하고; 그리고
    상기 생성하는 단계는 수신된 마스터 액세스 토큰의 적어도 일부에 기초하여 로컬 액세스 토큰을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  19. 제18항에 있어서,
    상기 마스터 액세스 토큰은 제1 마카롱을 포함하고, 상기 제1 마카롱은 하나 이상의 제1 통고와 대응하는 제1 키를 포함하고, 그리고
    상기 로컬 액세스 토큰은 제2 마카롱을 포함하고, 상기 제2 마카롱은 하나 이상의 제2 통고와 대응하는 제2 키를 포함하는 것을 특징으로 하는 방법.
  20. 제19항에 있어서, 상기 로컬 액세스 토큰을 생성하는 단계는
    하나 이상의 제2 통고를 생성하는 단계를 포함하고,
    상기 제2 통고의 제1 부분은 제1 통고를 포함하고; 그리고
    상기 제2 통고의 제2 부분은 로컬 액세스 토큰의 만료 날짜과 사용자의 제한된 액세스와 관련된 하나 이상의 액세스 파라미터를 포함하고, 상기 액세스 파라미터는 사용자에게 할당된 역할, 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한, 또는 클라이언트 디바이스가 토큰을 생성하는 능력에 대한 제한 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  21. 제1항에 있어서,
    상기 리소스 디바이스로부터, 클라이언트 디바이스가 리소스 디바이스의 신원을 검증할 수 있게 하는 마스터 디바이스 토큰을 수신하는 단계;
    상기 결정에 응답하여, 마스터 디바이스 토큰의 적어도 일부에 기초하여 로컬 디바이스 토큰을 생성하는 단계; 및
    상기 로컬 디바이스 토큰을 클라이언트 디바이스로 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  22. 장치로서,
    적어도 하나의 프로세서; 및
    적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서로 하여금 단계들을 수행하도록 하는 실행 가능한 명령들을 저장하는 메모리를 포함하고, 상기 단계들은
    리소스 디바이스에 대한 마스터 액세스 토큰을 획득하는 단계;
    클라이언트 디바이스와 연관된 사용자를 식별하는 단계;
    사용자가 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증되었는지 결정하는 단계;
    상기 결정에 응답하여, 마스터 디바이스 토큰에 기초하여 로컬 액세스 토큰을 생성하는 단계, 상기 로컬 액세스 토큰은 리소스 디바이스에 네트워크 접속을 요구하지 않으면서 리소스 디바이스에 대한 액세스를 승인하도록 구성되며; 및
    상기 리소스 디바이스에 대한 로컬 액세스 토큰을 클라이언트 디바이스로 제공하는 단계를 포함하는 것을 특징으로 하는 장치.
  23. 제22항에 있어서, 상기 적어도 하나의 프로세서는
    사용자가 리소스 디바이스의 소유자 또는 리소스 디바이스에 대한 액세스를 제어할 수 있는 엔티티 중 적어도 하나에 의해 상기 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증된 것으로 결정하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  24. 제22항에 있어서, 상기 적어도 하나의 프로세서는
    클라이언트 디바이스로부터 리소스 디바이스에 대한 제한된 액세스를 획득하기 위한 요청을 수신하는 단계, 상기 요청은 사용자의 식별자 또는 클라이언트 디바이스의 식별자 중 적어도 하나를 포함하고; 및
    상기 요청에 응답하여, 리소스 디바이스에 대한 로컬 액세스 토큰을 클라이언트 디바이스로 제공하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  25. 제24항에 있어서, 상기 적어도 하나의 프로세서는
    상기 수신된 요청의 적어도 일부에 기초하여 클라이언트 디바이스를 식별하는 단계;
    상기 클라이언트 디바이스가 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증되었는지를 결정하는 단계; 및
    상기 클라이언트 디바이스가 제한된 액세스를 수신하도록 인증되었다는 결정에 응답하여 로컬 액세스 토큰을 생성하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  26. 제22항에 있어서, 상기 적어도 하나의 프로세서는
    상기 리소스 디바이스에 대한 액세스 제어 리스트를 획득하는 단계를 더 수행하며, 상기 액세스 제어 리스트는 리소스 디바이스에 대한 대응하는 제한된 액세스를 수신하도록 인증된 하나 이상의 사용자를 식별하는 것을 특징으로 하는 장치.
  27. 제26항에 있어서, 상기 장치는
    액세스 제어 리스트를 로컬 메모리에 저장하도록 구성된 것을 특징으로 하는 장치.
  28. 제26항에 있어서, 상기 적어도 하나의 프로세서는
    상기 액세스 제어 리스트에 기초하여, 하나 이상의 인증된 사용자가 클라이언트 디바이스와 연관된 사용자를 포함하는지 결정하는 단계; 및
    상기 하나 이상의 인증된 사용자가 상기 사용자를 포함한다는 결정에 응답하여, 클라이언트 디바이스의 사용자가 상기 제한된 액세스를 수신하도록 승인된 것으로 설정(establish)하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  29. 제26항에 있어서, 상기 적어도 하나의 프로세서는,
    소유자 디바이스로부터 액세스 제어 데이터를 수신하는 단계, 상기 소유자 디바이스는 리소스 디바이스의 소유자와 관련되고, 상기 액세스 제어 데이터는 사용자로 하여금 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증하고; 및
    상기 클라이언트 디바이스의 사용자를 인증된 사용자로서 식별하기 위해 액세스 제어 리스트의 적어도 일부를 변경(modify)하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  30. 제29항에 있어서,
    상기 액세스 제어 데이터는 액세스 파라미터들을 포함하고, 상기 액세스 파라미터들은 사용자에게 승인된 제한된 액세스의 범위를 설정하고; 그리고
    상기 적어도 하나의 프로세서는 액세스 파라미터를 포함하도록 액세스 제어 리스트의 적어도 일부를 변경하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  31. 제30항에 있어서, 상기 액세스 파라미터들은
    사용자에게 할당된 역할, 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한 또는 클라이언트 디바이스가 토큰을 생성하는 능력(ability)에 대한 제한 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  32. 제26항에 있어서, 상기 액세스 제어 리스트는
    사용자와 관련된 하나 이상의 액세스 파라미터를 식별하며, 상기 액세스 파라미터는 사용자에게 할당된 역할, 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한 또는 클라이언트 디바이스가 토큰을 생성하는 능력에 대한 제한 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  33. 제32항에 있어서,
    상기 로컬 액세스 토큰은 마카롱(macaroon)을 포함하고, 상기 마카롱은 하나 이상의 통고(caveat) 및 대응하는 키를 포함하며; 그리고
    상기 적어도 하나의 프로세서는
    액세스 제어 리스트에 기초하여, 사용자와 관련된 액세스 파라미터들을 식별하는 단계;
    로컬 액세스 토큰에 대한 만료 시간을 설정하는 단계; 및
    만료 시간 및 식별된 액세스 파라미터들을 로컬 액세스 토큰의 하나 이상의 통고 내에 통합하는 동작을 수행하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  34. 제33항에 있어서, 상기 적어도 하나의 프로세서는
    사용자의 로컬 액세스 토큰에 대해 설정된 만료 시간을 통합하기 위해 액세스 제어 리스트의 적어도 일부를 변경하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  35. 제22항에 있어서,
    상기 로컬 액세스 토큰은 클라이언트 디바이스 또는 클라이언트 디바이스와 관련된 사용자 중 적어도 하나를 식별하는 데이터를 포함하고; 그리고
    상기 적어도 하나의 프로세서는 로컬 액세스 토큰에 디지털 서명을 적용하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  36. 제35항에 있어서,
    상기 로컬 액세스 토큰은 마카롱(macaroon)을 포함하고, 상기 마카롱은 하나 이상의 통고(caveat) 및 대응하는 키를 포함하며;
    상기 대응하는 키는 적용된 디지털 서명을 포함하고; 그리고
    상기 적어도 하나의 프로세서는 하나 이상의 통고의 적어도 일부에 MAC 알고리즘을 적용하는 것에 기초하여 디지털 서명을 생성하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  37. 제36항에 있어서, 상기 하나 이상의 통고는
    토큰의 만료 날짜, 사용자에게 할당된 역할, 또는 사용자 또는 클라이언트 디바이스 중 적어도 하나를 식별하는 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  38. 제22항에 있어서, 상기 로컬 액세스 토큰은 디지털 인증서를 포함하는 것을 특징으로 하는 장치.
  39. 제22항에 있어서, 상기 적어도 하나의 프로세서는,
    상기 리소스 디바이스로부터 마스터 액세스 토큰을 수신하는 단계; 및
    상기 수신된 마스터 액세스 토큰의 적어도 일부에 기초하여 로컬 액세스 토큰을 생성하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  40. 제39항에 있어서,
    상기 마스터 액세스 토큰은 제1 마카롱을 포함하고, 상기 제1 마카롱은 하나 이상의 제1 통고 및 대응하는 제1 키를 포함하고;
    상기 로컬 액세스 토큰은 제2 마카롱을 포함하고, 상기 제2 마카롱은 하나 이상의 제2 통고 및 대응하는 제2 키를 포함하며; 그리고
    상기 적어도 하나의 프로세서는 하나 이상의 제2 통고를 생성하는 단계를 더 수행하고, 상기 제2 통고의 제1 부분은 제1 통고를 포함하고, 상기 제2 통고의 제2 부분은 로컬 액세스 토큰의 만료 날짜과 사용자의 제한된 액세스와 관련된 하나 이상의 액세스 파라미터를 포함하고, 그리고 상기 액세스 파라미터는 사용자에게 할당된 역할, 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한, 또는 클라이언트 디바이스가 토큰을 생성하는 능력에 대한 제한 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  41. 제22항에 있어서, 상기 적어도 하나의 프로세서는,
    상기 리소스 디바이스로부터, 클라이언트 디바이스가 리소스 디바이스의 신원을 검증할 수 있게 하는 마스터 디바이스 토큰을 수신하는 단계;
    상기 결정에 응답하여, 마스터 디바이스 토큰의 적어도 일부에 기초하여 로컬 디바이스 토큰을 생성하는 단계; 및
    상기 로컬 디바이스 토큰을 클라이언트 디바이스로 제공하는 단계를 더 수행하는 것을 특징으로 하는 장치.
  42. 장치의 적어도 하나의 프로세서에 의해 실행될 때 방법을 수행하는 명령들을 저장하는 유형의 비-일시적인 컴퓨터 판독 가능 매체로서, 상기 방법은
    리소스 디바이스에 대한 마스터 액세스 토큰을 획득하는 단계;
    클라이언트 디바이스와 연관된 사용자를 식별하는 단계;
    사용자가 리소스 디바이스에 대한 제한된 액세스를 수신하도록 인증되었는지 결정하는 단계;
    상기 결정에 응답하여, 마스터 디바이스 토큰에 기초하여 로컬 액세스 토큰을 생성하는 단계, 상기 로컬 액세스 토큰은 리소스 디바이스에 네트워크 접속을 요구하지 않으면서 리소스 디바이스에 대한 액세스를 승인하도록 구성되며; 및
    상기 리소스 디바이스에 대한 로컬 액세스 토큰을 클라이언트 디바이스로 제공하는 단계를 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 판독 가능 매체.
  43. 컴퓨터 구현 방법으로서,
    리소스 디바이스의 하나 이상의 프로세서에 의해, 클라이언트 디바이스와 보안 무선 접속을 수립하는 단계, 상기 수립하는 단계는,
    상기 클라이언트 디바이스로부터 통고(caveat) 데이터 및 랜덤 데이터를 수신하는 단계, 상기 통고 데이터는 로컬 디바이스 토큰으로부터 클라이언트 디바이스에 의해 추출되고;
    상기 수신된 통고 및 랜덤 데이터의 적어도 일부에 기초하여 키 값을 계산하는 단계;
    상기 계산된 키 값을 클라이언트 디바이스로 전송하는 단계; 및
    상기 계산된 키 값과 상기 로컬 디바이스 토큰에 기초하여 클라이언트 디바이스에 의해 계산된 추가 키 값 사이의 대응 관계(correspondence)에 기초하여 클라이언트 디바이스와의 보안 무선 접속을 수립하는 단계를 포함하고;
    상기 하나 이상의 프로세서에 의해, 클라이언트 디바이스로부터의 액세스 토큰으로부터 도출된 토큰 데이터와 상기 클라이언트 디바이스에 의한 리소스 디바이스로의 액세스 요청을 수신하는 단계;
    상기 하나 이상의 프로세서에 의해, 그리고 네트워크를 통해 통신하지 않고, 상기 수신된 토큰 데이터가 리소스 디바이스로의 액세스를 인증하는 유효한 토큰으로부터 도출되었는지 결정하는 단계;
    상기 하나 이상의 프로세서에 의해, 그리고 네트워크를 통해 통신하지 않고, 상기 액세스 토큰이 클라이언트 디바이스에 의해 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증하는지 결정하는 단계; 및
    상기 수신된 토큰 데이터가 유효한 토큰으로부터 도출되었다는 결정 및 상기 액세스 토큰이 클라이언트 디바이스에 의해 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증한다는 결정에 응답하여, 상기 하나 이상의 프로세서에 의해, 상기 클라이언트 디바이스에 의해 요청된 액세스를 리소스 디바이스로 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  44. 제43항에 있어서, 상기 보안 무선 접속은
    클라이언트 디바이스와 리소스 디바이스 사이의 다이렉트 무선 접속을 포함하는 것을 특징으로 하는 방법.
  45. 제44항에 있어서, 상기 다이렉트 무선 접속은 블루투스 저에너지(BLE) 접속을 포함하는 것을 특징으로 하는 방법.
  46. 삭제
  47. 제43항에 있어서, 상기 계산된 키 값을 세션 키로서 설정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  48. 제43항에 있어서,
    상기 통고 데이터 및 랜덤 데이터는 공유된 대칭 키를 사용하여 암호화되고; 그리고
    상기 수립하는 단계는
    상기 수신된 통고 데이터 및 랜덤 데이터를 해독하는 단계;
    상기 공유된 대칭 키를 사용하여 상기 계산된 키 값을 암호화하는 단계; 및
    상기 암호화된 키 값을 클라이언트 디바이스로 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  49. 제43항에 있어서, 액세스 토큰은 마카롱을 포함하고, 상기 마카롱은 하나 이상의 통고 및 대응하는 키를 포함하는 것을 특징으로 하는 방법.
  50. 제49항에 있어서, 상기 수신된 토큰 데이터가 네트워크를 통해 통신하지 않고 유효한 토큰으로부터 도출되었는지 결정하는 단계는
    상기 수신된 토큰 데이터로부터 하나 이상의 통고를 추출하는 단계;
    상기 추출된 통고 및 상기 리소스 디바이스에 의해 유지되는 마스터 액세스 토큰에 기초하여 상기 수신된 토큰 데이터의 사본을 계산하는 단계;
    상기 수신된 토큰 데이터가 상기 계산된 사본에 대응하는지 결정하는 단계; 및
    상기 수신된 토큰 데이터가 상기 계산된 사본에 대응할 때, 상기 수신된 토큰 데이터가 유효한 토큰으로부터 도출되었다고 설정(establish)하는 단계를 포함하는 것을 특징으로 하는 방법.
  51. 제50항에 있어서, 상기 수신된 토큰 데이터가 네트워크를 통해 통신하지 않고 유효한 토큰으로부터 도출되었는지 결정하는 단계는
    상기 추출된 통고의 적어도 일부에 기초하여 상기 수신된 토큰 데이터에 대한 액세스의 체인을 식별하는 단계; 및
    상기 수신된 토큰 데이터에 대한 액세스 체인을 검증하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  52. 제50항에 있어서,
    상기 하나 이상의 통고는 액세스 토큰의 만료 날짜, 리소스 디바이스의 소유자에 의해 클라이언트 디바이스에 할당된 역할, 및 하나 이상의 액세스 파라미터를 포함하고;
    상기 액세스 파라미터는 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한, 또는 클라이언트 디바이스가 토큰을 생성하는 능력에 대한 제한 중 적어도 하나를 포함하며; 그리고
    상기 리소스 디바이스에 대한 액세스 요청은 리소스 디바이스의 하나 이상의 요청된 기능을 식별하는 것을 특징으로 하는 방법.
  53. 제52항에 있어서, 상기 액세스 토큰이 충분한 레벨의 액세스를 인증하는지 결정하는 단계는
    상기 만료 날짜에 기초하여, 액세스 토큰이 만료되지 않았음을 결정하는 단계;
    상기 리소스 디바이스의 요청된 기능에 액세스하기 위해 상기 클라이언트 디바이스에 의해 요구된 역할을 식별하는 단계;
    상기 요구된 역할이 할당된 역할과 일치하는지 결정하는 단계;
    상기 하나 이상의 요청된 기능이 상기 하나 이상의 액세스 파라미터와 일치하는지를 결정하는 단계; 및
    (i) 상기 액세스 토큰이 만료되지 않았으며 (ii) 상기 요구된 역할이 할당된 역할과 일치하며 (iii) 하나 이상의 요청된 기능이 상기 하나 이상의 액세스 파라미터와 일치한다는 결정에 응답하여, 상기 액세스 토큰이 상기 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증함을 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
  54. 제43항에 있어서,
    상기 리소스 디바이스는 클라우드 서버와 관련된 컴퓨터 시스템, 제3자 인증 서비스, 또는 리소스 디바이스 소유자의 디바이스 중 적어도 하나로 액세스 제어 결정을 위임하고; 그리고
    상기 적어도 하나의 컴퓨터 시스템, 제3자 인증 서비스, 또는 소유자 디바이스는 상기 액세스 토큰을 생성하고 상기 액세스 토큰을 클라이언트 디바이스로 제공하는 것을 특징으로 하는 방법.
  55. 제43항에 있어서, 상기 네트워크를 통해 통신하지 않고 상기 수립하는 단계, 수신하는 단계 및 제공하는 단계를 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  56. 리소스 디바이스로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금 단계들을 수행하도록 하는 실행 가능한 명령들을 저장하는 메모리를 포함하고, 상기 단계들은
    클라이언트 디바이스와의 보안 무선 접속을 수립하는 단계, 상기 수립하는 단계는,
    상기 클라이언트 디바이스로부터, 통고(caveat) 데이터 및 랜덤 데이터를 수신하는 단계, 상기 통고 데이터는 로컬 디바이스 토큰으로부터 클라이언트 디바이스에 의해 추출되고;
    상기 수신된 통고 및 랜덤 데이터의 적어도 일부에 기초하여 키 값을 계산하는 단계;
    상기 계산된 키 값을 클라이언트 디바이스로 전송하는 단계; 및
    상기 계산된 키 값과 상기 로컬 디바이스 토큰에 기초하여 클라이언트 디바이스에 의해 계산된 추가 키 값 사이의 대응 관계에 기초하여 클라이언트 디바이스와의 보안 무선 접속을 수립하는 단계를 포함하고;
    클라이언트 디바이스로부터의 액세스 토큰으로부터 도출된 토큰 데이터와 상기 클라이언트 디바이스에 의한 리소스 디바이스로의 액세스 요청을 수신하는 단계;
    네트워크를 통해 통신하지 않고, 상기 수신된 토큰 데이터가 리소스 디바이스로의 액세스를 인증하는 유효한 토큰으로부터 도출되었는지 결정하는 단계;
    네트워크를 통해 통신하지 않고, 상기 액세스 토큰이 클라이언트 디바이스에 의해 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증하는지 결정하는 단계; 및
    상기 수신된 토큰 데이터가 유효한 토큰으로부터 도출되었다는 결정 및 상기 액세스 토큰이 클라이언트 디바이스에 의해 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증한다는 결정에 응답하여, 상기 클라이언트 디바이스에 의해 요청된 액세스를 리소스 디바이스로 제공하는 단계를 포함하는 것을 특징으로 하는 리소스 디바이스.
  57. 제56항에 있어서, 상기 보안 무선 접속은
    클라이언트 디바이스와 리소스 디바이스 사이의 다이렉트 무선 접속을 포함하는 것을 특징으로 하는 리소스 디바이스.
  58. 제57항에 있어서, 상기 다이렉트 무선 접속은 블루투스 저에너지(BLE) 접속을 포함하는 것을 특징으로 하는 리소스 디바이스.
  59. 삭제
  60. 제56항에 있어서, 상기 적어도 하나의 프로세서는 계산된 키 값을 세션 키로서 설정하는 단계를 더 수행하는 것을 특징으로 하는 리소스 디바이스.
  61. 제56항에 있어서,
    상기 통고 데이터 및 랜덤 데이터는 공유된 대칭 키를 사용하여 암호화되고; 그리고
    상기 적어도 하나의 프로세서는
    상기 수신된 통고 데이터 및 랜덤 데이터를 해독하는 단계;
    상기 공유된 대칭 키를 사용하여 상기 계산된 키 값을 암호화하는 단계; 및
    상기 암호화된 키 값을 클라이언트 디바이스로 전송하는 단계를 더 수행하는 것을 특징으로 하는 리소스 디바이스.
  62. 제56항에 있어서,
    액세스 토큰은 마카롱을 포함하고, 상기 마카롱은 하나 이상의 통고 및 대응하는 키를 포함하는 것을 특징으로 하는 리소스 디바이스.
  63. 제62항에 있어서, 상기 적어도 하나의 프로세서는
    상기 액세스 토큰으로부터 하나 이상의 통고를 식별하는 단계;
    상기 추출된 통고 데이터 및 상기 리소스 디바이스에 의해 유지되는 마스터 액세스 토큰에 기초하여 상기 수신된 토큰 데이터의 사본을 계산하는 단계;
    상기 수신된 토큰 데이터가 상기 계산된 사본에 대응하는지 결정하는 단계; 및
    상기 수신된 토큰 데이터가 상기 계산된 사본에 대응할 때, 상기 수신된 토큰 데이터가 유효한 토큰으로부터 도출되었음을 설정하는 단계를 더 수행하는 것을 특징으로 하는 리소스 디바이스.
  64. 제63항에 있어서, 상기 적어도 하나의 프로세서는
    상기 추출된 통고의 적어도 일부에 기초하여 상기 액세스 토큰에 대한 액세스 체인을 식별하는 단계; 및
    상기 수신된 토큰에 대한 액세스 체인을 검증하는 단계를 더 수행하는 것을 특징으로 하는 리소스 디바이스.
  65. 제62항에 있어서,
    상기 하나 이상의 통고는 액세스 토큰의 만료 날짜, 리소스 디바이스의 소유자에 의해 클라이언트 디바이스에 할당된 역할, 및 하나 이상의 액세스 파라미터를 포함하고;
    상기 액세스 파라미터는 시간적 제한, 액세스 타입에 대한 제한, 오프라인 액세스에 대한 제한, 또는 클라이언트 디바이스가 토큰을 생성하는 능력에 대한 제한 중 적어도 하나를 포함하며; 그리고
    상기 리소스 디바이스에 대한 액세스 요청은 리소스 디바이스의 하나 이상의 요청된 기능을 식별하는 것을 특징으로 하는 리소스 디바이스.
  66. 제65항에 있어서, 상기 적어도 하나의 프로세서는
    상기 만료 날짜에 기초하여, 액세스 토큰이 만료되지 않았음을 결정하는 단계;
    상기 리소스 디바이스의 요청된 기능에 액세스하기 위해 상기 클라이언트 디바이스에 의해 요구된 역할을 식별하는 단계;
    상기 요구된 역할이 할당된 역할과 일치하는지 결정하는 단계;
    상기 하나 이상의 요청된 기능이 상기 하나 이상의 액세스 파라미터와 일치하는지를 결정하는 단계; 및
    (i) 상기 액세스 토큰이 만료되지 않았으며 (ii) 상기 요구된 역할이 할당된 역할과 일치하며 (iii) 하나 이상의 요청된 기능이 상기 하나 이상의 액세스 파라미터와 일치한다는 결정에 응답하여, 상기 액세스 토큰이 상기 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증함을 설정하는 단계를 더 수행하는 것을 특징으로 하는 리소스 디바이스.
  67. 제56항에 있어서,
    상기 리소스 디바이스는 클라우드 서버와 관련된 컴퓨터 시스템, 제3자 인증 서비스, 또는 리소스 디바이스 소유자의 디바이스 중 적어도 하나로 액세스 제어 결정을 위임하고; 그리고
    상기 적어도 하나의 컴퓨터 시스템, 제3자 인증 서비스, 또는 소유자 디바이스는 상기 액세스 토큰을 생성하고 상기 액세스 토큰을 클라이언트 디바이스로 제공하는 것을 특징으로 하는 리소스 디바이스.
  68. 제56항에 있어서, 상기 적어도 하나의 프로세서는 네트워크를 통해 통신하지 않고 상기 수립하는 단계, 수신하는 단계 및 제공하는 단계를 수행하는 단계를 더 수행하는 것을 특징으로 하는 리소스 디바이스.
  69. 클라이언트 디바이스의 적어도 하나의 프로세서에 의해 실행될 때 방법을 수행하는 명령들을 저장하는 유형의 비-일시적인 컴퓨터 판독 가능 매체로서, 상기 방법은
    클라이언트 디바이스와의 보안 무선 접속을 수립하는 단계, 상기 수립하는 단계는,
    상기 클라이언트 디바이스로부터, 통고(caveat) 데이터 및 랜덤 데이터를 수신하는 단계, 상기 통고 데이터는 로컬 디바이스 토큰으로부터 클라이언트 디바이스에 의해 추출되고;
    상기 수신된 통고 및 랜덤 데이터의 적어도 일부에 기초하여 키 값을 계산하는 단계;
    상기 계산된 키 값을 클라이언트 디바이스로 전송하는 단계; 및
    상기 계산된 키 값과 상기 로컬 디바이스 토큰에 기초하여 클라이언트 디바이스에 의해 계산된 추가 키 값 사이의 대응 관계에 기초하여 클라이언트 디바이스와의 보안 무선 접속을 수립하는 단계를 포함하고;
    클라이언트 디바이스로부터의 액세스 토큰으로부터 도출된 토큰 데이터와 상기 클라이언트 디바이스에 의한 리소스 디바이스로의 액세스 요청을 수신하는 단계;
    네트워크를 통해 통신하지 않고, 상기 수신된 토큰 데이터가 리소스 디바이스로의 액세스를 인증하는 유효한 토큰으로부터 도출되었는지 결정하는 단계;
    네트워크를 통해 통신하지 않고, 상기 액세스 토큰이 클라이언트 디바이스에 의해 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증하는지 결정하는 단계; 및
    상기 수신된 토큰 데이터가 유효한 토큰으로부터 도출되었다는 결정 및 상기 액세스 토큰이 클라이언트 디바이스에 의해 요청된 액세스를 제공하기에 충분한 액세스 레벨을 인증한다는 결정에 응답하여, 상기 클라이언트 디바이스에 의해 요청된 액세스를 리소스 디바이스로 제공하는 단계를 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 판독 가능 매체.
KR1020187010282A 2016-01-29 2016-12-15 로컬 디바이스 인증 KR102117584B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662288960P 2016-01-29 2016-01-29
US62/288,960 2016-01-29
PCT/US2016/066896 WO2017131887A1 (en) 2016-01-29 2016-12-15 Local device authentication

Publications (2)

Publication Number Publication Date
KR20180053701A KR20180053701A (ko) 2018-05-23
KR102117584B1 true KR102117584B1 (ko) 2020-06-26

Family

ID=57755472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187010282A KR102117584B1 (ko) 2016-01-29 2016-12-15 로컬 디바이스 인증

Country Status (7)

Country Link
US (1) US20170223005A1 (ko)
EP (1) EP3408987B1 (ko)
JP (1) JP2019508763A (ko)
KR (1) KR102117584B1 (ko)
CN (1) CN107070863B (ko)
DE (2) DE102016226311A1 (ko)
WO (1) WO2017131887A1 (ko)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9930536B2 (en) * 2010-07-15 2018-03-27 Rivada Networks, Llc. Methods and systems for dynamic spectrum arbitrage
US10116667B2 (en) 2016-01-26 2018-10-30 Bank Of America Corporation System for conversion of an instrument from a non-secured instrument to a secured instrument in a process data network
US10129238B2 (en) 2016-02-10 2018-11-13 Bank Of America Corporation System for control of secure access and communication with different process data networks with separate security features
US10142347B2 (en) 2016-02-10 2018-11-27 Bank Of America Corporation System for centralized control of secure access to process data network
US10438209B2 (en) 2016-02-10 2019-10-08 Bank Of America Corporation System for secure routing of data to various networks from a process data network
US11374935B2 (en) 2016-02-11 2022-06-28 Bank Of America Corporation Block chain alias person-to-person resource allocation
US10387878B2 (en) 2016-02-22 2019-08-20 Bank Of America Corporation System for tracking transfer of resources in a process data network
US10135870B2 (en) 2016-02-22 2018-11-20 Bank Of America Corporation System for external validation of secure process transactions
US10679215B2 (en) 2016-02-22 2020-06-09 Bank Of America Corporation System for control of device identity and usage in a process data network
US10762504B2 (en) 2016-02-22 2020-09-01 Bank Of America Corporation System for external secure access to process data network
US10026118B2 (en) 2016-02-22 2018-07-17 Bank Of America Corporation System for allowing external validation of data in a process data network
US10178105B2 (en) * 2016-02-22 2019-01-08 Bank Of America Corporation System for providing levels of security access to a process data network
US10142312B2 (en) 2016-02-22 2018-11-27 Bank Of America Corporation System for establishing secure access for users in a process data network
US10440101B2 (en) 2016-02-22 2019-10-08 Bank Of America Corporation System for external validation of private-to-public transition protocols
US10475030B2 (en) 2016-02-22 2019-11-12 Bank Of America Corporation System for implementing a distributed ledger across multiple network nodes
US10607285B2 (en) 2016-02-22 2020-03-31 Bank Of America Corporation System for managing serializability of resource transfers in a process data network
US10636033B2 (en) 2016-02-22 2020-04-28 Bank Of America Corporation System for routing of process authorizations and settlement to a user in a process data network
US10318938B2 (en) 2016-02-22 2019-06-11 Bank Of America Corporation System for routing of process authorization and settlement to a user in process data network based on specified parameters
US10496989B2 (en) 2016-02-22 2019-12-03 Bank Of America Corporation System to enable contactless access to a transaction terminal using a process data network
US10140470B2 (en) 2016-02-22 2018-11-27 Bank Of America Corporation System for external validation of distributed resource status
US10650129B2 (en) * 2016-05-30 2020-05-12 Rakuten, Inc. Server device, service method, program, and non-transitory computer-readable information recording medium
US10621314B2 (en) * 2016-08-01 2020-04-14 Palantir Technologies Inc. Secure deployment of a software package
US10402796B2 (en) 2016-08-29 2019-09-03 Bank Of America Corporation Application life-cycle transition record recreation system
EP3742667A1 (en) * 2016-09-02 2020-11-25 Assa Abloy AB Key delegation for controlling access
WO2018045475A1 (en) * 2016-09-12 2018-03-15 Nanoport Technology Inc. Secure indirect access provisioning of off-line unpowered devices by centralized authority
US11631077B2 (en) 2017-01-17 2023-04-18 HashLynx Inc. System for facilitating secure electronic communications between entities and processing resource transfers
US10652236B2 (en) * 2017-03-17 2020-05-12 Conduent Business Services, Llc Electronic crowd-based authentication
US11127018B2 (en) * 2017-03-31 2021-09-21 Ncr Corporation Secure access-based resource delegation
US10812475B2 (en) * 2017-04-18 2020-10-20 Servicenow, Inc. Authenticating access to an instance
US20180351952A1 (en) * 2017-06-02 2018-12-06 Schlumberger Technology Corporation System and method for secure management of network devices
US11143010B2 (en) 2017-06-13 2021-10-12 Schlumberger Technology Corporation Well construction communication and control
US11021944B2 (en) 2017-06-13 2021-06-01 Schlumberger Technology Corporation Well construction communication and control
WO2018236420A1 (en) 2017-06-20 2018-12-27 Google Llc CLOUD EQUIPMENT SECURITY MODULES FOR CRYPTOGRAPHIC EXTERNALIZATION OPERATIONS
WO2019001704A1 (en) * 2017-06-28 2019-01-03 Telefonaktiebolaget Lm Ericsson (Publ) ACCESS TO A SERVICE IN A NETWORK
DE102017115298A1 (de) * 2017-07-07 2019-01-10 Huf Hülsbeck & Fürst Gmbh & Co. Kg Verfahren zur Delegation von Zugriffsrechten
US10551870B2 (en) 2017-07-21 2020-02-04 Schlage Lock Company Llc Secure real-time clock update in an access control system
US10505938B2 (en) * 2017-07-21 2019-12-10 Schlage Lock Company Llc Leveraging flexible distributed tokens in an access control system
US10264026B2 (en) * 2017-07-24 2019-04-16 Cyberark Software Ltd. Providing privileged access to non-privileged accounts
CN109600337B (zh) 2017-09-30 2020-12-15 腾讯科技(深圳)有限公司 资源处理方法、装置、系统及计算机可读介质
JP7063990B2 (ja) * 2017-10-21 2022-05-09 アップル インコーポレイテッド 共用デバイス上の仮想アシスタントシステム用の個人ドメイン
US20180343251A1 (en) * 2017-11-16 2018-11-29 Qingdao Hisense Electronics Co., Ltd. Processing method and apparatus for remote assistance
US11443402B2 (en) 2017-12-04 2022-09-13 Google Llc Synchronized data chaining using on-chip cache
US11061811B2 (en) * 2017-12-15 2021-07-13 International Business Machines Corporation Optimizing software testing via group testing
CN109978531B (zh) * 2017-12-27 2023-12-26 海尔衣联生态科技(上海)有限公司 离线支付方法
WO2019139595A1 (en) * 2018-01-11 2019-07-18 Visa International Service Association Offline authorization of interactions and controlled tasks
US11238181B2 (en) 2018-02-14 2022-02-01 Roku, Inc. Production console authorization permissions
US10979416B2 (en) * 2018-03-26 2021-04-13 Nicira, Inc. System and method for authentication in a public cloud
EP3964994B1 (en) 2018-05-07 2023-07-19 Google LLC Synchronizing access controls between computing devices
US10848477B2 (en) 2018-05-09 2020-11-24 Schlage Lock Company Llc Utilizing caveats for wireless credential access
DE102018112087A1 (de) * 2018-05-18 2019-11-21 Liebherr-Hausgeräte Lienz Gmbh Kühl- und/oder Gefriergerät
US10921008B1 (en) * 2018-06-11 2021-02-16 Braeburn Systems Llc Indoor comfort control system and method with multi-party access
US11244528B2 (en) * 2018-06-30 2022-02-08 Carrier Corporation System of conditional access where access is granted to other users when primary accessor is present in room
JP6724951B2 (ja) * 2018-07-24 2020-07-15 横河電機株式会社 装置、方法、プログラムおよび記録媒体
US10929545B2 (en) 2018-07-31 2021-02-23 Bank Of America Corporation System for providing access to data stored in a distributed trust computing network
SG10201806604WA (en) * 2018-08-02 2020-03-30 Mastercard International Inc Methods and systems for facilitating a client-server communication using cyclic tokens
US11558193B2 (en) * 2018-08-13 2023-01-17 Google Llc Location-based access to controlled access resources
US11310217B2 (en) * 2018-09-07 2022-04-19 Paypal, Inc. Using ephemeral URL passwords to deter high-volume attacks
CN109286626B (zh) * 2018-09-29 2021-06-11 张瑞 一种信息处理方法、本地设备、远程设备和信息处理系统
CN109410390B (zh) * 2018-10-10 2021-11-09 联合汽车电子有限公司 智能车钥匙的密钥分发方法
WO2020092971A1 (en) 2018-11-02 2020-05-07 Google Llc Device provisioning protocol with enrollee feedback
EP3881208A4 (en) * 2018-11-14 2022-07-13 Hewlett-Packard Development Company, L.P. SECURE CONNECTION OF DEVICE WITH CLOUD STORAGE
US11146565B2 (en) * 2018-11-28 2021-10-12 Motorola Mobility Llc Mobile electronic communications device having multiple device paths
US11082451B2 (en) * 2018-12-31 2021-08-03 Citrix Systems, Inc. Maintaining continuous network service
US11516084B2 (en) * 2019-01-31 2022-11-29 EMC IP Holding Company LLC Device compatibility in a communication architecture
US11240031B2 (en) * 2019-02-08 2022-02-01 Google Llc System and method for delegating authority through coupled devices
US11477294B2 (en) 2019-04-26 2022-10-18 Hewlett-Packard Development Company, L.P. Spatial-temporal limited user sessions
CN113711631B (zh) * 2019-05-02 2024-04-09 华为云计算技术有限公司 一种用于控制物联网设备的移动设备
US11381575B2 (en) * 2019-05-03 2022-07-05 Microsoft Technology Licensing, Llc Controlling access to resources of edge devices
US11165585B2 (en) * 2019-06-11 2021-11-02 International Business Machines Corporation Token repository and integration
EP3994593B1 (en) * 2019-07-05 2023-08-30 Visa International Service Association System, method, and computer program product for third-party authorization
US11423135B1 (en) 2019-07-31 2022-08-23 Intuit Inc. Offline processing using on-demand access tokens
DE202019104321U1 (de) * 2019-08-06 2020-09-11 Tiger Media Deutschland Gmbh Verwaltungssystem für digitale Medien
DE202019104316U1 (de) * 2019-08-06 2020-04-01 Tiger Media Deutschland Gmbh Wiedergabevorrichtung, System und Datenserver
DE202019104317U1 (de) * 2019-08-06 2020-09-11 Tiger Media Deutschland Gmbh System für einen gesteuerten Zugriff auf digitale Medieninhalte sowie Datenserver
CN110932843B (zh) * 2019-11-19 2022-04-29 湖北工业大学 一种嵌入式系统数据通讯加密方法
US11831752B2 (en) * 2020-01-09 2023-11-28 Western Digital Technologies, Inc. Initializing a data storage device with a manager device
CN111970306B (zh) * 2020-08-31 2022-11-04 Oppo广东移动通信有限公司 权限认证方法、服务器、客户端及存储介质
CN112491843B (zh) * 2020-11-17 2022-06-21 苏州浪潮智能科技有限公司 一种数据库多重认证方法、系统、终端及存储介质
US11652688B2 (en) * 2020-11-25 2023-05-16 International Business Machines Corporation Predicting usage pattern of serverless environment via machine learning
US11595389B1 (en) 2020-12-17 2023-02-28 ForgeRock, Inc. Secure deployment confirmation of IOT devices via bearer tokens with caveats
US11606210B1 (en) 2020-12-17 2023-03-14 ForgeRock, Inc. Secure activation, service mode access and usage control of IOT devices using bearer tokens
US11595215B1 (en) * 2020-12-17 2023-02-28 ForgeRock, Inc. Transparently using macaroons with caveats to delegate authorization for access
WO2022134059A1 (zh) * 2020-12-25 2022-06-30 Oppo广东移动通信有限公司 访问令牌处理方法和设备
US11695768B1 (en) * 2021-02-09 2023-07-04 Wells Fargo Bank, N.A. Systems and methods for locally conducting delegated authentication at edge nodes
CN113051611B (zh) * 2021-03-15 2022-04-29 上海商汤智能科技有限公司 在线文件的权限控制方法和相关产品
US11271938B1 (en) * 2021-07-20 2022-03-08 Raghunathvenkata Ramana Thummisi System and method for directives based mechanism to orchestrate secure communications in multi-cloud distributed systems
CN113572759B (zh) * 2021-07-21 2023-05-23 华控清交信息科技(北京)有限公司 一种数据管理方法、装置、电子设备及存储介质
KR20230042959A (ko) * 2021-09-23 2023-03-30 삼성전자주식회사 근거리 무선 통신을 이용하여 데이터를 전송하는 전자 장치 및 이의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015002581A1 (en) * 2013-07-02 2015-01-08 Telefonaktiebolaget L M Ericsson (Publ) Key establishment for constrained resource devices
US20150143471A1 (en) * 2012-05-30 2015-05-21 Modacom Co.,Ltd. Method for establishing resource access authorization in m2m communication

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100451248B1 (ko) * 2002-04-19 2004-10-02 서울통신기술 주식회사 마스터 로컬 서버 시스템
US20080108322A1 (en) * 2006-11-03 2008-05-08 Motorola, Inc. Device and / or user authentication for network access
JP5018110B2 (ja) * 2007-02-01 2012-09-05 大日本印刷株式会社 情報記憶媒体に記憶された認証用情報書換システム
CN102404726B (zh) * 2011-11-18 2014-06-04 重庆邮电大学 一种对用户访问物联网信息的分布式控制方法
US8923880B2 (en) * 2012-09-28 2014-12-30 Intel Corporation Selective joinder of user equipment with wireless cell
CN105830107A (zh) * 2013-12-19 2016-08-03 维萨国际服务协会 基于云的交易方法和系统
WO2015129352A1 (ja) * 2014-02-28 2015-09-03 日立オートモティブシステムズ株式会社 認証システム、車載制御装置
CN104283885B (zh) * 2014-10-14 2017-07-28 中国科学院信息工程研究所 一种基于智能终端本地认证的多sp安全绑定的实现方法
CN105162779B (zh) * 2015-08-20 2018-08-17 南威软件股份有限公司 多系统使用统一用户认证的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150143471A1 (en) * 2012-05-30 2015-05-21 Modacom Co.,Ltd. Method for establishing resource access authorization in m2m communication
WO2015002581A1 (en) * 2013-07-02 2015-01-08 Telefonaktiebolaget L M Ericsson (Publ) Key establishment for constrained resource devices

Also Published As

Publication number Publication date
CN107070863B (zh) 2021-02-26
CN107070863A (zh) 2017-08-18
DE202016107487U1 (de) 2017-05-04
KR20180053701A (ko) 2018-05-23
EP3408987B1 (en) 2019-11-06
EP3408987A1 (en) 2018-12-05
US20170223005A1 (en) 2017-08-03
DE102016226311A1 (de) 2017-08-03
WO2017131887A1 (en) 2017-08-03
JP2019508763A (ja) 2019-03-28

Similar Documents

Publication Publication Date Title
KR102117584B1 (ko) 로컬 디바이스 인증
EP3602388B1 (en) Blockchain node communication method and apparatus
US10666642B2 (en) System and method for service assisted mobile pairing of password-less computer login
US8532620B2 (en) Trusted mobile device based security
EP3329637B1 (en) System, apparatus and method for optimizing symmetric key cache using tickets issued by a certificate status check service provider
US9621355B1 (en) Securely authorizing client applications on devices to hosted services
US9807610B2 (en) Method and apparatus for seamless out-of-band authentication
US9674699B2 (en) System and methods for secure communication in mobile devices
US20220014524A1 (en) Secure Communication Using Device-Identity Information Linked To Cloud-Based Certificates
US20190281046A1 (en) System and method for transferring device identifying information
CN109587101B (zh) 一种数字证书管理方法、装置及存储介质
US20220255931A1 (en) Domain unrestricted mobile initiated login
US9680827B2 (en) Geo-fencing cryptographic key material
US9654922B2 (en) Geo-fencing cryptographic key material
US9647998B2 (en) Geo-fencing cryptographic key material
EP3408992A1 (en) Secure connections for low-power devices
US8397281B2 (en) Service assisted secret provisioning
JP5992535B2 (ja) 無線idプロビジョニングを実行するための装置及び方法
EP4096147A1 (en) Secure enclave implementation of proxied cryptographic keys
JP7189856B2 (ja) モバイルデバイスを有するユーザがスタンドアロンコンピューティングデバイスの能力にアクセスすることをセキュアに可能にするためのシステム及び方法
Chinnasamy et al. A scalable multilabel‐based access control as a service for the cloud (SMBACaaS)
Binu et al. A mobile based remote user authentication scheme without verifier table for cloud based services
Oniga et al. Iot infrastructure secured by tls level authentication and pki identity system
US20230421583A1 (en) Systems, methods, and storage media for abstracting session information for an application in an identity infrastructure
WO2022140469A1 (en) Domain unrestricted mobile initiated login

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant