В настоящее время я анализирую механизмы шифрования, используемые в geth.
В настоящее время я собрал следующую информацию из исходного кода ( https://github.com/ethereum/go-ethereum/blob/master/p2p/rlpx.go ):
Пока это правильно?
Кто-нибудь знает, есть ли документация по шифрованию в межузловом протоколе?
Обновление с https://github.com/ethereum/devp2p/blob/master/rlpx.md (спасибо Ричарду Хорроксу за указание на него):
Рукопожатие RLPx считается «сломанной криптографией», поскольку aes-secret и mac-secret повторно используются как для чтения, так и для записи. Две стороны соединения RLPx генерируют два потока CTR из одного и того же ключа, nonce и IV. Если злоумышленник знает один открытый текст, он может расшифровать неизвестные открытые тексты повторно используемого ключевого потока.
Обновление спросили на 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 Wireshark для devp2p: https://github.com/ConsenSys/ethereum-dissectors