Kryptografie/tmp: Unterschied zwischen den Versionen
K Dirkwagner verschob die Seite Kryptografie/TMP nach Kryptografie/tmp, ohne dabei eine Weiterleitung anzulegen |
Keine Bearbeitungszusammenfassung |
||
Zeile 734: | Zeile 734: | ||
=== Weblinks === | === Weblinks === | ||
# https://bettercrypto.org/ | # https://bettercrypto.org/ | ||
[[Kategorie:Tmp]] |
Version vom 31. Mai 2023, 09:24 Uhr
Einleitung
- Kryptografie ist eine elementare Technologie zum Aufbau sicherer Netzwerke
- wesentliche Technologien werden kurz vorgestellt
- Diffie Hellmann Schlüsselaustausch
- Hash-Funktionen besprochen
- Kryptografie ist ein Teilbereich der Kryptologie
- die zusätzlich auch die Kryptoanalyse behandelt
- Diese beiden Disziplinen der theoretischen Mathematik
- versuchen die Vertraulichkeit eines Textes zu garantieren oder zu brechen
Kryptografie
- Griech. = krypto (geheim), graph (Schrift)
- Kryptografie behandelt die Verschlüsselung (encryption) einer Information vom Klartext (plain text) in eine nicht verständliche Darstellung (Verschlüsselter Text)
- Verschlüsselung muss so erfolgen, dass Befugte die Information bei einer Entschlüsselung wieder lesen können (decryption)
- Kryptografie wir oft zur Authentifizierung eingesetzt
- Dabei werden die verschlüsselten Texte mit gespeicherten Texten verglichen
- Dabei wird verglichen, ob sie gleich sind oder Abweichungen enthalten
Motivation
siehe Kryptografie/Motivation
Entwicklung
siehe Kryptografie/Entwicklung
Kryptografie
Grundlagen
Kryptografie - Terminologie
Teilbereiche der Kryptografie
Kryptografie
- Durchführung und Studium von Ver- und Entschlüsselung
- Daten werden mathematisch so kodiert, dass nur ausgewählte Personen die Daten decodieren können
- Dazu werden lesbare Daten (Klartext) durch einen mathematischen Algorithmus mit einem geheimen Schlüssel kodiert (Chiffretext)
- Ziel ist eine möglichst sichere Kryptografie
Kryptoanalyse
- Hier ist das Ziel eine Kryptografie zu brechen und so
- Sicherheitslücken zu entdecken
Das Problem
Nur Bob soll die Nachricht von Alice empfangen können…
Die Lösung
Klassische Kryptografie
- Der Klartext (K) wird mittels eines Schlüssels verschlüsselt.
- Mit Hilfe des selben Schlüssels kann der Geheimtext (G) wieder entschlüsselt werden.
Kryptografie - Terminologie (II)
Axiome der Kryptoanalyse
siehe Kerckhoffs’_Prinzip
Geheime Übermittlung
Voraussetzungen
- Der Empfänger kennt den Schlüssel
- aber sonst niemand
- Ohne Kenntnis des Schlüssels
- ist es unmöglich oder sehr schwierig den Klartext herauszufinden
Schwierigkeiten
- Schlüssel muss vorher vereinbart werden
- Schlüssel muss geheim bleiben „geheimer Kanal“
- Das Kryptografiesverfahren muss sicher sein
Vorhängeschloss-Analogie
- Der Klartext ist „eingeschlossen“, und nur Alice und Bob haben den richtigen Schlüssel für das Schloss.
Kryptographisches Grundprinzip
Umwandlung eines Klartextes
- (p, plain text) in einem chiffrierten Text (c, ciphertext)
- mit Hilfe einer reversiblen kryptographischen Funktion f:
symmetrische und asymmetrische Algorithmen
- Kryptografie / Entschlüsselung
- Schlüssel als zusätzliches Argument zu Funktion f
Verschlüsseln mit symmetrischen Verfahren
Kryptografie und Entschlüsselung mit selbem Schlüssel
- DES, IDEA
- Effizient, aber Schlüsselaustauschproblem
Ver- und Entschlüsselung mit symmetrischer Kryptografie
Man-in-the-Middle
- Der Man-in-the-Middle (Mellory)
- schaltet sich zwischen eine Kommunikation
- fängt die gesendeten Datenpakete ab
- Diese kann er nun entschlüsseln, verändern, verschlüsseln und unbemerkt an den Empfänger weiterleiten
- Alice und Bob glauben direkt miteinander zu kommunizieren
- Dies ist jedoch nur möglich, wenn der Mellory die Möglichkeit hatte an der Verteilung der öffentlich Schlüssel einen Manipulation vorzunehmen
- Wird der Schlüssel über ein zuverlässiges Medium übertragen
- ist der Diffie-Hellman-Algorythmus gegen solche Angriffe geschützt
Asymmetrischer Kryptografie/public key-Kryptografie
Public Key Kryptografie
Ver- und Entschlüsselung mit verschiedenen Schlüsseln
- “Vergleichbar mit einem Briefkasten - jeder kann etwas hinein werfen, aber nur einer kann es herausnehmen.”
- Schlüssel-Paare: Öffentlicher und privater Schlüssel
- z. B. : RSA, ElGamal, Elliptische Kurven (ECC)
- Problem
- Meist ineffizienter als symmetrische Verfahren
- deshalb häufig nur zum Austausch symmetrischer Schlüssel und für Unterschriften
- Der private Schlüssel darf aus dem öffentlichen nicht errechenbar sein
- Einwegfunktion mit Falltür
- Nur unter Kenntnis einer zusätzlichen Information effizient umkehrbar
- z. B. x = loga y mod n (RSA-Verfahren) unter Kenntnis der Primfaktoren
Transposition vs. Substitution
Transposition
- jeweils 2 aufeinander folgende Buchstaben vertauschen
- wodurch sich neue Wörter ergeben
- wir auch als Scambling (Verwürfelung) bezeichnet
- Beispiel
- Netz = Enzt
- Einsatzgebiet
- drahtlose Übertragungstechniken
Substitution
- Bei der Substitution werden die Buchstaben des Klartextes im Geheimtext durch andere ersetzt
- Dabei wird jeder Buchstabe durch den ersetzt, der im Alphabet 3 Stellen weiter hinten steht.
- Cäsar-Addition
- Beispiel
- Netz = Qhzc
Symmetrische Substitution
Sender und Empfänger müssen den gleichen Schlüssel besitzen
- um miteinander Kommunizieren zu können
- Secret-Key-Verfahren
- Eignet sich gut, um große Datenmengen zu verschlüsseln
- Nachteil
- Um die Nachricht verwerten zu können, muss der Schlüssel mit übertragen werden
- was einen Schwachpunkt darstellt
Symmetrische Substitutionsverfahren
Klassifizierungen
- Zeichenchiffren
- Blockchiffren
- Stromchiffren
- Zeichenchiffrierung
- Ermittelt jedes Zeichen des Geheimtextes aus dem entsprechenden Zeichen des Klartextes mit Hilfe des Schlüssels
- Cäsar-Addition
- Stromchiffrierung
- Der Klartext wird Byte-weise über eine XOR-Operation verschlüsselt
- Sie Erzeugt eine sich zyklisch verändernde Byte-Folge, die mit dem Klartext verknüpft wird
- Blockchiffrierung
- Klartext wird in Bitgruppen geteilt
- über mehrstufige Verfahren mit dem Schlüssel über gleichbleibende Operationen in Geheimtext umgewandelt
- DES
Asymmetrische Substitution
- Es werden 2 komplementäre Schlüssel benötigt
- 1 Key zum chiffrieren der Nachricht
- 2 Key zum dechiffrieren der Nachricht
- Einer der Schlüssel kann gefahrlos öffentlich bekannt gegeben werden (Public-Key)
- Wird mit einem Schlüssel chiffriert
- kann nur mit dem anderen Schlüssel dechiffriert werden
Vorteile von Public-Key-Verfahren
- Jeder Kommunikationspartner benötigt einen Schlüssel
- seinen Private Key
- Der zweite Schlüssel wird veröffentlicht
- Nachteil
- Hohe Komplexität der durchzuführenden Operationen
- Die Multiplikation 2 Zahlen stellt eine einfache Operation dar
- während der umgekehrte Vorgang, also die Faktorzerlegung eines Produkts, einen enormen Rechenaufwand bedeuten kann
Absicherung der asymmetrischen Substitution
- Schwäche
- keine eindeutige Zuordnung des öffentlichen Schlüssels zu seinem Besitzer
- Ein „Man-in-the-Middle“ könnte sich dazwischen schalten und die Nachrichten unbemerkt entschlüsseln
- Informationen des öffentlichen Schlüssels und seines Besitzers sollten aus vertrauenswürdiger Quelle stammen
- Möglichkeiten im Rahmen der Public Key Infrastructure (PKI)
- Schlüssel kann über ein sicher betrachtetes Medium übertragen werden
- Beispiel
- Persönliche Übergabe, Telefon, Brief, Fax
- Identität des Schlüsselinhabers Zertifizieren lassen
Trust Center
Certification Authority [CA]
- Zertifizierungsinstanz (Trust Center)
- Zur Überprüfung der Schlüsselinhaber
- Sender und Empfänger verwalten Listen von Zertifizierungsinstanzen
- Überprüfung Zusammenhang öffentlicher Schlüssel und deren Absender
- Zertifikat nach ITU-Standard X.509
- ALTERNATIVE
- Authentizität eines öffentlichen Schlüssels durch einen bekannten Kommunikationspartner bestätigen lassen
- „Web of True“ von PGP
Message Authentication Code
siehe Message Authentication Code
Substitution vs. Signatur
- Algorithmen asymetrischer Kryptografieen unterscheiden sich
- ob eine Nachricht verschlüsselt oder signiet werden soll
Substitution
- Absender verschlüsselt die Nachricht mit dem öffentlichen Schlüssel des Empfängers
- so, dass er sie mit seinem privaten Schlüssel wieder im Klartext lesen kann
Signatur
- Absender erzeugt mit seinem privatem Schlüssel eine Signatur
- Empfänger kann durch Verwendung des öffentlichen Schlüssel des Absenders die Nachricht verifiziert
Tunneling
siehe Kryptografie/Tunneling
Wie baut man eine sicheren Block Cipher?
Probleme bei der Entwicklung von Kryptografiesverfahren
Vertraulichkeit | Schutz der Daten vor unberechtigter Einsichtnahme |
Authentisierung | Sicherstellung der Herkunft, Verbindlichkeit |
Anonymität | Schutz vor Bekanntwerden des Absenders und Empfängers |
Integrität | Unveränderlichkeit von Daten und Verlässlichkeit von Programmen |
Mary Stuart 1516 - 1558
Bekanntes Opfer der Kryptoanalye
Shannon‘s Principle of Confusion
Substitution Cipher
Shannon‘s Principle of Diffusion
Transposition Cipher
Angriffe auf Kryptografie
siehe Kryptografie/Angriffe
Schlüsselaustausch
siehe Kryptografie/Key-Exchange
Symmetrische Kryptografieverfahren
Einfachster Einsatz
- basiert auf der logischen Exklusiv-Oder-Funktion
- 2 XOR Verknüpfung eines A Zeichens mit einem B hat wieder das ursprüngliche Zeichen A zum Ergebnis
- Es entspricht also der Inversen Verknüpfung:
- (A+B)+B=A+(B+B)Assoziativgesetz=A+0Eigenschaft von XOR=AEigenschaft von XOR
- Der Sender verschlüsselt ein Zeichen A mit einem Schlüssel B per XOR und versendet das Ergebnis
- Der Empfänger verknüpft das Ergebnis erneut mit Schlüssel B und erhält dann wieder das Zeichen A
Symmetric Algorithms: Block Ciphers
Some Popular Block Ciphers
Symmetric Algorithms: Stream Ciphers
RC4
RC = Rivest Cipher
- Stromverschlüsselungsverfahren
- Basiert auf XOR-Verknüpfung
- Sehr schnell und einfach
- Eignet sich gut in Software
- Der Algorythmus macht aus dem eingegebenen Schlüssel S einen langen, pseudo-zufälligen internen Schlüssel P
- Dieser wird zur Chiffrierung des Klartextes verwendet
- RC4 Speichert 258 verschiedene Zusatzinformationen
- 256 sind Permutationen von 0-255 und somit gleich verteilt
DES
Familie der Blockchiffren
- Teilt eine Nachricht in 64 Bit große Datenblöcke
- 3 bearbeitungsschritte werden benötigt, um den Klartext wieder herzustellen.
- Am weitesten verbreiteter Algorythmus, auch wenn nicht mehr ganz Zeitgemäß
- Nachfolger: 3DES
- Wird in Finanzdienstleistungen eingesetzt und führt die Kryptografie 3 mal hintereinander aus
Data Encryption Standard (DES)Sicherheit von DES
- DES
- erlaubt mit 56 Bit Schlüssellänge
- 72 Billiarden mögliche Schlüssel
- ist heute nicht mehr ausreichend
- per Brute-Force-Methode in 5 Tagen (?) geknackt
Permutation
- DES besteht aus 3 Bearbeitungsschritten
- Initiale Permutation
- Ver-/Entschlüsselung in mehreren Runden
- finale Permutation
- DES wurde in den 70er Jahren zur Implementation in Hardware entwickelt
- durch die damals noch kleinen CPU Register
- Finale Permutation = Inverse der initialen Permutation
- Nach der Durchführung der initialen und finalen Permutation, steht ein Bit wieder an ursprünglicher Stelle
Kryptografie
- DES basiert auf einer 64 Bit Kryptografie
- wovon jedoch nur 56 Bit kryptographisch relevant sind
- Jedes 8 Bit = Parity-Bit
- DES erzeugt 16 verschiedene 48 Bit lange Schlüssel
- Es werden aus 56 relevanten Bit mit einer Permutation 2 28 Bit Muster generiert (C[i-1] und D[i-1]).
- Die Teilschlüssel werden nun um 1 oder 2 Bit nach links rotiert.
- Die erzeugten Schlüssel C[i] und D[i] werden zu C[i-1] und D[i-1].
- 2 24Bit Folgen aus C[i] und D[i] werden zum Schlüssel K[n]
Kryptografie
- DES teilt den Klartext in 64 Bit Blöcke und
- splittet sie nochmal in 2 32 Bit lange Bestandteile (L[n] und R[n]).
- R[n] wird über eine Mangler-Funktion ,mittels tabellenbasierter Umrechnung auf Grundlage der Eingangsvariable R[n] und des Schlüssels K[n], vermischt.
Genügen 128 Bit?
- IDEA
- International Data Encryption Algorithm
- arbeitet mit 128 Bit Schlüssellänge, sonst ähnlich wie der DES
- 3.43669 * 1038
- knacken benötigt etwa 1012 Jahre
- Daher gilt der IDEA heute als sicher
Asymmetrische Kryptografieverfahren
Setzen auf 2 unterschiedliche Schlüssel
- Privater Schlüssel (privat key) [Dechiffriert-Algorythmisch]
- Öffentlicher Schlüssel (public key) [Chiffriert-Algorythmisch]
- Es lässt sich nicht vom public key auf den private key schließen
- Der public key kann von Dritten zur Kryptografie von Informationen genutzt werden
- die der Besitzer des private keys nur entschlüsseln kann
Bekanntester Vertreter
- RSA-Algorythmus
- Die Multiplikation 2er Zahlen stellt eine einfache Operation dar
- während der umgekehrt Vorgang eine enorme Rechenleistung bedeutet
RSA
Basiert auf folgenden 4 Schritten
- Wähle 2 große Primzahlen p und q, die geheim bleiben
- Berechne das Produkt n = p*q
- Für öffentlichen Schlüssel wähle e < n
- die teilerfremd zur Eulerschen Funktion E(n) = (p-1)*(q-1) ist
- Für privaten Schlüssel bestimme eine Zahl
- d = e^-1 mod E(n)
- Dann gilt
- e*d = 1 mod E(n)
- [d,n] ist der private Schlüssel
RSA
Algorithmus bei der Kryptografie
- Alice verschlüsselt
- ihren Klartext m gemäß c = m^e mod n und
- sendet ihn an Bob.
- In diesem Fall ist [e,n] der öffentliche Schlüssel von Bob
- Bob entschlüsselt
- den Geheimtext c mit seinem privaten Schlüssel [d,n] gemäß m = c^d mod n
- und erhält auf Grund des Zusammenhangs von d und e den Klartext m
RSA
- Der Empfänger führt bei der Entschlüsselung die gleiche Operation wie der Sender bei der Kryptografie durch
- Algorythmus zur Erzeugung und Überprüfung von Signaturen
- Alice sendet eine signierte Nachricht, indem sie s = m^d mod n erzeugt und überträgt
- [d,n] = Privater Schlüssen von Alice
- Bob entschlüsselt die Signatur gemäß m = s^e mod n und erhält auf Grund des Zusammenhangs von d und e den Klartext m
- [e,n] = öffentlicher Schlüssel von Alice
Advanced Encryption Standard
- Nachfolgestandard für DES
- 3DES mit 128 Bit gilt noch als sicher
- wegen der Dreifachverschlüsselung deutlich langsamer als AES
- AES unterstützt 128, 192 und 256 Bit lange Schlüssel
- Beispiel Hamachi
- AES mit 256 Bit Schlüssellänge
- im Modus Cipher-Block-Chaining
Advanced Encryption Standard (AES)http://www.nist.gov/aes
- DES is nearly 25 years old!
- Triple DES with a 168 bit key is the current Federal Information Processing Standard FIPS 46-3 (renewed in October 1999).
- Single DES with 56 bit key is permitted for legacy systems only.
- Evaluation of an Advanced Encryption Standard
- The National Institute of Standards and Technology (NIST,U.S. Department of Commerce) started a public contest in 1997.
- 5 final candidate algorithms. Decision by NIST in Spring 2001
- Requirements for AES
- AES shall be publicly defined.
- AES shall be a symmetric block cipher.
- AES shall be implementable in both hardware and software.
- AES shall be designed so that the key length may be increased as needed.
- AES block size n = 128 bits, key size k = 128, 192, 256 bits
AES Round 2 Finalists
- MARS(IBM)
- Modified Feistel Network - 32 Rounds
- Based on Mixed Structure DES
- RC6 (RSA)
- Feistel Network - 20 Rounds
- Based on Modified RC5
- Rijndal(Joan Daemen / Vincent Rijmen)
- Modified Substitution Permutation Network - 10 Rounds
- Based on Square
- Serpent (Ross Anderson / Eli Biham / Lars Knudsen)
- Substitution Permutation Network - 32 Rounds
- Based on Bitlice Operations
- Twofish(Bruce Schneier)
- Feistel Network - 16 Rounds
- Based on Modified Blowfish
Cipher Block Chaining (CBC)
- Um eine Frquenzanalyse zu verhindern wird eine Verkettung von Datenblöcken durchgeführt
- Dabei wird der zu verschlüsselnde Datenblock exklusiv mit dem letzten verschlüsselten Datenblock verknüpft
- Gleiche Datenblöcke werden so unterschiedlich modifiziert und unterschiedlich verschlüsselt
- Problem: Erste Datenblock
- Erzeugung eines Initialisierungs-Vekros (IV)
- Der IV wird zur Entschlüsselung benötigt
- daher wird er dem Empfänger übermittelt
- Vertraulichkeit ist nicht erforderlich
- IPsec – Protokolle übertragen den IV in jedem Datenpaket
Advanced Encryption Standard
CBC-Mode Entstehung von Mustern
- Rückschlüsse auf den Klartext
- Anders als der ECB-Mode (Electronic Code Book) verhindert der CBC-Mode (Cipher Block Chaining) bei Kryptografiesalgorithmen die Entstehung von Mustern im Chiffrat,
- Dazu lässt CBC das Ergebnis der vorherigen Blockoperation in die aktuelle einfließen (Chaining)
- Sowohl ECB als auch CBC sind für so genannte Bit-Flipping-Attacken anfällig
- Angreifer versucht im Chiffrat einzelne Bit manipulieren
- ohne Kenntnis des Schlüssels
- ohne später beim Entschlüsseln durch den Empfänger einen Fehler zu provozieren
- auch für verschlüsselte Pakete die Integrität gesichert werden, etwa mit HMAC
- Da sich so der Inhalt manipulieren lässt
- In CBC werden jeweils Blöcke von jeweils 16 Datenbytes verschlüsselt
- Das CBC-Verfahren initialisiert mit einem zufällig gewählten 128 Bit langen Initialisierungsvektor
- wird bei ESP-Paket den chiffrierten Nutzdaten vorangestellt
- Da Daten blockweise verschlüsselt werden
- muss der letzte Datenblock mit Füll-Bytes zur vollen Blocklänge aufgefüllt
- die Anzahl dieser Stopf-Bytes wird im Längen-Byte festgehalten
Vergleich: AES und 3DES
IDEA
Familie der Blockchiffrierung
- jedoch wendet er 128 Bit Schlüssel auf 64 Bit Datenpakete des Klartextes an
- Basiert auf einer Mischung 3 mathematischen Funktionen
- die jeweils auf 16 Bit Blöcke des Testes angewendet werden.
- Neben XOR kommt die Addition modulo 2^16 und die Multiplikation modulo 2^16+1 zum Einsatz
- Alle 3 Operationen werden zu einem recht komplizierten Netzwerk verknüpft, das 8 Runden durchlaufen wird
- Trotz komplizierter Verfahren, schneller und sicherer als DES
Hybride Kryptografiesverfahren
Vorteile aus asymmetrischen und symmetrischen Kryptografie
- Hohe Effizienz
- gesteigerte Sicherheit
- Flexibilität
- Austausch der erforderlichen Schlüssel
- erfolgt über ein asymmetrisches Verfahren
- Kryptografie größerer Datenmengen
- kommen symetrische Algorythmen zum Einsatz
Vergleich Klassisch - Modern
Sowohl die klassischen Verfahren wie Vigenère als auch die modernen Verfahren wie IDEA…
- …benötigen einen Schlüssel der beiden Parteien im Vornherein bekannt ist
- …sind symmetrisch (Entschlüsselung ist Umkehrung der Kryptografie)
- …sind in gewissen Masse anfällig auf Kryptoanalyse (z. B. Brute-Force)
Fazit
Die Geschichte der Kryptografie ist ein Wettbewerb
- zwischen Kryptografiesspezialisten und Kryptoanalysten
- Momentan liegen die Verschlüssler mit dem IDEA vorne
- da dieses Verfahren nur mit Brute-Force geknackt werden kann
- dies wegen der großen Schlüssellänge auch auf modernsten Computern noch zu lange dauert
Geschwindigkeit
siehe Kryptografie/Geschwindigkeit
Public Key Infrastrukturen - X.509
Public Key Infrastrukturen nach X.509
- Grundlagen für Public-Key-Verfahren
- Digitale Signaturen und Zertifikate
- Funktion und Aufgabe einer Infrastruktur für Public-Keys
- Aufbau einer PKI
- Ablauf der Zertifizierung
- Anwendungen für Zertifikate
Grundlagen für Public-Key-VerfahrenMehr Sicherheit durch PKI…
Kryptografie nach Caesar…
privat… oder öffentlich?
Performante Sicherheit!
Schutz vor Veränderungen!
Wer ist Alice?
Zertifikate an der Kette!
Public Key Infrastruktur
Funktionen einer PKI
Bob vertraut Alice!
Kryptografie per Zertifikat
Aufbau einer PKICA Hierarchie
siehe Public Key Infrastructure
TMP
Abstract
- Unfortunately, the computer security and cryptology communities have drifted apart over the last 25 years. Security people don’t always understand the available crypto tools, and crypto people don’t always understand the real-world problems.
- — Ross Anderson (Anderson, 2008)
- This guide arose out of the need for system administrators to have an updated, solid, well researched and thought-through guide for configuring SSL, PGP, SSH and other cryptographic tools in the post-Snowden age. Triggered by the NSA leaks in the summer of 2013, many system administrators and IT security officers saw the need to strengthen their encryption settings. This guide is specifically written for these system administrators.
- As Schneier noted in (Schneier, 2013), it seems that intelligence agencies and adversaries on the Internet are not breaking so much the mathematics of encryption per se, but rather use software and hardware weaknesses, subvert standardization processes, plant backdoors, rig random number generators and most of all exploit careless settings in server configurations and encryption systems to listen in on private communications. Worst of all, most communication on the internet is not encrypted at all by default (for SMTP, opportunistic TLS would be a solution).
- This guide can only address one aspect of securing our information systems: getting the crypto settings right to the best of the authors' current knowledge. Other attacks, as the above mentioned, require different protection schemes which are not covered in this guide. This guide is not an introduction to cryptography. For background information on cryptography and cryptoanalysis we would like to refer the reader to the references in appendix Links and Suggested Reading at the end of this document.
- The focus of this guide is merely to give current best practices for configuring complex cipher suites and related parameters in a copy & paste-able manner. The guide tries to stay as concise as is possible for such a complex topic as cryptography. Naturally, it can not be complete. There are many excellent guides (II & SYM, 2012) and best practice documents available when it comes to cryptography. However none of them focuses specifically on what an average system administrator needs for hardening his or her systems' crypto settings.
- This guide tries to fill this gap.
- The guide was produced in an open source manner
- every step of editing can be traced back to a specific author via our version control system.
Introduction
Audience
Sysadmins. Sysadmins. Sysadmins. They are a force-multiplier.
Related publications
- Ecrypt II [ii2011ecrypt]
- Ecrypt II (II & SYM, 2012), ENISA’s report on Algorithms, key sizes and parameters (ENISA and Vincent Rijmen, Nigel P. Smart, Bogdan warinschi, Gaven Watson, 2013) and BSI’s Technische Richtlinie TR-02102 (für Sicherheit in der Informationstechnik (BSI), 2018) are great publications which are more in depth than this guide. However, this guide has a different approach: it focuses on copy & paste-able settings for system administrators, effectively breaking down the complexity in the above mentioned reports to an easy to use format for the intended target audience.
How to read this guide
- This guide tries to accommodate two needs: first of all, having a handy reference on how to configure the most common services’ crypto settings and second of all, explain a bit of background on cryptography. This background is essential if the reader wants to choose his or her own cipher string settings.
- System administrators who want to copy & paste recommendations quickly without spending a lot of time on background reading on cryptography or cryptanalysis can do so, by simply searching for the corresponding section in Best Practice.
- It is important to know that in this guide the authors arrived at two recommendations: Cipher string A and Cipher string B. While the former is a hardened recommendation a latter is a weaker one but provides wider compatibility. Cipher strings A and B are described in Recommended cipher suites.
- However, for the quick copy & paste approach it is important to know that this guide assumes users are happy with Cipher string B.
- While Best Practice is intended to serve as a copy & paste reference, Theory explains the reasoning behind cipher string B. In particular Architectural overview explains how to choose individual cipher strings. We advise the reader to actually read this section and challenge our reasoning in choosing Cipher string B and to come up with a better or localized solution.
Disclaimer
- A chain is no stronger than its weakest link, and life is after all a chain.
- — William James
- Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it.
- — Edward Snowden answering questions live on the Guardian’s website
- This guide specifically does not address physical security, protecting software and hardware against exploits, basic IT security housekeeping, information assurance techniques, traffic analysis attacks, issues with key-roll over and key management, securing client PCs and mobile devices (theft, loss), proper Operations Security, social engineering attacks, protection against tempest (i_wikipedia_Tempest (codename)_, 2018) attack techniques, thwarting different side-channel attacks (timing–, cache timing–, differential fault analysis, differential power analysis or power monitoring attacks), downgrade attacks, jamming the encrypted channel or other similar attacks which are typically employed to circumvent strong encryption.
- The authors can not overstate the importance of these other techniques. Interested readers are advised to read about these attacks in detail since they give a lot of insight into other parts of cryptography engineering which need to be dealt with[1]) ].
- This guide does not talk much about the well-known insecurities of trusting a public-key infrastructure (PKI)[2]. Nor does this text fully explain how to run your own Certificate Authority (CA).
- Most of this zoo of information security issues are addressed in the very comprehensive book Security Engineering by Ross Anderson (Anderson, 2008).
- For some experts in cryptography this text might seem too informal. However, we strive to keep the language as non-technical as possible and fitting for our target audience: system administrators who can collectively improve the security level for all of their users.
- Security is a process, not a product.
- — Bruce Schneier
- This guide can only describe what the authors currently believe to be the best settings based on their personal experience and after intensive cross checking with literature and experts. For a complete list of people who reviewed this paper, see the <acknowledgements>. Even though multiple specialists reviewed the guide, the authors can give no guarantee whatsoever that they made the right recommendations. Keep in mind that tomorrow there might be new attacks on some ciphers and many of the recommendations in this guide might turn out to be wrong. Security is a process.
- We therefore recommend that system administrators keep up to date with recent topics in IT security and cryptography.
- In this sense, this guide is very focused on getting the cipher strings done right even though there is much more to do in order to make a system more secure. We the authors, need this document as much as the reader needs it.
Scope
In this guide, we restricted ourselves to:* Internet-facing services
- Commonly used services
- Devices which are used in business environments (this specifically excludes XBoxes, Playstations and similar consumer devices)
- OpenSSL
We explicitly excluded:* Specialized systems such as medical devices, most embedded systems, industrial control systems (ICS), etc.
- Wireless Access Points
- Smart-cards/chip cards
Methods
- C.O.S.H.E.R - completely open source, headers, engineering and research.
- — A. Kaplan His mail signature for many years
- For writing this guide, we chose to collect the most well researched facts about cryptography settings and let as many trusted specialists as possible review those settings. The review process is completely open and done on a public mailing list.
- The document is available (read-only) to the public Internet on the web page and the source code of this document is on a public git server, mirrored on GitHub.com and open for public scrutiny. However, write permissions to the document are only granted to vetted people. The list of reviewers can be found in Acknowledgements.
- Every write operation to the document is logged via the git version control system and can thus be traced back to a specific author. We accept git pull requests on the github mirror for this paper.
- Public peer-review and multiple eyes checking of our guide is the best strategy we can imagine at the present moment [3].
- We invite the gentle reader to participate in this public review process. Please read the Contributing document.
Appendix
Links
- IANA official list of Transport Layer Security (TLS) Parameters
- Elliptic curves and their implementation (04 Dec 2010)
- A (relatively easy to understand) primer on elliptic curve cryptography
- Duraconf, A collection of hardened configuration files for SSL/TLSservices (Jacob Appelbaum’s github)
- Attacks on SSL a comprehensive study of BEAST, CRIME, TIME, BREACH, LUCKY 13 & RC4 Biases
- EFF How to deploy HTTPS correctly
- Bruce Almighty: Schneier preaches security to Linux faithful (on not recommending to use Blowfish anymore in favor of Twofish)
- Implement FIPS 183-3 for DSA keys (1024bit constraint)
- Elliptic Curve Cryptography in Practice
- Factoring as a Service
- Black Ops of TCP/IP 2012
- SSL and the Future of Authenticity, Moxie Marlinspike - Black Hat USA 2011
- ENISA - Algorithms, Key Sizes and Parameters Report (Oct.’13
- Diffie-Hellman Groups standardized in RFC3526
- TLS Security (Survey + Lucky13 + RC4 Attack) by Kenny Paterson
- Ensuring High-Quality Randomness in Cryptographic Key Generation
- Wikipedia: Ciphertext Stealing
- Wikipedia: Malleability (Cryptography)
- Ritter’s Crypto Glossary and Dictionary of Technical Cryptography
Suggested Reading
- This section contains suggested reading material.
- Cryptography Engineering: Design Principles and Practical Applications, Ferguson, N. and Schneier, B. and Kohno, T. (ISBN-13: 978-0470474242)
- Security Engineering: A Guide to Building Dependable Distributed Systems, Anderson, R.J. (ISBN-13: 978-0470068526)
- Applied cryptography: protocols, algorithms, and source code in C, Schneier, B. (ISBN-13: 978-0471117094)
- Guide to Elliptic Curve Cryptography, Hankerson, D. and Vanstone, S. and Menezes, A.J. (ISBN-13: 978-0387952734)
- A Introduction To The Theory of Numbers, Godfrey Harold Hardy, E. M. Wrigh (ISBN-13: 978-0199219865)
- Malicious Cryptography: Exposing Cryptovirology, Young A., Yung, M. (ISBN-13: 978-0764549755)
Further Research
The following is a list of services, software packages, hardware devices or protocols that we considered documenting but either did not manage to document yet or might be able to document later. We encourage input from the community.
- Further Protocols
DNSSec (mention BCPs) | DANE | Tor |
S/Mime (check are there any BCPs? ) | TrueCrypt, LUKS, FileVault | AFS |
Kerberos | NNTP | NTPs tlsdate |
Moxa , APC, und co… ICS | ||
rsyslog | tftp | (s)ftp(s) |
haproxy |
- Further Protocols (Network centric)
IPv6 security | ||
Wi-Fi, 802.1x | SIP | SRTP |
Kerberos | NNTP | NTPs tlsdate |
BGP / OSPF | LDAP | seclayer-tcp |
RADIUS (RADSEC) | racoon | strongswan |
l2tp | ||
Ethernet to serial | DSL modems | |
UPnP, natPmp | ||
HTTP Key Pinning (HTKP) | ||
Monitoring: SNMPv3 |
- Further Applications
Lync | Tomcat | |
Microsoft SQL Server | Microsoft Exchange | |
IBM HTTP Server |
- Commerical Network Equipment Vendors
Other ideas:
Software not covered by this guide
- telnet: Usage of telnet for anything other than fun projects is highly discouraged
- Puppet DB: A Proxy or a tunnel is recommended if it needs to be facing public network interfaces.[44]
- rsync: Best use it only via SSH for an optimum of security and easiest to maintain.
Bibliography
- Adam Langley, Ben Laurie, Emilia Kasper. (2013). Certificate Transparency. http://www.certificate-transparency.org https://datatracker.ietf.org/doc/rfc6962/ .
- Adam Langley, et. al. (2013). Go X.509 Verification Source Code. https://code.google.com/p/go/source/browse/src/pkg/crypto/x509/verify.go#173 .
- Anderson, R. (2008). Security engineering. Wiley.com. Retrieved from rja14/book.html http://www.cl.cam.ac.uk/ rja14/book.html
- Bernstein, D. J., & Lange, T. (2013). Security dangers of the NIST curves (Presentation slides). Retrieved from http://cr.yp.to/talks/2013.09.16/slides-djb-20130916-a4.pdf
- C. Evans and C. Palmer. (2013). Public Key Pinning Extension for HTTP. https://tools.ietf.org/html/draft-ietf-websec-key-pinning-09 .
- Damon Poeter. (2011). Fake Google Certificate Puts Gmail at Risk. http://www.pcmag.com/article2/0,2817,2392063,00.asp .
- Durumeric, Z., Kasten, J., Bailey, M., & Halderman, J. A. (2013). Analysis of the HTTPS Certificate Ecosystem. In Proceedings of the 13th Internet Measurement Conference. Retrieved from https://jhalderm.com/pub/papers/https-imc13.pdf
- Elinor Mills. (2011). Fraudulent Google certificate points to Internet attack. http://news.cnet.com/8301-27080_3-20098894-245/fraudulent-google-certificate-points-to-internet-attack/ .
- Engblom, J. (2011). Evaluating HAVEGE Randomness (Blog: Observations from Uppsala). Retrieved from http://jakob.engbloms.se/archives/1374
- ENISA and Vincent Rijmen, Nigel P. Smart, Bogdan warinschi, Gaven Watson. (2013). ENISA - Algorithms, Key Sizes and Parameters Report. Retrieved from http://www.enisa.europa.eu/activities/identity-and-trust/library/deliverables/algorithms-key-sizes-and-parameters-report
- für Sicherheit in der Informationstechnik (BSI), B. (2018). BSI TR-02102 Kryptographische Verfahren. Retrieved from https://www.bsi.bund.de/EN/Publications/TechnicalGuidelines/tr02102/tr02102_node.html
- H. Tschofenig and E. Lear. (2013). Evolving the Web Public Key Infrastructure. https://tools.ietf.org/html/draft-tschofenig-iab-webpki-evolution-01.txt .
- Heninger, N., Durumeric, Z., Wustrow, E., & Halderman, J. A. (2012). Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices. In Proceedings of the 21st USENIX Security Symposium. Retrieved from https://factorable.net/weakkeys12.extended.pdf
- Hoffman, P., & Schlyter, J. (2012). The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA. IETF. Retrieved from https://www.ietf.org/rfc/rfc6698.txt
- i_mit_Realm configuration decisions_. (2013). (Documentation). Retrieved from http://web.mit.edu/kerberos/krb5-latest/doc/admin/realm_config.html
- i_wikipedia_Discrete logarithm_. (2013). (Wikipedia). Retrieved from https://en.wikipedia.org/wiki/Discrete_logarithm
- i_wikipedia_Tempest (codename). (2018). (Wikipedia). Retrieved from https://en.wikipedia.org/wiki/Tempest(codename)
- II, E. C. R. Y. P. T., & SYM, D. (2012). ECRYPT II, 79–86. Retrieved from http://www.ecrypt.eu.org/ecrypt2/documents/D.SPA.20.pdf
- Katz, J., & Lindell, Y. (2008). Introduction to modern cryptography. Chapman & Hall/CRC. Retrieved from http://books.google.at/books?id=WIc_AQAAIAAJ
- Kivinen, T., & Kojo, M. (2003). More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE). IETF. Retrieved from https://www.ietf.org/rfc/rfc3526.txt
- Postel, J. (1980). DoD standard Transmission Control Protocol. IETF. Retrieved from https://www.ietf.org/rfc/rfc761.txt
- Raeburn, K. (2005). Advanced Encryption Standard (AES) Encryption for Kerberos 5. IETF. Retrieved from https://www.ietf.org/rfc/rfc3962.txt
- SafeCurves: choosing safe curves for elliptic-curve cryptography. (2013). (Technical Background). Retrieved from http://safecurves.cr.yp.to/rigid.html
- Schneier, B. (2013). The NSA Is Breaking Most Encryption on the Internet (Blog: Schneier on Security). Retrieved from https://www.schneier.com/blog/archives/2013/09/the_nsa_is_brea.html
- Yarom, Y., & Falkner, K. (2013). Flush+ Reload: a high resolution, low noise, L3 cache side-channel attack. Cryptology ePrint Archive, Report 2013/448, 2013. http://eprint. iacr. org/2013/448/. 3. Retrieved from http://eprint.iacr.org/2013/448.pdf