\subsection{Conclusion}

\begin{frame}[fragile]{Chain-of-trust completed}
\includegraphics[width=1\textwidth]{drawings/01_imx-chain-of-trust.pdf}
\end{frame}

\begin{frame}[fragile]{Painful integration into Yocto}
\begin{itemize}
  \item currently, to create a fitImage, the kernel recipe is required
  to inherit \code{kernel-fitimage} class
  \item it's done before the rootfs is created (because usually people
  want the kernel to be in \code{/boot})
  \item U-Boot script needs to be in the fitImage
  \item U-Boot script has to be created after the squashfs rootfs to
  retrieve the root hash
  \item and that's how you end up with a dependency loop in Yocto :)
  \item wrote a new image and class to work around this issue
\end{itemize}
\end{frame}

\begin{frame}[fragile]{Read-Write filesystems}
\begin{itemize}
  \item our use case was very specific: read-only root filesystem, but
  one might want a read-write filesystem
  \item if not critical (depends on your use case, e.g. logs, user
  data, etc...), mount it along side your read-only authenticated
  rootfs
  \item if critical, have a look at IMA/EVM
  \begin{itemize}
    \item \url{http://kernsec.org/files/lss2015/ima-applications-slides.pdf}
    \item \url{https://lwn.net/Articles/488906/}
  \end{itemize}
\end{itemize}
\end{frame}

\begin{frame}[fragile]{Remember about trusting no-one?}
\begin{itemize}
  \item secure boot vulnerabilities in ROM code of i.MX6, i.MX50,
  i.MX53, i.MX7, i.MX28 and Vybrid families publicly disclosed July
  17th, 2017
  \begin{itemize}
    \item \url{https://community.nxp.com/docs/DOC-334996}
  \end{itemize}
  \item Know your threat model, nothing is 100\% secure,
  \begin{itemize}
    \item
    \href{https://elciotna18.sched.com/event/DXmx/tutorial-introduction-to-reverse-engineering-mike-anderson-the-ptr-group-inc}{Tutorial: Introduction to Reverse Engineering by Mike}
    Anderson
  \end{itemize}
\end{itemize}
\end{frame}
