發(fā)布者:admin 發(fā)布時(shí)間:2020-12-18 人氣:1004
人類正處于一個(gè)具革命性的發(fā)展時(shí)期:“IOT--物聯(lián)網(wǎng)”,顧名思義,物聯(lián)網(wǎng)是通過連接世界上所有的東西來(lái)達(dá)成,也可做為互聯(lián)網(wǎng)本身的邏輯頂點(diǎn)。我們已經(jīng)看到它對(duì)我們的生活和商業(yè)等應(yīng)用層面的影響,越來(lái)越多的企業(yè)開始進(jìn)軍iot,開發(fā)iot軟件,使硬件智能化。
舉凡智能手機(jī)、平板電腦和其他移動(dòng)設(shè)備等不僅僅讓我們與他人交流,它們還可跟蹤我們的位置,監(jiān)測(cè)我們的健康狀況,了解我們的興趣偏好,并將我們與其他設(shè)備連接起來(lái)。這種現(xiàn)象將影響所有企業(yè)的生產(chǎn)、營(yíng)銷和增長(zhǎng)方式。如此復(fù)雜的事情需要一些深謀遠(yuǎn)慮和數(shù)據(jù),所以,你需要了解物聯(lián)網(wǎng)的四個(gè)重要發(fā)展。利用它們對(duì)你的業(yè)務(wù)做出更明智的決定。
一、智能家居設(shè)備轉(zhuǎn)移到辦公室:
智能家居物聯(lián)網(wǎng)設(shè)備越來(lái)越受歡迎。到2021年,美國(guó)使用智能家居的家庭比例預(yù)計(jì)將可達(dá)到總數(shù)的28%,此一上升趨勢(shì)部分源于設(shè)備價(jià)格的下跌。但是,市場(chǎng)偏好也在改變。千禧一代喜歡家居科技,因而促使業(yè)主將智能恒溫器和安全系統(tǒng)整合到新房子內(nèi)部,更不用說(shuō)智能家居技術(shù)是環(huán)保的,有助于節(jié)省能源成本。但是,這些好處不再是家庭獨(dú)有的。企業(yè)也可望從辦公室自動(dòng)化中受益。到2020年,將有更多的公司出于同樣的原因在辦公室采用上述的智能設(shè)備和技術(shù)。
企業(yè)主可以通過智能照明和傳感器來(lái)減少每月的電力消耗。智能視頻門鈴、攝像頭和門鎖讓你為送貨或員工提供遠(yuǎn)程控制的通道,它也能讓你的辦公室更加安全。另外,智能恒溫器通過了解員工的溫度偏好進(jìn)行智能控制,也有助于減少能源浪費(fèi)。
二、醫(yī)療保健物聯(lián)網(wǎng)的增長(zhǎng):
醫(yī)療行業(yè)是物聯(lián)網(wǎng)應(yīng)用的下一個(gè)理想目標(biāo)。這是一個(gè)不斷增長(zhǎng)、高度監(jiān)管和依賴科技的市場(chǎng)。如今,許多“智能”醫(yī)院正在使用物聯(lián)網(wǎng)設(shè)備,通過可穿戴設(shè)備和健康傳感器遠(yuǎn)程監(jiān)控病人,或者綜合監(jiān)控系統(tǒng)如“室內(nèi)GPS”一樣追蹤病人、工作人員和設(shè)備,這將可以最大限度地節(jié)約資源和金錢。醫(yī)療服務(wù)提供者也在使用小型的可食用設(shè)備,例如“智能藥丸”可以傳輸有關(guān)藥物療效的數(shù)據(jù),從而更好地對(duì)病人的護(hù)理做出決策。
預(yù)計(jì)醫(yī)療行業(yè)將采用更多的物聯(lián)網(wǎng)設(shè)備,以簡(jiǎn)化醫(yī)療流程、降低成本并提高患者護(hù)理水平。增加的投資還將推動(dòng)相關(guān)市場(chǎng)(如理療和療養(yǎng)院)采用類似的技術(shù),以保持與醫(yī)院的一體化。
隨著技術(shù)的不斷進(jìn)步,個(gè)人和組織利用物聯(lián)網(wǎng)設(shè)備來(lái)提高生產(chǎn)力和盈利能力非常重要。
三、人工智能和物聯(lián)網(wǎng)的結(jié)合:
每年都有越來(lái)越多的物聯(lián)網(wǎng)攝像頭、設(shè)備和傳感器被使用,2020年將繼續(xù)穩(wěn)步增長(zhǎng)。國(guó)際數(shù)據(jù)公司(InternationalData Corporation)的一項(xiàng)新預(yù)測(cè)統(tǒng)計(jì),到2025年,將有超過410億臺(tái)聯(lián)網(wǎng)設(shè)備產(chǎn)生80ZB的數(shù)據(jù)。連接設(shè)備的價(jià)值在于所有這些數(shù)據(jù)。在這種規(guī)模下,人類將不得不依靠人工智能來(lái)進(jìn)行分析和解釋。如果你不能通過連接設(shè)備來(lái)優(yōu)化用戶體驗(yàn)、節(jié)約能源或提高流程效率,那么連接設(shè)備就沒有什么用。
隨著亞馬遜(Amazon)和微軟(Microsoft)等公司開發(fā)出相互競(jìng)爭(zhēng)的人工智能和機(jī)器學(xué)習(xí)技術(shù),預(yù)計(jì)到2020年,醫(yī)療保健和卡車運(yùn)輸?shù)刃袠I(yè)將引入更多相關(guān)技術(shù)。這些行業(yè)擁有龐大的基礎(chǔ)設(shè)施和復(fù)雜的網(wǎng)絡(luò),可望推動(dòng)人工智能的采用并將它們整合到更高效的系統(tǒng)中。企業(yè)將需要評(píng)估和審計(jì)自己的流程,以了解這些人工智能服務(wù)在哪些方面帶來(lái)了最大的好處。
四、智能語(yǔ)音助理的盛行:
智能語(yǔ)音助理設(shè)備和服務(wù)在2020年將繼續(xù)增長(zhǎng),因?yàn)橄M(fèi)者和企業(yè)會(huì)有新的應(yīng)用程序出現(xiàn)。最新的市場(chǎng)調(diào)查估計(jì),到2023年,數(shù)字語(yǔ)音助手的裝置量將達(dá)到80億。由于幾個(gè)因素,2020年的需求將會(huì)激增:首先,技術(shù)正在進(jìn)步,語(yǔ)音識(shí)別軟件更加準(zhǔn)確,現(xiàn)在它可以區(qū)分不同的聲音,允許多個(gè)用戶使用同一設(shè)備;另一個(gè)因素是,語(yǔ)音識(shí)別是一個(gè)相對(duì)便宜的功能,從硬件的角度來(lái)看,制造商只需要讓設(shè)備增加一個(gè)麥克風(fēng)或者連接到有麥克風(fēng)的設(shè)備便可實(shí)現(xiàn)。因此,該技術(shù)對(duì)幾乎所有的家庭或辦公室而言是一個(gè)簡(jiǎn)單的附加功能。
IOT設(shè)備與服務(wù)器對(duì)接:我一貫推薦用戶使用SSL/TLS這種標(biāo)準(zhǔn)方式來(lái)實(shí)施設(shè)備的服務(wù)器接口。當(dāng)然我也清楚許多嵌入式設(shè)備采用SSL依然是有困難。困難來(lái)自以下幾點(diǎn):
嵌入式設(shè)備多采用嵌入式C/C++編程;
如果采用標(biāo)準(zhǔn)庫(kù),耗費(fèi)RAM/ROM和計(jì)算時(shí)間;
如果沒有使用標(biāo)準(zhǔn)庫(kù),自行開發(fā)驗(yàn)證安全算法耗費(fèi)太多、時(shí)間。
即使SSL/TLS,不同Cloud供應(yīng)商和證書供應(yīng)商的安全套件不盡相同。
RSA/ECC等非對(duì)稱算法在某些階段過于耗費(fèi)時(shí)間。
互聯(lián)網(wǎng)常見的Base64/ASCII傳輸方式,在嵌入式領(lǐng)域比較耗費(fèi)資源。
TLS證書的存儲(chǔ)。
所以,根據(jù)安全設(shè)計(jì)原則來(lái)提供一個(gè)私有設(shè)備接口規(guī)范,是非常必要的。這里,還需要區(qū)分TCP長(zhǎng)連接、短連接和UDP方式。
TCP長(zhǎng)連接:如果設(shè)備使用WiFi/以太網(wǎng)/SocketCAN等方式連接到服務(wù)器上,則TCP長(zhǎng)連接很適合。在Linux中,TCP稱之為Stream,這一點(diǎn)在長(zhǎng)連接上會(huì)造成信息在接收端所特有的沾包、半包現(xiàn)象。所以承載在TCP長(zhǎng)連接之上的應(yīng)用層協(xié)議,必須設(shè)計(jì)合理地幀結(jié)構(gòu)來(lái)隔斷、截取完整的信息。
如果TCP安全加密后,TLS其實(shí)是AES這種block加密方式,所以TCP長(zhǎng)連接Stream中位數(shù)不足的可以采用padding方式,接收端部分地解決了此類問題。但是由于AES中IV的存在,需要增設(shè)一個(gè)問答方式來(lái)不斷地重置IV。
TCP短連接:一些無(wú)線傳感器網(wǎng)絡(luò)如BLE/WiFi網(wǎng)關(guān)、Sub-1GHzWSN網(wǎng)關(guān)、LoRa網(wǎng)關(guān),蜂窩數(shù)據(jù)等,采用短連接也很適合。TCP短連接一般沒有沾包現(xiàn)象,典型的HTTP就是使用ASCII字符串以及回車來(lái)實(shí)現(xiàn)各個(gè)字段的劃分的。
針對(duì)TCP短連接,如果每次重新連接,走密鑰交換流程太費(fèi)時(shí)間,往往在后續(xù)TCP連接中繼續(xù)使用AESSessionKey,同時(shí)應(yīng)用層中使用Token+cookie等實(shí)現(xiàn)。
某些設(shè)備如NB-IoT天生的傳輸方式就是UDP方式。TCP/UDP的區(qū)別在于UDP是不保證信息一定送達(dá),先后次序和重復(fù)發(fā)送的。也就是說(shuō)UDP接收端會(huì)出現(xiàn)報(bào)文丟失、報(bào)文重復(fù)、次序顛倒等現(xiàn)象。而TCP接收端則不會(huì)出現(xiàn)此類現(xiàn)象。
雖然UDP有DTLS,但是我目前還沒有研究透徹。
設(shè)備端的簡(jiǎn)化,一般常見的TLS安全套件由以下幾個(gè)部分組成:
keyexchangealgorithm(RSA/DH/ECDH/SRP/PSK)
authentication(RSA/ECDSA/DSA)
bulkencryptionalgorithm(DES/3DES/AES)
messageauthenticationcode(MAC)
典型套件有:
TLS_RSA_WITH_3DES_EDE_CBC_SHA,其中3DES_EDE_CBC是一個(gè)加密算法
TLS_PSK_WITH_AES_128_CCM_8,IoT設(shè)備常用安全套件
TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,IoT設(shè)備常用安全套件
假設(shè)設(shè)備采用長(zhǎng)連接服務(wù)器,而且設(shè)備可以通過預(yù)先分配AES初始密碼的(PSK,Pre-sharedkey)方式下發(fā)到設(shè)備和服務(wù)器中,那么安全算法中的KeyAgreement已經(jīng)完成了。所以剩下的就是產(chǎn)生SessionKey啟動(dòng)AES加密,然后在AES加密通道中完成HMAC簽名,實(shí)現(xiàn)雙向認(rèn)證即可。
在開發(fā)過程中,針對(duì)SHA1/SHA256的C/C++/Python源碼了解了以下,發(fā)現(xiàn)SHA僅僅是散列算法,而HMAC-SHA才是簽名算法,需要使用密鑰來(lái)簽名。雖然HMAC底層也是調(diào)用SHA散列算法的。
應(yīng)用層協(xié)議:
由于是TCP長(zhǎng)連接,帶AES128塊加密,所以信息的截取問題不大。但是許多嵌入式開發(fā)的資深工程師會(huì)嘗試將串口協(xié)議照搬使用來(lái)實(shí)現(xiàn)預(yù)定義的二進(jìn)制協(xié)議。但是這是在為服務(wù)器端工程師埋坑。
雖然在工程上馬最初,雙方使用ctype/struct等可以很簡(jiǎn)單地解決這個(gè)問題。但無(wú)論何種領(lǐng)域的工程師,都知道需求更改是肯定會(huì)發(fā)生的。而預(yù)先定義二進(jìn)制協(xié)議,會(huì)在后續(xù)協(xié)議升級(jí)維護(hù)階段造成很大困擾,甚至無(wú)法維護(hù)。
當(dāng)一個(gè)端口面臨多個(gè)版本的二進(jìn)制協(xié)議,服務(wù)器端工程師心里絕對(duì)是崩潰的。所以補(bǔ)救措施:
增設(shè)VERSION字段,一旦發(fā)現(xiàn)版本差異,馬上提示OTA,并斷開連接。
采用更加通用的帶語(yǔ)義解釋的應(yīng)用協(xié)議。
至于采用何種協(xié)議,需要雙方討論??梢允褂茫篊SV;JSON;msgpack;某種二進(jìn)制JSON。
如果工程師一定要采用自己的二進(jìn)制協(xié)議,那么服務(wù)器端團(tuán)隊(duì)?wèi)?yīng)該提供某種透?jìng)鲄f(xié)議工具,比如JSONschema實(shí)現(xiàn)二進(jìn)制與JSON的互相轉(zhuǎn)換,讓設(shè)備端工程師和應(yīng)用端工程師直接對(duì)接,而規(guī)避這種麻煩事情。
作者:華云神舟 轉(zhuǎn)自:智客號(hào)
免責(zé)聲明:本文來(lái)智客號(hào)作者,不代表yuendong的觀點(diǎn)和立場(chǎng)。若有侵權(quán)或異議請(qǐng)聯(lián)系我們刪除