SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
Java,	
  le	
  maillon	
  faible	
  du	
  vote	
  par	
  internet.	
  
	
  
Par	
  Roméo	
  Gallabert,	
  ingénieur	
  systèmes	
  et	
  réseaux.	
  	
  rgallabert@gmail.com	
  
	
  
La	
  France	
  est	
  un	
  pays	
  précurseur	
  dans	
  l’usage	
  du	
  vote	
  par	
  internet	
  pour	
  divers	
  types	
  d’élections	
  
relevant	
  de	
  la	
  sphère	
  privée	
  et	
  publique	
  depuis	
  une	
  dizaine	
  d’années.	
  
La	
  législation	
  française	
  a	
  permis	
  son	
  usage	
  pour	
  des	
  élections	
  politiques	
  pour	
  les	
  français	
  résidant	
  à	
  
l’étranger	
  dès	
  2003,	
  pour	
  les	
  élections	
  professionnelles	
  dans	
  le	
  cadre	
  du	
  Code	
  du	
  Travail	
  dès	
  2004	
  ou	
  
pour	
  les	
  votes	
  en	
  assemblées	
  générales	
  d’actionnaires	
  dans	
  le	
  cadre	
  du	
  Code	
  du	
  Commerce.	
  
	
  
Ce	
  sont	
  donc	
  des	
  milliers	
  de	
  scrutins	
  qui	
  sont	
  gérés	
  en	
  vote	
  par	
  internet	
  en	
  France	
  chaque	
  année	
  et	
  
pour	
  lesquels	
  la	
  sincérité	
  du	
  scrutini	
  devrait	
  être	
  une	
  garantie	
  absolue.	
  
	
  
Mais	
  lors	
  des	
  dernières	
  élections	
  législatives	
  de	
  juin	
  2012	
  où	
  le	
  vote	
  par	
  internet	
  était	
  possible	
  pour	
  
les	
  français	
  de	
  l’étranger,	
  un	
  informaticien,	
  Laurent	
  Grégoire,	
  a	
  démontré	
  qu’il	
  était	
  très	
  simple	
  de	
  
modifier	
  les	
  bulletins	
  de	
  vote	
  des	
  électeurs	
  à	
  leur	
  insu	
  par	
  une	
  simple	
  manipulation	
  d’une	
  applet	
  Java	
  
sur	
  le	
  poste	
  du	
  votant.ii	
  	
  
Suite	
  à	
  ce	
  scrutin,	
  de	
  nombreux	
  recours	
  avaient	
  été	
  déposés	
  auprès	
  du	
  Conseil	
  Constitutionnel	
  qui	
  a	
  
reconnu	
  l’existence	
  d’anomalies.iii	
  Le	
  détail	
  des	
  décisions	
  rendues	
  le	
  15	
  février	
  2013	
  est	
  assez	
  
éloquent	
  sur	
  la	
  possibilité	
  de	
  bulletins	
  de	
  vote	
  corrompus	
  :	
  «	
  ..Considérant	
  que	
  la	
  circonstance,	
  à	
  la	
  
supposer	
  établie,	
  qu'un	
  électeur	
  de	
  la	
  4ème	
  circonscription	
  est	
  parvenu	
  à	
  exprimer	
  par	
  voie	
  
électronique,	
  au	
  second	
  tour	
  du	
  scrutin,	
  un	
  vote	
  en	
  faveur	
  d'un	
  candidat	
  ne	
  figurant	
  pas	
  sur	
  la	
  liste	
  
des	
  candidats	
  autorisés	
  à	
  se	
  maintenir	
  à	
  ce	
  tour	
  n'est	
  pas	
  susceptible	
  d'avoir	
  altéré	
  la	
  sincérité	
  du	
  
scrutin…………	
  il	
  résulte	
  de	
  l'instruction,	
  en	
  particulier	
  du	
  procès-­‐verbal	
  du	
  bureau	
  du	
  vote	
  
électronique,	
  que	
  le	
  dépouillement	
  automatique	
  des	
  suffrages	
  exprimés	
  dans	
  la	
  4ème	
  circonscription	
  
a	
  été	
  initialement	
  interrompu	
  par	
  la	
  présence	
  d'un	
  vote	
  ne	
  correspondant	
  pas	
  aux	
  paramètres	
  retenus	
  
par	
  le	
  système….	
  »	
  
	
  
Il	
  apparaît	
  donc	
  officiellement	
  que	
  des	
  bulletins	
  électroniques	
  ont	
  pu	
  être	
  corrompus	
  lors	
  d’une	
  
élection	
  politique	
  en	
  France	
  et	
  la	
  démonstration	
  de	
  faisabilité	
  qui	
  en	
  avait	
  été	
  faite	
  par	
  Laurent	
  
Grégoire	
  apparaît	
  encore	
  plus	
  d’actualité	
  depuis	
  quelques	
  mois	
  avec	
  les	
  cyber-­‐attaques	
  dont	
  ont	
  fait	
  
l’objet	
  divers	
  sites	
  gouvernementauxiv	
  et	
  de	
  médias	
  ainsi	
  que	
  les	
  sociétés	
  Apple,	
  Microsoft,	
  Facebook	
  
ou	
  encore	
  Twitter	
  qui	
  reconnaît	
  que	
  plus	
  de	
  250.000	
  comptes	
  pourraient	
  avoir	
  été	
  violés.v	
  
	
  
L’ampleur	
  du	
  danger	
  est	
  telle	
  que	
  le	
  gouvernement	
  Américain	
  a	
  qualifié	
  dans	
  un	
  discours	
  de	
  Barak	
  
Obama	
  de	
  cyber-­‐guerrevi	
  les	
  attaques	
  menées	
  par	
  les	
  pirates	
  exploitant	
  les	
  failles	
  de	
  Javavii	
  et	
  appelle	
  
tous	
  les	
  utilisateurs	
  d’internet	
  à	
  restreindre	
  voire	
  supprimer	
  Java	
  de	
  leurs	
  ordinateurs.viii	
  
	
  
Or	
  la	
  majorité	
  des	
  prestataires	
  de	
  vote	
  par	
  internet	
  en	
  France	
  imposent	
  l’usage	
  de	
  Java	
  pour	
  assurer	
  
le	
  chiffrement	
  des	
  bulletins	
  de	
  vote	
  via	
  des	
  programmes	
  «	
  applets	
  »ix	
  ou	
  de	
  programmes	
  inspirés	
  du	
  
langage	
  Java	
  appelés	
  «Javascript	
  »x	
  qui	
  seront	
  téléchargés	
  sur	
  le	
  poste	
  internet	
  du	
  votant.	
  
	
  
Ces	
  programmes	
  	
  utilisent	
  des	
  algorithmes	
  de	
  chiffrement	
  asymétrique	
  tel	
  que	
  RSA	
  ou	
  El	
  Gamalxi	
  
impliquant	
  l’usage	
  combiné	
  d’une	
  clef	
  «	
  publique	
  »	
  et	
  d’une	
  clef	
  «	
  privée	
  »	
  correspondante.	
  
Le	
  bulletin	
  de	
  vote	
  est	
  chiffré	
  par	
  la	
  clef	
  «	
  publique	
  »	
  et	
  ne	
  peut	
  être	
  déchiffré	
  que	
  par	
  la	
  clef	
  
«	
  privée	
  »	
  conservée	
  par	
  les	
  membres	
  du	
  bureau	
  de	
  vote	
  ou	
  le	
  prestataire.	
  La	
  clef	
  «	
  publique	
  »	
  est	
  
directement	
  envoyée	
  sur	
  tous	
  les	
  postes	
  des	
  votants	
  puisqu’elle	
  ne	
  peut	
  être	
  utilisée	
  pour	
  déchiffrer	
  
un	
  bulletin	
  de	
  vote	
  chiffré	
  sans	
  la	
  clef	
  «	
  privée	
  »	
  assurant	
  ainsi	
  théoriquement	
  le	
  secret	
  du	
  vote….	
  
	
  
	
                                                  	
  


                                                                                                                                                                 	
  
                                                                               1	
  
	
  
Comme	
  le	
  chiffrement	
  asymétrique	
  nécessite	
  plus	
  de	
  puissance	
  CPUxii,	
  il	
  peut	
  s’avérer	
  très	
  lent.	
  
	
  Pour	
  accélérer	
  ce	
  type	
  de	
  chiffrement,	
  il	
  est	
  normalement	
  fait	
  appel	
  à	
  une	
  «	
  applet	
  »	
  Java	
  qui	
  est	
  
téléchargée	
  sur	
  le	
  poste	
  du	
  votant	
  pour	
  permettre	
  le	
  chiffrement	
  du	
  bulletin.	
  	
  
	
  
L’alternative	
  à	
  l’usage	
  d’une	
  «	
  applet	
  »	
  Java	
  est	
  l’usage	
  d’un	
  «	
  Javascript	
  »	
  sur	
  le	
  poste	
  du	
  votant,	
  
mais	
  un	
  «	
  Javascript	
  »	
  sera	
  beaucoup	
  plus	
  lent	
  qu’une	
  «	
  applet	
  »	
  Java	
  à	
  effectuer	
  le	
  grand	
  nombre	
  de	
  
calculs	
  que	
  nécessite	
  un	
  algorithme	
  de	
  chiffrement	
  asymétrique	
  et	
  aussi	
  beaucoup	
  plus	
  simple	
  à	
  
pirater	
  via	
  un	
  «	
  malware	
  »xiii	
  ou	
  un	
  «	
  cheval	
  de	
  troie	
  ».xiv	
  
De	
  plus,	
  il	
  s’installe	
  facilement	
  à	
  l’insu	
  du	
  votant	
  sur	
  son	
  poste	
  internet	
  via	
  le	
  chargement	
  de	
  la	
  page	
  
web	
  du	
  bulletin	
  de	
  vote	
  et	
  contourne	
  ainsi	
  les	
  règles	
  de	
  sécurité	
  réseaux	
  qui	
  peuvent	
  imposer	
  les	
  
gestionnaires	
  de	
  sécurité	
  informatique.	
  
	
  
Quelque	
  soit	
  le	
  type	
  de	
  programme	
  utilisé	
  pour	
  le	
  chiffrement	
  du	
  bulletin,	
  «	
  applet	
  »	
  Java	
  ou	
  
«	
  Javascript	
  »,	
  le	
  principal	
  problème	
  reste	
  que	
  le	
  chiffrement	
  et	
  la	
  transmission	
  du	
  bulletin	
  est	
  
effectué	
  uniquement	
  sur	
  le	
  poste	
  du	
  votant	
  qui	
  est	
  le	
  «	
  maillon	
  faible	
  »	
  de	
  la	
  chaîne	
  de	
  traitement	
  
du	
  vote	
  car	
  impossible	
  à	
  sécuriser	
  par	
  les	
  ingénieurs	
  en	
  sécurité	
  informatique	
  du	
  prestataire	
  de	
  vote.	
  
	
  
De	
  plus	
  comme	
  le	
  bulletin	
  est	
  envoyé	
  chiffré	
  directement	
  du	
  poste	
  du	
  votant	
  jusqu’à	
  la	
  base	
  de	
  
données	
  du	
  prestataire	
  hébergeant	
  l’urne	
  virtuelle	
  sur	
  ses	
  serveurs,	
  aucun	
  contrôle	
  d’intégrité	
  des	
  
données	
  et	
  donc	
  de	
  sincérité	
  du	
  vote	
  ne	
  peut	
  être	
  effectué	
  en	
  dehors	
  du	
  poste	
  du	
  votant,	
  ce	
  qui	
  
ouvre	
  un	
  certain	
  nombre	
  d’actes	
  de	
  piratage	
  possibles	
  :	
  
	
  
Attaque	
  1	
  :	
  modification	
  de	
  l’applet	
  Java.	
  
	
  	
  
Cette	
  attaque	
  a	
  été	
  très	
  bien	
  démontrée	
  par	
  Laurent	
  Grégoire	
  qui	
  a	
  été	
  capable	
  de	
  prendre	
  la	
  main	
  
sur	
  l’applet	
  «	
  java	
  »,	
  de	
  décompiler	
  le	
  code	
  et	
  de	
  modifier	
  le	
  programme	
  pour	
  qu’il	
  puisse	
  voter	
  à	
  
l’insu	
  du	
  votant	
  pour	
  un	
  autre	
  candidat.	
  	
  
Le	
  piratage	
  du	
  bulletin	
  était	
  simple	
  à	
  réaliser	
  et	
  le	
  prestataire	
  du	
  Ministère	
  des	
  Affaires	
  Etrangèresxv	
  
n’avait	
  aucun	
  moyen	
  de	
  détecter	
  la	
  fraude,	
  par	
  ailleurs	
  le	
  bulletin	
  n’étant	
  pas	
  corrompu	
  et	
  juste	
  
modifié	
  il	
  aurait	
  été	
  déchiffré	
  sans	
  erreur	
  par	
  le	
  système.	
  L’installation	
  d’un	
  virus	
  de	
  type	
  «	
  cheval	
  de	
  
troie	
  »	
  spécifique	
  sur	
  divers	
  postes	
  de	
  votants	
  aurait	
  ainsi	
  permis	
  de	
  modifier	
  à	
  l’insu	
  des	
  nombreux	
  
votants	
  leurs	
  votes	
  sans	
  qu’ils	
  s’en	
  aperçoivent.	
  
	
  
Attaque	
  2	
  :	
  interception	
  et	
  manipulation	
  d’un	
  composant	
  html	
  de	
  la	
  page	
  Web	
  du	
  bulletin	
  de	
  vote	
  
	
  
Nous	
  montrons	
  ci-­‐après	
  une	
  partie	
  du	
  programme	
  («	
  snippet	
  »)xvi	
  utilisée	
  pour	
  le	
  vote	
  des	
  élections	
  
des	
  représentants	
  aux	
  TPExvii	
  organisé	
  par	
  le	
  Ministère	
  du	
  Travail	
  en	
  décembre	
  2012.	
  
	
  
       <input	
  type="hidden"	
  name="maxSelection"	
  value="1"	
  id="maxSelection">	
  
       <input	
  type="hidden"	
  name="minSelection"	
  value="1"	
  id="minSelection">	
  
	
   	
  
Le	
  code	
  ci-­‐dessus	
  gère	
  les	
  variables	
  de	
  contrôle	
  du	
  nombre	
  autorisé	
  de	
  listes	
  de	
  candidats	
  que	
  l’on	
  
peut	
  voter	
  sur	
  un	
  bulletin.	
  	
  
La	
  règle	
  de	
  vote	
  était	
  que	
  l’on	
  pouvait	
  soit	
  choisir	
  une	
  liste	
  soit	
  voter	
  «	
  blanc	
  »,	
  le	
  votant	
  devait	
  
sélectionner	
  un	
  minimum	
  de	
  «	
  1	
  »	
  choix	
  et	
  un	
  maximum	
  de	
  «	
  1	
  »	
  choix	
  parmi	
  les	
  listes	
  proposées.	
  	
  
Il	
  était	
  donc	
  très	
  simple	
  d’intercepter	
  l’exécution	
  de	
  la	
  page	
  Web	
  sur	
  le	
  poste	
  du	
  votant,	
  de	
  lire	
  le	
  
code	
  et	
  de	
  changer	
  le	
  contenu,	
  la	
  plupart	
  des	
  navigateurs	
  offrent	
  cette	
  possibilité	
  aux	
  développeurs	
  
lorsqu’ils	
  développent	
  des	
  pages	
  web.	
  	
  
On	
  pouvait	
  donc	
  modifier	
  la	
  variable	
  «	
  maxSelection	
  »	
  à	
  «	
  2	
  »	
  ou	
  plus,	
  ce	
  qui	
  permettait	
  au	
  
programme	
  de	
  choisir	
  plusieurs	
  listes	
  de	
  candidats	
  à	
  l’insu	
  du	
  votant,	
  de	
  chiffrer	
  le	
  bulletin	
  puis	
  de	
  
l’envoyer	
  à	
  l’urne	
  virtuelle.	
  	
  Comme	
  le	
  seul	
  contrôle	
  effectué	
  se	
  faisait	
  sur	
  le	
  navigateur	
  du	
  votant	
  
                                                                                                                                                                     	
  
                                                                                 2	
  
	
  
dont	
  le	
  pirate	
  aurait	
  pris	
  le	
  contrôle,	
  le	
  système	
  de	
  vote	
  n’avait	
  donc	
  aucun	
  moyen	
  de	
  détecter	
  qu’un	
  
bulletin	
  non	
  conforme	
  ait	
  été	
  reçu	
  dans	
  l’urne.	
  
Le	
  résultat	
  aurait	
  été	
  alors	
  un	
  écart	
  entre	
  le	
  nombre	
  de	
  vote	
  exprimés	
  pour	
  des	
  listes	
  et	
  le	
  nombre	
  de	
  
votants…	
  
	
  
Attaque	
  3	
  :	
  interception	
  de	
  l’exécution	
  du	
  vote	
  entre	
  la	
  page	
  web	
  affichant	
  le	
  bulletin	
  de	
  vote	
  et	
  la	
  
page	
  de	
  confirmation	
  du	
  vote.	
  
	
  
Ceci	
  est	
  une	
  autre	
  partie	
  de	
  l’applet	
  Java	
  utilisée	
  pour	
  le	
  vote	
  des	
  élections	
  des	
  représentants	
  aux	
  TPE	
  
de	
  décembre	
  2012.	
  
	
  
     	
  	
   <script>	
  
	
   	
               function	
  voter()	
  { 	
  
	
   	
               $("#btnVoter").attr("disabled",	
  "disabled");	
  
              	
      $("#btnVoter").addClass("disabled");	
  
	
  
              	
      document.getElementById('applet').setButtonClick();	
  
	
   	
               }	
  
	
   </script>	
  
	
   	
               	
          	
         	
     	
     	
           	
      	
  
              <applet	
  i d='applet'	
  code='CypherApplet.class'	
  archive='../applet/SVoteApplet.jar;jsessionid=nnnnnnnnnnn'	
  width='0'	
  height='0'>	
  
	
   	
               	
          	
         	
     	
     	
           	
      	
          <param	
  name="codebase_lookup"	
  value="false"	
  />	
  
	
   	
               	
          	
         	
     	
     	
           	
      	
          <param	
  name="MAYSCRIPT"	
  value="yes"	
  />	
  
	
   	
               	
          	
         	
     	
     	
           	
      	
          <param	
  name="scriptable"	
  value="true"	
  />	
  
	
   	
               	
          	
         	
     	
     	
           	
      	
          <param	
  name="sessionId"	
  value="nnnnnnnnnnn"	
  />	
  
              	
      	
          	
         	
     	
     	
           	
      	
          <param	
  name="cache_option"	
  value="no"	
  />	
  
	
   </applet>	
                  	
         	
     	
     	
           	
      	
          	
  
	
   	
  
	
   <input	
  type="button"	
  id="btnVoter"	
  value="VOTER"	
  class="button	
  disabled"	
  onclick="voter()"	
  disabled="disabled">	
  
	
  
        	
  
	
  
La	
  dernière	
  ligne	
  du	
  programme	
  ci-­‐dessus	
  	
  commande	
  au	
  navigateur	
  l’affichage	
  du	
  bouton	
  «	
  VOTER	
  »	
  
sur	
  la	
  page	
  Web	
  du	
  bulletin	
  de	
  vote.	
  	
  
Lorsque	
  le	
  votant	
  a	
  fait	
  son	
  choix	
  sur	
  le	
  bulletin	
  puis	
  l’a	
  vérifié	
  sur	
  la	
  page	
  dite	
  de	
  confirmation,	
  il	
  
devait	
  alors	
  cliquer	
  sur	
  ce	
  bouton.	
  	
  
Cette	
  action	
  du	
  programme	
  est	
  effectuée	
  lorsque	
  le	
  clic	
  est	
  effectué	
  (évènement	
  «	
  onclick	
  »)	
  
appelant	
  la	
  fonction	
  Javascript	
  ‘voter’.	
  Ce	
  code	
  est	
  visible	
  dans	
  les	
  7	
  premières	
  lignes	
  du	
  programme.	
  
L’affichage	
  du	
  bouton	
  «	
  VOTER	
  »	
  est	
  en	
  fait	
  simplement	
  caché	
  sur	
  la	
  page	
  du	
  bulletin	
  (‘disabled’)	
  
pour	
  ensuite	
  lancer	
  l’applet	
  Java,	
  tel	
  que	
  défini	
  au	
  milieu	
  du	
  programme	
  ci-­‐dessus.	
  
	
  
En	
  prenant	
  le	
  contrôle	
  du	
  navigateur,	
  un	
  pirate	
  peut	
  alors	
  ajouter	
  un	
  point	
  de	
  contrôle	
  sur	
  la	
  fonction	
  
‘voter’,	
  modifier	
  le	
  choix	
  du	
  bulletin	
  et	
  ensuite	
  lancer	
  l’applet	
  Java	
  normalement	
  à	
  l’insu	
  du	
  votant.	
  
Ainsi	
  même	
  si	
  le	
  votant	
  a	
  cru	
  vérifier	
  son	
  choix	
  sur	
  sa	
  page	
  de	
  validation,	
  son	
  vote	
  a	
  pu	
  être	
  modifié	
  
sans	
  qu’il	
  s’en	
  aperçoive	
  après	
  que	
  le	
  votant	
  ait	
  déjà	
  confirmé	
  son	
  vote.	
  Le	
  bulletin	
  peut	
  être	
  ainsi	
  
transmis	
  chiffré	
  à	
  l’urne	
  virtuelle	
  avec	
  un	
  autre	
  choix	
  que	
  celui	
  effectué	
  par	
  le	
  votant.	
  
	
  
Attaque	
  4	
  :	
  rétro-­‐ingénierie	
  (reverse	
  engineering)	
  du	
  protocole	
  de	
  conception	
  du	
  bulletin	
  de	
  vote	
  
permettant	
  de	
  créer	
  sa	
  propre	
  version	
  de	
  l’applet	
  de	
  chiffrement.	
  	
  
	
  
Cela	
  consiste	
  à	
  étudier	
  le	
  programme	
  pour	
  en	
  déterminer	
  le	
  fonctionnement	
  interne.	
  	
  
Comme	
  le	
  code	
  du	
  programme	
  («	
  applet	
  »	
  java	
  ou	
  «	
  javascript	
  »)	
  est	
  disponible	
  sur	
  le	
  poste	
  du	
  
votant	
  soit	
  en	
  clair	
  soit	
  par	
  décompilation	
  de	
  l’applet	
  Java,	
  il	
  est	
  possible	
  à	
  un	
  pirate	
  de	
  déterminer	
  
exactement	
  comment	
  est	
  construit	
  le	
  bulletin	
  avant	
  chiffrement.	
  



                                                                                                                                                                 	
  
                                                                               3	
  
	
  
Parce	
  que	
  la	
  clef	
  publique	
  de	
  chiffrement	
  est	
  connue	
  sur	
  le	
  poste	
  du	
  votant,	
  le	
  pirate	
  peut	
  créer	
  une	
  
nouvelle	
  applet	
  qui	
  votera	
  pour	
  le	
  candidat	
  voulu	
  et	
  effectuera	
  le	
  chiffrement	
  d’un	
  bulletin	
  conforme	
  
pour	
  le	
  système	
  de	
  vote	
  qui	
  pourra	
  ensuite	
  être	
  déchiffré	
  normalement.	
  
Le	
  pirate	
  peut	
  donc	
  aisément	
  substituer	
  son	
  «	
  applet	
  »	
  («	
  malware	
  »)	
  en	
  lieu	
  et	
  place	
  de	
  l’applet	
  du	
  
prestataire	
  et	
  ainsi	
  faire	
  voter	
  le	
  navigateur	
  du	
  votant	
  comme	
  il	
  le	
  souhaite	
  tout	
  en	
  faisant	
  croire	
  au	
  
votant	
  que	
  c’est	
  son	
  choix	
  à	
  lui	
  qui	
  aurait	
  été	
  effectué.	
  
	
  
La	
  rétro-­‐ingénierie	
  de	
  l’applet	
  n’est	
  d’ailleurs	
  pas	
  toujours	
  indispensable	
  car	
  la	
  plupart	
  des	
  
prestataires	
  de	
  vote	
  par	
  internet	
  en	
  France	
  utilisent	
  le	
  même	
  programme	
  de	
  chiffrement	
  
asymétrique	
  développé	
  en	
  «	
  javascript	
  »par	
  un	
  chercheur,	
  Tom	
  Wu,	
  de	
  l’Université	
  de	
  Stanfordxviii	
  
aux	
  USA	
  en	
  2005.	
  
	
  
Ainsi	
  à	
  la	
  lecture	
  du	
  programme	
  dans	
  un	
  bulletin	
  de	
  vote	
  utilisé	
  pour	
  une	
  élection	
  professionnelle	
  
organisée	
  chez	
  ORANGE	
  en	
  février	
  2013xix,	
  on	
  peut	
  constater	
  des	
  failles	
  supplémentaires.	
  
	
  
Le	
  bulletin	
  de	
  vote	
  web	
  est	
  chiffré	
  par	
  le	
  programme	
  de	
  Tom	
  Wuxx,	
  le	
  système	
  va	
  ensuite	
  échanger	
  
en	
  clair	
  avec	
  le	
  serveur	
  le	
  choix	
  du	
  votant	
  avant	
  son	
  chiffrement	
  sur	
  le	
  poste	
  du	
  votant.	
  
	
  
On	
  peut	
  ainsi	
  lire	
  dans	
  le	
  «	
  snippet	
  »	
  de	
  la	
  page	
  du	
  bulletin	
  de	
  vote	
  que	
  le	
  choix	
  pour	
  une	
  liste	
  est	
  
affecté	
  à	
  un	
  numéro	
  (par	
  exemple,	
  ici	
  la	
  valeur	
  15	
  pour	
  le	
  choix	
  de	
  la	
  liste	
  CFE-­‐CGC/UNSA)	
  
	
  



	
  
Cette	
  valeur	
  est	
  envoyée	
  en	
  clair	
  au	
  serveur	
  via	
  le	
  protocole	
  SSLxxi	
  en	
  utilisant	
  une	
  commande	
  «	
  http	
  
POST	
  »xxii,	
  le	
  votant	
  restant	
  identifié	
  lors	
  de	
  l’échange	
  avec	
  le	
  serveur	
  par	
  un	
  cookie	
  de	
  session	
  
temporaire	
  JSESSIONIDxxiii	
  

                                                                                             	
  
	
  
Le	
  serveur	
  répond	
  en	
  affichant	
  une	
  page	
  web	
  de	
  confirmation	
  montrant	
  le	
  vote	
  pour	
  la	
  liste	
  CFE-­‐
CGC/UNSA	
  à	
  l’électeur	
  avec	
  la	
  variable	
  ‘15’.	
  

                                                                                                                                                                          	
  
	
  
Lorsque	
  le	
  bouton	
  “VOTE”	
  est	
  cliqué	
  par	
  le	
  votant,	
  la	
  page	
  du	
  bulletin	
  est	
  alors	
  chiffrée	
  avec	
  le	
  
programme	
  Javascript	
  en	
  remplaçant	
  le	
  texte	
  du	
  bulletin	
  par	
  une	
  version	
  chiffrée	
  RSA	
  en	
  base	
  64xxiv	
  
puis	
  envoyé	
  à	
  l’urne	
  virtuelle	
  via	
  une	
  commande	
  http	
  post.	
  
	
  




                                                                                                                                     	
  
                                                                                                                                                                             	
  
                                                                                    4	
  
	
  
 
	
  

D’autres	
  failles	
  sont	
  donc	
  introduites	
  dans	
  ce	
  type	
  de	
  solution	
  :	
  

       -­‐      Les	
  clefs	
  de	
  choix	
  d’une	
  liste	
  ou	
  d’un	
  candidat	
  sont	
  aisément	
  compréhensibles.	
  	
  En	
  
                interceptant	
  la	
  page	
  html	
  de	
  confirmation	
  du	
  vote,	
  un	
  pirate	
  peut	
  simplement	
  remplacer	
  une	
  
                valeur	
  de	
  clef	
  par	
  une	
  autre	
  sans	
  que	
  le	
  votant	
  s’aperçoive	
  de	
  la	
  modification.	
  
         -­‐ Comme	
  le	
  format	
  du	
  bulletin	
  est	
  connu,	
  les	
  valeurs	
  de	
  chaque	
  choix	
  (liste	
  ou	
  candidat)	
  sont	
  
                compréhensibles,	
  ainsi	
  qu’est	
  connue	
  la	
  clef	
  «	
  publique	
  »	
  de	
  chiffrement	
  transmise	
  avec	
  le	
  
                bulletin	
  par	
  le	
  serveur.	
  Un	
  pirate	
  peut	
  donc	
  sans	
  difficulté	
  créer	
  un	
  bulletin	
  chiffré	
  avec	
  son	
  
                propre	
  choix	
  et	
  le	
  faire	
  envoyer	
  à	
  l’urne	
  virtuelle	
  via	
  un	
  «	
  http	
  post	
  »	
  à	
  l’insu	
  du	
  votant.	
  	
  
                	
  
Attaque	
  5	
  :	
  rendre	
  le	
  bulletin	
  illisible.	
  	
  
	
  
Une	
  autre	
  attaque	
  très	
  simple	
  par	
  rétro-­‐ingénierie	
  de	
  l’applet	
  se	
  fera	
  en	
  déterminant	
  comment	
  le	
  
protocole	
  réseau	
  et	
  le	
  format	
  du	
  message	
  est	
  construit	
  entre	
  l’applet	
  et	
  le	
  serveur	
  du	
  prestataire	
  
lorsque	
  le	
  bulletin	
  chiffré	
  est	
  retransmis	
  vers	
  le	
  serveur.	
  
	
  
Le	
  pirate	
  peut	
  alors	
  écrire	
  un	
  «	
  malware	
  »	
  qui	
  va	
  examiner	
  cet	
  échange	
  puis	
  simplement	
  modifier	
  
quelques	
  octets	
  au	
  hasard	
  du	
  bulletin	
  chiffré.	
  Ainsi	
  le	
  bulletin	
  ne	
  sera	
  plus	
  déchiffrable.	
  	
  
De	
  cette	
  manière,	
  un	
  bulletin	
  qui	
  était	
  normalement	
  conforme	
  pourra	
  être	
  transformé	
  en	
  bulletin	
  
illisible	
  donc	
  nul.	
  	
  
	
  
Si	
  le	
  pirate	
  arrive	
  à	
  distribuer	
  son	
  malware	
  sur	
  un	
  certain	
  nombre	
  de	
  poste	
  de	
  votants,	
  par	
  exemple	
  
via	
  un	
  site	
  web	
  de	
  campagne	
  d’un	
  candidat	
  ou	
  via	
  un	
  réseau	
  social	
  de	
  supporters	
  d’un	
  candidat	
  ou	
  
encore	
  via	
  la	
  distribution	
  d’emails	
  de	
  campagne	
  électorale	
  du	
  candidat,	
  il	
  pourrait	
  «	
  nullifier	
  »	
  
systématiquement	
  tous	
  les	
  bulletins	
  émanant	
  des	
  postes	
  des	
  votants	
  qui	
  se	
  seraient	
  intéressés	
  à	
  ce	
  
candidat	
  et	
  qui	
  auraient	
  à	
  leur	
  insu	
  été	
  infectés	
  par	
  le	
  malware.	
  
	
  
Cette	
  possibilité	
  de	
  détournement	
  en	
  masse	
  d’applets	
  a	
  été	
  démontrée	
  lors	
  des	
  attaques	
  dont	
  ont	
  
fait	
  l’objet	
  Apple,	
  Microsoft,	
  Facebook	
  ou	
  encore	
  Twitter	
  ces	
  deux	
  derniers	
  mois.	
  	
  
	
  
D'après	
  le	
  site	
  Arstechnicaxxv,	
  qui	
  reprend	
  une	
  hypothèse	
  précédemment	
  défendue	
  par	
  RSA	
  
Securityxxvi,	
  les	
  auteurs	
  de	
  l'attaque	
  auraient	
  en	
  réalité	
  commencé	
  par	
  infecter	
  un	
  forum	
  Web	
  
fréquenté	
  par	
  des	
  développeurs	
  travaillant	
  sous	
  Mac	
  (iphonedevdsk.com,	
  qu'il	
  vaut	
  mieux	
  donc	
  ne	
  
pas	
  visiter),	
  selon	
  la	
  tactique	
  dite	
  du	
  «	
  waterhole	
  ».xxvii	
  	
  
Cette	
  tactique	
  consiste	
  donc	
  à	
  plutôt	
  que	
  de	
  s'en	
  prendre	
  directement	
  à	
  une	
  cible	
  donnée,	
  l'idée	
  est	
  
de	
  distribuer	
  l'infection	
  à	
  partir	
  d'un	
  point	
  d'intérêt	
  susceptible	
  d'attirer	
  les	
  publics	
  chez	
  qui	
  l'on	
  
souhaite	
  s'introduire.	
  
	
  
Dans	
  le	
  cadre	
  d’élections	
  politiques,	
  un	
  site	
  web	
  de	
  campagne	
  serait	
  donc	
  une	
  cible	
  idéale	
  pour	
  
distribuer	
  le	
  «	
  malware	
  ».	
  
	
  	
  
Dans	
  le	
  cadre	
  d’élections	
  professionnelles	
  où	
  le	
  service	
  informatique	
  de	
  la	
  société	
  est	
  en	
  charge	
  de	
  la	
  
gestion	
  des	
  postes	
  de	
  travail	
  de	
  tous	
  les	
  salariés	
  et	
  donc	
  de	
  leur	
  sécurité,	
  on	
  pourrait	
  imaginer	
  aussi	
  
qu’un	
  informaticien	
  assurant	
  la	
  gestion	
  des	
  versions	
  de	
  logiciels	
  par	
  exemple	
  pourrait	
  introduire	
  ce	
  
type	
  «	
  malware	
  »	
  et	
  ainsi	
  faire	
  voter	
  pour	
  les	
  candidats	
  de	
  son	
  choix	
  dont	
  il	
  pourrait	
  d’ailleurs	
  faire	
  
partie…..	
  
	
                                                       	
  


                                                                                                                                                                         	
  
                                                                                   5	
  
	
  
Dans	
  un	
  document	
  nommé	
  	
  «	
  Cyber-­‐conflits,	
  quelques	
  clés	
  de	
  compréhension»xxviii	
  publié	
  en	
  2011	
  
par	
  l’agence	
  gouvernementale	
  française	
  de	
  sécurité	
  en	
  informatique	
  l’ANSSIxxix,	
  il	
  est	
  rappelé	
  	
  
l’évolution	
  exponentielle	
  du	
  nombre	
  de	
  «	
  malware	
  »	
  apparus	
  ces	
  dernières	
  années…	
  
	
  




                                                                                                                                                                                                        	
  
                  Source	
  :	
  “The	
  Cyber-­‐Crime	
  Black-­‐Market:	
  Uncovered”,	
  Panda	
  Security	
  Press	
  
	
  
	
  
Le	
  danger	
  est	
  donc	
  bien	
  réel,	
  	
  et	
  vouloir	
  faire	
  reposer	
  la	
  sécurité	
  du	
  vote	
  par	
  internet	
  sur	
  le	
  seul	
  poste	
  
internet	
  du	
  votant,	
  qu’il	
  soit	
  à	
  usage	
  privé,	
  public	
  ou	
  professionnel,	
  que	
  ce	
  soit	
  par	
  l’usage	
  d’applet	
  
Java,	
  de	
  Javascript	
  ou	
  autres	
  «	
  plug-­‐in	
  »,	
  est	
  donc	
  à	
  proscrire.	
  
	
  
Lors	
  du	
  Symposium	
  sur	
  la	
  sécurité	
  des	
  technologies	
  de	
  l'information	
  et	
  des	
  communications	
  (SSTIC)	
  
de	
  2012,	
  un	
  ingénieur	
  de	
  la	
  SERMAxxx	
  ,	
  société	
  agréée	
  Centre	
  d’Évaluation	
  de	
  la	
  Sécurité	
  des	
  
Technologies	
  de	
  l’Informationxxxi,	
  a	
  démontré	
  qu'une	
  vulnérabilité	
  d'apparence	
  anodine	
  permettait	
  
de	
  compromettre	
  intégralement	
  une	
  application	
  bancaire	
  utilisant	
  des	
  cartes	
  à	
  puce	
  sur	
  une	
  
plateforme	
  Java	
  Cardxxxii	
  pourtant	
  reconnue	
  particulièrement	
  sécurisée	
  par	
  le	
  monde	
  bancaire.	
  
Il	
  confirmait	
  dans	
  ses	
  conclusions	
  la	
  nécessité	
  faite	
  aux	
  banques	
  de	
  privilégier	
  des	
  applications	
  
permettant	
  de	
  vérifier	
  l’intégrité	
  des	
  échanges	
  entre	
  la	
  carte	
  bancaire	
  de	
  l’utilisateur	
  et	
  le	
  serveur	
  
central	
  et	
  d’éviter	
  l’usage	
  de	
  Java	
  embarqué.	
  
	
  
Ce	
  qui	
  est	
  applicable	
  au	
  monde	
  de	
  la	
  banque	
  devrait	
  donc	
  être	
  entendu	
  par	
  les	
  acteurs	
  du	
  vote	
  
électronique	
  afin	
  d’éviter	
  la	
  liste	
  des	
  risques	
  ici	
  cités	
  et	
  ainsi	
  mettre	
  en	
  doute	
  la	
  sincérité	
  du	
  vote	
  sur	
  
la	
  plupart	
  des	
  scrutins	
  organisés	
  par	
  internet	
  en	
  France.	
  
	
  
Il	
  ne	
  s’agit	
  donc	
  pas	
  dans	
  cet	
  article	
  de	
  rejeter	
  l’usage	
  d’internet	
  pour	
  diverses	
  pratiques	
  
démocratiques	
  comme	
  les	
  élections,	
  les	
  référendums	
  ou	
  pétitions	
  mais	
  bien	
  de	
  garder	
  les	
  yeux	
  
ouverts	
  sur	
  les	
  réalités	
  techniques	
  qu’il	
  convient	
  de	
  prendre	
  en	
  compte	
  pour	
  offrir	
  un	
  système	
  de	
  
vote	
  qui	
  offre	
  toutes	
  les	
  garanties	
  de	
  sincérité	
  du	
  scrutin	
  et	
  de	
  secret	
  du	
  vote	
  qui	
  s’imposent	
  à	
  toute	
  
démocratie	
  moderne.	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
i
 	
  http://www.conseil-­‐constitutionnel.fr/conseil-­‐constitutionnel/francais/cahiers-­‐du-­‐conseil/cahier-­‐n-­‐13/la-­‐
notion-­‐de-­‐sincerite-­‐du-­‐scrutin.52035.html	
  
ii
    	
  http://www.scribd.com/doc/94990325/Comment-­‐mon-­‐ordinateur-­‐a-­‐vote-­‐a-­‐ma-­‐place-­‐et-­‐a-­‐mon-­‐insu	
  

                                                                                                                                                                                                                                                	
  
                                                                                                                      6	
  
	
  
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
iii
     	
  http://www.conseil-­‐constitutionnel.fr/conseil-­‐constitutionnel/francais/les-­‐decisions/acces-­‐par-­‐
date/decisions-­‐depuis-­‐1959/2013/2012-­‐4597/4626-­‐an/decision-­‐n-­‐2012-­‐4597-­‐4626-­‐an-­‐du-­‐15-­‐fevrier-­‐
2013.136040.html	
  
iv
     	
  http://venturebeat.com/2013/01/11/homeland-­‐security-­‐java/	
  
v
  	
  http://blog.twitter.com/2013/02/keeping-­‐our-­‐users-­‐secure.html	
  
vi
     	
  http://www.courrierinternational.com/article/2013/02/05/barack-­‐obama-­‐commandant-­‐en-­‐chef-­‐de-­‐la-­‐
cyberguerre	
  
vii
        	
  http://www.us-­‐cert.gov/ncas/alerts/ta13-­‐010a	
  
viii
           	
  http://www.kb.cert.org/vuls/id/625617	
  
ix
     	
  http://fr.wikipedia.org/wiki/Applet_Java	
  
x
  	
  http://fr.wikipedia.org/wiki/JavaScript	
  
xi
     	
  http://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique	
  
xii
        	
  http://fr.wikipedia.org/wiki/CPU	
  
xiii
           	
  http://fr.wikipedia.org/wiki/Logiciel_malveillant	
  
xiv
           	
  http://fr.wikipedia.org/wiki/Cheval_de_Troie_(informatique)	
  
xv
        	
  http://www.diplomatie.gouv.fr/fr/vivre-­‐a-­‐l-­‐etranger/elections-­‐2012-­‐votez-­‐a-­‐l-­‐etranger/	
  
xvi
           	
  http://fr.wikipedia.org/wiki/Snippet	
  
xvii
              	
  http://www.electiontpe.travail.gouv.fr/	
  
xviii
                 	
  http://www-­‐cs-­‐students.stanford.edu/~tjw/jsbn/LICENSE	
  
xix
          	
  https://www.votes.voxaly.com/electionsccp-­‐communication/	
  
xx
       	
  http://www-­‐cs-­‐students.stanford.edu/~tjw/jsbn	
  
xxi
          	
  http://fr.wikipedia.org/wiki/Transport_Layer_Security	
  
xxii
             	
  http://en.wikipedia.org/wiki/POST_(HTTP)	
  
xxiii
                	
  http://en.wikipedia.org/wiki/Session_ID	
  
xxiv
                	
  http://en.wikipedia.org/wiki/Base_64	
  
xxv
             	
  http://arstechnica.com/security/2013/02/web-­‐forum-­‐for-­‐iphone-­‐developers-­‐hosted-­‐malware-­‐that-­‐hacked-­‐
facebook/	
  
xxvi
                	
  http://fr.wikipedia.org/wiki/RSA_Security	
  
xxvii
                   	
  http://fr.slideshare.net/symantec/waterhole-­‐attack	
  
xxviii
                      	
  http://www.ssi.gouv.fr/fr/anssi/publications/autres-­‐publications-­‐233/cyber-­‐conflits-­‐quelques-­‐cles-­‐de-­‐
comprehension.html	
  
xxix
                	
  http://www.ssi.gouv.fr/	
  
xxx
             	
  https://www.sstic.org/2012/presentation/compromission_application_bancaire_javacard/	
  
xxxi
                	
  http://www.ssi.gouv.fr/fr/certification-­‐qualification/cesti/presentation-­‐6.html	
  
xxxii
                   	
  http://fr.wikipedia.org/wiki/Java_Card	
  




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       	
  
                                                                                                                                                                                                                                                                                                                                                                               7	
  
	
  

Contenu connexe

Similaire à Java maillon faible du vote par internet

11577 mitb wp_0611_fr
11577 mitb wp_0611_fr11577 mitb wp_0611_fr
11577 mitb wp_0611_frHai Nguyen
 
Sécurité et Moyens de Paiements
Sécurité et Moyens de PaiementsSécurité et Moyens de Paiements
Sécurité et Moyens de PaiementsDarkmira
 
Tech-Meetup Smart Transport - Episode 02
Tech-Meetup Smart Transport - Episode 02Tech-Meetup Smart Transport - Episode 02
Tech-Meetup Smart Transport - Episode 02Laurent Dunys
 
Lire Un Message Supprimé Sur Whatsapp Iphone
Lire Un Message Supprimé Sur Whatsapp IphoneLire Un Message Supprimé Sur Whatsapp Iphone
Lire Un Message Supprimé Sur Whatsapp IphoneSpymasterProfrance
 
Conférence IIRCO - Projection des conflits sur l'espace numérique
Conférence IIRCO - Projection des conflits sur l'espace numériqueConférence IIRCO - Projection des conflits sur l'espace numérique
Conférence IIRCO - Projection des conflits sur l'espace numériqueOPcyberland
 
Rapport Threat Intelligence Check Point du 19 décembre 2016
Rapport Threat Intelligence Check Point du 19 décembre 2016Rapport Threat Intelligence Check Point du 19 décembre 2016
Rapport Threat Intelligence Check Point du 19 décembre 2016Blandine Delaporte
 
Hacking facile sur Internet
Hacking facile sur InternetHacking facile sur Internet
Hacking facile sur InternetStephen Salama
 
Le secteur financier assiégé par un vicieux logiciel bancaire malveillant @...
Le secteur financier assiégé par un vicieux logiciel bancaire malveillant @...Le secteur financier assiégé par un vicieux logiciel bancaire malveillant @...
Le secteur financier assiégé par un vicieux logiciel bancaire malveillant @...ITrust - Cybersecurity as a Service
 
01 mdn2018 - conference cybersecurite - marc watin-augouard
01 mdn2018 - conference cybersecurite - marc watin-augouard01 mdn2018 - conference cybersecurite - marc watin-augouard
01 mdn2018 - conference cybersecurite - marc watin-augouardCyril Marsaud
 
Crédit card Fraud Detection
Crédit card Fraud Detection Crédit card Fraud Detection
Crédit card Fraud Detection OussamaBelarbi2
 
AppréHensiondelaséCuritéInformatique
AppréHensiondelaséCuritéInformatiqueAppréHensiondelaséCuritéInformatique
AppréHensiondelaséCuritéInformatiqueJLCOLOMBANI
 
Rapport Threat Intelligence Check Point du 23 mai 2016
Rapport Threat Intelligence Check Point du 23 mai 2016Rapport Threat Intelligence Check Point du 23 mai 2016
Rapport Threat Intelligence Check Point du 23 mai 2016Blandine Delaporte
 
Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...
Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...
Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...Sylvain Maret
 
Sécurité du paiement mobile
Sécurité du paiement mobileSécurité du paiement mobile
Sécurité du paiement mobileMichel-Ange Camhi
 
Eric HANSEN - La carte bancaire sans contact pas securisée
Eric HANSEN - La carte bancaire sans contact pas securiséeEric HANSEN - La carte bancaire sans contact pas securisée
Eric HANSEN - La carte bancaire sans contact pas securiséeEric HANSEN
 
Inforum ProLibre 26 novembre 2003
Inforum ProLibre 26 novembre 2003Inforum ProLibre 26 novembre 2003
Inforum ProLibre 26 novembre 2003robertpluss
 
Rapport Threat Intelligence Check Point du 29 août 2016
Rapport Threat Intelligence Check Point du 29 août 2016Rapport Threat Intelligence Check Point du 29 août 2016
Rapport Threat Intelligence Check Point du 29 août 2016Blandine Delaporte
 
RCN 2014 Moyens de paiement - Présentation CANTON-Consulting
RCN 2014 Moyens de paiement - Présentation CANTON-ConsultingRCN 2014 Moyens de paiement - Présentation CANTON-Consulting
RCN 2014 Moyens de paiement - Présentation CANTON-ConsultingCANTON-Consulting
 

Similaire à Java maillon faible du vote par internet (20)

11577 mitb wp_0611_fr
11577 mitb wp_0611_fr11577 mitb wp_0611_fr
11577 mitb wp_0611_fr
 
Sécurité et Moyens de Paiements
Sécurité et Moyens de PaiementsSécurité et Moyens de Paiements
Sécurité et Moyens de Paiements
 
Tech-Meetup Smart Transport - Episode 02
Tech-Meetup Smart Transport - Episode 02Tech-Meetup Smart Transport - Episode 02
Tech-Meetup Smart Transport - Episode 02
 
Lire Un Message Supprimé Sur Whatsapp Iphone
Lire Un Message Supprimé Sur Whatsapp IphoneLire Un Message Supprimé Sur Whatsapp Iphone
Lire Un Message Supprimé Sur Whatsapp Iphone
 
Conférence IIRCO - Projection des conflits sur l'espace numérique
Conférence IIRCO - Projection des conflits sur l'espace numériqueConférence IIRCO - Projection des conflits sur l'espace numérique
Conférence IIRCO - Projection des conflits sur l'espace numérique
 
Rapport Threat Intelligence Check Point du 19 décembre 2016
Rapport Threat Intelligence Check Point du 19 décembre 2016Rapport Threat Intelligence Check Point du 19 décembre 2016
Rapport Threat Intelligence Check Point du 19 décembre 2016
 
Hacking facile sur Internet
Hacking facile sur InternetHacking facile sur Internet
Hacking facile sur Internet
 
Le secteur financier assiégé par un vicieux logiciel bancaire malveillant @...
Le secteur financier assiégé par un vicieux logiciel bancaire malveillant @...Le secteur financier assiégé par un vicieux logiciel bancaire malveillant @...
Le secteur financier assiégé par un vicieux logiciel bancaire malveillant @...
 
01 mdn2018 - conference cybersecurite - marc watin-augouard
01 mdn2018 - conference cybersecurite - marc watin-augouard01 mdn2018 - conference cybersecurite - marc watin-augouard
01 mdn2018 - conference cybersecurite - marc watin-augouard
 
Crédit card Fraud Detection
Crédit card Fraud Detection Crédit card Fraud Detection
Crédit card Fraud Detection
 
AppréHensiondelaséCuritéInformatique
AppréHensiondelaséCuritéInformatiqueAppréHensiondelaséCuritéInformatique
AppréHensiondelaséCuritéInformatique
 
Rapport Threat Intelligence Check Point du 23 mai 2016
Rapport Threat Intelligence Check Point du 23 mai 2016Rapport Threat Intelligence Check Point du 23 mai 2016
Rapport Threat Intelligence Check Point du 23 mai 2016
 
Paiement en ligne
Paiement en lignePaiement en ligne
Paiement en ligne
 
Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...
Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...
Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...
 
paris 2.0 = La réalité augmentée est elle passée du monde virtuel au monde réel
paris 2.0 = La réalité augmentée est elle passée du monde virtuel au monde réelparis 2.0 = La réalité augmentée est elle passée du monde virtuel au monde réel
paris 2.0 = La réalité augmentée est elle passée du monde virtuel au monde réel
 
Sécurité du paiement mobile
Sécurité du paiement mobileSécurité du paiement mobile
Sécurité du paiement mobile
 
Eric HANSEN - La carte bancaire sans contact pas securisée
Eric HANSEN - La carte bancaire sans contact pas securiséeEric HANSEN - La carte bancaire sans contact pas securisée
Eric HANSEN - La carte bancaire sans contact pas securisée
 
Inforum ProLibre 26 novembre 2003
Inforum ProLibre 26 novembre 2003Inforum ProLibre 26 novembre 2003
Inforum ProLibre 26 novembre 2003
 
Rapport Threat Intelligence Check Point du 29 août 2016
Rapport Threat Intelligence Check Point du 29 août 2016Rapport Threat Intelligence Check Point du 29 août 2016
Rapport Threat Intelligence Check Point du 29 août 2016
 
RCN 2014 Moyens de paiement - Présentation CANTON-Consulting
RCN 2014 Moyens de paiement - Présentation CANTON-ConsultingRCN 2014 Moyens de paiement - Présentation CANTON-Consulting
RCN 2014 Moyens de paiement - Présentation CANTON-Consulting
 

Java maillon faible du vote par internet

  • 1. Java,  le  maillon  faible  du  vote  par  internet.     Par  Roméo  Gallabert,  ingénieur  systèmes  et  réseaux.    rgallabert@gmail.com     La  France  est  un  pays  précurseur  dans  l’usage  du  vote  par  internet  pour  divers  types  d’élections   relevant  de  la  sphère  privée  et  publique  depuis  une  dizaine  d’années.   La  législation  française  a  permis  son  usage  pour  des  élections  politiques  pour  les  français  résidant  à   l’étranger  dès  2003,  pour  les  élections  professionnelles  dans  le  cadre  du  Code  du  Travail  dès  2004  ou   pour  les  votes  en  assemblées  générales  d’actionnaires  dans  le  cadre  du  Code  du  Commerce.     Ce  sont  donc  des  milliers  de  scrutins  qui  sont  gérés  en  vote  par  internet  en  France  chaque  année  et   pour  lesquels  la  sincérité  du  scrutini  devrait  être  une  garantie  absolue.     Mais  lors  des  dernières  élections  législatives  de  juin  2012  où  le  vote  par  internet  était  possible  pour   les  français  de  l’étranger,  un  informaticien,  Laurent  Grégoire,  a  démontré  qu’il  était  très  simple  de   modifier  les  bulletins  de  vote  des  électeurs  à  leur  insu  par  une  simple  manipulation  d’une  applet  Java   sur  le  poste  du  votant.ii     Suite  à  ce  scrutin,  de  nombreux  recours  avaient  été  déposés  auprès  du  Conseil  Constitutionnel  qui  a   reconnu  l’existence  d’anomalies.iii  Le  détail  des  décisions  rendues  le  15  février  2013  est  assez   éloquent  sur  la  possibilité  de  bulletins  de  vote  corrompus  :  «  ..Considérant  que  la  circonstance,  à  la   supposer  établie,  qu'un  électeur  de  la  4ème  circonscription  est  parvenu  à  exprimer  par  voie   électronique,  au  second  tour  du  scrutin,  un  vote  en  faveur  d'un  candidat  ne  figurant  pas  sur  la  liste   des  candidats  autorisés  à  se  maintenir  à  ce  tour  n'est  pas  susceptible  d'avoir  altéré  la  sincérité  du   scrutin…………  il  résulte  de  l'instruction,  en  particulier  du  procès-­‐verbal  du  bureau  du  vote   électronique,  que  le  dépouillement  automatique  des  suffrages  exprimés  dans  la  4ème  circonscription   a  été  initialement  interrompu  par  la  présence  d'un  vote  ne  correspondant  pas  aux  paramètres  retenus   par  le  système….  »     Il  apparaît  donc  officiellement  que  des  bulletins  électroniques  ont  pu  être  corrompus  lors  d’une   élection  politique  en  France  et  la  démonstration  de  faisabilité  qui  en  avait  été  faite  par  Laurent   Grégoire  apparaît  encore  plus  d’actualité  depuis  quelques  mois  avec  les  cyber-­‐attaques  dont  ont  fait   l’objet  divers  sites  gouvernementauxiv  et  de  médias  ainsi  que  les  sociétés  Apple,  Microsoft,  Facebook   ou  encore  Twitter  qui  reconnaît  que  plus  de  250.000  comptes  pourraient  avoir  été  violés.v     L’ampleur  du  danger  est  telle  que  le  gouvernement  Américain  a  qualifié  dans  un  discours  de  Barak   Obama  de  cyber-­‐guerrevi  les  attaques  menées  par  les  pirates  exploitant  les  failles  de  Javavii  et  appelle   tous  les  utilisateurs  d’internet  à  restreindre  voire  supprimer  Java  de  leurs  ordinateurs.viii     Or  la  majorité  des  prestataires  de  vote  par  internet  en  France  imposent  l’usage  de  Java  pour  assurer   le  chiffrement  des  bulletins  de  vote  via  des  programmes  «  applets  »ix  ou  de  programmes  inspirés  du   langage  Java  appelés  «Javascript  »x  qui  seront  téléchargés  sur  le  poste  internet  du  votant.     Ces  programmes    utilisent  des  algorithmes  de  chiffrement  asymétrique  tel  que  RSA  ou  El  Gamalxi   impliquant  l’usage  combiné  d’une  clef  «  publique  »  et  d’une  clef  «  privée  »  correspondante.   Le  bulletin  de  vote  est  chiffré  par  la  clef  «  publique  »  et  ne  peut  être  déchiffré  que  par  la  clef   «  privée  »  conservée  par  les  membres  du  bureau  de  vote  ou  le  prestataire.  La  clef  «  publique  »  est   directement  envoyée  sur  tous  les  postes  des  votants  puisqu’elle  ne  peut  être  utilisée  pour  déchiffrer   un  bulletin  de  vote  chiffré  sans  la  clef  «  privée  »  assurant  ainsi  théoriquement  le  secret  du  vote….           1    
  • 2. Comme  le  chiffrement  asymétrique  nécessite  plus  de  puissance  CPUxii,  il  peut  s’avérer  très  lent.    Pour  accélérer  ce  type  de  chiffrement,  il  est  normalement  fait  appel  à  une  «  applet  »  Java  qui  est   téléchargée  sur  le  poste  du  votant  pour  permettre  le  chiffrement  du  bulletin.       L’alternative  à  l’usage  d’une  «  applet  »  Java  est  l’usage  d’un  «  Javascript  »  sur  le  poste  du  votant,   mais  un  «  Javascript  »  sera  beaucoup  plus  lent  qu’une  «  applet  »  Java  à  effectuer  le  grand  nombre  de   calculs  que  nécessite  un  algorithme  de  chiffrement  asymétrique  et  aussi  beaucoup  plus  simple  à   pirater  via  un  «  malware  »xiii  ou  un  «  cheval  de  troie  ».xiv   De  plus,  il  s’installe  facilement  à  l’insu  du  votant  sur  son  poste  internet  via  le  chargement  de  la  page   web  du  bulletin  de  vote  et  contourne  ainsi  les  règles  de  sécurité  réseaux  qui  peuvent  imposer  les   gestionnaires  de  sécurité  informatique.     Quelque  soit  le  type  de  programme  utilisé  pour  le  chiffrement  du  bulletin,  «  applet  »  Java  ou   «  Javascript  »,  le  principal  problème  reste  que  le  chiffrement  et  la  transmission  du  bulletin  est   effectué  uniquement  sur  le  poste  du  votant  qui  est  le  «  maillon  faible  »  de  la  chaîne  de  traitement   du  vote  car  impossible  à  sécuriser  par  les  ingénieurs  en  sécurité  informatique  du  prestataire  de  vote.     De  plus  comme  le  bulletin  est  envoyé  chiffré  directement  du  poste  du  votant  jusqu’à  la  base  de   données  du  prestataire  hébergeant  l’urne  virtuelle  sur  ses  serveurs,  aucun  contrôle  d’intégrité  des   données  et  donc  de  sincérité  du  vote  ne  peut  être  effectué  en  dehors  du  poste  du  votant,  ce  qui   ouvre  un  certain  nombre  d’actes  de  piratage  possibles  :     Attaque  1  :  modification  de  l’applet  Java.       Cette  attaque  a  été  très  bien  démontrée  par  Laurent  Grégoire  qui  a  été  capable  de  prendre  la  main   sur  l’applet  «  java  »,  de  décompiler  le  code  et  de  modifier  le  programme  pour  qu’il  puisse  voter  à   l’insu  du  votant  pour  un  autre  candidat.     Le  piratage  du  bulletin  était  simple  à  réaliser  et  le  prestataire  du  Ministère  des  Affaires  Etrangèresxv   n’avait  aucun  moyen  de  détecter  la  fraude,  par  ailleurs  le  bulletin  n’étant  pas  corrompu  et  juste   modifié  il  aurait  été  déchiffré  sans  erreur  par  le  système.  L’installation  d’un  virus  de  type  «  cheval  de   troie  »  spécifique  sur  divers  postes  de  votants  aurait  ainsi  permis  de  modifier  à  l’insu  des  nombreux   votants  leurs  votes  sans  qu’ils  s’en  aperçoivent.     Attaque  2  :  interception  et  manipulation  d’un  composant  html  de  la  page  Web  du  bulletin  de  vote     Nous  montrons  ci-­‐après  une  partie  du  programme  («  snippet  »)xvi  utilisée  pour  le  vote  des  élections   des  représentants  aux  TPExvii  organisé  par  le  Ministère  du  Travail  en  décembre  2012.     <input  type="hidden"  name="maxSelection"  value="1"  id="maxSelection">   <input  type="hidden"  name="minSelection"  value="1"  id="minSelection">       Le  code  ci-­‐dessus  gère  les  variables  de  contrôle  du  nombre  autorisé  de  listes  de  candidats  que  l’on   peut  voter  sur  un  bulletin.     La  règle  de  vote  était  que  l’on  pouvait  soit  choisir  une  liste  soit  voter  «  blanc  »,  le  votant  devait   sélectionner  un  minimum  de  «  1  »  choix  et  un  maximum  de  «  1  »  choix  parmi  les  listes  proposées.     Il  était  donc  très  simple  d’intercepter  l’exécution  de  la  page  Web  sur  le  poste  du  votant,  de  lire  le   code  et  de  changer  le  contenu,  la  plupart  des  navigateurs  offrent  cette  possibilité  aux  développeurs   lorsqu’ils  développent  des  pages  web.     On  pouvait  donc  modifier  la  variable  «  maxSelection  »  à  «  2  »  ou  plus,  ce  qui  permettait  au   programme  de  choisir  plusieurs  listes  de  candidats  à  l’insu  du  votant,  de  chiffrer  le  bulletin  puis  de   l’envoyer  à  l’urne  virtuelle.    Comme  le  seul  contrôle  effectué  se  faisait  sur  le  navigateur  du  votant     2    
  • 3. dont  le  pirate  aurait  pris  le  contrôle,  le  système  de  vote  n’avait  donc  aucun  moyen  de  détecter  qu’un   bulletin  non  conforme  ait  été  reçu  dans  l’urne.   Le  résultat  aurait  été  alors  un  écart  entre  le  nombre  de  vote  exprimés  pour  des  listes  et  le  nombre  de   votants…     Attaque  3  :  interception  de  l’exécution  du  vote  entre  la  page  web  affichant  le  bulletin  de  vote  et  la   page  de  confirmation  du  vote.     Ceci  est  une  autre  partie  de  l’applet  Java  utilisée  pour  le  vote  des  élections  des  représentants  aux  TPE   de  décembre  2012.         <script>       function  voter()  {       $("#btnVoter").attr("disabled",  "disabled");     $("#btnVoter").addClass("disabled");       document.getElementById('applet').setButtonClick();       }     </script>                     <applet  i d='applet'  code='CypherApplet.class'  archive='../applet/SVoteApplet.jar;jsessionid=nnnnnnnnnnn'  width='0'  height='0'>                     <param  name="codebase_lookup"  value="false"  />                     <param  name="MAYSCRIPT"  value="yes"  />                     <param  name="scriptable"  value="true"  />                     <param  name="sessionId"  value="nnnnnnnnnnn"  />                   <param  name="cache_option"  value="no"  />     </applet>                       <input  type="button"  id="btnVoter"  value="VOTER"  class="button  disabled"  onclick="voter()"  disabled="disabled">         La  dernière  ligne  du  programme  ci-­‐dessus    commande  au  navigateur  l’affichage  du  bouton  «  VOTER  »   sur  la  page  Web  du  bulletin  de  vote.     Lorsque  le  votant  a  fait  son  choix  sur  le  bulletin  puis  l’a  vérifié  sur  la  page  dite  de  confirmation,  il   devait  alors  cliquer  sur  ce  bouton.     Cette  action  du  programme  est  effectuée  lorsque  le  clic  est  effectué  (évènement  «  onclick  »)   appelant  la  fonction  Javascript  ‘voter’.  Ce  code  est  visible  dans  les  7  premières  lignes  du  programme.   L’affichage  du  bouton  «  VOTER  »  est  en  fait  simplement  caché  sur  la  page  du  bulletin  (‘disabled’)   pour  ensuite  lancer  l’applet  Java,  tel  que  défini  au  milieu  du  programme  ci-­‐dessus.     En  prenant  le  contrôle  du  navigateur,  un  pirate  peut  alors  ajouter  un  point  de  contrôle  sur  la  fonction   ‘voter’,  modifier  le  choix  du  bulletin  et  ensuite  lancer  l’applet  Java  normalement  à  l’insu  du  votant.   Ainsi  même  si  le  votant  a  cru  vérifier  son  choix  sur  sa  page  de  validation,  son  vote  a  pu  être  modifié   sans  qu’il  s’en  aperçoive  après  que  le  votant  ait  déjà  confirmé  son  vote.  Le  bulletin  peut  être  ainsi   transmis  chiffré  à  l’urne  virtuelle  avec  un  autre  choix  que  celui  effectué  par  le  votant.     Attaque  4  :  rétro-­‐ingénierie  (reverse  engineering)  du  protocole  de  conception  du  bulletin  de  vote   permettant  de  créer  sa  propre  version  de  l’applet  de  chiffrement.       Cela  consiste  à  étudier  le  programme  pour  en  déterminer  le  fonctionnement  interne.     Comme  le  code  du  programme  («  applet  »  java  ou  «  javascript  »)  est  disponible  sur  le  poste  du   votant  soit  en  clair  soit  par  décompilation  de  l’applet  Java,  il  est  possible  à  un  pirate  de  déterminer   exactement  comment  est  construit  le  bulletin  avant  chiffrement.     3    
  • 4. Parce  que  la  clef  publique  de  chiffrement  est  connue  sur  le  poste  du  votant,  le  pirate  peut  créer  une   nouvelle  applet  qui  votera  pour  le  candidat  voulu  et  effectuera  le  chiffrement  d’un  bulletin  conforme   pour  le  système  de  vote  qui  pourra  ensuite  être  déchiffré  normalement.   Le  pirate  peut  donc  aisément  substituer  son  «  applet  »  («  malware  »)  en  lieu  et  place  de  l’applet  du   prestataire  et  ainsi  faire  voter  le  navigateur  du  votant  comme  il  le  souhaite  tout  en  faisant  croire  au   votant  que  c’est  son  choix  à  lui  qui  aurait  été  effectué.     La  rétro-­‐ingénierie  de  l’applet  n’est  d’ailleurs  pas  toujours  indispensable  car  la  plupart  des   prestataires  de  vote  par  internet  en  France  utilisent  le  même  programme  de  chiffrement   asymétrique  développé  en  «  javascript  »par  un  chercheur,  Tom  Wu,  de  l’Université  de  Stanfordxviii   aux  USA  en  2005.     Ainsi  à  la  lecture  du  programme  dans  un  bulletin  de  vote  utilisé  pour  une  élection  professionnelle   organisée  chez  ORANGE  en  février  2013xix,  on  peut  constater  des  failles  supplémentaires.     Le  bulletin  de  vote  web  est  chiffré  par  le  programme  de  Tom  Wuxx,  le  système  va  ensuite  échanger   en  clair  avec  le  serveur  le  choix  du  votant  avant  son  chiffrement  sur  le  poste  du  votant.     On  peut  ainsi  lire  dans  le  «  snippet  »  de  la  page  du  bulletin  de  vote  que  le  choix  pour  une  liste  est   affecté  à  un  numéro  (par  exemple,  ici  la  valeur  15  pour  le  choix  de  la  liste  CFE-­‐CGC/UNSA)       Cette  valeur  est  envoyée  en  clair  au  serveur  via  le  protocole  SSLxxi  en  utilisant  une  commande  «  http   POST  »xxii,  le  votant  restant  identifié  lors  de  l’échange  avec  le  serveur  par  un  cookie  de  session   temporaire  JSESSIONIDxxiii       Le  serveur  répond  en  affichant  une  page  web  de  confirmation  montrant  le  vote  pour  la  liste  CFE-­‐ CGC/UNSA  à  l’électeur  avec  la  variable  ‘15’.       Lorsque  le  bouton  “VOTE”  est  cliqué  par  le  votant,  la  page  du  bulletin  est  alors  chiffrée  avec  le   programme  Javascript  en  remplaçant  le  texte  du  bulletin  par  une  version  chiffrée  RSA  en  base  64xxiv   puis  envoyé  à  l’urne  virtuelle  via  une  commande  http  post.         4    
  • 5.     D’autres  failles  sont  donc  introduites  dans  ce  type  de  solution  :   -­‐ Les  clefs  de  choix  d’une  liste  ou  d’un  candidat  sont  aisément  compréhensibles.    En   interceptant  la  page  html  de  confirmation  du  vote,  un  pirate  peut  simplement  remplacer  une   valeur  de  clef  par  une  autre  sans  que  le  votant  s’aperçoive  de  la  modification.   -­‐ Comme  le  format  du  bulletin  est  connu,  les  valeurs  de  chaque  choix  (liste  ou  candidat)  sont   compréhensibles,  ainsi  qu’est  connue  la  clef  «  publique  »  de  chiffrement  transmise  avec  le   bulletin  par  le  serveur.  Un  pirate  peut  donc  sans  difficulté  créer  un  bulletin  chiffré  avec  son   propre  choix  et  le  faire  envoyer  à  l’urne  virtuelle  via  un  «  http  post  »  à  l’insu  du  votant.       Attaque  5  :  rendre  le  bulletin  illisible.       Une  autre  attaque  très  simple  par  rétro-­‐ingénierie  de  l’applet  se  fera  en  déterminant  comment  le   protocole  réseau  et  le  format  du  message  est  construit  entre  l’applet  et  le  serveur  du  prestataire   lorsque  le  bulletin  chiffré  est  retransmis  vers  le  serveur.     Le  pirate  peut  alors  écrire  un  «  malware  »  qui  va  examiner  cet  échange  puis  simplement  modifier   quelques  octets  au  hasard  du  bulletin  chiffré.  Ainsi  le  bulletin  ne  sera  plus  déchiffrable.     De  cette  manière,  un  bulletin  qui  était  normalement  conforme  pourra  être  transformé  en  bulletin   illisible  donc  nul.       Si  le  pirate  arrive  à  distribuer  son  malware  sur  un  certain  nombre  de  poste  de  votants,  par  exemple   via  un  site  web  de  campagne  d’un  candidat  ou  via  un  réseau  social  de  supporters  d’un  candidat  ou   encore  via  la  distribution  d’emails  de  campagne  électorale  du  candidat,  il  pourrait  «  nullifier  »   systématiquement  tous  les  bulletins  émanant  des  postes  des  votants  qui  se  seraient  intéressés  à  ce   candidat  et  qui  auraient  à  leur  insu  été  infectés  par  le  malware.     Cette  possibilité  de  détournement  en  masse  d’applets  a  été  démontrée  lors  des  attaques  dont  ont   fait  l’objet  Apple,  Microsoft,  Facebook  ou  encore  Twitter  ces  deux  derniers  mois.       D'après  le  site  Arstechnicaxxv,  qui  reprend  une  hypothèse  précédemment  défendue  par  RSA   Securityxxvi,  les  auteurs  de  l'attaque  auraient  en  réalité  commencé  par  infecter  un  forum  Web   fréquenté  par  des  développeurs  travaillant  sous  Mac  (iphonedevdsk.com,  qu'il  vaut  mieux  donc  ne   pas  visiter),  selon  la  tactique  dite  du  «  waterhole  ».xxvii     Cette  tactique  consiste  donc  à  plutôt  que  de  s'en  prendre  directement  à  une  cible  donnée,  l'idée  est   de  distribuer  l'infection  à  partir  d'un  point  d'intérêt  susceptible  d'attirer  les  publics  chez  qui  l'on   souhaite  s'introduire.     Dans  le  cadre  d’élections  politiques,  un  site  web  de  campagne  serait  donc  une  cible  idéale  pour   distribuer  le  «  malware  ».       Dans  le  cadre  d’élections  professionnelles  où  le  service  informatique  de  la  société  est  en  charge  de  la   gestion  des  postes  de  travail  de  tous  les  salariés  et  donc  de  leur  sécurité,  on  pourrait  imaginer  aussi   qu’un  informaticien  assurant  la  gestion  des  versions  de  logiciels  par  exemple  pourrait  introduire  ce   type  «  malware  »  et  ainsi  faire  voter  pour  les  candidats  de  son  choix  dont  il  pourrait  d’ailleurs  faire   partie…..         5    
  • 6. Dans  un  document  nommé    «  Cyber-­‐conflits,  quelques  clés  de  compréhension»xxviii  publié  en  2011   par  l’agence  gouvernementale  française  de  sécurité  en  informatique  l’ANSSIxxix,  il  est  rappelé     l’évolution  exponentielle  du  nombre  de  «  malware  »  apparus  ces  dernières  années…       Source  :  “The  Cyber-­‐Crime  Black-­‐Market:  Uncovered”,  Panda  Security  Press       Le  danger  est  donc  bien  réel,    et  vouloir  faire  reposer  la  sécurité  du  vote  par  internet  sur  le  seul  poste   internet  du  votant,  qu’il  soit  à  usage  privé,  public  ou  professionnel,  que  ce  soit  par  l’usage  d’applet   Java,  de  Javascript  ou  autres  «  plug-­‐in  »,  est  donc  à  proscrire.     Lors  du  Symposium  sur  la  sécurité  des  technologies  de  l'information  et  des  communications  (SSTIC)   de  2012,  un  ingénieur  de  la  SERMAxxx  ,  société  agréée  Centre  d’Évaluation  de  la  Sécurité  des   Technologies  de  l’Informationxxxi,  a  démontré  qu'une  vulnérabilité  d'apparence  anodine  permettait   de  compromettre  intégralement  une  application  bancaire  utilisant  des  cartes  à  puce  sur  une   plateforme  Java  Cardxxxii  pourtant  reconnue  particulièrement  sécurisée  par  le  monde  bancaire.   Il  confirmait  dans  ses  conclusions  la  nécessité  faite  aux  banques  de  privilégier  des  applications   permettant  de  vérifier  l’intégrité  des  échanges  entre  la  carte  bancaire  de  l’utilisateur  et  le  serveur   central  et  d’éviter  l’usage  de  Java  embarqué.     Ce  qui  est  applicable  au  monde  de  la  banque  devrait  donc  être  entendu  par  les  acteurs  du  vote   électronique  afin  d’éviter  la  liste  des  risques  ici  cités  et  ainsi  mettre  en  doute  la  sincérité  du  vote  sur   la  plupart  des  scrutins  organisés  par  internet  en  France.     Il  ne  s’agit  donc  pas  dans  cet  article  de  rejeter  l’usage  d’internet  pour  diverses  pratiques   démocratiques  comme  les  élections,  les  référendums  ou  pétitions  mais  bien  de  garder  les  yeux   ouverts  sur  les  réalités  techniques  qu’il  convient  de  prendre  en  compte  pour  offrir  un  système  de   vote  qui  offre  toutes  les  garanties  de  sincérité  du  scrutin  et  de  secret  du  vote  qui  s’imposent  à  toute   démocratie  moderne.                                                                                                                           i  http://www.conseil-­‐constitutionnel.fr/conseil-­‐constitutionnel/francais/cahiers-­‐du-­‐conseil/cahier-­‐n-­‐13/la-­‐ notion-­‐de-­‐sincerite-­‐du-­‐scrutin.52035.html   ii  http://www.scribd.com/doc/94990325/Comment-­‐mon-­‐ordinateur-­‐a-­‐vote-­‐a-­‐ma-­‐place-­‐et-­‐a-­‐mon-­‐insu     6    
  • 7.                                                                                                                                                                                                                                                                                                                                                                                     iii  http://www.conseil-­‐constitutionnel.fr/conseil-­‐constitutionnel/francais/les-­‐decisions/acces-­‐par-­‐ date/decisions-­‐depuis-­‐1959/2013/2012-­‐4597/4626-­‐an/decision-­‐n-­‐2012-­‐4597-­‐4626-­‐an-­‐du-­‐15-­‐fevrier-­‐ 2013.136040.html   iv  http://venturebeat.com/2013/01/11/homeland-­‐security-­‐java/   v  http://blog.twitter.com/2013/02/keeping-­‐our-­‐users-­‐secure.html   vi  http://www.courrierinternational.com/article/2013/02/05/barack-­‐obama-­‐commandant-­‐en-­‐chef-­‐de-­‐la-­‐ cyberguerre   vii  http://www.us-­‐cert.gov/ncas/alerts/ta13-­‐010a   viii  http://www.kb.cert.org/vuls/id/625617   ix  http://fr.wikipedia.org/wiki/Applet_Java   x  http://fr.wikipedia.org/wiki/JavaScript   xi  http://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique   xii  http://fr.wikipedia.org/wiki/CPU   xiii  http://fr.wikipedia.org/wiki/Logiciel_malveillant   xiv  http://fr.wikipedia.org/wiki/Cheval_de_Troie_(informatique)   xv  http://www.diplomatie.gouv.fr/fr/vivre-­‐a-­‐l-­‐etranger/elections-­‐2012-­‐votez-­‐a-­‐l-­‐etranger/   xvi  http://fr.wikipedia.org/wiki/Snippet   xvii  http://www.electiontpe.travail.gouv.fr/   xviii  http://www-­‐cs-­‐students.stanford.edu/~tjw/jsbn/LICENSE   xix  https://www.votes.voxaly.com/electionsccp-­‐communication/   xx  http://www-­‐cs-­‐students.stanford.edu/~tjw/jsbn   xxi  http://fr.wikipedia.org/wiki/Transport_Layer_Security   xxii  http://en.wikipedia.org/wiki/POST_(HTTP)   xxiii  http://en.wikipedia.org/wiki/Session_ID   xxiv  http://en.wikipedia.org/wiki/Base_64   xxv  http://arstechnica.com/security/2013/02/web-­‐forum-­‐for-­‐iphone-­‐developers-­‐hosted-­‐malware-­‐that-­‐hacked-­‐ facebook/   xxvi  http://fr.wikipedia.org/wiki/RSA_Security   xxvii  http://fr.slideshare.net/symantec/waterhole-­‐attack   xxviii  http://www.ssi.gouv.fr/fr/anssi/publications/autres-­‐publications-­‐233/cyber-­‐conflits-­‐quelques-­‐cles-­‐de-­‐ comprehension.html   xxix  http://www.ssi.gouv.fr/   xxx  https://www.sstic.org/2012/presentation/compromission_application_bancaire_javacard/   xxxi  http://www.ssi.gouv.fr/fr/certification-­‐qualification/cesti/presentation-­‐6.html   xxxii  http://fr.wikipedia.org/wiki/Java_Card     7