diff --git a/docs/preso/05-LID/beamercolorthemefocus.sty b/docs/preso/05-LID/beamercolorthemefocus.sty new file mode 100644 index 0000000..3f533df --- /dev/null +++ b/docs/preso/05-LID/beamercolorthemefocus.sty @@ -0,0 +1,71 @@ +% Copyright (C) 2018 Pasquale Claudio Africa. +% 2018 Sebastian Friedl. +% +% This file is part of beamerthemefocus. +% +% beamerthemefocus is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% beamerthemefocus is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with beamerthemefocus. If not, see . + +\mode + + +% DEFINE COLORS. --------------------------------------------------------------- +\definecolor{main}{RGB}{64, 64, 64} +\definecolor{background}{RGB}{239, 239, 239} + +\definecolor{alert}{RGB}{180, 0, 0} +\definecolor{example}{RGB}{0, 110, 0} + + +% SET COLORS. ------------------------------------------------------------------ +\setbeamercolor{normal text}{fg=textcolor, bg=background} +\setbeamercolor{alerted text}{fg=alert} +\setbeamercolor{example text}{fg=example} + +\setbeamercolor{titlelike}{fg=background, bg=main} +\setbeamercolor{frametitle}{parent={titlelike}} + +\setbeamercolor{footline}{fg=background, bg=main} + +\setbeamercolor{block title}{bg=main!80!background, fg=background} +\setbeamercolor{block body}{bg=main!10!background, fg=main} + +\setbeamercolor{block title alerted}{bg=alert, fg=background} +\setbeamercolor{block body alerted}{bg=alert!10!background, fg=main} + +\setbeamercolor{block title example}{bg=example, fg=background} +\setbeamercolor{block body example}{bg=example!10!background, fg=main} + +\setbeamercolor{itemize item}{fg=main} +\setbeamercolor{itemize subitem}{fg=main} + +\setbeamercolor{enumerate item}{fg=main!70!black} +\setbeamercolor{enumerate subitem}{fg=main!70!black} + +\setbeamercolor{description item}{fg=main!70!black} +\setbeamercolor{description subitem}{fg=main!70!black} + +\setbeamercolor{caption name}{fg=textcolor} + +\setbeamercolor{section in toc}{fg=textcolor} +\setbeamercolor{subsection in toc}{fg=textcolor} +\setbeamercolor{section number projected}{bg=textcolor} +\setbeamercolor{subsection number projected}{bg=textcolor} + +\setbeamercolor{bibliography item}{fg=main} +\setbeamercolor{bibliography entry author}{fg=main!70!black} +\setbeamercolor{bibliography entry title}{fg=main} +\setbeamercolor{bibliography entry location}{fg=main} +\setbeamercolor{bibliography entry note}{fg=main} + +\mode diff --git a/docs/preso/05-LID/beamerfontthemefocus.sty b/docs/preso/05-LID/beamerfontthemefocus.sty new file mode 100644 index 0000000..f324876 --- /dev/null +++ b/docs/preso/05-LID/beamerfontthemefocus.sty @@ -0,0 +1,47 @@ +% Copyright (C) 2018 Pasquale Claudio Africa. +% 2018 Sebastian Friedl. +% +% This file is part of beamerthemefocus. +% +% beamerthemefocus is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% beamerthemefocus is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with beamerthemefocus. If not, see . + +\mode + + +% SET FONTS. ------------------------------------------------------------------- +\setbeamerfont{title}{size=\huge, shape=\bfseries} +\setbeamerfont{subtitle}{size=\Large, parent=structure} +\setbeamerfont{author}{size=\scriptsize} + +\setbeamerfont{institute}{size=\normalsize} +\setbeamerfont{date}{size=\scriptsize} + +\setbeamerfont{sectiontitle}{size=\huge, series=\scshape\bfseries} +\setbeamerfont{frametitle}{size=\Large, shape=\scshape} + +\setbeamerfont{footline}{size=\scriptsize} + +\setbeamerfont{focusframe}{size=\huge, shape=\scshape} + +\setbeamerfont{description item}{shape=\bfseries} + +\setbeamerfont{caption name}{shape=\bfseries} + +\setbeamerfont{bibliography item}{size=\small, shape=\scshape} +\setbeamerfont{bibliography entry author}{size=\small, shape=\scshape} +\setbeamerfont{bibliography entry title}{size=\small, series=\scshape\bfseries} +\setbeamerfont{bibliography entry location}{size=\small, shape=\scshape\normalfont} +\setbeamerfont{bibliography entry note}{size=\small, shape=\scshape\normalfont} + +\mode diff --git a/docs/preso/05-LID/beamerinnerthemefocus.sty b/docs/preso/05-LID/beamerinnerthemefocus.sty new file mode 100644 index 0000000..bccfa7a --- /dev/null +++ b/docs/preso/05-LID/beamerinnerthemefocus.sty @@ -0,0 +1,117 @@ +% Copyright (C) 2018 Pasquale Claudio Africa. +% 2018 Sebastian Friedl. +% +% This file is part of beamerthemefocus. +% +% beamerthemefocus is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% beamerthemefocus is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with beamerthemefocus. If not, see . + +\mode + +\RequirePackage{tikz} + + +% CUSTOMIZE STRUCTURE ELEMENTS. ------------------------------------------------ +\setbeamertemplate{blocks}[default] + +\setbeamertemplate{section in toc}[square] +\setbeamertemplate{subsection in toc}[square] + +\setbeamertemplate{itemize items}[square] +\setbeamertemplate{itemize subitem}[triangle] + + +% STRUCTURE FRAME TEMPLATE DEFINITIONS. ---------------------------------------- +% Title page. +\defbeamertemplate*{title page}{focus}{% + {\usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}% + \begin{tikzpicture}[overlay, remember picture] + \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east); + \end{tikzpicture}} + + \vspace{-1.65\baselineskip} + \begin{minipage}[b][0.35\paperheight]{\textwidth} + \vspace{\baselineskip} + \usebeamerfont{title} + \usebeamercolor[fg]{frametitle} + \inserttitle + \end{minipage} + + \begin{minipage}[t][0.1\paperheight]{\textwidth} + \usebeamerfont{subtitle} + \usebeamercolor[fg]{frametitle} + \insertsubtitle + \end{minipage} + + % Set the title graphic in a zero-height box, so that + % the position of other elements is not affected. + {\vfuzz=9999pt\vbox to 0pt { + \raggedleft + \inserttitlegraphic + }} + + + \vspace*{\baselineskip} + \begin{minipage}[t]{\textwidth} + \usebeamerfont{institute} + \insertinstitute + \end{minipage} + + \vspace*{\baselineskip} + \begin{minipage}[t]{\textwidth} + \usebeamerfont{date}{\insertdate} + \end{minipage} + + + \vspace*{\baselineskip} + \vspace*{\baselineskip} + \vspace*{\baselineskip} + \vspace*{\baselineskip} + \begin{minipage}[t]{\textwidth} + \usebeamerfont{author} + \insertauthor + \end{minipage} + + + \vspace*{5\baselineskip} + + \addtocounter{framenumber}{-1} +} + +% Section page. +\defbeamertemplate*{section page}{focus}{% + {% + \usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}% + \begin{tikzpicture}[overlay, remember picture] + \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east); + \end{tikzpicture}% + } + + \vspace{-2\baselineskip} + \begin{minipage}[b][0.45\paperheight]{\textwidth} + \usebeamerfont{sectiontitle} + \usebeamercolor[fg]{frametitle} + \let\hyperlink\@secondoftwo\insertsection + \end{minipage} + + \begin{minipage}[t][0.55\paperheight]{\textwidth} + \end{minipage} +} + +\AtBeginSection{% + \begin{frame}[plain, noframenumbering]{} + \sectionpage + \end{frame}% +} + +\mode diff --git a/docs/preso/05-LID/beamerouterthemefocus.sty b/docs/preso/05-LID/beamerouterthemefocus.sty new file mode 100644 index 0000000..3f05f33 --- /dev/null +++ b/docs/preso/05-LID/beamerouterthemefocus.sty @@ -0,0 +1,255 @@ +% Copyright (C) 2018 Pasquale Claudio Africa. +% 2018 Sebastian Friedl. +% +% This file is part of beamerthemefocus. +% +% beamerthemefocus is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% beamerthemefocus is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with beamerthemefocus. If not, see . + +\mode + +\RequirePackage{appendixnumberbeamer}% Don't number appendix frames. +\RequirePackage{etoolbox}% \BeforeBeginEnvironment +\RequirePackage{tikz} + + +% FRAMETITLE TEMPLATES. -------------------------------------------------------- +\defbeamertemplate*{frametitle}{focus}{% + % If not title page. + \ifnum\value{framenumber}>0% + \vspace{-1pt}% + \begin{beamercolorbox}[wd=\paperwidth,leftskip=0.55cm,rightskip=0.55cm,sep=0.2cm]{frametitle}% + \strut\insertframetitle\strut% + \end{beamercolorbox}% + \fi% +} + +% Plain header. +\defbeamertemplate{frametitle}{plain}{% + % If not title page. + \ifnum\value{framenumber}>0% + \vspace{-1pt}% + \begin{beamercolorbox}[wd=\paperwidth,leftskip=0.55cm,rightskip=0.55cm,sep=0.2cm,ignorebg]{frametitle}% + \strut% + \end{beamercolorbox}% + \fi% +} + + +% FOOTLINE TEMPLATES. ---------------------------------------------------------- +% Lenghts for the progress bar footline. +\newlength{\focus@pbar@height}% Progress bar height. +\newlength{\focus@pbar@leftoffset} +\newlength{\focus@pbar@rightoffset} + +\defbeamertemplate*{footline}{progressbar}{% + % If not appendix. + \ifnum\mainend<0% From package appendixnumberbeamer. + % + \settowidth{\focus@pbar@leftoffset}{1}% + \addtolength{\focus@pbar@leftoffset}{1.5em}% + % + \settowidth{\focus@pbar@rightoffset}{\inserttotalframenumber}% + \addtolength{\focus@pbar@rightoffset}{1.5em}% + % + % If not title page. + \ifnum\c@framenumber>0% + \ifnum\c@framenumber<\inserttotalframenumber% + \begin{tikzpicture}[inner xsep=0.5em, inner ysep=0.5ex]\usebeamerfont{footline} + \pgfmathsetmacro{\focus@pbar@progress}% + {(\paperwidth-\focus@pbar@leftoffset-\focus@pbar@rightoffset)*(\insertframenumber/\inserttotalframenumber)} + + \clip (0,0) rectangle ++(\paperwidth,\the\focus@pbar@height); + \fill[footline.bg] (0,0) rectangle ++(\the\focus@pbar@leftoffset,\the\focus@pbar@height); + + \fill[footline.bg] (\the\focus@pbar@leftoffset,0) rectangle ++(\focus@pbar@progress pt,\the\focus@pbar@height) + ++(0,{-0.5*\the\focus@pbar@height}) node[anchor=east, text=footline.fg] {\strut\insertframenumber}; + + \fill[footline.bg] (\paperwidth,0) rectangle ++(-\the\focus@pbar@rightoffset,\the\focus@pbar@height) + ++(0,{-0.5*\the\focus@pbar@height}) node[anchor=west, text=footline.fg] {\strut\inserttotalframenumber}; + \end{tikzpicture}% + \else% + \begin{tikzpicture}[inner xsep=0.5em, inner ysep=0.5ex] + \clip (0,0) rectangle ++(\paperwidth,\the\focus@pbar@height); + \fill[footline.bg] (0,0) rectangle ++(\paperwidth,\the\focus@pbar@height); + + \node[anchor=east, footline.fg] at ({\paperwidth-\the\focus@pbar@rightoffset},{0.5*\focus@pbar@height}) {\strut\insertframenumber}; + \node[footline.fg] at ({\paperwidth-\the\focus@pbar@rightoffset},{0.5*\focus@pbar@height}) {\strut/}; + \node[anchor=west, footline.fg] at ({\paperwidth-\the\focus@pbar@rightoffset},{0.5*\focus@pbar@height}) {\strut\inserttotalframenumber}; + \end{tikzpicture}% + \fi% + \fi% + \fi% +} + +% Full bar footline. +\defbeamertemplate{footline}{fullbar}{% + % If not appendix. + \ifnum\mainend<0% From package appendixnumberbeamer. + % + \settowidth{\focus@pbar@leftoffset}{1}% + \addtolength{\focus@pbar@leftoffset}{1.5em}% + % + \settowidth{\focus@pbar@rightoffset}{\inserttotalframenumber}% + \addtolength{\focus@pbar@rightoffset}{1.5em}% + % + % If not title page. + \ifnum\c@framenumber>0% + \begin{tikzpicture}[inner xsep=0.5em, inner ysep=0.5ex] + \clip (0,0) rectangle ++(\paperwidth,\the\focus@pbar@height); + \fill[footline.bg] (0,0) rectangle ++(\paperwidth,\the\focus@pbar@height); + + \node[anchor=east, footline.fg] at ({\paperwidth-\the\focus@pbar@rightoffset},{0.5*\focus@pbar@height}) {\strut\insertframenumber}; + \node[footline.fg] at ({\paperwidth-\the\focus@pbar@rightoffset},{0.5*\focus@pbar@height}) {\strut/}; + \node[anchor=west, footline.fg] at ({\paperwidth-\the\focus@pbar@rightoffset},{0.5*\focus@pbar@height}) {\strut\inserttotalframenumber}; + \end{tikzpicture}% + \fi% + \fi% +} + +% Empty footline. +\defbeamertemplate{footline}{none}{} + +\DeclareOptionBeamer{numbering}{\def\beamer@focus@numbering{#1}} +\ExecuteOptionsBeamer{numbering=progressbar} +\ProcessOptionsBeamer + +\def\beamer@focus@numberingprogressbar{progressbar} +\def\beamer@focus@numberingfullbar{fullbar} +\def\beamer@focus@numberingnone{none} + + +% BACKGROUND CANVAS TEMPLATES. ------------------------------------------------- +\defbeamertemplate*{background canvas}{focus}{% + \begin{tikzpicture} + \clip (0,0) rectangle ++(\paperwidth,\paperheight); + \fill[normal text.bg] (0,0) rectangle ++(\paperwidth,\paperheight); + \end{tikzpicture}% +} + +\defbeamertemplate{background canvas}{focusplain}{% + \begin{tikzpicture} + \clip (0,0) rectangle ++(\paperwidth,\paperheight); + \fill[normal text.bg] (0,0) rectangle ++(\paperwidth,\paperheight); + \end{tikzpicture}% +} + +\defbeamertemplate{background canvas}{focusframe}{% + \begin{tikzpicture} + \clip (0,0) rectangle ++(\paperwidth,\paperheight); + \fill[frametitle.bg] (0,0) rectangle ++(\paperwidth,\paperheight); + \end{tikzpicture}% +} + + +% HOOKS FOR CREATING FRAMES. --------------------------------------------------- +\BeforeBeginEnvironment{frame}{% + \setbeamertemplate{background canvas}[focus]% + \setbeamertemplate{frametitle}[focus]% + % + % Reset footline height and determine it for the current slide. + \setlength{\focus@pbar@height}{0cm}% + \focus@calculatefootheight% + % + % If not appendix. + \ifnum\mainend<0 % From package appendixnumberbeamer. + \settoheight{\focus@pbar@height}{\usebeamerfont{footline}1234567890/}% + \addtolength{\focus@pbar@height}{6pt}% + % + \ifx\beamer@focus@numbering\beamer@focus@numberingprogressbar% + \setbeamertemplate{footline}[progressbar]% + \else% + \ifx\beamer@focus@numbering\beamer@focus@numberingfullbar% + \setbeamertemplate{footline}[fullbar]% + \fi% + \fi% + % + \focus@calculatefootheight% + \fi% +} + +% Enable noframenumbering option. +\define@key{beamerframe}{noframenumbering}[true]{% + \setbeamertemplate{footline}[none]% + \setlength{\focus@pbar@height}{0cm}% + \focus@calculatefootheight% + % + \addtocounter{framenumber}{-1}% +} + + +% Enable plain option. +\define@key{beamerframe}{plain}[true]{% + \setbeamertemplate{background canvas}[focusplain]% + \setbeamertemplate{frametitle}[plain]% + % + \setbeamertemplate{footline}[none]% +} + + +% Full vertical centering +% (from https://tex.stackexchange.com/questions/247826/beamer-full-vertical-centering). +\define@key{beamerframe}{c}[true]{% + \beamer@frametopskip=0pt plus 1fill\relax% + \beamer@framebottomskip=0pt plus 1fill\relax% + \beamer@frametopskipautobreak=0pt plus 0.4\paperheight\relax% + \beamer@framebottomskipautobreak=0pt plus 0.6\paperheight\relax% + \def\beamer@initfirstlineunskip{}% +} + + +% Enable focus option. +\providebool{focus@standout} +\define@key{beamerframe}{focus}[true]{% + \booltrue{focus@standout}% + \begingroup% + \setkeys{beamerframe}{noframenumbering}% + \setbeamertemplate{background canvas}[focusframe]% + \setbeamertemplate{frametitle}[plain]% + % + \setkeys{beamerframe}{c}% + \centering% + \usebeamerfont{focusframe}% + \usebeamercolor[fg]{frametitle}% +} + +\apptocmd{\beamer@reseteecodes} +{% + \ifbool{focus@standout}% + {% + \endgroup% + \boolfalse{focus@standout}% + }{}% +}{}{} + + +% Recalculate the footline's size and refresh other parameters. +% Partially copied from the definition of \beamer@calculateheadfoot. +\def\focus@calculatefootheight{% + \footheight=\focus@pbar@height% + \advance\footheight by 4pt% + \sidebarheight=\paperheight% + \advance\sidebarheight by-\headheight% + \advance\sidebarheight by\headdp% + \advance\sidebarheight by-\footheight% + \advance\sidebarheight by 4pt% + \footskip=\footheight% + \textheight=\paperheight% + \advance\textheight by-\footheight% + \advance\textheight by-\headheight% + \@colht\textheight% + \@colroom\textheight% + \vsize\textheight% +} + +\mode diff --git a/docs/preso/05-LID/beamerthemefocus.sty b/docs/preso/05-LID/beamerthemefocus.sty new file mode 100644 index 0000000..f37394d --- /dev/null +++ b/docs/preso/05-LID/beamerthemefocus.sty @@ -0,0 +1,60 @@ +% Copyright (C) 2018 Pasquale Claudio Africa. +% 2018 Sebastian Friedl. +% +% This file is part of beamerthemefocus. +% +% beamerthemefocus is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% beamerthemefocus is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with beamerthemefocus. If not, see . + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerthemefocus}[2018/08/09 v2.2 Focus Beamer theme] + +\mode + + +% THEME OPTIONS. --------------------------------------------------------------- +\DeclareOptionBeamer{numbering}{% + \PassOptionsToPackage{numbering=#1}{beamerouterthemefocus} +} + +\newif\if@focus@loadfirafonts +\@focus@loadfirafontstrue + +\DeclareOptionBeamer{nofirafonts}{\@focus@loadfirafontsfalse} +\ProcessOptionsBeamer + + +% LOAD EXTERNAL PACKAGES. ------------------------------------------------------ +\if@focus@loadfirafonts + \RequirePackage[T1]{fontenc} + + \PassOptionsToPackage{type1}{FiraSans} + \PassOptionsToPackage{type1}{FiraMono} + + \RequirePackage{FiraSans} + \RequirePackage{FiraMono} +\fi + +\usecolortheme{focus} +\usefonttheme{focus} +\useinnertheme{focus} +\useoutertheme{focus} + +\setbeamertemplate{navigation symbols}{} + + +% SET MARGINS. ----------------------------------------------------------------- +\setbeamersize{text margin left=0.75cm, text margin right=0.75cm} +\setlength{\leftmargini}{0.75cm} + +\mode diff --git a/docs/preso/05-LID/lid.pdf b/docs/preso/05-LID/lid.pdf new file mode 100644 index 0000000..a198d9a Binary files /dev/null and b/docs/preso/05-LID/lid.pdf differ diff --git a/docs/preso/05-LID/lid.tex b/docs/preso/05-LID/lid.tex new file mode 100644 index 0000000..71da759 --- /dev/null +++ b/docs/preso/05-LID/lid.tex @@ -0,0 +1,239 @@ +% Full instructions available at: +% https://github.com/elauksap/focus-beamertheme + +\documentclass{beamer} +\usetheme[numbering=progressbar]{focus} +\usepackage{tikz} +\usetikzlibrary{positioning} +\usetikzlibrary{shapes,arrows} +\usepackage{transparent} +\usepackage{fancyvrb} +\usepackage{listings} +\usepackage{tabularx} +\usepackage{amsfonts} +\usepackage{ulem} +\usepackage{csquotes} +\definecolor{main}{RGB}{47, 161, 219} +\definecolor{background}{RGB}{240, 247, 255} +\definecolor{textcolor}{RGB}{85, 87, 83} + +\title{Mind your Ps and Qs: } +\subtitle{Performing crypto sanity checks with D4.} +\author{Jean-Louis Huynen} +\titlegraphic{\includegraphics[scale=0.20]{../../logos/d4-logo.pdf}} +\institute{Team CIRCL \\ \url{https://www.d4-project.org/}} +\date{November 12, 2019} + +\begin{document} + \begin{frame} + \maketitle + \end{frame} + +\begin{frame} + \frametitle{D4 - Problem statement} + \begin{itemize} + \item CSIRTs (or private organisations) build their {\bf own honeypot, honeynet or blackhole monitoring network} + \item Designing, managing and operating such infrastructure is a tedious and resource intensive task + \item {\bf Automatic sharing} between monitoring networks from different organisations is missing + \item Sensors and processing are often seen as blackbox or difficult to audit + + \end{itemize} +\end{frame} + + +\begin{frame} + \frametitle{D4 - Objective} + \begin{itemize} + \item Based on our experience with + MISP\footnote{\url{https://github.com/MISP/MISP}} where sharing + played an important role, we transpose the model in D4 project + \item Keeping the protocol and code base {\bf simple and minimal} + \item Allowing every organisation to {\bf control and audit their own sensor network} + \item Extending D4 or {\bf encapsulating legacy monitoring protocols} must be as simple as possible + \item Ensuring that the sensor server has {\bf no control on the sensor} (unidirectional streaming) + \item Don't force users to use dedicated sensors and allow {\bf flexibility of sensor support} (software, hardware, virtual) + + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{D4 - (short) History} + \begin{itemize} + \item D4 Project (co-funded under INEA CEF EU program) started - {\bf 1st November 2018} + \item D4 encapsulation protocol version 1 published - {\bf 1st December 2018} + \item v0.1 release of the D4 core\footnote{\url{https://www.github.com/D4-project/d4-core}} including a server and simple D4 C client - {\bf 21st January 2019} + \item First version of a golang D4 + client\footnote{\url{https://www.github.com/D4-project/d4-goclient/}} + running on ARM, MIPS, PPC and x86 - {\bf 14th February 2019} + \end{itemize} +\end{frame} + +\begin{frame} +\frametitle{D4 - Overview} + \includegraphics[scale=0.38]{../../diagram/d4-overview.png} +\end{frame} + + +\begin{frame} + \frametitle{Snake Oil Crypto - Problem Statement} + IoT devices {\bf are often the weakest devices} on a network: + \begin{itemize} + \item Usually the result of cheap engineering, + \item sloppy patching cycles, + \item sometimes forgotten--not monitored, + \item few hardening features enabled, + \end{itemize} + + \vspace{10 mm} + +{\bf We feel a bit safer when they use TLS, but should we?} + +\end{frame} + +\begin{frame} + \frametitle{Snake Oil Crypto - TLS Fingerprinting} + {\bf Keep} a log of links between: + \begin{itemize} + \item x509 certificates, + \item ports, + \item IP address, + \item client (ja3), + \item server (ja3s), + \end{itemize} + \begin{displayquote} + ``JA3 is a method for creating SSL/TLS client fingerprints that should be easy to produce on any platform and can be easily shared for threat intelligence.''\footnote{https://github.com/salesforce/ja3} + \end{displayquote} + + {\bf Pivot} on additional data points during Incident Response +\end{frame} + +\begin{frame} + \frametitle{Snake Oil Crypto - Objectives} + {\bf Collect} and {\bf store} x509 certificates and TLS sessions: + \begin{itemize} + \item Public keys type and size, + \item moduli and public exponents, + \item curves parameters. + \end{itemize} + {\bf Detect} anti patterns in crypto: + \begin{itemize} + \item Moduli that share one prime factor, + \item Moduli that share both prime factors, or private exponents, + \item Small factors, + \item Nonces reuse / common preffix or suffix, etc. + \end{itemize} +\end{frame} + + +\begin{frame}[fragile] + \frametitle{Snake Oil Crypto - RSA on IoT } + Researchers have shown that several devices generated their public + keys at boot time without enough entropy\footnote{Bernstein, Heninger, and Lange: \url{http://facthacks.cr.yp.to/}}: + +\begin{lstlisting}[frame=single, language=python] +prng.seed(seed) +p = prng.generate_random_prime() +// prng.add_entropy() +q = prng.generate_random_prime() +n = p*q +\end{lstlisting} + +Given n=pq and n' = pq' it is trivial to recover the shared p by computing their +Greatest Common Divisor (GCD), and therefore both private keys\footnote{\url{http://www.loyalty.org/~schoen/rsa/}}. + +\end{frame} + +\begin{frame} + \frametitle{Snake Oil Crypto - GCD} + In Snake-Oil-Crypto we compute GCD\footnote{using Bernstein's Batch GCD algorithm} between: + + \begin{itemize} + \item between certificates having the same issuer, + \item between certificates having the same subject, + \item on keys from various sources (PassiveSSL, Certificate Transparency, + shodan, censys, etc.), + \end{itemize} + +\vspace{10 mm} + {\bf ``Check all the keys that we know of for vendor X''} + +\end{frame} + +\begin{frame} + \frametitle{Snake Oil Crypto - MISP feed} +\begin{figure} +\centering +\includegraphics[width=\textwidth]{misp.png} +\end{figure} + +\end{frame} + +\begin{frame} + \frametitle{Snake Oil Crypto - MISP feed} + The MISP feed + \begin{itemize} + \item {\bf Allows} for checking automatic checking by an IDS on hashed values, + \item {\bf contains} thousands on broken keys from a dozen of vendors, + \item {\bf will be accessible upon request (info@circl.lu).} + \end{itemize} + + In the future: + \begin{itemize} + \item {\bf Automatic} the vendor checks by performing TF-IDF on x509's subjects, + \item {\bf automatic} vendors notification. + \end{itemize} + +\end{frame} + + +\begin{frame} + \frametitle{First release} + \begin{itemize} + \item[\checkmark] sensor-d4-tls-fingerprinting + \footnote{\url{github.com/D4-project/sensor-d4-tls-fingerprinting}}: + {\bf Extracts} and {\bf fingerprints} certificates, and {\bf computes} TLSH fuzzy hash. + \item[\checkmark] analyzer-d4-passivessl + \footnote{\url{github.com/D4-project/analyzer-d4-passivessl}}: + {\bf Stores} Certificates / PK details in a PostgreSQL DB. + \item snake-oil-crypto + \footnote{\url{github.com/D4-project/snake-oil-crypto}}: + {\bf Performs} crypto checks, push results in MISP for notification + \item lookup-d4-passivessl + \footnote{\url{github.com/D4-project/lookup-d4-passivessl}}: + {\bf Exposes} the DB through a public REST API. + \end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Use it} +\begin{itemize} +\item {\bf Manage} your own sensors and servers, {\bf find} shameful bugs and + {\bf fill} in github issues +\item Even better, {\bf send} Pull Requests! +\item {\bf Share} data to public servers to improve the datasets (and detection, + response, etc.) +\item {\bf Feed} your MISP instances with D4's findings - {\bf Share} yours +\item {\bf Leech} data, {\bf write} your own analyzers, {\bf do} research +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Get in touch if you want to join the project, host a sensor or contribute} +\begin{itemize} +\item Collaboration can include research partnership, sharing of collected streams or improving the software. +\item Contact: info@circl.lu +\item \url{https://github.com/D4-Project} +\item \url{https://twitter.com/d4_project} +\item \url{https://d4-project.org} +\begin{itemize} + \item + \href{https://d4-project.org/2019/05/28/passive-dns-tutorial.html}{Passive DNS tutorial} + \item + \href{https://d4-project.org/2019/06/17/sharing-between-D4-sensors.html}{Data + sharing tutorial} +\end{itemize} +\end{itemize} +\end{frame} + + +\end{document} diff --git a/docs/preso/05-LID/misp.png b/docs/preso/05-LID/misp.png new file mode 100644 index 0000000..03dd16c Binary files /dev/null and b/docs/preso/05-LID/misp.png differ