国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種針對ADS?B協(xié)議保密性及完整性的解決方法與流程

      文檔序號:11709951閱讀:864來源:國知局
      一種針對ADS?B協(xié)議保密性及完整性的解決方法與流程

      本發(fā)明屬于航空通信領(lǐng)域,具體涉及一種針對ads-b協(xié)議保密性及完整性的解決方法。

      發(fā)明背景

      由于最近幾年航空領(lǐng)域的空前發(fā)展,越來越多的人開始選擇乘坐飛機(jī)作為長途旅行的交通工具。與此同時,航空失事率也也有所增加。如近期的馬航事件便引起了全球各地對于航空安全的關(guān)注。

      ads-b的基本數(shù)據(jù)格式如圖1所示,

      (i).df(downlinkformat)字段df字段長度是5位,用于區(qū)分不同的下行鏈路格式(downlinkformat)。df的值可以是17、18或19。df=17用于s模式應(yīng)答機(jī)發(fā)出ads-b報文;df=18用于非s模式應(yīng)答機(jī)發(fā)出ads-b報文或tis-b報文;df=19用于軍事用途,非軍事應(yīng)用不會涉及到該類型報文。

      (ii).ca/cf(capability/codeformat)字段

      ca/cf字段的長度是3位,在不同的df值下有不同的含義。df=17時,該字段是ca字段,含義是s模式應(yīng)答機(jī)的能力;df=18時,該字段是cf字段,含義是編碼格式(codeformat),用于區(qū)分me字段的內(nèi)容、aa地址的類型、以及兩類特殊的報文;cf=0或1時,表明該報文是ads-b報文。

      (iii).aa(icao24aircraftaddress)字段aa字段的長度是24位,包含了發(fā)射裝置的地址信息。地址的類型有兩類:icao地址和非icao地址。icao地址是飛機(jī)的地址,非icao地址是匿名地址、地面車輛地址或表面障礙物地址。

      (iv).data(dataframe)字段data字段的長度是56位,包含了ads-b報文的業(yè)務(wù)數(shù)據(jù),稱之為ads-b業(yè)務(wù)報文。關(guān)于data字段的格式將在ads-b業(yè)務(wù)報文中進(jìn)一步說明。

      (v).pi(paritycheck)字段pi字段的長度是24位,是一個下行鏈路字段,含義是奇偶性(parity)和一致性(identity)。該字段包含了編碼標(biāo)簽(codelabel,cl)和詢問器編碼(interrogatorcode,ic)的奇偶性。

      表1

      為了保證方法對于原先ads-b協(xié)議的兼容性,我們著重說明tc字段,當(dāng)typecode為不同值時ads-b消息所包含的不同的信息。dataframe(33bit-88bit)中的33bit-37bit為tc(typecode),typecode的值不同,則這條ads-b消息所包含的消息也不同。在本方案中用tc=25表示ads-b保留消息,即飛機(jī)不會去解析此類報文。

      ads-b作為美國下一代航空運(yùn)輸系統(tǒng)的組成部分,近幾年越來越受到各方關(guān)注。歐盟規(guī)定,其成員國需在2020年之前強(qiáng)制運(yùn)用ads-b。但依照ads-b航空領(lǐng)域廣播通信協(xié)議,所有飛機(jī)所生成的所有包含為位置、速度等重要信息的ads-b報文以明文的形式通過飛機(jī)配備的ads-b-out設(shè)備廣播在指定信道上。這也就削弱了ads-b協(xié)議的安全性,因?yàn)槿魏我粋€配備ads-b接收器的攻擊者都可以通過將頻段調(diào)制1090mhz,對飛機(jī)廣播的消息進(jìn)行監(jiān)聽,從而從中獲得飛機(jī)的位置、速度等敏感信息。對于主動攻擊者而言,在收到ads-b消息的基礎(chǔ)上,可以通過對其消息記性修改生成假消息,并通過ads-b發(fā)送機(jī)發(fā)送到1090mhz信道上,這無疑對于飛機(jī)的安全構(gòu)成威脅。



      技術(shù)實(shí)現(xiàn)要素:

      針對上述現(xiàn)有技術(shù)問題,本發(fā)明的目的在于提供一種針對ads-b協(xié)議保密性及完整性的解決方法,該方法在不修改ads-b航空通信協(xié)議的基礎(chǔ)上,對原有ads-b消息進(jìn)行加密處理,保證敏感數(shù)據(jù)的機(jī)密性;提供消息認(rèn)證功能從而保證消息的完整性;與此同時,本方案對于自然環(huán)境廣播中存在的丟包問題具備容錯性。

      為了達(dá)到上述目的,本發(fā)明包括以下步驟:

      步驟1:可信第三方為每個應(yīng)用ads-b的飛機(jī)生成加密和消息驗(yàn)證所需安全參數(shù),通過安全信道分發(fā)給各飛機(jī),并通過廣播信道廣播給飛機(jī);

      步驟2:各飛機(jī)在飛行過程中通過ads-btransponder接收安全參數(shù)后生成消息驗(yàn)證碼完成加密,生成ads_b消息并傳輸給ads-b發(fā)送器;

      步驟3:接收方接收ads-b消息進(jìn)行校驗(yàn)。

      上述技術(shù)方法中,所述步驟1可信第三方為每個應(yīng)用ads-b的飛機(jī)生成加密和消息驗(yàn)證所需安全參數(shù),通過安全信道分發(fā)給各飛機(jī),并通過廣播信道廣播給飛機(jī)包括以下幾個步驟:

      步驟1.1:可信第三方每個應(yīng)用ads-b的飛機(jī)選取安全參數(shù)并通過算法生成加密所需密鑰和加密所需參數(shù);

      步驟1.2:可信第三方將加密所需密鑰和加密所需參數(shù)代入加密算法公式生成假名;

      步驟1.3:可信第三方為每個應(yīng)用ads-b的飛機(jī)選取不同的隨機(jī)密鑰作為密鑰鏈的第n個密鑰,并運(yùn)用單向哈希函數(shù)f生成一條只可單向推導(dǎo)的密鑰鏈密鑰鏈并取出第一個密鑰;

      步驟1.4:將假名和密鑰鏈組成二元組[假名,密鑰鏈]后通過安全信道分發(fā)給飛機(jī),將假名和第一個密鑰組成二元組[假名,第一個密鑰]后通過廣播信道廣播給飛機(jī);

      上述技術(shù)方法中,所述步驟2各飛機(jī)在飛行過程中通過ads-btransponder接收安全參數(shù)后生成消息驗(yàn)證碼完成加密,生成ads_b消息并傳輸給ads-b發(fā)送器,保證生成的ads-b消息對于原ads-b協(xié)議的兼容性,包括以下步驟:

      步驟2.1:加密所需參數(shù)的接收:飛機(jī)接收來自可信第三方的安全參數(shù)中的假名和密鑰;

      步驟2.2:構(gòu)建消息驗(yàn)證碼的輸入:從密鑰鏈中取出第i-1個鏈密鑰,并通過截斷函數(shù)得到第i-1個短密鑰;將原始消息中的data字段連同前一條報文使用的密鑰作為消息驗(yàn)證碼算法的輸入;從密鑰鏈中取出第i個鏈密玥,并計算第i個短密鑰,將第i個短密鑰為消息驗(yàn)證碼算法的另一個輸入;

      步驟2.3:生成消息驗(yàn)證碼:將原始消息中的data字段連同前一條報文使用的密鑰和第i個短密鑰代入消息驗(yàn)證碼算法公式中生成消息驗(yàn)證碼;

      步驟2.4:完成加密并發(fā)送報文:飛機(jī)用收到的假名替換原有的icao,將生成的消息認(rèn)證碼連同前一條報文使用的密鑰作為新ads-b消息的data字段,構(gòu)建第i個報文,并將第i個報文通過1090mhz信道廣播給接收方。

      上述技術(shù)方法中,所述步驟3接收方接收ads-b消息進(jìn)行校驗(yàn)當(dāng)報文未丟失時,包括以下幾個步驟:

      步驟3.1:接收第i-1個報文緩存;

      步驟3.2:待收第i個報文之后,將新報文data字段中的第i-1個短密鑰取出,將緩存中data字段中去除第i-1個消息驗(yàn)證碼之后剩余的部分取出,用第i-1個短密鑰通過截斷函數(shù)得到第i-2個短密鑰,將第i-2個短密鑰與緩存中data字段中去除第i-1個消息驗(yàn)證碼之后剩余的部分比較。若相同,則跳至3.3,否則跳轉(zhuǎn)3.5;

      步驟3.3:從緩存中取出第i-1個消息驗(yàn)證碼,通過消息驗(yàn)證碼算法得到第i-1個新消息驗(yàn)證碼,將緩存中的第i-1個消息驗(yàn)證碼與第i-1個新消息驗(yàn)證碼比較,若相同,則驗(yàn)證成功跳轉(zhuǎn)3.4,否則跳轉(zhuǎn)3.5;

      步驟3.4:讀取第i-1個報文并分析緩存中ads-b消息的原始data字段,并緩存最新的第i個報文;

      步驟3.5:校驗(yàn)失敗,丟棄最新收到的包。

      上述技術(shù)方法中,所述步驟3接收方接收ads-b消息進(jìn)行校驗(yàn)當(dāng)報文丟失時,包括以下幾個步驟:

      步驟3.1:接收第i-1個報文緩存;

      步驟3.2:將緩存中data字段中去除第i-1個消息驗(yàn)證碼之后剩余的部分和第i-1個消息驗(yàn)證碼取出,從新報文的data字段中取出第i+m-1個短密鑰,通過截斷函數(shù)向前推導(dǎo)得到第i-2個前短密鑰,將第i-2個前短密鑰與第i-2個短密鑰比較,若相同,則跳至3.3,否則跳至3.5;

      步驟3.3:向后回退一個密鑰距離,通過截斷函數(shù)得到第i-1個短密鑰,第i-1個短密鑰通過消息驗(yàn)證碼算法得到第i-1新消息驗(yàn)證碼,將第i-1新消息驗(yàn)證碼與第i-1消息驗(yàn)證碼比較,若相同,則校驗(yàn)成功跳轉(zhuǎn)3.4,否則跳轉(zhuǎn)3.5;

      步驟3.4:讀取第i-1個報文包并分析緩存中ads-b消息的原始data字段,并緩存第i個報文包;

      步驟3.5:校驗(yàn)失敗,丟棄最新收到的包。

      上述技術(shù)方法中,加密算法采用ffx,消息驗(yàn)證碼算法采用基于密鑰鏈的hmac-md5。

      上述技術(shù)方法中,步驟2.1接收的假名與步驟2.4中icao位數(shù)相同;步驟2.3中,對于消息認(rèn)證碼的生成以及ads-b消息的構(gòu)造,包含認(rèn)證碼的新ads-b消息的data字段中tc字段值為25。

      因?yàn)楸景l(fā)明采用上述技術(shù)方法,因此具備以下有益效果:

      (1)在實(shí)際執(zhí)行過程中,加密結(jié)果的格式與原報文中明文的格式相同,從而保證了對于原有ads-b協(xié)議的兼容性,促進(jìn)針對ads-b航空領(lǐng)域廣播通信協(xié)議的完整性;

      (2)消息認(rèn)證碼通過將其連接密鑰鏈中前一密鑰后填充入tc=25的保留ads-b消息中,從而保證其中的消息認(rèn)證碼數(shù)據(jù)不會被飛機(jī)解析成相關(guān)位置信息,也確保了對于原有ads-b協(xié)議的兼容性;

      (3)本發(fā)明在生成消息認(rèn)證碼的密鑰基于密鑰鏈以及延遲認(rèn)證技術(shù),使得開發(fā)人員可以定期更換密鑰而不必向所有終端通知新密鑰,有效提供針對ads-b航空領(lǐng)域廣播通信協(xié)議的機(jī)密性與安全性;

      (4)本發(fā)明的密鑰鏈基于密鑰鏈的單向性,在ads-b消息出現(xiàn)丟失的情況下仍可以對待認(rèn)證消息進(jìn)行認(rèn)證,從而保證了該方案在實(shí)際運(yùn)用中對于保溫丟失的容錯性。

      附圖說明

      圖1是方法整體流程示意圖;

      圖2是ads-b消息格式圖;

      圖3是構(gòu)造報文數(shù)據(jù)包的方法圖;

      圖4為應(yīng)用環(huán)境的系統(tǒng)模型圖。

      具體實(shí)施方式

      為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖詳予說明。

      本發(fā)明提出了一種針對ads-b協(xié)議保密性及完整性的解決方法,在加密及生成消息驗(yàn)證碼的同時保證生成的ads-b消息對于原ads-b協(xié)議的兼容性方面取得良好的效果。整個方案整體流程示意圖如圖1所示,包括步驟:

      我們通過已有的opensky開源項目獲取.avro文件,其中包含有原始ads-b消息和其他如傳感器編號等信息。

      在java程序中,運(yùn)用org.apache.avro接口可以實(shí)現(xiàn)對于.avro文件的讀取和解析。通過opensky提供的org.opensky.example.modesencodedmessage讀取rawads-b消息,因?yàn)閍ds-b消息的格式是固定的,所以可以將指定數(shù)位讀取出來。再通過在modesencodedmessage中增加加密方法來實(shí)現(xiàn)ffx加密。

      加密過程中,java程序?qū)awmessage通過傳參的方式將其傳給python程序。在python程序中通過gmpy包實(shí)現(xiàn)高精度運(yùn)算,通過crypto包直接實(shí)現(xiàn)aes加密,并在aes加密的基礎(chǔ)上編程實(shí)現(xiàn)ffx加密算法;用python的hashlib庫生成后期生成消息驗(yàn)證碼所需的密鑰鏈;連通hmac庫文件模擬消息認(rèn)證碼的生成。

      如圖2所示,python程序?qū)⒓用苤蟮膇cao以及k′i-1||γi再傳送回java程序。由java程序負(fù)責(zé)將原始的icao替換為pid,并在原始消息后再追加新的ads-b消息,其中tc字段置為25,表示此條ads-b消息為保留消息,其data字段用來存放k′i-1||γi。

      因?yàn)楸痉桨傅幕疽鬄楸WC對于原始ads-b協(xié)議的兼容性,因此為了最終測試的便利性,我們在生成新的ads-b消息之后,用opensky提供的javaapi接口org.opensky.example.modesencodedmessage將新的ads-b消息寫入.avro文件,再運(yùn)用opensky提供的avro2kml工具將.avro文件轉(zhuǎn)換成可以被googleearth識別的.kml文件,通過對比文件前后在googleearth上的軌跡是否相同來判斷對于原先ads-b協(xié)議的兼容性。

      本發(fā)明在兼容現(xiàn)行ads-b協(xié)議格式的基礎(chǔ)上實(shí)現(xiàn)對傳統(tǒng)明文廣播傳輸消息的機(jī)密性以及完整性的保障,整個方法實(shí)現(xiàn)流程圖如圖1所示,包括步驟:

      步驟1:可信第三方系統(tǒng)初始化:可信第三方為每個應(yīng)用ads-b的飛機(jī)生成加密和消息驗(yàn)證碼所需的安全參數(shù),通過安全信道分發(fā)給各飛機(jī),并通過廣播信道廣播出去,其步驟如下:

      a、可信第三方選取安全參數(shù)λ并執(zhí)行算法θ(λ)為每個應(yīng)用ads-b的飛機(jī)生成加密所需密鑰和加密所需參數(shù)ti,其中

      b、可信第三方執(zhí)行加密算法將身份碼進(jìn)行加密,為每架飛機(jī)生成相應(yīng)的假名pidi,其中icaoi為存儲在ads-b報文aa字段的24位身份碼;

      c、可信第三方為每個應(yīng)用ads-b的飛機(jī)選取不同的隨機(jī)密鑰kn作為密鑰鏈的第n個密鑰,并運(yùn)用單向哈希函數(shù)f,運(yùn)行fv(x)=f(fv-1(x))生成一條只可單向推導(dǎo)的密鑰鏈keychain=(k1,k2,...,kn),并取出第一個密鑰k1.;

      d、將假名pidi和密鑰鏈keychain組成二元組σ1=(pidi,keychain)通過安全信道分發(fā)給飛機(jī),并將假名pidi和第一個密鑰k1.組成二元組σ2=(pidi,k1)通過廣播信道廣播給飛機(jī)。

      步驟2:各飛機(jī)在飛行過程中通過ads-btransponder接收安全參數(shù)后生成消息驗(yàn)證碼完成加密,生成ads_b消息并傳輸給ads-b發(fā)送器,處理步驟如下:

      a、加密所需參數(shù)的接收:接收來自可信第三方的假名和密鑰;

      b、構(gòu)建消息驗(yàn)證碼的輸入:對于第i個ads-b消息,從密鑰鏈中取出第i-1個鏈密鑰ki-1,并通過截斷函數(shù)f′(x)得到第i-1個鏈密鑰對應(yīng)的短密鑰k′i-1=f′(ki-1);原始消息中的data字段連同前一條報文使用的密鑰<mi||k′i-1>作為消息驗(yàn)證碼算法的輸入,從密鑰鏈中取出第i個鏈密鑰ki,通過k‘i=f’(ki)計算第i個短密鑰k‘i,第i個短密鑰k‘i作為消息驗(yàn)證碼算法的另一個輸入;

      c、生成消息驗(yàn)證碼:將第i個短密鑰k‘i和原始消息中的data字段連同前一條報文使用的密鑰<mi||k′i-1>代入消息驗(yàn)證碼算法公式得到消息驗(yàn)證碼γi;

      d、構(gòu)建data字段和構(gòu)建發(fā)送報文:飛機(jī)用收到的假名pid替換原有的icao,將生成的消息認(rèn)證碼連同前一條報文使用的密鑰datai=<mi||k′i-1||γi>作為新ads-b消息的data字段,構(gòu)建第i個報文pi=<head||pidi||datai||pii>(head為ads-b報文頭;pid為生成的假名;data為數(shù)據(jù)字段;pi為奇偶校驗(yàn)字),并將第i個報文pi通過1090mhz信道廣播給接收方。

      步驟3:接收方接收ads-b消息進(jìn)行校驗(yàn),對于沒有出現(xiàn)報文丟失的理想情況,其步驟如下:

      a、收到第i-1個報文pi-1之后先緩存;

      b、待收到第i個報文pi之后,將緩存中data字段中去除第i-1個消息驗(yàn)證碼之后剩余的部分di-1=<mi-1||k′i-2>(mi-1為第i-1條ads-b報文中原始的數(shù)據(jù)字段,k′i-2為第i-2個短密鑰)取出,并從第i個報文pi中取出第i-1個短密鑰k′i-1,計算第i-2個短密鑰k″i-2=f′(f(k′i-1)),將k′i-2∈di-1進(jìn)行比較,若相同,執(zhí)行c,否則跳轉(zhuǎn)d;

      c、從緩存中取出第i-1個消息驗(yàn)證碼γi-1,通過消息驗(yàn)證碼算法計算第i-1個新消息驗(yàn)證碼γ′i-1;比較γi-1和γ′i-1的大小,若相同,則校驗(yàn)成功,從第i-1個報文pi-1中讀取信息,緩存第i個報文pi,否則跳轉(zhuǎn)d;

      d、校驗(yàn)失敗,丟棄最新接收的包。

      步驟3:接收方接收ads-b消息進(jìn)行校驗(yàn),對于出現(xiàn)報文丟失的情況,其步驟如下:

      a、收到第i-1個報文pi-1之后先緩存;

      b、待收到第i+m個報文pi+m之后,將緩存中data字段中去除第i-1個消息驗(yàn)證碼之后剩余的部分di-1=<mi-1||k′i-2>和第i-1個消息驗(yàn)證碼γi-1取出;從第i+m個報文pi+m中取出第i+m-1個短密鑰k′i+m-1,通過截斷函數(shù)k″i-2=f′(fm(k′i+m-1))計算第i-2個短密鑰,將k″i-2同k′i-2比較;若相同,跳轉(zhuǎn)c,否則跳轉(zhuǎn)d;

      c、通過k′i-2=f′(fm-1(k′i+m-1))計算回退一個密鑰距離的第i-1個短密鑰,通過消息驗(yàn)證碼算法計算第i-1個新消息驗(yàn)證碼,并將第i-1個新消息驗(yàn)證碼γ′i-1同第i-1個消息驗(yàn)證碼γi-1進(jìn)行比較;若相同,則校驗(yàn)成功;否則跳轉(zhuǎn)d;

      d、校驗(yàn)失敗,丟棄最新接收的包。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1