Si tratta di un'app end-to-end, in cui il server è solo una memoria temporanea "stupida". Sto considerando di utilizzare semplicemente HTTP (senza TLS) per trasmettere i testi cifrati a causa dei seguenti motivi:
- La sicurezza di un singolo algoritmo di crittografia è ben studiata,
mentre impilare più di uno è sconosciuto (ad esempio
NaCl()
rispetto aAES(NaCl()
) - Semplicità (a riposo == in transito)
- Maggiore carico del server (zero copie
sendfile(2)
vs. copia su RAM per TLS encrypt).
Quali rischi ho utilizzando una configurazione come questa:
- Due canali:
- HTTPS per autenticazione / metadati / ricevi token una tantum,
- HTTP per trasmettere i testi cifrati.
- Il client utilizza GET / POST link .
Corpo: testo cifrato (suddiviso in modo AEAD), dimensione flessibile (può essere grande) - Il server convalida il token (per impedire il riutilizzo), quindi trasmette il testo cifrato al / dal disco.
- Il client riceve e decrittografa il testo cifrato (per rilevare modifiche, troncamenti, ecc.)