Project

General

Profile

SignedInterest » History » Version 4

Junxiao Shi, 12/13/2014 10:36 PM

1 1 Yingdi Yu
Signed Interest
2
===============
3
4
**Signed Interest** is a mechanism to issue an authenticated interest.
5
6
The signature of a signed Interest packet is embedded into the last component of the Interest name.
7
The signature covers a continuous block starting from the first name component TLV to the penultimate name component TLV:
8
9
    +-------------+----------+-----------------------------------------------------------------------------------+
10
    |  Interest   | Interest | +------+--------+--------------------------------------------------+ +----------+ |
11
    | Type (0x01) |  length  | | Name |  Name  | +---------+--   --+---------+---------+---------+| | Other    | |
12
    |             |          | | Type | Length | |Component|  ...  |Component|Component|Component|| | TLVs ... | |
13
    |             |          | |      |        | |  TLV 1  |       | TLV n-2 | TLV n-1 |  TLV n  || | in       | |
14
    |             |          | |      |        | +---------+--   --+---------+---------+---------+| | Interest | |
15
    |             |          | +------+--------+--------------------------------------------------+ +----------+ |
16
    +-------------+----------+-----------------------------------------------------------------------------------+
17
18
                                                 \                                    /\        /
19
                                                  ----------------  ------------------  ---  ---
20
                                                                  \/                       \/
21
                                                       Signed portion of Interest       Signature
22
23
24
More specifically, the SignedInterest is defined to have four additional components:
25
26
* ``<timestamp>``
27
* ``<nonce>``
28
* ``<SignatureInfo>``
29
* ``<SignatureValue>``
30
31
For example, for ``/signed/interest/name`` name, CommandInterest will be defined as:
32
 
33
     /signed/interest/name/<timestamp>/<random-value>/<SignatureInfo>/<SignatureValue>
34
35
                          \                                                         /
36
                           -----------------------------  --------------------------
37
                                                        \/
38
                                  Additional components of Signed Interest
39
40
## Signed Interest specific Name components
41
42
### Timestamp component (n-3 *th*)
43
44
The value of the n-3 *th* component is the interest's timestamp (in terms of millisecond offset from UTC 1970-01-01 00:00:00) encoded as [nonNegativeInteger](http://named-data.net/doc/ndn-tlv/tlv.html#non-negative-integer-encoding). 
45
The timestamp may be used to protect against replay attack.
46
47
### Nonce component (n-2 *th*)
48
49
The value of the n-2 *th* component is random value (encoded as [nonNegativeInteger](http://named-data.net/doc/ndn-tlv/tlv.html#non-negative-integer-encoding)) that adds additional assurances that the interest will be unique.
50
51
### SignatureInfo component (n-1 *th*)
52
53
The value of the n-1 *th* component is actually a [SignatureInfo](http://named-data.net/doc/ndn-tlv/signature.html) TLV.
54
55
    +---------+---------+-------------------+
56
    |Component|Component| +---------------+ |
57
    |   Type  |  Length | | SignatureInfo | |
58
    |         |         | |      TLV      | |
59
    |         |         | +---------------+ |
60
    +---------+---------+-------------------+
61
    
62
    |                                       |
63
    |<---------The n-1 th Component-------->|
64
65
### SignatureValue component (n *th*)
66
67
The value of the n *th* component is actually a [SignatureValue](http://named-data.net/doc/ndn-tlv/signature.html) TLV.
68
69
    +---------+---------+--------------------+
70
    |Component|Component| +----------------+ |
71
    |   Type  |  Length | | SignatureValue | |
72
    |         |         | |      TLV       | |
73
    |         |         | +----------------+ |
74
    +---------+---------+--------------------+
75
    
76
    |                                        |
77
    |<----------The n th Component---------->|
78
79
80 4 Junxiao Shi
## Signed Interest Processing
81
82 3 Yingdi Yu
How to verify signed interest may vary among applications, depending on the application specific communication model. 
83
One possible processing style can be found [here](http://redmine.named-data.net/projects/ndn-cxx/wiki/SignedInterestProcessing).