Los algoritmos predeterminados (es decir, los algoritmos que el cliente y el servidor prefieren para usar cuando se les da la opción) dependen de las implementaciones del cliente y del servidor, cómo se compilaron y configuraron. Por lo tanto, puede depender del proveedor de software, la versión del software, la distribución del sistema operativo y las opciones de administrador del sistema.
En un Ubuntu 12.10, man ssh_config
indica que el orden predeterminado para el cifrado es:
aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
aes256-cbc,arcfour
mientras que el orden predeterminado para MAC (integridad) es:
hmac-md5,hmac-sha1,[email protected],
hmac-ripemd160,hmac-sha1-96,hmac-md5-96,
hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,
hmac-sha2-512-96
El algoritmo de intercambio de claves seguirá este orden de preferencia:
ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,
diffie-hellman-group-exchange-sha256,
diffie-hellman-group-exchange-sha1,
diffie-hellman-group14-sha1,
diffie-hellman-group1-sha1
Por supuesto, las preferencias están sujetas a negociación. Se seleccionará un algoritmo solo si tanto el cliente como el servidor lo admiten (en particular, el soporte de intercambio de claves ECDH es bastante reciente), y tanto el cliente como el servidor expresan su opinión (si no tienen exactamente las mismas preferencias).
Una encuesta es teóricamente factible: conéctese a una dirección IP aleatoria y, si un servidor SSH responde, elabore su lista preferida de cifrados y MAC (al conectarse varias veces, restringiendo la lista de opciones anunciado por el cliente). OpenSSH realiza encuestas de uso pero no son tan exhaustivas (solo quieren el "banner" del servidor).