security type checking for mils-aadl specifications · security type checking for mils-aadl...

93
Security Type Checking for MILS-AADL Specifications Kevin van der Pol , Thomas Noll MILS Workshop Amsterdam – January 20, 2015 Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 0/25 Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 1/25

Upload: others

Post on 14-Oct-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Security Type Checking forMILS-AADL Specifications

Kevin van der Pol, Thomas Noll

MILS Workshop Amsterdam – January 20, 2015

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 0/25

Security Type Checking for MILS-AADL Specifications

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 1/25

Page 2: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

trusted untrusted

cryptocontroller

(confidential) (public)

I Cryptographic controller [Rus92]I Placed between trusted system and untrusted networkI Declassifies confidential informationI Goal: verify its security

Motivation

Motivation

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 2/25

Page 3: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

trusted untrusted

cryptocontroller

(confidential) (public)

I Cryptographic controller [Rus92]

I Placed between trusted system and untrusted networkI Declassifies confidential informationI Goal: verify its security

Motivation

Motivation

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 2/25

Page 4: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

trusted untrusted

cryptocontroller

(confidential) (public)

I Cryptographic controller [Rus92]I Placed between trusted system and untrusted network

I Declassifies confidential informationI Goal: verify its security

Motivation

Motivation

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 2/25

Page 5: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

trusted untrusted

cryptocontroller

(confidential) (public)

I Cryptographic controller [Rus92]I Placed between trusted system and untrusted networkI Declassifies confidential information

I Goal: verify its security

Motivation

Motivation

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 2/25

Page 6: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

trusted untrusted

cryptocontroller

(confidential) (public)

I Cryptographic controller [Rus92]I Placed between trusted system and untrusted networkI Declassifies confidential informationI Goal: verify its security

Motivation

Motivation

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 2/25

Page 7: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

1 MILS-AADL specifications

2 Non-interference

3 Type checking

4 Conclusion

Table of Contents

Table of Contents

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 3/25

Page 8: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

1 MILS-AADL specifications

2 Non-interference

3 Type checking

4 Conclusion

MILS-AADL specifications

Table of Contents

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 4/25

Page 9: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

crypto controller

MILS-AADL specifications

Crypto controller

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 5/25

Page 10: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

crypto controller

split merge

bypass

crypto

MILS-AADL specifications

Crypto controller

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 5/25

Page 11: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

crypto controller

split merge

bypass

crypto

MILS-AADL specifications

Crypto controller

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 5/25

Page 12: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

crypto controller

split merge

bypass

crypto

MILS-AADL specifications

Crypto controller

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 5/25

Page 13: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system cryptocontroller(

)

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 6/25

Page 14: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system cryptocontroller(

)

inframe: in (int L, int H) (0,0)outframe: out (int L, enc int H L) (0, encrypt(0, k0))

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 6/25

Page 15: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system cryptocontroller(

)

inframe: in (int L, int H) (0,0)outframe: out (int L, enc int H L) (0, encrypt(0, k0))system split(. . . )system bypass(. . . )system merge(. . . )system crypto(

)

inpayload: in int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 6/25

Page 16: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system cryptocontroller(

)

inframe: in (int L, int H) (0,0)outframe: out (int L, enc int H L) (0, encrypt(0, k0))system split(. . . )system bypass(. . . )system merge(. . . )system crypto(

)connection (split.payload, crypto.inpayload)

...

connection (crypto.outpayload, merge.payload)

inpayload: in int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 6/25

Page 17: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system cryptocontroller(

)

inframe: in (int L, int H) (0,0)outframe: out (int L, enc int H L) (0, encrypt(0, k0))system split(. . . )system bypass(. . . )system merge(. . . )system crypto(

)connection (split.payload, crypto.inpayload)

...

connection (crypto.outpayload, merge.payload)

inpayload: in int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 6/25

Page 18: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Grammar

Level σ ::= H | LBasic type t ::= int | bool | enc τSecurity type τ ::= t σ | key σ

Expression e ::= n | x | e⊕ eSystem S ::= system s(S∗ P ∗ C∗ V ∗ M∗ T ∗)Port P ::= p : (in | out)(event σ | data τ e)Connection C ::= ([s.]p, [s.]p)Variable V ::= x : τ eMode M ::= m : [initial] mode σTransition T ::= m -[ [p] [when e] [then x := e] ]->m′

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 7/25

Page 19: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Grammar

Level σ ::= H | LBasic type t ::= int | bool | enc τSecurity type τ ::= t σ | key σExpression e ::= n | x | e⊕ e

System S ::= system s(S∗ P ∗ C∗ V ∗ M∗ T ∗)Port P ::= p : (in | out)(event σ | data τ e)Connection C ::= ([s.]p, [s.]p)Variable V ::= x : τ eMode M ::= m : [initial] mode σTransition T ::= m -[ [p] [when e] [then x := e] ]->m′

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 7/25

Page 20: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Grammar

Level σ ::= H | LBasic type t ::= int | bool | enc τSecurity type τ ::= t σ | key σExpression e ::= n | x | e⊕ eSystem S ::= system s(S∗ P ∗ C∗ V ∗ M∗ T ∗)

Port P ::= p : (in | out)(event σ | data τ e)Connection C ::= ([s.]p, [s.]p)Variable V ::= x : τ eMode M ::= m : [initial] mode σTransition T ::= m -[ [p] [when e] [then x := e] ]->m′

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 7/25

Page 21: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Grammar

Level σ ::= H | LBasic type t ::= int | bool | enc τSecurity type τ ::= t σ | key σExpression e ::= n | x | e⊕ eSystem S ::= system s(S∗ P ∗ C∗ V ∗ M∗ T ∗)Port P ::= p : (in | out)(event σ | data τ e)

Connection C ::= ([s.]p, [s.]p)Variable V ::= x : τ eMode M ::= m : [initial] mode σTransition T ::= m -[ [p] [when e] [then x := e] ]->m′

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 7/25

Page 22: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Grammar

Level σ ::= H | LBasic type t ::= int | bool | enc τSecurity type τ ::= t σ | key σExpression e ::= n | x | e⊕ eSystem S ::= system s(S∗ P ∗ C∗ V ∗ M∗ T ∗)Port P ::= p : (in | out)(event σ | data τ e)Connection C ::= ([s.]p, [s.]p)

Variable V ::= x : τ eMode M ::= m : [initial] mode σTransition T ::= m -[ [p] [when e] [then x := e] ]->m′

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 7/25

Page 23: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Grammar

Level σ ::= H | LBasic type t ::= int | bool | enc τSecurity type τ ::= t σ | key σExpression e ::= n | x | e⊕ eSystem S ::= system s(S∗ P ∗ C∗ V ∗ M∗ T ∗)Port P ::= p : (in | out)(event σ | data τ e)Connection C ::= ([s.]p, [s.]p)Variable V ::= x : τ e

Mode M ::= m : [initial] mode σTransition T ::= m -[ [p] [when e] [then x := e] ]->m′

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 7/25

Page 24: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Grammar

Level σ ::= H | LBasic type t ::= int | bool | enc τSecurity type τ ::= t σ | key σExpression e ::= n | x | e⊕ eSystem S ::= system s(S∗ P ∗ C∗ V ∗ M∗ T ∗)Port P ::= p : (in | out)(event σ | data τ e)Connection C ::= ([s.]p, [s.]p)Variable V ::= x : τ eMode M ::= m : [initial] mode σ

Transition T ::= m -[ [p] [when e] [then x := e] ]->m′

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 7/25

Page 25: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Grammar

Level σ ::= H | LBasic type t ::= int | bool | enc τSecurity type τ ::= t σ | key σExpression e ::= n | x | e⊕ eSystem S ::= system s(S∗ P ∗ C∗ V ∗ M∗ T ∗)Port P ::= p : (in | out)(event σ | data τ e)Connection C ::= ([s.]p, [s.]p)Variable V ::= x : τ eMode M ::= m : [initial] mode σTransition T ::= m -[ [p] [when e] [then x := e] ]->m′

MILS-AADL specifications

Syntax

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 7/25

Page 26: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

1 MILS-AADL specifications

2 Non-interference

3 Type checking

4 Conclusion

Non-interference

Table of Contents

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 8/25

Page 27: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Lattice of confidentiality levels

I This presentation: high and low (H v L)I Non-interference: low outputs not affected by high inputs

I When varying secret variables and ports, reachable values of publicvariables and ports are indistinguishable

Non-interference

Non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 9/25

Page 28: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Lattice of confidentiality levelsI This presentation: high and low (H v L)

I Non-interference: low outputs not affected by high inputs

I When varying secret variables and ports, reachable values of publicvariables and ports are indistinguishable

Non-interference

Non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 9/25

Page 29: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Lattice of confidentiality levelsI This presentation: high and low (H v L)I Non-interference: low outputs not affected by high inputs

I When varying secret variables and ports, reachable values of publicvariables and ports are indistinguishable

Non-interference

Non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 9/25

Page 30: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Lattice of confidentiality levelsI This presentation: high and low (H v L)I Non-interference: low outputs not affected by high inputs

high

low

I When varying secret variables and ports, reachable values of publicvariables and ports are indistinguishable

Non-interference

Non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 9/25

Page 31: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Lattice of confidentiality levelsI This presentation: high and low (H v L)I Non-interference: low outputs not affected by high inputs

high

low

I When varying secret variables and ports, reachable values of publicvariables and ports are indistinguishable

Non-interference

Non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 9/25

Page 32: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Lattice of confidentiality levelsI This presentation: high and low (H v L)I Non-interference: low outputs not affected by high inputs

high

low

I When varying secret variables and ports, reachable values of publicvariables and ports are indistinguishable

Non-interference

Non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 9/25

Page 33: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Lattice of confidentiality levelsI This presentation: high and low (H v L)I Non-interference: low outputs not affected by high inputs

high

lowI When varying secret variables and ports, reachable values of public

variables and ports are indistinguishable

Non-interference

Non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 9/25

Page 34: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Explicit data flow

I physical connection from high to low portsI low := high

I Implicit data flow

I data leak through control flowI if high then low := 1 else low := 2 endif

Non-interference

Unwanted data flows

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 10/25

Page 35: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Explicit data flowI physical connection from high to low ports

I low := highI Implicit data flow

I data leak through control flowI if high then low := 1 else low := 2 endif

Non-interference

Unwanted data flows

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 10/25

Page 36: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Explicit data flowI physical connection from high to low portsI low := high

I Implicit data flow

I data leak through control flowI if high then low := 1 else low := 2 endif

Non-interference

Unwanted data flows

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 10/25

Page 37: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Explicit data flowI physical connection from high to low portsI low := high

I Implicit data flow

I data leak through control flowI if high then low := 1 else low := 2 endif

Non-interference

Unwanted data flows

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 10/25

Page 38: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Explicit data flowI physical connection from high to low portsI low := high

I Implicit data flowI data leak through control flow

I if high then low := 1 else low := 2 endif

Non-interference

Unwanted data flows

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 10/25

Page 39: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Explicit data flowI physical connection from high to low portsI low := high

I Implicit data flowI data leak through control flowI if high then low := 1 else low := 2 endif

Non-interference

Unwanted data flows

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 10/25

Page 40: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Abstract encryption function

I Encryption breaks traditional non-interference

I Public ciphertexts do depend on confidential contents!

I Encryption non-deterministically calculates a ciphertext from a setI Look at sets of possibilitiesI Naive approach: all ciphertexts are indistinguishableI Cannot distinguish calculating new ciphertext or re-using same one

I low1 := encrypt(v,k); low2 := low1

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 11/25

Page 41: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Abstract encryption functionI Encryption breaks traditional non-interference

I Public ciphertexts do depend on confidential contents!

I Encryption non-deterministically calculates a ciphertext from a setI Look at sets of possibilitiesI Naive approach: all ciphertexts are indistinguishableI Cannot distinguish calculating new ciphertext or re-using same one

I low1 := encrypt(v,k); low2 := low1

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 11/25

Page 42: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Abstract encryption functionI Encryption breaks traditional non-interference

I Public ciphertexts do depend on confidential contents!

I Encryption non-deterministically calculates a ciphertext from a setI Look at sets of possibilitiesI Naive approach: all ciphertexts are indistinguishableI Cannot distinguish calculating new ciphertext or re-using same one

I low1 := encrypt(v,k); low2 := low1

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 11/25

Page 43: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Abstract encryption functionI Encryption breaks traditional non-interference

I Public ciphertexts do depend on confidential contents!

I Encryption non-deterministically calculates a ciphertext from a set

I Look at sets of possibilitiesI Naive approach: all ciphertexts are indistinguishableI Cannot distinguish calculating new ciphertext or re-using same one

I low1 := encrypt(v,k); low2 := low1

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 11/25

Page 44: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Abstract encryption functionI Encryption breaks traditional non-interference

I Public ciphertexts do depend on confidential contents!

I Encryption non-deterministically calculates a ciphertext from a setI Look at sets of possibilities

I Naive approach: all ciphertexts are indistinguishableI Cannot distinguish calculating new ciphertext or re-using same one

I low1 := encrypt(v,k); low2 := low1

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 11/25

Page 45: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Abstract encryption functionI Encryption breaks traditional non-interference

I Public ciphertexts do depend on confidential contents!

I Encryption non-deterministically calculates a ciphertext from a setI Look at sets of possibilitiesI Naive approach: all ciphertexts are indistinguishable

I Cannot distinguish calculating new ciphertext or re-using same one

I low1 := encrypt(v,k); low2 := low1

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 11/25

Page 46: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Abstract encryption functionI Encryption breaks traditional non-interference

I Public ciphertexts do depend on confidential contents!

I Encryption non-deterministically calculates a ciphertext from a setI Look at sets of possibilitiesI Naive approach: all ciphertexts are indistinguishableI Cannot distinguish calculating new ciphertext or re-using same one

I low1 := encrypt(v,k); low2 := low1

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 11/25

Page 47: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Abstract encryption functionI Encryption breaks traditional non-interference

I Public ciphertexts do depend on confidential contents!

I Encryption non-deterministically calculates a ciphertext from a setI Look at sets of possibilitiesI Naive approach: all ciphertexts are indistinguishableI Cannot distinguish calculating new ciphertext or re-using same one

I low1 := encrypt(v,k); low2 := low1

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 11/25

Page 48: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Indistinguishability equivalence .= on ciphertexts [AHS08]

I safe usageI prevent implicit flow

I Realistic for common encryption classes (IND-CPA, INT-PTXT) [Lau08]I Possibilistic non-interference

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 12/25

Page 49: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Indistinguishability equivalence .= on ciphertexts [AHS08]

I safe usage

I prevent implicit flow

I Realistic for common encryption classes (IND-CPA, INT-PTXT) [Lau08]I Possibilistic non-interference

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 12/25

Page 50: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Indistinguishability equivalence .= on ciphertexts [AHS08]

I safe usageI prevent implicit flow

I Realistic for common encryption classes (IND-CPA, INT-PTXT) [Lau08]I Possibilistic non-interference

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 12/25

Page 51: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Indistinguishability equivalence .= on ciphertexts [AHS08]

I safe usageI prevent implicit flow

I Realistic for common encryption classes (IND-CPA, INT-PTXT) [Lau08]

I Possibilistic non-interference

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 12/25

Page 52: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I Indistinguishability equivalence .= on ciphertexts [AHS08]

I safe usageI prevent implicit flow

I Realistic for common encryption classes (IND-CPA, INT-PTXT) [Lau08]I Possibilistic non-interference

Non-interference

Possibilistic non-interference

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 12/25

Page 53: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

oddsi

sisi

si si soso

oddeven

even

sisi

si si soso

oddeven

sisi

si si soso

oddeven

sisi

oddeven

Non-interference

Non-interference non-compositionality

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 13/25

Page 54: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

oddsiso

sisi

si si soso

oddeven

even

sisi

si si soso

oddeven

sisi

si si soso

oddeven

sisi

si si soso

oddeven

Non-interference

Non-interference non-compositionality

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 13/25

Page 55: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

oddsiso

sisi

si si soso

oddeven

even

sisi

si si soso

oddeven

sisi

si si soso

oddeven

sisi

si si soso

oddeven

oddsiso

sisi

si si soso

oddeven

even

sisi

si si soso

oddeven

sisi

si si soso

oddeven

sisi

si si soso

oddeven

Non-interference

Non-interference non-compositionality

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 13/25

Page 56: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

oddsiso

sisi

si si soso

oddeven

even

sisi

si si soso

oddeven

sisi

si si soso

oddeven

sisi

si si soso

oddeven

oddsiso

sisi

si si soso

oddeven

even

sisi

si si soso

oddeven

sisi

si si soso

oddeven

sisi

si si soso

oddeven

Non-interference

Non-interference non-compositionality

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 13/25

Page 57: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

non-determinism

e

e. . .

. . .

Non-interference

Restrictions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 14/25

Page 58: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

non-determinism branching on secrets

e

e. . .

. . .

. . .

. . .

s

¬s

e1

e2

Non-interference

Restrictions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 14/25

Page 59: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

non-determinism branching on secrets

secret-Zeno

e

e. . .

. . .

. . .

. . .

s

¬s

e1

e2

Non-interference

Restrictions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 14/25

Page 60: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

non-determinism branching on secrets

secret-Zeno

e

e. . .

. . .

. . .

. . .

s

¬s

e1

e2

public output from

. . .

secret region

s e

Non-interference

Restrictions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 14/25

Page 61: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

1 MILS-AADL specifications

2 Non-interference

3 Type checking

4 Conclusion

Type checking

Table of Contents

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 15/25

Page 62: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I T : local variables and data ports→ declared type

I Modes and event ports get a confidentiality levelI Type rules in context of TI Goal: type each subsystem, connection and transition

Theorem

If the system is typable, it is non-interfering

Type checking

Type checking

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 16/25

Page 63: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I T : local variables and data ports→ declared typeI Modes and event ports get a confidentiality level

I Type rules in context of TI Goal: type each subsystem, connection and transition

Theorem

If the system is typable, it is non-interfering

Type checking

Type checking

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 16/25

Page 64: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I T : local variables and data ports→ declared typeI Modes and event ports get a confidentiality levelI Type rules in context of T

I Goal: type each subsystem, connection and transition

Theorem

If the system is typable, it is non-interfering

Type checking

Type checking

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 16/25

Page 65: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I T : local variables and data ports→ declared typeI Modes and event ports get a confidentiality levelI Type rules in context of TI Goal: type each subsystem, connection and transition

Theorem

If the system is typable, it is non-interfering

Type checking

Type checking

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 16/25

Page 66: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I T : local variables and data ports→ declared typeI Modes and event ports get a confidentiality levelI Type rules in context of TI Goal: type each subsystem, connection and transition

Theorem

If the system is typable, it is non-interfering

Type checking

Type checking

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 16/25

Page 67: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I T : local variables and data ports→ declared typeI Modes and event ports get a confidentiality levelI Type rules in context of TI Goal: type each subsystem, connection and transition

Theorem

If the system is typable, it is non-interfering

Type checking

Type checking

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 16/25

Page 68: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Type rule

Basic types T ` n : int L T ` b : bool L

Variable T (x) = τ

T ` x : τ

OperatorT ` e1 : t1 σ1 T ` e2 : t2 σ2 ⊕ : t1 × t2 → t

T ` e1 ⊕ e2 : t (σ1 t σ2)

EncryptionT ` e1 : τ T ` e2 : key L

T ` encrypt(e1, e2) : enc τ L

DecryptionT ` e1 : enc τ σ T ` e2 : key H

T ` decrypt(e1, e2) : τσ

Type checking

Types of expressions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 17/25

Page 69: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Type of encrypt(inpayload,k)?

T (inpayload) = int H

T ` inpayload : int H

T (k) = key L

T ` k : key L

T ` encrypt(inpayload,k) : enc int H L

Type checking

Types of expressions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 18/25

Page 70: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I If τe <: τx, assignment x:=e is validI Traditional type safetyI Confidentiality restriction

Case Subtype rule

Basic types σ v σ′int σ <: int σ′

σ v σ′bool σ <: bool σ′

key σ <: key σ

Encryption τ <: τ ′ σ v σ′enc τ σ <: enc τ ′ σ′

Type checking

Subtyping

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 19/25

Page 71: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I If τe <: τx, assignment x:=e is validI Traditional type safetyI Confidentiality restriction

Case Subtype rule

Basic types σ v σ′int σ <: int σ′

σ v σ′bool σ <: bool σ′

key σ <: key σ

Encryption τ <: τ ′ σ v σ′enc τ σ <: enc τ ′ σ′

Type checking

Subtyping

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 19/25

Page 72: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I If τe <: τx, assignment x:=e is validI Traditional type safetyI Confidentiality restriction

Case Subtype rule

Basic types σ v σ′int σ <: int σ′

σ v σ′bool σ <: bool σ′

key σ <: key σ

Encryption τ <: τ ′ σ v σ′enc τ σ <: enc τ ′ σ′

Type checking

Subtyping

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 19/25

Page 73: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is outpayload:=encrypt(inpayload,k) valid?

(let τ abbreviate enc int H L)

T (outpayload) = τ

T ` outpayload : τ

(Before)T ` encrypt(inpayload,k) : τ τ <: τ

T ` outpayload:=encrypt(inpayload,k) : τ

Type checking

Subtyping

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 20/25

Page 74: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is outpayload:=encrypt(inpayload,k) valid?(let τ abbreviate enc int H L)

T (outpayload) = τ

T ` outpayload : τ

(Before)T ` encrypt(inpayload,k) : τ τ <: τ

T ` outpayload:=encrypt(inpayload,k) : τ

Type checking

Subtyping

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 20/25

Page 75: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is outpayload:=encrypt(inpayload,k) valid?(let τ abbreviate enc int H L)

T (outpayload) = τ

T ` outpayload : τ

(Before)T ` encrypt(inpayload,k) : τ τ <: τ

T ` outpayload:=encrypt(inpayload,k) : τ

Type checking

Subtyping

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 20/25

Page 76: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Type rule

Transition

T ` p : τpT ` g : τg τx <: τe lvl(τx) v σT ` x : τx lvl(m) v lvl(τp) σ v lvl(τp)T ` e : τe lvl(m) v lvl(τx) σ v lvl(τg)

T ` m -[ p when g then x := e ]->m′ : σ

I Effect is well typedI No public outputs from secret region (mode)I Guard or event high→ transition highI No public outputs from secret region (transition)

Type checking

Type of transitions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 21/25

Page 77: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Type rule

Transition

T ` p : τpT ` g : τg τx <: τe lvl(τx) v σT ` x : τx lvl(m) v lvl(τp) σ v lvl(τp)T ` e : τe lvl(m) v lvl(τx) σ v lvl(τg)

T ` m -[ p when g then x := e ]->m′ : σ

I Effect is well typedI No public outputs from secret region (mode)I Guard or event high→ transition highI No public outputs from secret region (transition)

Type checking

Type of transitions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 21/25

Page 78: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Type rule

Transition

T ` p : τpT ` g : τg τx <: τe lvl(τx) v σT ` x : τx lvl(m) v lvl(τp) σ v lvl(τp)T ` e : τe lvl(m) v lvl(τx) σ v lvl(τg)

T ` m -[ p when g then x := e ]->m′ : σ

I Effect is well typed

I No public outputs from secret region (mode)I Guard or event high→ transition highI No public outputs from secret region (transition)

Type checking

Type of transitions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 21/25

Page 79: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Type rule

Transition

T ` p : τpT ` g : τg τx <: τe lvl(τx) v σT ` x : τx lvl(m) v lvl(τp) σ v lvl(τp)T ` e : τe lvl(m) v lvl(τx) σ v lvl(τg)

T ` m -[ p when g then x := e ]->m′ : σ

I Effect is well typedI No public outputs from secret region (mode)

I Guard or event high→ transition highI No public outputs from secret region (transition)

Type checking

Type of transitions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 21/25

Page 80: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Type rule

Transition

T ` p : τpT ` g : τg τx <: τe lvl(τx) v σT ` x : τx lvl(m) v lvl(τp) σ v lvl(τp)T ` e : τe lvl(m) v lvl(τx) σ v lvl(τg)

T ` m -[ p when g then x := e ]->m′ : σ

I Effect is well typedI No public outputs from secret region (mode)I Guard or event high→ transition high

I No public outputs from secret region (transition)

Type checking

Type of transitions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 21/25

Page 81: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Case Type rule

Transition

T ` p : τpT ` g : τg τx <: τe lvl(τx) v σT ` x : τx lvl(m) v lvl(τp) σ v lvl(τp)T ` e : τe lvl(m) v lvl(τx) σ v lvl(τg)

T ` m -[ p when g then x := e ]->m′ : σ

I Effect is well typedI No public outputs from secret region (mode)I Guard or event high→ transition highI No public outputs from secret region (transition)

Type checking

Type of transitions

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 21/25

Page 82: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is the transition well typed?

I Effect is well typed: XI No public outputs from secret region (mode): XI Guard or event high→ transition high: XI No public outputs from secret region (transition): X

I All subsystems and connections trivially well typedI crypto system is non-interfering

Type checking

Example

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 22/25

Page 83: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is the transition well typed?I Effect is well typed: X

I No public outputs from secret region (mode): XI Guard or event high→ transition high: XI No public outputs from secret region (transition): X

I All subsystems and connections trivially well typedI crypto system is non-interfering

Type checking

Example

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 22/25

Page 84: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is the transition well typed?I Effect is well typed: XI No public outputs from secret region (mode): X

I Guard or event high→ transition high: XI No public outputs from secret region (transition): X

I All subsystems and connections trivially well typedI crypto system is non-interfering

Type checking

Example

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 22/25

Page 85: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is the transition well typed?I Effect is well typed: XI No public outputs from secret region (mode): XI Guard or event high→ transition high: X

I No public outputs from secret region (transition): X

I All subsystems and connections trivially well typedI crypto system is non-interfering

Type checking

Example

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 22/25

Page 86: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is the transition well typed?I Effect is well typed: XI No public outputs from secret region (mode): XI Guard or event high→ transition high: XI No public outputs from secret region (transition): X

I All subsystems and connections trivially well typedI crypto system is non-interfering

Type checking

Example

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 22/25

Page 87: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is the transition well typed?I Effect is well typed: XI No public outputs from secret region (mode): XI Guard or event high→ transition high: XI No public outputs from secret region (transition): X

I All subsystems and connections trivially well typed

I crypto system is non-interfering

Type checking

Example

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 22/25

Page 88: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

system crypto(

)

inpayload: int H 0outpayload: out enc int H L encrypt(0, k0)k: key L k0m: initial mode Lm-[then outpayload:=encrypt(inpayload,k)]->m

I Is the transition well typed?I Effect is well typed: XI No public outputs from secret region (mode): XI Guard or event high→ transition high: XI No public outputs from secret region (transition): X

I All subsystems and connections trivially well typedI crypto system is non-interfering

Type checking

Example

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 22/25

Page 89: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

1 MILS-AADL specifications

2 Non-interference

3 Type checking

4 Conclusion

Conclusion

Table of Contents

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 23/25

Page 90: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I AADL variant with cryptographic primitives

I Automatic verification for possibilistic non-interferenceI Future work: soundness proof, implementation, type inference

Conclusion

Conclusion

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 24/25

Page 91: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I AADL variant with cryptographic primitivesI Automatic verification for possibilistic non-interference

I Future work: soundness proof, implementation, type inference

Conclusion

Conclusion

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 24/25

Page 92: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

I AADL variant with cryptographic primitivesI Automatic verification for possibilistic non-interferenceI Future work: soundness proof, implementation, type inference

Conclusion

Conclusion

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 24/25

Page 93: Security Type Checking for MILS-AADL Specifications · Security Type Checking for MILS-AADL Specifications Kevin van der Pol, Thomas Noll MILS Workshop Amsterdam – January 20,

Aslan Askarov, Daniel Hedin, and Andrei Sabelfeld,Cryptographically-masked flows, Theor. Comput. Sci. 402 (2008),no. 2-3, 82–101.

Peeter Laud, On the computational soundness of cryptographicallymasked flows, Proceedings of the 35th ACM SIGPLAN-SIGACTSymposium on Principles of Programming Languages, POPL 2008,San Francisco, California, USA, January 7-12, 2008, 2008,pp. 337–348.

John Rushby, Noninterference, transitivity, and channel-controlsecurity policies, Tech. Report SRI-CSL-92-2, Computer ScienceLaboratory, SRI International, Menlo Park, CA, December 1992.

Bibliography

Kevin van der Pol, Thomas Noll | MILS Workshop Amsterdam – January 20, 2015 25/25