Server Message Block

Server Message Block (SMB), in einer Ur-Version auch als Common Internet File System (CIFS) bezeichnet, ist ein Netzprotokoll für Datei-, Druck- und andere Serverdienste in Rechnernetzen. Es ist ein zentraler Teil der Netzdienste der Windows-Produktfamilie und erlaubt den Zugriff auf Dateien und Verzeichnisse, die sich auf einem anderen Computer befinden. Es wird auch vom frei verfügbaren Softwareprojekt Samba verwendet, um Windows-Systemen den Zugriff auf Ressourcen von Unix-basierten Systemen zu ermöglichen und umgekehrt. Damit kommt es auch auf vielen NAS-Systemen zum Einsatz.

SMB implementiert ein Netzwerkdateisystem ähnlich wie NFS und ist damit vom zugrundeliegenden Dateisystem des Servers größtenteils unabhängig. Höhere Protokolle wie DFS setzen wiederum auf SMB auf.

In TCP/IP-Netzen wurde SMB ursprünglich in NetBIOS over TCP/IP (NBT) über die TCP/UDP-Ports 137–139 gekapselt, die Namensauflösung erfolgte häufig mittels WINS bzw. Broadcasts. Heutige Windows-Versionen nutzen SMB direkt auf dem TCP-Port 445 und lösen Namen per DNS und in kleinen Netzwerken per LLMNR auf.

Geschichte 
SMB wurde zuerst 1983 von Barry Feigenbaum bei IBM vorgestellt. 1987 wurde es als Protokoll der OS/2-Netzwerk-Erweiterung namens LAN Manager und dem verwandten Produkt LAN Server erstmals breiter verfügbar. Auch durch den Einsatz in frühen Windows-Versionen wie Windows for Workgroups über die Windows-9x-Reihe bis hin zur Windows-NT-Produktfamilie wurde es in lokalen Netzwerken immer populärer.

Im Laufe der Zeit wurde das Protokoll von verschiedenen Firmen und Gruppen, darunter Microsoft, 3Com, SCO, Thursby, IBM und den Samba-Entwicklern, erweitert. Microsoft steuerte die meisten Erweiterungen bei, veröffentlichte zunächst jedoch keine Spezifikationen. Erst nach einem Urteil im Kartellstreit durch die Europäische Union im Jahr 2004 wurde SMB als Teil des Workgroup Server Protocols Program im Jahr 2007 Entwicklern zugänglich gemacht.

CIFS 
Der Begriff wurde immer wieder in verschiedener Bedeutung verwendet. Microsoft verwendete ihn 1996 ursprünglich, um SMB auf Basis der Windows-NT-4.0-Implementierung als Standardprotokoll für den Dateizugriff in TCP/IP-Netzwerken zu etablieren (siehe Übersicht), auch als Reaktion auf ähnliche Bestrebungen seitens des NFS-Entwicklers Sun Microsystems (WebNFS) in Zeiten des aufkommenden Internets. Parallel dazu wurde CIFS auch immer öfter als Synonym für das SMB-Protokoll generell oder sogar dessen ganze Protokollfamilie verwendet. Heute bezeichnet Microsoft SMB 1.0 als CIFS, auch als Abgrenzung zur komplett überarbeiteten Folgeversion.

SMB 1.0 
Mit Windows 2000 entfiel die Notwendigkeit der zusätzlichen NetBIOS-Schicht, SMB konnte direkt über TCP/IP und damit etwas effizienter betrieben werden.

SMB 2.0 
Diese erste große Überarbeitung des SMB-Protokolls verbesserte die Leistung durch eine Reduzierung auf weniger Kommandos und eine optionale Verkettung dieser, was vor allem in Weitverkehrsnetzen (WANs) die Geschwindigkeit erhöht. Version 1 blieb aus Kompatibilitätsgründen parallel weiter in Windows enthalten.

SMB 3.0 
Mit der Version 3 wurde SMB um das SMB Direct Protocol (SMB über RDMA), Failover-Mechanismen und Multichannel-SMB (mehrere Verbindungen pro Sitzung) erweitert. Außerdem wurde Ende-zu-Ende-Verschlüsselung eingeführt. Damit wird SMB auch als Basis von Virtualisierungs-Plattformen einsetzbar.

Übersicht 
Die folgende Tabelle gibt einen Überblick über die SMB-Versionen und deren Einführung bzw. Unterstützung sowie enthaltene Neuerungen.

Sicherheit 
Die auch in aktuellen Versionen von Windows noch enthaltene Implementierung des SMB-Protokolls in Version 1.0 ist anfällig für kritische Sicherheitslücken. Diese Protokollversion wird auch inhaltlich aufgrund ihrer 30 Jahre alten Architektur als Risikofaktor eingestuft. Beispielsweise basierte der Cyber-Angriff mit der Ransomware WannaCry im Mai 2017 auf einer solchen Sicherheitslücke.

Mit dem im Oktober 2017 veröffentlichten Fall Creators Update (Version 1709) für Windows 10 entschied sich Microsoft deshalb dafür, SMB in der Version 1.0 standardmäßig nicht mehr zu installieren, beziehungsweise bei Nichtnutzung automatisch zu deinstallieren. Außerdem lässt sich die alte SMB-Version in allen Windows-Versionen gezielt deaktivieren, um die Sicherheit zu erhöhen.

Auch Apple deaktivierte SMB 1.0 standardmäßig mit der Einführung von macOS Catalina im Oktober 2019.

Weblinks 
 MS-CIFS – Common Internet File System (CIFS) Protocol (Microsoft Open Specifications)
 MS-SMB2 – Server Message Block (SMB) Protocol Versions 2 and 3 (Microsoft Open Specifications)

Einzelnachweise 

Internet-Dateiübertragungsprotokoll