Bene, un problema fino a poco tempo fa (cioè la scorsa settimana!) era che le implementazioni di Math.random () nella maggior parte dei browser erano, francamente, spazzatura. Entrambi V8 (il motore Javascript dietro a Chrome e NodeJS) e < a href="http://jandemooij.nl/blog/2015/11/30/testing-math-random-crolking-the-browser/"> Spidermonkey (il motore di Firefox) ha utilizzato PRNG con periodi troppo brevi e ci sono prove che suggeriscono che anche IE e Edge hanno rotto i PRNG. Ciò significa che se ci sono chiamate da qualsiasi cosa in un livello che si basa su di loro, ci sarà un insieme limitato di risultati possibili. Ora, questo può ancora essere un sacco di risultati (circa 590 milioni, per il caso V8), ma questo è molto meno del 2 ^ 132 ideale (5.444.517,870,735,015,415,413,993,718,908,291,383,296).
Ciò significa che qualsiasi attacco ha una probabilità molto più alta di successo: intercettare i dati in transito e quindi attaccare offline. Potrebbe richiedere un po 'di tempo, ma AES è veloce sui processori moderni e i computer sono economici.
Altri problemi con questo potrebbero essere: come si può garantire che non ci siano estensioni in uso? Il browser è fuori dal tuo controllo. Come puoi essere sicuro che non ci siano difetti nascosti in IPFS? I professionisti della sicurezza tendono a preferire i sistemi che sono stati soggetti a molti attacchi, e non sono stati rotti, a nuovi sistemi che non sono stati testati tanto. Anche se la teoria matematica è perfettamente valida, l'implementazione è corretta? Un errore di battitura o un'aggiunta errata potrebbe causare un grosso problema: vedi Heartbleed.
Ci sono anche problemi con altre parti dell'infrastruttura del browser che possono influenzare alcuni tipi di crittografia nel browser. L'interfaccia di FileWriter era deprecata, il che significa che qualsiasi cosa più grande della memoria del browser non può essere decifrata in modo affidabile (non esiste un modo ragionevole di scriverlo su disco - stranamente, FileReader funziona bene per la crittografia). Manca il supporto del browser per le operazioni di crittografia: Windows e Linux possono utilizzare chiamate native per AES al giorno d'oggi, su processori moderni, ma ci vorrebbe del lavoro per rendere i browser in grado di fare lo stesso.
Ci stiamo arrivando, ma non è ancora un problema risolto. Se IPFS resiste al controllo, i produttori di browser implementano fonti di randomizzazione migliorate, e così via, sarà vicino. Il problema dell'estensione non sembra destinato a scomparire - le persone sembrano attaccate ai loro adblockers, e probabilmente non vogliono scambiare la sicurezza non avendo abilitate le estensioni per gli annunci pubblicitari!