Come impedire la copia del contenuto multimediale locale della mia applicazione Java?

0

Ho recentemente avviato un progetto in cui ho bisogno di fare ampio uso di video e libri. E tutti sono necessari per essere archiviati localmente.

Voglio poter cercare tutti questi libri e accedervi il più rapidamente possibile.

Non voglio che gli utenti della mia applicazione abbiano accesso ai contenuti (libri e video) al di fuori della mia app che consentirebbero loro di copiare i file o visualizzarli in un altro software.

In breve, non voglio che i file vengano archiviati apertamente nel file system, voglio oscurarli o limitare in qualche modo l'accesso al contenuto in modo che non sia possibile accedervi al di fuori della mia applicazione.

Questo è come un progetto di un'enciclopedia, in cui ho materiale protetto da copyright.

Sto usando Java come lingua principale per questo progetto.

    
posta labir pinima 29.08.2016 - 08:21
fonte

2 risposte

2

Probabilmente vorresti crittografare il contenuto (o almeno farlo offuscare). Devi quindi fidarti della crittografia e delle procedure ad essa correlate.

Ma gli utenti avanzati potrebbero ignorare il codice Java e accedere al modulo crittografato.

BTW, con sforzi sufficienti (compresa la forzatura della crittografia), il tuo meccanismo potrebbe essere bypassato. Ricorda che sicurezza attraverso l'oscurità è un errore .

Memorizzare i dati al di fuori dei file (ad esempio in alcuni database) non lo nasconde affatto. Un utente avanzato (come me abbastanza motivato) troverà il tuo database e potrebbe interrogarlo al di fuori della tua applicazione. Potrebbe modificare un programma di caricamento classe Java per modificare o almeno tracciare il comportamento dell'applicazione, oppure potrebbe anche applicare una patch alla JVM che esegue il tuo cosa (o usare un altro, ad esempio JVM accademico, per gestire la tua cosa). Potrebbe ad es. traccia le chiamate di sistema fatte dalla tua app (su Linux, sto usando strace (1) sulla maggior parte dei software binari stranieri che potrei dover installare). Leggi forse Sistemi operativi: tre pezzi facili .

Inoltre, un determinato contenuto (video o libro) potrebbe essere legalmente disponibile sul computer del consumatore esterno della tua app. Richiede che il contenuto sia duplicato (sprecando risorse sul computer del consumatore, presumibilmente appartenente legalmente a lui)?

Finalmente, come consumatore, non avrei mai acquistato o usato il tuo software, perché non mi fido di DRM . Le informazioni vogliono essere gratuite . Vedi link (che contiene anche argomenti tecnici relativi al tuo problema che dovresti sapere, anche se non sei d'accordo con le opinioni lì).

Leggi informazioni su base di calcolo attendibile .

Spiega al tuo cliente che qualcuno (al di fuori della giurisprudenza degli Stati Uniti, forse qualche sviluppatore o hacker cinese, russo, francese, in genere al di fuori della portata legale del tuo cliente ...) alla fine decodificherà qualsiasi trucco software che tu possa " ll attuare e pubblicare la sua comprensione dei trucchi su qualche sito web o forum. È solo questione di tempo. Leggi su libdvdcss come esempio passato ecc ...

I want to obscure them or somehow restrict access to the content so it cannot be accessed outside my application.

Tecnicamente non sarai in grado di completamente limitare (ovvero, rendere impossibile) l'accesso ai contenuti su un altro computer (su cui il sistema operativo, la JVM, l'hardware, ecc ... potrebbero essere "hacked" o "compromised" o "improved" o "patched"); potresti renderlo difficile (usando le tecniche di crittografia o offuscamento). Quindi hai un compromesso in termini di costi: quanto lavoro e amp; risorsa il tuo cliente può permettersi di renderlo molto difficile? O è "appena abbastanza difficile"?

    
risposta data 29.08.2016 - 09:22
fonte
0

Vorrei semplicemente archiviare i miei contenuti in un ambiente cloud e consentire loro di accedervi in fase di runtime. Al runtime verrà recuperato dal cloud crittografato durante lo streaming sul computer dell'utente e decrittografato quando lo streaming è fatto. la chiave di crittografia dovrebbe essere a 128 bit e ruotare - potrebbe anche provenire dal servizio.

    
risposta data 31.08.2016 - 20:48
fonte

Leggi altre domande sui tag