Pour les articles homonymes, voirSMB.
| Fonction | Partage de ressources |
|---|---|
| Sigle | SMB |
| Port | 445 : SMB avecMicrosoft Directory Services (DNS)[1] 139 : SMB avecNBT (NetBIOS surTCP/IP)[2] |
Le protocoleSMB (Server Message Block[3]) est unprotocole permettant lepartage de ressources (fichiers etimprimantes) sur des réseaux locaux avec des PC sousWindows.
Dans l'ancienWindows NT 4, il était appeléCIFS (Common Internet File System). La version 2 de SMB est apparue dansVista,Windows 7 etWindows 8[4]. Actuellement SMB est en version 3.1.1, introduite dansWindows 10 etWindows Server 2016[5].
SMB a été développé en 1983 par Barry A. Feigenbaum chez IBM, pour partager l'accès aux fichiers et aux imprimantes sur un réseau exécutant IBM PC DOS d'IBM.
En 1987, Microsoft et 3Com ont implémenté SMB sous le nom deLAN Manager pourOS/2.
Par la suite il a été popularisé parMicrosoft Windows qui l'intégrait comme système par défaut departage de fichiers sous Windows. En 1996, dans une opération marketing visant à contrer l'annonce de WebNFS parSun Microsystems, Microsoft renomme SMB en CIFS (Common Internet File System)[6],[7] et ajoute plusieurs fonctions comme le support des raccourcis et de fichiers de plus grande taille.
En 2006, avec l'arrivée de Windows Vista puis de Windows 7, Microsoft a mis au point une version 2 du protocole plus rapide. Le protocole est de nouveau nommé SMB (SMB 2).
En 2012, avecWindows 8 etWindows Server 2012, Microsoft propose la version 3[8] de SMB. Elle apporte des améliorations significatives, comme le SMB Direct Protocol (SMB sur RDMA) et le SMB Multichannel[9] (plusieurs connexions par session SMB), ainsi qu'un gain de performances par rapport à la version 2, notamment avec lescentres de traitement de données virtuels.
En, avec l'apparition de Windows 10 (1903) etWindows Server 2019, Microsoft décide de ne plus activer la fonctionnalité SMB1/CIFS par défaut comme pour les versions précédentes de Windows. Il demeure tout de même possible de l'activer pour des questions de rétrocompatibilité avec d'anciennes versions, malgré l'important risque de sécurité (voir le dernier chapitre "sécurité" de cet article).
SMB fonctionne via une structure declient/serveur, le client va envoyer des requêtes spécifiques et leserveur de fichiers va y répondre. Le protocole est optimisé pour une utilisation dans unréseau local, mais il peut aussi être utilisé surInternet.
Le serveur SMB permet de donner l’accès aux clients du réseau à dessystèmes de fichiers, mais aussi à d’autres ressources comme des imprimantes. Le client peut avoir ses propresdisques qui ne seront pas partagés et peut accéder en même temps aux disques et imprimantes partagés par le serveur. Les ressources partagées sont accessibles à partir d'une adresse utilisant la conventionUNC de type :
\\serveur\partage\chemin\nom_fichier
SMB a été à l’origine conçu pour tourner par-dessus une des implémentations deNetBEUI nommé aussi NBF.
Des évolutions du protocole ont été apportées, car il n'était pas routable (interconnexion d'un réseau avec un autre). Il a étéencapsulé dans destramesTCP/IP depuisWindows 2000.
Historiquement le protocole SMB se base surNetBIOS, qui est connu pour générer dubroadcast pour la résolution de nom à travers le protocoleNBNS et génère donc de la consommation debande passante inutile.
Pour pallier ce problème il est possible d'installer un serveurWINS, ce qui est la pratique recommandée si NetBIOS n'a pas été désactivé. De plus, il est de plus en plus courant de désactiver complètement NetBIOS car celui-ci n'est plus nécessaire s'il n'y a pas d'application ou de serveur historique (antérieur à Windows 2000)[10].
Dans labase de registre (notamment sous Windows 7), le paramétrage de base de SMB est dans l'arborescenceHKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/LanManWorkstation.Comme pour beaucoup d'autres éléments de la base de registre, les noms d'origine des fonctionnalités ont été conservés dans la base de registre, alors que Microsoft a changé le nom de la fonctionnalité.
En plus de ces paramètres de base, il y a de nombreux autres paramètres concernant SMB :
Le protocole SMB est disponible sur la plupart dessystèmes d'exploitation, notammentLinux/Unix, grâce à son implémentationlibreSamba.La première version stable et publique deSamba est sortie en 1997[11].
Le protocole SMBv1 utilisait l’ancien protocole de communication Microsoft NTtrans2 en cas de message trop long. Une vulnérabilité nomméeEternalBlue exploitait un bufferoverflow dans NTtrans ce qui permit la diffusion en de deux des plus grandsransomware de l'histoire d'internet,WannaCry[12]. Cette faille de sécurité a été corrigée à la suite d'une mise à jour diffusée le (MS17-010).
SMBv3 a également été la source de la CVE-2020–0796 (wormable, donc permettant une transmission latérale similaire à EternalBlue). Cette faille a été patchée par Microsoft quelques jours plus tard.
| Officiel | |
|---|---|
| Non-officiel | |