Azure Sphere是一個(gè)安全的高級(jí)應(yīng)用程序平臺(tái),具有針對(duì)互連設(shè)備的內(nèi)置通信和安全功能。它包括一個(gè)安全的、連接的跨接微控制器單元(MCU)、一個(gè)定制的基于linux的高級(jí)操作系統(tǒng)(OS)和一個(gè)基于云的安全服務(wù)(提供連續(xù)的可續(xù)訂安全性)。
Azure Sphere MCU集成了實(shí)時(shí)處理功能和運(yùn)行高級(jí)操作系統(tǒng)的能力。利用Azure Sphere MCU及其操作系統(tǒng)和應(yīng)用程序平臺(tái),可制造連接到Internet的安全設(shè)備,這些設(shè)備可實(shí)現(xiàn)遠(yuǎn)程更新、控制、監(jiān)視和維護(hù)。包含Azure Sphere MCU的連接設(shè)備無論是與現(xiàn)有MCU一并使用還是代替現(xiàn)有MCU,均可提供更高的安全性、生產(chǎn)力以及更好的機(jī)遇。例如:
安全的應(yīng)用程序環(huán)境、經(jīng)過身份驗(yàn)證的連接和外圍設(shè)備的選擇使用最大限度地降低了欺騙、惡意軟件或拒絕服務(wù)攻擊等產(chǎn)生的安全風(fēng)險(xiǎn)。
軟件更新可通過云自動(dòng)部署到任何已連接的設(shè)備上,以便解決問題、提供新功能或抵制新出現(xiàn)的攻擊方法,從而提高支持人員的工作效率。
產(chǎn)品使用數(shù)據(jù)可通過安全連接報(bào)告給云,以便診斷問題和設(shè)計(jì)新產(chǎn)品,從而增加產(chǎn)品服務(wù)、積極的客戶交互和未來發(fā)展的良機(jī)。
Azure Sphere安全服務(wù)是Azure Sphere不可或缺的一部分。利用該服務(wù),Azure Sphere MCU可安全可靠地連接到云和Web。該服務(wù)可確保設(shè)備僅使用授權(quán)版本的經(jīng)批準(zhǔn)的正版軟件啟動(dòng)。此外,該服務(wù)還提供了一個(gè)安全通道,Microsoft可通過該通道自動(dòng)下載操作系統(tǒng)更新并安裝到現(xiàn)場(chǎng)部署的設(shè)備上,從而緩解安全問題。制造商和最終用戶均無需干預(yù),便可關(guān)閉常見的安全缺口。
Azure Sphere方案
若要了解Azure Sphere如何在真實(shí)環(huán)境中運(yùn)行,請(qǐng)考慮此方案。
Contoso,Ltd.是一家白色家電制造商,該公司在其洗碗機(jī)中嵌入了Azure Sphere MCU。DW100洗碗機(jī)將MCU與多個(gè)傳感器以及Azure Sphere MCU上運(yùn)行的載入高級(jí)應(yīng)用程序相結(jié)合。應(yīng)用程序與Azure Sphere安全服務(wù)以及Contoso的云服務(wù)進(jìn)行通信。下圖演示了此方案:
連接到IoT、安全服務(wù)以及制造商云租戶
Contoso聯(lián)網(wǎng)洗碗機(jī)
從左上角開始,按順時(shí)針方向進(jìn)行介紹:
Microsoft通過Azure Sphere安全服務(wù)發(fā)布Azure Sphere OS的更新。
Contoso產(chǎn)品工程設(shè)計(jì)人員通過Azure Sphere安全服務(wù)發(fā)布其DW100應(yīng)用程序的更新。
Azure Sphere安全服務(wù)將更新后的OS和Contoso DW100應(yīng)用程序軟件安全地部署到最終用戶處的洗碗機(jī)上。
Contoso洗碗機(jī)支持與Azure Sphere安全服務(wù)通信,從而確定應(yīng)在各個(gè)最終用戶設(shè)備上運(yùn)行哪個(gè)版本的Azure Sphere軟件和DW100應(yīng)用程序軟件,并收集已向服務(wù)報(bào)告的任何錯(cuò)誤報(bào)告數(shù)據(jù)。Contoso洗碗機(jī)還支持與Contoso云服務(wù)通信,以獲取其他信息。
Contoso云服務(wù)為應(yīng)用程序的故障排除、數(shù)據(jù)分析和客戶交互提供支持。Contoso的云服務(wù)可由Microsoft Azure、其他供應(yīng)商云服務(wù)或Contoso自己的云托管。
最終用戶處的Contoso DW100機(jī)型通過與Azure Sphere安全服務(wù)的連接下載更新的OS和應(yīng)用程序軟件。它們還可以與Contoso的云服務(wù)應(yīng)用程序通信,以報(bào)告其他數(shù)據(jù)。
例如,洗碗機(jī)上的傳感器可監(jiān)控水溫、干燥溫度和漂洗助劑剩余量,并將這些數(shù)據(jù)上傳到Contoso的云服務(wù),云服務(wù)應(yīng)用程序會(huì)分析這些數(shù)據(jù)以確定是否存在潛在問題。如果干燥溫度異常(過高或過低),可能表示某個(gè)部件出現(xiàn)問題,Contoso會(huì)遠(yuǎn)程運(yùn)行診斷程序并通知客戶需要進(jìn)行維修。如果洗碗機(jī)在保修期內(nèi),還可通過云服務(wù)應(yīng)用程序確??蛻舢?dāng)?shù)氐木S修店內(nèi)具有更換部件,從而減少維護(hù)次數(shù)和庫存需求。同樣,如果漂洗劑剩余量過低,洗碗機(jī)會(huì)向客戶發(fā)出信號(hào),提示其直接從制造商處購買更多漂清劑。
所有通信都通過經(jīng)身份驗(yàn)證的安全連接進(jìn)行。Contoso支持和工程設(shè)計(jì)人員可使用Azure Sphere安全服務(wù)、Microsoft Azure功能或Contoso特定的云服務(wù)應(yīng)用程序來可視化數(shù)據(jù)。Contoso可能還會(huì)提供面向客戶的Web和移動(dòng)應(yīng)用程序,洗碗機(jī)所有者可使用這些應(yīng)用程序請(qǐng)求服務(wù),監(jiān)控洗碗機(jī)資源使用情況,或者與公司進(jìn)行互動(dòng)。
使用Azure Sphere部署工具,Contoso將每個(gè)應(yīng)用程序軟件更新部署到相應(yīng)的洗碗機(jī)機(jī)型,Azure Sphere安全服務(wù)將軟件更新分發(fā)到正確的設(shè)備。只能在洗碗機(jī)上安裝經(jīng)過簽名和驗(yàn)證的軟件更新。
Azure Sphere和高度安全設(shè)備的七個(gè)屬性
Azure Sphere平臺(tái)主要目標(biāo)是以低成本提供高價(jià)值的安全性,以便價(jià)格敏感的微控制器驅(qū)動(dòng)型設(shè)備能夠安全可靠地連接到Internet。隨著聯(lián)網(wǎng)玩具、設(shè)備和其他消費(fèi)設(shè)備的普及,確保安全性至關(guān)重要。不僅必須保證設(shè)備硬件本身的安全,還必須保證其軟件及云連接的安全。操作環(huán)境中任何地方出現(xiàn)安全漏洞都會(huì)威脅到整個(gè)產(chǎn)品,甚至可能威脅到附近的任何事物。
基于Microsoft在Internet安全方面數(shù)十年的經(jīng)驗(yàn),Azure Sphere團(tuán)隊(duì)已經(jīng)確定了高度安全設(shè)備的7個(gè)屬性。Azure Sphere平臺(tái)圍繞這7個(gè)屬性而設(shè)計(jì):
基于硬件的信任根?;谟布男湃胃纱_保設(shè)備及其標(biāo)識(shí)不可分離,從而防止設(shè)備偽造或欺騙。Microsoft設(shè)計(jì)的Pluton安全子系統(tǒng)硬件將生成不可偽造的加密密鑰并對(duì)此進(jìn)行保護(hù),將由該密鑰標(biāo)識(shí)每個(gè)Azure Sphere MCU。這可確保從工廠到最終用戶均不能篡改硬件信任根,保證其安全可靠。
小型可信計(jì)算基礎(chǔ)。設(shè)備的大多數(shù)軟件仍在可信計(jì)算基之外,從而縮小了攻擊面。只有安全的安全監(jiān)視器、Pluton運(yùn)行時(shí)以及Pluton子系統(tǒng)(均由Microsoft提供)在可信計(jì)算基礎(chǔ)上運(yùn)行。
深層防御。深度防御提供了多層安全性,因此針對(duì)每個(gè)威脅具有多個(gè)緩解措施。Azure Sphere平臺(tái)中的每個(gè)軟件層都會(huì)驗(yàn)證其上一層是否安全。
分隔。分隔可限制任何單一故障的范圍。Azure Sphere MCU具有硬件防火墻等硅應(yīng)對(duì)措施,可防止某一組件的安全漏洞擴(kuò)散到其他組件。受約束的“沙盒”運(yùn)行時(shí)環(huán)境可防止應(yīng)用程序損壞受保護(hù)的代碼或數(shù)據(jù)。
基于證書的身份驗(yàn)證。相較于密碼驗(yàn)證,使用由不可偽造的加密密鑰驗(yàn)證的簽名證書可提供更安全可靠的身份驗(yàn)證。Azure Sphere平臺(tái)要求對(duì)每個(gè)軟件元素進(jìn)行簽名。設(shè)備到云和云到設(shè)備通信要求進(jìn)行進(jìn)一步的基于證書的身份驗(yàn)證。
可更新的安全性。設(shè)備軟件將自動(dòng)更新以修復(fù)已知的漏洞或安全漏洞,無需產(chǎn)品制造商或最終用戶的干預(yù)。Azure Sphere安全服務(wù)將自動(dòng)更新Azure Sphere OS和應(yīng)用程序。
故障報(bào)告。設(shè)備軟件或硬件故障是典型的新興安全攻擊;設(shè)備故障本身會(huì)造成拒絕服務(wù)攻擊。設(shè)備到云的通信提供對(duì)潛在故障的早期警告。Azure Sphere設(shè)備可自動(dòng)報(bào)告操作數(shù)據(jù)和基于云的分析系統(tǒng)故障,并可遠(yuǎn)程執(zhí)行更新和維護(hù)。
Azure Sphere體系結(jié)構(gòu)
Azure Sphere硬件、軟件和安全服務(wù)協(xié)同工作,實(shí)現(xiàn)了設(shè)備維護(hù)、控制和安全的獨(dú)特集成方法。
硬件體系結(jié)構(gòu)為連接的設(shè)備提供了一個(gè)基本安全的計(jì)算基礎(chǔ),通過該體系結(jié)構(gòu)可專注于產(chǎn)品。
軟件體系結(jié)構(gòu),在Microsoft編寫的安全監(jiān)視器上運(yùn)行安全的自定義OS內(nèi)核,同樣可將軟件工作集中在增值IoT和特定于設(shè)備的功能上。
Azure Sphere安全服務(wù)支持通過安全的云到設(shè)備和設(shè)備到云的通道進(jìn)行身份驗(yàn)證、軟件更新和故障報(bào)告。結(jié)果是一個(gè)安全的通信基礎(chǔ)架構(gòu),可確保產(chǎn)品運(yùn)行最新的Azure Sphere OS。
硬件體系結(jié)構(gòu)
Azure Sphere分頻MCU在單個(gè)芯片上包含多個(gè)內(nèi)核,如下圖所示。
Azure Sphere MCU硬件體系結(jié)構(gòu)
每個(gè)內(nèi)核及其關(guān)聯(lián)的子系統(tǒng)都位于不同的信任域中。信任的根位于Pluton安全子系統(tǒng)。體系結(jié)構(gòu)的每層都假定可能會(huì)危及它上面的層。在每層中,資源隔離和區(qū)隔劃分提供了額外的安全性。
Microsoft Pluton安全子系統(tǒng)
Pluton安全子系統(tǒng)是Azure Sphere的基于硬件(硅片)安全的信任根。它包括安全處理器內(nèi)核、加密引擎、硬件隨機(jī)數(shù)字生成器、公鑰/私鑰生成、不對(duì)稱和對(duì)稱加密、支持安全引導(dǎo)的橢圓曲線數(shù)字簽名算法(ECDSA)驗(yàn)證、在硅片中支持使用云服務(wù)進(jìn)行遠(yuǎn)程證明的標(biāo)準(zhǔn)引導(dǎo),以及包括熵檢測(cè)單元在內(nèi)的各種篡改對(duì)策。
在安全啟動(dòng)過程中,由Pluton子系統(tǒng)啟動(dòng)各種軟件組件。它還提供運(yùn)行時(shí)服務(wù),處理來自設(shè)備其他組件的請(qǐng)求,并管理設(shè)備其他部分的關(guān)鍵組件。
高級(jí)應(yīng)用程序核心
高級(jí)應(yīng)用程序核心具有ARM Cortex-A子系統(tǒng),該子系統(tǒng)具有完整的內(nèi)存管理單元(MMU)。它通過使用信任區(qū)功能實(shí)現(xiàn)基于硬件的進(jìn)程劃分,并負(fù)責(zé)執(zhí)行操作系統(tǒng)、高級(jí)應(yīng)用程序和服務(wù)。它支持兩種操作環(huán)境:普通環(huán)境(NW),即在用戶模式和主管模式下執(zhí)行代碼;安全環(huán)境(SW),即僅執(zhí)行Microsoft提供的安全監(jiān)視器。高級(jí)應(yīng)用程序在NW用戶模式下運(yùn)行。
實(shí)時(shí)核心
實(shí)時(shí)核心采用ARM Cortex-M I/O子系統(tǒng),該子系統(tǒng)可以以裸機(jī)代碼或?qū)崟r(shí)操作系統(tǒng)(RTOS)的形式運(yùn)行支持實(shí)時(shí)的應(yīng)用程序。此類應(yīng)用程序可以映射外圍設(shè)備并與高級(jí)應(yīng)用程序通信,但無法直接訪問Internet。
連接性和通信
第一款A(yù)zure Sphere MCU提供802.11 b/g/n Wi-Fi無線電,工作頻率為2.4GHz和5GHz。高級(jí)應(yīng)用程序可以配置、使用和查詢無線通信子系統(tǒng),但無法直接對(duì)其進(jìn)行編程。除使用Wi-Fi之外或不使用Wi-Fi,正確配備的Azure Sphere設(shè)備可以在以太網(wǎng)上進(jìn)行通信。
多路復(fù)用I/O
Azure Sphere平臺(tái)支持各種I/O功能,因此可配置嵌入式設(shè)備以滿足市場(chǎng)和產(chǎn)品需求。I/O外圍設(shè)備可以映射到高級(jí)應(yīng)用程序核心或?qū)崟r(shí)核心。
Microsoft防火墻
硬件防火墻是帶有芯片的防御設(shè)備,它提供“沙盒”保護(hù),以確保I/O外圍設(shè)備僅可供它們映射到的核心訪問。防火墻實(shí)行區(qū)隔劃分,從而防止位于高級(jí)應(yīng)用程序核心中的安全威脅影響核心對(duì)其外圍設(shè)備的實(shí)時(shí)訪問。
集成的RAM和Flash
Azure Sphere MCU包括至少4MB的集成RAM和16MB的集成閃存。
軟件體系結(jié)構(gòu)和OS
高級(jí)應(yīng)用程序平臺(tái)運(yùn)行Azure Sphere OS以及特定于設(shè)備的高級(jí)應(yīng)用程序,這些高級(jí)應(yīng)用程序既可以與Internet進(jìn)行通信,也可以與在實(shí)時(shí)核心上運(yùn)行的支持實(shí)時(shí)的應(yīng)用程序進(jìn)行通信。下圖顯示了此平臺(tái)的元素。
Microsoft提供的元素以灰色顯示。
應(yīng)用程序平臺(tái)
高級(jí)應(yīng)用程序平臺(tái)
Microsoft提供并維護(hù)除特定于設(shè)備的應(yīng)用程序之外的所有軟件。設(shè)備上運(yùn)行的所有軟件(包括高級(jí)應(yīng)用程序)都由Microsoft證書頒發(fā)機(jī)構(gòu)(CA)簽名。通過受信任的Microsoft管道提供應(yīng)用程序更新,并且在安裝之前驗(yàn)證每個(gè)更新與Azure Sphere設(shè)備硬件的兼容性。
應(yīng)用程序運(yùn)行時(shí)
Microsoft提供的應(yīng)用程序運(yùn)行時(shí)基于POSIX標(biāo)準(zhǔn)的子集。它包括在NW用戶模式下執(zhí)行的庫和運(yùn)行時(shí)服務(wù)。此環(huán)境支持你創(chuàng)建的高級(jí)應(yīng)用程序。
除了其他約束,應(yīng)用程序庫支持高級(jí)應(yīng)用程序所需的網(wǎng)絡(luò)、存儲(chǔ)和通信功能,但不支持直接通用文件I/O或shell訪問。這些限制可確保平臺(tái)保持安全,并且Microsoft可以提供安全和維護(hù)更新。此外,受限庫提供了一個(gè)長(zhǎng)期穩(wěn)定的API曲面,這樣系統(tǒng)軟件可更新以提高安全性,同時(shí)保持應(yīng)用程序的二進(jìn)制兼容性。
OS服務(wù)
操作系統(tǒng)服務(wù)托管高級(jí)應(yīng)用程序容器,并負(fù)責(zé)與Azure Sphere安全服務(wù)進(jìn)行通信。它們管理所有出站流量的網(wǎng)絡(luò)身份驗(yàn)證和網(wǎng)絡(luò)防火墻。在開發(fā)期間,操作系統(tǒng)服務(wù)還與連接的電腦和正在調(diào)試的應(yīng)用程序進(jìn)行通信。
自定義Linux內(nèi)核
自定義的基于Linux的內(nèi)核在主管模式下運(yùn)行,同時(shí)還有一個(gè)啟動(dòng)加載程序。內(nèi)核針對(duì)Azure Sphere MCU的閃存和RAM占用情況進(jìn)行了精心調(diào)整。它為在單獨(dú)的虛擬地址空間中預(yù)先執(zhí)行用戶空間進(jìn)程提供了一個(gè)曲面。驅(qū)動(dòng)程序模型向OS服務(wù)和應(yīng)用程序公開MCU外圍設(shè)備。Azure Sphere驅(qū)動(dòng)程序包括Wi-Fi(包括TCP/IP網(wǎng)絡(luò)堆棧)、UART、SPI、I2C和GPIO等。
安全監(jiān)視器
Microsoft提供的安全監(jiān)視器在SW中運(yùn)行。它負(fù)責(zé)保護(hù)對(duì)安全敏感的硬件,例如內(nèi)存、閃存和其他共享MCU資源,以及安全地公開對(duì)這些資源的有限訪問。安全監(jiān)視器中轉(zhuǎn)站和入口可以訪問Pluton安全子系統(tǒng)和硬件信任根,并充當(dāng)NW環(huán)境的監(jiān)視器。它啟動(dòng)引導(dǎo)加載程序,向NW公開運(yùn)行時(shí)服務(wù),并管理NW無法訪問的硬件防火墻和其他硅組件。
Azure Sphere安全服務(wù)
Azure Sphere安全服務(wù)包括三個(gè)組件:基于證書的身份驗(yàn)證、更新和故障報(bào)告。
基于證書的身份驗(yàn)證。身份驗(yàn)證組件提供遠(yuǎn)程證明和基于證書的身份驗(yàn)證。遠(yuǎn)程證明服務(wù)通過質(zhì)詢-響應(yīng)協(xié)議連接,該協(xié)議使用Pluton子系統(tǒng)上測(cè)量的引導(dǎo)功能。它不僅驗(yàn)證是否使用了正確的軟件啟動(dòng)該設(shè)備,而且驗(yàn)證是否使用了該軟件的正確版本。
證明成功后,身份驗(yàn)證服務(wù)將接管。身份驗(yàn)證服務(wù)通過安全的TLS連接進(jìn)行通信,并頒發(fā)設(shè)備可向Web服務(wù)(如Microsoft Azure或公司的私有云)提供的證書。Web服務(wù)驗(yàn)證證書鏈,驗(yàn)證設(shè)備是否為正版、其軟件是否為最新以及其源是否為Microsoft。然后,該設(shè)備可安全可靠地與聯(lián)機(jī)服務(wù)連接。
更新。更新服務(wù)為Azure Sphere OS和應(yīng)用程序分發(fā)自動(dòng)更新。更新服務(wù)可確保持續(xù)運(yùn)行,并支持遠(yuǎn)程服務(wù)和更新應(yīng)用程序軟件。
錯(cuò)誤報(bào)告。錯(cuò)誤報(bào)告服務(wù)為部署的軟件提供了簡(jiǎn)單的故障報(bào)告。若要獲取更豐富的數(shù)據(jù),可使用Microsoft Azure訂閱中包含的報(bào)告和分析功能。
默認(rèn)情況下,使用Azure Sphere安全服務(wù)存儲(chǔ)的所有數(shù)據(jù)均已靜態(tài)加密。安全服務(wù)對(duì)Azure存儲(chǔ)、Cosmos DB和Azure Key Vault使用靜態(tài)數(shù)據(jù)加密實(shí)現(xiàn),將數(shù)據(jù)存儲(chǔ)在這些服務(wù)中。