107-uptime-sanity-checking.txt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. Filename: 107-uptime-sanity-checking.txt
  2. Title: Uptime Sanity Checking
  3. Version:
  4. Last-Modified:
  5. Author: Kevin Buaer and Damon McCoy
  6. Created: 8-March-2007
  7. Status: Open
  8. Overview:
  9. This document describes how to cap the uptime that is used when computing
  10. which routers are maked as stable such that highly stable routers cannot
  11. be displaced by malicious routers that report extremely high uptime
  12. values.
  13. This is similar to how bandwidth is capped at 1.5MB/s.
  14. Motivation:
  15. It has been pointed out that an attacker can displace all stable nodes and
  16. entry guard nodes by reporting high uptimes. This is an easy fix that will
  17. prevent highly stable nodes from being displaced.
  18. Security implications:
  19. It should decrease the effectiveness of routing attacks that report high
  20. uptimes while not impacting the normal routing algorithms.
  21. Specification:
  22. We propose that uptime be capped at two months. Currently there are
  23. approximetly 50 nodes with this amount of uptime, and the average uptime
  24. is around 9 days. This cap would prevent these 50 nodes from being
  25. displaced by an attacker.
  26. Compatibility:
  27. There should be no compatiblity issues due to uptime capping.
  28. Implementation:
  29. #define MAX_BELIEVABLE_UPTIME 60*24*60*60
  30. dirserv.c
  31. 1448: *up = (uint32_t) real_uptime(ri, now);
  32. if(*up > MAX_BELIEVABLE_UPTIME) {
  33. *up = MAX_BELIEVABLE_UPTIME;
  34. }