Come far credere agli utenti il mio sito web? Voglio convincerli che è tutto, al 100%, completamente open source senza aggiunte nascoste

0

Dire che ho un sito web che gestisce i dati di un altro fornitore / servizio che i miei utenti utilizzano. I miei utenti accedono tramite OAuth al provider straniero. Devono aggiungere una chiave aggiuntiva, che salverò, che a sua volta mi consente di fare tutti i tipi di cose cattive con il loro account.

Il mio intero sito è (sarà) open-source, senza ovviamente le chiavi API e le variabili di ambiente, come BASE_DIR e simili.

Come convincerei i miei utenti che il codice che usano, è esattamente lo stesso di quello open source, senza alcuna aggiunta, quindi altre persone che sanno cosa sta succedendo possono dire "Sì, questo codice è legittimo, non preoccuparti "? Un semplice messaggio in basso "Questo codice è esattamente lo stesso di quello trovato qui " può essere simulato. Molto probabilmente tutto può essere simulato - anche allora, quale sarebbe il modo più affidabile? Esiste uno strumento di terze parti che controlla i contenuti del server in un repository GitHub?

    
posta Mave 02.06.2016 - 12:42
fonte

1 risposta

3

Non puoi, a meno che il codice che viene eseguito sia interamente lato client e interpretato direttamente dalla fonte, nel qual caso possono verificarlo banalmente con strumenti di confronto file standard.

Il motivo è che dovresti dimostrare che l'intero stack software del sistema era affidabile e che l'intero stack hardware era affidabile e che ogni punto della rete tra il tuo sistema e il sistema client era affidabile. Oh, e che il sistema client era affidabile.

Anche con un sistema di terze parti, potresti potenzialmente offrire file diversi a questo e agli utenti - vedi questo articolo su come rilevare l'uso delle pipe di Bash per un esempio di questo. È possibile reindirizzare silenziosamente il servizio di terze parti a una versione "buona" del codice, inviando agli utenti la versione "cattiva", a meno che non stiano tentando di scaricare i file per l'ispezione, quando si invia la versione "buona".

Potresti falsificare completamente il sistema di terze parti e controllarlo tu stesso, sostenendo che ogni insieme di file era identico. Potresti intercettare la risposta di una terza parte, cambiandola in modo che sembrasse mostrare che tutto il tuo codice era sicuro. È possibile farlo tramite il codice dannoso che viene eseguito sul sistema client al primo caricamento, in modo che non ottengano mai una risposta reale dal sistema di terze parti o semplicemente disattivando la verifica di terze parti in modo che non ne siano nemmeno a conoscenza.

Non è nemmeno possibile verificare con la certezza assoluta che un'applicazione compilata sia stata generata da un insieme specifico di codice sorgente, nel caso generale. Vedi questa risposta dal 2010 per alcuni dettagli sul perché - è lo stesso per qualsiasi altro codice compilato, quindi non abbiate paura dei riferimenti VB6.

Fondamentalmente, devi comportarti in modo tale da avere la certezza che non farai nulla di male, e di essere preparato che alcuni utenti non abbiano quel livello di fiducia. Ci sono alcune persone che non useranno alcun software che non hanno compilato da soli, su sistemi che hanno costruito da soli, usando compilatori scritti a mano, e persino potrebbero cadere in fallo di istruzioni maligne seppellite in chip. Siamo passati oltre il punto in cui è possibile verificare completamente il comportamento del computer molto tempo fa (leggi su Il malvagio compilatore di Ken Thompson per un esempio), e il modello client-server non aiuta in questo.

D'altro canto, la maggior parte delle volte non importa: le persone si fidano dei sistemi tutto il tempo senza questo livello di rassicurazione.

    
risposta data 02.06.2016 - 13:30
fonte

Leggi altre domande sui tag