Componente aggiuntivo Crypto Browser

3

Quali sono le limitazioni note con addon / estensioni del browser che fanno nella crittografia del browser o un'implementazione nativa nel browser. L'addon esporrà le primitive crittografiche per l'uso in JavaScript.

L'addon del browser fungerà da soluzione provvisoria per " L'API crittografica web " in fase di sviluppo da parte del W3C.

    
posta Null 15.08.2013 - 00:04
fonte

2 risposte

1

I componenti aggiuntivi del browser sono specifici del browser, quindi qualsiasi risposta alla tua domanda può essere solo molto generica.

Alcuni browser consentono di utilizzare plugin come qualsiasi parte di codice nativo, il che può, naturalmente, fare tutto ciò che il codice nativo può fare. Per questi, l'add-on potrebbe fornire tutte le funzionalità che si possono desiderare. Altri browser applicano principalmente la logica add-on basata su Javascript, quindi qualsiasi cosa faccia il componente aggiuntivo, deve farlo entro i limiti di quel linguaggio di programmazione. Javascript non è adatto a compiti di elaborazione intensiva e la crittografia è un compito del genere. L'add-on sarebbe male, ad esempio, per decrittografare un file video o qualcosa di simile ingombrante.

Si noti che quando il browser consente i componenti aggiuntivi con codice nativo, il codice nativo dipenderà dal sistema operativo e dall'architettura della CPU. Questo è noto per essere fonte di gravi mal di testa per gli sviluppatori. Gli add-on basati su Javascript sono molto più portabili, ma pagano per prestazioni ridotte e un maggiore isolamento dal computer locale.

Il problema più grande con un componente aggiuntivo del browser è che non tutti ce l'hanno . Se le persone devono installare un componente aggiuntivo per utilizzare il sito Web, questo non è più un sito Web; l'intero punto di un sito Web è che tutti possono utilizzarlo senza alcuna installazione precedente. Un componente aggiuntivo è utile solo quando fornisce funzionalità client opzionali (quindi il codice del sito non può fare affidamento sulla sua presenza), o quando tutti lo hanno già (nel qual caso non è più un add -on, ma una "funzione nativa").

I due "componenti aggiuntivi" che si avvicinano ad essere sufficientemente prevalenti da essere considerati "sempre presenti" sono Flash e Java, ma entrambi sono ancora restrittivi (un iPad, per esempio, non ha nessuno dei due). Sarebbe alquanto improbabile che il componente aggiuntivo raggiunga un livello di successo analogo. Ciò significa che qualsiasi motivo che possa rendere una cattiva idea la crittografia dal lato del browser in un'applet Java , si applica anche allo scenario di utilizzo di un componente aggiuntivo crittografico (e Java, perlomeno, ha il muscolo e la base di codice esistente che consente una potente crittografia).

    
risposta data 15.08.2013 - 13:42
fonte
1

I service provider di solito dipendono dalla crittografia lato client perché non vogliono agire come un singolo punto di errore dal punto di vista della sicurezza. Ad esempio se si esegue la crittografia sul lato server, un utente malintenzionato (o servizi di intelligence) con accesso al server sarà in grado di intercettare tutte le password o semplicemente disabilitare la crittografia.

Se si utilizza JavaScript per la crittografia lato client, si implementa sostanzialmente una sicurezza basata su host che non è molto migliore del caso precedente: gli utenti dovranno scaricare alcuni script da una posizione remota ogni volta che vogliono eseguire la crittografia, e se quell'host (o il percorso di rete) viene compromesso, l'utente malintenzionato sarà in grado di backdoor il codice fornito. Questo era uno dei problemi originali di CryptoCat . Dovresti anche leggere il JavaScript Cryptography Considerato Nocivo di Matasano che spiega perché JavaScript è in genere una cattiva scelta per implementare la crittografia.

Questo è principalmente vero anche se si utilizza il browser JS in combinazione con qualche tipo di componente aggiuntivo installato.

La maggior parte dei punti di Thomas Pornin sui componenti aggiuntivi sono validi, ma preferirei dipendere da componenti aggiuntivi per browser puramente nativi rispetto a JS, specialmente se fanno uso di librerie crittografiche ben testate.

    
risposta data 17.08.2013 - 11:01
fonte

Leggi altre domande sui tag