Zurück zum Blog
dns Veröffentlicht: AEU DNS Newsroom

Unbesungene Ursprünge: Der BBN-TCP/IP-Stack und die Geburt der Sockets-Schnittstelle

Unbesungene Ursprünge: Der BBN-TCP/IP-Stack und die Geburt der Sockets-Schnittstelle

Ein ehemaliger BBN-Mitarbeiter berichtet aus persönlicher Sicht über den frühen BSD-TCP/IP-Code, der Bill Joys Arbeit vorausging, und erinnert uns an die stillen Grundlagen der modernen Netzwerkkommunikation.

Jedes Mal, wenn ein Programm eine Nachricht über das Internet sendet, sei es beim Laden einer Webseite, beim Streamen eines Videos oder beim Versenden einer E-Mail, verlässt es sich auf eine einfache und dennoch leistungsstarke Abstraktion namens Socket. Im Alltag ist ein Socket wie eine Tür, durch die zwei Programme auf verschiedenen Computern miteinander sprechen können. Er verbirgt die komplizierten Schichten von Netzwerkhardware und Routing und ermöglicht Entwicklern, Daten fast so einfach zu lesen und zu schreiben, als würden sie eine Datei auf ihrem eigenen Computer bearbeiten. Dieses Konzept, das erstmals durch die Berkeley Software Distribution (BSD) Version von Unix weithin bekannt wurde, ist zum Eckpfeiler praktisch aller internetverbundenen Software geworden, die wir heute nutzen.

Lange bevor Bill Joy in den frühen 1980er Jahren einen TCP/IP-Stack und die Socket-Anwendungsschnittstelle (API) in BSD integrierte, existierte bereits eine andere Implementierung. Bolt, Beranek and Newman (BBN), das Unternehmen, das die ursprünglichen ARPANET-Router baute, hatte seinen eigenen TCP/IP-Stack für BSD entwickelt. Dieser frühere Code war Teil eines Projekts der US-amerikanischen Defense Advanced Research Projects Agency (DARPA) und diente als Grundlage für Joys spätere Arbeit. Eine kürzlich auf dem APNIC-Blog veröffentlichte Erinnerung eines ehemaligen BBN-Mitarbeiters, der nur als D. W. identifiziert wird, beleuchtet dieses wenig erinnerte Kapitel. In der Mitte der 1990er Jahre war D. W. bei BBN für eine Masterkopie der Quellcode-Magnetbänder (eine Art Bandkassette zur Speicherung von Computerdaten) verantwortlich. Wann immer jemand den Code anforderte, bestand seine Aufgabe darin, die Bänder zu duplizieren und zu verschicken, eine Aufgabe, die durch eine Vertragsverpflichtung gegenüber der DARPA vorgegeben war. Bemerkenswerterweise hat während seiner gesamten Amtszeit niemand jemals eine Kopie angefordert.

Die Anekdote ist mehr als nur Nostalgie. Sie unterstreicht, wie stille Arbeiten hinter den Kulissen oft die Technologien tragen, die später allgegenwärtig werden. Die Sockets-Schnittstelle, die aus diesen frühen Implementierungen hervorging, vereinte Berkeleys bestehende Interprozesskommunikation (eine Möglichkeit für Programme auf demselben Rechner, Informationen auszutauschen) mit den damals neuen TCP/IP-Netzwerkprotokollen. Statt ein völlig neues Programmiermodell zu präsentieren, nutzte sie vertraute Systemaufrufe wie `read()` und `write()` wieder, jetzt jedoch über ein Netzwerk. Diese Designentscheidung senkte die Hürde für Entwickler erheblich und löste eine Explosion vernetzter Anwendungen aus.

Heute sind Sockets nach wie vor die grundlegende Basis für praktisch die gesamte Internetkommunikation. Von Webservern und Datenbanken über Videospiele bis hin zu Messaging-Apps ist die Socket-API die gemeinsame Sprache, die Programme mit dem Netzwerk sprechen. Die Langlebigkeit dieser Schnittstelle ist ein Beleg für ihr Design: Sie abstrahiert die unübersichtlichen Details von Paketverlust, Routing-Änderungen und Netzwerküberlastung und gibt Anwendungen dennoch genügend Kontrolle, um leistungskritische Verbindungen zu verwalten. Die TCP/IP-Protokolle selbst haben sich weiterentwickelt, sie umfassen heute Verschlüsselung, Multipath-Fähigkeiten und bessere Überlastungskontrolle, , aber die Socket-Metapher bleibt bestehen, oft aus Bequemlichkeit in höhere Bibliotheken eingebettet.

Dieses langlebige Modell verdeutlicht auch, warum die Absicherung der zugrunde liegenden Netzwerkebenen so entscheidend ist. Da jede vernetzte Anwendung, egal wie ausgefeilt, auf Sockets angewiesen ist, um Daten zu senden und zu empfangen, kann ein Angreifer, der den durch diese Sockets fließenden Verkehr abfangen oder manipulieren kann, die Privatsphäre und Sicherheit gefährden. Ein oft übersehenes Glied in dieser Kette ist das Domain Name System (DNS), das Telefonbuch des Internets, das benutzerfreundliche Namen wie "example.com" in die numerischen IP-Adressen übersetzt, die Sockets verwenden. Wenn DNS-Abfragen im Klartext gesendet werden, legen sie offen, welche Websites Sie besuchen, und können manipuliert werden, um Sie auf bösartige Server umzuleiten. Der Schutz dieser grundlegenden Abfrage durch verschlüsseltes DNS, wie DNS over HTTPS (DoH) oder DNS over TLS (DoT), schirmt den ersten Schritt jeder Socket-Verbindung ab. Ein datenschutzorientierter, verschlüsselter DNS-Resolver wie AEU DNS kann dazu beitragen, dass die Adressauflösungen Ihres Netzwerks privat und unverfälscht bleiben, und stärkt so die Sicherheit jeder socketbasierten Verbindung, die Ihre Geräte herstellen.

Begriffe erklärt

socket
Ein Socket ist eine Software-Tür, die es zwei Programmen auf verschiedenen Computern ermöglicht, Daten über ein Netzwerk zu senden und zu empfangen, ähnlich wie ein Telefongespräch zwei Personen verbindet.
TCP/IP
TCP/IP ist die Reihe von Regeln, die festlegen, wie Daten in Pakete aufgeteilt, adressiert, gesendet und über das Internet zuverlässig wieder zusammengesetzt werden.
BSD
BSD (Berkeley Software Distribution) ist ein Unix-Betriebssystem von der University of California, Berkeley, das viele Netzwerkfunktionen einführte, die wir heute noch nutzen.
magtape
Ein Magtape (Magnetband) ist ein langer, mit magnetischem Material beschichteter Plastikstreifen, der früher häufig zur Speicherung von Computerdaten auf großen Spulen oder Kassetten verwendet wurde, bevor sich Festplatten durchsetzten.
API
API (Application Programming Interface) ist eine Reihe von Regeln, die es einer Software ermöglicht, mit einer anderen zu kommunizieren, wie eine Speisekarte, die auflistet, was ein Programm kann und wie man es anfragt.
DNS
DNS (Domain Name System) ist das Telefonbuch des Internets; es übersetzt leicht zu merkende Websitenamen wie google.com in die numerischen IP-Adressen, mit denen Computer einander finden.
DoH/DoT
DoH (DNS over HTTPS) und DoT (DNS over TLS) sind Methoden, die DNS-Abfragen verschlüsseln und so Ihre Internet-Adressabfragen vor allen verbergen, die versuchen könnten, sie auszuspähen oder zu verändern.

So schützen Sie sich

  1. Stellen Sie Ihre Geräte auf einen DNS-Dienst um, der Abfragen verschlüsselt, wie zum Beispiel AEU DNS, das DNS over HTTPS (DoH) und DNS over TLS (DoT) unterstützt; so verhindern Sie, dass andere in Ihrem Netzwerk oder Ihr Internetanbieter s
  2. Halten Sie Ihr Betriebssystem und die gesamte Software auf dem neuesten Stand, denn Netzwerk-Stacks und Socket-Bibliotheken erhalten Sicherheitsupdates, die Schwachstellen beheben, die Angreifer ausnutzen könnten.
  3. Wenn Sie öffentliches WLAN nutzen, kombinieren Sie verschlüsseltes DNS immer mit einem seriösen VPN (Virtual Private Network), um den gesamten Internetverkehr vor Lauschangriffen zu schützen, nicht nur DNS-Anfragen.
  4. Suchen Sie in den Einstellungen Ihres Browsers oder Geräts nach einer Option für „Sicheres DNS“ oder „Privates DNS“ und aktivieren Sie sie; so wird sichergestellt, dass jede Namensauflösung ohne zusätzliche Software verschlüsselt erfolgt.

Quelle: blog.apnic.net

Holen Sie sich privates, verschlüsseltes DNS