Computernetzwerke sind im modernen Zeitalter eine Selbstverständlichkeit. Ob Zuhause oder im Büro – die Verknüpfung aller technischen Geräte in einem gemeinsamen lokalen Netz (als Offline-Alternative zum Internet) ist in der Regel reine Formsache. Via LAN- bzw. WLAN-Verbindung können Netzwerkteilnehmer so problemlos Dateien austauschen, Server administrieren oder typische Netzwerkgeräte wie Drucker oder Router bedienen. Damit die Kommunikation zwischen den einzelnen Komponenten funktioniert, bedarf es allerdings klarer Konventionen, die in Form von Protokollen geliefert werden. Eines der wichtigsten und ältesten Netzprotokolle ist beispielsweise das SMB-Protokoll, das in diesem Artikel genauer beleuchtet werden soll.

Was ist SMB (Server Message Block)?

SMB (Server Message Block) ist ein Client-Server-Protokoll, das den Zugriff auf Dateien und ganzeVerzeichnisse sowie andere Netzwerkressourcen wie Drucker, Router oder für das Netzwerk freigegebene Schnittstellen regelt. Auch der Informationsaustausch zwischen verschiedenen Prozessen eines Systems (auch als Interprozesskommunikation bezeichnet) kann auf Basis des SMB-Protokolls abgewickelt werden.

Bereits 1983 vom IT-Konzern IBM entwickelt, sind im Laufe der vergangenen Jahrzehnte verschiedene Versionen und Implementierungen des Protokolls veröffentlicht worden. Erstmals für eine breitere Öffentlichkeit verfügbar wurde SMB beispielsweise im Rahmen des OS/2-Netzwerkbetriebssystems LAN Manager und durch dessen Nachfolger LAN Server. Haupteinsatzgebiet des Protokolls ist seitdem insbesondere die Windows-Betriebssystemreihe, deren Netzdienste SMB abwärtskompatibel unterstützen – wodurch Geräte mit neueren Editionen problemlos mit Geräten kommunizieren können, die ein älteres Microsoft-Betriebssystem installiert haben. Mit dem freien Software-Projekt Samba existiert darüber hinaus auch eine Lösung, die die Verwendung von Server Message Block in Linux- und Unix-Distributionen und somit eine plattformübergreifende Kommunikation via SMB ermöglicht.

Wie funktioniert SMB?

Das Server-Message-Block-Protokoll befähigt den Client dazu, mit anderen Teilnehmern im gleichen Netzwerk zu kommunizieren, um auf diese Weise auf Dateien oder Dienste zuzugreifen, die für ihn im Netzwerk freigegeben sind. Das andere System muss das Netzwerkprotokoll zu diesem Zweck ebenfalls implementiert haben und die jeweilige Client-Anfrage mithilfe einer SMB-Serveranwendung empfangen und verarbeiten. Zuvor müssen beide Parteien aber eine Verbindung aufbauen, weshalb sie zunächst entsprechende Nachrichten austauschen. In IP-Netzwerken greift SMB dazu auf das Transmission Control Protocol (TCP) zurück, das einen Drei-Wege-Handshakezwischen Client und Server vorsieht, bevor eine Verbindung endgültig etabliert wird. Auch der anschließende Transport der Daten ist durch die Vorgaben des TCP-Protokolls geregelt.

Sobald eine Verbindung über TCP etabliert ist, können SMB-Client und SMB-Server Nachrichten austauschen, um Dateien oder Dienste über das Netzwerk abzufragen bzw. bereitzustellen.

Das SMB-Protokoll im Wandel der Zeit: Die Versionen im Überblick

Wie bereits erwähnt kam es seit der Erstveröffentlichung von SMB im Jahr 1983 mehrfach zu Anpassungen an dem Netzwerkstandard, die in verschiedenen Protokollversionen festgehalten worden sind – beginnend mit SMB 1.0 bis hin zur aktuellen Version SMB 3.1.1, die Microsoft gemeinsam mit Windows 10 eingeführt hat. Die folgenden Abschnitte fassen die wichtigsten Schritte der Entwicklung des Server-Message-Block-Protokolls zusammen.

SMB 1.0 (CIFS)

Die erste Version des Netzwerkkommunikationsprotokolls wird oft mit der bereits erwähnten Abwandlung Common Internet File System (CIFS) gleichgesetzt. Letztere steht prinzipiell aber nur für einen Teilaspekt der ersten Protokolledition – konkret für die Implementierung des Protokolls in Geräte mit Windows NT 4.0. In dieser ersten Variante war noch die Kommunikation über die Schnittstelle NetBIOS sowie die UDP-Ports 137 (Namensauflösung) und 138 (Paketübermittlung) sowie TCP-Port 139 (Verbindungsaufbau und Transport) vorgesehen. Mit Windows 2000 entfiel die Abhängigkeit von NetBIOS, sodass das nun offiziell als SMB 1.0 bezeichnete Protokoll die bis heute beibehaltene Direktverbindung über TCP (Port 445) erlaubte.

SMB 2.0

Die erste große Überarbeitung von Server Message Block lieferte Microsoft im November 2006 – gemeinsam mit dem Betriebssystem Windows Vista. Auch wenn das Protokoll – nun als SMB 2.0 bzw. 2 bekannt – weiterhin proprietär blieb, veröffentlichte das Software-Unternehmen zudem erstmals die Spezifikation, um anderen Systemen ebenfalls die Kommunikation mit den Windows-Betriebssystemen zu ermöglichen. Die wichtigsten Neuerungen der zweiten Protokollversion waren folgende:

  • Reduzierung der Kommandos und Unterkommandos von über 100 auf 19
  • Optimierte Performance dank neuer Warteschlangen-Funktion für SMB-Anfragen
  • Unterstützung symbolischer Links (Verknüpfungen zu Dateien bzw. Verzeichnissen)
  • Zwischenspeicherung von Dateieigenschaften
  • Verbesserte Nachrichtensignierung (HMAC SHA-256-Algorithmus)
  • Bessere Skalierbarkeit dank höherer Maximalzahl an Clients, Freigaben und gleichzeitig offenen Dateien

Aus Kompatibilitätsgründen blieb die erste Protokollversion erhalten – eine Maßnahme, die Microsoft auch in den nachfolgenden Versionen beibehielt.

SMB 2.1

Version 2.1 des SMB-Protokolls steht in enger Verbindung mit Windows 7. Die überarbeitete Fassung der zweiten Protokollausgabe erschien gemeinsam mit dem Betriebssystem im Jahr 2007 und brachte neben einigen kleineren Performance-Optimierungen vor allem neue Locking-Mechanismen zur besseren Regulierung des Dateizugriffs (Lesen, Schreiben, Löschen etc.).

SMB 3.0

2012 erschien Windows 8 und mit der neuen Edition der Microsoft-Betriebssystemreihe auch eine neue Version von Server Message Block, die zunächst als SMB 2.2 aufgeführt wurde, später aber die bis heute gültige Bezeichnung SMB 3.0 erhielt. Auch diese Protokollüberarbeitung zielt auf die Verbesserung der Performance und Sicherheit von SMB-Verbindungen ab – insbesondere in virtualisierten Datenzentren. Entscheidend für den Boost sind dabei folgende neuen Features:

  • Möglichkeit des Fernspeicherzugriffs dank SMB über RDMA (Remote Direct Memory Access)
  • Multichannel-Funktion ermöglicht den Aufbau mehrerer Verbindungen pro SMB-Sitzung
  • Transparente Ausfallsicherung
  • Ende-zu-Ende-Verschlüsselung

SMB 3.1.1

SMB 3.1.1 (2015 mit Windows 10 veröffentlicht) erweitert die Protokollreihe um eine Integritätsüberprüfung vor der Authentifizierung auf Basis von SHA-512-Hashwerten. Zudem setzt die Version auf eine AES-128-Verschlüsselung mit Galois/Counter Mode (GCM). Für alle kommunizierenden Geräte mit SMB 2.0 oder höher macht SMB 3.1.1 eine sichere Verbindung obligatorisch.

Die SMB-Versionen im tabellarischen Überblick

SMB-VersionUnterstützt seitNeue Features
CIFSWindows NT 4.0Kommunikation über NetBIOS-Schnittstelle
SMB 1.0Windows 2000Direktverbindung über TCP
SMB 2.0Windows Vista, Windows Server 2008, Samba 3.5diverse Performance-Upgrades, verbesserte Nachrichtensignierung, Caching-Funktion für Dateieigenschaften
SMB 2.1Windows 7, Windows Server 2008 R2Locking-Mechanismen
SMB 3.0Windows 8, Windows Server 2012,Samba 4.0Multichannel-Verbindungen, Ende-zu-Ende-Verschlüsselung, Fernspeicherzugriff
SMB 3.0.2Windows 8.1,Windows Server 2012 R2 
SMB 3.1.1Windows 10, Windows Server 2016, Samba 4.3Integritätsprüfung, AES-128-Verschlüsselung mit Galois/Counter Mode (GCM)

Welche Sicherheitsaspekte sind beim Einsatz von SMB zu beachten?

Microsoft hat in seinen Systemen jahrelang darauf Wert gelegt, dass ältere Versionen von Server Message Block auch von neueren Systemeditionen unterstützt werden, um die Kommunikation zwischen älteren und neueren Geräten gewährleisten zu können. Die Gewährleistung der Kompatibilität ist aber seit jeher mit einem erhöhten Sicherheitsrisiko verbunden, denn SMB 1.0 birgt im Vergleich zu den Nachfolgeprotokollen zahlreiche Schwachstellen, die den eigenen Computer beispielsweise für DoS-Attacken anfällig machen.

Insbesondere in Netzwerken ist die Gefahr eines Angriffs auf Basis des SMB-Protokolls groß: Aus Kompatibilitätsgründen sind dort nämlich besonders häufig alle SMB-Versionen aktiviert – beispielsweise, weil es angeschlossene Drucker oder andere Netzwerkgeräte erfordern. Auch wenn die alte Protokollversion also eigentlich gar nicht verwendet wird, haben Angreifer infolgedessen leichtes Spiel, da sie die Kommunikation auf SMB 1.0 herunterstufen und das gewünschte Zielsystem so ohne große Hindernisse angreifen können. Mit Windows 10 hat sich Microsoft aus diesem Grund dazu entschieden, die erste Version nicht mehr aktiv zu unterstützen bzw. bei Nichtnutzung automatisch zu deinstallieren.

Wo wird Server Message Block eingesetzt bzw. implementiert?

Die entscheidenden Einsatzszenarien von SMB sind in diesem Artikel bereits zur Sprache gekommen: Der zentrale Punkt des Protokolls ist der Zugriff auf Dateisysteme, weshalb der Hauptnutzen in Client-Server-Verbindungen zwischen Computern und Fileservern liegt. Da andere Abschnitte des Protokolls aber klar auf die Interprozesskommunikation abzielen, zählt der einfache Datenaustauschzwischen zwei Geräten bzw. zwei Prozessen ebenso zum Anwendungsprofil.

Abseits der Implementierungen von Server Message Block in die verschiedenen Windows-Editionen wurde das Protokoll im Laufe der Jahre zudem in zahlreiche andere Softwareprojekte eingebunden, um die Kommunikationsfeatures auch außerhalb der Microsoft-Familie verfügbar zu machen. Zu den bekanntesten SMB-Implementierungen gehören folgende:

  • Samba: Das Software-Projekt Samba ist das wohl bekannteste Beispiel für eine SMB-Implementierung fernab von Windows. Bereits 1991 startete der Programmierer Andrew Tridgell mit der Entwicklung der freien Software, die die Kommunikation via Server Message Block auf Unix/Linux-Systemen ermöglicht.
  • Netsmb: Bei Netsmb handelt es sich um Implementierungen von SMB-Client und -Server direkt im Kernel von BSD-Betriebssystemen. Erstmals für das OS FreeBSD 4.4 veröffentlicht, sind diese mittlerweile für eine Vielzahl von BSD-Systemen verfügbar – unter anderem für NetBSD und macOS.
  • YNQ: YNQ (ehemals NQ) ist eine SMB-Bibliothek, die die Server-Message-Block-Technologie in eingebettete Systeme ohne Windows implementiert und auf diese Weise die Interoperabilität mit windowsbasierten Geräten möglich macht. YNQ wird seit 1998 von der israelischen Softwarefirma Visuality Systems Ltd. entwickelt.
  • FreeNAS: Wer einen eigenen NAS-Server betreiben möchte, der unter anderem das SMB-Protokoll unterstützt, findet in der Open-Source-Lösung FreeNAS die passende Lösung. Die NAS-Software setzt auf FreeBSD und dem OpenZFS-Dateisystem auf.
  • ConnectedNAS: SMB-Server- und -Client für Android-Geräte zugleich ist die von Connected Way entwickelte Software ConnectedNAS. Nutzer der kostenpflichtigen App können bequem Daten zwischen dem Mobilgerät und anderen SMB-Geräten austauschen – ob privat oder im Unternehmen. Aus Sicherheitsgründen unterstützt ConnectedNAS SMB erst ab Version 2.

Quelle: https://www.ionos.at/digitalguide/server/knowhow/server-message-block-smb/