In che modo il software può essere protetto dalla pirateria?

75

Perché oggi sembra così facile da piratare?

Sembra un po 'difficile credere che con tutti i nostri progressi tecnologici ei miliardi di dollari spesi per progettare il software più incredibile e strabiliante, non abbiamo ancora nessun altro mezzo di protezione contro la pirateria di un "numero di serie" /chiave di attivazione". Sono sicuro che un sacco di soldi, forse anche miliardi, sono andati a creare Windows 7 o Office e persino Snow Leopard, eppure posso ottenerlo gratuitamente in meno di 20 minuti. Lo stesso vale per tutti i prodotti Adobe, che sono probabilmente i più semplici.

Può esistere un metodo infallibile e a prova di hack per proteggere il software dalla pirateria? Se non realisticamente, che dire di teoricamente possibile? O a prescindere dai meccanismi utilizzati da queste aziende, gli hacker possono sempre trovare un modo per aggirarlo?

    
posta psr 26.02.2016 - 05:24
fonte

17 risposte

76

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

Il peppering del codice con i controlli anti-pirateria lo rende un po 'più difficile, ma gli hacker lo faranno usa un debugger e rimuovili. L'inserimento di no-op anziché le chiamate a "check_license" è piuttosto semplice.

  • I programmi difficili da hacker fanno cose progressivamente più noiose.
  • Ma i venditori devono vendere software per i clienti che sono pronti a utilizzare.
  • Non tutti consentono ai computer di telefonare a casa.
  • Alcune persone che lavorano su cose sensibili rifiutano di connettere le macchine a Internet.

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

Nel peggiore dei casi, il programma viene eseguito in una VM senza rete, dove è sempre una data fissa.

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

  • I tentativi di aggiungere "prevenzione della copia" dell'hardware ai computer di uso generale sono destinati a fallimento.
  • Qualsiasi azienda vende hardware senza la prevenzione della copia finisce per vendere tutto l'hardware.
  • Venditori come Dell e Intel cercano progressivamente di introdurre spy-hardware come il Palladium, ma sono strongmente resistiti.
  • Quando il computer sta facendo qualcosa di scientifico, in tempo reale, eventuali interruzioni per "controllare la presenza di contenuti piratati" causeranno errori. Se tutti i computer avessero un DRM hardware, gli speciali scientifici / in tempo reale non dovrebbero averlo. Accidentalmente, tutti comprerebbero oggetti speciali scientifici / in tempo reale.
  • I controlli DRM hardware avranno falsi positivi su alcuni tipi di contenuto.

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

    • Analisi firme: il DRM hardware è piccolo e ha un set di dati relativamente fisso. Inoltre, deve utilizzare lo stesso bus di dati della CPU, in modo da rallentare le attività a intermittenza. Questo rovina tutto in tempo reale.

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

risposta data 14.03.2014 - 23:22
fonte
62

In fin dei conti, il grosso problema è che la maggior parte del software prevede di consegnare sia il lucchetto che la chiave al potenziale aggressore e sperare che non capiscano come metterli insieme.

Il solo metodo sicuro di protezione del software è che non lo fornisce all'utente (ad esempio SaaS). Ad esempio, noterai che non puoi "piratare" Google Documenti. In definitiva, se stai cercando di mettere in sicurezza qualcosa, devi presumere di avere piena conoscenza di tutto ciò che dai loro. Non puoi fidarti del cliente. Questo si applica alla prevenzione della pirateria tanto quanto lo è 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 sul tentativo di proteggerlo sull'hardware, i potenziali aggressori controllano , il modello di distribuzione è incompatibile con qualsiasi concetto di "non respirabile" software.

    
risposta data 16.03.2014 - 15:58
fonte
28

IMHO un problema fondamentale è che la maggior parte o tutti i "metodi infallibili e anti-hacking" della protezione del software contro la pirateria infastidiscono o addirittura allontanano gli utenti innocenti e legali.

es. controllare che l'app sia installata solo su una singola macchina potrebbe rendere difficile per un utente cambiare l'hardware nel proprio computer. I dongle hardware possono significare che non puoi usare la stessa app sul tuo computer di casa e di lavoro. Per non parlare dei codici area DVD, CSS, il rootkit Sony e altri, che non sono strettamente legati alla protezione del software, ma strettamente correlati.

* che, come notato da @FrustratedWithFormsDesigner, non sono mai perfetti nella pratica; non c'è sicurezza al 100%, puoi solo provare a renderlo abbastanza costoso perché un intruso possa rompere la difesa in modo che non ci siano "troppi" di loro. E credo che sia dovuto alla natura fondamentale del software e dell'informazione digitale, che una volta che qualcuno riesce a violare una particolare difesa, la rottura può quasi sempre essere banalmente replicata da milioni.

    
risposta data 10.02.2011 - 23:15
fonte
28

Why is it that software is still easily pirated today?

È più proficuo vendere software facile da piratare.

Nel decidere sulle misure antipirateria, le aziende eseguono un'analisi costi-benefici. Per ogni serie di misure, se i benefici non superano i costi, la società non lo fa.

I costi comprendono tempo e sforzi per implementare, documentare, supportare e mantenere le misure, e forse anche perdite di vendite se sono davvero fastidiose. In generale, ci sono due tipi di vantaggi:

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

Ecco un semplice esempio: Microsoft Office.

Ora, MS è tutta una questione di soldi, e non tanto di rendere i dirigenti felici sulla pirateria. Per un po 'di tempo, MS ha venduto un'edizione di "Casa e Studente" di Office in modo molto più economico rispetto all'edizione "normale" per le aziende. L'ho comprato alcuni anni fa e non aveva alcuna protezione per la copia! E la tecnologia "anti-pirateria" consisteva nell'inserire un codice "Product Key" che veniva poi memorizzato nella cartella dell'applicazione. Ma potresti eseguirlo su tutti i computer che volevi contemporaneamente, e funzionerebbero tutti bene! Infatti, sul Mac, puoi trascinare la cartella dell'applicazione attraverso la rete su un altro computer in cui non hai mai fatto un'installazione e, poiché la chiave del prodotto è stata archiviata con l'applicazione, è andata alla grande.

Perché questa 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 è valso la pena.

Il secondo è il misure anti-pirateria non tecniche . MS ha un programma di segnalazione in cui se si conosce un'azienda che ha piratato il software MS, ad esempio l'installazione di 200 copie dello stesso ufficio "Casa e Studente", è possibile effettuare una chiamata. Poi arriva la MS e controlla l'azienda, e se trova software piratato, ne fa causa e tu ottiene un grosso taglio delle vincite.

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

    
risposta data 11.02.2011 - 04:25
fonte
25

Poiché ha detto Bruce Schneier , cercare di rendere i file digitali non copiabili è come cercare di rendere l'acqua non bagnata. Parla principalmente di "DRM", che viene applicato più al contenuto (ad esempio, film) rispetto al codice, ma dal punto di vista di impedire la copia di ciò che è nel file fa poca differenza: copiare un file è copiare un file è copiare un file .

    
risposta data 11.02.2011 - 00:02
fonte
17

C'è un solo "metodo di prova infallibile e anti-hacking per proteggere il tuo software contro la pirateria" :

Software gratuito (Come puoi fare ciò che vuoi con esso, persino venderlo.)

Non puoi rubare ciò che è dato gratuitamente. Certo, questo distruggerà alcuni modelli di software delle compagnie di dinosauri, ma la pirateria non sta andando da nessuna parte. Vendi qualcosa che non puoi copiare, preferibilmente qualcosa che accompagna ciò che hai donato gratuitamente; il tuo aiuto, per esempio.

    
risposta data 29.03.2011 - 12:45
fonte
13

Questo è causato dalla combinazione di quattro fattori principali:

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

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

Perché questo è un problema difficile e poiché produrre software corretto è anche intrinsecamente difficile, è molto probabile che la soluzione conterrà almeno un bug sfruttabile da qualche parte. Per la maggior parte dei software, non importa, ma la maggior parte del software non è sotto attacco attivo da un determinato avversario. La natura del software è quello che è, una volta trovato un bug sfruttabile, può essere usato per prendere il controllo dell'intero sistema e disabilitarlo. Quindi, al fine di produrre una protezione affidabile, la soluzione al problema molto difficile deve essere perfetta o sarà incrinata.

Il quarto fattore è l'Internet mondiale. Rende il problema di trasmettere informazioni a chiunque sia interessato banale. Ciò significa che una volta che il tuo sistema imperfetto è stato rotto una volta, è rotto ovunque.

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

    
risposta data 10.02.2011 - 23:37
fonte
9

Una motivazione spesso sottovalutata, dietro alle soluzioni SaaS basate su cloud, sta garantendo flussi di entrate.

Penso che sia proprio questo il futuro della monetizzazione e della protezione dell'IP.

Spostando l'attenzione dalla vendita di soluzioni on-premise che devono essere eseguite in un ambiente al di fuori del controllo dei fornitori, alla fine ogni strategia contro la pirateria del software è destinata a fallire. Non c'è alcun modo per proteggere le tue risorse quando le dai a qualcun altro, dal momento che la protezione deve essere applicata alla sua macchina.

Avendo il tuo software ospitato nel Cloud e fornito come servizio, stai effettivamente alzando il livello della pirateria a un livello in cui la sua attività di scimmia.

    
risposta data 10.02.2011 - 23:35
fonte
8

Penso che la risposta che stai cercando sia che a molte aziende non interessa più la pirateria in quel modo. Nessuno vuole che le loro cose escano gratis, ma quando si guarda al trade off tra fastidiosi e dover supportare tutte le persone in cui la protezione avanzata della copia ha rotto o rotto i loro computer. Alcune aziende si sono spinte troppo lontano per prendersi cura di loro, ma alla fine la roba è ancora in crisi e i loro utenti tendono a lasciare con l'amaro in bocca.

Non vale la pena (o la potenziale perdita di clienti) di provare a implementarla per le poche persone che impedirebbe comunque l'hacking.

Alcune aziende hanno persino considerato gli utenti dei pirati come una risorsa. Valve ha fatto un tuffo nelle notizie con un commento del genere da un po 'di tempo fa, e non puoi dirmi che Microsoft non è venuta fuori dal lato vincente di tutte le installazioni piratate di Windows in Asia nel corso degli anni.

Per i microsoft là fuori, cercano di vendere grossi blocchi di licenze per i ragazzini di cui hanno bisogno ogni vendita ma non possono permettersi di perdere clienti o, in alcuni casi, persino permettersi i rootkit e le altre schifezze che la gente usa per provare e costruire quello sorta di lock-in.

Non puoi creare una perfetta anti-pirateria, ma non ci sono molte persone che sono strongmente motivate a provare più.

    
risposta data 10.02.2011 - 23:57
fonte
7

Qualunque cosa tu crei 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 strong nell'eseguibile, in modo che la maggior parte del software non sia leggibile. Il problema quindi è che le macchine degli utenti finali non possono più leggere quel codice rispetto ai pirati. Per risolvere ciò, il tuo software deve includere sia l'algoritmo di decifratura sia la chiave - sia in chiaro, o almeno nascondendosi dietro una crittografia più debole (con la decrittografia per il fatto di essere in chiaro).

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

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

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

    
risposta data 10.02.2011 - 23:58
fonte
5

L'anti-pirateria automatizzata è una contraddizione logica.

Gli utenti legittimi sono considerati affidabili dai fornitori.

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

Come può funzionare? In che modo qualsiasi mezzo tecnico può 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.

Se è per questo, le persone sbagliano sempre la loro fiducia.

    
risposta data 10.02.2011 - 23:23
fonte
5

Un motivo per cui credo che le stesse persone che sanno scrivere una sicurezza decente, sono probabilmente gli stessi hacker.

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

Credo che la potenza dei numeri seriali e delle chiavi di attivazione risieda nel fatto che puoi almeno vedere chi sta piratando e provare a seguirlo / bloccarlo in questo modo. Credo che sia parte del motivo per cui tanti servizi sono oggi servizi online. (Steam, aggiornamento di Windows ecc ...) Diventa improvvisamente molto più difficile da decifrare, ... ma ancora possibile.

Dove hai un prodotto di successo, hai più persone che cercano di craccarlo, quindi è probabile che diventerà pirata più grande.

    
risposta data 10.02.2011 - 23:32
fonte
5

Dal punto di vista tecnico, il software può ancora essere piratato perché la maggior parte dell'IT opera ancora su ambienti software e hardware concepiti concettualmente da millenni, quando persino la nozione di pirateria informatica non esisteva.

Queste basi devono essere mantenute per compatibilità all'indietro aumentando ulteriormente la nostra dipendenza da esse.

Se dovessimo riprogettare da zero gli ambienti hardware / software con l'anti-pirateria, potremmo aggiungere miglioramenti significativi.

Guarda tu stesso:

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

  • La stessa architettura open-computer che prenderà qualsiasi software tu passi su di esso

  • Il modello di distribuzione del software è ancora basato su file non criptati 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. Lo faremmo molto meglio la seconda volta, se potessimo ripetere Internet. Sfortunatamente, dobbiamo attenerci a ciò che dobbiamo mantenere la compatibilità, la massa di applicazioni e servizi esistenti.

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

  • Chiudi l'hardware e trasformalo in una scatola nera. Rendere impossibile a un utente fare confusione con l'hardware e il suo software. L'approccio qui è di crittografare probabilmente 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 che lasci la scatola del lettore e decifrato all'interno di un'unità di visualizzazione in modo che non ci sia un flusso di dati aperto da intercettare.

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

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

    
risposta data 10.02.2011 - 23:39
fonte
4

Dato lo sforzo, è probabile che si possa ottenere una protezione della copia quasi perfetta ... ma non varrebbe il costo . Diversi blog importanti hanno ne hanno discusso eccellente : in particolare, il concetto di tasso di pirateria ottimale .

Le misure antipirateria comportano diversi costi: il costo diretto della loro attuazione, ma anche i costi indiretti: ad esempio, le misure spesso causano disagi e allontanano gli utenti.

La pirateria ha dei costi, ma spesso non sono eccessivamente alti. Potrebbe anche avere alcuni vantaggi, ad es. nella base di utenti in espansione. 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 giorni del college perché ho già familiarità con loro. “

Quindi, alcune protezioni anti-pirateria sono importanti per assicurarsi che le vendite legittime non siano sottovalutate troppo male; ma oltre un certo punto, non c'è alcun incentivo economico a rendere le misure anti-pirateria migliori.

    
risposta data 11.02.2011 - 04:26
fonte
4

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 un'esigenza di scrivere come una tantum, e quelli più piccoli si affidano a programmi più grandi per essere in grado di funzionare. Se anche facciamo programmi diffetti da copiare, allora stiamo mettendo il nostro sé in uno svantaggio competitivo. Sì, puoi massimizzare i profitti a breve termine sconciando la copia. Ma alla fine perderai quote di mercato a chi mai riuscisse a ridurre al minimo costi, copie e costi per l'uso.

Il software libero minimizza 1 di questi costi dal punto di vista del costo per la copia e ha una riduzione masive sugli altri 2 costi di scrittura e costo per l'uso.

cost-to-copia

Posso installare Ubuntu Linux in circa lo stesso tempo e gli stessi sforzi di Windows 7 [Windows 7 ha bisogno di aggiungere una chiave di licenza che lo rende un po 'più difficile].

Windows 7 costerà £ 100, ma per Ubuntu posso scaricarlo, comprarlo per £ 6 presso il negozio di riviste (con una rivista gratuita generata), £ 2 per posta o prendere in prestito un cd da un amico.

cost-to-write

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

cost-to-use

Con Windows 7 non ottengo alcuna applicazione, ad eccezione di un browser Web, con Ubuntu ottengo tutte le applicazioni che posso immaginare, molti installano con il sistema operativo.

Non ho bisogno di uno scanner antivirus su Linux.

Posso eseguire Linux su hardware precedente.

Con il software libero, nessuno è costretto a essere upgrage, rendendo versioni incompatibili degli strumenti di office.

    
risposta data 29.03.2011 - 13:24
fonte
3

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 permetta di determinare se questo computer è in grado di funzionare su, ma quel computer non lo è.

Alla fine si riduce a te che hai qualcosa che nessun altro ha. Questo può essere un numero seriale per il quale hai 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 eseguire se non è lì. Per i numeri di serie è inoltre necessario disporre di una posizione su Internet in cui il software possa convalidare 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 una dedizione sufficiente un essere umano può ancora farlo.

Quindi, la maggior parte dei prodotti software poco costosi si rivolgono al numero di serie con una nave madre su Internet che lo convalida, oltre a una politica di licenza che le società a controllo congiunto sono obbligate a seguire. I prodotti costosi di solito utilizzano la protezione della chiave hardware.

    
risposta data 11.02.2011 - 01:00
fonte
2

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 software, come la PS3, la PSP e l'iPhone, è completamente diverso, principalmente perché il produttore ha il controllo su tutto, non solo il software più: possono far funzionare l'hardware solo software autentico, e questo richiede buone capacità di hacking per infrangerle.

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

    
risposta data 11.02.2011 - 14:19
fonte

Leggi altre domande sui tag