2024-11-06 15:32:55 +00:00
\input { préambule}
\begin { document}
\setbeamertemplate { headline} { }
\setbeamertemplate { navigation symbols} { }
\begin { frame}
\maketitle
\end { frame}
\setbeamertemplate { navigation symbols} {
\usebeamerfont { footline}
\usebeamercolor [fg] { footline}
\hspace { 1em}
\insertframenumber /\inserttotalframenumber
}
\setbeamertemplate { headline}
{ %
\leavevmode %
\begin { beamercolorbox} [wd=.4975\paperwidth ,ht=2.5ex,dp=1.125ex]{ section in head/foot} %
\hbox to .5\paperwidth { \hfil \insertsectionhead \hfil }
\end { beamercolorbox} %
\hspace { 0.005\paperwidth } %
\begin { beamercolorbox} [wd=.4975\paperwidth ,ht=2.5ex,dp=1.125ex]{ subsection in head/foot} %
\hbox to .5\paperwidth { \hfil \insertsubsectionhead \hfil }
\end { beamercolorbox} %
}
2024-11-15 23:11:18 +00:00
\section { Introduction}
\section { Présentation}
2024-11-06 15:32:55 +00:00
\begin { frame}
\begin { columns}
\column { 0.5\linewidth }
\begin { center}
2024-11-14 13:47:56 +00:00
Vincent Giraud
\vspace { 2cm}
2024-11-06 15:32:55 +00:00
Chercheur en sécurité informatique
2024-11-14 13:47:56 +00:00
\vspace { 1cm}
2024-11-06 15:32:55 +00:00
Membre de Deuxfleurs
\end { center}
\column { 0.5\linewidth }
\begin { center}
2024-11-14 13:47:56 +00:00
\includegraphics [width=3cm] { ressources/photo.jpg}
\vspace { 1cm}
\includegraphics [width=2.5cm] { ressources/deuxfleurs-logo.png} \hspace { 0.5cm} \includegraphics [width=2.5cm] { ressources/chatons_ logo.png}
2024-11-06 15:32:55 +00:00
\end { center}
\end { columns}
\end { frame}
2024-11-15 23:11:18 +00:00
\section { Contexte et environnements sécurisés}
\subsection { Premières occurences répandues}
2024-11-14 13:47:56 +00:00
\begin { frame}
\begin { center}
\includegraphics [width=10cm] { ressources/ordinateur.jpg}
\end { center}
\end { frame}
2024-11-06 15:32:55 +00:00
\begin { frame}
2024-11-12 16:24:29 +00:00
\begin { center}
\includegraphics [width=13.0cm] { ressources/guichets.jpg}
\end { center}
\end { frame}
\begin { frame}
\begin { center}
\underline { Hardware Security Modules (HSM)}
\vspace { 1cm}
\includegraphics [width=5.5cm] { ressources/payshield.png}
\hspace { 1cm}
2024-11-15 23:11:18 +00:00
\onslide <2->{ \includegraphics [width=3.0cm] { ressources/luna.png} }
2024-11-12 16:24:29 +00:00
\end { center}
\note { Introduits à la fin des années 1970, en même temps que DES, pour le secteur militaire. Applications commerciales à partir des années 90 pour le secteur bancaire et le web. Pas présents dans les COTS.}
\end { frame}
\begin { frame}
\begin { center}
\underline { Secure Elements (SE)}
\vspace { 1cm}
\includegraphics [width=4cm] { ressources/carte_ à_ puce.png}
2024-11-14 13:47:56 +00:00
\onslide <2->{ \includegraphics [width=3.0cm] { ressources/SIM.png} }
2024-11-12 16:24:29 +00:00
\invisible { \includegraphics [width=3.5cm] { ressources/SE.png} }
\end { center}
\note { Apparition historique avec les cartes à puce dans les années 90. Puis SIM. Puis intégration additionnelle dans les ordiphones, proche du NFC. Secure Enclave chez iPhone: pas sûr que ce soit vraiment un SE, c'est débattable. Présent dans systèmes sur étagère mais pas utilisable par tout le monde. Android Ready SE Alliance.}
\end { frame}
2024-11-15 23:11:18 +00:00
\subsection { Développement dans les ordinateurs grand public}
2024-11-12 16:24:29 +00:00
\begin { frame}
\begin { center}
\includegraphics [width=8cm] { ressources/flotte_ ordis.jpg}
\end { center}
\end { frame}
\begin { frame}
\begin { center}
\underline { Trusted Platform Modules (TPM)}
\vspace { 1cm}
\includegraphics [width=4cm] { ressources/TPM.png}
\end { center}
\note { Réellement utilisés à partir des années 2000 même si prémisses pendant les années 90. Quasiment que dans les PC. Essentiellement pensés pour la gestion de flotte en entreprise à l'origine. Devenus bien plus populaires ces dernières années, avec ses fonctions d'attestation et son caractère obligatoire sur Windows 11. Pas présent dans les téléphones.}
2024-11-06 15:32:55 +00:00
\end { frame}
2024-11-15 23:11:18 +00:00
\subsection { Développement dans les systèmes mobiles}
2024-11-06 15:32:55 +00:00
\begin { frame}
\begin { center}
\includegraphics [width=11.5cm] { ressources/taux_ équipement.png}
\vspace { 0.5cm}
CRÉDOC, \textit { Baromètre du numérique} , 2023.
\end { center}
\end { frame}
\begin { frame}
\begin { columns}
\column { 0.5\linewidth }
\begin { itemize}
\item <1-> Communications sécurisées
\item <2-> Stockage sécurisé
\item <3-> Biométrie
\item <4-> Authentification
\item <6-> Transport
\item <7-> Paiement
\end { itemize}
\column { 0.5\linewidth }
\begin { minipage} [c][\textheight ][c]{ \linewidth }
\only <1|handout:0>{
\begin { center}
\includegraphics [width=2.5cm] { ressources/logo_ signal.png}
\vspace { 0.4cm}
\includegraphics [width=2.5cm] { ressources/logo_ whatsapp.png}
\vspace { 0.4cm}
\includegraphics [width=2.5cm] { ressources/logo_ tchap.png}
\end { center}
}
\only <4|handout:0>{
\begin { center}
\includegraphics [width=3.0cm] { ressources/vitale.png}
\vspace { 0.5cm}
\includegraphics [width=3.0cm] { ressources/france_ identité.png}
\end { center}
}
\only <5|handout:0>{
\begin { center}
\includegraphics [width=3.5cm] { ressources/WebAuthn.png}
\vspace { 1cm}
\includegraphics [width=2.5cm] { ressources/KeepassDX.png}
\end { center}
}
\only <6|handout:0>{
\begin { center}
\includegraphics [width=3.0cm] { ressources/RATP.png}
\end { center}
}
\only <7>{
\begin { center}
\includegraphics [width=3.0cm] { ressources/apple_ pay.png}
\vspace { 1cm}
\includegraphics [width=3.0cm] { ressources/google_ pay.png}
\vspace { 1cm}
\includegraphics [width=3.0cm] { ressources/samsung_ pay.png}
\end { center}
}
\end { minipage}
\end { columns}
\note { Authentification: étatique ou non. Il y a le double facteur d'authentification aussi.\\ Webauthn: prononcer Webauthen en anglais, ouèbe-offène en français.\\ Introduire la suite: pour faire tout ça on a besoin de confiance -> racine de confiance -> point d'ancrage quelconque avec lequel on est serein. SPoC: 2018. CPoC: 2019. MPoC:2022.}
\end { frame}
\begin { frame}
\begin { center}
2024-11-12 16:24:29 +00:00
\underline { Trusted Execution Environments (TEE)}
2024-11-06 15:32:55 +00:00
2024-11-12 16:24:29 +00:00
\vspace { 1.0cm}
\makebox [\textwidth] [c] { \includegraphics [width=15cm] { ressources/TEE.png} }
\vspace { 0.5cm}
2024-11-06 15:32:55 +00:00
2024-11-12 16:24:29 +00:00
GlobalPlatform, Inc. \textit { TEE Protection Profile} , 2020.
2024-11-06 15:32:55 +00:00
\end { center}
2024-11-12 16:24:29 +00:00
\note { Introduit en 2004 et essentiellement perpétré par Arm. Tentatives de portage vers x86 par la suite pas toujours fructueuses. Pas de puce supplémentaire. Présent dans les systèmes sur étagères mais pas utilisable par tout le monde.}
2024-11-06 15:32:55 +00:00
\end { frame}
\begin { frame}
\begin { center}
\underline { Secure Elements (SE)}
\vspace { 1cm}
\includegraphics [width=4cm] { ressources/carte_ à_ puce.png}
\includegraphics [width=3.0cm] { ressources/SIM.png}
2024-11-12 16:24:29 +00:00
\onslide <2->{ \includegraphics [width=3.5cm] { ressources/SE.png} }
2024-11-06 15:32:55 +00:00
\end { center}
\note { Apparition historique avec les cartes à puce dans les années 90. Puis SIM. Puis intégration additionnelle dans les ordiphones, proche du NFC. Secure Enclave chez iPhone: pas sûr que ce soit vraiment un SE, c'est débattable. Présent dans systèmes sur étagère mais pas utilisable par tout le monde. Android Ready SE Alliance.}
\end { frame}
2024-11-15 23:11:18 +00:00
\section { Récapitulatif}
\subsection { Général}
2024-11-08 16:20:01 +00:00
\begin { frame}
\begin { center}
\begin { tikzpicture}
\pgfmathsetmacro { \hauteur } { 7}
\pgfmathsetmacro { \largeur } { 7}
\pgfmathsetmacro { \marge } { 0.25}
\pgfmathsetmacro { \largeurPetit } { (\largeur - 4*\marge )/3}
\pgfmathsetmacro { \hauteurPetit } { (\hauteur - 3*\marge )/2}
\draw [fill=Gray!20] (0,0) rectangle ++(\largeur , \hauteur );
\draw [fill=white] (1*\marge + 0*\largeurPetit , \marge ) rectangle ++(\largeurPetit , \hauteurPetit ) node[pos=0.5] { SE} ;
\draw [fill=white] (2*\marge + 1*\largeurPetit , \marge ) rectangle ++(\largeurPetit , \hauteurPetit ) node[pos=0.5] { HSM} ;
\draw [fill=white] (3*\marge + 2*\largeurPetit , \marge ) rectangle ++(\largeurPetit , \hauteurPetit ) node[pos=0.5] { TPM} ;
2024-11-14 13:47:56 +00:00
\draw [fill=white] (1*\marge , 2*\marge + \hauteurPetit ) rectangle ++(\largeur - 2*\marge , \hauteurPetit ) node[pos=0.27, align=center] { Environnement\\ riche} node[pos=0.70] { TEE} ;
2024-11-08 16:20:01 +00:00
\draw [dotted] (\marge , 2*\hauteurPetit +2*\marge ) -- (\largeur - \marge , 2*\marge + \hauteurPetit );
\end { tikzpicture}
\end { center}
\end { frame}
2024-11-15 23:11:18 +00:00
\subsection { Ordinateurs}
2024-11-08 16:20:01 +00:00
\begin { frame}
\begin { center}
\begin { tikzpicture}
\pgfmathsetmacro { \hauteurOrdi } { 8}
\pgfmathsetmacro { \largeurOrdi } { (1111/915)*\hauteurOrdi }
\pgfmathsetmacro { \bordureOrdi } { (2/10)*\largeurOrdi } % 10/101
2024-11-14 13:47:56 +00:00
\pgfmathsetmacro { \marge } { 0.20}
2024-11-08 16:20:01 +00:00
\pgfmathsetmacro { \hauteur } { 4.0}
\pgfmathsetmacro { \largeur } { \largeurOrdi - 2*\marge - 2*\bordureOrdi }
\pgfmathsetmacro { \largeurPetit } { (\largeur - 3*\marge )/2}
\pgfmathsetmacro { \hauteurPetit } { (\hauteur - 3*\marge )/2}
\pgfmathsetmacro { \xshiftOrdi } { 0.5*\largeurOrdi - \bordureOrdi - \marge }
\pgfmathsetmacro { \yshiftOrdi } { 0.70*\hauteurOrdi - \bordureOrdi - \marge }
\node [xshift= \xshiftOrdi cm, yshift= \yshiftOrdi cm] at (0,0) { \includegraphics [height= \hauteurOrdi cm] { ressources/ordinateur.png} } ;
\draw [fill=Gray!20, fill opacity=0.90] (0,0) rectangle ++(\largeur , \hauteur );
\draw [fill=white, fill opacity=0.90] (1*\marge + 0*\largeurPetit , \marge ) rectangle ++(\largeurPetit , \hauteurPetit - 0.5) node[pos=0.5] { HSM} ;
\draw [fill=white, fill opacity=0.90] (2*\marge + 1*\largeurPetit , \marge ) rectangle ++(\largeurPetit , \hauteurPetit - 0.5) node[pos=0.5] { TPM} ;
2024-11-14 13:47:56 +00:00
\draw [fill=white, fill opacity=0.90] (1*\marge , 2*\marge + \hauteurPetit - 0.5) rectangle ++(\largeur - 2*\marge , \hauteurPetit + 0.5) node[pos=0.25, align=center, xshift=0.25cm] { Environnement\\ riche} node[pos=0.70] { TEE} ;
2024-11-08 16:20:01 +00:00
\draw [dotted] (\marge , 2*\hauteurPetit +2*\marge ) -- (\largeur - \marge , 2*\marge + \hauteurPetit - 0.5);
\end { tikzpicture}
\end { center}
\end { frame}
\begin { frame}
\begin { center}
\begin { tikzpicture}
\pgfmathsetmacro { \hauteurOrdi } { 8}
\pgfmathsetmacro { \largeurOrdi } { (1111/915)*\hauteurOrdi }
\pgfmathsetmacro { \bordureOrdi } { (2/10)*\largeurOrdi } % 10/101
2024-11-14 13:47:56 +00:00
\pgfmathsetmacro { \marge } { 0.20}
2024-11-08 16:20:01 +00:00
\pgfmathsetmacro { \hauteur } { 4.0}
\pgfmathsetmacro { \largeur } { \largeurOrdi - 2*\marge - 2*\bordureOrdi }
\pgfmathsetmacro { \largeurPetit } { (\largeur - 3*\marge )/2}
\pgfmathsetmacro { \hauteurPetit } { (\hauteur - 3*\marge )/2}
\pgfmathsetmacro { \xshiftOrdi } { 0.5*\largeurOrdi - \bordureOrdi - \marge }
\pgfmathsetmacro { \yshiftOrdi } { 0.70*\hauteurOrdi - \bordureOrdi - \marge }
\node [xshift= \xshiftOrdi cm, yshift= \yshiftOrdi cm] at (0,0) { \includegraphics [height= \hauteurOrdi cm] { ressources/ordinateur.png} } ;
\draw [fill=Gray!20, fill opacity=0.90] (0,0) rectangle ++(\largeur , \hauteur );
\draw [fill=white, fill opacity=0.90] (1*\marge + 0*\largeurPetit , \marge ) rectangle ++(\largeur - 2*\marge , \hauteurPetit - 0.5) node[pos=0.5] { TPM} ;
2024-11-14 13:47:56 +00:00
\draw [fill=white, fill opacity=0.90] (1*\marge , 2*\marge + \hauteurPetit - 0.5) rectangle ++(\largeur - 2*\marge , \hauteurPetit + 0.5) node[pos=0.25, align=center, xshift=0.25cm] { Environnement\\ riche} node[pos=0.70] { TEE} ;
2024-11-08 16:20:01 +00:00
\draw [dotted] (\marge , 2*\hauteurPetit +2*\marge ) -- (\largeur - \marge , 2*\marge + \hauteurPetit - 0.5);
\end { tikzpicture}
\end { center}
\end { frame}
2024-11-15 23:11:18 +00:00
\subsection { Téléphones}
2024-11-14 13:47:56 +00:00
\begin { frame}
\begin { center}
\begin { tikzpicture}
\pgfmathsetmacro { \hauteurTel } { 9}
\pgfmathsetmacro { \largeurTel } { (323/620)*\hauteurTel }
\pgfmathsetmacro { \bordureTel } { (23/646)*\largeurTel }
\pgfmathsetmacro { \marge } { 0.20}
\pgfmathsetmacro { \hauteur } { 8}
\pgfmathsetmacro { \largeur } { \largeurTel - 2*\marge - 2*\bordureTel }
\pgfmathsetmacro { \largeurPetit } { (\largeur - 4*\marge )/3}
\pgfmathsetmacro { \hauteurPetit } { (\hauteur - 3*\marge )/2}
\pgfmathsetmacro { \xshiftTel } { 0.5*\largeurTel - \bordureTel - \marge }
\pgfmathsetmacro { \yshiftTel } { 0.5*\hauteurTel - \bordureTel - \marge }
\node [xshift= \xshiftTel cm, yshift= \yshiftTel cm] at (0,0) { \includegraphics [height= \hauteurTel cm] { ressources/téléphone.png} } ;
\draw [fill=Gray!20] (0,0) rectangle ++(\largeur , \hauteur );
\draw [fill=white] (1*\marge + 0*\largeurPetit , \marge ) rectangle ++(\largeur - 2*\marge , \hauteurPetit - 1) node[pos=0.5] { SE} ;
\draw [fill=white] (1*\marge , 2*\marge + \hauteurPetit - 1) rectangle ++(\largeur - 2*\marge , \hauteurPetit + 1) node[pos=0.15, xshift=0.85cm, align=center] { Environnement\\ riche} node[pos=0.70] { TEE} ;
\draw [dotted] (\marge , 2*\hauteurPetit +2*\marge ) -- (\largeur - \marge , 2*\marge + \hauteurPetit - 1);
\end { tikzpicture}
\end { center}
\end { frame}
2024-11-15 23:11:18 +00:00
\section { Problématique industrielle}
\subsection { Constat}
2024-11-06 15:32:55 +00:00
\begin { frame}
\begin { center}
\begin { tikzpicture}
\def \largeurTel { 4.70}
\def \limiteGauche { { \largeurTel / (-2.37)} }
\def \limiteDroite { { \largeurTel / (2.37)} }
\def \limiteHaut { { \largeurTel / (1.2)} }
\def \limiteBas { \largeurTel / (-1.15)}
\def \milieuX { 0}
\def \milieuY { -2}
\def \marge { 0.15}
\pgfmathsetmacro { \largeurLogo } { 1.5}
\node { \includegraphics [width=\largeurTel cm] { ressources/téléphone.png} } ;
\draw [fill=red!25] (\limiteGauche ,\marge + \milieuY ) rectangle (\limiteDroite , \limiteHaut );
\draw [fill=lime!25] (\limiteGauche ,{ \limiteBas } ) rectangle (\milieuX - \marge , \milieuY - \marge ) node[pos=0.5] { TEE} ;
\draw [fill=green!25] (\milieuX + \marge , { \limiteBas } ) rectangle (\limiteDroite , \milieuY - \marge ) node[pos=0.5] { SE} ;
\path (\limiteGauche , \limiteHaut ) rectangle (\limiteDroite , \limiteHaut ) node [pos=0.5, below, align=center, execute at begin node=\setlength { \baselineskip } { 0.30cm} ] { \scriptsize Environnement d'exécution\\ \scriptsize riche} ;
\newcommand { \bonhomme } [5]
{
\pgfmathsetmacro { \largPers } { ####3 * 1.10}
\pgfmathsetmacro { \hautBuste } { ####3 * 1.50}
\pgfmathsetmacro { \centreX } { ####1 + 0.5*\largPers }
\pgfmathsetmacro { \centreY } { ####2}
\pgfmathsetmacro { \rayonTete } { \largPers * 0.80 / 2}
\fill [####4] ({ \centreX } ,{ \centreY } ) -- ++(-\largPers ,0) .. controls +(0,\hautBuste ) and +(0,\hautBuste ) .. cycle;
\fill [####4] ({ \centreX - 0.5*\largPers } ,{ \centreY + \hautBuste } ) circle (\rayonTete );
\fill [White] ({ \centreX - 0.325*\largPers } , { \centreY + 1.05*\hautBuste } ) circle (0.20*\rayonTete );
\fill [White] ({ \centreX - 0.675*\largPers } , { \centreY + 1.05*\hautBuste } ) circle (0.20*\rayonTete );
\draw [draw=####5, line width=0.75 mm] plot[domain=(3/8)*pi:(5/8)*pi, samples=100, smooth] ({ cos(\x r)*\rayonTete + \centreX - 0.5*\largPers } , { sin(\x r)*####3 + \centreY + 0.8*\rayonTete } );
}
\bonhomme { -1.25} { 1.70} { 0.75} { Gray!10} { none}
\bonhomme { -0.60} { 0.5} { 1.0} { Gray!35} { none}
\bonhomme { -1.10} { -1.1} { 1.10} { Gray!20} { none}
\bonhomme { 1.20} { 2.00} { 0.70} { Gray!30} { none}
\bonhomme { 0.5} { 1} { 0.90} { Gray!15} { none}
\bonhomme { 1.25} { -0.9} { 1.20} { Gray!20} { none}
\bonhomme { 0} { -1.6} { 1.6} { Black} { White}
\pgfmathsetmacro { \bonhommeX } { 4.5}
\pgfmathsetmacro { \centreXlogos } { 8.5}
\pgfmathsetmacro { \nbLogos } { 6}
\pgfmathsetmacro { \hautLogos } { 3}
\pgfmathsetmacro { \ecartVert } { 2*\hautLogos / (\nbLogos - 1)}
\onslide <2->{ \bonhomme { \bonhommeX } { -(0.44 + 1.5)/2} { 1.00} { Black} { none} }
\onslide <2->{ \node at (\centreXlogos , 2.5*\ecartVert ) { \includegraphics [width=1.5cm] { ressources/apple.png} } ;}
\onslide <3->{ \node at (\centreXlogos , 1.5*\ecartVert ) { \includegraphics [width=1.5cm] { ressources/google.png} } ;}
\onslide <4->{ \node at (\centreXlogos , 0.5*\ecartVert ) { \includegraphics [width=1.5cm] { ressources/samsung.png} } ;}
\onslide <5->{ \node at (\centreXlogos , -0.5*\ecartVert ) { \includegraphics [width=1.5cm] { ressources/huawei.png} } ;}
\onslide <6->{ \node at (\centreXlogos , -1.5*\ecartVert ) { \includegraphics [width=1.5cm] { ressources/sony.png} } ;}
\onslide <7->{ \node at (\centreXlogos , -2.5*\ecartVert ) { \Huge \textbf { ...} } ;}
\pgfmathsetmacro { \departX } { \bonhommeX + 1.5*\rayonTete }
\pgfmathsetmacro { \arriveeX } { \centreXlogos - 1}
\onslide <2->{ \draw [arrows={ Triangle[angle=90:2mm] - Triangle[angle=90:2mm]} ] (\departX , 2.5*0.3) -| ({ \departX + 1*(\arriveeX - \departX )/4)} ,2.5*\ecartVert ) |- (\arriveeX , 2.5*\ecartVert );}
\onslide <3->{ \draw [arrows={ Triangle[angle=90:2mm] - Triangle[angle=90:2mm]} ] (\departX , 1.5*0.3) -| ({ \departX + 2*(\arriveeX - \departX )/4)} ,1.5*\ecartVert ) |- (\arriveeX , 1.5*\ecartVert );}
\onslide <4->{ \draw [arrows={ Triangle[angle=90:2mm] - Triangle[angle=90:2mm]} ] (\departX , 0.5*0.3) -| ({ \departX + 3*(\arriveeX - \departX )/4)} ,0.5*\ecartVert ) |- (\arriveeX , 0.5*\ecartVert );}
\onslide <5->{ \draw [arrows={ Triangle[angle=90:2mm] - Triangle[angle=90:2mm]} ] (\departX , -0.5*0.3) -| ({ \departX + 3*(\arriveeX - \departX )/4)} ,-0.5*\ecartVert ) |- (\arriveeX , -0.5*\ecartVert );}
\onslide <6->{ \draw [arrows={ Triangle[angle=90:2mm] - Triangle[angle=90:2mm]} ] (\departX , -1.5*0.3) -| ({ \departX + 2*(\arriveeX - \departX )/4)} ,-1.5*\ecartVert ) |- (\arriveeX , -1.5*\ecartVert );}
\onslide <7->{ \draw [arrows={ Triangle[angle=90:2mm] - Triangle[angle=90:2mm]} ] (\departX , -2.5*0.3) -| ({ \departX + 1*(\arriveeX - \departX )/4)} ,-2.5*\ecartVert ) |- (\arriveeX , -2.5*\ecartVert );}
\end { tikzpicture}
\end { center}
\note { Les acteurs tiers n'ont accès à aucun environnement sécurisé sur les systèmes embarqués sur étagère. Problème de souveraineté industrielle. Pourtant la France n'est pas si mal placée dans ce domaine-là: Ingenico majoritaire sur les paiements, Thalès et STMicroelectronics pour les solutions sécurisées matérielles et logicielles. 65\% de toutes les transactions faites par les citoyens le sont par le schéma de paiement national CB. Mais les systèmes qui contrôlent ces opérations sont de plus en plus inaccessibles par notre industrie. De manière générale, les paiements sur systèmes embarqués sur étagère risquent de n'être gérés que par un club très fermé. Face à ça, les acteurs tiers ont la tentation de se reposer sur l'isolation garantie par les OS et sur des techniques d'obfuscation mathématiques. Investiguer autour de la validité de telles manœuvre est alors nécessaire compte tenu du contexte.}
\end { frame}
2024-11-15 23:11:18 +00:00
\subsection { Propositions}
2024-11-06 15:32:55 +00:00
\begin { frame}
\begin { center}
\begin { tikzpicture}
\def \largeurTel { 4.5}
\def \limiteGauche { { \largeurTel / (-2.37)} }
\def \limiteDroite { { \largeurTel / (2.37)} }
\def \limiteHaut { { \largeurTel / (1.2)} }
\def \limiteBas { \largeurTel / (-1.15)}
\def \milieuX { 0}
\def \milieuY { 0}
\def \marge { 0.15}
\pgfmathsetmacro { \largeurLogo } { 1.5}
\node { \includegraphics [width=\largeurTel cm] { ressources/téléphone.png} } ;
\draw [fill=red!25] (\limiteGauche ,\marge + \milieuY ) rectangle (\limiteDroite , \limiteHaut ) node[pos=0.5,align=center] { \Large Environnement\\ \Large d'exécution\\ \Large riche} ;
\draw [fill=lime!25] (\limiteGauche ,{ \limiteBas } ) rectangle (\milieuX - \marge , \milieuY - \marge ) node[pos=0.5] { \huge TEE} ;
\draw [fill=green!25] (\milieuX + \marge , { \limiteBas } ) rectangle (\limiteDroite , \milieuY - \marge ) node[pos=0.5] { \huge SE} ;
\newcommand { \bonhomme } [5]
{
\pgfmathsetmacro { \largPers } { ####3 * 1.10}
\pgfmathsetmacro { \hautBuste } { ####3 * 1.50}
\pgfmathsetmacro { \centreX } { ####1 + 0.5*\largPers }
\pgfmathsetmacro { \centreY } { ####2}
\pgfmathsetmacro { \rayonTete } { \largPers * 0.80 / 2}
\fill [####4] ({ \centreX } ,{ \centreY } ) -- ++(-\largPers ,0) .. controls +(0,\hautBuste ) and +(0,\hautBuste ) .. cycle;
\fill [####4] ({ \centreX - 0.5*\largPers } ,{ \centreY + \hautBuste } ) circle (\rayonTete );
\fill [####5] ({ \centreX - 0.325*\largPers } , { \centreY + 1.05*\hautBuste } ) circle (0.20*\rayonTete );
\fill [####5] ({ \centreX - 0.675*\largPers } , { \centreY + 1.05*\hautBuste } ) circle (0.20*\rayonTete );
\draw [draw=####5, line width=0.75 mm] plot[domain=(3/8)*pi:(5/8)*pi, samples=100, smooth] ({ cos(\x r)*\rayonTete + \centreX - 0.5*\largPers } , { sin(\x r)*####3 + \centreY + 0.8*\rayonTete } );
}
\bonhomme { -4} { -1.5} { 1.6} { Black} { Black}
\node [align=center, anchor=south] at (-4,1.7) { Utilisateur et\\ propriétaire de\\ la plateforme} ;
\end { tikzpicture}
\end { center}
\end { frame}
\begin { frame}
\begin { center}
\vspace { -0.50cm}
\hspace * { -0.55cm}
\begin { tikzpicture}
\def \largeurTel { 2.35}
\pgfmathsetmacro { \limiteGauche } { \largeurTel / (-2.25)}
\pgfmathsetmacro { \limiteDroite } { \largeurTel / (2.25)}
\pgfmathsetmacro { \limiteHaut } { \largeurTel / (1.2)}
\def \limiteBas { \largeurTel / (-1.15)}
\def \milieuX { 0}
\def \milieuY { 0}
\def \marge { 0.025}
\pgfmathsetmacro { \largeurLogo } { 1.5}
\node { \includegraphics [width=\largeurTel cm] { ressources/téléphone.png} } ;
\draw [fill=red!25] (\limiteGauche ,\marge + \milieuY ) rectangle (\limiteDroite , \limiteHaut ) node[pos=0.5,align=center] { \scriptsize Environnement\\ \scriptsize d'exécution\\ \scriptsize riche} ;
\draw [fill=lime!25] (\limiteGauche ,{ \limiteBas } ) rectangle (\milieuX - \marge , \milieuY - \marge ) node[pos=0.5] { \small TEE} ;
\draw [fill=green!25] (\milieuX + \marge , { \limiteBas } ) rectangle (\limiteDroite , \milieuY - \marge ) node[pos=0.5] { \small SE} ;
\newcommand { \bonhomme } [5]
{
\pgfmathsetmacro { \largPers } { ####3 * 1.10}
\pgfmathsetmacro { \hautBuste } { ####3 * 1.50}
\pgfmathsetmacro { \centreX } { ####1 + 0.5*\largPers }
\pgfmathsetmacro { \centreY } { ####2}
\pgfmathsetmacro { \rayonTete } { \largPers * 0.80 / 2}
\fill [####4] ({ \centreX } ,{ \centreY } ) -- ++(-\largPers ,0) .. controls +(0,\hautBuste ) and +(0,\hautBuste ) .. cycle;
\fill [####4] ({ \centreX - 0.5*\largPers } ,{ \centreY + \hautBuste } ) circle (\rayonTete );
\fill [####5] ({ \centreX - 0.325*\largPers } , { \centreY + 1.05*\hautBuste } ) circle (0.20*\rayonTete );
\fill [####5] ({ \centreX - 0.675*\largPers } , { \centreY + 1.05*\hautBuste } ) circle (0.20*\rayonTete );
\draw [draw=####5, line width=0.75 mm] plot[domain=(3/8)*pi:(5/8)*pi, samples=100, smooth] ({ cos(\x r)*\rayonTete + \centreX - 0.5*\largPers } , { sin(\x r)*####3 + \centreY + 0.8*\rayonTete } );
2024-11-08 16:20:01 +00:00
}
2024-11-06 15:32:55 +00:00
\bonhomme { -2.40} { -1.5} { 1} { Black} { Black}
\node [align=center, anchor=south] at (-2.40,0.4) { \footnotesize Utilisateur et\\ \footnotesize propriétaire de\\ \footnotesize la plateforme} ;
\onslide <4->{ \node [draw, minimum width=1.75*\largeurTel cm, minimum height=0.75cm] (a) at (2.75* \largeurTel ,0.75* \largeurTel ) { \small Entreprise A} ;}
\onslide <4->{ \node [draw, minimum width=1.75*\largeurTel cm, minimum height=0.75cm] (b) at (3.10* \largeurTel ,0.35* \largeurTel ) { \small Institution publique B} ;}
\onslide <4->{ \node [align=center] at (4.25* \largeurTel ,0.85* \largeurTel ) { Développeurs\\ d'exécutables} ;}
\onslide <2->{ \node [draw, minimum width=1.75*\largeurTel cm, minimum height=0.75cm] (c) at (3.30* \largeurTel ,-1.40* \largeurTel ) { \small Entreprise C} ;}
\onslide <2->{ \node [draw, minimum width=1.75*\largeurTel cm, minimum height=0.75cm] (d) at (2.20* \largeurTel ,-1.80* \largeurTel ) { \small Association D} ;}
\onslide <2->{ \node [draw, minimum width=1.75*\largeurTel cm, minimum height=0.75cm] (e) at (1.20* \largeurTel ,-2.20* \largeurTel ) { \small Individu E} ;}
\onslide <2->{ \node [align=center] at (3.65* \largeurTel ,-1.90* \largeurTel ) { Délégués\\ de sécurité} ;}
\onslide <5->{ \draw [arrows={ - Triangle[angle=90:3mm]} , line width=0.1cm, blue] (a.west) -| node[pos=0.40, above, align=center, yshift=0.05 cm] { \textbf { Installe} \\ \textbf { applications} \\ \textbf { et contenus} } ++(-1.75,-0.25) |- (0.5*\largeurTel , 0.35*\limiteHaut );}
\onslide <5->{ \draw [arrows={ - Triangle[angle=90:3mm]} , line width=0.1cm, blue] (b.west) -| ++(-2.0,-0.25) |- (0.5*\largeurTel , 0.10*\limiteHaut );}
\onslide <3->{ \draw [arrows={ - Triangle[angle=90:3mm]} , line width=0.1cm, ForestGreen] (c.west) -| ({ - \marge + 0.5*\limiteGauche + 0.35} , { \limiteBas } );}
\onslide <3->{ \draw [arrows={ - Triangle[angle=90:3mm]} , line width=0.1cm, ForestGreen] (d.west) -| ({ - \marge + 0.5*\limiteGauche + 0.0} , { \limiteBas } );}
\onslide <3->{ \draw [arrows={ - Triangle[angle=90:3mm]} , line width=0.1cm, ForestGreen] (e.west) -| node[pos=0.75, left] { \textbf { Supervise} } ({ - \marge + 0.5*\limiteGauche - 0.35} , { \limiteBas } );}
\onslide <3->{ \draw [arrows={ - Triangle[angle=90:3mm]} , line width=0.1cm, ForestGreen] ([yshift=-0.15cm] c.north west) -| ({ \marge + 0.5*\limiteDroite + 0.35} , { \limiteBas } );}
\onslide <3->{ \draw [arrows={ - Triangle[angle=90:3mm]} , line width=0.1cm, ForestGreen] ([yshift=-0.15cm] d.north west) -| ({ \marge + 0.5*\limiteDroite + 0.0} , { \limiteBas } );}
\onslide <3->{ \draw [arrows={ - Triangle[angle=90:3mm]} , line width=0.1cm, ForestGreen] ([yshift=-0.15cm] e.north west) -| ({ \marge + 0.5*\limiteDroite - 0.35} , { \limiteBas } );}
\onslide <6->{ \draw [arrows={ Triangle[angle=90:3mm] - Triangle[angle=90:3mm]} , line width=0.1cm, red] (b.south) .. controls +(0.75,-1.25) and +(0,0) .. node[pos=0.35, right, align=center] { \textbf { Fait} \\ \textbf { confiance} \\ \textbf { ou non} } (c.north);}
\onslide <6->{ \draw [arrows={ Triangle[angle=90:3mm] - Triangle[angle=90:3mm]} , line width=0.1cm, red] ([xshift=-0.5cm] b.south) .. controls +(-1.0,-1.5) and +(0,0) .. (d.north);}
\onslide <6->{ \draw [arrows={ Triangle[angle=90:3mm] - Triangle[angle=90:3mm]} , line width=0.1cm, red] ([xshift=0.50cm] a.south west) .. controls +(-0.75,-1) and +(0,0) .. ([xshift=-0.5cm] e.north);}
\end { tikzpicture}
\end { center}
\end { frame}
\begin { frame}
\begin { center}
\vspace { -0.35cm}
\hspace * { -0.40cm}
\begin { tikzpicture}
\pgfmathsetmacro { \Ya } { 3}
\pgfmathsetmacro { \Yb } { 0}
\pgfmathsetmacro { \Yc } { -3}
\pgfmathsetmacro { \Xa } { 2.0}
\pgfmathsetmacro { \Xb } { 3.25}
\pgfmathsetmacro { \Xc } { 2.0}
\pgfmathsetmacro { \extLigneG } { -2.0*\Xb }
\pgfmathsetmacro { \extLigneD } { 1.4*\Xb }
\pgfmathsetmacro { \labelXgauche } { -1.75*\Xb }
\pgfmathsetmacro { \labelXdroite } { 1.90*\Xb }
\pgfmathsetmacro { \espaceFleche } { 0.1}
\node [draw, minimum width= 2 cm, minimum height= 1 cm] (a1) at (- \Xa , \Ya ) { \includegraphics [width=1.5cm] { ressources/Thales.png} } ;
\node [draw, minimum width= 2 cm, minimum height= 1 cm] (a2) at (+ \Xa , \Ya ) { \includegraphics [width=1.5cm] { ressources/Qualcomm.png} } ;
\node [draw, minimum width= 2 cm, minimum height= 1 cm] (b1) at (- \Xb , \Yb ) { \small Entreprise C} ;
\node [draw, minimum width= 2 cm, minimum height= 1 cm] (b2) at (0, \Yb ) { \small Association D} ;
\node [draw, minimum width= 2 cm, minimum height= 1 cm] (b3) at (+ \Xb , \Yb ) { \small Individu E} ;
\node [draw, minimum width= 2 cm, minimum height= 1 cm] (c1) at (- \Xc , \Yc ) { \small Entreprise A} ;
\node [draw, minimum width= 2 cm, minimum height= 1 cm, align=center] (c2) at (+ \Xc , \Yc ) { \small Institution\\ \small publique B} ;
\draw [dotted, line width=0.2cm, Gray!20] (\extLigneG , 0.5*\Ya ) -- (\extLigneD , 0.5*\Ya );
\draw [dotted, line width=0.2cm, Gray!20] (\extLigneG , 0.5*\Yc ) -- (\extLigneD , 0.5*\Yc );
\onslide <2->{ \draw [arrows={ - Triangle[angle=90:2mm]} , line width=0.75mm] (a1.south) -- (b1.north);}
\onslide <2->{ \draw [arrows={ - Triangle[angle=90:2mm]} , line width=0.75mm] (a1.south) -- ([xshift=-\espaceFleche cm] b2.north);}
\onslide <2->{ \draw [arrows={ - Triangle[angle=90:2mm]} , line width=0.75mm] (a1.south) -- ([xshift=-\espaceFleche cm] b3.north);}
\onslide <2->{ \draw [arrows={ - Triangle[angle=90:2mm]} , line width=0.75mm] (a2.south) -- ([xshift=\espaceFleche cm] b2.north);}
\onslide <2->{ \draw [arrows={ - Triangle[angle=90:2mm]} , line width=0.75mm] (a2.south) -- ([xshift=\espaceFleche cm] b3.north);}
\onslide <3->{ \draw [arrows={ - Triangle[angle=90:2mm]} , line width=0.75mm] (b1.south) -- ([xshift=-\espaceFleche cm] c1.north);}
\onslide <3->{ \draw [arrows={ - Triangle[angle=90:2mm]} , line width=0.75mm] (b2.south) -- ([xshift=\espaceFleche cm] c1.north);}
\onslide <3->{ \draw [arrows={ - Triangle[angle=90:2mm]} , line width=0.75mm] (b2.south) -- (c2.north);}
\node [align=center] at (\labelXgauche , \Ya ) { Constructeurs\\ de composants\\ sécurisés} ;
\node [align=center] at (\labelXgauche , \Yb ) { Délégués\\ de sécurité} ;
\node [align=center] at (\labelXgauche , \Yc ) { Développeurs\\ d'exécutables} ;
\onslide <2->{ \node [align=center, Gray] at (\labelXdroite , 0.5*\Ya ) { Signe et\\ embarque les\\ certificats} ;}
\onslide <3->{ \node [align=center, Gray] at (\labelXdroite , 0.5*\Yc ) { Modère et signe\\ les exécutables\\ et contenus} ;}
\onslide <4-|handout:2>{ \node [draw,fill=White, fill opacity=1.00, minimum width=12cm, minimum height=6.5cm, rounded corners=0.5cm,] at (0,0) { } ;}
\onslide <4-|handout:2>{ \node [] at (0,0) { \raisebox { -0.5\height } { \includegraphics [width=4cm] { ressources/UEFI.png} } \hspace { 1cm} \raisebox { -0.5\height } { \includegraphics [width=4cm] { ressources/GSMA.png} } } ;}
\end { tikzpicture}
\end { center}
\note { Ne concerne pas que les TEE et SE, mais aussi la politique de sécurité dans Android.}
\end { frame}
2024-11-15 23:11:18 +00:00
\section { Épilogue}
\subsection { Conclusion}
2024-11-14 13:47:56 +00:00
\begin { frame}
\begin { center}
Merci pour votre attention!
\end { center}
\end { frame}
2024-11-06 15:32:55 +00:00
\end { document}
%%% Local Variables:
%%% ispell-local-dictionary: "francais"
%%% TeX-command-extra-options: "-shell-escape"
%%% eval: (flyspell-mode)
%%% End: