Type Based Distributed Access Control Tom Chothia È cole Polytechnique Joint work with Dominic Duggan (Stevens) and Jan Vitek (Purdue)

Slides:



Advertisements
Similar presentations
Challenges for Information-flow Security* Steve Zdancewic University of Pennsylvania * This talk is an attempt to be provocative and controversial.
Advertisements

Building Secure Distributed Systems The CIF model : Component Information Flow Lilia Sfaxi DCS Days - 26/03/2009.
SECURITY AND VERIFICATION Lecture 4: Cryptography proofs in context Tamara Rezk INDES TEAM, INRIA January 24 th, 2012.
Untrusted Hosts and Confidentiality: Secure Program Partitioning Steve Zdancewic Lantian Zheng Nathaniel Nystrom Andrew Myers Cornell University.
A URA: A language with authorization and audit Steve Zdancewic University of Pennsylvania HCSS 2008.
Using Multi-Encryption to Provide Secure and Controlled Access to XML Documents Tomasz Müldner, Jodrey School of Computer Science, Acadia University, Wolfville,
Luu Anh Tuan. Security protocol Intruder Intruder behaviors Overhead and intercept any messages being passed in the system Decrypt messages that are.
Ashish Kundu CS590F Purdue 02/12/07 Language-Based Information Flow Security Andrei Sabelfield, Andrew C. Myers Presentation: Ashish Kundu
Mar 19, 2002Mårten Trolin1 This lecture On the assignment Certificates and key management SSL/TLS –Introduction –Phases –Commands.
JFlow: Practical Mostly-Static Information Flow Control Andrew C. Myers.
CSCI283 Fall 2005 GWU All slides from Bishop’s slide set Public Key Infrastructure (PKI)
Lecture III : Communication Security, Services & Mechanisms Internet Security: Principles & Practices John K. Zao, PhD SMIEEE National Chiao-Tung University.
Information Flow, Security and Programming Languages Steve Steve Zdancewic.
Quantum Cryptography Qingqing Yuan. Outline No-Cloning Theorem BB84 Cryptography Protocol Quantum Digital Signature.
Steve Zdancewic ESOP011 Secure Information Flow and CPS Steve Zdancewic Joint work with Andrew Myers Cornell University.
Co-operative Private Equality Test(CPET) Ronghua Li and Chuan-Kun Wu (received June 21, 2005; revised and accepted July 4, 2005) International Journal.
Key Management public-key encryption helps address key distribution problems have two aspects of this: –distribution of public keys –use of public-key.
Distributed Systems1 Lecture 12: RSA Distributed Systems2 Plan for today: Introduce RSA and a toy example using small numbers. This is.
1 Enforcing Confidentiality in Low-level Programs Andrew Myers Cornell University.
Chap 3: Key exchange protocols In most systems, we distinguish the short term keys from the long term ones: –A short term key (session key) is used to.
Decentralized Robustness Stephen Chong Andrew C. Myers Cornell University CSFW 19 July 6 th 2006.
6/20/ :09 PM Information Flow James Hook CS 591: Introduction to Computer Security.
Modelling and Analysing of Security Protocol: Lecture 1 Introductions to Modelling Protocols Tom Chothia CWI.
Polyglot: An Extensible Compiler Framework for Java Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers Presentation by Aaron Kimball & Ben Lerner.
Robust Declassification Steve Zdancewic Andrew Myers Cornell University.
Secret-Key Agreement without Public-Key Cryptography Security Seminars Kulesh Shanmugasundaram.
Security 2 Distributed Systems Lecture# 15. Overview Cryptography Symmetric Assymeteric Digital Signature Secure Digest Functions Authentication.
Type-Based Distributed Access Control Tom Chothia, Dominic Duggan, and Jan Vitek Presented by Morgan Kleene.
Security Management.
Automatic Implementation of provable cryptography for confidentiality and integrity Presented by Tamara Rezk – INDES project - INRIA Joint work with: Cédric.
Security Protocols in Automation Dwaine Clarke MIT Laboratory for Computer Science January 8, 2002 With help from: Matt Burnside, Todd.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
Pretty Good Privacy by Philip Zimmerman presented by: Chris Ward.
ECE453 – Introduction to Computer Networks Lecture 18 – Network Security (I)
Lecture 19 Page 1 CS 111 Online Symmetric Cryptosystems C = E(K,P) P = D(K,C) E() and D() are not necessarily the same operations.
Language-Based Information-Flow Security Richard Mancusi CSCI 297.
Authentication and Authorization Authentication is the process of verifying a principal’s identity (but how to define “identity”?) –Who the person is –Or,
Containment and Integrity for Mobile Code Security policies as types Andrew Myers Fred Schneider Department of Computer Science Cornell University.
Symmetric versus Asymmetric Cryptography. Why is it worth presenting cryptography? Top concern in security Fundamental knowledge in computer security.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Language-Based Information- Flow Security Andrei Sabelfeld.
Public-Key Cryptography CS110 Fall Conventional Encryption.
CSCD 218 : DATA COMMUNICATIONS AND NETWORKING 1
A Bipartite Graph Model of Information Flow IFIP WG 2.3, May 2014 Gary T. Leavens (with John L. Singleton) University of Central Florida Orlando Florida.
Chapter 31 Cryptography And Network Security Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
New Cryptographic Techniques for Active Networks Sandra Murphy Trusted Information Systems March 16, 1999.
Containment and Integrity for Mobile Code End-to-end security, untrusted hosts Andrew Myers Fred Schneider Department of Computer Science Cornell University.
SECURE WEB APPLICATIONS VIA AUTOMATIC PARTITIONING S. Chong, J. Liu, A. C. Myers, X. Qi, K. Vikram, L. Zheng, X. Zheng Cornell University.
Security (and privacy) Larry Rudolph With help from Srini Devedas, Dwaine Clark.
Chapter 3 (B) – Key Management; Other Public Key Cryptosystems.
The TAOS Authentication System: Reasoning Formally About Security Brad Karp UCL Computer Science CS GZ03 / M th November, 2008.
Lecture 16: Security CDK4: Chapter 7 CDK5: Chapter 11 TvS: Chapter 9.
1 Introduction The State of the Art in Electronic Payment Systems, IEEE Computer, September 1997.
1 Needham-Schroeder A --> S: A,B, N A S --> A: {N A,B,K AB,{K AB,A} KBS } KAS A --> B:{K AB,A} KBS B --> A:{N B } KAB A --> B:{N B -1} KAB.
1 Hello World and Welcome to The simple crypt Key=23 {txzr7c x7Cr 7d~zg{r 7tengc Private-key Cryptography.
Network Security Continued. Digital Signature You want to sign a document. Three conditions. – 1. The receiver can verify the identity of the sender.
Key Management. Authentication Using Public-Key Cryptography  K A +, K B + : public keys Alice Bob K B + (A, R A ) 1 2 K A + (R A, R B,K A,B ) 3 K A,B.
Protocol Analysis. CSCE Farkas 2 Cryptographic Protocols Two or more parties Communication over insecure network Cryptography used to achieve goal.
1 Session 4 Module 6: Digital signatures. Digital Signatures / Session4 / 2 of 18 Module 4, 5 - Review (1)  Java 2 security model provides a consistent.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Decentralized Information Flow A paper by Myers/Liskov.
Fall 2006CS 395: Computer Security1 Key Management.
1 Chapter 3-3 Key Distribution. 2 Key Management public-key encryption helps address key distribution problems have two aspects of this: –distribution.
Enabling Control over Adaptive Program Transformation for Dynamically Evolving Mobile Software Validation Mike Jochen, Anteneh Anteneh, Lori Pollock University.
Language-Based Information- Flow Security (Sabelfeld and Myers) “Practical methods for controlling information flow have eluded researchers for some time.”
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style JFlow: Practical Mostly-Static Information Flow Control.
SECURITY. Security Threats, Policies, and Mechanisms There are four types of security threats to consider 1. Interception 2 Interruption 3. Modification.
Pertemuan #8 Key Management Kuliah Pengaman Jaringan.
Paper Reading Group:. Language-Based Information-Flow Security. A
CDK4: Chapter 7 CDK5: Chapter 11 TvS: Chapter 9
به نام آنکه هستی نام از او یافت
CDK: Chapter 7 TvS: Chapter 9
Presentation transcript:

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. Our aim is to use types to place conditions on how data may be distributed.

Motivation Consider a computer with public and private data: Consider a computer with public and private data:

Motivation Our aim is to use types to place conditions on how data may be distributed. Our aim is to use types to place conditions on how data may be distributed. Consider a computer with public and private data: Consider a computer with public and private data:

Motivation Our aim is to use types to place conditions on how data may be distributed. Our aim is to use types to place conditions on how data may be distributed. Consider a computer with public and private data: Consider a computer with public and private data:

Motivation Our aim is to use types to place conditions on how data may be distributed. Our aim is to use types to place conditions on how data may be distributed. Consider a computer with public and private data: Consider a computer with public and private data:

Motivation Our aim is to use types to place conditions on how data may be distributed. Our aim is to use types to place conditions on how data may be distributed. Consider a computer with public and private data: Consider a computer with public and private data:

Talk outline Review: Decentralized Label Model (DLM) Review: Decentralized Label Model (DLM) –Local Access Control Key Based Decentralized Label Model (KDLM) Key Based Decentralized Label Model (KDLM) –Distributed Access Control and Cryptography The Jeddak Language The Jeddak Language Conclusions Conclusions

Local Access Control Local Access Control restricts access to data. Local Access Control restricts access to data.

Local Access Control Local Access Control restricts access to data. Local Access Control restricts access to data. Any read or write attempts are dynamically checked. Any read or write attempts are dynamically checked.

Local Access Control Local Access Control restricts access to data. Local Access Control restricts access to data. Any read or write attempts are dynamically checked. Any read or write attempts are dynamically checked. There are no restrictions on authorized copies of data. There are no restrictions on authorized copies of data.

Types for Information Flow High and Low security types. High and Low security types. high low

Types for Information Flow High and Low security types. High and Low security types. No read up. No write Down. No read up. No write Down. high low

Types for Information Flow High and Low security types. High and Low security types. No read up. No write Down. No read up. No write Down. A Total Order A Total Order high low

Types for Information Flow High and Low security types. High and Low security types. No read up. No write Down. No read up. No write Down. A Total Order. A Total Order. Even a lattice. Even a lattice. high low

Types for Information Flow Secrecy duel to Integrity. Secrecy duel to Integrity. Declassification? Declassification? high low

Types for information Flow x: int high; y: int low; x: int high; y: int low; Can do: Can do: x = x +2 ; x = y + 2; if x > y then x = y; Can’t do: Can’t do: y = x; if x > y then y = 0; if guess = pwd then reject;

J.I.F. and the Decentralized Label Model (DLM) Program variable x Program variable x –Has data type int –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 Types for Information Flow DLM, bottom half of lattice. DLM, bottom half of lattice. No one has an automatic right to read your data. No one has an automatic right to read your data. Alice Bob Eve

Declassification in the DLM Data has type {L1, L2, L3} int Data has type {L1, L2, L3} int

Declassification in the DLM Data has type {L1, L2, L3} int Data has type {L1, L2, L3} int L1 = bob : { bob, jane } L1 = bob : { bob, jane }

Declassification in the DLM Data has type {L1, L2, L3} int Data has type {L1, L2, L3} int L1 = bob : { bob, jane } L1 = bob : { bob, jane } L2 = mary : { bob, jane, mary } L2 = mary : { bob, jane, mary }

Declassification in the DLM Data has type {L1, L2, L3} int Data has type {L1, L2, L3} int L1 = bob : { bob, jane } L1 = bob : { bob, jane } L2 = mary : { bob, jane, mary } L2 = mary : { bob, jane, mary } L3 = jane : { jane, tim} L3 = jane : { jane, tim}

Declassification in the DLM Data has type {L1, L2, L3} int Data has type {L1, L2, L3} int L1 = bob : { bob, jane } L1 = bob : { bob, jane } L2 = mary : { bob, jane, mary } L2 = mary : { bob, jane, mary } L3 = jane : { jane, tim} L3 = jane : { jane, tim} Only Jane can access data Only Jane can access data

Declassification in the DLM Data has type {L1, L2, L3} int Data has type {L1, L2, L3} int L1 = bob : { bob, jane } L1 = bob : { bob, jane } L2 = mary : { bob, jane, mary } L2 = mary : { bob, jane, mary } L3 = jane : { jane, tim} L3 = jane : { jane, tim} Only Jane can access data Only Jane can access data L3  jane : { jane, tim, bob} L3  jane : { jane, tim, bob}

Declassification in the DLM Data has type {L1, L2, L3} int Data has type {L1, L2, L3} int L1 = bob : { bob, jane } L1 = bob : { bob, jane } L2 = mary : { bob, jane, mary } L2 = mary : { bob, jane, mary } L3 = jane : { jane, tim} L3 = jane : { jane, tim} Only Jane can access data Only Jane can access data L3  jane : { jane, tim, bob} L3  jane : { jane, tim, bob} Now Jane and Bob can access the data Now Jane and Bob can access the data

DLM

DLM Data is protected by its type. Data is protected by its type.

DLM Each attempt to copy data is statically checked at compile time. Each attempt to copy data is statically checked at compile time.

DLM Data is protected by its type. Data is protected by its type. Each attempt to copy data is statically checked at compile time. Each attempt to copy data is statically checked at compile time. Copies of data have the same type and hence the same protection. Copies of data have the same type and hence the same protection.

DLM Data is protected by its type. Data is protected by its type. Each attempt to copy data is statically checked at compile time. Each attempt to copy data is statically checked at compile time. Copies of data have the same type and hence the same protection. Copies of data have the same type and hence the same protection. Data sent outside the type checked area is no longer protected. Data sent outside the type checked area is no longer protected.

Talk outline Review: Decentralized Label Model (DLM) Review: Decentralized Label Model (DLM) –Local Access Control Key Based Decentralized Label Model (KDLM) Key Based Decentralized Label Model (KDLM) –Distributed Access Control and Cryptography The Jeddak Language The Jeddak Language Conclusions Conclusions

Protocol Minimize the Trusted Computing Base Network Application DLM

Protocol Communication Security Minimize the Trusted Computing Base Network Application DLM

Protocol Communication Security Minimize the Trusted Computing Base Network Application Communication Network Application Communication Security DLM KDLM

KDLM: Connecting Keys and Access Restrictions Key names have policies (ACLs) 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 Labels are sets of key names –Access restricted to intersection of policies (ACLs)

Keys, Labels and Certificates Key & Policy: Key & Policy: K : Key[ bob : {mary,sam,bob} ] Label: {,, …,} Label: {K 1, K 2, …,K n } Labeled Type: T {K1,..,Kn}, {K1’,..,Km’} Declassification Cert Types: declassifies Declassification Cert Types: K 1 declassifies K 2 K1  K2

KDLM

KDLM As with the DLM data is protected by its type. As with the DLM data is protected by its type.

KDLM

KDLM But the data can also be protected by encryption. But the data can also be protected by encryption.

KDLM As with the DLM data is protected by its type. As with the DLM data is protected by its type. But the data can also be protected by encryption. But the data can also be protected by encryption. Encryption protects data leaving the trusted area. Encryption protects data leaving the trusted area.

KDLM As with the DLM data is protected by its type. As with the DLM data is protected by its type. But the data can also be protected by encryption. But the data can also be protected by encryption. Encryption protects data leaving the trusted area. Encryption protects data leaving the trusted area. Keys are protected in the same way as data. Keys are protected in the same way as data.

Labeled Keys K : Key ( P:{P 1,…,P k } ) K : Key ( P:{P 1,…,P k } ) a + : [ EncKey ( K ) ] a + : [ EncKey ( K ) ] a - : [ DecKey ( K ) ] L a - : [ DecKey ( K ) ] L Key names exist at the type level. Key names exist at the type level.

KDLM Alice Bob K:A,B K

KDLM Alice Bob K:A,B K

KDLM Alice Bob K:A,B K

KDLM Alice Bob K:A,B K

KDLM Alice Bob K:A,B K K

KDLM Alice Bob Eve K:A,B K

KDLM Alice Bob K:A,B K K

Why Key-Based DLM? Some form of structural equivalence/inclusion on labels is still needed Some form of structural equivalence/inclusion on labels is still needed e 1 has label L 1 e 2 has label L 2 “If e then e 1 else e 2 ” has label L 1  L 2 Who would own result label if it was named? Who would own result label if it was named?

Why Key-Based DLM? Suppose we added reclassification certs to DLM Suppose we added reclassification certs to DLM e 1 has label {Joe:{Mary,Sue}} e 2 has label {Joe:{Mary,Sue}} Joe can declassify e 1 ’s label: Joe can declassify e 1 ’s label: declassify ({Joe:{Mary,Sue,Sam}}, e 1 ) Suppose Joe issues certificate: Suppose Joe issues certificate: Joe:{Mary,Sue,Sam} declassifies Joes:{Mary,Sue} Then e 2 can also be declassified! Then e 2 can also be declassified!

Key Type Rules New names are created by the right principal. New names are created by the right principal. Restrictions on who may use a key are greater or equal to the restrictions implied by the key name. Restrictions on who may use a key are greater or equal to the restrictions implied by the key name. All of the keys named in the label are provided for encryption. All of the keys named in the label are provided for encryption. Decrypted data is assigned the labels from the keys used to decrypt. Decrypted data is assigned the labels from the keys used to decrypt.

Jane {K1, K2, K3} Encrypted(int) Bob Mary

K1 has policy: bob : {bob, jane} Jane {K1, K2, K3} Encrypted(int) K1 Bob Mary K1

K2 has policy: mary : {bob,jane,mary} Jane {K1, K2, K3} Encrypted(int) K1 Bob Mary K1K2

K3 has policy jane : {jane } Jane {K1, K2, K3} Encrypted(int) K1 Bob Mary K1K2 K3

Jane {K1, K2, K3} Encrypted(int) K1 Bob Mary K1K2 K3 K1 K3

Jane {K1, K2, K3} Encrypted(int) K1 Bob Mary K1K2 K3 K1 K3

Types, Principals, Key Names Type int 3 decKey  K  k-k- Prin P Ekey ( P:{P 1 …P k } ) K encKey  K  k+k+ x [T] L,L’ Kinds Types Key Name Prin Values

Types, Principals, Key Names Type int 3 decKey  K  k-k- Prin P Ekey ( P:{P 1 …P k } ) K encKey  K  k+k+ x [T] L,L’ Kinds Types Key Name Prin Values

Kinds, Types, Labels Arities, Kinds A ::= Prin A ::= Key F [P:{P 1 …P k} ] A ::= Type Flags F ::= Virtual F ::= Actual Key names, Principals, Types K,P,T ::= k, p, t K,P,T ::= DecKey  K  K,P,T ::= EncKey  K  K,P,T ::= AuthKey  K  K,P,T ::= SignKey  K  K,P,T ::= K 1 reclassifies K 2 K,P,T ::= E{LT} K,P,T ::= S{LT} K,P,T ::= Chan  LT  K,P,T ::=  t:A  LT L ::= {K 1,…,K m } LT ::= [T] L1,L2

Expressions E ::= newKey  k:A  {e} E ::= newKey  k:A  (a + :LT 1, a - :LT 2 ) {e} (a + :LT 1, a - :LT 2 ) {e} E ::= encrypt K (e 1,….,e k,e) E ::= decrypt K1,K2 (e 1,…,e k,e) E ::= sign K1,K2 (e 1,…,e k,e) E ::= auth K (e 1,…,e k,e) E ::= reclassifyCert K1,K2 () E ::= reclassifyCert K1,K2 (e) E ::= chain K1,K2,K3 (e1,e2) E ::= x, y, z, w E ::= a, b, c, n E ::= new(n:LT){e} E ::= fork{e} E ::= send(e 1,e 2 ) E ::= receive(a) E ::= pack  t:A  LT (K,e) E ::= unpack e 1 to  k:A  (x:LT){e 2 }

KDLM Type Rules for Keys TE |- K : Key ( P: { Ps } ) P in ( L2 PRINS of TE ) ( L1 PRINS of TE ) subset of { Ps } ] L1,L2 TE |- [ DecKey(K) ] L1,L2

KDLM Type Rules for Keys TE |- K : Key ( P: { Ps } ) P in ( L2 PRINS of TE ) ( L1 PRINS of TE ) subset of { Ps } ] L1,L2 TE |- [ EncKey(K) ] L1,L2 TE |- K : Key ( P: { Ps } ) P in ( L2 PRINS of TE ) ] L1,L2 TE |- [ DecKey(K) ] L1,L2

TE;VE |- encrypt ( { Key i }, data ) : [E{T}] {},L’ TE;VE |- { Key i } : { [ EncKey(K i ) ] L1,L1’ } TE;VE |- data : [T] L0,L’ L0 = {K i }

TE;VE |- encrypt ( { Key i }, data ) : [E{T}] {},L’ TE;VE |- { Key i } : { [ EncKey(K i ) ] L1,L1’ } TE;VE |- data : [T] L0,L’ L0 = {K i } TE;VE |- decrypt ( { Key i }, data ) : [T] L,L’ TE;VE |- { Key i } : { [ DecKey(K i ) ] L2,L2’ } TE;VE |- data : [E{T}] {},L’ L = {K i }

Correctness Theorem 1: (Subject reduction) Theorem 1: (Subject reduction) Types are preserved by reduction Types are preserved by reduction therefore no data leaks. therefore no data leaks.

Correctness Theorem 1: (Subject reduction) Theorem 1: (Subject reduction) Types are preserved by reduction Types are preserved by reduction therefore no data leaks. therefore no data leaks. Theorem 2: (Progress) Theorem 2: (Progress) Any expression that isn’t a value can be Any expression that isn’t a value can be reduced or it’s mismatched decryption. reduced or it’s mismatched decryption.

Talk outline Review: Decentralized Label Model (DLM) Review: Decentralized Label Model (DLM) –Local Access Control Key Based Decentralized Label Model (KDLM) Key Based Decentralized Label Model (KDLM) –Distributed Access Control and Cryptography The Jeddak Language The Jeddak Language Conclusions Conclusions

Jeddak Generic Java extended with distributed access control using keys Generic Java extended with distributed access control using keys Jeddak extends Java with Jeddak extends Java with –Principals –Key names –Labels and policies

GJ: Generic Java Type: int, string, Object, Vector,…. Type: int, string, Object, Vector,…. Vector returns type Object s. Vector returns type Object s. Generic type: Vector, MyObject Generic type: Vector, MyObject

The Java Crypto API KeyPair pair = keyGen.generateKeyPair(); PrivateKey priv_key = pair.getPrivate(); PublicKey pub_key = pair.getPublic(); Cipher enCipher = Cipher.getInstance("...") enCipher.init(encrypt_mode,pub_key)enCipher.doFinal(data)

Approximate Jeddak Crypto API KeyPair pair = keyGen.generateKeyPair(); PrivateKey priv_key = pair.getPrivate(); PublicKey pub_key = pair.getPublic(); Cipher enCipher = Cipher.getInstance("...") Cipher.getInstance("...")enCipher.init(encrypt_mode,pub_key_array);enCipher.doFinal(data)

Key Agreement KeyAgreement.init( key ) Key key1 = KeyAgreement.doPhase( key, lastFlag ) SecretKey KeyAgreement.generateSecrate( “…” )

Key Agreement KeyAgreement.init( key ) Key key1 = KeyAgreement.doPhase( key, lastFlag ) SecretKey KeyAgreement.generateSecrate( “…” )

A simple example Key [ ThisPrin:{} ] Kpriv; string {KPriv} mysecret; p public void reader1 ( String arg ) { … } public void reader2 (String {KPriv} arg) {…} reader( mysecret ) ; reader2 (mysecret);

Patient Doctor example Prin Doctor1, Patient, Nurse, Doctor2;

Patient Doctor example Prin Doctor1, Patient, Nurse, Doctor2; KeyNm [ Doctor1 : { Doctor1, Patient } ] DocPolicy; KeyNm [ Patient :{ Doctor1, Patient, Nurse} ] PatRecord;

Patient Doctor example Prin Doctor1, Patient, Nurse, Doctor2; KeyNm [ Doctor1 : { Doctor1, Patient } ] DocPolicy; KeyNm [ Patient :{ Doctor1, Patient, Nurse} ] PatRecord; Med_File { DocRecord, PatRecord } patient_file; Notes { PatRecord } med_diary;

Patient Doctor example Prin Doctor1, Patient, Nurse, Doctor2; KeyNm [ Doctor1 : { Doctor1, Patient } ] DocPolicy; KeyNm [ Patient :{ Doctor1, Patient, Nurse} ] PatRecord; Med_File { DocRecord, PatRecord } patient_file; Notes { PatRecord } med_diary; KeyNm [ Doctor2:{ Doctor1, Doctor2 } ] Priv_Notes; Notes { Priv_Notes } budget;

Patient Doctor example Prin Doctor1, Patient, Nurse, Doctor2; KeyNm [ Doctor1 : { Doctor1, Patient } ] DocPolicy; KeyNm [ Patient :{ Doctor1, Patient, Nurse} ] PatRecord; Med_File { DocRecord, PatRecord } patient_file; Notes { PatRecord } med_diary; KeyNm [ Doctor2:{ Doctor1, Doctor2 } ] Priv_Notes; Notes { Priv_Notes } budget; Patient { Priv_Notes declassifies PatRecord }; Doctor1 { Priv_Notes declassifies DocRecord };

Talk outline Review: Decentralized Label Model (DLM) Review: Decentralized Label Model (DLM) –Local Access Control Key Based Decentralized Label Model (KDLM) Key Based Decentralized Label Model (KDLM) –Distributed Access Control and Cryptography The Jeddak Language The Jeddak Language Conclusions Conclusions

Papers “Typed Based Distributed Access Control”, CSFW 03 “Typed Based Distributed Access Control”, CSFW 03 - KDLM model - KDLM model - Type system and correctness. - Type system and correctness. “Principals, Policies and Keys in a Secure Distributed Programming Language”, FCS 04 “Principals, Policies and Keys in a Secure Distributed Programming Language”, FCS 04 - Types for sending keys. - Types for sending keys. - Language examples - Language examples “The Jeddak Language”, Hopefully when it’s finished. “The Jeddak Language”, Hopefully when it’s finished.

Further Work Finish off Jeddak. Finish off Jeddak. Running code. Running code. Accountability. Accountability.

Related Work Information flow and type systems Information flow and type systems –Denning –Volpano and Smith –Pottier (Flow Caml) –Gordan and Fourient Information flow and access control Information flow and access control –Stoughton –Heintze and Riecke, –Myers, Liskov (DLM) –Myers, Zdancewic (JIF) –Banerjee and Naumann Types and security protocols Types and security protocols –Abadi –Gordon and Jeffreys –Pierce and Li –Duggan (Crypto Types)

Summary KDLM for Distributed Access Control KDLM for Distributed Access Control Benefit of Type-Based Approach: Access Checking at compile-time Benefit of Type-Based Approach: Access Checking at compile-time –Lightweight access control for accountable systems –Extended to “compile-time” crypto

Questions?