Forum Sicurpas...
Sicurpas Ghost Algorithm - Versione stampabile

+- Forum Sicurpas... (http://www.sicurpas.it/forum)
+-- Forum: Sicurpas Freeware - Guida - Discussioni (http://www.sicurpas.it/forum/Forum-Sicurpas-Freeware-Guida-Discussioni)
+--- Forum: Sicurpas Ghost Algorithm (http://www.sicurpas.it/forum/Forum-Sicurpas-Ghost-Algorithm)
+--- Discussione: Sicurpas Ghost Algorithm (/Thread-Sicurpas-Ghost-Algorithm)



Sicurpas Ghost Algorithm - Mariano - 05-01-2013

Ghost è un algoritmo creato per ingannare i programmi rivelatori di asterisco ed i famigerati memory dump, cioè i software in grado di mappare e quindi leggere i contenuti delle locazioni di memoria. Con Pierluigi Ortu realizzammo la prima versione da implementare in Sicurpas 2.0: attualmente, nella versione professional, Ghost ha raggiunto la piena maturità.
[Immagine: Ghost.jpg]
E’ un algoritmo snello, leggero (10 linee di codice), velocissimo e sicuro, in grado di esercitare il controllo completo sulla tastiera e le combinazioni di tasto relative. Ghost dialoga perfettamente con i caratteri virtuali, pertanto è in grado di occultare tutte le immissioni effettuate con questa specifica.

La versione professional propone all’utente un test con il quale è possibile osservare il reale funzionamento di Ghost e la sua velocità di esecuzione.

[Immagine: Ghost.jpg]

Come funziona Ghost
Per poter ingannare i programmi rivelatori di asterisco l’algoritmo utilizza una locazione di memoria nella quale viene allocata, dopo aver subito un processo di cifratura che si snoda attraverso un flusso continuo i cui tempi procedurali sono dettati da ogni nuovo carattere immesso, la stringa contenente la password. In tal modo un attacco agito nei confronti di suddetta locazione porterebbe alla visualizzazione di un valore cifrato con l’algoritmo di Rijndael avente chiave di cifratura pari a 256 bit. Ogni singolo carattere immesso viene concatenato alla stringa base e successivamente cancellato dalla locazione di memoria, la stringa medesima viene a quel punto cifrata con una nuova chiave. La chiave di cifratura è data dai valori digitati dall’utente più la stringa addizionale che andrà ad implementare la master key digitata. In questo modo, avendo la password master un limite di 40 caratteri, il processo di cifratura si snoda attraverso 40 chiavi ed altrettanti cicli di cifratura differenti.

La stringa addizionale
Come impostazione di default Ghost addiziona i caratteri inseriti dall’utente con una stringa avente 40 caratteri: questo numero può essere decrementato di dieci unità per volta, fino allo zero. Chiaramente non è consigliabile operare in assenza della stringa addizionale, ma ciò è logicamente correlato all’ambiente in cui si opera ed alle caratteristiche meccaniche dell’apparato. Se il sistema è protetto dalla presenza di programmi come quelli citati ed il supporto hardware non è tra i più performanti, è possibile utilizzare Ghost omettendo la stringa addizionale: la velocità di esecuzione è direttamente proporzionale al numero di caratteri che compongono la stringa in esame. Indipendentemente dai compromessi legati a sicurezza ed ambiente la regola impone sempre un minimo di caratteri addizionali!

Interfacciare Ghost
Ghost può essere interfacciato con due differenti algoritmi di generazione casuale: ISAAC ed ASCII random. La scelta dell’interfaccia più idonea è chiaramente correlata al tipo di caratteri con i quali si intende creare la password master. Il primo è più adatto a caratteri alfanumerici, il secondo a codici da tastiera. Entrambi gli algoritmi offrono un ottimo livello di sicurezza e garantiscono velocità di esecuzione.

Immissione di una password
Supponiamo che la stringa addizionale sia impostata a 40 caratteri ed intendiamo immettere una password master avente 10 caratteri i cui primi tre valori sono a1p…
L’inserimento del primo carattere, cioè la lettera a determina una chiave di cifratura composta dal valore citato più una stringa addizionale formata da 40 caratteri. L’inserimento del carattere successivo definisce una chiave formata dai caratteri a1 più la stringa addizionale. In pratica, come già spiegato, l’incremento dei valori, quindi il variare della password master, determina un chiave ex novo ed un ciclo di cifratura correlato ogni volta differente:

a: chiave di cifratura = a + 40 chr
a1: chiave di cifratura = a1 + 40 chr
a1p: chiave di cifratura = a1p + 40 chr


La stringa che compone la chiave master verrà cifrata e decifrata in modo che possa esservi aggiunto il valore in ingresso: una volta cifrata la stringa viene immediatamente cancellato il carattere e riscritta la locazione di memoria. In questo modo i tempi per effettuare un attacco debbono essere sincronizzati su un intervallo di tempo inferiore al millesimo di secondo!