Technische Grundlagen des Internets

Es gibt viele Mythen über die Technik im Internet: Internetkommunikation ist anonym und alles ist chaotisch und anarchisch organisiert, um nur ein paar zu nennen. Dieser Text soll diese Mythen beseitigen, insbesondere soll die Technik anhand von alltäglichen Beispielen verdeutlicht werden, mit der ein normaler Nutzer regelmäßig konfrontiert wird. Der Text soll nur einen Überblick geben, auf eine vollständige Darstellung wird bewusst verzichtet, um insbesondere Datenschutzaspekte herauszuarbeiten.

  1. IP-Adresse, Routing

    Wie ist das Internet grundlegend aufgebaut? Wie finden Daten vom Sender zum Empfänger
  2. Domain Name System (DNS)

    Wie werden aus IP-Adressen Domainnamen? Wer vergibt und verwaltet diese?
  3. Hypertext Transfer Protocol (HTTP)

    Wie funktioniert der Abruf von Sites im World Wide Web?
  4. E-Mail-Versand und -Empfang

    Wie funktioniert der Versand und das Empfangen von E-Mails?
  5. Anonymisierung und Verschlüsselung

    Wie kann man trotzdem anonym bleiben? Wie kann man übertragene Daten schützen?

IP-Adresse, Routing

Das Internet ist nach dem OSI-Modell (Open System Interconnection Reference Model) aufgebaut, d.h. dass Kommunikation über verschiedene Schichten abläuft, und einzelne Schichten ausgetauscht werden können, ohne dass sich in den anderen etwas ändert. So ist es beispielsweise in der physikalischen Schicht (Schicht 1) möglich, statt eines analogen Telefonanschlusses eine digitale Ethernetverbindung („Netzwerkkabel“) oder einen digitalen optischen Anschluss („Glasfaser“) zu verwenden, ohne an den Datenschichten (Schichten 5 – 7), z.B. dem Abruf von Internetseiten, etwas ändern zu müssen.

Die Schicht 1 ist die physikalische Schicht, anhand derer festgelegt wird, wie mit bestimmten Voraussetzungen digitale Signale, die Bits, übertragen werden. Schicht 2 ist eng damit verbunden und dient zur Sicherung dieser Schicht, z.B. zur Überprüfung, ob die Daten richtig übertragen wurden, ob der Empfänger der Daten überhaupt existiert und ähnliches.

Schicht 3 ist dann die Vermittlungsschicht (Network Layer), in der Daten zu Paketen zusammengefasst werden. Die gängigste Methode ist das Internetprotokoll (IP). Hierzu wird jedem Teilnehmer an einem Netzwerk eine eindeutige Nummer vergeben, die sogenannte IP-Adresse, anhand derer dieser erkannt werden kann. Werden Daten übertrgen, so sendet eine IP-Adresse, zum Beispiel unser Webserver mit der Adresse die Daten an die IP-Adresse des Aufrufers, in ihrem Fall an die Adresse . Sollten Sie ihre Verbindung zum Internet trennen und sich neu einwählen, so kann es sein, dass Sie eine andere IP-Adresse erhalten, dies muss allerdings nicht der Fall sein. Ob eine bestimmte Adresse erreichbar ist, kann mit Hilfe des Programms ping und der Eingabe der Adresse verifiziert werden, z.b. ping .

Jeder Anbieter von Diensten, zum Beispiel Zugangsprovider (ISP = Internet Service Provider), darf nur einen bestimmten Teil dieser Adressen vergeben, da keine IP-Adresse doppelt „sichtbar“ vorkommen darf (dazu später mehr). Insbesondere ist auch das Internet kein einzelnes großes Netz, sondern die Überlagerung verschiedener Netze, die miteinander vernetzt sind. Sollen jetzt Daten aus einem Teilnetz in ein anderes übertragen werden, müssen zwischen den beiden Netzwerken sogenannte Router geschaltet werden, die dann die Daten verteilen. Oft ist es auch der Fall, dass mehrere Netzwerke zwischen Sender und Empfänger liegen und mehrere Wege der Daten möglich sind. In diesem Fall muss der Router über Algorithmen entscheiden, welchen Weg die Daten nehmen sollen, auch müssen die Router untereinander kommunizieren, um eventuell ausgefallene Leitungen erkennen zu können und Ersatzwege zu finden. Auch können an Routern die übertragenen Daten sowie die IP-Adressen von Sender und Empfänger protokolliert werden. Routen zu bestimmten Adressen können mit dem Programm traceroute oder trroute z.b. traceroute . Welche Organisationen welche IP-Adressen vergeben dürfen, wird von der ICANN (Internet Corporation for Assigned Names and Numbers) bestimmt.

In der gegenwärtig am weitest verbreiteten Version IPv4 besteht eine Adresse aus 32 Bit, d.h. es sind ca. 4,3 Mrd eindeutige Adressen möglich, die in 4 Blöcken zu 8 Bit zusammengefasst werden (siehe obige Adressen). Dabei ist noch zu beachten, dass bestimmte Adressen nicht öffentlich vergeben werden: die Adresse 127.0.0.1 ist für das Ansprechen von Diensten auf dem eigenen Rechner, Adressen der Form 192.168.xxx.xxx sind für den Gebrauch von lokalen Netzwerken reserviert. Um die beschränkte Zahl der IP-Adressen zu erweitern, wurde die Version 6 des IP entwickelt, das Adressen mit 128 Bit (ca. 340 Sext. Adressen) vergibt. Diese Anzahl dürfte dauerhaft ausreichen.

Damit Daten auch übertragen werden können, muss spezifiert werden, in welchem Format der Transport der Daten (Schicht 4: Transportschicht) erfolgen muss. In den meisten Fällen geschieht dies über das Transmission Control Protocol (TCP), zusammen mit IP meist als TCP/IP geschrieben. Hierzu fragt ein Client bei einem Server die Daten auf einer bestimmten Portnummer an, der Server liefert diese Daten und wartet wiederum auf eine Empfangsbestätigung. Somit bietet TCP eine Kontrolle darüber an, ob die Daten angekommen sind, was bei anderen Protkollen wie UDP nicht der Fall ist.

Domain Name System (DNS)

Nach alldem können bisher nur Daten von Computern abgerufen werden, deren IP-Adresse bekannt ist. Da sich Menschen aber Zahlen schlechter merken können als Namen, z.B. schlechter als dergrossebruder.org, wurde das Domain Name System (DNS) eingeführt. Hierbei handelt sich prinzipiell um eine Datenbank, in der gespeichert ist, welche Domain zu welcher IP-Adresse gehört. Bei Aufruf einer Domain wird dann bei einem DNS-Server die IP-Adresse angefragt und dann weitergeleitet.

Domains bestehen aus mehreren Teilen: Zunächst die Top-Level-Domain (TLD), die „Endung“, z.B. .org, .com, .de. Diese können wiederum in zwei Typen unterteilt werden, die genererischen (gTLD), diejenigen, die nicht Ländern, sondern bestimmten Diensten zugeordnet werden (org = Organisation, net = ursprünglich nur für Internetdienste, com = kommerzielle Anbieter, gov = US-Regierung, mil = US-Militär, edu = US-Bildungseinrichtungen, …), erkennbar an drei oder mehr Stellen, sowie länderstpezifische (country code, ccTLD), erkennbar an zwei Stellen (de = Deutschland, ch = Schweiz, at = Österreich, uk = Vereinigtes Königreich von Großbritannien und Nordirland, ru = Russland, …). Dass US-Regierung, -Militär, -Bildungseinrichtungen eigene TLD besitzen, liegt daran, dass das DNS wie das Internet allgemein in den USA entwickelt wurde.

Der zweite Teil der Domain ist die Second Level Domain (SLD), z.B. dergrossebruder. Zusammen mit der TLD ergibt sie die Domain, z.B. dergrossebruder.org. Natürlich kann zu jeder TLD eine andere Person die SLD beantragen, so lautet die offizielle Seite des US-Präsidenten whitehouse.gov, während sich unter whitehouse.org eine satirische Website von Kritikern des Präsidenten findet. Schließlich kann jeder Domain-Inhaber noch Subdomains definieren, auf denen sich beispielsweise verschiedene Dienste oder Webseiten befinden können. Meist wird die Website die subdomain www.SLD.TLD, für E-Mail-Server mail.SLD.TLD und für FTP-Server ftp.SLD.TLD gewählt, dies sind jedoch nur Konventionen, die nicht zwingend angewendet werden müssen.

Die Zuordnung von Domains zu IP-Adressen und die Verwaltung der Besitzansprüche auf Domains werden von meist kommerziellen Organisationen durchgeführt. Diese werden für jede TLD gesondert von der ICANN damit beauftragt. Meist kostet die Registrierung und die Nutzung eines Domainnamens, so dass die Verwaltung bestimmter TLD ein sehr lukratives Geschät sein kann.

Historisch sind für Domainnamen nur die Buchstaben a-z, Ziffern und – erlaubt, da DNS in den USA entwickelt wurde. Jedoch gibt es auch die Möglichkeit, andere Zeichen in Domains einzufügen, z.B. deutsche Umlaute oder komplett andere Zeichensätzen wie chinesische. Da manche Zeichen jedoch in verschiedenen Schriften identisch dargestellt werden, kann dies dazu benützt werden, um Anwender auf eine gefälschte Website u.a. im Rahmen einer Phishing-Attacke zu lotsen. Beispielsweise wird ein kyrillisches а (HTML-Entity: а) oft wie ein lateinisches a dargestellt.

Hypertext Transfer Protocol (HTTP)

Mit TCP/IP ist nur die Adressierung der Rechner im Internet und der Transports der Daten festgelegt, wie der Datenabruf im einzelnen zu erfolgen hat, wird durch anwendungsspezifische Protokolle in der deshalb Anwendungsschicht genannten Ebene definiert. Für Webseiten wird meist das Hypertext Transfer Protocol (HTTP) verwendet.

HTTP wurde am CERN von Tim Berners-Lee 1989 erfunden, zusammen mit dem Uniform Resource Locator (URL) und der logischen Auszeichnungssprache Hypertext Markup Language (HTML). URL dienen dazu, mit dem Symbol des Netzwerkprotokolls (z.B. http), des Domainnames oder der IP-Adresse und dem logischen Pfad der aufzurufenden Datei eine Datei anzufordern. Sie werden in der Form Netzwerkprotokoll://Domain oder IP-Adresse Pfad angegeben, für die Startseite unserer Website also http(Protokoll)://dergrossebruder.org(Domain)/(logischer Pfad) bzw. http://(IP-Adresse)/.

HTTP wird in der Regel von Anwendungen wie z.B. Webbrowsern ausgeführt. Der Browser sendet eine Datenanforderung an einen Webserver, agiert also als Client, der Server sendet daraufhin die Daten zurück: Zunächst den Statuscode für die Ausgabe (200 für OK, 404 für Seite nicht gefunden, 403 für Authentifizierung fehlgeschlagen), danach eine Angabe über den Typ des Servers, die Länge der Daten, die Art der Daten (z.B. text/html für html, image/jpg für Bilder im jpg-Format, audio/mp3 für MP3-Dateien) und schließlich die Daten selbst. Die Daten werden über TCP/IP in Pakete aufgeteilt und dem anforderndem Rechner über das Netzwerk übertragen, dessen Netzwerksoftware die Pakete wieder zusammensetzt und dem Webbrowser die Daten übergibt, der sie dann entsprechend darstellt und verarbeitet.

Die Daten werden unverschlüsselt übertragen, und ebenfalls ist die IP-Adresse von sowohl Sender als auch Empfänger sowohl bei Abruf als auch bei Auslieferung der Daten enthalten, so dass diese Daten an jedem Router protokolliert werden können. Näheres dazu beim Punkt Anonymisierung und Verschlüsselung.

Auch übergibt der Webbrowser oder andere Anwendungen eine Variable namens „User Agent“ an den Server. Darin sind der Browser und das Betriebsystem angegeben. Gedacht ist diese als Hilfe für den Webserver, so dass für verschiedene Browser unterschiedliche Websites ausgegeben werden können, um z.B. bestimmte Anwendungen für einzelne Browser anzupassen. Bei einigen Webbrowsern (u.a. Mozilla Firefox, Opera) kann diese Variable selbst gesetzt werden.

All diese HTTP-spezifischen Probleme haben nichts oder nur wenig mit Angriffe auf Browser per JavaScript oder ActiveScripting zu tun. Dies sind Erweiterungen der Auszeichungssprache HTML, damit der Browser auf Benutzereingaben reagieren kann und die Darstellung der Website ändert. Gerade der Microsoft Internet Explorer ist für solche Angriffe anfällig, da er stark in das Betriebsystem integriert ist.

E-Mail-Versand und -Empfang

Für E-Mails spielen im Gegensatz zu Websites mehrere Protokolle eine Rolle, da der Versand und der Empfang unterschiedlich vor sich gehen, und es – zumindest für den Empfang – verschiedene gängige Varianten gibt. Diese Protokolle werden auch bei Webmailanbietern eingesetzt, sie setzen nur eine für HTTP geschriebene Oberfläche ein, um die Verwendung eines E-Mail-Programms zu umgehen, die Übertragung erfolgt dann ebenfalls auf die nachfolgend beschriebene Weise.

Der Versand von E-Mails erfolgt über das Simple Mail Transfer Protocol (SMTP), das i.d.R. von einem Mailprogramm angesprochen wird. Der Name auch des Protokolls ist durchaus sinnvoll gewählt, so dass über das Programm telnet auch per Hand E-Mails versendet werden können. Zusätzlich zu den Nutzdaten werden Kopfdaten (Header) übertragen, die prinzipiell frei wählbar sind. Die wichtigsten Header-Daten sind dabei die Zeilen MAIL FROM: (Sender), MAIL TO: (Empfänger) und Subject: (Betreff). Da alle diese frei wählbar sind, kann auch der Sender frei gewählt werden und muss – zumindest im einfachsten Fall – nicht überprüft werden.

Erst mit der Authentifizierungserweiterung SMTP-Auth können E-Mails nur durch Passwörter authentifizierte Nutzer E-Mails über den Server versenden. Server, die SMTP-Auth nicht verwenden, werden als offene Weiterleiter (Open Relays) bezeichnet. Open Relays sind in Verruf gekommen, weil sie häufig für den Versand von Spam-Mails verwendet werden, und der Sender durch das Protokoll selbst nicht verifiziert werden kann.

Erhält ein SMTP-Server eine E-Mail zugestellt, sucht der die Zeile, die mit MAIL TO: eingeleitet wird, und leitet die E-Mail dann an einen weiteren Server weiter, der für die Adresse zuständig ist. Das kann bereits der Server der Empfängerdomain sein, kann aber auch ein weiterer SMTP-Server sein, der die E-Mail ebenfalls weiterleitet. Bei jedem dieser Schritte fügt ein Server eine Zeile vorne an den E-Mail-Header an, eingeleitet mit RECEIVED: E-Mail-Header müssen also von hinten nach vorne gelesen werden.

Weder Header noch Nutzdaten werden verschlüsselt übertragen, bei SMTP-Auth werden Benutzername und Passwort in zwei getrennten TCP/IP-Paketen ebenfalls unverschlüsselt übertragen.

SMTP wurde nicht entwickelt, um Daten auf Aufforderung herauszugeben, weshalb ein Abruf von E-Mails mit SMTP nicht möglich ist. Hierfür gibt es mehrere Möglichkeiten, am verbreitetsten ist das Post Office Protocol in der Version 3 (POP3). Dabei initiiert der Benutzer die Übertragung der Dateien vom POP3-Server nach Anmeldung mit Benutzername und Passwort (standardmäßig im Klartext) anhand von Befehlen die Übertragung und Löschung der E-Mails vom Server mit Hilfe seines Mailprogramms. Mit Hilfe der Erweiterung APOP ist es möglich, das Passwort nicht im Klartext zu übertragen: Der Server sendet dabei bei Beginn der Sitzung einen Zeitstempel an das Programm, das dann mit Hilfe des Passworts eine Checksumme errechnet und diese Checksumme an den Server zurücksendet. Kommt der Server auf denselben Wert, gilt der Benutzer als authentifiziert.

Da alle Daten unverschlüsselt übertragen werden, können die Daten auf allen zwischengeschalteten Stationen gelesen und protokolliert werden, bei SMTP zusätzlich zu den Routern auch noch bei allen beteiligten SMTP-Servern.

Anonymisierung und Verschlüsselung

Da die IP-Adresse eindeutig vergeben wird, ist eine anonyme Benutzung des Internet nur mit Hilfen notwendig. Eine Möglichkeit ist die Nutzung eines Proxy-Servers: Hierbei werden die Daten nicht direkt vom Zielserver angefragt und empfangen, sondern alle Anfragen laufen über den Proxy-Server, der diese dann als eigene Anfragen an den eigentlichen Server richtet. Nach der Rücksendung der Daten an den Proxy-Server liefert dieser dann die Daten an den eigentlichen Anfrager zurück. Allerdings könnte ein protokollierender Proxy-Server die Anonymität wieder auflösen.

Deswegen wurden Programme entwickelt, die mehrere Proxy-Server hintereinander schalten, die bekanntesten sind JAP/ANON und TOR. Bei diesen Programmen durchläuft eine Anfrage und die Rückgabe der Daten über mehrere Proxy-Server. Solange nur eine dieser Zwischenstellen nicht mitprotokolliert oder die Protokolle der Proxy-Server nicht abgeglichen werden, ist eine anonyme Kommunikation möglich.

Für den anonymen Versand von E-Mails gibt es Remailer-Dienste, die E-Mails weiterleiten, so dass nicht der Server des eigentliche Senders, sondern die Remailer als Absender auftaucht.

Sowohl bei HTTP als auch bei POP3 können die Daten mit SSL-Verschlüsselung übertragen werden. Um die Nutzdaten bei E-Mails auch zwischen den SMTP-Relays zu verschlüsseln, kann OpenPGP verwendet werden.

 Autor: Thomas Mayer
 Veröffentlichung: 19. Dezember 2005
 Kategorie: Bericht
 Tags:

Schreibe einen Kommentar