• Felix Lange's avatar
    p2p/discover: implement node bonding · de7af720
    Felix Lange authored
    This a fix for an attack vector where the discovery protocol could be
    used to amplify traffic in a DDOS attack. A malicious actor would send a
    findnode request with the IP address and UDP port of the target as the
    source address. The recipient of the findnode packet would then send a
    neighbors packet (which is 16x the size of findnode) to the victim.
    
    Our solution is to require a 'bond' with the sender of findnode. If no
    bond exists, the findnode packet is not processed. A bond between nodes
    α and β is created when α replies to a ping from β.
    
    This (initial) version of the bonding implementation might still be
    vulnerable against replay attacks during the expiration time window.
    We will add stricter source address validation later.
    de7af720
Name
Last commit
Last update
Godeps Loading commit data...
_data Loading commit data...
accounts Loading commit data...
blockpool Loading commit data...
cmd Loading commit data...
common Loading commit data...
compression/rle Loading commit data...
core Loading commit data...
crypto Loading commit data...
errs Loading commit data...
eth Loading commit data...
ethdb Loading commit data...
event Loading commit data...
generators Loading commit data...
jsre Loading commit data...
logger Loading commit data...
miner Loading commit data...
p2p Loading commit data...
pow Loading commit data...
rlp Loading commit data...
rpc Loading commit data...
tests Loading commit data...
trie Loading commit data...
ui Loading commit data...
whisper Loading commit data...
xeth Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
Dockerfile Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...
gocoverage.sh Loading commit data...
update-license.go Loading commit data...