it-swarm.it

Come si può proteggere il software dalla pirateria?

Perché oggi sembra così facile piratare?

Sembra un po 'difficile credere che, con tutti i nostri progressi tecnologici e i miliardi di dollari spesi per progettare il software più incredibile e strabiliante, non abbiamo ancora altri mezzi per proteggere dalla pirateria se non un "numero di serie/chiave di attivazione ". Sono sicuro che un sacco di soldi, forse anche miliardi, sono stati destinati alla creazione di Windows 7 o Office e persino Snow Leopard, ma posso ottenerlo gratuitamente in meno di 20 minuti. Lo stesso per tutti i prodotti Adobe, che sono probabilmente i più semplici.

Può esistere un metodo infallibile e sicuro per proteggere il tuo software dalla pirateria? Se non realisticamente, che ne dici di teoricamente possibile? O non importa quali meccanismi dispongano di queste aziende, gli hacker possono sempre trovare un modo per aggirarlo?

80
Snowman

Il codice è dati. Quando il codice è eseguibile, una copia di tali dati è un codice non protetto. Il codice non protetto può essere copiato.

Il pepping del codice con i controlli antipirateria rende leggermente più difficile, ma gli hacker useranno semplicemente un debugger e li rimuoveranno. Inserire no-ops anziché le chiamate a "check_license" è abbastanza semplice.

  • I programmi difficili da hackerare fanno progressivamente cose più fastidiose.
  • Ma i venditori devono vendere ai clienti software che sono pronti a utilizzare.
  • Non tutti consentono ai computer di telefonare a casa.
  • Alcune persone che lavorano su argomenti delicati si rifiutano di connettere macchine a Internet.

I programmi che vendo presso il mio attuale datore di lavoro (strumenti aerospaziali) non telefonano mai a casa . I clienti non tollererebbero telefonare a casa per "attivazione" ogni volta che il programma viene avviato.

Peggiore, il programma viene eseguito in un VM senza rete, dove è sempre una data fissa.

Quindi potrebbe essere stato legittimamente installato una volta, ma nessuno sforzo da parte degli sviluppatori può dirlo che non è così.

  • I tentativi di aggiungere hardware "prevenzione della copia" ai computer di uso generale sono destinati a fallire.
  • Qualsiasi azienda venda hardware senza prevenzione della copia finisce per vendere tutto l'hardware.
  • Fornitori come Dell e Intel cercano progressivamente di introdurre hardware spia come Palladium, ma sono fortemente resistiti.
  • Quando il computer sta facendo qualcosa di scientifico, in tempo reale, qualsiasi interruzione al "controllo del contenuto piratato" causerà errori. Se tutti i computer avessero un DRM hardware, quelli speciali scientifici/in tempo reale non dovrebbero averlo. Per inciso, tutti comprerebbero quelli speciali scientifici/in tempo reale.
  • I controlli DRM hardware avranno falsi positivi su alcuni tipi di contenuto.

    • Caso più semplice: risoluzione. Registro video Quad HD dal mio array di telecamere (seduto sulla mia scrivania in questo momento). Windows DRM si interpone tra me e i dati perché è QuadHD.

    • Analisi della firma: l'hardware DRM è piccolo e ha un set di dati relativamente fisso. Deve anche utilizzare lo stesso bus dati della CPU in modo da rallentare le cose in modo intermittente. Questo rovina qualcosa in tempo reale.

    • Quindi, per rendere più intelligente l'hardware DRM durante un falso positivo, il tuo computer alla fine verrà interrotto per andare a controllare usando un servizio web. Ora il mio processore di dati scientifici o non riesce perché non è in rete o interrompe lo streaming dei dati.

78
Tim Williscroft

In definitiva, il grosso problema è che la maggior parte dei software comporta la consegna sia della serratura che della chiave al potenziale aggressore e la speranza che non riescano a capire come metterli insieme.

Il metodo solo sicuro per proteggere il software è non darlo all'utente (ad es. SaaS). Noterai che non puoi "piratare" Google Documenti, ad esempio. In definitiva, se stai cercando di proteggere qualcosa, devi presumere che abbiano piena conoscenza di tutto ciò che dai loro. Non puoi fidarti del cliente. Questo vale per prevenire la pirateria tanto quanto per proteggere un sistema dall'essere compromesso.

Poiché i modelli di distribuzione del software esistenti si basano sul fornire al client l'intero pacchetto e quindi tentare di proteggerlo sull'hardware i potenziali controlli degli aggressori, il modello di distribuzione è incompatibile con qualsiasi concetto di software "non respirabile".

64
Anon.

Perché oggi il software è ancora facilmente piratato?

È più redditizio vendere software facile da piratare.

Nel decidere le misure antipirateria, le aziende effettuano un'analisi costi-benefici. Per una determinata serie di misure, se i benefici non superano i costi, l'azienda non lo fa.

I costi includono tempo e sforzi per implementare, documentare, supportare e mantenere le misure, e forse le perdite di vendita se sono davvero fastidiose. In generale, ci sono due tipi di benefici:

  • Maggiori profitti perché le persone che avrebbero piratato il programma lo hanno acquistato invece ..
  • Le persone che prendono le decisioni sono felici che il programma non venga piratato.

Ecco un semplice esempio: Microsoft Office.

Ora, la SM è tutta una questione di soldi e non tanto di rendere felici i dirigenti della pirateria. Da qualche tempo, MS ha venduto un'edizione "Office and Student" di Office molto più economica dell'edizione "normale" per le aziende. L'ho comprato qualche anno fa e non aveva alcuna protezione dalla copia! E la tecnologia "anti-pirateria" consisteva nell'immissione di un codice prodotto che veniva poi archiviato nella cartella dell'applicazione. Ma potresti eseguirlo su tutti i computer che desideri contemporaneamente e funzionerebbero tutti bene! In realtà, sul Mac, è possibile trascinare la cartella dell'applicazione attraverso la rete su un altro computer in cui non si è mai eseguita un'installazione e poiché il codice Product Key è stato archiviato con l'applicazione, ha funzionato alla grande.

Perché una patetica tecnologia antipirateria? Due ragioni.

Il primo è perché il costo aggiuntivo del supporto tecnico per gli utenti domestici che hanno rovinato le loro installazioni non ne valeva la pena.

Il secondo è il misure antipirateria non tecniche. MS ha un programma per informatori in cui se sai che un'azienda ha piratato software MS - come installare 200 copie dello stesso ufficio "Home and Student", puoi telefonare. Quindi entra MS e controlla la società, e se trova software piratato, fa causa a loro, e tu ottieni un grosso taglio delle vincite.

Quindi la SM non deve usare la tecnologia per prevenire la pirateria. Trovano più redditizio usare solo denaro freddo e duro.

31
Bob Murphy

IMHO un problema fondamentale è che la maggior parte o tutti i metodi "infallibili e a prova di hacker" per proteggere il software dalla pirateria infastidiscono o addirittura scacciano gli utenti innocenti e legali.

Per esempio. verificare che l'app sia installata solo su un singolo computer può rendere difficile per un utente cambiare hardware nel proprio computer. Le chiavi hardware potrebbero significare che non puoi utilizzare la stessa app sul tuo computer di lavoro e domestico. Per non parlare dei codici area DVD, CSS, rootkit Sony e altri, che non sono strettamente per la protezione del software, ma strettamente correlati.

* che, come notato da @FrustratedWithFormsDesigner, non sono mai perfetti in pratica; non c'è sicurezza al 100%, puoi solo provare a renderlo abbastanza costoso per un intruso che rompe la difesa in modo che non ce ne siano "troppi". E credo sia dovuto alla natura fondamentale del software e delle informazioni digitali, che una volta che qualcuno riesce a rompere una particolare difesa, la rottura può quasi sempre essere banalmente replicata da milioni di persone.

29
Péter Török

Come ha detto Bruce Schneier , cercare di rendere i file digitali non copibili è come cercare di non bagnare l'acqua. Parla principalmente di "DRM", che viene applicato più al contenuto (ad es. Film) che al codice, ma dal punto di vista della prevenzione della copia di ciò che è nel file fa poca differenza: copiare un file è copiare un file è copiare un file .

25
Jerry Coffin

Esiste solo un "metodo infallibile e anti-hacking per proteggere il tuo software dalla pirateria" :

Software libero (Come in te puoi fare quello che vuoi con esso, persino venderlo.)

Non puoi rubare ciò che viene dato liberamente. Certo, questo farà impazzire alcuni modelli di software di società di dinosauri, ma la pirateria non sta andando da nessuna parte. Vendi qualcosa che non puoi copiare, preferibilmente qualcosa che accompagni ciò che hai regalato gratuitamente; il tuo aiuto per esempio.

17
Orbling

Ciò è causato dalla combinazione di quattro fattori principali:

A un livello fondamentale, molto di ciò che fa un computer funziona copiando i dati. Ad esempio, per eseguire un programma, il computer deve copiarlo dal disco rigido in memoria. Ma una volta che qualcosa è stato copiato in memoria, può essere scritto dalla memoria in un'altra posizione. Tenendo presente che la premessa fondamentale della "protezione dalla pirateria" è la creazione di software che non può essere copiato con successo, è possibile iniziare a vedere l'entità del problema.

In secondo luogo, la soluzione a questo difficile problema agisce direttamente contro gli interessi sia degli utenti legittimi sia di coloro che desiderano utilizzare il software senza acquisirlo legalmente. Alcuni di quegli utenti avranno le conoscenze tecniche necessarie per analizzare il codice compilato. Ora hai un avversario competente che lavora attivamente contro di te.

Poiché questo è un problema difficile e poiché la produzione di software corretto è anche intrinsecamente difficile, è molto probabile che la soluzione contenga almeno un bug sfruttabile da qualche parte. Per la maggior parte dei software, non importa, ma la maggior parte dei software non è sotto attacco attivo da parte di un avversario determinato. La natura del software è quella che è, una volta individuato un bug sfruttabile, può essere utilizzato per assumere il controllo dell'intero sistema e disabilitarlo. Quindi, al fine di produrre una protezione affidabile, la tua soluzione al problema molto difficile deve essere perfetto o sarà rotto.

Il quarto fattore è Internet in tutto il mondo. Rende banale il problema di trasmettere informazioni a chiunque sia interessato. Ciò significa che una volta che il tuo sistema imperfetto è rotto una volta, è rotto dappertutto.

La combinazione di questi quattro fattori significa che nessun sistema imperfetto di protezione dalla copia può essere sicuro. (E quando è stata l'ultima volta che hai visto un software perfetto?) Alla luce di ciò, la domanda non dovrebbe essere "perché il software è ancora facilmente piratato?", Ma "perché le persone stanno ancora cercando di impedirlo?"

13
Mason Wheeler

na motivazione spesso trascurata, alla base del cloud based SaaS sta assicurando flussi di entrate.

Penso che sia qui il futuro della monetizzazione e della protezione IP.

Spostando l'attenzione dalla vendita di soluzioni on-premise che devono essere eseguite in un ambiente che è al di fuori del controllo dei fornitori, alla fine ogni strategia contro la pirateria del software è destinata a fallire. Non c'è modo di proteggere i tuoi beni quando li dai a qualcun altro, poiché la protezione deve essere applicata sulla sua macchina.

Avendo il tuo software ospitato nel Cloud e fornito come servizio, stai effettivamente elevando l'asticella della pirateria a un livello in cui la sua attività delle scimmie.

9
Johannes Rudolph

Penso che la risposta che stai cercando sia che molte aziende non si preoccupano più della pirateria in quel modo. Nessuno vuole che le loro cose escano gratis, ma quando si guarda al compromesso tra fastidioso e dover supportare tutte le persone in cui la protezione avanzata dalla copia si è rotta o ha rotto i loro computer. Alcune aziende hanno fatto di tutto per prendersi cura di loro, ma alla fine la roba è ancora rotta e i loro utenti tendono ad andarsene con un cattivo gusto in bocca.

Non vale la pena (o la potenziale perdita di clienti) di provare a implementarlo per le poche persone che si impedirebbe comunque di hackerare.

Alcune aziende hanno persino visto gli utenti pirata come una risorsa. Valve ha fatto un tuffo nelle notizie con un commento del genere qualche tempo fa, e non puoi dirmi che Microsoft non è uscita dalla parte vincente di tutte le installazioni di Windows piratate in Asia nel corso degli anni.

Per i microsoft là fuori, cercano di vendere grandi blocchi di licenze per i ragazzini di cui hanno bisogno in ogni vendita, ma non possono permettersi di perdere clienti o in alcuni casi persino permettersi i rootkit e altre vili schifezze che le persone usano per provare a costruire quel tipo di blocco -in.

Non puoi fare una perfetta antipirateria, ma non ci sono molte persone fortemente motivate a provarci più.

8
Bill

Qualunque cosa tu inserisca nel tuo software, deve essere comprensibile dalla macchina che lo eseguirà. Poiché il software è diventato più sofisticato, anche il software per comprendere altri software è diventato più sofisticato. Quindi, se quel software è comprensibile dalla macchina, è comprensibile (e modificabile) dal pirata.

Ad esempio, in linea di principio, è possibile creare una crittografia avanzata nel file eseguibile, in modo che la maggior parte del software sia illeggibile. Il problema quindi è che le macchine degli utenti finali non possono leggere più quel codice dei pirati. Per risolverlo, il tuo software deve includere sia l'algoritmo di decrittazione che la chiave, sia in chiaro, o almeno nascondersi dietro una crittografia più debole (con la decrittografia per essere in chiaro).

IIRC, i migliori disassemblatori possono avvisarti del codice crittografato e aiutarti a catturare e analizzare ciò che si nasconde dietro la crittografia. Se sembra che gli autori del disassemblatore siano malvagi, considera che gli sviluppatori della sicurezza ne hanno bisogno ogni giorno, per indagare su virus e altri malware che si nascondono anche in codice crittografato.

Probabilmente ci sono solo due soluzioni a questo. Una è la piattaforma chiusa che blocca i propri utenti. Come mostra PlayStation 3, questa non è necessariamente una garanzia. In ogni caso, c'è una grande classe di utenti non malvagi che non gli piacerà.

L'altro è che il tuo software venga eseguito su server che sono sotto il tuo controllo.

7
Steve314

Tecnicamente parlando, il software può ancora essere piratato perché la maggior parte dell'IT opera ancora in ambienti software e hardware progettati concettualmente millenni fa, quando non esisteva nemmeno la nozione di pirateria software.

Tali basi devono essere mantenute per la retrocompatibilità aumentando ulteriormente la nostra dipendenza da esse.

Se dovessimo riprogettare da zero gli ambienti hardware/software tenendo presente l'antipirateria, potremmo aggiungere miglioramenti significativi.

Vedi tu stesso:

  • Lo stesso sistema operativo aperto con tutti i suoi componenti interamente esposti e che si offre letteralmente alla manipolazione

  • La stessa architettura di computer aperta che prenderà qualsiasi software tu ci lanci

  • Il modello di distribuzione del software si basa ancora su file non crittografati che vengono consegnati all'utente

Lo stesso identico problema esiste con Internet e la sua bassa sicurezza, molte vulnerabilità, apertura alla manipolazione, spam e attacchi distribuiti. Faremmo molto meglio la seconda volta, se potessimo rifare Internet. Purtroppo dobbiamo attenerci a ciò che dobbiamo mantenere la compatibilità con la massa di applicazioni e servizi esistenti.

Per ora sembra che il modo migliore per proteggere il software dalla pirateria sia introdurre cambiamenti a livello hardware:

  • Chiudi l'hardware e trasformalo in una scatola nera. Rendere impossibile per un utente pasticciare con l'hardware e il suo software. L'approccio qui è probabilmente quello di crittografare tutto a livello di chip in modo che le loro interfacce esterne siano completamente crittografate. Un buon esempio di ciò è la crittografia HDCP per l'interfaccia multimediale HDMI: un flusso multimediale viene crittografato prima di lasciare la scatola del lettore e decrittografato all'interno di un'unità display in modo che non vi sia alcun flusso di dati aperto da intercettare.

  • Chiudi i canali di distribuzione. Rendi tutti i media e i canali online completamente crittografati in modo che solo l'hardware certificato sia in grado di decrittografare il flusso di dati.

È possibile farcela entrambe, ma trasformerà l'intero ecosistema in una prigione. Molto probabilmente sorgerà un movimento parallelo/sotterraneo di un hardware/software libero creando un ecosistema parallelo.

5
user8685

Uno dei motivi per cui credo siano le stesse persone che sanno come scrivere una sicurezza decente, sono probabilmente gli stessi hacker.

Inoltre, cercare di proteggerti dalla pirateria è molto, molto difficile. Poiché il computer deve eseguire questa protezione stessa, può essere intercettato in qualsiasi punto (memoria/esecuzione/traffico di rete/...). Ecco dove arriva l'offuscamento, cercando di rendere impossibile capire cosa sta succedendo.

Credo che il potere nei numeri di serie e nelle chiavi di attivazione risieda nel fatto che puoi almeno vedere chi sta piratando e provare a rintracciarlo/bloccarlo in questo modo. Credo che sia parte del motivo per cui così tanti servizi sono oggi servizi online. (Steam, aggiornamento di Windows ecc ...) Improvvisamente diventa molto più difficile da decifrare, ... ma ancora possibile.

Laddove hai un prodotto di successo, hai più persone che cercano di decifrarlo, quindi le probabilità che venga piratato sono più grandi.

5
Steven Jeuris

L'anti-pirateria automatizzata è una contraddizione logica.

Gli utenti legittimi sono considerati affidabili dai venditori.

Qualsiasi antipirateria "automatizzata" cerca di automatizzare la relazione di fiducia.

Come può funzionare? Come può qualsiasi mezzi tecnici mai arrivare a "fidarsi" di una persona?

La fiducia è una relazione intrinsecamente umana. Qualsiasi meccanismo tecnico può sempre essere sovvertito da persone che sembrano affidabili ma non lo sono.

Del resto, anche le persone perdono sempre la fiducia.

5
S.Lott

Dato lo sforzo, si potrebbe probabilmente ottenere una protezione dalla copia quasi perfetta ... ma non varrebbe il costo . Diversi blog importanti hanno discussoin modo eccellente : in particolare, il concetto di tasso ottimale di pirateria .

Le misure antipirateria hanno diversi costi: i costi diretti per la loro attuazione, ma anche i costi indiretti: ad esempio, le misure spesso causano disagi, allontanando gli utenti.

La pirateria ha dei costi, ma spesso non sono terribilmente elevati. Potrebbe anche avere alcuni vantaggi, ad es. nell'espansione della base utenti. Come ha scritto un commentatore sul post di Coding Horror: “Ora che sono uno sviluppatore e in realtà ho soldi da spendere per il software, tendo ad acquistare i programmi che ho piratato nei miei giorni di college perché ne ho già familiarità. ”

Quindi, una certa protezione antipirateria è importante per assicurarsi che le vendite legittime non vengano ridotte troppo male; ma oltre un certo punto, non c'è proprio alcun incentivo economico a migliorare le misure antipirateria.

Tutte le risposte sembrano essere tecniche, ma non è un problema tecnico, è sociale.

Il software è facile da copiare e difficile da scrivere. Se non fosse facile da copiare, non ci preoccuperemmo. La maggior parte dei programmi è solo per essere costosi da scrivere come una tantum, e quelli più piccoli si affidano a programmi più grandi per poter essere eseguiti. Se anche noi rendiamo i programmi difficili da copiare, allora stiamo mettendo noi stessi in una posizione di svantaggio competitivo. Sì, puoi massimizzare i profitti a breve termine scoraggiando la copia. Ma alla fine perderai quote di mercato per chi mai può minimizzare il costo per la copia, il costo per la scrittura e il costo per l'uso.

Il software libero riduce al minimo 1 di questi costi da copiare e ha una riduzione massiccia sugli altri 2 costi da scrivere e da utilizzare.

cost-to-copy

Posso installare Ubuntu Linux più o meno nello stesso tempo e sforzo di Windows 7 [Windows 7 ha bisogno di me per aggiungere una chiave di licenza che lo rende leggermente più difficile].

Windows 7 avrà un costo di £ 100, ma per Ubuntu posso scaricarlo, acquistarlo per £ 6 presso il negozio di riviste (con una rivista gratuita inserita), £ 2 per corrispondenza o prendere in prestito un cd da un amico.

cost-to-write

Il software libero può essere modificato, questo riduce il costo. Non devo iniziare dall'inizio.

cost-to-use

Con Windows 7 non ottengo applicazioni, tranne un browser Web, con Ubuntu ottengo tutte le applicazioni che posso immaginare, molte installate con il sistema operativo.

Non ho bisogno di uno scanner antivirus su Linux.

Posso eseguire Linux su hardware più vecchio.

Con il software libero, nessuno sta forzando l'upgrade, realizzando versioni incompatibili degli strumenti per l'ufficio.

4
ctrl-alt-delor

In un mondo in cui i computer sono abbastanza simili da essere in grado di scaricare software dalla rete ed eseguirlo immediatamente, è molto difficile identificare qualcosa che consente di determinare se questo computer può funzionare correttamente, ma quel computer non lo è.

Alla fine si riduce a te avere qualcosa che nessun altro ha. Questo può essere un numero seriale pagato, un dongle hardware o un dvd con errori fisici in una determinata posizione su di esso. Il software quindi cerca quella cosa specifica e si rifiuta di funzionare se non è lì. Per i numeri di serie è inoltre necessario disporre di una posizione su Internet in cui il software può confermare che il numero di serie è accettabile per la nave madre.

Sfortunatamente gli hacker sono molto bravi a rimuovere chirurgicamente tali controlli, quindi il codice deve essere molto contorto e difficile da modificare per renderlo difficile, ma con sufficiente dedizione un umano può ancora farlo.

Quindi, i prodotti software più economici vanno per il numero di serie con una nave madre su Internet che lo convalida, oltre a una politica di licenza che i cashcor coorporate sono tenuti a seguire. I prodotti costosi usano solitamente la protezione del dongle.

3
user1249

Esistono diversi tipi di software con protezioni.

Quando prendi l'esempio di Windows 7, è ovvio che la risposta è no, semplicemente perché l'architettura del PC e la programmazione del PC sono molto conosciute.

Ma se consideri altri hardware, come la PS3, la PSP e l'iPhone, è completamente diverso, principalmente perché il produttore ha il controllo su tutto, non più solo il software: possono far funzionare l'hardware solo software genuino, e questo richiede buone capacità di hacking per romperle.

Dovresti dare un'occhiata al progetto Microsoft Longhorn nel corso della giornata: al momento volevano implementare i chip per verificare se il tuo software fosse originale o meno. Teoricamente sarebbe stato molto difficile hackerare, ma non l'hanno fatto perché sarebbe stato molto invadente.

2
jokoon