• 
    

    
    

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

      智能合約在無人機集群中的應(yīng)用及漏洞分析

      2023-08-28 03:06:54張峻銘朱衛(wèi)星楊忠舉王梅娟
      科技創(chuàng)新與應(yīng)用 2023年24期
      關(guān)鍵詞:背書調(diào)用合約

      張峻銘,朱衛(wèi)星,楊忠舉,王梅娟

      (中國人民解放軍陸軍工程大學(xué),南京 210007)

      智能合約[1]與傳統(tǒng)合約不同,通過數(shù)字形式掌控現(xiàn)實資產(chǎn),是提供驗證并執(zhí)行的計算機交易協(xié)議,一旦滿足智能合約的執(zhí)行條件,協(xié)議會自動執(zhí)行且無需第三方參與。智能合約技術(shù)作為一種極具發(fā)展?jié)摿Φ念嵏残孕畔⒓夹g(shù),具有去中心化、防篡改、高度自治等典型特征,特別是其高度自治的特征打破了傳統(tǒng)合同的交易方式和習(xí)慣,成功被應(yīng)用于數(shù)字貨幣、金融、醫(yī)療和農(nóng)業(yè)等領(lǐng)域。與此同時,無人機集群作為一種顛覆性技術(shù)[2],具有成本低、任務(wù)完成率高、工作效率高的優(yōu)勢。因此,無人機集群技術(shù)在現(xiàn)代信息化社會發(fā)揮的作用也越來越重要,并將會成為未來市場的突破點。然而,當(dāng)前無人機集群執(zhí)行任務(wù)過程中依舊存在通信依賴性強、應(yīng)變能力不足、信息傳遞時效性差及易受干擾等安全性問題,為解決無人機集群的安全問題并進(jìn)一步發(fā)揮其優(yōu)勢,本文結(jié)合智能合約的優(yōu)勢特點提出智能合約在無人機集群中自主通信、實時通信、加密通信和態(tài)勢分析4 個方面的典型應(yīng)用。智能合約的相關(guān)特性帶來了眾多便利的同時也引起諸多挑戰(zhàn),而安全性問題是其中最重要、最具影響力的一種。因此,研究智能合約在無人機集群中的應(yīng)用及安全性漏洞具有重大的現(xiàn)實意義。

      1 智能合約在無人機集群中的應(yīng)用

      1.1 自主通信

      基于智能合約的去中心化特點可以用來解決無人機集群執(zhí)行任務(wù)過程中通信依賴強的特點,提高工作效率。目前典型的的無人機集群控制方法有集中式控制、分布式控制和混合式控制;其中集中式控制方法采用一個主控單元,集中掌握了環(huán)境中全局信息和所有無人機的信息,進(jìn)行集中式處理任務(wù)與資源分配,由主控單元合理分配給每一個無人機,每個無人機只需負(fù)責(zé)數(shù)據(jù)的輸入和輸出,數(shù)據(jù)的存儲和控制處理;分布式控制方法中各無人機之間對等,不存在主控與被控關(guān)系,各無人機互相進(jìn)行信息交互,自主處理實時數(shù)據(jù)并根據(jù)數(shù)據(jù)規(guī)劃出一條路徑;混合式控制方法則結(jié)合了前2 種方法的優(yōu)點,一個主控單元控制所有無人機,而每一個無人機則采用分布式控制方法,因此主控?zé)o人機可獲取到當(dāng)前所有機器人的位置、環(huán)境信息、處理數(shù)據(jù)和策略規(guī)劃等,進(jìn)而根據(jù)獲取的全局信息規(guī)劃路徑。

      通過對以上3 種典型的無人機集群控制方法的闡述,可以看出無人機集群對于通信的依賴性較強。對于對主控通信依賴強的無人機集群而言,一方面若主控單元出現(xiàn)故障或受到惡意攻擊時,會導(dǎo)致整個系統(tǒng)陷入癱瘓,從而致使整個任務(wù)的失??;另一方面存在計算復(fù)雜度大、反應(yīng)速度慢等問題,導(dǎo)致各個無人機工作效率降低;對于對周圍環(huán)境依賴性強的無人機集群而言,整個無人機集群缺乏全局性,各無人機之間的協(xié)調(diào)合作難,所獲取的信息有限且難以實現(xiàn)全局最優(yōu)解,甚至可能會造成各無人機之間的任務(wù)沖突。不論是對主控的通信依賴還是對周圍環(huán)境的通信依賴,都會對無人機集群編隊系統(tǒng)飛行效果造成影響,而具有去中心化特質(zhì)的智能合約具備解決這一問題的能力。所謂的去中心化特質(zhì)[3]是指智能合約不依賴第三方管理機構(gòu)或硬件設(shè)施,沒有中心管制,除了自成一體的區(qū)塊鏈本身,通過分布式核算和存儲,各個節(jié)點間實現(xiàn)了信息自我驗證、傳遞和管理,保證了無人機集群編隊系統(tǒng)的可用性,使得無人機能及時可靠地訪問數(shù)據(jù)信息,只要網(wǎng)絡(luò)中大部分節(jié)點未遭遇黑客攻擊,就能確保整個系統(tǒng)的正常運行,這也大大降低了通信依賴對無人機集群編隊系統(tǒng)飛行效果的影響,可實現(xiàn)無人機集群較大程度上的自主通信。

      1.2 實時通信

      基于智能合約的成員資格服務(wù)[4]可保障緊急命令的高效執(zhí)行,解決無人機集群在執(zhí)行任務(wù)過程中信息傳遞時效性差和應(yīng)變能力不足問題。以用餐后結(jié)賬流程為例進(jìn)一步闡述成員資格服務(wù),在餐廳用完餐后結(jié)賬時,會看到一個提示——現(xiàn)金或支付寶支付,倘若嘗試使用微信掃描支付寶的付款碼進(jìn)行付款,無論用戶的微信賬戶是否真實存在且賬戶中是否有足夠的資金,用戶的支付請求都不會被接受。擁有真實存在的用戶和足夠的資金是不夠的,其必須被商家所接受。這里就需要證書頒發(fā)機構(gòu)(PKI)和成員資格服務(wù)提供商(MSP)協(xié)同工作,PKI[5]就像一個提供商——分配了許多不同類型的可驗證身份,而另外一邊,MSP 就像餐廳接受的提供商列表——來確定哪些身份是支付網(wǎng)絡(luò)的可信成員,MSP 的強大功能不僅僅是列出誰是支付網(wǎng)絡(luò)的可信成員或通道成員,MSP 還可以識別網(wǎng)絡(luò)的可信成員可能在MSP 所代表的組織范圍內(nèi)扮演的特定角色,如管理員、執(zhí)行者、中繼或子成員等,并設(shè)置對于在網(wǎng)絡(luò)和通道,如讀者、寫者等的情況中定義訪問權(quán)限的基礎(chǔ)。

      在現(xiàn)代信息化快速發(fā)展條件下,廣延性、多邊性、連續(xù)性和快節(jié)奏表現(xiàn)的愈發(fā)明顯,最終效果越來越取決于后臺操作員的操控能力和集群分隊的隨機應(yīng)變能力,但由于相關(guān)技術(shù)的滯后性和局限性,總是會出現(xiàn)信息傳遞時效性差和應(yīng)變能力不足等問題,導(dǎo)致無人機集群工作效能不能發(fā)揮到最佳水平。智能合約是部署在區(qū)塊鏈上的代碼,一旦某個事件觸發(fā)合約中的條款,代碼就自動執(zhí)行;簡單來講就是滿足條件就執(zhí)行,不需要人為操控,與PKI 和MSP 協(xié)同工作提供的成員資格服務(wù)結(jié)合為無人機的通信環(huán)境提供了良好的信任基礎(chǔ);便可大幅度改善信息傳遞時效性差和應(yīng)變能力不足問題。通過賦予權(quán)限最高操作人員管理員角色和寫者訪問權(quán)限,操作人員便可通過實時跟進(jìn)現(xiàn)場情況,選擇是否更改預(yù)先設(shè)定的智能合約,即便現(xiàn)場條件和預(yù)先設(shè)定的不同,仍能取得預(yù)先設(shè)定的目標(biāo)效果;通過賦予無人機集群系統(tǒng)中各個個體執(zhí)行者和讀者權(quán)限,使其能在第一時間收到來自管理員的命令,改變原來有偏差的智能合約,立即執(zhí)行現(xiàn)在的智能合約,達(dá)到實時通信,從而有效地保障了緊急命令的高效執(zhí)行,使得無人機集群工作效能大幅度提升。

      1.3 加密通信

      基于智能合約的同態(tài)加密技術(shù)設(shè)計數(shù)字簽名和認(rèn)證的協(xié)議及橢圓曲線密碼技術(shù)[6]可以保障無人機集群執(zhí)行任務(wù)過程中的加密通信,解決無人機集群執(zhí)行任務(wù)過程中易受干擾問題。同態(tài)加密是計算復(fù)雜性理論的密碼學(xué)技術(shù)[7],與一般加密算法相比,同態(tài)加密除了能實現(xiàn)基本的加密操作,還能實現(xiàn)密文間的多種計算功能,可實現(xiàn)先計算后解密等價于先解密后計算功能;橢圓加密算法是一種公鑰加密體制,最初由Koblitz 和Miller 于1985 年提出,其數(shù)學(xué)基礎(chǔ)是利用橢圓曲線上的有理點構(gòu)成Abel 加法群上橢圓離散對數(shù)的計算困難性。

      智能合約本身具有去中心化、防篡改等特征,具有一定的安全性,結(jié)合同態(tài)加密技術(shù)和橢圓曲線密碼技術(shù),可大幅提高無人機集群系統(tǒng)加密通信能力。結(jié)合橢圓曲線密碼學(xué)在某些情況下可使用比其他方法更小的秘鑰,但能夠提供相當(dāng)?shù)幕蚋叩燃壍陌踩奶匦?,對智能合約內(nèi)容進(jìn)行加密,這樣不僅能使智能合約的安全性得到提升,同時還具備加密速度快、存儲空間占用小和對寬帶要求低等優(yōu)勢。而后文提到基于智能合約的背書節(jié)點服務(wù),其中采用數(shù)字簽名和認(rèn)證技術(shù),這里就涉及到對橢圓曲線密碼加密的智能合約進(jìn)行解密,才能更好地進(jìn)行認(rèn)證等操作,若采用同態(tài)加密技術(shù)來進(jìn)行數(shù)字簽名和認(rèn)證,解密方就只能獲取最后的結(jié)果,而無法獲得每一個密文的內(nèi)容,這樣就能夠保證數(shù)字簽名和認(rèn)證在安全加密的環(huán)境下進(jìn)行,同時密文計算無需經(jīng)過秘鑰方,減少了通信成本。綜上,經(jīng)過橢圓曲線密碼技術(shù)和同態(tài)加密技術(shù)處理后,可降低無人機集群在執(zhí)行任務(wù)過程中易受干擾的問題,即使無人機集群系統(tǒng)中某個節(jié)點收到干擾或攻擊,也能保證通信在加密條件下進(jìn)行,保障其他節(jié)點不受影響。

      1.4 態(tài)勢分析

      基于智能合約的背書節(jié)點服務(wù)[8]可進(jìn)行任務(wù)結(jié)束后的態(tài)勢分析,及時查漏補缺,提高無人機集群飛行效率。背書節(jié)點服務(wù)可以理解為:承擔(dān)背書任務(wù)的節(jié)點為智能合約的執(zhí)行進(jìn)行信息驗證,對驗證通過的交易聲明此交易合法的過程和機制。背書節(jié)點服務(wù)的工作流程如下:首先由客戶端將提議(這里指需要執(zhí)行的智能合約)發(fā)給指定的1 個或多個背書節(jié)點;背書節(jié)點收到交易提議后,首先用客戶端的公鑰驗證信息是否篡改過、是否之前已經(jīng)提交過、是否可以在該提議進(jìn)行操作、提議是否被提交及提議的組織是否正確等等,驗證通過后將結(jié)果反饋給客戶端;客戶端收到背書節(jié)點的結(jié)果后,表示這個提議已經(jīng)被該節(jié)點正確背書。

      結(jié)合智能合約不可違約性和不可篡改性[9],可保證相關(guān)交易信息公開透明,再利用背書節(jié)點服務(wù),這樣每個節(jié)點都可以被追溯記錄在智能合約上的交易過程,一方面降低違約行為發(fā)生的幾率,另一方面可根據(jù)背書倒查各個節(jié)點在任務(wù)執(zhí)行過程中的表現(xiàn),及時查漏補缺,做出優(yōu)化調(diào)整。以2018 年5 月1 日發(fā)生在西安的無人機集群表演事故為例,演出一開始就有一部分無人機沒有飛到預(yù)定位置,導(dǎo)致1 374 架無人機沒有成功組成完整圖案;如此龐大的無人機集群在表演時出現(xiàn)失誤,事故一出,當(dāng)時眾說紛紜,有的認(rèn)為是干擾所致,有的認(rèn)為是受當(dāng)時天氣環(huán)境條件的影響,也有的認(rèn)為是跟蹤定位信息出現(xiàn)了紕漏,在當(dāng)時想要立馬研究清楚失誤原因具有一定難度,但倘若采用智能合約下的背書節(jié)點服務(wù),其中可節(jié)省不少工作量,達(dá)到事半功倍的效果。因此,將基于智能合約下的背書節(jié)點服務(wù)應(yīng)用于各種條件下的無人機集群中可實現(xiàn)現(xiàn)場態(tài)勢分析,對執(zhí)行任務(wù)后復(fù)盤總結(jié)、查漏補缺提供直觀依據(jù),根據(jù)背書節(jié)點的簽名追溯責(zé)任,并依據(jù)情報等級采用不同的懲罰措施和改進(jìn)措施,對以后飛行任務(wù)分工調(diào)整運用起到指導(dǎo)作用,提高了無人機集群飛行效率。

      1.5 小結(jié)

      通過分析無人機集群執(zhí)行任務(wù)過程中存在的通信依賴強、應(yīng)變能力不足、信息傳遞時效性差及易受干擾等缺點,提出基于智能合約的去中心化特點以用來解決無人機集群在執(zhí)行任務(wù)過程中通信依賴強問題、基于智能合約的成員資格服務(wù)以解決無人機集群在執(zhí)行任務(wù)過程中信息傳遞時效性差和應(yīng)變能力不足問題、基于智能合約的背書節(jié)點服務(wù)以提高無人機集群飛行效率、基于智能合約的同態(tài)加密技術(shù)和和橢圓曲線密碼技術(shù)以解決無人機集群執(zhí)行任務(wù)過程中易受干擾問題;最終實現(xiàn)無人機集群系統(tǒng)自主通信、實時通信、態(tài)勢分析和加密通信,對提高無人機集群執(zhí)勤效率、高質(zhì)量完成任務(wù)和出色的發(fā)揮出其優(yōu)勢提供參考。

      2 智能合約在無人機集群應(yīng)用中的漏洞

      2.1 整數(shù)溢出

      對應(yīng)場景及解決方案:在加密通信中,基于智能合約的同態(tài)加密技術(shù)可實現(xiàn)先計算后解密等價于先解密后計算的功能,在進(jìn)行計算和加解密過程中,若采用同態(tài)加密技術(shù)中的先計算后解密的功能,會涉及到整數(shù)溢出漏洞問題;根據(jù)漏洞原理和漏洞判斷條件,可對所有的整數(shù)變量添加驗證條件[10];使用SafeMath 庫中的add,sub,multi,div 函數(shù)進(jìn)行計算。

      分類:整數(shù)上溢,整數(shù)下溢。

      漏洞原理:uint256 在EVM 中的數(shù)據(jù)位數(shù)是0~255,當(dāng)數(shù)值超過這個范圍就會發(fā)生溢出,因此對“+”“-”“×”“/”操作后得到的變量沒有及時進(jìn)行值的驗證就會產(chǎn)生該漏洞。

      漏洞判定條件:沒有使用SafeMath 庫操作,且使用“+”“-”“×”“/”操作后未對結(jié)果進(jìn)行溢出判斷。

      2.2 重入

      對應(yīng)場景及解決方案:在實時通信中,若攻擊者調(diào)用了無人機集群系統(tǒng)內(nèi)類似call.value()這類轉(zhuǎn)賬函數(shù)時,盡管無人機集群系統(tǒng)已經(jīng)收到新命令仍然會執(zhí)行之前的命令,這仍將導(dǎo)致信息傳遞時效性差和應(yīng)變能力不足;根據(jù)漏洞原理和漏洞判斷條件,可使用其他轉(zhuǎn)賬函數(shù)(比如Solidity 內(nèi)置的transfer()函數(shù));先修改狀態(tài)變量,再進(jìn)行轉(zhuǎn)賬操作。

      漏洞原理:當(dāng)攻擊者調(diào)用了在函數(shù)內(nèi)部使用了call.value()轉(zhuǎn)賬的轉(zhuǎn)賬函數(shù)[11]時,call.value()會觸發(fā)攻擊者合約中的被其改寫過了的fallback()函數(shù),其內(nèi)部可再次調(diào)用轉(zhuǎn)賬函數(shù),從而不斷從漏洞合約遞歸轉(zhuǎn)賬到攻擊者合約;并且轉(zhuǎn)賬函數(shù)是在call.value()轉(zhuǎn)賬操作之后,才修改漏洞合約中余額的狀態(tài)變量,這兩者共同導(dǎo)致了該漏洞的產(chǎn)生。

      漏洞判定條件:使用了call.value()進(jìn)行轉(zhuǎn)賬操作,且在轉(zhuǎn)賬后才再修改狀態(tài)變量。

      2.3 訪問控制缺陷

      對應(yīng)場景及解決方案:自主通信和實時通信中分別涉及各個節(jié)點間實現(xiàn)了信息自我驗證和基于智能合約下的成員資格服務(wù)身份驗證,在驗證過程中,若錯誤的使用某些關(guān)鍵字,則會導(dǎo)致合約被非法攻擊;根據(jù)漏洞原理和漏洞判斷條件,可通過不要將判斷條件及關(guān)鍵函數(shù)的訪問關(guān)鍵字錯誤使用就不會產(chǎn)生該問題。

      漏洞原理:某些功能的驗證條件存在設(shè)計缺陷,默認(rèn)的變量或函數(shù)訪問關(guān)鍵字[12](private,public,external,internal)和2 種底層調(diào)用方式(call()和delegatecall())等的使用錯誤,使某些關(guān)鍵函數(shù)能被外部輕易訪問,從而使攻擊者獲利或者合約故障。

      漏洞判定條件:關(guān)鍵函數(shù)的未添加正確的函數(shù)訪問關(guān)鍵字,或者函數(shù)內(nèi)部的判斷條件邏輯有誤。

      2.4 跨合約調(diào)用

      對應(yīng)場景及解決方案:在自主通信、實時通信和態(tài)勢分析過程中,會用到call(),delegatecall(),callcode()3 個函數(shù)來實現(xiàn)跨合約調(diào)用,尤其是在自主通信中,各個節(jié)點間要實現(xiàn)信息自我驗證、傳遞和管理,因此跨合約調(diào)用漏洞不容忽視;根據(jù)漏洞原理和漏洞判斷條件,可減少對這3 個函數(shù)的使用,相應(yīng)的功能可以使用高級函數(shù)來實現(xiàn)。例如,直接指向給定地址的合約以調(diào)用特定的函數(shù),以及轉(zhuǎn)賬操作使用transfer()或send()函數(shù)實現(xiàn)。

      漏洞原理:Solidity 提供了call(),delegatecall(),callcode()3 個函數(shù)來實現(xiàn)合約之間交互訪問;若處理不當(dāng),很可能會產(chǎn)生一些致命的漏洞。如call()函數(shù)注入漏洞,使用不當(dāng)時可使外界直接控制合約中call()函數(shù)相關(guān)的參數(shù),從而訪問合約的其他重要函數(shù)。

      漏洞判定條件:在函數(shù)中使用了帶有參數(shù)的call(),delegatecall(),callcode()方法,且其參數(shù)對于外界來說可以被控制。

      2.5 拒絕服務(wù)攻擊

      對應(yīng)場景及解決方案:在實時通信中,若攻擊者通過消耗PKI 和MSP 資源,使得用戶無法獲得成員資格,因此也無法獲得相應(yīng)的權(quán)限,使合法用戶被拒絕服務(wù);根據(jù)漏洞原理和漏洞判斷條件,如果合約需要對外部函數(shù)調(diào)用的結(jié)果進(jìn)行處理才能進(jìn)入新的狀態(tài),就要考慮外部調(diào)用可能一直失敗的情況。也可以添加基于時間的操作,以防外部函數(shù)調(diào)用一直無法滿足require判斷。(一般地,完整的if-else,require,assert 語句都有2 條分支,true 則繼續(xù)執(zhí)行,false 則回退;函數(shù)調(diào)用也有不同的分支,可以使用函數(shù)的返回值作為判斷依據(jù),也可以將函數(shù)是否順利執(zhí)行作為判斷依據(jù),因此,開發(fā)者在編寫智能合約時,應(yīng)加入函數(shù)執(zhí)行異常的處理機制)。

      漏洞原理:攻擊者通過消耗合約的資源,讓用戶短暫或者永久地退出該合約,擾亂、中止、凍結(jié)正常合約的執(zhí)行,從而把以太幣鎖在被攻擊的合約中;有些時候,合約被編寫成進(jìn)入新的狀態(tài),需要將以太幣發(fā)送到某個地址或者等待來自外部的某些輸入[13]。當(dāng)外部調(diào)用失敗或者由于外部原因而被阻止時,這些模式也可能導(dǎo)致拒絕服務(wù)攻擊。

      漏洞判定條件:沒有對一些能夠被外部調(diào)用影響的重要變量或函數(shù)添加執(zhí)行失敗時的異常處理機制。

      2.6 短地址攻擊

      對應(yīng)場景及解決方案:在加密通信中,在利用橢圓曲線密碼技術(shù)對智能合約內(nèi)容加密和同態(tài)加密算法時,在進(jìn)行加密操作和實現(xiàn)密文間的多種計算功能時,存在以00 結(jié)尾造成短地址攻擊漏洞;根據(jù)漏洞原理和漏洞判斷條件,可在編寫代碼時添加對地址長度的檢查機制,即可有效防范短地址攻擊漏洞。

      漏洞原理:短地址攻擊是指調(diào)用其他合約的時候,特意選取以00 結(jié)尾的地址,并且傳入地址參數(shù)的時候省略最后的00,導(dǎo)致以太坊虛擬機(EVM)在解析數(shù)量參數(shù)的時候會在參數(shù)末尾錯誤地補0,最終導(dǎo)致超額轉(zhuǎn)出代幣。當(dāng)參數(shù)傳遞給智能合約時,EVM 就會根據(jù)ABI 規(guī)范將參數(shù)進(jìn)行編碼,就是把Solidity 編寫的合約等內(nèi)容轉(zhuǎn)換成機器可以運算的二進(jìn)制編碼[14]。

      漏洞判定條件:函數(shù)未對傳入的地址參數(shù)進(jìn)行長度檢查。

      2.7 時間戳依賴

      對應(yīng)場景及解決方案:在自主通信和實時通信2 種情況下,智能合約的執(zhí)行會依賴當(dāng)前區(qū)塊的時間戳,尤其在實時通信條件下,為使無人機集群能在第一時間收到來自管理員的命令,達(dá)到信息傳遞的時效性,導(dǎo)致對時間戳依賴程度較高;根據(jù)漏洞原理和漏洞判斷條件,可不使用區(qū)塊時間戳作為判定勝負(fù)或該改變重要狀態(tài)的決定性因素;可通過指定區(qū)塊編號來更改合約狀態(tài)的方法可能是更安全的。

      漏洞原理:時間戳依賴,就是指智能合約的執(zhí)行依賴當(dāng)前區(qū)塊的時間戳,隨著時間戳的不同,合約的執(zhí)行結(jié)果也有差別。礦工在處理一個新的區(qū)塊時,如果新區(qū)塊的時間戳大于上一個區(qū)塊的時間戳,并且時間戳之差小于900 s,那么新區(qū)塊的時間戳就是合法的(這是由以太坊協(xié)議規(guī)定的)。然而,如果礦工有能力稍微調(diào)整時間戳,在智能合約中錯誤地使用區(qū)塊時間戳,將會造成嚴(yán)重的后果,這就是時間戳依賴漏洞。

      漏洞判定條件:在改變重要狀態(tài)或者判定條件部分使用了時間戳。

      2.8 tx.origin 漏洞

      對應(yīng)場景及解決方案:在態(tài)勢分析過程中,在運用背書節(jié)點服務(wù)時要進(jìn)行自我驗證,此時會遍歷調(diào)用棧,調(diào)用全變量tx.origin,這會導(dǎo)致合約受到攻擊;根據(jù)漏洞原理和漏洞判斷條件[15],合約開發(fā)者要盡量避免使用tx.origin,可以改為msg.sender。在權(quán)限驗證時候,采用require(this==msg.sender)或者require(owner==msg.sender)。

      漏洞原理:tx.origin 是Solidity 中的一個全局變量[16],能夠遍歷調(diào)用棧并返回最初發(fā)送調(diào)用的賬號的地址,即tx.origin 是整個交易過程中最初的哪個合約者的地址。在智能合約中使用tx.origin 變量使用身份驗證,會導(dǎo)致合約受到攻擊。

      漏洞判定條件:在權(quán)限驗證的時候使用了tx.origin。

      2.9 小結(jié)

      通過分析智能合約在無人機集群執(zhí)行任務(wù)過程中的漏洞,包含整數(shù)溢出、重入、訪問控制缺陷、跨合約調(diào)用、拒絕服務(wù)攻擊、短地址攻擊、時間戳依賴及tx.origin漏洞,通過分析漏洞原理、漏洞判定條件及結(jié)合對應(yīng)場景提出解決方案,具體對應(yīng)關(guān)系見表1;研究智能合約在無人機集群中的漏洞能夠降低其帶來的安全風(fēng)險,同時為開發(fā)規(guī)范的智能合約以及對漏洞的檢測提供參考。

      表1 漏洞類型及其所涉及的應(yīng)用場景

      3 結(jié)束語

      本文以無人機集群為研究對象,為解決無人機集群系統(tǒng)現(xiàn)有存在的通信依賴性強、應(yīng)變能力不足、信息傳遞時效性差及易受干擾等安全性問題,結(jié)合智能合約去中心化、防篡改、高度自治等典型優(yōu)勢特征,提出智能合約在自主通信、實時通信、加密通信及態(tài)勢分析4 個方面的典型應(yīng)用,對提高無人機集群執(zhí)行效率、高質(zhì)量完成任務(wù)及出色的發(fā)揮其優(yōu)勢提供保證,為智能合約更好地應(yīng)用于無人機集群并發(fā)揮其優(yōu)勢提供參考。同時重點分析在4 種應(yīng)用場景下潛在的8 種智能合約漏洞,分別為整數(shù)溢出、重入、訪問控制缺陷、跨合約調(diào)用、拒絕服務(wù)攻擊、短地址攻擊、時間戳依賴及tx.origin 漏洞,并根據(jù)漏洞原理及應(yīng)用場景提出相應(yīng)的解決方案;由于智能合約漏洞的存在會影響智能合約在無人機集群應(yīng)用過程中的安全系數(shù),關(guān)于智能合約漏洞的檢測技術(shù)研究變得尤為重要。因此,在今后研究中將重點關(guān)注基于深度學(xué)習(xí)的智能合約漏洞檢測方法,實現(xiàn)快速、有效地檢測出智能合約在無人機集群中的潛在安全漏洞。

      猜你喜歡
      背書調(diào)用合約
      背書是寫作的基本功
      快樂語文(2021年34期)2022-01-18 06:04:04
      背書
      核電項目物項調(diào)用管理的應(yīng)用研究
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      背書
      背書連續(xù)性若干問題探析
      利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
      合約必守,誰能例外!——對“情勢變更”制度不可寄于過高期望
      孝昌县| 壶关县| 东港市| 花莲县| 福海县| 全南县| 深圳市| 沾益县| 西和县| 绥棱县| 雷波县| 类乌齐县| 林西县| 鹿邑县| 蓝田县| 教育| 金平| 罗城| 花莲县| 石阡县| 蓬安县| 自贡市| 葫芦岛市| 龙州县| 阳谷县| 大石桥市| 社会| 新闻| 剑阁县| 乐山市| 海伦市| 丰台区| 辰溪县| 祥云县| 景宁| 普宁市| 白沙| 兴国县| 永嘉县| 凯里市| 扎囊县|