Project

General

Profile

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
![](nac-abe end-to-end.png)
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