Quelques derniéres remarques avant que ce sujet passe dans l’oubli numérique.
Il est faux de croire qu’avoir prouvé le système théoriquement apporte nécéssairement la sécurité. Le fait de proposer des solutions techniques jusqu’à ce que l’une d’entre elle semble inviolable en théorie est donc dangereux car cela semble légitimer le fait que l’on pourrait être sur de la viabilité d’une solution. C’est faux.
Lorsque l’on prouve une application de façon théorique, on va la plupart du temps réaliser des abstractions qui permettent de s’éloigner des contraintes bassement matérielles. Les chercheurs en crytographie ont notamment appris à leur dépends que des algorithmes prouvés comme étant trés fiables pouvaient être implémentés de façon maladroite et voir leur sécurité complétement détruite. Seulement il n’y a qu’une petite poignée de personnes dans le monde qui vont le remarquer. On se retrouve dans un cas ou l’algo a été prouvé comme sur. Cet algo a été implémenté (mal mais c’est parfois dur à voir) et pourtant le résultat est profondément insécure.
De façon général quelques tours de passe passe en matiére de programmation système ont souvent mis à mal des systèmes informatiques complexes. La plupart des programmeurs d’applications n’ont aucune notion de programmation système et il est assez facile pour eux de faire une erreur. Il existe trés peu de véritables experts en programmation système et ils sont tous employés.
De même quel que soit mon respect pour les chercheurs qui sont derriéres le projet Coq (http://en.wikipedia.org/wiki/Coq) et l’utilité de ce logiciel je ne prendrai pas le risque de l’utiliser dans le cadre du vote éléctronique.
Enfin, en matiére de sécurité comme en matiére de génie logiciel, les designs les plus simples sont généralement les plus fiables. Rajouter 5 couches de complexité et augmenter les points de controles vont plus augmenter les risques que les réduires. De façon générale, une application avec un design trés complexe va etre un échec cuisant en matiére de conduite de projet et aprés en matiére d’exploitation. A l’inverse si les architectes ont réussi à maintenir un design trés simple, cela sera fiable et efficaces. A cet effet, regardez la façon dont ont été crée les protocoles de routages sur internet (BGP) : Design simple et élégant. Algorithme trivial pour quiquonque à des bases de théorie des graphes. Et pourtant non seulement ca marche mais les specs n’ont pas été retouchées depuis des années.
Tout ca pour dire que quand je vois : Alors truc avec un RFID + controle biométrique + cryptage + x + y + ... je dis STOP avant la fin.