CryptoHack: una piattaforma sulla crittografia

La crittografia - come da definizione - è la pratica e lo studio delle tecniche per una comunicazione sicura in presenza di terzi, chiamati avversari. Si tratta della costruzione e dell’analisi di protocolli che impediscono a terzi e al pubblico di leggere messaggi privati.

CyptoHack è una piattaforma pensata per imparare cosa c’è dietro la crittografia attraverso una serie di giochi e sfide, il cui accento è posto sulla rottura di cattive implementazioni di crittografia "moderna", come AES, RSA e curva ellittica. È stata creata da due amatori di crittografia provenienti dal Regno Unito, un ingegnere di sviluppo e un dottorando di ricerca in buchi neri.


Il formato che viene presentato è una serie di puzzle che insegnano piccole lezioni e motivano ulteriori ricerche. CryptoHack si ispira a Capture The Flag, un concorso a tema crittografico che si svolge in tre round l’uno collegato all'altro con l’intento di trovare la magic word finale. La piattaforma di CryptoHack vuole rendere non solo più permanente l’atmosfera data da Capture The Flag, ma anche più accessibile.


CryptoHack si differenzia anche da MysteryTwister C3, un altro crypto challenge contest, dal momento che quest’ultimo non propone un ambiente altrettanto gamificato, concentrandosi anzi più su aspetti didattici e sul design della crittografia. Inoltre, comprende molte sfide con procedure e macchine storiche.


Come si gioca?


Per giocare a CryptoHack basta registrare un account e risolvere un cifrario piuttosto semplice. Tra la varietà di sfide che vengono offerte sulla piattaforma troviamo, ad esempio, il fare richieste web a un server ed estrarre lentamente i dati riservati, o ancora collegarsi a una porta ed eseguire un attacco man-in-the-middle a due parti che cercano di comunicare. Ciascuna di queste sfide ha il ben preciso obiettivo di scoprire la “bandiera”, ovvero un’informazione segreta. La bandiera, che viene presentata come una stringa di caratteri simile a crypto{th15_1s_4_fl4g}, dev’essere quindi inviata alla piattaforma e, in cambio, il giocatore riceve dei punti. In caso la bandiera si presenti sotto un diverso formato, un avviso sarà presentato all’inizio della sfida.


Quasi tutte le sfide che si trovano su CryptoHack comportano il codificare una piccola soluzione. Tuttavia, vengono forniti frammenti del codice sorgente Python che possono essere adattati agli scopi del giocatore. La piattaforma in ogni caso sconsiglia l’utilizzo del proprio codice sorgente come riferimento per una vera e propria crittografia di produzione in quanto contiene deliberatamente gravi errori.


Che linguaggio si utilizza?


Il linguaggio di programmazione consigliato è principalmente Python 3, in cui sono scritte quasi tutte le sfide proposte, un ottimo linguaggio per la prototipazione veloce della crittografia. Si tratta di un linguaggio leggibile con un supporto nativo per grandi interi. Secondo alcuni, Python 2 era più conveniente di Python 3 poiché non faceva una forte distinzione tra byte e caratteri. Tuttavia, oltre al fatto che Python 2 sia ormai da considerare obsoleto, queste sue caratteristiche si sono rivelate la causa di diversi bug e problemi di localizzazione.

Alcune delle sfide più avanzate, invece, sono scritte in Sage 9, sempre basato sul sopracitato Python 3. Inoltre, la piattaforma fa ampio uso della libreria PyCryptodome per eseguire le comuni operazioni di crittografia.


Le sfide proposte


Tra le sfide proposte, troviamo quelle di cifratura a blocchi, costruite sopra le applicazioni web. La soluzione delle sfide viene trovata partendo dal codice sorgente del problema e dalle forme per interagire con le funzioni definite. Una delle caratteristiche principali delle sfide su CryptoHack è la dinamicità: i dati raccolti devono essere inviati per l’elaborazione affinché si possa risolvere il problema, andando a comunicare con il server e ricevendo da esso una risposta. Ogni sfida specificherà i valori chiave da inviare e i valori saranno i dati con cui si sta lavorando. La comunicazione con il server talvolta può anche essere automatizzata attraverso la libreria Pwntools.


La piattaforma offre anche la possibilità di condividere i propri risultati nella pagina denominata Soluzioni, potendo anche leggere i risultati di altri giocatori. CryptoHack chiede ai propri giocatori di mantenere una certa discrezione sui risultati delle sfide, in modo da non rovinarle ai nuovi arrivati. L’unica eccezione è fatta per le sfide “Starter”, o che valgono 10 punti o meno: in questo caso è permesso discuterne pubblicamente.


Livelli, punti e trofei

Per ogni categoria, troviamo dei trofei, che vengono assegnati per una percentuale totale completa. Il trofeo di maggior valore è quello d’oro con stella, che corrisponde al 100%. A seguire troviamo il trofeo d’oro, al 75%,; quello d’argento, al 50%; infine, vediamo quello di bronzo, con una percentuale del 25%. I punti vengono guadagnati tramite la risoluzione delle sfide. Man mano che il giocatore progredisce, guadagna livelli e accumula sempre più punti. I livelli vengono scalati raggiungendo un certo numero di punti, monitorabili consultando il proprio profilo utente.


Articolo di Chiara Pozzoli

COFFEEBYTES rappresenta un concept brand ideato da SaidiSEO.com

Sede Ufficio: Via Privata Francesco Koristka, 4, 20154 Milano MI - P.IVA 09215030967
e-mail per informazioni: info@ferdinandodagostino.com; saidiseo@ferdinandodagostino.com

Ferdinando Dagostino - SaidiSEO "Web Creative e SEO"

P.IVA 09215030967

YouTube CB.png
Spreaker CB.png
Facebook CB.png
Instagram CB.png
LinkedIn CB.png