FPGA實現(xiàn)安全可靠的藍(lán)牙通信
藍(lán)牙數(shù)據(jù)安全性
藍(lán)牙標(biāo)準(zhǔn)定義了一系列安全機制,要求每個藍(lán)牙設(shè)備都要實現(xiàn)密鑰管理、認(rèn)證以及加密等功能,從而為近距離無線通信提供基本的保護(hù)。此外,藍(lán)牙技術(shù)所采用的跳頻通信方式本身也是一個防止竊聽的有效安全手段。
密鑰管理
藍(lán)牙設(shè)備在高層軟件中采用幾種不同的密鑰來保證數(shù)據(jù)的安全傳輸。
加密
藍(lán)牙設(shè)備中采用加密的方法來保證連接的保密性。但在數(shù)據(jù)加密之前,需要存在一條經(jīng)過認(rèn)證的已建立連接。藍(lán)牙加密采用8位至128位的密鑰對藍(lán)牙分組中的數(shù)據(jù)載荷進(jìn)行加密,但不對藍(lán)牙接入碼和分組頭進(jìn)行加密。載荷加密的具體細(xì)節(jié)依賴于所需要的加密強度以及產(chǎn)品最終應(yīng)用國家的地區(qū)性法規(guī)要求。
藍(lán)牙系統(tǒng)采用稱為E0的序列加密算法對數(shù)據(jù)進(jìn)行加密。對每一數(shù)據(jù)載荷(payload)E0算法都進(jìn)行重新同步。E0序列加密包含三個部分:
●初始化部分,生成載荷密鑰;
●密鑰流比特生成器 ;
●加密與解密硬件電路。
有三種加密模式:
● 加密模式1:不對任何數(shù)據(jù)進(jìn)行加密;
● 加密模式2:點對多點(廣播)數(shù)據(jù)流不加密,點對點數(shù)據(jù)流進(jìn)行加密;
● 加密模式3:所有數(shù)據(jù)流均進(jìn)行加密。
物理層數(shù)據(jù)安全性-跳頻擴(kuò)展頻譜
除了藍(lán)牙標(biāo)準(zhǔn)所采取的其它安全手段以外,藍(lán)牙通信所采取的跳頻通信這一機制也使竊聽變得極困難。
如前所述,藍(lán)牙射頻工作在2.4GHz頻段。在北美和歐洲的大部分,藍(lán)牙設(shè)備工作于從2.402至2.480GHz的頻帶,整個頻帶被分成 79個1MHz帶寬的子信道。在跳頻通信中,數(shù)據(jù)信號被窄帶載波信號調(diào)制,而這些窄帶載波信號則做為時間的函數(shù)不斷從一個頻率跳到另一個頻率。藍(lán)牙標(biāo)準(zhǔn)采用的是每秒跳躍1600次的跳頻序列。
收發(fā)雙方都知道的跳頻碼決定了射頻載波的頻率以及跳頻的順序。為正確地進(jìn)行信號接收,接收器必須設(shè)置成與發(fā)送方一樣的跳頻碼,并在恰當(dāng)?shù)臅r間和正確的頻率點監(jiān)聽載波信號。只有正確同步時,才能維持一個邏輯信道。其它接收器看到的FHSS信號僅是持續(xù)時間極短的脈沖噪聲。
FHSS依靠頻率的變化來對抗干擾。如果射頻單元在某個頻率遇到干擾,則會在下一步跳到另一頻率點時重傳受到干擾的信號。因此總的干擾可變得很低,位錯誤很少或幾乎沒有。
藍(lán)牙數(shù)據(jù)完整性
前向糾錯(FEC)
藍(lán)牙采用的錯誤校正有三種類型:
●1/3編碼率FEC
●2/3 編碼率 FEC
●數(shù)據(jù)的自動重發(fā)請求(ARQ)方案
FEC(前向糾錯)的目的是為了減少數(shù)據(jù)載荷重發(fā)的次數(shù)。但是,采用FEC的缺點是會明顯地降低可達(dá)到的實際數(shù)據(jù)傳輸速率。
數(shù)據(jù)白化
所有的分組頭和載荷信息在發(fā)送前都要利用數(shù)據(jù)白化位進(jìn)行白化處理。這主要是為了避免在傳輸過程中出現(xiàn)過長的連續(xù)0或1的位流模式。基帶處理器需要從接收到的模擬數(shù)據(jù)信號中判斷數(shù)據(jù)是0還是1,但過長的連續(xù)0或1位流會造成問題。因為在接收到的模擬數(shù)據(jù)信號中并不存在象直流信號中那樣的參考點,因此必須依靠接收到的最后幾個傳輸信號進(jìn)行校正。任何連續(xù)的0或1的長序列位流串都可能導(dǎo)致校正失敗。因此需要采用數(shù)據(jù)白化技術(shù)對信號進(jìn)行擾碼處理,以大大降低出現(xiàn)長序列0或1位流串的可能性。
用于高級數(shù)據(jù)安全可編程解決方案
對于大多數(shù)需要將保密放在首位來考慮的應(yīng)用來說,藍(lán)牙所提供的數(shù)據(jù)安全性是不夠的??偟膩碚f,就藍(lán)牙安全性來說,還存在一些問題需要解決。藍(lán)牙所提供的數(shù)據(jù)安全性措施對小型應(yīng)用來說看起來已足夠了,但任何敏感數(shù)據(jù)或會產(chǎn)生問題的數(shù)據(jù)都不應(yīng)直接通過藍(lán)牙傳輸。例如,藍(lán)牙所采用的加密方案本身就有某些弱點。128位密鑰長度的E0序列加密在某些情況下可通過O(2^64)方式破解。
設(shè)想一種可能的情況,攻擊者設(shè)法獲取了用來保證兩個設(shè)備間通信的加密密鑰,然后即可竊聽這兩個設(shè)備間互相發(fā)送的消息。而且,攻擊者還可以冒充其中的某個設(shè)備插入錯誤的信息。朗訊公司認(rèn)為,避免這一問題的一個方法是用戶采用較長的個人識別碼(PIN碼)而不是用短的PIN碼,從而增加攻擊者獲取加密密鑰的難度。而這又意味著要人工輸入PIN號碼。這實在令人覺得非常不方便,因為每次建立安全連接都需要輸入PIN碼。
克服這種安全性問題的另一個方法是采用更強健的加密算法,如數(shù)字加密標(biāo)準(zhǔn)(DES),甚至三次DES來代替E0序列加密算法。DES是一種塊加密方法,這意味著加密過程是針對一個數(shù)據(jù)塊一個數(shù)據(jù)塊地進(jìn)行的。在DES算法中,原始信息被分成64位的固定長度數(shù)據(jù)塊,然后利用56位的加密密鑰通過置換和組合方法生成64位的加密信息。圖2示出的是DES加密處理的框圖。
與藍(lán)牙序列加密算法不同,數(shù)學(xué)上可以證明塊加密算法是完全安全的。DES塊密碼是高度隨機的、非線性的,生成的加密密文與明文和密鑰的每一位都相關(guān)。DES的可用加密密鑰數(shù)量多達(dá)72 x 1015個。應(yīng)用于每一 明文信息的密鑰都是從這一巨大數(shù)量的密鑰中隨機產(chǎn)生的。DES算法已被廣泛采用并被認(rèn)為是非??煽康?,而且現(xiàn)在出現(xiàn)了一種更為安全的DES算法變種--稱為三次DES(TDES),它采用不同的密鑰對信息連續(xù)進(jìn)行三次DES加密處理。
所有這些加密算法都可以采用低成本的可編程邏輯器件和現(xiàn)成可用的用于高級加密處理的智力產(chǎn)權(quán)(IP)產(chǎn)品實現(xiàn)。如圖2所示的DES功能,僅需要2美元成本的芯片邏輯資源即可實現(xiàn)。目前,大批量時只用10美元即可購買到10萬系統(tǒng)門的可編程邏輯器件,而且是現(xiàn)貨,立即可以使用。這些器件還允許在設(shè)計中增加其它功能,如高級錯誤糾正。因此可編程邏輯器件可大幅度降低系統(tǒng)級的成本。
基于軟件的加密解決方案具有極好的靈活性,然而性能較低。另一方面,基于硬件的加密解決方案性能很高,但一旦設(shè)計完成后靈活性很差。而基于可編程邏輯的加密解決方案則可同時提供前述兩種方案的優(yōu)點,即具有很高水平的靈活性也具有很高的性能。
采用一個更強鍵的加密算法允許藍(lán)牙技術(shù)安全地應(yīng)用到范圍廣泛的安全性具有最重要地位的應(yīng)用中去。這些應(yīng)用包括:金融電子交易:ATM、智能卡;安全電子商務(wù)交易;安全辦公通信;安全視頻監(jiān)視系統(tǒng);數(shù)字機頂盒;高清晰度電視(HDTV)及其它消費電子設(shè)備。
用于高級數(shù)據(jù)完整性可編程解決方案
藍(lán)牙標(biāo)準(zhǔn)定義了可有效防止隨機錯誤的方法,即采用數(shù)據(jù)白化和錯誤校驗方法進(jìn)行數(shù)據(jù)傳輸。然而,從理論上仍然存在這樣的特定數(shù)據(jù)流,它可能會持續(xù)地造成藍(lán)牙傳輸錯誤,雖然這種情況在通常的藍(lán)牙傳輸中很難碰到。
而且在更為惡劣的環(huán)境,如工業(yè)環(huán)境、辦公大樓、機場和城市公共交通廠所等,仍然存在傳輸過程中產(chǎn)生差錯的危險。在這些地方,來自其它多種藍(lán)牙設(shè)備、無線網(wǎng)絡(luò)、手機系統(tǒng)或其它工作在相同頻段的電子設(shè)備的噪聲和干擾都會導(dǎo)致問題。針對這些情況,可以再次采用可編程邏輯和高級糾錯IP來實現(xiàn)無錯通信。對惡劣的通信環(huán)境,可以采用一種更為強大的前向糾錯技術(shù),如Turbo卷積編碼。
urbo編碼是一種高級前向糾錯算法,它是第三代無線通信系統(tǒng)(如WCDMA中實現(xiàn)的)的標(biāo)準(zhǔn)糾錯算法。Turbo編碼的原理是由編碼器生成包含兩上獨立編碼比特序列和一個未編碼比特序列的數(shù)據(jù)流。由于經(jīng)過交織處理,兩組校驗比特序列是弱相關(guān)的。在Turbo解碼器中,兩組校驗比特序列分別利用稱為外部信息的軟判決輸出進(jìn)行解碼。Turbo解碼的效率來自一系列譯碼循環(huán)過程中對外部信息的共享。外部信息從一個校驗解碼步驟傳遞到另一個,從一個循環(huán)傳遞到另一個。已經(jīng)有此類Turbo卷積碼的現(xiàn)成IP可用,并且可容易地采用低成本可編程邏輯實現(xiàn)。這一解決方案可以在惡劣和容易出錯的環(huán)境中保證藍(lán)牙數(shù)據(jù)完整性。
藍(lán)牙應(yīng)用中的可編程邏輯解決方案
目前,實現(xiàn)這一美好前景所面臨的挑戰(zhàn)集中于如何將藍(lán)牙應(yīng)用到下一代產(chǎn)品中。這可能是一個困難的任務(wù),特別是當(dāng)面對現(xiàn)有的產(chǎn)品結(jié)構(gòu)時。如何集成藍(lán)牙子系統(tǒng)?如何最小化軟件開發(fā)開銷和對系統(tǒng)的影響?如何創(chuàng)造針對特定應(yīng)用的設(shè)備配置?
可編程邏輯的一個巨大優(yōu)點是可以根據(jù)特殊的要求調(diào)整系統(tǒng)配置。例如,目前提供的藍(lán)牙器件最大性能僅721Kbps,并且僅能同時支持幾個并發(fā)的網(wǎng)絡(luò)(微微網(wǎng))。對公共廠所的接入點(如機場休息室或企業(yè)會議室等),可能需要匯接大量的此類設(shè)備,以支持大量用戶的高帶寬連接。
可編程邏輯可以許多方式為設(shè)計提供靈活性,無論是連接一個不同的射頻部分到所選擇的基帶控制器,還是象上面的例子一樣集成更多的用戶接口外設(shè),或如圖3那樣實現(xiàn)數(shù)據(jù)安全性和完整性等增值功能。在所有情況下,您都會發(fā)現(xiàn)硬件設(shè)計會更快,并且可以多次進(jìn)行設(shè)計修正,從而保證系統(tǒng)可以在更短的時間內(nèi)達(dá)到正常工作,而所有這一切都沒有采用ASIC時的NRE費用。
評論