#todo
# Themen
(Die Themen basieren lediglich auf den Begleitscript)
- Begleitscripte
	- 802.1X_EAP_RADIUS_1.5
	- PWD_Dict_Portscan
	- Exploits IDS
	- Firewalling
	- Hashfunktionen
	- IPSEC
	- IPTABLES
	- Organisatorische IT-Sicherheit
	- Passwortsicherheit
	- SHA1
	- TLS
- Grundlagen der Sicherheit
	- [x] Sicherheit und -Klassifikation 
		- Faktoren
		- Applikationssicherheit
		- Netzsicherheit
	- [x] Sicherheitsaspekte
		- Umgebungen
		- Daten, Anwendungen und Backend-Systeme
	- [x] Ver- und Entschlüsselung
		- Kryptografie
		- Kryptoanalyse
		- Ziel der Verschlüsselung
		- Methoden der Verschlüsselung und -Verfahren
	- [x] Authentifizierung, Authorisierung und Accounting
		- Authentifizierungs- und Schlüsselverteilprotokolle
		- Authentifizierungsverfahren
	- [x] Überblick etablierter Methoden
		- VLAN
		- Tunneling
		- VPN
		- Firewalling
		- IDS und IPS
		- TLS/SSL
		- TLS
		- IPsec
		- 802.1X
		- EAP
		- RADIUS
		- Active Directory
		- Public Key Infrastructure (PKI)

# Sicherheit und -Klassifikation
## Faktoren der Sicherheit
Eselsbrücke: **Z**wischen **V**ier **O**bstbäumen **A**lles **A**n **I**nsekten
(Nein, Eselsbrücken sind nicht meine Stärken)
- Zugangssteuerung/Zugriffskontrolle
	- mechanismus, welches den Zugang von Benutzern limitiert
	- limitiert wird der Nutzer durch die für Ihn verfügbaren Objekte (Rechner, Server... oder auch Softwaredienste) 
	- limitierung anhand bspw. Benutzerauthentifizierung
	- bekannteste Modelle:
		- PAP (Password Authentification Protocol)
		- CHAP (Challenge Handshake Protocol)
		- EAP (Extensible Authentication Protocol)
- Vertraulichkeit
	- Geheimhalten von Informationen vor Unberechtigten
	- Erreichbar durch bspw. Kommunikationsverschlüsselung innerhalb eines Netzwerkes
	- Verschlüsselung kann erfolgen über:
		- Layer-2 mit sicheren Schlüsselaustausch
		- Layer-3 unter verwendung von VPN-Techniken
- Originalität
	- Signierung einer Nachricht durch den Anwender führt zu generierung eines Hash-Wertes, welche anschließend mit dem privaten Schlüssel des Anwenders verschlüsselt wird.
	- Durch Überprüfung des öffentlichen Schlüssels kann ermittelt werden, ob die Nachricht verändert worden ist.
		- Angreifer/Lauscher verändert durch Modifikation der Nachricht den resultierenden Hash-Wert.
- Autorisierung
	- Nach authentifizierung eines Benutzers erfolgt die Authorisierung
	- Zuordnung eines Profils dem Benutzer
		- legt Rechte und ausführbare Funktionen fest
	- Anwender bekommt eine sog. Rolle
- Authentifizierung
	- Überprüfung, ob Pakete auch tatsächlich vom gewünschten Sender kommen
- Integrität
	- Zur Überprüfung der Integrität werden bspw. Hashes verwendet.
	- Hash stellt digitalen Fingerabdruck einer Nachricht dar, der mit versandt wird. Bei Manipulation verändert sich der Hash-Wert und man erkennt diese somit.

## Applikationssicherheit
Genannt werden lediglich IT- und Applikationsplatformen mit welchen Dienste und Produkte den Endbenutzer\*innen angeboten werden. 
## Netzsicherheit
**Vermittlungsnetz**
- bildet die Plattform aller in der mobilen Kommunikationswelt stattfindenden Anwendungen und Dienste 
- Unterscheidung in:
	- Zugangs-
	- Kernnetz
- Kernnetz beinhaltet:
	- grundlegende Vermittlungsfunktionalitäten
	- Teilnehmerdatenbank
		- Informationen zur
			- Authentifikation
			- Autorisierung
			- Abrechnung
- Unterschiedliche Technologien für das Zugangsnetz:
	- GSM
	- GPRS
	- UMTS
	- WiMAX
	- Bluetooth
	- Wireless-LAN
	- usw.

# Sicherheitsaspekte
- Klassifizierung der Gefahren bei nutzung mobiler Kommunikationsmittel
- Kenntnis über  Existenz und ihrer Ausprägung entscheidend für Abwehr
## Umgebungen
- Bei Mobilkommunikation sind drei Sicherheitsabschnitte zu betrachten:
	- Aufenthaltsort
	- Übertragungsweg
	- Sicherheit im Unternehmen
### Clients
- unterschiedliche Sicherheitsmaßnahmen
- zum großteil abhängig vom Betreiber
	- Firewall unbekannt usw.
### Unternehmen
- Firmennetz durch bspw. VPN oder PKI "geschützt"
### Person
- Angreifer konzentriert sich auf eine Person und gelangt über bspw. *social engineering* zugriff zu Daten
- Profiling reicht aus um sich eventuellen zugriff auf die Hardware zu verschaffen
### Umfeld
- Umfeld meist weniger geschützt und daher erreichbarer
- äußerer Zustand verwertbar
- durchdachtes Konzept über folgende Punkte reicht aus um Sicherheitsstandard bei Firmennetz aufzustellen:
	- Netzbaufbau
	- Verteilung bzw. Verwendung von AP, Router, Firewalls und Virenscannern
### Reisen
- sog. "Wasserstelle in der Savanne"
- verwendung eines öffentlichen Verkehrmittels (Schnellzug, Flugzeug) deutet auf Zustand des Opfers und Wert der Informationen
- Schulterblick, standard Spionage
- Physikalischer Zugriff bei bspw. Toilettengang des Opfers
### Zufall
- "God is dead, and we killed him"
## Daten, Anwendungen und Backend-Systeme
### Daten
- Zugriff auf unterschiedlichste soziografische Informationen kann ein Angreiffer an folgendes herankommen:
	- Kreditkarten
	- Bankkonte
	- Werpapierdepots
	- persönliche Identifikationsnummern
	- Transaktionsnummern
- Unmittelbare geldwert Vorteile (sowohl bei Unternehmen, als auch Privatpersonen)
### Anwendungen
- Angreifer kann versuchen direkten Zugriff auf Applikation zu erhalten
	- teuere Applikation oder enthält sensible Daten
- interessant, wenn man selbst die Applikation verwenden will oder in der Vergangenheit dies tat
- verkauf der gewonnenen Daten meist uninteressant, wegen des Entdeckungsrisikos
- Mit Daten könne man sich dennoch bspw. Selbstständig machen und hätte eine gute Startposition
- Nachladen von bspw. Trojanern, wenn ein Backdoor installiert wurde
### Backend-Systeme
- versorgung an Penetrationstools bei populären OS'en kein Problem durch gleichgesinnte
- angriff ebenfalls auf spezielle Software spezialisiert (Office-Produkte usw.)
	- können Angreifern direkten zugriff auf Datenbank geben
- Mailing-Server beispielsweise unregelmäßig gelöscht und nicht Entschlüsselt
	- für Angreifer eine Goldgrube an Diskussionen und bspw. Entwicklungskontext bei Produkten etc.
## Ver- und Entschlüsselung
### Kryptografie
- Wissenschaft von Methoden der Verschlüsselung und Entschlüsselung von Daten
### Kryptoanalyse
- befasst sich mit der unbefugten Entschlüsselung von Daten
- verwendung eines "simplen" Kanal-Modells zur kommunikation zweier Partner (erweiterbar auf mehrere Kommunikationspartner)
- unterscheidung in folgende Störfaktoren:
	- Zufällige Störungen
	- Systematische Störungen (physikalisch Bedingt)
	- Passive Beeinträchtigungen (z.B. Abhören)
	- Aktive Beeinflussungen (z.B. Verfälschung, Vernichtung, Abfangen)
- brechen des Kryptosystems sowohl für Anwender, wie auch Angreifer interessant
	- Nachweis von Schwachstellen im System
- unterteilung der Kryptsysteme in zwei Kategorien:
	- absolut sichere (theoretisch sicher)
	- praktisch sicher
- Verfahren ist absolut Sicher, wenn unbeschränkte Ressourcen wie Rechenzeit unf Speicherplatz das Verfahren nicht brechen können
- Alle sicheren Verahren haben eine Gemeinsamkeit:
	- Sie sind sicher unter dem Einsatz von begrenzten Ressourcen
- starke Kryptosysteme weisen folgendes auf:
	- mathematische Gleichungen, mit denen sich das System beschreiben lässt, sind so komplex, ass sie mit analytischen Methoden nicht behandelt werden können. D.h., das System kann nicht gebrochen werden.
	- Bei der Verwendung von einfacheren Methoden wird die Komplexität des Lösungssystems so groß, dass zu viel Rechenzeit und SPeicherplatz benötigt und damit die Kosten zu hoch werden.
- Unterscheidung in vier kryptoanalytische Ansätze:
	- **"Ciphertext-only"-Attack**
		- Dem Kryptoanalytiker liegt bereits Chiffretext vor
	- **"Known-Plaintext"-Attack**
		- 
	- **"Chosen-Plaintext"-Attack**
	- **"Chosen-Ciphertext"-Attack**

## Überblick etablierter Methoden
### 802.1X EAP & RADIUS
- Entwickelt um Sicherheitslücken zu schließen
	- fehlendes Schlüsselmanag.
	- fehlende Benutzerauthentifikation und -authentisierung
		- token, smartcards, zertificates
	- fehlende möglichkeit der zentr. Auth. und Autorisierung
#### Prinzip
- implementiert Zugangssteuerung an der Stelle, an der ein Benutzer in des Netzw. eintreten möchte
	- Wird Port genannt
- portbasierte Authentisierung kommt zum Tragen
- Entwicklung des Extensible Authentication Protocol (EAP) um im Zusammenspiel mit Auth.-Server, Sicherheitsniveau zu erhöhen
- 802.1X basiert auf EAP
	- in 802.11 sind EAP-Nachrichten keine Management- oder Steuer-Frames
- 802.1X wird ebenfalls für 802.11b-Netzwerke verw.
- In 802.1X Semantik, somit WLAN AP ein Port.
	- User muss sich authentisieren, um über Port Zugang zu erhalten
- **Authentisierung folgt Assoziation!**
- Supplicant (Antragsteller, Client oder auch Peer):
	- erbittet Zugang zu Netzwerk
	- Programm auf Client
- Authenticator:
	- Auth.-Anfragen durch Supplicant werden an den Auth.-Server weitergeleitet 
	- Übernimmt Portverwaltung
		- besitzt volle Kontrolle über Ports
	- kann einen oder mehrere Supplicants verwalten und parallel Kommunizieren
- Auth.-Server:
	- Nimmt Anfrage entgegen und prüft
	- teilt dem Auth. seine Entscheidung mit
	- kann mehrere Auth. bedienen
	- entscheidet über Rechte
	- Bei WPA ist der Auth.-Server ein RADIUS-Server
	- IEEE 802.1X benötigt Auth.-Server

#### EAP
- Erweitert PPP (Point to Point Prot.)
- problemlose erw. auf LAN- und WLAN-Verbindungen
- Primär getrieben durch Anf. bez. Auth. und Verschl./Schl.-Management für TKIP (Temporal Key Integrity Prot.) (802.11i und WPA) und der WLAN-Stand. IEE 82.11a/b/h/g und 802.1X mit EAP in herkömmlichen Ethernet-Netzwerken Einzug gefunden
- Idee hinter EAP
	- allgemeines Rahmenwerk für mult. Auth.-Methoden
		- Benutzer kann sich untersch. Authentisieren
- EAP ist ein schlankes Protokoll, das i.d.R auf Layer 2 des ISO/OSI-Modells operiert, daran aber nicht gebunden
- Besteht aus
	- Auth.-Requests und -Responses 
	- hat eigene Mechanismen zur Fehlerkorrektur und Flusssteuerun
- eigentliche Idee: Auth.-Algorithmus zw. Supplicant und Auth.-Server
- EAP-Pakete werden in EAPoL (EAP over LAN) gekapselt
	- nötig um im Netzwerk zu transportieren
- EAPoL-Pakete enthalten
	- informationen zu dynamischen WEP-Keys
	- WEP-IVs,
	- Replay Countern usw.
- EAPoL empfiehlt die Verw. von Schlüsseln, die während der EAP-Auth. generiert werden. Das Format Req. und Resp. wird in der nächsten Abbildung dargestellt.

| Code   | Identifier | Length 1 | Length 2 | Type   | Type-Data  |
| ------ | ---------- | -------- | -------- | ------ | ---------- |
| 1 Byte | 1 Byte     | 1 Byte   | 1 Byte   | 1 Byte | var. Länge |
#### Aufbau EAP Pakete und Nachrichtentypen
- Type Code 01 (Identity):
	- initiale Anforderung
	- bezeichnet als Request/Identity
	- optional mit Routing Informationen
	- kann Benutzereingabe auffordern
	- Richtung Supplicant $\rightarrow$ Authenticator
- Type Code 02 (Notification):
	- Nachricht von Authenticator zum Benutzer
	- dient zur Übermittlung von Informationen und Benachrichtigungen aus Auth.-System (kaum durch Hersteller beansprucht)
	- EAPOL-Keyframe ermöglicht Kommunikation und dynamische Aktualisierung von Schlüsseln bei erf. Authentisierung
#### Protokollfamilie und Methoden bzw. Typen
- EAP-Prot. ist unsicher
	- Übertragung von Nutzerdaten und Passwörter in Klartext
	- Auth.-Prozess findet unverschlüsselt statt
	- Authenicator braucht sich nicht zu Auth.
	- keine unterstützung dynamischer Schlüssel
- EAP-Methoden bilden Satz von Regeln zur Auth. von Benutzern und Maschine
	- Trade off zwischen Komplexität und Sicherheit
![[EAP-Typen.png]]
#### EAP Authentisierungsprozess im Allgemeinen
1. Client wählt sich bei einem NAS ein, der als RADIUS-Client fungiert
	1. Der Client generiert ein Access-Request-Paket (AR) und sendet diesen an den NAS
2. Über UDP sendet der NAS die AR-Nachricht an den RADIUS-Server
	1. Verbindung zw. NAS und RADIUS-Server ist per Shared Secret symmetrisch verschlüsselt
	2. Paket beinhaltet:
		- Benutzernamen,
		- Passwort,
		- ggf. zusätzliche Attripute (Port, IP-Adresse...)
3. RADIUS-Server durchsucht eigene Repo.
	1. Wenn kein Eintrag gefunden wird, so wird ein Standardprofil geladen oder eine Access-Reject Nachricht geht zurück zum NAS
	2. Wenn Eintrag gefunden wird, sendet der Server eine Access-Accept-Nachricht zurück mit zusätzlichen Konfigurationsdaten
4. Die RADIUS-Accept-Nachricht enthält eine Liste von Attribut-Wertepaaren (AVP), die die Sitzungsparameter wie Diensttyp, Protokollart, zugewiesene IP-Adresse, Access Lists und statische Routen beschreibt.
5. Der Client überprüft, ob das Response-Paket zu einem noch ausstehenden Request gehört, indem er die Identifier abgleicht. Findet er keinen passenden Request, verwirft er das Response-Paket. Ansonsten berechnet der Client denselben MD5-Hash wie der Server für den Response-Authenticator. Wenn das Ergebnis mit dem Wert im Response-Paket übereinstimmt, ist das Paket verifiziert.
6. Die Authentifizierung der Kommunikation zwischen Client und Server erfolgt über ein gemeinsames Geheimnis (Shared Secret), das niemals über das Netzwerk gesendet wird. Zusätzlich werden alle Kennwörter verschlüsselt übertragen, um sie zu schützen. Die Authentifizierung des NAS am RADIUS-Server erfolgt mit einem MD5-Hash, der aus dem Paketinhalt, einer zufälligen Zahl vom RADIUS-Server und dem gemeinsamen Geheimnis berechnet wird.
#### RADIUS
- Authentisierungsprozess mit PAP
	- Benutzer will sich einwählen und übermittelt seine Daten in Klartext
	- Access-Request-Paket wird vom NAS erstellt und an den Server gesendet. Enthält den Code 1 und eine generierte ID, um Pakete zu differenzieren
	- In den Attributen sind Benutername und Passwort hinterlegt
	- Passwort wird zuvor in zwei Byte-Blöcke zerlegt, und mittels XOR und einem Hash-Wert "chiffriert"
		- ChiffreBlock1 = PasswortBlock1 XOR MD5(Authenticator + SharedSecret)
		- ChiffreBlock2 = PasswortBlock2 XOR MD5(Authenticator + SharedSecret)
		- Authenticator ist ein Zufallswert (RND)
	- RADIUS Server sendet nach überprüfung vorher beschr. Daten oder auch nicht
- Beim NAS wird zunächst der Identifer überprüft. Es muss ein Request mit demselben Identifier vorliegen. Erst dann wird der Authenticator überprüft.
- Der NAS erstellt ebenfalls einen Hash-Wert aus den Request-Daten und dem Shared-Secret und vergleicht diese. Erst wenn Identifier und Authenticator erfolgreich geprüft sind, wird die Verbindung zum Benutzer aufgebaut.
![[Pasted image 20240704185247.png]]
Bei der CHAP-Variante (Challenge-Handshake Authentication Protocol) läuft die Authentifizierung wie folgt ab:

1. Der NAS generiert einen Zufallswert (Challenge-Value) und sendet diesen an den Client.
2. Der Client hasht den Challenge-Value und antwortet mit einem CHAP-Response, der CHAP-ID und dem CHAP-Benutzernamen.
3. Der NAS sendet ein Access-Request-Paket an den RADIUS-Server. Dieses Paket enthält den CHAP-Benutzernamen als User-Name, die CHAP-ID und den CHAP-Response als CHAP-Password. Der ursprüngliche Challenge-Value befindet sich entweder im CHAP-Challenge-Attribut-Feld oder im Authenticator-Feld des Headers.
4. Der RADIUS-Server hasht den Challenge-Value, die CHAP-ID und das auf dem Server gespeicherte Benutzerpasswort.
5. Das Ergebnis wird mit dem CHAP-Password-Attribut verglichen.
6. Bei Übereinstimmung wird der Benutzer authentisiert.
 ![[Pasted image 20240704185748.png]]

#### EAP-MD5 
EAP-MD5 (RFC 2284 bzw. RFC 3748) ist ein konventionelles Challenge-Response-Verfahren zur Authentifizierung von Benutzern und Maschinen. Der Ablauf im Groben:

1. Der Supplicant startet mit einem „EAPoL-Start“-Paket und sendet dieses an eine Multicast-Adresse.
2. Der Authenticator (z.B. Access Point, 802.1X-Switch oder VPN-Server) erkennt den Authentisierungswunsch des Supplicants und signalisiert dies. Der Supplicant kann auf einen noch nicht freigeschalteten, kontrollierten Port zugreifen.
3. Der Authenticator fordert mittels einer EAP-Request/Identity-Nachricht die Identität des Supplicants an.
4. Der Supplicant antwortet mit einer EAP-Response/Identity-Nachricht und überträgt seine Identität.
5. Der Authenticator initiiert ein Challenge-Response-Verfahren mittels MD5 und leitet die Identität des Supplicants an den Authentifizierungsserver (i.d.R. RADIUS) weiter.
6. Der Authentifizierungsserver erzeugt eine Challenge basierend auf einer Zufallszahl (RND) und übermittelt diese über den Authenticator an den Supplicant.
7. Der Supplicant antwortet mit dem Keyed-Hash (Benutzerpasswort + RND).
8. Der Authenticator leitet den Keyed-Hash an den Authentifizierungsserver weiter, der den Keyed-Hash mit dem bekannten Benutzerpasswort des Supplicants berechnet und mit dem empfangenen Keyed-Hash vergleicht.
9. Bei Übereinstimmung wird der Supplicant authentisiert und erhält eine EAP-Success-Nachricht. Der kontrollierte Port wird für den Supplicant freigeschaltet. Andernfalls wird ein EAP-Failure-Paket gesendet und die Verbindung durch eine EAPOL-Logoff-Nachricht des Supplicants beendet.
![[Pasted image 20240704190109.png]]

#### EAP-TTLS (Tunneled Transport Layer Security)

Der Unterschied zwischen EAP-TLS und EAP-TTLS besteht in der Authentisierungsmethode:

- **EAP-TLS**:
    
    - Der Supplicant sendet einen Request an den Authentifizierungsserver, während der Authenticator alle anderen Zugriffe blockiert.
    - Es erfolgt eine gegenseitige Authentisierung von Supplicant und Authentifizierungsserver über den Authenticator.
    - Der Supplicant wird authentisiert und erhält gegebenenfalls einen Schlüssel.
- **EAP-TTLS**:
    
    - Die Authentisierung erfolgt nur über den Authenticator.
    - Der Supplicant sendet einen Request an den Authenticator, der alle anderen Zugriffe blockiert.
    - Der Authenticator sendet das Zertifikat des Authentifizierungsservers an den Supplicant.
    - Der Supplicant baut einen sicheren TLS-Tunnel zum Authentifizierungsserver auf und authentisiert sich selbst mittels eines Verfahrens, das auch unsicher sein kann.
    - Die Authentisierungsmethode kann variieren und umfasst EAP-Methoden, MD5-Challenge, Token, One-Time-Passwörter, Klartext-Passwörter und Zertifikate.

Im Gegensatz zu EAP-TLS benötigt EAP-TTLS lediglich das Zertifikat des Authentifizierungsservers und kein Client-Zertifikat, sodass sich der Client mittels Passwort authentisieren kann. Damit entfällt die Notwendigkeit eines Client-Zertifikates und einer Public Key Infrastructure (PKI).

#### PEAP (Protected Extensible Authentication Protocol)

- **Grundlagen**:
  - PEAP ist eine Erweiterung von EAP-TLS.
  - Verwendet TLS, um einen verschlüsselten Kanal zwischen Client und Authentifizierungsserver herzustellen.
  - PEAP legt keine spezifische Authentisierungsmethode fest, bietet jedoch zusätzliche Sicherheit für andere EAP-Authentifizierungsprotokolle wie EAP-MSCHAPv2.

- **Verwendung**:
  - Häufig in WLAN-Authentifizierungsmethoden verwendet, jedoch nicht von VPN- oder RAS-Clients unterstützt.
  - Bietet Schutz vor Wörterbuch-Angriffen und ermöglicht eine auf Passwörtern basierende Sicherheit für den Supplicant.

- **Ähnlichkeit zu EAP-TTLS**:
  - PEAP und EAP-TTLS sind sich sehr ähnlich, bieten gegenseitige Authentisierung und dynamisches Re-Keying.
  - MS-CHAP bildet die Grundlage für die Authentisierung und erfordert ein gemeinsames Geheimnis im Client und RADIUS-Server.

- **Mechanismus**:
  - **Zwei-Stufen-Mechanismus**:
    - **Stufe 1**: Aufbau einer sicheren Verbindung zwischen Client und Authentifizierungsserver, wobei nur der Server authentisiert wird (ähnlich zu EAP-TTLS).
    - **Stufe 2**: Nutzung der sicheren Verbindung für eine vollständige EAP-Verhandlung, bei der die gegenseitige Authentisierung erfolgt.

- **Zertifikate**:
  - PEAP erfordert nur ein serverseitiges Zertifikat zur Authentisierung des Servers.
  - Die Authentisierung des Clients erfolgt über ein anderes EAP-Verfahren, wie z.B. MS-CHAPv2, wobei die Kommunikation im PEAP-Tunnel gesichert abläuft.

- **EAP-Typen für PEAP**:
  - **EAP-MS-CHAPv2**:
    - Verwendet Anmeldeinformationen (Benutzername und Kennwort) für die Benutzerauthentifizierung.
    - Serverauthentifizierung erfolgt über ein Zertifikat im Zertifikatspeicher des Authentifizierungsservers.
  - **EAP-TLS**:
    - Authentifizierung von Benutzer/Host erfolgt über Zertifikate im Zertifikatspeicher der Client-Maschine oder eine Smartcard.
    - Serverauthentifizierung erfolgt über ein Zertifikat im Zertifikatspeicher des Authentifizierungsservers.

#### EAP-TTLS versus PEAP

- **Ähnlichkeiten**:
  - Beide sind Erweiterungen von EAP-TLS und nutzen TLS zur Einrichtung eines sicheren Kanals.
  - Der Authentisierungsserver wird über TLS authentisiert, während der Client durch ein anderes getunneltes Authentisierungsprotokoll authentisiert wird.
  - Beide beginnen mit dem Aufbau eines TLS-Tunnels (äußere Authentisierung) und nutzen diesen dann zur geschützten Durchführung der eigentlichen Authentisierung des Clients (innere Authentisierung).

- **Unterschiede**:
  - **EAP-TTLS**:
    - Verwendet den verschlüsselten Kanal zum Austausch von AVP (Attribute Value Pairs) vom RADIUS-Server.
    - Die innere Authentisierung kann mit verschiedenen Methoden wie MD5-Challenge, Token, One-Time-Passwörtern, Klartext-Passwörtern und Zertifikaten erfolgen.
  - **PEAP**:
    - Startet einen zweiten EAP-Austausch innerhalb des verschlüsselten Kanals.
    - Phase 1 endet nicht mit einer EAP-Success-Nachricht, sondern initiiert eine zweite Stufe, die eine neue EAP-Sitzung beginnt, welche die verhandelten Schlüssel absichert.
    - In Phase 2 erfolgt eine gewöhnliche EAP-Verhandlung, die ein Authentisierungsprotokoll auf höherer Ebene beinhalten kann. Die EAP-Nachrichten werden verschlüsselt übertragen.
    - Im PEAP-Tunnel sind nur EAP-Methoden wie EAP-MS-CHAPv2, EAP-TLS oder EAP-GTC zulässig.

### Exploits und Sicherheitslücken

#### Grundlagen

- **Sicherheitslücken**: Fast jede Software enthält Sicherheitslücken aufgrund der Komplexität großer Programme.
- **Exploits**: Diese sind gezielte Angriffe, die Sicherheitslücken ausnutzen, um IT-Systeme zu kompromittieren. Sie bestehen aus Befehlen, die die Lücken ausnutzen und Schadcode ausführen.
- **Lebenszyklus eines Exploits**:
    1. Sicherheitslücke ist unentdeckt.
    2. Sicherheitslücke wird entdeckt und eventuell von Angreifern genutzt.
    3. Sicherheitslücke wird öffentlich bekannt und ein Patch wird entwickelt.
    4. Zero-Day-Exploits sind Sicherheitslücken ohne verfügbaren Patch.

#### Exploit-Entwicklung

- **Exploiting-Frameworks**: Diese bieten Bibliotheken mit Shellcodes für die Entwicklung von Exploits.
- **Fuzzer**: Werkzeuge zur systematischen Suche nach Sicherheitslücken.

#### Angriffstechniken

- **Cross Site Scripting (XSS)**: Ermöglicht das Einschleusen von JavaScript in Webseiten, um Schadcode auszuführen.
- **Arbitrary Code Execution (ACE)**: Schadcode wird über Sicherheitslücken in Interpreteren wie PDF-Dokumenten oder Java-Dateien ausgeführt.
- **Remote Code Execution (RCE)**: Schadcode wird durch den Besuch präparierter Webseiten aus der Ferne aktiviert.
- **Drive-by Downloads**: Schadcode wird unbemerkt durch den Benutzer heruntergeladen und ausgeführt.

#### Exploit Kits

- **Kommerzielle Exploit Kits**: Bündeln Exploits für verschiedene Programme und wählen gezielt Schwachstellen im Client aus.
- **Zero Day Exploits**: Exploits für bisher unbekannte Sicherheitslücken, die in Exploit Kits enthalten sein können.

#### Intrusion Detection System (IDS) und Intrusion Prevention System (IPS)

##### Definition und Funktion

- **IDS**: Überwacht IT-Systeme oder Netzwerke auf Angriffsversuche und meldet diese.
- **IPS**: Verhindert Angriffe in Echtzeit durch sofortiges Blockieren.
- **Komponenten eines IDS**:
    - Sensor: Erkennt Angriffe.
    - Datenbank: Speichert Daten zur Analyse.
    - Auswerte-Station: Analysiert und bewertet Daten.
    - Management-Station: Verwaltung und Konfiguration des IDS.

##### Arten von IDS

- **Netz-basierte Sensoren (NIDS)**: Überwachen Netzwerkverkehr und erkennen netzbasierte Angriffe wie DoS.
- **Host-basierte Sensoren (HIDS)**: Überwachen einzelne IT-Systeme bzgl. Betriebssystem, Anwendungen und Integrität.

##### Erkennungsmethoden
- Sollte folgende Anforderungen erfüllen:
	    - **Echtzeitfähig**
	    - **Adaptierbar**
	    - **Bedienbar und konfigurierbar**
- **Signaturanalyse**: Vergleicht Netzwerkverkehr mit bekannten Angriffsmustern (Signaturen).
    - Vorteile: Effektiv bei bekannten Angriffen.
    - Nachteile: Erkennt keine neuen oder modifizierten Angriffe, false positives.
- **Anomalie-Erkennung**: Erkennt abweichendes Benutzerverhalten als möglichen Angriff.
    - Vorteile: Kann unbekannte Angriffe erkennen.
    - Nachteile: Datenschutzprobleme, false positives und negatives.

#### Platzierung und Vergleich von IDS/IPS

- **Platzierung**: IDS wird hinter der Firewall platziert, um Netzwerkverkehr zu analysieren. IPS stoppt Angriffe sofort am Netzwerk-Interface.
- **Vergleich**: IDS meldet Angriffe, während IPS sie aktiv verhindert.
![[Pasted image 20240709173104.png]]
#### Honeypots

- **Funktion**: Überwachte Systeme, die Angreifer anlocken und Angriffe analysieren.
- **Arten**:
    - **Client-Honeypot**: Simuliert einen Client, der von Angreifern attackiert werden soll.
    - **Server-Honeypot**: Stellt Dienste bereit, die keine produktiven Nutzen bieten und Angriffe zulassen.
- **Implementierungsansätze**:
    - **High Interaction Honeypot**: Nutzt das originale System, was eine realistische Umgebung schafft, aber höhere Risiken birgt.
    - **Low Interaction Honeypot**: Emuliert nur notwendige Funktionen, was sicherer ist, aber leichter als Honeypot erkannt wird.

#### Pufferüberläufe (Buffer Overflows)

- **Beschreibung**: Entstehen, wenn mehr Daten in einen kleinen Speicherbereich geschrieben werden, was zur Ausführung von schadhaften Code führt.
- **Von-Neumann-Architektur**: Ermöglicht das gemeinsame Speichern von Daten und Programmcode, was Pufferüberläufe begünstigt.

#### Spoofing

- **Funktion**: Verschleiert die Identität des Angreifers, um Firewalls zu umgehen.
- **Arten**:
    - **IP-Spoofing**: Manipuliert den IP-Header.
    - **DNS-Spoofing**: Täuscht falsche DNS-Informationen vor.
    - **ARP-Spoofing**: Manipuliert ARP-Tabellen.

#### Denial of Service (DoS)

- **Beschreibung**: Überlastet ein IT-System, um dessen Verfügbarkeit zu beeinträchtigen.
- **Techniken**:
    - **SYN-Flooding**: Überlastet den Server durch unvollständige Verbindungsanfragen.
    - **DDoS**: DoS-Angriff von mehreren Systemen gleichzeitig.

#### Snort

- **Funktion**: Freies NIDS/NIPS zur Echtzeitanalyse von Netzwerkverkehr.
- **Komponenten**:
    - Paket Sniffer, Paket Logger, Network Intrusion Detection.
- **Erweiterbarkeit**: Add-ons erweitern Snort um Funktionen wie Regel- und Log-Verwaltung oder Benachrichtigungen.
- **Systemanforderungen**: Leistungsfähige Hardware für große Netzwerke erforderlich, Trennung der Netzwerk-Interfaces zur sicheren Überwachung.
- **Arbeitsweise**: Dekodierung und Analyse von Paketen, Preprozessoren für spezielle Angriffe, Detection Engine zur Regelüberprüfung.
	- behandlung nur von Standardpaketen (TCP/IP, etc.) aber keine verschlüsselten Pakete
	- überprüfung auf erlaubtes Verhalten
	- Alarmauslösung bei korrupten Headern, unübliche/falsche TCP-Optionen durch Decoder
- **Snort Rules**: Bestehen aus rule header (Aktion, Protokoll, Adressen) und rule options (Alarmmeldungen, Untersuchungsteil des Pakets).
![[Pasted image 20240709174509.png]]

### Firewalling

#### Einführung und Grundlagen

- **Firewalling**:
    - Notwendigkeit von Firewalls aufgrund externer Angriffe auf Netzwerke.
    - Entscheidende Frage: Welche Firewall-Lösung soll gewählt werden?
    - Analyse der individuellen Kommunikationsprozesse (Sicherheitsanalyse) zur Entscheidungsfindung.
    - Firewall fungiert als Gateway und bildet das Sicherheitskonzept ab.

#### Hauptaufgabenbereiche einer Firewall

- **Absicherung von Outbound-Zugriffen**: Benutzerzugriff auf das Internet aus dem Intranet.
- **Absicherung von Inbound-Zugriffen**: Zugriffe aus dem Internet auf öffentliche Dienste (z.B. Webseite) durch anonyme Benutzer.
- **Absicherung von definierten Inbound-Zugriffen**: Zugriffe für einen geschlossenen Teilnehmerkreis (z.B. Heimarbeiter, Außendienst, Geschäftspartner).

#### Firewall-Arten und ihre Funktionen

- **Paketfilter (Packet Screen oder Screening Router)**:
    
    - Realisierung als Router oder Integration in einem Router.
    - Filterung nach Quell- und Zieladresse sowie Quell- und Zielport.
    - Vorteile: Direkte Weiterleitung der Datenströme, transparente Benutzererfahrung, kostengünstige Realisierung.
    - Nachteile: Komplexe Einrichtung und Wartung, erfordert detailliertes Protokollwissen.
- **Transportschichtfilter (Circuit Level)**:
    
    - Kontrolle von TCP- oder UDP-Verbindungen auf Layer 4.
    - Überwachen das TCP-Handshaking zur Validierung von Sessions.
    - Verbergen der Netztopologie hinter dem Gateway.
    - Unabhängig vom Protokoll einsetzbar, transparent für den Client.
- **Application Level Gateway (ALG)**:
    
    - Arbeiten auf Applikationsebene (Layer 7), physikalische und logische Trennung des Datentransfers zwischen internem und externem Netz.
    - Erfordert spezifische Proxyprogramme für jeden Dienst (z.B. telnet, FTP, HTTP).
    - Analyse und Filterung der Nutzdaten möglich (z.B. E-Mails nach Schlüsselwörtern durchsuchen).
    - Hoher technischer Aufwand, aber höchste Sicherheit.

#### Erweiterte Firewall-Funktionen

- **Stateful Inspection Filtering**:
    - Erweiterung des Paketfilterkonzeptes durch zustandsabhängige Bewertung der Datenpakete.
    - Speicherung und Verwaltung des Verbindungszustands in dynamischen Zustandstabellen.
    - Höhere Sicherheit durch Einbeziehung von Informationen der Anwendungsebene.
    - Vorteile: Transparenz für Benutzer, einfache Implementierung neuer Dienste.
    - Nachteile: Komplexe Konfiguration, Struktur des zu schützenden Netzes liegt offen.

#### Demilitarisierte Zone (DMZ)

- **DMZ**:
    - Separiertes Subnetz, getrennt durch Firewalls vom Außen- und Innennetz.
    - Aufnahme von Netzdiensten, die sowohl von innen als auch von außen erreichbar sein sollen (z.B. E-Mail-Server, Web-Server).

#### Auswahl und Implementierung einer Firewall

- **Auswahlkriterien**:
    - Unterstützung notwendiger Dienste gemäß Kommunikationsprofil.
    - Ablehnung aller anderen Verbindungsanforderungen.
    - Transparenz und Offenlegung der Funktionsweise für überschaubares Sicherheitsniveau.
    - Resilienz gegen Angriffe, Verwendung fehlerfreier Software.
    - Klar strukturierter und nachvollziehbarer Aufbau.

#### Nachteile und Herausforderungen von Firewalls

- **Einschränkungen**:
    - Begrenzung des Zugangs zu öffentlichen Netzwerken.
    - Ständige Kontrolle des Regelwerks und der Log-Dateien erforderlich.
    - Anpassungsprobleme bei nicht standardkonformen Diensten.
    - Potenzielle Bevormundung der Anwender durch Firewall-Regelungen.

#### Firewall Best Practices

- **Empfohlene Vorgehensweisen**:
    - Positionierung der Firewall an sicherheitskritischen Stellen.
    - Verbot aller Verbindungen, Erlaubnis nur notwendiger Verbindungen.
    - Physische Zugangskontrolle zur Firewall.
    - Regelmäßige Überwachung der Firewall-Logs.
    - Implementierung von Change Management für die Firewall-Konfiguration.

###  Hashing und Hash-Funktionen

#### 1. Einführung - Hashing

- **Hashing**: Bedeutet „Zerhacken“. Hash-Algorithmen sind Einwegfunktionen, die eine beliebig lange Eingabe in einen Hash-Wert konstanter Länge umwandeln.
- **Ziel**: Vom Hash-Wert soll nicht auf die Eingabe geschlossen werden können.
- **Hash-Funktion**: Mathematische Funktion, die einen Eingabestring beliebiger Länge in einen festen Ausgabestring (Hash-Wert) umwandelt.

#### 2. Anwendungsgebiete

- **Datenbanken**: Schnelle Such- und Zugriffsverfahren.
- **Betriebssysteme**: Effiziente Adressierungsfunktionen.
- **Passwörter**: Speicherung von Passwort-Hashes zur Authentifizierung ohne Klartext-Passwörter.

#### 3. Eigenschaften einer Einweg-Hash-Funktion

- **Länge**: Nachricht beliebiger Länge wird in festen Hash-Wert umgewandelt.
- **Einwegfunktion**: Einfach zu berechnen, aber schwer umzukehren.
- **Kollisionsresistenz**: Unmöglichkeit, zwei unterschiedliche Nachrichten mit demselben Hash-Wert zu finden.

#### 4. Message Digest (MD)

- **Definition**: Verfahren zur Erzeugung digitaler Unterschriften.
- **Funktion**: Erzeugt Fingerabdruck in Form einer Zahl.
- **Begriffe**: Kompressionsfunktion, Kontraktionsfunktion, kryptografische Prüfsumme, Integritätsprüfung, Manipulation Detection Code (MDC).

#### 5. Message Authentication Code (MAC)

- **Definition**: Fügt der Nachricht einen Schlüssel hinzu.
- **Funktion**: Sichert Nachrichtenauthentizität durch verschlüsselte Einwegfunktion.

#### 6. Anforderungen an Hash-Funktionen

- **Unkeyed Hash Function**: h(M)
- **Keyed Hash Function**: h(M, k) oder h(M, s)
- **Eigenschaften**:
    - **Compression**: Abbildung beliebiger Länge auf fixen Hash-Wert.
    - **Ease of computation**: Leichte Berechnung von h(x).

#### 7. Manipulation Detection Codes (MDC)

- **Eigenschaften**:
    - **Weak collision resistance**: Schwierigkeit, zwei Inputs mit demselben Hash-Wert zu finden.
    - **One-way**: Schwierigkeit, vom Hash-Wert auf den Input zu schließen.
    - **Strong collision resistance**: Schwierigkeit, zwei verschiedene Nachrichten mit demselben Hash-Wert zu erzeugen.

#### 8. MAC - Message Authentication Code

- **Zwei Eingabeparameter**: Nachricht und Schlüssel.
- **Eigenschaften**:
    - **Ease-of-Computation**: Leichte Berechnung.
    - **Compression**: Abbildung auf MAC fester Länge.
    - **Computation Resistance**: Schwierigkeit, gültige Nachrichten-MAC-Paare zu berechnen.

#### 9. Aufbau und Ablauf von Hash-Funktionen

- **Iterativer Prozess**: Verarbeitung beliebig langer Eingabedaten in Blöcken fester Größe.
- **Kompressionsfunktion**: Erzeugt Zwischenhash, der in nächste Berechnung einbezogen wird.

#### 10. Spezifische Hash-Algorithmen

- **MD2**: Verarbeitet 128-Bit-Input, erzeugt 128-Bit-Hash-Wert, nicht mehr sicher.
- **MD4**: Erzeugt 128-Bit-Hash-Wert, beeinflusste viele andere Hashfunktionen, nicht mehr sicher.
- **MD5**: Modifizierte Version von MD4, erzeugt 128-Bit-Hash-Wert, historische Relevanz, heute unsicher.
- **SHA (Secure Hash Algorithm)**:
    - **SHA-1**: 160-Bit-Hash-Wert, langsamer als MD5, aber sicherer.
    - **SHA-2**: Verschiedene Versionen (SHA-224, SHA-256, SHA-384, SHA-512), verbesserte Sicherheit.
    - **SHA-3**: Gewinner des NIST-Wettbewerbs, basiert auf Keccak.

#### 11. Weitere Algorithmen

- **RIPEMD-160**: Europäische Entwicklung, längerer Hash bietet bessere Sicherheit gegen Brute-Force-Angriffe.
- **WHIRLPOOL**: Erzeugt 512-Bit-Hash-Wert, nutzt spezielles Verschlüsselungsverfahren, bisher keine Schwächen gefunden.
- **HOTP**: HMAC-basierte Einmalpasswörter, verwendet für starke Authentifizierung.

#### 12. Angriffe auf Hash-Funktionen

- **Geburtstagsangriff**: Höhere Wahrscheinlichkeit für Kollisionen bei kleineren Hash-Werten.
- **Urbild-Angriff**: Versucht, vom Hash-Wert auf den ursprünglichen Input zu schließen.
- **Zweiter Urbild-Angriff**: Versucht, eine zweite Nachricht mit demselben Hash-Wert zu finden.

#### 13. Schwächen von Hash-Algorithmen

- **MD5**: Unsicher durch gefundene Kollisionen.
- **SHA-1**: Angegriffen durch neue Methoden, SHA-1 wird ab 2010 nicht mehr verwendet.
- **WHIRLPOOL und RIPEMD-160**: Bisher keine bekannten Schwächen, aber weitere Untersuchungen nötig.

#### 14. Fazit

- **MD5, SHA-0, SHA-1**: Bekannte Kollisionen, daher unsicher.
- **SHA-2**: Keine bekannten Kollisionen, daher sicher.
- **SHA-3, WHIRLPOOL, RIPEMD-160**: Aktuelle sichere Algorithmen, aber weitere Untersuchungen notwendig.

###  IPsec

#### 1. Einführung in IPsec

- **Definition**: IPsec ist ein Verfahren zur Verschlüsselung und Authentifizierung von IP-Datagrammen auf Layer 3 (Vermittlungsschicht).
- **Ziele**: Herstellerunabhängiger Sicherheitsstandard für IPv4 und IPv6.
- **Protokoll-Familie**:
    - IKE (Internet Key Exchange) für sicheren Schlüsselaustausch.
    - ESP (Encapsulating Security Payload) für verschlüsselten und integren Datentransfer.
    - AH (Authentication Header) für authentifizierten Datentransfer.

#### 2. Sicherheitsprobleme und Lösungen

- **Paketintegrität**: Sicherstellung der Unverändertheit der Nutzdaten mittels HMAC (RFC 2104).
- **Paketauthentifizierung**: Sicherstellung, dass das IP-Paket vom richtigen Absender stammt.
- **Paketvertraulichkeit**: Verschlüsselung der Daten mit symmetrischen Verfahren.
- **Verkehrsflussvertraulichkeit**: Schutz vor Analyse des Datenverkehrs.
- **Anti Replay Service (ARS)**: Schutz vor Replay-Angriffen durch Sequenznummern.

#### 3. Protokolle in IPsec

- **Authentication Header (AH)**:
    - Gewährleistet Integrität und Authentizität der IP-Datagramme.
    - Nutzung eines gemeinsamen Schlüssels für HMAC-Authentifikation.
    - Kann alleine oder in Kombination mit ESP verwendet werden.
- **Encapsulating Security Payload (ESP)**:
    - Ermöglicht Vertraulichkeit und Integritätsprüfung sowie optionale Authentifikation.
    - Frei wählbares Verschlüsselungsverfahren.
    - Unterstützt Transport-Mode (nur Payload wird verschlüsselt) und Tunnel-Mode (komplettes IP-Paket wird verschlüsselt).

#### 4. ESP-Modi

- **Transport-Mode**:
    - Verschlüsselt nur die Payload.
    - Verwendung zwischen Hosts.
- **Tunnel-Mode**:
    - Verschlüsselt das gesamte IP-Paket.
    - Verwendung zwischen Gateways.

#### 5. Unterschiede zwischen AH und ESP

- **AH**: Authentifiziert das gesamte Paket bis auf veränderliche Daten.
- **ESP**: Berücksichtigt den IP-Header nicht bei der Authentifikation.
- **IPv6**: AH und ESP sind zwingend; bei IPv4 optional.

#### 6. Key Management

- **Security Association (SA)**:
    - Verwaltung der Sicherheitsparameter und Maßnahmen zwischen Kommunikationspartnern.
    - Identifikation der SA durch den Security Parameter Index (SPI).
    - Dynamische Erstellung und Löschung von SAs mittels ISAKMP.
- **IKE (Internet Key Exchange)**:
    - Protokoll zur Verhandlung und zum Austausch von Schlüsseln.
    - Setzt sich aus ISAKMP und OAKLEY zusammen.
    - Unterstützt Main Mode, Aggressive Mode und Quick Mode.
    - Besteht aus zwei Phasen:
        - **Phase I**: Authentifizierung der Peers und Aushandlung eines symmetrischen Schlüssels.
        - **Phase II**: Nutzung des Schlüssels aus Phase I zur sicheren Datenübertragung.

#### 7. Anti Replay Service (ARS)

- **Mechanismus**: Schutz vor Replay-Angriffen durch Überprüfung der 32-Bit-Sequenznummer.
- **Funktionsweise**: Nutzung eines Fensters, das einen Bereich gültiger Sequenznummern definiert.
- **Verarbeitung**: Pakete mit Sequenznummern außerhalb des Fensters oder bereits verarbeitete Pakete werden verworfen.

#### 8. Fazit

- **Transparenz**: IPsec operiert unterhalb der Transportschicht und ist daher transparent für User- und Server-Software.
- **Ende-zu-Ende-Kommunikation**: Sicher auch über nicht IPsec-konforme Netze.
- **Proxy-Firewalls**: Integration mit Proxy-Firewalls kann problematisch sein.
- **Schutz**: AH schützt zusätzlich IP-Header-Daten; kombinierte Nutzung von AH und ESP bietet umfassenden Schutz vor Sniffing-Attacken.

### IPTables

#### 1. Einführung und Grundlagen

- **IPTables**: Ein Programm zur Konfiguration von `netfilter`, das seit der Kernelversion 2.4 verfügbar ist.
- **Ziel**: Grundlegende Einstellungen und Konfigurationen zur Netzwerkpaketfilterung auf einem Linux-Gateway.

#### 2. Aufbau von IPTables

- **Bestandteile**:
    - **Regeln (rules)**: Definieren, was mit einem IP-Paket geschehen soll.
    - **Ketten (chains)**: Sammlung von Regeln, die nacheinander abgearbeitet werden.
    - **Tabellen (tables)**: Enthalten mehrere Ketten. Drei Standardtabellen: `filter`, `nat`, `mangle`.

#### 3. Tabellen und ihre Funktionen

- **Filter-Tabelle**: Zuständig für die Paketfilterung. Enthält die Ketten `FORWARD`, `INPUT`, `OUTPUT`.
- **NAT-Tabelle**: Übersetzt zwischen internen und externen IP-Adressen. Enthält die Ketten `PREROUTING`, `OUTPUT`, `POSTROUTING`.
- **Mangle-Tabelle**: Verändert Daten im Paket-Header. Enthält alle Ketten.

#### 4. Ablaufreihenfolge der Paketverarbeitung

- **Schritte**:
    - Daten im Header können verändert werden.
    - IP-Adressen können verändert werden.
    - Anwendung auf alle Pakete.
    - Spezielle Behandlung für lokal bestimmte Pakete.

#### 5. Verarbeitung der Regeln

- Regeln werden fortlaufend nummeriert und nacheinander abgearbeitet.
- Die Reihenfolge der Regeln ist entscheidend, da Regeln sich gegenseitig aufheben können.
- Wird eine Regel erfüllt, endet die Verarbeitung in der entsprechenden Kette.

#### 6. IPTables-Befehle

- **Regeln beeinflussen**: Hinzufügen, Löschen, Ändern von Regeln.
- **Wichtige Befehle**:
    - `-L`: Listet alle Regeln.
    - `-F`: Setzt alle Regeln zurück.
    - `-A`: Hängt eine neue Regel an die Kette an.
    - `-I`: Fügt eine Regel an einer bestimmten Position ein.
    - `-D`: Löscht eine Regel anhand ihrer Nummer.

#### 7. Beispielskript für IPTables

- **Ein einfaches Firewall-Skript**:
    - Löschen aller existierenden Regeln: `iptables -F`, `iptables -X`.
    - Standardregeln setzen: `iptables -P INPUT DROP`, `iptables -P OUTPUT DROP`, `iptables -P FORWARD DROP`.
    - Loopback-Kommunikation erlauben: `iptables -A INPUT -i lo -j ACCEPT`, `iptables -A OUTPUT -i lo -j ACCEPT`.
    - Stateful Inspection: `iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT`.
    - Definierte Ketten erstellen: `iptables -N MYDROP`, `iptables -N MYACCEPT`.
    - Regeln für SSH und PING: `iptables -A INPUT -p tcp --dport 22 -j MYACCEPT`, `iptables -A INPUT -p icmp -j MYACCEPT`.

#### 8. Benutzerdefinierte Ketten

- **Erstellen**: Mit dem Befehl `-N` können benutzerdefinierte Ketten erstellt werden.
- **Nutzung**: Regeln können Pakete an benutzerdefinierte Ketten übergeben.

#### 9. Parameter für Regeln

- **Parameter** (auch Matches genannt) spezifizieren eine Regel.
    - **Beispiele**:
        - `--in-interface`: Bezieht sich auf einen Netzwerkadapter.
        - `--protocol -p`: Protokoll, auf das die Regel gelten soll (z.B. tcp, udp, icmp).
        - `--source -s`: Quelladresse des Pakets.
        - `--destination -d`: Zieladresse des Pakets.
        - `--jump -j`: Zielregel, was mit einem Paket geschehen soll (z.B. ACCEPT, DROP).

#### 10. Wichtige Praxisbeispiele

- **Ping aus lokalem Netz erlauben**: `iptables -A INPUT -p icmp --src 192.168.0.0/24 -j ACCEPT`.
- **Ping auf localhost verbieten**: `iptables -I INPUT 1 -p icmp --dst 127.0.0.1 -j DROP`.
- **Eingehenden Ping am externen Interface verbieten**: `iptables -A INPUT -p icmp -i ppp0 -j DROP`.
- **Fragmente loggen**: `iptables -A INPUT -p icmp --fragment -j LOG`.
- **Maskieren aller Pakete am externen Interface**: `iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE`.
- **Portweiterleitung für Proxy**: `iptables -t nat -A PREROUTING -i eth0 -p tcp --dport http -j REDIRECT --to-port 3128`.

#### 11. Fazit

- IPTables bietet eine flexible und leistungsstarke Möglichkeit zur Netzwerkpaketfilterung.
- Es ist wichtig, Regeln sorgfältig und in der richtigen Reihenfolge zu setzen, um die gewünschte Netzwerksicherheit zu gewährleisten.
- Benutzerdefinierte Ketten und Skripte ermöglichen eine übersichtliche und effiziente Verwaltung der Firewallregeln.

###  Secure Shell (SSH)

#### 1. Einführung in SSH

- **SSH** (Secure Shell) ist ein Softwarepaket zur sicheren Kommunikation zwischen einem Client (ssh) und einem Remote-Server (sshd).
- Unterstützt verschiedene Betriebssysteme: Unix, Linux, Windows, MacOS.
- Sichert Verbindungen wie Telnet, FTP, SMTP, POP und X-Windows durch Tunnelbildung.
- Bietet eine Vielzahl von Verschlüsselungsalgorithmen: AES, DES, 3DES, Blowfish, ArcFour, CAST128, Twofish.

#### 2. Komponenten von SSH

- **Transportschichtprotokoll**: Server-Authentifizierung, Vertraulichkeit, Integrität, optionale Komprimierung.
- **User-Authentifizierungsprotokoll**: Authentifiziert den Client gegenüber dem Server.
- **Verbindungsprotokoll**: Multiplexen des Tunnels in mehrere logische Kanäle.

#### 3. Verschlüsselung und Authentifizierung

- Daten werden automatisch verschlüsselt, authentifiziert und komprimiert.
- Sitzungsschlüssel wird per RSA ausgetauscht und nicht gespeichert.
- Jeder Host besitzt einen eigenen RSA-Schlüssel zur Authentifizierung.
- Schutz gegen IP-Spoofing durch Verschlüsselung und gegen DNS-Spoofing durch Authentifizierung.

#### 4. Authentifizierung

- **Asymmetrische Schlüsselpaare**: Client benötigt SSH-Keygen-Anwendung zur Erstellung von RSA-Schlüsselpaaren (z.B. PuTTYgen, ssh-keygen).
- **Zwei RSA-Schlüsselpaaren auf dem Server**:
    - **Langlebiges Schlüsselpaar**: Identifikation des Hosts.
    - **Kurzlebiges Schlüsselpaar**: Wird regelmäßig erneuert, nur im Speicher gehalten.

#### 5. Key Exchange

- SSH-Client und -Server einigen sich auf einen symmetrischen Schlüssel (Diffie-Hellman oder ECDH) zur sicheren Datenübertragung.
- **Symmetrische Algorithmen**: AES, Blowfish.
- **Asymmetrische Algorithmen**: Variationen von RSA oder ECDSA.

#### 6. Verbindungsaufbau

1. TCP-Verbindung vom Client zum Server.
2. Austausch der Protokoll- und Programmversion.
3. Umschalten auf ein paketbasiertes Binär-Protokoll.
4. Server sendet öffentlichen Host- und Server-Schlüssel.
5. Austausch der unterstützten Verschlüsselungsverfahren.
6. Client generiert Sitzungsschlüssel und verschlüsselt ihn.
7. Auswahl des Verschlüsselungsverfahrens.
8. Client sendet verschlüsselten Sitzungsschlüssel an den Server.
9. Server entschlüsselt Sitzungsschlüssel und bestätigt.
10. Verschlüsselte Kommunikation wird fortgesetzt.
11. Client authentifiziert sich und erhält eine Arbeitsumgebung.

#### 7. Schlüsselaustausch

- **Schlüsselaustauschalgorithmen**: Diffie-Hellman, elliptische Kurven Diffie-Hellman.
- Verhindern von MiM-Angriffen durch Authentifizierung.

#### 8. Schlüsselmanagement und Zugang

- Verwaltung von SSH-Schlüsseln zur Verhinderung von MiM-Angriffen.
- Wichtigkeit der Aktualisierung von Host-Schlüsseln und ordnungsgemäßer User-Authentifizierung.
- SSH-Schlüssel machen einen großen Teil der Zugangsberechtigungen aus.

#### 9. Client-Authentifizierung

- **Rechner-bezogen**:
    - Authentifizierung über IP-Adresse (unsicher wegen Spoofing).
    - RSA-basierte Authentifizierung des Client-Rechners.
- **User-bezogen**:
    - RSA-basierte Authentifizierung des Users.
    - Passwort-Authentifizierung.
    - RHost-RSA-Authentifizierung (Kombination der beiden vorherigen).

#### 10. Schlüsselverwaltung

- **Private Schlüssel**: Sicher speichern und durch starke Passphrasen schützen.
- **Authentication Agents**: Halten private Schlüssel im Speicher (z.B. Pageant, ssh-agent) zur Erhöhung der Benutzerfreundlichkeit.
- **Public Keys**: Nur vertrauenswürdige Schlüssel in der `authorized_keys`-Datei des SSH-Servers hinterlegen.

#### 11. Sicherheitsmaßnahmen

- Härten von SSH-Servern, besonders bei Root-Zugriff.
- Begrenzung der Authentifikationsmethoden, bevorzugt asymmetrische Schlüsselpaare.
- Zwei-Faktor-Authentifizierung (2FA) aktivierbar.
- Deaktivierung passwortbasierter Authentifikation zur Erhöhung der Sicherheit.
- Verwendung von Tools wie `ssh-audit` zur Analyse und Verbesserung der Sicherheitskonfiguration.

#### 12. Fazit

- **SSH** ist ein wesentliches Protokoll für sichere Netzwerkverbindungen mit robusten Sicherheitsmechanismen.
- Bietet starke Verschlüsselung, sichere Authentifizierung, Datenübertragung und Remote-Befehlsausführung.
- Unterstützt Funktionen wie Port Forwarding und Tunneling.
- Regelmäßige Aktualisierung und Überwachung sind entscheidend, um Sicherheitslücken zu identifizieren und zu beheben.

#### 13. Varianten von SSH

- **SSH1**: Ältere Version mit vielen Sicherheitslücken.
- **SSH2**: Verbesserte Sicherheit und Performance.
- **OpenSSH**: Nutzt OpenSSL-Kryptographie und unterstützt SSH1 und SSH2.

#### 14. Wichtige Befehle (OpenSSH)

- **ssh**: Einloggen und Befehle auf entfernten Rechnern ausführen.
- **sshd**: Serverseitiger Dämon zur Annahme von Verbindungen.
- **ssh-agent**: Hält private Schlüssel für die Authentifizierung.
- **ssh-add**: Fügt RSA- oder DSA-Identitäten zum ssh-agent hinzu.
- **sftp**: Sicherer Datei-Transfer, ähnlich wie FTP.
- **scp**: Kopiert Dateien über das Netzwerk, ähnlich wie rcp.
- **ssh-keygen**: Generiert, verwaltet und konvertiert Schlüssel zur Authentifizierung via SSH.


###  Transport Layer Security (TLS)

#### 1. Hintergrund und Entwicklung

- **Entwicklung**: Ursprünglich von Netscape Communications als SSL (Secure Socket Layer) entwickelt.
- **Zweck**: Schutz von WWW-Verbindungen durch Authentifizierung und Verschlüsselung.
- **TLS**: Fortsetzung und Weiterentwicklung von SSL durch die IETF (Internet Engineering Task Force).

#### 2. Eigenschaften von TLS/SSL

- **Sicherheitsprotokoll**: Entwickelt für sichere Ende-zu-Ende-Kommunikation zwischen Anwendungen (HTTP, NNTP, FTP) und der Internetschicht (TCP/IP).
- **Funktionalität**: Bietet Datenverschlüsselung, Server-Authentifizierung, Nachrichtenintegrität und optionale Client-Authentifizierung.
- **Standard**: Akzeptiert als Quasi-Standard für Web-Browser und Web-Server vom W3C (WWW-Consortium).

#### 3. Ablauf einer TLS/SSL-Verbindung

1. **Verbindungsaufbau**:
    
    - Client initiiert Verbindung und schlägt kryptographische Verfahren vor.
    - Server antwortet und sendet sein Zertifikat (Server-Zertifikat).
    - Optional kann der Server ein Client-Zertifikat anfordern.
2. **Authentifizierung und Schlüsselaustausch**:
    
    - Server signiert Nachrichten mit seinem privaten Schlüssel zur Authentifizierung.
    - Client überprüft das Server-Zertifikat und sendet bei Bedarf sein eigenes Zertifikat.
    - Austausch von Schlüsselinformationen zur Generierung des Sitzungsschlüssels.
3. **Sichere Kommunikation**:
    
    - Verschlüsselung der Nachrichten mit dem ausgehandelten symmetrischen Sitzungsschlüssel.
    - Verwendung von Hash-Funktionen zur Integritätsprüfung der Nachrichten.

#### 4. Wesentliche Bestandteile von TLS/SSL

- **Record-Protokoll**: Verantwortlich für die Fragmentierung, Komprimierung, Authentifizierung und Verschlüsselung von Daten.
- **Handshake-Protokoll**: Verhandelt die Sicherheitsparameter und authentifiziert die Kommunikationspartner.
- **Alert-Protokoll**: Verwaltet Fehler- und Warnmeldungen.

#### 5. Ablauf des Handshake-Protokolls

- **Client_Hello**: Client sendet unterstützte kryptographische Algorithmen und eine Zufallszahl.
- **Server_Hello**: Server antwortet mit ausgewählten Algorithmen, Zertifikat und Zufallszahl.
- **Schlüsselaustausch**: Client und Server generieren und tauschen Sitzungsschlüssel.
- **Change Cipher Spec**: Beide Parteien wechseln zu den neuen Verschlüsselungsparametern.
- **Finished**: Bestätigung des erfolgreichen Schlüsselaustauschs und Authentifizierung.

#### 6. Schlüsselgenerierung

- **Pre-Master Secret**: Vom Client erzeugt und mit dem öffentlichen Schlüssel des Servers verschlüsselt.
- **Master Secret**: Aus dem Pre-Master Secret abgeleitet und zur Generierung von symmetrischen Schlüsseln verwendet.
- **Schlüsselblock**: Enthält alle benötigten Schlüssel und Initialisierungsvektoren für die Verschlüsselung und MAC-Berechnung.

#### 7. Sitzungen und Verbindungen

- **Sitzungen (Sessions)**: Langfristige Kommunikationskanäle mit festgelegten Sicherheitsparametern.
- **Verbindungen**: Kurzfristige Kommunikationskanäle innerhalb einer Sitzung.
- **Wiederaufnahme von Sitzungen**: Ermöglicht schnelle Wiederverbindungen unter Verwendung zwischengespeicherter Session-IDs.

#### 8. Sicherheit und Verschlüsselung

- **Unterstützte Algorithmen**: RC2, RC4, IDEA, DES, 3-DES, MD5, SHA-1, X.509.
- **MAC-Berechnung**: Gewährleistet die Integrität der Daten durch Hash-basierte Authentifizierungscodes.
- **Ports**: Spezifische Ports für SSL-verifizierte Dienste (z.B. HTTPS auf Port 443).

#### 9. Zusammenfassung

- **Zweck**: Gewährleistung von Sicherheit und Integrität der Datenübertragung durch Verschlüsselung und Authentifizierung.
- **Flexibilität**: Applikationsunabhängig, unterstützt verschiedene Protokolle wie HTTP, FTP, Telnet.
- **Sicherheitsmechanismen**: Kombination aus asymmetrischer und symmetrischer Verschlüsselung, Hash-Funktionen und MAC.