Olivier Gatimel
Thomas Molle
1. Introduction....................................................................................................................4
3. Solution..........................................................................................................................5
4. Objectifs.........................................................................................................................5
II. Organisation.......................................................................................................................6
1. Répartition......................................................................................................................6
1. Présentation...................................................................................................................8
5. La pop-up.....................................................................................................................16
6. Bilan personnel............................................................................................................17
2. Tests d'OpenVPN.........................................................................................................19
5. Configuration et déploiement.......................................................................................22
6. Bilan personnel............................................................................................................22
V. Cryptographie...................................................................................................................24
1. Technique de chiffrement.............................................................................................24
1. Chiffrement symétrique...........................................................................................27
2. Chiffrement asymétrique.........................................................................................27
3. Bilan personnel............................................................................................................28
VI. Conclusion......................................................................................................................29
I Présentation
1 Introduction
De plus en plus de personnes disposent aujourd'hui d'un organe mobile (portable, PDA,
...) et souhaitent pouvoir accéder à l'Internet avec cet organe dans la majorité des lieux
qu'ils fréquentent. Dans cet optique, l'expansion très rapide des points d'accès sans-fil
permet la connexion des appareils nomades. Néanmoins chaque réseau possède sa
politique d'accès et ne souhaite pas laisser n'importe qui accéder aux ressources réseaux.
Ainsi il est nécessaire de mettre en place des systèmes d'authentification sur ces réseaux
qui doivent cumuler de multiples avantages comme une compatibilité avec la majorité des
appareils mobiles du marché, sécuriser les échanges entre les client et le réseau, offrir à
l'utilisateur la plus grande transparence aussi bien lors de la phase d'authentification que
lors de l'utilisation du réseau, réduire l'impact au niveau des ressources matériels et de la
bande passante.
Devant ces enjeux, le portail captif s'est imposé comme une solution fréquemment
utilisée dans les points d'accès payants, mais elle peut se généraliser à tous types de
réseau (sans-fil ou filaire) nécessitant un contrôle d'accès. La technique du portail captif
consiste à forcer un client souhaitant accéder à un service en HTTP ou HTTPS sur un
réseau à passer par une page web servant à l'authentifier sur ce réseau. Après
authentification, la passerelle peut le laisser passer; le client a accès au réseau de façon
classique.
Ainsi le système utilisé dans notre université permet d'authentifier les utilisateurs
désirant se connecter depuis n'importe quelle machine apportées à l'intérieur des
bâtiments; la seule nécessité est de disposer d'un compte utilisateur valide, d'un
navigateur web gérant le HTTPS et dans le cas du portail captif NoCat, utilisé
actuellement, du Javascript.
Une première tentative serait de crypter le réseau WiFi. Cependant si tout le monde
utilise la même clé (cryptage wep ou wpa) ou authentification PSK (pre-shared key), les
trames réseaux seront déchiffrables par tout le monde, on se retrouve donc dans la
situation hub précédente avec l'accès aux données échangées par tous. Une solution
avec authentification 802.1x (certificat ou login/pass) permet de garantir ce point là. En
effet 802.1x permet de générer une clé de chiffrement pour chaque utilisateur connecté au
point d'accès. Ainsi un utilisateur ne peut déchiffrer la communication d'un autre utilisateur.
Il serait intéressant d'apporter cette solution dans notre portail captif, mais ce chiffrement
ne peut être géré que par le point d'accès sans-fil ce qui se retrouve hors du cadre de
notre projet.
3 Solution
La solution que nous avons choisie d'implémenter dans ce projet est l'utilisation d'un
VPN. Un VPN (Virtual Private Network ) est vu comme une extension des réseaux locaux
et préserve la sécurité logique que l'on peut avoir à l'intérieur d'un réseau local. En
d'autres termes, cet outil va nous permettre de connecter les utilisateurs au réseau local
en passant par un canal chiffré. Ainsi le fait que la connexion sans-fil ne soit pas sécurisée
n'est plus un problème. De plus un VPN cherche à apporter certains éléments essentiels
dans la transmission de données : l'authentification (et donc l'identification) des
interlocuteurs et du serveur VPN, l'intégrité des données (le chiffrement vise à les rendre
inutilisables par quelqu'un d'autre que le destinataire).
4 Objectifs
Dans ce but, voici les objectifs que nous nous sommes fixés pour ce projet.
– Mettre en évidence les failles et les faiblesses du portail captif existant. Ce travail
permet de justifier l'intérêt d'utiliser un VPN.
– Mettre en place de la solution VPN. Il faut choisir le logiciel le plus adapté et le
configurer selon nos besoin.
– Avoir au niveau du client une installation et une configuration simple.
– Avoir une solution VPN compatible avec la majorité des clients.
Nous avons fait le choix d’utiliser le logiciel OpenVPN pour notre projet. Une deuxième
partie de notre projet a ainsi été de prendre en main ce logiciel, de comprendre son
fonctionnement afin de l’adapter du mieux possible à nos besoins. Sa polyvalence a
nécessité un travail de documentation et d’expérimentation important, néanmoins cette
polyvalence nous a permit de créer la solution convenant le mieux à notre cahier des
charges.
OpenVPN utilise des certificats SSL pour identifier les utilisateurs lors de la connexion
et pour chiffrer la connexion. Nous avons donc du trouver un moyen efficace, simple pour
l’administrateur et l’utilisateur et fiable. Notre solution se base sur deux composants. Le
premier est un script php connecté à la base de données gérant les utilisateurs qui a pour
but de générer les certificats SSL à la demande. Ce script propose une interface web et
une interface de type Web Service utilisant le protocole SOAP. Le deuxième composant
est un logiciel client interrogeant la Web Service précédente; il permet d’automatiser la
récupération du certificat SSL et son installation.
II Organisation
Nous avons mis l'accent sur la répartition du travail entre les participants de ce projet.
Ce rapport en garde l'esprit en mettant en évidence le travail effectué par chacun.
1 Répartition
Thomas s’est occupé de la gestion du site internet présentant notre projet. De plus il a
installé , configuré et adapté NoCat sur les machines de test pour les besoins de sa partie
et pour le développement des parties suivantes. Ce travail a été effectué dès le début afin
de permettre la suite du projet. Enfin il s’est chargé de l’analyse et de la rédaction de la
première partie. Ce travail n’avait pas de contraintes temporelles particulières et
n’impactait pas les autres parties.
Enfin la partie de Mathieu suit la même logique. Il existe des outils pour vérifier la
validité des certificats SSL sans avoir besoin du VPN, la génération de certificats SSL peut
se faire sans pré-requis, le tout était de se mettre d’accord sur le Common Name et le
format de sortie pour qu’il soit compatible avec le OpenVPN.
Grâce à cette organisation très sectorisée, nous avons pu travaillé chacun de notre côté
en étant le moins dépendant des autres; on trouve ici la grande force du découpage de
notre projet et d’avoir le choix de solutions technologiques permettant cette répartition.
Ceci était essentiel car nous avions fait des choix d’options différents, nous n’étions pas
dans les mêmes groupes de TD et par conséquent nos emplois du temps divergeaient
fréquemment; travailler ensemble la majorité du temps aurait été une tache vouée à
l’échec. De plus ceci permet d’identifier clairement le travail de chacun et chaque
participant peut se spécialiser dans son domaine. La connaissance de l’ensemble du
projet, et donc de la finalité de sa partie, est essentiel pour rester motivé et intéressé par
ce projet mais ne constitue pas une étape essentiel pour la réussite de sa partie.
Malgré cette sectorisation du travail, nous avons discuté des choix techniques
ensemble en analysant le choix de chacun et de trouver la meilleure façon d’y parvenir
En premier, nous avons plutôt l’habitude de travailler en binôme; or ici nous étions plus
dans un travail individuel; même si cela reste un travail d’équipe pour la création du
produit final. C’est une étape pas toujours évidente.
Ensuite, découlant de problèmes d’emploi du temps, nous nous sommes peu vus sur ce
projet. Il était rare que nous soyons tout les trois présents le même jour et la même heure.
Ce problème s’est aussi posé pour rencontrer notre responsable de projet. En se voyant
peu, il est difficile de savoir exactement où chacun en est. Ce point n’est pas trop grave
dans notre organisation, mais il est important de savoir ce que font les autres pour
continuer à avancer, pour savoir si on n’est pas trop en retard ou en avance sur les autres.
Peut-être que la présence d’étapes supplémentaires dans chaque partie aurait rendu ce
point moins présent, mais cela aurait alourdi la gestion de projet en la rendant moins
proche des contraintes du terrain et cela aurait augmenté le risque de faire une
planification où les dates changent tous les jours.
1 Présentation
Lors du premier semestre, plusieurs failles de sécurité ont été évoquées :
● NoCat ne sécurise pas les connexions wifi ou réseau (pas de chiffrement). Les
données entre le client et le hot spot circulent en clair.
● Possibilité de voler les droits d’accès d’un utilisateur (attaque). En spoofant le
couple @MAC/IP de l’utilisateur, déconnecter l’utilisateur et utiliser ses droits
jusqu’à expiration, ou attendre une déconnexion non-explicite.
● Usurper l’identité du hot spot pour récupérer les login/mot de passe des
utilisateurs.
● NoCat utilise une pop up pour savoir si l’utilisateur est toujours connecté ou pas.
Or l’utilisation des pop up pose un problème. Tous les équipements n’autorisent pas
forcement les pop up. Les PDA ne supportent pas les pop up.
Plan de la situation :
Nous pouvons bien voir sur la capture suivante que l’utilisateur surfe sur www.free.fr. En
sniffant le réseau, nous avons la possibilité de suivre tout ce que fait l’utilisateur.
Nous allons écouter le réseau pour savoir s’il y a une machine de connecté au hotspot.
Nous utiliserons l’utilitaire « Airodump » sous une distribution Linux.
Nous pouvons voir sur la capture, une machine (00:13:46:97:F1:7B) associé à notre
point d’accès de test (NoDog > 00:40:F4:E3:1B:36). Nous avons donc déjà récupéré sont
adresse MAC. Il ne reste plus qu’à trouver son adresse IP en fonction de l’adresse MAC
déjà récupéré. Pour cela, nous allons sniffer le réseau à l’aide de « Wireshark »
La capture montre que l’adresse MAC 00:13:46:97:F1:7B a comme adresse IP
192.168.2.1
Nous avons maintenant tous les éléments pour pouvoir utiliser les droits d’accès de
l’utilisateur. Notre adresse MAC et adresse IP devrons être remplacé par celles de
l’utilisateur. La capture ci-dessous est un exemple de configuration IP/MAC.
A partir de là, nous devrions pouvoir utiliser le couple IP/MAC de l’utilisateur pour surfer
à notre guise sur le web.
Lors de nos tests, il c’est avéré que ce n’était pas possible. (Pour deux machines
associé sur la même borne wifi)
Dans un réseau local Ethernet classique, la méthode d'accès utilisée par les machines
est le CSMA/CD (Carrier Sense Multiple Access with Collision Detect), pour lequel chaque
machine est libre de communiquer à n'importe quel moment. Chaque machine envoyant
un message vérifie qu'aucun autre message n'a été envoyé en même temps par une autre
machine. Si c'est le cas, les deux machines patientent pendant un temps aléatoire avant
de recommencer à émettre.
Dans un environnement sans fil ce procédé n'est pas possible dans la mesure où deux
stations communiquant avec un récepteur ne s'entendent pas forcément mutuellement en
raison de leur rayon de portée. Ainsi la norme 802.11 propose un protocole similaire
appelé CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance).
La capture ci-dessous montre un réseau « wl-uapv » qui pourrai très bien être celui de
la fac, mais qui n’est autre que celui créé pour récupérer les login et mot de passe des
utilisateurs.
users");
my $login = $params->{user};
my $passwd = $params->{pass};
my $mac = $params->{mac};
close (USERS);
Il nous restera plus qu’a récupérer les identifiants dans notre fichier users !
youpi
youpi
L’utilisateur toto c’est connecté deux fois avec comme login toto1234 et comme adresse
MAC : 00:13:46:97:F1:7B
5 La pop-up
NoCat utilise une pop up pour savoir si l'utilisateur est toujours connecté au réseau. Au bout d'un
délai d'absence sur le réseau, le portail captif va couper l'accès à cet utilisateur. Or une pop up est
inutilisable sur un PDA ! Dans notre solution, on aurai pu utiliser le principe du ping pour savoir si
l’utilisateur est toujours connecté ou pas. Mais si une personne mal attentionné récupère notre
couple MAC/IP il lui sera beaucoup plus facile de répondre à un ping que de refaire une pop up
sécurisé pour rester connecter au réseau. Après un étude des fichiers de configuration de
Nocat, nous avons pu voir qu'on pouvait implémenter aussi le ping (en plus de la pop up).
Nocat utilise donc une double vérification de l'état de l'utilisateur.
6 Bilan personnel
La première chose qui a été faite lors du premier semestre à été une prise de
connaissance de l'existant. C'est à dire, une recherche approfondie de tout les systèmes
de Hot spot (ou portail captif) et de leurs principes de fonctionnement. Ce travail c'est
résumé à collecter des informations sur le web. Un peu comme si on devait changer de
voiture et qu'on allait se renseigner dans tout les concessionnaires automobile. Toute cette
approche n'est pas négligeable car elle permet de bien avancer dans la suite du projet et à
répondre au mieux au cahier des charges.
Suite à cette recherche, deux solutions ont été retenues : Nocat et Wifi Dog qui
possède quelques différences intéressante avec Nocat (voir Comparaison des Portails
Captif). Après en avoir parlé avec notre tuteur, il à été décidé de n'utiliser que Nocat pour
ce projets. Si certaines fonctionnalités de Wifi Dog nous intéressaient, il faudrai alors les
implémenter à notre Hot spot. Il faut savoir aussi que actuellement le système utilisé sur le
site de la fac d'Avignon est Nocat. Ce qui nous a fortement aidé dans le choix d'une
solution. Si un système devait être mis en place suite à notre projet, il serai d'autant plus
facile à réaliser avec le moins de changement possible.
Toute la partie installation et configuration de Nocat a été très intéressante pour moi.
J'ai pu mettre en pratique certaines connaissances acquises en TP comme le serveur
dhcp par exemple et de me familiariser encore un peu plus avec Linux. Cela ma permit
aussi de bien comprendre le fonctionnement réseau du hot spot.
Un grand point du projet étant la sécurité dans le hot spot, il a fallu étudier les failles de
sécurité avec Nocat, les points noir, ce qu'il fallait améliorer. Une série de tests à donc été
réalisé sur le site de la fac qui reprend les principales failles de sécurité comme par
exemple le faite que les données entre l'utilisateur et la borne wifi ne soient pas chiffré ou
encore le vol de login / mot de passe en trois ligne de code. Un rapport à été réalisé, (au
départ pour le CRI) que vous pouvez retrouver dans ce rapport ou bien sur le site web du
projet à l'adresse suivante : http://projets-gmi.iup.univ-avignon.fr/projets/proj0708/M1/p10
A l'aide de cette étude sur les failles de sécurité dans un réseau sans fil comme celui ci,
nous avons pu repérer les points à améliorer.
Pour tenir tout le monde informé de l'état d'avancement de notre projet, un site web à
dût être créé. Il reprend la présentation du projet, le cahier des charges, toute les fiches
compte rendu postées sur le site tout les mois ainsi que les contacts des personnes
concernées par le projet et quelque liens.
Lors de la réunion projet de Mars 2008, Corinne Fredouille et Sophie Nabitz ont fait
remarquer que notre site web était plutôt simple. Il est vrai qu'il n'était vraiment pas
attrayant et assez vide.
Je me suis donc pris une après midi pour le refaire, avec des images, des CSS ... On n'y
pense pas tout le temps mais autour d'un projet, il y a plein d'éléments qui viennent s'y
greffer comme par exemple le site web!
Le faite d'avoir bien réparti les taches à réaliser à nous trois, m'a obligé à travailler ma
partie pour que les autres puissent avancer la leur. Nocat étant la base du projet, il a fallu
le mettre en place rapidement pour bien pouvoir cerner les problèmes, les points à revoir
et surtout pour que Mathieu et Olivier puissent s'appuyer dessus au besoin. Le travail de
chacun était en rapport avec le travail de l'autre, même s'il était souvent bien différent ( du
développement php à des fichiers de configuration sous linux en passant par des
iptables...) Lors du deuxième semestre, nous n'étions plus dans le même groupe de TP.
Nous avons donc dû communiquer un maximum entre nous et s'échanger toute les
informations possible afin d'avancer le projet le mieux possible sans mal entendu. Ce fut
un très bon exercice de réalisation de projet, de coordinations de taches et de
communications au seins d'un groupe d'informaticien. Je pense qu'on s'en ait pas trop mal
sorti puisque à la fin nos trois parties se sont imbriquées quasiment comme il fallait.
IV Mise en place du VPN
1 Pourquoi OpenVPN ?
Mes recherches bibliographiques m'ont amené vers deux solution de VPN: IPSec et
OpenVPN. J'ai donc cherché à établir des critères pourquoi l'un et pas l'autre.
Le premier critère que j'ai retenu est la robustesse et la notoriété de la solution. IPSec
est souvent implémenté sur des équipements réseaux, cependant il demande des
modifications de la couche 3 pour pouvoir fonctionner. OpenVPN n'a pas ce problème car
il s'intercale entre les couches réseaux et application. De plus OpenVPN est souvent
considéré comme plus sûr car il s'exécute en espace utilisateur. Ainsi une corruption de ce
programme n'entraîne pas un accès au noyau.
Ensuite j'ai examiné l'interopérabilité de ces logiciels. IPSec requière des changements
dans le noyaux et donc une adaptation à chaque OS. OpenVPN n'a pas ce problème et
permet ainsi de toujours avoir le même logiciel à configurer. On le retrouve ainsi sur Linux,
MacOS, Windows,...
Enfin OpenVPN se base sur OpenSSL. Il est ainsi possible de baser notre VPN sur
l'utilisation de certificats SSL qui sont éprouvés et dont les outils pour les manipuler sont
courants.
Pour conclure, le choix d'OpenVPN, pour notre projet, s'impose de lui-même. Il garantit
une compatibilité avec le réseau, permet d'avoir des clients sur plusieurs OS et permet de
gérer les utilisateurs grâce à des certificats SSL. Et il remplit les objectifs essentiels à
notre solution:
– Une vérification qu'on se connecte sur le bon serveur VPN grâce au certificat SSL
du serveur
– Une authentification des client grâce à un certificat SSL spécifique à chaque client.
2 Tests d'OpenVPN
Les premiers tests avec OpenVPN se sont fait sous Linux (avec la distribution Ubuntu).
Les premières tentatives ont été laborieuses notamment à cause de problèmes sur les
tables de routage au niveau du client. Le serveur VPN ne donnait pas les bonnes
informations au client. Après divers changements dans la configuration du serveur, ce
problème était réglé.
Fort de ce succès et vu que j'avais un ordinateur sous Vista, j'ai fait le choix de passer à
cet OS pour continuer mes tests. Les premières tentatives se sont faites avec la version
stable du client Windows. La connexion avec le serveur VPN se faisait sans problèmes,
cependant les tables de routage étaient incohérentes et empêchaient tout accès au
réseau. J'ai donc choisi d'installer la version bêta du client Windows. Mal m'en a pris, car
cette installation du driver permettant la mise en place du tunnel chiffré a complètement
fait planter l'OS; même le démarrage en mode sans échec était devenu impossible.
Après concertations avec mon responsable de projet, nous avons fait le choix de laisser
tomber la plateforme Vista et de concentrer nos efforts sur la version XP de Windows.
J'ai donc testé OpenVPN sur Windows XP. La suite s'en déroulé sans encombres aussi
bien au niveau de l'installation, de la configuration et de l'utilisation.
Nous avons donc choisi d'utiliser le portail captif pour fournir les certificats et le logiciel
OpenVPN aux utilisateurs. Cette partie a été traitée par Mathieu, je n'y reviens donc pas.
Notre responsable de projet nous a demandé d'aller encore plus loin en mettant en
place un logiciel très simple pour récupérer les certificats et les copier dans le bon
répertoire pour que OpenVPN puisse les exploiter. A ce niveau, nous devons distinguer les
environnements de bureau Linux (KDE,Gnome) et l'environnement de bureau Windows.
En effet, les bureaux Linux utilisent le programme NetworkManager qui gère les
connexions réseaux du PC et qui permet aussi de configurer des VPN. Et notamment il est
compatible avec OpenVPN. Proposer un programme tout en un avec le logiciel OpenVPN,
un programme pour récupérer les certificats et toutes les librairies aurait été intéressant.
Mais cela irait à l'inverse de la majorité des distributions basées sur des gestionnaires de
paquets et l'intégration que vise à proposer ces environnements de bureau. J'ai donc fait
le choix de laisser les utilisateurs de ces plateformes utiliser NetworkManager, même s'ils
doivent passer par une récupération manuelle des certificats et une configuration en
passant par le greffon OpenVPN de NetworManager. La mise en place est peut-être plus
longue, mais ceci permet de garder la cohérence de la gestion de la configuration réseau
du PC.
Par conséquent, j'ai concentré mon travail sur la création d'un programme tournant
sous Windows pour gérer les certificats.
Mon choix s'est porté sur une architecture distribuée en utilisant le protocole SOAP. Il a
ainsi suffit de rajouter une interface SOAP, grâce à la librairie Php NuSoap, au logiciel créé
par Mathieu. Deux intérêts s'en dégagent: on ne réécrit pas le programme s'occupant de
la gestion et de la distribution des certificats; et grâce au fichier de description de la Web
Service, n'importe qui peut créer un client compatible avec notre interface.
Gestion et distribution des certificats SSL
sur le serveur d'authentification
Client Windows
Utilisateur
Saisie login et
mot de passe
Copie des certificats
5 Configuration et déploiement
Le fichier de configuration d'OpenVPN est commun à tous les utilisateurs. En effet,
l'identification de l'utilisateur se fait grâce aux certificats et les paramètres réseaux du VPN
sont passés lors de la connexion. Il s'agit donc que lors de l'installation d'OpenVPN, nos
fichiers de configuration soient déjà en place.
On retrouve donc avec un seul fichier exécutable avec tout ce qu'il faut pour faire
fonctionner notre solution chez un client Windows.
6 Bilan personnel
En premier, j'ai pu découvrir OpenVPN durant ce projet. Ce programme m'a conquis par
sa facilité à s'intégrer à un environnement réseau existant. La liste des options de ce
programme peut faire craindre de la complexité à le configurer. Néanmoins on arrive vite à
une mise en service afin de découvrir ses possibilités. De plus la version serveur et la
version client sont en faites les mêmes, seules certaines options permettent de changer
de cas d'utilisation. Ceci rend d'autant plus rapide la prise en main de ce logiciel.
Par la suite, j'ai pu mettre en pratique un des cours suivis cette année, celui concernant
les Web Services. J'ai pu me rendre compte que la majorité des langages de
programmation proposent des librairies pour s'interfacer avec le protocole SOAP. Que ce
soit au niveau de Php ou de C#, la transformation d'une fonction (ou d'une méthode) en
Web Service demande l'écriture de 5 lignes au maximum. En plus, en s'appuyant sur le
protocole HTTP, il n'y a pas besoin d'ouvrir de ports exotiques et d'installer de nouveaux
services. De plus cette technologie garantit la réutilisation de notre projet en fournissant
une API claire et exploitable par tous.
Enfin, concernant l'organisation, j'ai déjà pu la détailler en tant que meneur dans la
première partie. Plus particulièrement sur ma partie, je n'ai pu la démarrer rapidement à
cause de retard dans la mise à disposition de machines de travail. Néanmoins j'ai été
satisfait du travail produit et j'espère qu'il sera intégré au réseau de l'université pour que
les utilisateurs réguliers du réseau sans-fil puissent jouir d'une connexion sécurisée avec
un outil simple à configurer et à utiliser.
V Cryptographie
1 Technique de chiffrement
La sécurisation des échanges entre l’utilisateur et les différents services du réseau de
l’université passe par un chiffrement des transactions.
La cryptographie symétrique, également dite à clé secrète est la plus ancienne forme
de chiffrement. Il s’agit de chiffrer le message envoyé grâce à une clé qui sera réutilisée
par le destinataire pour déchiffrer le message crypté.
Le problème de cette méthode est que tous les utilisateurs possèdent alors la même clé
partagée, la sécurité n’existe plus puisque pour déchiffrer les transactions d’un autre
utilisateur il suffit d’utiliser la clé unique que tous les utilisateurs possèdent.
Dans un cryptosystème asymétrique, les clés existent par paires (le terme de bi-clés est
généralement employé) :
Ainsi, dans un système de chiffrement à clé publique, les utilisateurs choisissent une clé
aléatoire qu'ils sont seuls à connaître (il s'agit de la clé privée). A partir de cette clé, ils
déduisent chacun automatiquement un algorithme (il s'agit de la clé publique).
1 Chiffrement symétrique
Comme nous l’avons dit précédemment, dans ce système, chaque utilisateur
posséderait la même clé, qui est également la même que celle du point d’accès. Dans ce
cas de figure, un utilisateur mal intentionné pourrait écouter le trafique qui passe entre un
autre utilisateur et le réseau de la faculté. Cet échange est chiffré, cependant il est aisé
pour n’importe quel utilisateur de le déchiffrer puisqu’il suffit pour cela d’utiliser la clé
secrète que tout le monde possède.
2 Chiffrement asymétrique
Dans ce système, chaque utilisateur possède la clé publique du destinataire.
Cependant seul le destinataire possède la clé privée qui permet de déchiffrer le message.
Dans ce cas de figure un utilisateur mal intentionné qui essayerait d’écouter le trafique
transitant sur le réseau capturerait des messages chiffrés. Il lui serait impossible de les
déchiffrer car il ne possède pas la clé privée nécessaire à ce déchiffrement.
Au vu de ces éléments, la solution qui s’est imposé à nous était la mise en place du
chiffrement asymétrique afin de garantir la confidentialité des échanges entre les
utilisateurs et les divers services du réseau.
3 Bilan personnel
Mon travail a consisté à mettre en place la partie génération de certificats et de clés
privées via l’interface web de notre solution. Toute cette partie devant être en quelques
sorte un add-on de nocat plutôt qu’une refonte du logiciel. Nocat est entièrement
développé en langage perl, et son code est fiable et reconnu par la communauté.
Cependant PHP est plus connu et utilisé sur les serveurs web à travers le monde. De ce
fait, j’ai décidé de développer ma partie en PHP ce qui m’a permis d’utiliser un langage
déjà étudié plus tôt dans l’année et donc de ne pas avoir à effectuer tout le travail
d’apprentissage nécessaire lorsque l’on développe avec un langage de programmation
jamais utilisé auparavant.
Lors de mon développement j’ai choisit de ne pas trop me concentrer sur la partie
esthétique de l’interface puisque celle-ci est à façonner selon l’envie de l’administrateur. Je
n’allais pas mettre en place une interface esthétiquement belle pour mon goût mais qui par
la suite, dans le cadre d’une utilisation professionnelle ne répondrait pas aux attentes du
CRI. Je me suis donc principalement focalisé à développer un code simple à analyser et à
réutiliser. De plus, notre projet pourrait également être utilisé par une entreprise qui
n’aurait pas les mêmes souhaits de présentation que le CRI ou d’autres personnes.
Les difficultés rencontrées tout au long de cette année au sein de ce projet n’ont
pas été liées à la technique nécessaire à l’élaboration de certaines phases. La principale
difficulté a résidé dans l’organisation du travail avec parfois des périodes où il nous était
impossible de rencontrer notre tuteur, par exemple car il était à l’étranger. D’autres fois, la
charge de travail demandée par les autres matières ne permettaient pas, temporairement,
de me consacrer comme je l’aurais souhaité sur le projet. C’est ainsi que j’ai pu mesurer
toute la difficulté d’être impliqué dans un projet tel que celui-ci en devant en même temps
répondre à d’autres travaux. Cela m’a rappelé mes expériences de stages au sein
d’entreprises où il fallait souvent répondre à cette problématique d’avoir plusieurs travaux
en parallèles avec pour chacun diverses échéances. Certes, le résultat n’a pas les mêmes
conséquences pour les personnes qui demandent à ce que le projet soit réalisé, mais d’un
point de vu personnel les conséquences sont directement liés à la réussite de l’année
d’étude ce qui engendre un devoir de résultat au moins aussi important qu’en entreprise.
VI Conclusion
Tout au long de ce projet, nous avons pu abordé de multiples aspects techniques et
organisationnelles.
En premier, ce projet est le travail de toute une année. L'organisation qui en découle
n'était pas évidente à gérer. Chacun a déjà fait un bilan personnel sur son travail, mais
une idée principale s'en dégage: l'organisation de notre projet ne fut pas tout le temps
facile. Néanmoins notre répartition s'est avérée un très bon choix tout au long de ce projet
et a permis à chacun des participants d'exprimer son savoir-faire.
Ensuite, sur le plan technique, nous avons pu découvrir divers logiciels, protocoles et
techniques utilisés dans beaucoup de systèmes. Même s'il n'est pas certain que nous les
utiliserons dans notre avenir professionnel, l'expérience acquise durant ce projet nous
sera utile devant les problématiques que nous rencontrerons plus tard.
Enfin nous espérons avoir montrer l'intérêt et la faisabilité de notre travail. Et nous
espérons qu'il sera intégré par le CRI afin de fournir une connexion sécurisée, fiable et
utilisable par tous.