prendendo input da webform e piping in bash prompt della password

0

Volevo creare una semplice applicazione web che mi permettesse di visualizzare determinati file di testo che ho crittografato con GnuPG che risiedono sul mio server web attraverso qualsiasi browser da remoto.

Ho capito che il modo migliore per farlo è impostare un sistema di login con utente e password (separato da quello per decifrare la mia chiave privata).

Una volta effettuato l'accesso, il server tenterà di decrittografare il file crittografato e richiedere la password della chiave privata. Posso quindi richiedere al browser il passaggio della chiave privata. Quindi spedirei il file decrittografato in testo normale (su TLS)

Anche se userò questa configurazione, penso che l'unico modo per mandare la mia password al programma GnuPG è che il mio server prenda la stringa e poi la usi nel prompt della password di GnuPG. Ci sono delle implicazioni sulla sicurezza di cui dovrei essere a conoscenza quando eseguo il piping di input in un modulo web in bash quando gpg richiede una password (o qualsiasi problema di sicurezza con questo disegno completo).

L'intera sessione verrebbe crittografata con TLS. Probabilmente disabiliterò anche gpg-agent, non che ci sarebbero stati utenti concorrenti sul mio server privato. L'obiettivo finale è che io possa accedere alle mie password dal passaggio ZX2C4 da qualsiasi browser.

    
posta rrego 10.02.2016 - 00:53
fonte

1 risposta

1

Prima di tutto, ci sono buone probabilità che qualunque cosa tu stia cercando di costruire, qualcun altro l'ha già costruita. Ciò non significa che lo abbiano creato giusto , ma probabilmente esiste una soluzione.

In secondo luogo, qualunque sia il framework web che intendi utilizzare, ci sono buone probabilità che esista una libreria GPG, quindi puoi chiamare le funzioni gpg direttamente nel codice invece di eseguire il bombardamento su una riga di comando.

Terzo, la riga di comando gpg ha un'opzione --batch appositamente progettata per l'uso non interattivo in cui un programma esegue l'eseguibile anziché un utente su un terminale.

E infine, il principale pericolo con il passaggio dell'input dell'utente ai programmi della riga di comando è l'interpretazione della shell. Se si esegue l'applicazione direttamente (ad esempio usando execve o execle o una qualsiasi delle ses- sioni exec) dove le opzioni vengono passate come elenco non come una stringa delimitata da spazio singolo, non è necessario alcun trattamento di escape o trattamento speciale, poiché i parametri sono non essere letto e interpretato da una shell. Di norma, l'interpretazione della shell è cattiva a meno che tu non sappia diversamente, e dovrebbe essere evitata.

    
risposta data 10.02.2016 - 06:55
fonte

Leggi altre domande sui tag