WO2019018842A1 - Leveraging flexible distributed tokens in an access control system - Google Patents
Leveraging flexible distributed tokens in an access control system Download PDFInfo
- Publication number
- WO2019018842A1 WO2019018842A1 PCT/US2018/043277 US2018043277W WO2019018842A1 WO 2019018842 A1 WO2019018842 A1 WO 2019018842A1 US 2018043277 W US2018043277 W US 2018043277W WO 2019018842 A1 WO2019018842 A1 WO 2019018842A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- access control
- guest
- bearer token
- cryptographic bearer
- server
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00309—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated with bidirectional data transmission between data carrier and locks
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00571—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by interacting with a central unit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00309—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated with bidirectional data transmission between data carrier and locks
- G07C2009/00412—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated with bidirectional data transmission between data carrier and locks the transmitted data signal being encrypted
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00817—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the lock can be programmed
- G07C2009/00841—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the lock can be programmed by a portable device
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00857—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the data carrier can be programmed
- G07C2009/0088—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the data carrier can be programmed centrally
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Indexing scheme relating to groups G07C9/00 - G07C9/38
- G07C2209/08—With time considerations, e.g. temporary activation, valid time window or time limitations
Definitions
- Access control systems typically involve the use of credentials to manage the operation of an access control device (e.g., a lock device). Such credentials may be assigned to a particular user or device and are often physical in nature, forming at least a portion of, for example, a smartcard, proximity card, key fob, token device, or mobile device. Additionally, an access control database that identifies which credentials (e.g., which user devices) are permitted control over the access control device (e.g., lock/unlock functions) is typically stored on the access control device or a server in communication with the access control device. As such, an update to the access control database to change the credentials associated with the access control device, if even possible, often involves an update (or even a factory reset) of the access control device itself.
- credentials e.g., a lock device
- Such credentials may be assigned to a particular user or device and are often physical in nature, forming at least a portion of, for example, a smartcard, proximity card, key fob, token device, or mobile device.
- a method includes determining, by a server, whether a guest associated with a guest device is authorized to control an access control device based on an access control list stored on the server; generating, by the server, a caveated cryptographic bearer token in response to a determination that the guest is authorized to control the access control device, wherein the caveated cryptographic bearer token includes a time-based caveat that defines a time limit for control of the access control device; transmitting, by the server, the caveated cryptographic bearer token to the guest device in response to generation of the caveated cryptographic bearer token; transmitting, by the guest device and in response to receipt of the caveated cryptographic bearer token from the server, a request to control the access control device to the access control device, wherein the request includes the caveated cryptographic bearer token; and authenticating, by the access control device, the request based on the received caveated cryptographic bearer token, a base cryptographic bearer token stored on the access control device, and a real-time clock of the access control
- the method may further include requesting, by the guest device, the caveated cryptographic bearer token from the server. Further, determining whether the guest is authorized to control the access control device may include determining whether the guest is authorized to control the access control device in response to receipt of the request for the caveated cryptographic bearer token by the server. In some embodiments, authenticating the request may include determining whether the caveated cryptographic bearer token was derived from the base cryptographic bearer token, and comparing the time-based caveat to the real-time clock of the access control device to determine whether a current time is within the time limit.
- the caveated cryptographic bearer token may be or may include a macaroon. Further, in some embodiments, generating the caveated cryptographic bearer token may include generating the caveated cryptographic bearer token based on the base cryptographic bearer token. In some embodiments, the method may further include transmitting, by the guest device, a command to control a function of the access control device in response to successful authentication of the request by the access control device; and performing, by the access control device, the function based on the command.
- the access control list identifies one or more access control devices and guest access control permissions for each of the one or more access control devices, and the access control list is modifiable by an owner device authenticated via a separate security domain.
- the method may further include verifying, by the server, an identifier of an owner associated with the owner device via the separate security domain;
- the method may further include verifying, by the server, an identifier of an owner associated with the owner device via the separate security domain;
- the method may further include registering an owner of the access control device with the server via the separate security domain; providing a programming code of the access control device to the owner device; transmitting the base cryptographic bearer token generated by the access control device from the owner device to the server; and updating the access control list to identify ownership of the access control device by the owner.
- the base cryptographic bearer token stored on the access control device may be the base cryptographic bearer token generated by the access control device and transmitted to the server.
- the programming code is identified on at least one of a component of the access control device or paperwork provided with the access control device upon purchase of the access control device.
- the access control device is a lock device
- the server is a cloud-based server
- the guest device is a mobile device.
- the guest device is a user interface that permits a guest user to interact with the server and the access control device.
- an access control system may include a server, a guest device, and a lock device.
- the server may include a first processor and a first memory comprising a first plurality of instructions stored thereon that, in response to execution by the first processor, causes the server to determine whether a guest associated with a guest device is authorized to control a lock device based on an access control list stored on the server, generate a caveated cryptographic bearer token in response to a determination that the guest is authorized to control the lock device, wherein the caveated cryptographic bearer token includes a time-based caveat that defines a time limit for control of the lock device, and transmit the caveated cryptographic bearer token to the guest device in response to generation of the caveated cryptographic bearer token.
- the guest device may include a second processor and a second memory comprising a second plurality of instructions stored thereon that, in response to execution by the second processor, causes the guest device to receive the caveated cryptographic bearer token from the server and transmit a request to control the lock device to the lock device in response in response to receipt of the caveated cryptographic bearer token, wherein the request includes the caveated cryptographic bearer token.
- the lock device may include a lock mechanism to control access to a passageway, a third processor, and a third memory comprising a third plurality of instructions stored thereon that, in response to execution by the third processor, causes the lock device to authenticate the request based on the received caveated cryptographic bearer token, a base cryptographic bearer token stored on the lock device, and a real-time clock of the lock device.
- to authenticate the request may include to determine whether the caveated cryptographic bearer token was derived from the base cryptographic bearer token and to compare the time-based caveat to the real-time clock of the lock device to determine whether a current time is within the time limit.
- the caveated cryptographic bearer token may be or may include a macaroon
- the access control list may identify one or more lock devices and guest access control permissions for each of the one or more lock devices, and the access control list may be modifiable by an owner device
- the caveated cryptographic bearer token is generated based on the base cryptographic bearer token.
- the second plurality of instructions may further cause the guest device to transmit a command to unlock the lock mechanism of the lock device in response to successful authentication of the request by the lock device, and the third plurality of instructions may further cause the lock device to unlock the lock mechanism in response to the command.
- an access control system may include at least one processing device and at least one memory including a plurality of instructions stored thereon that, in response to execution by the at least one processing device, causes the access control system to request, by a guest device, a derived macaroon from a cloud system, wherein the derived macaroon includes a time-based caveat that restricts control of the access control device beyond a defined time; determine, by the cloud system, whether the guest is authorized to control the access control device based on an access control list stored on the cloud system; generate, by the cloud system, the derived macaroon in response to a determination that the guest is authorized to control the access control device; transmit, by the cloud system, the derived macaroon to the guest device in response to generation of the derived macaroon; transmit, by the guest device and in response to receipt of the derived macaroon from the cloud system, a request to control the access control device to the access control device, wherein the request includes the derived macaroon; and authenticate, by the cloud system, whether the guest is authorized to
- to authenticate the request may include to determine whether the derived macaroon was derived from the base macaroon, and to compare the time- based caveat to the real-time clock of the access control device to determine whether a current time is within the time limit.
- the derived macaroon may further include at least one of a permission-based caveat or a location-based caveat.
- the cloud system may be configured to execute a plurality of virtual functions.
- FIG. 1 is a simplified block diagram of at least one embodiment of an access control system for leveraging flexible distributed tokens
- FIG. 2 is a simplified block diagram of at least one embodiment of a computing system
- FIG. 3 is a simplified block diagram of at least one embodiment of a method for registering a lock device
- FIG. 4 is a simplified block diagram of at least one embodiment of a method for updating an access control list
- FIG. 5 is a simplified block diagram of at least one embodiment of a method for controlling a lock device by a guest device.
- references in the specification to "one embodiment,” “an embodiment,” “an illustrative embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may or may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. It should further be appreciated that although reference to a "preferred" component or feature may indicate the desirability of a particular component or feature with respect to an embodiment, the disclosure is not so limiting with respect to other embodiments, which may omit such a component or feature. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to implement such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- items included in a list in the form of "at least one of A, B, and C" can mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C).
- items listed in the form of "at least one of A, B, or C” can mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C).
- the use of words and phrases such as “a,” “an,” “at least one,” and/or “at least one portion” should not be interpreted so as to be limiting to only one such element unless specifically stated to the contrary, and the use of phrases such as “at least a portion” and/or “a portion” should be interpreted as encompassing both embodiments including only a portion of such element and embodiments including the entirety of such element unless specifically stated to the contrary.
- the disclosed embodiments may, in some cases, be implemented in hardware, firmware, software, or a combination thereof.
- the disclosed embodiments may also be implemented as instructions carried by or stored on one or more transitory or non-transitory machine-readable (e.g., computer-readable) storage media, which may be read and executed by one or more processors.
- a machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., a volatile or non-volatile memory, a media disc, or other media device).
- some structural or method features may be shown in specific arrangements and/or orderings. However, it should be appreciated that such specific
- an access control system in the illustrative embodiment, an access control system
- the 100 for leveraging flexible distributed tokens includes a lock device 102, an owner device 104, a cloud server 106, and a guest device 108. Additionally, in some embodiments, the access control system 100 may also include a gateway device 110.
- the access control system 100 allows for flexible access control over offline lock devices 102 and/or other access control devices.
- the owner of a lock device 102 may invite others (guests) to gain entry to a facility without having a connection to the facility's locks and/or readers.
- the access control system 100 may utilize connectivity to a cloud server 106 that distributes caveated cryptographic bearer tokens (e.g., macaroons) to the owner device 104 and/or guest devices 108 for use with a specified lock device 102.
- caveated cryptographic bearer tokens e.g., macaroons
- the lock device 102 of the access control system 100 is not limited, for example, in the number of guests that can control the lock device 102 and/or other limitations associated with finite onboard memory, because the lock device 102 is not required to locally store an access control list of authorized users. Instead, as described herein, the lock device 102 may store a base macaroon (or other base cryptographic bearer token), which may be compared (e.g., directly or indirectly) to derived macaroons or contextual cryptographic bearer tokens to determine whether a particular user/device should be granted access/control.
- a base macaroon or other base cryptographic bearer token
- the access control system 100 leverages the flexibility associated with contextual cryptographic bearer tokens (e.g., macaroons) for access control.
- the lock device 102 and the owner device 104 may communicate with one another during a setup or registration process in which a base
- the cloud server 106 may append additional caveats to the base cryptographic bearer token and its restrictions, for example, to reduce the duration the token is valid or limit the permissions given to a particular user/guest.
- the cloud server 106 may employ a cryptographic hash function (e.g., an HMAC) to hash the additional caveats to the base cryptographic bearer token to generate a derived or caveated cryptographic bearer token (e.g., a derived macaroon).
- a cryptographic hash function e.g., an HMAC
- the additional caveats may only modify the base token to be more restrictive than the base token, which prevents a guest, for example, from obtaining greater privileges than the owner of the lock device 102.
- the illustrative owner device 104 includes an application 112 that enables the lock owner to register an account with the cloud server 106 or cloud service associated therewith.
- the owner's secure login e.g., username and password
- the application 112 further provides a user interface by which the owner may enter user input associated with registering a particular lock device 102 to the owner.
- the token may be removed from the owner device 104.
- the owner may subsequently use the application 112 to retrieve a caveated bearer token to access/control the lock device 102 in a manner similar to that described below in reference to a guest.
- the guest device 108 similarly includes an application 114 that enables a particular guest to register an account with the cloud server/service, request and/or receive an invitation from the owner to access/control a particular lock device 102, request and/or receive caveated cryptographic bearer tokens (e.g., macaroons) for access/control of particular lock devices 102, and interact with the lock devices 102.
- an application 114 that enables a particular guest to register an account with the cloud server/service, request and/or receive an invitation from the owner to access/control a particular lock device 102, request and/or receive caveated cryptographic bearer tokens (e.g., macaroons) for access/control of particular lock devices 102, and interact with the lock devices 102.
- caveated cryptographic bearer tokens e.g., macaroons
- the applications 112, 114 may be embodied as any suitable applications for performing the functions described herein.
- the owner device 104 and the guest device 108 are embodied as mobile devices.
- the applications 112, 114 may be embodied as mobile applications (e.g., smartphone applications).
- one or more of the applications 112, 114 may serve as a client-side user interface for a web-based application or service of the cloud server 106.
- the cloud server 106 includes an access control list 116.
- the access control list 116 identifies each lock device 102 registered to the cloud server/service, the ownership of each of those lock devices 102, and the guests (if any) permitted access to each of those lock devices 102.
- each user e.g., owner/guest
- UUID universally unique identifier
- the owner and guests of a particular lock device 102 may be identified in the access control list 116 by the corresponding UUID of that owner or guest.
- Each lock device 102 may be similarly identified based on a lock programming/security code and/or a unique lock identifier. For example, in some embodiments, each lock device 102 may be identified based on a lock programming code visually identified on a component of the lock device 102 (e.g., the back of the lock device 102), included on paperwork provided with the lock device 102 upon purchase of the lock device 102, and/or stored in a memory of the lock device 102 and securely transferrable.
- a lock programming code visually identified on a component of the lock device 102 (e.g., the back of the lock device 102), included on paperwork provided with the lock device 102 upon purchase of the lock device 102, and/or stored in a memory of the lock device 102 and securely transferrable.
- the access control list 116 may identify a memory location of the cloud server 106 from which the base cryptographic bearer token (e.g., base macaroon) corresponding with each of the registered lock devices 102 can be retrieved.
- the access control list 116 may further identify, for example, the IP address and/or physical address of the device storing the token. It should be appreciated that the access control list 116 may be embodied as a table (e.g., an association table), a database, or any other data structure or collection of data structures suitable for performing the functions described herein.
- the owner device 104 and the guest device 108 are embodied as mobile devices, and the lock device 102 may communicate with the owner device 104 and the guest device 108 over any suitable wireless communication connection (e.g., Bluetooth, Wi-Fi, etc.) established between the lock device 102 and the device 104, 108. Additionally, in the illustrative embodiment, the owner device 104 and the guest device 108 may communicate with the cloud server 106 using any suitable wireless communication connection.
- any suitable wireless communication connection e.g., Bluetooth, Wi-Fi, etc.
- the owner device 104 and/or the guest device 108 may communicate with the cloud server 106 over Wi-Fi, WiMAX, a WAN (e.g., the Internet), and/or a suitable telecommunications network/protocol.
- the illustrative cloud server 106 is located at one or more remote locations relative to the devices 102, 104, 108.
- one or more of the communication connections may be wired.
- the access control system 100 may include the gateway device 110.
- the gateway device 110 may be used in conjunction with third-party integrations with the access control system 100.
- a registered gateway device 110 may be treated as an additional owner of the lock device 102 with privileges similar to the owner.
- the gateway device 110 may receive a cryptographic bearer token that is not time-limited and/or permission-limited in some embodiments.
- the gateway device 110 may communicate with other devices of the access control system 100 over any suitable wired or wireless communication network and associated protocol.
- one or more of the owner devices 104 and/or guest devices 108 may be embodied as a shared device or user interface device that permits a user to interact with the cloud server 106, the lock device 102, and/or cloud-based solutions.
- one or more of the devices 104, 108, 110 may be embodied as a home assistant device or smart home hub.
- the access control system 100 may include an ambient voice interface or other shared user interface instead of a user-owned graphical user interface. Further, in some embodiments, the access control system 100 may be accessed by virtue of a cloud-to-cloud integration with a third party integrator.
- each of the lock device 102, the owner device 104, the cloud server 106, the guest device 108, and/or the gateway device 110 may be embodied as a computing device similar to the computing device 200 described below in reference to FIG. 2.
- each of the lock device 102, the owner device 104, the cloud server 106, the guest device 108, and the gateway device 110 includes a processing device 202 and a memory 206 having stored thereon operating logic 208 for execution by the processing device 202 for operation of the corresponding device.
- lock device 102 is described herein for clarity of the description as a "lock device," it should be appreciated that, in other embodiments, the lock device 102 may be embodied as any access control device suitable for performing the functions described herein. As such, the description of the lock device 102 is equally applicable to embodiments of the access control system 100 having a different type of access control device.
- the cloud server 106 is described herein as a cloud-based device or collection of devices, in other embodiments, the cloud server 106 may be embodied as one or more devices outside of a cloud computing environment.
- the cloud server 106 may be embodied as a "serverless" or server-ambiguous computing solution, for example, that executes a plurality of instructions on- demand, contains logic to execute instructions only when prompted by a particular
- the cloud server 106 may be embodied as a virtual computing environment residing "on" a computing system (e.g., a distributed network of devices) in which various virtual functions (e.g., Lamba functions, Azure functions, Google cloud functions, and/or other suitable virtual functions) may be executed corresponding with the functions of the cloud server 106 described herein.
- a computing system e.g., a distributed network of devices
- virtual functions e.g., Lamba functions, Azure functions, Google cloud functions, and/or other suitable virtual functions
- the application may contact the virtual computing environment (e.g., via an HTTPS request to an API of the virtual computing environment), whereby the API may route the request to the correct virtual function (e.g., a particular server-ambiguous computing resource) based on a set of rules.
- the appropriate virtual function(s) may be executed to determine if that user should receive access to the lock device 102, mint the appropriate caveated cryptographic bearer token, and transmit that information back to the user before eliminating the instance of the virtual function(s).
- the access control system 100 may include multiple lock devices 102, owner devices 104, cloud servers 106, guest devices 108, and/or gateway devices 110 in other embodiments.
- a particular owner may have multiple owner devices 104 that the owner may use to securely connect with the cloud server 106 (e.g., via secure login over a security domain separate from the cryptographic bearer tokens) in order to register a lock device 102 and/or invite/revoke access control permissions of a particular guest for the lock device 102.
- a guest with permission to access/control a particular lock device 102 may securely connect with the cloud server 106 via any suitable guest device 108 to request and receive a caveated cryptographic bearer token for access to the lock device 102.
- a particular owner and/or guest may have access to multiple lock devices 102.
- a particular user may be an owner of one lock device 102 and a guest with respect to another lock device 102.
- a particular device may be an owner device 104 or a guest device 108 depending on the particular person (and login credentials thereof) using the device.
- the cloud server 106 may be embodied as multiple servers in a cloud computing
- the access control list 116 and/or other data used by the access control system 100 may be distributed among multiple servers.
- FIG. 2 a simplified block diagram of at least one embodiment of a computing device 200 is shown.
- the illustrative computing device 200 depicts at least one embodiment of a lock device, owner device, cloud server, guest device, and/or gateway device that may be utilized in connection with the lock device 102, the owner device 104, the cloud server 106, the guest device 108, and/or the gateway device 110 illustrated in FIG. 1.
- computing device 200 may be embodied as a reader device, credential device, access control device, server, desktop computer, laptop computer, tablet computer, notebook, netbook, UltrabookTM, mobile computing device, cellular phone, smartphone, wearable computing device, personal digital assistant, Internet of Things (IoT) device, control panel, processing system, router, gateway, and/or any other computing, processing, and/or communication device capable of performing the functions described herein.
- IoT Internet of Things
- the computing device 200 includes a processing device 202 that executes algorithms and/or processes data in accordance with operating logic 208, an input/output device 204 that enables communication between the computing device 200 and one or more external devices 210, and memory 206 which stores, for example, data received from the external device 210 via the input/output device 204.
- the input/output device 204 allows the computing device 200 to communicate with the external device 210.
- the input/output device 204 may include a transceiver, a network adapter, a network card, an interface, one or more communication ports (e.g., a USB port, serial port, parallel port, an analog port, a digital port, VGA, DVI, UDMI, Fire Wire, CAT 5, or any other type of communication port or interface), and/or other communication circuitry.
- Communication circuitry of the computing device 200 may be configured to use any one or more communication technologies (e.g., wireless or wired communications) and associated protocols (e.g., Ethernet, Bluetooth®, Wi-Fi®, WiMAX, etc.) to effect such communication depending on the particular computing device 200.
- the input/output device 204 may include hardware, software, and/or firmware suitable for performing the techniques described herein.
- the external device 210 may be any type of device that allows data to be inputted or outputted from the computing device 200.
- the external device 210 may be embodied as the lock device 102, the owner device 104, the cloud server 106, the guest device 108, and/or the gateway device 110.
- the external device 210 may be embodied as another computing device, switch, diagnostic tool, controller, printer, display, alarm, peripheral device (e.g., keyboard, mouse, touch screen display, etc.), and/or any other computing, processing, and/or communication device capable of performing the functions described herein.
- the external device 210 may be integrated into the computing device 200.
- the processing device 202 may be embodied as any type of processor(s) capable of performing the functions described herein.
- the processing device 202 may be embodied as one or more single or multi-core processors, microcontrollers, or other processor or processing/controlling circuits.
- the processing device 202 may include or be embodied as an arithmetic logic unit (ALU), central processing unit (CPU), digital signal processor (DSP), and/or another suitable processor(s).
- ALU arithmetic logic unit
- CPU central processing unit
- DSP digital signal processor
- the processing device 202 may be a programmable type, a dedicated hardwired state machine, or a combination thereof. Processing devices 202 with multiple processing units may utilize distributed, pipelined, and/or parallel processing in various embodiments.
- processing device 202 may be dedicated to performance of just the operations described herein, or may be utilized in one or more additional applications.
- the processing device 202 is programmable and executes algorithms and/or processes data in accordance with operating logic 208 as defined by programming instructions (such as software or firmware) stored in memory 206. Additionally or alternatively, the operating logic 208 for processing device 202 may be at least partially defined by hardwired logic or other hardware.
- the processing device 202 may include one or more components of any type suitable to process the signals received from input/output device 204 or from other components or devices and to provide desired output signals. Such components may include digital circuitry, analog circuitry, or a combination thereof.
- the memory 206 may be of one or more types of non-transitory computer- readable media, such as a solid-state memory, electromagnetic memory, optical memory, or a combination thereof. Furthermore, the memory 206 may be volatile and/or nonvolatile and, in some embodiments, some or all of the memory 206 may be of a portable type, such as a disk, tape, memory stick, cartridge, and/or other suitable portable memory. In operation, the memory 206 may store various data and software used during operation of the computing device 200 such as operating systems, applications, programs, libraries, and drivers.
- the memory 206 may store data that is manipulated by the operating logic 208 of processing device 202, such as, for example, data representative of signals received from and/or sent to the input/output device 204 in addition to or in lieu of storing programming instructions defining operating logic 208.
- the memory 206 may be included with the processing device 202 and/or coupled to the processing device 202 depending on the particular embodiment.
- the processing device 202, the memory 206, and/or other components of the computing device 200 may form a portion of a system-on-a-chip (SoC) and be incorporated on a single integrated circuit chip.
- SoC system-on-a-chip
- various components of the computing device 200 may be communicatively coupled via an
- the input/output subsystem which may be embodied as circuitry and/or components to facilitate input/output operations with the processing device 202, the memory 206, and other components of the computing device 200.
- the input/output subsystem may be embodied as, or otherwise include, memory controller hubs, input/output control hubs, firmware devices, communication links (i.e., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.) and/or other components and subsystems to facilitate the input/output operations.
- the computing device 200 may include other or additional components, such as those commonly found in a typical computing device (e.g., various input/output devices and/or other components), in other embodiments. It should be further appreciated that one or more of the components of the computing device 200 described herein may be distributed across multiple computing devices. In other words, the techniques described herein may be employed by a computing system that includes one or more computing devices. Additionally, although only a single processing device 202, I/O device 204, and memory 206 are illustratively shown in FIG. 2, it should be appreciated that a particular computing device 200 may include multiple processing devices 202, I/O devices 204, and/or memories 206 in other embodiments. Further, in some embodiments, more than one external device 210 may be in communication with the computing device 200.
- the illustrative lock device 102 includes a lock mechanism that is configured to control access through a passageway.
- the lock mechanism may be configured to be positioned in a locked state in which access to the passageway is denied, or may be positioned in an unlocked state in which access to the passageway is permitted.
- the lock mechanism includes a deadbolt, latch bolt, lever, and/or other mechanism adapted to move between the locked and unlocked state and otherwise perform the functions described herein.
- the lock mechanism may be embodied as any another mechanism suitable for controlling access through a passageway in other embodiments.
- the access control system 100 may execute a method 300 for registering a lock device 102.
- the illustrative method 300 begins with block 302 in which a lock owner establishes a communication connection with the cloud server 106 via an owner device 104, and the cloud server 106 determines whether the lock owner is a new lock owner or a registered lock owner. It should be appreciated that the cloud server 106 may employ any suitable technique to do so.
- a user interface presented on the owner device 104 may ask the user whether the user is a registered lock owner (e.g., whether the user has an existing cloud server account) and, if so, prompt the user/owner for secure login information to the cloud server account. In such circumstances, the method 300 advances to block 308.
- a registered lock owner e.g., whether the user has an existing cloud server account
- the method 300 advances to block 304 in which the lock owner is registered with the cloud server 106.
- the owner may create a cloud server account and secure login to the cloud server 106 or associated cloud service.
- the secure login is associated with a security domain different from the cryptographic bearer tokens.
- each user e.g., owner/guest
- the cloud server 106 e.g., generated as a JWT token
- the UUID may be based in part on the username and/or primary phone number of the user. It should be appreciated that, in some embodiments, the secure login may require multifactor authentication.
- the cloud server 106 determines whether to register a particular lock device 102 to the owner. If so, the method 300 advances to block 310 in which the owner enters a lock programming code into the application 112 of the owner device 104.
- each lock device 102 may be identified, for example, based on a lock programming code visually identified on a component of the lock device 102 (e.g., the back of the lock device 102) or included on paperwork provided with the lock device 102 upon purchase of the lock device 102.
- the owner may copy the programming code into the application 112 of the owner device 104.
- the programming code may be programmed into the memory of the lock device 102. In such embodiments, the programming code may be securely transmitted to the owner device 104, for example, for comparison to programming code manually entered by the owner into the application 112.
- the lock programming code may serve as proof to the lock device 102 and the application 112 that the owner has possession of and/or is authorized to setup/register the lock device 102.
- entry of the lock programming code initiates a session to establish a secure pairing between the lock device 102 and the owner device 104 (or the application 112, in particular).
- the lock device 102 and the owner device 104 may perform a secure password authenticated key exchange (SPAKE) based on the lock programming code (e.g., in which the lock programming code serves as a SPAKE2 password), which may include the generation of one or more base cryptographic bearer tokens (e.g., macaroons) as described below.
- SPAKE secure password authenticated key exchange
- the lock device 102 may mint a client authentication token and a server authentication token, which may be included in or form a portion of one or more base cryptographic bearer tokens.
- the server authentication token may be subsequently used to ensure that a device is actually communicating with the appropriate lock device 102 and the lock device 102, for example, is not being "spoofed" by a nefarious actor.
- the client authentication token may be used for secure access to the lock device 102 and, for simplicity, may be referred to herein simply as the cryptographic bearer token (despite some embodiments of the bearer tokens including both the server authentication token and the client authentication token).
- a base cryptographic bearer token (e.g., a base macaroon) is generated by the lock device 102, for example, as part of a secure pairing between the lock device 102 and the owner device 104 (or the application 112, in particular).
- the base cryptographic bearer token is generated by the lock device 102 and securely transmitted to the owner device 104 (e.g., encrypted by a SPAKE key).
- the token may alternatively be generated by the owner device 104 and transmitted to the lock device 102.
- the base cryptographic bearer token is stored to the lock device 102 and the cloud server 106.
- the owner device 104 securely transmits the base cryptographic bearer token to the cloud server 106 (e.g., via the application 112) and the deletes the token from the memory of the owner device 104.
- the access control list 116 of the cloud server 106 is updated to identify the base cryptographic bearer token and ownership of the lock device 102 by the registered owner.
- the access control list 116 may be updated to identify a memory location of the cloud server 106 from which the base cryptographic bearer token can be retrieved.
- the access control list 116 may be updated to associate the owner with the lock device 102 (e.g., by mapping the owner's UUTD to a lock identifier of the lock device 102).
- the access control system 100 may execute a method 400 for updating an access control list 116.
- the illustrative method 400 begins with block 402 in which the access control system 100 determines whether an owner desires to update access control permissions for a particular lock device 102.
- an owner may indicate a desire to update the lock permissions via an application 112 executing on an owner device 104 (e.g., by selecting a particular option on the application, by initiating a secure login, etc.).
- the cloud server 106 verifies the lock owner via secure login in a manner similar to that described above (e.g., via username/password over a separate security domain from the cryptographic bearer tokens).
- the lock owner may be required to securely login using multifactor authentication and, therefore, may be required to, for example, enter a security code received via text message or email, provide biometric input, and/or otherwise provide proof of identity.
- the cloud server 106 determines (e.g., based on a user selection in the application 112 of the owner device 104) whether the owner desires to invite a guest to have access control of the lock device 102 or revoke a particular guest's access control permissions for a particular lock device 102.
- the cloud server 106 transmits an invitation to a guest device 108 associated with the guest.
- the owner may identify the guest and/or guest device 108 using any suitable identifier. For example, in some
- the owner may provide the guest's phone number and/or email address to which the cloud server 106 may address the invitation (e.g., via voice, SMS, or email).
- the guest may securely login to the cloud server 106 or associated cloud service as described above.
- the cloud server 106 updates the access control list 116 to permit the guest to have access control of the lock device 102.
- guests are provided time-limited and permission-limited access control relative to the owner, which may have full access control over the lock device 102 that is not time-bounded (or time-bounded with a greater time limit).
- the cloud server 106 may subsequently issue temporary tokens (e.g., caveated cryptographic bearer tokens) to be given to the guest for access to the lock device 102 as described herein.
- temporary tokens e.g., caveated cryptographic bearer tokens
- the temporary token may provide schedule-based access to the guest.
- the token may include a modified and/or additional time-based caveat that sets a time at which the token becomes valid, thereby providing a window within which the temporary token may be used (e.g., between the time at which it becomes valid and the time at which it expires).
- the cloud server 106 determines (e.g., based on user input of the owner) the particular lock device 102 registered to the owner (if multiple lock devices 102 are registered to the owner) for which access controls are to be modified, and the particular guest that currently has access control permissions to that lock device 102 to be revoked. In other words, in some embodiments, the cloud server 106 determines the guest/lock combination for which to revoke access.
- the cloud server 106 may revoke a particular guest's access to all lock devices 102 of the owner and/or revoke access of all guests to a particular lock device 102.
- the cloud server 106 updates the access control list 116 to revoke the guest's access control of the particular lock device 102. For example, in some embodiments, the cloud server 106 deletes the guest from an entry associated with the lock device 102 or otherwise
- the cloud server 106 may update the access control list 116 to reflect the revocation using any suitable technique, which may vary depending on the particular embodiment (e.g., depending on the particular data structure of the access control list 116). It should be appreciated that, in the illustrative embodiment, revocation of the guest access control permission prevents the cloud server 106 from subsequently issuing/transmitting a caveated cryptographic bearer token to a guest device 108 of the guest (unless currently associated with a different authorized guest as described above) to access the lock device 102.
- the cloud server 106 may update the access control list 116 to grant and/or revoke multiple access control permissions concurrently depending on the user input of the owner.
- the access control list 116 may also include a blacklist that defines one or more devices that are unauthorized to receive a cryptographic bearer token under any circumstances. Further, it should be appreciated that the techniques described herein allow the owner to update the access control list 116 that defines access controls for the lock device 102 without interacting with the lock device 102 for which access controls are being modified.
- the access control system 100 may execute a method 500 for controlling a lock device 102 by a guest device 108.
- the illustrative method 500 begins with block 502 in which the cloud server 106 determines whether a guest is requesting access control over a particular lock device 102. For example, in some embodiments, the guest may request access control over the lock device 102 via the application 114 on the guest device 108.
- the application 114 may include a graphical user interface that identifies each of the lock devices 102 for which the guest has access control permissions. In some embodiments, the application 114 may identify those lock devices 102 for which the guest has ownership and, therefore, has owner-level access control permissions in addition to the lock devices 102 for which the guest has guest-level access permissions. Depending on the particular embodiment, the application 114 may or may not graphically distinguish the lock devices 102 that have owner-level permissions from those having guest-level permissions.
- the guest device 108 Upon identifying the particular lock device 102 for which access control is desired, in block 504, the guest device 108 requests a caveated cryptographic bearer token from the cloud server 106. In block 506, the cloud server 106 determines whether the guest using the guest device 108 is authorized to control the lock device 102 based on the access control list 116 stored in the cloud server 106. For example, as described above, the guest may be required to securely login to the cloud server 106 or associated cloud service through a security domain separate from the token-based security in order to prove the guest's identity.
- the cloud server 106 compares the guest's identity (e.g., the guest UUID generated during the secure login) to the access control list 116 to confirm that the guest identifier is associated with the lock device 102 that the guest desires to access/control. If the guest's identity cannot be verified by secure login and/or the guest identifier is not associated with control of the lock device 102 in the access control list 116, the access control system 100 performs one or more error handling procedures in block 508. For example, in some embodiments, the cloud server 106 drops its communication connection with the guest device 108, alerts the owner of the error, and/or records the error in an audit file. Further, the application 114 may alert the user of the guest device 108 of the error. It should be appreciated, however, that the access control system 100 may, additionally or alternatively, perform other suitable error handling procedures.
- the cloud server 106 may, additionally or alternatively, perform other suitable error handling procedures.
- the method 500 advances to block 510 in which the cloud server 106 generates a caveated cryptographic bearer token and transmits the generated token to the guest device 108.
- the cloud server 106 may generate a caveated cryptographic bearer token including a time-based caveat that defines a time limit for control of the lock device 102 and a permission-based caveat that defines a permission level of the bearer of the token as described herein.
- the cloud server 106 retrieves the base cryptographic bearer token associated with the lock device 102 (see block 316 of FIG.
- the cloud server 106 may, additionally or alternatively, include other caveats.
- the generated caveated cryptographic bearer token may include a location-based caveat that defines a physical location, region, boundary, and/or radius within which the token is valid (e.g., for mobile lock devices 102 such as bicycle locks).
- the cryptographic bearer tokens described herein may include or be embodied as macaroons.
- a macaroon is a data structure that can have caveats appended to it, for example, to limit time access and privilege level of a user of a lock device 102.
- the lock device 102 may generate a macaroon that is transmitted to the owner device 104 and forwarded to the cloud server 106 (see blocks 314, 316 of FIG. 3).
- the macaroon may be composed of a security key and caveats associated with a macaroon type (e.g., owner, admin/manager, and user/guest) and a timestamp indicating a creation time of the macaroon. Further, in some embodiments, the macaroon may include a caveat associated with a function of the macaroon (e.g., what the macaroon is intended to do).
- the security key may be based, for example, on the SPAKE key generated during the pairing between the lock device 102 and the owner device 104. In other embodiments, another suitable key may be used for the macaroon.
- the permitted values for the time-based caveat may vary depending on the particular embodiment.
- the time-based caveat may allow time/expiration limits of one hour, twenty-four hours, thirty days, or absolute/non-expiring. In other embodiments, any suitable time limits may be used. It should be appreciated that, in the illustrative embodiment, the time limits define the amount of time that may elapse from the generation of the macaroon (e.g., defined by a timestamp in the macaroon) before the macaroon is considered to be expired.
- base ⁇ base _caveats ⁇ base _tag ⁇
- base caveats is a concatenated string of the caveats of the base macaroon
- base _tag HMAC(key,base _caveats)
- HMAC is a keyed-hash message authentication code of the base caveats using key as the cryptographic key for the hash.
- any suitable keys may be used for the generation of the base macaroon.
- a macaroon may also be derived from the base macaroon (e.g., for transmittal to a guest device 108) thereby narrowing the permissions of the base macaroon (e.g., further including time-limiting and/or permission- limiting caveats).
- the macaroons may further incorporate caveats associated with a particular session and/or other suitable information.
- the guest device 108 establishes a secure communication session with the lock device 102 and, in block 516, the guest device 108 securely transmits a request to control the lock device 102 including the caveated cryptographic bearer token to the lock device 102.
- the lock device 102 authenticates the access control request based on the received caveated cryptographic bearer token, the base cryptographic bearer token stored on the lock device 102 (see block 316 of FIG. 3), and the real-time clock of the lock device 102.
- the lock device 102 compares the caveated cryptographic bearer token to the base cryptographic bearer token to determine whether the caveated cryptographic bearer token is associated with the base cryptographic bearer token. It should be appreciated that the tokens may be compared directly or indirectly depending on the particular embodiment. For example, in the illustrative embodiment, the lock device 102 determines whether caveated cryptographic bearer token was derived from the base cryptographic bearer token using a suitable technique or algorithm (e.g., using the appropriate keys and the HMAC as described above). Additionally, in block 522, the lock device 102 compares the time-based caveat to the real-time clock of the lock device 102 to determine whether the current time is within the time limit defined by the time-based caveat.
- the access control system 100 performs one or more error handling procedures in block 526.
- the access control system 100 may handle the error in a manner similar to that described above in reference to block 508.
- the lock device 102 may drop its communication connection with the guest device 108 and/or record the error in an audit file that may be subsequently retrieved (e.g., by an owner device 104).
- the application 114 may alert the user of the guest device 108 of the error. It should be appreciated, however, that the access control system 100 may, additionally or alternatively, perform other suitable error handling procedures.
- the access control system 100 may perform an error handling procedure if a guest token is presented and the realtime clock of the lock device 102 has not been set (e.g., due to a power reset). To do so, in some embodiments, the access control system 100 may perform one or more of the techniques described in reference to U.S. Patent Application No. 15/656,678 filed on July 21, 2017, the entirety of which is incorporated herein by reference.
- the guest device 108 may transmit a command to control a function of the lock device 102.
- the guest device 108 may transmit a command to the lock device 102 to unlock a lock mechanism of the lock device 102.
- the guest device 108 may transmit a command to perform any suitable function depending on the type of access control device being controlled.
- the lock device 102 responds to the command.
- the lock device 102 may perform the requested function in response to receiving the command to do so (e.g., unlock a lock mechanism).
- the lock device 102 may transmit a status message to the guest device 108 based on the success or failure of the requested function. For example, in the illustrative embodiment, if the guest has delayed issuing a command such that the time limit defined by the time-based caveat is no longer satisfied, the access control attempt will be denied by the lock device 102.
- the owner may utilize an owner device 104 to retrieve an owner-level contextual cryptographic bearer token for access to a lock device 102 of the owner in a manner similar to that described above in reference to a guest obtaining a token.
- the owner's token generated by the cloud server 106 does not include a time-based caveat or may be less time-bounded than the guest's token.
- the owner may retrieve and use the base cryptographic bearer token for access to the lock device 102. In the illustrative embodiment, however, the owner device 104 does not perpetually store the base cryptographic bearer token as doing so could pose a security risk to the system.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Lock And Its Accessories (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| NZ761966A NZ761966B2 (en) | 2017-07-21 | 2018-07-23 | Leveraging flexible distributed tokens in an access control system |
| CA3076532A CA3076532C (en) | 2017-07-21 | 2018-07-23 | Leveraging flexible distributed tokens in an access control system |
| EP18835231.4A EP3655930B1 (en) | 2017-07-21 | 2018-07-23 | Leveraging flexible distributed tokens in an access control system |
| AU2018304715A AU2018304715B2 (en) | 2017-07-21 | 2018-07-23 | Leveraging flexible distributed tokens in an access control system |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/656,641 | 2017-07-21 | ||
| US15/656,641 US10505938B2 (en) | 2017-07-21 | 2017-07-21 | Leveraging flexible distributed tokens in an access control system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019018842A1 true WO2019018842A1 (en) | 2019-01-24 |
Family
ID=65015824
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2018/043277 Ceased WO2019018842A1 (en) | 2017-07-21 | 2018-07-23 | Leveraging flexible distributed tokens in an access control system |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US10505938B2 (en) |
| EP (1) | EP3655930B1 (en) |
| AU (1) | AU2018304715B2 (en) |
| CA (1) | CA3076532C (en) |
| WO (1) | WO2019018842A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110992558A (en) * | 2019-11-19 | 2020-04-10 | 珠海市德宇辉煌信息科技有限公司 | Access control management system |
| CN111599060A (en) * | 2020-05-22 | 2020-08-28 | 日立楼宇技术(广州)有限公司 | Online service management method, device and system |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11658865B2 (en) * | 2018-03-20 | 2023-05-23 | Delphian Systems, LLC | Updating devices in a local network of interconnected devices |
| US11108762B2 (en) | 2018-06-05 | 2021-08-31 | The Toronto-Dominion Bank | Methods and systems for controlling access to a protected resource |
| US10810816B1 (en) * | 2018-08-28 | 2020-10-20 | Robert William Kocher | Information-based, biometric, asynchronous access control system |
| CN110415403B (en) * | 2019-07-17 | 2021-07-30 | 宁波云荆科技有限公司 | Control method of intelligent lockset system based on edge calculation |
| JP7331532B2 (en) * | 2019-07-30 | 2023-08-23 | 京セラドキュメントソリューションズ株式会社 | Information processing system, information processing device, and information processing method |
| US11902789B2 (en) * | 2019-08-05 | 2024-02-13 | Hewlett Packard Enterprise Development Lp | Cloud controlled secure Bluetooth pairing for network device management |
| US11736466B2 (en) * | 2019-09-18 | 2023-08-22 | Bioconnect Inc. | Access control system |
| SE544210C2 (en) | 2019-10-01 | 2022-03-01 | Assa Abloy Ab | Method, access coordination server, computer program and computer program product for providing access to a lock for a service provider using a grant token and credential |
| SE1951173A1 (en) * | 2019-10-17 | 2021-04-18 | Assa Abloy Ab | Authenticating with an authentication server for requesting access to a physical space |
| CN111554025A (en) * | 2020-04-26 | 2020-08-18 | 云知声智能科技股份有限公司 | Passing method, device and system |
| US20220114584A1 (en) * | 2020-10-08 | 2022-04-14 | Geeq Corporation | Apparatus and methods to define and use bearer tokens, certified tokens and applications using bearer tokens and certified tokens |
| CN116195231A (en) * | 2020-10-09 | 2023-05-30 | 维萨国际服务协会 | Token failsafe system and method |
| US11606210B1 (en) * | 2020-12-17 | 2023-03-14 | ForgeRock, Inc. | Secure activation, service mode access and usage control of IOT devices using bearer tokens |
| US11595389B1 (en) * | 2020-12-17 | 2023-02-28 | ForgeRock, Inc. | Secure deployment confirmation of IOT devices via bearer tokens with caveats |
| US11792194B2 (en) * | 2020-12-17 | 2023-10-17 | Zscaler, Inc. | Microsegmentation for serverless computing |
| US11595215B1 (en) * | 2020-12-17 | 2023-02-28 | ForgeRock, Inc. | Transparently using macaroons with caveats to delegate authorization for access |
| US12229301B2 (en) * | 2021-05-05 | 2025-02-18 | EMC IP Holding Company LLC | Access control of protected data using storage system-based multi-factor authentication |
| GB2609395B (en) * | 2021-07-13 | 2024-03-27 | Mosa Innovations Ltd | Smart lock |
| WO2023023176A1 (en) | 2021-08-17 | 2023-02-23 | Spectrum Brands, Inc. | Secure guest enrollment at electronic lock |
| US12231891B2 (en) | 2022-01-12 | 2025-02-18 | T-Mobile Innovations Llc | Remote user device deauthentication |
| EP4473438A1 (en) * | 2022-02-01 | 2024-12-11 | nChain Licensing AG | Method and system for permission management |
| US20240154808A1 (en) * | 2022-11-03 | 2024-05-09 | Change Healthcare Holdings, Llc | Systems and methods of trace id validation and trust |
| US20250106220A1 (en) * | 2023-09-27 | 2025-03-27 | Palo Alto Networks (Israel Analytics) Ltd. | Cloud computer credential theft detection |
| EP4651108A1 (en) * | 2024-05-16 | 2025-11-19 | MH Holdings USA Corp | Iot device password sharing system |
| IL315935A (en) * | 2024-09-25 | 2026-04-01 | Knock Nlock Ltd | Systems, methods and computer program products for controlling a physical safe lock |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030121968A1 (en) * | 2000-05-25 | 2003-07-03 | Miller Michael Robert | Method and apparatus for the secure delivery of goods |
| US20100306549A1 (en) | 2008-01-30 | 2010-12-02 | Evva Sicherheitstechnologie Gmbh | Method and device for managing access control |
| WO2013090211A2 (en) | 2011-12-12 | 2013-06-20 | Moose Loop Holdings, LLC | Security device access |
| US20130214902A1 (en) * | 2010-12-02 | 2013-08-22 | Viscount Systems Inc. | Systems and methods for networks using token based location |
| US20160019735A1 (en) | 2010-06-16 | 2016-01-21 | Delphian Systems, LLC | Wireless Device Enabled Locking System |
| US20160358397A1 (en) | 2014-02-18 | 2016-12-08 | Bekey A/S | Controlling access to a location |
| US20170053467A1 (en) * | 2015-07-06 | 2017-02-23 | Acsys Ip Holding Inc. | Systems and methods for secure lock systems with redundant access control |
| DE202017100417U1 (en) | 2016-01-26 | 2017-05-08 | Google Inc. | Safe connections for low energy devices |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6553029B1 (en) * | 1999-07-09 | 2003-04-22 | Pmc-Sierra, Inc. | Link aggregation in ethernet frame switches |
| US8266116B2 (en) * | 2007-03-12 | 2012-09-11 | Broadcom Corporation | Method and apparatus for dual-hashing tables |
| US7738454B1 (en) * | 2008-09-30 | 2010-06-15 | Juniper Networks, Inc. | Methods and apparatus related to packet classification based on range values |
| US20100123002A1 (en) * | 2008-11-20 | 2010-05-20 | Anthony Caporicci | Card printing verification system |
| CA2780643C (en) * | 2009-11-25 | 2017-03-21 | Aclara RF Systems Inc. | Cryptographically secure authentication device, system and method |
| US8428227B2 (en) * | 2010-05-18 | 2013-04-23 | Certicall, Llc | Certified communications system and method |
| US9589129B2 (en) * | 2012-06-05 | 2017-03-07 | Lookout, Inc. | Determining source of side-loaded software |
| US20130342314A1 (en) * | 2012-06-22 | 2013-12-26 | Gun Chen | Smart lock structure and operating method thereof |
| EP2716510B1 (en) * | 2013-02-11 | 2015-11-25 | Volvo Car Corporation | Authentication system and method for a pool of vehicles |
| US9763086B2 (en) * | 2013-08-27 | 2017-09-12 | Qualcomm Incorporated | Owner access point to control the unlocking of an entry |
| US9160744B1 (en) * | 2013-09-25 | 2015-10-13 | Emc Corporation | Increasing entropy for password and key generation on a mobile device |
| US10375047B2 (en) * | 2013-09-30 | 2019-08-06 | Schneider Electric Industries Sas | Cloud-authenticated site resource management devices, apparatuses, methods and systems |
| US20150120577A1 (en) * | 2013-10-04 | 2015-04-30 | Clique Intelligence | Systems and methods for enterprise management using contextual graphs |
| US20170302641A1 (en) * | 2014-03-28 | 2017-10-19 | Confia Systems, Inc. | Secure and Anonymized Authentication |
| US9438940B2 (en) * | 2014-04-07 | 2016-09-06 | The Nielsen Company (Us), Llc | Methods and apparatus to identify media using hash keys |
| WO2016014079A1 (en) * | 2014-07-25 | 2016-01-28 | Hewlett-Packard Development Company, L.P. | Constraining authorization tokens via filtering |
| US9529531B2 (en) * | 2014-10-06 | 2016-12-27 | Barefoot Networks, Inc. | Proxy hash table |
| US10469477B2 (en) * | 2015-03-31 | 2019-11-05 | Amazon Technologies, Inc. | Key export techniques |
| US9640002B1 (en) * | 2015-04-02 | 2017-05-02 | Mark Y. Grosberg | System and method for verified admission through access controlled locations using a mobile device |
| US10033532B2 (en) * | 2015-06-20 | 2018-07-24 | Fujitsu Limited | Biometric based authenticated key exchange |
| EP3345370B1 (en) * | 2016-01-29 | 2019-03-13 | Google LLC | Device access revocation |
| WO2017131887A1 (en) * | 2016-01-29 | 2017-08-03 | Google Inc. | Local device authentication |
| CA3015695C (en) * | 2016-02-29 | 2022-06-21 | Securekey Technologies Inc. | Systems and methods for distributed data sharing with asynchronous third-party attestation |
| FR3050301B1 (en) * | 2016-04-19 | 2018-03-30 | Dura Operating, Llc | METHOD AND SYSTEM FOR SECURE ACCESS TO A VEHICLE |
| US10333705B2 (en) * | 2016-04-30 | 2019-06-25 | Civic Technologies, Inc. | Methods and apparatus for providing attestation of information using a centralized or distributed ledger |
-
2017
- 2017-07-21 US US15/656,641 patent/US10505938B2/en active Active
-
2018
- 2018-07-23 AU AU2018304715A patent/AU2018304715B2/en active Active
- 2018-07-23 EP EP18835231.4A patent/EP3655930B1/en active Active
- 2018-07-23 CA CA3076532A patent/CA3076532C/en active Active
- 2018-07-23 WO PCT/US2018/043277 patent/WO2019018842A1/en not_active Ceased
-
2019
- 2019-12-10 US US16/709,375 patent/US10868815B2/en active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030121968A1 (en) * | 2000-05-25 | 2003-07-03 | Miller Michael Robert | Method and apparatus for the secure delivery of goods |
| US20100306549A1 (en) | 2008-01-30 | 2010-12-02 | Evva Sicherheitstechnologie Gmbh | Method and device for managing access control |
| US20160019735A1 (en) | 2010-06-16 | 2016-01-21 | Delphian Systems, LLC | Wireless Device Enabled Locking System |
| US20130214902A1 (en) * | 2010-12-02 | 2013-08-22 | Viscount Systems Inc. | Systems and methods for networks using token based location |
| WO2013090211A2 (en) | 2011-12-12 | 2013-06-20 | Moose Loop Holdings, LLC | Security device access |
| US20140068247A1 (en) * | 2011-12-12 | 2014-03-06 | Moose Loop Holdings, LLC | Security device access |
| US20160358397A1 (en) | 2014-02-18 | 2016-12-08 | Bekey A/S | Controlling access to a location |
| US20170053467A1 (en) * | 2015-07-06 | 2017-02-23 | Acsys Ip Holding Inc. | Systems and methods for secure lock systems with redundant access control |
| DE202017100417U1 (en) | 2016-01-26 | 2017-05-08 | Google Inc. | Safe connections for low energy devices |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP3655930A4 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110992558A (en) * | 2019-11-19 | 2020-04-10 | 珠海市德宇辉煌信息科技有限公司 | Access control management system |
| CN111599060A (en) * | 2020-05-22 | 2020-08-28 | 日立楼宇技术(广州)有限公司 | Online service management method, device and system |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3655930A4 (en) | 2021-05-05 |
| CA3076532C (en) | 2023-03-21 |
| US20190028478A1 (en) | 2019-01-24 |
| EP3655930A1 (en) | 2020-05-27 |
| AU2018304715A1 (en) | 2020-03-12 |
| US10505938B2 (en) | 2019-12-10 |
| US20200228532A1 (en) | 2020-07-16 |
| CA3076532A1 (en) | 2019-01-24 |
| NZ761966A (en) | 2021-11-26 |
| US10868815B2 (en) | 2020-12-15 |
| EP3655930B1 (en) | 2026-04-22 |
| AU2018304715B2 (en) | 2021-04-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10868815B2 (en) | Leveraging flexible distributed tokens in an access control system | |
| US10990122B2 (en) | Secure real-time clock update in an access control system | |
| EP3567558B1 (en) | Utilizing caveats for wireless credential access | |
| US9451454B2 (en) | Mobile device identification for secure device access | |
| US12520149B2 (en) | Technologies for access control communications | |
| US20130212653A1 (en) | Systems and methods for password-free authentication | |
| US10083326B2 (en) | Method of accessing a physically secured rack and computer network infrastructure | |
| WO2015160734A1 (en) | Device registration, authentication, and authorization system and method | |
| CN110178160A (en) | The access control system of trusted third party | |
| US11258607B2 (en) | Cryptographic access to bios | |
| TWI770411B (en) | Firmware access based on temporary passwords | |
| US10091191B2 (en) | Distributed authorization | |
| NZ761966B2 (en) | Leveraging flexible distributed tokens in an access control system | |
| NZ761969B2 (en) | Secure real-time clock update in an access control system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18835231 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2018835231 Country of ref document: EP Effective date: 20200221 |
|
| ENP | Entry into the national phase |
Ref document number: 2018304715 Country of ref document: AU Date of ref document: 20180723 Kind code of ref document: A |
|
| ENP | Entry into the national phase |
Ref document number: 3076532 Country of ref document: CA |
|
| WWG | Wipo information: grant in national office |
Ref document number: 2018835231 Country of ref document: EP |