Joven hacker sonriendo

Hackeamos su software

cero falsos positivos

Inteligencia experta + automatización eficaz

Definir Proveedores y Clases Criptográficas

Nuestros ethical hackers explican cómo evitar vulnerabilidades de seguridad mediante la programación segura en ASP.NET. En este artículo mostraremos cómo configurar adecuadamente los proveedores y clases criptográficas de la aplicación, estableciendo algoritmos de cifrado seguros.

Necesidad

Definir proveedores y clases criptográficas en ASP.NET.

Contexto

A continuación se describen las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. Se está desarrollando una aplicación en ASP.NET.

  2. La aplicación hará uso de métodos criptográficos.

  3. Debe usarse mecanismos criptográficos pre-existentes. [1]

Solución

Existen diversas clases para el uso criptográfico en el framework .NET, podemos listar todos los proveedores y clases que son soportadas por el framework a través del uso de Reflection.

  1. Primero usamos los nombres de espacio involucrados en la solución:

    Inclusión de librerías
    1
    2
    3
    using System;
    using System.Collections.Generic;
    using System.Reflection;
    
  2. Declaramos nuestro nombre de espacios y definimos la entrada para el programa:

    1
    2
    3
    namespace CryptographicClass {
      class Program {
        static void Main(string[] args) {
    
  3. Cargamos el archivo mscorlib.dll, el cual contiene todas las clases y métodos del núcleo de .NET:

    1
      Assembly assembly = Assembly.Load("mscorlib.dll");
    
  4. Definimos una lista donde agregaremos las clases criptográficas:

    1
      List<string> classes = new List<string>();
    
  5. Recorremos todas las clases soportadas por .NET:

    1
      foreach (Type type in assembly.GetTypes()) {
    
  6. Si el espacio de nombres de la clase pertenece a la biblioteca criptográfica, entonces agregamos el nombre de la clase a la lista definida anteriormente:

    1
    2
    3
    4
      if (type.Namespace == "System.Security.Cryptography") {
        classes.Add(type.Name);
      }
    }
    
  7. Ordenamos alfabéticamente la lista y la imprimimos:

    1
    2
    3
    4
    5
    6
    7
          classes.Sort();
          foreach (string classname in classes) {
            Console.WriteLine(classname);
          }
        }
      }
    }
    
  8. En la siguiente tabla encontrará un resumen de las clases criptográficas y el algoritmo que implementan:

Tabla 1. Clases y algoritmos de cifrado de ASP.NET

Nombre simple

Clase

Algoritmo implementado

3DES, Triple DES, TripleDES

System.Security.
Cryptography.
TripleDES

TripleDESCryptoServiceProvider

AES

System.Security.
Cryptography.
AesCryptoServiceProvider

AesCryptoServiceProvider

AesManaged

System.Security.
Cryptography.AesManaged

AesManaged

System.Security.
Cryptography.
AsymmetricAlgorithm

RSACryptoServiceProvider

DES

System.Security.
Cryptography.DES

DESCryptoServiceProvider

DSA

System.Security.
Cryptography.DSA

DSACryptoServiceProvider

ECDH

ECDiffieHellman, ECDiffieHellmanCng, System.Security.
Cryptography.
ECDiffieHellmanCng

ECDiffieHellmanCng

ECDsa, ECDsaCng

System.Security.
Cryptography.
ECDsaCng

ECDsaCng

System.Security.
Cryptography.
HashAlgorithm

SHA1CryptoServiceProvider

HMAC

System.Security.
Cryptography.HMAC

HMACSHA1

HMACMD5

System.Security.
Cryptography.
HMACMD5

HMACMD5

HMACRIPEMD160

System.Security.
Cryptography.
HMACRIPEMD160

HMACRIPEMD160

HMACSHA1

System.Security.
Cryptography.
HMACSHA1

HMACSHA1

HMACSHA256

System.Security.
Cryptography.
HMACSHA256

HMACSHA256

HMACSHA384

System.Security.
Cryptography.
HMACSHA384

HMACSHA384

HMACSHA512

System.Security.
Cryptography.
HMACSHA512

HMACSHA512

System.Security.
Cryptography.
KeyedHashAlgorithm

MACSHA1

MACTripleDES

System.Security.
Cryptography.
MACTripleDES

MACTripleDES

MD5

System.Security.
Cryptography.MD5

MD5CryptoServiceProvider

System.Security.
Cryptography.MD5Cng

MD5Cng

System.Security.
Cryptography.
RandomNumberGenerator

RNGCryptoServiceProvider

RC2

System.Security.
Cryptography.RC2

RC2CryptoServiceProvider

Rijndael

System.Security.
Cryptography.Rijndael

RijndaelManaged

RIPEMD160, RIPEMD-160

System.Security.
Cryptography.
RIPEMD160Managed

RIPEMD160Managed

RSA

System.Security.
Cryptography.RSA

RSACryptoServiceProvider

SHA, SHA1

System.Security.
Cryptography.SHA1

SHA1CryptoServiceProvider

System.Security.
Cryptography.SHA1Cng

SHA1Cng

SHA256, SHA-256

System.Security.
Cryptography.SHA256

SHA256Managed

System.Security.
Cryptography.SHA256Cng

SHA256Cng

System.Security.
Cryptography.
SHA256CryptoServiceProvider

SHA256CryptoServiceProvider

SHA384, SHA-384

System.Security.
Cryptography.SHA384

SHA384Managed

System.Security.
Cryptography.SHA384Cng

SHA384Cng

System.Security.
Cryptography.
SHA384CryptoServiceProvider

SHA384CryptoServiceProvider

SHA512, SHA-512

System.Security.
Cryptography.SHA512

SHA512Managed

System.Security.
Cryptography.SHA512Cng

SHA512Cng

System.Security.
Cryptography.
SHA512CryptoServiceProvider

SHA512CryptoServiceProvider

System.Security.
Cryptography.
SymmetricAlgorithm

System.Security.
Cryptography.SHA1




Haz un comentario

Estado de los servicios - Términos de Uso