面向離線環境的密碼生成方法、驗證方法及其智能設備與流程
2023-12-04 14:37:41 1

本發明涉及一種可以在離線環境中使用的密碼生成方法及相應的密碼驗證方法,同時也涉及採用該密碼生成方法及驗證方法的智能設備,屬於智能硬體技術領域。
背景技術:
當前,在「網際網路+」的發展潮流推動下,各種具備網際網路接入功能的智能設備正在蓬勃發展之中。此類智能設備普遍具備一個特點,就是支持用戶通過手機app(應用軟體)或者pc端實現遠程操作和管理。在遠程操作和管理的過程中,用戶的身份認證是必不可少的關鍵環節之一,手機app或者pc端只有通過身份認證才可以擁有操作智能設備的權限。
在現有技術中,大部分智能設備實現身份認證的方式是:伺服器遠程生成的密碼一方面通過網際網路下發至智能設備(例如智能門鎖),另一方面也同時將該密碼發送給用戶的手機或pc端。該智能設備通過識別手機app或者pc端輸入的密碼,確認手機app或者pc端是否具有操作權限。如果密碼正確的話,則賦予該手機app或者pc端相應的操作權限。
實踐中,上述身份認證方式存在兩方面的問題:一是大部分智能設備接入網際網路的穩定性很差,一旦智能設備處於離線狀態,那麼遠程操作和管理就陷入癱瘓,甚至很多智能設備不具有持續接入網際網路的條件,因為這牽涉到諸如能耗、無線連接性能等多重因素;二是在智能設備接入網際網路的情況下,網絡安全風險很大。一旦下行鏈路遭到網絡攻擊,密碼很容易被洩露。而在智能設備上採用高安全性的網際網路接入方案,往往因成本過高而難以推廣。因此,目前很多智能設備不考慮設置網際網路接入功能,這樣就無法實現對智能設備的遠程操作和管理。
在申請號為201410809827.7的中國發明申請中,公開了一種開放系統下的智能門鎖加密、解密及認證方法。在該認證方法中,智能門 鎖內設有與同步數據自動離線同步更新的窗口數據,智能門鎖首先對同步數據和窗口數據進行核對,通過後再對身份認證數據進行核對,若同步數據和窗口數據核對不通過,則不再進行身份認證數據的核對。其中,同步數據與窗口數據採用相同算法實現自動離線同步。具體地說,同步數據與窗口數據採用時間或者認證次數作為自動離線同步的基準。但是,上述離線同步方案的同步基準僅為時間或者認證次數,適用範圍相對有限。
技術實現要素:
針對現有技術的不足,本發明所要解決的首要技術問題在於提供一種可以在離線環境中使用的密碼生成方法。
本發明所要解決的另一技術問題在於提供一種可以在離線環境中使用的密碼驗證方法。
本發明所要解決的又一技術問題在於提供一種採用上述密碼生成方法及密碼驗證方法的智能設備。
為實現上述的發明目的,本發明採用下述的技術方案:
一種密碼生成方法,用於生成智能設備在離線環境中使用的密碼,所述智能設備在首次使用的安裝過程中,隨機產生的密鑰以及對應的智能設備信息同步到伺服器中,包括如下步驟:
基於所述智能設備信息生成加密參數,然後根據當前系統時間進行數據壓縮;
生成完整性校驗字節,結合所述密鑰對增加了所述完整性校驗字節的數據進行加密處理,獲得一組加密數據;
基於所述加密數據生成密碼。
其中較優地,將所述加密數據進行數據壓縮,並將數據壓縮後的十六進位數據轉換成十進位數據,作為密碼發送給用戶。
其中較優地,在進行身份驗證的使用場景中,將用戶身份信息作為所述加密參數的一部分參與加密。
其中較優地,在需要生成特定時間段內有效的密碼時,將密碼使用時間作為所述加密參數的一部分參與加密。
其中較優地,採用tea加密算法生成所述完整性校驗字節。
其中較優地,採用rc4加密算法,結合所述密鑰對增加了所述完整 性校驗字節的數據進行加密處理。
一種密碼驗證方法,用於智能設備在離線環境中驗證上述密碼,包括如下步驟:
智能設備接收到所述密碼之後,結合密鑰獲得未加密的數據;
所述智能設備基於自身的智能設備信息和當前系統時間生成完整性校驗字節,驗證所述完整性校驗字節是否與所述未加密的數據中匹配;如果匹配,則進行下一步的解析操作,如果不匹配,則確認所述密碼錯誤。
其中較優地,在所述解析操作中,所述智能設備根據當前系統時間,結合從所述密碼中還原出來的加密參數進行比較,根據比較結果判斷輸入密碼的用戶是否有權限對該智能設備進行操作。
其中較優地,所述加密參數包括密碼使用時間和/或用戶身份信息。
一種智能設備,具有內置的加解密算法模塊,在所述加解密算法模塊中執行上述的密碼生成方法和上述的密碼驗證方法。
其中較優地,在首次使用的安裝過程中,所述智能設備隨機產生的密鑰以及對應的智能設備信息同步到伺服器中。
其中較優地,所述智能設備為智能遙控門鎖或智能保險柜。
與現有技術相比較,本發明所提供的密碼生成方法及密碼驗證方法可以大規模應用於所有需要隨機密碼認證,或者帶有時間有效期認證的各種應用場合。即便在安防設備無法接入網際網路的情況下,也可以通過該密碼生成方法遠程生成開啟密碼。
附圖說明
圖1為本發明所提供的面向離線環境的密碼生成方法的流程圖;
圖2為本發明的第一實施例中,智能遙控門鎖的初始化過程流程圖;
圖3為本發明的第一實施例中,智能遙控門鎖的密碼識別過程流程圖。
具體實施方式
下面結合附圖和具體實施例對本發明的技術內容展開詳細具體的說明。
圖1為本發明所提供的面向離線環境的密碼生成方法的流程圖。在該密碼生成方法中,以智能設備信息(硬體設備id號、設備名稱等), 密鑰,當前系統時間,密碼使用時間(包括開始時間和結束時間),用戶身份信息為五元組為基礎,在伺服器生成智能設備進行身份認證所需的密碼。在上述的五元組中,智能設備信息,密鑰和當前系統時間是任何情況都必不可少的;密碼使用時間和用戶身份信息則可以根據實際場景的需要選擇使用。例如在需要進行身份權限驗證的使用場景中,需要用到用戶身份信息參與加密;在需要生成特定時間段內有效的密碼時,需要用到密碼使用時間這一信息參與加密。
在本發明的一個實施例中,在智能設備首次使用的安裝過程中,智能設備隨機產生的密鑰以及對應的智能設備信息需要同步到伺服器中。此後,智能設備可以與伺服器保持連接,也可以不再保持連接。伺服器首先將智能設備信息如硬體設備id號等生成一組加密參數,然後根據當前系統時間進行數據壓縮。在本發明的另一個實施例中,伺服器也可以將硬體設備id號、密碼使用時間、用戶身份信息等數據組合在一起生成一組加密參數,然後根據當前系統時間進行數據壓縮。下面通過一個具體示例進行說明。
首先,假設智能設備的硬體設備id號為:0xa3,密鑰為:0x12,當前系統時間為:2016年2月23日9時40分40秒,具有權限的用戶身份信息為:0x08,同時該密碼為以當前時間開始的有效期為2小時的密碼。在此需要說明的是:以上假設的硬體設備id號、密鑰以及用戶身份信息等都進行了簡化。實際的硬體設備id號可以根據需要佔用更多的字節。由於密鑰的長度越長越安全,因此可以使用更多位數的密鑰。
根據以上假設數據進行具體實現:
1.對時間進行數據壓縮,根據該用戶身份的使用權限,可以確定此次生成的密碼類型為時效從當前時間開始的動態密碼,說明在時間在不是2016年2月23日這一天肯定不能用,那麼以當前的日期2016年2月23日轉換為具體的十六進位數據:0x07e0,0x02,0x17,與密鑰(或者密鑰的部分)生成一個新的密鑰,該密鑰對9時40分40秒(將該時間轉換為從0點開始的分鐘數,可以簡化到2個字節,即0x0244能表達全當前時間9時40分40秒)進行加密,這樣當前時間可以用2個字節就表示全,假設通過加密算法把0x0244加密成0xabcd。
2.將具有權限的用戶身份信息0x08和時間0xabcd進行數據的融合, 那麼總共三個字節,為了增加安全可靠性,增加一個字節滿足完整性要求,那麼該密碼總共為4個字節。
接下來,本發明採用tea(tinyencryptionalgorithm)加密算法生成完整性校驗字節。接下來,採用rc4加密算法並結合上述的密鑰對增加了完整性校驗字節的數據進行加密處理。需要說明的是,上面提到的tea加密算法和rc4加密算法僅僅是舉例說明,在本發明的實施過程中並不限於上述的加密算法,其它加密算法例如des(dataencryptionstandard)、aes(advancedencryptionstandard)、rsa、dsa(digitalsignaturealgorithm)和ecc(ellipticcurvescryptography)等也可以被用來實現本發明。
在本發明中,完整性校驗字節的作用在於保證壓縮前後的用戶身份信息和當前系統時間信息是完整一致的。在生成完整性校驗字節的時候,可以將智能設備信息也加入到該需要加密的數據中。根據以上假設,我們可以得到{0x08,0xcd,0xab,0xa3}這四個數據,同時我們使用密鑰0x02對該數組進行加密,假設得到加密後的數據的第一個字節0xb5,這樣我們可以得到一組加密數據:{0x08,0xcd,0xab,0xb5}。該加密數據可以直接作為密碼分發,也可以進行必要處理後再分發。
最後,在加密處理完成之後進行數據壓縮,並將數據壓縮後的十六進位數據轉換成十進位數據(該步驟中的具體操作為可選項),便可生成相應的密碼並發送給用戶。舉例來說,假設得到的另一組加密數據為{0xfa,0xdc,0x12,0xa3},將該8位十六進位數轉換成十進位數「4208726691」,這樣可以把該十進位數組作為密碼發給客戶,讓客戶在使用智能設備時驗證其是否有權限,以及具有什麼權限。
從上述實施例可以看出,由於在加密過程中使用了當前系統時間的信息,可以相應減少密碼使用時間(包括開始時間和結束時間)的信息量(即佔用字節數)。舉例來說,採用按位操作或者結合智能設備的生產時間進行優化,例如當前已經是2016年,那麼智能設備的基點時間為2016年1月1日,可以通過各種方式將時間信息壓縮到最小位數。同時,通過當前系統時間的年月日可以對時間進行加密,在智能設備處根據當前系統時間進行解碼操作,如果兩者日期不一致,那麼解碼出來的數據肯定是錯誤的。
下面,進一步介紹本發明所提供的面向離線環境的密碼驗證方法。該密碼驗證方法的實現過程相當於加密方法的逆向過程,即用戶在智能設備處輸入上述的密碼後,根據輸入的密碼數據進行解密操作。前已述及,密鑰由智能設備隨機產生。在智能設備安裝的時候,將隨機產生的密鑰以及對應的智能設備信息同步到伺服器端。在此基礎上,密碼驗證過程(即解密過程)中智能設備並不需要連接網際網路。它可以根據其內置的加解密算法模塊(該模塊可以以軟體或者固件方式預置在智能設備中)進行上述加密過程的逆運算,從密碼數據中還原出相應的加密參數。該加密參數可以包括硬體設備id號、密碼使用時間、用戶身份信息等數據中的一個或多個。
另一方面,智能設備可以直接獲取自身的智能設備信息(硬體設備id號、設備名稱等),通過上述的tea加密算法對獲取的智能設備信息進行加密,然後驗證所生成的完整性校驗字節是否跟上述解密操作中獲得的相應數據匹配?如果兩者是匹配的,那麼說明智能設備所接收到的密碼數據是正確的。接下來,針對該密碼進行下一步的解析操作;如果不匹配,則確認該密碼錯誤,不再進行後續操作。
在接下來的解析操作中,智能設備根據自身的當前系統時間,結合從該密碼中還原出來的密碼使用時間、用戶身份信息等加密參數進行比較,根據比較結果判斷輸入密碼的現有用戶是否有權限對該智能設備進行相應的操作。例如當前系統時間不在該密碼使用時間的範圍內,說明從密碼設置到解密驗證的整個操作環節中,至少有一個環節存在錯誤,因此不應授予輸入密碼的現有用戶相應的操作權限。而如果當前系統時間在該密碼使用時間的範圍內,智能設備還可以根據其內置的解密算法模塊中預置的信息對不同的用戶身份信息賦予不同的使用權限,例如用戶名為xxx的為超級用戶,賦予其操作智能設備的全部權限;用戶名為其它的則為普通用戶,在智能設備的操作權限上受到一定範圍的限制。
下面,仍然通過一個具體示例進行說明。在上文提供的實施例中,我們得到了密碼「4208726691」。
首先,智能設備接收到使用者通過按鍵面板輸入的密碼「4208726691」,將其轉換成十六進位的數據{0xfa,0xdc,0x12,0xa3},這樣智能設備通過對應的解密算法和對應的密鑰進行解碼運算,可以得 到未加密的數據{0x08,0xcd,0xab,0xb5}。
接下來,驗證密碼數據的完整性,確認裡面的數據是否被篡改。根據以上說明,我們可以得到的數據為{0x08,0xcd,0xab,0xb5},同時我們知道硬體設備id號為0xa3,因此我們可以得到數據{0x08,0xcd,0xab,0xa3}這四個數據,我們使用密鑰0x02對該數組進行加密,得到加密後的數據的第一個字節0xb5,跟實際接收到的數據一致,那麼可以確定密碼數據是完整的,同時可以得到身份信息0x08,以及加密壓縮的時間信息為0xabcd。
下一步,我們需要將準確的時間信息解碼出來。我們已經知道加密壓縮的時間信息為0xabcd,同時我們可以獲得硬體的當前系統時間為2016年2月23日xx時xx分xx秒,因此可以根據硬體設備的密鑰和日期2016年2月23日轉換為具體的十六進位數據:0x07e0,0x02,0x17,組合成該日期解碼的新密鑰,這樣我們可以解碼出當前的時間0x0244,假設當前的硬體設備日期不對,那麼解碼出來的當前時間肯定不是0x0244。
由此,我們最終可以確定:具有智能設備使用權限的用戶身份信息以及時間信息,確定特定用戶是否有使用該硬體設備的權限和準確的使用時間段。
需要說明的是,上述密碼生成方法和密碼驗證方法中所說的離線環境是指沒有連接網際網路,因此無法使用伺服器進行密碼驗證的使用環境,並不排斥用戶的手機app或者pc端以藍牙、紅外、近場通信(nfc)、zigbee或無線區域網等方式進行無線連接的情況。
另外,由於每個智能設備的密鑰都是隨機產生的,再加上密碼的生成與當前系統時間掛鈎。不同時間生成的密碼,其內容會隨機變化。因此就整體而言,本密碼生成方法和密碼驗證方法中的密碼具有很強的隨機性。
採用本發明所提供的密碼生成方法和密碼驗證方法的智能設備,可以在不能連接至網際網路的情況下,啟動該密碼生成方法生成一組具有隨機性的密碼。該密碼可以通過手機簡訊等方式發送至用戶的手機或者pc端。用戶在智能設備上輸入該密碼就可以開啟智能設備的使用權限,該密碼可附帶時間有效期等信息,同時在智能設備上植入了相應的密碼 驗證方法,那麼該密碼就能被智能設備識別並認證通過,用戶即可獲得該智能設備的使用權限。
下面結合不同實施例對本密碼生成方法和密碼驗證方法在智能設備中的具體應用展開說明。
第一實施例:智能門鎖
在本發明的一個實施例中,該智能設備優選為採用按鍵開門方式的智能遙控門鎖。本發明中所說的智能遙控門鎖是指區別於傳統機械鎖,在用戶識別、安全性、管理性方面更加智能化的鎖具。它的顯著特點在於利用無線通信技術和物聯網技術,通過藍牙等無線信號實現門鎖與手機app或遙控端的連接。
在現有技術中,智能遙控門鎖在使用中仍然存在一些問題,例如有些用戶顧慮手機的安全性,不願意安裝相應的app。又如智能遙控門鎖接入至網際網路,遠程生成的開鎖密碼需要通過網際網路下發至門鎖,並同時發給用戶,那麼通過網際網路下發至門鎖的開鎖密碼,很容易被攔截,所以存在很大的安全隱患。同時,如果用戶用手機app來實現開鎖,操作流程比較麻煩,需要先安裝app、打開藍牙、打開app、點擊開鎖操作等。
針對上述問題,本實施例中的智能遙控門鎖是一款「網際網路模式」的單機智能門鎖產品。它直接取消了鎖體直接接入網際網路的功能,滿足用戶在家庭沒有寬帶網絡的情況下,可以實現通過手機對門鎖的監控與管理,並大大降低了安防系統的網絡風險。
如圖2所示,首先介紹該智能遙控門鎖的初始化過程。在本發明的一個實施例中,優選通過手機app添加智能遙控門鎖。在通過手機app執行完添加智能遙控門鎖的流程後,確認該智能遙控門鎖是否已經添加到伺服器,並通過手機跟智能遙控門鎖建立藍牙或其他方式的無線連接,進行數據的交互。手機app獲取相應的智能設備信息(硬體設備id號、設備名稱等),然後手機app在連接至伺服器的情況下,將獲取的智能設備信息發給伺服器,那麼添加設備成功,同時意味著伺服器具有了生成該密碼所需要的基本參數。
在手機與智能遙控門鎖近距離的情況下,通過以手機為「媒介」,利用藍牙、紅外、近場通信(nfc)、zigbee或無線區域網等方式實現智能 遙控門鎖與伺服器的信息備份與同步。在遠程情況下,不同用戶之間通過手機app連接伺服器,完成不同用戶之間的信息同步,並可完成門鎖管理者與門鎖使用者之間的開鎖授權與密碼分配。
圖3所示為該智能遙控門鎖的密碼識別過程。用戶在手機或者pc端收到開鎖密碼之後,向智能遙控門鎖輸入所獲得的密碼。智能遙控門鎖根據其內置的加解密算法模塊解密所輸入的密碼,從密碼數據中還原出相應的加密參數。接下來,智能遙控門鎖獲取自身的智能設備信息(硬體設備id號、設備名稱等),通過tea加密算法對獲取的智能設備信息進行加密,然後驗證所生成的完整性校驗字節是否跟上述解密操作中獲得的相應數據匹配?如果是的話,進一步驗證信息是否匹配,根據匹配比較結果判斷輸入密碼的用戶是否有權限對該智能遙控門鎖進行操作。
本實施例所提供的智能遙控門鎖可以大規模應用於二手房屋交易過程中。在智能遙控門鎖不接入網際網路的情況下,房東通過手機或者pc端,遠程生成一組開鎖密碼,通過簡訊發送至看房人手機裡。看房人收到該密碼後,在智能遙控門鎖上輸入該密碼即可開門。並且,該密碼本身攜帶有密碼使用時間的信息,即只有在該有效使用時間內,該密碼才可以使用。該智能遙控門鎖還可以用於短租模式中,房東可以給租客遠程下發密碼,並帶有密碼的有效期,租客在有效期內可以直接通過密碼開鎖,超出有效期則密碼自動失效。
第二實施例:智能保險柜
在本發明的第二實施例中,該智能設備優選為智能保險柜。該智能保險柜的機械結構與普通保險柜相同,在此不予贅述。它的顯著特點在於內置了採用上述密碼生成方法及密碼驗證方法的加解密算法模塊,該加解密算法模塊直接控制保險柜的啟閉。
由於採用相同的密碼生成方法及密碼驗證方法,智能保險柜的使用過程與第一實施例提供的智能遙控門鎖類似,在此就不具體說明了。
綜合上述各實施例可以看出,本發明中的智能設備主要包括各類需要密碼接入的安防設備。通過在安防設備內部植入上述密碼生成方法及密碼驗證方法,即便在安防設備無法接入網際網路的情況下,也可以通過該密碼生成方法遠程生成開啟密碼。本發明所提供的密碼生成方法及密碼驗證方法也可以大規模應用於所有需要隨機密碼認證,或者帶有時間 有效期認證的各種應用場合。
上面對本發明所提供的面向離線環境的密碼生成方法、驗證方法及其智能設備進行了詳細的說明,但顯然本發明的具體實現形式並不局限於此。對於本領域的一般技術人員來說,在不背離本發明的精神和權利要求範圍的情況下對它進行的各種顯而易見的改變都在本發明的保護範圍之內。