Aller au contenu principal

9. Host-Based Authentication: "hostbased"

9. Host-Based Authentication: "hostbased"

Certains sites souhaitent autoriser une authentification fondée sur l'hôte d'où provient l'utilisateur et sur le nom d'utilisateur sur l'hôte distant. Bien que cette forme d'authentification ne convienne pas aux sites à haute sécurité, elle peut être très pratique dans de nombreux environnements. Cette forme d'authentification est OPTIONNELLE. Lorsqu'elle est utilisée, des précautions particulières DEVRAIENT être prises pour empêcher un utilisateur ordinaire d'obtenir la clé privée de l'hôte.

Le client demande cette forme d'authentification en envoyant le message suivant. Elle est semblable aux styles d'authentification UNIX « rhosts » et « hosts.equiv », sauf que l'identité de l'hôte client est vérifiée plus rigoureusement.

Cette méthode fonctionne en faisant envoyer par le client une signature créée avec la clé privée de l'hôte client, que le serveur vérifie avec la clé publique de cet hôte. Une fois l'identité de l'hôte client établie, une autorisation (mais pas d'authentification supplémentaire) est effectuée sur la base des noms d'utilisateur sur le serveur et le client, et du nom d'hôte 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

Les noms d'algorithme de clé publique pour ‚public key algorithm for host key' sont définis dans la spécification de la couche de transport [SSH-TRANS]. Le ‚public host key and certificates for client host' PEUT inclure des certificats.

La valeur de ‚signature' est une signature avec la clé privée de l'hôte des données suivantes, dans cet ordre :

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]

Le serveur DOIT vérifier que la clé d'hôte appartient bien à l'hôte client nommé dans le message, que l'utilisateur indiqué sur cet hôte est autorisé à se connecter, et que la valeur ‚signature' est une signature valide sur la valeur appropriée par la clé d'hôte donnée. Le serveur PEUT ignorer le ‚user name' du client s'il souhaite n'authentifier que l'hôte client.

Dans la mesure du possible, il est RECOMMANDÉ que le serveur effectue des contrôles supplémentaires pour vérifier que l'adresse réseau obtenue du réseau (non fiable) correspond au nom d'hôte client indiqué. Cela rend l'exploitation de clés d'hôte compromises plus difficile. Notez que cela PEUT exiger un traitement particulier pour les connexions passant par un pare-feu.