NSPK Protocol Security Model Checking System Builder



Similar documents
Chapter 8 Security. IC322 Fall Computer Networking: A Top Down Approach. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

Lecture 9 verifying temporal logic

Network Security. HIT Shimrit Tzur-David

Security: Focus of Control. Authentication

Chapter 7: Network security

Practice Questions. CS161 Computer Security, Fall 2008

Client Server Registration Protocol

Digital Identity & Authentication Directions Biometric Applications Who is doing what? Academia, Industry, Government

Part 2 D(E(M, K),K ) E(M, K) E(M, K) Plaintext M. Plaintext M. Decrypt with private key. Encrypt with public key. Ciphertext

How to Formally Model Features of Network Security Protocols

Security Analysis of PLAID

Database Security. The Need for Database Security

Name: 1. CSE331: Introduction to Networks and Security Fall 2003 Dec. 12, /14 2 /16 3 /16 4 /10 5 /14 6 /5 7 /5 8 /20 9 /35.

Network Security (2) CPSC 441 Department of Computer Science University of Calgary

INF5140: Specification and Verification of Parallel Systems

SWFP: Secure Web Feed Protocol

TELE 301 Network Management. Lecture 18: Network Security

Network Security Protocols

Network Security. Computer Networking Lecture 08. March 19, HKU SPACE Community College. HKU SPACE CC CN Lecture 08 1/23

Strong Encryption for Public Key Management through SSL

SFWR ENG 4C03 - Computer Networks & Computer Security

Network Security. Abusayeed Saifullah. CS 5600 Computer Networks. These slides are adapted from Kurose and Ross 8-1

Random Testing: The Best Coverage Technique - An Empirical Proof

A Novel Cryptographic Key Generation Method Using Image Features

What is network security?

How To Use Kerberos

Analysis of a Biometric Authentication Protocol for Signature Creation Application

Entrust Managed Services PKI. Getting started with digital certificates and Entrust Managed Services PKI. Document issue: 1.0

Key Management. CSC 490 Special Topics Computer and Network Security. Dr. Xiao Qin. Auburn University

Formal Verification by Model Checking

RIOS: A Lightweight Task Scheduler for Embedded Systems

Output: struct treenode{ int data; struct treenode *left, *right; } struct treenode *tree_ptr;

Module 7 Security CS655! 7-1!

Applying Cryptography as a Service to Mobile Applications

Mathematical Model Based Total Security System with Qualitative and Quantitative Data of Human

3-6 Toward Realizing Privacy-Preserving IP-Traceback

Network Security. Security Attacks. Normal flow: Interruption: 孫 宏 民 Phone: 國 立 清 華 大 學 資 訊 工 程 系 資 訊 安 全 實 驗 室

Q: Why security protocols?

Common Pitfalls in Cryptography for Software Developers. OWASP AppSec Israel July The OWASP Foundation

Outline. Computer Science 418. Digital Signatures: Observations. Digital Signatures: Definition. Definition 1 (Digital signature) Digital Signatures

Analysis of Multimodal Biometric Fusion Based Authentication Techniques for Network Security

SECURITY IN NETWORKS

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2

Using Entrust certificates with Microsoft Office and Windows

APPLYING FORMAL METHODS TO CRYPTOGRAPHIC PROTOCOL ANALYSIS: EMERGING ISSUES AND TRENDS

End-User Reference Guide

CIS 433/533 - Computer and Network Security Public Key Crypto/ Cryptographic Protocols

Representation of E-documents in AIDA Project

Data Outsourcing based on Secure Association Rule Mining Processes

Module 8. Network Security. Version 2 CSE IIT, Kharagpur

Personal Secure Certificate

MPLAB Harmony System Service Libraries Help

Principles of Network Security

Network Security. Gaurav Naik Gus Anderson. College of Engineering. Drexel University, Philadelphia, PA. Drexel University. College of Engineering

Multimedia Document Authentication using On-line Signatures as Watermarks

Sending Secure Electronic Mail (S/MIME) in Java (CAPS) the Easy Way May, 2009

Chapter 16: Authentication in Distributed System

CS 416: Opera-ng Systems Design

An Electronic Voting System Based On Blind Signature Protocol

Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Key Management (Distribution and Certification) (1)

Chapter 3. Network Domain Security

Overview Keys. Overview

Fault Analysis in Software with the Data Interaction of Classes

Cryptography and Network Security

Outline. CSc 466/566. Computer Security. 8 : Cryptography Digital Signatures. Digital Signatures. Digital Signatures... Christian Collberg

Formal Methods in Security Protocols Analysis

1. discovery phase 2. authentication and association phase 3. EAP/802.1x/RADIUS authentication 4. 4-way handshake 5. group key handshake 6.

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

True False questions (25 points + 5 points extra credit)

1. a. Define the properties of a one-way hash function. (6 marks)

CRYPTOGRAPHY IN NETWORK SECURITY

3.2: Transport Layer: SSL/TLS Secure Socket Layer (SSL) Transport Layer Security (TLS) Protocol

Efficient nonce-based authentication scheme for Session Initiation Protocol

Introduction to SPIN. Acknowledgments. Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck. Features PROMELA/SPIN

AN INDUSTRIAL AND ACADEMIC JOINT EXPERIMENT ON AUTOMATED VERIFICATION OF A SECURITY PROTOCOL

Microsoft Dynamics TM NAV Installation & System Management: Employee Portal for Microsoft Dynamics NAV

How To Create A Secure Mobile Application For Business Intelligence On A Windows Phone 7 (For Android)

For the next three questions, consider the class declaration: Member function implementations put inline to save space.

Cryptosystems. Bob wants to send a message M to Alice. Symmetric ciphers: Bob and Alice both share a secret key, K.

Efficient Nonce-based Authentication Scheme for. session initiation protocol

Connected from everywhere. Cryptelo completely protects your data. Data transmitted to the server. Data sharing (both files and directory structure)

A Tutorial on Uppaal 4.0

RSA SecurID Software Token 1.0 for Android Administrator s Guide

Database Security. Chapter 21

ISM/ISC Middleware Module

Bank of Hawaii Protecting Confidential

Two Binary Algorithms for Calculating the Jacobi Symbol and a Fast Systolic Implementation in Hardware

Software Tool for Implementing RSA Algorithm

CUNSHENG DING HKUST, Hong Kong. Computer Security. Computer Security. Cunsheng DING, HKUST COMP4631

Transcription:

, pp.307-316 http://dx.doi.org/10.14257/ijsia.2015.9.7.28 NSPK Protocol Security Model Checking System Builder Wang Yan, Liu Ying Information Engineering College, Zhongzhou University, Zhengzhou 450044; PLA Information Engineering University, Zhengzhou 450000 zzdxwyan@126.com Abstract Cryptographic protocols are based cryptosystems based on interactive communication protocol, running on computer communication networks or distributed systems, by means of cryptographic algorithms to achieve key distribution, authentication and other purposes. In the safety analysis, model checking technology has a high degree of automation, can provide advantages such as counter-examples. The key application of model checking techniques cryptographic protocol analysis is that the full optimization model checking tools for modeling cryptographic protocols, especially for modeling intruders. Using symbolic model checking techniques and model checking tool UPPAAL automatic machine modeling, it is beneficial for the security of cryptographic protocols for analysis testing. Keywords: cryptographic protocols, formal analysis, model checking, UPPAAL Password protocol is built on the basis of cryptosystem interactive communication protocol, running on the computer communications network or distributed system, by means of a cryptographic algorithm to achieve key distribution, authentication and other purposes. Currently, cryptographic protocols have been widely used in computer networks and distributed systems, but security analysis of cryptographic protocols is still a problem. With other cryptographic protocol analysis technology compared to the safety analysis, model checking technology has a high degree of automation, can provide counter-examples, and other advantages. The key application of model checking techniques cryptographic protocol analysis is that the full optimization model checking tools for modeling cryptographic protocols, especially for modeling intruders. Therefore, starting on modeling cryptographic protocols exploration and research has important significance from model checking purposes. NS protocol often ( especially NSPK protocol ) as an experimental model to detect objects of various model checking tools for password protocol model checking experiments. We also model checking NSPK agreement as subjects of our application system model construction methods. First, the overall design of the detection system model NSPK protocol model are as follows. We designed three main template Sender, Receiver, Network and Intruder detection system Models NSPK agreement. Sender authentication template is modeled on the initiator, requires two parameters: its own identity signs myid, and set each other's identity logo yourid, because the system definition needs to directly specify their intended responder certification. Receiver template modeling responder certification only requires one parameter: their identity mark myid, because they do not specify the authentication initiator system definition, but determined dynamically authenticate the initiator in the system is running. Network parameters template for their own identity mark myid. Figure 1 shows the system model is defined constants, types, variables and channels. ISSN: 1738-9976 IJSIA Copyright c 2015 SERSC

const int MAX_HOST_NUM = 2; const int MAX_NONCE_NUM =10; const int MSG_TYPE_NUM = 3; typedef int[0,max_host_num+1] HostId; typedef int[0,max_nonce_num+1] Nonce; typedef int[1,msg_type_num] MsgType; const HostId NullHost = 0; const Nonce NullNonce = 0; const Nonce INonce = MAX_NONCE_NUM+1; const HostId A = 0, HostId B = 1, I = MAX_HOST_NUM ; const MsgType Msg1 = 1, Msg2 = 2, Msg3 = 3; typedef struct{ MsgType msg_type; HostId creator; HostId sender; HostId receiver; Nonce nonce1; Nonce nonce2; Msg; Msg curmsg[max_host_num]; chan msg[max_host_num]; Nonce curnonce = 0; const int MAX_S_MSG = 10; Statement of Figure 1 NSPK Protocol System Model for Model Checking System model operating parameters including MAX_HOST_NUM, MAX_NONCE_NUM and MAX_S_MSG. MAX_HOST_NUM constant defined as 2, except for the limit system model has two main foreign invaders : Certified initiator and responder certification. Constant MAX_NONCE_NUM authentication process performed for frequency control. MAX_S_MSG used to limit the number of intruders messages are stored. After two constants values can be adjusted in the model checking process, the greater the value of their time and space required for the model to detect the greater the demand, however, found that the higher the likelihood of problems. Each body ( including the intruder ) has an ID, type HostId, defining statement : typedef int [0, MAX_HOST_NUM + 1] HostId. 1..MAX_HOST_NUM each agreement is subject ID, MAX_HOST_NUM + 1 is an intruder ID, null HostId NullHost type variable is 0. Define constants A = 1, B = 2, I = MAX_HOST_NUM + 1, is easy to use system definition. Statement typedef int [0, MAX_NONCE_NUM + 1] Nonce; fresh value defines the type Nonce. Intruder without replacing its Nonce value, fixed MAX_NONCE_NUM + 1, because the meaning of the fresh value is by its randomness ensure that as a temporary status symbol, which for the intruder is obviously unimportant. Therefore, the definition of constants INonce = MAX_NONCE_NUM + 1. Null NullNonce Nonce type variable has a value of 0. By global variables curnonce randomly generated to simulate the behavior of the main agreement fresh values. Specific way: when the system is initialized curnonce value is set to 0 ; when an entity is required to generate a fresh value, increase the value of curnonce 1, 308 Copyright c 2015 SERSC

and an increase in the value of the value of their own after a fresh next time you want to use. When the value of curnonce increased MAX_NONCE_NUM, protocol agreement to stop the operation of the main loop, enter idle state. MSG_TYPE_NUM constant value is defined as 3, because only three types of messages. These three messages ID 1, 2 and 3, respectively, so the statement typedef int [1, MSG_TYPE_NUM] MsgType; defines the message ID data type MsgType, statements const MsgType Msg1 = 1, Msg2 = 2, Msg3 = 3; definition these three types of constant news Msg1, Msg2 and Msg3. The intruder intercepts messages stored in accordance with the three different types of arrays. The three arrays for space MAX_S_MSG. When the array space is exhausted, a new alternative intercepted messages last message. Statement chan msg [MAX_HOST_NUM]; providing a channel msg [ID] for each protocol in accordance with its main ID. Statement Msg curmsg [MAX_HOST_NUM]; with a cache space for storing the message needs to be sent for each channel. Message type Msg contains six items : msg_type is the type of the message ; creator creator store the message ID; sender to store the name of the sender of the message ; receiver store the recipient of the message ; nonce1 and nonce2 store fresh values. When the intruder send fake messages to host identity, creator of the message is the intruder ID, sender is disguised host of ID. nonce1 and nonce2 meaning depends on the message type, as shown in Table 1. Table of message types and Na, Nb same meaning as described in 6.2. Table 1. nonce1 and nonce2 Meaning Message Type nonce1 nonce2 1 Na - 2 Na Nb 3 - Nb Secondly, the protocol model NSPK detection system model for detailed design, detailed design of the first phase of the first based on the general design requirements, to build the system model of cryptographic protocols normal operation. In this case, Network template only has the ability to forward messages. Automata model and template Sender declaration section in Figure 2 and Figure 3, respectively. Automata model and template Receiver declaration section is shown in Figure 5 and Figure 6, respectively. Template Network automaton model shown in Figure 7, the declaration section is empty. Process and system definition shown in Figure 8. Figure 2. Template Sender Automaton Model Copyright c 2015 SERSC 309

Nonce mynonce, yournonce; Msg msg1 ={ Msg1, myid, myid, yourid, NullNonce, NullNonce ; Msg msg3 ={ Msg3, myid, myid, yourid, NullNonce, NullNonce ; void createmsg1(){ if(msg1.nonce1!= mynonce) msg1.nonce1 = mynonce; curmsg[myid] = msg1; bool checkmsg2(){ if( curmsg[myid].msg_type!= Msg2 ) return false; if( curmsg[myid].receiver!= myid ) return false; if( curmsg[myid].sender!= yourid ) return false; if( curmsg[myid].nonce1!= mynonce) return false; return true; void createmsg3(){ if(msg3.nonce2!= yournonce) msg3.nonce2 = yournonce; curmsg[myid] = msg3; Sender Template Declaration Section 3 of Sender of the initial position of the template is defined as Init Committed, which is to force the generation of fresh value immediately. getnonce function is defined in the global declaration, in accordance with the value of fresh produce fresh value generation method of the overall design. Defined getnonce function is shown in Figure createmsg1 function creates a message, the message is created is stored in curmsg [myid] by msg [myid] channel to send out a message and then wait 2. checkmsg2 function is used to check whether the message received is awaiting news of two, check the project include: Message type is a Msg2, whether the recipients themselves, whether the sender of a predetermined authentication responders, whether the value of the data item is nonce1 own nonce used in the authentication process. If passed checkmsg2 function checks, use the function to create a message createmsg3 3, stored in curmsg [myid] and sends it through msg [myid] channel. Message 1 or Message 3 may not wait for a response message as return to wait position after being sent to resend a message, in this case remains the same fresh values. If the entire certification process is successfully completed, it is determined that a certification process back under Init start position, or idle position under the control of success curnonce value. Nonce getnonce(){ curnonce ++; return curnonce; Figure 4. getnonce Function Definition Also in order to force the generation of fresh value immediately at the beginning of the certification process, the initial position Init template Receiver is also defined as a Committed. Receiver template first own channel msg [myid] wait for the message, and then the type of call checkmsg1 function checks whether the message is a message. By checking checkmsg1 function after creating a message using createmsg2 function 2, stored in curmsg 310 Copyright c 2015 SERSC

[myid] in and msg in the channel [myid] sent, and then wait for the message in the wait position. Message 3, check whether the project received a message waiting checkmsg3 function checks include : The message type is a message 3, the sender is based sub certification process certification originator, recipient whether their own, whether the value of the data item nonce2 fresh value -oriented sub- certification process they use. If the message is received through the inspection checkmsg3 function, enter the location of success. Then, under the control curnonce value back to a certification process to determine the location Init start the next, or the success idle position. Automata model of Figure 5 template Receiver HostId yourid; Nonce mynonce ; Nonce yournonce ; Msg msg2 ={ Msg2, myid, myid, NullHost, NullNonce, NullNonce; bool checkmsg1(){ if( curmsg[myid].msg_type!= Msg1 ) return false; if( curmsg[myid].receiver!= myid ) return false; return true; void createmsg2(){ if(msg2.receiver!= yourid) msg2.receiver = yourid; if(msg2.nonce1!= yournonce ) msg2.nonce1 = yournonce; if(msg2.nonce2!= mynonce ) msg2.nonce2 = mynonce; curmsg[myid] = msg2; bool checkmsg3(){ if( curmsg[myid].msg_type!= Msg3 ) return false; if( curmsg[myid].receiver!= myid ) return false; if( curmsg[myid].sender!= yourid ) return false; if( curmsg[myid].nonce2!= mynonce) return false; return true; Declaration Section 6 of the Template Receiver Network automaton model template is a secure network, and can only receive and forward messages, and messages may be lost. The system has three processes Alice, Bob, and Network. Copyright c 2015 SERSC 311

Automata Model of Figure 7 Template Network Alice = Sender(A,B); Bob = Receiver(B); system Alice, Bob, Network; Figure 8 is Defined Processes and Systems System model detailed design of this phase was to satisfy the following properties: 1) The system does not deadlock, A [] not deadlock; 2) Alice eventually be able to successfully complete the certification process, E <> Alice.success; 3) Bob eventually successfully completed the certification process, E <> Bob.success; 4) Alice and Bob ultimately successful completion of the certification process at the same time, E <> Alice.success && Bob.success; 5) When Alice final completion certificate, Bob also confirmed the identity of Alice, E <> Alice.success && Alice.myNonce == Bob.yourNonce && Alice.yourNonce == Bob.myNonce; 6 ) When Bob finally completed certification, Alice also confirmed the identity of Alice, E <> Alice.success && Alice.myNonce == Bob.yourNonce && Alice.yourNonce == Bob.myNonce; From Figure 9 it can be seen using UPPAAL Model detector result is the above properties are satisfied, indicating that the target has reached this stage. For modeling NSPK agreement to meet the design requirements. Figure 9. Construction of the Detection Result of the System Model 312 Copyright c 2015 SERSC

The second stage of detailed design NSPK protocol security model checking system's mission is to build the required intruder model, so that with the capture, storage, reproduction, camouflage, create functional messages, and the ability to coordinate with the model of cryptographic protocols carried out. Figure 14 is an intruder model structure. This model features a function to store complete storage intercepted messages. code strore function shown in Figure 10. extract function to use their public key to decrypt the encrypted message to extract and save the message fresh values. extract function shown in Figure 11. repaly function completion message replay function, the code shown in Figure 12. producemsg function to complete the message and to forge their own identity to create the message function, the code shown in Figure 13. void store(){ if( curmsg[from].receiver == myid ) return; if(curmsg[from].msg_type == 1){ if( p1 == 0!equals(msg1_S[p1-1],curMsg[from])){ msg1_s[p1] = curmsg[from]; if(p1+1 < MAX_S_MSG ) p1++; else if(curmsg[from].msg_type == 2){ if( p2 == 0!equals(msg2_S[p2-1],curMsg[from])){ msg2_s[p2] = curmsg[from]; if(p2+1 < MAX_S_MSG ) p2++; else{ if( p3 == 0!equals(msg3_S[p3-1],curMsg[from])){ msg3_s[p3] = curmsg[from]; if(p3+1 < MAX_S_MSG ) p3++; Figure 10. Store Function Code void extract(){ if(curmsg[from].receiver == myid){ if(curmsg[from].msg_type == 1){ if(curmsg[from].nonce1!= mynonce) Na = curmsg[from].nonce1; else if(curmsg[from].msg_type == 2){ if(curmsg[from].nonce1!= mynonce) Na = curmsg[from].nonce1; if(curmsg[from].nonce2!= mynonce) Nb = curmsg[from].nonce2; else{ if(curmsg[from].nonce2!= mynonce) Nb = curmsg[from].nonce2; Figure 11. Extract Function Code Copyright c 2015 SERSC 313

void replay(int[0,max_s_msg-1] p){ if(msg_type == 1){ if( p > p1-1) p = p1-1; to = msg1_s[p].receiver; curmsg[to] = msg1_s[p]; else if(msg_type == 2){ if( p > p2-1) p = p2-1; to = msg2_s[p].receiver; curmsg[to] = msg2_s[p]; else{ if( p > p3-1) p = p3-1; to = msg3_s[p].receiver; curmsg[to] = msg3_s[p]; Figure 12. Replay Function Code void producemsg(){ Msg m; m.msg_type = msg_type; m.creator = myid; m.sender = from; m.receiver = to; if(msg_type == 1 ){ m.nonce1 = mynonce; else if(msg_type == 2){ if( Na!= 0 ){ m.nonce1 = Na; m.nonce2 = mynonce; else if( Nb!= 0 ){ m.nonce1 = mynonce; m.nonce2 = Nb; else{ m.nonce1 = mynonce; m.nonce2 = mynonce; else{ m.nonce2 = mynonce; curmsg[to] = m; Figure 13. producemsg Function Code 314 Copyright c 2015 SERSC

Figure 14. Automata Model Templates Intruder Copyright c 2015 SERSC 315

316 Copyright c 2015 SERSC