台灣錢包KryptoGO評論Edge錢包私鑰外洩事件,教導用戶判斷安全性

ABMedia
分享
台灣錢包KryptoGO評論Edge錢包私鑰外洩事件,教導用戶判斷安全性

(本文由 KryptoGO 撰寫)

位於美國加州的加密貨幣錢包商 Edge 發現應用程式漏洞,導致 2000 個私鑰丟失,儘管丟失金額在五位數美元以下,但該漏洞十分容易讓用戶暴露於風險之中。Edge 已提供最新版本,呼籲用戶盡快更新。

為什麼這個錢包的私鑰會被洩露?

根據官方說明,使用在 App 內的買入或賣出選項,就會讓未加密的私鑰,被儲存在裝置的日誌 (log) 中,如果再使用 Edge 的上傳日誌功能,就會將日誌上傳到 Edge 伺服器之上。如果剛好在買或賣的動作發生後,就上傳日誌,那麼就會包含私鑰。

由於錢包 App 能夠使用到用戶的私鑰,如果在任何地方使用未加密的明碼儲存私鑰,都有洩漏的風險。像這個 App 是因為意外把未加密的私鑰儲存在裝置的日誌 (log) 中,並透過自動備份機制上傳到雲端,才讓安全性出現破口。

這個是很容易犯的錯誤嗎?為什麼這個 App 會犯這個錯誤?

主要是在開發階段並沒有做很好的同儕程式碼審查,導致程式碼品質不佳,理論上對於熱錢包來說,明文的私鑰不應該出現於記憶體以外的任何位置。

用戶怎麼判斷哪個去中心化錢包更安全?

錢包 App 最安全的方式是不在任何儲存裝置上存放明碼的私鑰/註記詞,必須透過加密的方式儲存,另外也需確保程式碼在操作私鑰時不會被記錄在任何的 log 或檔案中。對使用者來說建議評估的角度可以是:如果駭客能偷到自己的這台手機,他是否能解出裡面的私鑰,如果不行才是足夠安全的。這塊可以關注錢包商對於「App 內安全機制的描述」去評估:

詳見:使用錢包的安全檢查要點 - 以 KryptoGO Wallet 為例 – KryptoGO Blog

KryptoGO 錢包在設計的時候有這個問題嗎?

KryptoGO 使用 iOS Keychain 以及 Android Keystore 加密保存 AES 加密後的資料。

AES 加密算法是密碼學中的高級加密標準,該加密算法采用對稱分組密碼體制,密鑰長度的最少支持為128、192、256,分組長度 128 位,算法應易於各種硬體和軟體實現。這種加密算法是美國聯邦政府采用的區塊加密標準,AES 標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。

AES 的運作原理:

以上是我們針對助記詞加密的方式,從這個公式可以看到我們加密助記詞的方法(沒有全數公開,這樣可以避免暴露不必要的攻擊表面),所有的傳輸環節我們都是密文而非明文。

「App 內安全機制的描述」如何評估?推薦這些技術!

由於非託管錢包需要在本機儲存助記詞、種子和私鑰,因此了解本機儲存的工作原理以及針對它的常見攻擊方式至關重要。

以下是各種角度的檢查要點:

一般檢查

  • 應用程式如何生成種子短語和私鑰?
  • 應用程式如何以及在哪裡儲存助記詞和私鑰?
  • 錢包是否連接到可信賴的區塊鏈節點?
  • 該應用程式是否允許用戶配置自定義區塊鏈節點,如果是這樣,惡意區塊鏈節點可以對應用程式做什麼?
  • 應用程式是否使用共同伺服器,從客戶端向伺服器發送什麼信息?
  • 如果伺服器儲存敏感數據,它們是如何儲存的?
  • 應用程式是否強制執行強密碼策略?
  • 當用戶嘗試獲取敏感資訊或轉出代幣時,應用程式是否需要 2FA 或 PIN 碼?
  • 應用程式是否使用易受攻擊的第三方代碼庫?
  • 原始代碼儲存庫中有任何機密洩漏嗎?(例如 API 密鑰、AWS 憑證)
  • 代碼庫中是否存在明顯的不良編碼(例如濫用密碼學)?
  • 應用程式伺服器是否強制執行 TLS 連接?