Confidential
Interest-Based Access Control in CCN
Cesar Ghali, Marc A. Schlosberg, Gene Tsudik, Christopher A. Wood
Department of Computer Science University of California Irvine woodc1@uci.edu
Interest-Based Access Control in CCN Cesar Ghali, Marc A. - - PowerPoint PPT Presentation
Interest-Based Access Control in CCN Cesar Ghali, Marc A. Schlosberg, Gene Tsudik, Christopher A. Wood Department of Computer Science University of California Irvine woodc1@uci.edu Confidential Agenda 1. Introduction and Access Control
Confidential
Cesar Ghali, Marc A. Schlosberg, Gene Tsudik, Christopher A. Wood
Department of Computer Science University of California Irvine woodc1@uci.edu
2
producers to consumers upon request
3
name of a Content Object content object with name set of consumers authorized to access content with name complement of the above group of consumers
4
N
Question: How to ensure that only authorized users access a content
decrypt content they retrieve
they are authorized to access
5
Main Idea: If then should not be able to decrypt
proposed (see [2]):
6
CO [N]
[1] Smetters, Diana, Philippe Golle, and Jim Thornton. CCNx Access Control Specifications. Technical report, PARC, 2010. [2] Kurihara, Jun, C. Wood, and Ersin Uzun. “An Encryption-Based Access Control Framework for Content-Centric Networking.” IFIP, 2015.
Cr / ∈ U(N)
Cr
7
Header [/a/b/c] Payload ValidationSection Content Object
8
Header [/a/b/c] Payload ValidationSection Content Object Header [/a/b/c] Payload ValidationSection Content Object Enc(k, payload)
9
Header [/a/b/c] Payload ValidationSection Content Object Header [/a/b/c] Payload ValidationSection Content Object Enc(k, payload) Header [/a/b/c/k] Payload ValidationSection Content Object
Main Idea: If then should not be able to construct a correct interest for Implication: Interest names should depend on a secret that only authorized consumers know
10
CO [N]
Cr / ∈ U(N)
Cr
11
Header [/a/b/c] Payload ValidationSection Content Object
12
Header [/a/b/c] Payload ValidationSection Content Object Header [/a/b/c] Payload ValidationSection Content Object Enc(k, name)
suffix
… why not do both?
13
14
Header [/a/b/c] Payload ValidationSection Content Object Header [/a/b/c] Payload ValidationSection Content Object Enc(k2, payload) Header [/a/b/c/k] Payload ValidationSection Content Object Header [/a/b/c]
suffix Header [/a/b/c/k]
suffix Enc(k1, name)
IBAC is about obfuscating the name (the payload may also be encrypted…) Security means: an adversary without the (group) secret cannot generate the same obfuscated name Let be the set of all routers on the path between and Assume who can deploy and compromise any unauthorized consumer or any router
15
Path(Cr, P)
Cr
P
R / ∈ Path(Cr, P)
Adv
The goal of IBAC is to make the name of a content object available under the name for some obfuscation function At least two ways to do this:
Note: the obfuscation function only masks the suffix of a name — not the routable prefix
16
N
N 0 = f(N)
f
where is the private key associated with an authorized
17
Cr
Question 1: What if we want group-based access control, i.e., where consumers in the same group generate the same obfuscated name? (One) Answer: Consumers in group share the encryption key
18
G
Question 1: What if we want group-based access control, i.e., where consumers in the same group generate the same obfuscated name? (One) Answer: Consumers in group share the encryption key Question 2: How does a producer identify the correct decryption key for content? (One) Answer: Include the group identifier in the payload of each interest, e.g.,
19
G
IDG = H(kG)
P
Question 3: How to prevent likability of multiple interests with the same ? (One) Answer: Encrypt the identifiers using the publisher’s public key
20
IDG
pkP
IDG = Enc(pkP , H(kG))
P
where is the same shared group key
21
N 0 = H(k, N)
where is the same shared group key Introduces more state since a producer must be able to invert to discover
22
N 0 = H(k, N)
N
What about on-path attackers?…
23
24
C R P 1) issue interest I for IBAC-protected content with name N 2) Cache IBAC-protected content CO[N] 3) Consume content CO[N] I[N] I[N] CO[N] CO[N]
25
26
Any (on-path) adversary can observe an obfuscated interest, replay it, and get the same content Replay prevention:
27
Payload = ⇣ IDG, r, t, σ = Signsks
G (N 0||IDG||r||t)
⌘
Question: How can a router check if a given (cached) content object should be returned in response to an interest? Answer: Verify an authenticator in interests (e.g., a digital signature)
28
Question: How can a router check if a given (cached) content object should be returned in response to an interest? Answer: Verify an authenticator in interests (e.g., a digital signature) Question: How does a router know what key(s) to use for verification? Answer: Follow the authorized content key binding (ACKB) rule:
29
ACKB: Cached content protected under IBAC must reflect the verification key associated with the authorization policy.
30
P
verification key
31
32
33
routers incur no added overhead
must:
timestamps
34
35
Fraction I
information must be included in interests.
authorization information is sufficient.
36
37
38