Le protocole SMB

Qu'est-ce que le protocole SMB ? Vous trouverez quelques réponses dans ce document, sans rentrer dans le bas niveau.

Le protocole SMB
A digital file transfert between two computers, flat 3D, white background. Généré avec l’IA DALL-E 3

Le protocole SMB, pour "Server Message Block" est utilisé principalement pour le transfert de données et la connexion avec des imprimantes, entre un serveur et un client sur un même réseau local.

Version Date Commentaires
1 05/2017 Création du document
1.1 06/2022 Reformatage du document

Vous ne le voyez pas et vous ne le saviez peut-être pas, mais la majorité de vos partages réseaux et la connexion aux imprimantes réseaux se font via le protocole SMB (en plus de la pile TCP/IP). Tous les jours, ce protocole est exploité, même en interne dans votre poste !

smb diagram
Image provenant de samba.org

Historique

Le premier protocole permettant l’échange d’informations et la connexion à certains périphériques via port série s’intitulait "PC NETWORK PROGRAM 1.0" et a été pour la première fois mis en place par IBM en 1985.

Auparavant, ce protocole ne portait pas son nom de "SMB", mais de "CIFS", pour "Common Internet File System". Il s’agissait à peu près du même principe qu’aujourd’hui : des ressources sur un réseau local sont accessibles via authentification (en clair ou chiffrée) et permettait aussi l’accès aux imprimantes.

Naturellement, avec les technologies de l’époque, il ne faut pas s’attendre à des performances extrêmes et à une sécurité hors pair. De plus, il n’y avait pas encore de régulation des flux, des contrôles de qualité de flux ou de service (QoS). Le protocole CIFS a été standardisé par l’IETF vers 1997. Avec le temps, les protocoles ont évolués aussi bien en vitesse qu’en fonctionnalité et surtout, leur sécurité.

De SMB 1.0 à SMB 2.0, le protocole a été profondément remanié :

  • Le SMB 2.0 permet notamment l’échange de fichiers plus gros,
  • les opérations asynchrones,
  • l’utilisation du SHA-256 plutôt que le MD5,
  • les commandes sont plus "souples" et "simples",
  • enfin, la possibilité d’avoir plus d’I/O lors des transferts.

De SMB 2.0 / 2.1 à SMB 3.0, de grosses nouveautés apparaissent, notamment :

  • les performances accrues,
  • un "transparent failover" (permet de reprendre un transfert interrompu sans action de la part de l’utilisateur)
  • SMB Direct (dans Windows Server 2012/2012 R2) – voir infos sur Technet Microsoft
  • VSS pour les dossiers partagés (pour les systèmes Microsoft uniquement)
  • utilisation via PowerShell désormais possible (pour les systèmes Microsoft uniquement)
  • logs et compteurs de performances améliorés
  • chiffrement de bout en bout

Informations complémentaires

Le SMB est propriétaire. Il utilise les ports 139 et 445 (TCP). Bien qu’il soit présent dans Windows depuis NT 4.0, les distributions Linux et l’environnement Apple ne sont pas en reste. Ils ont eux aussi droit à leur protocole d’échange dérivé du SMB ! En effet, il s’agit du protocole (et du logiciel portant le même nom) "SAMBA". Et vis-à-vis du modèle OSI, comment ça fonctionne ?

smb layer packet
Image provenant de samba.org

Des partages entre Linux et Windows, une imprimante installée sur une machine Linux puis partagée vers un PC Windows, est-ce possible ? La réponse est OUI.

Il est possible de partager des données entre une machine Linux et un PC Windows, que ce soit avec Samba ou SMB – les deux protocoles sont compatibles entre eux. Pour rappel, SAMBA est la version libre et modifiable du SMB.

Aujourd’hui, pour Windows 11 ainsi que Windows Server 2022, le protocole SMB en est à la version 3.1.1 – Article Tech Net. Avec le protocole QUIC, SMB est capable d'être utilisé sur UDP et d'être encore plus rapide !

La sécurité

Deux types de sécurité sont disponibles pour les partages SMB :

  • protection par partage (dossier partagé) ;
  • protection par utilisateur.

Vous pouvez attribuer des droits sur les dossiers en fonction des besoins, ou alors restreindre l’accès aux dossiers (tous) en fonction de la connexion de l’utilisateur. La protection par partage est en fait un mot de passe sur ce dossier partagé. Une fois que vous avez ce mot de passe, vous pouvez accéder au dossier. La protection par utilisateur permet d’avoir une sécurité un peu plus fine : vous ajouter/enlever les droits, selon l’utilisateur, sur le dossier concerné.

Le site inetdoc explique un type d’attaque possible sur le protocole, à savoir un Man In The Middle (MITM).

Annexes

Vous pouvez retrouver des informations complémentaires à ces adresses :