Domanda

Sono curioso di sapere come proteggere il tuo software da crack, hacking ecc.

Utilizzi una sorta di controllo del numero seriale? Chiavi hardware?

Utilizzi soluzioni di terze parti?

Come si risolvono i problemi di licenza? (ad es. gestione delle licenze mobili)

EDIT: non sto parlando di open source, ma di una distribuzione di software strettamente commerciale ...

È stato utile?

Soluzione

Ci sono molte, molte, molte protezioni disponibili. La chiave è:

  • Valutare il pubblico di destinazione e cosa sono disposti a sopportare
  • Comprensione del desiderio del pubblico di giocare senza pagare
  • Valutare l'importo che qualcuno è disposto a presentare per violare la protezione
  • Applicando la protezione sufficiente per impedire alla maggior parte delle persone di evitare i pagamenti, senza infastidire quelli che utilizzano il software.

Nulla è indistruttibile, quindi è più importante valutare queste cose e scegliere una buona protezione piuttosto che semplicemente schiaffeggiare la migliore (peggiore) protezione che ti puoi permettere.

  • Codici di registrazione semplici (verificati online una volta).
  • Semplice registrazione con chiavi revocabili, verificata online frequentemente.
  • La chiave crittografata contiene parte dell'algoritmo del programma (non può semplicemente saltare il segno di spunta, deve essere eseguita affinché il programma funzioni)
  • Chiave hardware (crittografia a chiave pubblica / privata)
  • Chiave hardware (include parte dell'algoritmo del programma che viene eseguito sulla chiave)
  • Il servizio Web esegue codice critico (gli hacker non riescono mai a vederlo)

E variazioni di quanto sopra.

-Adam

Altri suggerimenti

Indipendentemente dal percorso che segui, applica un prezzo equo, semplifica l'attivazione, offri aggiornamenti minori gratuiti e non disattivare mai il loro software. Se tratti i tuoi utenti con rispetto, ti ricompenseranno per questo. Tuttavia, qualunque cosa tu faccia, alcune persone finiranno per piratarlo.

Non farlo.

I pirati faranno pirati. Non importa quale soluzione ti viene in mente, può e verrà decifrata.

D'altra parte, i tuoi clienti effettivi e paganti sono quelli che sono disturbati dalla merda.

Rendi più facile l'acquisto che il furto. Se metti cumuli di protezione dalla copia, il valore di possedere il vero affare è piuttosto basso.

Utilizza una semplice chiave di attivazione e assicura ai clienti che possono sempre ottenere una chiave di attivazione o scaricare di nuovo il software in caso di smarrimento.

Qualsiasi protezione dalla copia (a parte i componenti esclusivamente online come giochi multiplayer e software finanziario che si collega alla tua banca, ecc.) che puoi solo supporre sarà sconfitta. Se vuoi scaricare il tuo software illegalmente, almeno, sarà leggermente più difficile che acquistarlo.

Ho un gioco per PC che non ho mai aperto, perché c'è così tanta spazzatura di protezione dalla copia che in realtà è più facile scaricare la versione falsa.

Le protezioni del software non valgono la pena: se il tuo software è richiesto, verrà annullato, non importa quale.

Detto questo, le protezioni hardware possono funzionare bene. Un esempio di come può funzionare bene è questo: trova un componente (abbastanza) semplice ma necessario del tuo software e implementalo in Verilog / VHDL. Generare una coppia di chiavi pubblica-privata e creare un servizio Web che accetta una stringa di verifica e la crittografa con la chiave privata. Quindi crea un dongle USB che contenga la tua chiave pubblica e generi stringhe di prova casuali. Il software dovrebbe richiedere al dongle USB una stringa di prova e inviarlo al server per la crittografia. Il software quindi lo invia al dongle. La chiave hardware convalida la stringa di verifica crittografata con la chiave pubblica e passa in modalità "abilitata". Il software chiama quindi nel dongle ogni volta che deve eseguire l'operazione scritta in HDL. In questo modo chiunque voglia piratare il tuo software deve capire quale sia l'operazione e reimplementarla, molto più difficile che sconfiggere una pura protezione del software.

Modifica: ho appena realizzato che alcune delle cose di verifica sono arretrate rispetto a come dovrebbero essere, ma sono abbastanza sicuro che l'idea si verifichi.

Lo schema di licenza software Microsoft è follemente costoso per una piccola impresa. Il costo del server è di circa $ 12.000 se si desidera configurarlo da soli. Non lo consiglio per la finta del cuore.

In realtà abbiamo appena implementato Intellilock nel nostro prodotto. Ti consente di prendere tutte le decisioni su quanto severa vuoi che la tua licenza sia, ed è anche molto conveniente. Inoltre fa offuscamento, prevenzione del compilatore, ecc.

Un'altra buona soluzione che ho visto usare nelle piccole e medie imprese è SoloServer . È molto più di un sistema di e-commerce e controllo delle licenze. È molto configurabile al punto da forse un po 'troppo complesso. Ma fa un ottimo lavoro da quello che ho sentito.

Ho anche usato il sistema Licenza Desaware per dot net in il passato. È un sistema abbastanza leggero rispetto ai due sopra. È un ottimo sistema di controllo delle licenze dal punto di vista crittografico. Ma è un'API di livello molto basso in cui devi implementare quasi tutto ciò che verrà effettivamente utilizzato dalla tua app.

Digitale "diritti" La gestione è il più grande prodotto software per olio di serpente del settore. Per prendere in prestito una pagina dalla crittografia classica, lo scenario tipico è che Alice vuole inviare un messaggio a Bob senza che Charlie sia in grado di leggerlo. DRM non funziona perché nella sua applicazione, Bob e Charlie sono la stessa persona!

Faresti meglio a porre la domanda inversa, che è " Come posso convincere le persone ad acquistare il mio software invece di rubarlo? " E questa è una domanda molto ampia. Ma generalmente inizia facendo ricerche. Capisci chi acquista il tipo di software che desideri vendere e quindi produci software che piace a quelle persone.

Il vantaggio aggiuntivo di questo è limitare gli aggiornamenti / componenti aggiuntivi solo alle copie legittime. Questo può essere qualcosa di semplice come un codice d'ordine ricevuto durante la transazione di acquisto.

Scopri il software Stardock, i produttori di WindowBlinds e giochi come Sins of a Solar Empire, quest'ultimo non ha DRM e ha ottenuto un notevole profitto da un budget di $ 2 milioni.

Esistono diversi metodi, ad esempio l'utilizzo dell'ID processore per generare una "chiave di attivazione". "

La linea di fondo è che se qualcuno lo vuole abbastanza male, decodificheranno qualsiasi protezione tu abbia.

I metodi più sicuri sono utilizzare la verifica online in fase di esecuzione o una hasp hardware.

Buona fortuna!

Dato un po 'di tempo il tuo software sarà sempre crackato. È possibile cercare versioni crackate di qualsiasi software noto per confermare ciò. Ma vale comunque la pena aggiungere una qualche forma di protezione al tuo software.

Ricorda che le persone disoneste non pagheranno mai per il tuo software e troveranno / utilizzeranno sempre una versione crackata. Le persone molto oneste rispetteranno sempre le regole anche senza uno schema di licenze solo perché è il tipo di persona che sono. Ma la maggior parte delle persone si trova tra questi due estremi.

L'aggiunta di un semplice schema di protezione è un buon modo per far sì che la maggior parte delle persone nel mezzo agisca in modo onesto. È un modo per spingerli a ricordare che il software non è gratuito e dovrebbero pagare per il numero appropriato di licenze. Molte persone in realtà rispondono a questo. Le aziende sono particolarmente brave a rispettare le regole perché il gestore non sta spendendo i propri soldi. I consumatori hanno meno probabilità di attenersi alle regole perché sono i loro soldi.

Ma la recente esperienza con pubblicazioni come Spore di Electronic Arts dimostra che si può andare molto lontano nelle licenze. Se fai sentire anche le persone legittime come criminali perché vengono costantemente convalidate, iniziano a ribellarsi. Quindi aggiungi alcune semplici licenze per ricordare alle persone se sono disoneste ma è improbabile che qualcosa di più possa aumentare le vendite.

Sono stati creati giochi solo online come World of Warcraft (WoW), tutti devono connettersi al server ogni volta e quindi gli account possono essere costantemente verificati. Nessun altro metodo funziona per i bean.

Non è esattamente la risposta che stai cercando, ma è una grande risorsa sulla pirateria da uno sviluppatore di giochi che ha attivamente chiesto ai loro pirati il motivo per cui lo fanno. Ed è correlato alla prima parte della risposta scelta.

Leggilo su Talking to Pirates .

Generalmente ci sono due sistemi che spesso vengono confusi -

  • Tracciamento di licenze o attivazioni, utilizzo legale legittimo
  • Sicurezza che impedisce l'uso illegale

Per le licenze utilizzare un pacchetto commerciale, FlexLM molte aziende investono ingenti somme di denaro in licenze penso che ottengano anche sicurezza, questo è un errore comune i generatori di chiavi per questi pacchetti commerciali sono prolificamente abbondanti.

Consiglierei la licenza solo se vendi a società che pagheranno legittimamente in base all'utilizzo, altrimenti è probabilmente uno sforzo maggiore del suo valore.

Ricorda che man mano che i tuoi prodotti avranno successo, tutte le licenze e le misure di sicurezza verranno violate alla fine. Quindi decidi ora se vale davvero la pena.

Alcuni anni fa abbiamo implementato un clone di FlexLM per camere bianche, abbiamo anche dovuto migliorare le nostre applicazioni contro gli attacchi binari, il suo lungo processo, devi rivederlo ad ogni versione. Dipende anche da quali mercati globali vendi o dove si trova la tua base di clienti principale su ciò che devi fare.

Scopri un'altra delle mie risposte su protezione di una DLL .

Come è stato sottolineato, la protezione del software non è mai garantita come infallibile. Quello che intendi utilizzare dipende in gran parte dal tuo pubblico di destinazione. Un gioco, ad esempio, non è qualcosa che sarai in grado di proteggere per sempre. Un software server, d'altra parte, è qualcosa di molto meno probabile che venga distribuito su Internet, per una serie di ragioni (vengono in mente la penetrazione e la responsabilità del prodotto; una grande società non vuole essere ritenuta responsabile per il software bootleg, e i pirati si preoccupano solo di cose che richiedono una domanda abbastanza grande). In tutta onestà, per un gioco di alto profilo, la soluzione migliore è probabilmente seminare il torrent da solo (clandestinamente!) E modificarlo in qualche modo (ad esempio, in modo che dopo due settimane di gioco compaia messaggi che ti dicono di considera di supportare gli sviluppatori acquistando una copia legittima).

Se imposti la protezione, tieni a mente due cose. In primo luogo, un prezzo inferiore integrerà qualsiasi protezione dalla copia rendendo le persone più inclini a pagare il prezzo di acquisto. In secondo luogo, la protezione non deve intralciare gli utenti - vedi Spore per un esempio recente.

DRM questo, DRM quello - gli editori che impongono DRM ai loro progetti lo stanno facendo perché è redditizio. I loro economisti lo stanno concludendo su dati che nessuno di noi vedrà mai. "DRM è male" i troll stanno andando un po 'troppo lontano.

Per un prodotto a bassa visibilità, una semplice attivazione di Internet interromperà la copia casuale. Qualsiasi altra copia è probabilmente trascurabile per i tuoi profitti.

La distribuzione illegale è praticamente impossibile da prevenire; basta chiedere alla RIAA. Il contenuto digitale può essere semplicemente copiato; il contenuto analogico può essere digitalizzato e quindi copiato.

Dovresti concentrare i tuoi sforzi sulla prevenzione di esecuzioni non autorizzate. Non è mai possibile impedire completamente l'esecuzione del codice sulla macchina di qualcun altro, ma è possibile adottare alcune misure per alzare la barra sufficientemente in alto da rendere più facile l'acquisto del software piuttosto che piratarlo.

Dai un'occhiata all'articolo Sviluppo per la protezione del software e le licenze che spiega come meglio sviluppare lo sviluppo dell'applicazione tenendo presente le licenze.

Dichiarazione di non responsabilità obbligatoria & amp; plug: la società che ho co-fondato produce la OffByZero Cobalt soluzione di licenza software per .NET .

Il problema con questa idea di lasciare che i pirati lo usino non lo compreranno comunque e mostreranno ai loro amici che potrebbero comprarlo è duplice.

  1. Con il software che utilizza servizi di terze parti, le copie piratate stanno utilizzando una larghezza di banda / risorsa preziosa che offre agli utenti legittimi un'esperienza peggiore, rende il mio sw più popolare di così com'è e ha i servizi di terze parti che mi chiedono di pagare di più per i loro servizi a causa della larghezza di banda utilizzata.

  2. Molti casual non si sognerebbero di rompere il sw da soli, ma se c'è un crack facilmente valutabile in un sito come piratebay lo useranno, se non lo fossero potrebbero comprarlo.

Anche questo concetto di non disabilitare il software piratato una volta scoperto sembra folle, non capisco perché dovrei lasciare che qualcuno continui ad usare software che non dovrebbero usare, immagino che questa sia solo la visione / speranza dei pirati.

Inoltre, vale la pena notare che rendere un programma difficile da decifrare è una cosa, ma è anche necessario impedire la condivisione di copie legittime, altrimenti qualcuno potrebbe semplicemente acquistare una copia e quindi
condividilo con migliaia di altri tramite un sito torrent. Il fatto di avere il loro nome / indirizzo e-mail incorporato nella licenza non sarà sufficiente a dissuadere tutti dal farlo, e ne serve solo uno perché ci sia un problema.

L'unico modo in cui posso vedere per impedirlo è:

  1. Avere il server controllare e bloccare la licenza all'avvio del programma ogni volta e rilasciare la licenza all'uscita dal programma. Se un altro client inizia con la stessa licenza mentre il primo client ha la licenza, viene rifiutato. In questo modo non si impedisce che la licenza venga utilizzata da più di un utente, ma impedisce che venga utilizzata contemporaneamente da più di un utente, il che è abbastanza buono. Inoltre, consente a un utente legittimo di trasferire la licenza su uno dei suoi computer, il che fornisce un'esperienza migliore.

  2. Al primo avvio client il client invia la licenza al server e il server lo verifica, causando l'impostazione di alcuni flag nel software client. Ulteriori richieste di altri clienti con la stessa licenza vengono respinte. Il problema con questo approccio è che il client originale avrebbe problemi se reinstallassero il software o volessero usare un altro computer.

Anche se avessi usato un qualche tipo di autenticazione biometrica delle impronte digitali, qualcuno avrebbe trovato il modo di decifrarlo. Non c'è davvero alcun modo pratico per aggirare questo. Invece di provare a rendere il tuo software a prova di hacking, pensa a quante entrate extra verranno apportate aggiungendo ulteriore protezione dalla copia rispetto alla quantità di tempo e denaro che ci vorrà per implementarlo. Ad un certo punto, diventa più economico seguire uno schema di protezione dalla copia meno rigoroso.

Dipende da cosa è esattamente il tuo prodotto software, ma una possibilità è spostare il "prezioso" parte del programma dal software e tenerlo sotto il tuo controllo esclusivo. Dovresti addebitare un costo modesto per il software (principalmente per coprire i costi di stampa e distribuzione) e genereresti le tue entrate dal componente esterno. Ad esempio, un programma antivirus che viene venduto a buon mercato (o in bundle gratuitamente con altri prodotti) ma vende abbonamenti al suo servizio di aggiornamento delle definizioni dei virus. Con quel modello, una copia piratata che si abbona al tuo servizio di aggiornamento non rappresenterebbe gran parte di una perdita finanziaria. Con la crescente popolarità delle applicazioni "nel cloud", questo metodo sta diventando più facile da implementare; ospitare l'applicazione sul cloud e addebitare agli utenti l'accesso al cloud. Ciò non impedisce a qualcuno di implementare nuovamente il proprio cloud per eliminare la necessità del tuo servizio, ma il tempo e lo sforzo necessari per farlo supereranno molto probabilmente i vantaggi (se mantieni ragionevole il tuo modello di prezzo).

Se sei interessato a proteggere il software che intendi vendere ai consumatori, consiglierei una qualsiasi delle varie librerie che generano chiavi di licenza (ricerca di Google sulla generazione di chiavi di licenza). Di solito l'utente deve darti una specie di seme come il loro indirizzo e-mail o nome e ottenere il codice di registrazione.

Diverse aziende ospiteranno e distribuiranno il tuo software o forniranno un'applicazione completa di installazione / acquisto che puoi integrare e farlo automaticamente probabilmente senza costi aggiuntivi per te.

Ho venduto software ai consumatori e trovo questo il giusto equilibrio tra costo / facilità d'uso / protezione.

La soluzione semplice e migliore è solo caricarli in anticipo. Imposta un prezzo che funzioni per te e loro.

Chiedere ai clienti paganti di dimostrare che stanno pagando i clienti dopo che hanno già pagato li fa incazzare. L'implementazione del codice per non far funzionare il software fa perdere tempo e denaro e introduce bug e fastidi per i clienti legittimi. Faresti meglio a passare quel tempo a creare un prodotto migliore.

Molti giochi / ecc. " proteggeranno " la prima versione, quindi rilascia le protezioni nella prima patch a causa di problemi di compatibilità con clienti reali. Non è una strategia irragionevole se insisti su un minimo di protezione.

Quasi tutta la protezione dalla copia è inefficace e un incubo di usabilità. Alcuni di questi, come mettere root-kit sulle macchine dei tuoi clienti, diventano assolutamente non etici

Rendi parte del tuo prodotto un componente online che richiede connessione e autenticazione. Ecco alcuni esempi:

  • Giochi online
  • Protezione antivirus
  • Protezione antispam
  • Software di localizzazione per laptop

Questo paradigma si estende solo fino a quel momento e può spegnere alcuni consumatori.

Sono d'accordo con molti manifesti che nessuno schema di protezione della copia basato su software scoraggerà un pirata del software competente. Per il software commerciale basato su .NET, Microsoft Software License Protection (SLP) è una soluzione a prezzi molto ragionevoli. Supporta licenze temporanee e mobili. Il loro prezzo parte da $ 10 / mese + $ 5 per attivazione e i componenti di protezione sembrano funzionare come pubblicizzato. Si tratta di un'offerta abbastanza nuova, quindi, attenzione dell'acquirente.

Suggerisco una semplice chiave di attivazione (anche se sai che può essere rotta), davvero non vuoi che il tuo software si intrometta nei tuoi utenti, o semplicemente lo spingeranno via.

Assicurati di poter scaricare di nuovo il software, suggerisco una pagina web in cui possano accedere e scaricare il tuo software solo dopo aver pagato (e sì, dovrebbero essere in grado di scaricare tutte le volte che lo desiderano, direttamente, senza una sola domanda sul perché da parte tua.

Spingi soprattutto i tuoi utenti pagati, non c'è niente di più irritante che essere accusato di essere un criminale quando sei un utente legittimo (l'anti-pirateria del DVD avvisa chiunque).

Puoi aggiungere un servizio che controlla la chiave su un server quando è online e, nel caso in cui due IP diversi utilizzino la stessa chiave, fai apparire un suggerimento per acquistare un'altra licenza.

Ma per favore non inattivarlo, potrebbe essere un utente felice che mostra il tuo software ad un amico !!!!

Se sei uno sviluppatore di software, una delle possibili soluzioni è quella di incorporare i metadati direttamente nel tuo prodotto. Scopri uno strumento di sicurezza della distruzione dell'istanza da theredsunrise.

Autorizziamo il nostro software commerciale utilizzando il nostro sistema di licenze, che è ciò che stiamo vendendo (strumenti di gestione delle licenze). In genere vendiamo licenze di abbonamento, ma possiamo anche vendere in base all'utilizzo, se lo desideriamo. Finora è stato sicuro per noi: www.agilis-sw.com

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