280 likes | 417 Views
Type Based Distributed Access Control. Dominic Duggan Stevens Institute of Technology Joint work with Tom Chothia (Stevens) and Jan Vitek (Purdue). Motivation. Our aim is to use types to place conditions on how data may be distributed. Consider a computer with public and private data:.
E N D
Type Based Distributed Access Control Dominic Duggan Stevens Institute of Technology Joint work with Tom Chothia (Stevens) and Jan Vitek (Purdue) D. Duggan
Motivation • Our aim is to use types to place conditions on how data may be distributed. • Consider a computer with public and private data: D. Duggan
Talk outline • Review: Decentralized Label Model (DLM) • Local Access Control • Key Based Decentralized Label Model (KDLM) • Distributed Access Control and Cryptography • Formal Semantics • Jeddak: A Language with Distributed Access Control • Conclusions and Further Work D. Duggan
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. D. Duggan
Decentralized Label Model (DLM) • Program variable x • Has 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 D. Duggan
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. D. Duggan
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 D. Duggan
Talk outline • Review: Decentralized Label Model (DLM) • Local Access Control • Key Based Decentralized Label Model (KDLM) • Distributed Access Control and Cryptography • Formal Semantics • Jeddak: A Language with Distributed Access Control • Conclusions and Further Work D. Duggan
Application Communication Security Communication Security Communication Communication Network Minimize the Trusted Computing Base DLM KDLM Application Protocol Network D. Duggan
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. D. Duggan
KDLM Bob Alice Eve D. Duggan
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) D. Duggan
B A B A KDLM: Declassifying Encrypted Data Alice Bob A D. Duggan
K3 K1 Declassification in the KDLM K3 has policy jane : {jane } K2 has policy:mary : {bob,jane,mary} Jane creates certificate for Bob: K1 declassifies K3 K1 has policy: bob : {bob, jane} Bob Jane K3 K1 K2 K1 K2 Mary {K1, K2, K3} Encrypted(int) K2 D. Duggan
Declassification Certificates Key & Policy: K : skey[ bob : {mary,sam,bob} ] Label: {K1, K2, … ,Kn} Labelled Type: T{K1, K2, …,Kn} Declassification Cert Types: K1 declassifies K2 K1K2 D. Duggan
Talk outline • Review: Decentralized Label Model (DLM) • Local Access Control • Key Based Decentralized Label Model (KDLM) • Distributed Access Control and Cryptography • Formal Semantics • Jeddak: A Language with Distributed Access Control • Conclusions and Further Work D. Duggan
Arities, Kinds A ::= Prin A ::= SKeyF[P:{P1…Pk}] A ::= IKeyF[P:{P1…Pk}] A::= Type Flags F ::= Virtual F ::= Actual Key names, Principals, Types K,P,T ::= k, p, t K,P,T ::= DecKeyK K,P,T ::= EncKeyK K,P,T ::= AuthKeyK K,P,T ::= SignKeyK K,P,T ::= K1 reclassifies K2 K,P,T ::= E{LT} K,P,T ::= S{LT} K,P,T ::= ChanLT K,P,T ::= t:A LT L ::= {K1,…,Km} LT ::= [T]L1,L2 Kinds, Types, Labels D. Duggan
E ::= newKey k:A {e} E ::= newKey k:A (a+:LT1, a-:LT2) {e} E ::= reclassifyCertK1,K2() E ::= reclassifyCertK1,K2(e) E ::= chainK1,K2,K3(e1,e2) E ::= encryptK(e1,….,ek,e) E ::= decryptK1,K2(e1,…,ek,e) E ::= signK1,K2(e1,…,ek,e) E ::= authK(e1,…,ek,e) E ::= x, y, z, w E ::= a, b, c, n E ::= new(n:LT){e} E ::= fork{e} E ::= send(e1,e2) E ::= receive(a) E ::= reclassifyK1,K2(e1,e2) E ::= packt:ALT(K,e) E ::= unpack e1 to k:A(x:LT){e2} Expressions D. Duggan
Types, Principals, Key Names type skey[P:{P1…Pk}] prin decKeyK K encKeyK P int k- 3 k+
Key Names • Basically names of policies P:{P1,…,Pk} • Exist at the type level • May be: • Actual, i.e., associated public-private key pair at run-time • Virtual, i.e., only compile-time D. Duggan
Why Key-Based DLM? • Suppose we added reclassification certs to DLM e1 has label {Joe:{Mary,Sue}} e2 has label {Joe:{Mary,Sue}} • Joe can declassify e1’s label: declassify ({Joe:{Mary,Sue,Sam}}, e1) • Suppose Joe issues certificate: Joe:{Mary,Sue,Sam} declassifies Joes:{Mary,Sue} • Then e2 can also be declassified! D. Duggan
Why Key-Based DLM? • Some form of structural equivalence/inclusion on labels is still needed e1 has label L1 e2 has label L2 e ? e1 : e2 has label L1 L2 • Who would own result label if it was named? D. Duggan
Talk outline • Review: Decentralized Label Model (DLM) • Local Access Control • Key Based Decentralized Label Model (KDLM) • Distributed Access Control and Cryptography • Formal Semantics • Jeddak: A Language with Distributed Access Control • Conclusions and Further Work D. Duggan
Jeddak • Extends Java with • Principals • Key names • Labels and policies D. Duggan
Talk outline • Review: Decentralized Label Model (DLM) • Local Access Control • Key Based Decentralized Label Model (KDLM) • Distributed Access Control and Cryptography • Formal Semantics • Jeddak: A Language with Distributed Access Control • Conclusions and Further Work D. Duggan
Summary • KDLM for Distributed Access Control • Benefit of Type-Based Approach: Access Checking at compile-time • Lightweight access control for accountable systems • Extended to “compile-time” crypto D. Duggan
Related Work • Information flow and type systems • Denning • Volpano and Smith • Pottier (Flow Caml) • Information flow and access control • Stoughton • Heintze and Riecke, • Myers, Liskov (DLM) • Myers, Zdancewic (JIF) • Banerjee and Naumann • Types and security protocols • Abadi • Gordon and Jeffreys • Pierce and Li • Duggan (Crypto Types) D. Duggan
Questions? D. Duggan