¿Qué son las claves secretas de WordPress y para qué sirven?

Hace ya varias versiones de WordPress (si no recuerdo mal fue en WordPress 2.6 que aparecieron 3, pero en la 2.7 se le añadió una cuarta) se añadieron al fichero wp-config.php las claves de autentificación o claves secretas de WordPress, en concreto cuatro:

  • AUTH_KEY
  • SECURE_AUTH_KEY
  • LOGGED_IN_KEY
  • NONCE_KEY

Y te preguntarás ¿esto qué es lo qué es?.

Sabes, por los comentarios del mismo fichero de configuración que son una serie de claves secretas y aleatorias que tienes que generar en la URL siguiente: https://api.wordpress.org/secret-key/1.1/ y poner en tu wp-config.php las claves generadas pero ¿para qué es esto?, es más, ¿lo necesito?.

Pues si, y por varios motivos …

El primero y más importante es que al anotar estas claves autogeneradas en tu fichero de configuración dificultas el posible crackeo de tu contraseña de WordPress (si, de esas que pones con el nombre de tu novia o tu perro, que te hemos pillado), ya que decodificar una clave del tipo “k/^}d.vNHvicFp3Qk^-&L6*$am^gufiSO” no es que lleve rato, es que se puede tardar años en desencriptarla.

Esto genera una distracción al posible atacante, son claves que no se pueden leer en la base de datos y que añaden encriptación a las cookies de sesión del usuario, haciendo casi imposible detectar la contraseña de acceso a WordPress.

Por supuesto, no es obligatorio rellenar esas claves pero es MUY recomendable. Además, puedes cambiarlas tantas veces como quieras, incluso poner tu clave de WordPress para acordarte (si fuera rarita) y, lo más importante, no te tienes que acordar de ellas, WordPress no te las va a pedir nunca ((La única salvedad es cuando vayas a hacer la integración de bbPress y WordPress)) pero no se las des a nadie.

Otro motivo, menos obvio pero que ha sucedido en múltiples instalaciones es que de repente un día WordPress te muestra el admin en blanco o no te reconoce las cookies de sesión. ¿El motivo?, lo desconozco, pero la solución en el 90% de las ocasiones ha sido añadir las claves secretas al fichero de configuración, y tengo varios amigos agradecidos que pueden refrendar lo que digo.

Para terminar … ¿como añado las claves secretas?. Sencillo:

  1. Abres en tu editor favorito el fichero wp-config.php.
  2. Accedes al generador de claves automático.
  3. Copias cada clave y sustituyes el texto de muestra por la clave correspondiente (no pasa nada si te equivocas mientras copies solo la clave y no toda la línea del generador de claves). Mira el ejemplo de estas capturas ((Las claves que ves en la segunda captura no son las de Ayuda WordPress, que lo sepas)).

  4. Guardas los cambios.
  5. La próxima vez que accedas a la zona de admin te pedirá usuario y contraseña (es normal) y todo seguirá como antes pero ahora estás más seguro.

Nota: Añado el comentario del amigo g30rg3x, que mejora con muchos enteros la información dada en el post …

… Estas “llaves secretas”, que si bien existen teóricamente desde la perdida versión 2.4, característica que luego heredo la 2.5 y fue mejorada como bien dices en la 2.7. WordPress decidió separar en 4 llaves diferentes y no en 1 como se empezó en la 2.5, pero bueno tampoco es un articulo técnico destinado para desarrolladores si no como ya he dicho es para promover el uso de llaves y el por que están las mismas.

La labor principal de estas llaves no es proteger la contraseña (no de manera directa), el encargado de evitar esto es la implementación de la librería phpass por parte del equipo de desarrollo de WordPress.

¿Que hacen las llaves?
En si las llaves protegen la sesión o sesiones activas de WordPress a manera mas simple protegen las cookies de un posible robo.

¿Por que es necesario proteger las cookies?
En epocas antiguas (<= 2.3), WordPress usaba un sistema basado en que una vez autenticado se te ponía una cookie la cual contenía el MD5 del MD5 de tu contraseña (o dicho en otra forma el MD5 de lo que se guarda en la base de datos) para poder comprobar que ya te encuentras autenticado, aunque en si este sistema protegía la contraseña de la cookie este método no protege sobre ataques en los cuales un atacante podría re-usar o generar[1] tus credenciales de autenticacion (cookies) para poder realizar una acción administrativa (se podía entrar al panel y obtener control total del mismo sin tener que si quiera saber tu contraseña) y obviamente una vez comprometido lo único que te quedaba es volver a cambiar la contraseña.
Debido a la anterior situación se discutió en el ticket 5367 del trac de WordPress, sobre el uso de una propuesta de un protocolo de Cookies seguras hecha por Alex Liu, Jason Kovacs, Chin-Tser Huang y Mohamed Gouda, propuesta la cual fue implementada en la 2.4 (la olvidada) y vio luz hasta la 2.5.
En principio la implementación era simple (solo había 1 llave), se decidió mejorarla en la 2.6 y terminar de pulirla 2.7 con el ingreso de las ahora 4 llaves.

¿Y esto en que te beneficia?
Esta implementación impide en primer punto que sea necesario tener que poner tu contraseña (cifrada/hasheada o no) en alguna cookie para comprobar que ya estas autenticado así como en caso de robo de sesión (cookies) generar estas mismas no sea muy fácil ya que también se hacen uso de semillas las cuales están guardadas en la base de datos, en pocas palabras necesitarían contar tanto con acceso a la Base de Datos como al sistema de ficheros para poder generar las credenciales de autenticación pero realmente pasado este punto o mas bien con todos esos accesos lo que menos creo que pensaría un atacante es ir por el panel de administración ya que seguro no le costaría nada entrar a la BD y cambiar tu contraseña (aunque claro vendrá alguien a decirme un escenario hipotético donde si sirva entrar al panel pero a mi modo de verlo con ese nivel de acceso entrar o no al panel de administración no valdría la pena).

Me encanta que promuevas el uso de estas llaves, ya que mucha gente desconoce esta funcionalidad que brinda una mayor seguridad de manera indirecta para tus contraseñas y directa contra posibles ataques de robo de sesión (cookies).

Saludos

+ Mas Info
[1] http://www.cl.cam.ac.uk/~sjm217/advisories/wordpress-cookie-auth.txt
[*] http://ryan.boren.me/2007/12/17/secure-cookies-and-passwords/

AVISO: esta publicación es de hace dos años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

Valora este artículo para mejorar la calidad del blog ...

FlojitoNo está malEstá bienMe ha servidoFantástico (3 votos, promedio: 5,00 de 5)
Cargando…

Autor: Fernando

Fernando Tellado, apasionado de WordPress, profesor, consultor y ponente. Maquero cansino, padre de tres hijos y de una perrita Beagle, Bilbaíno de nacimiento, Español de corazón y ciudadano de donde me quieran. Autor del libro WordPress - La tela de la araña. Mi blog personal es Navegando con red, donde he crecido como escritor en la red y ofrezco mis visiones acerca de la Web 2.0 y la blogosfera.

Comparte esta entrada en
468 ad

Los burócratas de la UE me exigen que te diga que si visitas este blog recibirás cookies. Aquí no hay cookies de publicidad, como las que sí te dejan Google, Amazon y otros sin avisar, pero soy yo el que te tengo que avisar. WTF!. Las cookies de este blog son para facilitarte la navegación, compartir y comentar. Si no las quieres puedes navegar en modo privado, abandonar este blog y perderte el contenido gratis que comparto a diario, o irte a una isla desierta para vivir aislado del mundo, eso sí, sin cookies. O sino, cierra esta ventana coñazo y disfruta del blog. Si tienes curiosidad sobre esto de las cookies te dejo un enlace >> MÁS INFORMACIÓN

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar