Confidential
Secure Fragmentation for Content Centric Networking
Christopher A. Wood Palo Alto Reseach Center cwood@parc.com Marc Mosko Palo Alto Reseach Center mmosko@parc.com
IEEE CCN 2015 Dallas, TX, USA 10/19/2015
Secure Fragmentation for Content Centric Networking Christopher A. - - PowerPoint PPT Presentation
Secure Fragmentation for Content Centric Networking Christopher A. Wood Palo Alto Reseach Center cwood@parc.com Marc Mosko Palo Alto Reseach Center mmosko@parc.com IEEE CCN 2015 Dallas, TX, USA 10/19/2015 Confidential Agenda 1. CCNx
Confidential
Christopher A. Wood Palo Alto Reseach Center cwood@parc.com Marc Mosko Palo Alto Reseach Center mmosko@parc.com
IEEE CCN 2015 Dallas, TX, USA 10/19/2015
2
3
to consumers upon request
(PITs) store interest state, and Content Stores (caches) store previously requested content
4
5
6
7
8
9
10
11
12
13
14
15
16
The Internet connects heterogeneous devices over heterogeneous links with different:
(determined by link layer)
17
Fragmentation: splitting a packet into fragments that fit into an
fragments
18
Segmentation: cutting up large pieces of data at the transport (or higher) layer
19
How do fragmentation and segmentation apply to CCNx?
20
21
Interest Body Validation Header(s) ContentObject Body Validation Header(s)
22
Interest Body (name +payload) Validation Header(s) ContentObject Body (name +payload) Validation Header(s)
Names are unbounded Payload contents are unbounded
23
Interest Body (name +payload) Validation Header(s) ContentObject Body (name +payload) Validation Header(s)
Names are unbounded Payload contents are unbounded Names are unbounded Payload contents are unbounded
it must be segmented
24
25
26
27
28
29
30
31
32
33
34
known (among other reasons)
35
fragmentation is unavoidable
36
There are two flavors of CCNx fragmentation proposals:
37
[1] - http://datatracker.ietf.org/doc/draft-mosko-icnrg-beginendfragment/ [2] - C. Ghali, A. Narayanan, D. Oran, G. Tsudik, C. A. Wood, NCA 2015, the 14th IEEE International Symposium on Network Computing and Applications, September 28 - 30, 2015, Cambridge, MA, USA.
fragment series
numbers
38
39
indexes)
function computation to each fragment (next slide)
40
41
f" f" f" f" f"
m1# m2# m3# m4# mk# pad#
H1
"
H2
"
H3
"
H4
"
H"
Hash"Value" H0
"
42
f" f" f" f" f"
m1# m2# m3# m4# mk# pad#
H1
"
H2
"
H3
"
H4
"
Hash"Value" H0
"
43
ContentObjectSize- FragmentOffset- FragmentSize- SignatureInfo- Signature- Signature-(on-H)- Name- Data- F1#Fragment=Info- …-Data-…-
IntState-=-H0#
F2-Fragment=Info- …-Data-…- IntState-=-H1# F3#Fragment=Info- …-Data-…- IntState-=-H2#
function digest
intermediate state (IS)
44
and store in queue. If the successor is present, compare the output hash against the successor’s IS
computed IS, and do the step above.
signature, and forward the fragment.
45
46
does not specify digest in the fragment response)
47
NNF improvements over FIGOA:
48
NNF improvements over FIGOA:
49
NNF improvements over FIGOA:
50
NNF improvements over FIGOA:
51
NNF improvements over FIGOA:
52
Fragment := FixedHeader *OptionalHeader NamedFragment Payload [ValidationAlg ValidationPayload] FixedHeader := <as per CCNx 1.0 spec> OptionalHeader := <as per CCNx 1.0 spec> NamedFragment := <see right> Payload := <blocks of original content> ValidationAlg := <as per CCNx 1.0 spec> ValidationPayload := <as per CCNx 1.0 spec>
53
NamedFragment := (FragmentStart | FragmentData | SegmentStart | SegmentData | SegmentEnd) ChainData FragmentStart := Name [DigestAlg] OverallLen OverallDigest FragmentData := [Name] OverallDigest SegmentStart := Name [DigestAlg] OverallLen SegmentID SegmentData := [Name] SegmentID SegmentEnd := [Name] SegmentID OverallDigest ChainData := PayloadOffset InterState Name := <as per CCNx 1.0 spec> OverallLen := Integer SegmentID := 1*OCTET OverallDigest := 1*OCTET DigestAlg := SHA256 / <others> PayloadOffset := Integer InterState := 1*OCTET
Fragment := FixedHeader *OptionalHeader NamedFragment Payload [ValidationAlg ValidationPayload] FixedHeader := <as per CCNx 1.0 spec> OptionalHeader := <as per CCNx 1.0 spec> NamedFragment := <see below> Payload := <blocks of original content> ValidationAlg := <as per CCNx 1.0 spec> ValidationPayload := <as per CCNx 1.0 spec>
54
NamedFragment := (FragmentStart | FragmentData | SegmentStart | SegmentData | SegmentEnd) ChainData FragmentStart := Name [DigestAlg] OverallLen OverallDigest FragmentData := [Name] OverallDigest SegmentStart := Name [DigestAlg] OverallLen SegmentID SegmentData := [Name] SegmentID SegmentEnd := [Name] SegmentID OverallDigest ChainData := PayloadOffset InterState Name := <as per CCNx 1.0 spec> OverallLen := Integer SegmentID := 1*OCTET OverallDigest := 1*OCTET DigestAlg := SHA256 / <others> PayloadOffset := Integer InterState := 1*OCTET
Specification in progress…
corrupted packets (fragments)
requested over more than a single hop (link)
{Name, OverallDigest, PayloadOffset, IntermediateState}
55
56
Similar to FIGOA fragmentation logic, except:
fragment
57
58
59
3840, 7680, 16640, and 33280 bytes
chunk size
60
61
62
Write the specification for increased clarity
63
64