[tor-bugs] #7419 [Tor]: Choose a faster memwipe implementation

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Oct 17 23:16:44 UTC 2014


#7419: Choose a faster memwipe implementation
-----------------------------+------------------------------------
     Reporter:  nickm        |      Owner:
         Type:  enhancement  |     Status:  needs_review
     Priority:  normal       |  Milestone:  Tor: 0.2.6.x-final
    Component:  Tor          |    Version:
   Resolution:               |   Keywords:  tor-relay, nickm-patch
Actual Points:               |  Parent ID:
       Points:               |
-----------------------------+------------------------------------

Comment (by teor):

 If we do something like:
 {{{
 void *guaranteed_memset(void *v,int c,size_t n) {

   char memset_failed = 0;
   int i;

   /* do the memset in a fast, safe, platform-specific way */

   for (i = 0; i < n; i++) {
     if (v[i] != c) {
       memset_failed = 1;
       break;
     }
   }

   assert(!memset_failed);

   return v;
 }

 }}}
 we could prove the overwrite occurred, and ensure compilers don't/haven't
 optimise(d) it away.

 This is the safest approach - one question: should we guard it with #if
 PARANOIA, or do it all the time?

 (I favour doing it every time we overwrite, as it is a vital security
 property. However, it will be slower to read all the memory again.)

 What do you think, nickm, arma, rransom?

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


More information about the tor-bugs mailing list