Académique Documents
Professionnel Documents
Culture Documents
Alfredo De Santis
Dipartimento di Informatica Universit di Salerno ads@dia.unisa.it http://www.dia.unisa.it/professori/ads
Marzo 2012
! Compito impossibile! ! Per si pu rendere la copia difficile per il pirata esperto ed impossibile per il pirata occasionale
Indice
! ! ! ! ! Numeri di serie Implementazione dei numeri di serie Dongle Esecuzione remota Difesa dalle contraffazioni
! Checksum ! Esche ! Offuscamento
Numeri di serie
! Il software necessita di un numero di serie per funzionare
numero di serie
Controllo validit
! Molto utilizzato dalle aziende di software ! Non offre un alto grado di protezione ! Ma un deterrente psicologico
! Digitare un numero di serie copiato rende consapevoli di ci che si sta facendo
M
firma
Cifrario simmetrico
numero di serie
Controllo validit
chiave privata
Cifrario simmetrico
numero di serie
Cifrario simmetrico
numero di serie
Controllo validit
Conversione in binario
Formato corretto?
8 bit
R64
R64
R64
R64
8 bit
8 bit
8 bit
Espansione 33%
! Per utile avere alfabeto potenza di 2 ! Eliminare 4 caratteri, ad es. l 1 o 0 (facili da confondere)
0 A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8 I 9 J 1 0 K 1 1 M 1 2 N 1 3 P 1 4 Q 1 5 R 1 6 S 1 7 T 1 8 U 1 9 V 2 0 W 2 1 X 2 2 Y 2 3 Z 2 4 2 2 5 3 2 6 4 2 7 5 2 8 6 2 9 7 3 0 8 3 1 9
Stringa fissata
chiave privata Contatore + stringa fissata
Cifrario simmetrico
Cifrario simmetrico
numero di serie
Quanto sicuro?
File di licenza
Firma digitale
numero di serie
Controllo validit
chiave privata File di licenza
File di licenza
Firma digitale
numero di serie
Firma digitale
numero di serie
Controllo validit
numero di serie
File di licenza
! Informazioni sulle licenze:
! Informazioni specifiche dellutente (ad es., nome) ! Versione del software con alcune caratteristiche a pagamento
! Tecnica intrusiva
Il proprietario non pu modificare troppo la configurazione della propria macchina
Dongle
! Chiamati anche: hardware key, hardware token, o security device ! Si collegano alla porta seriale o parallela (poi USB) e sono dotati di limitate capacit di elaborazione ! Applicazione verifica presenza dongle durante lesecuzione, inviando richieste e ricevendo risposte. Ad esempio: ! Compito attaccante: riprodurre in forma software il codice del dongle
! Computazione valore funzioni ! Esecuzione di parte del codice
Dongle
! Importante stabilire quale codice inserire nel dongle ! Ci sono limitazioni di capacit di elaborazione e memoria ! Non impossibile capire cosa fa il dongle per un attaccante esperto ! Problemi:
! Soluzione costosa ! Scomoda per lutente (detestati da chi li ha usati)
Esecuzione remota
! Molto simile ai dongle ! Ogni client
! ha delle credenziali ! si autentica su un server remoto ! esegue parte del codice sul server remoto
! pi scomodo, perch necessita di un componente online ! Produttore software deve gestire le credenziali e mantere server ad alta disponibilit
Checksum
! Calcolare checksum di dati e routine che possono essere attaccati
! E il valore precalcolato uguale al valore calcolato dinamicamente?
! Un attaccante potrebbe capire che il codice protetto dal checksum importante ! Contromisura: pi checksum, anche su parti secondarie, con controlli incrociati e dipendenti
Esche
! Aggiungere esche con controlli di licenza validi e facili da trovare ! Un attaccante indotto a pensare che la protezione sia pi debole di quella reale ! Introdurre checksum su questo codice esca ! Se lesca viene rimossa o modificata, introdurre sottili bug nel programma
Offuscamento
! Aggiungere codice
! Codice che non viene mai eseguito ! Codice che non fa nulla
! Rendere i calcoli pi complessi del necessario ! Utilizzare relazioni matematiche per condizioni vero/falso (attaccante non sa che sempre vera/falsa)
! Spostare il codice
! Copiare e rinominare la stessa funzione, invee di richiamarla da pi punti ! Unire pi funzioni in una sola, assicurandosi la corretta esecuzione dei blocchi di codice in base alla chiamata
! Conversioni in set di caratteri strano ! Creazione di stringhe stampabili solo se necessario ! Cifrare i dati
! Avvertenze
Cifratura
! Cifrare parte del codice e dei dati ! Il codice ha la procedura di decifratura con la chiave privata
Conclusioni
! Trovare un metodo contro la pirateria
! efficiente ! economico ! resistente contro i pirati esperti ! non invasivo
un compito impossibile! ! Per si pu cercare di rendere lo sforzo richiesto per la contraffazione pi grande del vantaggio corrispondente ! Abbiamo descritto alcune tecniche ! Si possono applicare molte diverse tecniche in modo giudizioso!
Bibliografia
"""#$%&'(&)*+,-%.,+/0"1.,#-/2!
Domande?
Capitolo 15
36