NAC-ABE Design » History » Version 9
Suravi Regmi, 11/24/2025 08:42 PM
| 1 | 7 | Suravi Regmi | # NAC-ABE |
|---|---|---|---|
| 2 | 1 | Suravi Regmi | |
| 3 | 3 | Suravi Regmi | |
| 4 | 7 | Suravi Regmi | ### NAC-ABE in mGuard |
| 5 | 3 | Suravi Regmi | NAC-ABE implements name-based access control using two layers: |
| 6 | |||
| 7 | 1. **Symmetric encryption of data** using Content Key (CK). |
||
| 8 | 2. **ABE encryption of CK** using AA-issued public parameters and consumer policies. |
||
| 9 | |||
| 10 | Data is encrypted with a CK, and the CK itself is encrypted under ABE so that only authorized consumers holding a matching Decryption Key (DKEY) can recover it. |
||
| 11 | The Attribute Authority (AA) publishes public parameters and issues DKEYs, while NAC-ABE producers generate CKs and encrypted data using these parameters. |
||
| 12 | |||
| 13 | This removes the need for any online authorization server during data fetch and enables cryptographically enforced access control at the packet level. |
||
| 14 | |||
| 15 | --- |
||
| 16 | 7 | Suravi Regmi | ### Why KP-ABE |
| 17 | 1 | Suravi Regmi | |
| 18 | 7 | Suravi Regmi | mGuard adopts KP-ABE because it removes all producer-side dependency on access-control decisions. |
| 19 | 1 | Suravi Regmi | |
| 20 | 7 | Suravi Regmi | In KP-ABE: |
| 21 | - The producer attaches a vector attribute to each CK. |
||
| 22 | - The consumer’s DKEY contains the policy created by the AA. |
||
| 23 | - Decryption succeeds when the policy prefix matches the CK attribute. |
||
| 24 | - The producer never needs to know who will access the data or what policy applies. |
||
| 25 | 1 | Suravi Regmi | |
| 26 | 7 | Suravi Regmi | This makes KP-ABE ideal for mGuard because: |
| 27 | - Access rights can change without re-encrypting any CKs or data. |
||
| 28 | - New users can be added simply by issuing new DKEYs. |
||
| 29 | - Producers remain lightweight and stateless regarding authorization. |
||
| 30 | 4 | Suravi Regmi | |
| 31 | 7 | Suravi Regmi | KP-ABE gives mGuard flexible, prefix-based authorization that works entirely at the consumer, eliminating the re-encryption burden of CP-ABE. |
| 32 | CP-ABE → policy in ciphertext → requires re-encrypting CKs when access changes → old NAC-ABE |
||
| 33 | KP-ABE → attributes in ciphertext, policy in DKEY → no re-encryption → current Implementation |
||
| 34 | |||
| 35 | 4 | Suravi Regmi | --- |
| 36 | |||
| 37 | 1 | Suravi Regmi | ### Certificates |
| 38 | |||
| 39 | 4 | Suravi Regmi | NAC-ABE uses two distinct certificates, each serving a different purpose in the trust and encryption pipeline. |
| 40 | #### Stream Certificate |
||
| 41 | The stream certificate defines the namespace and identity under which CKs and encrypted data are published. NAC-ABE derives CK names from this certificate: |
||
| 42 | |||
| 43 | ``` c |
||
| 44 | /<stream-identity>/CK/<random>/ENC-BY/<attributes>/seg=i |
||
| 45 | ``` |
||
| 46 | 3 | Suravi Regmi | Encrypted data packets are also named under the same identity prefix. This ensures that each stream's data and CKs are isolated and validated using the stream's trust chain. |
| 47 | 7 | Suravi Regmi | All CK and encrypted data packets are signed according to the stream’s identity chain. |
| 48 | 3 | Suravi Regmi | |
| 49 | #### Attribute Authority (AA) Certificate |
||
| 50 | |||
| 51 | The AA certificate anchors the ABE trust domain. It is used to validate: |
||
| 52 | - Public Parameters (PUBPARAMS) |
||
| 53 | - AA KEY packets |
||
| 54 | - Any ABE-related metadata |
||
| 55 | - The AA certificate ensures that only authenticated parameters are used for CK generation and that consumers can trust the DKEYs they receive. |
||
| 56 | |||
| 57 | --- |
||
| 58 | |||
| 59 | 9 | Suravi Regmi | ### ABE Encryption of CK |
| 60 | 3 | Suravi Regmi | |
| 61 | 8 | Suravi Regmi |  |
| 62 | 3 | Suravi Regmi | --- |
| 63 | |||
| 64 | 1 | Suravi Regmi | |
| 65 | 5 | Suravi Regmi | --- |
| 66 | ### Content Key (CK) |
||
| 67 | A CK is the symmetric key used to encrypt data. CK rotation frequency determines access-control precision. A user can only decrypt data encrypted with CKs they are authorized for. |
||
| 68 | |||
| 69 | 7 | Suravi Regmi | #### CK Granularity |
| 70 | 5 | Suravi Regmi | - **Second-level:** maximum precision, very high overhead |
| 71 | 3 | Suravi Regmi | - **Minute-level:** balanced precision vs cost |
| 72 | 5 | Suravi Regmi | - **Hour-level:** minimal overhead, coarse control |
| 73 | Granularity determines access-control precision and system cost. |
||
| 74 | 3 | Suravi Regmi | |
| 75 | 7 | Suravi Regmi | **CK vs Access-Control Granularity** |
| 76 | 5 | Suravi Regmi | CK granularity must be **equal to or finer than** the access-control granularity. |
| 77 | |||
| 78 | | Access Control ↓ / CK → | second | minute | hour | |
||
| 79 | |--------------------------|--------|--------|------| |
||
| 80 | 1 | Suravi Regmi | | second | ✔️ | ❌ | ❌ | |
| 81 | 5 | Suravi Regmi | | minute | ✔️ | ✔️ | ❌ | |
| 82 | 1 | Suravi Regmi | | hour | ✔️ | ✔️ | ✔️ | |
| 83 | 5 | Suravi Regmi | |
| 84 | 7 | Suravi Regmi | Rule: CK granularity cannot be coarser than the authorization window. |
| 85 | 5 | Suravi Regmi | |
| 86 | 7 | Suravi Regmi | **CK Reuse Tradeoffs** |
| 87 | **High reuse (minute/hour):** fewer CK packets, low cost; coarse control. |
||
| 88 | 5 | Suravi Regmi | **Low reuse (second):** fine-grain control; many CKs, high overhead. |
| 89 | 1 | Suravi Regmi | |
| 90 | 7 | Suravi Regmi | **Implementation Note** |
| 91 | 2 | Suravi Regmi | Most encryption overhead is CK generation, not data encryption; finer CK granularity increases load. |
| 92 | |||
| 93 | 7 | Suravi Regmi | --- |
| 94 | ### End-to-End Flow |