[tor-bugs] #19945 [Core Tor/Tor]: tor 0.2.8.5-rc connecting/binding to 18.0.0.1 (regression)

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat Aug 20 04:33:40 UTC 2016


#19945: tor 0.2.8.5-rc connecting/binding to 18.0.0.1 (regression)
---------------------------------------+---------------------------------
 Reporter:  landers                    |          Owner:
     Type:  defect                     |         Status:  new
 Priority:  Medium                     |      Milestone:  Tor: 0.2.???
Component:  Core Tor/Tor               |        Version:  Tor: 0.2.8.5-rc
 Severity:  Normal                     |     Resolution:
 Keywords:  regression, windows, easy  |  Actual Points:
Parent ID:                             |         Points:  1.0
 Reviewer:                             |        Sponsor:
---------------------------------------+---------------------------------
Changes (by teor):

 * keywords:  regression => regression, windows, easy
 * points:   => 1.0
 * milestone:  Tor: 0.2.8.x-final => Tor: 0.2.???


Comment:

 This isn't a bug - this is Tor functioning as designed to protect client
 anonymity, even if you change networks.

 Tor clients generate a new SSL certificate each time their IP address
 changes - this makes sure they can't be tracked across different networks.
 (See client_check_address_changed for details.)

 Tor uses two methods to find the address, GetAdaptersAddresses and the
 "UDP socket hack": asking the machine the local address of a UDP socket.
 For the hack to work, the socket has to be associated with a public IP
 address. Tor never sends data on the socket, it's entirely safe to block
 it with your firewall. Tor's just using it to check if your local address
 has changed.

 Here are the gory details:

 Tor uses get_interface_address6 to find the client's address, which calls
 get_interface_address6_list, which calls get_interface_addresses_raw,
 which calls GetAdaptersAddresses. If GetAdaptersAddresses fails to provide
 any addresses, get_interface_address6_list calls
 get_interface_address6_via_udp_socket_hack to make sure we know the
 address (this extra method of finding the IP address was added in #17951).

 In this case, it's likely that GetAdaptersAddresses failed to return any
 addresses, and to the UDP socket hack is being used to find the client IP
 address. To confirm this, please check the info-level logs for messages
 like:

 {{{
 Unable to load iphlpapi.dll
 Unable to obtain pointer to GetAdaptersAddresses
 GetAdaptersAddresses failed (result:
 }}}

 It would be great if a Windows dev could update the code in
 get_interface_addresses_win32 to correctly find the IP address on newer
 systems. (We really, really need help from developers who can program on
 Windows!)

 But this fix is not urgent. As far as I can tell, Tor is functioning as
 designed to make sure that users can't be linked when they change IP
 addresses. (Even though GetAdaptersAddresses isn't working.)

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


More information about the tor-bugs mailing list