Netzwerkprotokolle erklärt: HTTP, FTP, SMTP & DNS 🚀 #3 Hood Informatik https://www.youtube.com/watch?v=LwYDKiwInm0 Transkript (automatisch erstellt) 0:00 willkommen zurück bei hutsinformatik heute starten wir mit einer tiefen Analyse der Netzwerkprotokolle die das Internet und die digitale Kommunikation 0:07 ermöglichen unser Fokus liegt auf den Protokollen HTTP DNS FTP und smtp dabei klären wir nicht nur was diese Protokolle leisten sondern auch wie sie 0:18 genau funktionieren und warum sie für die IT-Sicherheit so wichtig sind stellt euch vor ihr wollt eine Webseite wie google.com aufrufen euer Computer weiß 0:27 zunächst nicht wo genau diese Webseite liegt genauer gesagt welche IP-Adresse sie hat und hier kommt DNS ins Spiel das domain name System ist wie das 0:36 Telefonbuch des Internets es übersetzt Domainnamen die wir Menschen lesen und verstehen können in IP-Adressen die Computer verwenden doch wie genau 0:45 funktioniert DNS DNS ist ein hierarchisches System das aus mehreren Ebenen besteht der Ablauf einer dnsabfrage sieht so aus wenn ihr 0:53 google.com in eurem Browser eingibt schickt euer Computer eine Anfrage an einen sogenannten DNS resolver dieser resolver wird meistens von eurem 1:02 Internetanbieter bereitgestellt der Resolver selbst kennt die IP-Adresse vielleicht nicht aber er weiß wie er sie finden kann dazu nutzt er die Hierarchie 1:11 des dnssystems der Resolver fragt zunächst die Root Name Server das sind die obersten Server im dnssystem die grob sagen welche Name Server für welche 1:23 Toplevel Domains also z.bcom.de.org zuständig sind der der Root Name Server antwortet und verweist den resolver an die Name Server für die 1:35 jeweilige Top Level Domain z.B die.com Name Server der TLD Name Server verweist dann auf den auutoritativen nam Server für die Domain google.com dieser kennt 1:47 die exakte IP-Adresse von google.com und gibt sie zurück der Resolver bekommt die IP-Adresse speichert sie kurzzeitig also im Cash ab und gibt sie an euren 1:58 Computer weiter jetzt kann euer Computer mit dem Server der Webseite kommunizieren doch was passiert wenn DNS mal ausfällt wenn DNS nicht funktioniert 2:07 könnt ihr keine Webseite aufrufen selbst wenn das Internet technisch verfügbar ist das liegt daran dass euer Computer die IP-Adressen nicht kennt und ohne DNS 2:17 nichts findet DNS wurde ursprünglich ohne Sicherheitsmechanismen entwickelt und ist daher anfällig für Angriffe Angreifer könnten gefälschte 2:24 dns-antworten senden um euch auf betrügerische Webseiten umzuleiten das würde man DNS Spoofing nennen nachdem wir wissen wie DNS eine IP-Adresse 2:33 findet stellt sich die Frage wie kommuniziert euer Computer dann mit dem Server dafür wird das transmission control protocol kurz TCP verwendet aber 2:43 was ist TCP und warum brauchen wir es stellt euch vor ihr verschickt ein Buch in einzelnen Seiten an euren Freund ihr braucht erstens eine Methode um die 2:51 Reihenfolge der Seiten sicherzustellen zweitens ein Mechanismus um zu prüfen ob alle Seiten angekommen sind und drittens eine Möglichkeit fehlende Seiten neu 3:01 anzufordern und TCP erledigt genau das aber nur für Datenpakete es sorgt dafür dass Daten in der richtigen Reihenfolge ankommen vollständig und ohne Fehler 3:11 übertragen werden und neu gesendet werden falls sie verloren gehen aber wie funktioniert TCP genau TCP ist verbindungsorientiert was bedeutet dass 3:20 vor der eigentlichen Datenübertragung ein Verbindung aufgebaut wird dieser Prozess wird als freway Handshake bezeichnet der erste step dieses handake 3:30 ist die sy das heißt die Anfrage zum Aufbau der Verbindung der Client also euer Computer sendet ein sypaket also ein synchronize Paket an den Server 3:40 damit sagt er ich möchte eine Verbindung aufbauen dann folgt der zweite step und zwar das sy acknowledge die Bestätigung des Servers der Server antwortet mit 3:50 einem sy acknowledge Paket das bedeutet ich habe deine Anfrage erhalten und bin bereit für die Verbindung als drittes bestätigt der Klient mit einem 3:58 acknowledge Paket er sagt ich habe deine Bestätigung erhalten wir können jetzt loslegen jetzt ist die Verbindung aufgebaut und Daten können übertragen 4:06 werden das heißt die ganze Geschichte mit dem S und dem S acknowledge dient einfach nur dazu um erstmal eine Verbindung aufzubauen hier werden noch 4:14 gar keine Daten übertragen und was passiert während der Datenübertragung der Client also dein Computer zerlegt die Daten in kleine Pakete jedes Paket 4:23 erhält eine Sequenznummer damit der Server sie in der richtigen Reihenfolge zusammensetzen kann der Server bestätigt jedes empfangene Paket mit einer 4:31 Quittung also einem acknowledge und falls ein Paket fehlt fordert der Server dieses erneut an wie wird die Verbindung in TCP aber beendet TCP beendet eine 4:41 Verbindung ebenfalls in mehreren Schritten der Client sendet ein finpaket also ein Finish Paket um die Verbindung zu beenden der Server bestätigt mit 4:50 einem acknowledge und sendet seinerseits ein fin der K bestätigt das Finden des Servers und die Verbindung wird geschlossen TCP ist zuverlässig aber 4:59 langsam da es viele Kontrollmechanismen hat für Anwendungen bei denen Geschwindigkeit wichtiger ist als Zuverlässigkeit z.B Videostreaming oder 5:08 online gaming wird oft das User datagram protocol also kurz UDP verwendet UDP verzichtet auf die Überprüfung und sendet Daten einfach blind an den 5:18 Empfänger jetzt wo wir die Grundlagen geklärt haben schauen wir uns HTTP an das Protokoll mit dem Webseiten ausgeliefert werden HTTP ist ein 5:26 zustandsloses Protokoll was bedeutet dass der Server keine Information über frühere Anfragen speichert jede Anfrage wird unabhängig voneinander behandelt 5:35 und wird behandelt als wäre es die erste und einzige Anfrage ein Beispiel wenn du eine Webseite aufrufst sendet einem Browser eine getanfrage an den Server 5:46 der Server liefert die angeforderte Seite zurück speichert aber keine Information darüber ob du schon vorher andere Seiten besucht hast die Vorteile 5:54 der zustandslosigkeit sind die Einfachheit der Server muss keine Sitzungsdaten speichern und und die Skalierbarkeit mehrere Server können 6:02 dieselbe Anfrage bearbeiten da sie keine zustandsinformation synchronisieren müssen aber hier ist auch der Nachteil wie kann ein Browser also sich merken ob 6:11 sich ein Nutzer schon irgendwo eingeloggt hat oder irgendwelche Sachen in sein warenkor getan hat etc etc und genau hier kommen zusätzliche 6:19 Mechanismen wie Cookies Tokens oder Sessions ins Spiel diese Mechanismen bauen auf http auf sind aber nicht Teil des Protokolls selbst sie sind also eine 6:28 Ergänzung doch wie genau funktioniert eine HTTP Kommunikation HTTP basiert auf dem kleinen servermodell das bedeutet dass euer Browser der als Client agiert 6:38 Anfragen an einen Server stellt und der Server daraufhin antwortet schauen wir uns die einzelnen Schritte mal an ihr gebt also google.com in eurem Browser 6:47 ein aber euer Computer muss herausfinden wo diese Webseite physisch liegt das macht DNS darüber haben wir schon gesprochen sobald die IP-Adresse bekannt 6:56 ist baut euer Browser eine TCP Verb mit dem Server auf auch darüber haben wir schon gesprochen der nächste Schritt ist die eigentliche HTTP Anfrage euer 7:07 Browser schickt diese Anfrage über die TCP Verbindung an den Server eine Anfrage besteht aus einer Methode einem fad der angibt welche Datei auf dem 7:17 Server angefordert wird und manchmal zusätzliche Daten falls ihr beispielsweise ein Formular abschickt der fah sagt dem Server welche 7:25 spezifische Datei ihr haben wollt ein Server kann hunderte oder tausende von Dateien enthalten htmlseiten Bilder Videos oder Javascript Dateien der fah 7:35 ist wie eine Adresse innerhalb des Servers er gibt genau an welche Datei ihr benötigt wenn ihr z.B google.com/indexhtml aufruft sagt ihr 7:45 dem Server bitte schick mir die Datei Index HTML aus diesem Verzeichnis der Server sucht die Datei und schickt sie zurück eine Webseite ist im Grunde 7:55 nichts anderes als eine oder mehrere Dateien die auf einem Server speichert sind der Browser ruft diese Dateien ab interpretiert sie und zeigt sie euch als 8:04 fertige Seite an wenn ihr also eine Webseite besucht fragt ihr im Grunde genommen nur nach bestimmten Dateien die euer Browser dann für euch bereitstellt 8:14 HTTP bietet verschiedene Methoden um den Server zu sagen was Ihr genau wollt zwei der wichtigsten Methoden sind get und Post get wird verwendet um Dateien vom 8:25 Server anzufordern das passiert fast immer wenn ihr eine Webseite öffn ihr fragt den Server gibt mir diese Datei damit ich mir sie ansehen kann Post 8:35 schickt Daten an den Server das passiert beispielsweise wenn ihr ein Formular abschickt oder euch irgendwo einlogt ihr sagt dem Server hier sind meine Daten 8:44 bitte speichere oder verarbeite sie es gibt auch andere Methoden wie put oder delete die z.B Dateien auf dem Server aktualisieren oder löschen aber get und 8:53 Post sind die am häufigsten verwendeten nachdem der Server eure Anfrage verarbeitet hat schickt er eine Antwort zurück diese Antwort besteht aus drei 9:02 Teilen Statuscode Header und Inhalt der Server sagt euch über den Statuscode ob die Anfrage erfolgreich war der Statuscode 200 bedeutet dass alles in 9:12 Ordnung ist während 404 bedeutet dass die angeforderte Datei nicht existiert auch hier gibt es immens viele Statuscodes im Grunde reicht es zu 9:22 verstehen dass alles was mit einer 2 anfängt in der Regel in Ordnung ist alles was mit einer 4 anfängt bedeutet dass quasi ein kleinfehler besteht das 9:31 heißt die Anfrage enthält eine fehlerhafte Syntax oder kann nicht erfüllt werden weil die Datei oder die angeforderte Ressource beispielsweise 9:38 nicht existiert Codes die mit einer dre anfangen bedeuten quasi Umleitungen das heißt entweder werden wir weitergeleitet auf eine andere Seite oder es müssen 9:48 weitere Maßnahmen ergriffen werden um die Anfrage abzuschließen dann gibt es noch die Header Information hier stehen Metainformation zur Antwort wie 9:56 beispielsweise der Typ der Datei z.B HTML oder png falls es sich um ein Bild handeln sollte und dann gibt's noch den Inhalt einer Anfrage falls eure Anfrage 10:07 erfolgreich war schickt der Server die Datei oder den Inhalt den ihr angefordert habt also beispielsweise die html datei einer Webseite 10:14 zusammengefasst können wir also sagen ihr gebt eine URL in eurem Browser ein der Browser löst die Domain über DNS in ein IP-Adresse auf der Browser baut eine 10:24 TCP Verbindung zum Server auf der Browser schickt eine HTTP Anfrage in der er genau sagt welche Datei er haben möchte der Server antwortet mit einem 10:34 Statuscode headn und falls erfolgreich mit dem Inhalt der angeforderten Datei kommen wir noch mal kurz zu dem Unterschied zwischen http und https 10:43 https ist die verschlüsselte Version von http es verwendet TLS Transport Layer Security um die Verbindung zu sichern die Vorteile von HTTPS sind die 10:55 Vertraulichkeit Daten werden verschlüsselt übertragen die Daten können während der Übertragung auch zudem nicht geändert werden das nennen 11:02 wir Integrität und der Client kann sicherstellen dass er mit dem echten Server kommuniziert das nennen wir Authentifizierung das heißt https bietet 11:12 uns Vertraulichkeit Integrität und Authentifizierung kommen wir nun zu FTP das File Transfer Protocol wird verwendet um Dateien zwischen einem 11:21 Computer dem Client und einem Server zu übertragen es ist eines der ältesten Protokolle des Internets und hat eine klare Struktur die es einfach macht 11:31 Dateien hoch oder herunter Z Laden FTP verwendet zwei Arten von Verbindungen zwischen Client und Server einmal die kontrollverbindung über diese Verbindung 11:40 werden Befehle und Antworten ausgetauscht also Dinge wie zeig mir die Dateien im Verzeichnis oder lade diese Datei herunter dann gibt's noch die 11:49 Datenverbindung diese Verbindung wird separat genutzt um die eigentlichen Dateien oder Verzeichnisse zu übertragen die Verbindungen laufen normalerweise 11:57 über zwei Ports Port 21 für die kontrollverbindung und Port 20 oder einen anderen dynamischen Port für die Datenverbindung der Ablauf ist im Grunde 12:07 sehr einfach der Client stellt eine Verbindung zum Server her indem er sich mit einem Benutzernamen und einem Passwort 12:14 authentifiziert nachdem die Verbindung steht kann der Client Befehle an den Server senden um Verzeichnisse anzuzeigen Dateien herunterzuladen oder 12:22 hochzuladen FTP hat eine einfache befehlstruktur die von Mensch und Maschine leicht ver endlich ist doch FDP ist in seiner Standardform nicht sicher 12:32 da alle Daten einschließlich Benutzername und Passwörter im Klartext übertragen werden das macht es anfällig für man in the middle Angriffe das heißt 12:40 angreifer können den Datenverkehr belauschen oder Brute Force Angriffe schwache FDP Passwörter können leicht erraten werden daher sollte man 12:49 heutzutage verschlüsselte Varianten wie FTPs also FTP über SSL oder TLS oder SFTP also FTP über SSH verwenden auf SSL und ssh werden wir in den kommenden 13:03 Videos noch eingehen also bleibt ruhig dran zusammenfassend können wir also sagen dass FDP dazu dient Dateien zwischen einem Client und einem Server 13:12 auszutauschen kommen wir nun zu SMTP dem simple Mail Transfer Protocol SMTP ist das Standardprotokoll für das Senden von E-Mails es sorgt dafür dass eure E-Mails 13:23 vom Absender zum Empfänger gelangen egal ob ihr Gmail Outlook oder euren eigenen Mail Server nutzt SMTP regelt den Transport von E-Mails für das Abrufen 13:34 von E-Mails gibt es hingegen Protokolle wie IMAP oder POP3 aber dazu kommen wir später zu sprechen SMTP arbeitet normalerweise auf Port 25 Port 587 oder 13:46 Port 465 der Ablauf ist sehr simpel der Klein stellt erstmal eine Verbindung zum SMTP Server her dann gibt der Benutzer einen Benutzernamen und ein Passwort ein 13:57 wenn der Server dies verlangen sollte der Client sendet nun die E-Mail mit den relevanten Informationen Absenderadresse Empfängeradresse und den 14:05 Nachrichteninhalt der SMTP Server leitet die E-Mailadresse entweder direkt an den Server des Empfängers weiter oder an einen zwischenserver der Zielserver 14:15 speichert die E-Mail im Postfach des Empfängers ab SMTP verwendet ebenfalls eine einfache befehlstruktur SMTP ist ebenfalls nicht sicher da es 14:24 ursprünglich ohne Verschlüsselung entwickelt wurde heute gibt es aber mehrere Mechanismen die sind z.B Start TLS verschlüsselt die Verbindung nach 14:32 dem Verbindungsaufbau das heißt SMTP sorgt im Grunde für den Versand von E-Mails vom kleinent zum Server und zwischen den Servern es arbeitet mit 14:42 einfachen Befehlen wie hello mailf oder recipient 2 und Sicherheitsmechanismen wie Start TLS sind wichtig um diese Kommunikation abzusichern wir haben 14:51 heute die Grundlagen von TCP DNS HTTP FTP und smtp besprochen diese Protokolle bilden die Basis der Internetkommunikation 15:01 Sicherheitsmechanismen wie https DNS sec oder SFTP sind entscheidend um Bedrohungen abzuwehren im nächsten Video schauen wir uns praktische Beispiele an 15:11 wie man diese Protokolle nutzen und absichern kann danke fürs zuschauen bleibt sicher und schreibt mir gerne in die Kommentare wenn ihr irgendwas nicht 15:19 verstanden habt bis zum nächsten Mal