你好——是你嗎?能夠提出這個(gè)問(wèn)題并相信答案對(duì)于建立有意義的通信至關(guān)重要,無(wú)論是人與人之間還是機(jī)器之間。人類(lèi)可以通過(guò)檢查面孔、聲音或舉止來(lái)確定人們是否是他們所說(shuō)的那樣。
另一方面,機(jī)器必須具有唯一的身份并能夠證明它們擁有它們。還需要有一種方法來(lái)檢查這些身份與外部參考的合法性,通過(guò)錨定在某些絕對(duì)現(xiàn)實(shí)中的信任關(guān)系鏈——所謂的信任根。
稍后我將詳細(xì)介紹建立信任根的技術(shù)。不過(guò),首先,我們應(yīng)該通過(guò)提醒自己標(biāo)準(zhǔn)客戶端和服務(wù)器如何建立安全、經(jīng)過(guò)身份驗(yàn)證的通信通道來(lái)設(shè)置一些上下文。稍后我們將研究如何以不同方式為物聯(lián)網(wǎng) (IoT) 生態(tài)系統(tǒng)做事。
通常,客戶端和服務(wù)器使用加密握手(例如TLS 1.3 協(xié)議)建立安全、經(jīng)過(guò)身份驗(yàn)證的通信。這可確保連接經(jīng)過(guò)身份驗(yàn)證,以便通信方知道他們正在與誰(shuí)交談并加密,以便他們的數(shù)據(jù)是私有的。此類(lèi)協(xié)議中的交換如下:
客戶端與服務(wù)器建立連接。
服務(wù)器將其身份呈現(xiàn)給客戶端,并以加密方式驗(yàn)證它是否擁有該身份。客戶端確認(rèn)它信任服務(wù)器的身份。
客戶端將自己的身份和密碼驗(yàn)證發(fā)送回服務(wù)器。服務(wù)器確認(rèn)它信任客戶端的身份。
建立了一個(gè)加密通道,以便客戶端和服務(wù)器可以私下通信。
?
建立信任
稍作反思指出了該過(guò)程的一個(gè)關(guān)鍵缺點(diǎn),如所述:步驟 2 和 3 使客戶端和服務(wù)器能夠建立彼此的唯一身份,但沒(méi)有證明這些身份是合法的。就像出示護(hù)照時(shí)一樣:我們可以看到旅行者看起來(lái)像照片,但我們必須相信護(hù)照的簽發(fā)者在確認(rèn)他們的身份方面做得很好。
在 Internet 上的 TLS 連接中,此身份檢查通常由證書(shū)頒發(fā)機(jī)構(gòu) (CA) 處理,其作用是確認(rèn)機(jī)器的身份并向其提供表明其已這樣做的證書(shū)。因此,在 TLS 協(xié)議的第 2 步中,服務(wù)器可以向客戶端顯示其證書(shū)以證明其身份。如果客戶端相信 CA 已正確完成其工作,那么它將看到 CA 在服務(wù)器證書(shū)上的簽名以驗(yàn)證其身份。同樣,客戶端可以使用 CA 證書(shū)來(lái)驗(yàn)證其與服務(wù)器的身份。然而,這個(gè) CA 步驟提供的明顯的額外安全層確實(shí)依賴于 CA 首先正確地完成了它的工作,以及長(zhǎng)期維護(hù)其自身的安全性。如果 CA 本身受到損害,就像已經(jīng)發(fā)生的那樣,那么所有的賭注都沒(méi)有了。
?
物聯(lián)網(wǎng)身份驗(yàn)證
TLS 協(xié)議和 CA 可能不太適合驗(yàn)證 IoT 設(shè)備的身份。例如,物聯(lián)網(wǎng)設(shè)備可能在專(zhuān)用網(wǎng)絡(luò)上運(yùn)行,因此無(wú)法訪問(wèn)基于互聯(lián)網(wǎng)的 CA。解決此問(wèn)題的方法是為每個(gè) IoT 設(shè)備(以及其 IoT 生態(tài)系統(tǒng)中的每個(gè)服務(wù)器)提供一個(gè)唯一的身份和一種證明其合法性的方法,而無(wú)需參考外部權(quán)威。
對(duì)于服務(wù)器,答案是使用 IoT 設(shè)備將連接到的端點(diǎn)以及服務(wù)器本身或適當(dāng) CA 的公共證書(shū)對(duì)其固件進(jìn)行編程。然后對(duì) IoT 設(shè)備進(jìn)行編程以信任此服務(wù)器證書(shū)。當(dāng)服務(wù)器出示其身份時(shí),物聯(lián)網(wǎng)設(shè)備知道信任它,并且只需要服務(wù)器證明其對(duì)身份的所有權(quán)即可完成身份驗(yàn)證。物聯(lián)網(wǎng)設(shè)備的過(guò)程稍微復(fù)雜一些,并且依賴于在制造或編程固件時(shí)為每個(gè)設(shè)備建立獨(dú)特的東西——這個(gè)過(guò)程稱(chēng)為?配置。有兩種方法可以做到這一點(diǎn):要么從中提取一些材料,要么將一些材料注入其中。
?
提取和注入身份的問(wèn)題
如果供應(yīng)商選擇通過(guò)從每個(gè)設(shè)備中提取材料來(lái)建立唯一身份,那么他們可以使用這些身份的數(shù)據(jù)庫(kù)加載服務(wù)器。這種方法簡(jiǎn)化了身份驗(yàn)證流程的第 3 步。客戶端 IoT 設(shè)備只需將其身份和該身份的加密驗(yàn)證發(fā)送到服務(wù)器,服務(wù)器確認(rèn)該身份已列在其數(shù)據(jù)庫(kù)中并且驗(yàn)證是正確的。然后,服務(wù)器無(wú)需處理證書(shū)即可在設(shè)備中建立信任。
盡管此流程很簡(jiǎn)單,但獲取身份列表仍存在挑戰(zhàn)。每個(gè)設(shè)備都必須在制造過(guò)程中提取其可加密驗(yàn)證的身份,這可能很耗時(shí),因此成本很高。管理設(shè)備身份列表可能很困難,尤其是當(dāng)物聯(lián)網(wǎng)生態(tài)系統(tǒng)發(fā)展到包括數(shù)百萬(wàn)臺(tái)設(shè)備時(shí)。并且需要安全地存儲(chǔ)和訪問(wèn)數(shù)據(jù)庫(kù),以防止對(duì)其進(jìn)行編輯以包含虛假設(shè)備身份。
盡管如此,如果這些問(wèn)題得到妥善處理,存儲(chǔ)有效設(shè)備身份的數(shù)據(jù)庫(kù)是設(shè)備身份驗(yàn)證的實(shí)用解決方案。
第二種方法是向每個(gè)設(shè)備注入身份驗(yàn)證材料。這通常通過(guò)在微芯片生產(chǎn)線上安裝 CA 來(lái)完成。在制造過(guò)程中,每個(gè)微芯片定義自己的身份,然后從生產(chǎn)線 CA 安全地請(qǐng)求該身份的簽名證書(shū)。客戶的物聯(lián)網(wǎng)服務(wù)器也可以訪問(wèn)此 CA,然后可以在身份驗(yàn)證過(guò)程的第 3 步中使用它來(lái)檢查設(shè)備證書(shū)的有效性。
這里的挑戰(zhàn)是信任。CA 頒發(fā)的證書(shū)只是告訴服務(wù)器微芯片供應(yīng)商構(gòu)建了設(shè)備并檢查了它的密鑰。它不會(huì)告訴購(gòu)買(mǎi)設(shè)備的服務(wù)器。購(gòu)買(mǎi)以這種方式制造的設(shè)備的客戶必須信任芯片供應(yīng)商,以保護(hù)其生產(chǎn)線 CA 免受意外或惡意濫用。否則,它可能允許已向其頒發(fā)證書(shū)的其他設(shè)備通過(guò)客戶的物聯(lián)網(wǎng)服務(wù)器進(jìn)行身份驗(yàn)證。
理想情況下,微芯片制造商應(yīng)該在其生產(chǎn)線上為其每個(gè)客戶配備一個(gè) CA,但這種更安全的方法在許多物聯(lián)網(wǎng)終端市場(chǎng)中可能因成本原因而無(wú)法接受。
建立信任根的第三種方法是在對(duì)每個(gè)設(shè)備進(jìn)行固件編程時(shí)將秘密身份驗(yàn)證密碼注入到每個(gè)設(shè)備中,以補(bǔ)充步驟 3 中的身份驗(yàn)證。
但是,這種方法存在風(fēng)險(xiǎn)。
這些設(shè)備并非每個(gè)都獲得唯一的身份或秘密,因?yàn)樗鼈兪褂孟嗤墓碳M(jìn)行編程。如果固件泄露,所有設(shè)備都會(huì)受到威脅,任何人都可以在服務(wù)器上注冊(cè)設(shè)備。例如,可以通過(guò)使用通用密碼創(chuàng)建 1000 臺(tái)設(shè)備的批次來(lái)限制這些問(wèn)題的影響,或者限制密碼的有效期。這種方法可能會(huì)有所幫助,但隨著密碼的激增、設(shè)備因密碼過(guò)期而被切斷等原因,往往會(huì)產(chǎn)生多個(gè)其他問(wèn)題。
如果設(shè)備是由第三方編程的,就像經(jīng)常發(fā)生的那樣,客戶必須信任該方的秘密材料,或者堅(jiān)持使用加密技術(shù)安裝固件而無(wú)法對(duì)其進(jìn)行檢查。這兩者都代表了進(jìn)一步的后勤挑戰(zhàn),以及潛在的嵌入在固件代碼中的知識(shí)產(chǎn)權(quán) (IP) 風(fēng)險(xiǎn)。
為每個(gè)物聯(lián)網(wǎng)設(shè)備建立唯一身份的最安全但成本最高的方法是在每個(gè)設(shè)備都被編程時(shí)派遣一名工程師到場(chǎng)。據(jù)?估計(jì),每臺(tái)設(shè)備大約需要 20 分鐘的工程師時(shí)間,這在許多物聯(lián)網(wǎng)生態(tài)系統(tǒng)的規(guī)模上通常被認(rèn)為是不切實(shí)際的。但是,它確實(shí)展示了在設(shè)備設(shè)計(jì)和配置規(guī)劃階段預(yù)測(cè)您的安全管理需求的好處。
概括
許多公司都參與了物聯(lián)網(wǎng),每家公司都有不同的能力、安全問(wèn)題和對(duì)風(fēng)險(xiǎn)的態(tài)度。這意味著沒(méi)有通用的方法來(lái)配置設(shè)備以加入物聯(lián)網(wǎng)生態(tài)系統(tǒng)。一些公司將自己處理配置過(guò)程,從而可以直接為每個(gè)設(shè)備注入或提取他們認(rèn)為合適的秘密材料。其他人將沒(méi)有所需的基礎(chǔ)設(shè)施,但會(huì)非常關(guān)注安全性,從而向第三方支付費(fèi)用以非常小心地提供他們的設(shè)備,并充分尊重嵌入在每個(gè)設(shè)備中的 IP 的價(jià)值。
這兩種方法都將受益于這些公司在設(shè)??備配置期間提高其物聯(lián)網(wǎng)生態(tài)系統(tǒng)安全性的努力。那些選擇明顯成本較低的選項(xiàng)(例如在固件中嵌入密碼)的人可能會(huì)發(fā)現(xiàn),他們的前期節(jié)省后來(lái)被管理固件保密和應(yīng)對(duì)可能的安全漏洞的成本所淹沒(méi)。
最后,有效的身份驗(yàn)證對(duì)于物聯(lián)網(wǎng)生態(tài)系統(tǒng)的成功實(shí)施至關(guān)重要。這讓我們可以問(wèn)“你好,是你嗎?” 并相信我們得到的答案。
審核編輯:湯梓紅
評(píng)論