CIFS vs SMB: Entenda as diferenças e qual o melhor para você

O Common Internet File System (CIFS) constitui um protocolo que viabiliza o acesso a arquivos, periféricos de impressão e portas seriais, estabelecendo uma conexão entre diversos computadores interligados em uma rede específica.

Através deste mecanismo de acesso, os utilizadores têm a capacidade de abrir, visualizar e modificar documentos partilhados, os quais são automaticamente salvos nas máquinas locais.

Adicionalmente, os utilizadores podem desfrutar de serviços de comunicação entre processos e gestão de filas de impressão.

O desenvolvimento do CIFS ocorreu no início da década de 1980, sob a tutela da IBM.

Funcionamento do CIFS

O CIFS opera sob uma arquitetura cliente-servidor, envolvendo três entidades distintas: um cliente, uma aplicação e o servidor.

  • O cliente assume a função de implementar o protocolo de origem da maioria das mensagens trocadas.
  • O servidor, por sua vez, implementa o protocolo e disponibiliza a maior parte das funcionalidades, ou seja, o serviço em si.
  • A aplicação pode ser um software que executa funções diversificadas, tais como interface gráfica do utilizador, gestão de arquivos ou processamento de texto.

Eis o processo de funcionamento do CIFS:

  • É estabelecida uma sessão NetBIOS entre o cliente e o servidor, com o propósito de aceder aos recursos partilhados.
  • Durante o processo de negociação, o cliente e o servidor definem o dialeto que será utilizado na comunicação.
  • O cliente envia as suas credenciais de autenticação, geralmente compostas por nome de utilizador e senha, ao servidor, através de um identificador exclusivo.
  • O Active Directory é o principal responsável por gerenciar o processo de autenticação, embora o CIFS não lide diretamente com esta etapa.
  • O servidor, após uma autenticação bem-sucedida, retorna o identificador exclusivo ao cliente.
  • O servidor procede à verificação das permissões do cliente e da validade do nome do compartilhamento. Se todos estes critérios forem válidos, o cliente obtém acesso para partilhar recursos, como arquivos e pastas.

Características do Protocolo CIFS

Independência de Transporte

O protocolo CIFS não impõe restrições ao protocolo de transporte utilizado para o envio de mensagens SMB entre o servidor e o cliente. O CIFS é simplesmente transportado por um protocolo orientado à conexão.

Acesso a Arquivos

Um cliente ou utilizador pode abrir, ler, modificar e fechar vários arquivos armazenados num servidor de destino. O servidor assume a responsabilidade pelo compartilhamento de arquivos, permitindo que diversos clientes acessem e leiam o mesmo arquivo simultaneamente e a partir de dispositivos distintos.

Atributos de Arquivos, Diretórios e Volumes

O protocolo CIFS tem a capacidade de consultar e, com algumas limitações, definir atributos de diretórios, arquivos e volumes. As Listas de Controle de Acesso (ACLs) também são suportadas no CIFS.

Subprotocolos Estendidos

O protocolo CIFS oferece suporte a vários subprotocolos que proporcionam acesso direto a funcionalidades adicionais do servidor.

Comunicação Interprocessos por Pipes Nomeados

O cliente pode abrir, gravar, ler e fechar pipes nomeados no servidor específico. Os pipes nomeados oferecem um canal de comunicação entre o servidor e os serviços do cliente.

Conectividade Flexível

Um cliente tem a possibilidade de se conectar a múltiplos servidores e, adicionalmente, estabelecer uma ou mais conexões com um único servidor.

Negociação de Recursos

O conjunto de recursos e o dialeto suportado por um protocolo são negociados por conexão.

Bloqueio de Arquivos e Registos e Cache Seguro

O protocolo CIFS oferece suporte ao bloqueio de registos e arquivos. Este mesmo protocolo possibilita o bloqueio de arquivos oportunista, concedendo aos clientes a capacidade de armazenar dados em cache para um desempenho otimizado.

Notificações de Alterações em Diretórios e Arquivos

Os clientes, dentro do protocolo CIFS, podem requisitar notificações sempre que ocorrerem alterações em recursos, tais como um arquivo num diretório ou um diretório num servidor específico.

Suporte ao Sistema de Arquivos Distribuídos (DFS)

O DFS estabelece um namespace global que engloba recursos em múltiplos servidores.

Suporte a Múltiplos Contextos de Segurança

Um cliente pode utilizar e criar um ou mais contextos de segurança numa determinada conexão.

Pré-requisitos para a Utilização do CIFS

O CIFS necessita de um transporte de rede subjacente, geralmente orientado à conexão. No entanto, em algumas circunstâncias, as mensagens CIFS podem ser transmitidas através de um transporte sem conexão, mediante algumas pequenas adaptações.

Antes de haver troca de mensagens CIFS num transporte orientado à conexão, é indispensável estabelecer uma ligação.

Para que a comunicação de mensagens se realize através desta rede, o CIFS pressupõe a disponibilidade de um ou mais dos seguintes recursos:

  • Uma fila de impressão local, que encaminha trabalhos de impressão para uma impressora, com o objetivo de oferecer serviços de impressão.
  • Um sistema de arquivos ou banco de dados local, apresentado como um sistema de arquivos, para permitir o compartilhamento de arquivos. Neste caso, o recurso é denominado armazenamento de objetos.
  • Uma emulação apropriada integrada no servidor CIFS ou um sistema de arquivos que ofereça suporte a pipes nomeados, essencial para a comunicação entre processos usando a abstração de pipe nomeado.

Adicionalmente, o servidor deve possuir ou garantir acesso a um banco de dados de senhas para fins de autenticação.

O banco de dados de senhas armazena os hashes de senha do NT LAN Manager (NTLM) e do LAN Manager (LM), visando suportar a autenticação de desafio ou resposta.

Configuração do CIFS no Windows

A maioria dos utilizadores não utiliza o CIFS, razão pela qual este recurso se encontra desativado por defeito no Windows 10 e 11.

Para o ativar, siga os seguintes passos:

  • Aceda ao Painel de Controlo e clique em Programas e Recursos. No lado esquerdo, clique em Ativar ou desativar funcionalidades do Windows.
  • Deslize a barra de rolagem até encontrar Suporte para Partilha de Ficheiros SMB 1.0/CIFS e selecione esta opção. Clique no ícone + para visualizar todas as opções assinaladas.

As etapas acima habilitarão o CIFS. No entanto, é necessário configurar a rede à qual está ligado para o CIFS. Eis o processo:

  • Aceda à página inicial do Painel de Controlo e clique em Rede e Internet.
  • 2. Clique em Central de Rede e Partilha. À esquerda, clique em Alterar as configurações de partilha avançadas.

    3. Clique em Alterar as configurações de partilha avançadas. Agora pode ativar a deteção de rede e ativar o compartilhamento de arquivos e impressoras. Clique em ‘salvar alterações’.

    Configuração do CIFS numa Pasta

    Para efeitos desta demonstração, vamos configurar uma pasta chamada “Pasta de Amostra” na Unidade E.

  • Clique com o botão direito na Pasta de Amostra, clique em Propriedades e selecione Compartilhamento.
  • 2. Clique em Compartilhar.

    Deve-se observar que os utilizadores listados são apenas aqueles atualmente configurados na sua máquina Windows.

    Os destinatários devem também configurar tudo do seu lado para aceder aos documentos enviados.

    CIFS vs SMB: Diferenças

    Antes de analisar as diferenças, é fundamental compreender o que é o Server Message Block (SMB).

    O Server Message Block foi concebido para permitir que um cliente leia, escreva e edite um arquivo num servidor. Neste contexto, o servidor representa uma rede local (LAN).

    Evolução do SMB ao Longo dos Anos

    • SMB 1.0. A primeira versão do SMB é equiparada ao CIFS. Esta primeira variação foi criada para o Windows NT 4.0 e a comunicação era realizada pela interface NetBIOS.
    • SMB 2.0. Esta versão foi introduzida pela Microsoft em 2006, juntamente com o seu sistema operacional Windows Vista. Algumas das funcionalidades introduzidas foram melhor escalabilidade, suporte para links simbólicos e assinatura de mensagens melhorada.
    • SMB 2.1. Esta versão foi lançada simultaneamente com o Windows 7 em 2007. A versão 2.1 proporcionou otimizações de desempenho aprimoradas e novos mecanismos de bloqueio.
    • SMB 3.0. Esta versão foi introduzida juntamente com o Windows 8 em 2012. Inicialmente, o SMB 3.0 foi denominado SMB 2.2, mas foi posteriormente renomeado. Esta versão tornou possível o acesso remoto ao armazenamento através do Remote Direct Memory Access (RDMA).
    • SMB 3.1.1. Esta é a versão mais recente até ao momento desta redação. O SMB 3.1.1 foi desenvolvido para o Windows 10 em 2015 e introduziu verificações de integridade antes da autenticação. Esta versão também emprega encriptação com Galois/Counter Mode (GCM).

    Muitas pessoas confundem CIFS e SMB. É importante notar que o SMB foi introduzido antes do CIFS.

    A Microsoft aprimorou o SMB para criar o CIFS na década de 1990, o que torna o CIFS um dialeto do SMB. No entanto, a Microsoft continuou a melhorar o CIFS e a versão atual é SMB 3.1.1.

    Eis as principais diferenças entre o CIFS e o SMB 3.1.1:

    SMB 3.1.1 CIFS
    Ano de Criação Criado pela Microsoft no início dos anos 90 como uma versão aprimorada do SBM. Criado pela IBM no início dos anos 80.
    Desempenho O SMB 3.1.1 foi desenvolvido para resolver grande parte dos desafios do CIFS e de versões anteriores do SMB. Existem verificações de pré-autenticação que ajudam a proteger arquivos num servidor. Quando o CIFS foi criado, havia muitos problemas com transmissão de arquivos, segurança, etc.
    Autenticação O SMB 3.1.1 emprega autenticação AES para garantir a segurança de arquivos partilhados num servidor. O utilizador deve fornecer um nome de utilizador e senha para aceder a um arquivo. CIFS não tem autenticação, o que significa que os arquivos não são protegidos pela rede.
    Armazenamento de Dados O SMB 3.1.1 utiliza campos de armazenamento de dados de 32 ou 64 bits, abrindo espaço para armazenamento de arquivos grandes. Usa protocolos IP/TCP semelhantes aos protocolos HTTP e FTP.
    Funcionamento Um protocolo de comunicação cliente-servidor para partilhar o acesso a recursos numa rede. O cliente ou utilizador solicita um arquivo num servidor localizado noutro sistema de computador na mesma rede.

    Quais são as Desvantagens do CIFS?

    • Falta de autenticação. Uma das maiores desvantagens do CIFS é a ausência de autenticação, ao contrário das versões mais recentes do SMB.
    • Lida com tamanhos de arquivo limitados. O CIFS pode não ser adequado para arquivos muito grandes, causando atrasos e até falhas durante a transferência.

    Conclusão

    Embora os serviços de acesso e partilha de arquivos na nuvem pareçam estar a ganhar terreno, protocolos tradicionais como o CIFS ainda desempenham um papel importante. O suporte para conexões diretas na porta TCP 445 foi um dos maiores atrativos do CIFS. Embora a Microsoft esteja agora focada no desenvolvimento do SMB, o CIFS não pode ser ignorado, já que é um dos dialetos do SMB.

    Pode também explorar como executar o verificador de arquivos do sistema no Windows 11/10.