Verified Commit f2ce7d8e authored by Jean-Benoist Leger's avatar Jean-Benoist Leger
Browse files

initial commit

parents
*.aux
*.log
*.nav
*.out
*.snm
*.toc
p.pdf
\documentclass[9pt]{beamer}
\mode<presentation> {
\usetheme[]{Berlin}
\useoutertheme{shadow}
\setbeamercovered{transparent}
\usecolortheme{seahorse}
%\usecolortheme{sidebartab}
% \usefonttheme{structurebold}
\useinnertheme{default}
%\useinnertheme{rounded}
}
\usepackage{xcolor,pifont}
\usepackage{float}
\usepackage[french]{babel}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage{times,url}
\usepackage[T1]{fontenc}
\usepackage{multirow}
\usepackage{color}
%\setbeamertemplate{footline}[frame number]
\setbeamertemplate{navigation symbols}{%
\usebeamerfont{footline}%
\color{black}
\hspace{1em}%
\insertframenumber/\inserttotalframenumber
}
\title[]{OpenPGP, GnuPG, et paranoïa}
\date{6 juillet 2018}
\author[J.-B. Leger]{Jean-Benoist \textsc{Leger}}
\begin{document}
\begin{frame}
\titlepage{}
\end{frame}
\begin{frame}{Besoins}{Dans un monde idéal}
Quels serait l'intérêt de la cryptographie dans un monde où :
\begin{itemize}
\item personne n'est surveillé,
\item aucune identité n'est usurpée,
\item tous les groupes d'intérêt travaillent en harmonie,
\item la garantie de la Loi suffit à préserver la Liberté,
\item les étudiants travaillent sérieusement leurs UV.
\end{itemize}
Probablement, aucun.
\end{frame}
\begin{frame}{Besoins}{Dans le monde réel}
Dans le monde réel, nous constatons que:
\begin{itemize}
\item nous sommes surveillés par ceux sensé garantir notre Liberté,
\item nous sommes surveillés par des groupements d'intérêts,
\item nos identités sont usurpés,
\item nous sommes une cible, à titre collectif ou individuel.
\end{itemize}
La cryptographie offre certains moyens de se protéger et de se prémunir.
\end{frame}
\begin{frame}{Besoins}{Mais…}
Et si \textbf{\textit{\og{}Je n'ai rien à cacher\fg{}}}.
Je vais vous demander de:
\begin{itemize}
\item publier l'\textbf{intégralité} de votre correspondance privée,
\item des manière définitive et \textbf{irrévocable}.
\end{itemize}
\end{frame}
\begin{frame}{Besoins}{Bilan}
\begin{itemize}
\item La paranoïa n'est qu'une forme de prudence.
\item Trop prudents jamais nous ne seront.
\item Nous pouvons regretter un manque de prudence, rarement un excès.
\end{itemize}
\begin{itemize}
\item Il faut évaluer un modèle de risque.
\item Il ne faut trop dégrader l'utilisabilité.
\item Il faut prendre conscience des risques, en accepter certains, se
prémunir contre les autres.
\end{itemize}
\end{frame}
\begin{frame}{Besoins}{Limitations}
\begin{itemize}
\item L'article 434-15-2 du code pénal dispose:
{\itshape
Est puni de trois ans d'emprisonnement et de 270 000 euros d'amende le fait,
pour quiconque ayant connaissance de la convention secrète de
déchiffrement d'un moyen de cryptologie susceptible d'avoir été utilisé
pour préparer, faciliter ou commettre un crime ou un délit, de refuser de
remettre ladite convention aux autorités judiciaires ou de la mettre en
oeuvre, sur les réquisitions de ces autorités délivrées en application des
titres II et III du livre Ier du code de procédure pénale.
Si le refus est opposé alors que la remise ou la mise en oeuvre de la
convention aurait permis d'éviter la commission d'un crime ou d'un délit
ou d'en limiter les effets, la peine est portée à cinq ans
d'emprisonnement et à 450 000 euros d'amende.
}
\item Seul le contenu des communications pourra être protégée via OpenPGP.
D'autres moyens existent pour protéger l'existence des communications.
\end{itemize}
\end{frame}
\begin{frame}{Cryptographie asymétrique}{Utilité}
\begin{itemize}
\item En cryptographie symétrique: autant de clef que de couples de
correspondants.
\item En cryptographie asymétrique: autant de paires de clefs que de
correspondants.
\end{itemize}
\end{frame}
\begin{frame}{Cryptographie asymétrique}{Principe}
\begin{center}
\only<1>{\includegraphics[width=.95\textwidth]{scans/01}
}\only<2>{\includegraphics[width=.95\textwidth]{scans/02}
}\only<3>{\includegraphics[width=.95\textwidth]{scans/03}
}\only<4>{\includegraphics[width=.95\textwidth]{scans/04}
}\only<5>{\includegraphics[width=.95\textwidth]{scans/05}
}
\end{center}
\end{frame}
\begin{frame}{Cryptographie asymétrique}{RSA}
Les maths, c'est chiant (pour les étudiants), mais sur des slides, c'est
très chiant (pour tout le monde cette fois).
\end{frame}
\begin{frame}{Cryptographie asymétrique}{RSA}
La mise en pratique c'est encore mieux.
\end{frame}
\begin{frame}{OpenPGP}{Clef RSA}
\begin{itemize}
\item La clef publique (au sens strict) est constitué de:
\begin{itemize}
\item $n$,
\item $e$,
\item taille de la clef,
\item timestamp de génération.
\end{itemize}
\item La clef privée est constitué de
\begin{itemize}
\item la clef publique (au sens strict),
\item $d$,
\item $p$, $q$,
\item des valeurs précalculées.
\end{itemize}
\end{itemize}
Identification:
\begin{itemize}
\item fingerprint: Condensat SHA1 de la clef publique,
\item identifiant: 4 derniers octets du fingerprint,
\item identifiant long: 8 derniers octets du fingerprint.
\end{itemize}
\end{frame}
\begin{frame}{Cryptographie asymétrique}{Chiffrement}
\begin{center}
\only<1>{\includegraphics[width=.95\textwidth]{scans/01}
}\only<2>{\includegraphics[width=.95\textwidth]{scans/02}
}\only<3>{\includegraphics[width=.95\textwidth]{scans/03}
}\only<4>{\includegraphics[width=.95\textwidth]{scans/04}
}\only<5>{\includegraphics[width=.95\textwidth]{scans/05}
}
\end{center}
\end{frame}
\begin{frame}{Cryptographie asymétrique}{Signature}
\begin{center}
\only<1>{\includegraphics[width=.95\textwidth]{scans/06}
}\only<2>{\includegraphics[width=.95\textwidth]{scans/07}
}\only<3>{\includegraphics[width=.95\textwidth]{scans/08}
}\only<4>{\includegraphics[width=.95\textwidth]{scans/09}
}\only<5>{\includegraphics[width=.95\textwidth]{scans/10}
}\only<6>{\includegraphics[width=.95\textwidth]{scans/11}
}\only<7>{\includegraphics[width=.95\textwidth]{scans/12}
}
\end{center}
\end{frame}
\begin{frame}{OpenPGP}{Sous-clefs}
\begin{itemize}
\item Sous-clef de chiffrement:
\begin{itemize}
\item très souvent présentes,
\item permet d'utiliser openPGP pour signer et pour chiffrer/dechiffrer
avec des clefs différentes,
\item permet de rendre indépendant le renouvelement de la sous-clef de
la clef principale.
\end{itemize}
\item Sous-clef de signature:
\begin{itemize}
\item peu utilisée,
\item permet de signer du contenu (et non de certifier), sans disposer
de la clef principale,
\item permet de rendre indépendant le renouvelement de la sous-clef de
la clef principale.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{OpenPGP}{Certification}
Ceci étant dit, comment s'assurer que:
\begin{itemize}
\item la clef publique soit associée à un nom,
\item la clef publique soit bien celle de la personne avec laquelle nous
voulons communiquer,
\item les sous-clefs soient bien celle de la clef considérée
\end{itemize}
Le mécanisme de \textbf{certification} permet répondre à ces question.
\end{frame}
\begin{frame}{OpenPGP}{Clef publique au sens large}
Une clef publique au sens large est constituée de:
\begin{itemize}
\item la clef publique au sens strict,
\item des identités, avec pour chaque identité:
\begin{itemize}
\item une certification signée avec la clef publique au sens strict
(self-sig), \textit{de facto} obligatoire pour que la clef soit
utilisable,
\item les certifications d'autres personnes, facultatives,
\end{itemize}
\item les parties publiques au sens strict de chaque sous-clef, avec pour
chacune:
\begin{itemize}
\item une certification signée avec la clef publique au sens strict
(self-sig), \textit{de facto} obligatoire pour que la clef soit
utilisable,
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{OpenPGP}{Mise en œuvre}
Point de vocabulaire:
\begin{itemize}
\item OpenPGP est le nom de standard (RFC4880),
\item GnuPG est le nom de l'implémentation la plus répandue,
\item \texttt{gpg} est le nom de l'executable de l'implémentation GnuPG,
\item PGP est le nom de l'implémentation historique (avant standardisation).
\end{itemize}
Dans les fait on mélange tout, en laissant le soin de décoder à l'arrivée.
\textbf{Au boulot!}
\end{frame}
\begin{frame}{GnuPG}{Validité et confiance}
Attention, deux concepts différents:
\begin{itemize}
\item la validité associée à la clef de A est la croyance que j'ai au fait que la
clef de A soit bien la clef de A,
\item la confiance au propriétaire associée à la clef de A, est la croyance que j'ai que les
certification que fait A sont légitimes.
\end{itemize}
Problème: on nomme souvent les deux avec le terme confiance (trust), et
laissant le soin de décoder à l'arrivée.
\end{frame}
\begin{frame}{Modèle de confiance (au sens validité)}{Certification d'identité}
A certifie B signifie que:
\begin{itemize}
\item B a donné son \textit{fingerprint} à A via un canal sécurisé,
\item B a justifié son identité à A
\item A a récupéré la clef de B et a vérifiée qu'il s'agissait de la bonne à
l'aide du \textit{fingerprint}.
\item A a signé un certificat qu'il adjoint à la clef de B.
\item A a envoyé sa certification à B, ou au monde entier.
\end{itemize}
Exemple de certification.
\end{frame}
\begin{frame}{Modèle de confiance (au sens validité)}{Modèle historique, modèle
PGP}
On considère qu'est valide une clef:
\begin{itemize}
\item certifiée par moi,
\item certifiée par une clef valide auquelle j'accorde une confiance
entière,
\item certifiée par trois clefs valides auquelles j'accorde une confiance au
propriétaire marginale.
\end{itemize}
Condition supplémentaire, la longueur de la chaine de certification ne doit
pas dépasser 5.
La confiance au propriétaire est quelque chose qui m'est propre et qui n'est
communiqué nul part.
\textbf{Attention:} Une clef marginalement valide n'est pas valide, c'est une
clef qui apparaît en bordure des clefs valides, mais avec un nombre
insuffisant de certification (mais non nul).
\end{frame}
\begin{frame}{Modèle de confiance (au sens validité)}{Signing party}
Classiquement, deux occasions de certifications:
\begin{itemize}
\item rencontres individuelles,
\item signing party (\textbf{now}).
\end{itemize}
\end{frame}
\begin{frame}{Modèle de confiance (au sens validité)}{TOFU}
\textit{\textbf{Trust On First Use}}
Une clef est considérée comme valide si:
\begin{itemize}
\item l'identité A n'a jamais été utilisée,
\item l'identité A n'a toujours été utilisée qu'avec cette clef,
\item il n'y a qu'une seule clef associée à l'identitée A.
\end{itemize}
Modèle de confiance très faible, toutefois, c'est mieux que rien.
\end{frame}
\begin{frame}{Usages}{Exemples}
Utilisation très courante dans:
\begin{itemize}
\item la signature des paquets de distributions,
\item la signature des commits,
\item la sécurisation des mails, signatures et chiffrement.
\end{itemize}
\end{frame}
\begin{frame}{Conclusion}
Un très bel outil, mais:
\begin{itemize}
\item protègez vos parties privées,
\item ne protège que le contenu des communications, ne masque pas leur
existences,
\item ne vous sera d'aucune utilitée pour protéger des informations que vous
divulguez par ailleurs.
\end{itemize}
\textbf{OpenPGP, GnuPG, gpg, ne protégera jamais un utilisateur de sa propre
stupidité.}
\end{frame}
\end{document}
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment