Encryption

geth 節點間通信(devp2p/rlpx)加密

  • October 11, 2018

我目前正在分析 geth 中使用的加密機制。

目前我從原始碼(https://github.com/ethereum/go-ethereum/blob/master/p2p/rlpx.go)收集了以下資訊:

  • 通信被加密
  • 沒有像 TLS 中那樣的伺服器證書/CA 鏈
  • 密鑰交換通過:ECDSA / secp256k1
  • ECDSA 公鑰長度:256 位
  • SharedSecretKeyLength:16 字節

到目前為止這是正確的嗎?

有人知道節點間協議中是否有任何關於加密的文件?

https://github.com/ethereum/devp2p/blob/master/rlpx.md更新(感謝 Richard Horrocks 指出):

RLPx 握手被認為是“破解加密”,因為 aes-secret 和 mac-secret 被重複用於讀取和寫入。RLPx 連接的兩端從相同的密鑰、nonce 和 IV 生成兩個 CTR 流。如果攻擊者知道一個明文,他們可以解密重用密鑰流的未知明文。

更新在 crypto.stackexchange.com 上詢問上述加密缺陷 - > https://crypto.stackexchange.com/questions/63047/ethereum-rlpx-protocol-for-inter-node-communication-flaws-in-the-encryption

有人知道節點間協議中是否有任何關於加密的文件?

您可能已經找到了這些,但這裡有一些我過去使用過的資源:

Gitter 頻道:https ://gitter.im/ethereum/devp2p

Consensys 的用於 devp2p 的 Wireshark 解剖器:https ://github.com/ConsenSys/ethereum-dissectors

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