% $Id$
\documentclass[notes]{beamer}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{moreverb}
\usepackage{graphicx}

\mode<presentation>
{
  \definecolor{beamerstructure}{RGB}{143,79,112}
  \definecolor{sidebackground}{RGB}{230,242,250}
  \color{beamerstructure}
  \usetheme[secheader]{Madrid}
  \usepackage{times}
  \userightsidebarcolortemplate{\color{sidebackground}}
  \beamertemplateballitem
}

\AtBeginSection[]
{
\begin{frame}<beamer>
    \frametitle{Plan}
    \tableofcontents[currentsection,hideothersubsections]
\end{frame}
}

\title{Epoll - Vote en ligne}
\subtitle{FPW - 2009}
\author{Olivier Thauvin}
\date{\today}

\begin{document}

\frame{\titlepage}

\begin{frame}
\tableofcontents[hideallsubsections]
\end{frame}

\section{Vote électronique}

\begin{frame}
\frametitle{Généralités}

\vfill
\begin{block}{http://fr.wikipedia.org/wiki/Vote\_électronique}
\textit{Le vote électronique est un système de vote automatisé, notamment des scrutins,
à l'aide de systèmes informatiques.}
\end{block}
\pause
\vfill

\begin{alertblock}{Est-ce bien ?}
\begin{itemize}
\small{
\item Impossibilité de contrôle par l'électeur (voir la commission électorale)
\pause
    \begin{itemize}
    \item techniquement compliqué
    \pause
    \item logiciel souvent opaque
    \pause
    \item contrôle visuel impossible
    \end{itemize}
}
\pause
\item le syndrome "L'ordinateur ne se trompe jamais"
\end{itemize}
\end{alertblock}
\pause
\vfill

\begin{block}{Références}
\begin{itemize}
\item \href{http://www.ordinateurs-de-vote.org/}{http://www.ordinateurs-de-vote.org/}
\item \href{http://www.cnil.fr/}{http://www.cnil.fr/}
\end{itemize}
\end{block}
\vfill
\end{frame}

\section{Epoll ?}

\begin{frame}
\frametitle{Contexte}
\begin{block}{LATMOS}
\begin{itemize}
\item Laboratoire CNRS
\pause
\item Laboratoire Atmosphères, Milieux, Observation Spatiales
\pause
\item Environ 300 personnes
\pause
\item 4 sites (Verrières le Buisson, Vélizy, Paris et St Maur)
\end{itemize}
\end{block}
\vfill
\pause
\begin{block}{CL}
\begin{itemize}
\item Conseil de laboratoire
\item 3 membres de droits
\item 10 membres élus parmis les personnels
\item des personnels invités
\end{itemize}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Pourquoi ?}
\vfill
\begin{block}{Le LATMOS}
Demande de vote électronique de la direction
\end{block}
\pause
\vfill
\begin{block}{Logiciel libre}
Rien de bien satisfaisant
\end{block}
\pause
\vfill
\begin{block}{solutions payantes}
Entre 1500 et 5000 euros
\end{block}
\pause
\vfill
\begin{block}{Sujet intéressant}
Surtout quand il me donne des arguments contre
\end{block}
\vfill
\end{frame}

\begin{frame}
\frametitle{Résumé}
\vfill
\begin{block}{Application web}
\begin{itemize}
\pause
\item accessible avec un simple navigateur
\pause
\item envoi des identifiants par mail
\pause
\item pas d'intervention de l'administrateur
\end{itemize}
\end{block}
\pause
\vfill
\begin{block}{Les fondations}
\begin{itemize}
\item Perl (\href{http://www.perl.org/}{http://www.perl.org/})
\item Catalyst (\href{http://www.catalystframework.org/}{http://www.catalystframework.org/})
\pause
\end{itemize}
\begin{itemize}
\item PostgreSQL (\href{http://www.postgresql.org}{http://www.postgresql.org})
\end{itemize}
\end{block}
\vfill
\end{frame}

\section{Epoll 1.0 (aujourd'hui)}

\subsection{Utilisation}

\begin{frame}
\frametitle{Création du vote}
\begin{block}{La commission électorale}
\begin{enumerate}
\item demande de création
\pause
\item confirmation de la demande (par mail)
\pause
\item configuration du vote (dont date début/fin)
\pause
\item inscription des électeurs
\pause
\item envois des identifiants au électeurs
\end{enumerate}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Le vote}
\begin{block}{Les électeurs}
\begin{enumerate}
\item réception du mail avec url, login et mot de passe
\pause
\item authentification sur le site
\pause
\item choix
\pause
\item confirmation des choix
\pause
\item affichage du numéro du bulletin
\pause
\item réception d'un accusé de réception par mail
\end{enumerate}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Le dépouillement}
\vfill
\begin{block}{La commission électorale}
\begin{enumerate}
\item consolidation des choix libres si besoin
\pause
\item marquage des bulletins invalides
\end{enumerate}
\end{block}
\pause
\vfill
\begin{block}{Dès la fin du vote}
\begin{itemize}
\item Les résultats (provisoires) sont disponibles
\item La liste de bulletins est disponible
\end{itemize}
\end{block}
\vfill
\end{frame}

\subsection{Respect des règles}

\begin{frame}[fragile]
\frametitle{Anonymat}
\vfill
\begin{block}{stockage}
Pas de relation entre l'électeur et le bulletin
\end{block}
\pause
\vfill

\begin{exampleblock}{Émargement}
\begin{tabular}{|c|c|c|}
\hline
Mail&IP&heure de vote\\
\hline
\hline
thauvin@latmos.ipsl.fr&134.157.16.151&\verb+2009-03-19 15:31:56+\\
\hline
\end{tabular}
\end{exampleblock}
\pause
\vfill

\begin{exampleblock}{Le bulletin}
\begin{tabular}{|c|c|}
\hline
Id&Contenu\\
\hline
\hline
f4f667c78a2178095c3bae4d&oui\\
\hline
\end{tabular}
\end{exampleblock}
\vfill
\end{frame}

\begin{frame}
\frametitle{Éviter les tricheries}
\vfill
\begin{block}{Côté base de données}
\begin{itemize}
\pause
\item le vote est transactionnel (tout ou rien)
\pause
\item contraintes référentielles
\end{itemize}
\end{block}
\pause
\vfill
\begin{block}{Contrôle par l'utilisateur}
\begin{itemize}
\item nombre de votants et nombre de bulletins disponibles
\pause
\item liste d'émargement disponible
\pause
\item liste des bulletins disponible dès la fin du vote
\end{itemize}
\end{block}
\vfill
\end{frame}

\begin{frame}
\frametitle{Les problèmes}
\vfill
\pause
\begin{alertblock}{Le Mail}
\begin{itemize}
\item n'est pas chiffré
\item est interceptable
\end{itemize}
\end{alertblock}
\pause
\vfill
\begin{alertblock}{La base de données}
\begin{itemize}
\pause
\item lecture: accès aux résultats avant la fin du vote
\item écriture: modification des résultats (mais cela devrait se voir)
\end{itemize}
\end{alertblock}
\vfill
\pause
\begin{alertblock}{L'application elle même}
S'assurer de l'intégrité du code
\end{alertblock}
\vfill
\end{frame}

\section{Le résultat}

\subsection{Capture d'écran}

% padding pour les bordures
\setlength\fboxsep{0pt}

\begin{frame}
\frametitle{Page principale}
\center{
\fbox{\includegraphics[height=0.8\textheight]{welcome}}
}
\vfill
\end{frame}

\begin{frame}
\frametitle{Le vote}
\center{
\fbox{\includegraphics[height=0.8\textheight]{vote}}
}
\vfill
\end{frame}

\begin{frame}
\frametitle{Présentation des résultats}
\center{
\fbox{\includegraphics[height=0.8\textheight]{results}}
}
\vfill
\end{frame}

\begin{frame}
\frametitle{Lites des bulletins}
\center{
\fbox{\includegraphics[height=0.8\textheight]{ballots}}
}
\vfill
\end{frame}

\section{L'avenir:~Epoll 2}

\subsection{Recommandation de la CNIL}

\begin{frame}
\frametitle{Référence: la CNIL}
\begin{alertblock}{Essayer d'appliquer:}
\textit{Délibération n. 03-036 du 1er juillet 2003 portant
adoption d'une recommandation relative à la sécurité des systèmes de
vote électronique}.
\end{alertblock}
\end{frame}

\begin{frame}
\frametitle{CNIL: Verrouillage de l'urne}
\begin{block}{L'ouverture devrait necessiter plusieurs personnes}
\begin{itemize}
\item l'application pourrait demander plusieurs mots de passe
\item pas de solution fiable au niveau des données
\end{itemize}
\end{block}
\end{frame}

\begin{frame}
\frametitle{CNIL: Chiffrement}
\begin{alertblock}{Données en clair dans la base}
\begin{itemize}
\item Le gestionnaire SQL y a accès
\item Elles sont des les backup
\end{itemize}
\end{alertblock}
\vfill
\pause
\begin{block}{Chiffrer les bulletins}
\begin{itemize}
\item{chiffrer\ldots}

Opérationnel pour la prochaine version
    \begin{itemize}
    \item Clef asymétrique pour le vote
    \item Bulletins chiffré avec clef symétrique aléatoire
    \item Clef des bulletins chiffré avec clef du vote
    \end{itemize}
\pause
\item{{\ldots}sur le poste du votant}

Pb: comment supporter les différents OS ?
    \begin{itemize}
    \item javascript ? applet java ?
    \item application sur le poste + XML/RPC  ?
    \end{itemize}
\end{itemize}
\end{block}
\end{frame}

\begin{frame}[fragile]
\frametitle{Somme de contrôle de l'application}
\begin{block}{La CNIL dit:}
"L'application doit effectuer une somme de contrôle de son code"
\end{block}
\vfill
\pause
\begin{block}{Ma réponse:}
\begin{itemize}
\item l'appli se contrôle elle même~?!
\pause
\begin{verbatim}
sub check { print "Cheksum OK: " . 
    "17ca809b185d59563d8776bac260c4b6\n" }
\end{verbatim}
\pause
\item les gestionnaires de paquets le font (\verb+rpm+, \verb+dpkg+, \ldots)
\pause
\item il faudrait aussi controler:
    \begin{itemize}
    \item \verb+perl+ + les modules utilisés
    \item le SGDB
    \item le système (kernel, programmes, \dots)
    \end{itemize}
\end{itemize}
\end{block}
\end{frame}

\subsection{Autres idées}

\begin{frame}[fragile]
\frametitle{Idées}
\vfill
\begin{block}{}
\begin{itemize}
\pause
\item pouvoir changer son vote
\begin{itemize}
\item est-ce raisonnable ?
\item il faut retrouver l'ancien bulletin
\end{itemize}
\pause
\item support de plusieurs langues (i18n)
\pause
\item rendre un vote privé
\pause
\item votes non anonymes
\pause
\item pouvoir redemander un mot de passe (électeurs)
\pause
\item sortie imprimable des résultats

Fait: sortie en \verb+pdf+ avec \LaTeX.
\pause
\item redondance des données (CNIL)
\pause
\item \ldots
\end{itemize}
\end{block}
\end{frame}

\section{Fin}

\begin{frame}
\frametitle{Questions et remarques}
\vfill
\begin{block}{Le projet}
\href{http://forge.ipsl.jussieu.fr/epoll}{http://forge.ipsl.jussieu.fr/epoll:}
\begin{itemize}
\item le code
\item la documentation
\item lien vers la liste de diffusion
\end{itemize}
\end{block}
\vfill
\begin{block}{La démo}
\href{http://forge.ipsl.jussieu.fr/epoll/demo}{http://forge.ipsl.jussieu.fr/epoll/demo}
\end{block}
\vfill
\pause
\begin{block}{Avez-vous:}
\begin{itemize}
\item des questions~?
\item des remarques~?
\end{itemize}
\end{block}
\vfill
\end{frame}

\end{document}
