用于认证的无线密钥管理的制作方法

文档序号:11289026阅读:319来源:国知局
用于认证的无线密钥管理的制造方法与工艺

相关申请的交叉引用

本申请是国际申请,其要求于2014年7月30日提交的标题为“用于认证的无线密钥管理”的第14/447,514号美国专利申请和于2014年8月27日提交的标题为“用于认证的无线密钥管理”的第14/470,590号美国专利申请的权益和优先权。第14/447,514号和第14/470,590号的美国专利申请的全部内容通过引用全部合并在此。



背景技术:

近年来,电子锁已经变得商业化。这种电子锁可经由无线连接(例如,wi-fi等)受控于用户装置。然而,用于与这种电子锁接口的通信通常并不完全安全,这增加了未经认证的用户可能获得对电子锁的控制的风险。



技术实现要素:

本文公开了用于认证的无线密钥管理的方法、系统和计算机可读介质。一实施例涉及一种认证的方法。所述方法包括:由移动装置将请求发送到产品;由产品将安全挑战发送到移动装置;由移动装置发送对所述挑战的响应和用于产品的加密的用户配置文件,其中所述响应包括利用由移动装置和产品二者存储的访问密钥产生的数据,并且其中,用户配置文件由服务器使用由服务器和产品存储的秘密密钥进行加密;由产品验证对所述挑战的响应,其中所述响应使用访问密钥进行验证;响应于验证所述响应,由产品确认来自移动装置的数据。确认数据包括:对加密的用户配置文件进行解密,其中用户配置文件使用秘密密钥进行解密;以及验证解密的用户配置文件。所述方法还包括:响应于确认所述数据,由产品发起所述请求所指定的产品的动作。

一实施例涉及一种认证的方法,所述方法包括:由移动装置将请求发送到锁定装置;由锁定装置将安全挑战发送到移动装置;由移动装置发送对所述挑战的响应和用于锁定装置的加密的用户配置文件,其中所述响应包括利用由移动装置和锁定装置二者存储的访问密钥产生的数据,并且其中,用户配置文件由服务器使用由服务器和锁定装置存储的秘密密钥进行加密;由锁定装置验证对挑战的响应,其中所述响应使用访问密钥进行验证;响应于验证所述响应,由锁定装置确认来自移动装置的数据。确认数据包括:对加密的用户配置文件进行解密,其中用户配置文件使用秘密密钥进行解密;以及验证解密的用户配置文件。所述方法还包括响应于确认所述数据,由锁定装置发起所述请求所指定的锁定装置的动作,其中所述动作包括激活锁定装置的物理锁定组件以对锁定装置解锁。

另一实施例涉及一种电子锁装置。所述电子锁装置包括:电池,被配置为对电子锁装置供电;无线收发器;存储器;电可控锁定机械装置;以及处理器。所述处理器被配置为:将秘密密钥存储在存储器中,其中秘密密钥与电子锁装置的第一代码相关联;将访问密钥存储在存储器中,其中访问密钥与电子锁装置的第二代码相关联;经由无线收发器接收来自移动装置的请求;经由无线收发器将安全挑战发送到移动装置;使用访问密钥验证对所述挑战的响应,其中所述响应从移动装置接收,并且其中,所述响应包括利用由移动装置存储的访问密钥的副本产生的数据;响应于验证所述响应,确认来自移动装置的数据。确认数据包括:对加密的用户配置文件进行解密,其中所述用户配置文件使用秘密密钥进行解密,并且其中,用户配置文件由服务器使用由服务器存储的秘密密钥的副本进行加密;以及验证解密的用户配置文件。处理器还被配置为响应于确认所述数据,发起所述请求所指定的电子锁装置的动作。

另一实施例涉及一种系统。所述系统包括一个或多个服务器,所述服务器包括一个或多个处理器,被配置为:获得用于产品的秘密密钥,其中秘密密钥与用于产品的唯一码相关联;获得用于产品的访问密钥,其中访问密钥与用于产品的唯一码相关联;使用秘密密钥对用于产品的用户配置文件进行加密,其中用户配置文件和唯一码由移动装置提供,其中唯一码将产品与用户配置文件进行关联,并且其中,秘密密钥和访问密钥使用唯一码获得;以及将加密的用户配置文件和访问密钥提供给移动装置,其中用户配置文件包括用于产品的访问数据。

另一实施例涉及一种系统。所述系统包括一个或多个服务器,所述服务器包括一个或多个处理器,被配置为获得用于锁定装置的秘密密钥,其中秘密密钥与用于锁定装置的唯一码相关联;获得用于锁定装置的访问密钥,其中访问密钥与用于锁定装置的唯一码相关联;使用秘密密钥对用于锁定装置的用户配置文件进行加密,其中用户配置文件和唯一码由移动装置提供,其中唯一码将锁定装置与用户配置文件进行关联,并且其中,秘密密钥和访问密钥使用唯一码获得;以及将加密的用户配置文件和访问密钥提供给移动装置,其中用户配置文件包括用于锁定装置的访问数据。

另一实施例涉及一种电子锁装置。所述电子锁装置包括:无线收发器、存储器、电可控锁定机械装置、处理器和位置确定电路,位置确定电路被配置为确定电子锁装置的位置。所述处理器被配置为一次或多次接收指示电子锁装置的位置的一个或多个位置数据项,将所述一个或多个位置数据项存储在存储器中,以及将所述一个或多个位置数据项经由无线收发器从存储器发送到移动装置。

另一实施例涉及一种移动装置,所述移动装置包括一个或多个处理器,所述一个或多个处理器被配置为:将对一个或多个位置数据项的请求发送到锁定装置以及从锁定装置接收安全挑战。所述一个或多个处理器还被配置为将对挑战的响应和加密的用户配置文件发送到锁定装置。所述响应包括利用由移动装置和锁定装置二者存储的访问密钥产生的数据,用户配置文件由服务器使用由服务器和锁定装置存储的秘密密钥加密,以及锁定装置被配置为验证所述响应并确认数据。所述一个或多个处理器还被配置为从锁定装置获得所述一个或多个位置数据项,所述一个或多个位置数据项已经由锁定装置的位置确定电路产生并且每个位置数据项指示一次或多次锁定装置的位置。所述一个或多个处理器还被配置为产生映射界面,所述映射界面示出由所述一个或多个位置数据项指示的一个或多个位置。

又一实施例涉及一种方法,所述方法包括:使用锁定装置的位置确定电路产生一个或多个位置数据项,所述一个或多个位置数据项指示一次或多次锁定装置的位置。所述方法还包括由移动装置将对一个或多个位置数据项的请求发送到锁定装置并由锁定装置将安全挑战发送到移动装置。所述方法还包括:由移动装置发送对所述挑战的响应和用于锁定装置的加密的用户配置文件。所述响应包括利用由移动装置和锁定装置二者存储的访问密钥产生的数据,并且用户配置文件由服务器使用由服务器和锁定装置存储的秘密密钥进行加密。所述方法还包括由锁定装置验证对所述挑战的响应,其中所述响应使用访问密钥进行验证。所述方法还包括响应于验证所述响应,由锁定装置确认来自移动装置的数据。所述确认包括:对加密的用户配置文件进行解密,其中用户配置文件使用秘密密钥进行解密,以及验证解密的用户配置文件。所述方法还包括响应于确认所述数据,将来自锁定装置的所述一个或多个位置数据项发送至移动装置。

另一实施例涉及一种认证的方法。所述方法包括:移动装置从锁定装置接收锁标识符,锁标识符与锁定装置相关联;由移动装置通过将锁标识符与移动装置上的锁标识符的集合进行比较来确定锁标识符与移动装置上的用户配置文件相关联,其中用户配置文件与锁标识符相关联并被服务器使用由服务器和锁定装置存储的锁密钥来认证和加密,并且其中,用户配置文件包括用户密钥;由移动装置将与锁标识符相关联的用户配置文件发送到锁定装置;由锁定装置对用户配置文件进行解密以产生解密的用户配置文件,其中用户配置文件使用锁密钥被加密和验证;由锁定装置将安全码发送到移动装置;由移动装置产生加密的命令,加密的命令包括安全码并使用用户配置文件的用户密钥被加密;由移动装置将加密的命令发送到锁定装置;由锁定装置确认来自移动装置的加密的命令,其中确认加密的命令包括:使用从解密的用户配置文件获得的用户密钥来对加密的命令进行解密;确定安全码是否有效;以及使用用户密钥对解密的命令进行认证;以及响应于确认所述命令,由锁定装置发起所述命令指定的锁定装置的动作。

另一实施例涉及一种电子锁装置。所述电子锁装置包括:无线收发器;存储器;电可控锁定机械装置;以及处理器,所述处理器被配置为将锁标识符和锁密钥存储在存储器中,其中锁标识符和锁密钥与电子锁装置相关联;经由无线收发器广播锁标识符;经由无线收发器从移动装置接收加密的用户配置文件;对加密的用户配置文件进行认证和解密,其中加密的用户配置文件使用锁密钥进行认证和解密,并且其中,用户配置文件由服务器利用由服务器存储的锁密钥的副本加密并包括用户密钥;经由无线收发器将安全码发送到移动装置;经由无线收发器从移动装置接收加密的命令;确认加密的命令,其中确认加密的命令包括:使用来自解密的用户配置文件的用户密钥对加密的命令进行解密;确定安全码是否有效;以及使用用户密钥对解密的命令进行认证;以及响应于确认命令,发起命令所指定的电子锁装置的动作。

另一实施例涉及一种对锁定装置的共享访问。所述方法包括:由服务器从用户的移动装置接收对与锁定装置相关联的锁标识符的选择,以与来自在用户的移动装置上存储的锁标识符的集合的游客用户的移动装置共享;由服务器从用户的移动装置接收游客用户配置文件请求;由服务器基于游客用户配置文件请求和游客用户密钥,产生认证并加密的游客用户配置文件,其中,认证并加密的游客用户配置文件是使用与锁定装置相关联的锁密钥而加密的,并且其中,认证并加密的游客用户配置文件包括游客用户密钥;以及当服务器确定游客用户的移动装置能够访问游客用户配置文件时,由服务器从用户的移动装置接收从用户的移动装置上的用户集合中对游客用户的选择;由服务器将认证并加密的游客用户配置文件和游客用户密钥发送到游客用户的移动装置;由服务器将锁标识符添加到在游客用户的移动装置上的锁标识符的集合;并且当服务器确定游客用户的移动装置不能访问游客用户配置文件时,由服务器产生包含链接和代码的消息并将消息发送到游客用户的移动装置;由服务器确定所述链接已用于允许访问游客用户的移动装置上的用户配置文件;由服务器确定所述代码已被输入在游客用户的移动装置上;由服务器将认证并加密的游客用户配置文件和游客用户密钥发送到游客用户的移动装置;以及由服务器将锁标识符添加到游客用户的移动装置上的锁标识符的集合。

前述发明内容仅为示例性的并非为了以任何方式进行限制。除了上述示例性的方面、实施例和特征,其它方面、实施例和特征参照以下附图和具体实施方式将变得显而易见。

附图说明

从以下描述和所附的权利要求结合附图,本公开的上述和其它特征将变得完全显而易见。应理解,这些附图仅描绘了根据本公开的若干实现方式并因此不应理解为限制本公开的范围,将通过使用附图利用额外的特性和细节来描述本公开。

图1是根据实施例的用于认证的无线密钥管理的系统的框图。

图1b是根据实施例的示例性电子锁装置的示意图。

图2是根据实施例的用于配置产品和用户装置的过程的流程图。

图3是根据实施例的用于产品与用户装置进行交互的过程的流程图。

图4是根据一实施例的用于实现本文公开的技术的装置的框图。

图5是根据一实施例的用于实现本文公开的技术的用户装置的框图。

图6是根据一实施例的用于实现本文公开的技术的服务器的框图。

图7是根据一实施例的用于实现本文公开的技术的产品的框图。

图8是根据一实施例的用于确定产品的位置数据并可选地产生指示一个或多个所确定的位置的映射界面的过程的框图。

图9是根据实施例的用于产品与用户装置进行交互的过程的流程图。

图10是根据实施例的用于从特定用户装置移除用户配置文件(profile)的过程的流程图。

图11是根据实施例的用于从游客用户的装置移除游客用户配置文件的过程的流程图。

图12是根据实施例的用于授权游客用户访问锁的过程的流程图。

图13是根据另一实施例的用于配置产品和用户装置的过程的流程图。

图14是根据另一实施例的用于实现本文公开的技术的产品的框图。

图15是根据实施例的用于产品与用户装置交互的数据流过程的数据流程图。为了可读性的目的,图15分为第一部分图15a和第二部分图15b。

在以下的附图和描述中阐述了在说明书中描述的主题的一个或多个实现方式的细节。通过所述描述、附图和权利要求,主题的其它特征、方面和优点将变得显而易见。

同样的参考标号和型号在不同附图中指示同样的元件。在转到详细描述示例性实施例的具体实施方式之前,应理解,本申请不限于在描述中阐述的或在附图中示出的细节或方法。还应理解,术语仅为了描述的目的而不应视作限制。

具体实施方式

在以下具体实施方式中,参考形成具体实施方式的部分的附图。在附图中,除非上下文另有指示,否则相同的符号通常确定相同的组件。在具体实施方式和附图中描述的示意性实施例并不意味限制。在不脱离呈现在此的主题的精神和范围的情况下可利用其它实施例并可做出其它改变。将容易理解:作为总体上描述在此并在附图中示出的本公开的多个方面可按照各种不同配置被布置、替代、组合和设计,所有这些都被明确地考虑并且作为本公开的一部分。

本文所描述的是用于认证的无线密钥管理的技术。根据在此的公开,经由利用服务器的认证方案和使用至少两个密钥的加密方案,向在用户装置(例如,移动电话、膝上型计算机、平板装置等)与产品(例如,电子锁装置,诸如,挂锁、门锁、保险匣(lockbox)等)之间的无线通信提供附加安全性。在用户装置被配置为控制或管理产品的操作的场景中,所公开的认证系统和加密系统的使用适合于保证产品正被合法控制。贯穿本公开,参照用户装置为移动电话且产品为电子锁装置来讨论实施例。然而,本公开不限于使用移动电话和电子锁装置的实施方案,利用其它类型的用户装置和产品的实施例在本公开的范围内。

根据某些示例性实施例,所公开的方法是基于使用两个密钥的加密。一个密钥(例如,秘密密钥)已知/存储在产品(电子锁装置)和服务器(管理系统)上。另一密钥(例如,访问密钥)已知/存储在锁和用户装置(移动装置)上。秘密秘钥和访问私钥对于锁/产品是特定的。通过这种方式,秘密秘钥和访问秘钥可与单个锁/产品唯一相关。秘密密钥可用于对可用于确定用户对锁/产品的访问权的文件(例如,用户配置文件)进行加密。例如,这种访问权可限定当用户可远程访问锁/产品时或当用户可以以其它方式控制装置(例如,对电子锁装置上锁/解锁)。用户装置可在与锁/产品的初始通信中使用访问密钥,并可将访问密钥用作在用户装置与锁/产品之间的挑战-响应交换的一部分。

在此讨论的密钥也可用于认证数据有效,并且来自于对应密钥的其它持有者。可通过计算(例如,使用秘密密钥或访问密钥)发送的数据的mac(消息认证码)来执行这种数据完整性和源认证/真实性验证。相应地,如在此进一步讨论,当服务器对用户配置文件进行加密时,接收加密的配置文件的装置(例如,锁定装置)可使用秘密密钥的副本来验证mac正确。相似地,当锁正在发送数据时,可使用它的秘密密钥来计算将由服务器(如果所述数据用于服务器)进行验证的mac。可选地,在此讨论的通信中的任何通信可能未被加密(例如,明文包等),并且可为发送的数据计算mac,并且mac包括有发送的数据。随后,mac可用作安全措施以确定数据是否正从合法源发送。此外,当锁和移动装置正在通信时,每个可使用访问密钥的副本来计算mac,并且每个装置可验证数据并使用访问密钥对它的源进行认证。相应地,对mac的这种使用可确保数据正来自于合适源(即,服务器、移动装置或其它锁)并且还确保数据有效。

根据某些示例性实施例,方法可允许使用两个密钥并且两个密钥都存储在锁上(例如,在制造阶段期间)的情况下用户装置(例如,移动手机)与产品(例如,锁)之间的安全通信。在某些这种实施例中,一个密钥(例如,锁密钥)已知并存储在产品(电子锁装置)和服务器(管理系统)上,另一密钥(例如,用户密钥)已知并存储在用户装置(移动装置)而非产品上。锁密钥可以是与以上讨论的秘密密钥相似或相同的,用户密钥可以是与以上讨论的访问密钥相似或相同的。锁密钥和用户密钥两者对于锁/产品是特定的。按照这种方式,锁密钥和用户密钥可与单个锁/产品唯一相关。用户装置可接收锁标识符并将锁标识符与在用户装置上与一个或多个用户配置文件相关联的锁标识符的列表进行比较。如果找到匹配,则用户装置可将相关联的用户配置文件发送到产品。用户配置文件包括用户密钥。产品可对配置文件进行解密并将安全码发送到用户装置。用户装置可产生并发送加密的命令。加密的命令可使用用户密钥被加密并包括安全码。产品可使用用户密钥和安全码对加密的命令进行验证,假设命令通过验证,则启动由命令指定的动作(例如,对物理锁组件进行解锁)。以下将针对图9至图15b进一步详细地讨论某些这种示例性实施例。

参照图1,根据实施例,示出了用于认证的无线密钥管理的系统100的框图。系统100包括至少一个用户装置102、服务器104和产品106。在示意性实施例中,用户装置102是移动装置(例如,移动电话),产品106是电子锁装置。总的来说,用户装置102被配置为至少部分管理产品106的操作。例如,移动装置可用于解锁,上锁并以其它方式管理电子锁的功能。用户装置102包括用于这种产品管理所必要的组件(例如,处理器102a、存储器102b、计时器102c、收发器102d和102e、用户输入装置102f等)。处理器102a可以是任何商用处理器,可表示一个或多个处理器并可被实现为通用处理器或专用集成电路。存储器102b可包括处理器102a的存储器(例如,高速缓存)、ram或其它存储器(闪存、硬盘存储等)。计时器102c被配置为维持用户装置102的时间值。例如,计时器102可以是处理器102a的时钟或可以是装置102的任何其它时间保持电路。计时器102c维持的时间值可用在在此将进一步讨论的安全通信中(例如,在与产品106的同步时间中,在提供与用于记录目的的事件相关的时间戳中)。收发器102d和102e可包括用于不同通信协议的各种类型的收发器。在一实施例中,收发器102d包括经由蜂窝网络与服务器104进行通信的蜂窝组件。在一实施例中,收发器102d包括经由互联网或其它网络与服务器104进行通信的有线组件或无线组件(例如,wi-fi)。无线收发器102e被配置为与产品106通信。在一实施例中,无线收发器102e包括用于与产品106建立蓝牙连接的蓝牙组件。用户装置102可通过被配置为在用户装置上运行的管理应用的使用(例如,经由处理器102a和存储器102b)来管理产品106。例如,应用可被安装在移动手机上(即,在用户装置106的存储器102b中),并且应用可用于通过无线连接(经由无线收发器102e)配置并控制电子锁装置(即,产品)。一个或多个用户输入装置102f(例如,触摸屏、按钮、扬声器、显示器、键盘等)可被包括在用户装置102中以允许用户与装置102、服务器104、产品106和在装置上运行的任何应用进行交互。

在产品106是锁定装置的实施例中,这种电子锁装置通常包括用于提供电子锁的逻辑和高电流负荷的处理器106(例如,可由处理器控制的电动锁定机械装置(motorizedlockingmechanism)106g)。高电流负荷可包括如以下讨论的一个或多个锁定机械装置106g(例如,钩环,针,存储器等)。电子锁装置还可包括用于对高电流负荷和与处理器并行的电容器进行供电的电池106d。电子锁装置可包括用于允许用户管理装置的一个或多个物理和/或数字接口106e(例如,键盘、触摸屏、触摸感测区域、拨号、组合锁定接口、按钮、锁孔等)。电子挂锁的电路(例如,处理器106a)可被配置为促使电容器对处理器进行供电同时电池106正驱动高电流负荷106g(在某些实施例中不是电池)。在一实施例中,电路还包括被配置为维持产品的时间值的计时器106c,其可用在在此讨论的安全通信中。在一实施例中,电子锁装置包括可用于提供电子锁装置的位置的位置确定电路106h(诸如,gps接收器)。在各种实施方案中,位置确定电路106h可以是无线收发器106f中的一部分或与无线收发器106f分开。在一实施例中,电子锁装置是电子挂锁,诸如,电子组合或键盘挂锁。在其它实施例中,电子锁装置不限于可以是或包括诸如以下装置的装置:电子门锁或键盘装置(例如,键盘门栓)、电子保险箱(例如,小文档保险箱、电子钥匙保险箱等)、电子轮圈或插锁或其它类型的橱柜锁、电子自动配件锁(例如,钩锁、挂钩销锁、拖车锁等)和/或用于汽车的方向盘或门锁、用于其它机动或非机动车辆(例如自行车、摩托车、踏板车、atv和/或雪地机动车)的车锁(例如,车轮锁或点火锁)、储存箱、具有电子锁的箱子(例如,用于小型贵重物品的文件箱或箱子)、电子线缆锁(例如,具有警报的线缆锁,诸如用于保护计算设备)、处于安全目的用于保护访问的安全锁定/挂牌装置(例如,用于在执行电力工作时保护电控制箱)、具有电子锁的锁柜和/或电子行李锁。在一实施例中,锁定装置被配置为提供到安全数据(例如,存储在存储器中等)的访问或存储安全数据。例如,并非包含物理锁定组件(或者除了物理锁定组件之外),锁定机械装置106g可包括安全存储器(例如,存储器106b可包括加密的硬盘驱动等)。这种锁定装置可基于在此讨论的认证技术(例如,经由无线收发器106f)进行通信。例如,在进行认证时,锁定装置可使用其存储的秘密密钥来对存储在存储器106b中的安全内容进行解密。解密的内容可随后被提供给另一装置(例如,经由无线收发器106f)。在一实施例中,电子锁装置包括被配置为检测用户的存在的触摸检测装置和/或接近检测装置(例如,基于用户触摸、基于用户运动等)。

参照图1b,示出了根据实施例的电子锁装置100b的示例。电子锁装置100b通常包括一个或多个锁定机械装置(例如,锁定机械装置106f)。例如,电子锁装置可包括钩环160和接口162。在一实施例,接口162包括被配置为响应于用户触摸而唤醒电子锁装置100b的触摸传感器,这将在此进行进一步讨论。在一实施例中,接口162包括被配置为响应于检测到附近用户而唤醒电子锁装置100b的接近传感器。在一实施例中,接口162包括被配置为允许用户向该锁输入代码的机械拨号(例如,用于使钩环解锁等)。各种处理和机械组件164可被嵌入在电子锁装置100b的壳体166内。例如,处理和机械组件164可包括参考图1的产品106讨论的一个或多个组件(例如,处理器106a、存储器106b、计时器106c、电池106d、无线收发器106f、锁定机械装置106g等)。

再次参照图1,在示意性实施例中,产品106包括用于根据一个或多个无线技术(例如,射频、射频识别(rfid)、wi-fi、蓝牙、zigbee、近场通信(nfc)等)进行通信的收发器106f。例如,无线收发器106g可以是被配置为(例如,经由无线收发器102f)与用户装置102建立基于蓝牙的连接的蓝牙收发器。相应地,在此讨论的电子锁装置可被配备为经由无线收发器使用另一用户接口装置(例如,用户装置102的用户输入装置102f、服务器104的网络接口104e等)而非在该锁上的组合输入或键盘输入而被锁定或解锁。例如,无线通信可用于无线锁定/解锁/控制电子锁装置(例如,在移动手机上的应用可用于锁定或解锁装置)。在一实施例中,产品106的电路还包括可用于与另一装置建立物理连接的输入/输出端口(例如,usb端口、com端口、网络端口等)。例如,这种物理连接可由制造者用来编程或以其它方式与产品106进行通信。

服务器104大体上包括用于与用户装置102进行通信并提供认证密钥和加密功能的组件(例如,处理器104a、存储器104b、网络接口104e等)。在服务器104与用户装置102之间的通信可以是直接的或经由中间网络(例如,互联网网络、蜂窝网络等)。例如,网络接口104e可包括被配置为允许服务器104建立与装置102的收发器102d的连接的物理网络组件(例如,网络卡等)。在一实施例中,来自网络接口104e的通信通过蜂窝接口被路由,并经由蜂窝网络允许服务器104与装置102通信。在一实施例中,网络接口104e允许服务器104建立与装置102的基于互联网的连接。服务器104可以是一个服务器(物理服务器或虚拟服务器)或可包括多个服务器。服务器104可包括被配置为产生并存储用于认证并加密的密钥(例如,秘密密钥、访问密钥等)的一个或多个服务。在一实施例中,存储器104b的各种模块提供服务器104的各种功能。例如,装置接口模块104c可用于建立和管理与用户装置102的通信。安全模块104d可用于安全相关功能(例如,产生和存储密钥、对用户配置文件进行加密等)。安全模块104d的输出可被提供给装置接口模块104c,使得装置接口模块可随后将安全相关数据传输到装置102。在一实施例中,可在装置接口模块104c的请求下由安全模块104d提供访问密钥和加密的用户配置文件。在接收到访问密钥和加密的用户配置文件时,装置接口模块104c可向用户装置102(例如,经由通过网络接口104e的蜂窝网络)发送访问密钥和加密的用户配置文件。按照这种方式,用户装置102不直接访问安全模块104d。在一实施例中,装置接口模块104c和安全模块104d位于两个单独的服务器104。

以下讨论描述了具有电子锁装置(即,产品106)和移动装置(即,用户装置102)的实施例。当该锁被制造时或在不久以后,两个密钥(秘密密钥和访问密钥)可被产生并附属于该锁。例如,秘密秘钥和访问私钥每一个可与该锁的唯一序列id或其它认证数字相关,并可存储在该锁的存储器中。在一个实施例中,一个或两个密钥是唯一和/或随机产生的密钥。在一实施例中,表示产品的唯一码被产生(例如,由服务器104)并且该唯一码可用于将该锁链接到其对应的密钥。例如,这种唯一码可被放置在该锁的产品包装中,使得用户可适当地配置该锁和移动装置。在一实施例中,可为安全密钥和访问密钥中的每一个提供单独的唯一码,并且每一个唯一码可由制造者与它们各自的安全码或访问码相关联。在一实施例中,服务器104还产生秘密密钥和访问密钥。例如,服务器104可在制造处理期间提供可被访问的密钥产生服务。可根据任何产生算法产生这种密钥;然而,秘密密钥和访问密钥通常不是从彼此导出的。在产生之后,秘密密钥仅存储在服务器104和该锁上。秘密密钥不被发送到移动装置。然而,访问密钥可被提供给该锁和移动装置二者。

当用户获取到锁时,用户可使用用于将该锁链接到其密钥的唯一码配置该锁和用户的移动装置。参照图2,根据实施例示出了用于配置产品和用户装置的处理的流程图。在可替换实施例中,可执行更少、附加和/或不同步骤。此外,流程图的使用并不意味着对执行的步骤的顺序的限制。

唯一码被检索(202)。例如,用户可参照所包括的产品包装以检索唯一码或者用户可以以其它方式联系制造者以接收唯一码(例如,经由制造者网站、电话等)。唯一码随后被提供给管理服务器(204)以将该锁与用户相关联。例如,用户可在移动装置上运行的应用的用户接口上输入唯一码,随后将唯一码发送到服务器。在这种示例中,用户可在由管理服务器提供并经由在移动装置上的浏览器应用访问的前端接口内输入唯一码。可选地,用户可使用移动装置扫描该锁的包装以检索并发送唯一码。例如,可按照条形码、qr码、光码等对唯一码进行编码,并且移动装置的相机可用于扫描并确定唯一码。响应于接收到来自移动装置的唯一码,服务器可检索或新产生(例如,按需)秘密密钥和访问密钥,这些可随后与唯一码相关联。

服务器可随后产生用户配置文件(206),这也可与唯一码相关联。如果还未存在用户配置文件,默认值或由用户经由移动装置提供的值可用于产生新配置文件。例如,用户可将配置文件数据输入到移动装置的应用,其将配置文件数据连同唯一码发送到服务器。如果用户已经创建了配置文件,则服务器可反过来利用由用户经由移动装置提供的新值更新用户配置文件。

一般来说,用户配置文件可包括与产品(在以上实施例中的锁)的操作相关的数据的一个或多个文件。例如,用户配置文件可包含当锁可被访问时(解锁、锁定等)的用户时间表(schedule)。该时间表可例如按照星期几来指定锁访问权限,包括每次对应权限的开始时间(小时、分钟等)和结束时间(小时、分钟等)。例如,时间表可指定电子锁可经由移动装置被解锁的时间跨度。作为另一示例,该时间表可指定期望发生典型交互的时间段,可基于这些时间段确定信任等级。相应地,在期望的时间段内发送的解锁请求相较于在非期望/非典型时间发送的请求更受该锁的信任。移动装置还可自动调整时间表。例如,移动装置可存录/登陆用户与锁的交互,并可基于用户的预期动作来设置时间表。在一实施例中,默认用户时间表被设置(例如,由制造者等)。还可提供典型用户时间表的列表以允许用户从很多配置选项中择一。按照这种方式,制造者可向用户提供各种推荐的操作设置。用户还可定制日程表以根据他或她期望定制日程表。

用户配置文件还可指定该锁的型号/序列号并且对于用户而言访问是可行的锁的类型。例如,这些访问可包括:读取该锁的软件/硬件版本信息;更新该锁的软件;读取该锁的卸扣状态;锁定、开锁、解除、读取/设置时间/时钟值;读取电池电量;读取/清除事件相关数据(例如,标记、计数器等);读取该锁的记录;读取/设置/重设该锁的键盘码;读取该锁的通信数据(例如,传输状态、传输功率等级、信道信息、寻址信息等);读取/设置为该锁存储的默认值(例如,默认解除时间,默认解锁时间等)等等。用户配置文件还可指定配置文件的起始时间和注销日期/时间(也就是说,何时配置文件开始有效和何时配置文件过期并不再有效)。用户配置文件可提供该锁的最大解除/开锁次数。用户配置文件还可提供对应移动装置的信任等级的指示(例如,由移动装置提供的时间值/时间戳是否可信)。该锁可被配置为基于装置的信任等级允许或不允许特定功能。所述信任等级可被存储为用户可以或不可以访问的独立权限(independentpermission)(例如,信任等级可被该锁的软件、移动装置或服务器等管理/调整)。例如,仅高信任的装置能够对该锁的固件升级或改变特定设置。此外,该锁可具有考虑信任等级和时间值的安全算法。例如,当装置更频繁地与该锁成功交互时,该锁可增加(或调整)该装置的信任等级。然而,如果时间值与该锁维持的时间不同步或认证失败,则该锁可降低(或调整)该装置的信任等级。由移动装置提供的时间值可与由锁维持的时间值进行比较,并且两个时间值之间的接近程度可用于指示该装置的信任等级(例如,两个时间值同步地越接近,则信任等级越高等)。如果信任等级降低到特定阈值之下,则该锁可停止或限制与移动装置的互动。信任等级可也基于以上讨论的时间表。例如,移动装置可基于该装置正在访问该锁的时间以及该时间是否在由时间表限定的特定时间段内而被认为更多信任或更少信任。由移动装置提供的时间值还可被用于使该锁的时钟与移动装置的时钟进行同步,或者可在认证通信期间以其它方式使用。讨论的配置文件项中的任何项可具有默认值(例如,制造者默认)或用户提供的值。配置文件不限于以上的数据,还可包括附加数据。配置文件还可被存储在服务器上以进行稍后检索。

除了产生用户(例如,该锁的所有者)的配置文件之外,用户可期望创建可用于与朋友、家人、同事等共享的其他游客配置文件(208)。按照这种方式,用户可基于游客配置文件授权其他人访问该锁。为此,用户可为一个或多个其他人输入期望的配置文件值(使用移动装置)。与创建用户的配置文件类似,游客配置文件数据可被发送到服务器以按照以下将进一步讨论地进行处理。游客配置文件数据可与用户初始产生其配置文件的时间同时或分开地发送到服务器。移动装置包括与正提供给服务器的配置文件的类型(例如,所有者与游客)有区别的信息。

在产生至少一个配置文件之后,将用户作为特定锁的使用者与该锁进行关联。在某些实施例中,这种关联可仅基于提供给服务器的唯一码(例如,在步骤204)。在一实施例中,在提供唯一码之后,移动装置可使用唯一码自动从该锁的制造者的数据库或服务器检索与该锁相关的其它信息(例如,连续id、型号等)。在可替换实施例中,可由用户(例如,参照产品包装等)提供连续id、型号或其它代码,可在将与用户与锁进行关联中,连同唯一码一起利用这些其它数据。在某些实施例中,可在将作为所有者的用户与锁进行关联之前还需要用户的附加认证,可经由移动装置提供这种认证。

管理服务器可随后验证接收到的配置文件数据。为了验证接收到的配置文件数据,管理服务器可对配置文件执行循环冗余校验(crc)以确保数据的完整性。还可使用其它数据验证方法。例如,在示意实施例中,可使用秘密密钥产生消息认证码(mac)(例如,密钥散列消息认证码(hmac)),并且mac用于数据完整性的验证。本公开的范围不限于特定数据完整性确认机械装置。服务器可随后利用秘密密钥对配置文件数据进行加密以将配置文件数据转换为加密的配置文件(例如,密文)。配置文件可根据任何已知的加密标准进行加密。在示意实施例中,配置文件基于算法使用ccm模式(利用密码块链接mac的nist/fips计数器模式加密),并且用作暗号密钥(cipherkey)的秘密密钥具有128比特长度。相应地,服务器可对用户配置文件加密并还利用秘密密钥产生mac。可替换地,还可使用其它标准,诸如,利用不同密钥执行加密并产生mac。

在一实施例中,在此讨论的管理服务器是管理服务器群组中的一个。在这种实施例中,第一管理服务器可被配置为处理与移动装置的通信,第二管理服务器可被配置为处理安全功能(例如,密钥的存储、密钥的产生、加密/解密处理等)。按照这种方式,第一服务器可从移动装置接收通信并且当需要安全性能时可与第二服务器进行通信。例如,第一服务器可请求由第二服务器提供的服务以对初始由第一服务器接收到的配置文件数据进行加密。第二服务器可随后进行加密并向第一服务器提供加密的数据,第一服务器可随后将加密的数据发送到移动装置。还设想其它服务器配置。

在加密之后,加密的配置文件从服务器发送到移动装置(210)。服务器还将对应访问密钥发送到移动装置(210)。在示意实施例中,访问密钥具有128比特的长度。访问密钥可由服务器使用唯一码(例如,在步骤202至204中所讨论的)确定。接收到的加密的配置文件和访问密钥随后存储在移动装置的存储器中以完成移动装置与该锁的关联。用户可随后使用其移动装置以与该锁进行交互(212)。

在产生游客配置文件的场景中,在某些实施例中,服务器可执行与为用户配置文件所执行的步骤相似的安全步骤。例如,游客配置文件可被存储并利用秘密密钥进行加密。在某些实施例中,在游客配置文件的情况下,服务器可在进行加密并发送加密的游客配置文件之前先向游客发送通知。例如,服务器可基于当用户设置游客配置文件时用户提供的信息(例如,电子邮件地址、电话号码等)向游客发送通知电子邮件或文本/sms消息/警报。在接收到该通知时,游客可随后激活由用户创建的游客的配置文件。例如,通知可包括将被点击的激活链接(例如,在邮件或消息内)或需要游客提供的码。游客还可安装在此讨论的管理应用并使用该应用利用激活码激活游客配置文件。在管理应用的激活和安装时,服务器可随后产生加密的游客配置文件和访问密钥,并且经由管理应用向游客的移动装置发送加密的游客配置文件和访问密钥。在接收加密的游客配置文件和访问密钥之后,每一个可被存储在游客的移动装置中以将游客的装置与该锁进行关联。游客可随后使用其移动装置与该锁进行交互(212)。

在配置文件被配置之后,用户(或游客)可经由移动装置与该锁无线互动。例如,用户可锁定、解锁或调整该锁的设置等。在一实施例中,该锁可唤醒/检测到附近用户的存在并开始互动处理。例如,该锁可包括接近检测功能,或者用户可主动触摸该锁(例如,在该锁上的触摸感测位置、物理按钮等),或者用户的移动装置可在公用信道上发送信号以唤醒该锁等。当该锁已被唤醒时,可试图与用户的移动装置连接。例如,该锁可广播其型号信息和序号信息(或其它唯一锁定id信息)并等待来自移动装置的响应。移动装置可接收锁定信息并将其与由管理应用维持的配置文件进行比较。例如,管理应用可同时维持多个不同锁的配置文件。例如,如果找到匹配(例如,如果为特定类型的锁找到配置文件),则认证步骤可开始验证所匹配的配置文件。如果配置文件通过验证,并且用户在特定时间具有访问权(即,基于配置文件的调度数据)并且用户的时间/装置是信任的,则用户可对该锁进行解锁并执行与该锁的其它互动。在认证之后,如果需要,该锁的时间和移动装置的时间也可被同步。

参照图3,根据实施例示出了产品与用户装置进行交互的示意处理的流程图300。在可替换实施例中,可执行更少、附加和/或不同步骤。此外,流程图的使用并不意味着对执行的步骤的顺序的限制。

在某些实施例中,该锁可从低功率待机或睡眠状态被唤醒(302)。例如,用户可触摸该锁,或者可自动检测到用户的接近。相较于该锁处于全面运转、唤醒状态,待机状态/睡眠状态可利用更少的电量(例如,电池电量)。在某些实施例中,该锁可能总是处于全功能状态,并且可能不从待机状态/睡眠状态被唤醒。

该锁可例如通过广播唯一id(例如,从其型号和/或序号形成的标识符)通知它的类型信息(304)。在该锁与装置之间的通信可通过任何类型的无线通信协议。在一实施例中,移动装置与锁经由蓝牙连接进行通信。在另一实施例中,移动装置与锁经由wi-fi连接进行通信。在另一实施例中,移动装置与锁经由zigbee连接进行通信。在另一实施例中,移动装置与锁经由nfc连接进行通信。此外,在移动装置与锁之间进行通信的任何数据(例如,发送的包)可进一步根据任何已知的安全协议(例如,wep、wpa、用户/制造者密码等)被保护。在一实施例中,在移动装置与锁之间发送的数据使用访问密钥进行加密。在此实施例中,移动装置与锁两者能够对数据加密和解密,由于移动装置与锁中的每一个具有访问密钥的存储副本。在对接收到的数据进行解密时,移动装置与锁两者还可通过对解密的数据使用mac确认方案、运行crc校验等来确保解密的数据的完整性。这种mac确认方案还允许移动装置和锁来验证来自于其合适源的数据(即,用于产生mac等的密钥的其它主体)。

用户装置接收并确认该锁的信息(例如,该锁的id)(306)。在一实施例中,将该锁的id与存储在移动装置上的配置文件的列表进行比较以确定移动装置是否与该锁相关联(例如,是否存在与该锁的id对应的配置文件)。如果没有找到相匹配的配置文件,则用户可被提示试图使用将该锁链接到秘密密钥的唯一码来创建配置文件(例如,经由处理器200)。如果为该锁找到配置文件,则用户装置可随后向该锁发送请求(例如,解锁请求等),并且在遵照该请求之前认证步骤开始。

该锁产生挑战并将挑战发送到用户装置(308)。在一实施例中,该锁产生长随机数作为挑战。在另一实施例中,该锁产生按照通信会话变化的数据(例如,唯一码(会话标识符)可作为每一次通信会话的挑战被产生)。在一实施例中,挑战作为明文被发送到移动装置;然而,在另一实施例中,可使用访问密钥对挑战进行加密。移动装置使用安全算法和访问密钥(在以上讨论的配置期间从服务器接收到的)来计算对于挑战的响应(例如,长响应)(310)。在一实施例中,移动装置使用访问密钥产生响应以及与响应一起发送的mac。在某些实施例中,在移动装置与锁之间的通信进一步基于顺序识别(例如,包或消息的顺序识别)被保护。例如,利用顺序识别,移动装置可发送应遵循每个接收到的包的具体顺序的字段。随后,锁可针对已知的顺序来验证接收到的包。可由该锁预定或产生这种已知的顺序,并可由锁在通信期间将这种已知的顺序提供给移动装置。相应地,这种顺序可连同以上描述的其它方法中的一个或多个使用(例如,会话标识符可连同预定的初始顺序字段值使用),或者这种顺序可单独使用(例如,该锁可在连接时提供顺序字段的初始值)。在一实施例中,在连接时,移动装置可从该锁接收初始顺序值,该锁验证顺序接收到的消息包含对于每次接收到的消息递增一次的初始数。该锁还验证接收到的消息使用访问密钥被加密和/或包括从中计算的mac。

移动装置可随后将响应和对应的加密配置文件(其如以上讨论被服务器使用秘密秘钥加密)发送到该锁(312)。在一实施例中,移动装置还基于移动装置的时钟发送当前时间戳。由于该锁存储秘密秘钥和访问私钥,可使用这些私钥来对从移动装置接收到的数据进行认证。在一实施例中,该锁使用访问密钥来验证对于挑战的响应正确并验证mac(314)。在一实施例中,该锁需要在随后接收配置文件并试图对配置文件进行解密之前对响应进行验证。在成功完成挑战-响应处理时,该锁可确认接收到的数据(314)。该锁可使用秘密秘钥对加密的配置文件进行解密,并且该锁还可确认解密的配置文件的数据(例如,使用从秘密秘钥产生的mac或其它确认方案,例如,执行crc校验)以确保解密成功并且该数据来自正确源(例如,加密的配置文件是被服务器产生的等)。该锁还可确保配置文件在验证时具有访问权(例如,通过参照包括在解密的配置文件中的时间表信息)。在移动装置发送时间戳的实施例中,该锁可通过将时间戳与时钟的当前时间进行比较来验证时间戳。如果响应和解密的配置文件每一个都通过验证,则该锁可遵循移动装置的请求并启动对应动作(316)。在利用以上讨论的时间戳的实施例中,还可需要接收到的时间戳位于从由该锁维持的时间开始的阈值时间值内。在该示例中,该锁可根据请求对其钩环进行解锁。

在该锁被配置为数字锁装置(例如,用于将安全数据存储在其存储器中)的另一实施例中,该锁可使用秘密秘钥的副本来对存储在该锁的内容进行解密。相应地,如果从移动装置接收到请求来检索或存储这种锁定装置的特定数据,则这种数据的传送可响应于该请求而开始。例如,如果移动装置请求存储数据并在认证期间提供的对应的加密的配置文件允许该动作并且以上讨论的认证成功,则移动装置可继续将数据(并且锁定装置可接收该数据)发送到锁定装置。锁定装置可随后将接收到的数据存储在它的存储器中。如果接收到的数据还未被加密,则锁定装置可使用它的秘密秘钥对将要存储的数据进行加密。作为另一示例,如果移动装置请求检索数据并在认证期间提供的对应的加密的配置文件允许该动作并且以上讨论的认证成功,则该锁可对所请求的数据进行解密并发送到移动装置。可替换地,该锁可发送加密的数据,并且移动装置可随后为了解密目的与服务器(还存储秘密密钥的副本)进行通信,数字锁装置还可支持任何典型的数据交互(例如,删除数据、重命名文件、复制数据、组织数据等),这可基于在对应的用户配置文件中指定的访问类型。

附加的安全相关特征也可以在此讨论的服务器实现。例如,在访问密钥或秘密密钥被折衷(compromise)的情况下,服务器的操作者或用户(经由移动应用)可启动保护措施。例如,用户可请求产生的新密钥对。在一实施例中,服务器可产生包括新产生的秘密密钥和旧的访问密钥的新密钥对,并且使用旧的秘密密钥对新密钥对进行加密(与以上讨论的配置文件的加密类似)。服务器可随后与移动装置进行通信来对密钥对改变请求进行排队。如果用户具有多个装置或者游客配置文件,则用户可选择一个或多个具体装置,在一个或多个具体装置上,密钥对改变请求被排队。在移动装置与该锁进行下一次访问尝试时,以上讨论的挑战-响应顺序可被启动;然而,所请求的动作可以是“密钥改变请求”。作为挑战响应传输中的一部分,移动装置可包括加密的新密钥对。例如,移动装置可发送响应和随后的加密的新密钥对。在确认响应时,该锁可使用旧的秘密秘钥对加密的新密钥对进行解密并对数据进行验证。如果成功,则该锁可访问来自解密的新密钥对的新秘密秘钥,并随后存储新秘密密钥以在将来交互中使用。除了更新秘密密钥之外,可通过相似的挑战-响应交换以及利用秘密密钥的加密来提供其它功能。在一实施例中,移动装置可连同利用秘密密钥进行加密的新固件版本一起发送“固件更新请求”,而非发送“密钥改变请求”。在成功认证时,该锁继续对新固件进行解密,并随后将其固件更新至新版本。

在此讨论的装置中的任何装置(例如,用户装置、产品、服务器)还可被配置为产生与其操作相关的审计跟踪。例如,可形成日志以详述在用户装置与产品的交互期间发生的事件。这可包括:服务器与用户装置事件(例如,发送加密的配置文件、发送新密钥对请求等)、用户装置与产品事件(例如,发送/响应于解锁请求、记录何时认证成功和失败等)、仅装置事件(例如,记录电子锁装置的应用错误、记录电子锁装置的卸扣状态)等。本公开的范围不限于具体日志格式。

在一实施例中,该锁被额外地配备有位置确定电路(诸如,gps装置/接收器)并可在与移动装置进行交互期间将其位置信息(例如,gps坐标)发送到移动装置。随后可由移动装置将位置信息作为该锁最后已知的位置进行存储(例如,在为该锁创建的配置文件内等)。移动装置的管理应用还可被配置有地图,使得该锁最后已知的位置可基于提供的位置信息被显示在地图上。可替换地,管理应用可允许将位置信息输出至第三方地图应用。这些位置特征可允许用户在其移动装置上打开管理应用并随后观看当最后已知位置(例如,gps坐标)被提供时该锁所位于的地图。此外,导航方向或其它特征可被提供以将用户引导至该锁。在可替换实施例中,移动装置还可包括gps装置。按照这种方式,移动装置还可在与该锁和服务器进行交互期间记录其位置信息。

在此讨论的实施例中的任何实施例中,装置可形成包括具有存储、处理和通信硬件的一个或多个计算装置的处理子系统中的一部分。装置(例如,服务器、用户装置、产品)可以是单个装置或分布式装置,并且装置的功能可由硬件执行和/或作为在非暂时性计算机可读存储介质上的计算机指令,并且功能可分布在各种硬件或基于计算机的组件。参照图4,示出了装置400,其可代表再次讨论的装置上的任意装置。装置400还可用于实现在此讨论的技术和方法。例如,装置400可包括用户装置102的组件(例如,移动手机的处理组件)。作为另一示例,装置400可包括服务器104的处理组件。作为另一示例,装置400卡包括产品106的处理组件(例如,电子锁装置的处理组件)。此外,装置400可被配置为执行在此讨论的计算(例如,与处理200和300相关的计算等),并且产生与其它装置进行通信所需的信号,对数据加密和解密,对数据进行认证等以实现本公开的技术。

装置400典型地包括与存储器404连接的至少一个处理器402。处理器402可以是任何商用cpu。处理器402可表示一个或多个处理器并可被实现为通用处理器、专用集成电路(asic)、一个或多个现场可编程门阵列(fpga)、数字信号处理器(dsp)、处理组件的群组或其它适当的电子处理组件。存储器404可包括随机存取存储器(ram)装置,其包括装置400的主存储器以及任何补充级存储器(例如,高速缓存存储器、非易失性存储器或备份存储器(例如,可编程存储器或闪存)、只读存储器等)。此外,存储器404可包括物理上位于其它地方的内存存储器(例如,在处理器402中的任何高速缓存存储器)以及用作虚拟存储器的任何存储容量(例如,作为存储在大容量存储装置上等)。装置400还包括收发器406,收发器406包括任何其它所需的网络组件或或发送器(例如,wi-fi网络组件、蓝牙组件、zigbee组件、nfc组件等)以与其它装置通信。例如,在装置400包括电子锁的实施例中,收发器可以是被配置为与用户的移动装置进行通信的蓝牙收发器。在另一示例中,在装置400包括服务器的实施例中,收发器406可以是被配置为连接服务器与网络以与移动装置进行通信的网络接口。作为另一示例,在装置400包括移动装置的实施例中,收发器406可包括被配置为与服务器进行通信的wi-fi或蜂窝收发器,并且收发器406还可包括被配置为与产品(例如,电子锁装置)进行通信的蓝牙组件。

一般来说,所执行的用以实现实施例的例程可以被实现为操作系统或特定应用中的部分、模块或指令序列。在特定实施例中,装置400包括构造为功能上执行如在此所述的用于认证的无线密钥管理所需的各个操作。在此包括模块的描述强调装置的多个方面的结构独立并示出装置的操作和责任的一个群组。在此参照图1至图3中的区段描述了装置操作中的特定实施例的更特定的描述。在本发明的范围内理解执行相似全部操作的其它群组。所述模块通常包括在计算机的各个存储器和存储器装置中在各个时刻的一个或多个指令,并且当由计算机中的一个或多个处理器读取并执行时,使计算机执行运行所公开的实施例的元件所必须的操作。此外,在全运转计算机和计算机系统的背景下已经描述了各种实施例,本领域技术人员将理解,各种实施例能够以各种形式作为程序产品被分布并且这等同适用,而不管用于实际影响分布的计算机可读介质的具体类型。

参照图5,根据一实施例,示出了用于实现公开在此的技术的用户装置500的框图。例如,用户装置500可相应于在此讨论的移动装置。在一实施例中,用户装置500是移动电话。在另一实施例中,用户装置500是膝上型计算机。在另一实施例中,用户装置500是平板计算机。在另一实施例中,用户装置500是台式计算机。一般来说,用户装置500包括处理电路502,处理电路502可包括处理器502c、存储器502b和计时器502c。处理器502a可以是任何商用处理器或任何在此讨论的处理器(例如,一个或多个处理器402等)。存储器502b包括在此讨论的任何存储器和/或存储组件。例如,存储器502b可包括处理器502a的ram和/或高速缓存。存储器502b还可包括对于用户装置500本地或远程的一个或多个存储装置(例如,硬盘驱动、闪存驱动、计算机可读介质等)。

存储器502b包括被配置为针对用户装置实现公开在此的技术的各种软件模块。例如,存储器502b包括访问密钥模块504,其被配置为根据存储器502b的其它模块的请求来存储和提供访问密钥。应用模块506被配置为提供如在此讨论的管理应用。例如,在用户装置是移动电话的实施例中,应用模块506包括与移动电话应用对应的软件,该软件可用于与服务器和/或产品进行交互。应用模块506可包括配置文件模块508,其被配置为管理配置文件产生处理,包括与服务器和产品的交互。例如,用户可通过由应用模块506提供的应用来与用户装置进行交互(例如,经由用户输入装置502f)。用户可创建于一个或多个产品对应的一个或多个配置文件,所述配置文件被发送到服务器(经由收发器502d)。服务器可对用户配置文件进行加密,并如在此讨论地向用户装置500概述(profile)加密的用户配置文件、访问密钥、mac等。应用模块还可经由在此讨论的无线收发器502e与产品(例如,电子锁装置)进行交互。响应模块510可包括产生对产品发送的挑战的响应所需的安全算法。此外,响应模块510可包括加密/解密和mac算法,这可由应用模块506在安全通信期间进行访问。存储器502b还可包括计时器502c,其可包括处理器502a的时钟组件以维持如在此描述的将使用的装置时间。

在某些实施方案中,存储器502b可包括地图模块512,地图模块512可用于基于从产品(例如,锁定装置)接收到的位置数据产生一个或多个映射界面。以下将针对图8描述一个这样的实施方案。

用户装置500还可包括无线收发器502d和无线收发器502e(可与用户装置102的收发器102d和无线收发器102e等对应),无线收发器502d和无线收发器502e包括各种通信电路。例如,在一实施例中,收发器502d可包括蜂窝组件和/或wi-fi组件,无线收发器502e可包括蓝牙组件等。用户输入装置502f可包括用于与用户装置500进行交互的一个或多个用户输入装置。例如,用户输入装置502f可包括一个或多个按钮、触摸屏、显示器、扬声器、键盘、手写笔输入、鼠标、触摸板等。

参照图6,根据一实施例,示出了用于实现公开在此的技术的服务器600的框图。服务器600包括一个或多个物理或虚拟服务器/服务器片。例如,服务器600可与一个或多个服务器104对应。一般来说,服务器600被配置为与用户装置(例如,用户装置500等)交互。服务器600可包括处理电路602。处理电路602包括处理器602a和存储器602b。作为示例,处理器602a可包括任何商用处理器,例如,服务器处理芯片、虚拟处理器等。例如,存储器602b可包括处理器602a的ram和/或高速缓存。存储器602b还可包括任何大容量存储装置(例如,硬盘驱动、闪存驱动、计算机可读介质等)。

存储器602b可包括访问密钥模块604和安全密钥模块606。访问密钥模块604和安全密钥模块606可被配置为分别安全存储访问密钥和安全密钥。访问密钥和安全密钥可与如在此讨论的产品对应。作为示例,访问密钥模块604和安全密钥模块606可对应于密钥的数据库,并且可包括被配置为存储和检索这些密钥的软件。配置文件模块608包括被配置为与产品交互(例如,管理用户和游客配置文件产生、存储以及与用户装置进行通信的处理)的软件。配置文件模块608还可与安全模块610交互,这可包括在此讨论的安全算法。例如,安全模块610可被配置为产生访问密钥、安全密钥、加密/解密数据,基于数据产生mac等并且将这些数据提供给配置文件模块608。在一实施例中,安全模块610和访问密钥模块604以及安全模块606的安全功能位于与配置文件模块608不同的单独服务器600。在该实施例中,可由适合服务器提供各种服务,使得配置文件模块608可访问安全功能并在必要时检索密钥以实现在此讨论的技术。在某些实施例中,服务器600还被配置为与产品(例如,产品106)进行交互。例如,在制造处理期间,服务器106可提供访问密钥和安全密钥以将其存储在对应产品中。

在某些实施方案中,存储器602b可包括地图模块602,地图模块602可用于基于从产品(例如,锁定装置)接收到的位置数据来产生一个或多个映射界面。以下将针对图8描述一个这样的实施方案。

参照图7,根据一实施例,示出了用于实现公开在此的技术的产品700的框图。例如,产品700可以是在此讨论的锁。一般来说,产品700包括处理电路702,处理电路702可包括处理器702a、存储器702b和计时器702c(可包括处理器702a的时钟组件,以如在此所描述的用于维持将使用的产品时间)。处理器702a可以是任何商用处理器或任何在此讨论的处理器(例如,一个或多个处理器402等)。存储器702b包括在此讨论的任何存储器和/或存储组件。例如,存储器702b可包括处理器702a的ram和/或高速缓存。例如,存储器702b还可包括一个或多个存储装置(例如,硬盘驱动、闪存驱动、计算机可读介质等)。

存储器702b包括被配置为针对产品(例如,电子锁装置等)实现公开在此的技术的各种软件模块。例如,存储器702b可包括访问密钥模块704、安全密钥模块706、安全模块708和控制模块710。访问密钥模块704和安全密钥模块706被配置为分别存储产品的对应访问密钥和安全密钥。存储器702b的其它模块可与访问密钥模块704和安全密钥模块706交互。例如,包括用于产品的安全算法(例如,加密/解密算法、mac产生/验证算法等)的安全模块708可当产生将被发送到用户装置的挑战时从访问密钥模块704检索访问密钥。作为另一示例,安全模块708可访问安全密钥模块708以检索安全密钥来对从用户装置接收到的加密的用户配置文件进行解密。控制模块710包含被配置为与存储器702b的其它模块进行交互以实现针对产品公开在此的技术的软件。例如,在产品700是锁的实施例中,在被唤醒后,控制模块710可试图与用户装置(经由无线收发器702d)配对/通信。控制模块710还可包括用于产品700的操作系统(例如,嵌入式操作系统、固件等)软件。作为另一示例,控制模块710可请求安全模块708访问用户配置文件并请求确定将执行的动作。基于用户配置和请求的许可,控制模块710可确定是否执行请求动作。例如,控制模块710可响应于请求(例如,锁的解锁请求等)来产生控制产品700的机械(和电子)组件(例如,锁定机械702f)所需的信号。作为另一示例,控制模块710可与锁定机械装置702f交互以控制与锁的用户物理交互(例如,控制模块710可从拨号接口、密钥码接口、按钮、触摸接口等接收输入)以便对锁的钩环解锁。

在某些实施例中,产品700可包括位置确定电路702g(诸如,全球定位系统(gps)装置/接收器),位置确定电路702g可一次或多次确定产品700的一个或多个位置。在某些这种实施例中,存储器702b可包括位置跟踪模块712,所述位置跟踪模块712被配置为一次或多次从位置确定电路702g接收位置数据并存储指示产品700的位置或地点的数据。以下将针对图8描述一个这样的实施方案。

无线收发器702d包括用于与另一装置(例如,用户装置500、服务器600等)进行无线通信的通信硬件(例如,蓝牙组件、射频组件、nfc组件、zigbee组件、rfid组件、wi-fi组件等)。在某些实施例中,产品700包括用于向产品供电的电池702e。在产品700是锁的实施例中,一个或多个锁定机械装置702f包括如在本文中讨论的一个或多个物理和/或电子锁定机械装置(例如,针、钩环、拨号、按钮、轴、锁孔等)。例如,一个或多个锁定机械装置702f可对应于锁定机械装置106g。

在某些实施例中,产品(例如,锁定装置)可包括位置确定电路(例如,gps接收器),并可产生和存储锁的位置信息。现在参照图8,根据示例性实施例,示出了用于收集产品的位置数据并将位置数据显示在移动装置的映射界面上的处理800的流程图。当处理800示出提供映射界面时,产品可在一个或多个移动装置/服务器不产生映射界面的情况下,产生/接收锁定装置的位置数据,存储该数据和/或将该数据发送到移动装置和/或一个或多个服务器。

产品可产生和/或接收一次或多次指示产品的位置的一个或多个位置数据(802)。在某些实施例中,可由位置确定电路(诸如,gps接收器)产生位置数据项,并可将位置数据项发送到产品的一个或多个处理器。位置数据项可被存储在存储器中(804)。

产品可接收请求以将数据发送到移动装置。在某些实施例中,该请求可特别请求来自产品的位置数据。在其它实施例中,该请求可以是连接请求,产品可在响应于与移动装置成功连接来发送位置数据。在某些实施例中,产品可在向移动装置提供位置数据之前确认来自移动装置的数据(806)。在某些这种实施例中,可使用与以上参照例如图2和图3所描述的处理(例如,发送挑战、验证对挑战的响应、使用秘密密钥确认数据)相似的处理来执行对数据的确认。产品可将位置数据项发送到移动装置(808)。在某些实施例中,产品可仅在数据通过确认的情况下将位置数据项发送到移动装置。

移动装置可从产品获得位置一个或多个数据项(810)。在某些实施例中,移动装置还可在产生映射界面中从用户获得位置参数和/或时间参数以使用(812)。例如,位置参数可指定一个或多个位置区域(例如,建筑物、地理区域等),在映射界面中显示的位置应被限制在这一个或多个位置区域。在一个这种的实施方案中,位置参数可基于映射界面的当前设置(例如,地理焦点和/或缩放水平)。时间参数可限制与结果相关联的时间。例如,在某些实施例中,用户可指示期望仅看到产品的最后已知位置。在某些实施例中,用户可希望仅看到最近一周的位置。移动装置可基于位置参数和/或时间参数来过滤一个或多个位置数据项(例如,在产生映射界面之前)(814)。例如,可从将在映射界面内显示的数据集合中移除不满足参数的项。

移动装置可产生映射界面,该映射界面示出由一个或多个位置数据项指示的一个或多个位置(例如,过滤项)(816)。在某些实施方案中,移动装置可被配置为产生全部渲染的映射界面,包括建筑物、兴趣点和/或其它地图元素。在某些实施方案中,移动装置可由第三方产生的映射界面上示出作为重叠物的位置信息,诸如,准许自定义位置点的增加物/重叠物的映射界面。映射界面可被发送到移动装置的显示器。在某些实施方案中,一个或多个位置数据项可被发送到一个或多个服务器(818)。例如,在一个实施方案中,移动装置可被配置为示出产品的最后已知位置,并且由一个或多个服务器管理的接口可允许用户看到在指定时间范围内的若干不同位置。

总体参照图9至图15b,根据示例性实施例示出了使用用户装置(例如,移动装置)与产品(诸如,锁定装置)进行交互中使用的其它实施例。在某些实施例中,以下讨论的特征可用于允许用户装置与产品在没有将用户密钥存储(例如,永久存储)在产品上(例如,在制造阶段)的情况下进行安全通信。例如,用户密钥可从用户装置传输到产品并存储并临时使用(例如,在通信会话期间)。应理解:根据本公开的各种实施方案,以上参照图1至图8描述的特征可与以下参照图9至图15b所述的实施例一起使用,反之亦然。

特别参照图9,根据实施例示出了产品与用户装置进行交互的示意处理的流程图900。在可替换实施例中,可执行更少、附加和/或不同步骤。此外,流程图的使用并不意味着对执行的步骤的顺序的限制。在某些实施例中,以下涉及的锁密钥可与以上讨论的秘密密钥类似或等同,以下涉及的用户密钥可与以上讨论的访问密钥类似或等同。

在某些实施例中,该锁可从低功率待机或睡眠状态被唤醒(902)。例如,用户可触摸该锁(例如,可按压该锁上的按钮),或者可自动检测到用户的接近(例如,使用接近传感器,诸如nfc传感器)。相较于该锁处于全面运转、唤醒状态,待机状态/睡眠状态可利用更少的电量(例如,电池电量)。在某些实施例中,该锁可能总是处于全功能状态,并且可能不从待机状态/睡眠状态被唤醒。在某些实施例中,在从低功率睡眠状态唤醒之后,该锁可广播或以其它方式通知与该锁相关联的唯一锁标识符(例如,从其型号和/或序号形成的标识符)。

用户装置接收锁标识符(904)。在一实施例中,将该锁标识符与存储在移动装置上的锁标识符的集合进行比较以确定移动装置是否与该锁相关联(例如,是否存在与该锁标识符对应的配置文件)。例如,每个用户配置文件可具有识别锁的锁标识符的列表,与用户配置文件相关联的用户准许访问。如果没有找到相匹配的配置文件,则用户可被提示使用将锁与锁密钥链接的唯一码创建配置文件(例如,经由处理200)。如果找到锁的配置文件,则用户装置可随后将配置文件发送到锁(906)。该配置文件与至少一个锁标识符(并因此锁)相关联并由服务器使用由服务器和锁存储的锁密钥来认证和加密。在某些实施例中,锁密钥可仅被存储在服务器和锁中,而不存储在用户的移动装置中。如果该锁密钥被篡改,则密钥可仅在一把锁上使用,并且在处理中,将其拔出锁可能会破坏锁。锁密钥可用于对于该锁密钥相关联的锁的一个或多个用户(例如,每个用户)的配置文件进行认证并加密/解密。

该锁接收到配置文件并使用锁密钥来对配置文件解密和认证。在一实施例中,该锁产生安全码(908)。在某些实施例中,安全码可以是序号或连续识别(例如,包或消息的顺序识别)。例如,利用顺序识别,移动装置可发送将应遵循每个接收到的包或命令的具体顺序的字段。该锁可随后针对已知序列验证接收的包。在一实施例中,移动装置从锁接收初始序号,并且该锁验证顺序接收到的消息包含对于每次接收到的消息递增一次的初始数。

在某些实施例中,安全码可在有限时间段内是有效的。例如,在某些实施例中,安全码可在第一次使用码之后的特定时间段内是有效的。在某些实施例中,安全码可仅对特定数量的命令、事务(transaction)和/或通信会话是有效的。在某些这种实施例中,安全码可仅用于单次命令或单次通信会话,并在其后不可再用。

可由该锁预定或产生这种已知的顺序,并可由锁在通信期间将这种已知的顺序提供给移动装置。相应地,这种顺序可与以上描述的其它方法中的一个或多个一起使用(例如,会话标识符可与预定初始顺序字段值一起使用),或者顺序可单独使用(例如,该锁可在连接时提供顺序字段的初始值)。该锁还可验证接收到的消息使用用户密钥被加密和/或包括从中计算的mac。

移动装置可随后产生加密的命令并将加密的命令发送到该锁,加密的命令包括安全码并使用用户密钥加密(910)。结合对具体命令和/或通信会话唯一的安全码(诸如,序号),使用用户密钥对通信认证以及加密/解密可有助于预防通信的重放、嗅探和操纵攻击。在一实施例中,移动装置还基于移动装置的时钟发送当前时间戳。在某些实施例中,在用户认证mac的产生中包括安全码并且在加密的命令中不包括安全码。

该锁可对加密的命令进行确认(912)。在某些实施例中,该锁通过一下步骤对加密的命令进行确认:使用从解密的用户配置文件获得的用户密钥对加密的命令进行解密;确定安全码是否有效;和/或使用用户密钥对解密的命令进行认证。在某些实施例中,锁和移动装置两者可验证安全码字段与预期一致,并且可在连接时建立预期的初始状态。在某些实施例中,服务器还可产生将产品连接到产生的锁密钥的码。在某些实施例中,该码可与该锁一起提供(例如,作为在包装内固定的说明书的标签)。如上所述,服务器还可产生该锁的唯一标识符(序列标识符),该唯一标识符可与产品码不同,以防止攻击者试图猜测游客序号并拥有仍处于闲置状态的锁的访问权。

在某些实施例中,可在产生针对通信会话的单独码(诸如,用户认证mac)时使用安全码。在某些这种实施例中,在第一示例中,可将安全码从该锁发送到移动装置,并且安全码可被包括在从移动装置发送到该锁的第一加密的命令中。在后续通信中,可包括安全码或可以不包括安全码。该锁可在后续通信中验证用户认证mac,并且通过验证mac,该锁轮流间接验证安全码。因此,在某些实施例中,安全码可不包括在一个或多个消息/命令的负荷中。

在某些实施例中,该锁还可确保在验证时配置文件具有访问权(例如,通过参照包括在解密的配置文件中的时间表信息)。在移动装置发送时间戳的实施例中,该锁可通过将时间戳与该锁的当前时间进行比较来验证时间戳。在利用以上讨论的时间戳的实施例中,还可需要接收到的时间戳在从由时钟维持的时间起的阈值时间内。在实施例中(例如,如果有用户配置文件权限许可),来自移动装置的时间戳可用于同步或更新该锁的时间。

如果配置文件和命令都通过验证,则该锁可遵循移动装置并启动对应动作(914)。在实施例中,该锁可激活物理锁定组件。在实施例中,在激活物理锁定组件之后,该锁广播其锁标识符,移动装置发送用户配置文件,该锁发送新安全码,并且移动装置发送包括新安全码的另一加密的命令(例如,读取状态、同步时间、审计数据、修改配置等)。

参照图10,根据实施例,示出了从特定用户装置移除用户配置文件的示意处理的流程图1000。在可替换实施例中,可执行更少、附加和/或不同步骤。此外,流程图的使用并不意味着对执行的步骤的顺序的限制。可使用从特定用户装置移除用户配置文件的处理,例如用于当特定用户装置丢失、被偷或以其它方式用户不再拥有时防止第三方具有该锁的访问权。

在实施例中,服务器可从用户的信任装置接收特定用户装置的选择(1002)。在某些实施例中,服务器可通过从装置接收认证数据来确定该装置可信,其中用于移除用户配置文件的请求是从该装置接收到的。例如,用户可使用装置来访问装置上的应用和/或由服务器托管的前端接口,并使用认证数据(诸如,用户名称和密码)登陆账户。用户可随后提供选择的特定用户装置已丢失的指示。

在实施例中,服务器可在特定用户装置上移除所有的用户配置文件(1004)。在某些实施例中,服务器可通过将命令发送到在丢失的装置上运行的应用来移除配置文件。在丢失的装置上操作的应用可随后从该装置上移除用户配置文件数据。

服务器可向用户通知用户的配置文件是否成功移除(1006)。如果所有用户配置文件已成功移除,则所述处理终止(1016)。在该示例中,可认为密钥仍然是安全的,并且可以不设置密钥更改。在某些实施例中,即使配置文件已成功移除也可发送密钥改变命令。例如,在某些实施例中,即使已经成功从丢失装置移除配置文件,改变配置文件/密钥也可以是默认响应。

在某些实施例中,可能不能成功执行从丢失装置移除配置文件的操作。例如,电话可能不在线(例如,可能被关机、可能无法进行网络连接或在没有网络访问的位置等)。在实施例中,响应于移除所有用户配置文件不成功,服务器针对在特定移动装置上没有成功移除的每个用户配置文件产生密钥改变命令并将密钥改变命令发送发到所有信任装置,其中所有信任装置包含与没有成功移除的用户配置文件相关联的锁标识符(1010)。密钥改变命令包括与由服务器使用原始锁密钥加密的锁相关联的新锁密钥。在某些实施例中,因为丢失或被偷的移动装置可用于取得该锁的访问权并影响该锁的所有信任用户,所以每个信任用户可具有通过信任装置影响密钥改变的能力。在实施例中,当信任装置访问锁时,发生与锁交互的处理(例如,处理900)并由该锁接收、确认并启动密钥改变命令。在某些实施例中,在锁内发生的密钥改变的速度可以是用户关注的因素以及锁的地理分布。用户可尽可能地访问所有锁以使用旧电话消除某人的威胁,或者可随着时间的推移在锁在正常使用中被访问时完成。向其他用户发送密钥更改命令的能力允许其他人访问锁并代表用户更改锁密钥。在某些实施例中,密钥改变命令可被直接发送到锁(例如,使用在锁中的无线收发器)。在实施例中,服务器确认新锁密钥成功存储在锁中(1012)。在实施例中,服务器向信任装置发送更新后的用户配置文件(1014)。可由服务器使用新锁密钥对更新后的用户配置文件进行认证和加密,并且更新后的用户配置文件可包括新用户密钥。

参照图11,根据实施例,示出了从游客用户的装置移除游客用户配置文件的处理的流程图1100。在可替换实施例中,可执行更少、附加和/或不同步骤。此外,流程图的使用并不意味着对执行的步骤的顺序的限制。可使用移除游客用户的特定用户配置文件的处理,例如用于撤销先前由用户授予游客的对锁的访问权。

在实施例中,服务器接收游客用户的一个或多个特定用户配置文件的选择以撤销用户的移动装置(1102)。在某些实施例中,在接收选择之前,移动装置可先经过认证(例如,通过从用户接收认证信息,诸如,用户名称和密码)。在实施例中,服务器可从游客用户的移动装置移除一个或多个特定用户配置文件(1104)。在某些实施例中,服务器可从游客用户的所有移动装置移除一个或多个特定用户配置文件。

在实施例中,服务器可向用户通知关于是否成功移除特定用户配置文件(1106)。如果已成功移除所有用户的配置文件,则处理终止(1016)。在某些实施例中,即使成功移除了所有配置文件,也可发送密钥改变命令。

在某些实施例中,用户配置文件的移除可能是不成功的(例如,由于游客装置不在线或其它方式不可达)。在实施例中,响应于没有成功移除所有用户配置文件,服务器针对在游客用户的移动装置上没有成功移除的每个特定用户配置文件产生密钥改变命令并将密钥改变命令发送到所有信任装置,其中所有信任装置包含与没有成功移除的这些特定用户配置文件相关联的锁标识符(1010)。密钥改变命令包括与由服务器使用原始锁密钥加密的锁相关联的新锁密钥。在某些实施例中,因为如果特定用户配置文件不被移除游客用户可仍然取得该锁的访问权并影响该锁的所有信任用户,所以每个信任用户可具有通过信任装置影响密钥改变的能力。在实施例中,当信任装置访问锁时,发生与锁交互的处理(例如,处理900)并由该锁接收、确认并启动密钥改变命令。在某些实施例中,服务器确认新锁密钥成功存储在锁中(1112)。在实施例中,服务器将更新后的用户配置文件发送到信任装置,其中由服务器使用新锁密钥对更新后的用户配置文件进行认证和加密,并且更新后的用户配置文件包括新用户密钥(1114)。

在某些实施例中,代替或除了使用密钥改变从游客装置撤销配置文件之外,可利用黑名单。例如,访问将被撤销的一个或多个游客装置的唯一标识符和/或永久标识符可被添加到禁止装置的黑名单并存储在一个或多个锁内。这种方法可在不重新分配新锁/用户配置文件的情况下允许访问控制。然而,在某些示例中,如果游客用户主动尝试避免访问被撤销,则用户可让游客装置离线并试图检索密钥。在这种示例中,可更安全地替换密钥和用户配置文件。在某些实施例中,黑名单可与密钥改变步骤结合使用以提供额外的安全层。

参照图12,根据实施例示出了授权游客用户访问锁的示意处理的流程图1200。在可替换实施例中,可执行更少、附加和/或不同步骤。此外,流程图的使用并不意味着对执行的步骤的顺序的限制。

在实施例中,服务器从用户的移动装置接收从存储在用户的移动装置上的锁标识符的集合对与一个或多个锁相关联的一个或多个锁标识符的选择以与游客用户共享(1202)。在某些实施例中,可从与授权访问的用户的一个或多个用户配置文件相关联的锁列表执行所述选择。

在实施例中,服务器从用户的移动装置接收游客配置文件请求(1204)。在某些实施例中,游客用户配置文件请求可被配置,并且配置游客配置文件请求可包括修改当由游客可访问该锁时限定的游客用户时间表数据、撤销设置游客用户配置文件的到期时间的数据、在到期时游客用户配置文件无效和/或由移动装置保持的时间是否可信的指示。在某些实施例中,可由授权游客访问的用户配置游客配置文件的这些特性和/或其它特性中的一个或多个特性。

在实施例中,服务器基于游客用户配置文件请求和游客用户密钥来产生认证并加密的游客用户配置文件(1206)。在某些实施例中,使用与该将被共享的锁相关联的锁密钥来对认证并加密的游客用户配置文件进行加密,认证并加密的游客用户配置文件包括游客用户密钥。在某些实施例中,游客用户密钥被存储在游客用户配置文件内部并以移动装置可读的方式存储。游客用户密钥针对每个单独游客用户唯一产生。这防止游客用户使用另一用户的密钥。

服务器可确定游客用户的移动装置是否可访问游客用户配置文件(1208)。在某些实施例中,服务器可确定游客用户是否是注册用户和/或是否具有与安装在游客用户的移动装置上的锁进行交互的应用。

在实施例中,当服务器确定游客用户的移动装置可访问游客用户配置文件(例如,游客用户是注册用户和/或游客用户移动装置具有安装的应用)时,服务器从授权游客访问的用户的移动装置接收在用户的移动装置上对游客用户的选择(例如,从注册的用户的集合)(1210)。在某些实施例中,游客用户的选择可以是来自对游客用户的移动装置的搜索。在实施例中,服务器在接收到选择之后将游客用户配置文件和游客用户密钥发送到游客用户的移动装置(1212)。在实施例中,服务器将与游客用户配置文件相关联的锁标识符添加到在游客用户的移动装置上的锁标识符的集合(1214)。

在实施例中,当服务器确定游客用户的移动装置不能访问游客用户配置文件(例如,游客用户不是注册用户和/或没有应用安装在游客用户的移动装置上)时,服务器产生消息并将消息发送到游客用户的移动装置(1216)。在某些实施例中,该消息可包括允许访问一个或多个锁密钥的码和/或到认证资源(例如,网页)的链接,通过该链接,游客用户可输入码和/或下载应用和/或游客配置文件。在某些实施例中,该消息可以是电子邮件或sms/文本。在某些实施例中,该链接可以是激活链接。在某些实施例中,该码可以是启动码或认证码。

在实施例中,服务器确定该链接已被用于允许访问在游客用户的移动装置上的用户配置文件(1218)。在某些实施例中,该链接可允许游客用户将应用下载到移动装置,并且用户可输入注册信息以在链接的资源上和/或通过下载的应用来创建新的游客账户。在某些实施例中,服务器确定游客用户的移动装置现在可访问用户配置文件。在实施例中,服务器可确定在游客用户的移动装置上已输入码(1220)。在实施例中,服务器将游客用户配置文件和游客用户密钥发送到游客用户的移动装置(1212)。在实施例中,服务器将与游客用户配置文件相关联的锁标识符添加到游客用户的移动装置上的锁标识符的集合(1214)。

参照图13,根据实施例,示出了用于配置产品和用户装置的处理1300的流程图。在可替换实施例中,可执行更少、附加和/或不同步骤。此外,流程图的使用并不意味着对执行的步骤的顺序的限制。

锁标识符被检索(1302)。例如,用户可参照所包括的产品包装以检索锁标识符,或者用户可以以其它方式联系制造者以接收锁标识符(例如,经由制造者网站、电话等)。如果用户是注册用户,则用户可在检索和/或输入锁标识符之前打开或登录在用户的移动装置上的应用。如果用户不是注册用户,则用户可创造新账户并利用管理服务器来注册该账户。在某些实施例中,用户可将应用下载到用户的移动装置并通过该应用创建账户。在某些实施例中,用户可通过从服务器提供给移动装置的前端接口(例如,通过在移动装置上的浏览器应用)来创建账户。

锁标识符随后可被提供给管理服务器(1304)以便将锁与用户进行关联。例如,用户可在移动装置上运行的应用的用户接口上输入锁标识符,随后移动装置将锁标识符发送到服务器。在一个这样的示例中,用户可在由管理服务器提供的前端接口内输入锁标识符并经由在移动装置上的浏览器应用访问。可替换地,用户可使用移动装置扫描该锁的包装以检索并发送锁标识符。例如,锁标识符可按照条形码、qr码、光码等进行编码,并且移动装置的相机可用于扫描并确定唯一码。响应于接收到来自移动装置的锁标识符,服务器可检索或新产生(例如,根据需求)锁密钥和用户密钥,其可随后与锁标识符进行关联。在某些实施例中,服务器可例如通过将锁标识符与已知为有效标识符的标识符的集合进行比较来验证锁标识符(例如,产品码)有效。

服务器可随后产生用户配置文件(1306),该用户配置文件也可与锁标识符相关联。如果还未存在用户配置文件,则默认值或由用户经由移动装置提供的值可用于产生新的配置文件。例如,用户可将配置文件数据输入移动装置的应用,移动装置将配置文件数据连同锁标识符一起发送到服务器。如果用户已创建配置文件,则服务器可反过来利用由用户经由移动装置提供的新值来更新用户配置文件。

一般来说,用户配置文件可包括与产品(在以上实施例中为锁)的操作相关的数据的一个或多个文件。例如,用户配置文件可包括当锁可被访问(解锁、锁定等)时的用户时间表。所述时间表可例如按照星期几指定锁访问权限,其包括针对每次对应许可的开始时间(小时、分钟等)和结束时间(小时、分钟等)。例如,时间表可指定电子锁可经由移动装置被解锁的时间跨度。作为另一示例,该时间表可指定期望发生典型交互的时间段,可基于这些时间段确定信任等级。相应地,在期望的时间段内发送的解锁请求相较于在非期望/非典型时间发送的请求更受该锁的信任。移动装置还可自动调整时间表。例如,移动装置可存录/记录用户与锁的交互,并可基于用户的预期动作来设置时间表。在一实施例中,默认用户时间表被设置(例如,由制造者等)。此外,还可提供典型用户时间表的列表以允许用户从很多配置选项中择一。按照这种方式,制造者可向用户提供各种推荐的操作设置。用户还可定制日程表以根据他或她期望定制日程表。

用户配置文件还可指定该锁的型号/序列号并且对于用户而言访问是可行的锁的类型。例如,这些访问可包括:读取该锁的软件/硬件版本信息;更新该锁的软件;读取该锁的卸扣状态;锁定、开锁、解除、读取/设置时间/时钟值;读取电池电量;读取/清除事件相关数据(例如,标记、计数器等);读取该锁的记录;读取/设置/重设该锁的键盘码;读取该锁的通信数据(例如,传输状态、传输功率等级、信道信息、寻址信息等);读取/设置为该锁存储的默认值(例如,默认解除时间,默认解锁时间等)等等。用户配置文件还可指定配置文件的起始时间和注销日期/时间(也就是说,何时配置文件开始有效以及何时配置文件过期并不再有效)。用户配置文件可提供该锁的最大解除/开锁次数。用户配置文件还可提供对应移动装置的信任等级的指示(例如,由移动装置提供的时间值/时间戳是否可信)。该锁可被配置为基于装置的信任等级允许或不允许特定功能。所述信任等级可被存储为用户可以或不可以访问的独立权限(例如,信任等级可被该锁的软件、移动装置或服务器等管理/调整)。例如,仅高信任的装置能够对该锁的固件升级或改变特定设置。此外,该锁可具有考虑信任等级和时间值的安全算法。例如,当装置更频繁地与该锁成功交互时,该锁可增加(或调整)该装置的信任等级。然而,如果时间值与该锁维持的时间不同步或认证失败,则该锁可降低(或调整)该装置的信任等级。由移动装置提供的时间值可与由锁维持的时间值进行比较,并且两个时间值之间的接近程度可用于指示该装置的信任等级(例如,两个时间值同步地越接近,则信任等级越高等)。如果信任等级降低到特定阈值之下,则该锁可停止或限制与移动装置的互动。信任等级可也基于以上讨论的时间表。例如,移动装置可基于该装置正在访问该锁的时间以及该时间是否在由时间表限定的特定时间段内而被认为更多信任或更少信任。由移动装置提供的时间值还可被用于使该锁的时钟与移动装置的时钟进行同步,或者可在认证通信期间以其它方式使用。讨论的配置文件项中的任何项可具有默认值(例如,制造者默认)或用户提供的值。配置文件不限于以上的数据,还可包括其它数据。配置文件还可被存储在服务器上以进行稍后检索。

除了产生用户(例如,该锁的所有者)的配置文件之外,用户可期望创建可用于与朋友、家人、同事等共享的其它游客配置文件(1308)。按照这种方式,用户可基于游客配置文件授权其他人访问该锁。为此,用户可为一个或多个其他人输入期望的配置文件值(使用移动装置)。与创建用户的配置文件类似,游客配置文件数据可被发送到服务器以按照以上相对于图12所讨论的进行处理。游客配置文件数据可与用户初始产生其配置文件的时间同时或分开地发送到服务器。移动装置包括与正提供给服务器的配置文件的类型(例如,所有者与游客)有区别的信息。

在产生至少一个配置文件之后,将用户作为特定锁的使用者与该锁进行关联。在某些实施例中,这种关联可仅基于提供给服务器的唯一码(例如,在步骤1304)。在一实施例中,在提供唯一码之后,移动装置可使用唯一码自动从该锁的制造者的数据库或服务器检索与该锁相关的其它信息(例如,连续id、型号等)。在可替换实施例中,还可由用户(例如,参照产品包装等)提供连续id、型号或其它代码,可在将与用户与锁进行关联中,连同唯一码一起利用这些其它数据。在某些实施例中,可在将作为所有者的用户与锁进行关联之前还需要用户的其它认证,可经由移动装置提供这种认证。

在某些实施例中,管理服务器可验证接收到的配置文件数据。为了验证接收到的配置文件数据,管理服务器可对配置文件执行循环冗余校验(crc)以确保数据的完整性。还可使用其它数据验证方法。例如,在示意实施例中,可使用锁密钥产生消息认证码(mac)(例如,密钥散列消息认证码(hmac)),并且mac用于数据完整性的验证。本公开的范围不限于特定数据完整性确认机械装置。服务器可随后利用锁密钥对配置文件数据进行验证和加密以将配置文件数据转换为认证且加密的用户配置文件(例如,密文)。配置文件可根据任何已知的加密标准进行加密。用户配置文件还包括对应的用户密钥。用户密钥可经由服务器使用锁标识符来确定(例如,在步骤1302至步骤1304中所讨论的)。

在加密之后,加密的配置文件从服务器发送到移动装置(1310)。接收到的加密的配置文件和用户密钥随后被存储在移动装置的存储器中以完成该锁与移动装置的关联。用户随后可使用其移动装置与该锁进行交互(1312)。在某些实施例中,用户可使用移动装置上的应用来定制锁输入。例如,用户可选择锁配置文件并编辑配置以提供定制信息,诸如但不限于,锁名称、说明书、gps坐标、图片、所允许的游客用户等。

参照图14,根据另一实施例示出了用于实现公开在此的技术的产品1400的框图。例如,产品1400可以是如在此讨论的锁。一般来说,产品1400包括处理电路1402,处理电路1402可包括处理器1402a、存储器1402b和计时器1402c(可包括处理器1402a的时钟组件,以如在此所描述的用于维持将使用的产品时间)。处理器1402a可以是任何商用处理器或任何在此讨论的处理器(例如,一个或多个处理器402等)。在实施例中,处理器1402a可被配置为将锁标识符和锁密钥存储在存储器中,经由收发器广播锁标识符,经由收发器从移动装置接收加密的用户配置文件,使用锁密钥对加密的用户配置文件进行认证和解密,经由收发器发送安全码,经由收发器从移动装置接收加密的命令,对加密的命令进行验证,其中对加密的命令进行验证包括:使用来自解密的用户配置文件的用户密钥来对加密的命令进行解密;确定安全码是否有效;使用用户密钥对解密的命令进行认证;响应于确认所述命令,启动由命令指定的电子锁装置的动作。在某些实施例中,安全码可以是序号。在某些实施例中,安全码在有限时间内可以是有效的。

存储器1402b包括在此讨论的存储器和/或存储组件中的任何一种。例如,存储器1402b可包括处理器1402a的ram和/或高速缓存。存储器1402b还可包括一个或多个存储装置(例如,硬盘驱动、闪存驱动、计算机可读介质等)。存储器1402b包括被配置为针对产品(例如,电子锁装置等)实现公开在此的技术的各种软件模块。例如,存储器1402b可包括锁密钥模块1406、安全模块1408和控制模块1410。锁密钥模块1406被配置为存储产品对应的锁密钥。在某些实施例中,例如,产品1400执行处理1300,其中密钥是用户配置文件中的一部分,不需要单独存储用户密钥。存储器1402b的其它模块可与锁密钥模块1406进行交互。例如,安全模块1408可访问锁密钥模块1408以检索安全密钥来对从用户装置接收到的加密的用户配置文件进行解密。控制模块1410包含被配置为与存储器1402b的其它模块进行交互以实现针对产品公开在此的技术的软件。例如,在产品1400是锁的实施例中,在被唤醒后,控制模块1410可试图与用户装置(经由无线收发器1402d)配对/通信。控制模块1410还可包括用于产品1400的操作系统(例如,嵌入式操作系统、固件等)软件。作为另一示例,控制模块1410可请求安全模块1408访问用户配置文件和命令以确定将执行的动作。基于用户配置文件和命令的许可,控制模块1410可确定是否执行请求动作。例如,控制模块1410可响应于请求(例如,锁的解锁请求等)来产生控制产品1400的机械(和电子)组件(例如,锁定机械1402f)所需的信号。作为另一示例,控制模块1410可与锁定机械装置1402f交互以控制与锁的用户物理交互(例如,控制模块1410可从拨号接口、密钥码接口、按钮、触摸接口等接收输入)以便对锁的钩环解锁。

在某些实施例中,产品1400可包括位置确定电路1402g(诸如,全球定位系统(gps)装置/接收器),位置确定电路1402g可一次或多次确定产品1400的一个或多个位置。在某些这种实施例中,存储器1402b可包括位置跟踪模块712,所述位置跟踪模块712被配置为一次或多次从位置确定电路1402g接收位置数据并存储指示产品1400的位置或地点的数据。

无线收发器1402d包括用于与另一装置(例如,用户装置500、服务器600等)进行无线通信的通信硬件(例如,蓝牙组件、射频组件、nfc组件、zigbee组件、rfid组件、wi-fi组件等)。在某些实施例中,产品1400包括用于向产品供电的电池1402e。在产品1400是锁的实施例中,一个或多个锁定机械装置1402f包括如在本文中讨论的一个或多个物理和/或电子锁定机械装置(例如,针、钩环、拨号、按钮、轴、锁孔等)。例如,一个或多个锁定机械装置1402f可对应于锁定机械装置106g。

参照图15,根据实施例,示出了产品与用户装置交互的示意数据流程的数据流程图。为了可读性的目的,图15分为第一部分图15a和第二部分图15b。根据一示例性实施例,所示的数据流示图示出了可用于完成服务器、移动应用与锁之间的安全通信的数据流,其用于执行上面讨论的功能中的一个或多个(例如,相对于图9至图14)。

在本说明说中涉及的“一实施例”、“某些实施例”或“实施例”标识结合实施例描述的具体特征、结构或特性被包括在至少一个实施例中。在说明书中各处出现的短语“在一实施例中”或“在某些示例中”并非必须全部参照同一实施例,也不是与其它实施例相互排斥的单独实施例或替代实施例。此外,描述了可由某些实施例而不是由其它实施例展现的各种特征。类似地,描述了可能是对于某些实施例的要求而不是其它实施例的要求的各种要求。

以上参照附图描述了本公开。这些附图示出了实现本公开的系统和方法以及程序的特定实施例的特定细节。然而,参照示图描述本公开并不应被理解为强加在本公开上的任何限制(可能在附图中存在)。本公开考虑用于实现其操作的任何机器可读介质上的方法、系统和程序产品。本公开的实施例可使用现有的计算机处理器或者通过为此目的或另一目的而结合的专用计算机处理器或通过硬连线系统来实现。除非使用短语“用于…的装置”明确地陈述,否则本文中的权利要求要素不应根据u.s.c第35卷第112节第六段的规定来解释。此外,不管元件、组件或方法步骤是否在权利要求中被明确地陈述,本公开中的元件、组件或方法步骤不旨在专用于公众。

在本公开范围内的实施例包括程序产品,其包括用于承载或具有存储于其上的机器可执行指令或数据结构的机器可读介质。这种机器可读介质可以是任何可用的介质,其可由通用或专用的计算机或具有处理器的其它机器访问。通过示例的方式,这种机器可读介质可包括ram、rom、eprom、eeprom、cdrom或其它光盘存储、磁盘存储或其它磁存储设备或可用于以机器可执行指令或数据结构的形式承载或存储所期望的程序代码并且其可由通用或专用的计算机或具有处理器的其它机器访问的任何其它介质。以上各项的组合也包括在机器可读介质的范围内。机器可执行指令例如包括下述指令和数据,其使通用计算机、专用计算机或专用处理机器实施特定的功能或功能组。虽然计算机或机器可读存储介质不是传播信号(即,是有形的和非瞬态的),但是计算机或机器可读存储介质可以是在人工产生和传播信号中进行编码的计算机程序指令的源或目的地。

在一实施例中可通过包括机器可执行指令(诸如程序代码)的程序例如按照在联网环境下由机器执行程序模块的形式实现的方法步骤的广义语境下描述的本公开的实施例。一般来说,程序模块包括执行具体任务或实现具体抽象数据类型的具体线程、程序、对象、组件、数据结构等。机器可执行指令、相关联的数据结构和程序模块表示用于执行公开在此的方法的步骤的程度代码的示例。这种可执行指令或相关联的数据结构的具体顺序表示按照这些步骤实现描述在此的功能的对应动作的示例。

本公开的实施例可在使用逻辑连接到一个或多个具有处理器的远程计算机的联网环境下被实践。逻辑连接可包括在此呈现仅为示例而非限制的局域网(lan)和广域网(wlan)。这种网络环境在办公室或企业范围的计算机网络、内联网和因特网中是常见的,并且可以使用各种各样的不同通信协议。本领域技术人员将理解,这种网络计算环境将通常涵盖许多类型的计算机系统配置,包括个人计算机、手持装置、移动电话,、多处理器系统、基于微处理器或可编程消费电子产品、网络pc、服务器、迷你计算机、大型计算机等。本公开的实施例也可在分布式计算环境中被实践,在分布式计算环境中,由通过通信网络链接(例如,通过硬线链接、无线链接或通过硬线链接和无线链接的结合)的本地处理装置和远程处理装置执行任务。在分布式计算环境中,程序模块可位于本地记忆存储装置和远程记忆存储装置。

用于实现本公开的全部系统或部分的示例性系统可包括以计算机形式的通用计算装置,其包括处理单元、系统存储器和将包括系统存储器至处理单元的各个系统组件连接的系统总线。系统存储器可包括只读存储器(rom)和随机存取存储器(ram)。计算机还可包括磁硬盘驱动器,用于从磁硬盘读取以及写入磁硬盘,磁盘驱动器,用于从可移除磁盘读取以及写入可移除磁盘以及光盘驱动器,用于从可移除光盘读取以及写入可移除光盘(诸如,cd-rom或其它光学介质)。驱动器及其相关联的机器可读介质提供用于计算机的机器可执行指令、数据结构、程序模块和其它数据的非易失性存储。

应注意,虽然提供在此的流程图示出了方法步骤的具体次序,但是应理解这些步骤的次序可不同于所描绘的次序。此外,两个或更多步骤可以同时或部分同时进行。这种变化将取决于所选择的软件和硬件系统以及取决于设计者的选择。应理解,所有这类变化都在本公开的范围之内。同样地,可用标准编程技术来完成软件和网页实施方式,上述标准编程技术具有基于规则的逻辑和其它逻辑来完成各种不同的连接步骤、处理步骤、比较步骤和决定步骤。还应理解,如在本文和权利要求中使用的词语“组件”意图包括使用软件代码中的一行或更多行的实施方式和/或硬件实施方式和/或用于接收手工输入的等同物。

为了示意和描述的目的,已经呈现了对本公开的实施例的前述描述。其并不旨在穷举或将本公开限制为所公开的精确形式,并且根据上述教导,修改和变化是可能的,或者可以从本公开的实践中获得。实施例被选择和描述以解释本公开的原理及其实际应用,以使本领域技术人员能够在各种实施例中以及在适于所设想的特定使用的各种修改的情况下利用本公开。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1