Permettere solo agli utenti del client ufficiale di caricare contenuti multimediali sul mio server. Possibile?

0

Da un po 'di tempo mi stavo occupando di un'idea di progetto, ma non riesco ad accontentarmi di un dettaglio importante. Il piano è scrivere un client che possa creare e caricare WebM su un server per la visualizzazione globale (se l'utente lo desidera), tuttavia, voglio solo consentire ai WebM realizzati con l'applicazione ufficiale per motivi di coerenza.

Il mio primo pensiero è stato quello di incorporare una chiave segreta nel file .webm esportato di cui il server è a conoscenza, ma temo che sia facilmente estraibile con gli strumenti giusti.

Esistono strategie di sicurezza, se non del tutto?

Grazie in anticipo!

    
posta will 29.09.2016 - 09:56
fonte

2 risposte

3

Puoi scrivere un cliente che conosce un segreto che è necessario per eseguire il caricamento. Tuttavia, ciò che puoi scrivere, qualcun altro può decodificare, in modo da poter scoraggiare gli aggressori occasionali, ma non gli attaccanti dedicati.

Il reverse engineering è più difficile della programmazione, quindi se sei disposto a impegnarti per mantenere e adattare il tuo meccanismo di upload, è possibile che tu possa tenere il passo con gli aggressori. Ma non sembra che il tuo progetto sia così importante da giustificare uno sforzo perpetuo.

    
risposta data 29.09.2016 - 10:35
fonte
2

No, questo non è possibile.

Affinché i tuoi utenti possano caricare contenuti, devi dare loro la tua chiave. Puoi provare a nascondere la chiave, ma alla fine il tuo cliente deve essere in grado di trovare la chiave e se il tuo software riesce a trovare la chiave, l'utente può farlo anche lui.

Puoi provare a nascondere e nascondere il codice che trova la chiave, ma ancora una volta: affinché il tuo client sia in grado di funzionare, la CPU deve capirlo. Le CPU sono molto, molto, molto, molto, molto più stupide degli umani, quindi se la CPU è in grado di capire il codice, può farlo anche un umano. Questa è la strada intrapresa da un sacco di costosi software commerciali, e tutti loro possono essere stati incrinati.

Puoi provare a mettere il codice in una scatola a tenuta ermetica, a prova di manomissione, cioè dare agli utenti degli elettrodomestici invece del solo software. Ma poi cambia il problema: invece di attaccare il tuo software, ora stanno attaccando il tuo hardware e, di nuovo, qualsiasi tecnica tu abbia usato per costruire il tuo hardware a prova di manomissione, di solito c'è un'altra tecnica per smontarlo di nuovo. Questa è la strada percorsa dalle console di gioco, dai telefoni cellulari e, alla fine estrema, dalle smartcard e tutte possono essere state violate.

In realtà, l'unica cosa che funziona in modo affidabile è non dare affatto il codice agli utenti. Implementa lo strumento di creazione come un servizio web ospitato nei tuoi locali in un ambiente che controlli.

L'altra alternativa è non trattare i tuoi utenti come criminali e fare a meno di tutte quelle restrizioni tecnologiche, e lavorare con i tuoi utenti sulla base del reciproco rispetto e della fiducia.

    
risposta data 29.09.2016 - 11:29
fonte

Leggi altre domande sui tag