Browse Source

randomize the initial circ_id and stream_id, so an adversary who
breaks in part-way through can't learn how many circs/streams have
been made


svn:r960

Roger Dingledine 22 years ago
parent
commit
f3fdbadfdf
2 changed files with 4 additions and 0 deletions
  1. 2 0
      src/or/circuit.c
  2. 2 0
      src/or/connection.c

+ 2 - 0
src/or/circuit.c

@@ -75,6 +75,8 @@ circuit_t *circuit_new(uint16_t p_circ_id, connection_t *p_conn) {
   circ->package_window = CIRCWINDOW_START;
   circ->deliver_window = CIRCWINDOW_START;
 
+  circ->next_stream_id = crypto_pseudo_rand_int(1<<16);
+
   circuit_add(circ);
 
   return circ;

+ 2 - 0
src/or/connection.c

@@ -88,6 +88,8 @@ connection_t *connection_new(int type) {
     conn->socks_request = tor_malloc_zero(sizeof(socks_request_t));
   }
 
+  conn->next_circ_id = crypto_pseudo_rand_int(1<<15);
+
   conn->timestamp_created = now;
   conn->timestamp_lastread = now;
   conn->timestamp_lastwritten = now;