Trasmissione di informazioni crittografate a SaaS tramite AES

0

Sono nuovo per l'intera cosa della crittografia. Di recente ho letto molto su questo argomento, ma ho ancora alcune domande. Quindi ho il compito di creare da parte nostra un segno di soluzione che trasmetta in modo sicuro le informazioni dai nostri server a un SaaS.

Questa informazione è molto sensibile (non le password però) e quindi perché abbiamo bisogno di crittografarlo. Quello che sto cercando di capire è come faccio a mandare informazioni su come decifrare queste informazioni al SaaS. In questo momento ho installato il file in .net che lo crittografo utilizzando AES con una chiave a 256 bit, 128 bit IV, utilizzando il padding PKCS7 e la modalità di crittografia CBC. Ho letto informazioni contrastanti sull'opportunità o meno di modificare la chiave e IV ogni volta o meno. Se cambio la chiave e IV ogni volta come faccio a comunicare in sicurezza il mio SaaS in modo che possano decifrare le informazioni? C'è un'altra pratica migliore che dovrei fare per inviare queste informazioni al SaaS per essere decifrato?

    
posta ios85 15.09.2016 - 14:55
fonte

2 risposte

1

Per prima cosa ti suggerisco di non tentare di reinventare la ruota : dalla tua descrizione, sei già fuori dalla tua profondità e dovresti cercare di costruire la tua sicurezza in questo modo (anche usando buone primitive).

Fondamentalmente, devi capire prima se vuoi proteggere i tuoi dati in transito o a riposo (o entrambi).

Se desideri crittografare dati in transito , quindi utilizzare TLS . Puoi discutere su quale tipo di certificato o autenticazione, riflettere su quale supporto hai bisogno ma in nessun caso dovresti provare a sostituirlo con qualcosa di tuo.

Se vuoi crittografare dati a riposo , le cose sono un po 'meno chiare . La regola generale, tuttavia, rimane la stessa: scegli un set di standard che soddisfi le tue necessità ( S / MIME , PGP , PKCS # 12 per citarne alcuni esempi) e usarlo. Scoprirai subito che la parte più difficile non è la crittografia, ma gestione delle chiavi : archiviare le tue chiavi crittografiche in modo sicuro, pur consentendo loro di essere usato quando necessario è una vera sfida in quasi tutti i casi.

Ecco tuttavia un paio di risposte alle tue domande:

Gli IV dovrebbero essere rigenerati per OGNI messaggio e mai riutilizzati. Questo è un requisito per CBC essere "sicuro". (nota che, personalmente, quando dovevo occuparmi di CBC preferivo perpendicolare i dati con un singolo blocco di dati casuali che avrei scartato durante la decifrazione, ho trovato più facile gestire che tenere traccia degli IV).

La chiave, tuttavia, è segreta. A seconda dell'esatta necessità, può essere statico (non cambiando mai durante il normale funzionamento) o dinamico (potrebbe essere univoco per ciascun messaggio e derivato da un protocollo di scambio di chiavi o generato casualmente prima di essere crittografato con un cypher asimmetrico come RSA ) .

Parlando di CBC , sappi che NON è considerato una modalità sicura: può essere vulnerabile a riempimento degli attacchi oracle .

    
risposta data 15.09.2016 - 16:22
fonte
0

Sì, per ogni applicazione che richiede una strong sicurezza, riutilizzare le chiavi è una cattiva idea (tosse chiavi del codice rolling key della macchina). Ma cambiarli senza trasmettere era sempre un problema difficile. Quindi è stata visualizzata la crittografia asimmetrica.

Penso che quello che stai cercando sia il protocollo effimero di scambio chiavi effimero di Diffie-Hellman. Questo è un modo per rinegoziare le chiavi senza che un intercettatore sia in grado di acquisire la chiave.

Ulteriori informazioni

    
risposta data 15.09.2016 - 15:43
fonte

Leggi altre domande sui tag