De la Seguridad del acceso a datos en aplicaciones ASP ... - Willy .Net
De la Seguridad del acceso a datos en aplicaciones ASP ... - Willy .Net
De la Seguridad del acceso a datos en aplicaciones ASP ... - Willy .Net
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Almacén de equipo fr<strong>en</strong>te a almacén de usuario<br />
DPAPI puede funcionar con el almacén de equipo o el almacén de usuario (que<br />
requiere <strong>la</strong> carga de un perfil de usuario). DPAPI ti<strong>en</strong>e como valor predeterminado el<br />
almacén de usuario, aunque se puede especificar que se utilice el almacén de<br />
equipo pasando el indicador CRYPTPROTECT_LOCAL_MACHINE a <strong>la</strong>s funciones<br />
de DPAPI.<br />
La opción de perfil de usuario proporciona un nivel adicional de seguridad ya que<br />
limita los usuarios que pued<strong>en</strong> t<strong>en</strong>er <strong>acceso</strong> al secreto. Únicam<strong>en</strong>te el usuario que<br />
cifra los <strong>datos</strong> puede descifrarlos. Sin embargo, el uso <strong>del</strong> perfil de usuario requiere<br />
un mayor desarrollo cuando se utiliza DPAPI desde una aplicación Web <strong>ASP</strong>.NET,<br />
ya que es necesario realizar pasos explícitos para cargar y descargar un perfil de<br />
usuario (<strong>ASP</strong>.NET no carga automáticam<strong>en</strong>te un perfil de usuario).<br />
La opción de almacén de equipo requiere un m<strong>en</strong>or desarrollo, ya que no es<br />
necesario administrar perfiles de usuario. Sin embargo, a m<strong>en</strong>os que se utilice un<br />
parámetro de <strong>en</strong>tropía adicional, es m<strong>en</strong>os seguro porque cualquier usuario <strong>del</strong><br />
equipo puede descifrar los <strong>datos</strong>. (La <strong>en</strong>tropía <strong>en</strong> un valor aleatorio que dificulta el<br />
descifrado <strong>del</strong> secreto). El problema <strong>del</strong> uso de un parámetro de <strong>en</strong>tropía adicional<br />
es que <strong>la</strong> aplicación debe almac<strong>en</strong>arlo de forma segura, lo que supone otro problema<br />
de administración de c<strong>la</strong>ves.<br />
Nota: Si utiliza DPAPI con el almacén de equipo, <strong>la</strong> cad<strong>en</strong>a cifrada es específica<br />
de un determinado equipo, por lo que debe g<strong>en</strong>erar los <strong>datos</strong> cifrados <strong>en</strong> cada<br />
equipo. No copie los <strong>datos</strong> cifrados <strong>en</strong>tre equipos de una batería de servidores o<br />
clúster.<br />
Si utiliza DPAPI con el almacén de usuario, puede descifrar los <strong>datos</strong> <strong>en</strong> cualquier<br />
equipo con un perfil de usuario itinerante.<br />
Soluciones de implem<strong>en</strong>tación de DPAPI<br />
En esta sección se describ<strong>en</strong> dos soluciones de implem<strong>en</strong>tación que muestran cómo<br />
utilizar DPAPI desde una aplicación Web <strong>ASP</strong>.NET para asegurar una cad<strong>en</strong>a de<br />
conexión (o cualquier tipo de secreto). En esta sección se describ<strong>en</strong> <strong>la</strong>s sigui<strong>en</strong>tes<br />
soluciones de implem<strong>en</strong>tación:<br />
Utilizar DPAPI desde Servicios Empresariales. Esta solución le permite<br />
utilizar DPAPI con el almacén de usuario.<br />
Utilizar DPAPI directam<strong>en</strong>te desde <strong>ASP</strong>.NET. Esta solución le permite<br />
utilizar DPAPI con el almacén de equipo, que facilita el desarrollo de <strong>la</strong><br />
solución, ya que puede l<strong>la</strong>marse a DPAPI directam<strong>en</strong>te desde una aplicación<br />
Web <strong>ASP</strong>.NET.<br />
Utilizar DPAPI desde Servicios Empresariales<br />
Una aplicación Web <strong>ASP</strong>.NET no puede l<strong>la</strong>mar a DPAPI y utilizar el almacén de<br />
usuario porque se requiere <strong>la</strong> carga de un perfil de usuario. La cu<strong>en</strong>ta <strong>ASP</strong>NET que<br />
se utiliza habitualm<strong>en</strong>te para ejecutar <strong>aplicaciones</strong> Web es una cu<strong>en</strong>ta no interactiva,<br />
por lo que no ti<strong>en</strong>e un perfil de usuario. Además, si <strong>la</strong> aplicación <strong>ASP</strong>.NET está<br />
sup<strong>la</strong>ntada, el subproceso de <strong>la</strong> aplicación Web se ejecuta como el usuario<br />
aut<strong>en</strong>ticado actual, que puede variar de una solicitud a <strong>la</strong> sigui<strong>en</strong>te.<br />
<strong>De</strong> este modo, una aplicación Web <strong>ASP</strong>.NET que desee utilizar DPAPI ti<strong>en</strong>e los<br />
sigui<strong>en</strong>tes problemas:<br />
Hay errores <strong>en</strong> <strong>la</strong>s l<strong>la</strong>madas a DPAPI desde una aplicación <strong>ASP</strong>.NET que se<br />
ejecute bajo <strong>la</strong> cu<strong>en</strong>ta <strong>ASP</strong>NET predeterminada. El motivo es que <strong>la</strong> cu<strong>en</strong>ta<br />
<strong>ASP</strong>NET no ti<strong>en</strong>e un perfil de usuario, ya que no se utiliza para inicios de<br />
sesión interactivos.