Software Development
Italiano | English

FORUM
::  Menù Principale - Sito Web
del Geom. Marcello Cantelmo :: Un'Azienda. Molte Soluzioni !
 
:: In Primo Piano
< settembre 2010 >
L
M
M
G
V
S
D
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     
             

Profilo Facebook di Marcello Cantelmo
Cerca per parola chiave
 


Titolo
In che modo Proteggi il tuo software?

 Chiave Hardware
 Chiave Software
 Nessuna Protezione




10/09/2010 @ 20.27.50
script eseguito in 32 ms


Valid XHTML 1.0 / CSS
\\ Home Page : Storico per mese (inverti l'ordine)
Di seguito tutti gli interventi pubblicati sul sito, in ordine cronologico.
 
 
Di Marcello Cantelmo (del 17/12/2008 @ 09:12:40, in Goliath .NET MuPAL, linkato 423 volte)

La protezione dei ns programmi è un argomento sempre attuale!

Per una protezione efficace è necessario rendere INSEPARABILE il legame tra protezione e programma. Ma chi utilizza il .NET deve prevedere -anche la possibilità- che il Suo codice venga spiato e/o analizzato (con l'ausilio dei decompilatori).

Se il codice può essere analizzato, risulta superfluo, utilizzare crittografia a chiave simmetrica per proteggere i dati utilizzati per il licensing. Il punto debole degli algoritmi a chiave simmetrica è la chiave che -necessariamente- deve essere distribuita con il programma.

Ora, quindi, l'idea è questa:

1) utilizzare Goliath .NET MuPAL (Multi-Precision Arithmetic Library);
2) implementare ALGORITMI A CHIAVE ASIMMETRICA: si cryptano i dati con la chiave privata e si decryptano i dati con la chiave pubblica (distribuita con il programma);
3) e, come detto, per RENDERE INSEPARABILE IL LEGAME tra protezione e programma invece di inserire manualmente i valori utilizziamo quelli presenti nello STRONG-NAME.

Ne consegue:

- per alterare anche 1 solo byte dei ns programmi è necessario ELIMINARE LO STRONG-NAME;
- eliminando lo strong-name, RISULTA FALSATA, qualsiasi decodifica dei ns dati.

Per esporre quanto detto, si decide, di utilizzare RSA:

normalmente per cryptare si utilizza:

C = M^E mod N

e per decryptare:

M = C^D mod N

dove:

M = testo da cifrare ( per non avere problemi la dim. consigliata è: (keysize/8)+1 )
P = 1° NUMERO PRIMO di grandi dimensioni (per ora >=512 bits)
Q = 2° NUMERO PRIMO di grandi dimensioni (per ora >=512 bits)
E = ESPONENTE PUBBLICO che soddisfa: GCD(E, (P-1)*(Q-1))==1)
N = MODULO PUBBLICO, il prodotto di P e Q: N=P*Q
D = ESPONENTE PRIVATO: D=E^(-1) mod ((P-1)*(Q-1))

P, Q e D ...DEVONO RIMANERE SEGRETI!!!

invece nel ns sistema di licensing utilizzeremo il sistema RSA al contrario (verifica firma):

per cryptare: C = M^D mod N e per decryptare: M = C^E mod N

il risultato di tale operazioni potrà -ad esempio- essere utilizzato per far compiere al ns programma una qualsiasi operazione (e non un banale vero/falso del risultato!)

N.B.: con tale tecnica è virtualmente impossibile realizzare un keygen dei ns programmi perchè è necessario scoprire i parametri P e Q dalla chiave pubblica N. Per riuscire nell'impresa si deve fattorizzare N (la sfida del nuovo millennio). Lo strong-name usa chiavi a 1024 bits. I tempi di calcolo -per tali dimensioni di chiavi- risultano -con le attuali macchine- davvero proibitivi!

Per maggiori informazioni si consiglia di visionare gli esempi contenuto con la libreria Goliath .NET MuPAL!

enjoy!

Articolo Link Commenti Commenti (0)  Storico Storico  Stampa Stampa
 

La "guerra" tra obfuscators contro decompilers (e/o deobfuscators) è sempre attuale. : - )

Sono stati rilasciati strumenti che -se usati creativamente- potrebbero facilitare un eventuale aggressore nell'eliminazione di una precisa tecnica di protezione: il control-flow! : - o

Prevedendo questa "realistica possibilità" è necessario complicare ulteriormente il codice dei ns algoritmi! ; - )

Ragion per cui in Goliath .NET Obfuscator release 3.0.4 (Edizione Enterprise) è stata inserita una nuova procedura che offusca i valori numerici unitamente ai valori booleani True/False (aggiornamento del 02-dic-2008). : - D

Cantelmo Software è sempre un passo avanti! Ai competitors "poco creativi"...non rimane altro che copiare anche questa tecnica! ; - )

Articolo Link Commenti Commenti (0)  Storico Storico  Stampa Stampa
 
Pagine: 1


. . : :   U N D E R   C O N S T R U C T I O N   : : . .
Home Page:Servizi:Soluzioni:Clienti:Prodotti:Azienda

: : Use OpenOffice.org :
Copyright © 2003-2009 "Cantelmo Software" del Geom. Marcello Cantelmo. Tutti i Diritti sono Riservati • Note Legali
Document made with Nvu
Microsoftâ„¢, Windowsâ„¢, .NETâ„¢, and .NET Frameworkâ„¢ sono marchi di Microsoft Corporation. Tutti gli altri marchi appartengono ai legittimi proprietari.

powered by dBlog CMS ® Open Source