El protocolo SMB (Server Message Block) es un protocolo de red que permite acceder a archivos, im­pre­so­ras y otros recursos dentro de una red local. Se utiliza pri­n­ci­pa­l­me­n­te en entornos Windows para facilitar el uso co­m­pa­r­ti­do de archivos y servicios entre di­fe­re­n­tes or­de­na­do­res.

¿Qué es SMB?

SMB (Server Message Block) es un protocolo cliente-servidor que controla el acceso a archivos y di­re­c­to­rios enteros, así como a otros recursos de la red, como im­pre­so­ras, routers o in­te­r­fa­ces co­m­pa­r­ti­das con la red. El protocolo SMB también sirve como base para el in­te­r­ca­m­bio de in­fo­r­ma­ción entre los di­fe­re­n­tes procesos de un sistema (in­te­r­ca­m­bio también conocido como co­mu­ni­ca­ción entre procesos).

IONOS Cloud Object Storage
Al­ma­ce­na­mie­n­to seguro, escalable y rentable

Obtén el mejor precio en Object Storage de alta gama. Reduce costos sin co­m­pro­me­ter la potencia, al tiempo que proteges tus datos con se­r­vi­do­res de alta seguridad y control de acceso in­di­vi­dual.

Aunque fue de­sa­rro­lla­do ya en 1983 por el grupo de TI de IBM, en las últimas décadas se han publicado varias versiones e im­ple­me­n­ta­cio­nes del protocolo. Por ejemplo, el SMB se puso por primera vez a di­s­po­si­ción del gran público con el sistema operativo de la red OS/2 LAN Manager y su sucesor, LAN Server. Desde entonces, este protocolo se ha utilizado sobre todo en los sucesivos sistemas ope­ra­ti­vos de Windows, cuyos servicios de red SMB son co­m­pa­ti­bles con las versiones an­te­rio­res, lo que permite que los di­s­po­si­ti­vos con ediciones más recientes se co­mu­ni­quen fá­ci­l­me­n­te con di­s­po­si­ti­vos que tengan un sistema operativo de Microsoft más antiguo.

Con el proyecto de software libre Samba existe también una solución que permite el uso de Server Message Block en di­s­tri­bu­cio­nes de Linux y de Unix, así como la co­mu­ni­ca­ción entre pla­ta­fo­r­mas mediante SMB.

Nota

En la im­ple­me­n­ta­ción del protocolo SMB en Windows NT 4.0, Microsoft utilizó el nombre de Common Internet File System (CIFS), que a raíz de ello se utilizó ini­cia­l­me­n­te como sinónimo de la familia de pro­to­co­los SMB. Hoy en día, CIFS es como se suele llamar a la primera versión de SMB (SMB 1.0).

¿Cómo funciona SMB?

El protocolo Server Message Block permite al cliente co­mu­ni­car­se con otros pa­r­ti­ci­pa­n­tes de la misma red para acceder a los archivos o servicios que se comparten en ella. Para que esto ocurra, el otro sistema también debe haber im­ple­me­n­ta­do el protocolo de red, para así recibir y procesar la solicitud del cliente re­s­pe­c­ti­vo uti­li­za­n­do una apli­ca­ción de servidor SMB. Sin embargo, ambas partes deben primero es­ta­ble­cer una conexión, por lo que primero in­te­r­ca­m­bian los mensajes con este fin.

En las redes IP, SMB utiliza el Tra­n­s­mi­s­sion Control Protocol (TCP) que emplea un triple apretón de manos (three-way handshake) entre cliente y servidor antes de es­ta­ble­cer una conexión de­fi­ni­ti­va. El tra­n­s­po­r­te posterior de los datos también está regulado por las es­pe­ci­fi­ca­cio­nes del protocolo TCP.

Nota

Hoy en día, el puerto TCP 445 está reservado para la conexión y la tra­n­s­mi­sión a través de TCP/SMB. No­r­ma­l­me­n­te, en las redes la re­so­lu­ción de di­re­c­cio­nes funciona a través del Domain Name System (DNS) o, en redes más pequeñas, a través de Link Local Multicast Name Re­so­lu­tion (LLMNR).

Imagen: Imagen: Server Message Block: representación gráfica del intercambio de mensajes
Después de es­ta­ble­cer la conexión vía TCP, el cliente SMB y el servidor SMB pueden in­te­r­ca­m­biar mensajes para solicitar o pro­po­r­cio­nar archivos o servicios a través de la red.

El protocolo SMB a lo largo de los años: resumen de las versiones

Como ya me­n­cio­na­mos, desde la primera vez que SMB salió al público en 1983, ha habido varias ada­p­ta­cio­nes del estándar de red, que se han re­gi­s­tra­do en las distintas versiones de protocolo, desde SMB 1.0 hasta la versión actual SMB 3.1.1, que Microsoft lanzó junto con Windows 10. En este artículo resumimos los pasos más im­po­r­ta­n­tes en el de­sa­rro­llo del protocolo Server Message Block.

SMB 1.0 (CIFS)

La primera versión del protocolo de co­mu­ni­ca­ción en red se equipara con fre­cue­n­cia a la mo­di­fi­ca­ción Sistema Común de Archivos de Internet (CIFS) ya me­n­cio­na­da. No obstante, esta última no es más que una parte de la primera edición del protocolo, co­n­cre­ta­me­n­te, la apli­ca­ción del protocolo en di­s­po­si­ti­vos con Windows NT 4.0. En esta primera variante, todavía se pro­po­r­cio­na­ba una co­mu­ni­ca­ción mediante la interfaz NetBIOS y los puertos UDP 137 (re­so­lu­ción de nombre) y 138 (tra­n­s­mi­sión de paquetes), así como a través del puerto TCP 139 (es­ta­ble­ci­mie­n­to de la conexión y tra­n­s­po­r­te). Con Windows 2000, se eliminó la de­pe­n­de­n­cia de NetBIOS, de modo que el protocolo, que pasó a ser designado ofi­cia­l­me­n­te como SMB 1.0, ya permitía la conexión directa vía TCP (puerto 445), que se ha mantenido hasta hoy.

SMB 2.0

Microsoft lanzó la primera revisión im­po­r­ta­n­te de Server Message Block en noviembre de 2006, con el sistema operativo Windows Vista. Aunque el protocolo, que pasó a ser conocido como SMB 2.0 o 2, siguió siendo pro­pie­ta­rio, la compañía de software también publicó, por primera vez, las es­pe­ci­fi­ca­cio­nes para permitir que otros sistemas se co­mu­ni­ca­ran con los sistemas ope­ra­ti­vos de Windows. La segunda versión del protocolo trajo, entre otras, las si­guie­n­tes novedades:

  • Reducción de los comandos y su­b­co­ma­n­dos de más de 100 a 19
  • Re­n­di­mie­n­to op­ti­mi­za­do con la nueva función de colas de so­li­ci­tu­des SMB
  • Soporte de enlaces si­m­bó­li­cos (enlaces a archivos o di­re­c­to­rios)
  • Al­ma­ce­na­mie­n­to en caché de las pro­pie­da­des de los archivos
  • Mejora de la firma de mensajes (algoritmo HMAC-SHA-256)
  • Mayor es­ca­la­bi­li­dad gracias a un mayor número máximo de clientes, acciones y archivos abiertos a la vez

Por motivos de co­m­pa­ti­bi­li­dad, se conservó la primera versión del protocolo, una medida que Microsoft también mantuvo en las versiones po­s­te­rio­res.

SMB 2.1

La versión 2.1 del protocolo SMB está es­tre­cha­me­n­te vinculada a Windows 7. La versión revisada de la segunda edición del protocolo se lanzó junto con el sistema operativo en 2007 y, además de algunas op­ti­mi­za­cio­nes menores de re­n­di­mie­n­to, introdujo nuevos me­ca­ni­s­mos de bloqueo para mejorar la re­gu­la­ción del acceso a los archivos (lectura, escritura, eli­mi­na­ción, etc.).

SMB 3.0

Windows 8 se lanzó en 2012 y con el nuevo sistema operativo también se publicó una nueva versión de Server Message Block, ini­cia­l­me­n­te bajo el nombre SMB 2.2. No obstante, más tarde pasó a la de­no­mi­na­ción SMB 3.0, que sigue vigente hoy en día. Esta revisión del protocolo estaba diseñada para mejorar el re­n­di­mie­n­to y la seguridad de las co­ne­xio­nes SMB, es­pe­cia­l­me­n­te en los centros de datos vi­r­tua­li­za­dos. Para esta mejora fueron decisivas las si­guie­n­tes funciones:

  • Po­si­bi­li­dad de acceso remoto a la memoria mediante SMB a través de RDMA (Remote Direct Memory Access)
  • La función mu­l­ti­ca­nal permite múltiples co­ne­xio­nes por sesión SMB
  • Pro­te­c­ción contra fallos tra­n­s­pa­re­n­te
  • Cifrado de extremo a extremo
Nota

Con SMB 3.0.2, la tercera versión del protocolo se im­ple­me­n­tó en Windows 8.1 sin cambios si­g­ni­fi­ca­ti­vos.

SMB 3.1.1

SMB 3.1.1 (lanzado con Windows 10 en 2015) amplía la serie de pro­to­co­los para incluir la co­m­pro­ba­ción de in­te­gri­dad antes de la au­te­n­ti­ca­ción basada en los valores hash SHA-512. Además, la versión utiliza el cifrado AES-128 con el modo Galois/Counter (GCM). SMB 3.1.1 requiere una conexión segura para todos los di­s­po­si­ti­vos con SMB 2.0 o superior.

Resumen en tabla de las versiones SMB

Versión SMB Soportada desde Nuevas funciones
CIFS Windows NT 4.0 Co­mu­ni­ca­ción a través de la interfaz NetBIOS
SMB 1.0 Windows 2000 Conexión directa a través de TCP
SMB 2.0 Windows Vista, Windows Server 2008, Samba 3.5 Varias mejoras de re­n­di­mie­n­to, firma de mensajes mejorada, función de caché para las pro­pie­da­des de archivo
SMB 2.1 Windows 7, Windows Server 2008 R2 Me­ca­ni­s­mos de bloqueo
SMB 3.0 Windows 8, Windows Server 2012,Samba 4.0 Co­ne­xio­nes mu­l­ti­ca­nal, cifrado de extremo a extremo, acceso a al­ma­ce­na­mie­n­to remoto
SMB 3.0.2 Windows 8.1,Windows Server 2012 R2 Sin novedades decisivas
SMB 3.1.1 Windows 10, Windows Server 2016, Samba 4.3 Prueba de in­te­gri­dad, cifrado AES-128 con Galois/Counter Mode (GCM)
Se­r­vi­do­res dedicados
Re­n­di­mie­n­to e in­no­va­ción
  • Pro­ce­sa­do­res de última ge­ne­ra­ción
  • Hardware dedicado de alto re­n­di­mie­n­to
  • Seguridad de primer nivel

¿Qué aspectos de seguridad se deben tener en cuenta al utilizar SMB?

Microsoft se ha esforzado durante años para ga­ra­n­ti­zar la co­m­pa­ti­bi­li­dad de las versiones antiguas del Server Message Block con las nuevas versiones del sistema para asegurar la co­mu­ni­ca­ción entre los di­s­po­si­ti­vos más antiguos y los más nuevos. Sin embargo, asegurar la co­m­pa­ti­bi­li­dad conlleva, como siempre, un mayor riesgo de seguridad, ya que SMB 1.0 tiene numerosas de­bi­li­da­des en co­m­pa­ra­ción con los otros pro­to­co­los. Una de ellas es que el sistema es vu­l­ne­ra­ble frente a ataques DoS.

En las redes, el peligro de un ataque basado en el protocolo SMB es pa­r­ti­cu­la­r­me­n­te alto. Por motivos de co­m­pa­ti­bi­li­dad, en la red suelen estar activadas todas las versiones de SMB, porque así lo requieren las im­pre­so­ras u otros di­s­po­si­ti­vos de red co­ne­c­ta­dos. De este modo, aunque la versión antigua no se utilice realmente, esto pone la tarea fácil a los atacantes, ya que pueden bajar al nivel de co­mu­ni­ca­ción SMB 1.0 y atacar el sistema deseado sin mayores ob­s­tácu­los. Por esto, desde Windows 10, Microsoft ha decidido ac­ti­va­me­n­te eliminar la co­m­pa­ti­bi­li­dad con la primera versión o des­in­s­ta­lar­la au­to­má­ti­ca­me­n­te cuando no esté en uso. En macOS, SMB en su versión 1.0 también está des­ac­ti­va­do desde macOS Catalina (2019).

¿Dónde se emplea e im­ple­me­n­ta Server Message Block?

Los casos de uso más im­po­r­ta­n­tes de SMB ya se han descrito en este artículo: el aspecto más im­po­r­ta­n­te del protocolo es el acceso a los sistemas de archivos, por lo que el principal beneficio reside en las co­ne­xio­nes cliente-servidor entre los or­de­na­do­res y los se­r­vi­do­res de archivos. No obstante, como otras secciones del protocolo están cla­ra­me­n­te orie­n­ta­das a la co­mu­ni­ca­ción entre procesos, el in­te­r­ca­m­bio simple de datos entre dos di­s­po­si­ti­vos o dos procesos también forma parte del perfil de la apli­ca­ción.

Además de su in­te­gra­ción en las diversas ediciones de Windows, Server Message Block también se ha integrado en muchos otros proyectos de software a lo largo de los años para que sus funciones de co­mu­ni­ca­ción estén di­s­po­ni­bles fuera de la familia Microsoft. Entre las im­ple­me­n­ta­cio­nes más famosas de SMB están las si­guie­n­tes:

  • Samba: el proyecto de software Samba es pro­ba­ble­me­n­te el ejemplo más conocido de im­ple­me­n­ta­ción SMB fuera de Windows. En 1991, el pro­gra­ma­dor Andrew Tridgell comenzó a de­sa­rro­llar software libre para permitir la co­mu­ni­ca­ción mediante Server Message Block en sistemas Unix/Linux.
  • Netsmb: Netsmb es también una im­ple­me­n­ta­ción de cliente y servidor SMB di­re­c­ta­me­n­te en el núcleo de los sistemas ope­ra­ti­vos BSD. Publicado por primera vez para el sistema operativo FreeBSD 4.4, está ahora di­s­po­ni­ble para una variedad de sistemas BSD, in­clu­ye­n­do NetBSD y macOS.
  • YNQ: YNQ (an­te­rio­r­me­n­te NQ) es una bi­blio­te­ca SMB que im­ple­me­n­ta la te­c­no­lo­gía de Server Message Block en sistemas embebidos sin Windows y permite la in­te­ro­pe­ra­bi­li­dad con di­s­po­si­ti­vos Windows. YNQ fue de­sa­rro­lla­do en 1998 por la compañía israelí de software Visuality Systems Ltd.
  • TrueNAS: si quieres tener un servidor NAS propio que, entre otras cosas, sea co­m­pa­ti­ble con el protocolo SMB, la solución de código abierto TrueNAS puede ser ideal para ti. El software de NAS está basado en FreeBSD y el sistema de archivos OpenZFS.
  • Co­n­ne­c­te­d­NAS: el software Co­n­ne­c­te­d­NAS de Connected Way es a la vez servidor y cliente SMB para di­s­po­si­ti­vos Android. Los usuarios de la apli­ca­ción de pago pueden in­te­r­ca­m­biar datos entre el di­s­po­si­ti­vo móvil u otros di­s­po­si­ti­vos SMB con facilidad, ya en el ámbito personal o en la empresa. Por motivos de seguridad, Co­n­ne­c­te­d­NAS solo es co­m­pa­ti­ble con SMB a partir de la versión 2.
Ir al menú principal