Go-Ethereum

JSON-RPC 的安全性

  • December 21, 2020

我目前使用web3和geth開發dapps,我們知道web3通過json rpc與geth互動。如果我們想通過dapp解鎖一個賬號,需要在dapp中輸入密碼,然後web3會通過json rpc解鎖。我想知道當web3使用使用者提供的密碼向geth發送解鎖請求時,這個密碼會不會被中間人劫持?我個人認為json rpc也是明文傳輸的,所以我覺得json rpc不安全,不知道我的理解是否正確。

希望你能幫助我,謝謝!

在您正在與之通信的節點上維護未鎖定帳戶通常對於在本地網路上測試您的合約很有用,例如,通過 ganache。

在遠端網路上工作時,這通常是有風險的,因為任何入侵您正在與之通信的節點的人都可以隨意利用這些未鎖定的帳戶。

因此,您可能需要考慮以下替代方案:

當使用者註冊時:

  1. 使用者輸入一個容易記住的密碼
  2. 客戶端用密碼加密私鑰,並發送給伺服器
  3. 伺服器接收到加密後的私鑰,並存入數據庫

當使用者登錄時:

  1. 伺服器將加密後的私鑰發送給客戶端

當使用者執行客戶端網頁上可用的交易時:

  1. 使用者輸入密碼
  2. 客戶端使用密碼解密私鑰
  3. 客戶端使用私鑰簽署交易
  4. 客戶端將簽名的交易發送到伺服器
  5. 伺服器將簽名的交易發送到節點

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