Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | valore |
|---|---|
| ID regola | CA5385 |
| Title | Usa l'algoritmo RSA (Rivest-Shamir-Adleman) con dimensione di chiave sufficiente |
| Categoria | Sicurezza |
| La correzione causa un'interruzione o meno | Non rompente |
| Abilitato per impostazione predefinita in .NET 10 | No |
| Linguaggi applicabili | C# e Visual Basic |
Causa
L'uso dell'algoritmo di crittografia asimmetrica RSA con dimensioni della chiave inferiori a 2048 in uno dei modi seguenti:
- Creare un'istanza di qualsiasi classe discendente di System.Security.Cryptography.RSA e specificare il parametro
KeySizecome inferiore a 2048. - Restituzione di qualsiasi oggetto il cui tipo è discendente di System.Security.Cryptography.RSA.
- Uso di System.Security.Cryptography.AsymmetricAlgorithm.Create senza parametro che creerebbe RSA con la dimensione della chiave predefinita 1024.
- Uso System.Security.Cryptography.AsymmetricAlgorithm.Create e specificando il parametro
algNamecomeRSAcon la dimensione predefinita della chiave 1024. - Utilizzo di System.Security.Cryptography.CryptoConfig.CreateFromName e specificando il parametro
namecomeRSAcon la dimensione della chiave predefinita di 1024. - Usando System.Security.Cryptography.CryptoConfig.CreateFromName e specificando il parametro
namecomeRSA, specificando esplicitamente che la dimensione della chiave è minore di 2048 tramiteargs.
Descrizione regola
Una chiave RSA inferiore a 2048 bit è più vulnerabile agli attacchi di forza bruta.
Come correggere le violazioni
Passare a un RSA con chiave di almeno 2048 bit, o agli algoritmi ECDH o ECDSA.
Quando eliminare gli avvisi
Non è consigliabile eliminare questa regola a meno che non si tratti di compatibilità con applicazioni e dati legacy.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.CA5385.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.
Esempio
Il frammento di codice seguente illustra il modello rilevato da questa regola.
Violazione:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
Soluzione:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}