Project

General

Profile

Certificate Bundle Packet Format » History » Version 1

Manika Mittal, 02/06/2017 01:06 PM

1 1 Manika Mittal
# Certificate Bundle
2
3
**Certificate Bundle protocol** provides a way to retrieve a set of the certificates needed to authenticate a data packet within one RTT. 
4
5
## Certificate Bundle Packet Format 
6
7
The Certificate Bundle is an encapsulation that consists of a list of certificates needed to authenticate an NDN Data packet. 
8
9
A Certificate Bundle packet consists of multiple certificates starting with the certificate needed to validate the original data packet, followed by the certificate needed to validate the previous certificate, and so on. The certificates in the certificate bundle appear in the order in which they are needed for validation. A certificate bundle may have many segments if the list of certificates exceed the maximum packet size. Each segment will always have complete certificates.
10
11
The Certificate Bundle packet uses DigestSha256 signature which provides no provenance of the packet and is intended to protect against any unexpected modifications.
12
13
The Certificate Bundle Data packet is a TLV defined as follows: 
14
15
~~~
16
CertificateBundle ::= DATA-TYPE TLV-LENGTH
17
				        Name
18
				        MetaInfo 
19
				        BundleContent
20
				        Signature 
21
22
BundleContent ::= CONTENT-TYPE TLV-LENGTH
23
                  		Certificate+
24
~~~
25
26
The list of certificates in the BundleContent SHOULD be in the following order - the certificate to validate the target data packet, followed by the certificate to validate the first certificate and so on.
27
28
## Naming Conventions 
29
30
The name of the Certificate Bundle is an extension of the name of the target data packet which is to be verified. It starts with the associated name followed by a special name component “BUNDLE”, indicating that the content is a Certificate Bundle. After the BUNDLE component, there is a version number because it’s possible that the Certificate Bundle is updated. The last component of the Certificate Bundle name is a segment number in case the Certificate Bundle is too big to fit in one data packet. Note that the segment number 0 is present in the name of the first segment of Certificate Bundle even if there is only one segment of the bundle. 
31
32
Hence the naming convention for the Certificate Bundle is as follows: 
33
34
	/<derived(data_name)>/BUNDLE/<trust-model>/<version>/<seg>
35
36
where the derived(data_name) is determined by the trust schema rules. 
37
38
Well-known rules:
39
40
~~~
41
       1. If last name component in data_name is segment number, then
42
43
                    derived(data_name) = data_name.getPrefix(-1)
44
45
       2. If last name component is Implicit Digest , then
46
47
                    If second last name component is segment number, then 
48
     		             derived(data_name) = data_name.getPrefix(-2) 
49
                    Else 
50
	                     derived(data_name) = data_name.getPrefix(-1)
51
~~~