SMB (Server Message Block): definizione, compiti e ambiti di applicazione

Le reti informatiche sono ormai diventate una parte scontata della nostra quotidianità. Che sia a casa o in ufficio, la connessione di tutti i dispositivi tecnici in una rete locale comune (come alternativa offline a Internet) è di solito una mera formalità. Tramite una connessione LAN o WLAN, i partecipanti di una rete possono quindi scambiare facilmente file, amministrare server e utilizzare dispositivi di rete tipici come stampanti o router. Tuttavia, affinché lacomunicazione tra i singoli elementi funzioni, è necessario seguire convenzioni chiare fornite sotto forma di protocolli. Uno dei protocolli di rete più importanti e longevi è il protocollo SMB, che esamineremo nel dettaglio in questo articolo.

Che cos’è l’SMB (Server Message Block)

L’SMB (Server Message Block) è un protocollo client-server che regola l’accesso a file e interedirectory, nonché ad altre risorse di rete quali stampanti, router e interfacce condivise con la rete. Il protocollo SMB può, inoltre, gestire lo scambio d’informazioni tra i diversi processi di un sistema (indicato anche come comunicazione interprocesso).

Il protocollo è stato sviluppato dal gruppo IT IBM nel 1983 e nel corso degli anni ne sono state pubblicate varie versioni e implementazioni. L’SMB è diventato disponibile per un pubblico più ampio per la prima volta nel quadro del LAN Manager del sistema operativo di rete OS/2 e poi tramite il suo successore LAN Server. Da allora, il protocollo è utilizzato principalmente nei sistemi operativi Windows ed è retrocompatibile con i suoi servizi di rete, consentendo ai dispositivi con edizioni più recenti di comunicare facilmente con i dispositivi che hanno una versione del sistema operativo Microsoft ormai superata. Il progetto di software libero Samba offre inoltre una soluzione che permette di utilizzare Server Message Block nelle distribuzioni Linux e Unix, permettendo la comunicazione cross-platform tramite SMB.

N.B.

Per l’implementazione del protocollo SMB in Windows NT 4.0, Microsoft ha utilizzato il nome Common Internet File System (CIFS), spesso utilizzato come sinonimo per la famiglia di protocolli SMB. Oggi, CIFS è comunemente indicato come la prima versione di SMB 1.0.

Come funziona l’SMB

Il protocollo Server Message Block consente al client di comunicare con altri partecipanti nella stessa rete per accedere a file o servizi condivisi su quella rete. Anche l’altro sistema deve aver implementato il protocollo di rete e ricevere ed elaborare la rispettiva richiesta client utilizzando un’applicazione server SMB. Tuttavia, entrambe le parti devono prima stabilire una connessione, motivo per cui si scambiano prima i relativi messaggi. Nelle reti IP, SMB utilizza il protocollo Transmission Control Protocol (TCP), che fornisce un handshake a tre vie traclient e server prima che venga stabilita una connessione. Il successivo trasporto dei dati è regolato anche dalle specifiche del protocollo TCP.

N.B.

Oggi, la porta TCP 445 è riservata per l’instaurazione della connessione e la trasmissione tramite TCP/SMB. La risoluzione degli indirizzi funziona tipicamente tramite il DNS (Domain Name System) o, in reti più piccole, tramite il protocollo Link Local Multicast Name Resolution (LLMNR).

Il protocollo SMB nel tempo: panoramica delle versioni

Come già accennato, dopo la prima versione di SMB del 1983, ci sono stati diversi aggiornamenti dello standard di rete che sono stati registrati in varie versioni di protocollo, da SMB 1.0 alla versione attuale SMB 3.1.1, che Microsoft ha introdotto insieme a Windows 10. Nelle sezioni seguenti riepiloghiamo le fasi più importanti dello sviluppo del protocollo Server Message Block.

SMB 1.0 (CIFS)

La prima versione del protocollo di comunicazione di rete è spesso equiparata al già citato Common Internet File System (CIFS). In linea di principio, tuttavia, quest’ultima rappresenta solo un aspetto parziale della prima versione del protocollo, in particolare per la sua implementazione nei dispositivi con Windows NT 4.0. In questa prima variante, la comunicazione avveniva ancora tramite l’interfaccia NetBIOS, le porte UDP 137 (risoluzione dei nomi) e 138 (trasmissione dei pacchetti) e la porta TCP 139 (impostazione della connessione e trasporto). A partire da Windows 2000, il sistema non dipendeva più da NetBIOS e il protocollo, da quel momento ufficialmente indicato come SMB 1.0, permise la connessione diretta tramite TCP (porta 445), mantenuta fino ad oggi.

SMB 2.0

La prima revisione importante di Server Message Block è stata rilasciata da Microsoft nel novembre 2006, insieme al sistema operativo Windows Vista. Anche se il protocollo, ora noto come SMB 2.0 o 2, è rimasto proprietario, la società di software ha anche rilasciato per la prima volta la relativa specifica per consentire ad altri sistemi di comunicare con quelli Windows. Le principali innovazioni della seconda versione del protocollo sono state le seguenti:

  • riduzione di comandi e sottocomandi da oltre un centinaio ad appena 19
  • prestazioni migliorate grazie alla nuova funzione code per le richieste SMB
  • supporto per i collegamenti simbolici (collegamenti a file o directory)
  • caching delle proprietà dei file
  • firma del messaggio migliorata (algoritmo HMAC SHA-256)
  • scalabilità migliorata con l’aumento del numero di client, condivisioni e file aperti contemporaneamente

La prima versione del protocollo è stata mantenuta per motivi di compatibilità, una misura che Microsoft ha adottato anche nelle versioni successive.

SMB 2.1

La versione 2.1 del protocollo SMB è strettamente correlata a Windows 7. La versione rivista della seconda edizione del protocollo è stata pubblicata insieme al sistema operativo nel 2007 e, oltre ad alcune piccole ottimizzazioni in termini di prestazioni, ha portato principalmente nuovi meccanismi di blocco per garantire un accesso più controllato ai file (lettura, scrittura, cancellazione, ecc.).

SMB 3.0

Nel 2012 è stato rilasciato Windows 8 e con esso anche la nuova versione di Server Message Block, inizialmente presentata come SMB 2.2, ma successivamente rinominata SMB 3.0. Anche questa revisione del protocollo mira a migliorare le prestazioni e la sicurezza delle connessioni SMB, in particolare nei data center virtualizzati. A questo scopo, sono decisive le seguenti caratteristiche:

  • accesso remoto grazie a SMB tramite RDMA (Remote Direct Memory Access)
  • funzione multicanale consente di stabilire più connessioni per sessione SMB
  • failover trasparente
  • crittografia end-to-end
N.B.

In Windows 8.1 è stato implementato SMB 3.0.2, la terza versione del protocollo che non presenta modifiche significative.

SMB 3.1.1

SMB 3.1.1 (rilasciato nel 2015 insieme a Windows 10) amplia la serie di protocolli con un controllo dell’integrità pre-autenticazione sulla base di valori hash SHA-512. La versione punta inoltre sulla crittografia AES-128 con il Galois/Counter Mode (GCM). Per tutti i dispositivi che comunicano con SMB 2.0 o superiore, SMB 3.1.1 richiede una connessione sicura.

Tabella delle versioni SMB

Versione SMB Supportato da Nuove caratteristiche
CIFS Windows NT 4.0 Comunicazione tramite interfaccia NetBIOS
SMB 1.0 Windows 2000 Connessione diretta tramite TCP
SMB 2.0 Windows Vista, Windows Server 2008, Samba 3.5 Vari aggiornamenti delle prestazioni, firma dei messaggi migliorata, caching delle proprietà dei file
SMB 2.1 Windows 7, Windows Server 2008 R2 Meccanismi di blocco
SMB 3.0 Windows 8, Windows Server 2012,Samba 4.0 Connessioni multicanale, crittografia end-to-end, accesso remoto
SMB 3.0.2 Windows 8.1,Windows Server 2012 R2  
SMB 3.1.1 Windows 10, Windows Server 2016, Samba 4.3 Verifica dell’integrità, crittografia AES-128 con Galois/Contatore Mode (GCM)

Aspetti di sicurezza da considerare quando si utilizza SMB

Nei suoi sistemi, Microsoft insiste da anni sul fatto che le versioni meno recenti di Server Message Block sono supportate anche da sistemi operativi più nuovi per garantire la comunicazione tra le diverse generazioni di dispositivi. Tuttavia, garantire la compatibilità è sempre stato associato a un aumento del rischio per la sicurezza, dal momento che SMB 1.0 presenta diversi punti deboli rispetto ai protocolli successivi, che rendono il proprio computer vulnerabile, ad esempio, agli attacchi DoS.

Soprattutto le reti presentano un elevato rischio di attacco basato sul protocollo SMB: per motivi di compatibilità, spesso sono attivate tutte le versioni SMB, ad esempio perché richieste da stampanti collegate o altri dispositivi di rete. Pertanto, anche se non si utilizza la vecchia versione del protocollo, gli aggressori hanno gioco facile, in quanto declassano la comunicazione a SMB 1.0 per attaccare il sistema desiderato senza grandi ostacoli. Con Windows 10, Microsoft ha infine deciso di non supportare attivamente la prima versione o di disinstallarla automaticamente quando non è in uso.

Consiglio

Nel nostro articolo su come attivare e disattivare i protocolli SMB vi forniamo le istruzioni per disattivare (e riattivare, se necessario) il Server Message Block o specifiche versioni del protocollo SMB in Windows 10.

Ambiti di applicazione di Server Message Block

I principali scenari d’implementazione di SMB sono già stati discussi sopra: lo scopo primario del protocollo è l’accesso ai file system, motivo per cui il vantaggio principale risiede nelle connessioni client-server tra computer e file server. Tuttavia, considerando che altre sezioni del protocollo mirano chiaramente alla comunicazione interprocesso, anche il semplice scambio di datitra due dispositivi o due processi fa parte del suo profilo applicativo.

Oltre alle implementazioni di Server Message Block nelle varie versioni di Windows, il protocollo è stato integrato in numerosi altri progetti software nel corso degli anni al fine di rendere disponibili le funzionalità di comunicazione al di fuori della famiglia Microsoft. Le implementazioni SMB più note sono le seguenti:

  • Samba: il progetto software Samba è probabilmente l’esempio più noto d’implementazione di SMB al di fuori dell’ambiente Windows. Fin dal 1991, il programmatore Andrew Tridgell ha iniziato a sviluppare il software libero che consente la comunicazione tramite il Server Message Block sui sistemi Unix/Linux.
  • Netsmb: Netsmb sono implementazioni di client e server SMB direttamente nel kernel dei sistemi operativi BSD. Rilasciati per la prima volta per OS FreeBSD 4.4, sono ora disponibili per una varietà di sistemi BSD, tra cui NetBSD e macOS.
  • YNQ: YNQ (già NQ) è una libreria SMB che implementa la tecnologia Server Message Block in sistemi embedded senza Windows, consentendo l’interoperabilità con dispositivi basati su Windows. YNQ è sviluppato dalla società di software israeliana Visuality Systems Ltd. dal 1998.
  • FreeNAS: la soluzione open source FreeNAS è ideale per chi desidera eseguire il proprio server NAS che deve supportare il protocollo SMB. Il software NAS è basato su FreeBSD e sul file system OpenZFS.
  • ConnectedNAS: il software ConnectedNAS, sviluppato da Connected Way, funge sia da server sia da client SMB per dispositivi Android. Gli utenti dell’app a pagamento possono facilmente scambiare dati tra il dispositivo mobile e altri dispositivi SMB, privati o aziendali. Per motivi di sicurezza, ConnectedNAS supporta SMB solo dalla versione 2 in poi.

Prepara il tuo business per il successo online
Abbiamo ridotto ulteriormente i prezzi dei nostri strumenti pensati
per incrementare le tue vendite di fine anno.
Risparmia fino al 75%