From: ratten Date: Tue, 12 Mar 2024 18:58:29 +0000 (+0100) Subject: Update für CLT 24 X-Git-Url: http://git.tuxteam.de/gitweb/?a=commitdiff_plain;ds=inline;p=susannes-git%2FCrypto-Policy-Vortrag.git Update für CLT 24 --- diff --git a/Cryptopolicies-Handout.pdf b/Cryptopolicies-Handout.pdf index 8c547b9..489d3f0 100644 Binary files a/Cryptopolicies-Handout.pdf and b/Cryptopolicies-Handout.pdf differ diff --git a/Cryptopolicies-presi.pdf b/Cryptopolicies-presi.pdf index ca2d1f7..298679e 100644 Binary files a/Cryptopolicies-presi.pdf and b/Cryptopolicies-presi.pdf differ diff --git a/Cryptopolicies.tex b/Cryptopolicies.tex index 82ab0ee..2b74fca 100644 --- a/Cryptopolicies.tex +++ b/Cryptopolicies.tex @@ -1,4 +1,4 @@ -\documentclass[xcolor={dvipsnames,table},graphicx,parskip]{beamer} +\documentclass[xcolor={dvipsnames,table},graphicx,parskip,handout]{beamer} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} @@ -27,17 +27,33 @@ weitere Informationen:\\ \vskip.25em \nointerlineskip - {\Large \insertframetitle} + {\Huge \insertframetitle} \vskip.25em {\Large\insertframesubtitle} \vskip.25em %\vspace{1cm}\\ - \insertnote} + \insertnote} } \mode{% -\setbeamerfont{note page}{size=\huge} -\setbeameroption{show notes on second screen=bottom} + \setbeamerfont{note page}{size=\Large} + \setbeameroption{show notes on second screen=bottom} + \setbeamertemplate{note page}{% + \begin{columns} + \begin{column}{0.2\textwidth} + \insertslideintonotes{0.25} + \end{column} + \begin{column}{0.7\textwidth} + \begin{center} + Speaker Notes:\\ + \insertframetitle \break + \insertframesubtitle + \end{center} + \end{column} + \end{columns} + \vspace{-0.6cm} + {\Huge\insertnote} + } } \usetheme[hideothersubsections,left]{Goettingen} @@ -122,7 +138,7 @@ \setbeamertemplate{footline}{\vspace*{-20pt} \leavevmode% \hbox{% \hspace{2cm} \colorbox{white}{\color{black} - \textcolor{black}{\insertdate} \hspace{1.5cm} \insertshortauthor \hspace{4cm} \insertframenumber \quad von \inserttotalframenumber \hspace{1cm} }}} + \textcolor{black}{\insertdate} \hspace{1.5cm} \insertshortauthor \hspace{6cm} \insertframenumber }}} \setbeamertemplate{itemize items}[triangle] \setbeamertemplate{page number in foot}[totalframenumber] @@ -167,22 +183,42 @@ %Titel definition \title[Crypto-Policies]{Crypto-Policies} -\subtitle{one Tool to rule all Crypto in Linux} -\author[Bücherratten]{\textbf{Bücherratten}\\\texttt{ratten@buecherratten.in-berlin.de}} -\institute{\textbf{LinuxWorks!}} +\subtitle{Was ist das?} +\author[Schütze]{\textbf{Susanne Schütze}\\\texttt{ratten@buecherratten.in-berlin.de}} +\institute{\textbf{Chemnitzer Linux Tage 2024}} -\date{Dezember 2023} +\date{17. März 2024} % Titlepage Farben setzen \setbeamercolor{date}{fg=orange} \setbeamercolor{author}{fg=orange} -\setbeamercolor{institute}{fg=orange} +\setbeamercolor{institute}{fg=green,bg=black} %\titlegraphic{\includegraphics[scale=0.3]{hacker.jpg}} %sitebar leer setzten \setbeamertemplate{sidebar left}{} +%notepage with itemize +\makeatletter +\def\beamer@setupnote{% + \gdef\beamer@notesactions{% + \beamer@outsideframenote{% + \beamer@atbeginnote% + \beamer@notes% + \ifx\beamer@noteitems\@empty\else + \begin{itemize}\itemsep=0pt\parskip=0pt% + \beamer@noteitems% + \end{itemize}% + \fi% + \beamer@atendnote% + }% + \gdef\beamer@notesactions{}% + } +} +\makeatother + + %titlepage ohne sidebar \makeatletter \begin{frame}[plain] @@ -201,9 +237,9 @@ \begin{frame} \frametitle{Inhalt} - \textbf{\tableofcontents}%[hideothersubsections]} + \textbf{\tableofcontents[hideothersubsections]} \vspace{0.4cm} - \note{Abfrage: Wer von euch musste letztens die Probleme von den Kollegen lösen?} + \note[item]{Abfrage: Wer von euch musste letztens die Probleme von den Kollegen lösen?} \end{frame} %sidebar wiederherstellen @@ -217,6 +253,7 @@ \setbeamercolor{eingabe}{bg=gray} \subsection{Der SSH Fehler} \begin{frame}[t] + \mode{\addtocounter{framenumber}{-1}} \frametitle{Die Fehler Beschreibung} \only<1-4>{\begin{beamercolorbox}[wd=0.9\textwidth,left,rounded=true]{Kollege} Ich kann mich nicht mehr mit meinem SSH-key mit den RHEL8-Servern verbinden, kannst du mal raus kriegen woran das liegt? Du magst doch SSH. @@ -234,7 +271,7 @@ Hast du mal \mintinline{bash}{ssh -v user@Server} oder \mintinline{bash}{ssh -oKexAlgorithms=ecdh-sha2-nistp256 user@Server} versucht? \end{beamercolorbox}} \only<5-7>{\begin{beamercolorbox}[wd=0.9\textwidth,left,rounded=true]{Kollege} - Na die default Größe und ich benutze Putty + Natürlich * Bits und ich benutze Putty \end{beamercolorbox}} \only<6->{\quad\quad\begin{beamercolorbox}[wd=0.9\textwidth,right,rounded=true]{Azubi} Ich schau es mir an \dots @@ -248,6 +285,7 @@ \end{frame} \begin{frame} + \mode{\addtocounter{framenumber}{-1}} \frametitle{Die Fehler Beschreibung} \begin{beamercolorbox}[wd=0.9\textwidth,left,rounded=true]{Kollege} Ich kann mich nicht mehr mit meinem SSH-key mit den RHEL8-Servern verbinden, kannst du mal rauskriegen woran das liegt? Du magst doch SSH. @@ -269,8 +307,8 @@ \begin{frame} \frametitle{whoami} \begin{itemize} - \item{Bücherratten} - \item{39 Jahre} + \item{Susanne Schütze} + \item{40 Jahre} \item{Pronomen: sie} \item{Berufsbezeichnung: Fachinformatikerin für Systemintegration} \item{Berufliches Themenfeld: Automatisierung mit Ansible} @@ -297,12 +335,13 @@ \framesubtitle{Abfrage} Wer von euch: \begin{itemize} - \item{hat den Überblick über alle Konfigurationsmöglichkeiten?} + \item{hat den Überblick über alle Crypto-Konfigurations\-möglichkeiten?} \pause \item{ist der Meinung, das die Konfigurations-Optionen bezüglich Crypto einheitlich sind?} \pause \item{findet es easy mal eben Systemweit zB SHA1 auszuschalten?} \end{itemize} + \note[item]{Bitte um Handzeichen} \end{frame} \setbeamercovered{transparent} @@ -322,7 +361,7 @@ KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-he MACs hmac-sha2-256,hmac-sha2-512,hmac-sha1 \end{minted} \end{exampleblock} - \note{Wenn zB. ssh auf SHA1-Algorithmen verzichtet, bedeutet das nicht das OpenSSL, davon weiß und auch darauf verzichtet} + \note[item]{Wenn zB. ssh auf SHA1-Algorithmen verzichtet, bedeutet das nicht das OpenSSL, davon weiß und auch darauf verzichtet} \end{frame} \subsection{Debugging des SSH-Fehlers} @@ -376,7 +415,7 @@ RestartSec=42s WantedBy=multi-user.target \end{minted} \end{itemize} - \note{Realisiert werden Policies darüber, das die Variabel CRYPTOPOLICY beim Aufruf der Systemd Unit gefüllt werden} + \note[item]{Realisiert werden Policies darüber, das die Variabel CRYPTOPOLICY beim Aufruf der Systemd Unit gefüllt werden} \end{frame} \section{Einführung Crypto-Policies} @@ -391,7 +430,7 @@ WantedBy=multi-user.target \item{Die Cipher Suite an einem Ort konfigurieren, überschreibt Tool-Konfiguration} \item{Crypto-Einstellungen in Konfigurations-Dateien werden wirkungslos} \item{leichter zu maintainen, zu updaten, anzupassen} - \item{Vorteil, wenn Systeme bestimmten Sicherheitsstandartisierungen entsprechen sollen} + \item{Vorteil, wenn Systeme bestimmten Sicherheitsstandardisierungen entsprechen sollen} \item{bisher in Fedora, RHEL, CentOS, OpenSuse, Oracle Linux, Ubuntu, Debian-sid(testing), ...} \item{Entwicklung: \begin{columns} @@ -405,7 +444,7 @@ WantedBy=multi-user.target \item{Eigenentwicklung von RedHat, Idee findet jedoch Konsens in Community} \end{itemize} } - \note{Cryptopolicies werden über Python umgesetzt} + \note[item]{Cryptopolicies werden über Python umgesetzt} \vspace{0.5cm} \end{frame} @@ -431,6 +470,7 @@ WantedBy=multi-user.target \vspace{0.5cm} \end{frame} +\subsection{policies overview} \begin{frame} \frametitle{Arten von Policies} \framesubtitle{Grob Überblick} @@ -446,9 +486,173 @@ WantedBy=multi-user.target *\textsuperscript{1} fun fact: Die RedHat Customer Portal API kann zur Zeit noch nicht mit Future.\\ \pause *\textsuperscript{2} \url{https://gitlab.com/redhat-crypto/fedora-crypto-policies/-/blob/master/policies/BSI.pol} - \note{*\textsuperscript{3} Amerikanische Zertifizierung für Kryptographie bezieht sich auf die Kryptographischen Teile eines Produkts im Gegensatz dazu CC (Common Criteria for Information Technology Security Evaluation) ist das Europäische Gegenstück bezieht sich auf Sicherheitsbezogene Themen nach ISO 15408} + \note<3>[item]{*\textsuperscript{3}\LARGE{Amerikanische Zertifizierung für Kryptographie bezogen auf Kryptographische Teile des Produkts. Gegensatz zu CC (Common Criteria for Information Technology Security Evaluation) bezogen auf Sicherheitsbezogene Themen (ISO 15408)}} +\end{frame} + +\begin{frame} + \mode{\addtocounter{framenumber}{-1}} + \frametitle{Welche Policies gibt es?} + \framesubtitle{LEGACY} + \vspace{-0.2cm} + \scriptsize{ + \begin{block}{LEGACY} + \begin{itemize} + \item{maximale Kompatibilität mit älteren Systemen} + \item{weniger sicher} + \item{Support für TLS 1.0, TLS 1.1, und SSH2} + \item{erlaubt DSA und 3DES} + \item{RSA and Diffie-Hellman Parameter $>$ 1024 Bit} + \item{mindestens 64-bit Sicherheit} + \end{itemize} + \vspace{-0.2cm} + \begin{description} + \item[MACs:] all HMAC with SHA-1 or $>$ + all modern MACs (Poly1305 etc.) + \item[Curves:] all prime $>=$ 255 bits (including Bernstein curves) + \item[Signature algorithms:] with SHA1 hash or better (DSA allowed) + \item[TLS Ciphers:] all $>=$ 112-bit key, $>=$ 128-bit block (incl. 3DES, no RC4) + \item[Non-TLS Ciphers:] same as TLS ciphers with added Camellia + \item[Key exchange:] ECDHE, RSA, DHE + \item[DH params size:] $>=$ 1023 + \item[RSA keys size:] $>=$ 1023 + \item[DSA params size:] $>=$ 1023 + \item[TLS protocols:] TLS $>=$ 1.0, DTLS $>=$ 1.0 + \end{description} + \end{block} + } + \vspace{0.5cm} +\end{frame} + +\begin{frame} + \mode{\addtocounter{framenumber}{-1}} + \frametitle{Welche Policies gibt es?} + \framesubtitle{DEFAULT} + \scriptsize{ + \begin{block}{DEFAULT} + \begin{itemize} + \item{ist heutiger Standard} + \item{erlaubt TLS 1.2, TLS 1.3, IKEv2 und SSH2} + \item{akzeptiert Diffie-Hellman Parameter $>$ 2048 Bits} + \item{mindestens 112-Bit Sicherheit} + \item{Ausnahmsweise sind SHA-1 Signaturen in DNSSec erlaubt} + \end{itemize} + \begin{description} + \item[MACs:] all HMAC with SHA-1 or better + all modern MACs (Poly1305 etc.) + \item[Curves:] all prime $>=$ 255 bits (including Bernstein curves) + \item[Signature algorithms:] with SHA-1 hash or better (no DSA) + \item[TLS Ciphers:] $>=$ 128-bit key, $>=$ 128-bit block (AES, ChaCha20, including AES-CBC) + \item[non-TLS Ciphers:] as TLS Ciphers with added Camellia + \item[key exchange:] ECDHE, RSA, DHE (no DHE-DSS) + \item[DH params size:] $>=$ 2048 + \item[RSA keys size:] $>=$ 2048 + \item[TLS protocols:] TLS $>=$ 1.2, DTLS $>=$ 1.2 + \end{description} + \end{block} + } + \vspace{0.5cm} +\end{frame} + +\begin{frame} + \mode{\addtocounter{framenumber}{-1}} + \frametitle{Welche Policies gibt es?} + \framesubtitle{FUTURE} + \tiny{ + \begin{block}{FUTURE} + \begin{itemize} + \item{Konservative Policy} + \item{Vermutung, das sie zukünftigen Angriffen widersteht, auf Kosten der Kompatibilität} + \item{es kann Kommunikation mit vielen Systemen verhindern, die schwächere Kryptographie verwenden} + \item{es sind keine SHA-1 in Signaturen erlaubt} + \item{es wird eine (unvollständige) Post-Quanten Kryptographie unterstützt} + \item{Unterstützung von 256-Bit symmetrischer Verschlüsselung} + \item{RSA und Diffie-Hellman Parameter länger als 3071 Bits} + \item{mindestens 128-Bit Sicherheit} + \end{itemize} + \begin{description} + \item[MACs:] all HMAC with SHA-256 or $>$ + all modern MACs (Poly1305 etc.) + \item[Curves:] all prime $>=$ 255 bits (including Bernstein curves) + \item[Signature algorithms:] with SHA-256 hash or better (no DSA) + \item[TLS Ciphers:] $>=$ 256-bit key, $>=$ 128-bit block, only Authenticated Encryption (AE) ciphers, no CBC ciphers + \item[non-TLS Ciphers:] same as TLS ciphers with added non AE ciphers, CBC ones enabled only in Kerberos + \item[key exchange:] ECDHE, DHE (no DHE-DSS, no RSA) + \item[DH params size:] $>=$ 3072 + \item[RSA keys size:] $>=$ 3072 + \item[TLS protocols:] TLS $>=$ 1.2, DTLS $>=$ 1.2 + \end{description} + \end{block} + } + \vspace{0.5cm} \end{frame} +\begin{frame} + \mode{\addtocounter{framenumber}{-1}} + \frametitle{Welche Policies gibt es?} + \framesubtitle{FIPS} + \scriptsize{ +\begin{block}{FIPS} + \begin{itemize} + \item{Kompatible zu den FIPS 140-2 Voraussetzungen} + \item{wird für fips-mode-setup verwendet} + \item{bietet mindestens 112-Bit Sicherheit} + \end{itemize} + \begin{description} + \item[MACs:] all HMAC with SHA1 or better + \item[Curves:] all prime $>=$ 256 bits + \item[Signature algorithms:] with SHA-256 hash or better (no DSA) + \item[TLS Ciphers:] $>=$ 128-bit key, $>=$ 128-bit block (AES, including AES-CBC) + \item[non-TLS Ciphers:] same as TLS Ciphers + \item[key exchange:] ECDHE, DHE (no DHE-DSS, no RSA) + \item[DH params size:] $>=$ 2048 + \item[RSA params size:] $>=$ 2048 + \item[TLS protocols:] TLS $>=$ 1.2, DTLS $>=$ 1.2 + \end{description} +\end{block} + } + \vspace{0.5cm} +\end{frame} + +\begin{frame} + \mode{\addtocounter{framenumber}{-1}} + \frametitle{Die BSI-Policy} + \tiny{ + \begin{block}{BSI} + \begin{itemize} + \item{Author: Marcus Meissner von OpenSuse} + \item{Grundlage des BSI Standards TR 02102 \url{https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.html}} + \item{Empfehlungen des BSI werden regelmäßig geupdated} + \item{unvollständige Unterstützung für Post-Quanten Kryptographie} + \item{128 Bit Sicherheit (außer RSA)} + \item{erlaubt kein SHA1 (außer DNSSEC und RPM)} + \item{Beachtet Chacha20 und Camellia werden nicht vom BSI empfohlen} + \end{itemize} + \begin{description} + \item[MACs:] all HMAC with SHA-256 or better + all modern MACs + \item[Curves:] all prime $>=$ 255 bits (including Bernstein curves) + \item[Signature algorithms:] with SHA-256 hash or better (no DSA) + \item[TLS Ciphers:] $>=$ 256-bit key, $>=$ 128-bit block, only Authenticated + \item[Encryption] (AE) ciphers + \item[non-TLS Ciphers:] same as TLS ciphers with added non AE ciphers + \item[key exchange:] ECDHE, DHE (no DHE-DSS, no RSA) + \item[DH params size:] $>=$ 3072 + \item[RSA keys size:] $>=$ 2048 (until end of 2023, then it will switch to 3072) + \item[TLS protocols:] TLS $>=$ 1.2, DTLS $>=$ 1.2 + \end{description} + \end{block} + } +\end{frame} + +\begin{frame} + \mode{\addtocounter{framenumber}{-1}} + \frametitle{Welche Policies gibt es?} + \framesubtitle{NEXT und EMPTY} + \begin{block}{NEXT} + nur für Fedora, ähnlich wie RHEL-8 Default, daher Alias für Default + \end{block} +\begin{block}{EMPTY} + Alle Kryptographischen Algorithmen sind deaktiviert, soll nur für Debugging genutzt werden +\end{block} +\end{frame} + + \begin{frame}[fragile] \frametitle{Policies anzeigen und setzen} \vspace{-0.5cm} @@ -456,9 +660,9 @@ WantedBy=multi-user.target \item{anzeigen: \mintinline{bash}{update-crypto-policies --show}} \item{ändern: \mintinline{bash}{update-crypto-policies --set FUTURE:NO-SHA1}} \begin{itemize} - \item{setzt die systemweiten Policies auf Future} + \item{setzt die systemweiten Policies auf Future mit dem Module no-sha1} \item{unabhängig davon welche vorher aktiv war} - \item{Module dazu geladen: mit Doppelpunkt trennen, auch mehrfach} + \item{Module dazu laden: mit Doppelpunkt trennen, auch mehrfach} \item{sind symbolische links von /etc/crypto-policies/back-ends nach /usr/share/crypto-policies.} \item{generiert Backend Konfigurations-Dateien} \end{itemize} @@ -489,10 +693,10 @@ WantedBy=multi-user.target \end{itemize} \pause \begin{minted}[fontsize=\footnotesize,breakanywhere]{linux-config} -CRYPTO_POLICY='-oCiphers=aes256-gcm@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc -oMACs=hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha1,hmac-sha2-512 -oGSSAPIKeyExchange=no -oKexAlgorithms=ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512 -oHostKeyAlgorithms=ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com -oPubkeyAcceptedKeyTypes=ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com -oCASignatureAlgorithms=ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-256,rsa-sha2-512' +CRYPTO_POLICY='-oCiphers=aes256-gcm@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc -oMACs=hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha1,hmac-sha2-512 -oGSSAPIKeyExchange=no -oKexAlgorithms=ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512 -oHostKeyAlgorithms=ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,... \end{minted} \end{itemize} - \note{Einstellungen im Backend halten bis zum Reboot / Sinnvoll wäre gewesen in die Manpage zu schauen!} + \note[item]{Einstellungen im Backend halten bis zum Reboot / Sinnvoll wäre gewesen in die Manpage zu schauen!} \end{frame} \subsection{Man-Page} @@ -514,7 +718,8 @@ CRYPTO_POLICY='-oCiphers=aes256-gcm@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm \item{ist ein fabelhaftes Versprechen was ein Programm alles für Funktionen hat} \pause \item{ist keine Anleitung zu dem Programm} - \end{itemize} + \end{itemize} + \note[item]{Bitte um Handzeichen} \end{frame} \setbeamercovered{transparent} @@ -543,6 +748,7 @@ CRYPTO_POLICY='-oCiphers=aes256-gcm@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm \end{frame} \begin{frame}[fragile] + \mode{\addtocounter{framenumber}{-1}} \frametitle{ssh-key-size} \framesubtitle{unter alma8} \vspace{-0.2cm} @@ -572,6 +778,7 @@ logout \end{frame} \begin{frame}[fragile] + \mode{\addtocounter{framenumber}{-1}} \frametitle{ssh-key-size} \framesubtitle{unter alma9} \begin{minted}[fontsize=\tiny,escapeinside=||]{console} @@ -613,7 +820,66 @@ Authenticated to crypt-arbeit9 ([192.168.2.107]:22). \end{proof}} \pause Nach Aussage von Red Hat, haben sie OpenSSH auf RHEL8 extra gepatched\dots \pause Ich hab einen Patch in Fedora 37 gefunden, in den Paketen von AlmaLinux und Rocky Linux jedoch nicht. - \note{In Alma- und Rocky Linux tritt der gleiche Fehler auf, jedoch nicht in Fedora 37} + \note[item]{In Alma- und Rocky Linux tritt der gleiche Fehler auf, jedoch nicht in Fedora 37} +\end{frame} + +\subsection{Scopes, deaktiverte Ciphers und Files} + +\begin{frame} + \mode{\addtocounter{framenumber}{-1}} + \frametitle{übersicht über die Libaries und ihrer Scopes} + \begin{itemize} + \item{libssh SSH2 protocol implementation (scopes: libssh, SSH)} + \item{sequoia PGP, outside of rpm-sequoia (scopes: sequoia)} + \item{rpm-sequoia PGP backend (scopes: rpm, rpm-sequoia)} + \item{BIND DNS (scopes: BIND, DNSSec)} + \item{GnuTLS (scopes: GnuTLS, SSL, TLS)} + \item{Kerberos 5 (scopes: krb5, Kerberos)} + \item{Libreswan IPsec and IKE protocol implementation (scopes: libreswan, IPSec, IKE)} + \item{NSS TLS library (scopes: NSS, SSL, TLS)} + \item{OpenJDK runtime environment (scopes: java-tls, SSL, TLS)} + \item{OpenSSH SSH2 (scopes: OpenSSH, SSH)} + \item{OpenSSL TLS library (scopes: OpenSSL, SSL, TLS)} + \end{itemize} +\end{frame} + + +\begin{frame} + \mode{\addtocounter{framenumber}{-1}} + \frametitle{Deaktivierte Cipher suites} + \begin{itemize} + \item{DH with parameters $<$ 1024 bits} + \item{RSA with key size $<$ 1024 bits} + \item{Camellia} + \item{RC4} + \item{ARIA} + \item{SEED} + \item{IDEA} + \item{TLS CBC mode ciphersuites using SHA-384 HMAC} + \item{AES-CCM8} + \item{all ECC curves incompatible with TLS 1.3, including secp256k1} + \item{IKEv1} + \end{itemize} + diese können jedoch aktiviert werden + \end{frame} + +\subsection{Konfigurations-Dateien} +\begin{frame} + \mode{\addtocounter{framenumber}{-1}} + \frametitle{Konfigurations-Dateien} + \scriptsize{ + \begin{description} + \item[/etc/crypto-policies/back-ends] Back-End Config-Dateien, verlinkt zur Package Crypto-Policies, es sei den local.d -Konfiguration wurde hinzugefügt + \item[/etc/crypto-policies/config] Beinhaltet Namen der aktiven Crypto-Policies + \item[/etc/crypto-policies/local.d] weitere Konfiguration, entweder Package basierend, oder vom Admin erstellt. Die back-end.config wird angehängt, wie ausgeliefert, vom Packet. + \item[/usr/share/crypto-policies/policies] Policy Definitions-Datei + \item[/usr/share/crypto-policies/policies/modules] Unter Definitions-Dateien + \item[/etc/crypto-policies/policies] Änderungen der Policy-Definitionen des System Admins + \item[/etc/crypto-policies/policies/modules] Änderungen der Modul-Definitionen des System Admins + \item[/usr/share/crypto-policies/$<$POLICYNAME$>$] generierte Datei des back-ends für die Policy POLICYNAME + \end{description} + } + \vspace{0.5cm} \end{frame} \section{Wie mit Crypto-policies richtig umgehen?} @@ -768,6 +1034,7 @@ cipher@libssh = AES-256-CBC+ \item[crypto\_policies\_reboot\_ok] ob das System neu gestartet wird \item[crypto\_policies\_reboot\_required] wird von der Rolle gesetzt wenn Neustart des Systems erforderlich \end{description} + kann in RHEL über rpm-Paket installiert werden ()\\ \pause Was die Rolle noch nicht kann: \begin{itemize} @@ -827,7 +1094,7 @@ cipher@libssh = AES-256-CBC+ \end{itemize} \end{frame} -\begin{frame} +\begin{frame} \frametitle{Ende} \begin{center} \Huge{Danke fürs zuhören und mitmachen!}\\ @@ -856,218 +1123,4 @@ cipher@libssh = AES-256-CBC+ \end{columns} \end{frame} -\section{Handout} -\subsection{policies overview} -\begin{frame} - \frametitle{Welche Policies gibt es?} - \framesubtitle{LEGACY} - \vspace{-0.2cm} - \scriptsize{ - \begin{block}{LEGACY} - \begin{itemize} - \item{maximale Kompatibilität mit älteren Systemen} - \item{weniger sicher} - \item{Support für TLS 1.0, TLS 1.1, und SSH2} - \item{erlaubt DSA und 3DES} - \item{RSA and Diffie-Hellman Parameter $>$ 1024 Bit} - \item{mindestens 64-bit Sicherheit} - \end{itemize} - \vspace{-0.2cm} - \begin{description} - \item[MACs:] all HMAC with SHA-1 or $>$ + all modern MACs (Poly1305 etc.) - \item[Curves:] all prime $>=$ 255 bits (including Bernstein curves) - \item[Signature algorithms:] with SHA1 hash or better (DSA allowed) - \item[TLS Ciphers:] all $>=$ 112-bit key, $>=$ 128-bit block (incl. 3DES, no RC4) - \item[Non-TLS Ciphers:] same as TLS ciphers with added Camellia - \item[Key exchange:] ECDHE, RSA, DHE - \item[DH params size:] $>=$ 1023 - \item[RSA keys size:] $>=$ 1023 - \item[DSA params size:] $>=$ 1023 - \item[TLS protocols:] TLS $>=$ 1.0, DTLS $>=$ 1.0 - \end{description} - \end{block} - } - \vspace{0.5cm} -\end{frame} - -\begin{frame} - \frametitle{Welche Policies gibt es?} - \framesubtitle{DEFAULT} - \scriptsize{ - \begin{block}{DEFAULT} - \begin{itemize} - \item{ist heutiger Standard} - \item{erlaubt TLS 1.2, TLS 1.3, IKEv2 und SSH2} - \item{akzeptiert Diffie-Hellman Parameter $>$ 2048 Bits} - \item{mindestens 112-Bit Sicherheit} - \item{Ausnahmsweise sind SHA-1 Signaturen in DNSSec erlaubt} - \end{itemize} - \begin{description} - \item[MACs:] all HMAC with SHA-1 or better + all modern MACs (Poly1305 etc.) - \item[Curves:] all prime $>=$ 255 bits (including Bernstein curves) - \item[Signature algorithms:] with SHA-1 hash or better (no DSA) - \item[TLS Ciphers:] $>=$ 128-bit key, $>=$ 128-bit block (AES, ChaCha20, including AES-CBC) - \item[non-TLS Ciphers:] as TLS Ciphers with added Camellia - \item[key exchange:] ECDHE, RSA, DHE (no DHE-DSS) - \item[DH params size:] $>=$ 2048 - \item[RSA keys size:] $>=$ 2048 - \item[TLS protocols:] TLS $>=$ 1.2, DTLS $>=$ 1.2 - \end{description} - \end{block} - } - \vspace{0.5cm} -\end{frame} - -\begin{frame} - \frametitle{Welche Policies gibt es?} - \framesubtitle{FUTURE} - \tiny{ - \begin{block}{FUTURE} - \begin{itemize} - \item{Konservative Policy} - \item{Vermutung, das sie zukünftigen Angriffen widersteht, auf Kosten der Kompatibilität} - \item{es kann Kommunikation mit vielen Systemen verhindern, die schwächere Kryptographie verwenden} - \item{ es sind keine SHA-1 in Signaturen erlaubt} - \item{es wird eine (unvollständige) Post-Quanten Kryptographie unterstützt} - \item{Unterstützung von 256-Bit symmetrischer Verschlüsselung} - \item{RSA und Diffie-Hellman Parameter länger als 3071 Bits} - \item{mindestens 128-Bit Sicherheit} - \end{itemize} - \begin{description} - \item[MACs:] all HMAC with SHA-256 or $>$ + all modern MACs (Poly1305 etc.) - \item[Curves:] all prime $>=$ 255 bits (including Bernstein curves) - \item[Signature algorithms:] with SHA-256 hash or better (no DSA) - \item[TLS Ciphers:] $>=$ 256-bit key, $>=$ 128-bit block, only Authenticated Encryption (AE) ciphers, no CBC ciphers - \item[non-TLS Ciphers:] same as TLS ciphers with added non AE ciphers, CBC ones enabled only in Kerberos - \item[key exchange:] ECDHE, DHE (no DHE-DSS, no RSA) - \item[DH params size:] $>=$ 3072 - \item[RSA keys size:] $>=$ 3072 - \item[TLS protocols:] TLS $>=$ 1.2, DTLS $>=$ 1.2 - \end{description} - \end{block} - } - \vspace{0.5cm} -\end{frame} - -\begin{frame} - \frametitle{Welche Policies gibt es?} - \framesubtitle{FIPS} - \scriptsize{ -\begin{block}{FIPS} - \begin{itemize} - \item{Kompatible zu den FIPS 140-2 Voraussetzungen} - \item{wird für fips-mode-setup verwendet} - \item{bietet mindestens 112-Bit Sicherheit} - \end{itemize} - \begin{description} - \item[MACs:] all HMAC with SHA1 or better - \item[Curves:] all prime $>=$ 256 bits - \item[Signature algorithms:] with SHA-256 hash or better (no DSA) - \item[TLS Ciphers:] $>=$ 128-bit key, $>=$ 128-bit block (AES, including AES-CBC) - \item[non-TLS Ciphers:] same as TLS Ciphers - \item[key exchange:] ECDHE, DHE (no DHE-DSS, no RSA) - \item[DH params size:] $>=$ 2048 - \item[RSA params size:] $>=$ 2048 - \item[TLS protocols:] TLS $>=$ 1.2, DTLS $>=$ 1.2 - \end{description} -\end{block} - } - \vspace{0.5cm} -\end{frame} - -\begin{frame} - \frametitle{Die BSI-Policy} - \tiny{ - \begin{block}{BSI} - \begin{itemize} - \item{Author: Marcus Meissner von OpenSuse} - \item{Grundlage des BSI Standards TR 02102 \url{https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.html}} - \item{Empfehlungen des BSI werden regelmäßig geupdated} - \item{unvollständige Unterstützung für Post-Quanten Kryptographie} - \item{128 Bit Sicherheit (außer RSA)} - \item{erlaubt kein SHA1 (außer DNSSEC und RPM)} - \item{Beachtet Chacha20 und Camellia werden nicht vom BSI empfohlen} - \end{itemize} - \begin{description} - \item[MACs:] all HMAC with SHA-256 or better + all modern MACs - \item[Curves:] all prime $>=$ 255 bits (including Bernstein curves) - \item[Signature algorithms:] with SHA-256 hash or better (no DSA) - \item[TLS Ciphers:] $>=$ 256-bit key, $>=$ 128-bit block, only Authenticated - \item[Encryption] (AE) ciphers - \item[non-TLS Ciphers:] same as TLS ciphers with added non AE ciphers - \item[key exchange:] ECDHE, DHE (no DHE-DSS, no RSA) - \item[DH params size:] $>=$ 3072 - \item[RSA keys size:] $>=$ 2048 (until end of 2023, then it will switch to 3072) - \item[TLS protocols:] TLS $>=$ 1.2, DTLS $>=$ 1.2 - \end{description} - \end{block} - } -\end{frame} - -\begin{frame} - \frametitle{Welche Policies gibt es?} - \framesubtitle{NEXT und EMPTY} - \begin{block}{NEXT} - nur für Fedora, ähnlich wie RHEL-8 Default, daher Alias für Default - \end{block} -\begin{block}{EMPTY} - Alle Kryptographischen Algorithmen sind deaktiviert, soll nur für Debugging genutzt werden -\end{block} -\end{frame} - -\begin{frame} - \frametitle{übersicht über die Libaries und ihrer Scopes} - \begin{itemize} - \item{libssh SSH2 protocol implementation (scopes: libssh, SSH)} - \item{sequoia PGP, outside of rpm-sequoia (scopes: sequoia)} - \item{rpm-sequoia PGP backend (scopes: rpm, rpm-sequoia)} - \item{BIND DNS (scopes: BIND, DNSSec)} - \item{GnuTLS (scopes: GnuTLS, SSL, TLS)} - \item{Kerberos 5 (scopes: krb5, Kerberos)} - \item{Libreswan IPsec and IKE protocol implementation (scopes: libreswan, IPSec, IKE)} - \item{NSS TLS library (scopes: NSS, SSL, TLS)} - \item{OpenJDK runtime environment (scopes: java-tls, SSL, TLS)} - \item{OpenSSH SSH2 (scopes: OpenSSH, SSH)} - \item{OpenSSL TLS library (scopes: OpenSSL, SSL, TLS)} - \end{itemize} -\end{frame} - - -\begin{frame} - \frametitle{Deaktivierte Cipher suites} - \begin{itemize} - \item{DH with parameters $<$ 1024 bits} - \item{RSA with key size $<$ 1024 bits} - \item{Camellia} - \item{RC4} - \item{ARIA} - \item{SEED} - \item{IDEA} - \item{TLS CBC mode ciphersuites using SHA-384 HMAC} - \item{AES-CCM8} - \item{all ECC curves incompatible with TLS 1.3, including secp256k1} - \item{IKEv1} - \end{itemize} - diese können jedoch aktiviert werden - \end{frame} - -\subsection{Konfigurations-Dateien} -\begin{frame} - \frametitle{Konfigurations-Dateien} - \scriptsize{ - \begin{description} - \item[/etc/crypto-policies/back-ends] Back-End Config-Dateien, verlinkt zur Package Crypto-Policies, es sei den local.d -Konfiguration wurde hinzugefügt - \item[/etc/crypto-policies/config] Beinhaltet Namen der aktiven Crypto-Policies - \item[/etc/crypto-policies/local.d] weitere Konfiguration, entweder Package basierend, oder vom Admin erstellt. Die back-end.config wird angehängt, wie ausgeliefert, vom Packet. - \item[/usr/share/crypto-policies/policies] Policy Definitions-Datei - \item[/usr/share/crypto-policies/policies/modules] Unter Definitions-Dateien - \item[/etc/crypto-policies/policies] Änderungen der Policy-Definitionen des System Admins - \item[/etc/crypto-policies/policies/modules] Änderungen der Modul-Definitionen des System Admins - \item[/usr/share/crypto-policies/$<$POLICYNAME$>$] generierte Datei des back-ends für die Policy POLICYNAME - \end{description} - } - \vspace{0.5cm} -\end{frame} - - \end{document}