SMB (Server Message Block) est un protocole réseau qui permet d’accéder à des fichiers, des imprimantes et d’autres ressources sur un réseau local. Il est principalement utilisé dans les environnements Windows pour réaliser des partages de fichiers et de services entre ordinateurs.

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épertoires complets et à d’autres ressources du réseau comme les imprimantes, les routeurs ou les interfaces partagées dans le réseau. Le protocole SMB permet également l’échange d’informations entre les différents processus d’un système (également appelé communication interprocessus).

IONOS Object Storage
Stockage de données sûr et économique

Augmentez votre rentabilité grâce à un stockage évolutif, qui s'intègre à vos scénarios d'application.

Développé dès 1983 par le groupe informatique IBM, ce protocole a connu différentes versions et implémentations au cours des décennies. SMB a été mis à disposition d’un public plus large pour la première fois dans le cadre du système d’exploitation réseau OS/2 LAN Manager et de son successeur LAN Server. Ce protocole est principalement utilisé dans les systèmes d’exploitation Windows dont les services de réseau supportent SMB en rétrocompatibilité. Ceci permet aux appareils dotés des dernières versions de communiquer sans problème avec les appareils disposant d’une ancienne version du système d’exploitation de Microsoft. Le logiciel gratuit Samba offre par ailleurs une solution permettant l’utilisation de Server Message Block dans les distributions Linux et Unix et permet ainsi une communication multiplateforme via SMB.

Note

Pour l’implémentation 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 protocoles SMB. Aujourd’hui, CIFS désigne plus particulièrement la version 1.0 de SMB.

Comment fonctionne SMB ?

Le protocole Server Message Block permet au client de communiquer avec d’autres participants 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 implémenté le protocole dans ce but et pouvoir recevoir et traiter la requête client à l’aide d’une application 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 correspondants. Dans les réseaux IP, SMB utilise à cet effet le Transmission Control Protocol (TCP) qui prévoit un handshaking 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écifications du protocole TCP.

Note

Le port TCP 445 est aujourd’hui réservé à l’établissement de la connexion et le transfert via TCP/SMB. La résolution 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 Resolution (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 à disposition des fichiers ou des services via le réseau.

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

Comme évoqué précédemment, un certain nombre de modifications ont été apportées à ce standard réseau depuis sa première publication en 1983. Ces modifications se sont traduites par diffé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 paragraphes suivants résument les principales étapes dans le développement du protocole Server Message Block.

SMB 1.0 (CIFS)

La première version du protocole de communication réseau est souvent assimilée à la modification Common Internet File System (CIFS). Cette modification constitue toutefois seulement l’un des aspects de la première édition du protocole qui correspond dans les faits à l’implémentation du protocole dans les appareils dotés de Windows NT 4.0. Dans cette première variante, la communication était encore prévue via l’interface NetBIOS ainsi que via les ports UDP 137 (résolution de nom), 138 (transmission de paquet) et via le port TCP 139 (établissement de la connexion et transfert). La dépendance de NetBIOS a disparu avec Windows 2000 de sorte que le protocole, désormais appelé officiellement 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 importante de Server Message Block en novembre 2006 avec le lancement du système d’exploitation Windows Vista. Même si le protocole (désormais connu sous le nom SMB 2.0 ou 2) est demeuré un protocole propriétaire, l’entreprise informatique a également publié pour la première cette spécification afin de permettre à d’autres systèmes de communiquer avec les systèmes d’exploitation Windows. Les principales nouveauté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’optimisation de la performance grâce à une nouvelle fonctionnalité de file d’attente pour les requêtes SMB
  • La compatibilité avec les liens symboliques (liens vers des fichiers et des répertoires)
  • Le stockage temporaire des propriétés des fichiers
  • Une signature améliorée des messages (algorithme HMAC SHA 256)
  • Une meilleure modularité grâce à un plus grand nombre maximal de clients, de partages et de fichiers ouverts au même moment.

Pour des raisons de compatibilité, la première version du protocole a été maintenue, mesure que Microsoft a conservée lors de l’introduction des versions suivantes.

SMB 2.1

La version 2.1 du protocole SMB est étroitement liée à Windows 7, puisque les deux sont apparus en même temps. Outre plusieurs optimisations légères de la performance, elle a principalement apporté de nouveaux mécanismes de verrouillage pour améliorer la réglementation des accès aux fichiers (lecture, écriture, suppression, etc.).

SMB 3.0

2012 a vu Windows 8 arriver sur le marché et, avec cette nouvelle édition du système d’exploitation de Microsoft, l’introduction d’une nouvelle version de Server Message Block, qui s’est tout d’abord vu intituler SMB 2.2 avant de recevoir sa dénomination actuelle SMB 3.0. Cette refonte du protocole vise également l’amélioration de la performance et de la sécurité des connexions SMB, en particulier dans les centres de données virtualisés. Les nouvelles fonctionnalités suivantes ont été décisives pour atteindre cette optimisation :

  • La possibilité d’accéder à distance au stockage grâce à SMB via RDMA (Remote Direct Memory Access)
  • La fonctionnalité multichannel permettant d’établir plusieurs connexions par session SMB
  • Une fiabilité transparente
  • Un chiffrement de bout en bout
Note

La troisième version du protocole SMB 3.0.2 a été implémentée dans Windows 8.1 sans apporter de nouveautés notables.

SMB 3.1.1

SMB 3.1.1 (publié en 2015 avec Windows 10) étend cette série de protocoles avec un contrôle d’intégrité avant authentification basé sur des valeurs de hachage SHA 512. Par ailleurs, cette version est basée sur un chiffrement AES 128 avec Galois/Counter Mode (GCM). SMB 3.1.1 rend obligatoire une connexion sécurisée pour tous les appareils participant à la communication avec SMB 2.0.

Tableau récapitulatif des versions de SMB

Version de SMB Supportée depuis Nouvelles fonctionnalités
CIFS Windows NT 4.0 Communication 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 performances, amélioration de la signature des messages, fonction de mise en cache des propriétés des fichiers
SMB 2.1 Windows 7, Windows Server 2008 R2 Mécanismes de verrouillage
SMB 3.0 Windows 8, Windows Server 2012, Samba 4.0 Connexions multichannel, chiffrement de bout en bout, accès au stockage à distance
SMB 3.0.2 Windows 8.1, Windows Server 2012 R2 Pas de nouveautés notables
SMB 3.1.1 Windows 10, Windows Server 2016, Samba 4.3 Contrôle de l’intégrité, chiffrement AES 128 avec Galois/Counter Mode (GCM)
Serveurs dédiés
Performance et innovation

Profitez de votre propre serveur, avec hardware dédié, intégration Cloud, facturation à la minute et processeur Intel® Xeon® ou AMD.

Quels aspects en matière de sécurité faut-il prendre en compte lors de l’utilisation de SMB ?

Dans ses systèmes, Microsoft a toujours accordé de l’importance au fait que les anciennes versions de Server Message Block soient supportées par les nouvelles éditions du système afin de garantir la communication entre les appareils plus anciens et les appareils les plus récents. Depuis le début, la compatibilité s’accompagne toutefois d’un risque important en matière de sécurité puisque, par rapport aux protocoles suivants, SMB 1.0 comporte de nombreuses failles de sécurité qui rendent vulnérables l’ordinateur notamment contre les attaques DoS.

Dans les réseaux, en particulier, le risque d’une attaque basée sur le protocole SMB est grand : pour des raisons de compatibilité, toutes les versions de SMB y sont souvent activées, notamment parce que les imprimantes 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 communication sur SMB 1.0 et attaquer le système cible désiré sans rencontrer d’obstacle important. C’est la raison pour laquelle, avec Windows 10, Microsoft a décidé de ne plus supporter activement la première version ou de la désinstaller automatiquement en l’absence d’utilisation. Sous macOS également, la version 1.0 de SMB est désactivée depuis macOS Catalina (2019).

Conseil

Pour découvrir comment désactiver personnellement Server Message Block ou certaines versions du protocole SMB sous Windows 10 (et si nécessaire, le réactiver), consultez notre article détaillé sur comment activer et désactiver SMB sur Windows 10.

Dans quel cas Server Message Block est-il utilisé ou implémenté ?

Les principaux scénarios d’utilisation 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 conséquent, il est en premier lieu utilisé dans les connexions client-serveur entre les ordinateurs et les serveurs de fichiers. Toutefois, comme d’autres sections du protocole visent explicitement à la communication interprocessus, le profil d’utilisation comprend également un simple échange de données entre deux appareils ou deux processus.

Outre les implémentations de Server Message Block dans les diffé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 disponibilité des fonctionnalités de communication aux systèmes d’exploitation n’appartenant pas à la gamme Microsoft. Parmi les implémentations de SMB les plus connues, on trouve :

  • Samba : le projet logiciel Samba est sans conteste l’exemple le plus connu d’implémentation SMB en dehors de Windows. Avec le développement de ce logiciel libre, le programmeur Andrew Tridgell a permis dès 1991 la communication via Server Message Block sur les systèmes Unix et Linux.
  • Netsmb : Netsmb est une suite d’implémentations du client et du serveur SMB directement dans le noyau des systèmes d’exploitation BSD. Publiées la toute première fois pour le système d’exploitation FreeBSD 4.4, ces implémentations sont aujourd’hui disponibles pour une multitude de systèmes BSD, notamment pour NetBSD et macOS.
  • YNQ : YNQ (anciennement NQ) est une bibliothèque SMB implémentant la technologie Server Message Block dans des systèmes intégrés non dotés de Windows et rendant ainsi possible l’interopérabilité avec les appareils Windows. Depuis 1998, YNQ est développé par l’entreprise logicielle israélienne Visuality Systems Ltd.
  • TrueNAS : la solution open source TrueNAS constitue la solution idéale pour tous ceux qui souhaitent exploiter un serveur NAS supportant le protocole SMB. Le logiciel NAS est basé sur FreeBSD et le système de fichiers OpenZFS.
  • ConnectedNAS : le logiciel ConnectedNAS, développé par Connected Way, est à la fois un serveur et un client SMB pour les appareils Android. Les utilisateurs de cette application payante peuvent échanger en toute tranquillité des données entre l’appareil mobile et avec d’autres appareils SMB, que ce soit dans un cadre privé ou professionnel. Pour des raisons de sécurité, ConnectedNAS supporte SMB à partir de la version 2.
Cet article vous a-t-il été utile ?
Aller au menu principal