e-electioon

Upload: selmi-wissem

Post on 24-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 E-electioon

    1/79

    i

    Ddicace

    Je ddie ce modeste travail en signe de respect de reconnaissance de remerciement et de

    gratitude infinie,

    A mon cher pre qui na jamais hsit sacrifier afin de subvenir tous mes besoins,

    A ma chre mre qui ma toujours soutenu par tant damour, tant daffection et surtout par

    ses conseils prcieux,

    A mon frre, mes surs leurs poux et leurs filles, avec tous mes vux de les voir russir

    dans leur vie,

    A tous mes amis, qui je souhaite tout le succs,

    A mes professeurs,

    A tous ceux qui me sont chers.

  • 7/24/2019 E-electioon

    2/79

    ii

    Remerciement

    Je tiens assurer ma profonde gratitude Mr bid Mohamed

    et MrBen Mahmoud Chaker

    mes encadrants lENIG pour toute la confiance et le soutien quils mont attribu et pour

    ses prcieux conseils et ses remarques judicieux.

    Je tiens galement adresser mes sincres remerciements tous les enseignants qui ont donn

    de leurs temps et leurs attentions pour assurer notre formation et enrichir nos connaissances.

    Merci pour ceux qui nont pargn aucun effort, de prs ou de loin, pour laccomplissement

    de ce travail.

    Mes remerciements vont galement aux membres du jury pour avoir accept de me prter leur

    attention et valuer mon travail.

  • 7/24/2019 E-electioon

    3/79

    iii

    Table des matiresTable des figures ........................................................................................................................ v

    Glossaire ................................................................................................................................... vii

    Introduction gnrale .................................................................................................................. 1

    Chapitre 1 Etat de lart............................................................................................................... 3

    I. Introduction .................................................................................................................... 3

    II. Vote traditionnel ............................................................................................................. 3

    III. Vote lectronique............................................................................................................ 4

    III.1. Machine voter .................................................................................................... 4

    III.2. Vote en ligne ........................................................................................................ 5

    IV. Cryptographie et scurit rseau .................................................................................... 9

    IV.1. Cryptographie ....................................................................................................... 9

    IV.2. SSL/TLS ............................................................................................................. 13

    V.

    Conclusion .................................................................................................................... 13

    Chapitre 2 : Spcification des besoins et conception ............................................................... 14

    I. Introduction .................................................................................................................. 14

    II. Architecture gnrale du systme ................................................................................. 14

    III. Spcification des besoins .............................................................................................. 17

    IV.1. Besoins fonctionnels .......................................................................................... 17

    IV.2. Besoins non fonctionnels ................................................................................... 18

    IV. Architecture MVC ........................................................................................................ 19

    V. Conception .................................................................................................................... 20

    V.1. Diagramme de cas dutilisation .......................................................................... 20

    V.2.

    Diagramme de collaboration .............................................................................. 23

    V.3. Diagramme de squence ..................................................................................... 24

    V.4. Diagramme dactivit ......................................................................................... 30

    V.5.

    Diagramme de classe .......................................................................................... 30

    VI. Conclusion .................................................................................................................... 31

    Chapitre 3 Ralisation ............................................................................................................. 32

    I. Introduction .................................................................................................................. 32

    II. Environnement de dveloppement ............................................................................... 32

    II.1. Environnement matriel ..................................................................................... 32

    II.2.

    Environnement logiciel ...................................................................................... 32

  • 7/24/2019 E-electioon

    4/79

    iv

    III. Installation et mise en uvre ........................................................................................ 35

    III.1. Cration des certificats ....................................................................................... 35

    III.2.

    Configuration et organisation de projet J2EE .................................................... 41

    III.3. Prsentation de droulement de vote .................................................................. 42

    III.4. Prsentation de la partie administrative ............................................................. 47

    IV. Conclusion .................................................................................................................... 49

    Conclusion gnrale et perspective de travail .......................................................................... 50

    Rfrences ................................................................................................................................ 51

    Annexe 1 : les principales tapes du scrutin pour l'lection en Tunisie ................................... 52

    Annexe 2 : Description textuels de cas dutilisation................................................................ 54

    Annexe 3 installation dEJBCA............................................................................................... 56

    Annexe 4 : le contenu des certificats ........................................................................................ 62

  • 7/24/2019 E-electioon

    5/79

    v

    Table des figures

    Figure 1. 1 : Machine voter [4] ................................................................................................ 4Figure 1. 2 : Vue globale du systme de vote [5] ....................................................................... 8Figure 2. 1 : Architecture du systme de vote .......................................................................... 15Figure 2. 2 : Diagramme du cas dutilisation global ................................................................ 21Figure 2. 3 : Diagramme du cas dutilisation relatif au votant................................................. 22Figure 2. 4 : Diagramme du cas dutilisation relatif lautorit de vote................................. 23Figure 2. 5 : Diagramme de collaboration pour lauthentification du votant........................... 23Figure 2. 6 : Diagramme de collaboration pour lopration vote prsidentiel..................... 24

    Figure 2. 7 : Diagramme de squence pour le scnario Sauthentifier............................... 25Figure 2. 8 : Diagramme de squence pour le scnario GrerAgent .................................... 26

    Figure 2. 9 : Diagramme de squence relatif au vote prsidentiel ........................................... 27Figure 2. 10 : Diagramme de squence relatif au vote lgislatif .............................................. 28Figure 2. 11 : Diagramme de squence relatif au sondage ....................................................... 29Figure 2. 12 : Diagramme dactivit........................................................................................ 30Figure 2. 13 : diagramme de classe global ............................................................................... 31Figure 3. 1 : Architecture logique de PKI ................................................................................ 36Figure 3. 2 : Ajout de profil de certificats ................................................................................ 37Figure 3. 3 : Les autorits de certification cres ...................................................................... 37Figure 3. 4 : Profils des entits finales ..................................................................................... 38Figure 3. 5 : Ajout dun votant ................................................................................................. 39Figure 3. 6: Demande de certificat ........................................................................................... 40Figure 3. 7 : Installation du fichier P12 .................................................................................... 40Figure 3. 8 : Authentification par SSL/TLS ............................................................................. 42Figure 3. 9 : Authentification mutuelle .................................................................................... 43Figure 3. 10 : Description de la page daccueil........................................................................ 43Figure 3. 11 : Interface dauthentification par identifiant et mot de passe............................... 44Figure 3. 12 : Interface du profil vote prsidentiel ................................................................... 45

    Figure 3. 13 : Interface validation de choix envoyer au valideur .......................................... 46

    Figure 3. 14 : Interface de russite de vote............................................................................... 46Figure 3. 15 : Interface chec de vote ...................................................................................... 47Figure 3. 16 : Interface dauthentification de ladministrateur................................................ 48Figure 3. 17 : Interface de gestion des votants ......................................................................... 48Figure 3. 18 : interface dajout dun votant.............................................................................. 49Figure 3. 19 : Rsultat dun vote prsidentiel.......................................................................... 49

  • 7/24/2019 E-electioon

    6/79

    vi

    Liste des tableaux

    Tableau A2. 1 : description de cas dutilisation Sauthentifier .......................................... 54Tableau A2. 2 : Description de cas dutilisationrelatif au votant ............................................ 54

    Tableau A2. 3 : Description de cas dutilisationrelatif au valideur ......................................... 55Tableau A2. 4 : Description de cas dutilisationrelatif au commissaire .................................. 55Tableau A3. 1 : Composants tlcharger ............................................................................... 56

  • 7/24/2019 E-electioon

    7/79

    vii

    Glossaire

    AC : Autorit de Certification.

    AE : Autorit dEnregistrement.

    AES : Advanced Encryption Standard.

    ANCE : Agence Nationale de Certification Electronique.

    CRL: Certificate Revocation List.

    DES : Data Encryption Standard.

    EPFL : cole Polytechnique Fdrale Lausanne.

    HTML : HyperText Mark-Up Language.

    ISIE : Instance suprieure indpendante pour les lections.

    J2EE : Java 2 Entreprise Edition.

    JKS :Java KeyStore

    JSP : Java Server Pages.

    LDAP: Lightweight Directory Access Protocol.

    MD : Message Digest.

    OCSP : Online Certificate Status Protocol.

    PKCS #12 :Public-Key CryptographyStandards.

    PKI : Public Key Infrastructure.

    RSA:Rivest Shamir Adleman.

    SGBD: Systme de Gestion de Base de Donnes.

    SHA : Secure Hash Algorithm.

    SSL : Secure Sockets Layers.

    TLS : Transport Layer Security.

    UML : Unified Modeling Language.

    .

    http://fr.vikidia.org/wiki/Rivest_Shamir_Adlemanhttp://fr.vikidia.org/wiki/Rivest_Shamir_Adlemanhttp://fr.vikidia.org/wiki/Rivest_Shamir_Adlemanhttp://fr.vikidia.org/wiki/Rivest_Shamir_Adleman
  • 7/24/2019 E-electioon

    8/79

    Introduction gnrale

    1

    Introduction gnrale

    Le droit de vote est le pivot essentiel et fondamental de la dmocratie. Le combat pour

    lacqurir fut long,nanmoins, prs de la moiti de la population mondiale en est prive. Le

    moment du vote est aussi un des rares instants o tous les citoyens sont placs sous un point

    de vue strictement galitaire et o un citoyen est gale une voix. Chacun peut exprimer

    pleinement ses liberts individuelles. Choix des dirigeants, moyen de faire entendre sa voix,

    voter reste essentiel et le moyen le plus direct et efficace de participer la vie dmocratique.

    Des distances considrables peuvent sparer les lecteurs des bureaux de vote. Les

    dplacements peuvent tre difficiles, voire dangereux. Ces contraintes spcifiques

    lexpatriation sont autant dobstacles lexercice du droit de vote. Aussi, des solutions

    innovantes sont ncessaires pour que ce droit puisse tre exerc, ltranger galement.

    En rponse ces limites, le vote par internet est une solution alternative au vote traditionnel.

    Mais pour bien drouler une lection lectronique, nous devons faire face aux attaques et

    fraudes qui empchent le droulement des lections en toute scurit. Ceci dit, la scurit

    reste un dfi majeur que nous devons assurer.

    De plus, les services distance et lectronique sont aujourdhui un domaine en pleine

    effervescence. Les dmarches administratives sur Internet se font en toute confiance, nous

    parlons alors de le-Gouvernement. Nous pouvons faire nos achats en ligne en toute scurit,

    il sagit de le-Commerce. Les services bancaires dmatrialiss et scuriss, cest l'e-

    Banking.

    En bref, cest le temps de migrer vers le-dmocratie.

    Pour rpondre cette problmatique, nous avons ralis notreprojet de fin dtudedans le but

    dobtenir le diplme dingnieuren Gnie de Communications et Rseaux (GCR) dlivr par

    lEcole Nationale dIngnieurs de Gabs(ENIG). Il a t effectu au sein de l'Unit de

    Recherche Hatem Bettaher d'Informatique, Rseau, Tlcommunication et Mathmatique

    (IResCoMath- UR13ES79). Ce projet est consacr la mise en place dune application de

    vote en ligne scurise en utilisant les outils cryptographiques (surtout les certificats

  • 7/24/2019 E-electioon

    9/79

    Introduction gnrale

    2

    numriques) pour assurer un trs haut niveau de scurit et faciliter aux gens dexprimer leurs

    choix de faon anonyme dans un environnement informatique.

    Cette mmoire est compose de trois chapitres. Le premier chapitre est consacr ltat de

    lart dans lequel nous effectuons une tude concernant le vote traditionnel et lectronique.Nous prsentons, par la suite, les diffrents scnarios et les proprits de vote en ligne. Nous

    prsentons aussi une solution de vote lectronique propose par de chercheurs du laboratoire

    de scurit et cryptographie lEPFL [1] (cole Polytechnique Fdrale Lausanne). Nous

    nous sommes bass sur cette solution pour concevoir notre nouvelle solution.

    Le deuxime chapitre consiste effectuer une spcification des besoins fonctionnels et non

    fonctionnels suivit dune conception UML(Unified Modeling Language) du systme de vote

    propos.

    Le troisime chapitre est le chapitre de ralisation o nous prsentons les diffrents outils

    utiliss. Ensuite, nous prsentons un dmonstrateur pour russir le vote en utilisant notre

    systme.

    Dans la dernire partie de ce rapport, nous concluons le travail ralis et nous donnons

    quelques perspectives de travail.

  • 7/24/2019 E-electioon

    10/79

    Chapitre 1 Etat de lart

    3

    Chapitre 1 Etat de lart

    I. IntroductionLobjectif de ce chapitre est de raliser, dans la premire partie, une tude de lexistant dans

    laquelle nous dtaillons le systme de vote traditionnel et nous mettons en relief ses limites.

    La deuxime partie est consacre au systme de vote lectronique; nous expliquons la

    numrisation du vote et nous prsentons quelques solutions dj dployes au niveau

    mondial.

    Dans la dernire partie, nous critiquons lexistant et nous prsentons les lmentscryptographiques qui nous voulons utiliser dans notre solution propose.

    II. Vote traditionnel

    Le vote traditionnel est la mthode la plus ancienne servant une lection prsidentielle,

    lgislative ou sondage. Il est simple et connu de tous.

    En Tunisie, la premire lection dmocratique t ralise aprs lindpendance en

    Novembre 1981. La dernire en date est celle du 23 Octobre 2011 aprs la rvolutiontunisienne. Cette lection a t prpare et dirige par lISIE (l'Instance suprieure

    indpendante pour les lections). Elle utilise des bulletins en papier et n'utilise aucun

    dispositif informatique.

    Selon le guide des procdures du scrutin et du dpouillement dit par lISIE,les principales

    tapes [2] du scrutin pour l'lection se droulent comme dcrit dans lAnnexe 1.

    Ce systme a permis au vote davoir un support matriel qui le rendtangible et manipulable.

    Mais la matrialit du vote ne garantit nullement son intgrit puisque les bulletins du vote

    peuvent tre perdus, dtruits ou modifies.

    Parmi les problmes lis cette technologie, nous citons :

    Limprcision du marquage du choix de llecteur sur le bulletin de vote. Ce

    marquage peut parfois tre sujet diverses interprtations.

    Des problmes sont lis au dcomptage des votes.

    Des difficults temporelles concernant le temps pour effectuer cette opration.

  • 7/24/2019 E-electioon

    11/79

    Chapitre 1 Etat de lart

    4

    Des problmes de localisation si le vote sadresse un grand nombre de citoyens

    disperss sur un grand territoire. Ceci a de nombreux impacts sur le transport et la

    conservation des bulletins de votes. Lintgrit de ceux-ci peut-tre mis en pril.

    La solution alternative pour rpondre aux problmes identifis prcdemment est le votelectroniquequi est dtaill dans le paragraphe suivant.

    III. Vote lectronique

    Ce systme permet de se prmunir de limprcision du marquage. Il permet de faire

    rapidement le dcompte des votes avec prcision. Il permet galement de rduire les impacts

    de la dispersion gographique des points de vote.

    Le vote lectronique est divis en deux mthodes: les machines voter qui, installes dans les

    bureaux de vote, remplacent les systmes de bulletins et durnes et le vote parInternet o

    llecteur peut participer un scrutin distance en utilisant son ordinateur.

    III.1. Machine voter

    Une machine voter [3] est place dans chaque bureau de vote sous la responsabilit du

    prsident du bureau, et actionne par lui seul (ou son vice-prsident) au moyen d'un botier.

    La machine est une simple calculatrice qui enregistre les votes sans identification del'lecteur. Ce dernier ne peut voter qu'une seule fois. Cette machine est entirement autonome,

    sans systme d'exploitation ni connexion un rseau informatique

    En cas de panne, une batterie prend le relais, sans perdre les donnes dj collectes. Quand le

    scrutin est termin, les rsultats sont imprims en quelques secondes: il ny a plus de

    dpouillement, ni de risque derreur dans le comptage.

    Exemple de pays utilisant la machine voter : USA, France, etc.

    La figure 1.1 reprsente un exemple de machine voter:

    Figure 1. 1 : Machine voter [4]

  • 7/24/2019 E-electioon

    12/79

    Chapitre 1 Etat de lart

    5

    Le problme majeur des machines voter lectroniques [5] rside dans le fait quelles nont

    pas encore fait la preuve de leur fiabilit. De nombreuses tudes internationales pointent

    toujours du doigt sur les risques de manipulation et de fraudes.

    III.2. Vote en ligne

    Il permet un lecteur de voter en utilisant tout poste informatique connect Internet. Une

    lection en ligne apporte de nombreuses amliorations, elle simplifie la procdure de vote,

    rend impossible le dpt de votes non valides et permet aux groupes cibles prsentant des

    besoins particuliers comme les lecteurs handicaps ou les citoyens rsidant ltranger

    dexercer plus facilement leurs droits politiques.

    Exemple : Estonie.

    III.2.1. Proprits du vote

    Pour garantir le bon fonctionnement dune application excutable sur le rseau, nous devons

    sassurerque les proprits suivantes sont bien respectes.

    a. Prcision

    Elle est dfinit par les trois conditions suivantes :

    Il est impossible de modifier un vote.

    Il est impossible dliminer un vote valide.

    Il est impossible quun vote invalide soit compt.

    b. Dmocratie

    Seules les personnes autorises peuvent participer lopration de vote en prenant en compte

    lge, la nationalit, etc.

    c. Non rpudiation

    Une personne ayant le droit de vote ne peut voter quune seule fois.

    d. Confidentialit

    Elle est dfinit par ces deux conditions :

    Il nexiste aucune possibilit deffectuer une liaison entre le votant et son vote, de

    cette manire on a bien maintenu lanonymat de vote.

  • 7/24/2019 E-electioon

    13/79

    Chapitre 1 Etat de lart

    6

    Il est impossible pour un votant de prouver quil a vot pour un candidat particulier.

    e. Vrifiabilit

    Les conditions pour la vrifiabilit sont :

    Chaque lecteur est capable de vrifier que son propre vote a bien t pris en compte.

    Il est capable aussi de vrifier dune manire indpendante si tous les votes ont t

    compts correctement.

    f. Disponibilit

    Elle est dfinit comme suit :

    Le systme doit fonctionner correctement pendant toute la priode de vote

    Chaque votant possde le droit daccder au systme durant toute la priode de vote.

    III.2.2. Scnario de vote

    Le scnario du vote est compos de trois phases.

    a. Phase de pr vote

    Il est important dtendre la priode denregistrement sur plusieurs semaines. Cette priode

    sert rduire fortement, mme viter compltement, les problmes dusurpation didentitet

    la non disponibilit.

    Pour senregistrer et acqurir le droit de participation au vote, chaque personne doit

    senregistrer auprs dune autorit de vote valide afin de lui fournir un bulletin de vote

    contenant les paramtres ncessaires pour accder lapplication.

    b. Phase de vote

    Durant cette phase, le votant est invit tablir toute les tapes du vote entre autre la slection

    et la validation de son choix.

    c. Phase de dcompte

    Si la phase de vote est termine avec succs, il est possible de ramener tous les rsultats

    enregistrs dans chaque dcompteur et de publier le rsultat final en le mettant la disposition

    des votants afin de vrifier que leurs votes ont t pris en considration ou ignors.

    Nous avons trouv dans la littrature une solution de vote lectronique qui est dcrite par la

    suite.

  • 7/24/2019 E-electioon

    14/79

    Chapitre 1 Etat de lart

    7

    III.2.3. Solution de Nicolas Bonvin

    Cette solution prsente quatre entits diffrentes : un administrateur, un commissaire, un

    anonymiseur et un dcompteur.

    Dans la phase denregistrement, chaque votant reoit son bulletin de vote, contenant ses

    propres paramtres de scurit (SecT1, SecT2 et SecT3), par une lettre recommande avec

    accus de rception ou dans sa boite e-mail.

    La figure 1.2 montre les interactions entre les diffrentes entits:

    1. Le votant envoie un message contenant le choix pour lequel il sest engag. Ce message

    prend la forme dun hash masqu, accompagn par le SecT1du votant.

    2. Ladministrateur envoie le SecT1reu au commissaire pour la vrification.

    3. Le commissaire renvoie le SecT2dans le cas ou le SecT1tait correct.

    Dans le cas contraire, il renvoie un message derreur.

    4. Ladministrateur renvoie au votant le hash masqu aprs lavoir sign, accompagn du

    SecT2, sil na reu aucun message derreur de la part du commissaire. Si tel est le cas, alors

    ladministrateur renvoie uniquement le message derreur au votant.

    Aprs avoir vrifi que le SecT2corresponde avec celui prsent sur le bulletin en papier, le

    votant dmasque la signature, la vrifie et envoie lanonymiseur son choix en texte clair, la

    signature du commissaire, les cls quil a utilis lors de son engagement, ainsi que son SecT3.

    Ceci est chiffr avec la cl publique du dcompteur. Lanonymiseur ne peut donc pas en

    prendre connaissance. Lelecteur envoie galement leSecT1, chiffr pour lanonymiseur.

    Lanonymiseur envoie le SecT1 au commissaire pour le vrifier.

    7. Le commissaire renvoie le SecT2si le SecT1est valable et na pas encore t utilis. Dans

    le cas contraire, il renvoie un message derreur.

    8. Si lanonymiseur na pas reu de message derreur, il enregistre le vote et envoie au votant

    une confirmation du bon droulement de lopration, ou un message derreur, accompagn du

    SecT2.

  • 7/24/2019 E-electioon

    15/79

    Chapitre 1 Etat de lart

    8

    9. Lanonymiseur envoie la fin de la session de votelensemble des votes au dcompteur,

    afin que ce dernier puisse procder au dpouillement et compter les voix.

    Figure 1. 2 : Vue globale du systme de vote [5]

    Bien quil sagisse dune solution efficace, elle est vulnrable et susceptible aux attaques et

    fraudes. En effet lattaque dune tierce personne (ou Man-in -the-middle attack) intervient

    dans une transaction entre deux personnes (groupes, entits, etc.). Une troisime personne

    peut s'interposer de manire transparente entre le votant et le valideur et termine la transaction

    normalement en captant les messages et en transmettant d'autres messages sans que les deuxentits s'en aperoivent.

    En plus, le problme majeur qui peut se poser est celui de l'authentification de l'utilisateur sur

    le serveur, si un identifiant et un mot de passe sont utiliss, le systme reste non fiable car ils

    passent en clair sur la ligne de connexion.

    Dans ce systme de vote, la scurit est un aspect ne pas ngliger, elle constitue l'pine

    dorsale du succs et de la fiabilit du vote.

  • 7/24/2019 E-electioon

    16/79

    Chapitre 1 Etat de lart

    9

    Alors lapplication propose de vote en ligne demande un niveau de scurit plus lev que

    celui fournit par lauthentification base de formulaire. Elle a aussi besoin de garantir la

    confidentialit et lintgrit de vote. Pour ces raisons, seule une solution base sur les

    certificats numriquesest envisageable pour un vote correctement scuris et fiable.

    Dans ce qui suit, nous dtaillons les lments cryptographiques et le protocole SSL (Secure

    Sockets Layers) et TLS (Transport Layer Security).

    IV. Cryptographie et scurit rseau

    Plusieurs mthodes cryptographiques sont requises afin de rpondre aux diverses proprits

    souhaites par le systme de vote.

    IV.1. Cryptographie

    La cryptologie est une science mathmatique comportant deux branches: la cryptographie et

    la cryptanalyse.

    La cryptographie [6] est lart et la science de garder un secret. Elle offre des mthodes

    donnant la possibilit denvoyer des donnes de manire confidentielle sur un support donn.

    La cryptanalyse: est oppose la cryptographie, elle a pour but de retrouver le texte clair

    partir de textes chiffrs en dterminant les failles des algorithmes utiliss.

    IV.1.1. Services de scurit

    La scurit numrique vise assurer plusieurs services :

    La confidentialit:Seul le destinataire peut connatre le contenu des messages qui lui

    sont transmis.

    Lauthentification: le destinataire dun message doit pouvoir sassurer de son

    origine. Un intrus ne doit pas se faire passer pour quelquun dautre.

    Lintgrit des donnes:le destinataire doit pouvoir sassurer que le message na pas

    t modifi en chemin.

    Le non rpudiation :Un expditeur ne doit pas nier quil a envoy un message et le

    destinataire ne doit pas nier quil la reu.

    Contrle daccs: cest la facult de limiter et de contrler laccs des systmes et

    des applications via des maillons de communication.

  • 7/24/2019 E-electioon

    17/79

    Chapitre 1 Etat de lart

    10

    Disponibilit [7]: de nombreuses attaques peuvent rsulter en une perte ou une

    rduction de la disponibilit. Certaines de ces attaques sont susceptibles dtre lobjet

    de contre-mesures automatiques, telles que lauthentification et le chiffrement, alors

    que dautres exigent une action humaine pour prvenir ou se rtablir de la perte de ladisponibilit des lments dun systmedonn.

    IV.1.2. Chiffrement

    Le chiffrement consiste transformer une donne afin de la rendre incomprhensible par une

    personne autre que celui qui a cr le message et celui qui en est le destinataire.

    Il existe deux grands principes de chiffrement possible : le chiffrement symtrique et

    asymtrique.

    a. Chiffrement symtrique

    Dans la cryptographie symtrique deux partenaires souhaitant changer des informations

    confidentiellement se mettent d'accord sur une cl secrte commune, appele cl de session,

    qui leur servira chiffrer leurs messages.

    Les algorithmes symtriques les plus rpandus sont : DES, 3DES, AES.

    Ces algorithmes sont rapides mais ils posent le problme de l'change de la cl de session. Sicette cl est rcupre par un attaquant il peut dchiffrer toutes les conversations.

    b. Chiffrement asymtrique

    Lide de base des cryptosystmes cls publiques a t propose dans un article fondamental

    de Diffie et Hellman en 1976 [8].

    Dans la cryptographie asymtrique chaque entit dispose d'une cl publique et d'une cl

    prive. La cl publique est diffuse l'ensemble des autres entits souhaitant communiquer

    avec la premire. Elle sert chiffrer les communications. Alors que la cl prive reste secrte

    et l'entit s'en sert pour dchiffrer les communications. La cryptographie cl publique est

    galement utilise pour l'authentification et pour les signatures numriques.

    Les algorithmes asymtriques les plus connus sont DiffieHellman, RSA (Rivest Shamir

    Adleman) [9], la cryptographie base sur les courbes elliptiques etElGamal.

    http://en.wikipedia.org/wiki/ElGamal_encryptionhttp://en.wikipedia.org/wiki/ElGamal_encryption
  • 7/24/2019 E-electioon

    18/79

    Chapitre 1 Etat de lart

    11

    IV.1.3. Fonction de hachage

    La fonction de hachage est une fonction permettant dobtenir un condens dun message en

    transformant une donne de taille quelconque en une empreinte de taille fixe. Cette fonction

    est parfaitement dterministe, elle ne ncessite lemploi daucune cl.

    Cependant, certaines proprits de scurit doivent tre vrifies :

    Rsistance forte de collision : il doit tre pratiquement difficile de trouver deux

    messages diffrents conduisant une mme valeur de hach.

    Rsistance faible de collision : tant donn un message, il doit tre difficile de

    trouver un message diffrent detel que = ().

    Fonction sens unique: tant donn une valeur dans l'espace des hachs, il doittre difficile de trouver tel que = .

    Pour garantir la scurit du vote en ligne, il est ncessaire de faire appel des fonctions de

    hachage qui sont sre contre les attaques, mme thorique. En particulier, le standard MD5

    (Message-Digest) est considr comme cass, et ne doit plus tre employ.

    IV.1.4. Signature numrique

    La signature numrique est un procd permettant de garantir l'authenticit de l'expditeur etde vrifier l'intgrit du message reu.

    Elle assure galement une fonction de non-rpudiation, c'est--dire qu'elle permet d'assurer

    que l'expditeur a bien envoy le message.

    Le systme propos utilise le crypto systme RSA, qui fonctionne de la manire suivante:

    Nous supposons quAlice et Bob sont respectivement lexpditeur et le destinataire.

    Alice possde une cl publique , une cl prive , et un modulo (n produit des deux

    nombres premiers trs grands). Elle calcule la signature S dun objet en le chiffrant laide

    de sa cl prive:

    =

    Et puisquelle est la seule personne connaitre sa cl prive, elle est aussi la seule pouvoir

    gnrer la signature pour lobjet.

  • 7/24/2019 E-electioon

    19/79

    Chapitre 1 Etat de lart

    12

    Chacun, possdant la cl publique dAlice, peut ds lors vrifier que S correspond exactement

    la signature de lobjet M en effectuant lopration de chiffrement suivante:

    = = () =

    IV.1.5. Certificat numrique

    a. Dfinition

    Le certificat numrique est l'quivalent lectronique dune carte d'identit. Il permet

    d'authentifier les entits au sein d'un systme d'information. Il fait une association entre

    l'identit d'une personne et sa cl publique et ventuellement dautres informations. Cette

    association est garantie par une autorit de confiance.

    Plusieurs normes de certificats existent, la plus employe est X509[7]

    b. Cycle de vie dun certificat

    Pour des raisons de scurit, un certificat est accord pour une dure limite. Il peut tre

    galement remis en question dans la priode de validit pour diffrentes raisons:

    Volont du dtenteur du certificat.

    Changement de situation du dtenteur.

    Volont de lautorit de certification.

    Scurit.

    Le certificat est alors suspendu ou rvoqu, la suspension ou la rvocation tant notifi dans

    un annuaire spcifique facilement accessible (en ligne).

    IV.1.6. Infrastructure a cl publique(ICP)

    Elle est appel aussi infrastructure de gestion de cls (IGC) ou en anglai Public Key

    Infrastructure (PKI). Cest lensemble des procdures, des logiciels et des composantsphysiques qui permettent la bonne gestion des cls et des certificats. Cela englobe entre autres

    la cration, la distribution et la rvocation des certificats, la configuration des quipements et

    les politiques de scurit associes, etc. Lutilisation dalgorithmes cryptographiques permet,

    travers la distribution de cls des utilisateurs ou des machines, doffrir plusieurs services

    de scurit. Ces cls doivent tre accompagnes de certificats numriques qui les lient

    lidentit de leur dtenteur. Il faut prciser que lautorit de certificat racine en Tunisie est

    lANCE(Agence Nationale de Certification Electronique).

  • 7/24/2019 E-electioon

    20/79

    Chapitre 1 Etat de lart

    13

    IV.2. SSL/TLS

    La scurit des communications sur l'Internet est assure par le protocole SSL/TLS. Il permet

    aux applications client/serveur de communiquer d'une faon conue pour empcherl'espionnage, l'altration ou la falsification du message. Son but principal est de fournir la

    confidentialit et l'intgrit de donnes entre deux applications communicantes.

    Les objectifs du protocole SSL/TLS sont, dans l'ordre des priorits, les suivants:

    Scurit cryptographique: il est utilis pour tablir une connexion sre entre deux

    parties.

    Interoprabilit: des programmeurs indpendants devraient tre capables de

    dvelopper des applications en utilisant SSL/TLS qui russissent pleinement

    changer des paramtres cryptographiques sans connaitre leurs codes respectifs.

    Extensibilit: SSL/TLS cherche fournir un cadre dans lequel puissent tre

    incorpores de nouvelles cls publiques et de nouvelles mthodes de chiffrement sans

    modification majeure du protocole.

    Efficacit relative: les oprations cryptographiques tendent tre trs

    consommatrices de CPU, en particulier les oprations utilisant la cl publique. Pour

    cette raison, le protocole SSL/TLS a incorpor un schma facultatif de mise en

    mmoire cache de session pour rduire le nombre de connexions qui doivent tre

    tablies a partir de rien (c'est--dire utiliser la mme cls dj gnre dans des

    sessions futures).

    V. Conclusion

    Dans ce chapitre, nous avons effectu une tude concernant le systme de vote et nous avons

    prsent brivement les lments cryptographiques, tels que la signature numrique, la

    fonction de hachage et le certificat numrique, intgrer dans notre systme.

    Dans le chapitre suivant, nous dcrivons larchitecture du systme propos, la spcification des

    besoins et la conception de lapplication dtaille raliser.

  • 7/24/2019 E-electioon

    21/79

    Chapitre 2 : Spcification des besoins et conception

    14

    Chapitre 2 : Spcification des besoins et conception

    I. Introduction

    Dans ce chapitre, nous prsentons la spcification des besoins de notre systme. Nous

    commenons tout dabord par la prsentation de larchitecture complte de lapplication. Par

    la suite, nous utilisons le langage de modlisation UML afin didentifier les diffrents

    diagrammes utiliss pour bien dcrire la conception de ce projet.

    II. Architecture gnrale du systme

    Dans cette partie, nous dcrivons dune manire prcise larchitecture gnrale de notresolution et les interactions entre les diffrents acteurs.

    Afin de garantir une certaine robustesse, le systme de vote propos est form par quatre

    entits diffrentes : un valideur, un commissaire, un anonymiseur et un dcompteur. Ce sont

    les mmes acteurs que dans la solution dcrite dans la section III.1.3. Les quatre entits sont

    des serveurs autonomes et indpendants les uns des autres. Ils sont grs par une autorit de

    vote subordonne qui est son tour administre par une autorit de vote racine.

    Ces quatre serveurs se communiquent entre eux travers un rseau informatique et peuvent

    ne pas se trouver dans le mme endroit physique.

    Nous supposons, dans ce qui suit, que la phase denregistrement (la phase pr vote) a t

    effectue sans aucun problme, autrement dit, que le votant a dj reu dans son boite mail

    les paramtres ncessaires pour accder lapplication (surtout son certificat numrique et sa

    cl prive).

    Nous reprsentons dans la figure 2.1 les diffrentes entits participantes dans lopration de

    vote et les interactions entre elles.

    La connexion du votant au systme de vote, les jours des lections, doit tre scurise. En

    effet, le votant doit recevoir la garantie que les serveurs sont lgitimes et officieux et que les

    informations transmises restent confidentielles.

  • 7/24/2019 E-electioon

    22/79

    Chapitre 2 : Spcification des besoins et conception

    15

    Pratiquement, toutes les parties intervenantes dans l'application de vote doivent pouvoir tre

    authentifies. Dj, elles possdent chacune une paire de cls (cl publique, cl prive).

    Figure 2. 1 : Architecture du systme de vote

    Les entits doivent se communiquer travers un canal scuris avec des cls de session. Nous

    avons besoin de cinq cls comme suit :

    Ks1entre le systme de vote et le valideur.

    Ks2entre le valideur et le commissaire.

    Ks3entre le systme de vote et lanonymiseur.

    Ks4entre lanonymiseur et le commissaire.

    Ks5entre lanonymiseur et le dcompteur.

    Les diffrents messages reprsents dans la figure 2.1 sont dtaills comme suit :

    1) Aprs lauthentification, le votant effectue un choix et lorsquil valide son vote, un

    message chiffr sera envoy au valideur. Ce message contient : le hash du vote, la

    signature du vote chiffr par la cl prive du votant, lidentifiant duvotant et le temps de

    vote. Il se traduit par lquation suivante :

  • 7/24/2019 E-electioon

    23/79

    Chapitre 2 : Spcification des besoins et conception

    16

    message1= 1( + _ () + + ).

    2) Aprs le dchiffrement du message reu par la cl ks1, le valideur dchiffre le hash du

    vote chiffr par la cl publique de votant tout en le comparant avec le hash du vote reu,

    si la signature du votant nest pas valide, il renvoie un message derreur au systme de

    vote.

    Si elle est valide, le valideur envoie un message contenant son identifiant et celui du

    votant au commissaire pour vrifier lunicit de vote. Ce message se traduit par

    lquation suivante :

    message2=2( + ).

    3) Sil sagit du premier passage par un valideur, le commissaire renvoie au valideur unmessage de confirmation, si non il renvoie un message derreur lui affirmant que ce

    votant a dj vot et na pas le droit de voter une autre fois. Il sagit de message3.Le

    commissaire ajoute sa table les informations pour des vrifications futures.

    4) En recevant un message de confirmation depuis le commissaire, le valideur signe le hash

    du vote par sa cl prive et lenvoie au votant. ce message se traduit par lquation

    suivante :

    message4= 1( _ (()).

    5) Le votant vrifie la signature du valideur en dchiffrant le message reu par la cl

    publique de ce dernier. Sil estbien en train de communiquer avec un serveur officiel, le

    votant envoie lanonymiseur un message form par : le hash du vote sign par le

    valideur, le hash du vote, le choix chiffr par la cl publique du dcompteur et

    lidentifiant duvotant. Ce message se traduit par lquation suivante :

    message5= 3( + () + _ () + ).

    6) Lanonymiseur vrifie la signature du valideur en comparant le hash reu avec celui

    obtenu aprs le dchiffrement par la cl publique de ce dernier.

    Dans le cas ou la signature nest pas valide, un message derreur sera renvoy au votant lui

    demandant de contacter ladministrateur. Dans le cas contraire, lanonymiseur envoie au

    commissaire un message contenant son identifiant accompagn de lidentifiant devotant et

    celui de valideur. Ce message se traduit par lquation suivante:

  • 7/24/2019 E-electioon

    24/79

    Chapitre 2 : Spcification des besoins et conception

    17

    message6=4( + + ).

    7) Le commissaire consulte sa table pour vrifier sil sagit du premier passage par un

    anonymiseur. Si tel est le cas, alors il change ltat de lanonymiseur et lui renvoie un

    message de confirmation. Sinon un message derreur sera renvoy en lui affirmant que le

    vote nest pas unique. Il sagit de message7.

    8) Si lanonymiseur na pas reu un message derreur, il envoie au dcompteur le choix du

    votant chiffr par la cl publique de ce dernier. Ce message se traduit par lquation

    suivante :

    message8= 5( _ ()).

    9) En recevant un message confidentiel, le dcompteur le dchiffre par sa cl prive et

    enregistre le choix tout en envoyant un message lanonymiseur lui indiquant que le

    vote est bien reu et sera compt soigneusement.

    10)Finalement, lanonymiseur informe le votant que son vote sest termin avec succs.

    III. Spcification des besoins

    Aprs avoir prsent larchitecture gnrale de notre application, cette section nonce les

    diffrents besoins fonctionnels et non fonctionnels de lapplication raliser.

    IV.1. Besoins fonctionnels

    Les besoins fonctionnels prsentent principalement les fonctionnalits du systme. Nous

    dtaillons dans la suite ces besoins en fonction des acteurs :

    IV.1.1. Votant

    Lacteur votant est toute personne se connectant de son ordinateur personnel de chez lui.

    Lordinateurpeut tre utilis par plusieurs membres de la famille.

    Un votant doit sauthentifier en utilisant son certificat pour accder lapplication et effectuer

    un choix. Il doit valider son choix et il peut vrifier son vote aprs le dpouillement.

    IV.1.2. Administrateur (Autorit du vote)

    Dans notre application, il peut tre lISIE.

  • 7/24/2019 E-electioon

    25/79

    Chapitre 2 : Spcification des besoins et conception

    18

    Elle assure, dune part, linscription des votants, la gestion des candidats et la gestion des

    certificats utiliss par les votants pour sauthentifier. Elle assure la publication de ces

    certificats valides dans un annuaire scuris.

    Dautre part, elle supervise les diffrents serveurs agissant dans la procdure de vote en lesconfigurant et en les grant.

    IV.1.3. Valideur

    Aprs avoir vrifi la signature du votant, il communique avec le commissaire pour garantir

    lunicit de vote.

    Dans le cas o le votant na pas dj vot, le valideur signe le vote avec sa cl prive et

    retourne le vote valid au votant.

    IV.1.4. Anonymiseur

    Il est responsable de la protection de lanonymat du votant. Il joue le rle dun arbitre entre le

    votant et le dcompteur.

    Il communique avec le commissaire pour vrifier lunicit de vote et il envoie le vote final au

    dcompteur.

    IV.1.5. Commissaire

    Suite un message provenant du valideur ou de lanonymiseur, il vrifie si le votant a dj

    contact lun deux. Il marque ltape de validation ou de lanonymisation en changeant les

    tats du valideur et de lanonymiseur dans une table concernant le votant afin dassurer

    lunicit de vote.

    IV.1.6. Dcompteur

    Aprs dchiffrement du message reu, il dcompte les choix des votants en toute scurit et il

    informe lanonymiseur, qui est lintermdiaire entre lui et le systme de vote, du bon

    droulement de vote.

    IV.2. Besoins non fonctionnels

    Aprs avoir dtaill les besoins fonctionnels du systme, nous passons mettre en valeur les

    diffrentes exigences non fonctionnelles qui se rsument en quelques points:

  • 7/24/2019 E-electioon

    26/79

    Chapitre 2 : Spcification des besoins et conception

    19

    Interface Homme Machine :lapplication doit assurer une interface comprhensible

    et facile utiliser.

    Performance : lapplication doit avoir un temps de traitement acceptable afin de

    garantir une meilleur qualit de service.

    Extensibilit :elle doit tre conue de telle sorte que nous pouvons la mettre jour en

    ajoutant des nouveaux lments la base. Le dveloppement de ces mises jours doit

    tre long terme et sans avoir besoin refaire tout le travail.

    Modularit : Lapplication doit tre bien structure en module pour assurer une

    meilleure lisibilit, une diminution du risque derreur et une possibilit de tests

    slectifs.

    Pour grer les interactions entre les diffrents composants de notre application, il est

    primordial de choisir un modle darchitecture adquat et performant.Nous dcrivons cette

    architecture dans la section suivante.

    IV. Architecture MVC

    Le MVC (Modle, Vue, Contrleur) est un modle de conception qui repose sur la volont de

    sparer les donnes, les traitements et la prsentation. Ainsi, lapplication se retrouvesegmente en trois couches (chacune a un rle bien dfini):

    Le modle :reprsente les donnes et les rgles mtiers. Cest dans cette couche que

    les traitements lis au cur du mtier seffectuent. Les donnes peuvent tre lies

    une base de donnes, des services Web, etc. Il est important de noter que les donnes

    sont indpendantes de la prsentation. En dautres termes, le modle ne ralise aucune

    mise en forme. Ces donnes peuvent tre affiches par plusieurs vues.

    La vue :correspond l'interface homme/machine de lapplication.Elle prsente les

    donnes et interagit avec lutilisateur. Dans le cadre des applications Web, il sagit

    dune interface HTML, JSP, etc.

    Le contrleur : se charge dintercepter les requtes de lutilisateur, dappeler le

    modle puis de rediriger le rsultat vers la vue adquate. Il ne doit faire aucun

    traitement. Il ne fait que de linterception et de la redirection.

    Les interactions entre ces trois couches sont dcrites comme suit:

  • 7/24/2019 E-electioon

    27/79

    Chapitre 2 : Spcification des besoins et conception

    20

    Lutilisateur met une requte

    Le contrleur intercepte la requte de lutilisateur

    Le contrleur dtermine quelle partie du modle est concerne et quelle vue y est

    associe Le modle traite les interactions avec les donnes, applique les rgles mtier et renvoie

    les donnes au contrleur

    Le contrleur slectionne la vue et lui renseigne les donnes

    La vue prsente les donnes lutilisateur

    V. Conception

    Nous dcrivons dans cette partie les diffrents diagrammes du langage de modlisation,

    UML2 [10], permettant la modlisation de lapplication. Nous nous somme limits aux

    digrammes de cas dutilisation, diagrammes de collaborations, digrammes de squences,

    diagramme dactivit etdiagramme de classe.

    V.1. Diagramme de cas dutilisation

    Le cas d'utilisation est une description des interactions qui vont permettre l'acteur d'atteindre

    son objectif. Il permet de mettre en vidence les relationsfonctionnelles entre les acteurs et lesystme tudi.

    Nous reprsentons, par la suite, le diagramme du cas dutilisation gnrale de lapplication, le

    diagramme relatif au votant et le diagramme relatif lautorit de vote.

  • 7/24/2019 E-electioon

    28/79

    Chapitre 2 : Spcification des besoins et conception

    21

    V.1.1. Diagramme du cas dutilisation relatif au fonctionnement global

    Le schma de la figure 2.2 correspond au diagramme du cas dutilisation globale de

    lapplication.

    Figure 2. 2 : Diagramme du cas dutilisation global

    voter

    slectionner

    lction

    voulue

    annuler vote

    valider vote

    s'authentifier

    s'authentifier par

    identifiant et

    mot de passe

    Votant

    assurer

    unicit du

    vote

    valider

    certificat du

    Votant

    changer tat

    Commissaire

    anonymiser

    vote

    vrifier

    validit du

    vote

    Anonymiseur

    Valideur

    vrifier

    signature d u

    votant

    signer vote

    vrifier

    unicit du

    vote

    dcompter

    vote

    vrifier

    signature d u

    valideur

    Dcompteur

    grer

    Certificat

    superviser

    Agent

    Autori tVote

    grer

    Candidat

    grer Votant

    s'authentifier

    par TLS

  • 7/24/2019 E-electioon

    29/79

    Chapitre 2 : Spcification des besoins et conception

    22

    V.1.2. Diagramme du cas dutilisation relatif au votant

    Nous reprsentons dans la figure 2.3 le diagramme du cas dutilisationrelatif au votant.

    Figure 2. 3 : Diagramme du cas dutilisation relatif au votant

    Nous dtaillons dans lAnnexe 2 les descriptions textuelles des diagrammes de cas

    dutilisation, entre autre : une description dtaille de diagramme de cas dutilisation

    sauthentifier relatif au votant, une pour le diagramme de cas dutilisation relatif auvalideur, une autre le diagramme de cas dutilisation relatif au commissaire et une description

    textuelle pour le diagramme de cas dutilisation relatif lanonymiseur

    V.1.3. Diagramme du cas dutilisation relatif lautorit de vote

    Lautorit de vote assure une gestion complte des certificats et elle supervise les agentset les

    votants participants au scenario de vote.

    voter

    s'authentifier

    slectionner

    lction voulue

    annuler vote

    valider vote

    Votant

    s'authentifier par

    TLS

    s'authentifier par

    identifiant et

    mot de passe

  • 7/24/2019 E-electioon

    30/79

    Chapitre 2 : Spcification des besoins et conception

    23

    La figure 2.4 illustre le diagramme du cas dutilisationrelatif lautorit de vote.

    Figure 2. 4 : Diagramme du cas dutilisation relatif lautorit de vote

    V.2. Diagramme de collaboration

    Les diagrammes de collaboration illustrent les interactions entre les diffrents objets du

    systme. Ils mettent plus laccentsur laspect spatial des changes que laspect temporel.

    V.2.1. Diagramme de collaboration pour lauthentification du votant

    Nous reprsentons ce diagramme dans la figure 2.5.

    Figure 2. 5 : Diagramme de collaboration pour lauthentification du votant

    grerCertificat

    superviserAge nt

    crerCertificat

    distribuerCertificat

    rvoquerCertificat

    configurerAgent

    modifierAge nt

    supprimerAge nt

    ajouter agent

    grer Agent

    Auto ritVote

    grer Votant

    consulterVotant

    supprimerVotant

    ajouterVotant

    grerCandidat

    ajouterCandidat

    supprimerCandidat

    consulterCandidat

    S'authentifier

    CTR authentification

    interface s'authentifierEntit Votant

    Acteu r_17

    interfaceProfil3

    2.transfert()1.saisir(information) 3.traitement de donnes

    4.Rsultat

    5.Votant authentifi

  • 7/24/2019 E-electioon

    31/79

    Chapitre 2 : Spcification des besoins et conception

    24

    Les diagrammes de collaboration pour lopration duvote prsidentiel, lgislatif et sondage

    sont quasi identiques, part le contenu des messages changs. Pour cette raison, nous nous

    limitons reprsenter un seul diagramme de collaboration dcrivant lopration du vote

    prsidentiel.

    V.2.2. Diagramme de collaboration pour lopration vote prsidentiel

    La figure 2.6 reprsente le diagramme de collaboration du votant pour effectuer un vote

    prsidentiel.

    Figure 2. 6 : Diagramme de collaboration pour loprationvote prsidentiel

    V.3. Diagramme de squence

    9.dchiffrement()

    30.Rsultat

    1.slectionner(Election)

    2.envoyer()

    5.ListeCandidat()

    3.demandeListeCandidat()

    4.Rsultat

    8.envoyer(message1)

    10.vrifierSignature()

    11.Rsultat

    20.vrifier(Signature)

    6.slectionner(Candidat)

    7.valider(Choix)

    21.Rsultat

    24.vrifier(Signature)12.envoyer(message2)

    35.vote termin

    31.envoyer(message8)

    33.compter

    34.comptage termin

    14.vrifier(idVotant, id Valideur)

    15.Rsultat

    16.Rsultat18.renvoyer(message4)

    19.liminerMasque()

    22.envoyer(message6)

    Votant

    interfaceProfil

    Entit Candidat

    Ctr Candidat

    votePrsidentiel

    Ctr Commissaire

    Ctr Valideur

    Ctr VotePresiden tiel

    Ctr Anonymiseur

    Ctr Compte ur

    Entit Verif

    Entit Vote

    Entit Certificat

    25.Rsultat

    26.envoyer(message5)

    29.Rsultat

    28.vrifier(idVotant, id Valideur)

    27.dchiffrement

    17.dchiffrement

    23.dchiffrement

    13.dchiffrement

    32.dchiffrement

  • 7/24/2019 E-electioon

    32/79

    Chapitre 2 : Spcification des besoins et conception

    25

    Lobjectif du diagramme de squence est de reprsenter les interactions entre objets en

    indiquant la chronologie des changes. Cette reprsentation peut se raliser par cas

    dutilisation en considrant les diffrents scnarios associs.

    Nous prsentons quelques diagrammes de squences entre autre le diagramme de squencerelatif au cas dutilisation sauthentifier, celui relatif au cas dutilisation Grer Agent, celui

    relatif au vote prsidentiel, un autre relatif au vote lgislatifet un diagramme relatif au cas

    dutilisationsondage.

    V.3.1. Diagramme de squence relatif au cas dutilisation sauthentifier

    La figure 2.7 illustre le diagramme de squence pour lauthentification du votant.

    Figure 2. 7 : Diagramme de squence pour le scnario Sauthentifier

    S'authentifier

    saisir(information)

    transfert()

    traitement de donnes

    Resultat

    Votant authentifi

    Message d'erreur

    Votant Interface_Authent i fication Interface_Profi l Crt_authent if ication Entit_Votant

    loop

    information valide

    information invalide

    al t

    break

    saisir(information)

    transfert()

    traitement de donnes

    Resultat

    Votant authentifi

    Message d'erreur

  • 7/24/2019 E-electioon

    33/79

    Chapitre 2 : Spcification des besoins et conception

    26

    V.3.2. Diagramme de squence relatif au cas dutilisation GrerAgent

    La figure 2.8 illustre le diagramme de squence pour la gestion des agents.

    Figure 2. 8 : Diagramme de squence pour le scnario GrerAgent

    Nous prsentons les diagrammes de squences pour le scnario de vote prsidentiel, lgislatif

    et sondage successivement comme illustr dans les figures 2.9, 2.10 et 2.11.

    GrerAgent

    Agen t supprim

    rsultat

    supprimer(Agent)

    transferer(Choix)slectionner(Agent)

    Agen t non modi fi

    Agen t modi fi

    rsultat

    modifier(Agent)

    transferer(paramtres)

    modifier(paramtres)

    Agen t

    envoyer(Choix)

    slectionner(Agent)

    Agen t exi ste

    Agen t aj out

    rsultatd'ajout

    ajouter(Agent)

    transfert(paramtres)

    vrifier(paramtres)

    ajouterAgent(paramres)

    Auto ritVote L isteAgent in tA jout in tModi fica tion in tSuppression CtrL isteAgent CtrA jout CtrModi f CtrSupp EntAgentDtailAgent

    [Ajouter]opt

    agent n'existe pas

    existe

    alt

    [Modifier]opt

    paramtre correcte

    paramtre incorrecte

    alt

    [Supprimer]opt

    Agen t supprim

    rsultat

    supprimer(Agent)

    transferer(Choix)slectionner(Agent)

    Agen t non modi fi

    Agen t modi fi

    rsultat

    modifier(Agent)

    transferer(paramtres)

    modifier(paramtres)

    Agen t

    envoyer(Choix)

    slectionner(Agent)

    Agen t exi ste

    Agen t aj out

    rsultatd'ajout

    ajouter(Agent)

    transfert(paramtres)

    vrifier(paramtres)

    ajouterAgent(paramres)

  • 7/24/2019 E-electioon

    34/79

    Chapitre 2 : Spcification des besoins et conception

    27

    Vote prsidentiel

    Figure 2. 9 : Diagramme de squence relatif au vote prsidentiel

  • 7/24/2019 E-electioon

    35/79

    Chapitre 2 : Spcification des besoins et conception

    28

    Figure 2. 10 : Diagramme de squence relatif au vote lgislatif

    Vote Lgislatif

  • 7/24/2019 E-electioon

    36/79

    Chapitre 2 : Spcification des besoins et conception

    29

    Figure 2. 11 : Diagramme de squence relatif au sondage

  • 7/24/2019 E-electioon

    37/79

    Chapitre 2 : Spcification des besoins et conception

    30

    V.4. Diagramme dactivit

    Le diagramme dactivit concerne le comportement interne des oprations ou de cas

    dutilisation. Le comportement vis sapplique aux flots de contrle et aux flots de donnes

    propres un ensemble dactivits.

    La figure 2.12 reprsente le diagramme dactivit de notre application.

    Figure 2. 12 : Diagramme dactivit

    V.5. Diagramme de classe

    Le diagramme de classe constitue lun des pivots essentiels de la modlisation avec UML. En

    effet, ce diagramme permet de donner la reprsentation statique du systme dvelopper.

  • 7/24/2019 E-electioon

    38/79

    Chapitre 2 : Spcification des besoins et conception

    31

    La figure 2.13 dcrit avec prcision le diagramme de classe global.

    Figure 2. 13 : diagramme de classe global

    VI. ConclusionAu cours de ce chapitre, nous avons, dabord, prsent larchitecture de notre systme.

    Ensuite, nous avons spcifi les besoins de notre application et nous avons termin par une

    conception dtaille qui nous offre un modle prt tre dvelopp.

    Dans le chapitre suivant, nous prsentons les tapes de la ralisation de notre projet et les

    rsultats obtenus.

    1..*

    1..1

    1..1

    1..*

    0..11..1

    1..11..*

    1..1

    1..*

    1..1

    1..1

    1..1

    1..1

    0..*

    1..10..*

    1..1

    Votant

    -

    -

    --

    -

    -

    identifiant

    nom

    prnomalias

    mot de passe

    mail

    : int

    : String

    : String: String

    : String

    : String

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    get identifiant ()

    set identifiant ()

    get nom ()

    set nom ()

    get prenom ()

    set prenom ()

    get ali as ()

    set alias ()

    get mot de pa sse ()

    set mot de passe ()

    get mail ()

    set mail ()

    : int

    : void

    : String

    : void

    : String

    : void

    : String

    : void

    : String

    : void

    : String

    : String

    Candidat

    Certificat

    -

    -

    dateValidit

    etat

    : Date

    : StringVote

    - i d_vote : i nt+

    +

    get id ()

    set id ()

    : int

    : void

    CandidatLgislatif

    - part i : S tri ng

    +

    +

    get parti ()

    set parti ()

    : String

    : void

    VoteLgislatif

    - choi x : S tri ng

    +

    +

    get choix ()

    set choix ()

    : String

    : void

    VotePrsidentiel

    - choi x : S tri ng

    +

    +

    get choix ()

    set choix ()

    : String

    : void

    Sondage

    -

    -

    identifiant

    choix

    : int

    : String

    +

    +

    +

    +

    get identifiant ()

    set identifiant ()

    get choix ()

    set choix ()

    : int

    : void

    : String

    : void

    Question

    - id : int

    +

    +

    get id ()

    set id ()

    : int

    : void

    Compteur

    - total : int

    +

    +

    get total ()

    set total ()

    : int

    : void

    Ville

    - no m : Stri ng

    +

    +

    get nom ()

    set nom ()

    : String

    : void

    Region

    -

    -

    nom

    nbreVille

    : String

    : int

    +

    +

    +

    +

    get nom ()

    set nom ()

    get nbreVille ()

    set nbreVille ()

    : String

    : void

    : int

    : int

    CandidatPrsidentiel

    Compteur_Cand_Lgi

    - total : i nt

    +

    +

    set total ()

    get total ()

    : int

    : int

    ListCandidat

    -

    -

    identifiant

    parti

    : int

    : String

    +

    +

    +

    +

    get identifiant ()

    set identifiant ()

    get parti ()

    set part ()

    : int

    : int

    : String

    : void

    Compteur_Cand_Prs

    - total : i nt

    +

    +

    get total ()

    set total ()

    : int

    : void

    Agen t

    -

    -

    adresse IP

    rgion

    : String

    : String

    Va li deur Comm issa ire A nonym iseur Dcompteur

  • 7/24/2019 E-electioon

    39/79

    Chapitre 3 : Ralisation

    32

    Chapitre 3 Ralisation

    I. Introduction

    Ce chapitre est consacr la partie ralisation de notre application. Nous commenons par la

    description de l'environnement matriel et logiciel dans lequel nous avons ralis notre

    application. Nous montrons, par la suite, les tapes dinstallation et de configuration des

    logiciels utiliss. Enfin, nous prsentons les diffrentes interfaces ainsi que les rsultats

    atteints.

    II. Environnement de dveloppement

    Nous prsentons, dans cette section, lenvironnement matriel utilis pour le dveloppement de

    cette application ainsi que lenvironnement logiciel.

    II.1. Environnement matriel

    Au cours de la ralisation de notre application, nous avons dispos d'un ordinateur ayant les

    caractristiques suivantes:

    Processeur: 2,53 GHZ

    Mmoire RAM: 3 Go

    Disque dur: 232.5 Go

    Systmes dexploitation: Windows 7 et UBUNTU 12.04

    II.2. Environnement logiciel

    Dans cette partie, nous prsentons les logiciels que nous avons utilis pour la ralisation du

    projet. Nous avons choisi le langage de programmation Java pour le dveloppement duconcept orient objet. Pour dessiner les diagrammes dUML, nous avons utilis Sybase

    Power AMC.

    Nous donnons, par la suite, des dtails sur ApacheStruts, J2EE, MySQL et EJBCA.

    II.2.1. Apache Struts

    Struts [11] est un Framework pour les applications web dvelopp par le projet Jakarta de la

    fondation Apache. C'est le plus populaire des Frameworks pour le dveloppement

  • 7/24/2019 E-electioon

    40/79

    Chapitre 3 : Ralisation

    33

    d'applications web avec Java. Il met en uvre le modle MVC 2 (Modle / Vue / Contrleur).

    L'application de ce modle permet une sparation en trois parties distinctes de l'interface, des

    traitements et des donnes de l'application.

    Nous avons utilis le Framework Struts 2 qui rsulte de la fusion du projet Struts et du projetWebWork. Cette nouvelle version est caractrise par une simplicit et flexibilit par rapport

    la premire (Struts1).

    II.2.2. J2EE

    La plate forme J2EE [12] (Java 2 Entreprise Edition), est la proposition de SUN pour le

    dveloppement et la mise en uvre dapplications dentreprise multi niveaux.

    Elle sappuie entirement sur le langage Java et de ce fait, bnficie de ses caractristiques.

    SUN caractrise le langage Java comme tant simple, orient objet, interprt, distribu,

    robuste, scuris, portable et multitche.

    II.2.3. MySQL Workbench 6.0 CE

    MySQL Workbench [13] est un logiciel de gestion et d'administration de bases de donnes,il

    est cr en 2004. Via uneinterface graphique intuitive, il permet, entre autres, de crer,

    modifier ou supprimer des tables, des comptes utilisateurs, et d'effectuer toutes les oprations

    inhrentes la gestion d'une base de donnes. Pour ce faire, il doit tre connect un serveur

    MySQL.

    II.2.4. EJBCA Entreprise Java Bean Certificate Authority

    Pour assurer la scurit de notre application, nous avons besoins dune PKI capable doffrir

    des milliers des certificats aux votants et aux serveurs participants lopration de vote. Pour

    cela nous avons choisitEJBCA.

    a.

    Dfinition

    EJBCA [14] est une solution open-source dveloppe en Java/J2EE et maintenue par la

    socit sudoise Primekey. Elle est robuste, de haute performance et flexible qui sadapte aux

    diffrents niveaux dassurances ce qui signifie quelle est la meilleure solution pour construire

    une infrastructure PKI complte. Elle fournit la fois les fonctions classiques qui se trouvent

    dans la plupart des PKI du march, mais elle fournit galement un serveur OCSP (Online

    Certificate Status Protocol), un serveur dhorodatage et un serveur de signature.

    http://fr.wikipedia.org/wiki/Base_de_donn%C3%A9eshttp://fr.wikipedia.org/wiki/2004http://fr.wikipedia.org/wiki/Interface_graphiquehttp://fr.wikipedia.org/wiki/Interface_graphiquehttp://fr.wikipedia.org/wiki/2004http://fr.wikipedia.org/wiki/Base_de_donn%C3%A9es
  • 7/24/2019 E-electioon

    41/79

    Chapitre 3 : Ralisation

    34

    EJBCA lavantage dtre totalement indpendante des systmes dexploitation, des SGBD

    (Systme de Gestion de Base de Donnes) et des serveurs dapplications. En plus de

    linterface Web standard, EJBCA offre aussi une interface par ligne de commande qui facilite

    lintgration et lautomatisation de certaines oprations.

    b. Architecture fonctionnelle

    EJBCA propose trois niveaux fonctionnels:

    Entit publique ou autorit denregistrement locale (AEL):

    Elle est compose dlments permettant de raliser des requtes de certificat et de rvocation

    ou de rcuprer des lments publics de la PKI, tels que les certificats dAC, CRL

    (Certificate Revocation List), etc.

    Autorit de la PKI ou Autorit de Certification (AC):

    Elle est responsable de la dlivrance et de la rvocation des certificats. Les cls peuvent tre

    conserves sur des magasins de cls (keystore), sur des cartes puce cryptographiques ou

    dans une base de donnes.

    Entit administrative ou autorit denregistrement (AE):

    Elle englobe les fonctions de gestion de la PKI, telles que les fonctions dauthentification, de

    gestion de cycle de vie des certificats, de publication et de paramtrage de la PKI. En

    complment, elle permet de dfinir le format des entits publiques et le contenu des

    certificats.

    c. Architecture applicative

    EJBCA adopte une architecture Web 3 tiers. Ainsi, elle est dcoupe en trois couches:

    Une couche prsentation : fournit les interfaces web aux clients et administrateurs

    pour effectuer des requtes auprs de lautorit de certification ou de lautorit

    denregistrement.

    Une couche applicative : englobe les fonctions mtiers de la PKI.

    Une couche de donnes: permet de stocker lensemble des donnes de la PKI dans

    une base de donnes. Elle permet aussi la connexion avec lannuaire LDAP

    (Lightweight Directory Access Protocol) pour lui adresser les donnes publiques de la

    PKI entre autre les utilisateurs, les certificats, CRL, etc.

  • 7/24/2019 E-electioon

    42/79

    Chapitre 3 : Ralisation

    35

    Architecture technique

    EJBCA stocke des informations sur les certificats, les utilisateurs et dautres paramtres. Elle

    fournit un support pour diverses bases de donnes standard.

    Pour linstaller, nous avons besoins de quelques outils tels que la base de donnes, MySQL-

    Connector, un installer ANT, un serveur JBoss, openJDK.

    La procdure dinstallation dEJBCA sur la plateforme Ubuntu 12.04, est dtaille dans

    lAnnexe 3.

    III. Installation et mise en uvre

    Dans cette section, nous prsentons les diffrentes tapes qui ont men la ralisation denotre application.

    III.1. Cration des certificats

    Pour raliser lapplication de vote en ligne, nous devons tout dabord prparer tout les

    lments ncessaires pour quunvotant lgitime puisse exercer son droit de vote.

    Lautorit de vote subordonne qui est son tour administre par laut orit racine assure la

    cration des certificats. Dans le cas rel, elle doit acqurir le pouvoir de certification partir

    de lautorit racine ANCE. Mais dans le cadre de ce projet, nous avons cre notre propre

    autorit de vote racine.

    Lors de linstallation dEJBCA, lautorit de vote est cre. Cette autorit reprsente la

    premire CA (du premier niveau) nomm RootCA1. Ce dernier dlgue le pouvoir de

    certification dautres entits qui deviennent CA leur tour, doudans le deuxime niveau,

    nous avons deux subCAPerson CAet Server CA.

    Dans le troisime niveau, nous crons les entits finales. Les certificats des citoyens (votants)

    sont signs par lePersonCAet les certificats des serveurs sont signs par le ServerCA.

  • 7/24/2019 E-electioon

    43/79

    Chapitre 3 : Ralisation

    36

    La figure 3.1 illustre toutes les autorits de certifications ainsi que les entits votants et

    serveurs.

    Figure 3. 1 : Architecture logique de PKI

    Nous dtaillons par la suite les certificats des CA subordonnes et des entits finales.

    III.1.1. Cration des deux CA subordonnes

    Pour crer les CA subordonnes, nous devons crer en premier lieu leurs profils :

    Aprs avoir accder linterface web Administration dEJBCA, il faut:

    Ouvrir la page Profil de certificats

    Slectionner le profil SUBCA(fixes ) de la liste.

    Entrer dans la zone de saisie SubCA_Person (ou SubCA_Server) Cliquer sur Editer le profil de certificats

    Les profils des CA subordonnes sont cres avec des proprits copies partir du profil

    SUBCA (dfinit par dfaut dEJBCA), comme le montre la figure 3.2.

  • 7/24/2019 E-electioon

    44/79

    Chapitre 3 : Ralisation

    37

    Figure 3. 2 : Ajout de profil de certificats

    A ce moment, nous pouvons crer les deux CA subordonnesPersonCAet ServerCA

    Il suffit de cliquer sur Editer/crer des AC et choisir les paramtres adquats pour chaque

    autorit.

    A ce stade, nous avons prpar les trois autorits de certification comme le montre la figure3.3.

    Figure 3. 3 : Les autorits de certification cres

  • 7/24/2019 E-electioon

    45/79

    Chapitre 3 : Ralisation

    38

    III.1.2. Cration des profils des entits finales

    A ce niveau, nous crons un profil pour chaque votant et pour chaque serveur. Les tapes sont

    peu prs les mmes sauf que les entits personnes sont certifies parPersonCA et les entits

    serveurs sont certifies par ServerCA.

    Pour crer un profil votant, il faut suivre les tapes suivantes :

    Aller la page Administration et slectionner Profils dentits.

    Entrer le nom de la personne dans le champ de texte et cliquer sur le bouton

    Ajouter .

    Nous obtenons les profils suivants comme lindique la figure 3.4.

    Pour diter le profil et ajouter plus dinformation, il faut slectionner le profil de la

    personne nouvellement cre et cliquer sur le bouton Editer le profil dentits. Enfin, il

    faut entrer les paramtres adquats.

    Figure 3. 4 : Profils des entits finales

    Dans la phase de prs vote, chaque citoyen voulant exercer son droit de vote, il doit faire une

    demande de certificat crite au reprsentant de lISIE. Ladministrateur vrifie lidentit du

    citoyen, lge lgal minimum requis, la nationalit, etc. Il demande au votant de lui donner un

    mot de passe dexportation du fichier P12 (PKCS #12, Public-Key CryptographyStandards)

  • 7/24/2019 E-electioon

    46/79

    Chapitre 3 : Ralisation

    39

    Ce mot de passe est utilis, par la suite, pour importer le certificat et la cl prive sur la

    machine du votant.

    Ladministrateur doit remplir les champs ncessaires et choisir le format P12 puis cliquer sur

    Ajouter. La figure 3.5 illustre cette procdure.

    Figure 3. 5 : Ajout dun votant

    Dans lAnnexe 4, nous prsentons le contenu du certificat RootCA1,PersonCA, ServerCAet

    le contenu duncertificat dlivr au votant.

    A fin de garantir la scurit de notre application, nous avons choisi lalgorithme RSA,pour la

    gnration de couple de cls, de taille 1024 bits et la fonction de hachages choisit est le

    SHA256

    La dernire tape consiste rcuprer le fichier demand, ladministrateur doit suivre

    quelques tapes comme le montre la figure 3.6.

    Aller la page Interface publique, slectionner Create Browser Certificate . Saisir lidentifiant et mot de passe.

    Tlcharger le fichier.

  • 7/24/2019 E-electioon

    47/79

    Chapitre 3 : Ralisation

    40

    Figure 3. 6: Demande de certificatEn recevons un fichier P12 par mail, chaque citoyen doit linstaller sur le navigateur web pour

    scuriser la procdure dlection le jour de vote.

    Par exemple, dans Google chromeil doit aller sous : Paramtres Afficher les paramtres

    avancsGrer les certificatsPersonnelet cliquer sur le bouton importer

    Il doit spcifier le fichier P12 importer et indiquer le mot de passe du fichier comme

    lindique la figure 3.7.

    Figure 3. 7 : Installation du fichier P12

  • 7/24/2019 E-electioon

    48/79

    Chapitre 3 : Ralisation

    41

    III.2. Configuration et organisation de projet J2EE

    Comme nous avons indiqu dans le chapitre 2, larchitecture de notre systme est forme par

    un systme de vote et quatre entits. Nous avons dvelopp un projet pour chaque programme

    c'est--dire un projet pour le systme de vote, un pour le valideur, un pour le commissaire, un

    pour lanonymiseur et un projet pour le dcompteur. Chacun dentre eux possde un magasin

    de cl (keystore) contenant le couple de cls RSA(une cl publique et une cl prive) et un

    magasin de confiance (truststore) contenant les certificats des autres serveurs. Ces keystores

    sont utiliss, en premier lieu, lors de la phase dauthentification et en deuxime lieu pendant

    le processus de vote pour le chiffrement et le dchiffrement des messages (les keystores et les

    truststores sont de type JKS).

    Nous devons bien configurer la scurit des serveurs en changeant soigneusement les fichiers

    server.xml[15] pour chaque serveur Tomcat utilis dans les projets. Nous devons ajouter le

    bout de code suivant.

    < Connector SSLEnabled="true" SSLEngine="on" SSLVerifyClient="require" SSLVerifyDepth="2"

    clientAuth="true"keyAlias="localhost" keystoreFile="D:\application\Tomcat\tomcat.jks"

    keystorePass="tomcat" maxThreads="150" port="8443"

    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true"sslProtocol="TLS" truststoreFile="D:\application\Tomcat\valideur.jks" truststorePass="valider"/>

    De plus, dans le fichierstruts.xmlnous devons ajouter le bour de code suivant.

    false

    443

  • 7/24/2019 E-electioon

    49/79

    Chapitre 3 : Ralisation

    42

    III.3. Prsentation de droulement de vote

    Dans cette partie, nous prsentons les interfaces Homme/Machine que visite le votant pourbien drouler le vote lectronique.

    III.3.1. Description de linterface dauthentification et daccueil

    Le jour du vote et lors de louverture du sitevote en ligne, le votant est invit slectionner

    son certificat parmi les autres certificats installs dans le navigateur. Nous supposons que

    cest un ordinateur familial et les membres de la famille peuvent voter en utilisant la mme

    machine. Ceci est montr dans la figure 3.8 :

    Figure 3. 8 : Authentification par SSL/TLS

    Une fois slectionn, le votant doit cliquer sur le bouton OK. Une authentification mutuelle

    avec le serveur base sur SSL plus prcisment TLS1.2 seffectue en arrireplan. Nous la

    reprsentons dans la figure 3.9 pour montrer son droulement.

    1) Un client demande l'accs une ressource protge.

    2) Le serveur web prsente son certificat au client.3) Le client vrifie le certificat du serveur.

    4) En cas de succs, le client envoie son certificat au serveur.

    5) Le serveur vrifie les informations d'identification du client.

    6) En cas de succs, le client et le serveur se mettent daccord sur une cl de session.

  • 7/24/2019 E-electioon

    50/79

    Chapitre 3 : Ralisation

    43

    Figure 3. 9 : Authentification mutuelle

    Dans le cas o les deux entits se sont bien authentifies, une page daccueil scurise

    saffiche. La page est scurise car dans la barre dadresse de navigateur, lURL est prcd

    par httpset un cadenas vert, comme lindique la figure 3.10.

    Figure 3. 10 : Description de la page daccueil

  • 7/24/2019 E-electioon

    51/79

    Chapitre 3 : Ralisation

    44

    A ce stade, le votant est invit choisir un type dlection. Puisque plusieurs certificats

    peuvent tre installs dans la mme machine alors pour tre sre et certain que cest la bonne

    personne qui dtient le certificat, il est indispensable de rfrencier chaque certificat son

    propritaire. Cest pour cela quune authentification supplmentaire par identifiant et mot de

    passe est utile. Nous avons choisit que lidentifiant reprsente lalias du certificat et le mot de

    passe reprsente le mot de passe de fichier P12.

    Nous reprsentons dans la figure 3.11 linterface dauthentification.

    Figure 3. 11 : Interface dauthentification par identifiant et mot de passe

    Aprs la saisie de son identifiant et mot de passe, le votant peut dmarrer son vote.

    III.3.2. Description des interfaces de vote.

    Selon le type dlection slectionn prcdemment, lapplication rcupre les listes des

    candidats partir de la base de donnes qui est protge par lautorit subordonne elle-mmeDans chaque rgion, nous avons une autorit subordonne qui gre les diffrents serveurs

    participants au vote et assure la scurit du serveur base de donnes.

    La figure 3.12 indique le profil de vote dans le cas o le votant a choisi une lection

    prsidentielle.

  • 7/24/2019 E-electioon

    52/79

    Chapitre 3 : Ralisation

    45

    Figure 3. 12 : Interface du profil vote prsidentiel

    Le votant choisit un candidat parmi les candidats affichs dans la liste et clique sur voter.

    Cette action transforme le choix effectu en un message chiffr (message1dans la chapitre 2,

    section 2) qui est envoy au valideur.

    Pour chiffrer et dchiffrer les diffrents messages changs entre les entits, nous avons

    besoin dun keystore de format JKS (Java KeyStore). Alors, il est utile de convertir les

    formats P12(le fichier du votant) au format JKS en utilisant loutilKeytool.Puisque, seuls les

    certificats des votants doivent tre installs dans le navigateur, nous devons choisir le format

    JKS lors de gnration de fichiers des serveurs en utilisant EJBCA.

    Le votant est invit, cette fois, affirmer son choix.

  • 7/24/2019 E-electioon

    53/79

    Chapitre 3 : Ralisation

    46

    La figure 3.13 correspond linterface de confirmation du choix envoyer au valideur.

    Figure 3. 13 : Interface validation de choix envoyer au valideur

    Si toutes les transactions, dcrites dj dans le chapitre 2, section 2, se droulent correctement

    c'est--dire un scnario nominal sest effectu, le votant reoit un message lui affirmant que

    son vote t effectu avec succs. Linterface de la figure3.14 montre la russite du vote.

    La rception de ce message prouve que le vote a t tenu en compte par le dcompteur.

    Figure 3. 14 : Interface de russite de vote

  • 7/24/2019 E-electioon

    54/79

    Chapitre 3 : Ralisation

    47

    Si le votant a dj vot et veut revoter une autre fois, dans ce cas, lapplication lui interdit devoter et lui affiche linterface de la figure 3.15:

    Figure 3. 15 : Interface chec de vote

    Concernant la phase de dcomptage, la fin de la procdure de vote, chaque dcompteur local

    doit envoyer les rsultats obtenus au dcompteur global situ dans le local principal delorganisation de vote. Ce dernier va publier les rsultats finaux.

    III.4. Prsentation de la partie administrative

    Durant la phase de pr vote, ladministrateur doit grer la liste des votants, la liste des

    candidats et doit de mme superviser les serveurs participants dans le vote. Pour accder

    lapplication, il doit sauthentifier par son certificat et vrifier, par la suite, quil est la bonne

    personne qui dtient le certificat.

  • 7/24/2019 E-electioon

    55/79

    Chapitre 3 : Ralisation

    48

    La figure 3.16 montre linterface dauthentification de ladministrateur.

    Figure 3. 16 : Interface dauthentification de ladministrateur

    Aprs son authentification, ladministrateur peut grer les votants, les candidats et voir les

    rsultats des lections. La procdure de gestion est, peu prs, la mme, alors nous

    prsentons seulement la gestion des votants.

    La figure 3.17 illustre linterface de gestion des votants, ladministrateur peut consulter la

    liste des lecteurs enregistrs dans la base de donnes, il peut ajouter dautres votants et il

    peut aussi supprimer un votant sil na pas le droit de vote (par exemple il est lgitime mais

    avant ou durant la priode de vote il mort)

    Figure 3. 17 :Interface de gestion des votants

  • 7/24/2019 E-electioon

    56/79

    Chapitre 3 : Ralisation

    49

    Si ladministrateur veut ajouter un votant, il doit remplir tous les champs et cliquer sur le

    bouton Envoyer . La figure 3.18 montre linterface dajout du votant.

    Figure 3. 18 : interface dajout dun votant

    Il peut voir les rsultats du vote, en slectant le type dlection. La figure 3.19 illustre le

    rsultat dune lection prsidentielle.

    Figure 3. 19 : Rsultat dun vote prsidentiel

    IV. Conclusion

    Au cours de ce chapitre, nous avons spcifi l'environnement matriel et logiciel de notre

    application. Ensuite, nous avons dcrit brivement les tapes dinstallation et de gnration de

    certificat. Enfin nous avons montr les tapes de vote en utilisant notre application.

  • 7/24/2019 E-electioon

    57/79

    Conclusion gnrale et perspective de travail

    50

    Conclusion gnrale et perspective de travail

    La dmocratie est le rgime politique dans lequel le pouvoir est dtenu par le peuple (principe

    de souverainet), sans qu'il y ait de distinctions dues au lieu de naissance, la richesse, la

    comptence, etc.

    Au cours de ce projet, effectu au sein de l'Unit de Recherche Hatem Bettaher

    d'Informatique, Rseau, Tlcommunication et Mathmatique, nous avons russi raliser un

    systme de vote en ligne assurant son droulement en toute scurit et garantissant aux

    votants la libert de choisir leurs candidats prfrs. Tout ceci dans le but daider les citoyens

    participer dans la vie politique dune manire autonome et indpendante.

    Nous avons effectu, dans un premier temps, ltude de lexistant qui nous a permis de mieux

    comprendre les besoins de lapplication implmenter et de dterminer les contraintes

    relatives au vote en ligne. Dans un deuxime temps, nous avons recens les diffrents besoins

    fonctionnels et non fonctionnels de lapplication. Et nous avons ralis une conception

    dtaille en prsentant plusieurs diagrammes dUML.

    Dans un dernier temps, nous avons prsent les choix des logiciels utiliss et le travail ralis

    tout en lillustrant avec des interfaces Homme/Machine.

    Nous tenons galement signaler dans cette conclusion que ce projet nous a permisdapprofondir nos connaissances en conception et en dveloppement et spcifiquement en

    J2EEavec le framework Struts2.

    En plus, il a t une bonne occasion qui nous a permis damliorer nos acquis thorique en

    scurit et de suivre lactualit du domaine et surtout linstallation et la manipulation

    dEJBCAde faon professionnelle.

    Finalement, et comme perspective future, nous voulons utiliser les courbes elliptiques pour

    chiffrer et dchiffrer les interactions entre les diffrents serveurs participant au vote.Nous voulons aussi liminer lidentifiant et le mot de passe en utilisant une carte puce qui

    contient le fichier P12.Ainsi, chaque membre de la famille naura qu introduire sa carte

    puce dans le lecteur et il peut sauthentifierdirectement avec le systme.

  • 7/24/2019 E-electioon

    58/79

    Bibliographie

    51

    Rfrences

    [1] Nicolas Bonvin, Systme de vote lectronique, Projet de MasterJanvier 2005.

    [2] http://www.tuniscope.com/index.php/article/9787/actualites/tunisie/etapes-302709#.U3Hfx4F5Ob8 [visit le 01/05/2014].

    [3]http://yvespoey.unblog.fr/2007/04/05/machines-a-voter-pour-boutons-de-panurge/[visit le

    21/04/2014].

    [4] http://www.ville-antony.fr/machine-voter [visit le 03/05/2014].

    [5] http://www.agoravox.tv/actualites/politique/article/machines-a-voter-ou-machines-a-17260

    [6] Pascal Gachet , Dploiement de solutions VPN : PKI Etude de cas , Travail dediplme Ecole dingnieur du Canton de Vaud, 20 dcembre 2001.

    [7] William Stallings, Scurite des rseaux,Vuibert, Paris, 2002.

    [8] Whitefield Diffie and Martin E Hellman, New Directions iCryptography , 6 novembre1976.

    [9] R. Rivest, A. Sham ir, L. Adleman. A Method for Obtaining Digital Signatures andPublic-Key Cryptosystems]. Communications of the ACM, Vol. 21 (2), pp.120126. 1978.

    [10] Joseph Gabay, David Gabay, Analyse et conception Dunod, Paris, 2008.

    [11] http://dico.developpez.com/html/3109-Langages-Struts.php. visit le [02/04/2014].

    [12] Benjamin Aumaille, Dveloppement d'applications Web Nantes : Ed. ENI , 2002.

    [13] http://www.mysql.fr/products/workbench/ [visit le 05/04/2014].

    [14] Yannick Quenec'hdu -Reponsable BU scurit EJBCAPKI .

    [15] http://blog1.vorburger.ch/2006/08/setting-up-two-way-mutual-ssl-with.html [visit le

    01/03/2014].

  • 7/24/2019 E-electioon

    59/79

    Annexe 1

    Annexe 1 : les principales tapes du scrutin pour l'lection

    en Tunisie

    Tout dabord, le