3

How to get the website fingerprinting defense wfpad to work?

Adapting the files in scramblesuit's test/ directory to wfpad worked for the stand-alone operations (replacing scramblesuit with wfpad), but failed when started with adapted torrc files. The adapted torrc files are:

torrc.server

# Feel free to adapt the path.
DataDirectory /tmp/wfpad-torserver    
Log notice stdout    
SOCKSPort auto    
AssumeReachable 1    
PublishServerDescriptor 0    
Exitpolicy reject *:*    
ORPort auto    
Nickname "WfpadTest"    
BridgeRelay 1    
ServerTransportListenAddr wfpad 127.0.0.1:40535
ServerTransportPlugin wfpad exec /home/tortest/obfsproxy_wfpadtools/bin/obfsproxy \
    --log-min-severity=debug \
    --log-file=/tmp/wfpad-server.log \
    managed

torrc.client

# Feel free to adapt the path.
DataDirectory /tmp/wfpad-torclient    
Log notice stdout    
SOCKSPort auto    
UseBridges 1    
Bridge wfpad 127.0.0.1:40535    
ClientTransportPlugin wfpad exec /home/tortest/obfsproxy_wfpadtools/bin/obfsproxy \
    --log-min-severity=debug \
    --log-file=/tmp/wfpad-client.log \
    managed

error message

2016-05-22 10:32:05,499 [DEBUG] [wfpad - client] Connected with the other WFPad end.
Unhandled Error
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 101, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 84, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
    return func(*args,**kw)
--- <exception caught here> ---
  File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 602, in _doReadOrWrite
    why = selectable.doWrite()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 587, in doConnect
    self._connectDone()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 616, in _connectDone
    self.protocol.makeConnection(self)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/protocol.py", line 494, in makeConnection
    self.connectionMade()
  File "/home/tortest/obfsproxy_wfpadtools/obfsproxy/network/network.py", line 281, in connectionMade
    self.circuit.setDownstreamConnection(self)
  File "/home/tortest/obfsproxy_wfpadtools/obfsproxy/network/network.py", line 97, in setDownstreamConnection
    self.circuitCompleted(self.upstream)
  File "/home/tortest/obfsproxy_wfpadtools/obfsproxy/network/network.py", line 134, in circuitCompleted
    self.transport.circuitConnected()
  File "/home/tortest/obfsproxy_wfpadtools/obfsproxy/transports/wfpadtools/wfpad.py", line 197, in circuitConnected
    self.connections = self.process.get_connections()
exceptions.AttributeError: 'Process' object has no attribute 'get_connections'

2016-05-22 10:32:05,574 [CRITICAL] Unhandled Error
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 101, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 84, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
    return func(*args,**kw)
--- <exception caught here> ---
  File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 602, in _doReadOrWrite
    why = selectable.doWrite()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 587, in doConnect
    self._connectDone()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 616, in _connectDone
    self.protocol.makeConnection(self)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/protocol.py", line 494, in makeConnection
    self.connectionMade()
  File "/home/tortest/obfsproxy_wfpadtools/obfsproxy/network/network.py", line 281, in connectionMade
    self.circuit.setDownstreamConnection(self)
  File "/home/tortest/obfsproxy_wfpadtools/obfsproxy/network/network.py", line 97, in setDownstreamConnection
    self.circuitCompleted(self.upstream)
  File "/home/tortest/obfsproxy_wfpadtools/obfsproxy/network/network.py", line 134, in circuitCompleted
    self.transport.circuitConnected()
  File "/home/tortest/obfsproxy_wfpadtools/obfsproxy/transports/wfpadtools/wfpad.py", line 197, in circuitConnected
    self.connections = self.process.get_connections()
exceptions.AttributeError: 'Process' object has no attribute 'get_connections'
3
  • 1
    it looks a version mismatch/conflict. It happens when you have an old version of package from your OS package manager and a new one installed otherwise in another location
    – Alexey Vesnin
    May 25, 2016 at 1:05
  • @AlexeyVesnin: Thank you very much. Make this an answer to get the points.
    – serv-inc
    May 25, 2016 at 7:45
  • ok, just did it - it's an answer now
    – Alexey Vesnin
    May 25, 2016 at 15:01

1 Answer 1

2

it looks a version mismatch/conflict. It happens when you have an old version of package from your OS package manager and a new one installed otherwise in another location

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .