1
Analyzing Security Architectures
Marwan Abi-Antoun
- Dept. of Computer Science
Wayne State University mabiantoun@wayne.edu Jeffrey M. Barnes
- Inst. for Software Research
Analyzing Security Architectures Marwan Abi-Antoun Jeffrey M. - - PowerPoint PPT Presentation
Analyzing Security Architectures Marwan Abi-Antoun Jeffrey M. Barnes Dept. of Computer Science Inst. for Software Research Wayne State University Carnegie Mellon University mabiantoun@wayne.edu jmbarnes@cs.cmu.edu Acknowledgements: David
1
2
3
Architecture Code
Constraint: Untrusted components cannot access protected data Constraint: Untrusted components cannot access protected data
Provider Engine
class Provider { ... } class Engine { ... }
Consumer
class Consumer { ... }
4
5
6
7
8
9
Conformance stage Enforcement stage
10
Code
class LocalKeyStore {…}
Designed Architecture Conformance View
?
Compare Enriched Architecture
with types, properties, & constraints
Enrich Trace Discrepancies Trace Violations Code-Level Constraints
expressed with domain links
Annotate
Object Graph Extract Built Architecture Abstract Ownership Annotations
@Domains({"OWNED", …}) class LocalKeyStore {…}
Annotate
11
Code
class LocalKeyStore {…}
Object Graph Extract Built Architecture Abstract Designed Architecture Conformance View
?
Compare Enriched Architecture
with types, properties, & constraints
Enrich Trace Discrepancies Trace Violations Code-Level Constraints
expressed with domain links
Annotate Ownership Annotations
@Domains({"OWNED", …}) class LocalKeyStore {…}
Annotate
12
Object relation Object
13
Component Object relation Object
14
Component Connector Object relation Object
15
Component Connector Object relation Object
Group/Tier
16
Component Connector Object relation Object
17
Component Connector Object relation Object
18
Component Connector Object relation Object
19
Component Hierarchy Connector Object relation Object
20
21
[Aldrich and Chambers, ECOOP’04] [Krishnaswami and Aldrich, PLDI’05]
LocalKey OWNED Declarations are simplified KEYS
keys: List<LocalKey> key: LocalKey
Type
Object Type Type
22
23
KEYS OWNED keyStore: LocalKeyStore keys(+): ArrayList<LocalKey> localKey: LocalKey kekSpec(+): SecretKeySpec
24
Code
class LocalKeyStore {…}
Object Graph Extract Built Architecture Abstract Designed Architecture Conformance View
?
Compare Enriched Architecture
with types, properties, & constraints
Enrich Trace Discrepancies Trace Violations Code-Level Constraints
expressed with domain links
Annotate Ownership Annotations
@Domains({"OWNED", …}) class LocalKeyStore {…}
Annotate
25
KEYS OWNED keyStore: LocalKeyStore keys(+): ArrayList<LocalKey> localKey: LocalKey kekSpec(+): SecretKeySpec
26
CryptoDB
KEYMANAGEMENT KEYSTORAGE
keyTool keyStore
keyAlias
27
Code
class LocalKeyStore {…}
Object Graph Extract Built Architecture Abstract Designed Architecture Conformance View
?
Compare Enriched Architecture
with types, properties, & constraints
Enrich Trace Discrepancies Trace Violations Code-Level Constraints
expressed with domain links
Annotate Ownership Annotations
@Domains({"OWNED", …}) class LocalKeyStore {…}
Annotate
28
29
30
31
Code
class LocalKeyStore {…}
Object Graph Extract Built Architecture Abstract Designed Architecture Conformance View
?
Compare Enriched Architecture
with types, properties, & constraints
Enrich Trace Discrepancies Trace Violations Code-Level Constraints
expressed with domain links
Annotate Ownership Annotations
@Domains({"OWNED", …}) class LocalKeyStore {…}
Annotate
32
33
34
35
36
37
38
39
40
41
42