Feature #4599

Redesign Signed Interest and Command Interest to use Parameters

Added by Junxiao Shi 11 months ago. Updated 3 months ago.

In Progress
Start date:
Due date:
% Done:


Estimated time:
3.00 h


SignedInterest places a signature as part of the Interest name. Its extension CommandInterest adds protection against replay attacks by adding more name components.
Packet Format v0.3 introduces a Parameters element as part of the Interest. This issue is to design a new protocol that places signature and replay-protection fields into Parameters, so that the response Data does not need to send them back in the name.

Related issues

Blocks NFD - Feature #4600: Redesign NFD Management protocol to use Interest ParametersNew

Blocks NFD - Feature #4649: Include PrefixAnnouncement in prefix registration commandsIn Progress

Blocks ndn-cxx - Feature #4804: Signed Interest v0.3New

Blocked by NDN Specifications - Feature #4831: Redefine ParametersSha256DigestComponent covered areaClosed


#1 Updated by Junxiao Shi 11 months ago

  • Blocks Feature #4600: Redesign NFD Management protocol to use Interest Parameters added

#2 Updated by Davide Pesavento 9 months ago

  • Tracker changed from Task to Feature

#3 Updated by Junxiao Shi 7 months ago

  • Blocks Feature #4649: Include PrefixAnnouncement in prefix registration commands added

#4 Updated by Junxiao Shi 7 months ago

  • Status changed from New to In Progress
  • Assignee set to Alex Afanasyev

#5 Updated by Junxiao Shi 3 months ago

On 20181202 call, I pointed out a significant problem with 4942,22:
The ParametersSha256DigestComponent is being used for two purposes: (1) identify Parameters (and possibly SignatureInfo) as basis of signing; (2) ensure every Interest has a different name during forwarding.
As a result, a malicious consumer could modify the SignatureValue and confuse PIT aggregation, triggering a denial-of-service attack that is impossible to detect from the network without having a universal trust schema.

My proposal to fix this problem is:

  1. For signing purpose, a digest over Parameters (if present) and SignatureInfo is appended temporarily to the name. This name is used for signing.
  2. After signing, a digest over Parameters (if present), SignatureInfo, and SignatureValue is put into the name and transmitted.

#6 Updated by Junxiao Shi 2 months ago

#7 Updated by Junxiao Shi about 2 months ago

  • Blocked by Feature #4831: Redefine ParametersSha256DigestComponent covered area added

Also available in: Atom PDF