前言 利用Cryptography函式庫進行密碼學實作 程式實作 安裝Cryptography函式庫 pip install cryptography fr...
Cryptography Synchronization Link Tree Personal Website Medium LinkedIn...
Signature, Sign, Sign Message & Transaction Synchronization Link Tree Pers...
學習區塊鏈技術,學到某個時期,很有可能會開始好奇一些與密碼學相關的議題,例如數位簽章(digital signature)。這時可能會感到後悔,大學的時候沒有...
為什麼選擇輕量級區塊鏈與資安實戰?身為資安系的學生,這是我第一次踏上 iThome 鐵人賽的連續 30 天發文挑戰。這次會定下這個主題,其實源自於今年寒假期間與...
在昨天我們提到,要在資源受限的環境下建構區塊鏈,必須捨棄沉重的現成框架從零開始。但無論架構再怎麼輕量,區塊鏈之所以被稱為「信任的機器」,完全是建立在幾項核心的密...
昨天我們用 Hash、非對稱加密和數位簽章,確保了資料的完整性與真實性。但在一個沒有中心化伺服器的分散式網路中,我們面臨著一個更棘手的問題:當多個節點同時產生資...
隨著Internet越來越多地使用在商業和個人通訊,保護敏感訊息(例如:信用卡和 個人識別碼(PIN)、銀行帳號和私人消息)變得越來越重要,但也越來越難以實現。...
電子郵件加密通過將電子郵件內容加密為不可讀的形式來隱藏竊聽者電子郵件內容。 電子郵件可以通過使用公鑰和私鑰的數位簽章機制進行加密和解密:公鑰是共享的, 而私鑰是...
經過前三天密碼學與共識機制的理論洗禮,今天我們終於要打開編輯器,正式進入寫 Code 的階段了。 為了讓大家能以最直覺的方式理解區塊鏈的底層運作,我選擇使用 J...
在過去的幾天裡,我們從密碼學的 Hash 與數位簽章打底,接著用 JavaScript 親手刻出了區塊資料結構、工作量證明(PoW)以及交易池機制。現在,我們手...
我們成功實作了工作量證明(PoW),讓區塊的產生有了合理的節奏。但在前幾天的程式碼中,我們的區塊裡都只放了一筆簡單的 data(例如一個溫濕度數值)。 在真實的...
昨天我們成功實作了區塊鏈的基礎資料結構,但如果你有實際執行昨天的程式碼,會發現 addBlock() 幾乎是在一瞬間就執行完畢並把區塊推入陣列中了。 在真實的分...
前言 今天還是那個密碼學,不過主要會學習現代密碼學的基本知識,在這之前先補充說明一下 encryption 和 hash 的差別,因為昨天忘了寫。應該不太會出現...
昨天我們成功發行了標準的 ERC20 代幣。但代幣如果只能在朋友之間互轉,就無法形成真正的金融市場。在 Web3 的世界裡,要讓代幣具有流動性並能互相兌換,我們...
Remix 確實非常方便,隨開即用,但當我們要把專案規模放大,或是進行嚴謹的資安測試與自動化部署時,網頁版就顯得力不從心了。因此,身為未來的專業開發者與資安人員...
我們從零開始探討並實作了輕量級區塊鏈架構。那個微型區塊鏈非常適合用在資源受限的物聯網環境,幫我們解決了資料不可篡改的問題。但是,如果我們想要在區塊鏈上執行更複雜...
今天,我們終於要來點有成就感的實作了——發行屬於我們自己的加密貨幣(代幣)!在以太坊上,發行代幣最普及的標準就是 ERC20。幾乎所有你在交易所買賣的非原生代幣...
今天,我們要來聊聊一個讓無數開發者跌破眼鏡的經典資安問題:整數溢位與下位 在日常生活中,我們都知道 0 - 1 = -1,或者 255 + 1 = 256。但在...
寫完 Code 絕對不能直接上主網 在過去兩天中,我們順利開發了 ERC20 代幣與去中心化交易所(DEX)的核心合約。對於傳統軟體開發來說,寫完程式碼、跑起來...
在 Web3 的世界裡,每一行程式碼都與「錢(加密資產)」直接掛鉤,且佈署後無法輕易竄改。因此,今天我們在解析 Solidity 的基礎語法時,我不會只教你怎麼...
從今天開始,我們將正式踏入本系列賽最硬核、也是我身為資安系學生最期待的章節:「資安攻防大亂鬥」。 提到智慧合約的安全漏洞,我們絕對不能跳過重入攻擊 (Reent...
前一篇親手寫了一段駭客合約,利用「重入攻擊」將銀行合約裡的資金瞬間掏空。如果你仔細回顧昨天的攻擊流程,會發現駭客之所以能成功,完全是因為銀行合約在「扣除餘額」之...
駭客之所以能得逞,根本原因在於該 DeFi 協議將「單一去中心化交易所(DEX)的資金池」當作唯一的價格來源。在資安領域,我們非常忌諱「單一故障點(Single...
在 Web3 的世界裡,許多專案為了節省使用者的 Gas 費,會採用「鏈下簽章、鏈上驗證」的機制。例如:專案方在自己的伺服器上審核你的資格,然後用專案方的私鑰簽...
在實務的資安稽核中,光靠人眼一行一行去看程式碼(Manual Review)是非常危險且沒有效率的。人類會因為疲勞而漏看一個 unchecked 區塊,或者忽略...
前言 這次在 picoCTF 選了一題 RSA 的題目:miniRSA,想自己挑戰的讀者一樣先不要往下看~~ Write-up miniRSA 從題目下載下來的...
前幾篇我們討論的重入攻擊、整數溢位或是權限控制漏洞,大多是單一合約內部「程式碼邏輯」上的瑕疵。但在去中心化金融(DeFi)的世界裡,各個協議就像樂高積木一樣可以...
在傳統 Web2 世界裡,DoS 通常是指用海量的封包把伺服器頻寬塞爆,讓正常用戶連不上線。但在 Web3 的世界裡,因為有 Gas 機制的存在,駭客很難用「海...
在 Web3 的世界裡,我們常說「程式碼就是法律」。過去幾天我們討論的重入攻擊與整數溢位,都屬於「邏輯與數學運算」上的漏洞。但現在要探討的是一種極度低級、卻屢見...