CA5385: Usar un algoritmo de Rivest-Shamir-Adleman (RSA) con un tamaño de clave suficiente
Propiedad | Value |
---|---|
Identificador de la regla | CA5385 |
Título | Usar un algoritmo de Rivest-Shamir-Adleman (RSA) con un tamaño de clave suficiente |
Categoría | Seguridad |
La corrección interrumpe o no interrumpe | Poco problemático |
Habilitado de forma predeterminada en .NET 9 | No |
Causa
El uso del algoritmo de cifrado asimétrico RSA con un tamaño de clave inferior a 2048 de una de las siguientes maneras:
- Crear instancias de las clases descendientes de System.Security.Cryptography.RSA y especificar el parámetro
KeySize
como menor que 2048. - Devolver cualquier objeto cuyo tipo sea descendiente de System.Security.Cryptography.RSA.
- Usar System.Security.Cryptography.AsymmetricAlgorithm.Create sin parámetro, lo que crearía RSA con el tamaño de clave predeterminado de 1024.
- Usar System.Security.Cryptography.AsymmetricAlgorithm.Create y especificar el parámetro
algName
comoRSA
con el tamaño de clave predeterminado de 1024. - Usar System.Security.Cryptography.CryptoConfig.CreateFromName y especificar el parámetro
name
comoRSA
con el tamaño de clave predeterminado de 1024. - Usar System.Security.Cryptography.CryptoConfig.CreateFromName, especificar el parámetro
name
comoRSA
y especificar el tamaño de clave como menor que 2048 explícitamente medianteargs
.
Descripción de la regla
Una clave RSA de menos de 2048 bits es más vulnerable a los ataques por fuerza bruta.
Cómo corregir infracciones
Cambie a un RSA con al menos 2048 de tamaño de clave y un algoritmo ECDH o ECDsa como alternativa.
Cuándo suprimir las advertencias
No se recomienda suprimir esta regla a menos que exista compatibilidad con las aplicaciones y los datos heredados.
Supresión de una advertencia
Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.
#pragma warning disable CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none
del archivo de configuración.
[*.{cs,vb}]
dotnet_diagnostic.CA5385.severity = none
Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.
Ejemplo
El fragmento de código siguiente muestra el patrón que detecta esta regla.
Infracción:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
Solución:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}