
HASSH est une norme d'empreinte réseau qui peut être utilisée pour identifier des implémentations SSH spécifiques de clients et de serveurs. Les empreintes peuvent être facilement stockées, recherchées et partagées sous la forme d'une petite empreinte MD5.
« HASSH » est une norme d’empreinte réseau qui permet d’identifier des implémentations SSH spécifiques, côté client et côté serveur. Les empreintes peuvent être facilement stockées, recherchées et partagées sous la forme d’une empreinte MD5.
HASSH a été inventé chez Salesforce en 2018. Cependant, le projet n’est plus activement maintenu par Salesforce. Son créateur original, Ben Reardon, maintient le fork actif chez Corelight.
« hassh » et « hasshServer » sont des hachages MD5 construits à partir d’un ensemble spécifique d’algorithmes pris en charge par diverses applications client et serveur SSH. Ces algorithmes sont échangés après la poignée de main TCP initiale en trois étapes sous forme de paquets en clair appelés messages « SSH_MSG_KEXINIT », et font partie intégrante de la mise en place du canal SSH chiffré final. L’existence et l’ordre de ces algorithmes sont suffisamment uniques pour pouvoir être utilisés comme une empreinte afin d’identifier l’application cliente ou serveur sous-jacente ou son implémentation spécifique, indépendamment des identifiants apparents de plus haut niveau tels que les chaînes « Client » ou « Serveur ».
Pour le client SFTP « Cyberduck » (plus précisément SSH-2.0-Cyberduck/6.7.1.28683 (Mac OS X/10.13.6) (x86_64)), l’ensemble des algorithmes pris en charge est le suivant :
| Fonction | Algorithmes observés dans les paquets SSH_MSG_KEXINIT |
|---|---|
| Méthodes d’échange de clés | [email protected],diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,diffie-hellman-group15-sha512,diffie-hellman-group16-sha512,diffie-hellman-group17-sha512,diffie-hellman-group18-sha512,[email protected],diffie-hellman-group15-sha256,[email protected],[email protected],diffie-hellman-group16-sha256,[email protected],[email protected],[email protected] |
| Chiffrement | aes128-cbc,aes128-ctr,aes192-cbc,aes192-ctr,aes256-cbc,aes256-ctr,blowfish-cbc,blowfish-ctr,cast128-cbc,cast128-ctr,idea-cbc,idea-ctr,serpent128-cbc,serpent128-ctr,serpent192-cbc,serpent192-ctr,serpent256-cbc,serpent256-ctr,3des-cbc,3des-ctr,twofish128-cbc,twofish128-ctr,twofish192-cbc,twofish192-ctr,twofish256-cbc,twofish256-ctr,twofish-cbc,arcfour,arcfour128,arcfour256 |
| Authentification de message | hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512 |
| Compression | [email protected],zlib,none |
La concaténation de ces algorithmes avec un délimiteur « ; » donne le hasshAlgorithms, utile pour une analyse détaillée.
[email protected],diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,diffie-hellman-group15-sha512,diffie-hellman-group16-sha512,diffie-hellman-group17-sha512,diffie-hellman-group18-sha512,[email protected],diffie-hellman-group15-sha256,[email protected],[email protected],diffie-hellman-group16-sha256,[email protected],[email protected],[email protected];aes128-cbc,aes128-ctr,aes192-cbc,aes192-ctr,aes256-cbc,aes256-ctr,blowfish-cbc,blowfish-ctr,cast128-cbc,cast128-ctr,idea-cbc,idea-ctr,serpent128-cbc,serpent128-ctr,serpent192-cbc,serpent192-ctr,serpent256-cbc,serpent256-ctr,3des-cbc,3des-ctr,twofish128-cbc,twofish128-ctr,twofish192-cbc,twofish192-ctr,twofish256-cbc,twofish256-ctr,twofish-cbc,arcfour,arcfour128,arcfour256;hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512;[email protected],zlib,none
Enfin, le hassh est simplement le MD5 de hasshAlgorithms, et est utilisé pour le stockage, la recherche et le partage. Voici quelques exemples :