Anpassungen für LinuxWorks!
authorratten <ratten@buecherratten.in-berlin.de>
Sun, 10 Dec 2023 11:28:10 +0000 (12:28 +0100)
committerratten <ratten@buecherratten.in-berlin.de>
Sun, 10 Dec 2023 11:28:10 +0000 (12:28 +0100)
Cryptopolicies-Handout.pdf
Cryptopolicies-presi.pdf
Cryptopolicies.tex

index 409d618040925096d8c8ccd58cd6842eec2be910..8c547b9d775a59013c6f5a2ed76f9702fa6988e8 100644 (file)
Binary files a/Cryptopolicies-Handout.pdf and b/Cryptopolicies-Handout.pdf differ
index 447fb94e7998d11f5dcb711c4f28a4346cc5a382..ca2d1f749a9babad42abb596b8f91b4d81d1820e 100644 (file)
Binary files a/Cryptopolicies-presi.pdf and b/Cryptopolicies-presi.pdf differ
index 1242595a1f487efabf6fa12535fb8d11167c7a31..82ab0eefda1abfe49b42387fbbb842f6acef4328 100644 (file)
 \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{BeLUG}}
+\institute{\textbf{LinuxWorks!}}
 
 \date{Dezember 2023}
 
     \end{columns}
 \end{frame}
 \setbeamercovered{invisible}
-  \section{Einführung Crypto-Policies}
 \subsection{bisherige Kryptographie Einstellungen}
+
+ \subsection{bisherige Kryptographie Einstellungen}
 
 \begin{frame}
   \frametitle{Kryptographie im System bisheriger Stand}
   \item{findet es easy mal eben Systemweit zB SHA1 auszuschalten?}
   \end{itemize}
 \end{frame}
-
 \setbeamercovered{transparent}
 
 \begin{frame}[fragile]
@@ -326,16 +325,73 @@ MACs hmac-sha2-256,hmac-sha2-512,hmac-sha1
   \note{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}
+
+\begin{frame}[fragile]
+  \frametitle{Debugging des SSH-Fehlers}
+  \framesubtitle{Was läuft hier?}
+  \begin{itemize}
+  \item{\mintinline{bash}{ssh -oKexAlgorithms=ecdh-sha2-nistp256} wird benötigt}
+    \pause
+  \item{Algorithmus-Änderungen in /etc/ssh/sshd\_config ohne Effekt}
+    \pause
+  \item{sshd-Unit?}
+\begin{minted}[fontsize=\footnotesize,breakanywhere,escapeinside=||]{console}
+[root@crypt-arbeit8 ~]# systemctl status sshd
+* sshd.service - OpenSSH server daemon
+   Loaded: loaded (/usr/lib/systemd/system/sshd.service)
+   Active: active (running) since 6min ago
+     Docs: man:sshd(8)
+           man:sshd_config(5)
+ Main PID: 669 (sshd)
+    Tasks: 1 (limit: 11160)
+   Memory: 6.4M
+   CGroup: /system.slice/sshd.service
+           \-669 /usr/sbin/sshd -D |\colorbox{green}{-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}|
+\end{minted}
+  \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Debugging des SSH-Fehlers}
+  \framesubtitle{die mysteriöse Variable}
+  \begin{itemize}
+  \item{die Service Unit /usr/lib/systemd/system/sshd.service}
+    \begin{minted}[fontsize=\footnotesize,escapeinside=||]{linux-config}
+[Unit]
+Description=OpenSSH server daemon
+Documentation=man:sshd(8) man:sshd_config(5)
+After=network.target sshd-keygen.target
+Wants=sshd-keygen.target
+[Service]
+Type=notify
+EnvironmentFile=|\colorbox{green}{-/etc/crypto-policies/back-ends/opensshserver.config}|
+EnvironmentFile=-/etc/sysconfig/sshd
+ExecStart=/usr/sbin/sshd -D $OPTIONS |\colorbox{green}{\$CRYPTO\_POLICY}|
+ExecReload=/bin/kill -HUP $MAINPID
+KillMode=process
+Restart=on-failure
+RestartSec=42s
+[Install]
+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}
+\end{frame}
+
+\section{Einführung Crypto-Policies}
 \subsection{Die Idee hinter Crypto-Policies}
 
 \begin{frame}
-  \frametitle{Idee: ein Ort für Systemweite Crypto-Einstellungen}
+  \frametitle{Einführung Crypto-Policies}
+  \framesubtitle{Idee: ein Ort für Systemweite Crypto-Einstellungen}
   \small{
   \begin{itemize}
-  \item{alle Crypto für TLS, IPsec, SSH, DNSSec, Kerberos, etc. wird über ein systemweites Tool eingestellt}
-  \item{Die Cipher Suite wird an einem Ort konfiguriert und überschreibt die Tool-Konfiguration}
+  \item{alle Crypto über ein systemweites Tool eingestellen}
+  \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{bisher in Fedora, RHEL, CentOS, OpenSuse, Oracle Linux, Ubuntu, Debian-sid(testing), ...}
   \item{Entwicklung:
     \begin{columns}
@@ -349,6 +405,7 @@ MACs hmac-sha2-256,hmac-sha2-512,hmac-sha1
   \item{Eigenentwicklung von RedHat, Idee findet jedoch Konsens in Community}
   \end{itemize}
   }
+  \note{Cryptopolicies werden über Python umgesetzt}
   \vspace{0.5cm}
 \end{frame}
 
@@ -358,21 +415,20 @@ MACs hmac-sha2-256,hmac-sha2-512,hmac-sha1
   \small{
   Wofür können Crypto-Policies momentan verwendet werden:
   \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)}
+  \item{libssh SSH2 protocol implementation}
+  \item{sequoia PGP, outside of rpm-sequoia}
+  \item{rpm-sequoia PGP backend}
+  \item{BIND DNS}
+  \item{GnuTLS}
+  \item{Kerberos 5}
+  \item{Libreswan IPsec and IKE protocol implementation}
+  \item{NSS TLS library}
+  \item{OpenJDK runtime environment}
+  \item{OpenSSH SSH2}
+  \item{OpenSSL TLS library}
   \end{itemize}}
   weitere Libraries sind in aktiver Entwicklung.
   \vspace{0.5cm}
-  \note{Crypto-Policies nutzen die Bibliotheken der Tools im Fall von SSH sind das libssh und OpenSSH als Optionen für Scopes.}
 \end{frame}
 
 \begin{frame}
@@ -393,7 +449,7 @@ MACs hmac-sha2-256,hmac-sha2-512,hmac-sha1
   \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}
 \end{frame}
 
-\begin{frame}[fragile]
+\begin{frame}[fragile]  
   \frametitle{Policies anzeigen und setzen}
   \vspace{-0.5cm}
   \begin{itemize}
@@ -417,63 +473,10 @@ MACs hmac-sha2-256,hmac-sha2-512,hmac-sha1
 
 \section{Problemlösungsweg}
 
-\subsection{Debugging}
-\begin{frame}[fragile]
-  \frametitle{Debugging}
-  \framesubtitle{Was läuft hier?}
-  \begin{itemize}
-  \item{\mintinline{bash}{ssh -oKexAlgorithms=ecdh-sha2-nistp256} wird benötigt}
-    \pause
-  \item{Algorithmus-Änderungen in /etc/ssh/sshd\_config ohne Effekt}
-    \pause
-  \item{sshd-Unit?}
-\begin{minted}[fontsize=\footnotesize,breakanywhere,escapeinside=||]{console}
-[root@crypt-arbeit8 ~]# systemctl status sshd
-* sshd.service - OpenSSH server daemon
-   Loaded: loaded (/usr/lib/systemd/system/sshd.service)
-   Active: active (running) since 6min ago
-     Docs: man:sshd(8)
-           man:sshd_config(5)
- Main PID: 669 (sshd)
-    Tasks: 1 (limit: 11160)
-   Memory: 6.4M
-   CGroup: /system.slice/sshd.service
-           \-669 /usr/sbin/sshd -D |\colorbox{green}{-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}|
-\end{minted}
-  \end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-  \frametitle{Debugging}
-  \framesubtitle{die mysteriöse Variable}
-  \begin{itemize}
-  \item{die Service Unit /usr/lib/systemd/system/sshd.service}
-    \begin{minted}[fontsize=\footnotesize,escapeinside=||]{linux-config}
-[Unit]
-Description=OpenSSH server daemon
-Documentation=man:sshd(8) man:sshd_config(5)
-After=network.target sshd-keygen.target
-Wants=sshd-keygen.target
-[Service]
-Type=notify
-EnvironmentFile=|\colorbox{green}{-/etc/crypto-policies/back-ends/opensshserver.config}|
-EnvironmentFile=-/etc/sysconfig/sshd
-ExecStart=/usr/sbin/sshd -D $OPTIONS |\colorbox{green}{\$CRYPTO\_POLICY}|
-ExecReload=/bin/kill -HUP $MAINPID
-KillMode=process
-Restart=on-failure
-RestartSec=42s
-[Install]
-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}
-\end{frame}
-
 \subsection{erste Lösung}
 \begin{frame}[fragile]
   \frametitle{erste Lösung}
-  \framesubtitle{das Backend}
+  \framesubtitle{das Backend bearbeiten}
   \begin{itemize}    
   \item{\mintinline{bash}{update-crypto-policies --show}}
   \item{FIPS}
@@ -489,11 +492,12 @@ WantedBy=multi-user.target
 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'
     \end{minted}
   \end{itemize}
-  \note{Einstellungen im Backend halten bis zum Reboot}
+  \note{Einstellungen im Backend halten bis zum Reboot / Sinnvoll wäre gewesen in die Manpage zu schauen!}
 \end{frame}
 
-\subsection{Versprechung oder Werbung?}
+\subsection{Man-Page}
 
+\setbeamercovered{invisible}
 \begin{frame}[fragile]
   \frametitle{Umfrage}
   \framesubtitle{Eurer Meinung nach...}
@@ -512,6 +516,8 @@ CRYPTO_POLICY='-oCiphers=aes256-gcm@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm
   \item{ist keine Anleitung zu dem Programm}
   \end{itemize}  
 \end{frame}
+\setbeamercovered{transparent}
+
 
 \begin{frame}[fragile]
   \frametitle{Crypto-Policy Man-Page}
@@ -610,13 +616,21 @@ Authenticated to crypt-arbeit9 ([192.168.2.107]:22).
   \note{In Alma- und Rocky Linux tritt der gleiche Fehler auf, jedoch nicht in Fedora 37}
 \end{frame}
 
-\section{Problemlösungs\-möglichkeiten}
+\section{Wie mit Crypto-policies richtig umgehen?}
 
-\subsection{Policy Hand made}
+\subsection{Policy Definition vom Scratch}
+\begin{frame}
+  \frametitle{Policy Definition hand made}
+  \begin{itemize}
+  \item{im Ordner /etc/crypto-policies/policies oder /usr/share/crypto-policies/policies}
+  \item{Dateiname muss GROSS geschrieben werden}
+  \item{Dateiextension ist .pol}
+  \end{itemize}
+\end{frame}
 
-\subsubsection{configuration Parameter}
 \begin{frame}
-  \frametitle{Konfigurations-Parameter}
+  \frametitle{Hand made Crypto Policy}
+  \framesubtitle{Konfigurations-Parameter}
   \footnotesize{
   möglich Parameter innerhalb von Konfigurationsdateien:
   \begin{itemize}
@@ -669,16 +683,6 @@ Authenticated to crypt-arbeit9 ([192.168.2.107]:22).
   \end{itemize}
 \end{frame}
 
-\subsubsection{policy Definition vom Scratch}
-\begin{frame}
-  \frametitle{Policy Definition Hand-Made}
-  \begin{itemize}
-  \item{im Ordner /etc/crypto-policies/policies oder /usr/share/crypto-policies/policies}
-  \item{Dateiname muss GROSS geschrieben werden}
-  \item{Dateiextension ist .pol}
-    \end{itemize}
-\end{frame}
-
 \begin{frame}[fragile,shrink]
   \frametitle{policy from scratch}
   \framesubtitle{Beispiel FIPS (stark gekürzt)}
@@ -708,7 +712,7 @@ ssh_etm = 1
   \vspace{-0.3cm}
 \end{frame}
 
-\subsubsection{Policy Module - Hand made}
+\subsection{Policy Module - Hand made}
 \begin{frame}
   \frametitle{Mit Modulen bestehende Policies erweitern}
   \begin{itemize}
@@ -1011,6 +1015,24 @@ cipher@libssh = AES-256-CBC+
 \end{block}
 \end{frame}
 
+\begin{frame}<beamer:0>
+  \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}<beamer:0>
   \frametitle{Deaktivierte Cipher suites}
   \begin{itemize}