Saturday, 28 October 2017

Py Bcrypt Binario Options


Al momento Im cercando di costruire un log in sistema con una sicurezza molto elevata. Quindi voglio usare bcrypt e Ive anche trovato un 3 ° biblioteca partito, PY-bcrypt. Ma l'autore ha detto che è una implementazione pura pitone. Ora ho letto da qualche parte che non è consigliabile utilizzare bcrypt in python solo perché è troppo lento e questo si traduce in una perdita di sicurezza. bcrypt dovrebbe essere attuato in C. Qualcuno può confermare questo adesso cosa devo fare bcrypt (python) SHA512 (da hashlib) qualcosa di diverso Im utilizzando Google App Engine Va notato che l'applicazione pura-python (4) è troppo lento per essere utilizzabile, dato il numero di giri attualmente richiesto per la sicurezza. A causa di questo, è disabilitato per impostazione predefinita, a meno che il PASSLIBBUILTINBCRYPTenabled variabile d'ambiente è impostata. chiesto 9 luglio 12 alle 10:49 non chiuso come costruttivo casperOne 10 luglio 12 alle 14:01 Allo stato attuale, questa domanda non è una buona misura per il nostro formato QampA. Ci aspettiamo che le risposte siano supportate da fatti, riferimenti, o esperienza, ma questa domanda sarà probabilmente sollecitare il dibattito, argomenti, sondaggi, o una discussione estesa. Se ritieni che questa domanda può essere migliorato ed eventualmente riaperta, visitare il centro di aiuto per l'orientamento. Se questa domanda può essere riformulato per adattarsi alle regole del centro di aiuto. si prega di modificare la domanda. Perché sarebbe quotbeing slowquot essere considerata una perdita di sicurezza ndash Martin Konecny ​​31 luglio 13 alle 14:20 Che ne dite di confronto tra i due Ecco il codice hash di una password di 8000 bit casuali e tempi corrispondenti: Hashlib compreso il sale: risposta 9 luglio 12 alle 11: 26 ho modificato lo script hashlib di includere anche un sale di 32 byte, ed i numeri sono ancora più o meno lo stesso ndash Chopstick 9 luglio 12 alle 11:44 bene ora bcrypt corre 10times più lento di sha512 che è meglio per gli attacchi brutforce. ma il SHA512 dispone di 128 lettere. shouldn39t questo siano superiori bcrypt anche con attacchi brutforce. ndash Maik Klein 9-lug-12 a 11:57 Chopstick Utilizzando una funzione hash su una password una volta è completamente insicura e un modo assolutamente inaccettabile di quotstoringquot una password. Se you39re interessati ad un semplice schema di memorizzazione delle password hash-based sicura, si può usare PBKDF2 con una grande (5 o 6 cifre) numero di round, anche se bcrypt è una soluzione ancora migliore. Edit: Questo dovrebbe essere indirizzata al PO pure. Ho reagito alla tua risposta più dal momento che conteneva codice vero e proprio. ndash Matt Nordhoff 17 novembre 13 alle 8: 22There sono due tipi di crittografia in questo mondo: la crittografia che si fermerà la vostra sorellina di leggere i file, e la crittografia che si fermerà principali governi di leggere i file. Questo libro parla di questi ultimi. - Prefazione di Applied Cryptography di Bruce Schneier Descrizione Bcrypt è un programma di utilità di crittografia dei file cross-platform. I file crittografati sono portatili su tutti i sistemi operativi supportati e processori. Passphrase deve essere compresa tra 8 e 56 caratteri e sono hash internamente per una chiave di 448 bit. Tuttavia, tutti i caratteri forniti sono significativi. Più forte la passphrase, più proteggere i dati. Oltre alla crittografia dei dati, bcrypt per impostazione predefinita sovrascrivere il file di input originale con spazzatura casuale tre volte prima di eliminarlo al fine di contrastare i tentativi di recupero di dati da parte di persone che possono accedere al vostro computer. Se non sei ancora pronto per questo livello di paranoia ancora, vedere le istruzioni di installazione riportate di seguito su come disattivare questa funzione. Se non che questo sia abbastanza paranoico. vedi sotto. Bcrypt utilizza l'algoritmo di crittografia Blowfish pubblicato da Bruce Schneier nel 1993. Maggiori informazioni sul algoritmo può essere trovato alla Counterpane. In particolare, bcrypt utilizza attuazione Paul Kochers dell'algoritmo. La fonte distribuito con bcrypt è stata leggermente modificata rispetto all'originale. codice sorgente originale può essere ottenuto da counterpanebfsh-koc. zip. Bcrypt è stata testata con successo sulle seguenti piattaforme: x86: FreeBSD, OpenBSD, Linux, Cygwin, Win32 Sparc R220: Solaris 2.7, 2.8 Sparc Ultra60: Linux 2.4 Alpha: Linux 2.4 PPC G4: MacOS X 10.1 SERVER PPC RS6000: Linux 2.4 MIPS : Linux 2.0.34 (Cobalt) HPPA 1.1 HP-UX 11.0 Nessun altri sistemi operativi sono stati testati, ma la maggior parte dovrebbero funzionare con minime modifiche. Se si ottiene bcrypt compilare senza errori su qualsiasi altra piattaforma o architettura, Id piace sapere. Se sono necessarie per ottenere il lavoro bcrypt del sistema operativo patch, cercherò di inserirli nella distribuzione principale. Se si dispone di una macchina non elencato sopra che è incapace di compilazione bcrypt e sono disposti a darmi l'accesso alla macchina, farò un tentativo di portarlo al vostro sistema operativo. Notizie (Aggiornato 11 Set 2002) Bcrypt 1.1 corregge alcuni bug minori e aggiunge il supporto per molti nuovi sistemi operativi. Se utilizzato in precedenza 1,0 su una piattaforma non supportata, non si può essere in grado di decifrare i file crittografati che avete. sistemi Alpha sono noti per avere questo problema. sistemi a 32 bit non dovrebbero avere questo problema. sistemi a 64 bit, probabilmente lo fanno. Se i reperti di sistema questo problema, è necessario decifrare i file con 1.0 e li reencrypt con 1.1. 1.1 è immensamente più veloce di 1.0. Inoltre, utilizza circa 50 come quantità di memoria con la compressione disattivata o 66 con compressione. I seguenti file sono copie del file di licenza che sono stati cifrati con le teste d'uovo passphrase. Se è possibile decifrare entrambi, quindi l'installazione dovrebbe essere compatibile con altri sistemi supportati. Se siete così inclinato, modificare config. h e modificare le impostazioni predefinite per tutto ciò che si pensa che è appropriato per le vostre esigenze. Se si sceglie di non avere bcrypt rimuovere i file di input dopo l'elaborazione, o impostare SecureDelete a 0, si rischia di avere i dati sul disco rigido che possono essere recuperate anche dopo la cancellazione. Tutte queste opzioni possono essere impostate sulla riga di comando pure. Quando sei soddisfatto delle impostazioni predefinite, è sufficiente digitare: fare poi su e digitare: make install Sarebbe saggio per verificare l'installazione su alcuni file non importanti prima della cifratura qualsiasi cosa apprezzi, rimuovendo l'unica copia e sovrascrivendo 127 volte con spazzatura. bcrypt file di - ORc-Sn. I file crittografati verranno salvati con un'estensione di. bfe. Tutti i file che terminano in. bfe saranno assunti essere criptato con bcrypt e cercheranno di decifrare loro. Eventuali altri file di input verranno crittografati. Se viene dato più di un tipo di file, bcrypt effettuare il trattamento di tutti i file che sono gli stessi del primo tipo di file specificato. Per impostazione predefinita, bcrypt comprimere i file di input prima della crittografia, rimuovere i file di input dopo che sono stati elaborati (ammesso che sono trattati con successo) e sovrascrivere i file di input con dati casuali per evitare il recupero dei dati. Passphrase possono essere tra gli 8 ei 56 caratteri. Indipendentemente dalle dimensioni passphrase, la chiave viene assegnata internamente per 448 bit - della massima dimensione supportata dal algoritmo Blowfish. Tuttavia, è ancora saggio di utilizzare una passphrase. l'output di stampa di fuori standard. Implica - r. Non comprimere i file prima della crittografia. NON rimuovere i file di input dopo l'elaborazione Quante volte per sovrascrivere i file di input con i dati casuali prima di elaborare. Il numero predefinito di sovrascrittura è 3. Utilizzare - S0 per disattivare questa funzione. Nessun effetto se - r viene fornito. Le opzioni o, C e R hanno ciascuno gli effetti opposti se le impostazioni appropriate vengono alterati dal default in config. h. I file crittografati devono essere compatibili fra la maggior parte dei sistemi. la compatibilità binaria è stata testata per tutti i sistemi sopra elencati. Sostegno, aiuto, insetti, che diavolo è questo Shelley johnny - codice di base e le porte unix. Philip Stolarczyk - supporto nativo Win32 e test. Copyright (c) 2002 Johnny Shelley Tutti i diritti riservati. La ridistribuzione e l'uso in forma sorgente e binaria, con o senza modifiche, sono consentiti a condizione che le seguenti condizioni: 1. La ridistribuzione del codice sorgente deve conservare la suddetta nota sul copyright, questo elenco di condizioni e la seguente dichiarazione di non responsabilità. 2. La ridistribuzione in forma binaria devono riprodurre l'avviso di copyright di cui sopra, questo elenco di condizioni e la seguente dichiarazione di non responsabilità nella documentazione eo altri materiali forniti con la distribuzione. 3. Né il nome dell'autore né collaboratori possono essere utilizzati per sostenere o promuovere prodotti derivati ​​da questo software senza previa autorizzazione scritta. QUESTO SOFTWARE VIENE FORNITO DAI TITOLARI DEL COPYRIGHT E COLLABORATORI IN CUI SI TROVA E QUALSIASI GARANZIA ESPRESSA O, IMPLICITA, MA NON SOLO, LE GARANZIE DI COMMERCIABILITÀ E IDONEITÀ PER UNO SCOPO PARTICOLARE. IN NESSUN CASO L'AUTORE SARÀ RESPONSABILE PER DANNI DIRETTI, INDIRETTI, ACCIDENTALI, SPECIALI, ESEMPLARI O CONSEQUENZIALI (INCLUSI, MA NON SOLO, LA FORNITURA DI BENI O SERVIZI SOSTITUTIVI PERDITA DI UTILIZZO, DATI O PROFITTI O INTERRUZIONE DELL'ATTIVITÀ), LA CAUSA E LA TEORIA DI RESPONSABILITÀ, PER CONTRATTO, RESPONSABILITÀ OGGETTIVA O TORTO (COMPRESA LA NEGLIGENZA O ALTRO) DERIVANTI IN QUALSIASI MODO, L'UTILIZZO DI QUESTO SOFTWARE, ANCHE SE AVVISATI DELLA POSSIBILITÀ DI TALI DAMAGE. scrypt 0.8.0 Attacchi per la libreria di funzioni chiave di derivazione scrypt Questo è un insieme di binding Python per la funzione chiave di derivazione scrypt. Scrypt è utile quando la crittografia della password in quanto è possibile specificare un importo minimo di tempo da utilizzare nella codifica e decodifica. Se, ad esempio, una password richiede 0,05 secondi per verificare, un utente non noterà il leggero ritardo al momento della firma, ma facendo una ricerca di forza bruta di diversi miliardi di password avrà una notevole quantità di tempo. Questo è in contrasto con altre funzioni hash tradizionali come MD5 o la famiglia SHA che può essere implementato estremamente veloce su hardware economico. Installazione È possibile installare py-scrypt da questo repository se si desidera che l'ultima, ma forse non la compilazione di versione: In alternativa è possibile installare l'ultima versione dal Cheese Shop: Se si desidera PY-scrypt per l'ambiente Python 3, basta eseguire i comandi di cui sopra con il vostro Python 3 interprete. PY-scrypt supporta sia Python 2 e 3. Versione gtFrom 0.6.0 (non disponibile su Cheese Shop ancora), PY-scrypt supporta PyPy pure. Fore encryptiondecryption, le esportazioni di libreria due funzioni crittografare e decrittografare: gtFrom questi, si può fare una semplice verifica password utilizzando le seguenti funzioni: Ma, se si desidera che l'uscita che è deterministico e costante in termini di dimensioni, è possibile utilizzare la funzione di hash: Ringraziamenti scrypt è stato creato da Colin Percival ed è concesso in licenza come 2-clausola di BSD. Dal momento che scrypt normalmente non costruire una libreria condivisa, ho incluso la sorgente per il momento ultima versione della libreria in questo repository. Quando una nuova versione arriva, vi aggiornerò queste fonti. Kelvin Wong su Bitbucket fornito modifiche per rendere la libreria disponibile su Mac OS X 10.6 e versioni precedenti, così come i cambiamenti per rendere il lavoro in biblioteca più come la versione della riga di comando di scrypt per impostazione predefinita. Kelvin ha contribuito anche con i test di unità, un sacco di croce piattaforma di prova e il lavoro in funzione di hash. Burstaholic su Bitbucket fornito le modifiche necessarie per rendere la costruzione catalogo di Windows. Il repository python-appveyor-demo per la creazione automatizzata di Windows costruisce per una moltitudine di versioni di Python. Questa libreria è rilasciato sotto la stessa licenza scrypt 2-clausola BSD (Edit: Alcuni numeri per voi le persone che amano i numeri). Se sei già utilizzando bcrypt, relax, sei bella, probabilmente. Tuttavia, se siete alla ricerca di una funzione chiave di derivazione (o in caso bcrypts, funzione di crittografia della password) per un nuovo progetto, bcrypt non è probabilmente il migliore che si può scegliere. In realtà, ci sono due algoritmi che sono ciascuna meglio in modo diverso rispetto bcrypt, e anche largamente disponibile in molte piattaforme. Scrivo questo post perchè Ive ha notato una sorta di basta usare bcrypt cargo cult (grazie Coda Hale) Questo è assolutamente l'atteggiamento sbagliato avere sulla crittografia. Anche se le persone che sanno molto di più su crittografia di me hanno fatto un lavoro straordinario confezionamento di queste cifre in librerie di facile utilizzo, l'uso della crittografia non è qualcosa che si impegnano con leggerezza. Si prega di sapere quello che stai facendo quando sei usarlo, altrimenti non sta andando per aiutarvi. La prima cifra Id consigliamo di prendere in considerazione, oltre bcrypt è PBKDF2. Il suo onnipresente e testato nel tempo, con un pedigree accademico da RSA Labs, si sa, i ragazzi che hanno inventato gran parte dell'ecosistema di crittografia che usiamo oggi. Come bcrypt, PBKDF2 ha un fattore di lavoro regolabile. A differenza bcrypt, PBKDF2 è stata oggetto di intensa ricerca e rimane ancora la migliore scelta conservativa. C'è stato molto meno ricerca sulla solidità del bcrypt come una funzione chiave di derivazione rispetto al PBKDF2, e semplicemente solo per questo motivo bcrypt è molto di più di un ignoto di ciò che gli attacchi futuro può essere scoperto contro di essa. bcrypt ha un più alto fattore teorico-sicurezza-to-calcolo-tempo rispetto PBKDF2, ma che non ti aiuta se un attacco è scoperto che mitiga bcrypts complessità computazionale. Tali attacchi sono stati trovati in passato contro cifrari come 3DES. Dove 3DES utilizza una chiave a 168 bit, diversi attacchi hanno ridotto che dimensioni delle chiavi efficacia a 80-bit. PBKDF2 viene utilizzato da WPA, cassaforte delle password popolari come 1Password e LastPass, e strumenti di cifratura completa del disco, come TrueCrypt e FileVault. Mentre spesso prendere in giro Lamer Notizie come antipattern Sinatra. Devo applaudire antirez sulla sua scelta di PBKDF2 quando ha ottenuto bombardato con un basta usare bcrypt attacco (anche se bro, antirez, ce n'è una gemma PBKDF2 è possibile utilizzare. Non dovete IT vendor) La seconda cifra da considerare è scrypt. Non solo scrypt darà sicurezza più teorica che bcrypt per unità di tempo di calcolo, ma permette anche di configurare la quantità di spazio in memoria necessaria per calcolare il risultato. Dove algoritmi come PBKDF2 e bcrypt lavoro sul posto nella memoria, scrypt è un algoritmo di memoria-hard, e quindi rende una forza bruta sanzioni attaccante pagare sia a CPU e di memoria. Mentre scrypts solidità di crittografia, come bcrypts, è scarsamente studiato, da un punto di vista algoritmico pura suo superiore su tutti i fronti. La prossima volta che è necessario scegliere una funzione chiave di derivazione, per favore, non usano bcrypt. 29 commenti: Credo che il punto di utilizzo quotjust bcryptquot è l'uso quotdon39t (anche salata) sha1sha2quot Il motivo per cui di solito consigliamo bcrypt è in realtà a causa dei fattori umani coinvolti in sostanza, attacchi sono disponibili per ogni lingua, l'API è coerente e abbastanza infallibile. Di solito abbiamo bisogno di don39t funzioni hash quotoptimally securequot, abbiamo solo bisogno abbastanza quotgood per essere indistinguibile dalla migliore practicequot e bcrypt misura la fattura qui bene. Attuazione in Python qui: githubdotpotCrypton Singpolyma Perché non salato sha1sha2 Grazie in anticipo. CaStarCo: un semplice cryptpass sale SHA256 (sale cleartextpassword) è esattamente facile da forza bruta crepa come cryptpass SHA256 (cleartextpassword) per una singola password. Ora il salato è più vulnerabile ad attaccare più password in un database in una volta, come tutti coloro che utilizzano la stessa password sarà incrinato contemporaneamente, mentre il salato, se il sale è buono, si crepa solo quella. Il vantaggio di PBKDF2, bcrypt, e scrypt è il costo aggiunto di molteplici iterazioni che rampa la forza bruta costo attacco in linea, che li rende molto più sicuro rispetto anche hash salate. google hashcat - si crepa la password in 2 secondi o giù di lì, con o senza sale :-) Come risponde a questo post io sono solo un seguace del blog di cui sopra, voglio solo sapere la vostra opinione. I39m dispiace, ma you39re sbagliato in quasi tutti i punti. Prima di tutto bcrypt non è una cifra, it39s una funzione chiave di derivazione. Questo potrebbe sembrare nitpicky, ma i loro casi d'uso e scenari di attacco differire selvaggiamente. Con una cifra, di solito si hanno molte in chiaro, coppie cifrato e vuole trovare la chiave cifrare il testo in chiaro per il testo cifrato (in modo da canthen decifrare testi cifrati per il quale si dispone di don39t testi in chiaro). Con una funzione chiave di derivazione di solito hanno un ingresso a bassa entropia e si desidera creare un output che è computazionalmente difficile da distinguere da uscita ad alta entropia. Tale ingresso a bassa entropia può essere una password cui spazio chiave è di solito molto piccolo. Così un KDF nel nostro contesto deve essere lento a calcolare, e solo con l'implementazione di riferimento, ma con qualsiasi implementazione. quotBreakingquot tale KDF significa trovare una scorciatoia che permette il calcolo molto più velocemente che con l'algoritmo di riferimento. Quindi, perché si assume che bcrypt ha avuto meno controllo cryptoanalytical di PBKDF2. Entrambi sono circa la stessa età. In effetti uno dei motivi bcrypt viene spesso indicata come una buona scelta è perché ha aggregato un sacco di fiducia nel corso degli ultimi 13 anni. Inoltre ci sono molti cattivi esempi nell'uso di PBKDF2, che principalmente derivano da troppo bassi contano iterazioni. TrueCrypt, che si parla come uno degli esempi perché PBKDF2 è affidabile, è un particolarmente male a scegliere i parametri ragionevoli: Usano solo un conteggio iterazione del 1000 per la maggior parte degli hash (vedi truecrypt. orgdocssheader-chiave di derivazione). I valori PBKDF2 nella tabella copiati dal tarsnapscryptscrypt. pdf sono stati calcolati con un conteggio di iterazione di 86000 (prima voce - quot100msquot) e 4.300.000 (seconda voce - quot5.0squot) WPA, un altro esempio, si parla, è anche notoriamente male a usare buone conta iterazione. That39s la ragione per gli attacchi del dizionario su WPA-PSK sono diventati così popolari. Sono d'accordo con Blair Strang qui, che uno dei principali vantaggi di bcrypt è che ci sia molto meglio documentazione disponibile e implementazioni di avere migliori valori di default. Una nota a margine sugli attacchi 3DES. Tecnicamente, sì, è possibile utilizzare un opzione di codifica 3DES la cui chiave è formato 168. Ma nessuno ha mai sostenuto, che la forza effettiva della cifra era 168 bit. Infatti una delle prime cose che si leggono su Triple DES è che la sua forza attuale è in realtà al massimo 112 bit, a causa di un attacco meet-in-the-middle that39s insito nel suo design. E il quotattackquot si menziona che riduce a 80 bit non ha nemmeno applica ai normali casi di utilizzo di 3DES (date un'occhiata ai that39s carta collegate nell'articolo Wikipedia) e non ha assolutamente alcuna domanda riguardante KDFs. In realtà 3DES è un esempio di un vecchio algoritmo, che è ancora uno dei più forti disponibili. Il motivo principale tutti passati a AES era che era di gran lunga più veloce. Se si vuole essere al sicuro con una password hashing io, è possibile diversificare la vostra scelta: Sia p la password e Salti essere a 128 bit valori casuali. Derive p1 HMAC (Salt1quotPBKDF2quot) con sha256 chiave (p), p2 HMAC (Salt2quotbcryptquot) con sha1 chiave (p) e P3 HMAC (Salt3 quotscryptquot) con sha1 chiave (p). Derive chiave k1, k2 e k3 utilizzando il tasto funzione di derivazione PBKDF2, bcrypt e scrypt, rispettivamente, ognuno dei quali con 130 secondi di tempo CPU con p1 ingresso, P2 e P3, rispettivamente. Calcolare la chiave (o voce di riferimento del database) come sha256 (k1k2k3). Qui quotquot designa la concatenazione di array di byte. In questo modo si ottiene il meglio di tutti i mondi: una bcrypt provata, un scrypt sperimentale, ma molto promettente e un PBKDF2 tradizionale. L'aspetto importante, è che si ottimizzare i parametri di ogni KDF tale che richiede molto tempo per calcolare (that39s perché ho proposto 130 S tempo di CPU). Allora la vostra KDF è forte come il più forte dei tre. Perché il testo di 40 caratteri requre meno soldi quindi il testo 10 char a frenare nello stesso tempo (non poteva edit) credo che hanno ottenuto la casella 10 char e 40 char mescolato There39s un brutto errore nella documentazione su GitHub. Essa afferma che si dovrebbe: includere 39scrypt39. Questo dovrebbe essere: include scrypt. Mi ha portato una mezz'ora per scoprire. Ho davvero don39t comprendere l'argomento per bcrypt. There39s nessun problema nel fissare il giro cripta ordinaria () per SHA-512, ecc, giusto che farà 1234 giri di SHA-512. Ora what39s punto di bcrypt, che può gestire solo gli hash Blowfish. Utilizzare bcrypt, uso don39t bcrypt. Al diavolo I39m attaccare con MD5 non salato sbagliato, la password è sempre forte solo quanto il più debole, se i tre ciò che non è dove menzionato è come fa bcrypt con confronto con PBKDF2 utilizzando SHA512 Isn39t bcrypt di per sé meno sicura in quanto utilizza una più breve lunghezza dei bit In termini di quotcostquot si può rampa fino iterazioni PBKDF2. Wouldn39t che essere abbastanza Cypher ALGO1. MAIUSC di destra (in) Cypher ALGO2. MAIUSC di sinistra (in) Cypher ALGO3. MAIUSC di destra (MAIUSC di sinistra (in)) Conclusione. La password può anche essere più debole di quanto l'algoritmo più debole (in questo caso, la composizione ha dato identità) Tibor Sekelj sbagliato, leggerlo di nuovo. Devi essere in grado di rompere tutti i 3 algoritmi per ottenere la password. Lo svantaggio al metodo di utilizzo di 3 algoritmi però, è che è possibile utilizzare solo il 13 del fattore lavoro per ciascuno, in modo per magia 2 del 3 sono totalmente compromessa, il terzo algoritmo è molto più veloce di crack. Che in teoria dovrebbe essere ancora molto difficile, ma basta segnalarlo. Modificare il titolo di hsckernews esca troll in modo da poter ascoltare centinaia di hack incompetenti bang di qualcosa che don39t capiscono, e l'utilizzo di questo post come riferimento. It39s interessante che corre campione hashcat sembrano indicare due ordini di grandezza più veloci controlli al secondo per bcrypt che per PBKF2 che sembra suggerire il contrario di ciò che questo post suggests8230 YAHOO, vi siete persi una k in quel punto di riferimento. La PBKDF2 è quella ordini that39s di grandezza più veloce. Ho letto attraverso fonte LamerNews39s. Gesù, tanto la logica nel file app. rb. Tanto la logica. L'aspetto divertente di questa discussione è che molte persone utilizzano o non salato o singola MD5 salata se nemmeno la briga di hash di password a tutti. Non c'è bisogno di una gemma, it39s in stdlib già: ruby-doc. orgstdlib-1.9.3libdocopensslrdocOpenSSLPKCS5.html penso che alcune di queste preoccupazioni sembrano un po 'sciocco. Tutti KDF è stato progettato per risolvere qualcosa che in un primo momento irrisolvibile. Tutto algo è solo un tentativo di rinviare il problema. Nessuno è a prova di futuro. Tutto KDF preoccupazione per risorse di calcolo in modo da aggiungere un qualche tipo di parametro carico di lavoro per sintonizzare i alogos. Questo approccio suona proprio come un braccio di ferro. (Vediamo che è quella più forte.) In realtà tutti i computer non vengono crescono in velocità della CPU o la capacità di memoria del tutto. Ciò che importa è divario di risorse tra i server di fascia bassa e super computer di fascia alta. Il divario è più ampio come passare il tempo. In un prossimo futuro di affittare una potenza di cloud computing può essere a buon mercato, ma abbiamo ancora usare gli stessi server vecchia scuola. (L'hash confronto di verifica non è adatto per il sistema non in linea in un primo momento.) Quindi penso che dovremmo solo prendere un algoritmo promettente, scegliere un numero di magia come parametro di carico di lavoro e il sale. Non cambiare mai loro e ammettere che siamo perduti. (Nelle corse potenza di calcolo con standard aperto algoritmo. Io don39t che si può vincere da soluzioni algoritmo brillanti.) La cosa buona è offline bruteforcing è la peggiore delle ipotesi, quando un server perde la password hash. Si isn39t fuga se altri sistemi di sicurezza sono funzionali in modo corretto. E attaccante probabilmente appena ricevuto solo la versione di collisione hash della password. Se gli utenti non riutilizzare la stessa password per tutto. Penso che dovrebbe essere basti, ma se non l'utente è vulnerabile ai servizi proprietario di tutto ciò che usano all'inizio. KDF si trova a strumenti che limitano alcuni più criteri di attaccanti. Per esempio è possibile specificare che solo la NSA e Jeff Bezos o qualcuno lungo la linea possono rompere la password non altri. E, naturalmente, criteri comuni di attaccanti è quello che può anche ottenere il valore hash della password. Post scriptum Il KDF in uno scenario utente è un'altra storia (ad es. La generazione simmetrica chiave di cifratura per cifrare un file offline.), È possibile rendere il più lento come pochi secondi. I39m andando aggiungere un altro punto di critica qui. PBKDF2 è GPU accogliente, dove bcrypt e scrypt non sono Grazie per l'ottimo articolo La prego di specificare quali parametri (N, R, P) sono stati utilizzati per scrypt (64ms) e scrypt (3,8 s) e quale processore è stato utilizzato per raggiungere questo obiettivo Perseidi temporizzazioni - hai appena inventare la propria soluzione per un problema di crittografia comune Date un'occhiata a anche Argon2, il vincitore PHC 2015. Mi piace usare PBKDF2 più nella generazione di file crittografati. OpenSSL fornisce anche come una funzione di libreria. Ma OpenSSL non prevede per la crittografia dei file Si usa attualmente PBKDF1.5 per il suo utilizzo della riga di comando di 39enc39

No comments:

Post a Comment