Technical report: SeVe implementation



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

Formal analysis of Facebook Connect Single Sign-On authentication protocol

Automated Security Protocol Analysis With the AVISPA Tool 1

How to Formally Model Features of Network Security Protocols

Inductive Analysis of Security Protocols in Isabelle/HOL with Applications to Electronic Voting

Secure Document Circulation Using Web Services Technologies

Analysis of a Biometric Authentication Protocol for Signature Creation Application

Towards a Metalogic for Security Protocol Analysis

A High Level Protocol Specification Language for Industrial Security-Sensitive Protocols

Security Analysis of Web-based Identity Federation

Modeling and verification of security protocols

Formally-based semi-automatic implementation of an open security protocol

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

The Secure Sockets Layer (SSL)

How to prove security of communication protocols?

How To Verify A Bluetooth Device Pairing With A Human Eye Oracle

Secure Authentication and Session. State Management for Web Services

CSCI 454/554 Computer and Network Security. Final Exam Review

Chapter 9 Key Management 9.1 Distribution of Public Keys Public Announcement of Public Keys Publicly Available Directory

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

Kerberos: An Authentication Service for Computer Networks by Clifford Neuman and Theodore Ts o. Presented by: Smitha Sundareswaran Chi Tsong Su

ELECTRONIC COMMERCE OBJECTIVE QUESTIONS

How To Find Out If A Key Cycle Is Generated During A Protocol

Adversary Modelling 1

An Improved Authentication Protocol for Session Initiation Protocol Using Smart Card and Elliptic Curve Cryptography

Security Awareness. Wireless Network Security

Automatic Analysis of Browser-based Security Protocols

Formal analysis of EMV

Using etoken for SSL Web Authentication. SSL V3.0 Overview

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

SECURE SIGNATURE BASED CEDAR ROUTING IN MOBILE ADHOC NETWORKS

Towards a Model for Security and Privacy in the Internet of Things

MANAGED FILE TRANSFER: 10 STEPS TO SOX COMPLIANCE

DKIM Enabled Two Factor Authenticated Secure Mail Client

Securing VoIP Networks using graded Protection Levels

Bit Chat: A Peer-to-Peer Instant Messenger

Authentication Applications

GSM and UMTS security

Network Security Protocols

Network Security. Network Security. Security in Computer Networks

Information Security

Q: Why security protocols?

SECURITY THREAT IDENTIFICATION AND TESTING FOR SECURITY PROTOCOLS

Authentication Application

Security: Focus of Control. Authentication

A REVIEW ON ENHANCING DATA SECURITY IN CLOUD COMPUTING USING RSA AND AES ALGORITHMS

Cryptography and Network Security: Summary

N TH THIRD PARTY AUDITING FOR DATA INTEGRITY IN CLOUD. R.K.Ramesh 1, P.Vinoth Kumar 2 and R.Jegadeesan 3 ABSTRACT

Chapter 16: Authentication in Distributed System

Secure Sockets Layer

The Design of Web Based Secure Internet Voting System for Corporate Election

A Formally Verified Device Authentication Protocol Using Casper/FDR

Construction of Social CRM System based on WeChat Public Platform. Linjun Sun

Adding Signer Authentication to an Envelope

Tesira Voice-over-IP Interface. Preliminary Steps. Configuring a Cisco CallManager system to work with Biamp s SVC-2 card

ACL Based Dynamic Network Reachability in Cross Domain

Efficient nonce-based authentication scheme for Session Initiation Protocol

A STRUCTURED APPROACH TO NETWORK SECURITY PROTOCOL IMPLEMENTATION

Chapter 4. Authentication Applications. COSC 490 Network Security Annie Lu 1

IMPLEMENTATION OF AN ELECTRONIC DOCUMENT MANAGEMENT SYSTEM

7 Network Security. 7.1 Introduction 7.2 Improving the Security 7.3 Internet Security Framework. 7.5 Absolute Security?

Research Article. Research of network payment system based on multi-factor authentication

Research Article Cloud-Based RFID Mutual Authentication Protocol without Leaking Location Privacy to the Cloud

Efficient Nonce-based Authentication Scheme for. session initiation protocol

Authentication applications Kerberos X.509 Authentication services E mail security IP security Web security

Self-Assessment of eresearch Compliance with 21 CFR Part 11, Electronic Record; Electronic Signatures

Public Key Applications & Usage A Brief Insight

to hide away details from prying eyes. Pretty Good Privacy (PGP) utilizes many

Authentication Types. Password-based Authentication. Off-Line Password Guessing

The Impact of 21 CFR Part 11 on Product Development

Electronic Voting Protocol Analysis with the Inductive Method

Elements of Applied Cryptography. Key Distribution. Trusted third party: KDC, KTC Diffie-Helmann protocol The man-in-the-middle attack

On the features and challenges of security and privacy in distributed internet of things. C. Anurag Varma CpE /24/2016

ETSI TR V1.2.1 ( )

Transcription:

Technical report: SeVe implementation Luu Anh Tuan 1, Jun Sun 2, Yang Liu 1, and Jin Song Dong 1 1 School of Computing, National University of Singapore {tuanluu,liuyang,dongjs}@comp.nus.edu.sg 2 Singapore University of Technology and Design sunjun@sutd.edu.sg 1 Secerity language comparasion There are many languages to describe the security protocols so far; however, most of them are complicated to use or only suitable for one specific studies but not for all cases. In this section, we will investigate three well-known security languages which are commonly used : Casper, ProVerif and HLPSL. For easy comparison, I give an example description of Needham Schroeder public key protocol in three languages as well as our security language SeVe. Casper: Casper was proposed by Gavin Lowe [3] and aim to specify the security protocols in an easy way. This Casper description is then transformed into CSP specification and transfered to FDR for verifying security goals. There are some advantages of this language: The language is simple and easy to use. The protocol declaration is as close as informal description. The user does not need to describe the intruder behavior except some initial knowledge. However, there are still some short-coming of Casper: The ability of intruder is set by default (they are inject and deflect ability as in our definition) and can not be changed. In many cases, the intruder ability can be restricted or extended based on evironment but cannot specify in Casper. The property descriptions only focus on secrecy and authentication properties. If the user want to verify other properties, he cannot specify it in Casper. The time specification is restricted to session level, but not in message level. For example, the user cannot specify the time used to transfer a message from A to B. He can only specify something like: the session between A and B will take 1 time unit (this time specification is used to specify time protocols which has timestamp inside). HLPSL: HLPSL is the security language which is proposed in AVISPA project [1]. The user can specify the security protocol in HLPSL language and the translator HLPSL2IF (was developed in this project) will translate it into IF language. However, as the aim is translation to IF language, the HLPSL description is proposed toward it:

the protocol is specified in transition states, each state with some conditions will trigger another state. However, from the view of user, it is difficult to described correctly those transition from the informal specification of security protocols. Moreover, only secrecy and authentication properties checking are provided. The intruder ability can not also changed. In the authentication checking, the user need to manually add some signals at the start and end position ofrole runs. ProVerif: ProVerif [2] is a security protocol language proposed by Bruno Blanchet and used in ProVerif tool. This language is based on pi calculus. The ProVerif description is then translated into an abstract representation by Horn clauses and then using Horn logic technique to verify. However, the protocol s description in ProVerif language is far away from informal specification with many rules and reduction that the users need to define by themselves. Moreover, the user also needs to define the rules for attacker. The timestamp is defined using constant term which is not correct in semantic. SeVe language From the advantage and disadvantages of other security protocol languages, we define SeVe language which can be considered as the extension of Casper language with some improvements. First of all, we support many kinds of security properties. Secondly, SeVe allow the flexibility in intruder ability. Thirdly, the user are free from specifying intruder rules and behaviors. In addition, SeVe support time specification in message level and in verification. The next section will show the structure of a SeVe language and the meaning of each keyword. The last section introduces the grammar of SeVe language. 2 SeVe structure In this section, we demonstrate the structure of a SeVe specification. However, a typical protocol may not need all of these elements. The keyword with obvious name will have the self-explanation meaning. #Variables declare the terms used in protocol Timestamps the name of timestamps used in protocol Time allow the time tolerance in timestamp checking Agents declare the trusted agents Server declare the server Nonces declare the nonces Server keys declare the server keys Session keys Signature keys Constants declare the constant value used in protocol Functions declare the name of function used in protocol #Initial declare the initial knowledge of participants Agent knows {knowledge} at initial, each agent have some knowledge #Protocol description main part declare the messages tranfer in protocol AgentA AgentB : term (within[number])? agenta sends agentb a term

which takes number time unit to come #System declare the actual name and number of initiators, and responders Initiator declare the real name and number of initiators in protocols. Responder declare the real name and number of responders in protocols. Server declare the server name. Repeat declare the number of repeated time for each transaction. #Intruder declare the information of intruder here Intruder declare the intruder name Intruder knowledge declare the initial knowledge of intruder. Intruder prepare declare the message intruder prepares for agent to send (used in coercion resistence privacy type) Intruder ability specify the ability of intruder (inject, deflect, eavesdrop or jam) #Verification declare the verification properties Data secrecy secrecy properties Authentication authentication properties Non repudiation non repudiation properties Integrity Integrity properties Fairness Fairness properties Privacy simple privacy properties Receipt freeness receiptfreeness privacy properties Coercion r esistance coercionresistanceprivacyproperties We also have specification for time checking, such as if agenta sends message then agentb evetually/always receives message within n time units (for future verification). 3 SeVe Grammar Program section P rogram ::= #Variables V ariables declare #Initial Initial declare #Protocol P rotocol declare #System System declare [#Intruder Intruder declare] [#Verification V erif ication declare]

Declaration section V ariables declare ::= [Timestamps: List Id] [Time allow: Number] Agents: List Id [Server: List Id] [Nonces: List Id] [Public keys: List Id] [Server keys: List Id] [Signature keys: List Id] [Session keys: List Id] [Constants: List Id] [Functions: List Id] List Id ::= Id Id, List Id Initial knowledge section Initial declare ::= Id knows {msg} Id knows {msg}, Initial declare Protocol description section P rotocol declare ::= Id Id : message Id Id : message, P rotocol declare message ::= msg within[number] msg msg ::= msg1 msg1, msg {msg}id msg + msg Id(msg) %function declare msg1 ::= Id Id, msg1 Actual system section System declare ::= [Initiator: List Id] [Responder: List Id] [Server: List Id] Intruder section

Intruder declare ::= Intruder: Id [Intruder knowledge: msg1] [Intruder ability: List ability] [Intruder prepare: List prepare] List ability ::= [Inject], [Deflect] [Transmit] [Eavesdrop] [Jam] List prepare ::= {msg} for Id; Verification section V erif ication declare ::= spec temporal spec spec, V erif ication declare temporal spec, V erif ication declare spec ::= [Data secrecy: list secrecy] [Authentication: list auth] [Non repudiation: list condition1] [Fairness: list condition2] [Privacy: Id] [Receipt freeness: Id] [Coercion resistance: Id] list secrecy ::= msg1 of Id msg1 of Id, list secrecy list auth ::= Id is authenticated with Id [using{id}] Id is authenticated with Id [using{msg}], list auth list condition1 ::= {Id, Id, msg} {Id, Id, msg}, list condition1 list condition2 ::= {Id, if msg then msg} {Id, if msg then msg}, list condition2 temporal spec ::= if temp f ormula then temp f ormula [within[number]] temp f ormula ::= Id send msg Id receive msg

Basic definition Identifier ::= letter{letter digit} Number ::= 1.. 9 digit letter ::= a.. z A.. Z digit ::= 0.. 9 References 1. A. Armando, D. Basin, Y. Boichut, Y. Chevalier, L. Compagna, J. Cuellar, P. H. Drielsma, P. Heam, O. Kouchnarenko, J. Mantovani, S. Modersheim, D. von Oheimb, M. R., J. Santiago, M. Turuani, L. Vigano, and L. Vigneron. The AVISPA Tool for the Automated Validation of Internet Security Protocols and Applications. In Proceedings of CAV 2005, 2005. 2. B. Blanchet. Automatic Verification of Correspondences for Security Protocols. volume 19, pages 363 434. Journal of Computer Security, 2009. 3. L. Gavin. Casper : A Compiler for the Analysis of Security Protocols. In Journal of Computer Security, volume 6, pages 53 84, 1998.