Sécurisation d`un canal, SSH

Transcription

Sécurisation d`un canal, SSH
Sécurité et Fiabilité des réseaux
R. Rioboo
Année 2016-2017
Sécurisation d’un canal, SSH
Exercice 1
La solidité des algorithmes cryptographiques à clef publique repose sur des problèmes mathématiques
difficiles. Donner deux problèmes difficiles à résoudre.
Exercice 2
Donner un algorithme praticable pour calculer AB modN , combien de multiplications fait-on ?
Comparez avec un algorithme qui effectue une simple somme avec une clé.
Exercice 3
En général on combine donc les clés publiques et secrètes, donner une méthode qui permette à un
éméteur E d’envoyer un message crypté à un destinataire D.
Exercice 4
Un groupe de n personnes veut utiliser de la cryptographie pour s’échanger deux à deux des
informations que les autres membres du groupe ne devront pas pouvoir lire.
1. Quel est le nombre minumum de clé symétriques (secrètes) nécessaires.
2. Quel est le minimum de clés asymétriques (publiques) n’ecessaires.
Exercice 5
Le protocole SSH fonctionne en mode client/serveur et peut se décomposer en trois partie :
1. Une couche de session qui permet l’authentification du serveur, la confidentialité et l’intégrité.
2. Une couche d’authentification
3. Un protocole de transport qui permet le multiplexage de canaux.
Expliquez pourquoi l’athentification du serveur est importante, et comment celle ci peut être
réalisée.
Exercice 6
Pourquoi est il utile d’autoriser le multiplexage de canaux ?
Le client contacte le serveur via son port standard (22), ils s’échangent les versions du protocole
qu’ils supportent et passent à une communication par paquets (RFC 4253) :
4
Long
1 à 8
Brouillage
1
T
Données
4
CRC
— Le champ longueur donne la taille du paquet.
— Le champ brouillage peut contenir de 1 à 8 octets aléatoires pour que la taiile globale soit
multiple de 8 octets.
— Le champ type donne le sens du paquet (négociation, cryptage, compression . . .)
— Le champ CRC est un code cyclique.
Exercice 7
Expliquez l’utilité du champ brouillage. Quelles sont les parties à crypter.
Le serveur donne en clair au client sa clé publique P ainsi qu’une clé de session publique Ps qui
change dans le temps, une séquence S de 8 octets aléatoires et la liste des fonctionalités qu’il offre.
Exercice 8
Quelle est l’utilité d’avoir deux clés publiques et une séquence aléatoire d’octets ?
Le client choisit une clé secrète K qu’il crypte avec la clé publique de session du serveur Ps , il
obtient KS qu’il crypte ensuite avec la clé publique P du serveur pour obtenir KP . Il envoie ensuite
le couple (S, KP ).
Exercice 9
Expliquez la fiabilité du mécanisme.
Une fois la connexion sécurisée établie entre le client le serveur celui ci doit authentifier l’utilisateur
qui se connecte et SSH autorise une authentification par challenge ou par mot de passe.
Exercice 10
Dans l’autorisation par challenge c’est la possession de la clé privée de l’utilisateur qui le valide.
Expliquez en le principe.
La commande Unix ssh-keygen génère deux fichiers identity qui contient la clé secrète et
identity.pub qui contient la clé publique.
Exercice 11
Comment faire en sorte que le serveur connaisse la clé publique du client ?
Exercice 12
Quels sont les avantages et les incovénients des deux types d’authetification.
Exercice 13
Comment un pirate pourrait-il se loger sur votre compte Unix ?
Exercice 14
On vient de voir l’authentification RSA qui permet de sécuriser la ligne TCP entre le client et le
serveur telle qu’elle utilisée par openssl. On peut en imaginer une autre basée sur le protocole de
Diffie Hellman d’échange de clés. Comment faire ?
Le principe de certification de clés permet d’établir des réseaux de confiance dans lesquels un
partenaire A appose son sceau privé sur le sceau public de B. Par exemple en utilisant RSA A signe
de sa clef privée la clé publique de B. De cette manière quiconque ayant confiance en A peut
avoir confiance en B puisqu’il valide sa clé publique.
Exercice 15
Le protocole openssh exige que la la clé publique du serveur soit certifiée et les serveurs se certifient
souvent eux mêmes eux mêmes. Dans le contexte d’une transaction de paiment par carte bleue.
— Pourquoi est-il important que le serveur certifie sa clé publique.
— Comment certifier une clé publique ?
2