康劍萍,卞志華,何 曙
(1.上海市質量監督檢驗技術研究院,上海 201114; 2.上海工業自動化儀表研究院有限公司,上海 200233)
依托于物聯網的智能家居,綜合運用計算機技術、網絡通信技術、智能控制技術和傳感技術等,將傳統家居通過專用的網絡連接在一起,可實現家居產品的互聯互通、智能控制、遠程控制等功能,為用戶提供更方便、更智慧的家庭生活環境。但是,隨著智能家居的快速發展,其安全問題日益增多。以互聯網為基礎的網絡環境,各種信息安全風險頻發,給消費者帶來很多困擾。
通過分析智能家居在網絡環境中存在的信息安全風險,提出相應的防御措施。這些措施能有效降低智能家居的安全風險,從而保護消費者的人身和財產安全。
隨著物聯網和5G技術的普及應用,萬物互聯時代正式開啟。據預計,到2020年,全球智能家居規模將從100億美元增長到500億美元,中國將成為亞洲較大的智能家居市場。目前,國內智能家居市場一般有三類企業:一是原來的互聯網企業,有自主的軟件開發能力,安全性較高;二是原來的家居產品生產企業,缺少軟件開發和設計經驗,安全性次之;三是一些貼牌生產企業,沒有任何信息系統經驗,信息安全問題嚴重。一些著名的互聯網企業,如國外的蘋果、亞馬遜和國內的小米、百度等,都參與到智能家居平臺和產品的研發中。
智能家居在帶來便捷的同時,也隱藏著不少安全隱患。從隱私數據被竊取到入侵智能設備,從云平臺權限失效到智能設備被黑客控制,形成僵尸網絡[1]后發動大規模拒絕服務攻擊(distributed denial of service,DDoS)攻擊,消耗大量網絡資源,使系統無法正常運行。
從實際應用來看:智能門鎖可能被重放開啟、智能攝像頭可能導致隱私被竊取;智能音響可能成了竊聽器,智能空調會被隨意調節溫度,智能洗衣機遭受連續的高速運轉[2]等。這些都給實際生活帶來了巨大的風險。
總體而言,智能家居系統的安全問題日益增多,風險不容小覷。
智能家居具備聯網能力、感知和數據采集能力、多點交互能力及多樣化的控制能力[3]。從架構上分析,智能家居系統主要由設備終端、智能網關、云平臺和客戶端組成。智能家居系統架構如圖1所示。

圖1 智能家居系統架構 Fig.1 Smart home system architecture
智能終端是智能家居的核心部件。它是實現智能家居功能的硬件系統,可采集信息、進行輸入和輸出,并可實現遠程喚醒、聯動控制等功能。其一般由智能家電、智能監控、智能燈光、智能安防等組成。智能終端可以通過多協議網關(ZigBee、藍牙、WiFi)與云平臺通信[4],也可以通過自帶的WiFi模塊直接連接云平臺。
智能網關可以實現現實網絡中不同協議設備的互聯互通,并通過WiFi或以太網接入,是一個把智能家居整合起來的入口。它同時具備設備管理功能,并可實現遠程控制。根據協議不同,智能網點可以分為WiFi、Zigbee、藍牙、Z-Wave等。
云平臺以各類操作系統、應用系統、數據庫為基礎,提供數據存儲、分析與下載、用戶身份鑒別、權限管理、安全審計等服務。云平臺可以提供用戶登陸、客戶端管理和配置功能,并返回各類消息和警告。
客戶端指各類移動應用程序(application,APP),與云平臺交互完成注冊、登陸、升級及查看相關返回信息,與智能終端交互完成遠程控制。
基于智能家居的系統框架,安全風險主要存在于智能終端、移動客戶端、云平臺以及數據通信。數據通信包括移動客戶端和云平臺、移動客戶端和智能終端、智能終端和云平臺的安全問題。智能家居信息安全風險匯總如圖2所示。

圖2 智能家居信息安全風險匯總 Fig.2 Smart home information security risk summary
智能終端設備通常包括智能攝像頭、智能門鎖、智能音響、智能家電產品、智能照明設備等。終端設備的安全性通常從固件安全、入侵防范和遠程更新進行分析。
①固件安全。
固件是一種嵌入在硬件中的軟件,提供了硬件設備的功能和性能,通常保存在快閃存儲器中。有些固件代碼中會保存硬編碼密碼,攻擊者可以提取固件進行反編譯,分析出其中的密碼,從而獲取設備的操作權限,使設備感染病毒,或利用物聯網設備發起對互聯網的DDoS攻擊。固件中也可能含有隱藏的后門。這往往是程序員為便于調試和修改故意留下的,但在發布前忘記刪除,造成了安全隱患。物聯網設備常使用第三方開源組件。這些組件如果存在未知的安全風險,固件就很容易成為攻擊的對象。因此,只有及時更新至最新版本才能解決安全風險。
②入侵防范。
在將終端設備連接到家庭局域網或映射到公網時,會受到攻擊者的端口掃描或模糊測試。當發現系統的安全漏洞后,可能造成惡意代碼的入侵,或者使硬件存在調試接口[5]。如果這些接口沒有很好的安全防護措施,攻擊者很容易讀寫存儲器上的內容。
③遠程更新。
智能設備出現漏洞是不可避免的,但需要有更新升級的機制來保護。目前,有些智能設備沒有固件升級功能;有些智能設備有升級功能而沒有任何提示和確認信息卻自動更新;有些智能設備沒有對升級包進行校驗,使攻擊者可以替換升級包,在程序中插入有害的代碼來獲取權限、攻擊網絡或系統。
移動客戶端是物聯網的重要組成部分,主要承擔登錄、控制、配置、綁定等功能。一些硬件廠商沒有軟件開發的能力和經驗,會委托第三方開發商完成開發任務,導致很多APP具有相似的安全缺陷和漏洞。其主要安全問題是未對APP進行加固和混淆,使其容易被反編譯、二次打包,遠程更新缺乏驗證機制,本地數據明文顯示或未加密。
①反編譯。
大量的智能終端移動客戶端APP并未對代碼進行混淆和加固,攻擊者很容易通過反編譯逆向出源代碼,并且推導出程序的邏輯設計流程、結構、算法等處理過程。一些APP在開發過程中將密碼或加密密鑰硬編碼在APP程序中。通過反編譯,可以直接拿到這些密碼或密鑰,進而解密整個系統,入侵終端設備。
②二次打包。
二次打包是指反編譯智能終端APP,破解后改變源程序的部分內容,通過植入廣告、惡意代碼,然后重新打包成完全一樣的APP,發放到市場中欺騙消費者的行為。被二次打包的APP運行后,存在泄露個人隱私、惡意扣費、廣告騷擾和流量損失等問題,對開發者是侵權,對消費者是侵害。
③遠程更新。
APP在增加新功能或修復漏洞時,需要進行遠程更新。有些APP沒有升級計劃或更新周期很長,很難保證APP的安全性。升級過程中可能存在的風險包括APP的更新包被篡改、植入惡意程序,可能發生在服務器端、傳輸過程和客戶端的安裝包保存位置。
④本地數據安全。
APP在運行過程中的各類數據(包括登錄密碼、ID號以及個人敏感信息)都會保存到Android系統內嵌的數據庫中。這類數據如果是明文或僅有簡單加密,就很容易被黑客通過root后的手機獲取,從而控制智能設備。
隨著企業上云率的逐年上升,云平臺承受了互聯網上超過一半的惡意攻擊。由于業務數據量越來越多和防護意識的薄弱,云平臺已成為網絡攻擊的重災區。特別是基于物聯網的云平臺,它的安全威脅主要來自身份鑒別、訪問控制、數據保護和網站安全。
①身份鑒別。
身份鑒別是驗證訪問者的身份,防止未授權的用戶對云端和設備的訪問。攻擊者可以利用登錄過程中的漏洞進行攻擊。比如:未限制非法登錄次數,未規定密碼的復雜度要求,通過弱口令暴力破解輕松獲取密碼[6];設備綁定未進行人機校驗,賬號沒有經過驗證直接與終端設備綁定,不限數量,不作驗證;挖掘密碼修改過程或驗證碼的漏洞,繞過驗證進行登錄。
②訪問控制。
訪問控制是防止未授權用戶對已授權資源的訪問。云平臺未對需要授權的被訪問資源進行驗證,導致越權操作后重要的數據被未授權訪問或修改。比如:一般用戶可以獲取管理員權限進行垂直越權,可以增加、刪除、更改和查看數據庫的內容;攻擊者可以根據設備標識規律預測出其他的設備標志,從而水平越權獲得這些設備的控制權限。
③數據保護。
云平臺存儲了大量的用戶數據。如果這些數據沒有加密或僅簡單加密,一旦攻擊者獲取了系統權限,就很容易泄露。用戶隱私數據可能因為越權被獲取、下載,用戶的文件可能通過更改有規則的文件名被下載。
④Web安全。
支持Web服務的云平臺,可能會出現常見的漏洞,比如結構化查詢語言(structured query language,SQL)注入、跨站腳本攻擊(cross site script,XSS)、跨站請求偽造(cross-site request forgery,CSRF)等。攻擊者可以通過SQL注入獲取數據庫的內容[7],從而獲取用戶權限來操控智能家居。
物聯網中,通信安全是指智能終端、移動客戶端和云平臺兩兩之間的數據傳輸是否加密,能否抵御信息在傳輸過程中被竊取、被篡改、被泄露的風險,從而保證信息的完整性、保密性和不可抵賴性。
①通信保密性。
在數據的傳輸過程中,主要有三種情況涉及信息的保密傳輸:移動應用和云平臺間采用了超文本傳輸協議(hyper text transfer protocol,HTTP)協議[8],且重要的密碼信息未經加密處理;移動應用和智能終端之間根據不同的設備使用不同的未加密的協議和數據流,導致信息被泄露;智能終端和云平臺之間采用未加密的協議進行通信。智能攝像設備如果不加保護地傳輸音視頻信息時,容易被竊聽或截獲私密信息[9]。
②重放攻擊。
重放攻擊是一種攻擊類型,是指攻擊者發送一個服務器已接收過的包。這個包不用解密,所以加密雖然能防止信息被竊取,但并不能抵御重放攻擊。重放攻擊可以由發起者或攔截方發起,它在任何網絡通信中都可以發生。在智能家居中重放攻擊可使智能終端重復執行未授權的動作,比如智能門鎖開門、智能音箱放音樂、智能洗衣機連續高速運轉等風險事件。
③中間人攻擊。
中間人攻擊是指攻擊者分別與通信的兩端發生聯系,攔截并修改通信雙方的數據,然后再交換數據。客戶端和服務器端都以為是和對方在私密通信,其實整個傳輸都被攻擊者完全控制。中間人攻擊能竊取和篡改通信過程中加密或不加密的信息,直接導致用戶敏感信息的泄露,同時也使公眾對通信安全產生懷疑。
智能家居在實現互聯互通的同時,也帶來了巨大的安全隱患。這些安全隱患需要設計者和管理者在設計產品的初期就對信息安全予以充分的重視。這樣設計出的產品才能滿足功能和安全的雙重要求。智能家居的防御主要從終端安全、移動客戶端安全、云端安全和通信安全四個方面來分析。
對于智能終端的安全,可以從以下幾個方面進行改進和防護。
①設計安全的鑒權機制。
②設計安全的訪問控制機制。
③固件代碼采取必要的混淆和加固;代碼中避免硬編碼敏感信息;可以對密碼進行模糊化處理,并存儲在外部文件中管理。
④避免留下硬件調試接口和軟件調試接口,調試后應刪除,防止攻擊者入侵。
⑤安全的遠程更新機制,包括固件及使用的第三方組件,并對升級包進行校驗,確保升級更新的完整性和有效性。
移動客戶端一般指安裝在手機端的APP,可以從以下幾個方面進行改進和防護。
①采用混淆和加固技術進行反編譯保護,可以增加反編譯的成本、防止惡意注入和二次打包等攻擊行為;同時,源代碼中避免硬編碼敏感信息,保障程序的安全性和穩定性。
②安全的遠程更新機制,防止APP升級包被篡改。首先,請求升級接口時采用https協議,防止惡意返回篡改后的地址;其次,下載時也使用加密的https協議,并對文件進行Hash值校驗,防止文件被篡改;最后,在安裝時對安卓安裝包(Android package,APK)文件進行包名和簽名的驗證,防止被植入不相關的內容或被替換。
③本地數據(包括用戶的敏感信息如賬號密碼、聯系人信息等)應加密存儲或不作存儲,不能以明文形式存儲到數據庫、日志、配置文件或緩存中。否則,攻擊者可使用root手機查看相關目錄下的信息。
智能家居的云端需要實現管理控制功能,存放用戶的敏感信息和應用數據,可以從以下幾個方面進行改進和防護。
①設計安全的鑒權機制。該機制對密碼進行長度、強度、時效性的檢查,在修改或找回密碼時,進行身份驗證。身份驗證可采用雙因素認證(除了用戶名、密碼外可加入短信驗證碼)。驗證碼需要在服務器端驗證。簡單的客戶端驗證容易被攻擊者繞過,從而暴力破解登陸接口。
②設計安全的訪問控制機制。該機制可有效避免非授權用戶對智能家居設備的非法訪問和控制[9]。應限制同一賬號在多臺終端設備上登陸,設計訪問功能時要避免水平越權和垂直越權,防止未經身份鑒別橫向訪問其他用戶設備或縱向獲取系統管理員權限。使用Token是服務器端身份認證的一種常用方式,可以通過如圖3所示的Token認證流程實現安全的認證。

圖3 Token認證流程 Fig.3 Token authentication process
APP客戶端登錄時,會將加密的用戶名和密碼發送到服務端。服務端校驗功后生成字符串作為Token,并將Token返回給客戶端。客戶端再次請求時,凡是需要驗證之處都需要帶上此Token。服務器驗證成功后,返回響應信息。對Token進行簽名是為了防止Token被篡改;加隨機數驗證,是為了防止Token被重放攻擊。Token可以設置有效期。每次APP請求時會同時驗證Token和有效期。一般Token由用戶標志(uid)、時間戳、簽名等組成。
③對用戶敏感信息進行加密存儲,設計安全的加密方式。盡量不使用通過撞庫就能得到明文密碼的MD5哈希算法來存儲密碼??梢允褂酶踩?、高效、強大的高級加密標準(advanced encryption standard,AES)算法,或者采用MD5加隨機鹽值的方式存儲密碼等敏感信息。
④Web安全采用通用的安全策略,安裝殺毒軟件、防火墻,定期進行滲透測試和漏洞掃描,防止SQL注入、XSS攻擊、XSRF攻擊、文件上傳、暴力破解等漏洞的存在,降低被攻擊的可能性。
智能家居通信主要指在客戶端和云端、客戶端和智能終端、智能終端和云端之間的通信,主要協議包括https、藍牙、ZigBee等。通信安全可以從以下幾個方面進行改進和防護。
①采用加密的協議傳輸數據,主要包括采用https替代http,防止用戶敏感信息泄露,實現數據傳輸的保密性、完整性和不可否認性。有些智能設備的音視頻流和控制數據采用用戶數據報協議(user datagram protocol,UDP)協議進行連接,比如智能攝像頭使用未加密的實時流傳輸協議(real time streaming protocol,RTSP)進行視頻傳輸,很容易被攻擊者獲取私密數據。對藍牙鏈接進行加密,并保護傳輸的數據,防止數據被竊聽。
②防止重放攻擊,應確保未經身份認證的人員無法重放截取的數據包,以避免阻礙用戶正常使用終端設備,而產生危及使用者人身和財產安全的事件。重放攻擊的關鍵是截獲一個請求包,然后用這個請求包進行重復發送。解決問題的關鍵是同樣的請求只有一次有效,可以隨請求攜帶一個唯一的字段(可以是時間戳或有失效時間的隨機值),并使用客戶端私鑰進行簽名。即使獲取了數據包并更改其中的隨機值,也無法用私鑰進行簽名,所以重放攻擊不能成功。
③防止中間人攻擊,應確保通信雙方的數據包不被第三者竊取或篡改。正確使用https協議是防范中間人攻擊的有效方法。有些APP雖然使用了https進行通信,但并沒有對證書作校驗,而是讓客戶端代碼信任所有的證書。這會造成偽造的證書通過客戶端的證書校驗,從而抓取https明文數據包。對此,可以使用SSL Pinning來防止APP中間人攻擊。具體方法是將證書綁定到客戶端APP中,在通信過程中對比服務器端證書和內置客戶端證書是否一致,如不一致則直接斷開網絡。
使用https協議后,傳輸過程中是加密處理的,但通過中間人攻擊還是有可能拿到明文。對一些安全性要求高的應用,可以使用安全性更高的加鹽哈希方式加密,然后再進行傳輸。
智能家居不僅帶來方便、舒適的用戶體驗,更需要安全、有效的防御措施。具體而言,安全的智能家居終端可以避免固件中的信息被盜取,防止攻擊者入侵??蛻舳薃PP如做好加固和混淆,就可以防止APP被反編譯和二次打包,避免被植入惡意程序、廣告推銷、惡意扣費等風險,造成用戶隱私及財產的損失。加強防護的服務器端可以防止未授權用戶的訪問和某些越權用戶的訪問,從而避免非法登錄及數據信息被非法訪問。Web服務更要防止因各類漏洞而產生的攻擊,從而避免因數據庫信息被盜取而產生控制智能家居的行為。在智能終端、客戶端、云端的兩兩通信過程中采取加密的通信協議,可防止通信過程中的隱私信息被竊取、篡改或重放,從而保證信息的完整性、保密性和不可抵賴性,避免產生危及使用者人身和財產安全的事件。總體而言,這些措施能有效地降低智能家居的安全風險,在終端、客戶端、云端及其兩兩通信過程中保護客戶的隱私信息不被盜取或篡改,從而產生控制或破壞智能家居系統的風險。
智能家居在我國的發展歷程不長,現階段才迎來融合演變期。而它的安全問題也變得日益突出,關系著廣大用戶的人身和財產安全。本文從終端安全、客戶端安全、云端安全和通信安全四個方面對智能家居的安全進行評估,從中得出相應的防御措施。
基于此,對智能家居的安全檢測變得尤為重要。這能提高相關企業對信息安全的重視,進而提升信息安全水平。智能家居的發展正從單品的智能化過渡到單品之間的聯動,最后實現跨產品的互通互聯。這不僅是數據的互通和共享,而是實現了這些數據的智慧化聯動。因此,未來的智能家居不僅是智慧化生活,更是安全的智慧化生活。