台灣錢包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 連接?