Networking Grundlagen: 07a Simple Mail Transfer Protokoll - SMTP DE-CIX https://www.youtube.com/watch?v=arxXCR23_RI Transkript (automatisch erstellt) 0:05 hallo und herzlich willkommen zu diesem Video aus der Reihe Networking Grundlagen heute geht es um ein Protokoll auf der 0:15 Anwendungsebene smdp simple Mail Transport Protokoll zum Transport von E-Mail ich bin Wolfgang Tremmel von der dkicks Academy wenn du Interesse an 0:26 weiteren Videos hast schau auf unseren Youtube Kanal schau auf unsere Webseite www.dkix.net/academy hier findest Du jede Menge Content zum Anschauen und zum 0:41 Runterladen in der Reihe Networking Grundlagen erkläre ich die Grundbegriffe der Internetprotokolle kurze Wiederholung lass uns noch mal über das 0:51 Internet layermodell reden hier auf Ebene 3 da heißen die Dateneinheiten die verschickt werden Pakete und die Ebene 3 ist zuständig für den Ende zu Ende 1:07 Transport Protokolle auf der Ebene 3 haben wir IPv4 und IP V6 momentan auf der Transportebene Ebene 4 1:20 haben wir UDP und TCP und TCP sorgt für flow control Zuverlässigkeit Vermeidung von netzwerkverstopfung und mehr und es 1:35 sorgt dafür dass der Absender weiß das alles beim Empfänger angekommen ist UDP ist ein verbindungsloses Protokoll wir haben keine dieser schönen 1:46 Eigenschaften Pakete werden einfach abgeschickt und sie kommen an oder Sie kommen nicht an heute geht's um den Application Layer 1:56 die Anwendungsebene und der Layer der basiert natürlich auf dem Transport Layer und benutzt entweder UDP 2:08 oder TCP als Transportprotokolle wir haben hier auf dem anwendungslayer viele Protokolle um Anwendungen zu realisieren Prozess zu 2:20 Prozess Kommunikation über ipnetzwerke und Modelle der Kommunikation gibt's entweder z Client Server Modell das heißt ein 2:32 Client holt sich Information von einem Server oder Peer topeer relationship zwei gleichberechtigte Systeme kommunizieren miteinander wenn ihr mehr 2:43 über Kommunikationsmodelle im Internet wissen will do auch dafür gibt's ein Video schaut euch an es ist in der Youtube 2:51 Playlist enthalten ja Application Layer Beispiel auf dem Application Layer gibt z eemmail Web Audio Video und noch viel viel mehr 3:04 was hier realisiert wurde über die Jahre hinweg heute schauen wir uns E-Mail an und zwar ganz speziell den Transport von E-Mail E-Mail ist eines der ältesten 3:22 Protokolle im Internet was immer noch in Benutzung ist das Web und Webbrowser kamen sehr viel später die Anzahl der RFCs der 3:35 Internetstandards die irgendwo Mail erwähnen ist gewaltig es sind 483 also diese Präsentation ich kann einfach nicht alles 3:47 erzählen wir fokussieren uns heute auf den Transport von E-Mail und dafür gibt es ein Protokoll und das Protokoll heißt 4:01 SMTP SMTP steht für simple Mail Transport oder Transfer 4:16 Protocol und das RFC in dem es beschrieben wird RFC 5321 ist inzwischen 94 Seiten lang das erste 4:28 RFC das 1981 geschrieben wurde RFC 788 war nur 6 Seiten lang das ist immer noch schon sehr lang aber es kam noch 4:42 einiges dazu und wenn ein Protokoll simple Mail transferprotokoll heißt dann fragt man sich als allererstes gab es eigentlich auch ein nicht einfaches ein 4:53 nonsimple Protocoll und ja RFC 772 definiert ein Mail transferprotokoll und der neueste Standard 2008 geschrieben RFC 5:10 5321 das ist die aktuellste Version von SMTP wie gesagt 94 Seiten lang SMTP was macht das eigentlich na ja es transportiert E-Mail 5:25 und zwar sowohl von Server zu Server als auch von Benutzer zu Server und das nennt man auch submission und wir haben mal über Ports geredet bei TCP und bei 5:42 UDP submission kann einen anderen Port benutzen SMTP die Portnummern auch die liegen schon sehr lange fest SMTP 5:55 benutzt TCP portnmer 25 und das ist der Standard Seite SMTP definiert wurde für die Submission das heißt wenn ein Benutzer E-Mail an einen Server 6:06 einliefert wird neuerdings na ja so neu ist es auch nicht mehr Port 587 benutzt und Port 465 wenn diese submission verschlüsselt 6:21 ist reden wir über E-Mail die Struktur einer E-Mail E-Mail hat sichtbare Teile z.B den Header man sieht ihn in jedem 6:36 E-Mailprogramm normalerweise wird das meiste verborgen der eigentliche Header ist viel länger als man im Standard e-mailpogramm sieht hier gibt es Zeilen 6:47 die formatiert sind wie Feldname und Doppelpunkt und dann kommt der Inhalt eines Feldes und hier haben wir Felder wie subject from to oder z.B message ID 7:00 aber noch viel mehr und das meiste sieht man nicht wird vom E-Mail clein verborgen aber bei jedem E-Mail Client gibt es eine 7:09 Einstellung mit dem man sich das alles sichtbar machen kann und nach dem Header kommt der Body der Inhalt der E-Mail und wir haben aber 7:21 auch noch einen unsichtbaren teil und das ist so der sogenannte Briefumschlag die envelop und das sind Daten die werden beim Connecten zwischen zwei 7:33 e-mailsvern übermittelt hier sehen wir das Beispiel eines E-Mail headers und wie gesagt die Formatierung ist Feldname doppelp Inhalt und hier 7:47 haben wir das Subject wir haben das from und wir haben das to Feld das meiste wird vom E-Mail Client Verben 7:59 Morgen und schaut mal in E E-Mail kleent Dokumentation und schaut euch mal den kompletten Header von einer ganz normalen E-Mail an der ist schon 8:09 ziemlich lange heutzutage der Buddy im Buddy ursprünglich war nur Text und auch heute eigentlich ist nur die Übertragung von lesbarem Text möglich aber Stopp wir 8:27 haben doch auch Fotos in E-Mails drin diese Fotos werden codiert die binärinformation von Fotos oder von allen anderen binär anhängen werden über 8:40 den sogenannten mim Standard encodiert so dass letztendlich in der E-Mail der eigentlichen E-Mail nur Text sichtbar ist dafür wird eine Codierung Namen 8:53 space 64 benutzt und die macht natürlich auch die E-Mail immer noch etwas länger weil wir bilden im Prinzip einen binär Inhalt auf einen Textinhalt ab und das 9:05 führt dazu dass das Ganze länger wird der Briefumschlag die envelop das ist die Kommunikation die zwei zwischen zwei e-mailsvern abläuft das ist Daten 9:19 die ausgetauscht werden bevor die eigentliche E-Mail übermittelt wird an Minimum haben wir hier den des absendenden Servers wir haben die 9:33 E-Mailadresse des Absenders die muss nicht gleich sein wie die E-Mailadresse die in der im Text im Header steht sollte es aber und wir haben die 9:46 E-Mailadresse des Empfängers und das können ein oder mehrere E-Mailadressen sein und hier rechts oben in dem grauen Feld sehen wir wie das ganze aussieht 9:57 optional haben wir noch tion en wie die Größe der E-Mail in BIZ und wir haben auch noch andere Dinge wie andere Parameter die im Briefumschlag 10:10 übertragen werden können das Protokoll SMTP ist textbasiert man kann das ganze mitlesen schauen wir uns das folgende 10:21 Beispiel an jede Interaktion kann als Text gelesen werden das heißt auch dass ich mit der Tastatur email Server spielen kann der Sender benutzt 10:32 Kommandos die alle vier Buchstaben lang sind na ja die waren alle mal vier Buchstaben lang irgendwann hat man gesagt warum beschränken wir uns auf 10:42 vier Buchstaben lass uns einfach sinnvoller Kommandos definieren und wir fangen an mit Elo seltsames Wort e HL warum 10:54 Elo das ursprüngliche Wort war Helo und nein nicht hello weil hello sind fünf Buchstaben also vier Buchstaben h e L o und wenn man eine man brauchte eine 11:06 Erweiterung also hat hat mal die Buchstaben ein bisschen verwürfelt und hat Elo draus gemacht und der Empfänger antwortet auf so ein Kommando mit einem 11:17 dreistelligen Fehler oder erfolgscode und wie man hier schaut wenn man ratet 250 bedeutet alles okay kein Fehler welche Kommandos gibt's bei 11:31 SMTP zunächst identifiziert sich der Absender und wie gesagt das macht er mit dem Elo und seinem eigenen ausnahen der Empfänger antwortet mit 11:44 einer dreistelligen statusnummer in dem Falle 250 und antwortet auch mit einer Liste von sogenannten capabilities von 11:56 Fähigkeiten die er hat das alles kann der Empfänger der empfängerserver und der Absender weiß jetzt was von diesen Features er nutzen kann und hast du den 12:11 Strich gesehen zwischen dem Statuscode und der capability und dieser Strich fehlt in der letzten Zeile das heißt wir wissen hier ist das Ende also wenn ein 12:23 Strich nach dem Statuscode ist heißt da kommt noch mehr wenn kein Strich mehr da ist heißt hier zu Ende alles so kleine Feinheiten die man 12:34 definiert hat um auf textbasierten Kommandos zu bleiben dann nachdem sich der Absender identifiziert hat beginnt er mit der Übertragung der E-Mail zuerst 12:48 sagt er von wem die E-Mail ist das ist mit dem sogenannten mail from und das ist die Adresse auf dem Briefumschlag er sagt das ist der Absender der E-Mail als 13:00 nächstes sagt er an wen die E-Mail geht wir sind hier immer noch beim Briefumschlag wir sind beim envelop es sind noch nicht bei der E-Mail angelangt 13:09 in der E-Mail sollten zwar die gleichen Werte stehen müssen aber nicht und letztendlich schickt er ein Kommando namens data und das heißt jetzt geht die 13:22 eigentliche E-Mail los zuerst der Header dann eine lehrzeile und dann der Body und das ganze wird beendet mit einem einzelnen Punkt am Anfang der 13:36 Zeile ja das heißt aber auch wenn ich irgendwo einen Punkt in meiner E-Mail drin stehen habe muss der irgendwie anders codiert werden sonst meint der 13:46 e-mailsver das Ganze wäre fertig nach dem Punkt antwortet der Mailserver auch wiederum mit Status 250 alles okay und einem Text mit einer ID hier in dem Fall 14:00 und hier schickt der Absender jetzt ein quitkmando das heißt ich bin fertig ich beende jetzt die Verbindung man könnte auch einfach 14:12 weitermachen das heißt nicht quit sondern einfach von vne anfangen mail from recipient to und Data das heißt mit einer TCP Verbindung können natürlich 14:24 auch mehrere E-Mails übertragen werden aber quid beendet das ganze der Statuscode wie gesagt dreistellig die erste Stelle ist das Ergebnis 2 14:38 heißt alles ist gut positives Ergebnis 5 heißt vom e-mailsystem und null heißt keine weiteren Daten es gibt andere Statusmeldungen z.B 14:53 354 das heißt Zwischenmeldung alles ist gut oder 221 das heißt endmeldung vom 15:05 Übertragungssystem und weitere Informationen stehen an schauen wir uns ein echtes Beispiel 15:15 an ich baue eine e-mailverbindung auf von meiner Kommandozeile ich kann auch help eingeben ist auch ein gültiges Kommando bei help zeigt er mir an welche 15:27 Kommandos möglich ist dann identifiziere ich mich mit Helo ja das geht auch immer noch und letztendlich noch mal mit Elo bei Elo schickt er mir die 15:37 capabilitiesties zurück bei Helo nicht mail from meine Absenderadresse recipient to an wen die E-Mail geht und letztendlich data ich 15:51 habe das jetzt alles eingetippt ich habe das per Hand eingetippt ich habe kein E-Mailprogramm dafür benutzt und das funktioniert wirklich und mit quit 16:01 beende ich das Ganze und wenn wir ehrlich sind das sieht nicht sehr sicher aus richtig richtig SMTP wie es ursprünglich 16:13 definiert war kennt keinerlei Sicherheit als das Internet noch jung war war es im Prinzip eine geschlossene Benutzergruppe jeder kannte sich jeder traute einander 16:26 und es war einfach nicht nötig irgendwelche Sicherheit irgendwelche Verschlüsselungen einzuführen SMTP stammt aus dieser Zeit wie gesagt 16:36 ein sehr altes Protokoll und auch heute hat es immer hat es dadurch den Nachteil dass Absender sehr einfach gefälscht werden können jeder von uns hat Spam 16:49 e-ails in seiner Postbox wo irgendeinen fantasieabsender drin steht und das geht leider immer noch man kann einen beliebigen ab Sender eintragen es wird 17:00 nichts überprüft und das ist aber eigentlich ein gutes Feature was leider missbraucht wird jedes System kann E-Mail zu jedem Empfänger 17:14 verschicken über die Zeit hinweg wurden security features dazu gebaut z.B verschlüsselte Übertragung dafür gibt's ein Kommando Start TLS ihr seht es ist 17:27 nicht mehr vierbuchstabig und das wurde 1999 in RFC 2487 hinzugefügt und das schützt die Übertragung der E-Mail nicht den Inhalt der Inhalt wenn er 17:41 entschlüsselt wird ist immer noch ein einfacher Text aber zumindest im Übertragungsweg kann nicht mehr mitgelesen werden dann Authentifizierung 17:51 das heißt ich kann mich gegenüber einem Mailserver authentifizieren dafür wurde 1994 ein out kommmando eingeführt und das wird hauptsächlich dazu benutzt dass 18:04 ein Benutzername und ein Passwort an den Mailserver übermittelt wird so dass nicht mehr jeder jeden beliebigen Mailserver nutzen kann sondern man 18:14 irgendwo einen Benutzernamen und ein Passwort brauchen das ist heutzutage eigentlich überall Standard dass das benutzt 18:22 wird ja Zusammenfassung was haben wir heute gehört es ging heute um SMTP simple Mail 18:33 transferprotokoll und um E-Mail smdp ist ein textbasiertes Protokoll auf dem Application Layer SMTP wird auf Port 25 über TCP 18:47 gesprochen und es ist eines der ältesten Protokolle das immer noch in Benutzung ist über die Jahre hinweg wurde es mehrfach vielfach erweitert und es wird 18:59 sehr empfohlen alle security features von SMTP wie z.B TLS Transport Layer Security und Authentifizierung 19:09 einzuschalten und zu benutzen e-Mails können sehr leicht gefälscht werden außer man benutzt zusätzliche Features um auch den Inhalt 19:20 der E-Mail zu schützen wie z.B kryptographische Signaturen wie gesagt SMTP sel selst schützt nur kann nur die Übertragung der E-Mail schützen nicht 19:32 den Inhalt selber und das war's für heute vielen Dank fürs Zuhören ich bin Wolfgang Tremmel von der DK Academy tschüss bis 19:42 zum nächsten Mal