Passa al contenuto principale

9. Host-Based Authentication: "hostbased"

9. Host-Based Authentication: "hostbased"

Alcuni siti desiderano consentire l'autenticazione basata sull'host da cui proviene l'utente e sul nome utente sull'host remoto. Sebbene questa forma di autenticazione non sia adatta a siti ad alta sicurezza, PUÒ essere molto comoda in molti ambienti. Questa forma di autenticazione è OPTIONAL. Quando usata, DOVREBBE essere presa particolare cura per impedire a un utente normale di ottenere la chiave privata dell'host.

Il client richiede questa forma di autenticazione inviando il seguente messaggio. È simile agli stili di autenticazione UNIX « rhosts » e « hosts.equiv », salvo che l'identità dell'host client è controllata più rigorosamente.

Questo metodo funziona facendo inviare al client una firma creata con la chiave privata dell'host client, che il server verifica con la chiave pubblica di quell'host. Una volta stabilita l'identità dell'host client, viene eseguita l'autorizzazione (ma non ulteriore autenticazione) in base ai nomi utente sul server e sul client e al nome host client.

byte      SSH_MSG_USERAUTH_REQUEST
string user name
string service name
string "hostbased"
string public key algorithm for host key
string public host key and certificates for client host
string client host name expressed as the FQDN in US-ASCII
string user name on the client host in ISO-10646 UTF-8 encoding
[RFC3629]
string signature

I nomi degli algoritmi a chiave pubblica per l'uso in 'public key algorithm for host key' sono definiti nella specifica del livello di trasporto [SSH-TRANS]. Il 'public host key and certificates for client host' PUÒ includere certificati.

Il valore di 'signature' è una firma con la chiave privata dell'host client dei seguenti dati, in questo ordine:

string    session identifier
byte SSH_MSG_USERAUTH_REQUEST
string user name
string service name
string "hostbased"
string public key algorithm for host key
string public host key and certificates for client host
string client host name expressed as the FQDN in US-ASCII
string user name on the client host in ISO-10646 UTF-8 encoding
[RFC3629]

Il server DEVE verificare che la chiave host appartenga effettivamente all'host client nominato nel messaggio, che l'utente dato su quell'host sia autorizzato ad accedere e che il valore 'signature' sia una firma valida sul valore appropriato con la chiave host data. Il server PUÒ ignorare il 'user name' del client se vuole autenticare solo l'host client.

Ove possibile, è RACCOMANDATO che il server esegua controlli aggiuntivi per verificare che l'indirizzo di rete ottenuto dalla rete (non attendibile) corrisponda al nome host client dato. Ciò rende più difficile sfruttare chiavi host compromesse. Nota che ciò PUÒ richiedere gestione speciale per connessioni che passano attraverso un firewall.