[tor-bugs] #17349 [Tor]: Create an ed25519 shared randomness key for dirauths

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Oct 28 15:27:19 UTC 2015


#17349: Create an ed25519 shared randomness key for dirauths
--------------------+------------------------------------
 Reporter:  asn     |          Owner:
     Type:  defect  |         Status:  needs_review
 Priority:  Medium  |      Milestone:  Tor: 0.2.8.x-final
Component:  Tor     |        Version:
 Severity:  Normal  |     Resolution:
 Keywords:          |  Actual Points:
Parent ID:  #16943  |         Points:
  Sponsor:          |
--------------------+------------------------------------
Changes (by asn):

 * status:  new => needs_review


Comment:

 Hello,

 I have a ready to review branch at `prop250-ed25519-day2` in my repo.

 The patch makes auths generate the ed25519 shared randomness key and
 include it in their votes. The other dirauths will parse it and save it
 for use in the prop250 protocol.

 Some comments I would appreciate from the reviewer since I'm quite the
 newbie with this part of Tor:

 - `load_ed_keys()` was quite complicated and I'm not familiar with all
   the functionality in there. It would be great if someone else could
   double check the logic to make sure I didn't fuck up anything.

   I'm mainly wondering if `use_signing` is the right variable to use
 there.

   I'm also wondering if my `need_new_sr_key` logic is good, or it needs to
 be more advanced like `need_new_signing_key` and `want_new_signing_key`.

 - Currently, the lifetime of the SR cert is 30 days like the signing key
 cert. Is this OK?

   Should we check for a minimum lifetime of `SharedRandomKeyLifetime` like
 we do in `SigningKeyLifetime`? Should I introduce something like
 `TestingSigningKeySlop`?  I couldn't quite understand how that worked.

 And here are some guidelines for using this branch:

 - Use get_shared_random_keypair() to get the shared randomness keypair to
 sign the commitments.

 - Then, after vote parsing, use
 networkstatus_t.ed25519_shared_random_cert.signed_key to get the shared
 random key of other authorities and verify their commitment signatures.

 - Use networkstatus_t.ed25519_signing_key_cert.signing_key to get the
 e25519 master key of other authorities.


 Thanks!

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/17349#comment:10>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list