音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

實(shí)現(xiàn)安全的USB傳輸

出處:mgsz2000 發(fā)布于:2011-08-17 09:39:21

  隨著越來越多的嵌入式設(shè)計(jì)趨向于與計(jì)算機(jī)進(jìn)行通信,對USB連接的需求正在持續(xù)增長。USB沒有內(nèi)置安全機(jī)制來保護(hù)總線上通信的數(shù)據(jù),對于某些應(yīng)用來說,這可能是一個(gè)問題。

  USB定義了多組指定設(shè)備工作方式的設(shè)備類別。這些設(shè)備中有許多已具有預(yù)定義的通信數(shù)據(jù)格式,設(shè)備必須遵守這些數(shù)據(jù)格式才能正常工作。這使得鼠標(biāo)、鍵盤和U盤等設(shè)備可在所有平臺(tái)上工作,而無需在首次連接時(shí)安裝驅(qū)動(dòng)程序。這些設(shè)備實(shí)際不需要任何類型的安全機(jī)制,因?yàn)槠渌瑪?shù)據(jù)是已知的。其他不使用預(yù)定義數(shù)據(jù)格式的設(shè)備可以靈活地發(fā)送自定義應(yīng)用數(shù)據(jù)。由于大多數(shù)USB都是針對預(yù)定義數(shù)據(jù)應(yīng)用,而不是自定義應(yīng)用設(shè)計(jì)的,因此沒有針對這些設(shè)備類型的內(nèi)置安全或加密機(jī)制。

  對于自定義USB應(yīng)用的開發(fā)人員來說, USB分析儀的廉價(jià)(甚至)和易用使問題更加棘手。這些分析儀可捕捉USB通信,因此任何人只需非常少的技術(shù)知識便可看到USB通信并可能獲得機(jī)密信息。

  設(shè)計(jì)注意事項(xiàng)

  創(chuàng)建更安全的USB自定義應(yīng)用的步是選擇滿足應(yīng)用需求的加密算法?,F(xiàn)在有多種算法可供選擇,它們在提供的安全性、大小、加密或解密數(shù)據(jù)塊所需時(shí)間以及對各種編譯器的固有支持方面有所差異。加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)是一個(gè)很好的選擇,因?yàn)樗喈?dāng)安全。例如,美國政府已批準(zhǔn)將AES用于標(biāo)有SECRET(機(jī)密)和TOP SECRET(絕密)且對密鑰大小有不同要求的應(yīng)用(https://www.cnss.gov/Assets/pdf/cnssp_15_fs.pdf)。AES可通過一段規(guī)模不大的代碼(約8 KB)實(shí)現(xiàn)。就提供的安全級別而言,AES是一種較好的算法。此外,。NET Framework默認(rèn)支持AES。

  .NET framework默認(rèn)支持的算法還有數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)和三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)(Triple Data Encryption Standard,TDES),它們都能用來替代ASE算法,因而對此無需花費(fèi)過多時(shí)間。與AES相比,它們速度較慢,安全性較差且代碼更大,但仍在許多應(yīng)用中使用。

  微型加密算法(XTEA)的第二版也是一個(gè)備選算法。它在默認(rèn)情況下不受編譯器工具支持,但其非常簡單且容易實(shí)現(xiàn)。XTEA是的可用算法之一,特別適合于存儲(chǔ)空間較小的應(yīng)用。XTEA的安全級別不如AES明確,因?yàn)樗形唇?jīng)過嚴(yán)格的測試。但根據(jù)迄今為止執(zhí)行的測試來看,它還是比較安全的。有關(guān)各種加密算法的更多信息,請參見圖1以及Microchip應(yīng)用筆記AN953和AN1044。

圖1  AES和XTEA加密算法比較

圖1  AES和XTEA加密算法比較

  選擇加密算法時(shí)首先要考慮其有效密鑰大小以及是否應(yīng)該使用加密。一些國家(包括美國)將具有特定密鑰大小的算法視為軍需品。因此,這些算法的出口會(huì)受到限制。根據(jù)算法類型和所用密鑰大小,應(yīng)用程序可能需要政府批準(zhǔn)才能出口。

  選擇算法后,下一步是考慮塊大小對應(yīng)用的影響。在本例中,AES的塊大小為16字節(jié)。這意味著應(yīng)用通過USB總線發(fā)送的數(shù)據(jù)量必須是16字節(jié)的倍數(shù)。如果需要發(fā)送小于16字節(jié)的數(shù)據(jù)載荷,則需要填充數(shù)據(jù)以滿足塊大小要求。如果使用填充法將數(shù)據(jù)塊補(bǔ)充完整,還必須將這些字節(jié)傳送到解密設(shè)備。加密算法的設(shè)計(jì)機(jī)制是:只要某一位出錯(cuò)或丟失,數(shù)據(jù)塊便無法解密。

  Microchip Technology(美國微芯科技公司)提供的USB協(xié)議棧,其中包括多個(gè)自定義應(yīng)用風(fēng)格的演示,以及AES、DES、XTEA和其他加密算法的實(shí)現(xiàn)。該協(xié)議??稍谖⑿竟镜木W(wǎng)站中找到,數(shù)據(jù)加密庫(部件編號SW300052)也可在網(wǎng)站內(nèi)找到。該協(xié)議棧和數(shù)據(jù)加密庫可與的Microsoft Visual Studio C++ Express Edition編譯器及其對AES算法的固有支持相結(jié)合,以創(chuàng)建加密的自定義USB應(yīng)用示例。

  需要考慮的一點(diǎn)是加密密鑰的生成和維護(hù)。對于目前可用的加密算法而言,數(shù)據(jù)失竊的根源通常并不是加密算法,而是系統(tǒng)背后的人。對稱加密算法(例如AES、TDES和XTEA)具有快速、小巧和安全等優(yōu)點(diǎn)。其主要缺點(diǎn)是雙方必須都知道同一密鑰才能加密或解密數(shù)據(jù)。一旦系統(tǒng)被破解,就會(huì)始終保持在破解狀態(tài),因此破解將來的傳輸不再需要額外的精力。這正是存在非對稱加密算法的主要原因。非對稱算法創(chuàng)建一個(gè)公鑰和一個(gè)私鑰,這樣在交換信息時(shí)無須使用共享密鑰。這有助于防止系統(tǒng)的共享密鑰泄露并保護(hù)系統(tǒng)免遭“破解”,因?yàn)槊看芜B接都生成一個(gè)新算法。非對稱算法常用于交換惟一生成的可用對稱密鑰,以使后續(xù)通信安全快速。非對稱算法的主要缺點(diǎn)是,與對稱加密算法相比,需要占用大量固件空間才能實(shí)現(xiàn),且速度非常慢。本文介紹的示例中使用對稱加密算法,非對稱算法的實(shí)現(xiàn)過程十分相似。

  創(chuàng)建示例應(yīng)用

  本示例基于Microchip USB固件示例中提供的自定義HID應(yīng)用示例。此應(yīng)用使用USB的人機(jī)接口設(shè)備(Human Interface Device,HID)類發(fā)送自定義數(shù)據(jù)。除固件外,還提供用C++編寫的與設(shè)備對話的示例程序。本示例將使用PIC18F46J50 USB演示板(部件編號MA180024)作為硬件平臺(tái)。

  加密前,使用任何USB協(xié)議分析儀均可查看通過總線發(fā)送的數(shù)據(jù)(見圖2)。在圖2中,主機(jī)正在發(fā)出獲取按鈕狀態(tài)的請求,演示板將返回狀態(tài)。個(gè)字節(jié)0x81指示此數(shù)據(jù)包是按鈕狀態(tài),第二個(gè)字節(jié)0x01表示按鈕未按下。

分析儀中的數(shù)據(jù)以普通視圖顯示,任何人均可查看

圖2   分析儀中的數(shù)據(jù)以普通視圖顯示,任何人均可查看

  創(chuàng)建此示例的固件時(shí)應(yīng)執(zhí)行以下步驟:

  將加密源代碼添加到USB應(yīng)用示例項(xiàng)目中;

  將發(fā)送或接收的數(shù)據(jù)填充為16字節(jié)的倍數(shù),該值是此示例中使用的AES算法的塊大小;

  創(chuàng)建加密/解密密鑰。此示例使用128位版本的AES,因此需要16字節(jié)密鑰;

  對通過總線向外傳送的數(shù)據(jù)加密,而對接收自總線的數(shù)據(jù)解密。

圖3  與圖2相同的數(shù)據(jù)傳輸,但已經(jīng)過加密

圖3  與圖2相同的數(shù)據(jù)傳輸,但已經(jīng)過加密

  在圖3中,字節(jié)1和2的含義并未改變,但已經(jīng)過加密。因此,沒有密鑰便無法在總線上解密字節(jié)1和2。此外,還增加了一個(gè)計(jì)數(shù)器,使每個(gè)數(shù)據(jù)包之間稍有不同。(后文將介紹為什么可能有人希望增加此功能。)

  在數(shù)據(jù)傳輸?shù)腜C端,步是包含所需加密庫。這通過添加一個(gè)到內(nèi)置加密模塊的引用實(shí)現(xiàn)。使用固件中之前使用的密鑰創(chuàng)建加密/解密密鑰的實(shí)例?,F(xiàn)在,通過總線發(fā)送的數(shù)據(jù)將是安全的。這并不意味著系統(tǒng)也安全,但離這個(gè)目標(biāo)已越來越近。

  重放攻擊

  盡管發(fā)送的數(shù)據(jù)值現(xiàn)已安全,但由于有重放攻擊,系統(tǒng)仍然不安全。重放攻擊是指某人在捕捉發(fā)送的通信后重放相同的數(shù)據(jù)。在此處給出的示例中,某人可捕捉請求按鈕狀態(tài)的事件序列以及按鈕返回?cái)?shù)據(jù)包,并使用其創(chuàng)建設(shè)備來做出簡單的加密響應(yīng),指示按鈕已按下。攻擊者無法判斷他們發(fā)送了哪些值,但能夠使USB主機(jī)認(rèn)為按鈕已按下。

  前文所述的加密算法功能有助于保護(hù)此應(yīng)用。由于加密算法的設(shè)計(jì)機(jī)制,任何一位發(fā)生變化都會(huì)得到完全不同的塊值,因此可向每個(gè)數(shù)據(jù)包中加入一個(gè)隨機(jī)數(shù)。這會(huì)在通信過程中產(chǎn)生看似非常隨機(jī)的行為。雖然這不能完全消除重放攻擊,但它使應(yīng)用更加難以攻擊。有多種方法可實(shí)現(xiàn)隨機(jī)數(shù)功能,但都有各自的缺點(diǎn)。

  從主機(jī)交換到設(shè)備的單個(gè)隨機(jī)數(shù)可在初始通信期間生成,該數(shù)字隨后會(huì)包括在發(fā)送的數(shù)據(jù)中。雖然這有助于使各會(huì)話間的數(shù)據(jù)看起來隨機(jī)化,但只要攻擊者確定出通信會(huì)話所采用模式,就無法防止他們劫持總線中間通信。

  每次通信都可發(fā)送一個(gè)惟一的隨機(jī)數(shù)。雖然這使系統(tǒng)更難以破解(因?yàn)楣粽咝枰却阎埱蟛拍馨l(fā)送已知響應(yīng)),但它要占用更大的數(shù)據(jù)存儲(chǔ)空間。此方法只有在使用非對稱加密時(shí)才真正可行。如果使用對稱加密,則完整的請求和響應(yīng)表遲早會(huì)被發(fā)現(xiàn),終破解也會(huì)變得輕而易舉。

  基于PC的攻擊

  對USB數(shù)據(jù)傳輸進(jìn)行加密有助于防止系統(tǒng)被破解,但只要有一個(gè)人成功破解系統(tǒng)并將破解方法公之于眾,任何人都能在將來進(jìn)行破解。

  數(shù)據(jù)到達(dá)PC后,在處理敏感數(shù)據(jù)時(shí)仍然需要考慮一些注意事項(xiàng)。PC上沒有數(shù)據(jù)是安全的,即使其已經(jīng)加密。更為老練的攻擊者能夠編寫應(yīng)用程序來掃描PC上的RAM,以尋找可能的密鑰或解密數(shù)據(jù)。如果在PC上解密通過USB發(fā)送的數(shù)據(jù),則在某一時(shí)刻,密鑰與原始解密數(shù)據(jù)將駐留在RAM中,從而可被應(yīng)用程序讀取。這需要更長時(shí)間和更的技術(shù)才能破解,但仍然存在破解的可能性。在這種情況下,非對稱加密可再次幫助保護(hù)數(shù)據(jù),因?yàn)槠平庑枰脩粼诿看芜B接設(shè)備后都檢測新密鑰。但這仍然無法完全保護(hù)系統(tǒng)。

  解密后的數(shù)據(jù)僅存在于安全設(shè)備的應(yīng)用不可能被破解。此模型在某些應(yīng)用中尤為適用。例如,加密的自舉程序可加密安全服務(wù)器上的。hex文件,并且只在攻擊者無法觸及單片機(jī)時(shí)才在單片機(jī)上解密數(shù)據(jù)。再比如一個(gè)將捕捉的數(shù)據(jù)文件發(fā)送到PC的數(shù)據(jù)記錄器,其并不在本地解密數(shù)據(jù)和顯示結(jié)果,而是將加密數(shù)據(jù)通過Internet發(fā)送到安全服務(wù)器來解密數(shù)據(jù),然后將不含敏感數(shù)據(jù)的結(jié)果摘要返回給用戶。

  總結(jié)

  對于生成并傳輸惟一或隨機(jī)機(jī)密數(shù)據(jù)的應(yīng)用來說,可以用少的成本輕而易舉地進(jìn)行加密。而靜態(tài)程度高、傳輸行為可預(yù)測的應(yīng)用則略難保護(hù)。在所有加密系統(tǒng)中,都不應(yīng)假定數(shù)據(jù)是安全的,而應(yīng)該通過加密阻止數(shù)據(jù)竊取。增加密鑰長度、在數(shù)據(jù)載荷中加入隨機(jī)性以及非對稱密鑰交換等技術(shù)均可提高對潛在數(shù)據(jù)竊取的抵御程度。其他一些方法同樣有助于保護(hù)傳輸?shù)臄?shù)據(jù),這些方法各自均有優(yōu)缺點(diǎn)。在任何應(yīng)用中設(shè)計(jì)加密都需要在抵御程度與實(shí)現(xiàn)該抵御所需的成本之間找到平衡。

關(guān)鍵詞:實(shí)現(xiàn)安全的USB傳輸USB傳輸

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!