From 97af862d1bf4df9cc503cbd9ce8e657687804e3b Mon Sep 17 00:00:00 2001 From: wieerwill Date: Mon, 28 Mar 2022 21:52:38 +0200 Subject: [PATCH] Einleitung, Symmetrische & Assymetrische Krypt --- Network Security - Cheatsheet.pdf | 4 +- Network Security - Cheatsheet.tex | 817 ++++++++++++++---------------- 2 files changed, 391 insertions(+), 430 deletions(-) diff --git a/Network Security - Cheatsheet.pdf b/Network Security - Cheatsheet.pdf index c663d93..8efd7f0 100644 --- a/Network Security - Cheatsheet.pdf +++ b/Network Security - Cheatsheet.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4867f656876b98a45c3691d318a00e494de66f68e3111f7ba333b0bce8ab29b9 -size 881738 +oid sha256:24eef8918752268cb8c9a6a64eb93ff97b825c469ee26e0d98879aef2069eb73 +size 939863 diff --git a/Network Security - Cheatsheet.tex b/Network Security - Cheatsheet.tex index 15b8b2c..c2b3136 100644 --- a/Network Security - Cheatsheet.tex +++ b/Network Security - Cheatsheet.tex @@ -126,8 +126,6 @@ \setlength{\multicolsep}{1pt} \setlength{\columnsep}{2pt} - \section{Einleitung} - \subsection{Sicherheitsziele} \begin{description*} \item[Vertraulichkeit] Confidentiality, Anonymität @@ -189,9 +187,9 @@ \subsection{Analyse der Netzwerksicherheit} \begin{itemize*} \item Risikopotenzial der allgemeinen Bedrohungen für nutzenden Einheiten - \item Aufwand (Ressourcen, Zeit...) zur Durchführung bekannter Angriffe - \item Es ist im Allgemeinen unmöglich, unbekannte Angriffe zu bewerten - \item kann besser nach den feinkörnigeren Angriffen auf der Nachrichtenebene strukturiert werden + \item Aufwand (Zeit...) zur Durchführung bekannter Angriffe + \item im Allgemeinen unmöglich, unbekannte Angriffe zu bewerten + %\item kann besser nach den feinkörnigeren Angriffen auf der Nachrichtenebene strukturiert werden \end{itemize*} \subsection{Angriffe auf Nachrichtenebene} @@ -206,6 +204,8 @@ %\item Eine Sicherheitsanalyse einer Protokollarchitektur muss diese Angriffe entsprechend den Schichten der Architektur analysieren \end{itemize*} + \columnbreak + \subsection{Schutzmaßnahmen der Informationssicherheit} \begin{itemize*} \item Physische Sicherheit @@ -257,17 +257,15 @@ \end{itemize*} \end{itemize*} - \subsection{Kommunikationssicherheit} + \subsection{Sicherheitsdienste} \begin{itemize*} - \item Sicherheitsdienst: abstrakter Dienst, der bestimmte Sicherheitseigenschaft gewährleisten soll - \item Sicherheitsdienst kann sowohl mit Hilfe von kryptografischen Algorithmen und Protokollen als auch mit herkömmlichen Mitteln realisiert werden + \item abstrakter Dienst, der bestimmte Sicherheitseigenschaft gewährleisten soll + \item realisiert mit Hilfe von kryptografischen Algorithmen und Protokollen oder herkömmlichen Mitteln \item Dokument auf USB-Stick vertraulich, indem es verschlüsselt gespeichert und Datenträger in Tresor verschlossen - \item i.d.R. ist Kombination aus kryptografischen und anderen Mitteln am effektivsten + \item Kombination aus kryptografischen und anderen Mitteln am effektivsten \item Kryptographischer Algorithmus: mathematische Umwandlung von Eingabedaten in Ausgabedaten \item Kryptografisches Protokoll: Reihe von Schritten und Austausch von Nachrichten %zwischen mehreren Einheiten, um ein bestimmtes Sicherheitsziel zu erreichen \end{itemize*} - - \subsection{Sicherheitsdienste - Überblick} \begin{description*} \item[Authentifizierung] Authentication \begin{itemize*} @@ -321,13 +319,13 @@ \item Bekannte Chiffretext-Klartext-Paare \item Gewählter Klartext oder gewählter Chiffretext \item Differentielle Kryptoanalyse und lineare Kryptoanalyse - \item Neuere Entwicklung: verwandte Schlüsselanalyse + \item Neuer: verwandte Schlüsselanalyse \end{itemize*} \item Kryptoanalyse der Public-Key-Kryptographie \begin{itemize*} \item Schlüssel öffentlich zugänglich, kann ausgenutzt werden \item zielt eher darauf ab, das Kryptosystem selbst zu knacken - \item näher an reinen mathematischen Forschung als klassische Kryptoanalyse + \item näher an reinen mathematischen Forschung %als klassische Kryptoanalyse \item Berechnung von diskreten Logarithmen \item Faktorisierung von großen ganzen Zahlen \end{itemize*} @@ -351,13 +349,13 @@ Elektronen im Universum & $8,37 * 10^{77}$ \end{tabular} - \subsubsection{Wichtige Eigenschaften von Verschlüsselungsalgorithmen} + \subsubsection{Eigenschaften von Verschlüsselungsalgorithmen} \begin{itemize*} \item \textbf{Fehlerfortpflanzung} charakterisiert Auswirkungen von Bit-Fehlern bei Übertragung von Chiffretext zu rekonstruiertem Klartext \item Je nach Verschlüsselungsalgorithmus können pro fehlerhaftem Chiffretext-Bit ein oder mehrere fehlerhafte Bits im rekonstruierten Klartext vorhanden sein \item \textbf{Synchronisierung} charakterisiert die Auswirkungen verlorener Chiffretext-Dateneinheiten auf den rekonstruierten Klartext \item Einige Verschlüsselungsalgorithmen können sich nicht von verlorenem Chiffretext erholen und benötigen daher eine explizite Neusynchronisierung im Falle verlorener Nachrichten - \item Andere Algorithmen führen eine automatische Neusynchronisierung nach 0 bis n (n je nach Algorithmus) Chiffretextbits durch. + \item Andere Algorithmen führen eine automatische Neusynchronisierung nach 0 bis n (je nach Algorithmus) Chiffretextbits durch \end{itemize*} \subsection{Klassifizierung von Verschlüsselungsalgorithmen} @@ -387,13 +385,13 @@ \section{Symmetrische Kryptographie} \subsection{Symmetrische Verschlüsselung} \begin{itemize*} - \item Derselbe Schlüssel KA,B wird für die Verschlüsselung und Entschlüsselung von Nachrichten verwendet + \item Derselbe Schlüssel $K_{A,B}$ wird für die Verschlüsselung und Entschlüsselung von Nachrichten verwendet \item Wenn P die Klartextnachricht bezeichnet, bezeichnet $E(K_{A,B}, P)$ den Chiffretext und es gilt $D(K_{A,B}, E(K_{A,B}, P)) = P$ \item Alternativ schreibt man manchmal $P_{K_{A,B}}$ oder $E_{K_{A,B}}(P)$ \end{itemize*} \subsection{Symmetrische Block-Verschlüsselungsarten} - \subsubsection{Electronic Code Book Mode: ECB} + \subsubsection{Electronic Code Book Mode (ECB)} \begin{itemize*} \item Jeder Block $P_i$ der Länge $b$ wird unabhängig verschlüsselt: $C_i = E(K, p_i)$ \item Bitfehler in Chiffretextblock $C_i$ führt zu völlig falsch wiederhergestellten Klartextblock $P_i'$ @@ -404,7 +402,7 @@ \includegraphics[width=.6\linewidth]{Assets/NetworkSecurity-electronic-code-book-mode.png} \end{center} - \subsubsection{Cipher Block Chaining Mode: CBC} + \subsubsection{Cipher Block Chaining Mode (CBC)} \begin{itemize*} \item Vor Verschlüsselung eines Klartextblocks $P_i$ wird dieser mit dem vorangegangenen Chiffretextblock $C_{i-1}$ XOR-verknüpft \begin{itemize*} @@ -412,7 +410,7 @@ \item $P_{i'} = C_{i-1} \oplus D(K, C_i)$ \item Um $C_1$ zu berechnen, einigen sich beide Parteien auf einen Anfangswert (IV) für $C_0$ \end{itemize*} - \item Fehlerfortpflanzung: Ein verfälschter Chiffretextblock führt zu zwei verfälschten Klartextblöcken, da $P_i'$ mit $C_{i-1}$ und $C_i$ berechnet wird + \item Fehlerfortpflanzung: Ein verfälschter Chiffretextblock führt zu zwei verfälschten Klartextblöcken, da $P_i'$ aus $C_{i-1}$ und $C_i$ \item Synchronisation: Wenn die Anzahl der verlorenen Bits ein ganzzahliges Vielfaches von b ist, wird ein zusätzlicher Block $P_{i+1}$ verzerrt, bevor die Synchronisation wiederhergestellt wird %Wenn eine andere Anzahl von Bits verloren geht, ist eine explizite Neusynchronisation erforderlich \item Vorteil: identische Klartextblöcke werden zu nicht-identischem Chiffretext verschlüsselt \end{itemize*} @@ -420,13 +418,13 @@ \includegraphics[width=.6\linewidth]{Assets/NetworkSecurity-cipher-block-chaining-mode.png} \end{center} - \subsubsection{Ciphertext Feedback Mode: CFB} + \subsubsection{Ciphertext Feedback Mode (CFB)} \begin{itemize*} \item Ein Blockverschlüsselungsalgorithmus, der mit Blöcken der Größe b arbeitet, kann in einen Algorithmus umgewandelt werden, der mit Blöcken der Größe $j (j{} 512 | + \item Die Diskriminante der Kurve darf nicht Null sein, d.h. $4a^3+27b^2\not\equiv 0\ mod\ p$ sonst ist die Kurve degradiert %(eine sogenannte ,,singuläre Kurve'' ) + \item Menezes haben einen subexponentiellen Algorithmus für sogenannte ,,supersinguläre elliptische Kurven'' gefunden, der aber im allgemeinen Fall nicht funktioniert + \item Die konstruierten algebraischen Gruppen sollten so viele Elemente wie möglich haben + \item Viele Veröffentlichungen wählen die Parameter a und b so, dass sie nachweislich durch einen Zufallsprozess gewählt werden; so soll sichergestellt werden, dass die Kurven keine kryptographische Schwäche enthalten, die nur den Autoren bekannt ist + \item Die Sicherheit ist abhängig von der Länge von $p$ + \begin{tabular}{c|c|c} + Symmetrische A. & RSA & ECC \\\hline + 112 & 2048 & 224-255 \\ + 128 & 3072 & 256-383 \\ + 192 & 7680 & 384-511 \\ + 256 & 15360 & $>$512 + \end{tabular} \item Die Sicherheit hängt auch stark von der Implementierung ab \begin{itemize*} - \item Die verschiedenen Fälle (z.B. mit O) in der ECC-Berechnung können beobachtbar sein, d.h. Stromverbrauch und Zeitunterschiede - \item Angreifer können Seitenkanalangriffe ableiten, wie in OpenSSL 0.9.8 - \item Ein Angreifer kann die Bitlänge eines Wertes k in $kP$ ableiten, indem er die für den Quadrat- und Multiplikationsalgorithmus benötigte Zeit misst + \item Die verschiedenen Fälle in der ECC-Berechnung können beobachtbar sein, d.h. Stromverbrauch und Zeitunterschiede + \item Angreifer können Seitenkanalangriffe ableiten%, wie in OpenSSL 0.9.8 + \item Ein Angreifer kann die Bitlänge eines Wertes $k$ in $kP$ ableiten, indem er die für den Quadrat- und Multiplikationsalgorithmus benötigte Zeit misst \item Der Algorithmus wurde in OpenSSL frühzeitig abgebrochen, wenn keine weiteren Bits auf ,,1'' gesetzt wurden - \item Angreifer könnten versuchen, ungültige Punkte zu generieren, um Fakten über den verwendeten Schlüssel abzuleiten, wie in OpenSSL 0.9.8g, was zu einer Wiederherstellung eines vollen 256-Bit ECC-Schlüssels nach nur 633 Abfragen führte + \item Angreifer könnten versuchen, ungültige Punkte zu generieren, um Fakten über den verwendeten Schlüssel abzuleiten was zu einer Wiederherstellung eines vollen 256-Bit ECC-Schlüssels nach nur 633 Abfragen führte \end{itemize*} - \item Lektion gelernt: Machen Sie es nicht selbst, es sei denn, Sie müssen es tun und wissen, was Sie tun! + \item Lektion gelernt: Machen Sie es nicht selbst, es sei denn, Sie müssen es tun und wissen, was Sie tun \end{itemize*} \subsubsection{Weitere Anmerkungen} \begin{itemize*} - \item Wie bereits erwähnt, ist es möglich, kryptographische elliptische Kurven über $G(2^n)$ zu konstruieren, was in Hardware-Implementierungen schneller sein kann. - \item Wir haben auf Details verzichtet, da dies nicht viele neue Erkenntnisse gebracht hätte! - \item Elliptische Kurven und ähnliche algebraische Gruppen sind ein aktives Forschungsgebiet und ermöglichen weitere fortgeschrittene Anwendungen, z.B: + \item es ist möglich, kryptographische elliptische Kurven über $G(2^n)$ zu konstruieren, was in Hardware-Implementierungen schneller sein kann + \item Elliptische Kurven und ähnliche algebraische Gruppen sind ein aktives Forschungsgebiet und ermöglichen weitere fortgeschrittene Anwendungen \begin{itemize*} - \item Sogenannte Edwards-Kurven werden derzeit diskutiert, da sie robuster gegen Seitenkanalangriffe zu sein scheinen + \item Edwards-Kurven scheinen robuster gegen Seitenkanalangriffe \item Bilineare Paarungen ermöglichen \item Programme zu verifizieren, dass sie zur selben Gruppe gehören, ohne ihre Identität preiszugeben - \item Öffentliche Schlüssel können strukturiert werden, z.B. ,,Alice'' als öffentlicher Schlüssel für Alice verwenden + \item Öffentliche Schlüssel können strukturiert werden%, z.B. ,,Alice'' als öffentlicher Schlüssel für Alice verwenden \end{itemize*} - \item Bevor Sie elliptische Kurvenkryptographie in einem Produkt einsetzen, stellen Sie sicher, dass Sie keine Patente verletzen, da es noch viele gültige Patente in diesem Bereich gibt! \end{itemize*} \subsection{Schlussfolgerung} \begin{itemize*} - \item Asymmetrische Kryptographie erlaubt es, zwei verschiedene Schlüssel zu verwenden: + \item Asymmetrische Kryptographie erlaubt es, zwei verschiedene Schlüssel zu verwenden \begin{itemize*} \item Verschlüsselung / Entschlüsselung \item Signieren / Überprüfen \end{itemize*} - \item Die praktischsten Algorithmen, die immer noch als sicher gelten, sind: - \begin{itemize*} - \item RSA, basierend auf der Schwierigkeit, diskrete Logarithmen zu faktorisieren und zu lösen - \item Diffie-Hellman (kein asymmetrischer Algorithmus, sondern ein Schlüsselvereinbarungsprotokoll) - \item ElGamal, wie DH basierend auf der Schwierigkeit, diskrete Logarithmen zu berechnen - \end{itemize*} - \item Da ihre Sicherheit vollständig auf der Schwierigkeit bestimmter mathematischer Probleme beruht, stellt der algorithmische Fortschritt ihre größte Bedrohung dar. + \item die praktischsten Algorithmen, die immer noch als sicher gelten + \begin{description*} + \item[RSA] diskrete Logarithmen faktorisieren und lösen + \item[Diffie-Hellman] Schlüsselvereinbarungsprotokoll + \item[ElGamal] wie DH basierend auf diskreten Logarithmen + \end{description*} + \item Da ihre Sicherheit vollständig auf der Schwierigkeit bestimmter mathematischer Probleme beruht, stellt der algorithmische Fortschritt ihre größte Bedrohung dar \item Praktische Überlegungen: \begin{itemize*} - \item Asymmetrische kryptografische Operationen sind um Größenordnungen langsamer als symmetrische Operationen. - \item Daher werden sie oft nicht für die Verschlüsselung/Signierung von Massendaten verwendet. - \item Symmetrische Verfahren werden zur Verschlüsselung / Berechnung eines kryptografischen Hashwerts verwendet, während die asymmetrische Kryptografie nur zur Verschlüsselung eines Schlüssels / Hashwerts eingesetzt wird. + \item Asymmetrische kryptografische Operationen sind um Größenordnungen langsamer als symmetrische Operationen + \item Daher werden sie oft nicht für die Verschlüsselung/Signierung von Massendaten verwendet + \item Symmetrische Verfahren werden zur Verschlüsselung / Berechnung eines kryptografischen Hashwerts verwendet, während die asymmetrische Kryptografie nur zur Verschlüsselung eines Schlüssels / Hashwerts eingesetzt wird \end{itemize*} \end{itemize*} + \columnbreak + \section{Modifikationsprüfwerte} \subsection{Motivation} \begin{itemize*}