# Server Message Block (SMB)

Server Message Block (SMB) és un protocol de comunicació utilitzat principalment per ordinadors equipats amb Microsoft Windows que normalment s'utilitzen per compartir fitxers, impressores, ports sèrie i comunicacions diverses entre nodes d'una xarxa. La implementació SMB consta de dos serveis de Windows amb un nom vaga: "Server" (ID: LanmanServer) i "Workstation" (ID: LanmanWorkstation). Utilitza protocols NTLM o Kerberos per a l'autenticació dels usuaris. També proporciona un mecanisme de comunicació entre processos (IPC) autenticat.
SMB va ser desenvolupat originalment l'any 1983 per Barry A. Feigenbaum a IBM i tenia la intenció de proporcionar accés compartit a fitxers i impressores a través de nodes d'una xarxa de sistemes que executaven l'OS/2 d'IBM. El 1987, Microsoft i 3Com van implementar SMB a LAN Manager per a OS/2, moment en què SMB va utilitzar el servei NetBIOS a sobre del protocol NetBIOS Frames com a transport subjacent. Més tard, Microsoft va implementar SMB a Windows NT 3.1 i l'ha anat actualitzant des d'aleshores, adaptant-lo per funcionar amb transports subjacents més nous: TCP/IP i NetBT. SMB sobre QUIC es va introduir a Windows Server 2022.
El 1996, Microsoft va publicar una versió de SMB 1.0 amb modificacions menors sota el sobrenom del Common Internet File System (CIFS /sɪfs/). CIFS era compatible fins i tot amb la primera encarnació de SMB, inclosa la de LAN Manager. Admet enllaços simbòlics, enllaços durs i una mida de fitxer més gran, però cap de les funcions de SMB 2.0 i posteriors. La proposta de Microsoft, però, va seguir sent un esborrany d'Internet i mai va aconseguir l'estatus estàndard. Des de llavors, Microsoft ha deixat d'utilitzar el sobrenom CIFS, però continua desenvolupant SMB i posant a disposició del públic les especificacions posteriors. Samba és una reimplementació de programari lliure del protocol SMB i les extensions de Microsoft.

## Característiques

El bloc de missatges del servidor (SMB) permet compartir fitxers, compartir impressores, navegar per la xarxa i comunicar-se entre processos (mitjançant canalitzacions amb nom) a través d'una xarxa d'ordinadors. SMB serveix de base per a la implementació del sistema de fitxers distribuïts de Microsoft.
SMB es basa en els protocols TCP i IP per al transport. Aquesta combinació permet compartir fitxers a través de xarxes complexes i interconnectades, inclosa Internet pública. El component del servidor SMB utilitza el port TCP 445. SMB originalment funcionava amb NetBIOS mitjançant IEEE 802.2 - NetBIOS Frames o NBF - i sobre IPX/SPX, i més tard amb NetBIOS sobre TCP/IP (NetBT), però Microsoft ha deixat d'utilitzar aquests protocols. A NetBT, el component del servidor utilitza tres ports TCP o UDP : 137 (NETBIOS Name Service), 138 (NETBIOS Datagram Service) i 139 (NETBIOS Session Service).
A Microsoft Windows, dos serveis de Windows amb un nom vaga implementen SMB. El servei "Servidor" (ID: LanmanServer) s'encarrega de donar servei als recursos compartits. El servei "Workstation" (ID: LanmanWorkstation) manté el nom de l'ordinador i ajuda a accedir als recursos compartits en altres ordinadors. SMB utilitza el protocol Kerberos per autenticar usuaris contra Active Directory a les xarxes de domini de Windows. En xarxes d'igual a igual més senzilles, SMB utilitza el protocol NTLM.
Windows NT 4.0 SP3 i posteriors poden signar digitalment missatges SMB per evitar alguns atacs d'home-in-the-middle. La signatura SMB es pot configurar individualment per a connexions SMB entrants (pel servei "LanmanServer") i connexions SMB sortints (pel servei "LanmanWorkstation"). La configuració predeterminada per als controladors de domini de Windows que executen Windows Server 2003 i posteriors és no permetre connexions entrants sense signar. Per tant, les versions anteriors de Windows que no admeten la signatura SMB des del primer moment (inclòs Windows 9x) no es poden connectar a un controlador de domini de Windows Server 2003.

## Referències

* ↑ «Microsoft SMB Protocol and CIFS Protocol Overview» (en anglès). Microsoft, October 22, 2009. Arxivat de l'original el August 2, 2016. [Consulta: April 10, 2019].
* ↑ «Lan Manager Networking Concepts» (en anglès). Support. Microsoft. Arxivat de l'original el December 30, 2012. [Consulta: September 18, 2014].
* ↑ Tridgell, Andrew. «Myths About Samba» (en anglès). Arxivat de l'original el October 20, 2017. [Consulta: January 3, 2016].
* ↑ «Lan Manager Networking Concepts» (en anglès). Support. Microsoft. Arxivat de l'original el December 30, 2012. [Consulta: September 18, 2014].
* ↑ «Overview of Server Message Block signing» (en anglès). Windows Server troubleshooting. Microsoft, 24-11-2021.
* 1 2 Johansson, Jesper M. «How to Shoot Yourself in the Foot with Security, Part 1» (en anglès). Security Guidance. Microsoft, 20-05-2005.
* ↑ Barreto, Jose. «The Basics of SMB Signing (covering both SMB1 and SMB2)» (en anglès). Jose Barreto's Blog Archive. Microsoft, 1 December 2010. Arxivat de l'original el 2 December 2012.
* ↑ «MSKB887429: Overview of Server Message Block signing». Microsoft, November 30, 2007. Arxivat de l'original el November 20, 2010. [Consulta: October 24, 2012].