Elements of Security

Similar documents
Spring 2010: CS419 Computer Security

Cryptographic Checksums

Session key establishment protocols

Session key establishment protocols

Authentication Handshakes

CSC 474/574 Information Systems Security

Protocols II. Computer Security Lecture 12. David Aspinall. 17th February School of Informatics University of Edinburgh

Key Management. Digital signatures: classical and public key Classic and Public Key exchange. Handwritten Signature

Chapter 9: Key Management

L7: Key Distributions. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806

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

Overview. Cryptographic key infrastructure Certificates. May 13, 2004 ECS 235 Slide #1. Notation

CS Protocol Design. Prof. Clarkson Spring 2017

CIS 6930/4930 Computer and Network Security. Topic 6.2 Authentication Protocols

What did we talk about last time? Public key cryptography A little number theory

Security protocols and their verification. Mark Ryan University of Birmingham

Computer Networks & Security 2016/2017

Outline More Security Protocols CS 239 Computer Security February 6, 2006

Outline. More Security Protocols CS 239 Security for System Software April 22, Needham-Schroeder Key Exchange

Outline More Security Protocols CS 239 Computer Security February 4, 2004

Topics. Dramatis Personae Cathy, the Computer, trusted 3 rd party. Cryptographic Protocols

Grenzen der Kryptographie

Lecture 1: Course Introduction

1.264 Lecture 27. Security protocols Symmetric cryptography. Next class: Anderson chapter 10. Exercise due after class

CSC 482/582: Computer Security. Security Protocols

Security Handshake Pitfalls

BAN Logic. Logic of Authentication 1. BAN Logic. Source. The language of BAN. The language of BAN. Protocol 1 (Needham-Schroeder Shared-Key) [NS78]

CS Protocols. Prof. Clarkson Spring 2016

Network Security CHAPTER 31. Solutions to Review Questions and Exercises. Review Questions

0/41. Alice Who? Authentication Protocols. Andreas Zeller/Stephan Neuhaus. Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken

Applied Cryptography Basic Protocols

CSCI 667: Concepts of Computer Security. Lecture 9. Prof. Adwait Nadkarni

Module: Cryptographic Protocols. Professor Patrick McDaniel Spring CMPSC443 - Introduction to Computer and Network Security

Cryptography & Key Exchange Protocols. Faculty of Computer Science & Engineering HCMC University of Technology

User Authentication Protocols Week 7

Data Security and Privacy. Topic 14: Authentication and Key Establishment

User Authentication Protocols

Security Handshake Pitfalls

Outline. Login w/ Shared Secret: Variant 1. Login With Shared Secret: Variant 2. Login Only Authentication (One Way) Mutual Authentication

Cristina Nita-Rotaru. CS355: Cryptography. Lecture 17: X509. PGP. Authentication protocols. Key establishment.

Session Key Distribution

SEMINAR REPORT ON BAN LOGIC

Outline Key Management CS 239 Computer Security February 9, 2004

Computer Security. 08r. Pre-exam 2 Last-minute Review Cryptography. Paul Krzyzanowski. Rutgers University. Spring 2018

Secure Sockets Layer (SSL) / Transport Layer Security (TLS)

Cryptographic Protocols 1

Key Establishment. Chester Rebeiro IIT Madras. Stinson : Chapter 10

CS 161 Computer Security

Chapter 10: Key Management

Acknowledgments. CSE565: Computer Security Lectures 16 & 17 Authentication & Applications

Applied Cryptography and Computer Security CSE 664 Spring 2017

Key Agreement. Guilin Wang. School of Computer Science, University of Birmingham

Network Security (NetSec)

Cryptography and Network Security Chapter 14

06/02/ Local & Metropolitan Area Networks. 0. Overview. Terminology ACOE322. Lecture 8 Network Security

Cryptography CS 555. Topic 16: Key Management and The Need for Public Key Cryptography. CS555 Spring 2012/Topic 16 1

Network Security and Internet Protocols

Lecture 4: Authentication Protocols

(2½ hours) Total Marks: 75

Digital Signatures. Secure Digest Functions

Cryptography and Network Security

Fall 2010/Lecture 32 1

Cryptology Part 1. Terminology. Basic Approaches to Cryptography. Basic Approaches to Cryptography: (1) Transposition (continued)

Lecture 7 - Applied Cryptography

Security: Cryptography

Logic of Authentication

Lecture Nov. 21 st 2006 Dan Wendlandt ISP D ISP B ISP C ISP A. Bob. Alice. Denial-of-Service. Password Cracking. Traffic.

Contents Digital Signatures Digital Signature Properties Direct Digital Signatures

6. Security Handshake Pitfalls Contents

Issues. Separation of. Distributed system security. Security services. Security policies. Security mechanism

Mechanising BAN Kerberos by the Inductive Method

T Cryptography and Data Security

CPSC 467b: Cryptography and Computer Security

Information Security CS 526

CSE 3461/5461: Introduction to Computer Networking and Internet Technologies. Network Security. Presentation L

Modelling and Analysing of Security Protocol: Lecture 1. Introductions to Modelling Protocols. Tom Chothia CWI

Information Security & Privacy

Lecture 5: Protocols - Authentication and Key Exchange* CS 392/6813: Computer Security Fall Nitesh Saxena

Security. Communication security. System Security

L13. Reviews. Rocky K. C. Chang, April 10, 2015

Introduction. Trusted Intermediaries. CSC/ECE 574 Computer and Network Security. Outline. CSC/ECE 574 Computer and Network Security.

Today s Lecture. Secure Communication. A Simple Protocol. Remote Authentication. A Simple Protocol. Rules. I m Alice. I m Alice

22-security.txt Tue Nov 27 09:13: Notes on Security Protocols , Fall 2012 Carnegie Mellon University Randal E.

CSE BAN Logic Presentation

CIS 6930/4930 Computer and Network Security. Topic 7. Trusted Intermediaries

From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design. Edition 4 Pearson Education 2005

Trust-Propagation Based Authentication Protocol in Multihop Wireless Home Networks

Proofs for Key Establishment Protocols

CPSC 467: Cryptography and Computer Security

Security in ECE Systems

Network Security Chapter 8

Network Security. Chapter 7 Cryptographic Protocols

Network Security. Chapter 8. MYcsvtu Notes.

Cryptography and Network Security Chapter 13. Digital Signatures & Authentication Protocols

Formal Methods for Assuring Security of Computer Networks

CSE 127: Computer Security Cryptography. Kirill Levchenko

Lecture 15: Cryptographic algorithms

1 Identification protocols

CPSC 467b: Cryptography and Computer Security

CIS 4360 Secure Computer Systems Applied Cryptography

Transcription:

Elements of Security Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: April 8, 2015 at 12:47 Slideset 7: 1

Car Talk Puzzler You have a friend in a police state and want to send a valuable item securely. You have a lockbox and a lock, but don t share a key. You can t leave the box unlocked. If you send a key through the mail, the police will intercept it and copy it. Design a scheme to get the item to your friend securely? Slideset 7: 2

One Possible Answer Consider this sequence of steps: 1 You put your item into the box, attach your lock to the clasp, and mail the box to your friend. 2 He adds his own lock, for which he has the key, and mails the box back to you. 3 You remove your lock and mail the box back to him. He now removes his lock and opens the box. Does it work? Any problems with this scheme? Slideset 7: 3

What s This Got to do with Computing? The procedure just described could be regarded as a protocol, to solve a communication-related goal. What specific goal in this case? Slideset 7: 4

What s This Got to do with Computing? The procedure just described could be regarded as a protocol, to solve a communication-related goal. What specific goal in this case? Send some content securely in a hostile or untrustworthy environment, when the two parties don t already share a secret/key. You might implement the same protocol to send a message confidentially across the Internet, where the valuable thing is the contents of a secret message; the locks are encryptions with appropriate cryptographic keys. Slideset 7: 5

The Protocol Here s the corresponding cryptographic protocol: 1 A B : E Ka (M) 2 B A : E Kb (E Ka (M)) 3 A B : E Kb (M) Can you see a problem with this protocol? Does this really correspond to the original physical problem? What characteristics must the encryption have? Slideset 7: 6

Commutative Encryption? You must reach inside his encryption to undo yours. One way this could work is if the ciphers commute. Cipher 1 (k 1, Cipher 2 (k 2, msg)) = Cipher 2 (k 2, Cipher 1 (k1, msg)) Most encryption algorithms don t have this property. Can you think of an encryption algorithm that does? Does one even exist? Slideset 7: 7

One Time Pad An encryption algorithm that does commute is the one time pad: exclusive or (XOR) your message with a randomly generated string (key) of the same length. Though simple, the one time pad is theoretically unbreakable. Seeing the ciphertext conveys no information about the corresponding plaintext. Slideset 7: 8

What s Exclusive Or? To XOR a message means to apply the following function on a bitwise basis: Example: A B A B 0 0 0 0 1 1 1 0 1 1 1 0 Message: 11101001010111 Key: 10110101110010 Encrypted message: 01011100100101 To decrypt the message, you just XOR again with the same Key. Slideset 7: 9

Properties of XOR To encrypt a message by XOR ing it with a randomly generated string of the same length is called using a one-time pad. It is a theoretically unbreakable encryption algorithm. Here are some of the algebraic properties of XOR: x 0 = x x x = 0 x y = y x (x y) z = x (y z) One implication of these rules is that if you have two x s anywhere within a nest of XORs, they cancel each other out. Slideset 7: 10

Here s the Protocol Let K a be a random string generated by A, and K b be a random string generated by B. 1 A B : M K a 2 B A : (M K a ) K b 3 A B : ((M K a ) K b ) K a ) In step 3, the two applications of K a cancel out, leaving (M K b ), which B can easily decrypt with his own key K b. Slideset 7: 11

Whoops! Even though the one-time pad is a theoretically unbreakable cipher, there s a reason it s called one-time. Our protocol is fundamentally flawed. Can you see why? Slideset 7: 12

Whoops! Even though the one-time pad is a theoretically unbreakable cipher, there s a reason it s called one-time. Our protocol is fundamentally flawed. Can you see why? An evesdropper who records the three messages can XOR combinations of them to extract any of M, K a, and K b. Try it for yourself. Slideset 7: 13

Sometimes a security-related interaction can be handled in a single message from one subject to another. Sometimes however, it is necessary to conduct a structured dialogue. This is called a protocol. A protocol involving cryptographic primitives is called a cryptographic protocol. A cryptographic protocol may involve two, three, or more players or principals. Some principals may have specific roles and certain assumed properties. For example, some protocols involve a trusted authentication server or certification authority. Slideset 7: 14

Definition Here is one way to define cryptographic protocol. Definition: A protocol is a structured dialogue among two or more parties in a distributed context controlling the syntax, semantics, and synchronization of communication, and designed to accomplish a communication-related function. Definition: A cryptographic protocol is a protocol using cryptographic mechanisms to accomplish some security-related function. Slideset 7: 15

Possible Goals Among the goals of a cryptographic protocol may be one or more of the following: Key agreement or establishment Entity authentication Symmetric encryption and message authentication material construction Secured application-level data transport Non-repudiation methods Slideset 7: 16

A Protocol Example Consider the following simple protocol: 1. A B : {{K} K 1} Kb a 2. B A : {{K} K 1} Ka b Informal goal: A shares with B a secret key K, and each party is authenticated to the other. What are the assumptions? Precisely what are the goals? Are they satisfied? How can you be sure? Slideset 7: 17

A Protocol Example Consider the following simple protocol: 1. A B : {{K} K 1} Kb a 2. B A : {{K} K 1} Ka b Informal goal: A shares with B a secret key K, and each party is authenticated to the other. What are the assumptions? Precisely what are the goals? Are they satisfied? How can you be sure? This protocol is fatally flawed. Can you see how? Slideset 7: 18

Crypto. Protocols (Cont.) The typical assumption of cryptographic protocols is that several principals in a distributed setting are attempting to establish a secure communication in the face of a hostile environment. The protocol must be robust and reliable in the face of a determined attacker. A protocol involves a sequence of steps of message exchange. A step in the protocol is of the form: A B : M meaning that principal A sends to principal B the message M. Because of the distributed nature of the system and the possibility of malicious actors, there is typically no guarantee that B receives the message, or is even expecting the message. Slideset 7: 19

Taking an Abstract View There is much detail involved in making a protocol work, particularly at the lower levels of the implementation hierarchy. We will usually ignore issues like: What are the mechanisms of message transmission? How does a principal know that a decryption has succeeded? How can you reliably parse a message of multiple components? If a message contains the name of a principal, what is the form of that name? How are public keys maintained and distributed? Those are all important issues in protocol implementation, but typically swept under the rug in abstract analysis. Slideset 7: 20

Crypto. Protocols (Cont.) Often the message M is highly structured and may contain one or more encrypted portions. The protocol functions in a specific cryptographic context. For example, the principals might (or might not) be assumed to operate within a public key infrastructure (PKI) in which each has a private key and generally known public key. It is important to understand the implied context. A message may contain various parts: M 1,...M n. We assume that these are concatenated or otherwise packaged into a single message in such a way that the receiver can recognize and extract the various components. Slideset 7: 21

Crypto. Protocols (Cont.) Descriptions of protocols often use the notation {M} k to denote what we have sometimes designated by E(k, M), i.e., the encryption of the message M using key k. Notice that decryption and encryption are essentially identical algorithms. Hence, a decryption step would be similarly denoted. One consequence of this is that successive layers of encryption may actually cancel others. For example, {{M} K 1} KR = M. R and the decryption of a symmetrically encrypted message {M} K is actually {{M} K } K = M. Slideset 7: 22

Crypto. Protocols (Cont.) An analysis of any protocol attempts to answer the following types of questions: What are the goals of the protocol? What does the protocol actually achieve? In particular, does it achieve its stated objective? Does this protocol include unnecessary steps or messages? Does this protocol need more assumptions than another might? Does it encrypt items that could be sent in the clear? Is it susceptible to attack? What would an attack look like? Slideset 7: 23

Attacks Protocols have been published and in use for years before someone notes a significant vulnerability. A difficult aspect of analyzing cryptographic protocols is answering the question: What constitutes an attack? Are both authentication and secrecy assured? Is it possible to impersonate one or more of the parties? Is it possible to interject messages from an earlier exchange (replay attack)? What tools can an attacker deploy? *If any private key is compromised, what are the consequences? *If an earlier session key is compromised, what are the consequences in the current context? Are the last two fair questions? Slideset 7: 24

Attacks on Protocols This is a partial list of attacks on protocols: Known-key attack: attacker gains some keys used previously and then uses this info to attack the protocol and possibly determine new keys. Replay: attacker records a communication session and replays some or all of it at a later time. Impersonation: attacker assumes the identity of one of the legitimate parties in a network. Man-in-the-Middle: attacker interposes himself between two parties and pretends to each to be the other. Interleaving attack: attacker injects spurious messages into a protocol run to disrupt or subvert it. Slideset 7: 25

Attackers The designer of a protocol should assume that an attacker can access all of the traffic and interject his own messages into the flow. Can the attackers messages be arbitrary? Why not? What restrictions do we impose on the attacker? The protocol should be robust in the face of such a determined and resourceful attacker. Slideset 7: 26

Important Point About Protocols Due to the distributed nature of the system, protocols are typically highly asynchronous. A party to a protocol probably will not know anything about the current run of the protocol except the messages it has received and sent. Consequently, except for the initiator of the protocol, other parties to the protocol will not even know that they are participating until they receive their first message. That message must be of a form that they can identify and respond to. Slideset 7: 27

Needham-Schroeder Protocol Many existing protocols are derived from one proposed (1978) by Needham and Schroeder, including the widely used Kerberos authentication protocol suite. The protocol is a shared-key authentication protocol designed to generate and propagate a session key, i.e., a shared key for subsequent symmetrically encrypted communication. Slideset 7: 28

Needham-Schroeder There are three principals: A and B, two principals desiring mutual communication, and S, a trusted key server. Kas S Kbs A Kab B It is assumed that A and B have already established secure symmetric communication with S using shared keys K as and K bs, respectively. Slideset 7: 29

Nonces and Timestamps The protocol also uses nonces (short for number used once ), randomly generated values included in messages. If a nonce is generated and sent by A in one step and returned by B in a later step, A knows that B s message is fresh and not a replay from an earlier exchange. Note that a nonce is not a timestamp. It is designed to prevent replay attacks and show that a message is fresh. The only assumption is that it has not been used (with high probability) in any earlier interchange. If you want to show that a message is recent, as opposed to fresh, use a timestamp. A timestamp can be used in a context in which messages have a limited useful lifetime. However, this introduces a range of issues regarding clock synchronization. Slideset 7: 30

Needham-Schroeder (Cont.) The protocol is as follows: 1 A S : A, B, N a 2 S A : {N a, B, K ab, {K ab, A} Kbs } Kas 3 A B : {K ab, A} Kbs 4 B A : {N b } Kab 5 A B : {N b 1} Kab Here N a and N b are nonces. Two questions to ask of any step in any protocol: What is the sender trying to say in her message? What is the receiver entitled to believe after receiving the message? Slideset 7: 31

Needham-Schroeder Step 1 The first step of the protocol is: 1 A S : A, B, N a What is the sender trying to say in her message? Slideset 7: 32

Needham-Schroeder Step 1 The first step of the protocol is: 1 A S : A, B, N a What is the sender trying to say in her message? Hey, S! I m A and I want to talk to B, so generate a new key for us. And by the way, here s a nonce that you can use in subsequent messages so we ll be sure that you re responding to this request. What is the receiver entitled to believe after receiving the message? Slideset 7: 33

Needham-Schroeder Step 1 The first step of the protocol is: 1 A S : A, B, N a What is the sender trying to say in her message? Hey, S! I m A and I want to talk to B, so generate a new key for us. And by the way, here s a nonce that you can use in subsequent messages so we ll be sure that you re responding to this request. What is the receiver entitled to believe after receiving the message? A wants to talk to B, so I need to generate a new session key and get it to them. I should use N a in the response so that they ll know it s fresh. Slideset 7: 34

Needham-Schroeder Step 2 The second step of the protocol is: 2 S A : {N a, B, K ab, {K ab, A} Kbs } Kas Answer the two questions for this step. Slideset 7: 35

Needham-Schroeder Step 2 The second step of the protocol is: 2 S A : {N a, B, K ab, {K ab, A} Kbs } Kas Answer the two questions for this step. Meaning of Step 2: S generates an appropriate session key K ab for use by A and B and sends it to A in a message encrypted with their shared key K as. Why is the other information included? What can A infer upon receipt of this message? Slideset 7: 36

Needham-Schroeder Step 3 The third step of the protocol is: 3 A B : {K ab, A} Kbs Meaning of Step 3: A relays the new session key to B. What does B know after this step? Slideset 7: 37

Needham-Schroeder Step 4 The fourth step of the protocol is: 4 B A : {N b } Kab Meaning of Step 4: B sends an acknowledgement to A. Why is this necessary? What can A infer from the receipt of this message? Slideset 7: 38

Needham-Schroeder Step 5 The fifth and final step of the protocol is: 5 A B : {N b 1} Kab Meaning of Step 5?: What is the reason for this step? What do A and B now believe is true? What has been accomplished? Slideset 7: 39

Needham-Schroeder Here s the complete protocol again. Is it good? What does that mean? 1 A S : A, B, N a 2 S A : {N a, B, K ab, {K ab, A} Kbs } Kas 3 A B : {K ab, A} Kbs 4 B A : {N b } Kab 5 A B : {N b 1} Kab Slideset 7: 40

Attacks on N-S Recall our earlier list of some things to ask about a protocol. Are both authentication and secrecy assured? Is it possible to impersonate one or more of the parties? Is it possible to interject messages from an earlier exchange (replay attack)? What tools can an attacker deploy? If any private key is compromised, what are the consequences? If an earlier session key is compromised, what are the consequences in the current context? Slideset 7: 41

Flaws in Needham-Schroeder Denning and Sacco pointed out that the compromise of a session key has bad consequences. An intruder can reuse an old session key and pass it off as a new one as though it were fresh. What would such an attack look like? 1 A S : A, B, N a 2 S A : {N a, B, K ab, {K ab, A} Kbs } Kas 3 A B : {K ab, A} Kbs 4 B A : {N b } Kab 5 A B : {N b 1} Kab Slideset 7: 42

Flaws in Needham-Schroeder Claim: At the end of the protocol, A knows it is talking to B and vice versa. Actually, the holder of K as knows it is talking to the holder of K bs. Problem: Message 3 is not protected by nonces. There is no way for B to know if the K ab it receives is current. An intruder has unlimited time to crack an old session key and reuse it as if it were fresh. What does that attack look like? Example: (from Mike Dahlin) a disgruntled employee runs the first few steps of the protocol multiple times, gathering up a bunch of tickets {K ab, A} Kbs for all the different servers B in the system. After he is fired, he can still log onto all of the company s servers. Slideset 7: 43

Flaws in Needham-Schroeder Bauer, et al. pointed out that if key K as were compromised, anyone could impersonate A and establish communication with any other party. This is true, even if A s key is later changed. Describe this attack. 1 A S : A, B, N a 2 S A : {N a, B, K ab, {K ab, A} Kbs } Kas 3 A B : {K ab, A} Kbs 4 B A : {N b } Kab 5 A B : {N b 1} Kab These flaws persisted for almost 10 years before they were discovered. Slideset 7: 44

Is it Fair? The attacks discovered by Denning and Sacco and by Bauer, et al. ask what happens if a key is broken. Is it fair to ask that question? Isn t a presumption of any cryptographic protocol that the encryption is strong? How might you address this question if you re a protocol designer? Slideset 7: 45

NS (Public Key) Needham and Schroeder also suggested a protocol based on public key cryptography. The goal is for A and B to establish communication and exchange two independent, secret numbers. As with their shared key protocol, a third party S is involved. Here the assumption is that public keys are not universally known, so a server is necessary to manage the keys. S acts as a certification authority and disseminates public keys. Slideset 7: 46

NS Public Key (Cont.) Here K x refers to X s public key, and Kx 1 private key. 1 A S : A, B to the corresponding 2 S A : {K b, B} K 1 S 3 A B : {N a, A} Kb 4 B S : B, A 5 S B : {K a, A} K 1 S 6 B A : {N a, N b } Ka 7 A B : {N b } Kb Here N a and N b are the two numbers that they wish to exchange. What does each party know after each step? Slideset 7: 47

NS Public Key The Needham-Schroeder Public Key protocol is susceptible to a man in the middle attack. If an attacker C can persuade A to begin a communication with I, then C can pass on the traffic to B and convince B that he is actually talking to A. What does that attack look like? Note also that this protocol does not make assumptions about PKI that are typically made today. That is, there is usually not a special key server in the system. Slideset 7: 48

Otway-Rees Another very important and much studied protocol is the Otway-Rees protocol. Below is one of several variants. 1 A B : M, A, B, {N a, M, A, B} Kas 2 B S : M, A, B, {N a, M, A, B} Kas, {M, N b, A, B} Kbs 3 S B : M, {N a, K ab } Kas, {N b, K ab } Kbs 4 B A : M, {N a, K ab } Kas What is the goal of the protocol? What purpose do the parts of each message play? What do the principals believe after each step? Slideset 7: 49

From Wikipedia One problem with this protocol is that a malicious intruder can arrange for A and B to end up with different keys. Here is how: after A and B execute the first three messages, B has received the key K ab. The intruder then intercepts the fourth message. S/he resends message 2, which results in S generating a new key K ab, subsequently sent to B. The intruder intercepts this message too, but sends to A the part of it that B would have sent to A. So now A has finally received the expected fourth message, but with K ab instead of K ab. Another problem is that although the server tells B that A used a nonce, B doesn t know if this was a replay of an old message. Slideset 7: 50

A Flawed Protocol The following is a simple protocol that we introduced previously. The idea is for A to communicate a session key K securely to B, and receive an acknowledgement such that A knows that B has the key. Can you find the flaw? 1. A B : {{K} K 1} Kb a 2. B A : {{K} K 1} Ka b How would you correct it? Slideset 7: 51

Verification of Protocols can be notoriously difficult to get correct. Flaws have been discovered in protocols published many years before. Hence, it would be nice to be able to reason formally about protocol correctness. One major difficulty is that you d like to ensure that no spy can obtain keys or other information intended to remain secret. However, it is tricky to add the spy into the protocol description and delimit what capabilities the spy has. Slideset 7: 52

Prudent Engineering Martín Abadi and Roger Needham in Prudent Engineering Practice for give advice for constructing secure protocols: Principle 1: Every message should say what it means. The interpretation should depend only on the content. Principle 2: The conditions for a message to be acted upon should be clearly set out so that someone reviewing a design may see whether they are acceptable. Principle 3: Mention the principal s name explicitly in the protocol, if the identity is essential to the message meaning. Principle 4: Be clear about why encryption is being done secrecy, authentication, binding, etc. Slideset 7: 53

Prudent Engineering (cont.) Principle 5: A signature on encrypted material doesn t imply that the signer knows the contents. Principle 6: Be clear about what a nonce means temporal succession, association, etc. Principle 7: When using a predictable value, protect it from a replay attack. Principle 8: If timestamps are used for freshness, watch out for clock skew. Principle 9: Recent use of a key does not mean the key is new. Principle 10: It should be possible to tell what encoding is used, to what protocol it belongs, and which step in the protocol. Principle 11: The designer should understand the trust relationships his protocol depends on. Slideset 7: 54