劉慶松,樊 哲,賽鵬新,于海秋,賈先濤 指導教師:魯靜軒
(北華大學軟件工程系,吉林吉林132021)
編號:201811923128
引言:有了智能家居后,可以在下班的途中,可以讓他們幫布置衛生,甚至當別人惡意撬動門鎖等行為都可以進行報警。這樣可以充分提高你的生活質量。不過普通的智能家居的初期發展也攜帶了一些問題:當總部數據庫被修改甚至刪除,自家的數據也會發生變動;有人侵入了你的網關,里面的數據就可以隨意修改。智能家居系統的理想架構應該是一種真正分布式的總線結構,所有系統中的設備都是基于同一種協議,可以直接互通互聯的,這樣來解決目前智能家居市場帶來的問題。
區塊鏈+物聯網核心技術實現
物聯網時代,設備及用戶的身份管理面臨嚴峻挑戰。不同組織機構簽發的身份需要在物聯網中互聯互通。身份信息不應該由單一的中心化機構控制。
利用區塊鏈的“去中心化”特點正好可以很好的解決上述問題,實現去中心化的身份管理,把身份的所有權還給設備或用戶本身。
使用區塊鏈技術將人類可讀的ID與公鑰綁定,并去中心化地存儲在區塊鏈上,永久保存。每個ID對應的證書信息可以保存在IPFS上。
當實現了用戶身份和設備去中心化后,同樣的,用戶訪問設備的行為信息也應該去中心化。
以目前的技術發展來講,以太坊擁有比較成熟的區塊鏈技術。我們利用以太坊替代傳統中心化服務器,實現去中心化訪問控制。物聯網數據可以保存在去中心化文件系統,如IPFS上。IPFS通過ACL代碼,連接以太坊網絡,通過運行在以太坊上的智能合約(Smart Contract)實現去中心化訪問控制。
當物聯網結合區塊鏈技術實現了去中心化之后,最關鍵的問題就是要解決安全性問題,那么就必須存在一套合理的加密算法來解決安全性問題。
經過多種加密算法的對比,我們最終決定采用混合加密機制,這種方式將加密過程分為兩個階段,階段一使用非對稱加密進行秘鑰的分發使得對方安全地得到對稱加密的秘鑰,階段二使用對稱加密對原文進行加解密。
建立安全連接具體步驟如下:
1:客戶端瀏覽器發送信息到服務器,包括隨機數R1,支持的加密算法類型、協議版本、壓縮算法等。此過程為明文。
2:服務端返回信息,包括隨機數R2、選定加密算法類型、協議版本,以及服務器證書。此過程為明文。
3:瀏覽器檢查帶有該網站公鑰的證書。該證書需要由第三方CA來簽發,瀏覽器和操作系統會預置權威CA的根證書。如果證書被篡改作假(中間人攻擊),很容易通過CA的證書驗證出來。
4:如果證書沒問題,則用證書中公鑰加密隨機數R3,發送給服務器。此時,只有客戶端和服務器都擁有R1、R2和R3信息,基于R1、R2和R3,生成對稱的會話密鑰(如AES算法)。后續通信都通過對稱加密進行保護。
在實驗的過程中,我們遇到了大大小小很多的問題,其中比較突出的有以下幾個問題:
首先我們遇見的第一個問題就是,一套完整的智能家居系統會有龐大的數據,而這些數據有一些并不是動作性數據,不需要用到區塊鏈技術做存儲,所以我們就想只有動作性的數據也稱為行為數據我們利用區塊鏈技術進行存儲,其他的數據仍舊存儲到本地,但會在區塊鏈中存入特征值,當需要調用數據的時候,會通過特征值來尋找數據。
第二個問題就是,在實驗的過程中,我們所能調用的節點太少,如果自己搭建一個區塊鏈的話,每套智能家居系統都在一個節點下面,需要太多的節點了,但在實驗的環境下我們并不能去找到如此之多的節點,這也是一個難以解決問題,所以我們想在比較成熟的區塊鏈上接入子鏈,如以太坊等。
本次研究最終想達成的是利用區塊鏈思想實現去中心化的物聯網控制總線,以此實現用戶個人信息數據庫分布存儲,從而大大加強用戶數據的安全性,滿足時代背景下用戶的真正訴求。