chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳談兩大智能合約簽名驗(yàn)證漏洞分析

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-25 18:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

可重入(Reentrancy)或整數(shù)溢出漏洞,是大多數(shù)開(kāi)發(fā)人員知道或者至少聽(tīng)說(shuō)過(guò)的,關(guān)于智能合約當(dāng)中容易出現(xiàn)的安全問(wèn)題。另一方面,在考慮智能合約的安全性時(shí),你可能不會(huì)立即想到針對(duì)密碼簽名實(shí)現(xiàn)的攻擊方式。它們通常是與網(wǎng)絡(luò)協(xié)議相關(guān)聯(lián)的。例如,簽名重放攻擊(signature replay attacks),一個(gè)惡意用戶(hù)可竊聽(tīng)包含有效簽名的協(xié)議序列,并針對(duì)目標(biāo)進(jìn)行重放攻擊,以期獲得益處。

本文將解釋智能合約處理DAPP生成簽名時(shí)可能存在的兩種類(lèi)型的漏洞。我們將通過(guò)Diligence團(tuán)隊(duì)在今年早些時(shí)候完成的現(xiàn)實(shí)例子審計(jì)結(jié)果進(jìn)行分析。此外,我們將討論如何設(shè)計(jì)智能合約,以避免這類(lèi)漏洞的出現(xiàn)。

協(xié)議層

簽名是以太坊網(wǎng)絡(luò)中的基礎(chǔ),發(fā)送至網(wǎng)絡(luò)的每筆交易都必須具有有效的簽名。下圖顯示了這種交易的一個(gè)例子。除了交易標(biāo)準(zhǔn)屬性,例如 from、to、gas、value 或input在全局命名空間中可用,并且經(jīng)常出現(xiàn)在智能合約代碼中,字段v,r以及s共同組成了交易簽名。

以太坊網(wǎng)絡(luò)確保只有具有有效簽名的交易可被納入新的區(qū)塊當(dāng)中。這為交易提供了以下安全屬性:

1.身份驗(yàn)證:以太坊節(jié)點(diǎn)使用簽名來(lái)驗(yàn)證交易簽名者是否具有與公共地址相關(guān)聯(lián)的私鑰。開(kāi)發(fā)者因此可以信任這個(gè)msg.sender是真實(shí)的;

2.完整性:交易在簽名后不會(huì)發(fā)生更改,否則簽名就是無(wú)效的;

3.不可否認(rèn)性:交易是由from字段中公共地址對(duì)應(yīng)的私鑰簽名的,這是不可否認(rèn)的,并且擁有私鑰的簽名方已經(jīng)進(jìn)行了任何狀態(tài)更改。

合約層

協(xié)議層并不是簽名發(fā)揮作用的唯一場(chǎng)地。簽名也越來(lái)越多地被用于智能合約本身。隨著gas價(jià)格的上漲,而擴(kuò)容解決方案仍在進(jìn)程當(dāng)中,則避免鏈上(on-chain)交易便凸顯出了越來(lái)越多的重要性。當(dāng)談到鏈外的交易時(shí),簽名也是非常有用的,EIP-191以及EIP-712,都是有關(guān)于如何處理智能合約中簽名數(shù)據(jù)的通證標(biāo)準(zhǔn)。而后者旨在改善鏈外消息簽名的可用性。那么,為什么它是有用的,以及它是如何節(jié)省鏈上交易的?

讓我們來(lái)查看一個(gè)簡(jiǎn)單的例子。愛(ài)麗絲為鮑伯創(chuàng)建了一個(gè)命題,她將其編碼成了一條消息。她還用自己的私鑰創(chuàng)建了消息的簽名,并通過(guò)協(xié)商好的通道發(fā)送給鮑伯。鮑伯可以驗(yàn)證愛(ài)麗絲是否簽署了該消息,如果鮑伯認(rèn)為該命題是合適的,那么他可以創(chuàng)建新的交易,將他自己的消息、愛(ài)麗絲的消息及簽名共同納入到一個(gè)智能合約當(dāng)中。通過(guò)數(shù)據(jù),這個(gè)智能合約可以證實(shí):

1.鮑伯已簽署了自己的信息(或者在這種情況下,交易會(huì)是更具體的)。而網(wǎng)絡(luò)保證了身份驗(yàn)證、完整性以及不可否認(rèn)性。

2.整個(gè)過(guò)程只需要一筆鏈上交易,其可提供明顯更好的用戶(hù)體驗(yàn),同時(shí)可節(jié)省gas。需要注意的是,智能合約需要確保愛(ài)麗絲發(fā)送給鮑伯的消息,能夠保持所有三個(gè)安全屬性的完整性。

讓我們分析現(xiàn)實(shí)世界中存在的兩種簽名驗(yàn)證漏洞,并探討如何修復(fù)它們。

缺少針對(duì)簽名重放攻擊的保護(hù)(SWC-121)

第一個(gè)例子,是由Consensys的Diligence部門(mén)在審計(jì)去中心化新聞應(yīng)用Civil時(shí)發(fā)現(xiàn)的一個(gè)漏洞例子,與此案例相關(guān)的系統(tǒng)的第一部分,被Civil稱(chēng)之為Newsroom(新聞編輯室),而內(nèi)容編輯可以把自己的文章發(fā)布到這個(gè)Newsroom,他們還可以為自己的內(nèi)存創(chuàng)作進(jìn)行加密簽名,以此證明內(nèi)容實(shí)際上是由他們創(chuàng)造的。pushRevision() 函數(shù)對(duì)現(xiàn)有內(nèi)容進(jìn)行更新或修訂。參數(shù)內(nèi)容哈希、內(nèi)容URI、時(shí)間戳以及簽名,為內(nèi)容創(chuàng)建新的修訂。之后,verifiyRevisionSignature()函數(shù)會(huì)調(diào)用提議修訂,以及最初創(chuàng)建第一個(gè)簽名修訂的內(nèi)容作者。根據(jù)設(shè)計(jì),新修訂的簽署者,只能是創(chuàng)建初始簽名內(nèi)容版本的作者。

verifiyRevisionSignature() 函數(shù)會(huì)根據(jù)DApp生成的內(nèi)容哈希,以及Newsroom合約的地址,創(chuàng)建一個(gè)已簽名的消息哈希。然后,調(diào)用recover()函數(shù)(來(lái)自O(shè)penZeppelin 的ECRecovery庫(kù))。隨后,調(diào)用ecrecover()函數(shù),并驗(yàn)證作者是否真正簽署了消息。已討論過(guò)的兩個(gè)函數(shù)代碼是沒(méi)有問(wèn)題的,因?yàn)橹挥凶畛鮿?chuàng)建內(nèi)容的作者才能為它創(chuàng)建新的版本,所以實(shí)際上它們不存在什么安全問(wèn)題。

問(wèn)題在于,合約是不會(huì)跟蹤內(nèi)容哈希的,因此,已提交的一個(gè)內(nèi)容哈希及其用戶(hù)簽名,實(shí)際是有可能被提交多次的。而惡意的內(nèi)容作者就可以利用這個(gè)漏洞,從其他作者那里獲取有效的簽名和內(nèi)容哈希,并在他們不知情的情況下為他們創(chuàng)建新的有效修訂。

Civil 已通過(guò)跟蹤這些內(nèi)容哈希,并拒絕已是先前修訂部分的哈希,來(lái)解決這個(gè)問(wèn)題。

缺乏正確的簽名驗(yàn)證(SWC-122)

在上一次審計(jì)去中心化協(xié)議0x的過(guò)程當(dāng)中,Diligence發(fā)現(xiàn)了這種漏洞類(lèi)型的一個(gè)實(shí)例。以下解釋?zhuān)沁@次審計(jì)報(bào)告當(dāng)中3-2節(jié)內(nèi)容中描述的問(wèn)題總結(jié)。0x協(xié)議具有不同簽名類(lèi)型的各種簽名驗(yàn)證器,包括Web3以及EIP712。另一個(gè)存在的驗(yàn)證器稱(chēng)為SignatureType.Caller,如果order.makerAddress等于msg.sender(order.makerAddress是創(chuàng)建order的用戶(hù)),則允許order有效。如果設(shè)置了SignatureType.Caller,則沒(méi)有實(shí)際簽名驗(yàn)證是由交易合約執(zhí)行的。現(xiàn)在還不清楚為什么這會(huì)導(dǎo)致漏洞,因?yàn)橐呀?jīng)證實(shí)msg.sender以及order的創(chuàng)建者是相同的,至少?gòu)睦碚撋峡词沁@樣的。

除了交易合約之外,0x系統(tǒng)還有另一部分稱(chēng)為Forwarder的合約,有了這個(gè)合約,用戶(hù)可以簡(jiǎn)單地發(fā)送以太幣,以及他們想要填寫(xiě)的 order,而這個(gè)Forwarder合約會(huì)在同一筆交易中執(zhí)行所有的order;

想要用以太幣交易其他通證的用戶(hù),可以向其他用戶(hù)發(fā)送order,而Forwarder合約將代表他們進(jìn)行交易。這個(gè)交易合約會(huì)驗(yàn)證每個(gè)order,以確保order簽名的有效性,并確保其他用戶(hù)已實(shí)際簽署了order。讓我們?cè)俅尾榭瓷厦娴膱D,并重新評(píng)估以下假設(shè):如果order.makerAddress等于msg.sender,則我們不需要在這個(gè)交易合約當(dāng)中進(jìn)行適當(dāng)?shù)暮灻?yàn)證,因?yàn)榘l(fā)送交易的用戶(hù)也是order的創(chuàng)建者。如果用戶(hù)直接向交易合約發(fā)送order,則該假設(shè)成立。但是,如果我們通過(guò)Forwarder合約發(fā)送這個(gè)order,將order.makerAddress設(shè)置為 Forwarder合約的地址,并使用SignatureType.Caller簽名驗(yàn)證器呢?

在交易執(zhí)行處理結(jié)算個(gè)別order的過(guò)程中,F(xiàn)orwarder合約會(huì)調(diào)用這個(gè)交易合約。這個(gè)交易合約會(huì)驗(yàn)證這個(gè)order.makerAddress中的地址,就是msg.sender,在這種情況下,可以將其設(shè)置為Forwarder地址。由于合約在交易雙方之間起到了中介作用,所以order.takerAddress通常被設(shè)置為Forwarder地址。因此,惡意用戶(hù)可以使用Forwarder處理order,其中合約會(huì)與其本身進(jìn)行交易,因?yàn)樗仁墙邮苷哂质侵圃煺摺_@是因?yàn)橐韵碌脑颍?/p>

1.在 Forwarder當(dāng)中,沒(méi)有邏輯可以阻止合約成為一個(gè) order的制造者;

2.用于transferFrom((address _from, address _to, uint256 _value) )的ERC20規(guī)范,不會(huì)阻止用戶(hù)進(jìn)行“空傳輸”。而 _from和_to可以是相同的地址;

3.這個(gè)交易合約允許基于以下事實(shí)來(lái)處理order:如果用戶(hù)實(shí)際上已經(jīng)簽署了order,則msg.sender沒(méi)有發(fā)送order。

在交易合約解決了order之后,這個(gè)Forwarder合約將得到完全相同的 balance,并且Forwarder合約將takerAmount轉(zhuǎn)移給自己,而把makerAmount轉(zhuǎn)移給一個(gè)惡意用戶(hù),而惡意用戶(hù)可以使用這個(gè)場(chǎng)景,來(lái)創(chuàng)建“惡意order”,以便用1 Wei(以太幣最低單位)的價(jià)格從 Forwarder合約中換取到所有的ZRX通證;

綜上所述,假設(shè)消息的發(fā)送者也是其創(chuàng)建者,而不去驗(yàn)證其簽名,這可能是不安全的,尤其是在通過(guò)代理轉(zhuǎn)發(fā)交易的情況下。在合約處理消息簽名的任何時(shí)候,都需要執(zhí)行正確的簽名恢復(fù)及驗(yàn)證。0x通過(guò)刪除了 SignatureType.Caller簽名驗(yàn)證器修復(fù)了這個(gè)問(wèn)題。

總結(jié)

鏈外消息簽名的方式,對(duì)于節(jié)省 gas以及改善用戶(hù)體驗(yàn)方面,的確是一個(gè)好的方法。但從安全性的角度來(lái)看,這無(wú)疑增加了復(fù)雜性,并使得智能合約在處理已簽名消息的情況下成為了一個(gè)更具挑戰(zhàn)性的任務(wù)。如果你對(duì)針對(duì)基于簽名的攻擊,或其它智能合約漏洞示例感興趣,你可以查看SWC-registry在Github的內(nèi)容,里面擁有大量易受攻擊的合約示例,此外還有關(guān)于智能合約弱點(diǎn)分類(lèi)(SWC)計(jì)劃的更多信息,我們一直在與社會(huì)各界合作。如果你想了解更多關(guān)于SWC的信息,或者有其他好的想法,那么歡迎你在ethereum/EIPs以及Ethereum Magicians里面參加關(guān)于EIP-1470的討論;

也歡迎大家隨時(shí)瀏覽我們的Discord,告訴我們你希望通過(guò)安全分析工具檢測(cè)到哪些漏洞… 但,請(qǐng)不要說(shuō)出全部的內(nèi)容。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 漏洞分析
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6360
  • 智能計(jì)算
    +關(guān)注

    關(guān)注

    0

    文章

    195

    瀏覽量

    17024
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    伴芯科技重磅發(fā)布DVcrew與PDcrew兩大創(chuàng)新產(chǎn)品,以AI智能體重構(gòu)EDA

    重磅推出款A(yù)I智能體新產(chǎn)品——DVcrew與PDcrew。這款產(chǎn)品深度契合伴芯科技的核心使命:以AI智能體(AI Agents)重構(gòu)電子設(shè)計(jì)自動(dòng)化(EDA),最終實(shí)現(xiàn)芯片自主設(shè)計(jì)閉
    的頭像 發(fā)表于 11-21 09:35 ?741次閱讀
    伴芯科技重磅發(fā)布DVcrew與PDcrew<b class='flag-5'>兩大</b>創(chuàng)新產(chǎn)品,以AI<b class='flag-5'>智能</b>體重構(gòu)EDA

    CW32F030C8T6數(shù)字簽名實(shí)戰(zhàn)

    或者 CPU 讀取。數(shù)字簽名相關(guān)信息在出廠時(shí)編程,用戶(hù)固件或外部設(shè)備可通過(guò)讀取數(shù)字簽名來(lái)對(duì) 芯片的合法性進(jìn)行驗(yàn)證。 1.2 產(chǎn)品唯一身份標(biāo)識(shí)(UID) 寄存器(80bit) UID寄存器存儲(chǔ)了芯片
    發(fā)表于 11-19 08:03

    CW32F030C8T6數(shù)字簽名的實(shí)戰(zhàn)指南

    或者 CPU 讀取。數(shù)字簽名相關(guān)信息在出廠時(shí)編程,用戶(hù)固件或外部設(shè)備可通過(guò)讀取數(shù)字簽名來(lái)對(duì) 芯片的合法性進(jìn)行驗(yàn)證。 1.2 產(chǎn)品唯一身份標(biāo)識(shí)(UID) 寄存器(80bit) UID寄存器存儲(chǔ)了芯片
    發(fā)表于 11-18 06:35

    華寶新能美學(xué)曲面光伏瓦亮相兩大行業(yè)盛會(huì)

    近日,便攜光儲(chǔ)全球領(lǐng)導(dǎo)者和首家全場(chǎng)景家庭綠電企業(yè)華寶新能攜美學(xué)曲面光伏瓦,同步亮相上海CADE建筑設(shè)計(jì)博覽會(huì)與北京住博會(huì)兩大行業(yè)盛會(huì),美學(xué)曲面光伏瓦憑借“能源美學(xué) + 技術(shù)突破”的雙重創(chuàng)新贏得眾多關(guān)注,成為兩大展會(huì)綠色能源展區(qū)的焦點(diǎn),為光伏建筑一體化(BIPV)行業(yè)發(fā)展注
    的頭像 發(fā)表于 11-17 14:36 ?154次閱讀

    迅鐳激光多款核心產(chǎn)品亮相兩大制造業(yè)盛會(huì)

    2025年9月至10月,迅鐳激光以強(qiáng)勁姿態(tài)登陸國(guó)際舞臺(tái),連續(xù)亮相美國(guó)FABTECH 2025與土耳其MAKTEKKONYA 2025兩大制造業(yè)盛會(huì),迅鐳激光攜旗下多款核心產(chǎn)品強(qiáng)勢(shì)亮相,以“中國(guó)智造”的硬核實(shí)力,向來(lái)自美洲、歐洲、歐亞、中東及北非市場(chǎng)的客戶(hù)展示激光智能制造的
    的頭像 發(fā)表于 10-16 10:36 ?370次閱讀

    小身材,大智慧:深入解析是德科技N1000A CXA-m信號(hào)分析

    小身材,大智慧:深入解析是德科技N1000A CXA-m信號(hào)分析儀 在射頻測(cè)試與測(cè)量領(lǐng)域,工程師們常常面臨一個(gè)難選擇:是追求頂級(jí)性能而承擔(dān)高昂的成本和復(fù)雜性,還是為了預(yù)算和易用性而妥協(xié)性能?是德
    的頭像 發(fā)表于 09-28 15:30 ?488次閱讀
    小身材,<b class='flag-5'>大智</b>慧:深入解析是德科技N1000A CXA-m信號(hào)<b class='flag-5'>分析</b>儀

    領(lǐng)麥微紅外測(cè)溫傳感器:賦能微波爐智能化升級(jí)的兩大核心應(yīng)用

    控溫與紅外測(cè)溫賦能智能菜譜功能兩大維度,解析其在微波爐中的創(chuàng)新應(yīng)用價(jià)值。一、非接觸測(cè)溫:突破傳統(tǒng),實(shí)現(xiàn)食物溫度動(dòng)態(tài)監(jiān)測(cè)傳統(tǒng)微波爐多依賴(lài)預(yù)設(shè)功率與時(shí)間完成加熱,但不同
    的頭像 發(fā)表于 09-04 14:18 ?445次閱讀
    領(lǐng)麥微紅外測(cè)溫傳感器:賦能微波爐<b class='flag-5'>智能</b>化升級(jí)的<b class='flag-5'>兩大</b>核心應(yīng)用

    簽名證書(shū)工具cfssl詳解

    CFSSL(CloudFlare's PKI and TLS toolkit)由 CloudFlare 用go語(yǔ)言開(kāi)發(fā)的一個(gè)開(kāi)源工具,用于證書(shū)簽名、驗(yàn)證和管理。
    的頭像 發(fā)表于 06-11 16:30 ?514次閱讀
    自<b class='flag-5'>簽名</b>證書(shū)工具cfssl詳解

    官方實(shí)錘,微軟遠(yuǎn)程桌面爆高危漏洞,企業(yè)數(shù)據(jù)安全告急!

    近日,微軟發(fā)布安全通告,其Windows遠(yuǎn)程桌面網(wǎng)關(guān)(RD)服務(wù)存在兩大高危漏洞:CVE-2025-26677CVE-2025-26677是遠(yuǎn)程桌面網(wǎng)關(guān)服務(wù)DoS漏洞,允許未經(jīng)授權(quán)的攻擊者觸發(fā)
    的頭像 發(fā)表于 05-16 17:35 ?744次閱讀
    官方實(shí)錘,微軟遠(yuǎn)程桌面爆高危<b class='flag-5'>漏洞</b>,企業(yè)數(shù)據(jù)安全告急!

    電裝發(fā)布環(huán)境與安心兩大領(lǐng)域的戰(zhàn)略成果

    近日,電裝于「第二十一屆上海國(guó)際汽車(chē)工業(yè)展覽會(huì)」新聞發(fā)布會(huì)上,圍繞“環(huán)境”與“安心”兩大領(lǐng)域,展示在電動(dòng)化、智能化與可持續(xù)發(fā)展領(lǐng)域的創(chuàng)新成果,彰顯長(zhǎng)期深耕中國(guó)市場(chǎng)、持續(xù)推動(dòng)可持續(xù)出行的戰(zhàn)略承諾與行動(dòng)。
    的頭像 發(fā)表于 04-27 11:11 ?762次閱讀

    使用mbedtls進(jìn)行ECDSA簽名驗(yàn)證失敗的原因?

    我正在嘗試使用 mbedtls 驗(yàn)證 ECDSA 簽名,但不斷MBEDTLS_ERR_ECP_VERIFY_FAILED。我已經(jīng)驗(yàn)證了所有組件看起來(lái)都正確,但無(wú)法弄清楚驗(yàn)證失敗的原因
    發(fā)表于 04-14 06:57

    STM32F1 xcube cryptolib ECDSA計(jì)算出來(lái)的摘要值和外部驗(yàn)證工具計(jì)算出來(lái)的簽名值對(duì)不上怎么解決?

    STMF1 xcube cryptolib ECDSA簽名,采用CMOX_ECC_CURVE_SECP256R1曲線、SHA256摘要算法,計(jì)算出來(lái)的摘要值和外部驗(yàn)證工具計(jì)算出來(lái)的簽名值對(duì)不上,外部
    發(fā)表于 03-07 09:24

    亞成微電子斬獲兩大榮譽(yù)

    新春伊始,亞成微捷報(bào)頻傳,接連斬獲兩大里程碑式榮譽(yù)——成功通過(guò)IATF16949:2016汽車(chē)行業(yè)質(zhì)量管理體系認(rèn)證,并榮獲“陜西省工業(yè)設(shè)計(jì)中心”榮譽(yù)稱(chēng)號(hào)!
    的頭像 發(fā)表于 02-12 13:12 ?789次閱讀

    格陸博科技榮登兩大權(quán)威機(jī)構(gòu)榜單

    近日,格陸博科技憑借其卓越的技術(shù)實(shí)力和市場(chǎng)表現(xiàn)力,榮登《2024年度中國(guó)智能電動(dòng)汽車(chē)核心零部件100強(qiáng)》和《2024創(chuàng)業(yè)邦100未來(lái)獨(dú)角獸》兩大權(quán)威機(jī)構(gòu)榜單。
    的頭像 發(fā)表于 12-26 09:18 ?1425次閱讀

    東軟睿馳榮獲高工智能汽車(chē)金球獎(jiǎng)兩大獎(jiǎng)項(xiàng)

    近日,2024年(第八屆)高工智能汽車(chē)年會(huì)暨年度金球獎(jiǎng)評(píng)選頒獎(jiǎng)典禮在上海舉辦,東軟睿馳憑借NeuSAR OS與L2+城市車(chē)道領(lǐng)航控制器X-Box 5.0產(chǎn)品榮獲2024年度「金球獎(jiǎng)」兩大獎(jiǎng)項(xiàng)。東軟睿馳品牌市場(chǎng)企劃中心總監(jiān)向文玲受邀出席頒獎(jiǎng)典禮并發(fā)表主題演講。
    的頭像 發(fā)表于 12-16 16:29 ?973次閱讀