Codice sorgente come password

25

Le password con una combinazione di lettere, numeri e caratteri speciali sono talvolta difficili da ricordare. È sicuro invece utilizzare una piccola quantità di codice sorgente memorabile come "passphrase"?

Ad esempio, esegui un semplice ciclo di loop in Vai: fori:=1;i<5;i++{fmt.Println(i)}

Le persone normali vedrebbero solo la sintassi criptica, ma come una persona con uno sfondo di programmazione, questo potrebbe essere più facile da memorizzare. Sarebbe almeno sicuro come una normale password?

    
posta user3147268 10.04.2015 - 14:15
fonte

6 risposte

28

Puoi usare il codice sorgente come password.

Tuttavia dovrei raccomandare vivamente contro di utilizzare il codice sorgente come passphrase.
La ragione di ciò è l'entropia.
Le password / passphphras devono fornire molta entropia (100 bit +) e i linguaggi di programmazione di solito pongono severi vincoli sulla formulazione dell'istruzione, con conseguente minore entropia per carattere persino con una passphrase standard.

Ciò che potrebbe essere possibile a parte questo, puoi usare i file del codice sorgente (100 linee +) con molte istruzioni complesse e non codificabili come file di chiavi.

    
risposta data 10.04.2015 - 14:38
fonte
21

Come la maggior parte degli algoritmi di generazione di password, questo si basa sulla sicurezza attraverso l'oscurità.

Se nessuno sospetta che tu usi questo metodo, nessuno userà uno strumento di cracking che tenta snippet di codice sorgente casuali validi e la regola strength = possible_characters ^ number_of_characters rimarrà valida. Ma non appena qualcuno sospetta che potresti usarlo, o quando diventa addirittura un metodo comune perché inizi a pubblicizzarlo come "un'ottima idea" su un sito web, questo cambierebbe.

Non appena qualcuno si sente obbligato a scrivere una routine di cracking su misura, devi guardare quanta entropia c'è davvero nel tuo codice sorgente. E quando si è limitati a "piccoli frammenti di codice memorabili nel linguaggio di programmazione comune", si arriva probabilmente a qualche miliardo di passphrase possibili, il che non è sufficiente per sopportare un serio tentativo di forza bruta.

    
risposta data 10.04.2015 - 15:02
fonte
3

È meglio usare un metodo che rimanga sicuro anche se tutti lo usassero. Avrai meno preoccupazioni e ti permetterà di collaborare con gli altri nel modificare il metodo per essere il più sicuro, perché non devi mantenere segreti i tuoi metodi.

Questo approccio "il nemico conosce il sistema" è un enorme motore per l'innovazione e il progresso nella sicurezza delle informazioni. Altrimenti avresti gruppi indipendenti che lavorano ciascuno sui propri disegni e principi oscuri, apparentemente inaspettati.

Inoltre, non hai modo di quantificare la sicurezza del tuo sistema perché tutto dipende dalla psicologia e da ciò che gli altri sanno di te.

In alcuni settori della vita devi essere creativo e sviluppare la tua strategia su alcune intuizioni personali e uniche che devi mantenere segrete, ma la sicurezza delle informazioni non è così.

    
risposta data 11.04.2015 - 23:46
fonte
2

A prima vista, sembra che potrebbe essere una buona idea. Come molti suggerimenti relativo alle password, in alcune situazioni può anche essere una soluzione OK. Però, quando lo consideri più in dettaglio, diventano evidenti alcune carenze.

Se stavo cercando di rompere la password di qualcuno, una delle prime cose che vorrei fare è provare per scoprire quante più informazioni possibili sulla persona. Se so che sei un programmatore, quindi potrei supporre che usi un codice per il tuo frase d'accesso. Ora ho ristretto il possibile spazio di ricerca.

Se so qual è il tuo linguaggio di programmazione preferito, ora ho ridotto la ricerca spazio ancora più lontano. Ho solo bisogno di prendere in considerazione forme legali dal tuo preferito lingua.

Ora, quando considero le forme legali consentite nella tua lingua preferita, Ho ridotto ulteriormente lo spazio di ricerca. Se c'è un carattere massimo noto limite per la passphrase, quello spazio di ricerca è ancora più piccolo di nuovo - in effetti, per la maggior parte lingue, ci sarà solo una piccola serie di possibili forme legali che si adatteranno per i limiti di caratteri consentiti per molte password.

Come indicato da altre risposte, il vero problema con password / passphrase "intelligente" è che si basano su altri che non sono in grado di indovinare qual è il tuo schema. Come la popolarità di uno schema aumenta, il vantaggio di tale schema si riduce. Soprattutto, qualsiasi schema tu scelga deve essere qualcosa a cui non è facilmente associato te.

L'altro problema con schemi di password intelligenti è che raramente sono intelligenti come pensi che loro siano. Se si analizzano le password scaricate dalla password rubata repository, sarete sorpresi di quanto siano "comuni" molti di questi schemi intelligenti siamo. Potresti anche essere sorpreso di quanto spesso lo schema intelligente sia correlato al dominio le password provenivano da. Ad esempio, ho visto le password rubate da un sistema Air Force e indovina un po ', la stragrande maggioranza delle password erano o derivazioni di vari nomi di aeromobili e numeri di modello o nomi di personaggi di film o libri con a tema militare o aeronautico. Allo stesso modo, le password sono state scaricate un paio di anni fa da un la datazione cristiana aveva un gran numero di password che includevano frasi, capitolo e i numeri in versi della Bibbia. Se avessi intenzione di provare a crackare le password di Github, io sarebbe quasi certamente guardare il codice come un possibile modello.

Il vantaggio minore dell'uso del codice è che probabilmente avrai più a lungo password / passphrase, che è spesso importante o più importante del sottostante complessità. Troppo spesso, le persone usano password brevi perché sono facili e veloci genere. In questi giorni, penso che la maggior parte delle persone stia molto meglio assicurandosi che usino Autenticazione a 2 fattori o Autenticazione a 2 passaggi, laddove possibile, e utilizzare a gestore di password che genererà password casuali per te e nella maggior parte dei casi, elimina il tuo bisogno di ricordarli.

    
risposta data 17.04.2015 - 01:47
fonte
-2

Usa Malbolge. Dopo tutto ciò è essenzialmente casuale, vero?

(=<'#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?'=*z]Kw%oG4UUS0/@-ejc(:'8dc

Questo è il programma Hello World.

    
risposta data 11.04.2015 - 23:05
fonte
-3

Questa è davvero un'ottima idea. Non troverai questo tipo di password in modo semplice nelle rainbowtables e la maggior parte degli attacchi bruteforce non include caratteri come questo o cerchi password così lunghe.

La sua unica debolezza è il fatto che si tratta di un codice breve (non di una password corta), se qualcuno sa che hai uno script come password, potrebbe essere facile indovinarlo. Questo è assunto dalla risposta di sopra di SOJPM.

    
risposta data 10.04.2015 - 14:39
fonte