Específicamente, este hash se almacena en el archivo `/etc/shadow`. Sin embargo, el acceso a este archivo está restringido al usuario raíz.
Desglosemos por qué y cómo:
* `/etc/shadow`: Este archivo contiene información sobre cuentas de usuario, incluida:
* Nombre de usuario: El nombre de la cuenta.
* Contraseña de hash: Un hash criptográfico de la contraseña del usuario. Los sistemas modernos utilizan algoritmos de hash fuertes como SHA-512 o YESCrypt.
* Otra información de la cuenta: Detalles sobre las políticas de envejecimiento de contraseña, el vencimiento de la cuenta y los límites de inactividad.
* ¿Por qué hashing? Almacenar la contraseña de texto sencillo sería un riesgo de seguridad importante. Si un atacante obtuvo acceso al archivo `/etc/shadow`, podría comprometer inmediatamente todas las cuentas de los usuarios. Hashing hace que sea computacionalmente inviable (con la tecnología actual) revertir el proceso y recuperar la contraseña original del hash. Incluso si un atacante obtiene el hash, todavía tiene que "romperlo", lo cual es un proceso que requiere mucho tiempo y que intensiva en recursos.
* ¿Por qué restringir el acceso a `/etc/shadow`? Si un usuario regular pudiera leer `/etc/shadow`, podría usar herramientas para tratar de descifrar los hash de contraseña para otras cuentas, incluida la raíz. Al restringir el acceso, el sistema evita que los usuarios no autorizados obtengan la información necesaria para intentar agrietarse con contraseña.
Consideraciones importantes:
* Los sistemas modernos usan el hashing fuerte: Los sistemas más antiguos utilizaron algoritmos de hash más débiles como MD5, que ahora se consideran vulnerables. Las distribuciones de Ubuntu y la mayoría de las modernas Linux usan algoritmos mucho más fuertes como SHA-512 o YESCrypt.
* sal: Una "sal" es una cadena aleatoria que se agrega a la contraseña antes de que se haya hash. Esto ayuda a evitar que los atacantes usen tablas precomputadas de hashes de contraseña comunes (tablas de arco iris) para descifrar las contraseñas. Cada usuario tiene un valor de sal único. La sal se almacena junto con la contraseña de hash en el archivo `/etc/shadow`.
* Cuenta raíz deshabilitada por defecto: En muchas instalaciones modernas de Ubuntu (especialmente versiones de escritorio), la cuenta raíz está bloqueada o deshabilitada de forma predeterminada. En cambio, las tareas administrativas se realizan utilizando 'sudo`. Esto hace que el inicio de sesión directamente sea más difícil, reduciendo la posible superficie de ataque.
* Alternativas a la contraseña de root: El uso de `sudo` (o` pKExec` para aplicaciones gráficas) es la forma recomendada de realizar tareas administrativas en Ubuntu. Esto le permite otorgar privilegios específicos a usuarios específicos sin exigirles que conozcan la contraseña de root.
En resumen:
La contraseña de root no se almacena directamente. Un hash criptográfico de la contraseña, junto con una sal única, se almacena en el archivo `/etc/shadow`, que solo es accesible para el usuario raíz. Este diseño mejora significativamente la seguridad del sistema al evitar el acceso no autorizado a la información confidencial de la contraseña.