11. Additional Messages (Messaggi aggiuntivi)
11. Additional Messages (Messaggi aggiuntivi)
Ciascuna delle parti PUÒ inviare uno qualsiasi dei seguenti messaggi in qualsiasi momento.
11.1. Disconnection Message (Messaggio di disconnessione)
byte SSH_MSG_DISCONNECT
uint32 reason code
string description in ISO-10646 UTF-8 encoding [RFC3629]
string language tag [RFC3066]
Questo messaggio causa la terminazione immediata della connessione. Tutte le implementazioni DEVONO essere in grado di elaborare questo messaggio; DOVREBBERO essere in grado di inviarlo.
Il mittente NON DEVE inviare o ricevere alcun dato dopo questo messaggio, e il destinatario NON DEVE accettare alcun dato dopo aver ricevuto questo messaggio. La stringa 'description' del messaggio di disconnessione fornisce una spiegazione più specifica in forma leggibile dall'uomo. Il 'reason code' del messaggio di disconnessione fornisce il motivo in un formato più leggibile dalla macchina (adatto alla localizzazione), e può assumere i valori mostrati nella tabella seguente. Si noti che in questa tabella è mostrata la rappresentazione decimale per leggibilità, ma i valori sono in realtà valori uint32.
Symbolic name reason code
------------- -----------
SSH_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT 1
SSH_DISCONNECT_PROTOCOL_ERROR 2
SSH_DISCONNECT_KEY_EXCHANGE_FAILED 3
SSH_DISCONNECT_RESERVED 4
SSH_DISCONNECT_MAC_ERROR 5
SSH_DISCONNECT_COMPRESSION_ERROR 6
SSH_DISCONNECT_SERVICE_NOT_AVAILABLE 7
SSH_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED 8
SSH_DISCONNECT_HOST_KEY_NOT_VERIFIABLE 9
SSH_DISCONNECT_CONNECTION_LOST 10
SSH_DISCONNECT_BY_APPLICATION 11
SSH_DISCONNECT_TOO_MANY_CONNECTIONS 12
SSH_DISCONNECT_AUTH_CANCELLED_BY_USER 13
SSH_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE 14
SSH_DISCONNECT_ILLEGAL_USER_NAME 15
Se la stringa 'description' viene visualizzata, dovrebbe essere usato il filtraggio dei caratteri di controllo discusso in [SSH-ARCH] per evitare attacchi mediante invio di caratteri di controllo del terminale.
Le richieste di assegnazione di nuovi valori di 'reason code' per il messaggio di disconnessione (e testo 'description' associato) nell'intervallo da 0x00000010 a 0xFDFFFFFF DEVONO essere effettuate tramite il metodo IETF CONSENSUS, come descritto in [RFC2434]. I valori di 'reason code' del messaggio di disconnessione nell'intervallo da 0xFE000000 a 0xFFFFFFFF sono riservati a PRIVATE USE. Come indicato, le istruzioni effettive all'IANA sono in [SSH-NUMBERS].
11.2. Ignored Data Message (Messaggio dati ignorati)
byte SSH_MSG_IGNORE
string data
Tutte le implementazioni DEVONO comprendere (e ignorare) questo messaggio in qualsiasi momento (dopo aver ricevuto la stringa di identificazione). Nessuna implementazione è tenuta a inviarli. Questo messaggio può essere usato come misura di protezione aggiuntiva contro tecniche avanzate di analisi del traffico (traffic analysis).
11.3. Debug Message (Messaggio di debug)
byte SSH_MSG_DEBUG
boolean always_display
string message in ISO-10646 UTF-8 encoding [RFC3629]
string language tag [RFC3066]
Tutte le implementazioni DEVONO comprendere questo messaggio, ma possono ignorarlo. Questo messaggio è usato per trasmettere informazioni che possono aiutare il debug. Se 'always_display' è TRUE, il messaggio DOVREBBE essere visualizzato. Altrimenti, NON DOVREBBE essere visualizzato a meno che le informazioni di debug non siano state esplicitamente richieste dall'utente.
Il 'message' non deve contenere un newline. Tuttavia, può consistere in più righe separate da coppie CRLF (Carriage Return - Line Feed).
Se la stringa 'message' viene visualizzata, dovrebbe essere usato il filtraggio dei caratteri di controllo del terminale discusso in [SSH-ARCH] per evitare attacchi mediante invio di caratteri di controllo del terminale.
11.4. Reserved Messages (Messaggi riservati)
Un'implementazione DEVE rispondere a tutti i messaggi non riconosciuti con un messaggio SSH_MSG_UNIMPLEMENTED nell'ordine in cui i messaggi sono stati ricevuti. Tali messaggi DEVONO essere altrimenti ignorati. Versioni successive del protocollo possono definire altri significati per questi tipi di messaggio.
byte SSH_MSG_UNIMPLEMENTED
uint32 packet sequence number of rejected message