• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于比特幣系統(tǒng)的隱蔽通信技術(shù)

      2021-04-08 03:25:34呂婧淑操曉春
      信息安全學(xué)報 2021年2期
      關(guān)鍵詞:分片字段比特

      呂婧淑,操曉春

      (中國科學(xué)院信息工程研究所 信息安全國家重點實驗室,北京 100093)

      1 引言

      近年來,區(qū)塊鏈[1](blockchain)作為一種去中心化、不可篡改、可追溯、多方共同維護分布式數(shù)據(jù)庫的技術(shù),被廣泛地應(yīng)用于金融、身份認證、公示公證等領(lǐng)域[2]。區(qū)塊鏈源自化名為“中本聰”的學(xué)者提出的比特幣[3]系統(tǒng)的底層技術(shù)。

      區(qū)塊鏈有去中心化、匿名性、可追溯和安全可信的特點[4]。1)去中心化: 區(qū)塊鏈中數(shù)據(jù)的新建、驗證、更新等操作都是通過 P2P網(wǎng)絡(luò)的傳播和數(shù)學(xué)方法的計算完成,而無需中心化機構(gòu)的管理和參與;2)匿名性: 在區(qū)塊鏈上進行交易的節(jié)點是通過一個公鑰地址完成的,并不知道對方在現(xiàn)實世界的真實身份,因此區(qū)塊鏈具有很強的匿名性; 3)可追溯: 數(shù)據(jù)一旦被驗證正確,所有區(qū)塊都會記錄該數(shù)據(jù)及其時間戳,因此區(qū)塊鏈具有很強的可追溯和不可抵賴性; 4)安全可信: 采用哈希算法對區(qū)塊鏈應(yīng)用的交易數(shù)據(jù)、區(qū)塊數(shù)據(jù)等加密以保證數(shù)據(jù)的安全性、采用數(shù)字簽名技術(shù)對交易數(shù)據(jù)進行簽名以保證其他節(jié)點能夠驗證該數(shù)據(jù)的真實性; 同時借助分布式系統(tǒng)各節(jié)點的工作量證明等共識算法形成的強大的計算能力來抵御外部攻擊,從而保證區(qū)塊鏈數(shù)據(jù)不可篡改和不可偽造。

      基于區(qū)塊鏈開發(fā)的比特幣是區(qū)塊鏈技術(shù)最廣為人知的應(yīng)用,以下簡稱為比特幣。比特幣本質(zhì)上是由點對點(P2P)網(wǎng)絡(luò)系統(tǒng)生成的數(shù)字貨幣,其發(fā)行過程不依賴特定的中心化機構(gòu),而是依賴于 P2P網(wǎng)絡(luò)中所有節(jié)點共同參與一種稱為工作量證明(Proof of work,POW)的共識過程以完成交易的驗證與記錄。POW 共識過程(俗稱“挖礦”,每個節(jié)點稱為“礦工”)是各節(jié)點為了獲得新區(qū)塊的記賬權(quán)使用自己的計算資源來競爭解決一個難度可動態(tài)調(diào)整的數(shù)學(xué)問題。難度值通常為含有很多個前置零的哈希值,各節(jié)點不斷地對區(qū)塊頭部的數(shù)據(jù)進行哈希計算,若某節(jié)點計算出的哈希值小于等于難度值則成功解決該數(shù)學(xué)問題,獲得新區(qū)塊的記賬權(quán)并向全網(wǎng)廣播。其余所有節(jié)點驗證通過后將當前時段所有比特幣的交易打包記入新區(qū)塊、按照時間順序鏈接到比特幣主鏈上。比特幣的第一個區(qū)塊(稱為創(chuàng)世區(qū)塊)誕生于2009年1月4日,由創(chuàng)始人“中本聰”持有。一周后,“中本聰”向密碼學(xué)專家哈爾芬尼發(fā)送了10個比特幣(此處的比特幣為貨幣單位),成為歷史上第一次比特幣交易。

      信息隱藏模型[5]最早源自 Simmons提出的囚徒問題: Alice和Bob是獄友,他們想謀劃一個越獄計劃,但又不能讓監(jiān)視他們的典獄官 Wendy發(fā)現(xiàn)。這個問題可以被抽象為: A想向B秘密傳遞一些消息,因此A需要選擇一個看似平常的消息R(當R在網(wǎng)絡(luò)中公開傳輸時不會引起懷疑,稱消息 R為載體),將秘密信息m加密后嵌入載體R中,此時載體R變成隱秘對象S,并且S盡可能地保持原有載體S的特征不變,使得攻擊者在僅知 R的表面消息時無法檢測到秘密消息m。這樣,就實現(xiàn)了信息的隱蔽傳輸。

      結(jié)合囚犯問題和上述模型的分析,信息隱藏的概念可以定義為將秘密信息隱藏于某個公開的載體中傳輸并不被接收者以外的人發(fā)現(xiàn)。根據(jù)信息隱藏技術(shù)的目的和載體不同,其可以分為四個分支: 隱寫術(shù)[6]、匿名通信[7]、隱蔽信道[8]、數(shù)字水印[9]。其中,隱寫術(shù)是一種將秘密信息隱藏于某種不被懷疑的載體中實現(xiàn)隱蔽通信的技術(shù); 匿名通信指采取一定的措施來隱藏通信流中的通信關(guān)系,使竊聽者難以獲取或辨別通信雙方的關(guān)系及內(nèi)容。近年來,基于信息隱藏中隱寫術(shù)和匿名通信兩個分支發(fā)展出的隱蔽匿名通信[10]技術(shù)在多媒體、網(wǎng)絡(luò)、信道等載體中都有應(yīng)用。隱蔽通信技術(shù)具有安全、匿名、隱藏容量的特點: 1)安全性: 對普通用戶來說,隱藏過程是無法“感受”到的,對攻擊者來說,載體的特征在統(tǒng)計角度上不可分辨; 2)匿名性: 隱蔽傳輸?shù)陌l(fā)送方和接收方的真實身份對普通用戶和攻擊者來說都是未知的或很難推斷的; 3)隱藏容量: 是指載體所能承載的秘密信息的數(shù)量,即秘密信息與載體信息大小的比例,一般希望這個比例越大越好。隱蔽信道的傳輸介質(zhì)分為存儲類型和時間類型,由此衍生出存儲型隱蔽信道和時分型隱蔽信道。操作系統(tǒng)、數(shù)據(jù)庫和網(wǎng)絡(luò)系統(tǒng)中都可以構(gòu)造隱蔽信道,本文主要討論基于網(wǎng)絡(luò)的隱蔽信道。

      然而,現(xiàn)有的隱蔽通信技術(shù)存在一定的問題: 1)存儲型隱蔽信道通常使用網(wǎng)絡(luò)協(xié)議包的冗余字段進行信息隱藏,其安全性受所嵌協(xié)議包通信頻率的影響,若兩個進程通過該協(xié)議通信的頻率很低,那么隱藏在網(wǎng)絡(luò)協(xié)議中的秘密信息很容易被發(fā)現(xiàn); 2)通信雙方的匿名性較難保證,一旦被檢測到利用網(wǎng)絡(luò)協(xié)議隱藏信息,便能夠通過雙方 IP地址收集與其在同一地址內(nèi)移動端的定位數(shù)據(jù)從挖掘雙方現(xiàn)實生活中的實際地址,從而造成隱私泄露; 3)時分型隱蔽信道受當前網(wǎng)絡(luò)環(huán)境和設(shè)定的時間間隔影響很大: 對基于分組交換的 IP網(wǎng)絡(luò)而言,數(shù)據(jù)分組因為選取不同的路由而引入不同的處理延時,若延時超過了設(shè)置的時間間隔,就會出現(xiàn)誤碼,即本應(yīng)為“1”的消息被接收方誤認為是“0”。

      可以看出,區(qū)塊鏈技術(shù)在一定程度上滿足隱蔽通信的特點,1)安全可信: 采用哈希算法對區(qū)塊鏈應(yīng)用的交易數(shù)據(jù)、區(qū)塊數(shù)據(jù)等加密以保證數(shù)據(jù)傳輸及存儲的安全性。區(qū)塊鏈天然的加密機制保障了存儲型隱蔽信道所隱藏內(nèi)容的安全性; 2)去中心化: 新區(qū)快、新交易的產(chǎn)生不需要經(jīng)過中心化機構(gòu)的審核,所有數(shù)據(jù)保存在分布于全球的完整節(jié)點。新區(qū)快、新交易產(chǎn)生時會向全網(wǎng)廣播消息,而不會通過中心化機構(gòu)轉(zhuǎn)發(fā),因此去中心化特點提高了隱蔽信道的不可感知性; 3)假名性: 以比特幣為例,每個節(jié)點在網(wǎng)絡(luò)中交易使用的是其公鑰生成的地址,因此無法獲得節(jié)點的真實身份,保護了隱蔽信道通信雙方的隱私。這些特點使得區(qū)塊鏈技術(shù)很適合隱蔽通信的場景。因此本文要解決的問題是將區(qū)塊鏈某些技術(shù)層作為隱蔽匿名通信的載體傳輸秘密消息。具體來說,是在區(qū)塊鏈的網(wǎng)絡(luò)層和應(yīng)用層構(gòu)建隱蔽信道。

      然而,正是由于區(qū)塊鏈的可追溯、不可抵賴等特性,使得隱蔽傳輸?shù)碾y度相對普通載體變大——1)新區(qū)塊的產(chǎn)生和所有交易信息都會在區(qū)塊鏈 P2P網(wǎng)絡(luò)中廣播,因此所有節(jié)點都能夠查看到新區(qū)塊和新交易的內(nèi)容; 2)上述信息不僅會在網(wǎng)絡(luò)中廣播,而且還會被記錄在區(qū)塊體中,而區(qū)塊鏈是分布式記賬的系統(tǒng),因為這些信息會永久存儲在所有節(jié)點的賬本中。那么隱蔽匿名通信的雙方若要使用基于存儲的信息隱藏算法,隱藏的信息會隨著新區(qū)塊和新交易實時地被全網(wǎng)節(jié)點獲知,并且任何節(jié)點都能隨時查看區(qū)塊記錄的之前的信息,但通信雙方并不希望其他節(jié)點發(fā)現(xiàn),因此這對隱藏算法的要求很高。

      2 相關(guān)工作

      2.1 網(wǎng)絡(luò)隱蔽通信

      2.1.1 網(wǎng)絡(luò)隱蔽通信的背景

      隱蔽通信[12]的概念首先由Lampson提出。隱蔽通信是允許一方以不違反系統(tǒng)的安全策略的方式傳送信息到另一方,是一種能抵抗審查的通信方式。在互聯(lián)網(wǎng)開放環(huán)境下,隱蔽通信也能使用網(wǎng)絡(luò)中數(shù)據(jù)流等載體來實現(xiàn)。因為所有通過網(wǎng)絡(luò)的信息都以數(shù)據(jù)流的形式傳輸,數(shù)據(jù)流傳輸會通過不同網(wǎng)絡(luò)拓撲,數(shù)據(jù)流由這些網(wǎng)絡(luò)節(jié)點共享,如果以網(wǎng)絡(luò)數(shù)據(jù)流為載體,采用隱寫術(shù)是可以實現(xiàn)隱蔽通信的。隱寫術(shù)是一門關(guān)于信息隱藏的科學(xué),信息隱藏指的是不讓除預(yù)期的接收者之外的任何人知曉信息的傳遞事件或者信息的內(nèi)容。現(xiàn)代隱寫術(shù)利用信號或協(xié)議的冗余作為載體,將秘密信息隱藏于其中,以達到在不影響使用的前提下掩蓋傳輸秘密信息及其存在的目的。

      2.1.2 網(wǎng)絡(luò)隱蔽通信的類型

      網(wǎng)絡(luò)隱蔽通信[13]的基本方式是以網(wǎng)絡(luò)數(shù)據(jù)流作為載體,采用隱寫術(shù)構(gòu)建隱蔽信道,是相對公開信道而言的。隱蔽信道是在公開信道中建立起來的一種進行隱蔽通信的信道,該信道的存在僅為確定的收方所知。

      網(wǎng)絡(luò)隱蔽通信中的隱蔽信道可分為兩種模式: 基于存儲的隱蔽信道和基于時間的隱蔽信道。1)基于存儲的隱蔽信道又稱為存儲型隱蔽信道,秘密信息被嵌入到網(wǎng)絡(luò)數(shù)據(jù)包的某些未用位或者載荷中,隨著網(wǎng)絡(luò)包一起發(fā)送出去。2)基于時間的隱蔽信道又稱為時分型隱蔽信道,此種隱蔽信道利用數(shù)據(jù)包到達的順序,或者利用單位時間內(nèi)是否有數(shù)據(jù)包到達傳遞信息。

      其中,存儲型隱蔽信道主要在網(wǎng)絡(luò)層、傳輸層和應(yīng)用層采用隱寫術(shù)建立,即在各層的常用協(xié)議中的某些冗余字段嵌入信息,既不會影響正常的網(wǎng)絡(luò)通信,又能達到發(fā)送秘密信息的目的。例如,網(wǎng)絡(luò)層經(jīng)常使用的IP協(xié)議中的服務(wù)類型、標識ID、標志字段等字段在特定情況下都是空置字段,可以被用來構(gòu)造隱蔽信道; 傳輸層常使用的 TCP協(xié)議中的序號、確認號、標志和緊急指針等字段可以被用戶構(gòu)造隱蔽信道。應(yīng)用層中的 HTTP協(xié)議利用請求報文的請求首部Accept域中選項參數(shù)之間的排列位置來編碼隱藏信息。

      2.2 區(qū)塊鏈系統(tǒng)

      從技術(shù)角度看,區(qū)塊鏈系統(tǒng)由數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、激勵層和應(yīng)用層組成,如圖1所示。其中,數(shù)據(jù)層包括了區(qū)塊,區(qū)塊頭部包含了時間戳、難度值,區(qū)塊體包含了交易數(shù)據(jù),區(qū)塊之間通過哈希算法計算后的鏈式結(jié)構(gòu)相連; 從網(wǎng)絡(luò)層可以看出,區(qū)塊鏈系統(tǒng)是建立在對等網(wǎng)絡(luò)(P2P網(wǎng)絡(luò))和 TCP/IP協(xié)議上的分布式系統(tǒng),新區(qū)塊和新交易在這樣的網(wǎng)絡(luò)上有其獨特的廣播機制; 在共識層上,節(jié)點通過使用數(shù)據(jù)層中的哈希算法和動態(tài)變化的難度值來確保新區(qū)塊產(chǎn)生的公平性和鏈條的一致性。一旦數(shù)據(jù)被記錄在區(qū)塊內(nèi),若要篡改需要重新按照共識機制計算一遍所有的區(qū)塊內(nèi)容,因此只要誠實節(jié)點占比超過50%,篡改的速度就會比最長鏈的增長速度慢。在應(yīng)用層: 1)區(qū)塊鏈系統(tǒng)中每個節(jié)點共享同一份賬本數(shù)據(jù)的特點使其很適合重要數(shù)據(jù)的存儲; 2)區(qū)塊鏈的不可篡改性和可追溯性使其很適合用戶身份、企業(yè)各類許可證和執(zhí)照的驗證; 3)區(qū)塊鏈去中心化的特點使其能夠應(yīng)用于股權(quán)眾籌、P2P網(wǎng)絡(luò)借貸等商業(yè)模式,而不需要第三方中介機構(gòu),無需交易雙方的信用以節(jié)省成本; 4)區(qū)塊鏈的共識機制和不可篡改性保證了其在公共事務(wù)中的公平和透明,因此也可以應(yīng)用于政治選舉、股東投票等。

      圖1 區(qū)塊鏈技術(shù)框架圖Figure 1 Blockchain Technology Framework

      2.3 比特幣網(wǎng)絡(luò)

      比特幣是基于區(qū)塊鏈技術(shù)的虛擬貨幣應(yīng)用,屬于圖1的應(yīng)用層。它本質(zhì)上不依賴中心機構(gòu),而是由去中心化的點對點網(wǎng)絡(luò)生成的虛擬貨幣,并由該網(wǎng)絡(luò)中所有節(jié)點共同記賬、維護賬本。比特幣發(fā)行的方式就是由上述POW[11]機制決定的。中本聰?shù)陌灼x的 POW: P2P分布式網(wǎng)絡(luò)中所有節(jié)點搜索一個隨機數(shù)能夠在特定公式計算下滿足難度值。一旦某個節(jié)點花費 CPU資源找到一個隨機數(shù)滿足了POW 的公式,便成為新區(qū)塊的擁有者,并創(chuàng)建該區(qū)塊的初始交易(包含coinbase字段的交易)。隨后,該節(jié)點將新區(qū)塊和初始交易打包通過比特幣特有的廣播機制向全網(wǎng)節(jié)點廣播。本文提出的隱蔽信道就是基于比特幣 P2P網(wǎng)絡(luò)的廣播機制、交易機制和節(jié)點間通信機制構(gòu)造的。因此,本節(jié)將詳細介紹比特幣網(wǎng)絡(luò)中的廣播機制、交易機制和節(jié)點的通信機制。

      2.3.1 廣播機制

      比特幣網(wǎng)絡(luò)中,每一個新區(qū)塊、新交易產(chǎn)生后都需要向周圍的節(jié)點廣播,得到足夠數(shù)量的驗證后新區(qū)塊才能被加到已有區(qū)塊鏈上、新交易才能被打包加入到現(xiàn)有區(qū)塊中。為了避免重復(fù)發(fā)送節(jié)點已經(jīng)收到的區(qū)塊消息或交易消息,這些消息的廣播過程并不是直接發(fā)送,而是如圖2所示:

      圖2 比特幣網(wǎng)絡(luò)廣播機制示意圖Figure 2 Schematic Diagram of Bitcoin Network Broadcasting Mechanism

      節(jié)點A和節(jié)點B是鄰居節(jié)點。節(jié)點A收到了一個新區(qū)塊或新交易產(chǎn)生的消息,首先 A要對新區(qū)塊或交易進行驗證,完全驗證通過后向節(jié)點 B發(fā)送一個inv消息(inv消息包含了一系列A收到的交易散列值和區(qū)塊散列值,它們現(xiàn)在都是可被請求的狀態(tài));節(jié)點B收到的inv消息中若有交易和區(qū)塊散列值還未存儲在B本地,那么節(jié)點B將會向節(jié)點A發(fā)送一個getdata消息(getdata消息包含了節(jié)點B未存儲的區(qū)塊或交易的散列值)。最終,節(jié)點A發(fā)送給節(jié)點B請求的區(qū)塊或交易整體數(shù)據(jù)。

      節(jié)點通過 inv消息可以廣播(advertise)它所擁有的對象信息。inv消息可以主動發(fā)送,也可以用于應(yīng)答getblocks消息。其具體的數(shù)據(jù)格式如下表所示。其中,inv消息負載的最大長度為 50000字節(jié)。inventory數(shù)據(jù)為區(qū)塊或交易的散列值。

      表1 inv消息的數(shù)據(jù)格式Table 1 Data Structure of inv Message

      getdata用于應(yīng)答inv消息來獲取指定對象,它通常在接收到inv包后濾去inventory數(shù)據(jù)中的已知元素,并將其發(fā)送給inv消息的發(fā)送者。它的數(shù)據(jù)格式與inv消息相同。并且,getdata消息負載的最大長度為50000字節(jié)。

      表2 getdata消息的數(shù)據(jù)格式Table 2 Data Structure of getdata Message

      inv消息和 getdata消息數(shù)據(jù)格式中共有的清單向量(Inventory vector)是用于告知其他節(jié)點本節(jié)點擁有的對象或請求的數(shù)據(jù)。

      表3 清單向量的數(shù)據(jù)格式Table 3 Data Structure of inventory vector

      清單向量數(shù)據(jù)格式中第一個字段,即對象類型(type)標識已經(jīng)定義如下 3個值。第二個字段,即對象散列值(hash)為區(qū)塊或交易的散列值。而這里的hash為區(qū)塊或交易ID經(jīng)過SHA256算法的結(jié)果,共256位,占存儲32字節(jié)。其中,類型值為0清單向量hash字段為可忽略的錯誤數(shù)據(jù); 類型值為1,hash字段存儲的是關(guān)于交易的哈希值; 類型值為2時,hash字段存儲的是關(guān)于區(qū)塊的哈希值。清單向量的類型字段說明如下表所示:

      表4 清單向量的類型值Table 4 Type Value of inventory vector

      2.3.2 交易機制

      比特幣交易數(shù)據(jù)的格式如下表所示。一個完整的交易數(shù)據(jù)包括了version(協(xié)議版本號)、輸入數(shù)量、tx_in(輸入列表)、輸出數(shù)量、tx_out(輸出列表)和鎖定時間。其中,輸入列表包括了prev output(引用交易的散列值)、index(前向交易的索引)、script length(解鎖腳本長度)、scriptsig(解鎖腳本)、sequence(交易序列號)。輸出列表包括了 value(每筆交易輸出的比特幣量)、pk_script length(鎖定腳本的長度)、pk_script(鎖定腳本)和lock time(鎖定時間)。

      表5 交易消息的數(shù)據(jù)格式Table 5 Data Structure of tx Message

      其中,有兩種情況可以嵌入數(shù)據(jù): 1)比特幣每10min產(chǎn)生一個新區(qū)快,此時會創(chuàng)建該區(qū)塊的coinbase交易(初始交易)。此時,tx_in(交易輸入列表)中的coinbase字段可以嵌入自定義數(shù)據(jù)。2)tx_out(交易輸出列表)中的value為8個字節(jié)的零值,即交易輸出比特幣數(shù)量為零,則表明這不是普通的轉(zhuǎn)賬交易,而是追加的備注信息,可嵌入自定義內(nèi)容。

      2.3.3 通信機制

      比特幣網(wǎng)絡(luò)中節(jié)點的通信分為兩個階段: 第一個階段通過 TCP三次握手協(xié)議建立連接,第二個階段為建立連接后廣播消息的互傳及每天向鄰居節(jié)點發(fā)送ADDR消息。本文使用ADDR消息構(gòu)造隱蔽信道,因此本節(jié)重點介紹節(jié)點通信機制中的 ADDR消息。ADDR消息包含最多1000個IP地址及其時間戳,用于從鄰居節(jié)點中獲取已知的活動節(jié)點。只有在節(jié)點建立與其鄰居節(jié)點的傳出連接后,才能發(fā)起ADDR消息的請求,即getaddr消息,但這個消息沒有附加數(shù)據(jù)。ADDR消息在兩種情況下會發(fā)送: 1)每天,每個節(jié)點會向其鄰居節(jié)點發(fā)送一條ADDR消息;2)當一個節(jié)點接收到一條包含地址數(shù)量不超過10個的ADDR消息時,它將ADDR消息轉(zhuǎn)發(fā)給兩個隨機選擇的已連接的鄰居節(jié)點。每個ADDR消息包含節(jié)點從其路由表中隨機選擇的最多1000個地址。該消息的數(shù)據(jù)結(jié)構(gòu)如表6所示。

      表6 ADDR消息的數(shù)據(jù)結(jié)構(gòu)Table 6 Data Structure of ADDR Message

      3 隱蔽傳輸框架

      本文以比特幣廣播和交易消息作為隱蔽傳輸?shù)妮d體,在比特幣網(wǎng)絡(luò)上搭建隱蔽傳輸框架。需要說明的是,網(wǎng)絡(luò)的廣播、交易和通信機制只有比特幣全節(jié)點才會參與,因此本文的框架是搭建于全節(jié)點參與的P2P網(wǎng)絡(luò)。該框架可以分為數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層和應(yīng)用層四層。其中,網(wǎng)絡(luò)層的節(jié)點通信機制和廣播機制傳輸?shù)南⒅杏锌汕度霐?shù)據(jù)的字段;應(yīng)用層的交易信息也有可嵌入數(shù)據(jù)的字段。因此,本文的隱蔽傳輸框架包含兩個: (1)利用應(yīng)用層交易機制、網(wǎng)絡(luò)層廣播機制兩層的消息及其之間的關(guān)系設(shè)計的 BDTX(broadcast-transaction,廣播-交易)隱蔽信道; (2)利用網(wǎng)絡(luò)層節(jié)點通信機制設(shè)計了ADDR(地址廣播)隱蔽信道。隱蔽傳輸?shù)恼w框架如圖3所示。

      4 隱蔽傳輸信道

      本節(jié)將分別詳細地闡述兩種隱蔽信道的細節(jié)并分析其原理。

      4.1 BDTX隱蔽信道

      新交易或新區(qū)塊產(chǎn)生后,網(wǎng)絡(luò)層會通過inv消息和getdata消息來進行有效的廣播(廣播過程如圖2所示)。兩個消息都包含清單向量(結(jié)構(gòu)如表3所示),清單向量中type字段為1時,hash字段為新產(chǎn)生的交易哈希值。清單向量中的交易哈希值與接收節(jié)點已驗證過的交易有索引關(guān)系。因此,本節(jié)通過兩者的索引關(guān)系構(gòu)建如圖4所示的BDTX隱蔽信道。

      圖3 隱蔽傳輸框架圖Figure 3 Covert Transmission Frame Diagram

      從圖4可以看出,BDTX隱蔽信道是由比特幣廣播模塊、交易模塊、嵌入模塊和提取模塊四個部分構(gòu)成。其中,廣播模塊和交易模塊分別已在2.3.1和2.3.2節(jié)介紹過。嵌入模塊包括加密、插入索引和密文分片三個功能。加密是將秘密信息轉(zhuǎn)換成二進制信息后使用AES算法[14]進行加密; 插入索引是將嵌入密文的交易哈希值作為索引插入廣播模塊的清單向量中; 密文分片將密文按照雙方預(yù)先約定好的協(xié)議分片并插入交易模塊的tx_in中。分片協(xié)議為將密文平均分成x片,每片y比特,將x片密文以相同長度間隔地插入tx_in的coinbase字段,即每間隔z比特插入一個分片。需要特別說明的是,含有coinbase字段的交易僅在新區(qū)塊產(chǎn)生時會創(chuàng)建,即每 10min才會廣播一個含有 coinbase字段的交易哈希值。提取模塊的作用是將密文按照上述分片協(xié)議復(fù)原出完整密文、解密、恢復(fù)二進制秘密消息。

      圖4 BDTX隱蔽信道示意圖Figure 4 BDTX Covert Channel Schematic

      對于兩個已經(jīng)建立連接的節(jié)點 A、B來說,由于使用AES加解密算法,因此假設(shè)雙方已共享該算法的密鑰。一次秘密信息的傳輸流程如下: 1)A節(jié)點使用網(wǎng)絡(luò)層廣播機制向B節(jié)點發(fā)送inv消息,該消息的清單向量的類型值為 1或 2,即清單向量的內(nèi)容分別為一系列交易哈希值或區(qū)塊哈希值; 2)A節(jié)點使用嵌入模塊將加密后的秘密信息按照分片協(xié)議分片并嵌入交易消息的 tx_in(交易輸入列表)的coinbase字段; 3)B節(jié)點收到inv消息后,讀取清單向量中的類型值,使用提取模塊恢復(fù)秘密信息: 以清單向量中協(xié)議位置的交易哈希值為索引在交易消息中搜索是否存在相等的交易哈希值; 若存在,找到該交易tx_in的coinbase字段被分片的密文、按照分片協(xié)議恢復(fù)密文、用約定好的密鑰解密; 4)若B節(jié)點成功完成上一步的提取,則返回給A節(jié)點正常的getdata消息,即濾去索引哈希值; 若并未成功提取出秘密信息,則返回給A節(jié)點仍包含索引哈希值的getdata消息。

      4.2 ADDR隱蔽信道

      由于ADDR消息能夠隱藏信息的存儲空間相對有限,但其相對其他消息具有較強的時分性——在節(jié)點傳出連接數(shù)量未達到上限時,每天每個節(jié)點都要向其鄰居節(jié)點廣播 ADDR消息。因此,基于該特點設(shè)計了ADDR隱蔽信道,如圖5所示。

      圖5 ADDR隱蔽信道示意圖Figure 5 ADDR Covert Channel Schematic

      如圖 5所示,ADDR隱蔽信道分為三個模塊:ADDR廣播模塊、嵌入模塊和提取模塊。其中,ADDR廣播模塊的原理已在2.3.3節(jié)中闡述過。嵌入模塊的作用是將秘密信息轉(zhuǎn)換成二進制消息后使用AES算法加密、按照分片協(xié)議分割密文、按照時分協(xié)議將分割后的密文片段嵌入ADDR消息中。分片協(xié)議為將密文分為x片,每片y比特。時分協(xié)議為通信雙方提前約定y個地址作為標志位,并約定好y個標志地址的順序。若第比特為“1”,則在當日ADDR消息中嵌入對應(yīng)順序的標志地址; 若第比特為“0”,則在當日 ADDR消息中不嵌入對應(yīng)順序的標志地址。提取模塊的作用是將密文按照時分協(xié)議復(fù)原完整的密文、解密恢復(fù)二進制消息。

      對于已建立網(wǎng)絡(luò)連接的兩個節(jié)點A、B來說,A節(jié)點是秘密信息的發(fā)送方,B節(jié)點是秘密信息的接收方。一次秘密信息的傳輸過程如下: 1)A、B提前約定分片數(shù)量與每片的比特數(shù),及與每片比特數(shù)相等數(shù)量的特定地址作為判斷分片內(nèi)容的標志位; 2)A每天都向包括B在內(nèi)的鄰居節(jié)點發(fā)送ADDR消息,按照時分協(xié)議根據(jù)分片的每個比特決定ADDR消息中是否包含對應(yīng)的特定地址,即分片內(nèi)容為“1”時ADDR消息包含對應(yīng)順序的特定地址、分片內(nèi)容為“0”時ADDR消息不包含對應(yīng)順序的特定地址; 3)B節(jié)點收到ADDR消息后根據(jù)是否包含特定地址復(fù)原密文、用提前約定的密鑰解密恢復(fù)秘密信息。

      5 隱蔽信道算法分析

      隱蔽信道需要滿足兩個性能要求: 安全性和有一定的隱藏容量。首先,安全性是傳輸秘密信息最重要的特性,指的是對普通節(jié)點來說隱藏過程是無法感知到的; 對攻擊者來說,載體的特征在統(tǒng)計上不可分辨,即如何保證不被攻擊者發(fā)現(xiàn)且不影響其他節(jié)點通信的情況下傳輸秘密信息。其次,隱藏容量指的是載體所能承載的秘密信息的數(shù)量,它決定了隱秘傳輸?shù)男?。本?jié)將從以上兩個性能方面分別分析本文提出的BDTX和ADDR隱蔽信道。

      5.1 安全性

      隱蔽信道的安全性分為不可感知性和不可檢測性。對普通節(jié)點來說,BDTX隱蔽信道利用的廣播消息和交易消息分別是由比特幣網(wǎng)絡(luò)協(xié)議、分布式記賬規(guī)則規(guī)定的,即新區(qū)塊或新交易產(chǎn)生后的廣播機制、任何一筆交易都同步記錄在所有節(jié)點的賬本中。ADDR隱蔽信道利用的ADDR消息是網(wǎng)絡(luò)廣播協(xié)議規(guī)定的,即每當節(jié)點收到連接請求時都要立即宣告其版本和每天節(jié)點都要向鄰居節(jié)點廣播其地址消息。因此,BDTX和BDTX道并未修改inv消息、getdata消息的數(shù)據(jù)格式和內(nèi)容本身,只是利用其內(nèi)容作為索引和反饋,并且新區(qū)快初始交易信息中的coinbase字段是可以允許節(jié)點寫入數(shù)據(jù)的。因此,對普通節(jié)點來說,BDTX和ADDR隱蔽信道都是不可感知的。

      在BDTX隱蔽信道中使用了inv消息中清單向量的hash值作為索引,由于inv消息的負載最大長度為50000字節(jié),除去count字段外,最多存儲1387個清單向量(每個清單向量長度為 36字節(jié)),因此攻擊者需要從1387個inventory向量中遍歷找到索引(約定好某個位置的交易哈希值)。因此,攻擊者在清單向量找到索引需要嘗試的次數(shù)為 1387,在嵌入模塊中將每條密文都分為x片,每片有y位,再按固定間隔z比特嵌入,同時假設(shè)攻擊者破解加密密文的難度為α。交易信息的 coinbase字段占 69字節(jié),即 552比特,密文長度為比特,可選擇嵌入分片的位置個數(shù)為因此攻擊者在這些位置中找到正確分片需要遍歷的次數(shù)為

      對ADDR隱蔽信道來說,假設(shè)密文分為x片每片為y比特,需要耗時天進行傳輸。每條ADDR消息可能包含0~1000條地址,因此假設(shè)實際傳輸過程中每條ADDR消息平均包含n條地址。假設(shè)攻擊者持續(xù)監(jiān)控發(fā)送節(jié)點的網(wǎng)絡(luò)消息,需要在X條 ADDR消息中遍歷找出特定的x條消息,在每條ADDR消息遍歷n條地址找出特定的y條地址。則共需要遍歷

      同時,為了對比本文提出的三種隱蔽信道和傳統(tǒng)隱蔽信道的安全性,此處再對同樣為網(wǎng)絡(luò)層的 IP協(xié)議內(nèi)構(gòu)造隱蔽信道的安全性做分析。IP包能構(gòu)造隱蔽信道的字段都集中在其 20字節(jié)的首部,如: 服務(wù)類型 ToS的最后一位、數(shù)據(jù)包長度小于當前網(wǎng)絡(luò)MTU時的16位標識ID和3位標志字段、數(shù)據(jù)包不分片時的13位分片偏移量。因此,攻擊者從首部160位中找出x片y位的密文需要嘗試的次數(shù)如表格最后一列所示。

      從表7可以看出,BDTX相對ADDR和IP隱蔽信道的攻擊難度是最大的,安全性最高,其中 IP隱蔽信道的攻擊難度最低。這是由于BDTX隱蔽信道以清單向量的交易hash值作為索引,破解難度更大。并且本文提出的兩種隱蔽信道的安全性都比傳統(tǒng)的IP隱蔽信道高。

      5.2 隱藏容量

      隱藏率的計算方式為秘密信息所占比特數(shù)與載體所占比特數(shù)之比。BDTX隱蔽信道的載體為交易信息的coinbase字段,占69字節(jié),即552比特; IP隱蔽信道的載體為 IP包內(nèi)服務(wù)類型 ToS字段的最后一位、16位標識ID、3位標志字段和13位分片偏移量,共計33比特。ADDR的載體為ADDR消息的addr_list字段,占30字節(jié),即240比特。

      對于BDTX和IP兩種隱蔽信道來說,由于每種載體容量大小不同,因此假設(shè)每種信道每片密文都為y比特,分片間隔都為z比特,而分片數(shù)量分別為。每個載體能存儲的秘密信息容量為分片數(shù)乘以每片所占比特數(shù),即。兩種信道的分片數(shù)量分別可以由公式(1)、(2)表示。

      對于以上兩個方程,可以求解得出公式(3)、(4):

      對于ADDR隱蔽信道來說,ADDR消息最多包含1000個地址,載體容量為240bit,而分片的每比特僅僅使用一個標志位地址,即 0.24比特。密文分片協(xié)議為將密文分為片,每片y比特(與以上兩種信道每片比特數(shù)相同),但其使用時分協(xié)議進行嵌入,因此該信道的分片間隔為不是存儲維度,而是時間維度。因此,可直接計算該隱蔽信道的隱藏率,如公式(5)所示:

      將BDTX和IP隱蔽信道的分片數(shù)量分別代入隱藏率的公式,即分片量乘以每片比特數(shù)與載體比特數(shù)的比例; 并與已計算出的 ADDR隱蔽信道的隱藏率進行對比。得到了如表8所示的隱藏率對比結(jié)果。

      表8 三種隱蔽信道與傳統(tǒng)隱蔽信道的隱藏率對比Table 8 Comparison of Ratio between Three Hidden Channels and Traditional Covert Channels

      將三種隱蔽信道的隱藏率兩兩相比,IP隱蔽信道的隱藏率是最高的,然后依次是BDTX、ADDR隱蔽信道。而在安全性分析中,即BDTX隱蔽信道的安全性相對更高,但是其隱藏率就更低。IP隱蔽信道的隱藏率更高,但是其安全性更低。這也符合安全性和隱藏率的相互制約的特點,即提高安全性會因?qū)е滤惴◤?fù)雜而降低隱藏率。

      6 總結(jié)與展望

      本文提出了兩種隱蔽信道,分別是 BDTX和ADDR隱蔽信道。兩種隱蔽信道都有各自的優(yōu)缺點。BDTX隱蔽信道利用了比特幣網(wǎng)絡(luò)層的廣播機制和應(yīng)用層的交易機制之間的關(guān)系建立密文的索引,再于新區(qū)塊初始交易的 coinbase字段嵌入密文,提高了該隱蔽信道的安全性,但也犧牲了一部分隱藏率;同時,含有 coinbase字段的交易每次新區(qū)塊產(chǎn)生才會被創(chuàng)建一次,因此秘密信息的傳輸會受新區(qū)塊產(chǎn)生速度的限制(一般10分鐘產(chǎn)生一個新區(qū)快)。ADDR隱蔽信道利用了ADDR消息每天廣播一次的時分特性,沒有索引機制。因此,其安全性和隱藏率都居中;然而,ADDR消息是在通信雙方建立連接的基礎(chǔ)上才能互相廣播,一旦傳輸過程的某一天斷開連接,那么會出現(xiàn)誤碼情況。

      本文提出了利用比特幣網(wǎng)絡(luò)的廣播機制、交易機制和通信機制構(gòu)造隱蔽信道。除此之外,還有其他兩種可以考慮的隱蔽信道: 1)可以通過兩節(jié)點之間三次握手建立連接時 TCP包內(nèi)沒有數(shù)據(jù)的特點,發(fā)送者在報文的序號字段(32位)嵌入自定義數(shù)據(jù)以構(gòu)造隱蔽信道; 2)利用數(shù)據(jù)傳輸協(xié)議頭中一些必須填充的位(如TCP數(shù)據(jù)包協(xié)議頭的源端口、IP協(xié)議數(shù)據(jù)包協(xié)議頭中的源IP地址等)來隱藏信息; 3)全球的大部分比特幣節(jié)點為輕節(jié)點,即只使用類似 SPV客戶端進行交易而不存儲歷史賬本的節(jié)點,但輕節(jié)點之間發(fā)生的交易也會被全節(jié)點驗證并寫入賬本,并且輕節(jié)點可以查看某筆交易是否被驗證機器次數(shù)。因此可以利用輕節(jié)點之間的通信協(xié)議構(gòu)造隱蔽信道。

      猜你喜歡
      分片字段比特
      上下分片與詞的時空佈局
      詞學(xué)(2022年1期)2022-10-27 08:06:12
      圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
      分片光滑邊值問題的再生核方法
      CDN存量MP4視頻播放優(yōu)化方法
      基于模糊二分查找的幀分片算法設(shè)計與實現(xiàn)
      比特幣還能投資嗎
      海峽姐妹(2017年10期)2017-12-19 12:26:20
      比特幣分裂
      比特幣一年漲135%重回5530元
      銀行家(2017年1期)2017-02-15 20:27:20
      CNMARC304字段和314字段責任附注方式解析
      無正題名文獻著錄方法評述
      宜章县| 白朗县| 徐州市| 巫山县| 桂阳县| 同德县| 项城市| 兴义市| 长葛市| 繁峙县| 东宁县| 榆树市| 拉萨市| 东乡| 美姑县| 镇康县| 建德市| 内丘县| 开化县| 兴隆县| 高淳县| 凤山县| 金平| 文安县| 普格县| 荥阳市| 南宁市| 土默特右旗| 蓬安县| 宁陵县| 龙江县| 陆良县| 扬州市| 法库县| 苍梧县| 诏安县| 平和县| 长武县| 尤溪县| 大埔区| 开江县|