Quale sarebbe un algoritmo di crittografia migliore di RSA_DES_EDE3_CBC?

1

Per prima cosa, ti prego, spiegami perché ti sto chiedendo questo:

L'implementazione predefinita di EnvelopedCms utilizza AlgorithmIdentifier che di per sé utilizzerà RSA_DES_EDE3_CBC o OID
1.2.840.113549.3.7
come algoritmo di crittografia. Molti strumenti che utilizzano EnvelopedCms sembrano copiare e & incolla codice di esempio . Ora non so voi ma nel 2017, quando leggo DES , penso " non sicuro ". Forse ho già sbagliato a questo punto, DES atleast è ancora usato qua e là, ma l'ultima volta che ho controllato la raccomandazione era di usare piuttosto codici a blocchi più avanzati come AES.

Ora per le mie domande:

  1. RSA_DES_EDE3_CBC è ancora abbastanza "sicuro"? Quando lo chiedo, voglio dire è abbastanza sicuro per i prossimi anni, dal momento che un utente tipico non vuole ricodificare i file ogni anno. Per il gusto della discussione, consideriamo la legge di Moore e ignoriamo ogni svolta imprevista, ad es. calcolo quantistico.
  2. In caso contrario, come presumo (vedi titolo), cosa OID sarebbe una scelta migliore quando si utilizza EnvelopedCms ? Forse OID 2.16.840.1.101.3.4.1.42 (è questo anche un OID di codice a blocchi corretto?) o qualcosa di ancora più avanzato? E la cosa più importante: dove posso trovare un elenco di OID / FriendlyNames supportati da AlgorithmIdentifier ?
posta masi 18.06.2017 - 08:30
fonte

2 risposte

1

RSA_DES_EDE3_CBC significa che RSA è usato insieme a una versione di DES encrypt-decrypt-encrypt (EDE3). Se per ogni passo (E, D, E) viene utilizzata una chiave univoca, si utilizza effettivamente Tripple-DES (3-DES). Secondo NIST fornisce ancora una sicurezza di 112 bit, che dovrebbe essere sufficiente oggi (06/2017 - chissà ...). Tuttavia, NIST consiglia anche l'uso di AES (128 o più).

Puoi trovare un elenco di alcuni OID supportati qui: link

Non so che tipo di software stai costruendo. Se vuoi solo crittografare qualcosa, potresti voler utilizzare RSA insieme a AES . Quindi andresti con la crittografia di un messaggio con AES128_CBC (OID 2.16.840.1.101.3.4.1.2) e la crittografia della chiave utilizzata con RSAES_OAEP (OID 1.2.840.113549.1.1.7)

Personalmente proverei libsodium ( link ) che fa un sacco di cose per te senza alcun nocciolo (genarazione chiave, avvolgimento , ...). Utilizza ChaCha20-Poly1305 anziché AES-GCM e Ed25519 invece di RSA.

    
risposta data 18.06.2017 - 13:58
fonte
1
  1. DES non è sicuro, non dovresti usarlo. Tuttavia, l'algoritmo in questione non è DES ma 3DES in Encrypt -Decrypt-Encryt mode. Ecco una risposta sulla sicurezza di questa versione.
  2. L'OID che hai pubblicato è per AES256-CBC che è un algoritmo consigliato e aggiornato. Sebbene la modalità CBC sia non è il massimo che potresti usare , per crypto simmetrico questo è il migliore che Microsoft fornisce - ecco una lista degli OID supportati .
risposta data 18.06.2017 - 12:17
fonte

Leggi altre domande sui tag