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 |  |
||
| 6 | 4 | Suravi Regmi | |
| 7 | 3 | Suravi Regmi | --- |
| 8 | |||
| 9 | 1 | Suravi Regmi | |
| 10 | 4 | Suravi Regmi | ## Trust Model |
| 11 | 3 | Suravi Regmi |  |
| 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`. |