SMB (Server Message Block) è un pro­to­col­lo di rete che consente l’accesso a file, stampanti e altre risorse in una rete locale. Viene uti­liz­za­to prin­ci­pal­men­te in ambienti Windows per rea­liz­za­re con­di­vi­sio­ni di file e servizi tra computer.

IONOS Cloud Object Storage
Ar­chi­via­zio­ne sicura e a prezzi van­tag­gio­si

Archivia i tuoi dati in tutta sicurezza sui nostri server, e pro­teg­gi­li dagli accessi non au­to­riz­za­ti.

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

L’SMB (Server Message Block) è un pro­to­col­lo client-server che regola l’accesso a file e intere directory, nonché ad altre risorse di rete quali stampanti, router e in­ter­fac­ce condivise con la rete. Il pro­to­col­lo SMB può, inoltre, gestire lo scambio di in­for­ma­zio­ni tra i diversi processi di un sistema (indicato anche come co­mu­ni­ca­zio­ne in­ter­pro­ces­so).

Il pro­to­col­lo è stato svi­lup­pa­to dal gruppo IT IBM nel 1983 e nel corso degli anni ne sono state pub­bli­ca­te varie versioni e im­ple­men­ta­zio­ni. L’SMB è diventato di­spo­ni­bi­le 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 suc­ces­so­re LAN Server. Da allora, il pro­to­col­lo è uti­liz­za­to prin­ci­pal­men­te nei sistemi operativi Windows ed è re­tro­com­pa­ti­bi­le con i suoi servizi di rete, con­sen­ten­do ai di­spo­si­ti­vi con edizioni più recenti di co­mu­ni­ca­re fa­cil­men­te con i di­spo­si­ti­vi che hanno una versione del sistema operativo Microsoft ormai superata.

Il progetto di software libero Samba offre inoltre una soluzione che permette di uti­liz­za­re Server Message Block nelle di­stri­bu­zio­ni Linux e Unix, per­met­ten­do la co­mu­ni­ca­zio­ne mul­ti­piat­ta­for­ma tramite SMB.

N.B.

Per l’im­ple­men­ta­zio­ne del pro­to­col­lo SMB in Windows NT 4.0, Microsoft ha uti­liz­za­to il nome Common Internet File System (CIFS), spesso uti­liz­za­to come sinonimo per la famiglia di pro­to­col­li SMB. Oggi, CIFS è co­mu­ne­men­te indicato come la prima versione di SMB 1.0.

Come funziona l’SMB

Il pro­to­col­lo Server Message Block consente al client di co­mu­ni­ca­re con altri par­te­ci­pan­ti nella stessa rete per accedere a file o servizi condivisi su quella rete. Anche l’altro sistema deve aver im­ple­men­ta­to il pro­to­col­lo di rete e ricevere ed elaborare la ri­spet­ti­va richiesta client uti­liz­zan­do un’ap­pli­ca­zio­ne server SMB. Tuttavia, entrambe le parti devono prima stabilire una con­nes­sio­ne, motivo per cui si scambiano prima i relativi messaggi.

Nelle reti IP, SMB utilizza il pro­to­col­lo Tran­smis­sion Control Protocol (TCP), che fornisce un handshake a tre vie tra client e server prima che venga stabilita una con­nes­sio­ne. Il suc­ces­si­vo trasporto dei dati è regolato anche dalle spe­ci­fi­che del pro­to­col­lo TCP.

N.B.

Oggi, la porta TCP 445 è riservata per l’in­stau­ra­zio­ne della con­nes­sio­ne e la tra­smis­sio­ne tramite TCP/SMB. La ri­so­lu­zio­ne degli indirizzi funziona ti­pi­ca­men­te tramite il DNS (Domain Name System) o, in reti più piccole, tramite il pro­to­col­lo Link Local Multicast Name Re­so­lu­tion (LLMNR).

Immagine: Server Message Block: illustrazione dello scambio di messaggi
Dopo aver stabilito una con­nes­sio­ne tramite TCP, il client SMB e il server SMB possono scam­biar­si messaggi per ri­chie­de­re e fornire file o servizi sulla rete.

Il pro­to­col­lo SMB nel tempo: pa­no­ra­mi­ca delle versioni

Come già accennato, dopo la prima versione di SMB del 1983, ci sono stati diversi ag­gior­na­men­ti dello standard di rete che sono stati re­gi­stra­ti in varie versioni di pro­to­col­lo, da SMB 1.0 alla versione attuale SMB 3.1.1, che Microsoft ha in­tro­dot­to insieme a Windows 10. Nei paragrafi seguenti rie­pi­lo­ghia­mo le fasi più im­por­tan­ti dello sviluppo del pro­to­col­lo Server Message Block.

SMB 1.0 (CIFS)

La prima versione del pro­to­col­lo di co­mu­ni­ca­zio­ne di rete è spesso equi­pa­ra­ta al già citato Common Internet File System (CIFS). In linea di principio, tuttavia, quest’ultima rap­pre­sen­ta solo un aspetto parziale della prima versione del pro­to­col­lo, in par­ti­co­la­re per la sua im­ple­men­ta­zio­ne nei di­spo­si­ti­vi con Windows NT 4.0. In questa prima variante, la co­mu­ni­ca­zio­ne avveniva ancora tramite l’in­ter­fac­cia NetBIOS, le porte UDP 137 (ri­so­lu­zio­ne dei nomi) e 138 (tra­smis­sio­ne dei pacchetti) e la porta TCP 139 (im­po­sta­zio­ne della con­nes­sio­ne e trasporto). A partire da Windows 2000, il sistema non dipendeva più da NetBIOS e il pro­to­col­lo, da quel momento uf­fi­cial­men­te indicato come SMB 1.0, permise la con­nes­sio­ne diretta tramite TCP (porta 445), mantenuta fino ad oggi.

SMB 2.0

La prima revisione im­por­tan­te di Server Message Block è stata ri­la­scia­ta da Microsoft nel novembre 2006, insieme al sistema operativo Windows Vista. Anche se il pro­to­col­lo, ora noto come SMB 2.0 o 2, è rimasto pro­prie­ta­rio, la società di software ha anche ri­la­scia­to per la prima volta la relativa specifica per con­sen­ti­re ad altri sistemi di co­mu­ni­ca­re con quelli Windows. Le prin­ci­pa­li in­no­va­zio­ni della seconda versione del pro­to­col­lo sono state le seguenti:

  • Riduzione di comandi e sot­to­co­man­di da oltre un centinaio ad appena 19
  • Pre­sta­zio­ni mi­glio­ra­te grazie alla nuova funzione di code per le richieste SMB
  • Supporto per i col­le­ga­men­ti simbolici (col­le­ga­men­ti a file o directory)
  • Caching delle proprietà dei file
  • Firma del messaggio mi­glio­ra­ta (algoritmo HMAC SHA-256)
  • Sca­la­bi­li­tà mi­glio­ra­ta con l’aumento del numero di client, con­di­vi­sio­ni e file aperti con­tem­po­ra­nea­men­te

La prima versione del pro­to­col­lo è stata mantenuta per motivi di com­pa­ti­bi­li­tà, una misura che Microsoft ha adottato anche nelle versioni suc­ces­si­ve.

SMB 2.1

La versione 2.1 del pro­to­col­lo SMB è stret­ta­men­te correlata a Windows 7. La versione rivista della seconda edizione del pro­to­col­lo è stata pub­bli­ca­ta insieme al sistema operativo nel 2007 e, oltre ad alcune piccole ot­ti­miz­za­zio­ni in termini di pre­sta­zio­ni, ha portato prin­ci­pal­men­te nuovi mec­ca­ni­smi di blocco per garantire un accesso più con­trol­la­to ai file (lettura, scrittura, can­cel­la­zio­ne, ecc.).

SMB 3.0

Nel 2012 è stato ri­la­scia­to Windows 8 e con esso anche la nuova versione di Server Message Block, ini­zial­men­te pre­sen­ta­ta come SMB 2.2, ma suc­ces­si­va­men­te ri­no­mi­na­ta SMB 3.0. Anche questa revisione del pro­to­col­lo mira a mi­glio­ra­re le pre­sta­zio­ni e la sicurezza delle con­nes­sio­ni SMB, in par­ti­co­la­re nei data center vir­tua­liz­za­ti. A questo scopo, sono decisive le seguenti ca­rat­te­ri­sti­che:

  • Accesso remoto grazie a SMB tramite RDMA (Remote Direct Memory Access)
  • Funzione mul­ti­ca­na­le consente di stabilire più con­nes­sio­ni per sessione SMB
  • Failover tra­spa­ren­te
  • Crit­to­gra­fia end-to-end
N.B.

In Windows 8.1 è stato im­ple­men­ta­to SMB 3.0.2, la terza versione del pro­to­col­lo che non presenta modifiche si­gni­fi­ca­ti­ve.

SMB 3.1.1

SMB 3.1.1 (ri­la­scia­to nel 2015 insieme a Windows 10) amplia la serie di pro­to­col­li con un controllo dell’integrità pre-au­ten­ti­ca­zio­ne sulla base di valori hash SHA-512. La versione punta, inoltre, sulla crit­to­gra­fia AES-128 con il Galois/Counter Mode (GCM). Per tutti i di­spo­si­ti­vi che co­mu­ni­ca­no con SMB 2.0 o superiore, SMB 3.1.1 richiede una con­nes­sio­ne sicura.

Tabella delle versioni SMB

Versione SMB Sup­por­ta­to da Nuove ca­rat­te­ri­sti­che
CIFS Windows NT 4.0 Co­mu­ni­ca­zio­ne tramite in­ter­fac­cia NetBIOS
SMB 1.0 Windows 2000 Con­nes­sio­ne diretta tramite TCP
SMB 2.0 Windows Vista, Windows Server 2008, Samba 3.5 Vari ag­gior­na­men­ti delle pre­sta­zio­ni, firma dei messaggi mi­glio­ra­ta, caching delle proprietà dei file
SMB 2.1 Windows 7, Windows Server 2008 R2 Mec­ca­ni­smi di blocco
SMB 3.0 Windows 8, Windows Server 2012,Samba 4.0 Con­nes­sio­ni mul­ti­ca­na­le, crit­to­gra­fia end-to-end, accesso remoto
SMB 3.0.2 Windows 8.1,Windows Server 2012 R2 Nessuna novità di rilievo
SMB 3.1.1 Windows 10, Windows Server 2016, Samba 4.3 Verifica dell’integrità, crit­to­gra­fia AES-128 con Galois/Contatore Mode (GCM)

Aspetti di sicurezza da con­si­de­ra­re quando si utilizza SMB

Nei suoi sistemi, Microsoft insiste da anni sul fatto che le versioni meno recenti di Server Message Block sono sup­por­ta­te anche da sistemi operativi più nuovi per garantire la co­mu­ni­ca­zio­ne tra le diverse ge­ne­ra­zio­ni di di­spo­si­ti­vi. Tuttavia, garantire la com­pa­ti­bi­li­tà è sempre stato associato a un aumento del rischio per la sicurezza, dal momento che SMB 1.0 presenta diversi punti deboli rispetto ai pro­to­col­li suc­ces­si­vi, che rendono il proprio computer vul­ne­ra­bi­le, ad esempio, agli attacchi DoS.

So­prat­tut­to le reti pre­sen­ta­no un elevato rischio di attacco basato sul pro­to­col­lo SMB: per motivi di com­pa­ti­bi­li­tà, spesso sono attivate tutte le versioni SMB, ad esempio perché richieste da stampanti collegate o altri di­spo­si­ti­vi di rete. Pertanto, anche se non si utilizza la vecchia versione del pro­to­col­lo, gli ag­gres­so­ri hanno gioco facile, in quanto de­clas­sa­no la co­mu­ni­ca­zio­ne a SMB 1.0 per attaccare il sistema de­si­de­ra­to senza grandi ostacoli. A partire da Windows 10, Microsoft ha infine deciso di non sup­por­ta­re at­ti­va­men­te la prima versione o di di­sin­stal­lar­la au­to­ma­ti­ca­men­te quando non è in uso. Anche su macOS, SMB nella versione 1.0 è di­sa­bi­li­ta­to a partire da macOS Catalina (2019).

Ambiti di ap­pli­ca­zio­ne di Server Message Block

I prin­ci­pa­li scenari di im­ple­men­ta­zio­ne di SMB sono già stati discussi sopra: lo scopo primario del pro­to­col­lo è l’accesso ai file system, motivo per cui il vantaggio prin­ci­pa­le risiede nelle con­nes­sio­ni client-server tra computer e file server. Tuttavia, con­si­de­ran­do che altre sezioni del pro­to­col­lo mirano chia­ra­men­te alla co­mu­ni­ca­zio­ne in­ter­pro­ces­so, anche il semplice scambio di dati tra due di­spo­si­ti­vi o due processi fa parte del suo profilo ap­pli­ca­ti­vo.

Oltre alle im­ple­men­ta­zio­ni di Server Message Block nelle varie versioni di Windows, il pro­to­col­lo è stato integrato in numerosi altri progetti software nel corso degli anni al fine di rendere di­spo­ni­bi­li le fun­zio­na­li­tà di co­mu­ni­ca­zio­ne al di fuori della famiglia Microsoft. Le im­ple­men­ta­zio­ni SMB più note sono le seguenti:

  • Samba: il progetto software Samba è pro­ba­bil­men­te l’esempio più noto di im­ple­men­ta­zio­ne di SMB al di fuori dell’ambiente Windows. Fin dal 1991, il pro­gram­ma­to­re Andrew Tridgell ha iniziato a svi­lup­pa­re il software libero che consente la co­mu­ni­ca­zio­ne tramite il Server Message Block sui sistemi Unix/Linux.
  • Netsmb: Netsmb sono im­ple­men­ta­zio­ni di client e server SMB di­ret­ta­men­te nel kernel dei sistemi operativi BSD. Ri­la­scia­ti per la prima volta per OS FreeBSD 4.4, sono ora di­spo­ni­bi­li per una varietà di sistemi BSD, tra cui NetBSD e macOS.
  • YNQ: YNQ (ex NQ) è una libreria SMB che im­ple­men­ta la tec­no­lo­gia Server Message Block in sistemi integrati senza Windows, con­sen­ten­do l’in­te­ro­pe­ra­bi­li­tà con di­spo­si­ti­vi Windows. YNQ è svi­lup­pa­to dalla società di software israe­lia­na Visuality Systems Ltd. dal 1998.
  • TrueNAS: la soluzione open source TrueNAS è adatta per chi desidera eseguire il proprio server NAS che deve sup­por­ta­re il pro­to­col­lo SMB. Il software NAS è basato su FreeBSD e sul file system OpenZFS.
  • Con­nec­ted­NAS: il software Con­nec­ted­NAS, svi­lup­pa­to da Connected Way, funge sia da server sia da client SMB per di­spo­si­ti­vi Android. Gli utenti dell’app a pagamento possono fa­cil­men­te scambiare dati tra il di­spo­si­ti­vo mobile e altri di­spo­si­ti­vi SMB, privati o aziendali. Per motivi di sicurezza, Con­nec­ted­NAS supporta SMB solo dalla versione 2 in poi.
Vai al menu prin­ci­pa­le