Serve aiuto nella progettazione di un flusso di lavoro di crittografia

1

Background: sto costruendo un'applicazione .NET, una parte molto piccola di questa applicazione consente agli utenti di comunicare con un'applicazione di terze parti. Sto progettando questo aspetto. La terza parte ha semplicemente bisogno del nome utente e del tempo di scadenza (probabilmente sarà molto breve), perché hanno accesso al controllo, contro il nostro negozio utente, se alcuni utenti sono validi.

Il mio piano è di usare una sorta di combinazione AES / RSA per fare questo. Ho un certificato che potrei passare, in comunicazione privata, a loro per la decrittazione RSA. Forse fai quanto segue:

  1. Cripta le informazioni richieste con RSA (utilizzando il certificato)
  2. Cifra queste informazioni con AES (aggiungi vettore di inizializzazione alla fine)
  3. Passa alla terza parte
  4. Fagli decrittografare usando la IV e la chiave privata che darò loro (passati in comunicazioni private)
  5. Fagli decifrare utilizzando RSA e il certificato

Sei sulla strada giusta qui?

Grazie

    
posta shenn 25.03.2014 - 22:33
fonte

1 risposta

-1

Penso che dovresti considerare un approccio più standard per l'archiviazione e l'inoltro, che è simile al metodo di posta elettronica crittografato S / MIME. Dai un'occhiata a PKCS # 7 e XML Encryption standard.

Questi tipi di protocolli funzionano dove il mittente del messaggio cerca il certificato di ciascun destinatario nell'archivio utente. Il mittente genera una chiave simmetrica (AES va bene) per crittografare il messaggio e crittografa la chiave utilizzando la chiave pubblica di ciascun destinatario, che ora ha nei loro certificati. Il messaggio crittografato e la copia di ciascun destinatario della chiave AES crittografata sono raggruppate insieme e inviate come messaggio.

In pratica, è meglio utilizzare RSA per la chiave d'accordo e AES per la crittografia di massa.

Perché?

RSA è asimmetrico e basato su matematica complessa. È lento L'algoritmo non è progettato per la velocità. L'algoritmo è anche limitato nelle dimensioni di ciò che può essere crittografato. La lunghezza massima del messaggio che può essere crittografata è la stessa della dimensione della chiave. Quindi per le chiavi a 1024 bit una dimensione massima dei messaggi di 128 byte, ecc ...

AES e altri algoritmi simmetrici sono progettati per velocità, efficienza e velocità effettiva.

Sebbene la gestione delle chiavi sia difficile, combinando la crittografia asimmetrica e simmetrica sarà possibile concordare chiavi e crittografia collettiva.

    
risposta data 26.03.2014 - 05:44
fonte

Leggi altre domande sui tag