SMB (Server Message Block) : définition, tâches et domaines d’utilisation

À notre époque, les réseaux informatiques sont une évidence. Que ce soit à la maison ou au bureau, le fait de connecter tous les appareils techniques dans un même réseau local pour former une alternative hors ligne à Internet n’est en général qu’une formalité. Grâce à une connexion au sein d’un réseau local ou d’un réseau local sans fil, les participants au réseau peuvent échanger sans difficulté des fichiers, gérer des serveurs ou utiliser des appareils en réseau typiques comme des imprimantes ou des routeurs. Pour que la communication entre les différents éléments puisse fonctionner, des règles claires doivent toutefois être définies, sous la forme de protocoles. L’un des principaux et des plus anciens protocoles réseau est par exemple le protocole SMB, que nous vous expliquons plus en détail dans cet article.

Nom de domaine
Votre domaine en un clic
  • Domaine .eu ou .fr + éditeur de site gratuit pendant 6 mois
  • 1 certificat SSL Wildcard par contrat
  • Boîte email de 2 Go

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).

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 projet logiciel gratuit Samba offre par ailleurs une solution permettant l’utilisation de Server Message Block dans les distributions Linux et Unix et ainsi une communication multiplateformes 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 réseau dans ce but et 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é pour établir 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).

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 la première publication de SMB 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) déjà évoquée. 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. La version révisée de cette deuxième édition du protocole est apparue en même temps que ce système d’exploitation en 2007. 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 le lancement de Windows 8 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 de l’intégrité avant l’authentification sur la base de 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 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 Diverses mises à niveau de performance, signature des messages améliorée, fonctionnalité de mise en cache pour les 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 à distance au stockage
SMB 3.0.2 Windows 8.1,Windows Server 2012 R2  
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)

Quels aspects faut-il prendre en compte en matière de sécurité 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 garantie de 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.

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.

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 basés sur Windows. Depuis 1998, YNQ est développé par l’entreprise logicielle israélienne Visuality Systems Ltd.
  • FreeNAS : la solution open source FreeNAS 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 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.
Certificats SSL
Faites le choix de la sécurité
  • Sécurisez vos transferts de données
  • Renforcez la confiance de vos clients
  • Améliorez votre positionnement sur Google
Cet article vous a-t-il été utile ?
Page top