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.40.37
script eseguito in 16 ms


Valid XHTML 1.0 / CSS
\\ Home Page : Storico : Goliath .NET MuPAL (inverti l'ordine)
Di seguito gli interventi pubblicati in questa sezione, 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!

 
Di Marcello Cantelmo (del 28/03/2008 @ 20:42:30, in Goliath .NET MuPAL, linkato 468 volte)

Disponibile, a breve, Goliath .NET MuPAL (Multiple-Precision Arithmetic Library) : - )

La libreria, realizzata 100% in VB.NET e CLSCompliant(True): - o, rappresenta la naturale evoluzione della libreria matematica creata e già utilizzata per le procedure di licensing di tutti i prodotti Cantelmo Software ; - )

La libreria consente di:

- utilizzare matematica con precisione arbitraria;
- utilizzare numeri di qualsiasi dimensione (rappresentati da stringhe);
- implementare i più moderni Crittosistemi Asimmetrici, Ellittici, ect.;
- ect.

a breve, quindi, versione dimostrativa, esempi e video tutorial! ; - )

 
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