Definition

SMB-Protokoll (Server Message Block Protocol)

Was ist das SMB-Protokoll?

Beim Server-Message-Block-Protokoll (kurz: SMB-Protokoll) handelt es sich um ein Client-Server-Kommunikationsprotokoll für den gemeinsamen Zugriff auf Dateien, Drucker, serielle Schnittstellen und andere Ressourcen in einem Netzwerk. Es kann außerdem Transaktionsprotokolle für die Kommunikation zwischen Prozessen übertragen. Im Laufe der Jahre wurde SMB hauptsächlich genutzt, um Windows-Computer zu vernetzen, obwohl die meisten anderen Systeme – wie Linux und macOS – ebenfalls Clientkomponenten für die Verbindung zu SMB-Ressourcen enthalten.

Eine Gruppe bei IBM entwickelte das SMB-Protokoll in den 1980er Jahren. Das Protokoll hat seitdem mehrere Varianten hervorgebracht, die man auch als Dialekte bezeichnet, um den Netzwerkanforderungen gerecht zu werden, die im Laufe der Jahre entstanden sind. In dieser Zeit wurde SMB auf breiter Basis implementiert und ist nach wie vor eine der beliebtesten Lösungen, wenn es um die gemeinsame Nutzung von Dateien am Arbeitsplatz geht.

Wie funktioniert das Server Message Block Protocol?

Das SMB-Protokoll ermöglicht Anwendungen und ihren Benutzern den Zugriff auf Dateien auf Remote-Servern sowie die Verbindung zu anderen Ressourcen, zum Beispiel Druckern, Mailslots und Named Pipes. SMB bietet Clientanwendungen eine sichere und kontrollierte Methode zum Öffnen, Lesen, Verschieben, Erstellen und Aktualisieren von Dateien auf Remote-Servern. Das Protokoll kann auch mit Serverprogrammen kommunizieren, die für den Empfang von SMB-Clientanfragen konfiguriert sind.

Das SMB-Protokoll, das als Response-Request-Protokoll (Antwort-Anfrage-Protokoll) bezeichnet wird, ist eine der am häufigsten verwendeten Methoden für die Netzwerkkommunikation. Bei diesem Modell sendet der Client eine SMB-Anfrage an den Server, um die Verbindung zu initiieren. Wenn der Server die Anfrage erhält, schickt er eine SMB-Antwort an den Client zurück und stellt so den Kommunikationskanal her, der für eine bidirektionale Kommunikation erforderlich ist.

Das SMB-Protokoll arbeitet auf Anwendungsebene, ist aber für den Transport auf niedrigere Netzwerkschichten angewiesen. Früher lief SMB auf NetBIOS over TCP/IP (Network Basic Input/Output System over Transmission Control Protocol/Internet Protocol, NBT) oder, in geringerem Maße, auf Legacy-Protokollen wie Internetwork Packet Exchange (IPX) oder NetBIOS Extended User Interface. Als SMB noch NBT nutzte, war es für den Transport auf die Ports 137, 138 und 139 angewiesen. Mittlerweile läuft SMB direkt über TCP/IP und verwendet Port 445.

Heutzutage erfordert die Kommunikation mit Geräten, die SMB nicht direkt über TCP/IP unterstützen, die Verwendung von NetBIOS über ein Transportprotokoll wie TCP/IP.

Das SMB-Protokoll wird auch als Response-Request-Protokoll (Antwort-Anfrage-Protokoll) bezeichnet.
Abbildung 1: Das SMB-Protokoll wird auch als Response-Request-Protokoll (Antwort-Anfrage-Protokoll) bezeichnet.

Microsoft Windows unterstützt seit Windows 95 das SMB-Protokoll für die Client-Server-Kommunikation. Linux und macOS bieten ebenfalls integrierte Unterstützung für SMB. Darüber hinaus können Unix-basierte Systeme Samba nutzen, um den SMB-Zugriff auf Datei- und Druckdienste zu erleichtern.

Ein Client und ein Server können unterschiedliche SMB-Dialekte beherrschen. In diesem Fall müssen die Systeme vor dem Beginn einer Sitzung zunächst die Unterschiede zwischen den Varianten aushandeln.

Was sind SMB-Protokolldialekte?

Seit der Einführung des SMB-Protokolls wurde eine Reihe von SMB-Dialekten veröffentlicht, die die ursprüngliche Implementierung verbessert haben. Sie bieten mehr Funktionen, Skalierbarkeit, Sicherheit und Effizienz. Im Folgenden finden Sie einen kurzen Überblick über die wichtigsten Dialekte:

  • SMB 1.0 (1984): SMB 1.0 wurde von IBM für die gemeinsame Nutzung von Dateien unter DOS Es führte opportunistisches Sperren (Opportunistic Locking, OpLock) als clientseitigen Caching-Mechanismus ein, um den Netzwerk-Traffic zu reduzieren. Microsoft hat das SMB-Protokoll später in sein Produkt LAN Manager integriert.
  • CIFS (1996): CIFS ist ein von Microsoft entwickelter SMB-Dialekt, der erstmals in Windows 95 vorgestellt wurde. Das Akronym steht für Common Internet File System. CIFS brachte Unterstützung für größere Dateien, direkten Transport per TCP/IP sowie symbolische Links und feste Links.
  • SMB 2.0 (2006): SMB 2.0 wurde mit Windows Vista und Windows Server 2008 veröffentlicht. Es reduzierte die Geschwätzigkeit zugunsten der Performance, verbesserte die Skalierbarkeit und Resilienz und fügte Unterstützung für WAN-Beschleunigung
  • SMB 2.1 (2010): SMB 2.1 wurde mit Windows Server 2008 R2 und Windows 7 eingeführt. Das Client-OpLock-Leasingmodell ersetzte OpLock, um das Caching und die Leistung zu verbessern. Weitere Neuerungen betrafen die Unterstützung großer MTU-Werte und eine verbesserte Energieeffizienz, die es Clients bei geöffneten Dateien auf einem SMB-Server ermöglichte, in den Ruhezustand zu wechseln.
  • SMB 3.0 (2012): SMB 3.0 feierte sein Debüt mit Windows 8 und Windows Server 2012. Es enthielt etliche wichtige Verbesserungen, um Verfügbarkeit, Performance, Backup, Sicherheit und Management zu optimieren. Zu den bemerkenswerten neuen Funktionen gehörten unter anderem SMB Multichannel, SMB Direct, Transparent Failover für den Clientzugriff, Unterstützung für Remote Volume Shadow Copy Service und SMB-Verschlüsselung.
  • SMB 3.02 (2014): SMB 3.02 wurde mit Windows 8.1 und Windows Server 2012 R2 eingeführt. Es enthielt Leistungsoptimierungen und die Möglichkeit, die Unterstützung für CIFS/SMB 1.0 zu deaktivieren, was auch die Entfernung der zugehörigen Binärdateien einschloss.
  • SMB 3.1.1 (2015): SMB 3.1.1 wurde mit Windows 10 und Windows Server 2016 veröffentlicht. Es bot neben anderen Verbesserungen Unterstützung für erweiterte Verschlüsselung, Vorauthentifizierungsintegrität zur Verhinderung von MitM-Angriffen (Man in the Middle) und Cluster Dialect Fencing.

Ist das SMB-Protokoll sicher?

Bei den Ransomware-Angriffen mit WannaCry und Petya im Jahr 2017 wurde eine Schwachstelle in SMB 1.0 ausgenutzt, die es ermöglichte, Malware auf verwundbare Clients zu laden und diese dann über Netzwerke zu verbreiten. Microsoft veröffentlichte daraufhin einen Patch, aber Experten rieten Benutzern und Administratoren, SMB 1.0/CIFS auf allen Systemen zu deaktivieren.

SMB ab Version 3.0 ist weitaus sicherer als frühere Dialekte, da eine Reihe von Schutzmechanismen hinzukamen. Beispielsweise wurde mit SMB 3.0 eine Ende-zu-Ende-Datenverschlüsselung eingeführt, so dass die Daten vor Abhörmaßnahmen geschützt sind. SMB 3.0 bot zudem eine sichere Dialektaushandlung, die zum Schutz vor MitM-Angriffen beiträgt.

SMB 3.1.1 verbesserte die Sicherheit noch weiter, indem es die Verschlüsselungsfunktionen optimierte und Vorauthentifizierungsintegrität ermöglichte. Außerdem war ein Mechanismus enthalten, um den Kryptoalgorithmus pro Verbindung auszuhandeln.

CIFS versus SMB

Wie erwähnt, handelt es sich bei CIFS um einen frühen Dialekt des von Microsoft entwickelten SMB-Protokolls. Obwohl die Begriffe SMB und CIFS manchmal synonym verwendet werden, bezieht sich CIFS speziell auf eine bestimmte Implementierung von SMB. In Anwendungsschnittstellen und technischen Dokumentationen werden sie jedoch oft als ein und dasselbe bezeichnet. Das gilt insbesondere für SMB 1.0 und CIFS, wobei Bezeichnungen wie SMB 1.0/CIFS verwendet werden.

Es ist jedoch wichtig, den Unterschied zwischen den Dialekten zu kennen. SMB 1.0 und CIFS verfügen zum Beispiel nicht über das gleiche Sicherheitsniveau wie spätere Dialekte, wie die WannaCry-Ransomware gezeigt hat. SMB 3.0 bietet deutlich fortschrittlichere Sicherheitsfunktionen. Aus diesem Grund verwenden die meisten modernen Systeme die neueren SMB-Dialekte. Windows 10 etwa unterstützt derzeit SMB 3.1.1, den neuesten SMB-Dialekt.

Die Dialekte unterscheiden sich ebenfalls in puncto Leistung. CIFS zum Beispiel war als geschwätziges (chatty) Protokoll bekannt, das die WAN-Performance aufgrund der kombinierten Last durch Latenz und zahlreiche Bestätigungsvorgänge beeinträchtigte. Der Nachfolger, SMB 2.0, verbesserte die Effizienz des Protokolls, indem er die Hunderte von Befehlen und Unterbefehlen drastisch auf nur 19 reduzierte.

 

Gegenüberstellung der Protokolle CIFS, NFS und SMB für den gemeinsamen Dateizugriff.
Abbildung 2: Gegenüberstellung der Protokolle CIFS, NFS und SMB für den gemeinsamen Dateizugriff.

Samba versus SMB

Samba wurde 1992 veröffentlicht und ist eine Open-Source-Implementierung des SMB-Protokolls für Unix-Systeme und Linux-Distributionen. Die Samba-Plattform umfasst einen Server, der verschiedenen Clienttypen den Zugriff auf SMB-Ressourcen ermöglicht.

Der Server unterstützt Dateifreigabe und Druckdienste, Authentifizierung und Autorisierung, Namensauflösung und Dienstankündigungen (Browsing) zwischen Linux/Unix-Servern und Windows-Clients. Man kann beispielsweise Samba auf einem Unix-Server installieren, um Datei- und Druckdienste für Windows-10-Desktops bereitzustellen.

Darüber hinaus ermöglicht Samba die Integration von Linux/Unix-Servern und -Desktops in eine Active-Directory-Umgebung.

Diese Definition wurde zuletzt im Oktober 2022 aktualisiert

Erfahren Sie mehr über Netzwerksoftware

ComputerWeekly.de
Close