Cryptography Model
Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

.NET Framework Cryptography Model

 

.NET Framework proporciona implementaciones de numerosos algoritmos criptográficos estándar. Estos algoritmos son fáciles de usar y tienen las propiedades predeterminadas más seguras. Además, el modelo de criptografía de .NET Framework de herencia de objetos, diseño de secuencias y configuración es muy extensible.

El sistema de seguridad de .NET Framework implementa un patrón extensible de herencia de clases derivadas. La jerarquía es la siguiente:

Si se usa este modelo de clases derivadas, es fácil agregar un nuevo algoritmo o una nueva implementación de un algoritmo existente. Por ejemplo, para crear un nuevo algoritmo de clave pública, heredaría de la clase AsymmetricAlgorithm. Para crear una nueva implementación de un algoritmo específico, crearía una clase derivada no abstracta de ese algoritmo.

Como ejemplo de las distintas implementaciones disponibles de un algoritmo, considere los algoritmos simétricos. La base de todos los algoritmos simétricos es SymmetricAlgorithm, que heredan los siguientes algoritmos:

  1. Aes

  2. DES

  3. RC2

  4. Rijndael

  5. TripleDES

Dos clases heredan Aes: AesCryptoServiceProvider y AesManaged. La clase AesCryptoServiceProvider es un contenedor que envuelve la implementación de Aes de la API de criptografía de Windows (CAPI), mientras que la clase AesManaged está escrita completamente en código administrado. También hay un tercer tipo de implementación, Cryptography Next Generation (CNG), además de las implementaciones administradas y de CAPI. Un ejemplo de un algoritmo CNG es ECDiffieHellmanCng. Los algoritmos CNG se encuentran disponibles en Windows Vista y versiones posteriores.

Puede elegir qué implementación es mejor para usted. Las implementaciones administradas están disponibles en todas las plataformas compatibles con .NET Framework. Las implementaciones de CAPI están disponibles en sistemas operativos anteriores y ya no se desarrollan. CNG es la última implementación, donde se lleva cabo el nuevo desarrollo. Sin embargo, las implementaciones administradas no disponen del certificado de Estándares de procesamiento de información federal (FIPS) y pueden ser más lentas que las clases contenedoras.

El Common Language Runtime usa un diseño orientado a secuencias para implementar algoritmos simétricos y algoritmos hash. El núcleo de este diseño es la clase CryptoStream, que se deriva de la clase Stream. Los objetos criptográficos basados en secuencias admiten una interfaz estándar única (CryptoStream) para controlar la parte de transferencia de datos del objeto. Como todos los objetos se crean en una interfaz estándar, puede encadenar varios objetos (como un objeto hash seguido de un objeto de cifrado) y puede realizar diversas operaciones en los datos sin necesidad de un almacenamiento intermedio para ellos. El modelo de transmisión por secuencias también permite crear objetos a partir de objetos más pequeños. Por ejemplo, un algoritmo combinado de cifrado y hash puede verse como un solo objeto de secuencia, aunque este objeto podría generarse a partir de un conjunto de objetos de secuencia.

La configuración criptográfica le permite resolver una implementación específica de un algoritmo a un nombre de algoritmo, lo que permite la extensibilidad de las clases de criptografía de .NET Framework. Puede agregar su propia implementación de hardware o software de un algoritmo y asignar la implementación al nombre del algoritmo que quiera. Si un algoritmo no se especifica en el archivo de configuración, se usa la configuración predeterminada. Para obtener más información acerca de la configuración criptográfica, consulteConfigurar clases de criptografía.

Puede seleccionar un algoritmo por diferentes motivos: por ejemplo, para proteger la integridad de los datos, para proteger la privacidad de los datos o para generar una clave. Los algoritmos simétricos y hash están diseñados para proteger los datos por motivos de integridad (impedir los cambios) o por motivos de privacidad (impedir la visualización). Los algoritmos hash se usan principalmente para proteger la integridad de los datos.

Esta es una lista de los algoritmos recomendados en función de la aplicación:

Mostrar:
© 2016 Microsoft