Bloc de messages du serveur

Un article de Wikipédia, l'encyclopédie libre
Aller à la navigation Aller à la recherche

Server Message Block ( SMB ) est un protocole de communication [1] créé par Microsoft pour fournir un accès partagé aux fichiers et aux imprimantes entre les nœuds d'un réseau. Il fournit également un mécanisme de communication inter-processus authentifié (IPC). Microsoft a d'abord implémenté SMB dans le système d'exploitation LAN Manager , date à laquelle SMB a utilisé le protocole NetBIOS comme transport sous-jacent. Plus tard, Microsoft a implémenté SMB dans Windows NT 3.1 et l'a mis à jour depuis, en l'adaptant pour fonctionner avec les nouveaux transports sous-jacents :TCP/IP et NetBT . L'implémentation SMB se compose de deux services Windows vaguement nommés : "Server" (ID : LanmanServer) et "Workstation" (ID : LanmanWorkstation). [2] Il utilise les protocoles NTLM ou Kerberos pour l'authentification des utilisateurs.

En 1996, Microsoft a publié une version de SMB 1.0 [3] avec des modifications mineures sous le surnom de Common Internet File System ( CIFS / s ɪ f s / ). CIFS reste compatible même avec la première incarnation de SMB, y compris LAN Manager . [3] Il prend en charge les liens symboliques, les liens physiques et les fichiers de plus grande taille, mais aucune des fonctionnalités de SMB 2.0 et versions ultérieures. [3] [4] La proposition de Microsoft, cependant, est restée un brouillon Internet et n'a jamais atteint le statut standard. [5] Microsoft a depuis abandonné CIFS mais a rendu publiques les spécifications SMB.

Fonctionnalités

Server Message Block (SMB) permet le partage de fichiers, le partage d' imprimantes , la navigation sur le réseau et la communication entre processus (via des canaux nommés ) sur un réseau informatique . SMB sert de base à l' implémentation du système de fichiers distribués de Microsoft .

SMB s'appuie sur les protocoles TCP et IP pour le transport. Cette combinaison permet potentiellement le partage de fichiers sur des réseaux complexes et interconnectés , y compris l'Internet public. Le composant serveur SMB utilise le port TCP 445. SMB fonctionnait à l'origine sur NetBIOS (sur IEEE 802.2 et IPX/SPX ) et plus tard sur NetBIOS sur TCP/IP (NetBT), mais Microsoft a depuis déprécié ces protocoles. (NetBIOS n'est plus disponible depuis Windows Vista .) Sur NetBT, le composant serveur utilise trois protocoles TCP ou UDP .ports : 137 (service de noms NETBIOS), 138 (service de datagramme NETBIOS) et 139 (service de session NETBIOS).

Dans Microsoft Windows, deux services Windows vaguement nommés implémentent SMB. Le service "Serveur" (ID : LanmanServer) est chargé de servir les ressources partagées . Le service "Workstation" (ID : LanmanWorkstation) conserve le nom de l'ordinateur et facilite l'accès aux ressources partagées sur d'autres ordinateurs. [2] SMB utilise le protocole Kerberos pour authentifier les utilisateurs par rapport à Active Directory sur les réseaux de domaine Windows . Sur les réseaux peer-to-peer plus simples, SMB utilise le protocole NTLM .

Windows NT 4.0 SP3 et versions ultérieures peuvent signer numériquement les messages SMB pour empêcher certaines attaques de l'intercepteur . [6] [7] [8] La signature SMB peut être configurée individuellement pour les connexions SMB entrantes (par le service "LanmanServer") et les connexions SMB sortantes (par le service "LanmanWorkstation"). Le paramètre par défaut pour les contrôleurs de domaine Windows exécutant Windows Server 2003 et versions ultérieures est de ne pas autoriser les connexions entrantes non signées. [9] Ainsi, les versions antérieures de Windows qui ne prennent pas en charge la signature SMB dès le départ (y compris Windows 9x ) ne peuvent pas se connecter à un contrôleur de domaine Windows Server 2003. [7]

SMB prend en charge le verrouillage opportuniste (voir ci-dessous) sur les fichiers afin d'améliorer les performances. La prise en charge du verrouillage opportuniste a changé avec chaque version de Windows Server.

Verrouillage

Dans le protocole SMB, le verrouillage opportuniste est un mécanisme conçu pour améliorer les performances en contrôlant la mise en cache des fichiers réseau par le client. [10] Contrairement aux verrous traditionnels , les verrous opportunistes (OpLocks) ne sont pas strictement des verrous de fichiers ni utilisés pour fournir une exclusion mutuelle.

Il existe quatre types de verrous opportunistes.

Verrous de lot
Batch OpLocks ont été créés à l'origine pour prendre en charge un comportement particulier de l'opération d'exécution de fichiers batch DOS dans laquelle le fichier est ouvert et fermé plusieurs fois sur une courte période, ce qui pose un problème de performances. Pour résoudre ce problème, un client peut demander un OpLock de type "batch". Dans ce cas, le client retarde l'envoi de la demande de fermeture et si une demande d'ouverture ultérieure est donnée, les deux demandes s'annulent. [11]
OpLocks de niveau 1 / Verrous exclusifs
Lorsqu'une application ouvre en "mode partagé" un fichier hébergé sur un serveur SMB qui n'est ouvert par aucun autre processus (ou d'autres clients), le client reçoit un OpLock exclusif du serveur. Cela signifie que le client peut maintenant supposer qu'il est le seul processus ayant accès à ce fichier particulier, et le client peut maintenant mettre en cache toutes les modifications apportées au fichier avant de le valider sur le serveur. Il s'agit d'une amélioration des performances, car moins d'allers-retours sont nécessaires pour lire et écrire dans le fichier. Si un autre client/processus essaie d'ouvrir le même fichier, le serveur envoie un message au client (appelé break ou revocation ) qui invalide le verrou exclusif précédemment donné au client. Le client vide ensuite toutes les modifications apportées au fichier.
OpLocks de niveau 2
Si un OpLock exclusif est détenu par un client et qu'un fichier verrouillé est ouvert par un tiers, le client doit renoncer à son OpLock exclusif pour permettre l'accès en écriture/lecture de l'autre client. Un client peut alors recevoir un "OpLock de niveau 2" du serveur. Un OpLock de niveau 2 permet la mise en cache des demandes de lecture mais exclut la mise en cache en écriture.
Filtrer les OpLocks
Ajoutés à Windows NT 4.0, les Oplocks de filtre sont similaires aux OpLocks de niveau 2 mais empêchent les violations du mode de partage entre l'ouverture du fichier et la réception du verrou. Microsoft conseille l'utilisation de Filter OpLocks uniquement lorsqu'il est important d'autoriser plusieurs lecteurs et les OpLocks de niveau 2 dans d'autres circonstances. Les clients détenant un OpLock ne détiennent pas vraiment un verrou sur le fichier, mais ils sont avertis via une pause lorsqu'un autre client souhaite accéder au fichier d'une manière incompatible avec leur verrou. La demande de l'autre client est bloquée pendant le traitement de la pause.
Pauses
Contrairement au comportement "standard" du protocole SMB, une demande d'interruption peut être envoyée du serveur au client. Il informe le client qu'un OpLock n'est plus valide. Cela se produit, par exemple, lorsqu'un autre client souhaite ouvrir un fichier d'une manière qui invalide l'OpLock. Le premier client reçoit alors une pause OpLock et doit envoyer toutes ses modifications locales (en cas de lot ou d'OpLocks exclusifs), le cas échéant, et accuser réception de la pause OpLock. Suite à cet accusé de réception, le serveur peut répondre au deuxième client de manière cohérente.

Performance

L'utilisation du protocole SMB a souvent été corrélée à une augmentation significative du trafic de diffusion sur un réseau. Cependant, le SMB lui-même n'utilise pas les diffusions - les problèmes de diffusion généralement associés au SMB proviennent en fait du protocole de localisation de service NetBIOS . [ clarification nécessaire ] Par défaut, un Microsoft Windows NT 4.0Le serveur a utilisé NetBIOS pour annoncer et localiser les services. NetBIOS fonctionne en diffusant les services disponibles sur un hôte particulier à intervalles réguliers. Bien que cela constitue généralement une valeur par défaut acceptable dans un réseau avec un petit nombre d'hôtes, l'augmentation du trafic de diffusion peut causer des problèmes à mesure que le nombre d'hôtes sur le réseau augmente. L'implémentation de l'infrastructure de résolution de noms sous la forme de Windows Internet Naming Service (WINS) ou de Domain Name System (DNS) résout ce problème. WINS était une implémentation propriétaire utilisée avec les réseaux Windows NT 4.0, mais entraînait ses propres problèmes et complexités dans la conception et la maintenance d'un réseau Microsoft.

Depuis la sortie de Windows 2000, l'utilisation de WINS pour la résolution de noms a été déconseillée par Microsoft, le DNS dynamique hiérarchique étant désormais configuré comme protocole de résolution de noms par défaut pour tous les systèmes d'exploitation Windows. La résolution des noms NetBIOS (courts) par DNS nécessite qu'un client DNS développe les noms courts, généralement en ajoutant un suffixe DNS spécifique à la connexion à ses requêtes de recherche DNS. WINS peut toujours être configuré sur les clients en tant que protocole de résolution de noms secondaire pour l'interopérabilité avec les environnements et applications Windows hérités. En outre, les serveurs Microsoft DNS peuvent transmettre les demandes de résolution de noms aux serveurs WINS hérités afin de prendre en charge l'intégration de la résolution de noms avec les environnements hérités (pré-Windows 2000) qui ne prennent pas en charge DNS.

Les concepteurs de réseaux ont constaté que la latence a un impact significatif sur les performances du protocole SMB 1.0, qu'il fonctionne moins bien que d'autres protocoles comme FTP . La surveillance révèle un degré élevé de "bavardage" et un mépris de la latence du réseau entre les hôtes. [12] Par exemple, une connexion VPN sur Internet introduira souvent une latence du réseau. Microsoft a expliqué que les problèmes de performances surviennent principalement parce que SMB 1.0 est un protocole de niveau bloc plutôt qu'un protocole de diffusion en continu , qui a été conçu à l'origine pour les petits réseaux locaux ; il a une taille de bloc limitée à 64K, la signature SMB crée une surcharge supplémentaire et leLa taille de la fenêtre TCP n'est pas optimisée pour les liaisons WAN. [13] Les solutions à ce problème incluent le protocole SMB 2.0 mis à jour, [14] Fichiers hors ligne , la mise à l' échelle de la fenêtre TCP et les dispositifs d' optimisation WAN de divers fournisseurs de réseau qui mettent en cache et optimisent SMB 1.0 [15] et 2.0. [16]

Historique

PME 1.0

Barry Feigenbaum a initialement conçu SMB chez IBM au début de 1983 dans le but de transformer l'accès aux fichiers locaux DOS INT 21h en un système de fichiers en réseau. [17] Microsoft a apporté des modifications considérables à la version la plus couramment utilisée et a implémenté le protocole SMB dans le système d'exploitation LAN Manager qu'il avait commencé à développer pour OS/2 avec 3Com vers 1990, et a continué à ajouter des fonctionnalités au protocole dans Windows pour Workgroups ( vers  1992) et dans les versions ultérieures de Windows. L'authentification LAN Manager a été implémentée sur la base de l'exigence de la spécification SMB héritée d'origine d'utiliser les mots de passe IBM "LAN Manager", mais a implémenté DES d'une manière défectueuse qui a permis de déchiffrer les mots de passe. [18] Plus tard, l'authentification Kerberos a également été ajoutée. Les protocoles d'ouverture de session de domaine Windows utilisaient initialement le cryptage 40 bits en dehors des États-Unis , en raison des restrictions à l'exportation sur le cryptage 128 bits plus fort [19] (soulevées par la suite en 1996 lorsque le président Bill Clinton a signé le décret 13026 [20] ).

SMB 1.0 (ou SMB1) a été conçu à l'origine pour s'exécuter sur des trames NetBIOS (NetBIOS sur IEEE 802.2 ). Depuis lors, il a été adapté à NetBIOS sur IPX/SPX (NBX) et NetBIOS sur TCP/IP (NetBT). De plus, depuis Windows 2000 , SMB s'exécute sur TCP en utilisant le port TCP 445, une fonctionnalité connue sous le nom de "direct host SMB". [21] Il y a toujours une couche mince (similaire au paquet de message de session du service de session de NetBT) entre SMB et TCP. [21] Windows Server 2003 et les périphériques NAS hérités utilisent SMB1 de manière native.

SMB1 est un protocole extrêmement bavard, ce qui n'est pas un problème sur un réseau local (LAN) à faible latence. Il devient très lent sur les réseaux étendus (WAN) car la poignée de main dans les deux sens du protocole amplifie la latence élevée inhérente à un tel réseau. Les versions ultérieures du protocole ont réduit le nombre élevé d'échanges de poignées de main. Une approche pour atténuer les inefficacités du protocole consiste à utiliser des produits d' optimisation WAN tels que ceux fournis par Riverbed , Silver Peak ou Cisco .. Une meilleure approche consiste à effectuer une mise à niveau vers une version ultérieure de SMB. Cela inclut la mise à niveau des périphériques NAS ainsi que de Windows Server 2003. La méthode la plus efficace pour identifier le trafic SMB1 consiste à utiliser un outil d'analyse de réseau, tel que Wireshark . Microsoft fournit également un outil d'audit dans Windows Server 2016 pour rechercher les appareils qui utilisent SMB1. [22]

Microsoft a marqué SMB1 comme obsolète en juin 2013. [23] Windows Server 2016 et Windows 10 version 1709 n'ont pas SMB1 installé par défaut. [24]

CIFS

En 1996, lorsque Sun Microsystems a annoncé WebNFS , [25] Microsoft a lancé une initiative pour renommer SMB en Common Internet File System (CIFS) [17] et a ajouté plus de fonctionnalités, notamment la prise en charge des liens symboliques , des liens physiques , des fichiers de plus grande taille et un tentative initiale de prise en charge des connexions directes sur le port TCP 445 sans nécessiter NetBIOS comme transport (un effort largement expérimental qui a nécessité un raffinement supplémentaire). Microsoft a soumis des spécifications partielles en tant que brouillons Internet à l' IETF . [5] Ces observations ont depuis expiré.

PME 2.0

Microsoft a introduit une nouvelle version du protocole (SMB 2.0 ou SMB2) en 2006 avec Windows Vista et Windows Server 2008 . [26] Bien que le protocole soit propriétaire, sa spécification a été publiée pour permettre à d'autres systèmes d'interagir avec les systèmes d'exploitation Microsoft qui utilisent le nouveau protocole. [27]

SMB2 réduit le «bavardage» du protocole SMB 1.0 en réduisant le nombre de commandes et de sous-commandes de plus d'une centaine à seulement dix-neuf. [12] Il dispose de mécanismes de pipeline , c'est-à-dire d'envoi de requêtes supplémentaires avant l'arrivée de la réponse à une requête précédente, améliorant ainsi les performances sur les liaisons à latence élevée . Il ajoute la possibilité de combiner plusieurs actions en une seule requête, ce qui réduit considérablement le nombre d' allers-retours que le client doit effectuer vers le serveur, améliorant ainsi les performances. [12] SMB1 dispose également d'un mécanisme de composition, connu sous le nom d'AndX, pour composer plusieurs actions, mais les clients Microsoft utilisent rarement AndX. [ citation nécessaire ]Il introduit également la notion de "descripteurs de fichiers durables": ceux-ci permettent à une connexion à un serveur SMB de survivre à de brèves pannes de réseau, comme c'est généralement le cas dans un réseau sans fil, sans avoir à encourir les frais généraux liés à la renégociation d'une nouvelle session.

SMB2 inclut la prise en charge des liens symboliques . D'autres améliorations incluent la mise en cache des propriétés des fichiers, une meilleure signature des messages avec l'algorithme de hachage HMAC SHA-256 et une meilleure évolutivité en augmentant le nombre d'utilisateurs, de partages et de fichiers ouverts par serveur, entre autres. [12] Le protocole SMB1 utilise des tailles de données de 16 bits, ce qui, entre autres, limite la taille de bloc maximale à 64K. SMB2 utilise des champs de stockage larges de 32 ou 64 bits, et 128 bits dans le cas de file-handles , supprimant ainsi les contraintes précédentes sur la taille des blocs, ce qui améliore les performances avec les transferts de fichiers volumineux sur des réseaux rapides. [12]

Les systèmes d'exploitation Windows Vista/ Server 2008 et versions ultérieures utilisent SMB2 lors de la communication avec d'autres machines également capables d'utiliser SMB2. SMB1 continue d'être utilisé pour les connexions avec les anciennes versions de Windows, ainsi que les solutions NAS de divers fournisseurs. Samba 3.5 inclut également un support expérimental pour SMB2. [28] Samba 3.6 prend entièrement en charge SMB2, à l'exception de la modification des quotas d'utilisateurs à l'aide des outils de gestion des quotas Windows. [29]

Lorsque SMB2 a été introduit, il a apporté un certain nombre d'avantages par rapport à SMB1 pour les implémenteurs tiers de protocoles SMB. SMB1, conçu à l'origine par IBM , a fait l'objet d'une ingénierie inverse et est ensuite devenu une partie d'une grande variété de systèmes d'exploitation non Windows tels que Xenix , OS/2 et VMS ( Pathworks ). X/Open l'a partiellement standardisé ; Microsoft avait soumis des Internet-Drafts décrivant SMB2 à l' IETF , en partie en réponse à la standardisation formelle par l'IETF de la version 4 du système de fichiers réseau en décembre 2000 sous le nom d'IETF RFC 3010. [30]; cependant, ces brouillons Internet liés aux PME ont expiré sans avoir obtenu l'approbation de la voie des normes de l'IETF ou toute autre approbation de l'IETF. (Voir http://ubiqx.org/cifs/Intro.html pour les détails historiques.) SMB2 est également une rupture relativement nette avec le passé. Le code SMB1 de Microsoft doit fonctionner avec une grande variété de clients et de serveurs SMB. SMB1 propose de nombreuses versions d'informations pour les commandes (sélection de la structure à renvoyer pour une demande particulière) car des fonctionnalités telles que la prise en charge d' Unicode ont été installées ultérieurement. SMB2 implique des tests de compatibilité considérablement réduits pour les implémenteurs du protocole. Le code SMB2 a considérablement moins de complexité car il existe beaucoup moins de variabilité (par exemple, les chemins de code non Unicode deviennent redondants car SMB2 nécessite la prise en charge d'Unicode).

Apple a migré vers SMB2 (à partir de son propre protocole de dépôt Apple , désormais hérité) à partir d' OS X 10.9 "Mavericks" . [31] Cette transition s'est toutefois heurtée à des problèmes de compatibilité. [32] [33] Le support non par défaut pour SMB2 est apparu en fait dans OS X 10.7, quand Apple a abandonné Samba en faveur de sa propre implémentation SMB appelée SMBX. [31] Apple est passé à sa propre implémentation SMBX après que Samba ait adopté la GPLv3 . [34] [35] MacOS prend également en charge le système de fichiers réseau IETF (NFS) depuis de nombreuses années (et continue de le faire à partir de 2021).

Le système de fichiers client CIFS du noyau Linux prend en charge SMB2 depuis la version 3.7. [36]

PME 2.1

SMB 2.1, introduit avec Windows 7 et Server 2008 R2, a introduit des améliorations de performances mineures avec un nouveau mécanisme de verrouillage opportuniste. [37]

PME 3.0

SMB 3.0 (précédemment nommé SMB 2.2) [38] a été introduit avec Windows 8 [38] et Windows Server 2012 . [38] Il a apporté plusieurs changements significatifs destinés à ajouter des fonctionnalités et à améliorer les performances de SMB2, [39] notamment dans les centres de données virtualisés :

Il introduit également plusieurs améliorations de sécurité, telles que le cryptage de bout en bout et un nouvel algorithme de signature basé sur AES . [44] [45]

PME 3.0.2

SMB 3.0.2 (connu sous le nom de 3.02 à l'époque) a été introduit avec Windows 8.1 et Windows Server 2012 R2 ; [46] [47] dans ces versions et les versions ultérieures, la version 1 antérieure de SMB peut être désactivée en option pour augmenter la sécurité. [48] ​​[49]

PME 3.1.1

SMB 3.1.1 a été introduit avec Windows 10 et Windows Server 2016 . [50] Cette version prend en charge le cryptage AES-128 GCM en plus du cryptage AES-128 CCM ajouté dans SMB3, et implémente le contrôle d'intégrité de pré-authentification à l'aide du hachage SHA-512 . SMB 3.1.1 rend également obligatoire la négociation sécurisée lors de la connexion à des clients utilisant SMB 2.x et versions ultérieures. [ citation nécessaire ]

Spécifications

Les spécifications du SMB sont propriétaires et ont été initialement fermées, obligeant ainsi d'autres fournisseurs et projets à rétroconcevoir le protocole pour interagir avec lui. Le protocole SMB 1.0 a finalement été publié quelque temps après sa rétro-ingénierie, tandis que le protocole SMB 2.0 a été mis à disposition par le centre de développement Open Specifications de Microsoft dès le départ. [51]

Implémentations tierces

Samba

En 1991, Andrew Tridgell a commencé le développement de Samba, une réimplémentation de logiciel libre (utilisant l'ingénierie inverse ) du protocole de réseau SMB/CIFS pour les systèmes de type Unix, initialement pour implémenter un serveur SMB pour permettre aux clients PC exécutant le DEC Pathworks client pour accéder aux fichiers sur les machines SunOS . [17] [52] En raison de l'importance du protocole SMB dans l'interaction avec la plate-forme Microsoft Windows répandue , Samba est devenu une implémentation logicielle gratuite populaire d'un client et d'un serveur SMB compatibles pour permettre aux systèmes d'exploitation non Windows, tels que Unix-likesystèmes d'exploitation, pour interagir avec Windows.

Depuis la version 3 (2003), Samba fournit des services de fichiers et d'impression pour les clients Microsoft Windows et peut s'intégrer à un domaine de serveur Windows NT 4.0 , soit en tant que contrôleur de domaine principal (PDC), soit en tant que membre de domaine. Les installations Samba4 peuvent agir en tant que contrôleur de domaine Active Directory ou serveur membre, aux niveaux fonctionnels du domaine et de la forêt Windows 2008 . [53]

Les gestionnaires de packages des distributions Linux peuvent rechercher le package cifs-utils . Le paquet provient des responsables de Samba.

Netsmb

NSMB (Netsmb et SMBFS) est une famille d'implémentations client et serveur SMB dans le noyau [54] dans les systèmes d'exploitation BSD. Il a d'abord été contribué à FreeBSD 4.4 par Boris Popov, et se trouve maintenant dans un large éventail d'autres systèmes BSD, y compris NetBSD et macOS . [55] Les implémentations ont divergé considérablement depuis. [56]

La version macOS de NSMB se distingue par son schéma désormais courant de représentation des liens symboliques. Ce format "Minshall-French" affiche les liens symboliques sous forme de fichiers texte avec une .symlinkextension et un Xsym\nnombre magique, toujours de 1067 octets. Ce format est également utilisé pour stocker des liens symboliques sur des serveurs SMB naïfs ou des systèmes de fichiers non pris en charge. Samba prend en charge ce format avec une mfsymlinkoption. [57] Docker sur Windows semble également l'utiliser. [ citation nécessaire ]

NQ

NQ est une famille d'implémentations de clients et de serveurs SMB portables développées par Visuality Systems , une société basée en Israël créée en 1998 par Sam Widerman, ancien PDG de Siemens Data Communications. La famille NQ comprend une pile SMB intégrée (écrite en C), un client SMB Java pur et une implémentation de serveur SMB de stockage. Toutes les solutions prennent en charge le dernier dialecte SMB 3.1.1. NQ pour Linux , NQ pour WinCE , iOS, Android, VxWorks et d'autres systèmes d'exploitation en temps réel sont tous pris en charge par la solution NQ configurable.

MoSMB

MoSMB est une implémentation SMB propriétaire pour Linux et d'autres systèmes de type Unix, développée par Ryussi Technologies. Il prend uniquement en charge SMB 2.x et SMB 3.x. [58]

Partage de fichiers Fusion par Tuxera

Fusion File Share de Tuxera est une implémentation de serveur SMB propriétaire développée par Tuxera qui peut être exécutée dans le noyau ou dans l'espace utilisateur . [59] Il prend en charge SMB 3.1.1 et toutes les versions précédentes, ainsi que des fonctionnalités SMB avancées telles que la mise à l'échelle de la disponibilité continue (gestionnaires persistants), RDMA (SMB Direct), le multicanal SMB, la compression transparente, le cliché instantané .

De même

De même, a développé une implémentation CIFS / SMB (versions 1.0, 2.0, 2.1 et NFS 3.0) en 2009 qui fournissait une plate-forme multiprotocole et consciente de l'identité pour l'accès réseau aux fichiers utilisés dans les produits de stockage OEM construits sur des appareils basés sur Linux / Unix. La plate-forme peut être utilisée pour les appareils NAS traditionnels, Cloud Gateway et Cloud Caching pour fournir un accès sécurisé aux fichiers sur un réseau. De même a été acheté par EMC Isilon en 2012.

CIFSD

CIFSD est une implémentation de serveur CIFS/SMB open source dans le noyau pour le noyau Linux. Il présente les avantages suivants par rapport aux implémentations dans l'espace utilisateur : il offre de meilleures performances et facilite l'implémentation de certaines fonctionnalités telles que SMB Direct. Il prend en charge SMB 3.1.1 et les versions précédentes.

Sécurité

Au fil des ans, il y a eu de nombreuses vulnérabilités de sécurité dans la mise en œuvre par Microsoft du protocole ou des composants sur lesquels il s'appuie directement. [60] [61] Les vulnérabilités de sécurité d'autres fournisseurs résident principalement dans un manque de prise en charge des protocoles d'authentification plus récents comme NTLMv2 et Kerberos en faveur de protocoles comme NTLMv1, LanMan ou des mots de passe en clair . Le suivi des attaques en temps réel [62] montre que SMB est l'un des principaux vecteurs d'attaque pour les tentatives d'intrusion, [63] par exemple l' attaque Sony Pictures de 2014 , [64] et l' attaque du rançongiciel WannaCryde 2017. [65] En 2020, deux vulnérabilités SMB à haute gravité ont été divulguées et baptisées SMBGhost ( CVE-2020-0796 ) et SMBleed ( CVE-2020-1206 ), qui, lorsqu'elles sont enchaînées, peuvent fournir RCE (Remote Code Execution) privilège à l'agresseur. [66]

Voir aussi

Références

  1. ^ "Présentation du protocole Microsoft SMB et du protocole CIFS" . Microsoft . 22 octobre 2009. Archivé de l'original le 2 août 2016 . Consulté le 10 avril 2019 .
  2. ^ un b "Concepts de Mise en Réseau de Lan Manager" . Soutien . Microsoft. Archivé de l'original le 30 décembre 2012 . Consulté le 18 septembre 2014 .
  3. ^ un bc "Système de fichiers Internet commun " . Présentation technique des services Web et d'application de Windows 2000 . Microsoft. 18 juillet 2012 – via Microsoft Docs .
  4. ^ Coulter, David; Satran, Michel ; Batchelor, Drew (8 janvier 2021). " Présentation du protocole Microsoft SMB et du protocole CIFS " . Développement d'applications Windows . Microsoft – via Microsoft Docs .
  5. ^ un b Voir:
  6. ^ "Vue d'ensemble de la signature du bloc de messages du serveur" . Dépannage de Windows Server . Microsoft . 24 novembre 2021 – via Microsoft Docs .
  7. ^ un b Johansson, Jesper M. (20 mai 2005). "Comment se tirer une balle dans le pied avec sécurité, partie 1" . Conseils de sécurité . Microsoft – via Microsoft Docs . Cet article traite [...] de la signature des messages Server Message Block (SMB).
  8. ^ Barreto, José (1er décembre 2010). "Les bases de la signature SMB (couvrant à la fois SMB1 et SMB2)" . Archives du blog de José Barreto . Microsoft . Archivé de l'original le 2 décembre 2012 - via Microsoft Docs . Ce mécanisme de sécurité dans le protocole SMB permet d'éviter des problèmes tels que la falsification de paquets et les attaques "man in the middle". [...] La signature SMB est disponible dans toutes les versions actuellement prises en charge de Windows, mais elle n'est activée par défaut que sur les contrôleurs de domaine. Ceci est recommandé pour les contrôleurs de domaine car SMB est le protocole utilisé par les clients pour télécharger les informations de stratégie de groupe. La signature SMB permet de s'assurer que le client reçoit une véritable stratégie de groupe.
  9. ^ "MSKB887429 : Vue d'ensemble de la signature du bloc de messages du serveur" . Microsoft . 30 novembre 2007. Archivé de l'original le 20 novembre 2010 . Consulté le 24 octobre 2012 . Par défaut, la signature SMB est requise pour les sessions SMB entrantes sur les contrôleurs de domaine Windows Server 2003.
  10. ^ "Serrures opportunistes" . Microsoft. 31 mai 2018 . Consulté le 19 août 2021 .
  11. ^ "Tout sur le verrouillage opportuniste" . Sphère informatique . 2014 . Consulté le 19 août 2021 .
  12. ^ un bcde José Barreto ( 9 décembre 2008). "SMB2, une refonte complète du protocole principal de fichiers à distance pour Windows" . Blogs sur les serveurs et la gestion de Microsoft . Archivé de l'original le 12 janvier 2013 . Consulté le 1er novembre 2009 .
  13. ^ Neil Carpenter (26 octobre 2004). "Performances SMB/CIFS sur les liaisons WAN" . Microsoft . Archivé de l'original le 13 février 2020 . Consulté le 13 février 2020 .
  14. ^ "Quoi de neuf dans SMB dans Windows Server" . Microsoft . Archivé de l'original le 11 février 2017 . Récupéré le 6 février 2017 .
  15. ^ Mark Rabinovich, Igor Gokhman. "Techniques d'accélération CIFS" (PDF) . Conférence des développeurs de stockage, SNIA, Santa Clara 2009 . Consulté le 6 juillet 2020 .
  16. ^ Mark Rabinovich. "Accélérer SMB2" (PDF) . Conférence des développeurs de stockage, SNIA, Santa Clara 2011 . Consulté le 6 juillet 2020 .
  17. ^ un bc Tridgell , Andrew . "Mythes sur la samba" . Archivé de l'original le 20 octobre 2017 . Consulté le 3 janvier 2016 .
  18. ^ Christophe Hertel (1999). « SMB : le protocole de bloc de messages du serveur » . Archivé de l'original le 10 mars 2010 . Consulté le 1er novembre 2009 .
  19. ^ "Description de Microsoft Windows Encryption Pack 1" . Microsoft . 1er novembre 2006. Archivé de l'original le 2 octobre 2009 . Consulté le 1er novembre 2009 .
  20. ^ "Décret exécutif américain 13026" (PDF) . Gouvernement des États-Unis . 1996. Archivé (PDF) de l'original le 10 octobre 2009 . Consulté le 1er novembre 2009 .
  21. ^ un b "Hébergement direct de SMB sur TCP/IP" . Microsoft . 11 octobre 2007. Archivé de l'original le 26 mars 2011 . Consulté le 1er novembre 2009 .
  22. ^ Kyttle, Ralph (13 mai 2017). "SMB1 - Auditer l'utilisation active à l'aide de l'analyseur de messages" . MicrosoftTechNet . Microsoft. Archivé de l'original le 28 mars 2019 . Récupéré le 28 mars 2019 .
  23. ^ "La dépréciation de SMB1 - Vous devriez prévoir de vous débarrasser de cet ancien dialecte SMB - Blog de Jose Barreto" . blogs.technet.microsoft.com . Archivé de l'original le 21 mai 2017 . Récupéré le 09/10/2019 .
  24. ^ "SMBv1 n'est pas installé par défaut dans Windows 10 Fall Creators Update et Windows Server, version 1709 et versions ultérieures" . support.microsoft.com . Archivé de l'original le 10 octobre 2019 . Récupéré le 09/10/2019 .
  25. ^ "WebNFS - Présentation technique" . Archivé de l'original le 18/05/2007.
  26. ^ Navjot Virk et Prashanth Prahalad (10 mars 2006). "Quoi de neuf en SMB dans Windows Vista" . Vérifiez vos Dsks . Microsoft . Archivé de l'original le 5 mai 2006 . Récupéré le 1er mai 2006 .
  27. ^ Versions 2 et 3 du protocole Server Message Block (SMB) . Protocoles Windows. Ouvrez les spécifications (rapport technique). Microsoft Docs . Microsoft . MS-SMB2 . Récupéré le 29/11/2020 .
  28. ^ "Samba 3.5.0 disponible en téléchargement" . Archivé de l'original le 24 juillet 2011 . Consulté le 8 juillet 2011 .
  29. ^ "Samba 3.6.0 disponible en téléchargement" . Archivé de l'original le 24 septembre 2011 . Consulté le 10 août 2011 .
  30. ^ " http://www.ietf.org/rfc/rfc3010.txt "
  31. ^ un b Eran, Daniel (11 juin 2013). "Apple passe du partage de fichiers AFP à SMB2 dans OS X 10.9 Mavericks" . Appleinsider.com. Archivé de l'original le 12 février 2017 . Consulté le 12 janvier 2014 .
  32. ^ Vaughan, Steven J. (28 octobre 2013). "Problème et correctifs SMB2 de Mavericks" . ZDNet. Archivé de l'original le 5 janvier 2014 . Consulté le 12 janvier 2014 .
  33. ^ MacParc. « 10.9 : Basculez la pile SMB pour utiliser SMB1 par défaut » . Astuces Mac OS X . macworld.com. Archivé de l'original le 12 janvier 2014 . Consulté le 12 janvier 2014 .
  34. ^ Topher Kessler (23 mars 2011). "Dites adios à Samba sous OS X" . CNET. Archivé de l'original le 15 janvier 2014 . Consulté le 12 janvier 2014 .
  35. ^ Thom Holwerda (26 mars 2011). "Apple abandonne SAMBA en faveur du remplacement local" . Archivé de l'original le 2 novembre 2013 . Consulté le 12 janvier 2014 .
  36. ^ "Linux 3.7 - Débutants du noyau Linux" . Archivé de l'original le 11 septembre 2016 . Consulté le 4 septembre 2016 .
  37. ^ "Mise en œuvre d'une solution de centralisation des données de l'utilisateur final" . Microsoft . 21 octobre 2009. p. 10–11. Archivé de l'original le 6 septembre 2010 . Consulté le 2 novembre 2009 .
  38. ^ un bc Jeffrey Snover (19 avril 2012). "SMB 2.2 est maintenant SMB 3.0" . Blog Windows Server . Consulté le 6 juillet 2020 .
  39. ^ Communications Chelsio. « 40G PME directe » . Archivé de l'original le 7 septembre 2013 . Consulté le 18 juin 2013 .
  40. ^ José Barreto (19 octobre 2012). "Tutoriel SNIA sur le protocole SMB" (PDF) . Association de l'industrie des réseaux de stockage . Archivé (PDF) de l'original le 3 juin 2013 . Consulté le 28 novembre 2012 .
  41. ^ Thomas Pfenning. "L'avenir des protocoles de fichiers : SMB 2.2 dans le centre de données" (PDF) . Archivé de l'original (PDF) le 2012-07-20.
  42. ^ Joergensen, Claus (2012-06-07). "SMB Transparent Failover - rendre les partages de fichiers disponibles en permanence" . MicrosoftTechNet . Archivé de l'original le 11 janvier 2019 . Consulté le 1er février 2017 .
  43. ^ Savill, John (2012-08-21). "Nouvelles façons d'activer la haute disponibilité pour les partages de fichiers" . Professionnel de l'informatique Windows . Archivé de l'original le 27 novembre 2016 . Consulté le 1er février 2017 .
  44. ^ "Améliorations de sécurité SMB" . Technet de Microsoft. 15 janvier 2014. Archivé de l'original le 9 octobre 2014 . Consulté le 18 juin 2014 .
  45. ^ José Barreto (5 mai 2013). "Liens mis à jour sur le serveur de fichiers Windows Server 2012 et SMB 3.0" . Blogs Microsoft TechNet sur les serveurs et la gestion. Archivé de l'original le 3 août 2016 . Consulté le 14 août 2016 .
  46. ^ José Barreto (7 juillet 2014). "Liens mis à jour sur le serveur de fichiers Windows Server 2012 R2 et SMB 3.02" . Blogs Microsoft TechNet sur les serveurs et la gestion. Archivé de l'original le 26 août 2016 . Consulté le 14 août 2016 .
  47. ^ José Barreto (12 décembre 2013). "Conférence des développeurs de stockage - Les diapositives SDC 2013 sont désormais accessibles au public. Voici les liens vers les diapositives Microsoft…" . Blogs Microsoft TechNet sur les serveurs et la gestion. Archivé de l'original le 26 août 2016 . Consulté le 14 août 2016 .
  48. ^ Eric Geier (5 décembre 2013). "WindowsNetworking.com : Améliorations des mises à jour de protocole SMB 3.0 et 3.02" . WindowsNetworking.com . Archivé de l'original le 9 avril 2015 . Consulté le 6 avril 2015 .
  49. ^ José Barreto (5 mai 2015). "Nouveautés de SMB 3.1.1 dans l'aperçu technique 2 de Windows Server 2016" . Blogs Microsoft TechNet sur les serveurs et la gestion. Archivé de l'original le 8 octobre 2016 . Consulté le 14 août 2016 .
  50. ^ "Protocoles Windows" . Archivé de l'original le 26 septembre 2009 . Consulté le 13 octobre 2009 .
  51. ^ Tridgell, Andrew (27 juin 1997). "Un peu d'histoire et un peu de plaisir" . Archivé de l'original le 17 juillet 2011 . Consulté le 26 juillet 2011 .
  52. ^ "Samba 4 niveaux fonctionnels" . 25 février 2011. Archivé de l'original le 29 juillet 2014 . Consulté le 12 janvier 2014 .
  53. ^ "SMB (Server Message Block): définitions, tâches et applications" . Guide numérique IONOS . Récupéré le 27/04/2022 .
  54. ^ "netsmb(4)" . Pages de manuel de NetBSD 8.0 . Récupéré le 5 janvier 2020 .
  55. ^ nbsd.conf(5)  -  Manuel des formats de fichiers FreeBSD .  – Manuel des formats de fichiers Darwin et macOS.nbsd.conf(5)
  56. ^ "Extensions UNIX" . SambaWiki . Archivé de l'original le 12 juin 2020 . Consulté le 15 mars 2020 .
  57. ^ Dr Sunu Ingénieur. "Création d'un serveur de protocole SMB hautement évolutif et performant" (PDF) . Archivé (PDF) de l'original le 27 septembre 2016 . Consulté le 25 septembre 2016 .
  58. ^ "Microsoft et Tuxera renforcent leur partenariat via Tuxera SMB Server" . Microsoft . Centre de nouvelles Microsoft. 14 septembre 2016. Archivé de l'original le 17 novembre 2016 . Récupéré le 6 février 2017 .
  59. ^ "MS02-070 : une faille dans la signature SMB peut permettre à la stratégie de groupe d'être modifiée" . Microsoft . 1er décembre 2007. Archivé de l'original le 8 octobre 2009 . Consulté le 1er novembre 2009 .
  60. ^ "MS09-001 : des vulnérabilités dans SMB pourraient permettre l'exécution de code à distance" . Microsoft . 13 janvier 2009. Archivé de l'original le 5 octobre 2009 . Consulté le 1er novembre 2009 .,
  61. ^ "Sicherheitstacho.eu" . Deutsche Telekom . 7 mars 2013. Archivé de l'original le 8 mars 2013 . Consulté le 7 mars 2013 .
  62. ^ "Alerte (TA14-353A) Logiciel malveillant destructeur ciblé" . US-CERT . Archivé de l'original le 20 décembre 2014 . Consulté le 20 décembre 2014 .
  63. ^ "Les pirates informatiques de Sony ont utilisé l'outil de ver du bloc de messages du serveur (SMB)" . Archivé de l'original le 20 décembre 2014 . Consulté le 20 décembre 2014 .
  64. ^ "L'attaque de WannaCry Ransomware frappe les victimes avec Microsoft SMB Exploit" . eWeek . Récupéré le 13 mai 2017 .
  65. ^ "SMBleedingGhost Writeup: Chaining SMBleed (CVE-2020-1206) avec SMBGhost" . Blog ZecOps . 2020-06-09 . Récupéré le 19/11/2020 .

Lectures complémentaires

Spécifications SMB

  • "[MS-CIFS] : protocole de système de fichiers Internet commun (CIFS)" . Ouvrez les Spécifications . Microsoft . 30 octobre 2020.
    • Spécifie le protocole CIFS (Common Internet File System), un protocole multiplateforme indépendant du transport qui fournit un mécanisme permettant aux systèmes clients d'utiliser les services de fichiers et d'impression mis à disposition par les systèmes serveurs sur un réseau
  • "[MS-SMB] : protocole de bloc de message serveur (SMB)" . Ouvrez les Spécifications . Microsoft . 25 juin 2021.
    • Spécifie le protocole SMB (Server Message Block), qui définit les extensions de la spécification CIFS (Common Internet File System) existante qui ont été implémentées par Microsoft depuis la publication de la spécification CIFS.
  • "[MS-SMB2] : versions 2 et 3 du protocole Server Message Block (SMB)" . Ouvrez les Spécifications . Microsoft . 14 décembre 2021.
    • Spécifie les versions 2 et 3 du protocole SMB (Server Message Block), qui prennent en charge le partage des fichiers et des ressources d'impression entre les machines et étendent les concepts du protocole Server Message Block.
  • "[MS-SMBD] : protocole de transport d'accès direct à la mémoire à distance (RDMA) SMB2" . Ouvrez les Spécifications . Microsoft . 25 juin 2021.
    • Spécifie le protocole de transport SMB2 Remote Direct Memory Access (RDMA), un wrapper pour le protocole SMB2 existant qui permet aux paquets SMB2 d'être livrés via des transports compatibles RDMA tels que iWARP ou Infiniband tout en utilisant les capacités de placement direct des données (DDP) de ces transports . Les avantages incluent une surcharge CPU réduite, une latence plus faible et un débit amélioré.

Divers

Liens externes