Compartir a través de


Privacidad y seguridad de datos

Proteger y administrar información confidencial en una aplicación de ADO.NET depende de los productos y tecnologías subyacentes que se usan para crearla. ADO.NET no proporciona directamente servicios para proteger o cifrar datos.

Códigos criptográficos y hash

Las clases del espacio de nombres de .NET Framework System.Security.Cryptography se pueden usar desde las aplicaciones de ADO.NET para evitar que terceros no autorizados lean o modifiquen los datos. Algunas clases son contenedores para Microsoft CryptoAPI no administrado, mientras que otras son implementaciones administradas. El tema Servicios criptográficos proporciona información general sobre la criptografía en .NET Framework, describe cómo se implementa el criptográfico y cómo puede realizar tareas criptográficas específicas.

A diferencia de la criptografía, que permite cifrar los datos y, a continuación, descifrarlos, los datos hash son un proceso unidireccional. Los datos hash son útiles cuando se desea evitar la manipulación comprobando que no se han modificado los datos: dadas cadenas de entrada idénticas, los algoritmos hash siempre generan valores de salida cortos idénticos que se pueden comparar fácilmente. Garantizar la integridad de los datos con códigos hash describe cómo puede generar y comprobar valores hash.

Cifrado de archivos de configuración

La protección del acceso al origen de datos es uno de los objetivos más importantes a la hora de proteger una aplicación. Las cadenas de conexión presentan una posible vulnerabilidad si no se protegen. Las cadenas de conexión guardadas en los archivos de configuración se almacenan en archivos XML estándar para los que .NET Framework ha definido un conjunto común de elementos. La configuración protegida permite cifrar información confidencial en un archivo de configuración. Aunque se ha diseñado principalmente para aplicaciones de ASP.NET, la configuración protegida también se puede usar para cifrar las secciones de archivos de configuración en las aplicaciones de Windows. Para obtener más información, consulte Protección de la información de conexión.

Protección de valores de cadena en la memoria

Si un String objeto contiene información confidencial, como una contraseña, un número de tarjeta de crédito o datos personales, existe el riesgo de que la información se pueda revelar después de su uso porque la aplicación no puede eliminar los datos de la memoria del equipo.

Un String objeto es inmutable; su valor no se puede modificar una vez creado. Los cambios que parecen modificar el valor de cadena crean realmente una nueva instancia de un String objeto en memoria, almacenando los datos como texto sin formato. Además, no es posible predecir cuándo se eliminarán las instancias de cadena de la memoria. La reclamación de memoria con cadenas no es determinista en la recolección de elementos no utilizados de .NET. Debe evitar usar las clases String y StringBuilder si los datos son realmente confidenciales.

La SecureString clase proporciona métodos para cifrar texto mediante la API de protección de datos (DPAPI) en memoria. A continuación, la cadena se elimina de la memoria cuando ya no es necesaria. No hay ningún ToString método para leer rápidamente el contenido de un SecureString. Puede inicializar una nueva instancia de SecureString sin ningún valor o pasando un puntero a una matriz de Char objetos . A continuación, puede usar los distintos métodos de la clase para manipular la cadena.

Consulte también