103-multilevel-keys.txt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. Splitting identity key from regularly-used signing key.
  2. Replacing a directory authority's identity key in the event of a compromise
  3. would be tremendously annoying. We'd need to tell every client to switch
  4. their configuration, or update to a new version with an uploaded list. So
  5. long as some weren't upgraded, they'd be at risk from whoever had
  6. compromised the key.
  7. With this in mind, it's a shame that our current protocol forces us to
  8. store identity keys unencrypted in RAM. We need some kind of signing key
  9. stored unencrypted, since we need to generate new descriptors/directories
  10. and rotate link and onion keys regularly. (And since, of course, we can't
  11. ask server operators to be on-hand to enter a passphrase every time we
  12. want to rotate keys or sign a descriptor.)
  13. The obvious solution seems to be to have a signing-only key that lives
  14. indefinitely (months or longer) and signs descriptors and link keys, and a
  15. separate identity key that's used to sign the signing key. Tor servers
  16. could run in one of several modes:
  17. 1. Identity key stored encrypted. You need to pick a passphrase when
  18. you enable this mode, and re-enter this passphrase every time you
  19. rotate the signing key.
  20. 1'. Identity key stored separate. You save your identity key to a
  21. floppy, and use the floppy when you need to rotate the signing key.
  22. 2. All keys stored unencrypted. In this case, we might not want to even
  23. *have* a separate signing key. (We'll need to support no-separate-
  24. signing-key mode anyway to keep old servers working.)
  25. 3. All keys stored encrypted. You need to enter a passphrase to start
  26. Tor.
  27. (Of course, we might not want to implement all of these.)
  28. Case 1 is probably most usable and secure, if we assume that people don't
  29. forget their passphrases or lose their floppies. We could mitigate this a
  30. bit by encouraging people to PGP-encrypt their passphrases to themselves,
  31. or keep a cleartext copy of their secret key secret-split into a few
  32. pieces, or something like that.
  33. Migration presents another difficulty, especially with the authorities. If
  34. we use the current set of identity keys as the new identity keys, we're in
  35. the position of having sensitive keys that have been stored on
  36. media-of-dubious-encryption up to now. Also, we need to keep old clients
  37. (who will expect descriptors to be signed by the identity keys they know
  38. and love, and who will not understand signing keys) happy.
  39. I'd enumerate designs here, but I'm hoping that somebody will come up with
  40. a better one, so I'll try not to prejudice them with more ideas yet.
  41. Oh, and of course, we'll want to make sure that the keys are
  42. cross-certified. :)
  43. Ideas? -NM