A FAULT-TREE REPRESENTATION OF NPATRL SECURITY REQUIREMENTS Iliano Cervesato, ITT Catherine Meadows Code 5543 Center for High Assurance Computer Systems.

Slides:



Advertisements
Similar presentations
Security attacks. - confidentiality: only authorized parties have read access to information - integrity: only authorized parties have write access to.
Advertisements

A Survey of Key Management for Secure Group Communications Celia Li.
Deeper Security Analysis of Web-based Identity Federation Apurva Kumar IBM Research – India.
Computer Science Dr. Peng NingCSC 774 Adv. Net. Security1 CSC 774 Advanced Network Security Topic 5 Group Key Management.
EXPERIENCES IN THE FORMAL ANALYSIS OF THE GDOI PROTOCOL Catherine Meadows Code 5543 Center for High Assurance Computer Systems Naval Research Laboratory.
System Concepts for Process Modeling  Process Concepts  Process Logic  Decomposition diagrams and data flow diagrams will prove very effective tools.
Temporal Specification Chris Patel Vinay Viswanathan.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
OPEN PROBLEMS IN PROTOCOL VERIFICATION Catherine Meadows Code 5543 Center for High Assurance Computer Systems Naval Research Laboratory Washington, DC.
AGVI Automatic Generation, Verification, and Implementation of security protocols By: Dawn Song, Adrian Perrig, and Doantam Phan. In: 13 th Conference.
December 7, 2001DIMI, Universita’ di Udine, Italy Graduate Course on Computer Security Lecture 9: Automated Verification Iliano Cervesato
Application architectures
ITIS 6200/8200. time-stamping services Difficult to verify the creation date and accurate contents of a digital file Required properties of time-stamping.
Specification Formalisms Book: Chapter 5. Properties of formalisms Formal. Unique interpretation. Intuitive. Simple to understand (visual). Succinct.
Fault Tree Representation of Security Requirements0.
CMSC 414 Computer and Network Security Lecture 19 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 24 Jonathan Katz.
Slide 1 Chapter 3 Attribute Grammars. Slide 2 Attribute Grammars Certain language structures cannot be described using EBNF. Attribute grammars are extensions.
Multicast Security May 10, 2004 Sam Irvine Andy Nguyen.
CONTEXT BINDING: An Emerging Problem in Cryptographic Protocols Catherine Meadows Naval Research Laboratory Code 5543 Washington, DC 20375
1 FM and Security-Overview FM Formal Security Models Based on Slides prepared by A. Jones and Y. Lin. Material based on C. Landwehr paper.
Progress Report on Java Based Protocol Analysis Presented by Stephen W. Mancini, 1Lt, USAF/AFIT Robert P. Graham, MAJ, USAF/AFIT Presentation date: 09.
CSE 413 Programming Languages & Implementation Hal Perkins Autumn 2012 Context-Free Grammars and Parsing 1.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Alexander Potapov.  Authentication definition  Protocol architectures  Cryptographic properties  Freshness  Types of attack on protocols  Two-way.
Application architectures
8/19/2015© Hal Perkins & UW CSEC-1 CSE P 501 – Compilers Parsing & Context-Free Grammars Hal Perkins Winter 2008.
On the Anonymity of Anonymity Systems Andrei Serjantov (anonymous)
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
2.2 A Simple Syntax-Directed Translator Syntax-Directed Translation 2.4 Parsing 2.5 A Translator for Simple Expressions 2.6 Lexical Analysis.
© UCL Crypto group Sep-15 A Security Analysis of Cliques Protocols Suites Olivier Pereira – Jean-Jacques Quisquater UCL Crypto Group.
Chapters 7, 8, & 9 Quiz 3 Review 1. 2 Algorithms Algorithm A set of unambiguous instructions for solving a problem or subproblem in a finite amount of.
Formal Analysis of Security Protocols Dr. Changyu Dong
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
BAN LOGIC Amit Chetal Monica Desai November 14, 2001
Compiler Chapter# 5 Intermediate code generation.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
SIA: Secure Information Aggregation in Sensor Networks B. Przydatek, D. Song, and A. Perrig. In Proc. of ACM SenSys 2003 Natalia Stakhanova cs610.
Scanning & Enumeration Lab 3 Once attacker knows who to attack, and knows some of what is there (e.g. DNS servers, mail servers, etc.) the next step is.
Correctness Proofs and Counter-model Generation with Authentication-Protocol Logic Koji Hasebe Mitsuhiro Okada Department of Philosophy, Keio University.
6 June Lecture 2 1 TU Dresden - Ws on Proof Theory and Computation Formal Methods for Security Protocols Catuscia Palamidessi Penn State University,
Merkle trees Introduced by Ralph Merkle, 1979 An authentication scheme
Topic #1: Introduction EE 456 – Compiling Techniques Prof. Carl Sable Fall 2003.
ISBN Chapter 3 Describing Semantics.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
A Cost-Based Framework for Analysis of Denial of Service in Networks Author: Catherine Meadows Presenter: Ajay Mahimkar.
Network Protocols Network Systems Security Mort Anvari.
Compiler Design Introduction 1. 2 Course Outline Introduction to Compiling Lexical Analysis Syntax Analysis –Context Free Grammars –Top-Down Parsing –Bottom-Up.
THEORY OF COMPUTATION Komate AMPHAWAN 1. 2.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
Establishing authenticated channels and secure identifiers in ad-hoc networks Authors: B. Sieka and A. D. Kshemkalyani (University of Illinois at Chicago)
HACNet Simulation-based Validation of Security Protocols Vinay Venkataraghavan Advisors: S.Nair, P.-M. Seidel HACNet Lab Computer Science and Engineering.
Invitation to Computer Science 5 th Edition Chapter 2 The Algorithmic Foundations of Computer Science.
CS223: Software Engineering
From Natural Language to LTL: Difficulties Capturing Natural Language Specification in Formal Languages for Automatic Analysis Elsa L Gunter NJIT.
1 Chapter 11 Global Properties (Distributed Termination)
Agenda  Quick Review  Finish Introduction  Java Threads.
ALLOY: A Formal Methods Tool Glenn Gordon Indiana University of Pennsylvania COSC 481- Formal Methods Dr. W. Oblitey 26 April 2005.
A Simple Syntax-Directed Translator
Parsing & Context-Free Grammars
Knowledge Representation
(Slides copied liberally from Ruth Anderson, Hal Perkins and others)
R.Rajkumar Asst.Professor CSE
‘Crowds’ through a PRISM
Q/ Compare between HTTP & HTTPS? HTTP HTTPS
Presentation transcript:

A FAULT-TREE REPRESENTATION OF NPATRL SECURITY REQUIREMENTS Iliano Cervesato, ITT Catherine Meadows Code 5543 Center for High Assurance Computer Systems Naval Research Laboratory Washington, DC

PROBLEM WE’RE ADDRESSING Crypto protocol requirements often harder to get right than the protocols themselves –Many flaws really result of misunderstood requirements What’s needed is formal language for crypto protocol requirements that’s –Expressive –Accurate –Easy to read and write Many languages satisfy the first two requirements –Few if any, satisfy the third

THE NRL PROTOCOL ANALYZER Formal methods tool for verifying security properties of crypto protocols and finding attacks User specifies protocol in terms of communicating state machines communicating by use of a medium controlled by a hostile intruder User verifies protocol by 1. Proving a set of lemmas to limit size of search space 2. Specifying an insecure state 3. Using NPA to search backwards from that state to see if attack can be found

NRL Protocol Analyzer Model Honest Principals modeled as communicating state machines Adversary can intercept, read, alter, and create messages –Does not know secrets (e.g. keys) of honest principals unless They are explicitly compromised It can learn them from a message Dishonest principals part of the adversary Each run of a protocol local to a principal assigned a unique round number – Allows distinguishing of different runs local to a principal

NPA Events Each state transition in an NPA spec may be assigned an event, denoted by event(P, Q, T, L, N) – P: principal doing the transition – Q: list of other parties involved in transition – T: name of the transition rule – L: list of words relevant to transition –N: local round number Events are the building blocks of the NPATRL Language

NPATRL NRL-Protocol-Analyzer-Temporal-Requirements- Language –Pronounced 'N Patrol' Requirements characterized in terms of event statements, of two sorts –Events corresponding to state transitions engaged in by honest principals – learn events indicate acquisition of information by adversary Add usual logical connectives, e.g., , ,  One temporal operator meaning "happens before"

SYNTAX OF NPATRL EVENTS NPATRL event of the form event_name(A,Plist,Wlist,N) Event_name characterizes type of event A name of principal engaging in the event Plist list of names of other principals involved e.g. intended recipient of message Wlist list of other terms relevant to action N local round number Identifies local execution Similar to notion of a strand in strand spaces Example NPATRL event init_acceptkey(A,B,(Key,NonceA,NonceB),N)

Example NPATRL Requirement If an honest A accepts a key Key for communicating with an honest B, then a server must have generated and sent the key for an honest A and an honest B to use. accept( user(A, honest), user(B, honest), (Key), _ ) =>  send(server, (user(A, honest), user(B,honest),(Key, _)

HOW UGLY CAN REQUIREMENTS GET? learns(intruder,(),(K new ),_) & gcks_createkey(G,()(K new,K old ),N) => ( learns(intruder,(),(K’),_) & gcks_createkey(G,(),(K’,K’’),_) & (gcks_createkey(G,(),(K new,K old ),_)) OR (gcks_sendkey(G, member(A,dishonest),(P GA,K new,I),_)) OR (gcks_createkey(G,Group,(K new,K old ),N)) & (gcks_sendkey(G,member(A,dishonest),(P GA,K’,I),_)) & not ( (gcks_expel(G,member(A,dishonest),(I),_))) OR (gcks_losekey(G,(), (K new ),_) OR ( (gcks_sendkey(G,(member(B,honest)),(P GB, K new ),_)) & (gcks_losepairwisekey(GCKS,(),(P GB ),_)))

INSIGHT: MOST REQUIREMENTS ARE OF THE SAME FORM A final event –Intruder learns a key –Principal accepts a key preceded by sequences of events that should or should not have occurred –Key is compromised –Key is distributed to dishonest principal

SIMILAR TO STRUCTURE OF FAULT TREES Fault tree: a graphical notation used for safety requirements –Root of the tree is a final event or fault –Children of a node the conditions which would contribute to the event or condition represented by that node Why not use fault trees to provide a semantics for a portion of NPATRL?

A FAULT TREE GRAMMAR T == Event T Or Gate And Gate T T 1 T 2 T 1 T 2 Not Gate Line is a simple connector when parent node is a gate Line stands for child implies parent when parent node is an event

GRAMMAR FOR NPATRL SUBSET R ::== a => F F ::== E | not(E) | F1 /\ F2 | F1 \/ F2 E ::== a | (a /\ E)

PRECEDENCE TREES FOR USE WITH NPATRL Edges in R trees stand for implies Edges in F trees are connectors Edges in E trees stand for Event E And Gate Or Gate Not Gate E Event R == E == F == E E F 1 F 2 F 1 F 2

TRANSLATION { } FROM NPATRL TO PRECEDENCE TREES { R } r { F } f { E } e a => F Enot(E)F1\/ F2F1 /\ F2 a (a /\ E) {F} {E} {F 1 } {F 2 } {E} Event Not Gate Or Gate And Gate

EXAMPLE: GDOI PROTOCOL Two types of principals; Group controllers (GCKS) and members Member joins group by initiating handshake protocol –Uses pairwise key shared between it and GCKS –Gets current group key as result of handshake Relevant data: –G = controller name –K GM = pairwise key –K, K new,K old = group keys Relevant events –member_acceptkey(M,G,(K GM,K),N) –gcks_losepairwisekey(G,M,[K GM ),N) –gcks_createkey(G,(),(K new K old ),N) –member_requestkey(M,G,(),N)

RECENCY FRESHNESS Member should accept the most recent key generated before its request member_acceptkey(M,G,(K GM,K old ),N) => gcks_losepairwisekey(G,(),(M,K GM ),_) or not( (member_requestkey(M,G,(),N) and gcks_createkey(G,(),(K new,K old ),_)))

SEQUENTIAL FRESHNESS If member accepts key, should not have previously accepted a later key member_acceptlkey(M,G,(K GM,K old ),N) => gcks_losepairwisekey(G,(),(M,K GM ),_) or not( member_acceptlkey(M,G,(K GM,K new ),_) & (gcks_createkey(G,(),(K new,K’),_) & gcks_createkey(G,(),(K old,K’’),_)))

PRECEDENCE TREE VERSIONS Member_acceptkey (M,G,(K GM,K old,N) Gcks_losepairwisekey (G,(),(M,K GM ),_) Member_requestkey (M,G,(),N) Gcks_createkey (G,(),(K new, K old ),_) Member_acceptkey (M,G,(K GM,K old,N) Gcks_losepairwisekey (G,(),(M, K GM,),_) Member_acceptkey (M,G,(K GM,,Knew),_) Gcks_createkey (G,(),(K new,K’),_) Gcks_createkey (G,(),(K old,K’’),_)

BACK TO UGLY REQUIREMENT learns(intruder,(),(K new ),_) & gcks_createkey(G,()(K new,K old ),N) => ( learns(intruder,(),(K’),_) & gcks_createkey(G,(),(K’,K’’),_) & (gcks_createkey(G,(),(K new,K old ),_)) OR (gcks_sendkey(G, member(A,dishonest),(P GA,K new,I),_)) OR (gcks_createkey(G,Group,(K new,K old ),N)) & (gcks_sendkey(G,member(A,dishonest),(P GA,K’,I),_)) & not ( (gcks_expel(G,member(A,dishonest),(I),_))) OR (gcks_losekey(G,(), (K new ),_) OR ( (gcks_sendkey(G,(member(B,honest)),(P GB, K new ),_)) & (gcks_losepairwisekey(GCKS,(),(P GB ),_)))

Fig. 4 Forward Access Control Without PFS or Backward Access Control or intruder learns key K new K new distributed to dishonest member by G Intruder learns key K’ K new created by GK’ created by G and G uses K GB to send key K new to B Pairwise key K GB between G and B and Intruder steals K K new created By G Dishonest member A joins group with index I Dishonest member A leaves group with index I not and not K new distributed gy G

HOW WE’VE USED PRECEDENCE TREES Used them to specify requirements for Group Domain of Interpretation protocol Helpful not only for readability and writeability, but useful for disambiguation and resolving confusion