890 likes | 1.06k Views
Type Based Distributed Access Control. Tom Chothia È c ole Polytechnique Joint work with Dominic Duggan (Stevens) and Jan Vitek (Purdue). Motivation. Our aim is to use types to place conditions on how data may be distributed. Motivation.
E N D
Type Based Distributed Access Control Tom Chothia Ècole Polytechnique Joint work with Dominic Duggan (Stevens) and Jan Vitek (Purdue)
Motivation • Our aim is to use types to place conditions on how data may be distributed.
Motivation • Our aim is to use types to place conditions on how data may be distributed. • Consider a computer with public and private data:
Motivation • Our aim is to use types to place conditions on how data may be distributed. • Consider a computer with public and private data:
Motivation • Our aim is to use types to place conditions on how data may be distributed. • Consider a computer with public and private data:
Motivation • Our aim is to use types to place conditions on how data may be distributed. • Consider a computer with public and private data:
Motivation • Our aim is to use types to place conditions on how data may be distributed. • Consider a computer with public and private data:
Talk outline • Review: Decentralized Label Model (DLM) • Local Access Control • Key Based Decentralized Label Model (KDLM) • Distributed Access Control and Cryptography • The Jeddak Language • Conclusions
Local Access Control • Local Access Control restricts access to data.
Local Access Control • Local Access Control restricts access to data. • Any read or write attempts are dynamically checked.
Local Access Control • Local Access Control restricts access to data. • Any read or write attempts are dynamically checked. • There are no restrictions on authorized copies of data.
High and Low security types. Types for Information Flow high low
High and Low security types. No read up. No write Down. Types for Information Flow high low
High and Low security types. No read up. No write Down. A Total Order high low Types for Information Flow
High and Low security types. No read up. No write Down. A Total Order. Even a lattice. Types for Information Flow high low
Secrecy duel to Integrity. Declassification? Types for Information Flow high low
Types for information Flow • x: int high; y: int low; • Can do: x = x +2 ; x = y + 2; if x > y then x = y; • Can’t do: y = x; if x > y then y = 0; if guess = pwd then reject;
J.I.F. and theDecentralized Label Model (DLM) • Program variable x • Has data typeint • Has label with policies • Bob : {bob, jane, mike} • Mary : {bob, jane, mary} • Is accessible by bob and jane • Access control checked by type checking
DLM, bottom half of lattice. No one has an automatic right to read your data. DLM Types for Information Flow Alice Eve Bob
Declassification in the DLM • Data has type {L1, L2, L3} int Jane Bob Mary Tim
Declassification in the DLM • Data has type {L1, L2, L3} int • L1 = bob : { bob, jane } Jane Bob Mary Tim
Declassification in the DLM • Data has type {L1, L2, L3} int • L1 = bob : { bob, jane } • L2 = mary : { bob, jane, mary } Jane Bob Mary Tim
Declassification in the DLM • Data has type {L1, L2, L3} int • L1 = bob : { bob, jane } • L2 = mary : { bob, jane, mary } • L3 = jane : { jane, tim} Jane Bob Mary Tim
Declassification in the DLM • Data has type {L1, L2, L3} int • L1 = bob : { bob, jane } • L2 = mary : { bob, jane, mary } • L3 = jane : { jane, tim} • Only Jane can access data Jane Bob Mary Tim
Declassification in the DLM • Data has type {L1, L2, L3} int • L1 = bob : { bob, jane } • L2 = mary : { bob, jane, mary } • L3 = jane : { jane, tim} • Only Jane can access data • L3 jane : { jane, tim, bob} Jane Bob Mary Tim
Declassification in the DLM • Data has type {L1, L2, L3} int • L1 = bob : { bob, jane } • L2 = mary : { bob, jane, mary } • L3 = jane : { jane, tim} • Only Jane can access data • L3 jane : { jane, tim, bob} • Now Jane and Bob can access the data Jane Bob Mary Tim
DLM • Data is protected by its type.
DLM • Data is protected by its type. • Each attempt to copy data is statically checked at compile time.
DLM • Data is protected by its type. • Each attempt to copy data is statically checked at compile time. • Copies of data have the same type and hence the same protection.
DLM • Data is protected by its type. • Each attempt to copy data is statically checked at compile time. • Copies of data have the same type and hence the same protection. • Data sent outside the type checked area is no longer protected.
Talk outline • Review: Decentralized Label Model (DLM) • Local Access Control • Key Based Decentralized Label Model (KDLM) • Distributed Access Control and Cryptography • The Jeddak Language • Conclusions
Minimize the Trusted Computing Base DLM Application Protocol Network
Communication Security Communication Minimize the Trusted Computing Base DLM Application Protocol Network
Application Communication Security Communication Security Communication Communication Network Minimize the Trusted Computing Base DLM KDLM Application Protocol Network
KDLM: Connecting Keys and Access Restrictions • Key names have policies (ACLs) • K has policy: Joe : {Jane, Mike, Sam} • Public-private key pair for key name • Private key protected by access restrictions • Labels are sets of key names • Access restricted to intersection of policies (ACLs)
Keys, Labels and Certificates Key & Policy: K : Key[ bob : {mary,sam,bob} ] Label: {K1, K2, … ,Kn} Labeled Type: T{K1,..,Kn} , {K1’,..,Km’} Declassification Cert Types: K1 declassifies K2 K1K2
KDLM • As with the DLM data is protected by its type.
KDLM • As with the DLM data is protected by its type.
KDLM • As with the DLM data is protected by its type. • But the data can also be protected by encryption.
KDLM • As with the DLM data is protected by its type. • But the data can also be protected by encryption. • Encryption protects data leaving the trusted area.
KDLM • As with the DLM data is protected by its type. • But the data can also be protected by encryption. • Encryption protects data leaving the trusted area. • Keys are protected in the same way as data.
Labeled Keys • K : Key ( P:{P1,…,Pk} ) • a+ : [ EncKey ( K ) ] • a- : [ DecKey ( K ) ] L • Key names exist at the type level.
K:A,B K:A,B KDLM Bob Alice K
K:A,B K:A,B KDLM Bob Alice K
K:A,B K:A,B KDLM Bob Alice K
K:A,B K:A,B KDLM Bob Alice K
K:A,B K:A,B KDLM Bob Alice K K
Bob Alice K:A,B K:A,B K Eve KDLM