相關申請的交叉引用
本申請是國際申請,其要求于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或其它光學介質)。驅動器及其相關聯的機器可讀介質提供用于計算機的機器可執行指令、數據結構、程序模塊和其它數據的非易失性存儲。
應注意,雖然提供在此的流程圖示出了方法步驟的具體次序,但是應理解這些步驟的次序可不同于所描繪的次序。此外,兩個或更多步驟可以同時或部分同時進行。這種變化將取決于所選擇的軟件和硬件系統以及取決于設計者的選擇。應理解,所有這類變化都在本公開的范圍之內。同樣地,可用標準編程技術來完成軟件和網頁實施方式,上述標準編程技術具有基于規則的邏輯和其它邏輯來完成各種不同的連接步驟、處理步驟、比較步驟和決定步驟。還應理解,如在本文和權利要求中使用的詞語“組件”意圖包括使用軟件代碼中的一行或更多行的實施方式和/或硬件實施方式和/或用于接收手工輸入的等同物。
為了示意和描述的目的,已經呈現了對本公開的實施例的前述描述。其并不旨在窮舉或將本公開限制為所公開的精確形式,并且根據上述教導,修改和變化是可能的,或者可以從本公開的實踐中獲得。實施例被選擇和描述以解釋本公開的原理及其實際應用,以使本領域技術人員能夠在各種實施例中以及在適于所設想的特定使用的各種修改的情況下利用本公開。