CommandInterest » History » Version 1
Yingdi Yu, 05/25/2015 01:45 PM
| 1 | 1 | Yingdi Yu | CommandInterest |
|---|---|---|---|
| 2 | =============== |
||
| 3 | |||
| 4 | **Command Interest** is an extension of [[SignedInterest|Signed 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 | ## Signed Interest Processing |
||
| 81 | |||
| 82 | 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). |