qual è la differenza tra wakeboard e kite surf?
il wakeboard è uno sport simile allo sci nautico, ma utilizzi una tavola simile ad uno snowboard (e simile anche a quella da kitesurf) e quindi sei tirato da un motoscafo. nel kitesurf invece sei tirato da un aquilone (da qui in nome kite che significa aquilone in inglese).
<p>innanzitutto ciò dipende interamente dalla crittografia utilizzata dal punto di accesso. esistono diversi tipi di crittografia possibile. principalmente sui punti di accesso wireless di consumo si tratta di:</p><ul> <li>wep</li> <li>wpa</li> <li>wpa2</li> <li>wps</li> </ul><h2>wep</h2><p>immergiamoci prima in wep. wep è stato il primo algoritmo utilizzato per proteggere i punti di accesso wireless. sfortunatamente è stato scoperto che wep presentava alcuni gravi difetti. nel 2001, 3 ricercatori che lavoravano a berkeley hanno prodotto un documento chiamato " <a href="http://www.isaac.cs.berkeley.edu/isaac/wep-faq.html">(in) security of the wep algoritmo</a> ". hanno riscontrato i seguenti difetti in wep:</p><ul> <li>attacchi passivi per decrittografare il traffico sulla base di analisi statistiche.</li> <li>attacco attivo per iniettare nuovo traffico da stazioni mobili non autorizzate, basato su testo in chiaro noto.</li> <li> <p>attacchi attivi per decrittografare il traffico, basati sull'inganno del punto di accesso.</p> </li> <li> <p>attacco da dizionario che, dopo aver analizzato il traffico di circa un giorno, consente la decrittazione automatizzata in tempo reale di tutto il traffico.</p> </li> </ul><p>un estratto dal loro articolo sui problemi tecnici con wep:</p><blockquote> <p>wep utilizza l'algoritmo di crittografia rc4, noto come crittografia di flusso. un codice di flusso funziona espandendo una chiave breve in un flusso di chiavi pseudo-casuale infinito. il mittente xor esegue il flusso chiave con il testo in chiaro per produrre testo cifrato. il destinatario ha una copia della stessa chiave e la utilizza per generare un flusso di chiavi identico. xoring il flusso di chiavi con il testo cifrato produce il testo in chiaro originale.</p> <p>questa modalità operativa rende le cifrature di flusso vulnerabili a numerosi attacchi. se un utente malintenzionato lancia un bit nel testo cifrato, quindi al momento della decrittazione, il bit corrispondente nel testo in chiaro verrà capovolto. inoltre, se un intercettatore intercetta due crittografati crittografati con lo stesso flusso di chiavi, è possibile ottenere il xor dei due testi semplici. conoscenza di questo xor può abilitare gli attacchi statistici per recuperare i testi in chiaro. gli attacchi statistici diventano sempre più pratici man mano che vengono conosciuti più testi cifrati che usano lo stesso flusso chiave. una volta che uno dei testi in chiaro viene conosciuto, è banale recuperare tutti gli altri.</p> <p>wep ha difese contro entrambi questi attacchi. per assicurarsi che un pacchetto non sia stato modificato durante il trasporto, utilizza un campo integrity check (ic) nel pacchetto. per evitare la crittografia di due cifratix con lo stesso flusso di chiavi, viene utilizzato un vettore di inizializzazione (iv) per aumentare la chiave segreta condivisa e produrre una chiave rc4 diversa per ciascun pacchetto. il iv è anche incluso nel pacchetto. tuttavia, entrambe queste misure sono implementate in modo errato, con conseguente scarsa sicurezza.</p> <p>il campo di controllo dell'integrità è implementato come checksum crc-32, che fa parte del payload crittografato del pacchetto. tuttavia, crc-32 è lineare, il che significa che è possibile calcolare la differenza di bit di due crc in base alla differenza di bit dei messaggi su cui vengono rilevati. in altre parole, capovolgendo il bit n nel messaggio si ottiene un insieme deterministico di bit nel crc che deve essere capovolto per produrre un checksum corretto sul messaggio modificato. poiché il lancio di bit viene eseguito dopo una decrittografia rc4, ciò consente all'attaccante di invertire i bit arbitrari in un messaggio crittografato e regolare correttamente il checksum in modo che il messaggio risultante appaia valido.</p> <p>il vettore di inizializzazione in wep è un campo a 24 bit, che viene inviato nella parte in chiaro di un messaggio. un così piccolo spazio di vettori di inizializzazione garantisce il riutilizzo dello stesso flusso di chiavi. un punto di accesso occupato, che invia costantemente pacchetti di 1500 byte a 11 mbps, esaurirà lo spazio di iv dopo 1500 * 8/(11 * 10 ^ 6) * 2 ^ 24 = ~ 18000 secondi, o 5 ore. (la quantità di tempo può essere anche inferiore, poiché molti pacchetti sono inferiori a 1500 byte.) ciò consente a un utente malintenzionato di raccogliere due cifrati crittografati con lo stesso flusso di chiavi ed eseguire attacchi statistici per recuperare il testo in chiaro. peggio ancora, quando la stessa chiave viene utilizzata da tutte le stazioni mobili, ci sono ancora più possibilità di collisione iv. ad esempio, una comune scheda wireless di lucent reimposta il valore iv su 0 ogni volta che una scheda viene inizializzata e incrementa il valore iv di 1 con ciascun pacchetto. ciò significa che due carte inserite all'incirca nello stesso momento forniranno un'abbondanza di collisioni iv per un attaccante. (peggio ancora, lo standard 802.11 specifica che cambiare il iv con ogni pacchetto è opzionale!)</p> </blockquote><p>qualche altro materiale di lettura interessante può essere trovato su <a href="http://dl.aircrack-ng.org/breakingwepandwpa.pdf">aircrack-ng.org</a> .</p><h2>wpa</h2><p>il secondo è wpa. wpa originariamente era inteso come un wrapper per wep che affronta le insicurezze causate da wep. in realtà non è mai stato inteso come standard di sicurezza ma solo come soluzione rapida fino a quando wpa2 non è diventato disponibile.</p><p>esistono due modalità in cui può operare:</p><ul> <li>wpa-psk: chiave già condivisa (password)</li> <li>wpa-enterprise: richiede un radius e può essere combinato con un <a href="http://en.wikipedia.org/wiki/extensible\_authentication\_protocol">extensible authentication protocol</a> (eap).</li> </ul><p>wpa utilizza generalmente il protocollo tkip (temporal key integrity protocol). tkip è stato progettato dal gruppo di attività ieee 802.11i e wi-fi alliance come soluzione per sostituire wep senza richiedere la sostituzione di hardware legacy. ciò era necessario perché la rottura di wep aveva lasciato le reti wifi senza una valida sicurezza a livello di collegamento ed era necessaria una soluzione per l'hardware già distribuito. tkip non è <strong> non </strong> un algoritmo di crittografia, ma viene utilizzato per assicurarsi che ogni pacchetto di dati venga inviato con una chiave di crittografia univoca.</p><p>da <a href="http://dl.aircrack-ng.org/breakingwepandwpa.pdf">il documento aircrack-ng.org</a> </p><blockquote> <p>tkip implementa una funzione di miscelazione delle chiavi più sofisticata per mescolare una chiave di sessione con un vettore di inizializzazione per ciascun pacchetto. ciò impedisce tutti gli attacchi di chiave correlati attualmente noti poiché ogni byte della chiave per pacchetto dipende da ogni byte della chiave di sessione e dal vettore di inizializzazione. inoltre, in ogni pacchetto è incluso un message integrity check (mic) a 64 bit chiamato michael per prevenire attacchi al meccanismo di protezione dell'integrità crc32 debole noto da wep. per prevenire semplici attacchi di replay, viene utilizzato un contatore di sequenza (tsc) che consente ai pacchetti di arrivare solo al destinatario.</p> </blockquote><p>esistono due attacchi noti contro tkip:</p><ul> <li>attacco di beck-tews</li> <li>attacco di ohigashi-morii (che è un miglioramento dell'attacco di beck-tews)</li> </ul><p>tuttavia, entrambi questi attacchi possono solo decrittografare piccole porzioni di dati, compromettendo la riservatezza. ciò che non possono darti è l'accesso alla rete. per darti un'idea di quanti dati possono essere recuperati, un singolo frame arp impiegherebbe circa 14-17 minuti per ottenere il testo in chiaro.</p><p>l'unico attacco noto, oltre a difetti nel firmware di alcuni router, è la forzatura del wpa. generalmente la chiave viene generata come segue:</p><pre><code>key = pbkdf2(hmac−sha1,passphrase, ssid, 4096, 256) </code></pre><p>considerando che questo algoritmo ha lo scopo di prevenire la violazione delle password con hash, può richiedere molto tempo. l'unico attacco ragionevole sarebbe usare un attacco con dizionario (quindi è importante usare password lunghe contenenti caratteri, numeri e lettere).</p><p>si noti inoltre che è necessario modificare il proprio ssid in qualcosa di molto casuale. le tabelle rainbow sono state generate per <a href="http://rainbowtables.shmoo.com/">i primi 1000 ssid utilizzati</a> .</p><p>wpa supporta anche aes (che può essere utilizzato al posto di rc4). ciò implicherebbe comunque l'utilizzo di tkip-mic.</p><h2>wpa2</h2><p>wpa2 supporta le stesse modalità di wpa, tranne per il fatto che non utilizza tkip ma ccmp per l'incapsulamento crittografico.</p><p>ccmp è un meccanismo avanzato di incapsulamento crittografico dei dati progettato per la riservatezza dei dati e basato sulla modalità counter con cbc-mac (ccm) dello standard aes. questo è usato per sostituire tkip per la riservatezza dei messaggi.</p><p>tuttavia, alcuni punti di accesso possono ancora essere configurati per utilizzare sia tkip che ccmp. ciò è stato fatto perché altrimenti le persone dovevano aggiornare il proprio hardware.</p><h2>estensioni</h2><h3>wps</h3><p>wi-fi protected setup (wps; originariamente wi-fi simple config) è uno standard di elaborazione che tenta di consentire una facile creazione di una rete domestica wireless sicura. consentiva una facile sicurezza per gli utenti domestici ma utilizzava ancora il più sicuro wpa anziché wep. wps non dovrebbe mai <strong> mai </strong> essere usato in quanto presenta un grande difetto di progettazione. wps genera "tramite il pulsante push di un pulsante" a pin che può essere inserito dall'utente. l'idea alla base di ciò era di aumentare l'usabilità. pone un problema: la quantità di possibilità è ridotta a 10.000.000 che qualsiasi computer può sgridare abbastanza rapidamente, anche quando si utilizza pbkdf2.</p><h3>eap</h3><p>eap è utilizzato per wpa (2) -enterprise ed è un framework di autenticazione, non un meccanismo di autenticazione specifico. fornisce alcune funzioni comuni e la negoziazione di metodi di autenticazione chiamati metodi eap. attualmente ci sono circa 40 diversi metodi definiti. alcuni hanno i loro difetti, tuttavia, considerando la grande quantità di possibilità che suggerisco di cercarli da soli.</p> kuwait dipende dal materiale in cui trovasi, ma solitamente dura poco in spiaggia <p>al livello più basso, winrt è un modello a oggetti definito a livello abi. usa com come base (quindi ogni oggetto winrt implementa <code>iunknown</code> e ricontatta), e costruisce da lì. aggiunge molti nuovi concetti rispetto a com di vecchi, molti dei quali provengono direttamente da .net - ad esempio, il modello a oggetti winrt ha delegati e gli eventi sono fatti in stile .net (con delegati e aggiungi/rimuovi abbonato metodi, uno per evento) anziché il vecchio modello com di origini e sink di eventi. tra le altre cose degne di nota, winrt ha anche interfacce parametrizzate ("generiche").</p><p>un altro grande cambiamento è che tutti i componenti winrt hanno metadati disponibili per loro, proprio come gli assembly .net. in com è una specie di quello con typelibs, ma non tutti i componenti com li avevano. per winrt, i metadati sono contenuti nei file .winmd - guarda dentro "c:\programmi (x86)\windows kits\8.0\windows metadata \" in anteprima sviluppatore. se cerchi, vedrai che in realtà sono assiemi cli senza codice, solo tabelle di metadati. puoi aprirli con ildasm, in effetti. nota, questo non significa che winrt stesso sia gestito, ma semplicemente riutilizza il formato del file.</p><p>quindi ci sono un certo numero di librerie implementate in termini di quel modello di oggetti - che definiscono le interfacce e le classi winrt. ancora una volta, guarda la cartella "windows metadata" di cui sopra per vedere cosa c'è lì; o semplicemente avvia object browser in vs e seleziona "windows 8.0" nel selettore di framework, per vedere cosa è coperto. c'è molto lì e non si occupa solo dell'interfaccia utente: ottieni anche spazi dei nomi come <code>windows.data.json</code>, o <code>windows.graphics.printing</code>, o <code>windows.networking.sockets</code>.</p><p>quindi ottieni diverse librerie, che si occupano in particolare dell'interfaccia utente, per lo più si tratta di vari spazi dei nomi in <code>windows.ui</code> o <code>windows.ui.xaml</code>. molti di loro sono molto simili agli spazi dei nomi wpf/silverlight - ad es. <code>windows.ui.xaml.controls</code> è strettamente corrispondente <code>system.windows.controls</code>; idem per <code>windows.ui.xaml.documents</code> eccetera.</p><p>ora .net ha la possibilità di fare riferimento direttamente ai componenti winrt come se fossero assembly .net. funziona diversamente dall'interoperabilità com: non hai bisogno di artefatti intermedi come gli interoperativi, devi solo <code>/r</code> un file .winmd e tutti i tipi e i relativi membri nei suoi metadati diventano visibili a te come se fossero oggetti .net. si noti che le stesse librerie winrt sono completamente native (e quindi i programmi c++ nativi che utilizzano winrt non richiedono affatto clr) - la magia per esporre tutta quella roba come gestita è all'interno del clr stesso, ed è di livello abbastanza basso. se ildasm un programma .net che fa riferimento a un .winmd, vedrai che in realtà sembra un riferimento esterno all'assemblea - non ci sono giochi di prestigio come il tipo di inserimento lì.</p><p>non è nemmeno una mappatura smussata - clr tenta di adattare i tipi di winrt ai loro equivalenti, ove possibile. quindi ad es. guid, date e uri diventano <code>system.guid</code>, <code>system.datetime</code> e <code>system.uri</code>, rispettivamente; interfacce di raccolta winrt come <code>iiterable&lt;t&gt;</code> e <code>ivector&lt;t&gt;</code> diventa <code>ienumerable&lt;t&gt;</code> e <code>ilist&lt;t&gt;</code>; e così via. questo funziona in entrambi i modi: se si dispone di un oggetto .net che implementa <code>ienumerable&lt;t&gt;</code> e restituiscilo a winrt, lo vedrà come <code>iiterable&lt;t&gt;</code>.</p><p>in definitiva, ciò significa che le tue app .net metro hanno accesso a un sottoinsieme delle librerie .net standard esistenti e anche alle librerie (native) winrt, alcune delle quali - in particolare <code>windows.ui</code> - sembra molto simile a silverlight, per quanto riguarda le api. hai ancora xaml per definire la tua ui e gestisci ancora gli stessi concetti di base di silverlight: associazioni di dati, risorse, stili, modelli ecc. in molti casi, è possibile eseguire il porting di un'app silverlight semplicemente con <code>using</code> i nuovi spazi dei nomi e modificando alcuni punti del codice in cui l'api è stata modificata.</p><p>winrt stesso non ha nulla a che fare con html e css, e ha relazione con javascript solo nel senso che è anche esposto lì, in modo simile a come viene fatto per .net. non è necessario avere a che fare con html/css/js quando si utilizzano le librerie dell'interfaccia utente winrt nella propria app .net metro (beh, immagino, se proprio lo si desidera, è possibile ospitare un controllo <code>webview</code>. .). tutte le tue competenze .net e silverlight rimangono molto rilevanti in questo modello di programmazione.</p> <p>se usi ubuntu, puoi installare pacchetti di diverse versioni. puoi installare kde su ubuntu e gnome su kubuntu, quindi non importa. vi consiglio di installare ubuntu semplice come punto di partenza e aggiungere i pacchetti necessari da lì.</p> <p>per non dire che le altre risposte qui non hanno merito, fanno dei buoni punti. ma vado contro il consenso generale e sono d'accordo con te sul fatto che passare a siti web per qualcosa di più delle semplici funzionalità in tempo reale è molto interessante.</p><p>sto seriamente pensando di spostare la mia app da un'architettura restful a più di uno stile rpc tramite websocket. questa non è una "app giocattolo" e non sto parlando solo di funzionalità in tempo reale, quindi ho delle riserve. ma vedo molti vantaggi nel percorrere questa strada e sento che potrebbe rivelarsi una soluzione eccezionale.</p><p>il mio piano è di usare <a href="http://substack.net/posts/85e1bd/dnode-asynchronous-remote-method-invocation-for-node-js-and-the-browser">dnode</a> , <a href="http://socket.io/">socketio</a> e <a href="https://github.com/jashkenas/backbone">backbone</a> . con questi strumenti, i miei modelli e raccolte backbone possono essere passati da/a client e server semplicemente chiamando uno stile rpc di funzioni. niente più gestione rest endpoint, serializzazione/deserializzazione di oggetti e così via. non ho ancora lavorato con socketstream, ma vale la pena dare un'occhiata.</p><p>ho ancora molta strada da fare prima di poter affermare definitivamente che questa è una buona soluzione e sono sicuro che non sia la soluzione migliore per ogni applicazione, ma sono convinto che questa combinazione sarebbe eccezionalmente potente. ammetto che ci sono alcuni svantaggi, come la perdita della capacità di memorizzare nella cache le risorse. ma ho la sensazione che i vantaggi li supereranno.</p><p>sarei interessato a seguire i tuoi progressi esplorando questo tipo di soluzione. se hai qualche esperimento su github, ti prego di indicarmi. non ne ho ancora, ma spero presto.</p><p>di seguito è riportato un elenco di collegamenti da leggere in seguito che ho raccolto. non posso garantire che valgano tutti la pena, dato che ne ho solo scremati molti. ma spero che alcuni possano aiutare.</p><hr><p>ottimo tutorial sull'uso di socket.io con express. espone sessioni espresse a socket.io e discute come avere stanze diverse per ogni utente autenticato.</p><ul> <li> <a href="http://www.danielbaulig.de/socket-ioexpress/">http://www.danielbaulig.de/socket-ioexpress/</a> </li> </ul><p>tutorial su node.js/socket.io/backbone.js/express/connect/jade/redis con autenticazione, joyent hosting, ecc:</p><ul> <li> <a href="http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time-chat-app/">http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time- chat-app /</a> </li> <li> <a href="http://fzysqr.com/2011/03/27/nodechat-js-continued-authentication-profiles-ponies-and-a-meaner-socket-io/">http://fzysqr.com/2011/03/27/nodechat-js-continued-authentication-profiles-ponies-and-a-meaner-socket-io/</a> </li> </ul><p>tutorial sull'uso di pusher con backbone.js (usando rails):</p><ul> <li> <a href="http://blog.pusher.com/2011/6/21/backbone-js-now-realtime-with-pusher">http://blog.pusher.com/2011/6/21/backbone-js-now-realtime-with-pusher</a> </li> </ul><p>crea un'applicazione con backbone.js sul client e node.js con express, socket.io, dnode sul server.</p><ul> <li> <a href="http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/">http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/</a> </li> <li> <a href="http://addyosmani.com/blog/building-spas-jquerys-best-friends/">http://addyosmani.com/blog/building-spas-jquerys-best-friends/</a> </li> <li> <a href="http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time-chat-app/">http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time- chat-app /</a> </li> <li> <a href="http://fzysqr.com/2011/03/27/nodechat-js-continued-authentication-profiles-ponies-and-a-meaner-socket-io/">http://fzysqr.com/2011/03/27/nodechat-js-continued-authentication-profiles-ponies-and-a-meaner-socket-io/</a> </li> </ul><p>utilizzando backbone con dnode:</p><ul> <li> <a href="http://quickleft.com/blog/backbone-without-ajax-part-ii">http://quickleft.com/blog/backbone-without-ajax-part-ii</a> </li> <li> <a href="http://quickleft.com/blog/backbone-without-ajax-part-1">http://quickleft.com/blog/backbone-without-ajax-part-1</a> </li> <li> <a href="http://sorensen.posterous.com/introducing-backbone-redis">http://sorensen.posterous.com/introducing-backbone-redis</a> </li> <li> <a href="https://github.com/cowboyrushforth/minespotter">https://github.com/cowboyrushforth/minespotter</a> </li> <li> <a href="http://amir.unoc.net/how-to-share-backbonejs-models-with-nodejs">http://amir.unoc.net/how-to-share-backbonejs-models-with-nodejs</a> </li> <li> <a href="http://hackerne.ws/item?id=2222935">http://hackerne.ws/item?id=2222935</a> </li> <li> <a href="http://substack.net/posts/24ab8c">http://substack.net/posts/24ab8c</a> </li> </ul> generalmente un po' di tutto , dipende dai periodi tranne le canzoni neomelodiche... quelle proprio no! <p>hai ragione che ssl utilizza una coppia di chiavi asimmetrica. viene generata una chiave pubblica e una privata, nota anche come infrastruttura a chiave pubblica (pki). la chiave pubblica è ciò che viene distribuito al mondo e viene utilizzata per crittografare i dati. tuttavia, solo la chiave privata può effettivamente decrittografare i dati. ecco un esempio:</p><blockquote> <p>supponiamo che entrambi andiamo su walmart.com e compriamo cose. ognuno di noi ottiene una copia della chiave pubblica di walmart con cui firmare la transazione. una volta che la transazione è firmata dalla chiave pubblica di walmart, solo la chiave privata di walmart può decrittografare la transazione. se uso la mia copia della chiave pubblica di walmart, <strong> non </strong> decifrerà la transazione. walmart deve mantenere la propria chiave privata molto privata e sicura, altrimenti chiunque lo ottenga può decifrare le transazioni su walmart. questo è il motivo per cui <a href="https://en.wikipedia.org/wiki/diginotar#issuance\_of\_fraudulent\_certificates">diginotar breach</a> è stato un grosso problema</p> </blockquote><p>ora che hai l'idea delle coppie di chiavi pubbliche e private, è importante sapere chi emette effettivamente il certificato e perché i certificati sono affidabili. lo sto semplificando troppo, ma ci sono specifiche autorità di certificazione radice (ca) come verisign che firmano certificati, ma firmano anche per le ca intermedie. questo segue quella che viene chiamata chain of trust, che è una catena di sistemi che si fidano reciprocamente. vedere l'immagine collegata di seguito per avere un'idea migliore (notare che la ca principale è in fondo).</p><p><img src="https://i.stack.imgur.com/q28zw.png" alt="simple chain of trust"></p><p>le organizzazioni acquistano spesso certificati con caratteri jolly o vengono registrate come ca intermedie stesse autorizzate a firmare solo per il proprio dominio. ciò impedisce a google di firmare certificati per microsoft.</p><p>a causa di questa catena di fiducia, un certificato può essere verificato fino alla ca principale. per dimostrarlo, digicert (e molti altri) dispongono di strumenti per verificare questa fiducia. lo strumento di digicert è collegato <a href="http://www.digicert.com/help/">qui</a> . ho fatto una convalida su gmail.com e quando scorri verso il basso mostra questo:</p><p><img src="https://i.stack.imgur.com/6fgrc.jpg" alt="certificate of trust for gmail"></p><p>ciò dimostra che il certificato per gmail.com è emesso da google internet authority g2, che a sua volta ha rilasciato un certificato da geotrust global, che a sua volta ha rilasciato un certificato da equifax.</p><p>ora, quando vai su gmail.com, il tuo browser non si limita a ottenere un blob di hash e continua. no, ottiene tutta una serie di dettagli insieme al certificato:</p><p><img src="https://i.stack.imgur.com/kl7z1.jpg" alt="google public cert details"></p><p>questi dettagli sono ciò che il tuo browser utilizza per aiutare a identificare la validità del certificato. ad esempio, se la data di scadenza è trascorsa, il browser genererà un errore di avviso. se tutti i dettagli di base del certificato vengono verificati, verrà verificato fino alla ca principale, che il certificato è valido.</p><p>ora che hai un'idea migliore dei dettagli del certificato, questa immagine espansa simile alla prima sopra avrà più senso:</p><p><img src="https://i.stack.imgur.com/gbz21.gif" alt="certificate chain of trust expanded"></p><p>questo è il motivo per cui il browser può verificare un certificato rispetto al successivo, fino alla ca principale, di cui il browser si fida intrinsecamente.</p><p>spero che questo ti aiuti a capire un po 'meglio!</p> <p>keepass utilizza un processo di derivazione della password personalizzato che include più iterazioni di crittografia simmetrica con una chiave casuale (che quindi funge da salt), come spiegato <a href="http://keepass.info/help/base/security.html#secdictprotect">lì</a> . il numero predefinito di iterazioni è 6000, quindi sono 12000 invocazioni aes per l'elaborazione di una password (la crittografia viene eseguita su un valore a 256 bit, aes utilizza blocchi a 128 bit, quindi devono essere presenti almeno due invocazioni aes per ogni round). con un pc quad-core <em> recente </em> (quelli con lo spiffy <a href="http://en.wikipedia.org/wiki/aes\_instruction\_set">istruzioni aes</a> ), dovresti essere in grado di testare circa 32000 potenziali password al secondo.</p><p>con dieci personaggi casuali scelti in modo uniforme tra i centinaia di caratteri che possono essere digitati su una tastiera, ce ne sono 10<sup>20</sup> password potenziali e forza bruta, in media, proveranno la metà di esse. sei dentro per 10<sup>20</sup>* 0,5/32000 secondi, noto anche come 50 milioni di anni. ma con <em> due </em> pc che sono solo 25 milioni di anni.</p><p>ciò presuppone che il processo di derivazione della password non sia in qualche modo imperfetto. nel "processo di derivazione della password personalizzata", la "personalizzazione" è una parola spaventosa. inoltre, il numero di iterazioni è configurabile (6000 è solo il valore predefinito).</p>