Opened 6 years ago

Closed 5 years ago

#1206 closed defect (fixed)

SSU Relay Request does not use Session Key if available

Reported by: zzz Owned by: zzz
Priority: minor Milestone: 0.9.12
Component: router/transport Version: 0.9.11
Keywords: Cc:
Parent Tickets: Sensitive: no

Description

Alice: sender; Bob: introducer

Spec says Relay Request can use session key or intro key. Alice tries hard to stay connected to Bob, so session key is usually available. But in PacketBuilder?,buildRelayRequest(), no check is made for an existing session with Bob; intro key is always used.

This causes transient HMAC failure at PacketHandler?.receivePacket() line 323. It then retries with the intro key, which succeeds.

This is the cause of a large portion of the HMAC failures.

ref:

http://i2p-projekt.i2p/en/docs/spec/ssu
http://i2p-projekt.i2p/en/docs/transport/ssu

Subtickets

Change History (4)

comment:1 Changed 6 years ago by zzz

Status: newaccepted

The HMAC validation passes at line 333 and the packet is decrypted as a "stray" packet at line 343.

comment:2 Changed 6 years ago by zzz

Correction to OP:

Bob tries hard to stay connected to Charlie. (not Alice/Bob?)

Alice may or may not be connected to Bob.

This bug applies to replay response also.

comment:3 Changed 6 years ago by zzz

Status: acceptedtesting

comment:4 Changed 5 years ago by zzz

Resolution: fixed
Status: testingclosed
Note: See TracTickets for help on using tickets.