JP2019508763A - ローカルデバイス認証 - Google Patents

ローカルデバイス認証 Download PDF

Info

Publication number
JP2019508763A
JP2019508763A JP2018520424A JP2018520424A JP2019508763A JP 2019508763 A JP2019508763 A JP 2019508763A JP 2018520424 A JP2018520424 A JP 2018520424A JP 2018520424 A JP2018520424 A JP 2018520424A JP 2019508763 A JP2019508763 A JP 2019508763A
Authority
JP
Japan
Prior art keywords
access
token
client device
resource
local
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2018520424A
Other languages
English (en)
Inventor
ビルギッソン,アーナー
グートニク,エフゲニー
チュー,ボー
ブカ,ビタリー
エダール,ジェイソン・リード
セメノフ,アレクセイ
ジャコビー,マッケンジー・リー
グプタ,ビカス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2019508763A publication Critical patent/JP2019508763A/ja
Pending legal-status Critical Current

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/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/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
    • 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
    • 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
    • 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
    • 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
    • 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

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号の優先権および完全な利益を主張しており、その全内容が本願明細書において参照により援用される。
分野
この明細書は、ローパワーネットワークを介するワイヤレス通信に関する技術を記載する。
背景
スマートロック、スマート家電(たとえば洗濯機、ストーブ、冷蔵庫など)、スマートサーモスタット、ならびに、リモートコントロール、リモートセンシングおよびリモートオペレーションが可能である他のデバイスといったローパワーデバイスが、ますます一般的になっており、日常生活へ統合されている。これらのデバイスの処理能力の制限と、これらのデバイスが動作する(たとえばブルートゥース(登録商標)ローエナジー(BLE: Bluetooth low energy)ネットワークのような)ローパワーネットワークによるデータ転送に課される帯域幅の制限とにより、多くの一般的なローパワーデバイスは、従来のアクセスコントロールプロセスを実現することができない場合がある。
概要
開示される実施形態は、スマートロック、スマート家電(たとえば洗濯機、ストーブ、冷蔵庫など)、スマートサーモスタット、ならびに、リモートオペレーションおよびリモートコントロールが可能である他のデバイスといったローパワーデバイスが、クラウドネットワークを維持するコンピューティングシステムのような1つ以上の付加的なデバイスにアクセスコントロールの決定を委任することを可能にするコンピュータ化されたプロセスに関する。開示される実施形態によると、ローパワーデバイス(たとえばリソースデバイス)が、1つ以上のマスタートークンを生成しローカルに格納し得る。マスタートークンの例としては、他のデバイスがローパワーデバイスの識別性を照合することを可能にするマスターデバイストークンと、他のデバイスがローパワーデバイスにアクセス可能にすることを確証するマスターアクセストークンとがある。リソースデバイスはたとえば、コンピューティングシステムにそのマスタートークンを送信することによって、コンピューティングシステムのうちの1つにそのアクセスコントロールの決定を委任し得る。コンピューティングシステムは、受信したマスタートークンを格納し得るとともに、リソースデバイスにアクセスすることが承認されたデバイスと、承認されたアクセスにリソースデバイスのオーナーによって課されるさまざまな制限および制約とを識別するアクセスコントロールリストをリソースデバイスに代わって維持し得る。
リソースデバイスにアクセスするためのクライアントデバイスからの要求を受信すると、コンピューティングシステムは、いくつかの局面において、オーナーがリソースデバイスへの制限のあるアクセスをクライアントデバイスに与えたことを確証するだけでなく、要求されたアクセスが、リソースデバイスのオーナーによって課されるさまざまな制限および制約と一貫していることを確証し得る。当該与えられた制限のあるアクセスを促進するために、コンピュータシステムは、マスターデバイストークンに基づいたローカルデバイストークンと、マスターアクセストークンに基づいたローカルアクセストークンとを生成または作り出し(mint)得る。ローカルデバイストークンは、クライアントデバイスが、たとえばローパワーBLEネットワークのような直接的なデバイスツーデバイスワイヤレス接続を介して、リソースデバイスとのセキュアな直接的な接続を確立することを可能にし得る。また、ローカルアクセストークンは、さまざまな課された制約および制限を特定する「短命な(short-lived)」トークンであり得る。クライアントデバイスは、ローパワーネットワークを介してリソースデバイスにこれらのローカルトークンを提示し得、コンピューティングデバイスとの通信なしでまたはネットワークアクセスなしで、課された制約および制限に従ってアクセスをネゴシエーションし得る。
1つの一般的な局面では、コンピュータによって実現される方法は、装置の1つ以上のプロセッサによって、リソースデバイスについてのマスターアクセストークンを取得することと、1つ以上のプロセッサによって、クライアントデバイスに関連付けられるユーザを識別することと、1つ以上のプロセッサによって、ユーザがリソースデバイスへの制限のあるアクセスを受けることを承認されていることを決定することとを含む。決定することに応答して、上記方法は、1つ以上のプロセッサによって、マスターデバイストークンに基づいてローカルアクセストークンを生成し得る。いくつかの局面において、ローカルアクセストークンは、リソースデバイスがネットワーク接続を有することを必要とすることなく、リソースデバイスへのアクセスを与えるように構成され得る。上記方法はさらに、1つ以上のプロセッサによって、リソースデバイスについてのローカルアクセストークンをクライアントデバイスに提供することを含む。リソースデバイスはローパワーリソースデバイスであり得る。
いくつかの実現例では、開示される方法は、リソースデバイスのオーナー、または、リソースデバイスへのアクセスをコントロール可能なエンティティのうちの少なくとも一方によって、ユーザがリソースデバイスへの制限のあるアクセスを受けることを承認されていることを決定することを含み得る。
いくつかの実現例では、開示される方法は、リソースデバイスについて制限のあるアクセスを取得するための要求をクライアントデバイスから受信することと、要求に応答して、リソースデバイスについてのローカルアクセストークンをクライアントデバイスに提供することとを含み得る。ある局面では、当該要求は、ユーザの識別子またはクライアントデバイスの識別子のうちの少なくとも1つを含み得る。リソースデバイスについてのローカルアクセストークンは、要求に応答して、クライアントデバイスに提供され得る。
いくつかの実現例において、開示される方法は、受信した要求の少なくとも部分に基づいてクライアントデバイスを識別することと、クライアントデバイスがリソースデバイスへの制限のあるアクセスを受けることを承認されていることを決定することと、クライアントデバイスが制限のあるアクセスを受けることを承認されていることを決定することに応答して、ローカルアクセストークンを生成することとを含み得る。
いくつかの実現例では、開示される方法は、リソースデバイスについてのアクセスコントロールリストを取得することを含み得る。いくつかの局面では、アクセスコントロールリストは、リソースデバイスへの対応する制限のあるアクセスを受けることを承認されている1人以上のユーザを識別し得る。
いくつかの実現例では、装置は、ローカルメモリにアクセスコントロールリストを格納するように構成される。
いくつかの実現例では、開示される方法は、1人以上の承認されているユーザが上記ユーザを含むということを、アクセスコントロールリストに基づいて決定することと、1人以上の承認されているユーザが上記ユーザを含むということを決定することに応答して、クライアントデバイスのユーザが制限のあるアクセスを受けることを承認されていることを確証することとを含み得る。
いくつかの実現例では、開示される方法は、リソースデバイスのオーナーに関連付けられるオーナーデバイスからアクセスコントロールデータを受信することと、クライアントデバイスのユーザを承認されたユーザであると識別するためにアクセスコントロールリストの少なくとも部分を修正することとを含み得る。いくつかの局面では、アクセスコントロールデータは、ユーザがリソースデバイスへの制限のあるアクセスを受けることを承認し得る。
いくつかの実現例では、アクセスコントロールデータはアクセスパラメータを含み得、アクセスパラメータは、ユーザに与えられる制限されたアクセスの範囲を確立し得る。開示される方法はさらに、アクセスパラメータを含むようにアクセスコントロールリストの少なくとも部分を修正することを含み得る。
いくつかの実現例では、アクセスパラメータは、ユーザに割り当てられる役割、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含み得、アクセスコントロールリストは、ユーザに関連付けられる1つ以上のアクセスパラメータを識別し得る。
いくつかの実現例において、ローカルアクセストークンは、1つ以上のキャビアートおよび対応するキーを含むマカロンを含み得、開示される方法は、アクセスコントロールリストに基づいて、ユーザに関連付けられるアクセスパラメータを識別し、ローカルアクセストークンについての失効時間を確証し、失効時間および識別されたアクセスパラメータをローカルアクセストークンの1つ以上のキャビアート内に統合する動作を実行し得る。
いくつかの実現例では、開示される方法は、ユーザのローカルアクセストークンについて確証される失効時間を統合するようにアクセスコントロールリストの少なくとも部分を修正することを含み得る。
いくつかの実現例では、ローカルアクセストークンは、ユーザまたはクライアントデバイスの少なくとも一方を識別するデータを含み得、開示される方法はローカルアクセストークンにデジタル署名を適用することを含み得る。
いくつかの実現例では、ローカルアクセストークンはたとえば、1つ以上のキャビアートおよび対応するキーを含むマカロンを含み得、対応するキーは、適用されたデジタル署名を含み得、開示される方法は、1つ以上のキャビアートの少なくとも部分へのMACアルゴリズムの適用に基づき、デジタル署名を生成することを含み得る。
いくつかの実現例では、1つ以上のキャビアートは、トークンの失効日時、ユーザに割り当てられる役割、または、ユーザもしくはクライアントデバイスのうちの少なくとも一方を識別するデータのうちの少なくとも1つを含み得る。
いくつかの実現例では、ローカルアクセストークンはデジタル証明書を含み得る。
いくつかの実現例では、開示される方法は、リソースデバイスからマスターアクセストークンを受信することと、マスターアクセストークンの少なくとも部分に基づいてローカルアクセストークンを生成することとを含み得る。
いくつかの実現例では、マスターアクセストークンはたとえば、1つ以上の第1のキャビアートおよび対応する第1のキーを有する第1のマカロンを含み得、ローカルアクセストークンは第2のマカロンを含み得、第2のマカロンは、1つ以上の第2のキャビアートと、対応する第2のキーとを含む。
いくつかの実現例では、第2のキャビアートは、第1のキャビアートと、ローカルアクセストークンの失効日時と、ユーザの制限のあるアクセスに関連付けられる1つ以上のアクセスパラメータとを含み得、当該アクセスパラメータは、ユーザに割り当てられる役割、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含み得る。
いくつかの実現例では、開示される方法は、クライアントデバイスがリソースデバイスの識別性を照合することを可能にするマスターデバイストークンをリソースデバイスから受信することと、決定することに応答して、マスターデバイストークンの少なくとも部分に基づいてローカルデバイストークンを生成することと、クライアントデバイスにローカルデバイストークンを提供することとを含み得る。
別の一般的な局面では、コンピュータによって実現される方法は、リソースデバイスの1つ以上のプロセッサによって、クライアントデバイスとのセキュアなワイヤレス接続を確立することと、1つ以上のプロセッサによって、クライアントデバイスからのアクセストークンに由来するトークンデータと、クライアントデバイスによるリソースデバイスへのアクセスの要求とを受信することと、1つ以上のプロセッサによって、ネットワークを介して通信することなく、受信したトークンデータが、リソースデバイスへのアクセスを承認する有効なトークンに由来すると決定することと、1つ以上のプロセッサによって、ネットワークを介して通信することなく、アクセストークンが、クライアントデバイスによって要求されるアクセスを提供するのに十分なアクセスのレベルを承認していると決定することを含む。受信したトークンデータが有効なトークンに由来すると決定することと、アクセストークンが電子デバイスによって要求されるアクセスを提供するのに十分なアクセスのレベルを承認していると決定することとに応答して、上記方法はさらに、1つ以上のプロセッサによって、クライアントデバイスによって要求されるリソースデバイスへのアクセスを提供することとを含み得る。
いくつかの実現例では、セキュアなワイヤレス接続は、クライアントデバイスとリソースデバイスとの間の直接的なワイヤレス接続を含み得る。
いくつかの実現例では、直接的なワイヤレス接続は、ブルートゥースローエナジー(BLE:Bluetooth Low Energy)接続を含み得る。
いくつかの実現例では、開示される方法はさらに、クライアントデバイスからキャビアートデータおよびランダムデータを受信することを含み、キャビアートデータは、クライアントデバイスによってローカルデバイストークンから抽出され、上記方法はさらに、受信したキャビアートおよびランダムデータの少なくとも部分に基づいてキー値を計算することと、計算されたキー値をクライアントデバイスに送信することと、計算されたキー値と、ローカルデバイストークンに基づいてクライアントデバイスによって計算される付加的なキー値との間の対応に基づき、クライアントデバイスとのセキュアなワイヤレス接続を確立することとを含み得る。
いくつかの実現例では、開示される方法は、計算されたキー値を、セッションキーとして確証することを含み得る。
いくつかの実現例では、キャビアートデータおよびランダムデータは、共有された対称キーを使用して暗号化され得、開示される方法は、受信したキャビアートデータおよびランダムデータを復号化することと、共有された対称キーを使用して、計算されたキー値を暗号化することと、暗号化されたキー値をクライアントデバイスに送信することとを含む。
いくつかの実現例では、リソースデバイスは、クラウドサーバに関連付けられるコンピュータシステム、サードパーティ認証サービス、または、リソースデバイスのオーナーのデバイスのうちの少なくとも1つにアクセスコントロールの決定を委任しており、少なくとも1つのコンピュータシステム、サードパーティ認証サービス、または、オーナーデバイスは、アクセストークンを生成し、クライアントデバイスにアクセストークンを提供する。
いくつかの実現例では、開示される方法は、ネットワークを介して通信することなく、確立するステップ、受信するステップおよび提供するステップを実行することを含み得る。
いくつかの実現例では、アクセストークンは、1つ以上のキャビアートおよび対応するキーを有するマカロンを含む。
いくつかの実現例では、ネットワークを介して通信することなく、受信したトークンデータが有効なトークンに由来すると決定するステップは、受信したトークンデータから1つ以上のキャビアートを抽出することと、抽出されたキャビアートと、リソースデバイスによって維持されるマスターアクセストークンとに基づき、受信したトークンデータのコピーを計算することと、受信したトークンデータが、計算されたコピーに対応すると決定することと、受信したトークンデータが、計算されたコピーに対応する場合、受信したトークンデータが有効なトークンに由来すると確証することとを含み得る。
いくつかの実現例では、ネットワークを介して通信することなく、受信したトークンデータが有効なトークンに由来すると決定するステップは、抽出されたキャビアートの少なくとも部分に基づいて、受信したアクセストークンについてのアクセスのチェーンを識別することと、受信したトークンについてのアクセスのチェーンを照合することとをさらに含み得る。
いくつかの実現例では、1つ以上のキャビアートは、アクセストークンの失効日時と、リソースデバイスのオーナーによってクライアントデバイスに割り当てられる役割と、1つ以上のアクセスパラメータとを含み得、アクセスパラメータは、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含み、リソースデバイスへのアクセスの要求は、リソースデバイスの1つ以上の要求される機能を識別する。
いくつかの実現例では、アクセストークンが十分なアクセスのレベルを承認していると決定するステップは、失効日時に基づいて、アクセストークンが失効していないと決定することと、リソースデバイスの要求される機能へアクセスするためにクライアントデバイスによって必要とされる役割を識別することと、必要とされる役割が、割り当てられる役割と一貫していると決定することと、1つ以上の要求される機能が1つ以上のアクセスパラメータと一貫していると決定することと、(i)アクセストークンが失効していないという決定と、(ii)必要とされる役割が、割り当てられる役割と一貫しているという決定と、(iii)1つ以上の要求される機能が1つ以上のアクセスパラメータと一貫しているという決定とに応答して、アクセストークンが、要求されるアクセスを提供するのに十分なアクセスのレベルを承認していると確証することを含み得る。
いくつかの実現例では、リソースデバイスは、クラウドサーバに関連付けられるコンピュータシステム、サードパーティ認証サービス、または、リソースデバイスのオーナーのデバイスのうちの少なくとも1つにアクセスコントロールの決定を委任しており、少なくとも1つのコンピュータシステム、サードパーティ認証サービス、または、オーナーデバイスは、アクセストークンを生成し、クライアントデバイスにアクセストークンを提供する。
他の実施形態において、対応するシステム、デバイスおよびコンピュータプログラムは、コンピュータストレージデバイス上でエンコードされる方法のアクションを実行するように構成され得る。1つ以上のプロセッサを有するデバイスは、デバイスにインストールされたソフトウェア、ファームウェア、ハードウェアまたはそれらの組み合わせによりそのように構成され得、当該ソフトウェア、ファームウェア、ハードウェアまたはそれらの組み合わせは、動作において当該デバイスに上記アクションを実行させる。1つ以上のコンピュータプログラムは、デバイスによって実行されると、デバイスにアクションを実行させる命令を有することによって、そのように構成され得る。
本願明細書において開示される技術の実現例は、以下の利点の1つ以上を提供し得る。デバイスはリモートシステムにアクセスコントロールの決定を委任し得る。これにより、デバイスについて洗練されたセキュリティおよびアクセスコントロールが可能になる一方、デバイス上での電力需要、処理需要およびネットワーク帯域幅需要が低減される。当該システムにより、特定の許可または制約が与えられることを可能にするきめ細かいアクセスコントロールが可能になる。さらに、当該システムにより、さまざまな条件あるいは制約に従って、承認されたユーザが、他者に制限のあるアクセスを委任することが可能になる。さらに、リモートシステムがユーザまたはデバイスに認証を与える決定をしているが、当該セキュリティスキームは、リモートシステムとセキュアにされるデバイスとの間の通信が必要ではないように構成されている。すなわち、アクセスが要求されると、セキュアにされるデバイスは、要求を行った側が、その後にリモートシステムと通信することなく承認されるかどうか決定し得る。これにより、当該認証スキームは、ネットワーク接続がない状態でも有効である。さらに、ネットワーク接続がなくても認証を実行する能力により、電力需要が低減され得、これは小さいデバイスまたはバッテリ給電のデバイスに特に有利である。
この明細書に記載される主題の1つ以上の実施形態の詳細は、添付の図面および以下の説明において記載される。当該主題の他の潜在的な特徴、局面および利点は、説明、図面および請求の範囲から明白になるであろう。
例示的なコンピューティングシステムの図である。 デバイス間での、アクセスコントロールの決定の委任を促進するデータの例示的な交換を示す図である。 リソースデバイスから1つ以上のコンピューティングデバイスにアクセスコントロールの決定を委任するための例示的なプロセスのフローチャートの図である。 クライアントデバイスによるリソースデバイスのトークンベースのアクセスを促進するデータの例示的な交換を示す図である。 リソースデバイスへのアクセスを与えるための例示的なプロセスのフローチャートの図である。 この明細書に記載されるシステムおよび方法を実現するために使用され得るコンピューティングデバイスのブロック図である。
さまざまな図面における同様の参照番号および参照符号は同様の要素を示す。
詳細な説明
図1は、リソースデバイスから1つ以上の他のデバイスおよび/またはコンピュータシステムにアクセスコントロールの決定を委任し、かつ、ネットワークアクセスを必要とすることなく、リソースデバイスにアクセスを与えるデバイス固有のトークンを提供するための例示的なシステム100を示す。たとえば、システム100は、リソースデバイス102と、オーナーデバイス104と、クライアントデバイス106と、コンピューティングシステム108と、システム100のコンポーネントのうちの1つ以上を相互接続することが可能である通信ネットワーク122とを含み得る。
さらに、ある局面では、システム100は、システム100の1つ以上のコンポーネントを直接的に接続することができる1つ以上のローカルワイヤレス通信ネットワーク(たとえばワイヤレスピアツーピア接続など)を含み得る。たとえば、図1において、システム100は、リソースデバイス102およびオーナーデバイス104を直接的に接続するローカルワイヤレス通信ネットワーク124を含み得、付加的または代替的には、リソースデバイス102およびクライアントデバイス106を直接的に接続するローカルワイヤレス通信ネットワーク126を含み得る。しかしながら、開示される実施形態は、これらの例示的なローカルワイヤレス通信ネットワークに限定されず、他の局面において、システム100は、システム100のコンポーネントに適切な付加的または代替的な数のローカルワイヤレス通信ネットワークを含んでもよい。
一般に、リソースデバイス102は、たとえばルートキーといった、リソースデバイス102のみが知っている秘密を生成または維持し得る。リソースデバイス102は、ルートキーに由来するマスターキーまたはマスタートークンを生成する。その後、リソースデバイス102は、信頼された機構(trusted authority)にマスタートークンを送信して、当該信頼された機構にアクセス管理権を委任する。いくつかの実現例では、当該信頼された機構は、コンピューティングシステム108のような、インターネットによってアクセス可能なリモートサーバシステムである。委任が完了した後、信頼された機構は、リソースデバイス102とコンタクトすることなく、リソースデバイス102にアクセスするための任意数のアクセスキーあるいはアクセストークンを生成することが可能になる。リソースデバイス102は、新しいアクセストークンが生成される時に、オフまたはオフラインであり得る。
その後、別のパーティがリソースデバイス102へのアクセスを要求する際には、要求を行ったパーティーは、信頼された機構から取得されるアクセストークンを提示する。アクセストークンから、リソースデバイス102は、(i)アクセストークンがデバイスルートキーに由来しているということと、(ii)アクセストークンが適切なアクセス管理機構によって発行されたものであるということとを照合することが可能である。さらに、リソースデバイス102は、アクセストークンを提示したものに与えられるアクセス権、権限および制約を決定することが可能である。これにより、リソースデバイス102は、アクセストークンに基づいて、アクセス管理権が委任された信頼された機構と通信することなく、アクセスを提供するべきかどうかと、どの範囲のアクセスを提供するべきかどうかとを決定することを可能になる。
いくつかの局面において、リソースデバイス102は、(たとえば、ローパワーマイクロコントローラユニット(MCU: microcontroller unit)および/またはシステムオンチップ(SoC:system-on-chip)によって動作される)ローパワーデバイスを含み得、当該ローパワーデバイスは、通信ネットワーク122を介してシステム100のコンポーネントとの通信を確立するように構成され得、付加的または代替的には、ローカルワイヤレス通信ネットワーク124および126を介して直接的な接続を確立するように構成され得る。たとえば、ローパワーデバイスは、バッテリ給電のデバイス、またはそうでなければ、電力が抑制されているデバイスであり得る。例として、リソースデバイス122は、ワイヤレススピーカーのセットと、ワイヤレスプリンタまたは他の電子デバイスと、スマートロックと、スマート家電(たとえば冷蔵庫、ストーブおよび/または洗濯機)と、スマートサーモスタットまたは他のセンサと、たとえばネットワーク122を介したコンピューティングシステム108との通信、ローカルワイヤレス通信ネットワーク124を介したオーナーデバイス104との直接的な通信、付加的または代替的には、ローカルワイヤレス通信ネットワーク126を介したクライアントデバイス106との直接的な通信を確立することが可能である任意の付加的または代替的なデバイス(たとえばインターネットオブシングス(IOT: Internet-of-Things)接続デバイス)とを含み得るが、これらに限定されない。いくつかの実現例において、リソースデバイス102は、WeaveまたはμWeaveプロトコルに従って「サーバ」デバイスとして機能し得る。
オーナーデバイス104およびクライアントデバイス106は、携帯電話と、スマートフォンと、タブレットコンピュータと、デスクトップコンピュータと、ラップトップコンピュータと、タブレットコンピュータと、ウェアラブルコンピュータと、音楽プレーヤと、eブックリーダと、ナビゲーションシステムと、または、通信ネットワーク122、ローカルワイヤレス通信ネットワーク124および/もしくはローカルワイヤレス通信ネットワーク126を介してシステム100のコンポーネントとの通信を確立可能である任意の他の適切なコンピューティングデバイスとを含み得るが、これらに限定されない。さらに、コンピューティングシステム108は、開示される実施形態に係る1つ以上のプロセスを実行するよう、メモリに格納されるソフトウェア命令を実行するように構成されるとともに、ネットワーク122を介してシステム100の1つ以上のコンポーネントと通信するように構成される1つ以上のコンピュータシステムを含み得る。
さらに、ある局面では、ローカルネットワーク124および/または126は、ブルートゥースローエナジー(BLE)ネットワークのようなワイヤレスパーソナルエリアネットワーク(PAN: personal area network)を含み得る。他の局面において、開示される実施形態によると、ネットワーク122、付加的または代替的には、ローカルネットワーク124および126の1つ以上は、たとえば「Wi−Fi(登録商標)」ネットワークのようなワイヤレスローカルエリアネットワーク(LAN: local area network)と、RFネットワークと、ニアフィールド通信(NFC: Near Field Communication)ネットワークと、複数のワイアレスLANを接続するワイヤレスメトロポリタンエリアネットワーク(MAN: Metropolitan Area Network)と、たとえばインターネットのようなワイドエリアネットワーク(WAN: wide area network)とを含み得るが、これらに限定されない。
いくつかの実施形態において、システム100のコンポーネントは、クライアントデバイス106にアクセスコントロール権限を与えるとともに与えられたアクセスコントロール権限に従ってクライアントデバイス106がリソースデバイス102にアクセスすることを可能にするアクセスコントロールプロトコルを実現し得る。例として、従来のアクセスコントロールプロセスは、1つ以上の承認されたデバイス(たとえばクライアントデバイス106)と、これらの承認されたデバイスに提供されるアクセスのレベルとを識別するアクセスコントロールリスト(たとえばACL)を維持するために、アクセス可能なデバイス(たとえばリソースデバイス102)を必要とし得る。デバイスからのアクセス要求を受信すると、アクセス可能なデバイスは、ACLを解析して、要求を行ったデバイスが承認されたデバイスかどうか決定し、承認されたデバイスであれば、要求を行ったデバイスに与えられるアクセスのレベルおよび/またはタイプを決定し得る。
しかしながら、上述したように、リソースデバイス102は、ローパワーMCUおよびSoCによって動作されるデバイスを含み得る。これらのローパワーMCUおよび/またはSoCは、相対的に低いクロック速度で動作し、制限のあるローカルメモリを含んでおり、これにより、これらのローパワーMCUおよび/またはSoCは、複数の承認されたデバイスについてACLを維持することができず、(たとえばクライアントデバイス106、または、システム100における他のクライアントデバイスからの)個々の要求を処理および認証するのに十分なスピードでアクセスコントロールプロトコルを実行することができない。ローパワーMCUおよび/またはSoCによって課される制限に鑑みて、開示される実施形態に係るアクセスコントロールプロトコルは、リソースデバイス102からシステム100の別のコンポーネントにアクセスコントロールの決定を委任し得、これにより、リソースデバイス102にアクセスすることが承認されたデバイスを識別し、リソースデバイス102への提示の際に、承認されたデバイスがリソースデバイス102の機能にアクセスすることを可能にするローカルトークンを生成または「作り出」し得る。
例として、リソースデバイス102、オーナーデバイス104およびクライアントデバイス106は各々、ネットワーク122を介してコンピューティングシステム108との通信を確立可能であり得、開示される実施形態に係るアクセスコントロールプロトコルは、リソースデバイス102がコンピューティングシステム108にアクセスコントロールの決定を委任することを可能にし得る。いくつかの局面において、本願明細書において記載されるように、コンピューティングシステム108は、クラウドサーバ(たとえばGoogle Cloud(商標)によって維持されるサーバ)として機能し得、オーナーデバイス104(付加的または代替的には、リソースデバイス102へのアクセスをコントロールまたは管理するエンティティの任意の他のデバイス)から受信される入力に基づいて、リソースデバイス102に代わってACLを生成および維持し得る。さらに、以下に記載されるように、コンピューティングシステム108は、承認されたデバイス(たとえばクライアントデバイス106)がリソースデバイス102の識別性を照合すること可能にするとともにリソースデバイス102へのクライアントデバイス106のアクセスのレベル、タイプ、および期間を特定するローカルトークンを生成または作り出し得る。
ある局面において、コンピューティングシステム108にリソースデバイス102のアクセスコントロールの決定を委任するアクセスコントロールプロトコルを開始するために、(たとえば、リソースデバイス102へのアクセスを有するまたはコントロールするエンティティによって維持された)オーナーデバイス104は、ネットワーク124を介してリソースデバイス102を発見する1つ以上のプロセスを実行し得る。たとえば、リソースデバイス112は、ネットワーク124を介して動作するデバイスに対して発見可能であり得、ネットワーク124を介して動作するデバイスに、その発見可能状態を示すアドバタイズメントデータをブロードキャスト送信し得る。1つの場合において、リソースデバイス102はパブリック(publicly)に発見可能であり、また、ブロードキャスト送信されたアドバタイズメントデータは、リソースデバイス102のデバイス識別子(たとえばメディアアクセスコントロール(MAC)アドレス、IPアドレスなど)を含み得る。オーナーデバイス104によってデバイス識別子が受信されると、オーナーデバイス104は、リソースデバイス102を発見しペアリングし得、(たとえばネットワーク124を介する)リソースデバイス102との直接的なワイヤレス接続を確立し得る。
他の場合において、リソースデバイス122は、プライベート(privately)に発見可能であり、システム100内で動作する1つ以上のプライベートネットワークにおける自身のメンバーシップを示すようアドバタイズメントデータ内にエフェメラル識別子(EID: ephemeral identifier)データを含み得る。たとえば、プライベートに発見可能である場合、リソースデバイス102は、特定された長さの乱数(たとえば16ビットの乱数)を含むアドバタイズメントデータと、1つ以上のプライベートネットワークのメンバーの間で共有されるプライベート暗号キーを使用して生成されるその乱数のデジタル署名とをブロードキャスト送信し得る。いくつかの局面において、リソースデバイス102は、メッセージ認証コード(MAC: message authentication code)アルゴリズム(たとえば16バイトのタグ長さを有するHMAC−SHA256アルゴリズム)を上記乱数および共有されたプライベート暗号キーに適用することによって、デジタル署名を生成し得る。オーナーデバイス104は、アドバタイズメントデータを受信し、共有されるプライベート暗号キーを使用して乱数の付加的なデジタル署名を生成し、受信および生成されたデジタル署名がマッチする場合、リソースデバイス102を発見し、ネットワーク124を介するリソースデバイス102との直接的なワイヤレス接続を確立し得る。
発見およびペアリングが成功すると、オーナーデバイス104は、コンピューティングシステム108にリソースデバイス102を登録し開示される実施形態に係るアクセスコントロールプロセスを実現するよう、1つ以上のプロセス(たとえば「ブートストラッピング」プロセス)を実行し得る。例として、オーナーデバイス104は、ネットワーク122を介するコンピューティングシステム108との通信を確立し得、コンピューティングシステム108に1つ以上の認証クレデンシャルを提供し得る(たとえばクラウドサービスアカウントに関連付けられるログイン、パスワード、バイオメトリックデータ、トークン、デジタル証明書など)。コンピューティングシステム108は、いくつかの局面において、格納されたクラウドサービスアカウントデータ(たとえばGoogle Cloud(商標)のようなクラウドサービスのアカウントを有するユーザまたはGAIA(商標)アカウントを有するユーザを示すデータ)に対して、受信した認証クレデンシャルを比較し得、これにより、オーナーデバイス104のユーザ(たとえばオーナーデバイス104のオーナーおよび/またはオーナーデバイス104へのアクセスをコントロールするエンティティ)を認証し得る。
認証が成功すると、オーナーデバイス104は、登録テンプレートを生成し、グラフィカルユーザインターフェイスを介して(たとえば実行されるモバイルアプリケーションを介しておよび/またはクラウドサービスに関連付けられるウェブページを介して)ユーザに提示し得る。登録テンプレートは、いくつかの局面において、開示される実施形態に係る1つ以上のアクセスコントロールプロセスのために、リソースデバイス102を登録するユーザの意図を示す。さらに、例として、オーナーデバイス104は、提示された登録テンプレートへユーザによって入力された登録データを受信し得る。当該登録データは、リソースデバイス102、オーナーデバイス104および/またはクラウドサービスのユーザのアカウントを識別するデータを含み得るがこれに限定されない。また、オーナーデバイス104は、1つ以上のセキュアな通信プロトコル(たとえばセキュアハイパーテキストトランスファプロトコル(HTTPS)など)を使用して、登録データをコンピューティングシステム108にネットワーク122を介して送信し得る。
コンピューティングシステム108は、受信した登録データを処理し得、オーナーデバイス104、ユーザのクラウドサービスアカウント(たとえばユーザのGAIA(商標)アカウント、ユーザのGoogle Cloud(商標)アカウント)、および、リソースデバイス102にリンクされる一意登録チケット識別子(unique registration ticket identifier)を生成し得る。コンピューティングシステム108は、いくつかの場合において、生成された登録チケット識別子をローカルメモリまたはデータレポジトリに格納し得、1つ以上のセキュアな通信プロトコル(たとえばセキュアハイパーテキストトランスファプロトコル(HTTPS)など)を使用して、生成された登録チケット識別子をネットワーク122を介してオーナーデバイス104に送信し得る。
オーナーデバイス104は、コンピューティングシステム108から登録チケット識別子を受信し得、いくつかの局面において、共有されるプライベート暗号キーを使用して登録チケット識別子を暗号化し、暗号化された登録チケット識別子をネットワーク124を介してリソースデバイス102に送信し得る。リソースデバイス102は、暗号化された登録チケット識別子を受信および復号化し得、当該登録チケット識別子はローカルメモリまたはデータレポジトリに格納され得る。さらに、ある局面では、リソースデバイス102は、登録処理を完了するために、(たとえばWeaveプロトコルにかかるPrivet APIのような適切なアプリケーションプログラミングインターフェイス(API: application programming interface)への呼び出しを通じて)コンピューティングシステム108に登録チケット識別子を提供し得る。
コンピューティングシステム108は、APIを通じて登録チケット識別子を受信し得、登録チケット識別子に基づいて、オーナーデバイス104およびクラウドサービスアカウントを識別し得る。当該識別に応答して、コンピューティングシステム108は、リソースデバイス102についての1つ以上の認証クレデンシャルを生成し得、リソースデバイス102についての1つ以上のアクセスコントロールリスト(たとえばACL)を生成しローカルに格納し得る。以下に記載されるように、生成および格納されたACLは、たとえば、リソースデバイス102にアクセスすることが承認されているデバイスと、承認されたアクセスの範囲を定義、制限および/または制約する1つ以上のアクセスパラメータとを識別し得る。コンピューティングシステム108は、上記のセキュアな通信プロトコルのいずれかを使用して、生成された認証クレデンシャルをネットワーク122を介してリソースデバイス102に送信し得る。リソースデバイス102は、発行された認証クレデンシャルを受信し、ローカルメモリまたはデータレポジトリに格納し得、いくつかの局面において、発行された認証クレデンシャルに基づいて、コンピューティングシステム108は、リソースデバイス102とのセキュアな通信セッションを確立し得る。
登録が成功すると、リソースデバイス102、オーナーデバイス104、クライアントデバイス106およびコンピューティングシステム108は、開示される実施形態に係る1つ以上のアクセスコントロールプロトコルを実現する動作をまとめて実行し得る。たとえば、開示されるプロセスによって、リソースデバイス102は、コンピューティングシステム108(たとえばGoogle Cloud(商標)によって維持されるサーバのようなクラウドサーバ)にアクセスコントロールの決定を委任することが可能になり得、コンピューティングシステム108は、オーナーデバイス104によって課される1つ以上の制限および/または制約に従って、クライアントデバイス106にリソースデバイス102へのアクセスを提供する1つ以上のトークンを生成し得る。
これらおよび他のアクセスコントロールプロセスを実現するために、リソースデバイス102、オーナーデバイス104、クライアントデバイス106および/またはコンピューティングシステム108は、1つ以上の暗号キーおよびトークンを生成、受信および/または格納するように構成され得る。たとえば、本願明細書において記載される発見プロセスの間、リソースデバイス102はルート暗号キーを生成し得、当該ルート暗号キーは、リソースデバイス102がローカルメモリまたはデータレポジトリに格納し得、かつ、リソースデバイス102によって機密保持され得る。
さらに、ある局面において、リソースデバイス102、オーナーデバイス104および/またはクライアントデバイス106は、共有されるプライベート暗号キーのローカルコピーを格納してもよく、初期ハンドシェイクプロセスの間のネットワーク124を介するリソースデバイスとオーナーデバイス104との間の通信(およびネットワーク126を介するクライアントデバイス106との通信)を暗号化してもよく、これにより、パッシブリスナー(passive listener)からの如何なるデバイス固有の情報も不明瞭にされ得る。ある局面では、共有されるプライベート暗号キーは、格納されたルート暗号キーを使用してリソースデバイス102によって生成され得、リソースデバイス102は、ネットワーク124および126のそれぞれを介して、共有されるプライベート暗号キーをオーナーデバイス104および/またはクライアントデバイス106に提供し得る。他の局面において、リソースデバイス112は、初期の登録および/またはブートストラッピングプロセスの間に、付加的なデバイス(たとえばリソースデバイス112のオーナーによって保持されるデバイス)および/またはコンピューティングシステム108(たとえばGoogle Cloud(商標)によって維持されるサーバのようなクラウドサーバ)に、共有されるプライベート暗号キーを提供し得る。次いで、付加的なデバイスおよび/またはコンピューティングシステム108が、以下に記載されるもののような1つ以上のローカルアクセストークンの部分として、共有されるプライベート暗号キーをクライアントデバイス106に提供し得る。
開示される実施形態に係るデバイスおよびアクセストークンは、マカロン(macaroon)としてフォーマットされ得、マカロンは、バイト列(たとえばキャビアート(caveat))のシーケンスと、ネスト型の態様(nested fashion)で各キャビアートにメッセージ認証コード(MAC)アルゴリズムを適用することによって再帰的に計算される認証タグ(たとえばデジタル署名)とを含む。以下に記載されるように、キャビアートは、デバイス識別子、デバイス固有の暗号キーの識別子、および/または、アクセス制約(たとえば、失効日時、時間的制約、権限レベル、再共有に対する制約、セッションベースの制約、時間的制約など)を含み得るが、これらに限定されない。さらに、以下に記載される付加的な局面において、以前に生成されたマカロンが、付加的なキャビアートを加え、かつ、キーとして以前のタグを使用して付加的なキャビアートに再帰的にMACアルゴリズムを適用することにより、(たとえばリソースデバイス102、オーナーデバイス104、コンピューティングシステム108などによって)拡張され得る。開示される実施形態に係るMACアルゴリズムは、16バイトのタグ長さのHMAC−SHA256アルゴリズムと、クライアントデバイス106およびリソースデバイス112に適切な他のアルゴリズムとを含み得るがこれらに限定されない。
たとえば、リソースデバイス102は、上述したようにマカロンとしてフォーマットされ得るマスターデバイストークンおよびマスターアクセストークンを生成し得る。マスターデバイストークンのキャビアートは、リソースデバイス102(たとえばMACアドレスなど)の識別子と、リソースデバイス102によって生成されるランダムデータ(たとえばランダムノンス(nonce))とを含み得るが、これらに限定されない。付加的な場合において、マスターアクセストークンのキャビアートは、たとえば、リソースデバイス102のオーナーに関連付けられる役割または権限のレベル(たとえば最も高い利用可能な権限)と、ランダムノンスとを含み得る。リソースデバイス102はさらに、たとえば、格納されたルート暗号キーと、マスターデバイスおよびアクセストークンのそれぞれのキャビアートとに基づいて、(たとえば適切なMACアルゴリズムを使用して)マスターデバイスおよびアクセストークンについてのデジタル署名を生成し得る。(たとえば、マカロンのうちの対応するものについての認証タグとして機能し得る)生成されたデジタル署名は、いくつかの場合において、リソースデバイス102とシステム100の他のコンポーネントとの間の送信の間に、悪意のあるパーティーがトークンの1つ以上を傍受し修正し得る可能性を低減し得る。
上述したように、開示される実施形態に係るアクセスコントロールプロトコルは、リソースデバイス102が、コンピューティングシステム108(たとえばGoogle Cloud(商標)によって維持されるサーバのようなクラウドサーバ)にそのアクセスコントロールの決定を委任することを可能にし得、これにより、オーナーデバイス104によって課される制限および制約に従って、1つ以上の付加的なデバイス(たとえばクライアントデバイス106)にアクセス権を提供し得る。この委任を促進するために、リソースデバイス102は、(たとえば、上で概説されたセキュアな通信プロトコルのいずれかを使用して)ネットワーク122を介してコンピューティングシステム108にマスターデバイスおよびアクセストークンを送信し得る。
コンピューティングシステム108は、いくつかの局面において、リソースデバイス102からマスターデバイスおよびアクセストークンを受信し得、マスターデバイスおよびアクセストークンをオーナーデバイス104(付加的または代替的にはオーナーデバイス104のユーザのクラウドサービスアカウント)に関連付け得、ローカルメモリまたはデータレポジトリにマスターデバイスおよびアクセストークンを格納し得る。ある局面において、図2を参照して記載されるように、コンピューティングシステム108は、リソースデバイス102の1つ以上の機能へのアクセスを、オーナーデバイス104によってそのアクセスに課される制限および/または制約に従ってクライアントデバイス106に付与するローカルデバイスおよびアクセストークンを生成し得る。
図2は、開示される実施形態に従った、リソースデバイス102からコンピューティングシステム108へのアクセスコントロールの決定の委任を促進するデータ200の例示的な交換を示す概略図である。例として、上記の例示的な技術のいずれかを使用して、リソースデバイス102は、マカロンとしてフォーマットされ得るとともにリソースデバイス102からコンピューティングシステム108に送信され得るマスターデバイスおよびアクセストークンを生成し得る。しかしながら、開示される実施形態は、リソースデバイス102によって生成されるマスターデバイスおよびアクセストークンに限定されず、他の局面において、オーナーデバイス104と、リソースデバイス102をコントロールするエンティティに関連付けられる別のデバイス(図1に示されない)と、さらに、システム100内で動作可能あり委任されたアクセスに適切な任意の付加的または代替的なデバイスとによって、開示される実施形態に係るマスターデバイスおよびアクセストークンが生成され得る。
いくつかの局面において、上述したように、コンピューティングシステム108は、リソースデバイス102にアクセスすることを承認される1つ以上のデバイスを識別するアクセスコントロールリスト(たとえばACL)と、さらに、承認されたアクセスの範囲を定義、制限および/または制約する1つ以上のアクセスパラメータとを生成および維持し得る。ある局面では、アクセスパラメータは、失効日時、セッションベースの制約(たとえば、単一の確立されている通信設定への委任されたアクセスを制限すること)、時間的制約(たとえば有効期間、有効な日時など)、承認されたアクセスのタイプに対する制約(たとえば、機能の使用、設定の修正など)、承認されたデバイス(たとえばオーナー、マネージャ、ユーザなど)に関連付けられる役割、承認されたデバイスがさらにアクセスを委任する能力(たとえば付加的なトークンを作り出すこと)、および/または、承認されたデバイスがオフラインで(たとえばネットワーク122へのアクセスなしで)リソースデバイス102へアクセスする能力を含み得るが、これらに限定されない。しかしながら、開示される実施形態は、これらの例示的なアクセスパラメータに限定されず、さらに別の局面において、開示される実施形態に係るACLは、コンピューティングシステム108、リソースデバイス102および承認されたデバイス(たとえばクライアントデバイス106)に適切な任意の付加的または代替的なアクセスパラメータを含み得る。さらに、アクセスパラメータのうちの1つ以上は、(たとえば、対応するユーザから受信される入力に基づいて)オーナーデバイス104によって確立され得、付加的または代替的には、リソースデバイス102および/または承認されたデバイス(たとえばクライアントデバイス106)のプロパティに基づいて、コンピューティングシステム108によって確立されるデフォルトパラメータを表わし得る。
ある実施形態では、オーナーデバイス104のユーザは、(たとえば、オーナーデバイス104によって実行されるモバイルアプリケーション、および/または、オーナーデバイス104によって提示のためにアクセスおよびレンダリングされるウェブページによって生成される)コンピューティングシステム108に関連付けられるグラフィカルユーザインターフェイス(GUI)にアクセスし得る。いくつかの局面では、提示されるGUIは、(たとえば1つ以上のACL内において)リソースデバイス102にアクセスすることを承認されている1つ以上のデバイスを識別し得、承認されているデバイスの各々について1つ以上のアクセスパラメータを識別し得、さらに、ユーザがACLに付加的な承認されたデバイスを加え、当該付加的な承認されたデバイスについてアクセスパラメータを特定することを可能にし得る。
たとえば、オーナーデバイス104によって提示されるGUIへ入力されると、ユーザは、(i)クライアントデバイス106をリソースデバイス102にアクセスすることを承認されたデバイスであると識別し、かつ、(ii)クライアントデバイス106の承認されたアクセスの範囲を定義、制限および/または制約するアクセスパラメータのうちの1つ以上を特定する情報を提供し得る。いくつかの場合、クライアントデバイス106を識別する情報は、デバイス識別子、および/または、クライアントデバイス106を操作するユーザの識別子を含み得る。さらに、上述したように、当該情報は、失効日時、セッションベースの制約、時間的制約、承認されたアクセスのタイプ、役割、その後の委任に対する制約、オーナーデバイス104によって課されるオフラインのアクセスに対する制約を含むがこれらに限定されないアクセスパラメータを特定し得る。いくつかの場合、開示される実施形態によると、特定された役割は、オーナーデバイス104に関連付けられる同等の役割に相当するか、それより低くなければならない。
図2に示されるように、オーナーデバイス104は、ユーザによって入力される情報を受信し、当該情報をアクセスコントロールデータ201へとパッケージ化し得、アクセスコントロールデータ201は、上で概説されたセキュアな通信プロトコルのいずれかを使用してネットワーク122を介してコンピューティングシステム108に送信され得る。ある局面では、アクセスコントロールデータ201はさらに、コンピューティングシステム108がオーナーデバイス104および/またはオーナーデバイス104のユーザを認証することを可能にする1つ以上の認証クレデンシャル(たとえばユーザのクラウドサービスアカウントのユーザ名、パスワード、バイオメトリックデータなど)を含み得る。
コンピューティングシステム108は、オーナーデバイス104からアクセスコントロールデータ201を受信し得、1つ以上の認証クレデンシャルに基づいて、オーナーデバイス104および/またはオーナーデバイス104のユーザを認証し得る。さらに、いくつかの局面では、コンピューティングシステム108は、アクセスコントロールデータ201を解析して、新しく承認されたデバイス(たとえばクライアントデバイス106)を識別するデータと、クライアントデバイス106の承認されたアクセスの範囲を定義する1つ以上のアクセスパラメータとを取得し得る。コンピューティングシステム108は、ある実施形態において、リソースデバイス102に対応する格納されたACLの部分にアクセスし得、クライアントデバイス106を識別するデータと、さらに、クライアントデバイス106がリソースデバイス102にアクセスする能力(たとえばアップデートされたACL202を生成すること)を定義、制限および/または制約するアクセスパラメータとを含むように、アクセスされたACL部分をアップデートする。
さらに、いくつかの実施形態では、クライアントデバイス106のユーザはクラウドサービスアカウント(たとえばコンピューティングシステム108によって維持されるGoogle Cloud(商標)または別のクラウドサービス)に関連付けられ得、クライアントデバイス106は、コンピューティングシステム108によって発行される1つ以上の認証クレデンシャルをローカルに格納し得る。ある局面では、クライアントデバイス106は、(たとえばネットワーク122を介して、上で概説されたセキュアな通信プロトコルのいずれかを使用して)コンピューティングシステム108に認証データ203を送信し得る。認証データ203は、たとえば、クライアントデバイス106に発行される1つ以上の認証クレデンシャルを含み得、コンピューティングシステム108は、受信した認証クレデンシャルと、格納されたクラウドサービスアカウントデータ(たとえば有効なGAIA(商標)アカウントを識別するデータ、有効なGoogle Cloud(商標)アカウントを識別するデータなど)との比較に基づいてクライアントデバイス106を認証し得る。
受信した認証クレデンシャルが、格納されたクラウドサービスアカウントデータとマッチしない場合、コンピューティングシステム108は、フェイルした認証の試みを示す結果データ204を生成し、クライアントデバイス104に送信し得る。しかしながら、コンピューティングシステム108は、受信した認証クレデンシャルを格納されたクラウドサービスアカウントデータの部分とマッチするものであった場合、コンピューティングシステム108は、認証プロセスを成功とみなして、認証の成功を確認する結果データ204をクライアントデバイス106へ送信し得る。
認証の成功に応答して、クライアントデバイス106は、リソースデバイス102にアクセスする要求(たとえばアクセス要求205)を生成し、(たとえばネットワーク122を介して、上で概説されたセキュアな通信プロトコルのいずれかを使用して)コンピューティングシステム108に送信し得る。アクセス要求205は、いくつかの局面において、リソースデバイス102の識別子を含み得る(たとえばMACアドレス、IPアドレスなど)。他の局面において、開示される実施形態によると、アクセス要求205はデバイス固有でなくてもよく、その代わりに、オーナーデバイス104がクライアントデバイス106にアクセス権限を与えたすべてのデバイスへのアクセスを要求してもよい。上述したように、クライアントデバイス106は、上で概説されたセキュアな通信プロトコルのいずれかを使用して、コンピューティングシステム108にネットワーク122を介してアクセス要求205を送信し得る。
コンピューティングシステム108は、アクセス要求205を受信し得、リソースデバイス102への要求されたアクセスが、オーナーデバイス104によってクライアントデバイス106に与えられたアクセスのレベルと一貫しているかどうか決定し得る。たとえば、コンピューティングシステム108は、アクセス要求205を解析し、リソースデバイス102と、付加的または代替的には、クライアントデバイス106とを識別し得る。ある局面では、コンピューティングシステム108は、リソースデバイス102に対応するACLのローカルに格納されたコピーにアクセスし得、当該ACLにおけるエントリに基づいて、オーナーデバイス104がクライアントデバイス106にリソースデバイス102へのアクセスを与えたかどうか決定し得る。
コンピューティングシステム108は、ACLエントリに基づいて、そのオーナーデバイス104がクライアントデバイス106(および/またはクライアントデバイス106のユーザ)にリソースデバイス102へのアクセスを与えていなかったと決定するものであった場合、与えられたアクセスが存在しないことを示すエラーメッセージを生成し、クライアントデバイス106に送信し得る(図2に示さず)。しかしながら、コンピューティングシステム108は、オーナーデバイス104がクライアントデバイス106(および/またはクライアントデバイス106のユーザ)にリソースデバイス102へのアクセスを与えたと決定するものであった場合、クライアントデバイス106がリソースデバイス102の1つ以上の機能にアクセスする能力を一緒に促進するローカルデバイストークンおよびローカルアクセストークン(たとえば図2のローカルトークンデータ206)を生成し得る。
ある局面では、コンピューティングシステム108は、(たとえば、成功した登録プロセスの後でリソースデバイス102によって生成され、リソースデバイス102から受信されるような)マスターデバイスおよびアクセストークンの格納されたコピーにアクセスし得、マスターデバイスおよびアクセストークンのそれぞれに対する拡張(extension)に基づいて、ローカルデバイストークンおよびローカルアクセストークンを生成および「作り出し」得る。たとえば、上述したように、マスターデバイストークンはマカロンとしてフォーマットされ得、そのキャビアートは、リソースデバイス102(たとえばMACアドレスなど)の識別子と、リソースデバイス102によって生成されるランダムデータ(たとえばデバイス固有のランダムノンス(nonce))とを含み得るが、これらに限定されない。ローカルデバイストークンを生成するために、コンピューティングシステム108は、1つ以上の付加的なキャビアート(たとえばクライアントデバイス106のデバイス識別子、ランダムノンスとしての付加的なランダムデータなど)を加え、かつ、以前のタグをキーとして使用して、適切なMACアルゴリズムを当該付加的なキャビアートに再帰的に適用することにより、マスターデバイストークンを拡張し得る。
さらに例として、マスターアクセストークンもマカロンとしてフォーマットされ得、そのキャビアートは、リソースデバイスのオーナーに関連付けられる役割(たとえば最も高い利用可能な権限)、および/または、リソースデバイス102によって生成されるランダムデータ(たとえばデバイス固有のランダムノンス)を含み得るがこれらに限定されない。ある局面では、ローカルアクセストークンを生成するために、コンピューティングシステム108は、オーナーデバイス104によってリソースデバイス102へのクライアントデバイス106のアクセスに課される1つ以上の制限および/または制約を識別する付加的なキャビアート(すなわちACLに格納される1つ以上のアクセスパラメータ)を付加的なランダムデータ(たとえばランダムノンス)とともに加えることによって、マスターデバイストークンを拡張し得る。
たとえば、コンピューティングシステム108は、クライアントデバイス106がリソースデバイス102にアクセスする能力に対してオーナーデバイス104によって課される1つ以上の制限および/または制約を示すアクセスパラメータを抽出するよう、リソースデバイス102に対応するACLを処理し得る。上述したように、課された制限および制約は、失効日時、時間的な制限(たとえばアクセスについての有効な日時)、セッションベースの制約(たとえば、単一の確立された通信セッションに、委任されたアクセスを限定すること)、アクセスのタイプ(たとえば、機能の使用、設定の修正など)に対する制約、クライアントデバイス106の役割(たとえばオーナー、マネージャ、ユーザなど)、クライアントデバイス106がさらにアクセスを委任する能力(たとえば付加的なトークンを作り出すこと)、および/または、クライアントデバイス106がリソースデバイス102にオフラインで(たとえばネットワーク122へのアクセスなしで)アクセスする能力を含み得るが、これらに限定されない。その後、コンピューティングシステム108は、(たとえばマスターアクセストークンからの)以前のタグをキーとして使用して付加的なキャビアートセットに適切なMACアルゴリズムを適用することによって、ローカルアクセストークンについて新しいタグを生成し得る。
いくつかの局面では、生成されたローカルデバイスおよびアクセストークンは「短命」であり得(すなわちは1時間、1日などの期間に有効であり得)、コンピューティングシステム108は、生成されたローカルデバイスおよびアクセストークンをローカルメモリまたはデータレポジトリ内に格納し得る。さらに、開示される実施形態に係るMACアルゴリズムは、16バイトのタグ長さのHMAC−SHA256アルゴリズムと、クライアントデバイス106、リソースデバイス112およびネットワーク122に適切な他のアルゴリズムとを含み得るがこれらに限定されない。その後、コンピューティングシステム108は、生成されたローカルデバイスおよびアクセストークン(たとえばローカルトークンデータ206)を含むデータを生成し得、上で概説されたセキュアな通信プロトコルのいずれかを用いてネットワーク122を介してクライアントデバイス106にローカルトークンデータ206を送信する。いくつかの局面では、クライアントデバイス106は、ネットワーク122を介してコンピューティングシステム108からローカルトークンデータ206を受信し得、ローカルデバイスおよびアクセストークンのコピーをローカルメモリまたはデータレポジトリ内に格納し得る。
図3は、開示される実施形態に従った、リソースデバイスから1つ以上のコンピューティングデバイスにアクセスコントロールの決定を委任する例示的なプロセス300のフローチャートである。ある局面において、クラウドサーバ(たとえばコンピューティングシステム108)として動作するコンピュータシステムは、リソースデバイス(たとえばリソースデバイス102)がコンピュータコンピューティングシステム108にアクセスコントロールの決定を委任することを可能にし得るとともにリソースデバイス102のオーナーのデバイス(たとえばオーナーデバイス104)によって指定される1つ以上のクライアントデバイス(たとえばクライアントデバイス106)にリソースデバイス102にアクセスする権利を提供する例示的なプロセス300のステップを実行し得る。
いくつかの局面において、開示される実施形態によると、オーナーデバイス104は、ネットワーク124を介して動作するリソースデバイス102を発見する動作を実行し得る。たとえば、リソースデバイス102は、ネットワーク124を介して動作するデバイスに対して発見可能であり得、ネットワーク124を介して動作するデバイスに、その発見可能状態を示すアドバタイズメントデータをブロードキャスト送信し得る。ある局面では、リソースデバイス102はパブリックまたはプライベートに発見可能であり得、オーナーデバイス104は、上で記載された例示的な技術のいずれかを使用して、パブリックまたはプライベートに発見可能状態で、リソースデバイス102を発見し得る。
オーナーデバイス104のリソースデバイス102の発見の成功に応答して、コンピューティングシステム108は、リソースデバイス102を登録し、リソースデバイス102をリソースデバイス102のオーナーのクラウドサービスアカウント(たとえばGAIA(商標)アカウント、Google Cloud(商標)アカウントなど)に関連付け、付加的または代替的には、オーナーデバイス104に関連付ける動作を実行し得る(たとえばステップ302)。たとえば、オーナーデバイス104は、ネットワーク122を介するコンピューティングシステム108との通信を確立し得、コンピューティングシステム108に1つ以上の認証クレデンシャルを提供し得る(たとえばユーザ名、パスワード、バイオメトリックデータ、トークン、デジタル証明書など)。コンピューティングシステム108は、いくつかの局面において、格納された認証データ(たとえば、格納されたGAIA(商標)アカウントデータ、格納されたGoogle Cloud(商標)アカウントデータなど)に対して、受信した認証クレデンシャルを比較し得、これにより、オーナーデバイス104を認証する。
上述したように、オーナーデバイス104は、(たとえば、提示される登録テンプレートにオーナーデバイスのユーザによって入力されるデータに基づいて)コンピューティングシステム108へのリソースデバイス102の登録をサポートするデータを生成し得、オーナーデバイス104は、(たとえば、上記のセキュアな通信プロトコルのいずれかを使用して)ネットワーク122を介してコンピューティングシステム108に生成された登録データを送信し得る。生成された登録データは、リソースデバイス102、オーナーデバイス104、および/または、リソースデバイス102のオーナーに関連付けられるクラウドサービスアカウントを識別するデータを含み得るがこれらに限定されない。
コンピューティングシステム108は、ステップ302において登録データを受信し得、オーナーデバイス104、オーナーのクラウドサービスアカウント、および、リソースデバイス102にリンクされる一意登録チケット識別子を生成し得る。コンピューティングシステム108は、いくつかの場合において、生成された登録チケット識別子をローカルメモリまたはデータレポジトリに格納し得、1つ以上のセキュアな通信プロトコル(たとえばセキュアハイパーテキストトランスファプロトコル(HTTPS)など)を使用して、生成された登録チケット識別子をネットワーク122を介してオーナーデバイス104に送信し得る。
オーナーデバイス104は、コンピューティングシステム108から登録チケット識別子を受信し得、いくつかの局面において、共有されるプライベート暗号キーを使用して登録チケット識別子を暗号化し、それから、暗号化された登録チケット識別子をネットワーク124を介してリソースデバイス102に送信し得る。リソースデバイス102は、暗号化された登録チケット識別子を受信(および、適切な場合、復号化)し得、当該登録チケット識別子はローカルメモリまたはデータレポジトリに格納され得る。さらに、ある局面では、リソースデバイス102は、登録処理を完了するために、(たとえばWeaveプロトコルにかかるPrivet APIのような適切なアプリケーションプログラミングインターフェイス(API: application programming interface)への呼び出しを通じて)コンピューティングシステム108に登録チケット識別子を提供し得る。
コンピューティングシステム108は、APIを通じて登録チケット識別子を受信し得、登録チケット識別子に基づいて、(たとえばステップ302において)1つ以上の認証クレデンシャルを生成し、リソースデバイス102に発行し得る。コンピューティングシステム108は、生成および発行された認証クレデンシャルをリソースデバイス102にネットワーク122を介して送信し得、リソースデバイス102は、発行された認証クレデンシャルを受信し、ローカルメモリまたはデータレポジトリに格納し得る。さらに、発行された認証クレデンシャルに基づいて、リソースデバイス102は、ネットワーク122を介してコンピューティングシステム108とのセキュアな通信セッションを確立し得る。
付加的な局面において、リソースデバイス102の登録に応答して、コンピューティングシステム108は、リソースデバイス102についてアクセスコントロールリスト(たとえばACL)を生成しローカルに格納し得る(たとえばステップ304)。生成および格納されたACLは、たとえば、リソースデバイス102にアクセスすることを承認された1つ以上のデバイスと、オーナーデバイス104によって承認されたアクセスに課される制限および制約を定義する1つ以上のアクセスパラメータとを識別し得る。ある局面において、アクセスパラメータは、トークン失効日時、セッションベースの制約(たとえば、単一の確立した通信設定への委任されたアクセスを限定すること)、時間的制約(たとえば有効期間など)、アクセスのタイプに対する制約(たとえば、特定の機能の使用、設定の修正など)、承認されたデバイス(たとえばオーナー、マネージャ、ユーザなど)に割り当てられる役割または権限のレベル、承認されたデバイスがさらにアクセスを委任する能力(たとえばアクセスを再共有すること)、および/または、リソースデバイス102にオフラインで(たとえばネットワーク122へのアクセスなしで)アクセスするための承認されたデバイスの利用可能性を含み得るが、これらに限定されない。いくつかの場合において、コンピューティングシステム108は、生成および格納されたACLをオーナーデバイス104および/またはオーナーデバイス104に関連付けられるクラウドサービスアカウントに関連付け得、以下に記載されるように、コンピューティングシステム108は、オーナーデバイス104から受信されるアクセスコントロールデータに応答して、格納されたACLにアクセスし修正するプロセスを実行し得る。
ある局面では、リソースデバイス102は、コンピューティングデバイス108に自身のアクセスコントロールの決定を委任し得、コンピューティングデバイス108は、オーナーデバイス104によって課される制限および制約に従って、1つ以上の付加的なデバイス(たとえばクライアントデバイス106)とのアクセス権限を共有し得る。この委任を促進するために、リソースデバイス102は、(たとえば、発行された認証クレデンシャルに基づいて)コンピューティングシステム108とのセキュアな通信セッションを確立し得、(たとえば、上で概説されたセキュアな通信プロトコルのいずれかを使用して)ネットワーク122を介してコンピューティングシステム108にマスターデバイストークンおよびマスターアクセストークンのコピーを送信し得る。コンピューティングデバイス108は、いくつかの局面において、リソースデバイス102からマスターデバイスおよびアクセストークンを受信し得(たとえばステップ306)、受信したマスターデバイスおよびアクセストークンをローカルメモリまたはデータレポジトリに格納し得る。以下に記載されるように、コンピューティングシステム108は、リソースデバイス102へのアクセスを1つ以上のクライアントデバイス(たとえばクライアントデバイス106)に提供するローカルトークンを生成するよう、マスターデバイスおよび/またはアクセストークンの構造を修正し得る。
たとえば、上述したように、開示される実施形態に係るマスターデバイスおよびアクセストークンは、バイト列(たとえばキャビアート(caveat))のシーケンスと、ネスト型の態様(nested fashion)で各キャビアートにメッセージ認証コード(MAC)アルゴリズムを適用することによって再帰的に計算される認証タグ(たとえばデジタル署名)とを有するマカロン(macaroon)としてフォーマットされ得る。マスターデバイストークンのキャビアートは、リソースデバイス102(たとえばMACアドレスなど)の識別子と、リソースデバイス102によって生成されるランダムデータ(たとえばデバイス固有のランダムノンス(nonce))とを含み得るが、これらに限定されない。付加的な場合において、マスターアクセストークンのキャビアートは、たとえば、リソースデバイスのオーナーに関連付けられる役割または権限のレベル(たとえば最も高い利用可能な権限)と、デバイス固有のランダムノンスとを含み得る。さらに、トークンに適用されたデジタル署名は、いくつかの場合において、悪意のあるパーティーが傍受しキャビアートデータの部分に承認されていない修正を行い得る可能性を低減し得る。
ある局面において、コンピューティングシステム108は、オーナーデバイス104からアクセスコントロールデータ(たとえば図2のアクセスコントロールデータ201)を受信するように構成され得る(たとえばステップ308)。受信したアクセスコントロールデータはたとえば、(i)リソースデバイス102にアクセスすることを承認されたデバイス(たとえばクライアントデバイス106)を識別するとともに、(ii)クライアントデバイス106の承認されたアクセスを定義、制限および/または制約するアクセスパラメータのうちの1つ以上を特定する情報を含み得る。いくつかの場合、オーナーデバイス104のユーザは、入力として、受信したアクセスコントロールデータの少なくとも部分を、(たとえば、オーナーデバイス104によって実行されるモバイルアプリケーション、および/または、オーナーデバイス104によって提示のためにアクセスおよびレンダリングされるウェブページによって生成される)コンピューティングシステム108に関連付けられるグラフィカルユーザインターフェイス(GUI)に提供し得る。
例として、受信したアクセスコントロールデータは、クライアントデバイス106の識別子、および/または、クライアントデバイス106を操作するユーザの識別子を含み得る。さらに、上述したように、受信したアクセスコントロールデータは、セッションベースの制約と、時間的制約と、アクセスのタイプに対する制約と、役割または権限レベルと、その後の委任に対する制約と、オフラインのアクセスに関して、リソースデバイス102にアクセスするクライアントデバイス106の能力に対してオーナーデバイス104によって課される制約とを含むがこれらに限定されないアクセスパラメータを特定し得る。いくつかの場合、開示される実施形態に従うと、オーナーデバイス104のユーザによって特定される役割または権限レベルは、オーナーデバイス104の同等の権限レベルに相当するかそれより低くなければならない。付加的な局面では、受信したアクセスコントロールデータは、コンピューティングシステム108がオーナーデバイス104および/またはオーナーデバイス104のユーザを認証することを可能にする1つ以上の認証クレデンシャル(たとえばオーナーデバイス104に関連付けられるクラウドサービスアカウントのログイン名、パスワード、バイオメトリックデータなど)を含み得る。
ステップ310において、コンピューティングシステム108は、(たとえば、格納されたクラウドサービスアカウントデータに対する、受信した認証クレデンシャルの比較に基づいて)オーナーデバイス104を認証し、さらに、受信したアクセスコントロールデータを解析して、新しく承認されたデバイス(たとえばクライアントデバイス106)と、クライアントデバイス106のリソースデバイス102へのアクセスを定義、制限および/または制約する1つ以上のアクセスパラメータとを識別するように構成され得る。コンピューティングシステム108はさらに、ローカルに格納されたACLにアクセスし得、ステップ312において、クライアントデバイス106を識別するデータと1つ以上のアクセスパラメータ(たとえば図2のアップデートされたACL202)とを含むように、アクセスされたACLの少なくとも部分を修正し得る。
いくつかの局面では、クライアントデバイス106のユーザはクラウドサービスアカウント(たとえばコンピューティングシステム108によって維持されるGoogle Cloud(商標)または別のクラウドサービス)に関連付けられ得、クライアントデバイス106は、コンピューティングシステム108によって発行される1つ以上の認証クレデンシャルをローカルに格納し得る。クライアントデバイス106は、いくつかの場合、上で概説されたセキュアな通信プロトコルのいずれかを使用して、コンピューティングシステム108にネットワーク122を介して認証データ(たとえば図2の認証データ203)を送信し得る。コンピューティングシステム108は、クライアントデバイス106から認証データを受信し得(たとえばステップ314)、本願明細書において記載される例示的な技術のいずれかを使用して、受信した認証データと、格納されたクラウドサービスアカウントデータとの比較に基づいて、クライアントデバイス106を認証し得る(たとえばステップ316)。
コンピューティングシステム108は、格納されたクラウドサービスアカウントデータにクライアントデバイス106の認証クレデンシャルをマッチすることができなかった場合(たとえばステップ316においてNO)、フェイルした認証を示すエラーデータを生成し、ネットワーク122を介してクライアントデバイス106に送信し得る(たとえばステップ318)。その後、例示的なプロセス300はステップ320において完了する。
しかしながら、コンピューティングシステム108は、クライアントデバイスの認証クレデンシャルを、格納されたクラウドサービスアカウントデータの部分とマッチすることができた場合(たとえばステップ316においてYES)、認証の成功の確認を生成し、ネットワーク122を介してクライアントデバイス106に送信し得る(たとえばステップ322)。
認証の成功に応答して、クライアントデバイス106は、リソースデバイス102へのローカルアクセスの要求(たとえばアクセス要求205)を生成し、コンピューティングシステム108に送信し得る。アクセス要求205は、いくつかの局面において、リソースデバイス102およびクライアントデバイス106の識別子を含み得る(たとえばMACアドレス、IPアドレスなど)。
コンピューティングシステム108は、クライアントデバイス106からアクセス要求を受信し得(たとえばステップ324)、要求されたアクセスがオーナーデバイス104によってクライアントデバイス106に与えられたアクセスと一貫しているかどうか決定し得る(たとえばステップ326)。たとえば、コンピューティングシステム108は、ステップ326において、受信したアクセス要求を解析し、リソースデバイス102を識別し得、付加的または代替的には、クライアントデバイス106を識別し得る。コンピューティングシステム108はさらに、リソースデバイス102に対応するACLのローカルに格納されたコピーにアクセスし得、ACLのエントリに基づいて、オーナーデバイス104がクライアントデバイス106にリソースデバイス102へのアクセスを与えたかどうか決定し得る。
オーナーデバイス104がクライアントデバイス106へアクセスを与えることをフェイルした場合(たとえばステップ326においてNO)、コンピューティングシステム108は、ステップ318に戻り、与えられたアクセスが存在しないことを示すエラーデータを生成し、ネットワーク122を介してクライアントデバイス106に送信し得る。次いで、例示的なプロセス300はステップ320で完了する。
代替的には、コンピューティングシステム108は、オーナーデバイス104がリソースデバイス102へのアクセスをクライアントデバイス106に与えたと決定した場合(たとえばステップ326においてYES)、コンピューティングシステム108は、リソースデバイス102へのクライアントデバイス106のアクセスを一緒に促進するローカルデバイストークンおよびローカルアクセストークン(たとえば図2のローカルトークン206)を生成し得る(たとえばステップ328)。ある局面では、ステップ328において、コンピューティングシステム108は、(たとえば、成功した登録プロセスの後でリソースデバイス102によって生成され、リソースデバイス102から受信されるような)マスターデバイスおよびアクセストークンのローカルに格納されたコピーにアクセスし得、マスターデバイスおよびアクセストークンのそれぞれに対する拡張(extension)に基づいて、ローカルデバイストークンおよびローカルデバイストークンを生成および「作り出し」得る。
たとえば、上述したように、マスターデバイストークンはマカロンとしてフォーマットされ得、そのキャビアートは、リソースデバイス102(たとえばMACアドレスなど)の識別子と、リソースデバイス102によって生成されるランダムデータ(たとえばランダムノンス(nonce))とを含み得るが、これらに限定されない。ステップ328においてローカルデバイストークンを生成するために、コンピューティングシステム108は、1つ以上の付加的なキャビアート(たとえばクライアントデバイス106のデバイス識別子、ランダムノンスとしての付加的なランダムデータなど)を加えることにより、マスターデバイストークンを拡張し得、以前のタグをキーとして使用して、適切なMACアルゴリズムを当該付加的なキャビアートに再帰的に適用し得る。
さらに例として、マスターアクセストークンもマカロンとしてフォーマットされ得、そのキャビアートは、リソースデバイスのオーナーに関連付けられる役割または権限レベル(たとえば最も高い利用可能な権限)、および/または、リソースデバイス102によって生成されるランダムデータ(たとえばランダムノンス)を含み得るがこれらに限定されない。ある局面では、ステップ328においてローカルアクセストークンを生成するために、コンピューティングシステム108は、オーナーデバイス104によってリソースデバイス102へのクライアントデバイス106のアクセスに課される1つ以上の制限および/または制約を識別する1つ以上の付加的なキャビアート(すなわちACLに格納される1つ以上のアクセスパラメータ)を付加的なランダムデータ(たとえばランダムノンス)とともに加えることによって、マスターアクセストークンを拡張し得る。
たとえば、コンピューティングシステム108は、クライアントデバイス106がリソースデバイス102にアクセスする能力に対してオーナーデバイス104によって課される制限および/または制約を示すアクセスパラメータを抽出するよう、ローカルに格納されたACLを解析し得る。上述したように、課された制限および制約は、失効日時、時間的な制限(たとえばアクセスについての有効な日時)、セッションベースの制約(たとえば、単一の確立された通信セッションへの委任されたアクセスを限定すること)、アクセスタイプ(たとえば、使用、設定の修正など)に対する制約、クライアントデバイス106の役割(たとえばオーナー、マネージャ、ユーザなど)、クライアントデバイス106がさらにアクセスを委任する能力(たとえば付加的なトークンを作り出すこと)、および/または、クライアントデバイス106がリソースデバイス102にオフラインで(たとえばネットワーク122へのアクセスなしで)アクセスする能力を含み得るが、これらに限定されない。その後、コンピューティングデバイス108は、(たとえばマスターアクセストークンからの)以前のタグをキーとして使用して付加的なキャビアートセットに適切なMACアルゴリズムを適用することによって、ローカルアクセストークンについて新しいタグを生成し得る。
その後、コンピューティングシステム108は、上で概説されたセキュアな通信プロトコルのいずれかを使用して、生成されたローカルデバイスおよびアクセストークン(たとえば図2のローカルトークンデータ206)をネットワーク122を介してクライアントデバイス106に送信し得る(たとえばステップ330)。次いで、例示的なプロセス300はステップ320で完了する。
上記の実施形態において、コンピューティングシステム108は、クライアントデバイス106から受信されるアクセス要求に応答して、ローカルデバイスおよび/またはアクセストークンを生成するように構成され得る。他の局面において、開示される実施形態によると、コンピューティングシステム108はその代りに、特定されたまたは所定の間隔(たとえば、1時間ごと、1日ごとなど)において、または、1つ以上のイベント(たとえばオーナーデバイス104からの要求に応答したACLへの修正)の発生の検出に応答して、ローカルデバイスおよび/またはアクセストークンを作り出し格納するプロセスを実行し得る。付加的な局面において、コンピューティングシステム108はさらに、特定の時間もしくは所定時間において、または、上記のイベントのいずれかに応答して、(たとえば上記のセキュアな通信プロトコルのいずれかを使用してネットワーク122を介して)ローカルデバイスおよび/またはアクセストークンの付加的なバージョンをクライアントデバイス106に「プッシュ送信(push)」する動作を実行し得る。
ある実施形態において、上記の例示的なプロセスにより、リソースデバイス102が、コンピューティングシステム108(たとえばGoogle Cloud(登録商標)によって維持されるサーバのようなクラウドサーバ)にアクセスコントロールの決定を委任することが可能になり、コンピューティングシステム108は、オーナーデバイス104によって課される1つ以上の制限および/または制約に従って、クライアントデバイス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を暗号化し得る。しかしながら、開示される実施形態は、これらの例示的な暗号化スキームに限定されず、他の局面において、クライアントデバイス106は、キー要求データ401、クライアントデバイス106およびリソースデバイス102に適切な任意の付加的または代替的な暗号化スキームを使用して、キー要求データ401を暗号化し得る(または、代替的には、暗号化のないクリアな状態(in the clear)でキー要求データ401を送信し得る)。
いくつかの局面において、リソースデバイス102は、キー要求データ401を受信(および適切な場合、復号化)し得、ルート暗号キー、抽出されたキャビアートシーケンス、および、生成されたクライアント固有のランダムノンスへのMACアルゴリズムの再帰的な適用に基づいて、対称な暗号キーの要求された第2の値を計算し得る。たとえば、MACアルゴリズムは、16バイトのタグ長さのHMAC−SHA256アルゴリズムを含み得る。リソースデバイス102は、いくつかの場合、ルート暗号キーおよび抽出されたキャビアートシーケンスへのMACアルゴリズムの第1の適用に基づいてハッシュ値を計算し得、計算されたハッシュ値およびクライアント固有のランダムノンスへのMACアルゴリズムの第2の適用に基づいて、対称な暗号キーの第2の値を計算し得る。リソースデバイス102は、いくつかの局面において、第2の暗号キー(たとえばキー値データ402)を含むキーデータをネットワーク126を介してクライアントデバイス106に送信し得る。いくつかの場合では、上述したように、リソースデバイス102は、共有されたプライベート暗号キーを使用して、また付加的または代替的には、キー値データ402、リソースデバイス102およびクライアントデバイス106に適切な任意の他の暗号化スキームを使用して、キーデータを暗号化し得る(または、代替的には、暗号化のないクリアな状態(in the clear)でキー要求データ401を送信し得る)。
クライアントデバイス106は、キー値データ402を受信(適切な場合、復号化)して、対称な暗号キーの第2の値を取得し得る。対称な暗号キーの第2の値は、クライアントデバイス106が計算された第1の値に対して比較し得る。第1および第2の値がマッチしないとクライアントデバイス106が決定した場合、クライアントデバイス106は、リソースデバイス102へのフェイルした接続の試みを示す応答を送信し得(図4に示されない)、これにより、クライアントデバイス106との接続プロセスをキャンセルし得、ネットワーク126を介して動作する他のデバイスとの発見プロセスを開始するために、リソースデバイス102に付加的なアドバタイズメントデータをブロードキャスト送信させ得る。
代替的には、クライアントデバイス106が、対称な暗号キーの第1および第2の値の間のマッチを決定した場合、クライアントデバイス106は、リソースデバイス102の識別性を照合し得、ネットワーク126を介してリソースデバイス102とのセキュアな直接的な接続を確立し得る。ある局面において、リソースデバイス102の識別性を照合することによって(たとえばクライアントデバイス106が正しいデバイスとの接続を確立していることを照合することによって)、クライアントデバイス106は、攻撃者または悪意のあるパーティーが中間者攻撃(man-in-the-middle attack)を試みていないことを保証し得る。さらに、クライアントデバイス106およびリソースデバイス102によって計算される対称な暗号キーの第1および第2の値は、いくつかの局面において、格納されたローカルアクセストークンに従ってクライアントデバイス106がリソースデバイス102の1つ以上の機能にアクセスすることを可能にする通信を含む、確立した直接的なワイヤレス接続を介するクライアントデバイス106とリソースデバイス102との間の将来の通信を暗号化し得るセッションキー403を表わしている。
ある局面では、クライアントデバイス106は、リソースデバイス102の1つ以上の機能にアクセスする要求(たとえばローカルアクセス要求データ404)を、確立されたワイヤレス接続を介してリソースデバイス102に送信し得る。クライアントデバイス106はたとえば、要求されたローカルアクセス(たとえば範囲、タイプおよび/またはアクセスの期間)を識別するデータを含み得、さらに、格納されたローカルアクセストークンのコピーを含み得る。リソースデバイス102は、ローカルアクセス要求データ404を受信(適切な場合は復号化)し得、ローカルアクセス要求データ404を解析して、ローカルアクセストークンと、要求されたアクセスを識別するデータとを取得し得る。いくつかの局面において、リソースデバイス102は、ローカルアクセストークンおよびその示された認証チェーンの有効性を確証し得、さらに、要求されたローカルアクセスが、(たとえばコンピューティングシステム108によってローカルアクセストークンの1つ以上のキャビアートに埋め込まれているような)ローカルアクセストークン内に含まれるアクセスパラメータと一貫しているかどうか決定し得る。
たとえば、上述したように、コンピューティングシステム108は、リソースデバイス102によって生成および維持されるマスターアクセストークンの拡張に基づいて、ローカルアクセストークンを生成し得る。ある局面において、リソースデバイス102は、(たとえば、クライアントデバイス106のローカルアクセス権限を定義するアクセスパラメータを特定し得る)ローカルアクセストークンの受信したコピーからキャビアートのシーケンスを抽出し得、抽出されたキャビアートシーケンスおよび(たとえばリソースデバイス102によって生成および格納された)マスターアクセストークンにMACアルゴリズムを適用して、ローカルアクセストークンのデバイス固有のコピーを生成し得る。
受信したものと、ローカルアクセストークンのデバイス固有のコピーとがマッチする(たとえば受信したものとローカルアクセストークンのデバイス固有のコピーとのタグがマッチする)場合、リソースデバイス102は、ローカルアクセストークンの受信したコピーの有効性を確証し得る。ある局面において、決定された有効性に応答して、リソースデバイス102は、クライアントデバイス106によって要求されるアクセスが、たとえば抽出されたキャビアートシーケンスのアクセスパラメータ内で特定されるようなオーナーデバイス104によって与えられるアクセスと一貫しているかどうか決定し得る。
たとえば、リソースデバイス102は、クライアントデバイス106から受信されるアクセス要求を解析して、1つ以上の要求された機能を識別し、要求された機能へアクセスするためにクライアントデバイス106に必要とされる役割を決定または識別し得る。さらに、上述したように、リソースデバイス102は、抽出されたキャビアートシーケンスに基づいて、ローカルアクセストークンがまだ失効していない(たとえば、アクセスパラメータにおいて特定される失効日時がまだ発生していない)ことを決定し得る。リソースデバイス102はさらに、(たとえばアクセスパラメータ内で特定される役割に基づいて)クライアントデバイス106に割り当てられる役割または権限のレベルを識別し得、オーナーデバイス104によってクライアントデバイス106に課される1つ以上の付加的な制約(たとえば時間的制約、アクセスのタイプに対する制約、オフラインでの使用およびその後の委任に対する制約など)を識別し得る。
ある局面において、リソースデバイス102は、要求される機能にアクセスするのにクライアントデバイス106によって必要とされる役割が(たとえばオーナーデバイス104によって)クライアントデバイス106に割り当てられる役割と一貫しているかどうか決定し得、さらに、要求された機能は、オーナーデバイス104によって課される1つ以上の付加的な制約と一貫しているかどうか決定し得る。要求されたアクセスが割り当てられた役割および課された制約に一貫している場合、リソースデバイス102は、決定された一貫性を示すとともに要求されたアクセスの許可を確認するデータ(たとえばアクセス確認データ405)を生成し、ネットワーク126を介してクライアントデバイス106に送信し得、リソースデバイス102は、クライアントデバイス106に、要求されたアクセスを与え得る(たとえば与えられたアクセス406)。代替的には、リソースデバイス102は、要求されたアクセスが、割り当てられた役割および/または課された制約と一貫していないとみなすと、エラーメッセージ(図4に示されない)を生成し、ネットワーク126を介してクライアントデバイス106に送信し得る(たとえば、これは、要求されたアクセスを修正するようにクライアントデバイス106に促し得る)。次いで、クライアントデバイス106およびリソースデバイス102は、クライアントデバイス106のリソースデバイス102へのアクセスを促進する付加的なデータを交換し得る。
図5は、開示される実施形態に従った、リソースデバイスへのアクセスをクライアントデバイスに与えるための例示的なプロセス500のフローチャートである。ある局面では、リソースデバイス(たとえばリソースデバイス102)は、例示的なプロセス500のステップを実行し得、これにより、リソースデバイス102は、アクセスを要求するクライアントデバイス(たとえばクライアントデバイス106)とのセキュアな直接的なワイヤレス接続を確立することと、当該直接的なワイヤレス接続を介してクライアントデバイス106によってリソースデバイス102に提示されるローカルアクセストークン(たとえばローカルアクセストークン)に基づいてクライアントデバイス106にアクセスを与えることとが可能になる。
いくつかの局面では、リソースデバイス102は、クライアントデバイス106によって実行される照合動作に関連して、(たとえばステップ502において)上で記載された例示的な技術のいずれかを使用してネットワーク126を介してリソースデバイス102とクライアントデバイス106との間にセキュアかつ直接的なワイヤレス接続を確立する動作を実行し得る。たとえば上述したように、(たとえば、クライアントデバイス106によって計算されたような)対称な暗号キーのクライアント固有の値が、(たとえばリソースデバイス102によって計算されたような)対称的な暗号キーのデバイス固有の値に対応する場合、クライアントデバイス106およびリソースデバイス102は(たとえばステップ502において)一緒にネットワーク126を介してセキュアかつ直接的なワイヤレス接続を確立し得る。さらに、クライアントデバイス106およびリソースデバイス102はさらに一緒に、対称な暗号キーのクライアント固有の値およびデバイス固有の値のそれぞれをセッションキー(たとえば図4のセッションキー403)として確証し得、当該セッションキーにより、クライアントデバイス106およびリソースデバイス102は(たとえばステップ502において確立されたような)セキュアで直接的なワイヤレス接続を介してその後の通信を暗号化し得る。
いくつかの局面において、リソースデバイス102は、クライアントデバイス106から(たとえばステップ504において)確立されたワイヤレス接続を介して、リソースデバイス102の1つ以上の機能にアクセスする要求(たとえば図4のローカルアクセス要求データ404)を受信し得る。いくつかの局面では、受信した要求は、要求されたローカルアクセスを識別するデータ(たとえばアクセスの範囲、タイプおよび/または期間)を含み得、さらに、格納されたローカルアクセストークンのコピーを含み得る。
リソースデバイス102は、受信した要求を解析して、ローカルアクセストークンおよび要求されたアクセスを識別するデータの少なくとも部分を取得し得、いくつかの局面では、ローカルアクセストークンおよびその示された認証チェーンの有効性を決定し得る(たとえばステップ506)。たとえば、上述したように、コンピューティングシステム108は、リソースデバイス102によって生成および維持されるマスターアクセストークンの拡張に基づき、ローカルアクセストークンを生成し得る。リソースデバイス102は、ある局面において、ローカルアクセストークンの受信した部分から(たとえば、クライアントデバイス106のローカルアクセス権限を定義するアクセスパラメータを特定し得る)キャビアートのシーケンスを抽出し得、抽出されたキャビアートシーケンスおよび(たとえば、リソースデバイス102によって生成および格納されたような)マスターアクセストークンにMACアルゴリズムを適用して、ローカルアクセストークンの受信した部分のデバイス固有のコピーを計算し得る。さらに、リソースデバイス102は、ローカルアクセストークンの受信および計算されたコピーの比較(たとえばマカロンの形態でのローカルアクセストークンの受信および計算されたコピーのタグの比較)に基づいて、ローカルアクセストークンの有効性を決定し得る(したがって、リソースデバイス102へのアクセスを承認する有効なトークンに受信した部分が由来すると決定し得る)。ある局面では、リソースデバイス102は、ローカルに格納されたデータに基づき、ネットワーク122を介したコンピューティングシステム108との通信なしで、受信したローカルアクセストークンの有効性を決定するように構成され得る。
リソースデバイス102は、ローカルアクセストークンの受信したコピーがローカルアクセストークンの計算されたコピーとマッチしないと決定した場合(たとえばステップ506においてNO)、無効のローカルアクセストークンを示すエラーデータを生成しクライアントデバイス106に送信し得る(たとえばステップ508)。次いで、例示的なプロセス500はステップ510で完了する。
しかしながら、リソースがローカルアクセストークンの受信および計算されたコピー間でのマッチを検出した場合(たとえばステップ506においてYES)、リソースデバイス102は、ローカルアクセストークンの受信した部分が有効なトークンに由来するということを確証し得、したがって、ローカルアクセストークンの有効性を確証し得る(たとえばステップ512)。ある局面において、決定された有効性に応答して、リソースデバイス102は、たとえば、抽出されたキャビアートシーケンスのアクセスパラメータ内に特定されるように、クライアントデバイス106によって要求されるアクセスがオーナーデバイス104によって与えられるアクセスと一貫しているかどうか決定し得る(たとえばステップ514)。
たとえば、ステップ514において、リソースデバイス102は、クライアントデバイス106から受信されたアクセス要求を解析して、1つ以上の要求された機能を識別し得るとともに、さらに、要求された機能にアクセスするためにクライアントデバイス106に必要とされる役割を決定または識別し得る。さらに、リソースデバイス102は、キャビアートシーケンスの部分に基づいて、ローカルアクセストークンがまだ失効していない(たとえば、アクセスパラメータにおいて特定される失効日時がまだ発生していない)ことを決定し得る。ステップ514では、リソースデバイス102はさらに、(たとえば、アクセスパラメータ内で特定される役割に基づいて)クライアントデバイス106に割り当てられた役割または権限のレベルを識別し得、オーナーデバイス104によってクライアントデバイス106に課される1つ以上の付加的な制約(たとえば時間的制約、アクセスのタイプに対する制約、オフラインでの使用およびその後の委任に対する制約など)を識別し得る。
ある局面において、リソースデバイス102はステップ516において、要求される機能にアクセスするためにクライアントデバイス106によって必要とされる役割が(たとえばオーナーデバイス104によって)クライアントデバイス106に割り当てられた役割と一貫しているかどうかを決定し得、さらに、要求された機能が、オーナーデバイス104によって課される(たとえばアクセスパラメータ内の)付加的な制限および制約と一貫しているかどうか決定し得る。リソースデバイス102は、必要とされる役割が割り当てられた役割と一貫していない(たとえば、要求された機能が「マネージャ」の役割を必要としており、オーナーデバイスがクライアントデバイス106により低い役割である「ユーザ」を割り当てた)こと、および/または、要求された機能が課された制限および制約と一貫していないことを決定すると(たとえばステップ516においてNO)、リソースデバイス102はステップ518に戻り、エラーメッセージを生成しネットワーク126を介してクライアントデバイス106に送信し得る。次いで、例示的なプロセス500はステップ510で完了する。
代替的には、リソースデバイス102は、必要とされる役割が割り当てられた役割と一貫していると決定し、かつ、要求された機能が課された制限および制約と一貫していると決定すると(たとえばステップ516においてYES)、決定された一貫性を示し要求されたアクセスの付与を確認するデータ(たとえば図4のアクセス確認データ405)を生成し、ネットワーク126を介してクライアントデバイス106に送信し得る(たとえばステップ518)。リソースデバイス102は、要求されたアクセスをクライアントデバイス106に与え得、要求された機能へのクライアントデバイス106のアクセスを促進する付加的なデータを交換し得る(たとえばステップ520)。次いで、例示的なプロセス500はステップ510で完了する。
開示された例示的な実施形態の1つ以上を使用して、リソースデバイス102を所有またはコントロールするエンティティのデバイス(たとえばオーナーデバイス104)は、(たとえばクライアントデバイス106を通じて)1つ以上のクライアントデバイスと、リソースデバイス102へのアクセスを共有し得る。上述したように、オーナーデバイス104は、ネットワーク122を介してコンピューティングシステム108との通信を確立し得、アクセス権限を有する1つ以上のエンティティを識別するデータ(たとえばクライアントデバイス106のデバイス識別子)を提供し、これらのアクセス権限を定義する制限および/または制約を特定し得る。しかしながら、開示される実施形態は、クライアントデバイス106へのアクセス権の提供を促進するためにオーナーデバイス104とクライアントデバイス106との間の直接的なワイヤレス接続も必要とせず、また、オーナーデバイス104に対してクライアントデバイス106に自身の識別性を照合または立証させることを必要としない。さらに、上記のある実施形態において、オーナーデバイス104は、共有されたアクセス権限を示すデータにより自身を認証し、当該共有されたアクセス権限を示すデータを、オフラインまたは電源オフされ得るリソースデバイス102およびクライアントデバイス106と独立したコンピューティングシステム108に提供し得る。
さらに、上述したように、クライアントデバイス106は、ネットワーク122を介してコンピューティングシステム108に対して自身を認証し得、(たとえばオーナーデバイス104によって課されるとともにコンピューティングシステム108によって維持されるアクセスコントロールリスト(ACL)に統合される制限および/または制約に従って)リソースデバイス102へのクライアントデバイス106のアクセスを促進するローカルデバイスおよびアクセストークンを取得し得る。クライアントデバイス106は、要求を行いこれらのトークンを取得するようネットワーク122を介してコンピューティングシステム108との通信を確立し得るが、開示される実施形態は、クライアントデバイス106が要求を行いこれらのトークンを取得するためにプロセスを実行する間に、ネットワーク122への接続のないオフラインであり得るリソースデバイス102およびオーナーデバイス104に対して要件を課さない。
付加的な局面において、クライアントデバイス106およびリソースデバイス102は、リソースデバイス102の1つ以上の機能へのクライアントデバイス106のアクセスを照合および確証するために、ネットワーク126(たとえばローエナジーBLEネットワーク)を介してデータを交換し得る。開示される実施形態は、クライアントデバイス106および/またはリソースデバイス102が上記の例示的なネゴシエーションプロセスの間にネットワーク122に接続されるべきであるという要件を課さず、さらに、リソースデバイス102は、オフラインかつクライアントデバイス106、オーナーデバイス104および/またはコンピューティングシステム108との通信がない状態で、(たとえばクライアントデバイス106によって提供されるような)ローカルアクセストークンの有効性を決定し得る。
さらに、上述したように、ローカルデバイス認証およびローカルアクセストークンは、コンピューティングシステム108による生成の後すぐに失効する(たとえば生成または作り出された後の30分、1時間、1日などで失効する)「短命な」トークンを表わし得る。他の局面において、開示される実施形態によると、オーナーデバイス104は、オフラインかつネットワーク122への接続がない間、リソースデバイス102にアクセスする許可を承認されたデバイス(たとえばクライアントデバイス106)に与え得る。たとえば、コンピューティングシステム108は、対応するローカルアクセストークンのキャビアートデータの部分内において、クライアントデバイス106に与えられるオフラインアクセスを、(たとえば、上記の例示的な技術のいずれかを使用して)特定し得る。さらに、ある実施形態において、コンピューティングシステム108は、クライアントデバイス106のリソースデバイス102のオフラインアクセスを促進するために、(たとえばコンピューティングシステム108による生成の後数日、数週間あるいは数ヶ月間で失効する「長命の」トークンを生成するよう)対応するローカルアクセストークンの失効日時を遅延し得る。
さらに、ある例示的な実施形態において、オーナーデバイス104によってリソースデバイス102へのアクセスが与えられたデバイスのユーザ(たとえばクライアントデバイス106のユーザ)は、コンピューティングシステム108によって維持されるクラウドサービスのアカウント(たとえばGAIA(商標)アカウントおよび/またはGoogle Cloud(商標)アカウント)を保持し得、また、リソースデバイス102に対応するアクセスコントロールリスト(ACL)は、当該クラウドサービスアカウントにより許可される与えられたアクセスに関連付けられ得る。しかしながら、開示される実施形態は、クラウドサービスアカウントホルダーにアクセスを与えるプロセスに限定されず、さらに別の実施形態において、オーナーデバイス104は、承認されたデバイスにアクセス権限を与えるとともに承認されたデバイスのユーザによる帯域外通信メカニズムを識別するアクセスコントロールデータを送信し得、上述したようにローカルデバイスおよびアクセストークンにアクセスし得る。たとえば、帯域外通信メカニズムは、eメールアドレスまたはアカウントと、ソーシャルメディアネットワーク(たとえばFacebook(商標)、Twitter(商標)、Google+(商標)など)内のハンドルと、チャットネットワークまたはメッセージングサービス内のハンドル(たとえばWhatsApp(商標)ユーザ名)と、SMSおよび/MMSテキストメッセージを受信することができる電話番号とを含み得るがこれらに限定されない。
ある局面において、開示される実施形態によると、コンピューティングシステム108は、対応するACLの部分内において、帯域外通信メカニズムを識別するデータを統合し得る。(たとえば上記の例示的な技術のいずれかを使用した)ローカルデバイスおよび/またはアクセストークンの生成の際、コンピューティングシステム108は、ACLの部分から帯域外通信メカニズムを識別し得、ローカルデバイスおよび/またはアクセストークンにアクセスしローカルに格納する能力をクライアントデバイス106に提供するURLを生成し得、帯域外通信メカニズムに従ってクライアントデバイス106にURLを送信し得る。
たとえば、クライアントデバイス106のユーザは、(たとえばクライアントデバイス106のディスプレイユニット内でのタッチ、クリックなどによって)URLをアクティベートし得、クライアントデバイス106は、ローカルデバイスおよび/またはアクセストークンのコピーを取得し得る。他の場合、クライアントデバイス106によって実行されるアプリケーションプログラム(たとえばAndroid(商標)のためのCroissant(商標))は、受信したURLを自動的に認識し、ユーザの介在なしでバックグラウンドでローカルデバイスおよび/またはアクセストークンをフェッチし得る。いくつかの局面において、コンピューティングシステム108は、帯域外通信メカニズムによって抽出されるローカルデバイスおよび/またはアクセストークンに対して、より短い有効期間と、クライアントデバイス106によるアクセスの試みの回数に対する制限とを含む付加的な制約を課し得る。
さらに、ある局面では、リソースデバイス102は、(たとえば、オーナーのオプトアウトにより)ネットワーク122を介してコンピューティングシステム108に接続され得ず、付加的または代替的には、(たとえばスマートロックなどのようなローパワーデバイスにおいて起こり得るように)ネットワーク122にアクセス不能であり得る。ネットワーク122へのアクセスが存在しない場合、リソースデバイス102はコンピューティングシステム108にアクセスコントロールの決定を委任不可能であり得、さらに、システム108上にマスターデバイスおよび/またはアクセストークンを格納不可能であり得るか、または、コンピューティングシステム108がマスターデバイスおよび/もしくはアクセストークンに基づいて付加的なローカルトークンを作り出すことを要求不可能であり得る。
付加的な実施形態では、ネットワーク122へのアクセスが存在しない場合、リソースデバイス102は、オーナーデバイス104(付加的または代替的にはオーナーデバイス104によって特定される別のデバイス)にアクセスコントロールの決定を委任し得、オーナーデバイス104は、(たとえば、上記の例示的な発見プロセスの後ネットワーク124を介して送信されたような)マスターデバイスおよび/またはアクセストークンのコピーを維持し得る。付加的な局面において、オーナーデバイス104は、アクセスコントロールリストを確証、維持、および/または、アップデートし得、リソースデバイスへアクセスするための要求をクライアントデバイス106から受信し得、上記の例示的なプロセスのいずれかを使用して、さらにローカルデバイスおよび/またはアクセストークンを生成または作り出し得る。
たとえば、開示される実施形態により、オーナーデバイス104は、任意の適切な帯域外通信メカニズムを使用して、作り出されたローカルデバイスおよび/またはアクセストークンを承認されたデバイス(たとえばクライアントデバイス106)と共有することが可能になる。たとえば、オーナーデバイス104は、格納されたローカルデバイスおよび/またはアクセストークンを表すBLOBおよび/またはURLを生成し得、任意の帯域外通信チャネルを使用してBLOBおよび/またはURLを送信し得る(たとえばテキストメッセージ、eメールメッセージ、直接的なチャットメッセージ、ソーシャルメディアメッセージングなど)。クライアントデバイス106は、BLOBおよび/またはURLを受信し得、受信したBLOBおよび/またはURLを処理して、ローカルデバイスおよび/またはアクセストークンを取得しローカルメモリまたはデータレポジトリに格納し得る(たとえばユーザ介在を通じてまたはプログラムによって)。開示される実施形態は、暗号化されていない帯域外通信チャネルを介してBLOBおよび/またはURLを送信することにより、存在するトランスポートメカニズムを暗黙的に信頼し得る。
さらに、上記のある実施形態において、リソースデバイス102は、強力なクラウドベースの認証に依拠する(たとえば、Google Cloud(商標)のようなクラウドサービスを維持する)コンピューティングシステム108へアクセスコントロールの決定を委任する。他の局面において、開示される実施形態によると、リソースデバイス102は、サードパーティ機構にこれらのアクセスコントロールの決定を委任し得、当該サードパーティ機構は、(たとえばリソースデバイス102から受信されるような)マスターデバイスおよび/またはアクセストークンを格納し得るとともに、新しいより制限されたトークンを生成して、上記の例示的なプロセスのいずれかを使用してさまざまなトランスポートを通じてそれらを共有し得る。ある局面では、サードパーティ認証機構は、トークン生成、トークン寿命および範囲に対するコントロールを行い得る。
多くの例示的な実施形態が記載された。しかしながら、本開示の精神および範囲から逸脱することなくさまざまな変更がなされ得ることが理解されるであろう。たとえば、ステップが再順序付けされるか、加えられるか、または、除去された状態で、上に示されたフローのさまざまな形態が使用されてもよい。
この明細書に記載される実施形態および機能的な動作のすべては、この明細書において開示される構造およびそれらの構造的等価物またはそれらの1つ以上の組み合わせを含むデジタル電子回路またはコンピュータソフトウェア、ファームウェアもしくはハードウェアにおいて、実現され得る。実施形態は、1つ以上のコンピュータプログラムプロダクトとして実現され得る。すなわち、データ処理装置による実行またはデータ処理装置の動作の制御のためにコンピュータ読取可能媒体上でエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実現され得る。コンピュータ読取可能媒体は、マシン読取可能なストレージデバイス、マシン読取可能なストレージ基板、メモリデバイス、マシン読取可能な伝播信号に影響を与える物質の組成、または、それらの1つ以上の組み合わせであり得る。コンピュータ読取可能媒体は一時的でないコンピュータ読取可能媒体であり得る。「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータまたは複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての装置、デバイスおよびマシンを包含する。装置は、ハードウェアに加えて、対象のコンピュータプログラムのための実行環境を作り出すコードを含み得、当該コードの例としては、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステムまたはそれらの1つ以上の組み合わせを構成するコードがある。伝播信号は、人為的に生成された信号であり、たとえば、好適な受信装置への送信のために情報をエンコードするように生成される、マシンにより生成される電気信号、光学信号または電磁気信号である。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても公知)は、コンパイルされた言語あるいは解釈された(interpreted)言語を含む任意の形態のプログラミング言語で記述され得、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、もしくは、コンピューティング環境において使用するのに好適な他のユニットとして、任意の形態で展開され得る。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、対象のプログラムに専用の単一のファイルにおいて、または、複数の協調されたファイル(たとえばコードの1つ以上のモジュール、サブプログラムもしくは部分を格納するファイル)において、他のプログラムまたはデータ(たとえば、マークアップ言語文書に格納される1つ以上のスクリプト)を保持するファイルの部分に格納され得る。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開され得るか、または、1つのサイトに位置しているかもしくは複数のサイトにわたって分散され通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開され得る。
この明細書に記載されるプロセスおよびロジックフローは、入力データについて動作し出力を生成するによって、機能を実行するよう1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行され得る。プロセスおよびロジックフローはさらに、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)のような特殊目的のロジック回路によって実行され得、装置も当該特殊目的のロジック回路によって実現され得る。
コンピュータプログラムの実行に好適であるプロセッサは、例として、汎用マイクロプロセッサおよび特殊目的マイクロプロセッサの両方を含んでおり、さらに、任意の種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含んでいる。一般に、プロセッサは、リードオンリメモリ、ランダムアクセスメモリ、または、その両方から命令およびデータを受信する。コンピュータの必須の要素は、命令を実行するためのプロセッサと、命令およびデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータは、たとえば磁気ディスク、光磁気ディスクまたは光ディスクといったデータを格納するための1つ以上のマスストレージデバイスを含むか、または、当該マスストレージデバイスからデータを受信するか、当該マスストレージデバイスへデータを搬送するか、もしくは、その両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、たとえばタブレットコンピュータ、携帯電話、携帯情報端末(PDA)、モバイルオーディオプレイヤー、グローバルポジショニングシステム(GPS)レシーバーといった別のデバイスに埋め込まれてもよい。コンピュータプログラム命令およびデータを格納するのに好適なコンピュータ読取可能媒体は、例として、たとえばEPROM、EEPROMおよびフラッシュメモリデバイスといった半導体メモリデバイスと、たとえば内部ハードディスクまたはリムーバブルディスクといった磁気ディスクと、光磁気ディスクと、CD−ROMおよびDVD−ROMディスクとを含むすべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用ロジック回路によって補足または専用ロジック回路に統合され得る。
ユーザとのインタラクションを提供するために、実施形態は、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、タッチスクリーンディスプレイなどの情報をユーザに表示するためのディスプレイデバイスと、ユーザが入力をコンピュータに提供し得るキーボードおよびたとえばマウスまたはトラックボールのようなポインティングデバイスとを有するコンピュータ上で実現され得る。他の種類のデバイスは同様に、ユーザとのインタラクションを提供するために使用され得、たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックといった任意の形態の感覚フィードバックであり得、ユーザからの入力は、音響入力、スピーチ入力、または触覚入力を含む任意の形態で受信され得る。
実施形態は、バックエンドコンポーネントをたとえばデータサーバとして含むコンピューティングシステムにおいて実現され得るか、または、たとえばアプリケーションサーバといったミドルウェアコンポーネントを含むコンピューティングシステムにおいて実現され得るか、または、たとえば、ユーザが開示された技術の実現例とインタラクションする際に使用可能なグラフィックユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータといったフロントエンドコンポーネントを含むコンピューティングシステムにおいて実現され得るか、または、そのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの1つ以上の任意の組合せを含むコンピューティングシステムにおいて実現され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信(たとえば通信ネットワーク)によって相互に接続され得る。通信ネットワークの例として、ローカルエリアネットワーク(「LAN」)、および、たとえばインターネットのようなワイドエリアネットワーク(「WAN」)が挙げられる。
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いにリモートであり、典型的に通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
さらに、ここで議論されるシステムが、ユーザに関する個人情報を収集するか、または、個人情報を利用し得る状況の場合、ユーザには、たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザのプレファレンス、または、ユーザの現在の場所に関する情報のような個人情報をプログラムまたは機能が収集するかどうかをコントロールするために機会が提供され得るか、または、ユーザにより関連するコンテンツサーバからコンテンツを受信するかどうかおよび/もしくはユーザにより関連するコンテンツサーバからコンテンツをどのように受信するかをコントロールするために機会が提供され得る。さらに、あるデータは、格納または使用される前に、1つ以上の態様で匿名化され得るので、個人を識別可能な情報が除去される。たとえば、ユーザについて個人が識別可能である情報を決定することができないようにユーザの識別性が匿名化され得るか、または、ユーザの特定の位置が決定され得ないように位置情報がどこで得られるユーザの地理的な位置が(たとえば都市、郵便番号または州レベルまで)一般化され得る。したがって、ユーザは、自身に関して情報がどのように収集されコンテンツサーバによって使用されるかについてコントロールを有し得る。
この明細書は多くの詳細を含んでいるが、これらは限定として解釈されるべきでなく、むしろ特定の実施形態に特有の特徴の記載として解釈されるべきである。別個の実施形態の文脈でこの明細書において記載されるある特徴も、単一の実施形態において組み合わせて実現され得る。反対に、単一の実施形態の文脈で記載されるさまざまな特徴も、別々にあるいは任意の好適なサブコンビネーションで、複数の実施形態において実現され得る。さらに、特徴は、ある組み合わせにおいて作用するように記載され、最初はそういうものとして特許請求されている場合があるが、特許請求された組み合わせのうちの1つ以上の特徴が、ある場合において、当該組み合わせから削除され得、特許請求された組み合わせは、サブコンビネーションあるいはサブコンビネーションの変形に向けられ得る。
同様に、動作は図面において特定の順序で示されているが、これは、そのような動作は示された特定の順序あるいはシーケンシャルな順序で実行される必要があると理解されるべきではなく、または、望ましい結果を達成するためにすべての示された動作が実行される必要があると理解されるべきではない。ある状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上に記載された実施形態におけるさまざまなシステムコンポーネントの分離は、すべての実施形態においてそのような分離が必要であると理解されるべきでなく、記載されたプログラムコンポーネントおよびシステムは一般に、単一のソフトウェアプロダクトに一緒に統合されてもよく、または、複数のソフトウェアプロダクトにパッケージングされてもよいということが理解されるべきである。
このように、特定の実施形態が記載された。他の実施形態は添付の請求の範囲内にある。たとえば、請求の範囲において記載されるアクションは、異なる順序で実行されてもよく、それでも望ましい結果を達成し得る。
図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は、コンピューティングデバイス600内で実行される命令を処理可能であり、この命令には、GUIのためのグラフィック情報を高速インターフェイス608に結合されているディスプレイ616などの外部入出力デバイス上に表示するためにメモリ604内またはストレージデバイス606上に格納されている命令が含まれる。他の実現例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数種類のメモリとともに必要に応じて用いられ得る。また、複数のコンピューティングデバイス600が接続され得、各デバイスは(たとえばサーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部を提供する。
メモリ604は情報をコンピューティングデバイス600内に格納する。一実現例では、メモリ604は1つまたは複数の揮発性メモリユニットである。別の実現例では、メモリ604は1つまたは複数の不揮発性メモリユニットである。また、メモリ604は、磁気ディスクまたは光ディスクといった別の形態のコンピュータ読取可能媒体であってもよい。
ストレージデバイス606は、コンピューティングデバイス600にマスストレージを提供可能である。一実現例では、ストレージデバイス606は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他のコンフィギュレーションにおけるデバイスを含む多数のデバイスといった、コンピュータ読取可能媒体であってもよく、または当該コンピュータ読取可能媒体を含んでいてもよい。コンピュータプログラムプロダクトが情報媒体内に有形に具体化され得る。また、コンピュータプログラムプロダクトは、実行されると上述のような1つ以上の方法を実行する命令を含み得る。情報媒体は、メモリ604、ストレージデバイス606、またはプロセッサ602上のメモリといった、コンピュータ読取可能媒体またはマシン読取可能媒体である。
高速コントローラ608はコンピューティングデバイス600のための帯域幅集約的な動作を管理するのに対して、低速コントローラ612はより低い帯域幅集約的な動作を管理する。そのような機能の割当ては例示に過ぎない。一実現例では、高速コントローラ608はメモリ604、ディスプレイ616に(たとえばグラフィックスプロセッサまたはアクセラレータを介して)、およびさまざまな拡張カード(図示せず)を受付け得る高速拡張ポート610に結合される。当該実現例では、低速コントローラ612はストレージデバイス606および低速拡張ポート614に結合される。さまざまな通信ポート(たとえばUSB、ブルートゥース、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータといったネットワーキングデバイスなどの1つ以上の入出力デバイスに、たとえばネットワークアダプタを介して結合され得る。
コンピューティングデバイス600は、図に示すように多数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス600は標準的なサーバ620として、またはそのようなサーバのグループ内で複数回実現されてもよい。また、コンピューティングデバイス600はラックサーバシステム624の一部として実現されてもよい。さらに、コンピューティングデバイス600はラップトップコンピュータ622などのパーソナルコンピュータにおいて実現されてもよい。代替的には、コンピューティングデバイス600からのコンポーネントは、デバイス650などのモバイルデバイス(図示せず)内の他のコンポーネントと組合されてもよい。そのようなデバイスの各々がコンピューティングデバイス600,650の1つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイス600,650で構成されてもよい。
コンピューティングデバイス650は、数あるコンポーネントの中でも特に、プロセッサ652、メモリ664、ディスプレイ654などの入出力デバイス、通信インターフェイス666、およびトランシーバ668を含む。また、デバイス650には、マイクロドライブまたは他のデバイスなどのストレージデバイスが提供されて付加的なストレージが提供されてもよい。コンポーネント650,652,664,654,666および668の各々はさまざまなバスを用いて相互に接続されており、当該コンポーネントのいくつかは共通のマザーボード上にまたは他の態様で適宜搭載され得る。
プロセッサ652は、メモリ664に格納されている命令を含む、コンピューティングデバイス650内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。さらに、プロセッサは、多くのアーキテクチャのうちのいずれかを使用して実現され得る。たとえば、プロセッサ410は、CISC(Complex Instruction Set Computers(複雑命令セットコンピュータ))プロセッサ、RISC(Reduced Instruction Set Computer(簡略化命令セットコンピュータ))プロセッサ、または、MISC(Minimal Instruction Set Computer(最小命令セットコンピュータ))プロセッサであり得る。プロセッサは、たとえば、ユーザインターフェイス、デバイス650が実行するアプリケーション、およびデバイス650による無線通信の制御といった、デバイス650の他のコンポーネントの協調を提供し得る。
プロセッサ652は、ディスプレイ654に結合された制御インターフェイス658およびディスプレイインターフェイス656を介してユーザと通信し得る。ディスプレイ654は、たとえば、TFTディスプレイ(薄膜トランジスタ液晶ディスプレイ)もしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイス656は、ディスプレイ654を駆動してグラフィックおよび他の情報をユーザに提示するための適切な回路を含み得る。制御インターフェイス658はユーザからコマンドを受信し、当該コマンドをプロセッサ652に提出するために変換し得る。さらに、外部インターフェイス662が、デバイス650と他のデバイスとの隣接通信を可能にするために、プロセッサ652と通信した状態で提供されてもよい。外部インターフェイス662は、たとえば、ある実現例では有線通信を提供し、他の実現例では無線通信を提供してもよく、また、複数のインターフェイスが用いられてもよい。
メモリ664は情報をコンピューティングデバイス650内に格納する。メモリ664は、1つもしくは複数のコンピュータ読取可能媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットの1つ以上として実現され得る。さらに、拡張メモリ674が提供され、たとえばSIMM(Single In Line Memory Module)カードインターフェイスを含み得る拡張インターフェイス672を介してデバイス650に接続されてもよい。このような拡張メモリ674はデバイス650に余分のストレージスペースを提供し得るか、またはデバイス650のためのアプリケーションもしくは他の情報をさらに格納し得る。具体的には、拡張メモリ674は上述のプロセスを実行または補足するための命令を含み得、さらにセキュアな情報を含み得る。ゆえに、たとえば、拡張メモリ674はデバイス650のためのセキュリティモジュールとして提供されてもよく、デバイス650のセキュアな使用を許可する命令でプログラムされてもよい。さらに、ハッキング不可能なようにSIMMカード上に識別情報を置くといったように、セキュアなアプリケーションが付加的な情報とともにSIMMカードを介して提供されてもよい。
メモリは、以下に記載のように、たとえばフラッシュメモリおよび/またはNVRAMメモリを含み得る。一実現例では、コンピュータプログラムプロダクトが情報媒体内に有形に具体化される。コンピュータプログラムプロダクトは、実行されると上述のような1つ以上の方法を実行する命令を含む。情報媒体は、メモリ664、拡張メモリ674、またはプロセッサ652上のメモリといった、コンピュータ読取可能媒体またはマシン読取可能媒体であり、これは、たとえばトランシーバ668または外部インターフェイス662上で受信され得る。
デバイス650は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス666を介して無線通信し得る。通信インターフェイス666は、とりわけ、GSM(登録商標)音声通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSといった、さまざまなモードまたはプロトコル下の通信を提供し得る。そのような通信は、たとえば無線周波数トランシーバ668を介して起こり得る。さらに、ブルートゥース、Wi−Fi、または他のそのようなトランシーバ(図示せず)を用いるなどして、短距離通信が起こり得る。さらに、GPS(全地球測位システム)レシーバモジュール670が付加的なナビゲーション関連および位置関連の無線データをデバイス650に提供し得、当該データはデバイス650上で実行されるアプリケーションによって適宜用いられ得る。
また、デバイス650は、ユーザから口頭情報を受信して当該情報を使用可能なデジタル情報に変換し得る音声コーデック660を用いて可聴的に通信し得る。音声コーデック660も同様に、たとえばデバイス650のハンドセット内で、スピーカを介すなどしてユーザに可聴音を生成し得る。そのような音は音声電話からの音を含んでいてもよく、録音された音(たとえば音声メッセージ、音楽ファイル等)を含んでいてもよく、さらに、デバイス650上で実行されるアプリケーションが生成する音を含んでいてもよい。
コンピューティングデバイス650は、図に示すように多数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス650はセルラー電話680として実現されてもよい。また、コンピューティングデバイス650は、スマートフォン682、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
本明細書に記載のシステムおよび技術のさまざまな実現例は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現され得る。これらのさまざまな実現例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実現例を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するように、かつこれらにデータおよび命令を送信するように結合されている。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても公知)はプログラマブルプロセッサのためのマシン命令を含んでおり、高レベル手続きおよび/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/マシン言語で実現され得る。本明細書において使用する「マシン読取可能媒体」、「コンピュータ読取可能媒体」という用語は、マシン命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意のコンピュータプログラムプロダクト、装置および/またはデバイス(たとえば磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、マシン命令をマシン読取可能信号として受信するマシン読取可能媒体を含む。「マシン読取可能信号」という用語は、マシン命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意の信号を指す。
ユーザとのインタラクションを提供するために、本明細書に記載のシステムおよび技術は、情報をユーザに表示するためのディスプレイデバイス(たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザが入力をコンピュータに提供する際に使用可能なキーボードおよびポインティングデバイス(たとえばマウスまたはトラックボール)とを有するコンピュータ上で実現され得る。他の種類のデバイスを用いてユーザとのインタラクションを提供することもでき、たとえば、ユーザに提供されるフィードバックは任意の形態の感覚フィードバック(たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であり得、ユーザからの入力は、音響入力、スピーチ入力、または触覚入力を含む任意の形態で受信され得る。
本明細書に記載のシステムおよび技術は、バックエンドコンポーネントを(たとえばデータサーバとして)含むコンピューティングシステムにおいて実現され得るか、またはミドルウェアコンポーネント(たとえばアプリケーションサーバ)を含むコンピューティングシステムにおいて実現され得るか、またはフロントエンドコンポーネント(たとえば、ユーザが上記のシステムおよび技術の実現例とインタラクションする際に使用可能なグラフィックユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステムにおいて実現され得るか、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実現され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信(たとえば通信ネットワーク)によって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、(アドホックまたはスタティックメンバーを有する)ピアツーピアネットワーク、グリッドコンピューティングインフラストラクチャ、および、インターネットを含む。
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いにリモートであり、典型的に通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
本発明の多数の実施形態を説明した。しかしながら、本発明の精神および範囲から逸脱することなくさまざまな変更がなされ得ることが理解されるであろう。たとえば、ステップが再順序付けされるか、加えられるか、または、除去された状態で、上に示されたフローのさまざまな形態が使用されてもよい。さらにローカルデバイス認証のいくつかの適用例が記載されたが、多数の他の適用例が考えられるということが認識されるべきである。したがって、他の実施形態も添付の請求の範囲内にある。

Claims (69)

  1. コンピュータによって実現される方法であって、
    装置の1つ以上のプロセッサによって、リソースデバイスについてのマスターアクセストークンを取得することと、
    前記1つ以上のプロセッサによって、クライアントデバイスに関連付けられるユーザを識別することと、
    前記1つ以上のプロセッサによって、前記ユーザが前記リソースデバイスへの制限のあるアクセスを受けることを承認されていることを決定することと、
    前記決定することに応答して、前記1つ以上のプロセッサによって、前記マスターデバイストークンに基づいてローカルアクセストークンを生成することとを含み、前記ローカルアクセストークンは、前記リソースデバイスがネットワーク接続を有することを必要とすることなく、前記リソースデバイスへのアクセスを与えるように構成されており、さらに
    前記1つ以上のプロセッサによって、前記リソースデバイスについての前記ローカルアクセストークンを前記クライアントデバイスに提供することを含む、方法。
  2. 前記決定することは、前記リソースデバイスのオーナー、または、前記リソースデバイスへのアクセスをコントロール可能なエンティティのうちの少なくとも一方によって、前記ユーザが前記リソースデバイスへの前記制限のあるアクセスを受けることを承認されていることを決定することを含む、請求項1に記載の方法。
  3. 前記識別することは、前記リソースデバイスへの前記制限のあるアクセスを取得するための要求を前記クライアントデバイスから受信することを含み、前記要求は、前記ユーザの識別子または前記クライアントデバイスの識別子のうちの少なくとも1つを含んでおり、
    前記識別することはさらに、前記要求に応答して、前記リソースデバイスについての前記ローカルアクセストークンを前記クライアントデバイスに提供することを含む、請求項1または請求項2に記載の方法。
  4. 前記方法はさらに、
    受信した前記要求の少なくとも部分に基づいて前記クライアントデバイスを識別することと、
    前記クライアントデバイスが前記リソースデバイスへの前記制限のあるアクセスを受けることを承認されていることを決定することとを含み、
    前記生成することは、前記クライアントデバイスが前記制限のあるアクセスを受けることを承認されていることを決定することに応答して、前記ローカルアクセストークンを生成することを含む、請求項3に記載の方法。
  5. 前記リソースデバイスについてのアクセスコントロールリストを取得することをさらに含み、前記アクセスコントロールリストは、前記リソースデバイスへの対応する制限のあるアクセスを受けることを承認されている1人以上のユーザを識別する、請求項1に記載の方法。
  6. 前記装置は、ローカルメモリに前記アクセスコントロールリストを格納するように構成される、請求項5に記載の方法。
  7. 前記決定することは、
    前記1人以上の承認されているユーザが、前記クライアントデバイスに関連付けられる前記ユーザを含むということを、前記アクセスコントロールリストに基づいて決定することと、
    前記1人以上の承認されているユーザが前記ユーザを含むということを決定することに応答して、前記クライアントデバイスの前記ユーザが前記制限のあるアクセスを受けることを承認されていることを確証することとを含む、請求項5または請求項6に記載の方法。
  8. 前記方法はさらに、オーナーデバイスからアクセスコントロールデータを受信することを含み、前記オーナーデバイスは前記リソースデバイスのオーナーに関連付けられており、前記アクセスコントロールデータは、前記ユーザが前記リソースデバイスへの前記制限のあるアクセスを受けることを承認しており、
    前記方法はさらに、前記クライアントデバイスの前記ユーザを承認されたユーザであると識別するために前記アクセスコントロールリストの少なくとも部分を修正することを含む、請求項5〜7のいずれか1項に記載の方法。
  9. 前記アクセスコントロールデータはアクセスパラメータを含み、前記アクセスパラメータは、前記ユーザに与えられる前記制限のあるアクセスの範囲を確証し、
    前記方法はさらに、前記アクセスパラメータを含むように前記アクセスコントロールリストの少なくとも部分を修正することを含む、請求項8に記載の方法。
  10. 前記アクセスパラメータは、前記ユーザに割り当てられる役割、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、前記クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含む、請求項9に記載の方法。
  11. 前記アクセスコントロールリストは、前記ユーザに関連付けられる1つ以上のアクセスパラメータを識別しており、前記アクセスパラメータは、前記ユーザに割り当てられる役割、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、前記クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含む、請求項5に記載の方法。
  12. 前記ローカルアクセストークンはマカロンを含み、前記マカロンは、1つ以上のキャビアートと、対応するキーとを含み、
    前記生成することは、
    前記アクセスコントロールリストに基づいて、前記ユーザに関連付けられる前記アクセスパラメータを識別することと、
    前記ローカルアクセストークンについての失効時間を確証することと、
    前記失効時間および識別された前記アクセスパラメータを前記ローカルアクセストークンの前記1つ以上のキャビアート内に統合する動作を実行することとを含む、請求項11に記載の方法。
  13. 前記ユーザの前記ローカルアクセストークンについて確証される前記失効時間を統合するように前記アクセスコントロールリストの少なくとも部分を修正することをさらに含む、請求項12に記載の方法。
  14. 前記ローカルアクセストークンは、前記クライアントデバイスに関連付けられる前記ユーザまたは前記クライアントデバイスのうちの少なくとも一方を識別するデータを含んでおり、
    前記生成することは、前記ローカルアクセストークンにデジタル署名を適用することを含む、請求項1〜7のいずれか1項に記載の方法。
  15. 前記ローカルアクセストークンはマカロンを含み、前記マカロンは、1つ以上のキャビアートと、対応するキーとを含み、
    前記対応するキーは、適用される前記デジタル署名を含んでおり、
    前記生成することはさらに、前記1つ以上のキャビアートの少なくとも部分へのMACアルゴリズムの適用に基づき、前記デジタル署名を生成することを含む、請求項14に記載の方法。
  16. 前記1つ以上のキャビアートは、前記トークンの失効日時、前記ユーザに割り当てられる役割、または、前記ユーザもしくは前記クライアントデバイスのうちの少なくとも一方を識別する前記データのうちの少なくとも1つを含む、請求項15に記載の方法。
  17. 前記ローカルアクセストークンはデジタル証明書を含む、請求項1〜11のいずれか1項に記載の方法。
  18. 前記取得することは、前記リソースデバイスから前記マスターアクセストークンを受信することを含み、
    前記生成することは、受信した前記マスターアクセストークンの少なくとも部分に基づいて前記ローカルアクセストークンを生成することを含む、請求項1〜7のいずれか1項に記載の方法。
  19. 前記マスターアクセストークンは第1のマカロンを含み、前記第1のマカロンは、1つ以上の第1のキャビアートと、対応する第1のキーとを含み、
    前記ローカルアクセストークンは第2のマカロンを含み、前記第2のマカロンは、1つ以上の第2のキャビアートと、対応する第2のキーとを含む、請求項18に記載の方法。
  20. 前記ローカルアクセストークンを生成することは、前記1つ以上の第2のキャビアートを生成することを含み、
    前記第2のキャビアートの第1の部分は前記第1のキャビアートを含み、
    前記第2のキャビアートの第2の部分は、前記ローカルアクセストークンの失効日時と、前記ユーザの前記制限のあるアクセスに関連付けられる1つ以上のアクセスパラメータとを含み、前記アクセスパラメータは、前記ユーザに割り当てられる役割、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、前記クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含む、請求項19に記載の方法。
  21. 前記リソースデバイスからマスターデバイストークンを受信することをさらに含み、前記マスターデバイストークンは、前記クライアントデバイスが前記リソースデバイスの識別性を照合することを可能にし、さらに、
    前記決定することに応答して、前記マスターデバイストークンの少なくとも部分に基づいてローカルデバイストークンを生成することと、
    前記クライアントデバイスに前記ローカルデバイストークンを提供することとを含む、請求項1に記載の方法。
  22. 少なくとも1つのプロセッサと、
    実行可能な命令を格納するメモリとを含み、
    前記命令は、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
    リソースデバイスについてのマスターアクセストークンを取得するステップと、
    クライアントデバイスに関連付けられるユーザを識別するステップと、
    前記ユーザが前記リソースデバイスへの制限のあるアクセスを受けることを承認されていることを決定するステップと、
    前記決定することに応答して、前記マスターデバイストークンに基づいてローカルアクセストークンを生成するステップとを行わせ、前記ローカルアクセストークンは、前記リソースデバイスがネットワーク接続を有することを必要とすることなく、前記リソースデバイスへのアクセスを与えるように構成されており、
    前記命令はさらに、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
    前記リソースデバイスについての前記ローカルアクセストークンを前記クライアントデバイスに提供するステップを実行させる、装置。
  23. 前記少なくとも1つのプロセッサはさらに、前記リソースデバイスのオーナー、または、前記リソースデバイスへのアクセスをコントロール可能なエンティティのうちの少なくとも一方によって、前記ユーザが前記リソースデバイスへの前記制限のあるアクセスを受けることを承認されていることを決定するステップを実行する、請求項22に記載の装置。
  24. 前記少なくとも1つのプロセッサはさらに、前記リソースデバイスへの前記制限のあるアクセスを取得するための要求を前記クライアントデバイスから受信するステップを実行し、前記要求は、前記ユーザの識別子または前記クライアントデバイスの識別子のうちの少なくとも1つを含んでおり、
    前記少なくとも1つのプロセッサはさらに、前記要求に応答して、前記リソースデバイスについての前記ローカルアクセストークンを前記クライアントデバイスに提供するステップを実行する、請求項22または請求項23に記載の装置。
  25. 前記少なくとも1つのプロセッサはさらに、
    受信した前記要求の少なくとも部分に基づいて前記クライアントデバイスを識別するステップと、
    前記クライアントデバイスが前記リソースデバイスへの前記制限のあるアクセスを受けることを承認されていることを決定するステップと、
    前記クライアントデバイスが前記制限のあるアクセスを受けることを承認されていることを決定することに応答して、前記ローカルアクセストークンを生成するステップとを実行する、請求項24に記載の装置。
  26. 前記少なくとも1つのプロセッサはさらに、前記リソースデバイスについてのアクセスコントロールリストを取得するステップを実行し、前記アクセスコントロールリストは、前記リソースデバイスへの対応する制限のあるアクセスを受けることを承認されている1人以上のユーザを識別する、請求項22に記載の装置。
  27. 前記装置は、ローカルメモリに前記アクセスコントロールリストを格納するように構成される、請求項26に記載の装置。
  28. 前記少なくとも1つのプロセッサはさらに、
    前記1人以上の承認されているユーザが、前記クライアントデバイスに関連付けられる前記ユーザを含むということを、前記アクセスコントロールリストに基づいて決定するステップと、
    前記1人以上の承認されているユーザが前記ユーザを含むということを決定することに応答して、前記クライアントデバイスの前記ユーザが前記制限のあるアクセスを受けることを承認されていることを確証するステップとを実行する、請求項26または請求項27に記載の装置。
  29. 前記少なくとも1つのプロセッサはさらに、オーナーデバイスからアクセスコントロールデータを受信するステップを実行し、前記オーナーデバイスは前記リソースデバイスのオーナーに関連付けられており、前記アクセスコントロールデータは、前記ユーザが前記リソースデバイスへの前記制限のあるアクセスを受けることを承認しており、
    前記少なくとも1つのプロセッサはさらに、前記クライアントデバイスの前記ユーザを承認されたユーザであると識別するために前記アクセスコントロールリストの少なくとも部分を修正するステップを実行する、請求項26〜28のいずれか1項に記載の装置。
  30. 前記アクセスコントロールデータはアクセスパラメータを含み、前記アクセスパラメータは、前記ユーザに与えられる前記制限のあるアクセスの範囲を確証し、
    前記少なくとも1つのプロセッサはさらに、前記アクセスパラメータを含むように前記アクセスコントロールリストの少なくとも部分を修正するステップを実行する、請求項29に記載の装置。
  31. 前記アクセスパラメータは、前記ユーザに割り当てられる役割、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、前記クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含む、請求項30に記載の装置。
  32. 前記アクセスコントロールリストは、前記ユーザに関連付けられる1つ以上のアクセスパラメータを識別しており、前記アクセスパラメータは、前記ユーザに割り当てられる役割、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、前記クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含む、請求項26に記載の装置。
  33. 前記ローカルアクセストークンはマカロンを含み、前記マカロンは、1つ以上のキャビアートと、対応するキーとを含み、
    前記少なくとも1つのプロセッサはさらに、
    前記アクセスコントロールリストに基づいて、前記ユーザに関連付けられる前記アクセスパラメータを識別するステップと、
    前記ローカルアクセストークンについての失効時間を確証するステップと、
    前記失効時間および識別された前記アクセスパラメータを前記ローカルアクセストークンの前記1つ以上のキャビアート内に統合する動作を実行するステップと実行する、請求項32に記載の装置。
  34. 前記少なくとも1つのプロセッサはさらに、前記ユーザの前記ローカルアクセストークンについて確証される前記失効時間を統合するように前記アクセスコントロールリストの少なくとも部分を修正するステップを実行する、請求項33に記載の装置。
  35. 前記ローカルアクセストークンは、前記クライアントデバイスに関連付けられる前記ユーザまたは前記クライアントデバイスのうちの少なくとも1つを識別するデータを含み、
    前記少なくとも1つのプロセッサはさらに、前記ローカルアクセストークンにデジタル署名を適用するステップを実行する、請求項22〜28のいずれか1項に記載の装置。
  36. 前記ローカルアクセストークンはマカロンを含み、前記マカロンは、1つ以上のキャビアートと、対応するキーとを含み、
    前記対応するキーは、適用された前記デジタル署名を含み、
    前記少なくとも1つのプロセッサはさらに、前記1つ以上のキャビアートの少なくとも部分へのMACアルゴリズムの適用に基づき、前記デジタル署名を生成するステップを実行する、請求項35に記載の装置。
  37. 前記1つ以上のキャビアートは、前記トークンの失効日時、前記ユーザに割り当てられる役割、または、前記ユーザもしくは前記クライアントデバイスのうちの少なくとも一方を識別する前記データのうちの少なくとも1つを含む、請求項36に記載の装置。
  38. 前記ローカルアクセストークンはデジタル証明書を含む、請求項22〜35のいずれか1項に記載の装置。
  39. 前記少なくとも1つのプロセッサはさらに、
    前記リソースデバイスから前記マスターアクセストークンを受信するステップと、
    受信した前記マスターアクセストークンの少なくとも部分に基づいて前記ローカルアクセストークンを生成するステップとを実行する、請求項22〜28のいずれか1項に記載の装置。
  40. 前記マスターアクセストークンは第1のマカロンを含み、前記第1のマカロンは、1つ以上の第1のキャビアートと、対応する第1のキーとを含み、
    前記ローカルアクセストークンは第2のマカロンを含み、前記第2のマカロンは、1つ以上の第2のキャビアートと、対応する第2のキーとを含み、
    前記少なくとも1つのプロセスはさらに、前記1つ以上の第2のキャビアートを生成するステップを実行し、前記第2のキャビアートの第1の部分は前記第1のキャビアートを含み、前記第2のキャビアートの第2の部分は、前記ローカルアクセストークンの失効日時と、前記ユーザの前記制限のあるアクセスに関連付けられる1つ以上のアクセスパラメータとを含み、前記アクセスパラメータは、前記ユーザに割り当てられる役割、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、前記クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含む、請求項39に記載の装置。
  41. 前記少なくとも1つのプロセッサはさらに、前記リソースデバイスからマスターデバイストークンを受信するステップを実行し、前記マスターデバイストークンは、前記クライアントデバイスが前記リソースデバイスの識別性を照合することを可能にし、
    前記少なくとも1つのプロセッサはさらに、
    前記決定することに応答して、前記マスターデバイストークンの少なくとも部分に基づいてローカルデバイストークンを生成するステップと、
    前記クライアントデバイスに前記ローカルデバイストークンを提供するステップとを実行する、請求項22に記載の装置。
  42. 命令を格納する有形の一時的でないコンピュータ読取可能媒体であって、前記命令は、装置の少なくとも1つのプロセッサによって実行されると、方法を実行し、
    前記方法は、
    リソースデバイスについてのマスターアクセストークンを取得することと、
    クライアントデバイスに関連付けられるユーザを識別することと、
    前記ユーザが前記リソースデバイスへの制限のあるアクセスを受けることを承認されていることを決定することと、
    前記決定することに応答して、前記マスターデバイストークンに基づいてローカルアクセストークンを生成することとを含み、前記ローカルアクセストークンは、前記ローカルアクセストークンを有効化するために前記リソースデバイスがネットワーク接続を有することを必要とすることなく、前記リソースデバイスへのアクセスを与えるように構成されており、
    前記方法はさらに、
    前記リソースデバイスについての前記ローカルアクセストークンを前記クライアントデバイスに提供することを含む、有形の一時的でないコンピュータ読取可能媒体。
  43. コンピュータによって実現される方法であって、
    リソースデバイスの1つ以上のプロセッサによって、クライアントデバイスとのセキュアなワイヤレス接続を確立することと、
    前記1つ以上のプロセッサによって、前記クライアントデバイスからのアクセストークンに由来するトークンデータと、前記クライアントデバイスによる前記リソースデバイスへのアクセスの要求とを受信することと、
    前記1つ以上のプロセッサによって、ネットワークを介して通信することなく、受信した前記トークンデータが、前記リソースデバイスへのアクセスを承認する有効なトークンに由来すると決定することと、
    前記1つ以上のプロセッサによって、前記ネットワークを介して通信することなく、前記アクセストークンが、前記クライアントデバイスによって要求される前記アクセスを提供するのに十分なアクセスのレベルを承認していると決定することと、
    受信した前記トークンデータが有効なトークンに由来すると決定することと、前記アクセストークンが前記電子デバイスによって要求される前記アクセスを提供するのに十分なアクセスのレベルを承認していると決定することとに応答して、前記1つ以上のプロセッサによって、前記クライアントデバイスによって要求される前記リソースデバイスへの前記アクセスを提供することとを含む、方法。
  44. 前記セキュアなワイヤレス接続は、前記クライアントデバイスと前記リソースデバイスとの間の直接的なワイヤレス接続を含む、請求項43に記載の方法。
  45. 前記直接的なワイヤレス接続は、ブルートゥースローエナジー(BLE: Bluetooth Low Energy)接続を含む、請求項44に記載の方法。
  46. 前記確立することは、前記クライアントデバイスからキャビアートデータおよびランダムデータを受信することを含み、前記キャビアートデータは、前記クライアントデバイスによってローカルデバイストークンから抽出され、
    前記確立することはさらに、
    受信した前記キャビアートおよびランダムデータの少なくとも部分に基づいてキー値を計算することと、
    計算された前記キー値を前記クライアントデバイスに送信することと、
    計算された前記キー値と、前記ローカルデバイストークンに基づいて前記クライアントデバイスによって計算される付加的なキー値との間の対応に基づき、前記クライアントデバイスとの前記セキュアなワイヤレス接続を確立することとを含む、請求項43〜45のいずれか1項に記載の方法。
  47. 計算された前記キー値を、セッションキーとして確証することをさらに含む、請求項46に記載の方法。
  48. 前記キャビアートデータおよびランダムデータは、共有された対称キーを使用して暗号化されており、
    前記確立することはさらに、
    受信した前記キャビアートデータおよびランダムデータを復号化することと、
    前記共有された対称キーを使用して、計算された前記キー値を暗号化することと、
    暗号化された前記キー値を前記クライアントデバイスに送信することとを含む、請求項46または請求項47に記載の方法。
  49. アクセストークンはマカロンを含み、前記マカロンは、1つ以上のキャビアートと、対応するキーとを含む、請求項43〜45のいずれか1項に記載の方法。
  50. ネットワークを介して通信することなく、受信した前記トークンデータが有効なトークンに由来すると決定するステップは、
    受信した前記トークンデータから前記1つ以上のキャビアートを抽出することと、
    抽出された前記キャビアートと、前記リソースデバイスによって維持されるマスターアクセストークンとに基づき、受信した前記トークンデータのコピーを計算することと、
    受信した前記トークンデータが、計算された前記コピーに対応すると決定することと、
    受信した前記トークンデータが、計算された前記コピーに対応する場合、受信した前記トークンデータが有効なトークンに由来すると確証することとを含む、請求項49に記載の方法。
  51. ネットワークを介して通信することなく、受信した前記トークンデータが有効なトークンに由来すると決定するステップはさらに、
    抽出された前記キャビアートの少なくとも部分に基づいて、受信した前記トークンデータについてのアクセスのチェーンを識別することと、
    受信した前記トークンデータについての前記アクセスのチェーンを照合することとを含む、請求項50に記載の方法。
  52. 前記1つ以上のキャビアートは、前記アクセストークンの失効日時と、前記リソースデバイスのオーナーによって前記クライアントデバイスに割り当てられる役割と、1つ以上のアクセスパラメータとを含み、
    前記アクセスパラメータは、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、前記クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含み、
    前記リソースデバイスへのアクセスの前記要求は、前記リソースデバイスの1つ以上の要求される機能を識別する、請求項49〜51のいずれか1項に記載の方法。
  53. 前記アクセストークンが前記十分なアクセスのレベルを承認していると決定するステップは、
    前記失効日時に基づいて、前記アクセストークンが失効していないと決定することと、
    前記リソースデバイスの要求される機能へアクセスするために前記クライアントデバイスによって必要とされる役割を識別することと、
    必要とされる前記役割が、割り当てられる前記役割と一貫していると決定することと、
    前記1つ以上の要求される機能が前記1つ以上のアクセスパラメータと一貫していると決定することと、
    (i)前記アクセストークンが失効していないという決定と、(ii)必要とされる前記役割が、割り当てられる前記役割と一貫しているという決定と、(iii)1つ以上の要求される機能が前記1つ以上のアクセスパラメータと一貫しているという決定とに応答して、前記アクセストークンが、前記要求されるアクセスを提供するのに十分なアクセスのレベルを承認していると確証することとを含む、請求項52に記載の方法。
  54. 前記リソースデバイスは、クラウドサーバに関連付けられるコンピュータシステム、サードパーティ認証サービス、または、前記リソースデバイスのオーナーのデバイスのうちの少なくとも1つにアクセスコントロールの決定を委任しており、
    前記少なくとも1つのコンピュータシステム、サードパーティ認証サービス、または、オーナーデバイスは、前記アクセストークンを生成し、前記クライアントデバイスに前記アクセストークンを提供する、請求項43〜53のいずれか1項に記載の方法。
  55. 前記ネットワークを介して通信することなく、前記確立するステップ、前記受信するステップおよび前記提供するステップを実行することをさらに含む、請求項43に記載の方法。
  56. リソースデバイスであって、
    少なくとも1つのプロセッサと、
    実行可能な命令を格納するメモリとを含み、前記命令は、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
    クライアントデバイスとのセキュアなワイヤレス接続を確立するステップと、
    前記クライアントデバイスからのアクセストークンに由来するトークンデータと、前記クライアントデバイスによる前記リソースデバイスへのアクセスの要求とを受信するステップと、
    ネットワークを介して通信することなく、受信した前記トークンデータが、前記リソースデバイスへのアクセスを承認する有効なトークンに由来していると決定するステップと、
    前記ネットワークを介して通信することなく、前記アクセストークンが、前記クライアントデバイスによって要求される前記アクセスを提供するのに十分なアクセスのレベルを承認していると決定するステップと、
    受信した前記トークンデータが有効なトークンに由来すると決定することと、前記アクセストークンが前記電子デバイスによって要求される前記アクセスを提供するのに十分なアクセスのレベルを承認していると決定することとに応答して、前記クライアントデバイスによって要求される前記リソースデバイスへのアクセスを提供するステップとを実行させる、リソースデバイス。
  57. 前記セキュアなワイヤレス接続は、前記クライアントデバイスと前記リソースデバイスとの間の直接的なワイヤレス接続を含む、請求項56に記載のリソースデバイス。
  58. 前記直接的なワイヤレス接続は、ブルートゥースローエナジー(BLE: Bluetooth Low Energy)接続を含む、請求項57に記載のリソースデバイス。
  59. 前記少なくとも1つのプロセッサはさらに、
    前記クライアントデバイスからキャビアートデータおよびランダムデータを受信するステップを実行し、前記キャビアートデータは、前記クライアントデバイスによってローカルデバイストークンから抽出され、
    前記少なくとも1つのプロセッサはさらに、
    受信した前記キャビアートおよびランダムデータの少なくとも部分に基づいてキー値を計算するステップと、
    計算された前記キー値を前記クライアントデバイスに送信するステップと、
    計算された前記キー値と、前記ローカルデバイストークンに基づいて前記クライアントデバイスによって計算される付加的なキー値との間の対応に基づき、前記クライアントデバイスとの前記セキュアなワイヤレス接続を確立するステップとを実行する、請求項56〜58のいずれか1項に記載のリソースデバイス。
  60. 前記少なくとも1つのプロセッサはさらに、計算された前記キー値を、セッションキーとして確証するステップを実行する、請求項59に記載のリソースデバイス。
  61. 前記キャビアートデータおよびランダムデータは、共有された対称キーを使用して暗号化されており、
    前記少なくとも1つのプロセッサはさらに、
    受信した前記キャビアートデータおよびランダムデータを復号化するステップと、
    前記共有された対称キーを使用して、計算された前記キー値を暗号化するステップと、
    暗号化された前記キー値を前記クライアントデバイスに送信するステップとを実行する、請求項59または請求項60に記載のリソースデバイス。
  62. アクセストークンはマカロンを含み、前記マカロンは、1つ以上のキャビアートと、対応するキーとを含む、請求項56〜58のいずれか1項に記載のリソースデバイス。
  63. 前記少なくとも1つのプロセッサはさらに、
    前記アクセストークンからの前記1つ以上のキャビアートを識別するステップと、
    抽出された前記キャビアートと、前記リソースデバイスによって維持されるマスターアクセストークンとに基づき、受信した前記トークンデータのコピーを計算するステップと、
    受信した前記トークンデータが計算された前記コピーに対応すると決定するステップと、
    受信した前記トークンデータが計算された前記コピーに対応する場合、受信した前記トークンデータが有効なトークンに由来すると確証するステップとを実行する、請求項62に記載のリソースデバイス。
  64. 前記少なくとも1つのプロセッサはさらに、
    抽出された前記キャビアートの少なくとも部分に基づいて、前記アクセストークンについてのアクセスのチェーンを識別するステップと、
    受信した前記トークンについての前記アクセスのチェーンを照合するステップとを実行する、請求項63に記載のリソースデバイス。
  65. 前記1つ以上のキャビアートは、前記アクセストークンの失効日時と、前記リソースデバイスのオーナーによって前記クライアントデバイスに割り当てられる役割と、1つ以上のアクセスパラメータとを含み、
    前記アクセスパラメータは、時間的制約、アクセスタイプに対する制約、オフラインアクセスに対する制約、または、前記クライアントデバイスがトークンを生成する能力に対する制約のうちの少なくとも1つを含み、
    前記リソースデバイスへのアクセスの前記要求は、前記リソースデバイスの1つ以上の要求される機能を識別する、請求項62〜64のいずれか1項に記載のリソースデバイス。
  66. 前記少なくとも1つのプロセッサはさらに、
    前記失効日時に基づいて、前記アクセストークンが失効していないと決定するステップと、
    前記リソースデバイスの要求される機能へアクセスするために前記クライアントデバイスによって必要とされる役割を識別するステップと、
    必要とされる前記役割が、割り当てられる前記役割と一貫していると決定するステップと、
    前記1つ以上の要求される機能が前記1つ以上のアクセスパラメータと一貫していると決定するステップと、
    (i)前記アクセストークンが失効していないという決定と、(ii)必要とされる前記役割が、割り当てられる前記役割と一貫しているという決定と、(iii)1つ以上の要求される機能が前記1つ以上のアクセスパラメータと一貫しているという決定とに応答して、前記アクセストークンが、前記要求されるアクセスを提供するのに十分なアクセスのレベルを承認していると確証するステップとを実行する、請求項65に記載のリソースデバイス。
  67. 前記リソースデバイスは、クラウドサーバに関連付けられるコンピュータシステム、サードパーティ認証サービス、または、前記リソースデバイスのオーナーのデバイスのうちの少なくとも1つにアクセスコントロールの決定を委任しており、
    前記少なくとも1つのコンピュータシステム、サードパーティ認証サービス、または、オーナーデバイスは、前記アクセストークンを生成し、前記クライアントデバイスに前記アクセストークンを提供する、請求項56〜66のいずれか1項に記載のリソースデバイス。
  68. 前記少なくとも1つのプロセッサはさらに、前記ネットワークを介して通信することなく、前記確立するステップ、前記受信するステップおよび前記提供するステップを実行する、請求項56〜67のいずれか1項に記載のリソースデバイス。
  69. 命令を格納する有形の一時的でないコンピュータ読取可能媒体であって、前記命令は、クライアントデバイスの少なくとも1つのプロセッサによって実行されると、方法を実行し、前記方法は、
    クライアントデバイスとのセキュアなワイヤレス接続を確立することと、
    前記クライアントデバイスからのアクセストークンに由来するトークンデータと、前記クライアントデバイスによる前記リソースデバイスへのアクセスの要求とを受信することと、
    ネットワークを介して通信することなく、受信した前記トークンデータが、前記リソースデバイスへのアクセスを承認する有効なトークンに由来していると決定することと、
    前記ネットワークを介して通信することなく、前記アクセストークンが、前記クライアントデバイスによって要求される前記アクセスを提供するのに十分なアクセスのレベルを承認していると決定することと、
    受信した前記トークンデータが有効なトークンに由来すると決定することと、前記アクセストークンが前記電子デバイスによって要求される前記アクセスを提供するのに十分なアクセスのレベルを承認していると決定することとに応答して、前記クライアントデバイスによって要求される前記リソースデバイスへの前記アクセスを提供することとを含む、コンピュータ読取可能媒体。
JP2018520424A 2016-01-29 2016-12-15 ローカルデバイス認証 Pending JP2019508763A (ja)

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 (1)

Publication Number Publication Date
JP2019508763A true JP2019508763A (ja) 2019-03-28

Family

ID=57755472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018520424A Pending JP2019508763A (ja) 2016-01-29 2016-12-15 ローカルデバイス認証

Country Status (7)

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

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
US10026118B2 (en) 2016-02-22 2018-07-17 Bank Of America Corporation System for allowing external validation of data 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
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
US10140470B2 (en) 2016-02-22 2018-11-27 Bank Of America Corporation System for external validation of distributed resource status
US10387878B2 (en) 2016-02-22 2019-08-20 Bank Of America Corporation System for tracking transfer of resources 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
US10142312B2 (en) 2016-02-22 2018-11-27 Bank Of America Corporation System for establishing secure access for users 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
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
US10475030B2 (en) 2016-02-22 2019-11-12 Bank Of America Corporation System for implementing a distributed ledger across multiple network nodes
US10135870B2 (en) 2016-02-22 2018-11-20 Bank Of America Corporation System for external validation of secure process transactions
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
US10607285B2 (en) 2016-02-22 2020-03-31 Bank Of America Corporation System for managing serializability of resource transfers in a process data network
EP3346405B1 (en) * 2016-05-30 2020-01-29 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
US11328543B2 (en) * 2016-09-02 2022-05-10 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
US11021944B2 (en) 2017-06-13 2021-06-01 Schlumberger Technology Corporation Well construction communication and control
US11143010B2 (en) 2017-06-13 2021-10-12 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
EP3646544B1 (en) * 2017-06-28 2022-03-30 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 腾讯科技(深圳)有限公司 资源处理方法、装置、系统及计算机可读介质
KR102299239B1 (ko) * 2017-10-21 2021-09-06 애플 인크. 공동 디바이스 상의 가상 어시스턴트 시스템에 대한 개인 도메인
US20180343251A1 (en) * 2017-11-16 2018-11-29 Qingdao Hisense Electronics Co., Ltd. Processing method and apparatus for remote assistance
EP3602313B1 (en) 2017-12-04 2022-02-02 Google LLC Synchronized processing of data using a system-on-chip
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 海尔衣联生态科技(上海)有限公司 离线支付方法
US11855971B2 (en) * 2018-01-11 2023-12-26 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
CN110753927B (zh) * 2018-05-07 2023-08-11 谷歌有限责任公司 在计算设备之间同步访问控制
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 联合汽车电子有限公司 智能车钥匙的密钥分发方法
EP3821568B1 (en) * 2018-11-02 2024-01-03 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
EP3942853A1 (en) * 2019-05-02 2022-01-26 Huawei Technologies Co., Ltd. A mobile device for controlling an internet of things device
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
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
DE202019104321U1 (de) * 2019-08-06 2020-09-11 Tiger Media Deutschland Gmbh Verwaltungssystem für digitale Medien
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
US11595215B1 (en) * 2020-12-17 2023-02-28 ForgeRock, Inc. Transparently using macaroons with caveats to delegate authorization for access
US11606210B1 (en) 2020-12-17 2023-03-14 ForgeRock, Inc. Secure activation, service mode access and usage control of IOT devices using bearer tokens
CN116114219A (zh) * 2020-12-25 2023-05-12 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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191729A (ja) * 2007-02-01 2008-08-21 Dainippon Printing Co Ltd 情報記憶媒体に記憶された認証用情報書換システム
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
WO2015129352A1 (ja) * 2014-02-28 2015-09-03 日立オートモティブシステムズ株式会社 認証システム、車載制御装置

Family Cites Families (7)

* 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
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
RU2019111186A (ru) * 2013-12-19 2019-05-07 Виза Интернэшнл Сервис Ассосиэйшн Способы и системы облачных транзакций
CN104283885B (zh) * 2014-10-14 2017-07-28 中国科学院信息工程研究所 一种基于智能终端本地认证的多sp安全绑定的实现方法
CN105162779B (zh) * 2015-08-20 2018-08-17 南威软件股份有限公司 多系统使用统一用户认证的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191729A (ja) * 2007-02-01 2008-08-21 Dainippon Printing Co Ltd 情報記憶媒体に記憶された認証用情報書換システム
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
WO2015129352A1 (ja) * 2014-02-28 2015-09-03 日立オートモティブシステムズ株式会社 認証システム、車載制御装置

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102117584B1 (ko) 로컬 디바이스 인증
US10764752B1 (en) Secure mobile initiated authentication
US10939295B1 (en) Secure mobile initiated authentications to web-services
US11063944B2 (en) Out-of-band authentication based on secure channel to trusted execution environment on client device
US10873468B2 (en) Legacy authentication for user authentication with self-signed certificate and identity verification
US20200287887A1 (en) Identity management via a centralized identity management server device
US10075437B1 (en) Secure authentication of a user of a device during a session with a connected server
US9621355B1 (en) Securely authorizing client applications on devices to hosted services
US9807610B2 (en) Method and apparatus for seamless out-of-band authentication
CN109479049B (zh) 用于密钥供应委托的系统、设备和方法
US20220255931A1 (en) Domain unrestricted mobile initiated login
US10187373B1 (en) Hierarchical, deterministic, one-time login tokens
US9197420B2 (en) Using information in a digital certificate to authenticate a network of a wireless access point
US9680827B2 (en) Geo-fencing cryptographic key material
US9654922B2 (en) Geo-fencing cryptographic key material
US9647998B2 (en) Geo-fencing cryptographic key material
US20170171183A1 (en) Authentication of access request of a device and protecting confidential information
US8397281B2 (en) Service assisted secret provisioning
JP5992535B2 (ja) 無線idプロビジョニングを実行するための装置及び方法
JP7189856B2 (ja) モバイルデバイスを有するユーザがスタンドアロンコンピューティングデバイスの能力にアクセスすることをセキュアに可能にするためのシステム及び方法
US20090327704A1 (en) Strong authentication to a network
US20230299958A1 (en) Methods and systems for authenticating a candidate user of a first and as second electronic service
US20240143730A1 (en) Multi-factor authentication using blockchain
CA3217688A1 (en) Multi-factor authentication using blockchain
WO2022140469A1 (en) Domain unrestricted mobile initiated login

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180626

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200602