Criptografía
En el artículo se proporciona información general sobre las características de criptografía disponibles para Plataforma universal de Windows aplicaciones (UWP). Para obtener información detallada sobre tareas concretas, consulte la tabla al final de este artículo.
Terminología
La terminología siguiente se usa habitualmente en la criptografía y la infraestructura de clave pública (PKI).
Término | Descripción |
---|---|
Cifrado | Proceso de transformación de datos mediante un algoritmo criptográfico y una clave. Los datos transformados solo se pueden recuperar mediante el mismo algoritmo y la misma clave (simétrica) o relacionada (pública). |
Descifrado | Proceso de devolver datos cifrados a su forma original. |
Texto no cifrado | Originalmente se hace referencia a un mensaje de texto sin cifrar. Actualmente hace referencia a los datos sin cifrar. |
Texto cifrado | Originalmente se hace referencia a un mensaje de texto cifrado y, por tanto, no legible. Actualmente hace referencia a los datos cifrados. |
Aplicación de algoritmo hash | Proceso de conversión de datos de longitud variable en una longitud fija, normalmente menor, valor. Al comparar hashes, puede obtener una garantía razonable de que dos o más datos son los mismos. |
Signature | Hash cifrado de datos digitales que normalmente se usa para autenticar al remitente de los datos o comprobar que los datos no se han alterado durante la transmisión. |
Algoritmo | Procedimiento paso a paso para cifrar datos. |
Clave | Número aleatorio o pseudoaleatorio usado como entrada para un algoritmo criptográfico para cifrar y descifrar datos. |
Criptografía de clave simétrica | Criptografía en la que el cifrado y el descifrado usan la misma clave. Esto también se conoce como criptografía de clave secreta. |
Criptografía de clave asimétrica | Criptografía en la que el cifrado y el descifrado usan una clave diferente pero relacionada matemáticamente. Esto también se denomina criptografía de clave pública. |
Encoding | Proceso de codificación de mensajes digitales, incluidos certificados, para el transporte a través de una red. |
Proveedor de algoritmos | Dll que implementa un algoritmo criptográfico. |
Proveedor de almacenamiento de claves | Contenedor para almacenar material de clave. Actualmente, las claves se pueden almacenar en software, tarjetas inteligentes o en el módulo de plataforma segura (TPM). |
Certificado X.509 | Un documento digital, normalmente emitido por una entidad de certificación, para comprobar la identidad de una persona, un sistema o una entidad a otras partes interesadas. |
Espacios de nombres
Los siguientes espacios de nombres están disponibles para su uso en aplicaciones.
Windows.Security.Cryptography
Contiene la clase CryptographicBuffer y los métodos estáticos que le permiten:
- Conversión de datos hacia y desde cadenas
- Conversión de datos en matrices de bytes y desde ellos
- Codificación de mensajes para el transporte de red
- Descodificar mensajes después del transporte
Windows.Security.Cryptography.Certificates
Contiene clases, interfaces y tipos de enumeración que permiten:
- Creación de una solicitud de certificado
- Instalación de una respuesta de certificado
- Importación de un certificado en un archivo PFX
- Especificar y recuperar propiedades de solicitud de certificado
Windows.Security.Cryptography.Core
Contiene clases y tipos de enumeración que le permiten:
- Cifrado y descifrado de datos
- Datos hash
- Firma de datos y comprobación de firmas
- Creación, importación y exportación de claves
- Trabajar con proveedores de algoritmos de clave asimétrica
- Trabajar con proveedores de algoritmos de clave simétrica
- Trabajar con proveedores de algoritmos hash
- Trabajar con proveedores de algoritmos de código de autenticación de máquina (MAC)
- Trabajar con proveedores de algoritmos de derivación de claves
Windows.Security.Cryptography.DataProtection
Contiene clases que le permiten:
- Cifrar y descifrar datos estáticos de forma asincrónica
- Cifrado y descifrado asincrónico de flujos de datos
Funcionalidades de aplicaciones crypto y PKI
La interfaz de programación de aplicaciones simplificada disponible para las aplicaciones permite las siguientes funcionalidades de infraestructura de claves criptográficas y públicas (PKI).
Compatibilidad con criptografía
Puede realizar las siguientes tareas criptográficas. Para obtener más información, consulte el espacio de nombres Windows.Security.Cryptography.Core.
- Creación de claves simétricas
- Realizar cifrado simétrico
- Creación de claves asimétricas
- Realizar cifrado asimétrico
- Derivar claves basadas en contraseñas
- Creación de códigos de autenticación de mensajes (MAC)
- Contenido hash
- Firmar contenido digitalmente
El SDK también proporciona una interfaz simplificada para la protección de datos basada en contraseña. Puede usarlo para realizar las siguientes tareas. Para obtener más información, consulte el espacio de nombres Windows.Security.Cryptography.DataProtection.
- Protección asincrónica de datos estáticos
- Protección asincrónica de un flujo de datos
Compatibilidad con la codificación
Una aplicación puede codificar datos criptográficos para la transmisión a través de una red y descodificar los datos recibidos de un origen de red. Para obtener más información, vea los métodos estáticos disponibles en el espacio de nombres Windows.Security.Cryptography.
Compatibilidad con PKI
Las aplicaciones pueden realizar las siguientes tareas PKI. Para obtener más información, consulte el espacio de nombres Windows.Security.Cryptography.Certificates.
- Crear un certificado
- Crear un certificado autofirmado
- Instalación de una respuesta de certificado
- Importación de un certificado en formato PFX
- Uso de certificados y claves de tarjeta inteligente (conjunto de funcionalidades sharedUserCertificates)
- Usar certificados del almacén MY de usuario (conjunto de funcionalidades sharedUserCertificates)
Además, puede usar el manifiesto para realizar las siguientes acciones:
- Especificación de certificados raíz de confianza por aplicación
- Especificación de certificados de confianza del mismo nivel de aplicación
- Deshabilitar explícitamente la herencia de la confianza del sistema
- Especificar los criterios de selección de certificados
- Solo certificados de hardware
- Certificados que se encadenan a través de un conjunto especificado de emisores
- Selección automática de un certificado en el almacén de aplicaciones
Artículos detallados
En los artículos siguientes se proporcionan más detalles sobre los escenarios de seguridad:
Tema | Descripción |
---|---|
Certificados | En este artículo se describe el uso de certificados en aplicaciones para UWP. Los certificados digitales se usan en criptografía de clave pública para enlazar una clave pública a una persona, un equipo o una organización. Las identidades enlazadas suelen usarse para autenticar una entidad a otra. Por ejemplo, los certificados se suelen usar para autenticar un servidor web a un usuario y un usuario a un servidor web. Puedes crear solicitudes de certificados e instalar o importar certificados emitidos. También puedes inscribir un certificado en una jerarquía de certificados. |
Claves de cifrado | En este artículo se muestra cómo usar funciones de derivación de claves estándar para derivar claves y cómo cifrar contenido mediante claves simétricas y asimétricas. |
Protección de datos | En este artículo se explica cómo usar la clase DataProtectionProvider en el espacio de nombres Windows.Security.Cryptography.DataProtection para cifrar y descifrar datos digitales en una aplicación para UWP. |
MAC, hash y firmas | En este artículo se describe cómo se pueden usar códigos de autenticación de mensajes (MAC), hashes y firmas en aplicaciones para UWP para detectar alteraciones de mensajes. |
Restricciones de exportación sobre la criptografía | Usa esta información para determinar si la aplicación usa criptografía de una manera que pueda impedir que aparezca en Microsoft Store. |
Tareas comunes de criptografía | Estos artículos proporcionan código de ejemplo para tareas comunes de criptografía de UWP, como crear números aleatorios, comparar búferes, convertir entre cadenas y datos binarios, copiar y desde matrices de bytes y codificar y descodificar datos. |