È possibile creare un'applicazione web di chat sicura basata su socket Web HTML5?

5

È possibile creare un'applicazione web di chat sicura usando solo HTML5 e Javascript?

Quali possibili buchi di sicurezza ci sarebbero se il server non memorizzasse i messaggi, semplicemente li inoltrasse tramite websocket e la trasmissione fosse fatta su SSL?

Ciò che mi ha spinto a chiedere questo era che mi chiedevo perché Cryptocat fosse implementato come plugin per il browser. Presumo si pensi che sia più sicuro di una soluzione HTML5 pura, ma perché?

    
posta John 11.06.2013 - 19:06
fonte

2 risposte

11

In realtà, questo non ha nulla a che fare con lo spostamento di CryptoCat su un plugin / estensione del browser. Non è affatto nemmeno correlato a SSL. Avendo questo in mente, la risposta di Stephen è in qualche modo fuorviante. Cercherò di risolverlo. CryptoCat è ancora JavaScript e amp; HTML.

Fammi dedicare tutta la tua attenzione , supponiamo che SSL stia facendo il suo lavoro e sei sicuro al 100% che ti stai connettendo al vero server CryptoCat. Se Nadim (il tizio di CryptoCat) è stato costretto dalla legge a rivelare la tua futura conversazione, ti rileverà semplicemente quando ti connetti (dal tuo IP) e ti invierai qualche rogue JavaScript che renderebbe il tuo browser utilizzare una chiave personalizzata e quindi offrirsi la possibilità di decrittografare la conversazione e assegnarla all'FBI, all'NSA, alla CIA, ecc.

Questa forma di sicurezza si chiama sicurezza basata su host, in cui si dà la completa fiducia al fornitore di servizi. Sì, i tuoi contenuti sono crittografati, ma la logica di crittografia / decodifica proviene dal fornitore di servizi e possono inviarti ciò che vogliono. CryptoCat è stato criticato da Schneier e da altri ricercatori di sicurezza per questo.

Spostando il codice su un plug-in del browser, ora devi fidarti dell'origine solo la prima volta che scarichi il codice. La comunicazione avviene ancora tra te e il server, la crittografia e la decifrazione continuano anche nel tuo browser, il codice è ancora JavaScript e HTML5. L'unica differenza qui è che la prossima volta che ti connetti ai server CryptoCat, non devi fidarti del codice che ti hanno inviato. Il codice nel tuo browser sempre, puoi controllarlo e controllarlo quando vuoi.

Patrick Ball ha scritto un articolo molto interessante sull'argomento ; spiega il concetto di sicurezza basata su host e altri problemi correlati. Ti aiuterà a capire il quadro generale relativo a questo argomento.

Per rispondere direttamente alla tua domanda , sì è possibile. CryptoCat è un ottimo esempio.

    
risposta data 11.06.2013 - 21:21
fonte
1

Essenzialmente, l'unico modo per ottenere questo tipo di cose è inviare Javascript e HTML al browser.

Ma il problema inerente è che la sicurezza dell'intero sistema dipende interamente dalla pubblicazione di HTML e Javascript per il browser. E questo si riduce a SSL e al sistema dell'autorità di certificazione. Quindi, nel migliore dei casi, la sicurezza di qualsiasi applicazione puramente HTML e Javascript non è migliore di quella del sistema CA che abbiamo in atto: se puoi sfruttare il sistema CA (che è stato fatto), puoi rompere la sicurezza di una tale chat applicazione.

    
risposta data 11.06.2013 - 20:04
fonte

Leggi altre domande sui tag