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