OpenLayoutBoxedLayoutBorderLayout Small textMedium textMaximum text



viernes, 18 de mayo de 2012

Ver Artículo

Contraseñas y DotNetNuke

DotNetNuke ofrece cierta flexibilidad en la gestión de las contraseñas de usuarios. Ésta no es una cuestión baladí, pues nuestros preciosos portales web suelen contener datos personales, sujetos a la normativa vigente. Dependiendo de la naturaleza de esos datos podríamos ser especialmente estrictos con su custodia, y la configuración predeterminada de DotNetNuke no sería suficiente.

Tan didáctico como siempre Mitchel Sellers nos explica cómo funcionan las contraseñas en DNN y nos sugiere un par de cambios que reforzarán la seguridad de nuestro sistema.

Resumiendo, DNN viene de serie con las contraseñas de los usuarios encriptadas, en la base de datos, pero fácilmente recuperables aplicando un algoritmo matemático. Eso supone un riesgo pues, si alguien lograse acceder a nuestra base de datos, podría desencriptar esas contraseña (ojo, que podrían estar sin encriptar, algo que no recomendamos). Además, como cualquier usuario puede solicitar un recordatorio de contraseña por correo electrónico, que se envía como texto legible, ahí tenemos otro importante "agujero" de seguridad.

Una forma de evitar esto es guardar las contraseñas como "hashed", de forma que no sea posible su desencriptación; esto lo hacemos modificando el parámetro passwordFormat. Y si cambiamos el parámetro enablePasswordRetrieval será suficiente para evitar que se envíen los recordatorios de contraseña: el usuario que pierda la suya recibirá un mensaje con una temporal, que deberá cambiar la primera vez que acceda al portal.

Por si alguien está suficientemente despistado, estos cambios se hacen en el nodo system.web (os copio la configuración estándar):

<membership 
  defaultProvider="AspNetSqlMembershipProvider" 
  userIsOnlineTimeWindow="15">
  <providers>
    <clear />
    <add name="AspNetSqlMembershipProvider" 
         type="System.Web.Security.SqlMembershipProvider" 
         connectionStringName="SiteSqlServer" 
         enablePasswordRetrieval="true" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         minRequiredPasswordLength="7" 
         minRequiredNonalphanumericCharacters="0" 
         requiresUniqueEmail="false" 
         passwordFormat="Encrypted" 
         applicationName="DotNetNuke" />
  </providers>
</membership>

[Ir al enlace]

etiquetas: Mitchel Sellers, contraseñas, seguridad, encriptación
Artículos relacionados:
Enviar por E-mail | Permalink | Comentarios (5) RSS comment feed | del.icio.us | Compartir

Puntuación

Comentarios

# henry gutierrez
jueves, 13 de octubre de 2011 6:55
Excelente comentario para ponerlo en practica para los que recien iniciamos a usar esta herramienta.
Gracias
# desposorio
martes, 13 de marzo de 2012 13:29
Hola, trabajo como programador y estoy creando un proceso que necesita saber la clave de un usuario de un portal dnn, pero estas están encriptadas, ¿qué algoritmo usa dnn para gestionar las contraseñas?, un saludo
# Francisco Pérez Andrés
martes, 13 de marzo de 2012 13:34
Este artículo puede servirte de inspiración: http://blog.xrmplatform.org/2012/03/get-all-users-password-from-dotnetnuke-in-one-second/
# desposorio
miércoles, 14 de marzo de 2012 9:32
Gracias, le he echado un vistazo pero no me sirve. Desde fuera de DotNetNuke, necesito encriptar una contraseña y compararla con la generada por DotNetNuke, ¿alguien sabe el método de encriptación y los datos que me hace falta conocer (password, passwordSalt,...)?
# edwin
viernes, 20 de abril de 2012 8:50
http://blog.xrmplatform.org/get-all-users-password-from-dotnetnuke-in-one-second/

Enviar comentario

Nombre (obligatorio)

Email (obligatorio)

Sitio Web

Imagen CAPTCHA
Escriba el código mostrado más arriba:


Copyright 2008-2010 - Dotware TSI S.L.