NaCL: crittografare il file su più destinatari

4

Sto cercando di capire la Libreria di reti e crittografia (NaCL).

Considera di avere un file che voglio inviare a più destinatari. PGP o S / MIME supporta più destinatari crittografando il file con una singola chiave simmetrica e crittografando questa chiave simmetrica con le chiavi pubbliche dei destinatari. questo compito è facilmente raggiungibile anche con NaCL? Come? Grazie per i suggerimenti.

Aggiorna Un'idea che ho avuto è di farlo in modo simile a pgp. Calcola le chiavi di scambio della mia chiave privata e le chiavi pubbliche dei destinatari. Crea una chiave simmetrica. Crittografa la chiave simmetrica del file. Crittografa la chiave simmetrica con ogni chiave di scambio. invia file crittografato e chiave simmetrica crittografata al destinatario.

Il motivo principale per questo: voglio caricare il file crittografato solo una volta su un server in cui i destinatari possono scaricarli.

    
posta esskar 29.09.2014 - 23:34
fonte

2 risposte

4

Il formato effettivo dell'output di NaCL non è completamente specificato - o, piuttosto, è specificato come l'output non elaborato da alcune primitive crittografiche (come descritto there ). Il formato non è quindi estendibile e non include alcuna funzione che supporta più destinatari. La capacità di inviare un messaggio a più destinatari sembra essere una funzionalità che è stata sacrificata sull'altare della semplicità.

Se si desidera utilizzare NaCL e inviare ancora un singolo messaggio a più destinatari senza duplicare la maggior parte dei dati, è necessario progettare il proprio formato, in pratica facendo ciò:

  • Genera una chiave segreta casuale K .
  • Si utilizza K per crittografare il messaggio (con crypto_secretbox ).
  • Cifra K come se fosse il "messaggio" con crypto_box .

Ma poi stai definendo il tuo protocollo, costruito su primitive esistenti. Questo è il tipo esatto di cose che NaCL intendeva prevenire. Oppure, detto diversamente, se torni a fare il tuo progetto di protocollo, perché dovresti usare NaCL? E, in ogni caso, saresti da solo, sia per l'analisi della sicurezza che dell'implementazione (dato che non interagiresti con nessun altro).

Se ciò di cui hai bisogno è ciò che OpenPGP fornisce, quindi usa OpenPGP.

    
risposta data 20.11.2014 - 20:49
fonte
1

Sembra che tu abbia bisogno del tuo protocollo, come ha spiegato Tom. Se decidi di farlo, devi firmare il messaggio (con cryto_sign() ).

Quando Alice invia un messaggio a Bob, vuole accertarsi che una Vigilia intercettatrice attiva non altera il messaggio. Quindi hai l'autenticazione (che crypto_box() si occupa automaticamente). Quando Alice invia il messaggio a Bob e Charlie, vuole inoltre assicurarsi che Bob non modifichi il messaggio e lo trasmetta a Charlie. Quindi l'autenticazione non è più sufficiente, vuoi le firme.

    
risposta data 11.02.2015 - 01:24
fonte

Leggi altre domande sui tag