[tor-bugs] #33650 [Core Tor/Tor]: Verify that intro2 cell extensions actually work

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Mar 19 04:29:17 UTC 2020


#33650: Verify that intro2 cell extensions actually work
------------------------------+--------------------
     Reporter:  arma          |      Owner:  (none)
         Type:  task          |     Status:  new
     Priority:  Medium        |  Milestone:
    Component:  Core Tor/Tor  |    Version:
     Severity:  Normal        |   Keywords:
Actual Points:                |  Parent ID:
       Points:                |   Reviewer:
      Sponsor:                |
------------------------------+--------------------
 In the future we're going to want to transport end-to-end tokens, proofs
 of work, or other blobs from client to onion service. We should make sure
 that we can actually add these into the cells without anything going
 wrong, like surprising asserts or surprising length enforcement.

 (Now is the time to notice if things will go wrong, so we can fix them and
 deploy that fix, and then people will have upgraded by the time we're
 ready to actually use them.)

 So: let's make a branch that adds "hi mom" on the client side, and reads
 it out again on the service side.

 In spelunking through the code and the spec, I found that modern intro2
 cells have an "extensions" field inside their encrypted component, which
 seems perfectly suited for transporting arbitrary blobs from client to
 service. Here's how we set it currently on the client side:
 {{{
   /* Set extension data. None are used. */
   ext = trn_cell_extension_new();
   tor_assert(ext);
   trn_cell_extension_set_num(ext, 0);
   trn_cell_introduce_encrypted_set_extensions(enc_cell, ext);
 }}}

 So that 0 needs to become a 1, and then we need something new that makes
 and sets a new extension in ext (modeled maybe on
 {{{build_establish_intro_dos_extension()}}}, and something on the
 receiving end that invokes trn_cell_extension_parse() and reads it out to
 us.

 I am optimistic, because this thing is encrypted, so the intro point in
 the middle can't be looking at it very carefully. But if we have bugs on
 the client side or the service side, or surprise length enforcement in the
 middle, now is a great time to notice and fix them.

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


More information about the tor-bugs mailing list