Project

General

Profile

Trust Model » History » Version 5

Suravi Regmi, 11/25/2025 05:27 PM

1 1 Suravi Regmi
# Trust Model
2
3 3 Suravi Regmi
## Signing chain
4
5
![](cert signing chain.png)
6 4 Suravi Regmi
7 3 Suravi Regmi
---
8
9 1 Suravi Regmi
10 4 Suravi Regmi
## Trust Model
11 3 Suravi Regmi
![trust anchor](Group 71.png)
12 1 Suravi Regmi
13
----
14
15 4 Suravi Regmi
### Component identities
16 1 Suravi Regmi
17 5 Suravi Regmi
18
## 1. Root Identity
19
20
**Root / Site CA**
21
**Identity:** `/ndn/md2k`
22
**Type:** Self-signed root CA
23
**Trust Anchor:** `md2k-trust-anchor.ndncert`
24
25
All components ultimately chain to this root.  
26
Consumers load this file so they can trust any certificate issued under `/ndn/md2k`.
27
28
---
29
30
**Identities Signed by the Root CA**
31
32
The root `/ndn/md2k` signs:
33
34
- `/ndn/md2k/mguard/controller`
35
- `/ndn/md2k/mguard/aa`
36
- `/ndn/md2k/mguard/dd40c` (producer)
37
- All consumer identities (example: `/ndn/md2k/adam`)
38
39
---
40
41
**Stream Identities Signed by the Producer**
42
43
The producer identity `/ndn/md2k/mguard/dd40c` signs all stream identities:
44
45
- `/ndn/md2k/mguard/dd40c/phone/accelerometer`
46
- `/ndn/md2k/mguard/dd40c/phone/gyroscope`
47
- `/ndn/md2k/mguard/dd40c/phone/gps`
48
- `/ndn/md2k/mguard/dd40c/phone/battery`
49
- `/ndn/md2k/mguard/dd40c/data_analysis/gps_episodes_and_semantic_location`
50
51
These stream identities are used to sign **manifests**, **encrypted DATA**, and **CK packets**.
52
53
The producer must now serve the certificates for these streams  
54
(interest filter on each stream's certificate prefix).
55
56
---
57
58 4 Suravi Regmi
**Producer Behavior**
59 1 Suravi Regmi
60 4 Suravi Regmi
Producer validates:
61
- AA public parameters (`/aa/PUBPARAMS`)
62
63
Producer signs:
64
- Stream manifests (RSA) using stream identity certificates  
65
- CK packets (digest)  
66
- Encrypted data (digest)
67
68
Producer serves:
69
- Producer certificate  
70
- All stream certificates  
71
72
Producer no longer signs manifests with its own identity;  
73
manifests are now signed by stream identities.
74
75 5 Suravi Regmi
---
76 4 Suravi Regmi
77
**Consumer Behavior**
78
79
The consumer performs the most validation.
80
81
Consumer validates:
82
- AA parameters (RSA)
83
- DKEY segments (RSA)
84
- Controller POLICYDATA (RSA)
85
- Stream manifests (RSA)
86
- CK packets (digest)
87
- Encrypted data segments (digest)
88
89
All rules validated using the consumers trust schema.
90
91
Consumer decrypts:
92
1. Encrypted application DATA → extract CK name  
93
2. Fetch CK → decrypt with DKEY  
94
3. Decrypt DATA using CK
95
96
97
The consumer uses three rules:
98
99
1. **AA public parameters and DKEY validation**  
100
   `/ndn/md2k/mguard/aa/*` signed by AA (RSA), chaining to root.
101
102
2. **Controller POLICYDATA replies**  
103
   `/ndn/md2k/mguard/controller/*` signed by controller (RSA), chaining to root.
104
105
3. **Stream and producer content**  
106
   `/ndn/md2k/mguard/dd40c/*`  
107
   Allows:
108
   - `sha256` (digest) for encrypted DATA, CK, metadata  
109
   - `rsa-sha256` for manifests, stream certs  
110
   KeyLocator must be a prefix of the Data name.
111
112
All validations ultimately chain back to `/ndn/md2k`.