Come posso utilizzare soluzioni hardware per creare la crittografia “unbreakable” o copiare la protezione?

StackOverflow https://stackoverflow.com/questions/2061137

Domanda

Due tipi di problemi che voglio parlare:

  1. Diciamo che hai scritto un programma che si desidera crittografare a fini di copyright (ad esempio: negando all'utente senza licenza dalla lettura di un certo file, o la disattivazione di alcune funzionalità del programma), ma la maggior parte la crittografia basata su software può essere rotto da hacker (basta guardare la quantità di programmi disponibili per hACK programmi per diventare "le versioni complete".)

  2. Dire che si desidera spingere un software ad altri utenti, ma voler proteggere contro la pirateria (vale a dire, l'altro utente che effettua una copia di questo software e venderlo come proprio). Quale modo efficace è lì per difendersi da questo (simile a protezione musica su CD, come DRM)? Sia dal punto di vista software e un punto di vista hardware?

In alternativa sono quelle 2 appartengono alla stessa classe di problemi? (Dongles essendo il / soluzione hardware del circuito integrato basato, come molti elencati di seguito)?

Quindi, può scheggiare o essere usato la crittografia basata su hardware? E se sì, che cosa esattamente è necessaria? Non si acquista un particolare tipo di CPU, particolare tipo di hardware? Che cosa dobbiamo fare?

Tutto il consiglio è apprezzato, grazie!

È stato utile?

Soluzione

A meno che non hai messo in vendita questo programma per migliaia di dollari una copia, non è quasi certamente vale la pena.

Come altri hanno fatto notare, si sta fondamentalmente parlando di un dongle, che, oltre ad essere una delle principali fonti di bug difficili da fix per gli sviluppatori, è un anche un importante fonte di irritazione per gli utenti, e non c'è una lunga storia di questi dongle presumibilmente "uncrackable" di essere incrinato. AutoCAD e Cubase sono due esempi che vengono in mente.

La linea di fondo è che un cracker di abbastanza determinato può ancora rompere la protezione dongle; e se il software non è un obiettivo abbastanza attraente per i cracker di fare questo, allora probabilmente non vale la spesa, in primo luogo.

Solo i miei due centesimi.

Altri suggerimenti

dongle hardware, come altre persone hanno suggerito, sono un approccio comune per questo. Questo ancora non risolvere il problema, anche se, come un programmatore intelligente può modificare il codice per ignorare il controllo dongle - devono solo trovare il posto nel codice in cui si Branch sulla base di se il controllo passa o no, e modificare tale prova da superare sempre.

È possibile rendere le cose più difficili da offuscare il codice, ma sei ancora indietro nel regno del software, e che lo stesso programmatore intelligente può capire l'offuscamento e ancora raggiungere il suo obiettivo desiderato.

Facendo un ulteriore passo avanti, si potrebbe criptare parti del codice con una chiave che è memorizzato nel dongle, e richiedono il codice di bootstrap a prenderlo dal dongle. Ora il lavoro del vostro attaccante è un po 'più complicata - devono intercettare la chiave e modificare il codice di pensare ha ottenuto dal dongle, quando in realtà si tratta di hard-coded. Oppure si può fare il dongle stesso fare la decrittografia, passando il codice e tornare al codice decifrato -. Così ora l'attaccante deve emulare anche questo, o semplicemente prendere il codice decifrato e riporlo da qualche parte in modo permanente

Come si può vedere, proprio come i metodi di protezione del software, è possibile effettuare questa arbitrariamente complicata, mettendo più onere per l'attaccante, ma la storia dimostra che le tabelle sono inclinati a favore dell'attaccante. Mentre fessurazione vostro schema può essere difficile, ma deve solo essere fatto una volta, dopo di che l'attaccante può distribuire copie modificate a tutti. Gli utenti di copie pirata possono ora facilmente utilizzare il software, mentre i clienti legittimi sono sellati con un meccanismo di protezione contro la copia oneroso. Fornire una migliore esperienza per i pirati di clienti legittimi è un ottimo modo per trasformare i vostri clienti legittimi in pirati, se è questo che stai puntando.

L'unica - in gran parte ipotetica - modo per aggirare questo è chiamato Trusted Computing , e si basa sull'aggiunta hardware per computer di un utente che limita ciò che possono fare con esso alle azioni approvate. È possibile visualizzare i dettagli di supporto hardware per esso qui .

Vorrei caldamente consiglio contro questo percorso per i motivi che ho sopra descritto: Si finisce per fornire un'esperienza di peggio per i clienti legittimi che per coloro che utilizzano una copia pirata, che incoraggia attivamente le persone non per acquistare il software. La pirateria è un fatto di vita, e ci sono gli utenti che semplicemente non acquistare il software, anche se si potrebbe fornire una protezione a tenuta stagna, ma sarà lieto di utilizzare una copia illegittima. La cosa migliore che puoi fare è offrire la migliore esperienza e il servizio clienti ai vostri clienti legittimi, rendendo la copia legittima una proposta più attraente di quello pirata.

Si chiamano dongle, si inseriscono nella porta USB (al giorno d'oggi) e contengono il proprio piccolo computer e un po 'di memoria criptata.

Si possono utilizzare per controllare il programma è valud testando se la chiave hardware è presente, è possibile memorizzare enecryption chiavi e altri informazioni il dongle o, talvolta, si può avere qualche programma funzioni eseguite nel dongle. Si basa sul dongle essere più difficile da copiare e reverse engineering che il vostro software.

Deskey o HASP (sembrano essere state prese sopra)

Indietro nel giorno che ho visto i dongle hardware sulla porta parallell. Oggi si utilizza dongle USB come questo . Wikipedia link .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top