\documentclass[aspectratio=169]{beamer} \usetheme{metropolis} \usepackage{lmodern} \usepackage[czech]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{graphicx} \usepackage{wrapfig} \usepackage{color} \usepackage{mathtools} \usepackage{hyperref} \usepackage{epstopdf} \usepackage{amsmath} \hypersetup{ colorlinks, citecolor=black, filecolor=black, linkcolor=black, urlcolor=black } \usepackage{pdflscape} \title{Bezpečné doručení distribučních balíčků} \author{Karel Kočí} \date{26.5.2018} \begin{document} \frame{\titlepage} \begin{frame} \def\svgwidth{10cm} \input{turris-logo.pdf_tex} \end{frame} \begin{frame} \frametitle{Balíček?} \def\svgwidth{2cm} \input{package.pdf_tex} \begin{itemize} \item Meta informace (název, verze, ...) \item Soubory \item Hashe pro soubory \end{itemize} Indexovány a uloženy v repositářích \begin{itemize} \item Repositář obsahuje index \item Index obsahuje hashe balíčků a další meta informace \end{itemize} \end{frame} \begin{frame} \frametitle{Krypto terminologie} \begin{itemize} \item Hash \item Asymetrická šifra \item Kryptografický podpis \item Certifikační autorita \end{itemize} \end{frame} \begin{frame} \frametitle{Útok \#1: Podvrhnutí repositářů} \begin{itemize} \item Vlastní server s upravenými balíčky distribuce \item Kompromitace připojení k Internetu \end{itemize} \end{frame} \begin{frame} \frametitle{Ochrana \#1: Podpis} \begin{itemize} \item Před-distribuovaný veřejný klíč \item Podepsané balíčky nebo index repositáře (lépe index) \end{itemize} \end{frame} \begin{frame} \frametitle{Útok \#2: Podvrhnutí starší verze repositářů} \begin{itemize} \item Kopie repositářů distribuce se známou zranitelností (Heartbleed, CVE-2016-0777 CVE-2016-0778, ...) \item Vlastní server se starší kopií repositářů distribuce \item Kompromitace připojení k Internetu \end{itemize} \end{frame} \begin{frame} \frametitle{``Ochrana'' \#2: Porovnání verzí} Balíčky je možné pouze updatovat \begin{itemize} \item Downgrade je nutné schválit (ale jen u některých a uživatel...) \item Downgrade je občas legitimní \item Co update ze staré verze systému? (pravidelné aktualizace) \item Co instalace? \end{itemize} \end{frame} \begin{frame} \frametitle{Ochrana \#2: HTTPS a SSL} \begin{itemize} \item Server s repositáři se ověřuje validním certifikátem \item Identita serveru (jeho DNS jméno a pod.) je podepsána \end{itemize} \end{frame} \begin{frame} \frametitle{Útok \#3: Vlastní certifikát} \begin{itemize} \item Kopie repositářů distribuce se známou zranitelností \item Vlastní server se starší kopií repositářů distribuce \item Vlastní certifikát s totožnou identitou od "důvěryhodné" autority \end{itemize} \end{frame} \begin{frame} \frametitle{Ochrana \#3: Certification pinning} \begin{itemize} \item Omezit počet důvěryhodných certifikátů (pár vybraných) \item Vždy mějte vlastní certifikační autoritu jako fallback! \item Tak trochu hra v kostky \end{itemize} \end{frame} \begin{frame} \frametitle{Útok \#4: Podvrhnutí DNS} \begin{itemize} \item Kopie repositářů distribuce se známou zranitelností \item Vlastní server se starší kopií repositářů distribuce \item Kompromitace používaného DNS serveru (např: otrávení) a podvrhnutí vlastní IP \end{itemize} \end{frame} \begin{frame} \frametitle{Ochrana \#4: DNSSEC} \begin{itemize} \item Kontrola správnosti DNS odpovědi pomocí podpisů \item Odpověď je stejná tak jak ji poskytuje příslušný autoritativní server \end{itemize} \begin{itemize} \item Nutné správné nastavení systému nejenom aplikace \item Nízké uvědomění uživatelů o užitečnosti DNSSEC \end{itemize} \end{frame} \begin{frame} \frametitle{Útok \#5: BGP leak IP} \begin{itemize} \item Kopie repositářů distribuce se známou zranitelností \item Vlastní server se starší kopií repositářů distribuce \item Zneužití BGP ohlašování a přesměrování \item Vlastní důvěryhodný certifikát s totožnou identitou (Let 's Encrypt) \end{itemize} \end{frame} \begin{frame} \frametitle{Ochrana \#5: RPKI} \begin{itemize} \item Kryptografické ověření přidělení ohlašované IP adresy \end{itemize} \begin{itemize} \item Nižší rozšířenost \item Uživatelsky nekontrolovatelné a nevynutitelné \item Výrazně složitý útok \end{itemize} \end{frame} \begin{frame} \frametitle{Děkuji za pozornost} Udržujte svoje systémy aktuální! Nastavte si DNSSEC! \end{frame} \end{document}