Analys av Client Puzzles protokollet

Av: Andreas Gabrielsson & Simon Österman

Sammanfattning

Detta dokument behandlar ett proof-of-work protokoll som heter client puzzles. Client puzzles placeras ovanpå protokollet som ska skyddas och är utformad för att skydda mot en typ av attack som kallas connection depletion attack. Vi har studerat hur väl Client puzzles protokollet skyddar mot connection depletion attacker och hur det påverkar andra delar av systemet. För att göra detta väljer vi att implementera vår egen version av pusslen i protokollet för att kunna presentera statistik på hur prestandan är för de olika stegen samt läsa på vad andra människor har skrivit om protokollets styrkor och svagheter. Efter att ha implementerat pusslen och testat med olika storlekar kan vi se att protokollet ger ett visst skydd mot connection depletion attacks men även att det finns några andra problem med protokollet. Dessa problem består av ökad sårbarhet mot till exempel distribuerade denial of service-attacker genom att många klienter kan lösa många pussel på en kort tid och på så vis komma runt skyddet som Client puzzles protokollet ger. Ett annat problem är också att protokollet öppnar upp en ny svaghet mot en connection depletion attack genom att en klient kan be om många pussel utan att lösa dem och på så vis överbelasta serverns processor eftersom att den behöver generera många pussel. Vår slutsats är att även om protokollet till viss del löser det säkerhetsproblem som det tänkt för det med sig flera nya problem. Det tillsammans med att det krävs mjukvara hos klienterna gör att protokollet överlag inte är någon bra lösning.