To top
Products Products

Crittografia Blurry Box

Share:

Principio di Kerckhoffs

Auguste Kerckhoffs

Auguste Kerckhoffs
Image Source: Wikipedia.org

Auguste Kerckhoffs postulò il suo omonimo principio nel XIX secolo: "Un sistema crittografico dovrebbe essere sicuro anche se tutto ciò che riguarda il sistema, fatta eccezione per la chiave, fosse di dominio pubblico". Ciò significa che un metodo efficace non deve essere mantenuto segreto. Se lo fosse, ci si dovrebbe chiedere il perché.

Wibu-Systems è da molti anni fedele a questo principio. Mentre molte altre chiavi di protezione sul mercato si basano su algoritmi proprietari, Wibu-Systems cominciò a utilizzare il ben noto algoritmo FEAL e pubblicò lo schema di derivazione della chiave nel manuale di WibuBox già nel 1992, al lancio iniziale di WibuKey. Mentre un certo numero di sistemi “chiusi” è stato violato in breve tempo, WibuKey è stata in grado di resistere alla prova del tempo, fino a quando la chiave da 40 bit (impiegata in ragione delle restrizioni sulle esportazioni) è diventata troppo limitata. Le attuali WibuBox utilizzano una lunghezza della chiave di 64 bit e, ad oggi, non sono mai state violate. La prima versione di CodeMeter, che è poi seguita nel 2003, fece uso di AES a 256 bit, un altro ben noto algoritmo di crittografia pubblico. E, ancora una volta, nessuna CmDongle è stata, ad oggi, violata.

Il Concetto

A differenza del processo crittografico che si verifica in una chiave di protezione, nessun metodo di integrazione della protezione sicura nel software è stato sinora pubblicato. Questo si traduce in "Sicurezza mediante Oscurità", l'esatto opposto di ciò che si prefigge il Principio di Kerckhoffs. Metodi “chiusi” non possono essere valutati, né confrontati l'uno con l'altro. Anche in questo caso, Wibu-Systems ha offerto l'opportunità di discutere i metodi e le funzionalità di CodeMeter Protection Suite durante conferenze ed eventi.

Grazie a Blurry Box, la crittografia viene portata a un nuovo livello. La crittografia Blurry Box offre infatti una protezione del software che si basa integralmente su metodi accessibili al pubblico e che può, pertanto, essere valutata e confrontata. Inutile a dirsi, la crittografia Blurry Box può essere combinata con i metodi tradizionali di CodeMeter Protection Suite.

AxProtector .NET - Principio di Funzionamento

Il principio alla base della crittografia Blurry Box è l'utilizzo di una o più chiavi sicure in una chiave di protezione in associazione ad un software generalmente complesso. L’obiettivo è rendere lo sforzo richiesto per copiare illegalmente il software superiore allo sforzo necessario per riscrivere completamente il medesimo software. In sostanza, niente può virtualmente impedire a un hacker, che conoscesse il funzionamento di un determinato componente del software, di sviluppare un componente simile: niente, tranne l'impegno richiesto.

I Metodi

La crittografia Blurry Box è composta da sette metodi, fatto che aumenta lo sforzo necessario per creare un falso, al punto tale che diventa più semplice e veloce sviluppare nuovamente il software da zero.

I Metodi

Creazione di Varianti

Allo scopo di accrescere la complessità del software, le funzioni del software vengono riprodotte come varianti della funzione. Una funzione wrapper seleziona quale variante eseguire a seconda dei parametri di input stabiliti dalla funzione.

Modifica di Varianti

Le varianti individuali vengono modificate per operare esclusivamente nell'intervallo di valori valido per ciascuna variante. Ciò impedisce agli hacker di intervenire sulla funzione wrapper per eseguire soltanto la stessa variante ogni volta.

Crittografia di Varianti

Tutte le varianti sono crittografate per impedire agli hacker di decompilare il codice senza prima decifrarlo.

Inserimento di Trappole

Oltre alle varianti già generate, vengono inserite, e quindi crittografate, ulteriori varianti come trappole. Una trappola contiene un codice di blocco, ovvero, se la trappola viene decifrata tramite la chiave di protezione, la chiave stessa si auto-blocca e non può più essere utilizzata per decrittare. Ciò impedisce a un hacker di decrittare tutti i metodi senza decompilarli.

Scelta della Variante nella Chiave di Protezione

La funzione wrapper utilizza la chiave di protezione per selezionare la variante. A questo scopo, vengono inviati i parametri di input alla chiave e viene restituita la variante da utilizzare. Questo fa in modo che l'hacker non possa più distinguere le varianti richieste decompilando semplicemente una funzione wrapper decrittata. Dovrebbe infatti eseguire il codice per tutti i possibili parametri di input, per essere in grado di individuare la variante con assoluta certezza.

Stato Memoria nella Chiave di Protezione

Il produttore di software sa che le funzioni possono essere eseguite unicamente nell'ordine che ha stabilito. L'ultimo metodo di decrittografia viene memorizzato come stato nella chiave di protezione. La successiva decrittografia verificherà quindi se questo stato è stata soddisfatto. In caso contrario, una trappola potrà essere attivata per impedire che un hacker tenti tutte le varianti in un qualsiasi punto specifico del software. Sarebbe infatti sempre costretto a ritornare al punto di partenza, fattore che innalza la complessità dell'attacco.

Ritardo nella Decrittografia

In condizioni normali, si può eseguire solo un determinato numero di operazioni di decrittazione ogni 30 secondi. Questo numero viene memorizzato come soglia di decrittazione nella chiave di protezione. La chiave stessa regola il relativo carico di decrittazione. Oltre a rendere il processo più complesso, questo meccanismo rallenta qualsiasi hacker.

Riepilogo

La crittografia Blurry Box utilizza sette metodi pubblici, che aumentano notevolmente la complessità e il tempo necessari affinché un attacco abbia successo. Per l'aspirante hacker sarebbe più semplice e meno costoso sviluppare un analogo software a partire da zero.

La crittografia Blurry Box può essere combinata con i metodi anti-debug e di offuscamento caratteristici di CodeMeter Protection Suite. Grazie a Blurry Box, la protezione del software diventa misurabile e comparabile. Nessuna cieca fiducia necessaria: si acquista una soluzione che è stata accuratamente testata e validata dagli esperti del settore.