#25501 closed task (implemented)

Ensure WTF-Pad padding comes from the expected hop

Reported by: dgoulet Owned by: mikeperry
Priority: Medium Milestone: Tor: 0.4.0.x-final
Component: Core Tor/Tor Version:
Severity: Normal Keywords: control-flow, tor-circuit, 035-roadmap-master, 035-triaged-in-20180711
Cc: arma, mikeperry Actual Points: 0.5
Parent ID: Points: 3
Reviewer: Sponsor: Sponsor2

Description (last modified by mikeperry)

When first looking at the WTF-Pad design for integration into Tor, we were concerned that there may be flow control issues with padding causing our SENDME windows to empty prematurely. It turns out that RELAY_DROP does not count towards these windows though, so no updates are needed there.

However, we should add an additional check to ensure that RELAY_DROP cells come from the expected hop (middle). This check is easy to do -- just inspect the layer_hint after the cell is recognized and see where it came from. In this way, we can prevent a malicious Exit node or RP from injecting end-to-end side channel cells, while still allowing padding.

Child Tickets

Change History (9)

comment:1 Changed 18 months ago by arma

Cc: arma added; armadev removed

comment:2 Changed 17 months ago by nickm

Keywords: 035-roadmap-master added

comment:3 Changed 17 months ago by mikeperry

Description: modified (diff)
Owner: changed from dgoulet to mikeperry
Summary: Control-flow issues solved for WTF-padEnsure WTF-Pad padding comes from the expected hop

comment:4 Changed 17 months ago by nickm

Keywords: 035-triaged-in-20180711 added

comment:5 Changed 14 months ago by nickm

Milestone: Tor: 0.3.5.x-finalTor: 0.3.6.x-final

Defer remaining wtf-pad tickets from 0.3.5 to 0.3.6

comment:6 Changed 14 months ago by mikeperry

This was trivial, as expected: https://github.com/mikeperry-tor/tor/commit/3e4d9e3893d951702b7d6762412f4cd7ed2032e0

Existing drop cell tests pass, which means we're not allowing padding unless there is a padding machine present. Could use an explicit test for padding coming from random hops, just to exercise the code a bit more tho.

comment:7 Changed 13 months ago by nickm

Milestone: Tor: 0.3.6.x-finalTor: 0.4.0.x-final

Tor 0.3.6.x has been renamed to 0.4.0.x.

comment:8 Changed 11 months ago by gaba

Actual Points: 0.5
Points: 3

comment:9 Changed 10 months ago by nickm

Resolution: implemented
Status: assignedclosed

This is done in the currently merged wtf-pad code

Note: See TracTickets for help on using tickets.