You are on page 1of 26

Implementation and Verification of TLS

Using the Scyther Tool


(Project 3)

Course 2
Nour EL MADHOUN

nour.el-madhoun@lip6.fr

1
Outline

• Some New Scyther Notions

• Asymmetric Crypto with Scyther Tool

• TLS Protocol: Overview

2
Some New Scyther Notions

• const:
- global declaration
- exemple:
usertype Text;
const m1: Text;

• Agent:
- type used to define an agent
- exemple:
const CA: Agent; //CA: Certification Authority
3
Some New Scyther Notions

• macro:
- abbrev. for a message, set of messages, etc.
- exemple:
macro messageG=H(X,Y, Rand), {m1}k(X,Y);

4
Asymmetric Crypto with Scyther

• By default, in Scyther:

➢ Each actor has a public key & a secret key

➢ pk(X): public key of X

➢ sk(X): secret key of X

➢ Each key (public or secret) is assumed: certified

5
Asymmetric Crypto with Scyther

• We can model other asymmetric keys for X:

const pkX2: Function;


secret skX2: Function;
const CA: Agent;

inversekeys (pkX2, skX2);

macro CertX2= {H(X2,pkX2, otherInfo)}sk(CA);

6
TLS Protocol: Overview

SSL (Secure Sockets Layer)

or

TLS (Transport Layer Security)

TLS is the last version of SSL

7
TLS Protocol: Overview
1) SSL/TLS

– Keeping an internet connection secure

– Safeguarding any sensitive data that is being sent


between two systems

– Preventing criminals from reading and modifying any


information transferred

8
TLS Protocol: Overview
1) SSL/TLS

– The two systems can be


a server and a client or server and server

– For example:
a shopping website (server) and browser (client)

9
TLS Protocol: Overview
2) How does SSL/TLS work ?

■ The server:
- Has a pair of keys (public/secret)
- Has a Certificate
■ The client
- May have a pair of keys (public/secret)
- May have a Certificate
■ The client must authenticate the server
■ The server may authenticate the client (optionally)

10
TLS Protocol: Overview
3) Description

11
TLS Protocol: Overview
3) Description

1. C->S
2. S->C

12
TLS Protocol: Overview
3) Description

1. C->S
- Le client envoie un « ClientHello » au serveur
- « ClientHello » contient:
*Version. SSL,
*paramètres de chiffrement,
*des données générées aléatoire, etc.

13
TLS Protocol: Overview
3) Description

2. S->C
- Le serveur envoie un « ServeurHello » au client
- «ServeurHello contient:
*Version. SSL,
*paramètres de chiffrement,
*des données générées aléatoire, etc.

14
TLS Protocol: Overview
3) Description

3. S->C

15
TLS Protocol: Overview
3) Description

3. S->C
- Le serveur envoie au client:
* son propre certificat « Certificate »,
*des données signées par sa clé secrète,
*demande du certificat client «CertificateRequest»,
*un «ServerHelloDone » indiquant au client que c’est
son tour pour continuer la négociation

16
TLS Protocol: Overview
3) Description

3. S->C

- Le client utilise les informations reçues du serveur pour


l'authentifier (vérification du certificat, signatures, etc.)

17
TLS Protocol: Overview
3) Description

4. C->S
5. C->S
6. C->S

18
TLS Protocol: Overview
3) Description

4. 5. 6. C->S

- Le client:
*envoie son certificat « Certificate » au serveur,
*crée un code secret préliminaire pour la session
«ClientKeyExchange»,
*le chiffre avec la clé publique du serveur (obtenue du
certificat du serveur),
*envoie le code secret préliminaire chiffré au serveur

19
TLS Protocol: Overview
3) Description

4. 5. 6. C->S

- Le client doit alors signer une autre portion de données


«CertificateVerify » limitée à cette négociation et connue
par le client et le serveur

- Cette portion peut être la signature du hash de tous les


messages changés anciennement durant la négociation SSL

20
TLS Protocol: Overview
3) Description

4. 5. 6. C->S

- Le serveur déchiffre la portion en utilisant la clé publique


du client et compare les résultats des hashs

- Le serveur authentifie aussi le client

- Si le client est authentifié avec succès, le serveur utilise


sa clé privée pour déchiffrer le code secret préliminaire

21
TLS Protocol: Overview
3) Description

4. 5. 6. C->S

- Le client et le serveur utilise tous les deux, le code secret


principale pour générer une clé de session qui est une clé
symétrique utilisée pour chiffrer et déchiffrer les
informations échangées confidentielles.

22
TLS Protocol: Overview
3) Description

7. C->S
8. S->C

23
TLS Protocol: Overview
3) Description

7. C->S

- Le client envoie un message au serveur pour l'informer que


les futures données transmises seront chiffrées avec la
clé de session « ChangeCipherSpec ».

- Il envoie alors séparément un message (chiffré) indiquant


que la négociation côté client est finie « Finished ».

24
TLS Protocol: Overview
3) Description

8. S->C

- Le serveur fait la même chose que le client en 7

- Finalement, les deux utilisent la clé de session pour


chiffrer tout ce qui confidentiel.

25
26

You might also like