A progress report on using Maude to verify protocol properties using the strand space model Presented by Robert P. Graham, MAJ, USAF/AFIT Stephen W. Mancini,

Slides:



Advertisements
Similar presentations
Universally Composable Symbolic Analysis of Cryptographic Protocols
Advertisements

University of Twente The Netherlands Centre for Telematics and Information Technology Constraint Logic Programming for Verifying Security Protocols Sandro.
Authenticating Users. Objectives Explain why authentication is a critical aspect of network security Explain why firewalls authenticate and how they identify.
Developing Business Practice –302LON Delivering Successful Assessments Unit: 3 Knowledgecast: 2.
Modelling and Analysing of Security Protocol: Lecture 8 Automatically Checking Protocols II Tom Chothia CWI.
Alan Shaffer, Mikhail Auguston, Cynthia Irvine, Tim Levin The 7th OOPSLA Workshop on Domain-Specific Modeling October 21-22, 2007 Toward a Security Domain.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Lecture 3Dr. Verma1 COSC 6397 – Information Assurance Module M2 – Protocol Specification and Verification University of Houston Rakesh Verma Lecture 3.
Technology of Test Case Generation Levi Lúcio University of Geneva Marko Samer Vienna University of Technology.
CS470, A.SelcukCryptographic Authentication1 Cryptographic Authentication Protocols CS 470 Introduction to Applied Cryptography Instructor: Ali Aydin Selcuk.
The Function Design Recipe CS 5010 Program Design Paradigms “Bootcamp” Lesson 1.1 TexPoint fonts used in EMF. Read the TexPoint manual before you delete.
Luu Anh Tuan. Security protocol Intruder Intruder behaviors Overhead and intercept any messages being passed in the system Decrypt messages that are.
David Brumley, Pongsin Poosankam, Dawn Song and Jiang Zheng Presented by Nimrod Partush.
Alternate Software Development Methodologies
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
1 Towards Automatic Discovery of Deviations in Binary Implementations with Applications to Error Detection and Fingerprint Generation David Brumley, Juan.
CLF: A Concurrent Logical Framework David Walker Princeton (with I. Cervesato, F. Pfenning, K. Watkins)
1 Towards Automatic Discovery of Deviations in Binary Implementations with Applications to Error Detection and Fingerprint Generation David Brumley, Juan.
 Public key (asymmetric) cryptography o Modular exponentiation for encryption/decryption  Efficient algorithms for this o Attacker needs to factor large.
Case Study: Using PVS to Analyze Security Protocols Kyle Taylor.
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.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
AGVI Automatic Generation, Verification, and Implementation of security protocols By: Dawn Song, Adrian Perrig, and Doantam Phan. In: 13 th Conference.
Modelling and Analysing of Security Protocol: Lecture 1 Introductions to Modelling Protocols Tom Chothia CWI.
Maude Implementation of MSR Demo Mark-Oliver Stehr Stefan Reich University of Illinois, Urbana-Champaign (Iliano Cervesato) ITT NRL
Sound Approximations to Diffie- Hellman using Rewrite Rules Christopher Lynch Catherine Meadows Naval Research Lab.
© 2005 The MITRE Corporation. All rights reserved For Internal MITRE Use Alice & Bob Specifications Jon Millen June 2005.
Progress Report on Java Based Protocol Analysis Presented by Stephen W. Mancini, 1Lt, USAF/AFIT Robert P. Graham, MAJ, USAF/AFIT Presentation date: 09.
FIREWALLS & NETWORK SECURITY with Intrusion Detection and VPNs, 2 nd ed. 10 Authenticating Users By Whitman, Mattord, & Austin© 2008 Course Technology.
Security 2 Distributed Systems Lecture# 15. Overview Cryptography Symmetric Assymeteric Digital Signature Secure Digest Functions Authentication.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Cramer-Shoup is Plaintext Aware in the Standard Model Alexander W. Dent Information Security Group Royal Holloway, University of London.
Christopher Chapman | MCT Content PM, Microsoft Learning, PDG Planning, Microsoft.
1 Authentication Protocols Celia Li Computer Science and Engineering York University.
Encryption. Introduction Computer security is the prevention of or protection against –access to information by unauthorized recipients –intentional but.
TGDC Meeting, December 2011 Michael Kass National Institute of Standards and Technology Update on SAMATE Automated Source Code Conformance.
DNSSEC Cryptography Review Track 2 Workshop July 3, 2010 American Samoa Hervey Allen.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
9/8/2015Rewriting Logic and Maude 1 Rewriting Logic and Maude Language Samira Tasharofi University of Tehran May 2007.
Executable specification of cryptofraglets with Maude for security verification Fabio Martinelli and Marinella Petrocchi IIT-CNR, Pisa Italy presented.
Introduction to Stream Cipher Sayed Mahdi Mohammad Hasanzadeh Spring 2004.
More on “The Huddersfield Method” A lightweight, pattern-driven method based on SSM, Domain Driven Design and Naked Objects.
A Survey of Authentication Protocol Literature: Version 1.0 Written by John Clark and Jeremy Jacob Presented by Brian Sierawski.
© UCL Crypto group oct.-15 On the Perfect Encryption Assumption in the Study of Security Protocols O. Pereira and J.-J. Quisquater UCL Crypto Group
Module 8: Planning and Troubleshooting IPSec. Overview Understanding Default Policy Rules Planning an IPSec Deployment Troubleshooting IPSec Communications.
WEP, WPA, and EAP Drew Kalina. Overview  Wired Equivalent Privacy (WEP)  Wi-Fi Protected Access (WPA)  Extensible Authentication Protocol (EAP)
Chapter 1 Data Structures and Algorithms. Primary Goals Present commonly used data structures Present commonly used data structures Introduce the idea.
CSCE 813 Internet Security Cryptographic Protocol Analysis.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
Lecture 16: Security CDK4: Chapter 7 CDK5: Chapter 11 TvS: Chapter 9.
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,
Symmetric Encryption Lesson Introduction ●Block cipher primitives ●DES ●AES ●Encrypting large message ●Message integrity.
HACNet Simulation-based Validation of Security Protocols Vinay Venkataraghavan Advisors: S.Nair, P.-M. Seidel HACNet Lab Computer Science and Engineering.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
KERBEROS SYSTEM Kumar Madugula.
Model Checking for Security Protocols Will Marrero, Edmund Clarke, Shomesh Jha.
1 Authentication Celia Li Computer Science and Engineering York University.
Principles of Mobile Maude
Iliano Cervesato ITT Industries, NRL Washington, DC
Algorithms and Problem Solving
^ About the.
Security Protocols Analysis
CDK4: Chapter 7 CDK5: Chapter 11 TvS: Chapter 9
Security Analysis of Network Protocols
Algorithms and Problem Solving
CDK: Chapter 7 TvS: Chapter 9
Formal Methods for Security Protocols
Presentation transcript:

A progress report on using Maude to verify protocol properties using the strand space model Presented by Robert P. Graham, MAJ, USAF/AFIT Stephen W. Mancini, 1Lt, USAF/AFIT Presentation date: 01 Oct 03

Objectives Briefly introduce MAUDE as a tool for exploring the Strand Space Model (SSM) for Security Protocol Analysis¹ Demonstrate preliminary results of using MAUDE in the multiset rewriting and strand space approaches Solicit some ideas for potential directions of work

Overview Research goals Introduction to MAUDE Multiset rewriting in Maude –Needham-Schroeder –Penetrator Strand Space Modeling in MAUDE –Needham-Schroeder –Penetrator Summary

Research Goals Automate Guttman’s Authentication Tests Analyze Kerberos protocol (possibly others) –Verify it passes automated authentication tests –Check for vulnerabilities based on modeling of penetrator strands –Athena ran numerous protocols in a short time frame; my focus is only on a few protocols Search for alternative way to model penetrator activity Don’t reinvent the wheel!

Introduction to MAUDE What is Maude? –Maude is a “reflective equational rewrite logic programming language” 3 Allows for concurrent execution of equations and rules Programs consist of functional and System modules –Functional modules define data types and operations by means of equational theories 4 –System modules specify rewrite theories 4 Reflection allows programmer to define operations and strategies at the meta level –Maude’s design maximizes three dimensions: Simplicity: Programs are easy to understand! Expressiveness: Allows for easy expression of a large variety of applications Performance: Fast execution for prototyping and real applications –Put together Needham-Schroeder model very quickly –Our code uses core Maude Maude also has something called Full Maude

Terms in MAUDE fmod TERM is sorts Key Text Term. subsorts Key Text < Term. vars A G H : Term. var K : Key. var T : Text. op __ : Term Term -> Term [ctor prec 40]. op {_}_ : Term Key -> Term [ctor]. eq {{H}K}inv(K) = H. eq {{H}inv(K)}K = H. op new : Text -> Text. op inv : Key -> Key. eq inv(inv(K)) = K. op _ Bool. … endfm

Needham-Schroeder in MSR Needham-Schroeder model using the multiset rewriting approach: *** ROLE: Initiator rl [init_0] : pr(A) pr(B) pubkeyof(B, Kb) prvkeyof(A, Ka-1) => pr(A) pr(B) pubkeyof(B, Kb) prvkeyof(A, Ka-1) I0(A, B, Ka-1, Kb). rl [init_1] : I0(A, B, Ka-1, Kb) => I1(A, B, Ka-1, Kb, new(A)) N({new(A) A}Kb). crl [init_2] : I1(A, B, Ka-1, Kb, Na) N(msg) => I2(A, B, Ka-1, Kb, Na, Nb) if (Na Nb) := {msg}Ka-1. rl [init_3] : I2(A, B, Ka-1, Kb, Na, Nb) => I3(A, B, Ka-1, Kb, Na, Nb) N({Nb}Kb). *** ROLE: Responder rl [resp_0] : pr(A) pr(B) pubkeyof(A, Ka) prvkeyof(B, Kb-1) => pr(A) pr(B) pubkeyof(A, Ka) prvkeyof(B, Kb-1) R0(A, B, Ka, Kb-1). crl [resp_1] : R0(A, B, Ka, Kb-1) N(msg) => R1(A, B, Ka, Kb-1, Na) if (Na A) := {msg}Kb-1. rl [resp_2] : R1(A, B, Ka, Kb-1, Na) => R2(A, B, Ka, Kb-1, Na, new(B)) N({Na new(B)}Ka). crl [resp_3] : R2(A, B, Ka, Kb-1, Na, Nb) N(msg) => R3(A, B, Ka, Kb-1, Na, Nb) if Nb := {msg}Kb-1.

Penetrator in MSR A multiset-rewriting model of a Penetrator as developed in Maude – Uses the "standard" theory where none of the rules consume or destroy the Penetrator's knowledge op I : Term -> State. rl [rec] : N(H) => I(H). rl [dcmp] : I(G H) => I(G) I(H) I(G H). rl [snd] : I(H) => N(H) I(H). rl [cmp] : I(G) I(H) => I(G H) I(G) I(H). rl [encr] : I(H) I(K) => I({H}K) I(H) I(K). rl [nnc] : S => I(new(Pen)) S.

MSR Traces Maude> search [20] init1 init2 =>* R2(Alice, Bob, Ka-1, Kb, Na, Nb) S. search [20] in NS-RUN : init1 init2 =>* S R2(Alice, Bob, Ka-1, Kb, Na, Nb). Solution 1 (state 42281) states: rewrites: in 5600ms cpu (5602ms real) (19466 rewrites/second) S --> pr(Alice) pr(Bob) pr(Carol) N({new(Alice) new(Bob)}K1) I(inv(K3)) pubkeyof(Alice, K1) pubkeyof(Bob, K2) pubkeyof(Carol, K3) prvkeyof(Alice, inv(K1)) prvkeyof(Bob, inv(K2)) prvkeyof(Carol, inv(K3)) I1(Alice, Bob, inv(K1), K2, new(Alice)) Ka-1 --> K1 Kb --> inv(K2) Na --> new(Alice) Nb --> new(Bob)

MSR Traces Maude> search [20] init1 init2 =>* I(new(Bob)) R2(Alice, Bob, Ka-1, Kb, Na, Nb) S. In this search, never found an answer in 24 hours! – State space explosion! Maude> search [20] init1 init2 =>* I(Na) S. In this search, found numerous examples of when the penetrator learned a nonce in a very short time

MSR Lessons Learned Maude suffered from state space explosion Did well when searching for individual states Good learning tool!

Strand Spaces in MAUDE A single rewrite rule “executes” a set of strands: var S T : Strand. var H : Term. rl [label-p-reduction] : + H S | - H T => S | T.

Needham-Schroeder in SSM Definition of the Needham-Schroeder protocol: var A B : Text. *** Think of A and B as names (certificates) var Na Nb : Text. *** Think of Na and Nb as nonces generated by A and B, resp. var Ka Kb Kp K : Key. *** Think of Ka and Kb as public keys owned by A and B, resp. ops nsInitiator nsResponder : Text Text Text Key Key -> Strand. op nsPenetrator : Text Text Text Key Key Key -> Strand. eq nsInitiator(A, Na, Nb, Ka, Kb) = + {| Na A |} Kb - {| Na Nb |} Ka + {| Nb |} Kb. eq nsResponder(A, Na, Nb, Ka, Kb) = - {| Na A |} Kb + {| Na Nb |} Ka - {| Nb |} Kb. eq nsPenetrator(A, Na, Nb, Ka, Kb, Kp) = D({| Na A |} Kp, inv(Kp)) | E(Na A, Kb) | D({| Nb |} Kp, inv(Kp)) | E(Nb, Kb).

Maude> rew nsNormal(A, Na, Nb, Ka, Kb). rewrite in NS-TEST : nsNormal(A, Na, Nb, Ka, Kb). *********** rule rl + H:Term S:Strand | - H:Term T:Strand => S:Strand | T:Strand [label label-p-reduction]. H:Term --> {| Na A |}Kb S:Strand --> - {| Na Nb |}Ka + {| Nb |}Kb T:Strand --> + {| Na Nb |}Ka - {| Nb |}Kb + {| Na A |}Kb - {| Na Nb |}Ka + {| Nb |}Kb | - {| Na A |}Kb + {| Na Nb |}Ka - {| Nb |}Kb ---> - {| Na Nb |}Ka + {| Nb |}Kb | + {| Na Nb |}Ka - {| Nb |}Kb *********** rule rl + H:Term S:Strand | - H:Term T:Strand => S:Strand | T:Strand [label label-p-reduction]. H:Term --> {| Na Nb |}Ka S:Strand --> - {| Nb |}Kb T:Strand --> + {| Nb |}Kb + {| Na Nb |}Ka - {| Nb |}Kb | - {| Na Nb |}Ka + {| Nb |}Kb ---> - {| Nb |}Kb | + {| Nb |}Kb *********** rule rl + H:Term S:Strand | - H:Term T:Strand => S:Strand | T:Strand [label label-p-reduction]. H:Term --> {| Nb |}Kb S:Strand --> empty T:Strand --> empty + {| Nb |}Kb | - {| Nb |}Kb ---> empty | empty rewrites: 6 result Bundle: empty | empty Maude> SSM Traces

Penetrator in SSM  Standard penetrator strands representation  Focus is on the key functions: Encrypt and Decrypt  Maude makes penetrator operation much easier Encrypt Decrypt  m  {m} k   k  k’   {m} k  m 

Penetrator in SSM, cont. This receives a key and message and sends out decrypted plaintext: op D : Term Key -> Strand. eq D(M, K) = - K - M + {| M |} K. This receives a key and message and sends out ciphertext: op E : Term Key -> Strand. eq E(M, K) = - K - M + {| M |} K.

SSM Traces Maude> rew nsSpoof(A, Na, Nb, Ka, Kb, Kp). rewrite in NS-TEST : nsSpoof(A, Na, Nb, Ka, Kb, Kp). *********** rule rl + H:Term S:Strand | - H:Term T:Strand => S:Strand | T:Strand [label label-p-reduction]. H:Term --> Nb S:Strand --> empty T:Strand --> empty + Nb | + Kb | + Kb | + inv(Kp) | + inv(Kp) | + Na A | + {| Nb |}Kb | + {| Na A |}Kb | - Nb | - Kb | - Kb | - inv(Kp) | - inv(Kp) | - Na A | - {| Nb |}Kp | - {| Na A |}Kp | + {| Na A |}Kp - {| Na Nb |}Ka + {| Nb |}Kp | - {| Na A |}Kb + {| Na Nb |}Ka - {| Nb |}Kb ---> (+ Kb | + Kb | + inv(Kp) | + inv(Kp) | + Na A | + {| Nb |}Kb | + {| Na A |}Kb | - Kb | - Kb | - inv(Kp) | - inv(Kp) | - Na A | - {| Nb |}Kp | - {| Na A |}Kp | + {| Na A |}Kp - {| Na Nb |}Ka + {| Nb |}Kp | - {| Na A |}Kb + {| Na Nb |}Ka - {| Nb |}Kb) | empty | empty

SSM Traces, cont. *********** rule rl + H:Term S:Strand | - H:Term T:Strand => S:Strand | T:Strand [label label-p-reduction]. H:Term --> {| Nb |}Kp S:Strand --> empty T:Strand --> empty empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | + {| Nb |}Kp | - {| Nb |}Kp ---> (empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty) | empty | empty rewrites: 25 result Bundle: empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty

SSM Lessons Learned Maude accurately reduced states, verifying known weakness of Needham- Schroeder in very short time Allowed easy representation of strand space model Good learning tool! No search (which is good, and bad)

Course of Action Generate the code for the Authentication Tests Run automated tests against Needham-Schroeder Generate Maude code for Kerberos protocol Generate code for other protocols?

Summary Research goals Introduction to MAUDE Multiset rewriting in Maude Strand Space Modeling in MAUDE

Bibliography 1.Cervesato, Iliano and others. A Comparison between Strand Spaces and Multiset Rewriting for Security Protocol Analysis. July Guttman, Joshua and F. J. Thayer Fabrega. Authentication Tests. March Song, Dawn. Athena: A New Efficient Automatic Checker for Security Protocol Analysis. June Clavel, Manuel and others. Maude 2.0 Manual: version 1. June