Hai descritto un metodo, ma non l'obiettivo o alcuna circostanza:
- Qual è la situazione e il tuo obiettivo al suo interno?
- Di quali avversari vuoi proteggere?
Lo scenario ipotizzato
Suppongo che tu voglia:
- desideri inviare dati,
- senza che un intercettatore passivo sia in grado di ottenere il contenuto,
- dove possiedi entrambi i computer (o forse un amico possiede il computer di destinazione).
In questo caso, c'è un canale alternativo disponibile: puoi parlare con il tuo amico (o te stesso) al telefono o nella vita reale, così puoi dare loro la password. Utilizza un archivio 7z crittografato e inviaci un'email o qualcosa del genere.
Per verificare l'integrità, nel caso in cui un utente malintenzionato attivo abbia manomesso la trasmissione, è possibile calcolare l'hash (generato utilizzando, ad esempio, il comando sha256sum
su sistemi basati su GNU) e includerlo in un file in l'archivio 7z. L'archivio stesso ha già dei checksum, ma questo non si qualifica come crittografia autenticata (integrità crittografica + riservatezza), quindi è necessario verificarla separatamente. Potresti anche, quando fornisci la password, dare l'hash al tuo amico in modo che possa controllarlo in questo modo.
Ma potresti anche voler dire ...
- desideri inviare dati,
- a qualcuno che non hai mai incontrato prima (ad esempio un visitatore del tuo sito web),
- senza che un intercettatore attivo sia in grado di ottenere o modificare i contenuti.
In questo caso, come cambierai le chiavi? Qualsiasi password che invii oltre la linea, un intercettore può intercettare. E qualsiasi algoritmo di scambio di chiavi che protegge dalle intercettazioni passive, può essere sconfitto da attaccanti attivi. Il modo in cui https lo risolve è affidarsi a terzi. Avendo un certificato di una di queste parti fidate, come Let's Encrypt , il destinatario può essere ragionevolmente sicuro che le chiavi di crittografia ricevute non provengano da attaccante.
Quindi ciò di cui hai bisogno dipende davvero dalla situazione. Dalla tua descrizione, presumo che un archivio 7z crittografato sia sufficiente; ma se vuoi una risposta più specifica, devi porre una domanda più specifica.
Per quanto riguarda "la crittografia a livello singolo è sufficiente?"
Bene, quanto ti fidi di un determinato algoritmo? Posso venderti un algoritmo super deluxe per soli $ 500, ma nessuno lo ha controllato. Potresti usare AES: progettato dai belgi, usato negli standard USA, e molte persone lo hanno studiato per difetti. Le probabilità che si rompa sono, a mio avviso, trascurabili. Ma forse hai paura che la NSA abbia un AES backdoor, nel qual caso potresti voler usare algoritmi russi come GOST. Ma cosa succederebbe se i russi lo aprissero? È possibile utilizzare entrambi e mescolare i due, ma mentre in teoria non è un problema, in pratica lievi modifiche dell'uso consigliato possono causare guasti catastrofici. Avrebbe l'odore di zuppa cripta casalinga.
Per farla breve: sì, l'utilizzo di un solo livello di crittografia è decisamente sufficiente. (Assumendo una situazione standard). Tuttavia, la domanda è: l'algoritmo è sicuro? Scegli il tuo metodo di crittografia con saggezza!