Formal security analysis of authentication in an asynchronous - - PowerPoint PPT Presentation

formal security analysis of authentication in an
SMART_READER_LITE
LIVE PREVIEW

Formal security analysis of authentication in an asynchronous - - PowerPoint PPT Presentation

Formal security analysis of authentication in an asynchronous communication model Bsc thesis presentation Jacob Wahlgren & Sam Hedin June 18 KTH 1 Outline Introduction Background Secure Data Sharing Methods Results Owner event


slide-1
SLIDE 1

Formal security analysis of authentication in an asynchronous communication model

Bsc thesis presentation

Jacob Wahlgren & Sam Hedin June 18

KTH 1

slide-2
SLIDE 2

Outline

Introduction Background Secure Data Sharing Methods Results Owner event Access event Registration and authentication in basic mode Conclusion

2

slide-3
SLIDE 3

Introduction

slide-4
SLIDE 4

Topic

  • Secure Data Sharing protocol
  • Formal analysis tool Tamarin Prover
  • Focus on authentication

3

slide-5
SLIDE 5

Relevance of formal security analysis

  • More complex systems
  • High cost of failure
  • Competitive advantage
  • Authenticity is key

4

slide-6
SLIDE 6

Objectives

Does the authentication in the Secure Data Sharing protocol satisfy its intended security goals?

5

slide-7
SLIDE 7

Objectives

Does the authentication in the Secure Data Sharing protocol satisfy its intended security goals?

  • 1. Identify key concerns
  • 2. Model the protocol and formulate requirements as lemmas
  • 3. Draw conclusions about the security

5

slide-8
SLIDE 8

Background

slide-9
SLIDE 9

Formal verification

  • 1. Create a model of the system
  • 2. Describe the properties to be verified
  • 3. Execute the tool to confirm if properties hold

6

slide-10
SLIDE 10

Tamarin Prover introduction

  • Verification tool for security protocols
  • Developed at ETH Z¨

urich

  • Inspired by ProVerif
  • Used to analyse 5G authentication and TLSv1.3

7

slide-11
SLIDE 11

Tamarin Prover modeling

  • System state is a multiset of facts
  • State transitions specified by rewriting system, using rules
  • Properties to verify specified by lemmas using temporal logic
  • Resulting traces are visualised

8

slide-12
SLIDE 12

Tamarin Prover example

Example trace visualisation showing rules and facts.

9

slide-13
SLIDE 13

Authenticity

10

slide-14
SLIDE 14

Authenticity

Ensuring that you can know who sent a message.

10

slide-15
SLIDE 15

Authenticity

Ensuring that you can know who sent a message.

  • Authentication = confirming authenticity
  • Replay attacks

10

slide-16
SLIDE 16

Digital signatures

  • Used for authentication
  • Asymmetric cryptography
  • Encrypt hash of the message

11

slide-17
SLIDE 17

Secure Data Sharing

slide-18
SLIDE 18

The SDS protocol

  • Proprietary protocol, public security model
  • Developed by Stockholm startup
  • Not released yet

12

slide-19
SLIDE 19

Protocol goals

  • Encrypted data stored on server
  • Access control per data item
  • Clients participate asynchronously
  • Data items kept up to date through notifications

13

slide-20
SLIDE 20

Security requirements

In end-to-end mode:

  • Only user’s device is trusted
  • Confidentiality, integrity, authenticity, authorization
  • Untrusted server operator

In basic mode:

  • Assume honest server operator

14

slide-21
SLIDE 21

Methods

slide-22
SLIDE 22

Methods

15

slide-23
SLIDE 23

Methods

  • We began by studying different tools used for formal analysis, and the theory of

information security.

15

slide-24
SLIDE 24

Methods

  • We began by studying different tools used for formal analysis, and the theory of

information security.

  • We then followed the tutorials in the Tamarin Prover manual to learn the basics.

15

slide-25
SLIDE 25

Methods

  • We began by studying different tools used for formal analysis, and the theory of

information security.

  • We then followed the tutorials in the Tamarin Prover manual to learn the basics.
  • As a finishing preparation, we familiarized ourselves with the SDS protocol. We

worked with v 0.03 and 0.04

15

slide-26
SLIDE 26

Results

slide-27
SLIDE 27

Results

16

slide-28
SLIDE 28

Results

  • The algorithms in the system were modeled in Tamarin Prover with the use of

rules.

16

slide-29
SLIDE 29

Results

  • The algorithms in the system were modeled in Tamarin Prover with the use of

rules.

  • Sanity checks - exists-trace - lemmas were written.

16

slide-30
SLIDE 30

Results

  • The algorithms in the system were modeled in Tamarin Prover with the use of

rules.

  • Sanity checks - exists-trace - lemmas were written.
  • Authenticity requirements for each algorithm were identified, and expressed as

lemmas.

16

slide-31
SLIDE 31

Results

  • The algorithms in the system were modeled in Tamarin Prover with the use of

rules.

  • Sanity checks - exists-trace - lemmas were written.
  • Authenticity requirements for each algorithm were identified, and expressed as

lemmas.

  • Tamarin was used to prove or disprove the lemmas.

16

slide-32
SLIDE 32

Owner event: Background

17

slide-33
SLIDE 33

Owner event: Background

  • The system contains data objects, which consists of fields of data.

17

slide-34
SLIDE 34

Owner event: Background

  • The system contains data objects, which consists of fields of data.
  • An object can be shared between users. Different users can have different access

levels.

17

slide-35
SLIDE 35

Owner event: Background

  • The system contains data objects, which consists of fields of data.
  • An object can be shared between users. Different users can have different access

levels.

  • Each object has one owner, ownership can be transferred with the use of an
  • wner event

17

slide-36
SLIDE 36

Owner event: Background

  • The system contains data objects, which consists of fields of data.
  • An object can be shared between users. Different users can have different access

levels.

  • Each object has one owner, ownership can be transferred with the use of an
  • wner event
  • Owner events are authenticated with a digital signature. In the analysed version
  • f the protocol, the signature was computed by concatenating the user ids of the

current owner, the new owner and the object id.

17

slide-37
SLIDE 37

Owner event: Model

18

slide-38
SLIDE 38

Owner event: Model

  • The creation of an object is modeled by the rule create_object.

18

slide-39
SLIDE 39

Owner event: Model

  • The creation of an object is modeled by the rule create_object.
  • When an object is created, the owner event signature is sent out to the network.

18

slide-40
SLIDE 40

Owner event: Model

  • The creation of an object is modeled by the rule create_object.
  • When an object is created, the owner event signature is sent out to the network.
  • rule create_object:

//If there is a key for a user L [!UserKey($L, ~lk)]

18

slide-41
SLIDE 41

Owner event: Model

  • The creation of an object is modeled by the rule create_object.
  • When an object is created, the owner event signature is sent out to the network.
  • rule create_object:

//If there is a key for a user L [!UserKey($L, ~lk)]

  • //It is posssible for the user to create an object

//and become its local owner

  • -[CreateObject($O, $L),

LocalOwner($O, $L, $L)]->

18

slide-42
SLIDE 42

Owner event: Model

  • The creation of an object is modeled by the rule create_object.
  • When an object is created, the owner event signature is sent out to the network.
  • rule create_object:

//If there is a key for a user L [!UserKey($L, ~lk)]

  • //It is posssible for the user to create an object

//and become its local owner

  • -[CreateObject($O, $L),

LocalOwner($O, $L, $L)]->

  • //In this case, the owner event is self-signed

[Out(sign(<$L, $L, $O>, ~lk)), LocalOwner($O, $L, $L)]

18

slide-43
SLIDE 43

Owner event: Model pt. 2

19

slide-44
SLIDE 44

Owner event: Model pt. 2

  • The rule receive_owner takes in a signature and records the stated object owner.

19

slide-45
SLIDE 45

Owner event: Model pt. 2

  • The rule receive_owner takes in a signature and records the stated object owner.
  • Finally, the change_owner rule allows the owner of an already existing object to

be changed.

19

slide-46
SLIDE 46

Owner event: Model pt. 2

  • The rule receive_owner takes in a signature and records the stated object owner.
  • Finally, the change_owner rule allows the owner of an already existing object to

be changed.

  • Because of how bizarre and terse Tamarin Prover code can be, I will not go into

much more code in this presentation.

19

slide-47
SLIDE 47

Owner event: Model pt. 2

  • The rule receive_owner takes in a signature and records the stated object owner.
  • Finally, the change_owner rule allows the owner of an already existing object to

be changed.

  • Because of how bizarre and terse Tamarin Prover code can be, I will not go into

much more code in this presentation.

  • rule receive_owner:

[!UserKey($PP, ~ppk), !UserKey($P, ~pk), In(signature), LocalOwner($O, $L, $PP)]

  • -[IfTrue(verify(signature, <$PP, $P, $O>, pk(~ppk))),

LocalOwner($O, $L, $P)]-> [LocalOwner($O, $L, $P)] rule change_owner: [!UserKey($L, ~lk), LocalOwner($O, $L, $L)]

  • -[ChangeOwner($O, $L, $N), LocalOwner($O, $L, $N)]->

[LocalOwner($O, $L, $N), Out(sign(<$L, $N, $O>, ~lk))]

19

slide-48
SLIDE 48

Owner event: Lemmas

20

slide-49
SLIDE 49

Owner event: Lemmas

  • private_key_secret: Ensure the confidentiality of the private key used for

signing the event. This proves that the adversary cannot obtain the signing key and break authenticity that way.

20

slide-50
SLIDE 50

Owner event: Lemmas

  • private_key_secret: Ensure the confidentiality of the private key used for

signing the event. This proves that the adversary cannot obtain the signing key and break authenticity that way.

  • local_owner_is_authentic: Show that the origin of owner events is authentic.

20

slide-51
SLIDE 51

local owner is authentic

21

slide-52
SLIDE 52

local owner is authentic

lemma local_owner_is_authentic:

21

slide-53
SLIDE 53

local owner is authentic

lemma local_owner_is_authentic: //If a user is the owner at time i "All obj localuser owner #i. LocalOwner(obj, localuser, owner) @i

21

slide-54
SLIDE 54

local owner is authentic

lemma local_owner_is_authentic: //If a user is the owner at time i "All obj localuser owner #i. LocalOwner(obj, localuser, owner) @i //there must previously have been an owner //who created a change owner event before time i ==> (Ex prev_owner #j. ChangeOwner(obj, prev_owner, owner) @j & not(#i < #j))

21

slide-55
SLIDE 55

local owner is authentic

lemma local_owner_is_authentic: //If a user is the owner at time i "All obj localuser owner #i. LocalOwner(obj, localuser, owner) @i //there must previously have been an owner //who created a change owner event before time i ==> (Ex prev_owner #j. ChangeOwner(obj, prev_owner, owner) @j & not(#i < #j)) //or the user created the object themselves. | (Ex #j. CreateObject(obj, owner) @j & not(#i < #j))"

21

slide-56
SLIDE 56

Owner event: Lemmas pt. 3

22

slide-57
SLIDE 57

Owner event: Lemmas pt. 3

  • We found that the lemma local_owner_is_authentic only provides

non-injective agreement.

22

slide-58
SLIDE 58

Owner event: Lemmas pt. 3

  • We found that the lemma local_owner_is_authentic only provides

non-injective agreement.

  • This means that the apparent owner at some point actually was the owner,

however the signature is not unique per event.

22

slide-59
SLIDE 59

Owner event: Lemmas pt. 3

  • We found that the lemma local_owner_is_authentic only provides

non-injective agreement.

  • This means that the apparent owner at some point actually was the owner,

however the signature is not unique per event.

  • Because the signature may be reused, it is possible to fake ownership if one was

previously the owner of the object through a replay attack (explained next slide).

22

slide-60
SLIDE 60

Owner event: Lemmas pt. 3

  • We found that the lemma local_owner_is_authentic only provides

non-injective agreement.

  • This means that the apparent owner at some point actually was the owner,

however the signature is not unique per event.

  • Because the signature may be reused, it is possible to fake ownership if one was

previously the owner of the object through a replay attack (explained next slide).

  • A way to remedy this is to make signatures unique for each event. For instance,

an incrementing serial number could be added to each signature.

22

slide-61
SLIDE 61

Example replay attack

23

slide-62
SLIDE 62

Example replay attack

Home Server Alice Bob grantAccess(Alice sign, Bob, object, ...) revokeAccess(Alice sign, Bob, object, ...) grantAccess(Alice sign, Bob, object, ...) (Replay attack)

23

slide-63
SLIDE 63

Example replay attack

Home Server Alice Bob grantAccess(Alice sign, Bob, object, ...) revokeAccess(Alice sign, Bob, object, ...) grantAccess(Alice sign, Bob, object, ...) (Replay attack)

  • The diagram shows an example of a possible exploit which exists when signatures

can be re-used between events.

23

slide-64
SLIDE 64

Example replay attack

Home Server Alice Bob grantAccess(Alice sign, Bob, object, ...) revokeAccess(Alice sign, Bob, object, ...) grantAccess(Alice sign, Bob, object, ...) (Replay attack)

  • The diagram shows an example of a possible exploit which exists when signatures

can be re-used between events.

  • Alice wishes to grant some level of access of an object to Bob.

23

slide-65
SLIDE 65

Example replay attack

Home Server Alice Bob grantAccess(Alice sign, Bob, object, ...) revokeAccess(Alice sign, Bob, object, ...) grantAccess(Alice sign, Bob, object, ...) (Replay attack)

  • The diagram shows an example of a possible exploit which exists when signatures

can be re-used between events.

  • Alice wishes to grant some level of access of an object to Bob.
  • Alice does this by creating and signing the event grantAccessEvent with

Alice sign.

23

slide-66
SLIDE 66

Example replay attack

Home Server Alice Bob grantAccess(Alice sign, Bob, object, ...) revokeAccess(Alice sign, Bob, object, ...) grantAccess(Alice sign, Bob, object, ...) (Replay attack)

  • The diagram shows an example of a possible exploit which exists when signatures

can be re-used between events.

  • Alice wishes to grant some level of access of an object to Bob.
  • Alice does this by creating and signing the event grantAccessEvent with

Alice sign.

  • Shortly thereafter, Alice revokes the previously granted access with revokeAccess.

23

slide-67
SLIDE 67

Example replay attack

Home Server Alice Bob grantAccess(Alice sign, Bob, object, ...) revokeAccess(Alice sign, Bob, object, ...) grantAccess(Alice sign, Bob, object, ...) (Replay attack)

  • The diagram shows an example of a possible exploit which exists when signatures

can be re-used between events.

  • Alice wishes to grant some level of access of an object to Bob.
  • Alice does this by creating and signing the event grantAccessEvent with

Alice sign.

  • Shortly thereafter, Alice revokes the previously granted access with revokeAccess.
  • However, Bob copied Alice’s signature and uses it to grant himself illegitimate

access to the object.

23

slide-68
SLIDE 68

Owner event: Summary

24

slide-69
SLIDE 69

Owner event: Summary

  • The signing key cannot be obtained by an attacker.

24

slide-70
SLIDE 70

Owner event: Summary

  • The signing key cannot be obtained by an attacker.
  • The owner event only provided a weaker form of authentication in the analysed

version.

24

slide-71
SLIDE 71

Owner event: Summary

  • The signing key cannot be obtained by an attacker.
  • The owner event only provided a weaker form of authentication in the analysed

version.

  • In version 0.06 of the protocol, an incrementing number was added to the

signature to enforce ordering of owner events and provide stronger authenticity, based on our suggestion.

24

slide-72
SLIDE 72

Owner event: Summary

  • The signing key cannot be obtained by an attacker.
  • The owner event only provided a weaker form of authentication in the analysed

version.

  • In version 0.06 of the protocol, an incrementing number was added to the

signature to enforce ordering of owner events and provide stronger authenticity, based on our suggestion.

  • Reset events had a similar issue, which was also resolved in the same manner.

24

slide-73
SLIDE 73

Access event: Background

25

slide-74
SLIDE 74

Access event: Background

  • An access event modifies access rights to an entire object or for specific fields in

that object.

25

slide-75
SLIDE 75

Access event: Background

  • An access event modifies access rights to an entire object or for specific fields in

that object.

  • Access events are authenticated using a digital signature.

25

slide-76
SLIDE 76

Access event: Background

  • An access event modifies access rights to an entire object or for specific fields in

that object.

  • Access events are authenticated using a digital signature.
  • In version 0.03 the signature was computed over the concatenation of the

affected label, the user id of the user making the change, the device number, a counter value, and the list of users and what access level they are granted.

25

slide-77
SLIDE 77

Access event: Model

26

slide-78
SLIDE 78

Access event: Model

  • The model for access events builds upon the model for owner events. Different

access levels are not modeled since they do not affect the authenticity of the messages.

26

slide-79
SLIDE 79

Access event: Model

  • The model for access events builds upon the model for owner events. Different

access levels are not modeled since they do not affect the authenticity of the messages.

  • Granting access to an object is modeled by the send_access_event rule. It can

be executed by a user who already has access to the object.

26

slide-80
SLIDE 80

Access event: Model

  • The model for access events builds upon the model for owner events. Different

access levels are not modeled since they do not affect the authenticity of the messages.

  • Granting access to an object is modeled by the send_access_event rule. It can

be executed by a user who already has access to the object.

  • The receive_access_event rule is then used to receive and verify the event and

signature.

26

slide-81
SLIDE 81

Access event: Model

  • The model for access events builds upon the model for owner events. Different

access levels are not modeled since they do not affect the authenticity of the messages.

  • Granting access to an object is modeled by the send_access_event rule. It can

be executed by a user who already has access to the object.

  • The receive_access_event rule is then used to receive and verify the event and

signature.

  • The rule owner_to_access acts as a bridge between the access and owner

models, it makes sure that the owner is considered to have access as well.

26

slide-82
SLIDE 82

Access event: Lemma

27

slide-83
SLIDE 83

Access event: Lemma

  • There is only one lemma for access events - can_receive - which verifies that a

user with the correct access rights can grant another user similar access rights. For example, the owner of an object should be able to assign a user as an administrator of that object.

27

slide-84
SLIDE 84

Access event: Lemma

  • There is only one lemma for access events - can_receive - which verifies that a

user with the correct access rights can grant another user similar access rights. For example, the owner of an object should be able to assign a user as an administrator of that object.

  • The lemma was not originally intended to test any security properties. However,

the trace it generated made us realise that the access event does not provide full agreement.

27

slide-85
SLIDE 85

Access event: Lemma

  • There is only one lemma for access events - can_receive - which verifies that a

user with the correct access rights can grant another user similar access rights. For example, the owner of an object should be able to assign a user as an administrator of that object.

  • The lemma was not originally intended to test any security properties. However,

the trace it generated made us realise that the access event does not provide full agreement.

  • In the generated trace, two objects were created, but the access event signature

from one object was copied from the other object. Since the signature did not include the object identifier, it could be used in a replay attack to modify access rights for another object.

27

slide-86
SLIDE 86

Access event: Lemma

  • There is only one lemma for access events - can_receive - which verifies that a

user with the correct access rights can grant another user similar access rights. For example, the owner of an object should be able to assign a user as an administrator of that object.

  • The lemma was not originally intended to test any security properties. However,

the trace it generated made us realise that the access event does not provide full agreement.

  • In the generated trace, two objects were created, but the access event signature

from one object was copied from the other object. Since the signature did not include the object identifier, it could be used in a replay attack to modify access rights for another object.

  • This is an authenticity problem because the signature may be reused in the wrong

context.

27

slide-87
SLIDE 87

Access event: Lemma

  • There is only one lemma for access events - can_receive - which verifies that a

user with the correct access rights can grant another user similar access rights. For example, the owner of an object should be able to assign a user as an administrator of that object.

  • The lemma was not originally intended to test any security properties. However,

the trace it generated made us realise that the access event does not provide full agreement.

  • In the generated trace, two objects were created, but the access event signature

from one object was copied from the other object. Since the signature did not include the object identifier, it could be used in a replay attack to modify access rights for another object.

  • This is an authenticity problem because the signature may be reused in the wrong

context.

  • A user could incorrectly be given authorization to read, modify, or even delete an
  • bject which it should not have access to.

27

slide-88
SLIDE 88

Access event: Lemma

  • There is only one lemma for access events - can_receive - which verifies that a

user with the correct access rights can grant another user similar access rights. For example, the owner of an object should be able to assign a user as an administrator of that object.

  • The lemma was not originally intended to test any security properties. However,

the trace it generated made us realise that the access event does not provide full agreement.

  • In the generated trace, two objects were created, but the access event signature

from one object was copied from the other object. Since the signature did not include the object identifier, it could be used in a replay attack to modify access rights for another object.

  • This is an authenticity problem because the signature may be reused in the wrong

context.

  • A user could incorrectly be given authorization to read, modify, or even delete an
  • bject which it should not have access to.
  • This can be remedied by making the signature in the access event include the
  • bject identifier.

27

slide-89
SLIDE 89

Access event: Summary

28

slide-90
SLIDE 90

Access event: Summary

  • In version 0.06 of the protocol, the object identifier was added to the signature,

based on our suggestion. Therefore, the identified vulnerability no longer exists.

28

slide-91
SLIDE 91

Basic mode: Background

29

slide-92
SLIDE 92

Basic mode: Background

  • Users can register and authenticate themselves in the basic mode or end-to-end

mode.

29

slide-93
SLIDE 93

Basic mode: Background

  • Users can register and authenticate themselves in the basic mode or end-to-end

mode.

  • In the basic mode, users can register and authenticate with both stateless and

stateful devices. Public key cryptography is not used, instead a user’s identity is their email address or phone number.

29

slide-94
SLIDE 94

Basic mode: Background

  • Users can register and authenticate themselves in the basic mode or end-to-end

mode.

  • In the basic mode, users can register and authenticate with both stateless and

stateful devices. Public key cryptography is not used, instead a user’s identity is their email address or phone number.

  • The purpose of the following procedure is to verify that API requests to the home

server originate from the claimed user. The email channel is assumed to be secure.

29

slide-95
SLIDE 95

Basic mode: Step-by-step

30

slide-96
SLIDE 96

Basic mode: Step-by-step

  • Registration and authentication starts with the email address being sent to the

home server.

30

slide-97
SLIDE 97

Basic mode: Step-by-step

  • Registration and authentication starts with the email address being sent to the

home server.

  • The home server responds by sending a verification link to the specified email
  • address. The link expires within 10 minutes.

30

slide-98
SLIDE 98

Basic mode: Step-by-step

  • Registration and authentication starts with the email address being sent to the

home server.

  • The home server responds by sending a verification link to the specified email
  • address. The link expires within 10 minutes.
  • When the user clicks the link, the server can match the URL to the user id, and

thus conclude the request to be authentic. In that case, the server returns a session key which is used to authenticate further requests.

30

slide-99
SLIDE 99

Registration and authentication in the basic mode: Model

31

slide-100
SLIDE 100

Registration and authentication in the basic mode: Model

  • The steps described in the specification are represented by the rules

fresh_verification_code, click_on_link, verify_user and create_user.

31

slide-101
SLIDE 101

Registration and authentication in the basic mode: Model

  • The steps described in the specification are represented by the rules

fresh_verification_code, click_on_link, verify_user and create_user.

  • The additional rules read_email and write_email were used to test what would

happen if the adversary could read or write to the email inbox.

31

slide-102
SLIDE 102

Registration and authentication in the basic mode: Model

  • The steps described in the specification are represented by the rules

fresh_verification_code, click_on_link, verify_user and create_user.

  • The additional rules read_email and write_email were used to test what would

happen if the adversary could read or write to the email inbox.

  • The rule reveal_user_email gives the adversary knowledge of the email address

for a given user id.

31

slide-103
SLIDE 103

Registration and authentication in the basic mode: Lemma

32

slide-104
SLIDE 104

Registration and authentication in the basic mode: Lemma

  • The lemma can_not_compromise_session_key states that the adversary can not
  • btain the session key. This assumes that the adversary does not have access to

the email inbox until after the session is established.

32

slide-105
SLIDE 105

Registration and authentication in the basic mode: Lemma

  • The lemma can_not_compromise_session_key states that the adversary can not
  • btain the session key. This assumes that the adversary does not have access to

the email inbox until after the session is established.

  • Since the session key is used as a form of authentication in subsequent operations
  • f the protocol, this ensures that authenticity is upheld.

32

slide-106
SLIDE 106

Registration and authentication in the basic mode: Summary

33

slide-107
SLIDE 107

Registration and authentication in the basic mode: Summary

  • Under the assumption that the user’s email is secure during the procedure, an

attacker cannot gain access to the session key. Thus, authenticity is upheld. This level of security is similar to services with email password reset.

33

slide-108
SLIDE 108

Conclusion

slide-109
SLIDE 109

Conclusion

34

slide-110
SLIDE 110

Conclusion

  • Our analysis revealed two replay attacks in unpublished versions of the protocol.

Therefore, the protocol’s requirements on authentication were not fully satisfied.

34

slide-111
SLIDE 111

Conclusion

  • Our analysis revealed two replay attacks in unpublished versions of the protocol.

Therefore, the protocol’s requirements on authentication were not fully satisfied.

  • The identified issues have been resolved, based on our suggestions.

34

slide-112
SLIDE 112

Conclusion

  • Our analysis revealed two replay attacks in unpublished versions of the protocol.

Therefore, the protocol’s requirements on authentication were not fully satisfied.

  • The identified issues have been resolved, based on our suggestions.
  • Our analysis of the basic mode proved the security of the authentication process,

assuming that the user’s email is not compromised at the time of authentication. We can thus conclude that it satisfies its intended security goals.

34

slide-113
SLIDE 113

Conclusion, pt. 2

35

slide-114
SLIDE 114

Conclusion, pt. 2

  • We think that the presented methodology is a good way to analyse security
  • protocols. This is supported by the fact that were able to identify real

vulnerabilities in the SDS protocol.

35

slide-115
SLIDE 115

Conclusion, pt. 2

  • We think that the presented methodology is a good way to analyse security
  • protocols. This is supported by the fact that were able to identify real

vulnerabilities in the SDS protocol.

  • We are not sure how well this method would scale to more complex protocols and

scenarios for non-expert analysts. As our model grew larger, we had trouble making the verification of lemmas terminate.

35

slide-116
SLIDE 116

Conclusion, pt. 2

  • We think that the presented methodology is a good way to analyse security
  • protocols. This is supported by the fact that were able to identify real

vulnerabilities in the SDS protocol.

  • We are not sure how well this method would scale to more complex protocols and

scenarios for non-expert analysts. As our model grew larger, we had trouble making the verification of lemmas terminate.

  • With detailed knowledge of the inner workings of Tamarin Prover one might be

able to work around these issues, but for a beginner there is not much guidance in the manual in such scenarios.

35

slide-117
SLIDE 117

Conclusion, pt. 2

  • We think that the presented methodology is a good way to analyse security
  • protocols. This is supported by the fact that were able to identify real

vulnerabilities in the SDS protocol.

  • We are not sure how well this method would scale to more complex protocols and

scenarios for non-expert analysts. As our model grew larger, we had trouble making the verification of lemmas terminate.

  • With detailed knowledge of the inner workings of Tamarin Prover one might be

able to work around these issues, but for a beginner there is not much guidance in the manual in such scenarios.

  • The automated verification may not even be the greatest value of the
  • methodology. Since the modeling process requires such attention to detail, we

could in some cases identify issues during modeling, before even running the tool.

35

slide-118
SLIDE 118

Conclusion, pt. 2

  • We think that the presented methodology is a good way to analyse security
  • protocols. This is supported by the fact that were able to identify real

vulnerabilities in the SDS protocol.

  • We are not sure how well this method would scale to more complex protocols and

scenarios for non-expert analysts. As our model grew larger, we had trouble making the verification of lemmas terminate.

  • With detailed knowledge of the inner workings of Tamarin Prover one might be

able to work around these issues, but for a beginner there is not much guidance in the manual in such scenarios.

  • The automated verification may not even be the greatest value of the
  • methodology. Since the modeling process requires such attention to detail, we

could in some cases identify issues during modeling, before even running the tool.

  • Without the terminology and framework of concepts such as the CIA triad and

Lowe’s hierarchy it is hard to do a relevant analysis.

35

slide-119
SLIDE 119

Conclusion, pt. 2

  • We think that the presented methodology is a good way to analyse security
  • protocols. This is supported by the fact that were able to identify real

vulnerabilities in the SDS protocol.

  • We are not sure how well this method would scale to more complex protocols and

scenarios for non-expert analysts. As our model grew larger, we had trouble making the verification of lemmas terminate.

  • With detailed knowledge of the inner workings of Tamarin Prover one might be

able to work around these issues, but for a beginner there is not much guidance in the manual in such scenarios.

  • The automated verification may not even be the greatest value of the
  • methodology. Since the modeling process requires such attention to detail, we

could in some cases identify issues during modeling, before even running the tool.

  • Without the terminology and framework of concepts such as the CIA triad and

Lowe’s hierarchy it is hard to do a relevant analysis.

  • Analysis would be easier if all protocol specifications included detailed statements
  • f intended security guarantees.

35

slide-120
SLIDE 120

Future work

36

slide-121
SLIDE 121

Future work

  • Our work lead to several changes in later versions of the protocol. To ensure the

new authentication is correct, another analysis like the one we performed may be carried out on the current protocol version.

36

slide-122
SLIDE 122

Future work

  • Our work lead to several changes in later versions of the protocol. To ensure the

new authentication is correct, another analysis like the one we performed may be carried out on the current protocol version.

  • For a more complete picture of the security of the SDS protocol, additional

security aspects should be analysed. The protocol is, apart from authenticity, also intended to provide confidentiality, integrity and authorization. These can all be analysed using the same method as in this report.

36

slide-123
SLIDE 123

Future work

  • Our work lead to several changes in later versions of the protocol. To ensure the

new authentication is correct, another analysis like the one we performed may be carried out on the current protocol version.

  • For a more complete picture of the security of the SDS protocol, additional

security aspects should be analysed. The protocol is, apart from authenticity, also intended to provide confidentiality, integrity and authorization. These can all be analysed using the same method as in this report.

  • Another direction is to see if this type of analysis can be made easier. For

instance, if it is possible to implement the SDS protocol using ProScript or other types of verification tools.

36

slide-124
SLIDE 124

Thanks!

Thank you for listening! Now time for opposition and questions. Examiner: Panos Papadimitratos Supervisor: Mohammad Khodaei

37