Project

General

Profile

Trust Model » History » Version 9

Suravi Regmi, 11/25/2025 09:25 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 7 Suravi Regmi
## Component identities
16 1 Suravi Regmi
17 9 Suravi Regmi
### Root / Site CA
18 5 Suravi Regmi
**Identity:** `/ndn/md2k`
19
**Type:** Self-signed root CA
20
**Trust Anchor:** `md2k-trust-anchor.ndncert`
21 1 Suravi Regmi
22 9 Suravi Regmi
All components ultimately chain to this root.Consumers load this file so they can trust any certificate issued under `/ndn/md2k`.
23 5 Suravi Regmi
24 9 Suravi Regmi
**Identities Signed by the Root CA**
25 5 Suravi Regmi
26
The root `/ndn/md2k` signs:
27 1 Suravi Regmi
28
- `/ndn/md2k/mguard/controller`
29 5 Suravi Regmi
- `/ndn/md2k/mguard/aa`
30
- `/ndn/md2k/mguard/dd40c` (producer)
31
- All consumer identities (example: `/ndn/md2k/adam`)
32 1 Suravi Regmi
33 9 Suravi Regmi
Defines the trust boundary.​
34
35 1 Suravi Regmi
---
36
37
38 9 Suravi Regmi
### Controller (/ndn/md2k/mguard/controller)​
39
40
* Signs **POLICYDATA.** ​
41
* Issues policy decisions (who can access what).​
42
* Does not decrypt or validate ABE content.
43
44
### Attribute Authority (AA) (/ndn/md2k/mguard/aa)​
45
46
* Signs **PUBPARAMS.​**
47
* Generates and signs ** DKEYs**  (consumer ABE private keys).​
48
* Only entity holding ABE master secret.​
49
50
---
51
52
### Producer (/ndn/md2k/mguard/dd40c)​
53
Signs and serves  stream certificates.​
54
55 1 Suravi Regmi
The producer identity `/ndn/md2k/mguard/dd40c` signs all stream identities:
56
57
- `/ndn/md2k/mguard/dd40c/phone/accelerometer`
58
- `/ndn/md2k/mguard/dd40c/phone/gyroscope`
59
- `/ndn/md2k/mguard/dd40c/phone/gps`
60
- `/ndn/md2k/mguard/dd40c/phone/battery`
61
- `/ndn/md2k/mguard/dd40c/data_analysis/gps_episodes_and_semantic_location`
62
63 5 Suravi Regmi
These stream identities are used to sign **manifests**, **encrypted DATA**, and **CK packets**.
64
65 9 Suravi Regmi
**Producer validates:**
66 1 Suravi Regmi
- AA public parameters (`/aa/PUBPARAMS`)
67 4 Suravi Regmi
68 9 Suravi Regmi
**Publishes:​**
69
* Encrypted DATA (digest-signed for NAC-ABE)​
70
* CK Data (digest-signed)​
71
* MANIFESTS (RSA-signed)​
72 4 Suravi Regmi
73 9 Suravi Regmi
**Producer serves:**
74 4 Suravi Regmi
- Producer certificate  
75
- All stream certificates  
76
77
---
78
79 9 Suravi Regmi
### Stream Identities (/ndn/md2k/mguard/dd40c/phone/…)​
80 4 Suravi Regmi
81 9 Suravi Regmi
* Used to sign RSA-signed objects (manifest).​
82
* metadata, DATA, CK(handled by nac-abe)​
83
* Each stream has its own identity and cert.
84
85
---
86
87
### Consumer (e.g./ndn/md2k/adam)​
88
**Consumer validates:**
89 4 Suravi Regmi
- AA parameters (RSA)
90
- DKEY segments (RSA)
91
- Controller POLICYDATA (RSA)
92
- Stream manifests (RSA)
93
- CK packets (digest)
94
- Encrypted data segments (digest)
95
96
All rules validated using the consumers trust schema.
97
98
Consumer decrypts:
99
1. Encrypted application DATA → extract CK name  
100
2. Fetch CK → decrypt with DKEY  
101
3. Decrypt DATA using CK
102
103
104
The consumer uses three rules:
105
106
1. **AA public parameters and DKEY validation**  
107
   `/ndn/md2k/mguard/aa/*` signed by AA (RSA), chaining to root.
108
109
2. **Controller POLICYDATA replies**  
110
   `/ndn/md2k/mguard/controller/*` signed by controller (RSA), chaining to root.
111
112
3. **Stream and producer content**  
113
   `/ndn/md2k/mguard/dd40c/*`  
114
   Allows:
115
   - `sha256` (digest) for encrypted DATA, CK, metadata  
116
   - `rsa-sha256` for manifests, stream certs  
117
   KeyLocator must be a prefix of the Data name.
118
119 1 Suravi Regmi
All validations ultimately chain back to `/ndn/md2k`.