SMB (Server Message Block) est un protocole réseau qui permet d’accéder à des fichiers, des im­pri­mantes et d’autres res­sources sur un réseau local. Il est prin­ci­pa­le­ment utilisé dans les en­vi­ron­ne­ments Windows pour réaliser des partages de fichiers et de services entre or­di­na­teurs.

Qu’est-ce que SMB (Server Message Block) ?

SMB (Server Message Block) est un protocole serveur-client réglant l’accès à des fichiers, à des ré­per­toires complets et à d’autres res­sources du réseau comme les im­pri­mantes, les routeurs ou les in­ter­faces partagées dans le réseau. Le protocole SMB permet également l’échange d’in­for­ma­tions entre les dif­fé­rents processus d’un système (également appelé com­mu­ni­ca­tion in­ter­pro­ces­sus).

IONOS Cloud Object Storage
Stockage de données sûr et éco­no­mique

Augmentez votre ren­ta­bi­lité grâce à un stockage évolutif, qui s'intègre à vos scénarios d'ap­pli­ca­tion. Vos données sont protégées par nos serveurs d'une grande fiabilité et un contrôle des accès per­son­na­lisé.

Développé dès 1983 par le groupe in­for­ma­tique IBM, ce protocole a connu dif­fé­rentes versions et im­plé­men­ta­tions au cours des décennies. SMB a été mis à dis­po­si­tion d’un public plus large pour la première fois dans le cadre du système d’ex­ploi­ta­tion réseau OS/2 LAN Manager et de son suc­ces­seur LAN Server. Ce protocole est prin­ci­pa­le­ment utilisé dans les systèmes d’ex­ploi­ta­tion Windows dont les services de réseau sup­por­tent SMB en ré­tro­com­pa­ti­bi­lité. Ceci permet aux appareils dotés des dernières versions de com­mu­ni­quer sans problème avec les appareils disposant d’une ancienne version du système d’ex­ploi­ta­tion de Microsoft. Le logiciel gratuit Samba offre par ailleurs une solution per­met­tant l’uti­li­sa­tion de Server Message Block dans les dis­tri­bu­tions Linux et Unix et permet ainsi une com­mu­ni­ca­tion mul­ti­pla­te­forme via SMB.

Note

Pour l’im­plé­men­ta­tion du protocole SMB sous Windows NT 4.0, Microsoft a utilisé le nom Common Internet File System (CIFS), qui est souvent utilisé comme synonyme de la gamme de pro­to­coles SMB. Aujourd’hui, CIFS désigne plus par­ti­cu­liè­re­ment la version 1.0 de SMB.

Comment fonc­tionne SMB ?

Le protocole Server Message Block permet au client de com­mu­ni­quer avec d’autres par­ti­ci­pants dans le même réseau afin d’accéder à des fichiers et des services partagés à cette fin sur le réseau. L’autre système doit également avoir im­plé­menté le protocole dans ce but et pouvoir recevoir et traiter la requête client à l’aide d’une ap­pli­ca­tion serveur SMB. Dans un premier temps, les deux côtés doivent établir une connexion. Pour ce faire, ils s’envoient tout d’abord les messages cor­res­pon­dants. Dans les réseaux IP, SMB utilise à cet effet le Trans­mis­sion Control Protocol (TCP) qui prévoit un hand­sha­king en trois temps entre le client et le serveur avant d’établir une connexion. Le transfert des données qui s’ensuit est également réglé selon les spé­ci­fi­ca­tions du protocole TCP.

Note

Le port TCP 445 est aujourd’hui réservé à l’éta­blis­se­ment de la connexion et le transfert via TCP/SMB. La ré­so­lu­tion de l’adresse est effectuée de façon typique pour un réseau via le Domain Name System (DNS) ou, dans les réseaux de moindre envergure, via Link Local Multicast Name Re­so­lu­tion (LLMNR).

Image: Imagen:Server Message Block : schéma de l’échange de messages
Dès qu’une connexion est établie via TCP, le client et le serveur SMB échangent des messages pour demander et mettre à dis­po­si­tion des fichiers ou des services via le réseau.

Le protocole SMB au fil du temps : aperçu des versions

Comme évoqué pré­cé­dem­ment, un certain nombre de mo­di­fi­ca­tions ont été apportées à ce standard réseau depuis sa première pu­bli­ca­tion en 1983. Ces mo­di­fi­ca­tions se sont traduites par dif­fé­rentes versions du protocole allant de SMB 1.0 à la version actuelle intitulée SMB 3.1.1 que Microsoft a introduit en même temps que Windows 10. Les pa­ra­graphes suivants résument les prin­ci­pales étapes dans le dé­ve­lop­pe­ment du protocole Server Message Block.

SMB 1.0 (CIFS)

La première version du protocole de com­mu­ni­ca­tion réseau est souvent assimilée à la mo­di­fi­ca­tion Common Internet File System (CIFS). Cette mo­di­fi­ca­tion constitue toutefois seulement l’un des aspects de la première édition du protocole qui cor­res­pond dans les faits à l’im­plé­men­ta­tion du protocole dans les appareils dotés de Windows NT 4.0. Dans cette première variante, la com­mu­ni­ca­tion était encore prévue via l’interface NetBIOS ainsi que via les ports UDP 137 (ré­so­lu­tion de nom), 138 (trans­mis­sion de paquet) et via le port TCP 139 (éta­blis­se­ment de la connexion et transfert). La dé­pen­dance de NetBIOS a disparu avec Windows 2000 de sorte que le protocole, désormais appelé of­fi­ciel­le­ment SMB 1.0, a permis la connexion directe via TCP (port 445) qui a été maintenue jusqu’à aujourd’hui.

SMB 2.0

Microsoft a apporté la première refonte im­por­tante de Server Message Block en novembre 2006 avec le lancement du système d’ex­ploi­ta­tion Windows Vista. Même si le protocole (désormais connu sous le nom SMB 2.0 ou 2) est demeuré un protocole pro­prié­taire, l’en­tre­prise in­for­ma­tique a également publié pour la première cette spé­ci­fi­ca­tion afin de permettre à d’autres systèmes de com­mu­ni­quer avec les systèmes d’ex­ploi­ta­tion Windows. Les prin­ci­pales nou­veau­tés de cette deuxième version du protocole étaient les suivantes :

  • La réduction du nombre de commandes et de sous-commandes de plus de 100 à 19
  • L’op­ti­mi­sa­tion de la per­for­mance grâce à une nouvelle fonc­tion­na­lité de file d’attente pour les requêtes SMB
  • La com­pa­ti­bi­lité avec les liens sym­bo­liques (liens vers des fichiers et des ré­per­toires)
  • Le stockage tem­po­raire des pro­prié­tés des fichiers
  • Une signature améliorée des messages (al­go­rithme HMAC SHA 256)
  • Une meilleure mo­du­la­rité grâce à un plus grand nombre maximal de clients, de partages et de fichiers ouverts au même moment.

Pour des raisons de com­pa­ti­bi­lité, la première version du protocole a été maintenue, mesure que Microsoft a conservée lors de l’in­tro­duc­tion des versions suivantes.

SMB 2.1

La version 2.1 du protocole SMB est étroi­te­ment liée à Windows 7, puisque les deux sont apparus en même temps. Outre plusieurs op­ti­mi­sa­tions légères de la per­for­mance, elle a prin­ci­pa­le­ment apporté de nouveaux mé­ca­nismes de ver­rouil­lage pour améliorer la ré­gle­men­ta­tion des accès aux fichiers (lecture, écriture, sup­pres­sion, etc.).

SMB 3.0

2012 a vu Windows 8 arriver sur le marché et, avec cette nouvelle édition du système d’ex­ploi­ta­tion de Microsoft, l’in­tro­duc­tion d’une nouvelle version de Server Message Block, qui s’est tout d’abord vu intituler SMB 2.2 avant de recevoir sa dé­no­mi­na­tion actuelle SMB 3.0. Cette refonte du protocole vise également l’amé­lio­ra­tion de la per­for­mance et de la sécurité des con­nexions SMB, en par­ti­cu­lier dans les centres de données vir­tua­li­sés. Les nouvelles fonc­tion­na­li­tés suivantes ont été décisives pour atteindre cette op­ti­mi­sa­tion :

  • La pos­si­bi­lité d’accéder à distance au stockage grâce à SMB via RDMA (Remote Direct Memory Access)
  • La fonc­tion­na­lité mul­ti­chan­nel per­met­tant d’établir plusieurs con­nexions par session SMB
  • Une fiabilité trans­pa­rente
  • Un chif­fre­ment de bout en bout
Note

La troisième version du protocole SMB 3.0.2 a été im­plé­men­tée dans Windows 8.1 sans apporter de nou­veau­tés notables.

SMB 3.1.1

SMB 3.1.1 (publié en 2015 avec Windows 10) étend cette série de pro­to­coles avec un contrôle d’intégrité avant au­then­ti­fi­ca­tion basé sur des valeurs de hachage SHA 512. Par ailleurs, cette version est basée sur un chif­fre­ment AES 128 avec Galois/Counter Mode (GCM). SMB 3.1.1 rend obli­ga­toire une connexion sécurisée pour tous les appareils par­ti­ci­pant à la com­mu­ni­ca­tion avec SMB 2.0.

Tableau ré­ca­pi­tu­la­tif des versions de SMB

Version de SMB Supportée depuis Nouvelles fonc­tion­na­li­tés
CIFS Windows NT 4.0 Com­mu­ni­ca­tion via l’interface NetBIOS
SMB 1.0 Windows 2000 Connexion directe via TCP
SMB 2.0 Windows Vista, Windows Server 2008, Samba 3.5 Mises à jour diverses des per­for­mances, amé­lio­ra­tion de la signature des messages, fonction de mise en cache des pro­prié­tés des fichiers
SMB 2.1 Windows 7, Windows Server 2008 R2 Mé­ca­nismes de ver­rouil­lage
SMB 3.0 Windows 8, Windows Server 2012, Samba 4.0 Con­nexions mul­ti­chan­nel, chif­fre­ment de bout en bout, accès au stockage à distance
SMB 3.0.2 Windows 8.1, Windows Server 2012 R2 Pas de nou­veau­tés notables
SMB 3.1.1 Windows 10, Windows Server 2016, Samba 4.3 Contrôle de l’intégrité, chif­fre­ment AES 128 avec Galois/Counter Mode (GCM)

Quels aspects en matière de sécurité faut-il prendre en compte lors de l’uti­li­sa­tion de SMB ?

Dans ses systèmes, Microsoft a toujours accordé de l’im­por­tance au fait que les anciennes versions de Server Message Block soient sup­por­tées par les nouvelles éditions du système afin de garantir la com­mu­ni­ca­tion entre les appareils plus anciens et les appareils les plus récents. Depuis le début, la com­pa­ti­bi­lité s’ac­com­pagne toutefois d’un risque important en matière de sécurité puisque, par rapport aux pro­to­coles suivants, SMB 1.0 comporte de nom­breuses failles de sécurité qui rendent vul­né­rables l’or­di­na­teur notamment contre les attaques DoS.

Dans les réseaux, en par­ti­cu­lier, le risque d’une attaque basée sur le protocole SMB est grand : pour des raisons de com­pa­ti­bi­lité, toutes les versions de SMB y sont souvent activées, notamment parce que les im­pri­mantes ou les autres appareils en réseau y ont recours. Même si l’ancienne version du protocole n’est plus du tout utilisée, le travail des hackers est facilité puisqu’ils peuvent déclasser la com­mu­ni­ca­tion sur SMB 1.0 et attaquer le système cible désiré sans ren­con­trer d’obstacle important. C’est la raison pour laquelle, avec Windows 10, Microsoft a décidé de ne plus supporter ac­ti­ve­ment la première version ou de la dé­sins­tal­ler au­to­ma­ti­que­ment en l’absence d’uti­li­sa­tion. Sous macOS également, la version 1.0 de SMB est dé­sac­ti­vée depuis macOS Catalina (2019).

Conseil

Pour découvrir comment dé­sac­ti­ver per­son­nel­le­ment Server Message Block ou certaines versions du protocole SMB sous Windows 10 (et si né­ces­saire, le réactiver), consultez notre article détaillé sur comment activer et dé­sac­ti­ver SMB sur Windows 10.

Dans quel cas Server Message Block est-il utilisé ou im­plé­menté ?

Les prin­ci­paux scénarios d’uti­li­sa­tion de SMB ont déjà été évoqués dans cet article : l’accès aux systèmes de fichiers constitue l’élément central du protocole. Par con­sé­quent, il est en premier lieu utilisé dans les con­nexions client-serveur entre les or­di­na­teurs et les serveurs de fichiers. Toutefois, comme d’autres sections du protocole visent ex­pli­ci­te­ment à la com­mu­ni­ca­tion in­ter­pro­ces­sus, le profil d’uti­li­sa­tion comprend également un simple échange de données entre deux appareils ou deux processus.

Outre les im­plé­men­ta­tions de Server Message Block dans les dif­fé­rentes éditions de Windows, au fil du temps, le protocole a par ailleurs été intégré dans de nombreux autres projets logiciels afin d’ouvrir la dis­po­ni­bi­lité des fonc­tion­na­li­tés de com­mu­ni­ca­tion aux systèmes d’ex­ploi­ta­tion n’ap­par­te­nant pas à la gamme Microsoft. Parmi les im­plé­men­ta­tions de SMB les plus connues, on trouve :

  • Samba : le projet logiciel Samba est sans conteste l’exemple le plus connu d’im­plé­men­ta­tion SMB en dehors de Windows. Avec le dé­ve­lop­pe­ment de ce logiciel libre, le pro­gram­meur Andrew Tridgell a permis dès 1991 la com­mu­ni­ca­tion via Server Message Block sur les systèmes Unix et Linux.
  • Netsmb : Netsmb est une suite d’im­plé­men­ta­tions du client et du serveur SMB di­rec­te­ment dans le noyau des systèmes d’ex­ploi­ta­tion BSD. Publiées la toute première fois pour le système d’ex­ploi­ta­tion FreeBSD 4.4, ces im­plé­men­ta­tions sont aujourd’hui dis­po­nibles pour une multitude de systèmes BSD, notamment pour NetBSD et macOS.
  • YNQ : YNQ (an­cien­ne­ment NQ) est une bi­blio­thèque SMB im­plé­men­tant la tech­no­lo­gie Server Message Block dans des systèmes intégrés non dotés de Windows et rendant ainsi possible l’in­te­ro­pé­ra­bi­lité avec les appareils Windows. Depuis 1998, YNQ est développé par l’en­tre­prise lo­gi­cielle is­raé­lienne Visuality Systems Ltd.
  • TrueNAS : la solution open source TrueNAS constitue la solution idéale pour tous ceux qui sou­hai­tent exploiter un serveur NAS sup­por­tant le protocole SMB. Le logiciel NAS est basé sur FreeBSD et le système de fichiers OpenZFS.
  • Con­nec­ted­NAS : le logiciel Con­nec­ted­NAS, développé par Connected Way, est à la fois un serveur et un client SMB pour les appareils Android. Les uti­li­sa­teurs de cette ap­pli­ca­tion payante peuvent échanger en toute tran­quil­lité des données entre l’appareil mobile et avec d’autres appareils SMB, que ce soit dans un cadre privé ou pro­fes­sion­nel. Pour des raisons de sécurité, Con­nec­ted­NAS supporte SMB à partir de la version 2.
Aller au menu principal