¿Cuál es la función del comando service password-encryption en el iOS de Cisco?

In Ye Olde Days, the passwords were stored in plain text in the configuration.

  1. user cisco password Cisco123 

This understandably upset some people.

A simple, reversible password “encryption” (really, obfuscation) system was added, but there needed to be a way to tell the command interpreter to convert typed-in passwords to the obfuscated form. That command was service password-encryption.

Now, all plaintext passwords would show up in configuration like this:

  1. user cisco password 7 02250D4808095E731F 

The “7” tells the command prompt that the text following is the “encrypted” form.

If you wanted to FORCE plaintext, even with service password-encryption set, you could use the command

  1. user cisco password 0 Cisco123 

Where the “0” means that unencrypted text follows.

(Los tipos 1-6 nunca se definen).

Así, en ausencia del número, la contraseña en texto plano sigue a la palabra clave password. service password-encryption convertirá cualquiera de ellas en contraseñas ofuscadas "tipo 7". Para forzar el uso de texto plano, se puede utilizar el "tipo 0".

Ahora, tenga en cuenta que la contraseña "cifrada" no es segura en absoluto. Hay una serie de casos de uso que requieren que el SO tenga acceso a una contraseña en texto plano, por lo que la contraseña ofuscada es fácilmente reversible. Ver: Cisco Type 7 password tool

The more secure method will use secret instead of password.

  1. username cisco secret Cisco123 

This command will store as something like:

  1. username cisco secret 5 1/.CKS2vYI2haW7YyOBv/ 

which is an irrevesible salted MD5 hash. Las cosas que necesitan acceso a una contraseña en texto plano no funcionarán con esto, pero proporciona un almacenamiento secreto relativamente seguro que puede ser hackeado con un ataque de fuerza bruta, pero no puede ser revertido.