5. Authentication Requests (Richieste di autenticazione)
5. Authentication Requests (Richieste di autenticazione)
Tutte le richieste di autenticazione DEVONO usare il seguente formato di messaggio. Solo i primi campi sono definiti; i campi rimanenti dipendono dal metodo di autenticazione.
byte SSH_MSG_USERAUTH_REQUEST
string user name in ISO-10646 UTF-8 encoding [RFC3629]
string service name in US-ASCII
string method name in US-ASCII
.... method specific fields
Il 'user name' e il 'service name' sono ripetuti in ogni nuovo tentativo di autenticazione e POSSONO cambiare. L'implementazione del server DEVE controllarli attentamente in ogni messaggio e DEVE azzerare qualsiasi stato di autenticazione accumulato se cambiano. Se non è in grado di azzerare uno stato di autenticazione, DEVE disconnettersi se cambiano il 'user name' o il 'service name'.
Il 'service name' specifica il servizio da avviare dopo l'autenticazione. Possono esserci diversi servizi autenticati forniti. Se il servizio richiesto non è disponibile, il server PUÒ disconnettersi immediatamente o in qualsiasi momento successivo. Inviare un messaggio di disconnessione appropriato è RACCOMANDATO. In ogni caso, se il servizio non esiste, l'autenticazione NON DEVE essere accettata.
Se il 'user name' richiesto non esiste, il server PUÒ disconnettersi o PUÒ inviare un elenco fittizio di valori accettabili di 'method name' di autenticazione, ma non accettarne mai alcuno. Ciò consente al server di evitare di rivelare informazioni su quali account esistono. In ogni caso, se il 'user name' non esiste, la richiesta di autenticazione NON DEVE essere accettata.
Sebbene di solito i client abbiano poco motivo per inviare richieste che il server non elenca come accettabili, inviare tali richieste non è un errore, e il server DOVREBBE semplicemente rifiutare le richieste che non riconosce.
Una richiesta di autenticazione PUÒ comportare un ulteriore scambio di messaggi. Tutti tali messaggi dipendono dal 'method name' di autenticazione usato, e il client PUÒ in qualsiasi momento continuare con un nuovo messaggio SSH_MSG_USERAUTH_REQUEST, nel qual caso il server DEVE abbandonare il tentativo di autenticazione precedente e continuare con il nuovo.
Sono definiti i seguenti valori di 'method name'.
| Method name | Requirement |
|---|---|
| "publickey" | REQUIRED |
| "password" | OPTIONAL |
| "hostbased" | OPTIONAL |
| "none" | NOT RECOMMENDED |
Valori aggiuntivi di 'method name' POSSONO essere definiti come specificato in [SSH-ARCH] e [SSH-NUMBERS].