O que são HMACs #
HMACs, ou códigos de autenticação de mensagens baseados em hash, são construções criptográficas que usam uma chave secreta e uma função hash para verificar a integridade e autenticidade de dados ou mensagens. Os HMACs fornecem uma maneira de garantir que os dados não foram adulterados durante a transmissão e que são originados de uma fonte confiável. Eles envolvem combinar os dados com uma chave secreta, fazer hash do resultado e, em seguida, compará-lo com um HMAC de referência no final do destinatário, oferecendo um método seguro para confirmar a validade dos dados em diversas aplicações, incluindo sistemas seguros de comunicação e autenticação.
Em serviços SSH (Secure Shell), como SSHd (daemon SSH), HMACs são empregados para aumentar a segurança da comunicação entre um cliente e um servidor. Durante o processo de troca de chaves SSH, o servidor e o cliente negociam um conjunto de algoritmos criptográficos, incluindo o algoritmo HMAC, a ser usado para verificação da integridade dos dados. O algoritmo HMAC escolhido, combinado com uma chave secreta compartilhada, é usado para gerar tags HMAC para pacotes de saída e verificar a integridade dos pacotes recebidos. Isto garante que os dados trocados entre o cliente e o servidor não foram alterados durante a transmissão, protegendo contra adulterações e garantindo a autenticidade da comunicação, aspecto vital do modelo de segurança do SSH.
Desative cifras fracas em SSHD #
Para aumentar a segurança do serviço SSHd, pode ser necessário modificar a cifra, o MAC e os algoritmos de chave do SSH para garantir que nenhum MD5 ou HMAC de 96 bits esteja sendo usado (hmac-md5 hmac-md5-96 hmac-sha1-96). Prossiga com as etapas a seguir.
Verifique a configuração SSHd existente #
Examine a configuração SSH atual para identificar as cifras, MACs e algoritmos de chave permitidos. Use o seguinte comando para coletar essas informações:
root@noid-ee-01:~#sshd -T | grep "\(cifras\|macs\|kexalgoritmos\)" cifras chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com macs umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 algoritmos kex curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
Editar configuração SSHD #
Para melhorar a segurança, considere desabilitar cifras e MACs mais fracos. Use um editor de texto (como nano or vi) para editar o arquivo de configuração SSHD (localizado em / etc / ssh / sshd_config). Remova as cifras e MACs que você não deseja permitir e salve o arquivo. Se a configuração não existir, adicione novas linhas no final do arquivo.
ciphers aes128-ctr,aes192-ctr,aes256-ctr macs hmac-sha1,hmac-sha2-256,hmac-sha2-512
Reinicie o serviço SSHD #
Após fazer as alterações, reinicie o serviço SSHD para aplicar a nova configuração.
root@noid-ee-01:~# systemctl reiniciar sshd
Verifique a nova configuração #
Verifique a configuração atualizada usando o mesmo comando de antes.
root@nid-ee-01:~# sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)" ciphers aes128-ctr,aes192-ctr,aes256-ctr macs hmac-sha1,hmac-sha2-256,hmac-sha2-512 kexalgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
Essas etapas ajudam a fortalecer a segurança do SSH, configurando o SSH para usar conjuntos de criptografia e MACs mais seguros e, ao mesmo tempo, desabilitando opções mais fracas, melhorando a segurança geral do serviço SSHd. Esteja ciente de que a alteração dessas configurações pode afetar a compatibilidade com clientes SSH mais antigos ou menos seguros, portanto, certifique-se de que suas alterações estejam alinhadas com seus requisitos de segurança específicos.