Hack This Site: livello base – esercizio 6

Tempo addietro avevamo scritto una piccola introduzione sulle origini della crittografia (o criptografia) osservando gli antichi metodi utilizzati per celare i dati scritti, le informazioni segrete nascoste dietro a dei dipinti, regole e codici (cypher), ovvero algoritmi, che permettono di cifrare o decifrare un testo. Oggi, la situazione non è diversa da allora, il sistema è il medesimo, ciò che è cambiato è solo la difficoltà nel cifrare/decifrare che è aumentata grazie ai sistemi informatici, ovvero al passaggio dall’analogico al digitale, così da permetterci di realizzare algoritmi più complicati.

Nell’esercizio di criptoanalisi che vedremo qui il sistema utilizzato è particolarmente semplice da decifrare perché ci troviamo ad un livello base, non risponde quindi ai parametri attuali reali, ma può aiutarci a comprendere comunque l’effettivo funzionamento degli algoritmi più complicati.

LEVEL 6

Network Security Sam has encrypted his password. The encryption system is publicaly available and can be accessed with this form.
[Traduzione: Sam della sicurezza network ha criptato la propria password. Il sistema di criptaggio è pubblicamente disponibile e si può accedere ad esso con il modulo qui sotto].

Il processo su cui si basa il criptaggio/decriptaggio è il seguente:
Testo originale > Criptaggio > Testo criptato > Decriptaggio > Testo di partenza.
Un algoritmo crittografico, che altro non è che una funzione matematica utilizzata per criptare/decriptare, viene denominato anche cipher.
Qui, ci troviamo di fronte ad un algoritmo simmetrico, ovvero un algoritmo convenzionale in cui la chiave per criptare è unica e può essere calcolata dalla chiave di decriptaggio e vice versa. In altri casi, e negli ultimi anni, sempre di più si è prediletto l’uso di algoritmi asimmetrici, ovvero della creazione di due chiavi diverse una per criptare e l’altra per decirare, poiché più complicati da decodificare rispetto a quelli simmetrici.

Password hashing: le password di norma non sono archiviate in chiaro ma criptate perché, altrimenti, sarebbe troppo rischioso e chiunque potrebbe avere accesso ad esse. Il password hashing è una funzione di sicurezza basata su un criptaggio semplice utilizzato per verificare l’integrità del codice. Il momento in cui la password in formato hash deve essere verificata essa viene criptata dal client e trasmessa al server dove l’hash archiviato e quello trasmesso vengono comparati: nel caso queste coincidano l’utente verrà autenticato.

Quello che possiamo fare, per iniziare, è immaginare che l’algoritmo utilizzato da Sam non sia terribilmente difficile da decifrare ed abbiamo uno strumento, lo stesso che ha usato lui, per poter criptare la propria password. A questo punto, probabilmente, qualcuno si perderà: l’hacking è anche questo, ovvero la pazienza di cercare di comprendere e provare a trovare la soluzione, possibilmente da soli.

L’idea quindi è provare ad inserire in questo strumento a nostra disposizione un codice ordinato di cifre il più semplice possibile e della stessa lunghezza di quello da decifrare (12345678) e vedere quale risultato può darci.

Osservando il risultato notiamo che il sistema ha criptato il nostro codice 12345678 con 01234567; ciò significa che se proviamo per scrupolo anche un “abcdefgh” avremo come risultato “acegikmo”: siamo allora certi che questo sistema, semplicemente, cripta contando un numero in meno per ogni posizione. Aiutiamoci quindi con un foglietto e scriviamo la nostra password che nel nostro caso è 97g:;88< dopodiché prendiamoci la tabella ASCII, ovvero il Codice Standard Americano per lo Scambio di Informazioni, che va dai caratteri 32 al 127 e calcoliamoci la password:

Password di Sam:       97g:;88<      
Posizioni di codifica: 01234567
Password codificata:   96e77325

Cos’abbiamo fatto quindi? Semplicemente, ed è più difficoltoso spiegarlo che farlo, abbiamo contato all’indietro aiutandoci con la tabella ASCII: il primo numero, il 9, è rimasto inalterato poiché corrispondente alla posizione 0; con il secondo carattere, 7, abbiamo dovuto vedere cosa si trovava nella riga sopra trovando il 6; con il terzo carattere, g, abbiamo cercato due righe più sopra ricavandoci il numero una e; il quarto ed il quinto simbolo implicavano rispettivamente di salire di tre e di quattro righe più sopra trovando in entrambi i casi un bel 7; il successivo 8, abbiamo contato cinque righe recuperando un 3; per l’altro 8 un bel 2 si trovava sei righe più sopra; ed infine il <, sette righe più in su, ci rivelava un 5 finale.

Chiudiamo il post con un’immagine in cui possiamo vedere parte della tabella del codice ASCII, abbiamo selezionato con un cerchietto la password criptata di Sam e segnalato con i numeri che abbiamo usato per la codifica i relativi risultati.

 

Share the love

Comincia la discussione

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *