Protezione dei dati a riposo in Android

3

Ecco una situazione.

Sono l'autore di un'app che consente ai miei clienti di effettuare lo streaming di video sul proprio dispositivo Android locale. Autorizzo anche loro a scaricare il video e a memorizzarlo localmente sul proprio dispositivo Android.

Ma ora voglio limitare la distribuzione del video scaricato in qualche modo. Voglio assicurarmi che il video scaricato non possa essere semplicemente distribuito a un altro utente, che non è nemmeno registrato con la mia app.

Come posso ottenere questo?

Alcune soluzioni che potrei pensare:

Crittografia del video con una chiave associata al mio ID di registrazione. Il problema è che la chiave dovrà essere memorizzata sul dispositivo stesso. E se il dispositivo è rootato / compromesso, la chiave può essere recuperata. Esecuzione di una richiesta di autorizzazione prima di ogni riproduzione del video a livello locale. Il problema è che viene sconfitto lo scopo previsto per la riproduzione offline del video. Quindi, non qualcosa di molto desiderabile.

    
posta qre0ct 15.04.2015 - 07:33
fonte

4 risposte

5

Hai risposto tu stesso alla domanda. Stai cercando di implementare il DRM per impedire agli utenti di estrarre il video dal dispositivo. In pratica c'è poco che puoi fare per impedirlo. Ci saranno sempre modi per copiare il flusso, anche intercettando il flusso (deve essere visualizzato sul dispositivo ad un certo punto, giusto?).

Quindi l'unica cosa che puoi fare è renderla più difficile, ma non impossibile da copiarla. Puoi anche includere alcuni metadati nel video durante lo streaming o quando scaricato per identificare l'utente che ha diffuso il video.

    
risposta data 15.04.2015 - 08:46
fonte
2

Google ha il meccanismo Widevine DRM (soluzione Video DRM). Uno strumento che può giocare con gli interni di Widevine (libwvcdm) può essere trovato qui - link

C'è anche il framework multimediale Stagefright per fornire DRM - link - Josh Drake sta facendo un prezo su di esso a BlackHat US questo anno

AGGIORNAMENTO: ... ed ecco un fuzzer con cui giocare a Stagefright - link

    
risposta data 14.05.2015 - 00:13
fonte
1

Non hai molte opzioni per risolvere questo veramente:

  1. Se rimuovi la riproduzione offline, puoi semplicemente utilizzare HLS con crittografia, con lo stream ospitato nel server.
  2. Per consentire la riproduzione offline, come hai detto, dovrai in qualche modo criptare / decodificare il video. È sempre possibile lasciare la chiave pubblica (chiave di crittografia) memorizzata localmente per la crittografia, ma è necessario proteggere la chiave privata (decrittografia), in modo che possa essere archiviata in un server e recuperata immediatamente prima della riproduzione locale. Ma in questo scenario è necessario essere online per recuperare la chiave di decodifica. Inoltre, per proteggerti dalle perdite di chiavi, dovrai anche aggiungere un meccanismo di protezione della radice.
risposta data 14.06.2015 - 18:41
fonte
0

Come altre risposte menzionate, questo problema sembra molto vicino ai problemi DRM, con l'unica ma notevole eccezione che, secondo la mia comprensione, non è necessario che il file video sia riproducibile da qualsiasi altro software diverso dal proprio.

Per evitare qualsiasi chiave memorizzata, immagino la chiave effettiva da dedurre (come un hash) da diversi parametri che definiscono la tua restrizione (ID video, ID di registrazione, altre informazioni che identificano il cellulare per esempio, ecc.), quindi fornendo una chiave univoca per file, la chiave effettiva non viene memorizzata da nessuna parte ma calcolata all'apertura del file.

Un po 'lo stesso principio con cui Windows genera una chiave di attivazione dedotta dall'hardware del computer per legare questa installazione a questo hardware, l'idea sarebbe quella di generare questa chiave per legare questo file video a questo cellulare e all'utente.

Ovviamente, il problema rimane che alcuni utenti possono decodificare l'applicazione, dedurre l'algoritmo di costruzione delle chiavi e pubblicare un'offerta di app speciale per decodificare il video. Per contrastare il fatto che tu possa coinvolgere alcune tecniche di offuscamento, ma come con il DRM devi definire un compromesso tra lo sforzo fatto per proteggere il contenuto e il valore del contenuto effettivo.

Ad esempio, a seconda dei contenuti e della popolarità dell'app, la maggior parte degli utenti potrebbe non pensare che sarebbe opportuno sacrificare la sicurezza del proprio telefono installando l'app di decrittografia da qualche archivio oscuro, dato che qualcuno con competenza ha trovato utile creare questa decrittazione app in primo luogo e per mantenerla in modo che corrisponda agli aggiornamenti dell'algoritmo.

    
risposta data 15.05.2015 - 22:22
fonte

Leggi altre domande sui tag