Go-Ethereum

Geth賬號解鎖2秒

  • June 25, 2018

我的問題與此 stackexchange 上的一個較舊的問題有關。

詳細資訊

Patrick 使用乙太坊錢包轉移 1 個乙太幣來測試在他的礦機上購買 TheDAO 代幣。當(到目前為止似乎)乙太坊錢包解鎖了他的 geth 錢包 2 秒(通過 IPC API,沒有暴露在網際網路上)時,一個正在監視他的 geth 錢包活動的機器人突然進入向 geth 發送轉移指令(通過JSON-RPC,暴露在網際網路上)並將他剩餘的 7218 個乙太幣轉移到黑客的賬戶中。

此錯誤是否已修復或仍處於最新版本的霧中,我如何檢查我是否容易受到這種攻擊?開發人員是否有特殊的原因他們以這種方式實現它,或者甚至不可能以其他方式實現它?

這個問題與你 geth 節點的安全性有關。我沒有找到任何需要修復的東西。

看,當你與你的 geth 節點建立 IPC 連接時,你可以刪除 RPC api。所以只有您系統上的程序才能訪問您的 geth 節點。因此,沒有機器人(如果不在您的伺服器上執行)可以將事務發送到您的 geth 節點。

如果您必須rpc通過 IPC 使用,首選方法是使用127.0.0.1as rpcaddr

非常明確誰可以向您的 geth 實例發送 RPC 呼叫。因此,在最易受攻擊的情況下,當您使用 RPC 並通過 RPC 暴露個人資訊時。您可以確保除了您的 Dapp 正在執行的伺服器之外,沒有其他伺服器可以從伺服器端連接到 geth 節點。

編輯:

我不確定 2 秒的間隔。如果您可以提供有關您在哪裡閱讀的任何參考。我從文件中了解到的是:

未加密的密鑰將保存在記憶體中,直到解鎖持續時間到期。如果解鎖持續時間預設為 300 秒。

您始終可以選擇使用以下方法覆蓋該值:

personal.unlockAccount(address, password, duration_in_seconds)

PS:只要您可以選擇配置預設值,預設值並不重要。

引用自:https://ethereum.stackexchange.com/questions/52022