Sto creando un'applicazione che richiede il trasferimento sicuro dei dati. In particolare, il mittente ha un file di dati che deve essere inviato al destinatario. È richiesto che solo il ricevitore sia in grado di leggere i dati. È anche richiesto che il ricevitore possa sapere con certezza che i dati provengono dal mittente.
Il mittente e il destinatario hanno una relazione commerciale a lungo termine e avranno scambiato le chiavi pubbliche. I file di dati da trasmettere non sono piccoli.
Sto presumendo che Bouncy Castle sia una buona strada da percorrere, ma sono aperto ad altri suggerimenti.
Ho letto tutta la documentazione di BC che posso trovare (nessuna) e guardo l'API e alcuni esempi che ho trovato su internet. Sembra che voglia usare CMSEnvelopedDataGenerator
, ma ho alcune domande specifiche:
- Esattamente come posso configurare la crittografia dei dati (presumibilmente usando AES)?
- Esattamente come posso configurare la doppia firma (utilizzando la chiave privata del mittente e la chiave pubblica del destinatario)?
- Posso configurarlo in modo tale che i dati vengano compressi / compressi prima di essere crittografati?
- L'implementazione BC di questo scenario è sicura e sicura da usare? Ci sono impostazioni / algoritmi / parametri specifici che sono necessari per renderlo sicuro?
- Esiste un'applicazione standalone disponibile di terze parti che posso utilizzare per leggere / convalidare che l'output BC è effettivamente corretto e sicuro?
- Che altro dovrei chiedere (sono un new-crypto)? O c'è un modo migliore per fare ciò che sto cercando?
Domanda di follow-up Facendo ulteriori ricerche, mi sono imbattuto in questo articolo . Le mie esigenze sono tali che non devo essere suscettibile all'inoltro surrettizio. L'articolo è vecchio Le varie tecnologie "sicure" continuano a soffrire dei difetti citati? Qualcuno dei prodotti / librerie standard fornisce una soluzione sicura in un modo standard?