Cosa sono gli HMAC #
Gli HMAC, o codici di autenticazione dei messaggi basati su hash, sono costrutti crittografici che utilizzano una chiave segreta e una funzione hash per verificare l'integrità e l'autenticità di dati o messaggi. Gli HMAC forniscono un modo per garantire che i dati non siano stati manomessi durante la trasmissione e che provengano da una fonte attendibile. Implicano la combinazione dei dati con una chiave segreta, l'hashing del risultato e quindi il confronto con un HMAC di riferimento dal destinatario, offrendo un metodo sicuro per confermare la validità dei dati in varie applicazioni, inclusi sistemi di comunicazione e autenticazione sicuri.
Nei servizi SSH (Secure Shell) come SSHd (daemon SSH), gli HMAC vengono utilizzati per migliorare la sicurezza della comunicazione tra un client e un server. Durante il processo di scambio delle chiavi SSH, il server e il client negoziano una serie di algoritmi crittografici, incluso l'algoritmo HMAC, da utilizzare per la verifica dell'integrità dei dati. L'algoritmo HMAC scelto, combinato con una chiave segreta condivisa, viene utilizzato per generare tag HMAC per i pacchetti in uscita e verificare l'integrità dei pacchetti in entrata. Ciò garantisce che i dati scambiati tra client e server non siano stati alterati durante la trasmissione, salvaguardandoli da manomissioni e garantendo l'autenticità della comunicazione, aspetto vitale del modello di sicurezza di SSH.
Disabilita le cifre deboli in SSHD #
Per migliorare la sicurezza del servizio SSHd, potrebbe essere necessario modificare la cifratura, il MAC e gli algoritmi della chiave di SSH per garantire che non vengano utilizzati MD5 o HMAC a 96 bit (hmac-md5 hmac-md5-96 hmac-sha1-96). Procedere con i seguenti passaggi.
Controlla la configurazione SSHd esistente #
Esaminare la configurazione SSH corrente per identificare le cifre, i MAC e gli algoritmi chiave consentiti. Utilizzare il comando seguente per raccogliere queste informazioni:
root@noid-ee-01:~# sshd -T | grep "\(cifraggi\|macs\|kexalgoritmi\)" cifrari chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com Mac 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 kexalgoritmi 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
Modifica la configurazione SSHD #
Per migliorare la sicurezza, valuta la possibilità di disabilitare le crittografie e i MAC più deboli. Utilizza un editor di testo (es nano or vi) per modificare il file di configurazione SSHD (situato in /etc/ssh/sshd_config). Rimuovi le cifre e i MAC che non desideri consentire e salva il file. Se la configurazione non esiste, aggiungi nuove righe alla fine del file.
ciphers aes128-ctr,aes192-ctr,aes256-ctr macs hmac-sha1,hmac-sha2-256,hmac-sha2-512
Riavviare il servizio SSHD #
Dopo aver apportato le modifiche, riavviare il servizio SSHD per applicare la nuova configurazione.
root@noid-ee-01:~# systemctl riavvia sshd
Controlla la nuova configurazione #
Verificare la configurazione aggiornata utilizzando lo stesso comando di prima.
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
Questi passaggi aiutano a rafforzare la sicurezza SSH configurando SSH per utilizzare suite di crittografia e MAC più sicuri disabilitando le opzioni più deboli, migliorando la sicurezza complessiva del servizio SSHd. Tieni presente che la modifica di queste impostazioni potrebbe influire sulla compatibilità con client SSH più vecchi o meno sicuri, quindi assicurati che le modifiche siano in linea con i tuoi requisiti di sicurezza specifici.