algoritmi WebCrypto e differenze con altre librerie crittografiche

3

Stavo guardando le librerie crittografiche WebCrypto provenienti dal W3C. Sembra che siano supportati solo alcuni crittosistemi, tra cui AES-CBC, AES-CTR, AES-GCM e RSA-OAEP.

link

Significa che siamo sfortunati se vogliamo un criptosistema diverso? Sto lavorando su crittografia omomorfica e voglio usare Pallier e ordinare la conservazione della crittografia.

Una domanda correlata è perché la nuova API di webcrypto è migliore dell'utilizzo di un'API crittografica esistente come la Stanford Crypto Library? La libreria Stanford Crypto espone le primitive più utili che rendono possibile implementare crittosistemi arbitrari come questa implementazione di Pallier link

    
posta leontp587 16.12.2015 - 16:51
fonte

2 risposte

3

I was looking at the WebCrypto crypto libraries coming form the W3C. Looks like only a few cryptosystems are supported, including AES-CBC, AES-CTR, AES-GCM, and RSA-OAEP.

In primo luogo, è importante capire perché abbiamo lo standard API Web Crypto a tutti. Non è progettato per essere una libreria crittografica onnicomprensiva per qualsiasi scopo possibile, ma in particolare per creare un'API crittografica sicura e interoperabile per gestire una serie specifica di casi d'uso, in modo che gli sviluppatori di applicazioni possano essere ragionevolmente sicuri che le implementazioni sicure di le API specificate saranno disponibili su più agenti utente.

Does that mean we're out of luck if we want a different cryptosystem?

L'API Web Crypto è ancora in fase di sviluppo, quindi finché non è finalizzata, non c'è alcuna garanzia. Tuttavia, direi che a questo punto è più probabile che i sistemi e i casi d'uso vengano rimossi a causa della mancanza di implementazioni interoperabili, che aggiunte.

A related question is why the new webcrypto API is better than using an existing crypto API such as the Stanford Crypto Library?

È meglio perché è incorporato nell'agente utente. Ciò significa che non può essere manomesso da un MitM, un'applicazione non può fornire versioni diverse a utenti diversi e così via. Ciò significa che è molto più difficile da sovvertire e che sono necessarie solo garanzie di sicurezza dall'agente utente, non dal programma utente e dalla libreria crittografica. Detto questo, se non fa quello che ti serve, allora non fa quello che ti serve, e la tua unica opzione è guardare altre opzioni.

    
risposta data 15.02.2016 - 15:13
fonte
1

Sembra che tu voglia lavorare a un diverso livello di astrazione. Un tipico caso d'uso degli sviluppatori è di natura molto avanzata. Pensa a "rendere impossibile leggere per chiunque altro tranne Bob". O "controlla se questo proviene da Alice". Se una libreria fornisce API di livello troppo basso, le persone commettono errori (come in "cosa è IV? OK, lo imposterà su tutti gli zeri").

Tuttavia, nel tuo caso stai effettivamente sviluppando questa funzionalità di alto livello e hai bisogno di avere un controllo molto più preciso su ciò che stai facendo. Quindi non sarei sorpreso che l'API dell'utente finale non ti fornisca tutte le manopole e le maniglie (come ad esempio algoritmi più esotici) di cui hai bisogno.

Rispondendo alla seconda domanda, non penso sia meglio, è solo diversa e può servire a scopi diversi.

    
risposta data 17.12.2015 - 12:23
fonte

Leggi altre domande sui tag