Checksum per l'autenticazione - è affidabile?

-1

Ho appena realizzato il prototipo per il mio nuovo metodo di autenticazione sicuro basato su password, ma ci sono molti dubbi sulla scelta della dimensione della password e dell'alfabeto. Il metodo è semplice: l'utente calcola il checksum della sua password (somma delle posizioni di questi simboli in diverse permutazioni casuali dell'alfabeto scelto, quindi per ogni simbolo deve essere trovata la sua posizione nella permutazione corrispondente e aggiunta alla somma. di checksum è un resto della divisione di questa somma per il numero totale di tutti i simboli nell'alfabeto scelto).

In realtà, va in questo modo (la dimensione della password è uguale a 16, la dimensione dell'alfabeto è uguale a 20):

  1. Il server invia solo permutazioni casuali generate dell'alfabeto - una permutazione specifica per ogni lettera della password dell'utente. Lasciate che queste permutazioni siano chiamate come G1, G2, ... G16;
  2. L'utente calcola il valore di checksum come = (G1 (L1) + G2 (L2) + G3 (L3) + ... + G16 (L16))% 20 (qui: L1 ... L16 - lettere separate di la password);
  3. Server riceve il checksum e si confronta con il proprio calcolo;
  4. L'intera procedura può essere ripetuta per ridurre la possibilità di indovinare accidentalmente.

In realtà, credo che sia un metodo affidabile (o no?), ma per quanto riguarda le lunghezze? Penso che 16 lettere di questo tipo per la password - non è abbastanza per resistere alle ipotesi di forza bruta per questo metodo. Ho ragione? 20 sarebbero sufficienti? L'alfabeto è un'altra grande domanda. La crittografia non è la mia tazza di tè, quindi, per favore scusami per una descrizione così ingombrante. Ecco la semplice demo di questo: metodo di autenticazione sicuro basato su password . Spero sia molto più informativo.

    
posta AlexAnd 24.01.2015 - 18:39
fonte

1 risposta

1

Ho appena provato la tua demo, e ciò che mi preoccupa è che alla fine l'autenticazione è fatta usando un singolo carattere, quindi l'intero sistema di autenticazione si basa solo su un singolo carattere indovinato, da confrontare con 8+ caratteri per le password con una lunghezza minima imposta a 8 e la dimensione dell'hash nel caso in cui un hash sia inviato al server (32 caratteri hexa in caso di md5 per esempio). Hai menzionato l'idea di ripetere l'intera procedura, ma anche se la ripeti due o tre volte l'autenticazione si baserà solo su 2 o 3 caratteri.

Il punto principale da notare è che quando un attaccante proverà a rinforzare il tuo sistema, molto probabilmente non cercherà di indovinare una password e non si preoccuperà del tuo sistema: riempirà il tuo server di hash casuali fino a quando uno non si gira fuori per essere valido. Una possibilità su 20 al momento di vincere ad ogni tentativo (meglio di qualsiasi lotteria!), Un po 'di più se si ripete il processo, ma ancora nulla a che fare con, ad esempio, i miliardi di miliardi di possibilità offerte da un hash crittografico che annienta le possibilità di trovare un hash corretto dalla bruteforce in meno di qualche secolo.

    
risposta data 24.01.2015 - 19:22
fonte

Leggi altre domande sui tag