Le vote électronique en question

par Christophe
mercredi 18 avril 2007

Le vote électronique est, semble-t-il, à l’ordre du jour (voir cet article). Il faut admettre que l’électronique est à la mode ; pouvons-nous trouver d’autres termes ? Par exemple, en travaillant récemment sur un PEA (Plan d’étude amont) en aéronautique, il convenait d’aborder la conception selon les principes du tout électrique. Si nous pouvons admettre que l’électrique / électronique est plus écologique dans l’utilisation, reste à savoir comment cette énergie est créée, il n’en reste pas moins que d’après tous les acteurs participants à ce projet, et preuve en est faite, l’électrique / électronique est la moins fiable de toutes les techniques applicables dans notre contexte. Mais le propos ne repose pas uniquement sur l’aspect fiabilité.

Même si le vote électronique pose des problèmes de fiabilité, la préoccupation première doit plutôt être axée sur la sécurité ; je prendrai donc pour référence un rapport technique non classifié (dont je suis l’auteur) du CERT/ONERA, un état de l’art en matière de modèles de sécurité informatique [1].

La fiabilité du système

D’aucuns abordent la fiabilité d’un système informatique en effectuant des tests. Ainsi, nous pouvons tester, selon un plan dédié, différentes opérations afin de savoir si, entre une entrée et la sortie correspondante, le cheminement nous mène au résultat attendu. Nous n’abordons là que les principes de fonctionnement propres aux systèmes manipulant des symboles de type donnée ou information mais pas de type connaissance où la notion de plausibilité est plus importante que la valeur de vérité : c’est une différentiation importante entre le déterminisme et le non-déterminisme.

Cette démarche, très répandue dans l’industrie productiviste a un avantage certain, elle réduit les coûts de la qualité des produits. Cependant, quand l’objet soumis aux règles de l’informatique est coûteux, par exemple un satellite ; il est tout à fait hors de question de se satisfaire d’une démarche si peu formelle. C’est donc à ces besoins spécifiques que répond la spécification formelle des programmes.

L’approche par tests ne montre qu’une chose ; pour une entrée donnée, le système peut fournir la sortie attendue, ce qui ne permet pas de prouver que cela se vérifie chaque fois, ni que si la donnée d’entrée varie, le résultat correspondant sera celui attendu. D’autre part, ce type d’approche nécessiterait une exhaustivité a priori du nombre de tests à effectuer, approche totalement irréaliste.

L’approche de la spécification formelle des programmes est une approche mathématique. Un ordinateur, comme tout élément programmé, ne répond qu’à des fonctions mathématiques ; le but consiste à vérifier mathématiquement le bon fonctionnement du système. Ainsi nous prouvons qu’un programme réalise vraiment ce pour quoi il est fait.

Ce propos peut paraître sans trop d’intérêt, mais si nous pensons au respect des règles démocratiques, nous devons impérativement prouver que le système enregistre le vote voulu par chaque électeur.

Première approche de la sécurité du système

La première remarque qu’il convient de faire à tout système informatique est qu’il existe un mode de connexion de type super utilisateur qui possède l’intégralité des droits d’accès au système.

Avant d’aborder les systèmes de sécurité qui sont exprimés dans des politiques de sécurité, il convient de bien définir le domaine.

La sécurité doit être abordée sur trois axes :

- La Confidentialité : prévention d’une divulgation non autorisée de l’information,

- L’intégrité : prévention d’une modification non autorisée de l’information,

- La disponibilité : prévention d’un déni non autorisé d’accès à l’information ou à des ressources.

La sécurité d’un système issu des technologies de l’information peut être assurée, en grande partie, par des mesures non techniques telles que [2], [3] :

- des contrôles de l’organisation,

- des contrôles du personnel,

- des contrôles physiques,

- des contrôles administratifs.

L’élément principal étant que la confiance que les utilisateurs ont en la sécurité du système informatique qu’ils utilisent doit être sans faille. De plus, ils ont besoin d’éléments d’étalonnage afin de mettre en place le système informatique sécurisé qui répond à leur besoin. Pour ce faire, des critères d’évaluations ont été développés dans plusieurs pays [4], [5].

Les règlements de sécurité informatique sont classifiés suivant deux classes [6] distincts mais complémentaires :

- Les règlements de gestion d’accès obligatoire (ou par mandats).

- Les règlements de gestion d’accès discrétionnaires.

Dans notre contexte de vote électronique, le seul règlement nécessaire concerne la gestion d’accès obligatoire. D’autre part, le système de sécurité ne demande pas de résoudre des problématiques complexes comme la gestion multiniveaux introduisant des relations d’ordre, voire des relations d’ordre partiel comme cela existe dans la gestion de la sécurité militaire.

Les problèmes à résoudre

Les mécanismes de protection font respecter des règlements qui gèrent le partage de l’information. Il existe plusieurs niveaux de partage lesquels introduisent de nouveaux problèmes :

- Pas de partage (isolation complète), aucun risque,

- Partage des données, introduction du problème de suspicion (diffusion de l’information),

- Partage des programmes, introduction du problème de la violation du règlement par un cheval de Troie.

Dans un système de vote électronique, chaque console de vote étant utilisée par plusieurs utilisateurs, nous sommes dans le cadre du partage des programmes et des données.

En prenant pour référence des ouvrages de spécialistes du domaine [7], [8], nous pouvons déterminer toute sorte de canaux cachés (covert channel) : probabilistes (bruités), travaillant sur des bits (one bit channel) ou des ½ bits (half bit channel), ayant une référence temporelle (timing channel) ou non (storage channel), ...

Ce qui reste certain est que ces canaux cachés sont indétectables même si nous appliquons un système de surveillance dynamique comme le modèle de non déduction [9] ; ce problème est insoluble par les modèles de sécurité classiques tels que Bell et Lapadula [10] pour la confidentialité et Biba [11] pour l’intégrité ou Jajodia et Sandhu [12] pour les bases de données.

Pour un système de vote, nous savons que nous n’avons pas la capacité d’assurer la sécurité si un cheval de Troie est introduit dans le système ; et introduire un cheval de Troie est très simple surtout si nous avons accès à une console particulièrement dans un contexte d’isolement total, ce qui est la règle en démocratie.

Conclusion

Nous sommes donc confrontés à une opposition entre modernisme technique et éthique.

Ayant été assesseur et scrutateur dans des bureaux de vote, il est évident que les contrôles non techniques ne sont pas sûrs à 100% mais s’en rapproche puisque le fait de tricher est visible et contrôlable.

Dans un contexte informatique, sachant qu’un programme malveillant s’exécute avec les droits de l’utilisateur à son insu, il est donc possible de tricher sans que cela ne soit visible ni contrôlable. Les seuls contrôles possibles seraient de recompter toutes les traces papiers, si trace papier était laissée, ce qui rendrait inutile le vote électronique.

La question qui nous est réellement posée est donc de savoir si nous acceptons de moderniser le traitement du vote par des outils techniques au détriment de la sécurité des votes démocratiques. Ce n’est pas par des pratiques considérées comme sûres (identification, cryptage, voire même leures) que nous pourrons réellement résoudre ce type de problème ; le code de traitement des votes ne peut être confidentiel et cela ouvre toutes les portes au piratage indétectable !

Personnellement, cela n’engageant que ma personne, tant que la sécurité informatique n’aura pas atteint, au minimum, le niveau de sécurité non technique que nous appliquons aujourd’hui, ma réponse sera non ; la primauté allant au meilleur respect possible des règles démocratiques plutôt qu’à l’application de techniques peu sûres.


Lire l'article complet, et les commentaires