È possibile ospitare contenuti html preconfigurati quindi non è necessario caricare la mia chiave privata su un server?

1

La domanda è semplice. La mia chiave privata dovrebbe essere necessaria solo per dare le dimissioni se cambia. Se ho un sito Web html statico, posso usare la mia chiave privata (firmata da una CA) per firmare tutti i file html, inviare tutto tranne la ny private key al server, e poi farli consegnare a nginx?

So che nel TLS c'è una stretta di mano complessa e molta casualità aggiunta per rendere ogni sessione unica ma dipendente dalla chiave privata? Esiste un metodo TLS che può fare ciò che voglio?

Se non esiste una cosa del genere, dovrebbe esistere.

    
posta Guerlando OCs 24.02.2018 - 05:47
fonte

1 risposta

1

TLS viene utilizzato per proteggere la comunicazione tra client e server. I dati dell'applicazione sono crittografati con chiavi che sono univoche per ogni connessione e che vengono create durante la parte di scambio delle chiavi nell'handshake TLS. Lo scambio di chiavi è costruito in modo che sia l'input da client e server sia utilizzato per creare le chiavi e quindi nessun lato ha il pieno controllo sulle chiavi di crittografia.

Il metodo di scambio chiavi consigliato è Diffie-Hellman e anche questo è l'unico disponibile in TLS 1.3. Nessuna chiave privata del server viene nemmeno utilizzata durante lo scambio di chiavi e quindi la chiave privata del server non influisce sul modo in cui i dati vengono crittografati. Ciò significa anche che non c'è modo di pre-crittografare i dati utilizzando in qualche modo la chiave privata. La chiave privata viene utilizzata solo per l'autenticazione, ad esempio per assicurarsi che il client stia effettivamente effettuando l'accesso al server corretto.

E mentre nel vecchio metodo di scambio di chiavi RSA la chiave privata del server è coinvolta per proteggere la chiave scambiata, non influenza la chiave che viene creata e quindi in questo caso non è possibile precriptare i contenuti.

In altre parole: il punto principale della chiave privata è quello di fornire l'autenticazione per assicurarsi che il client stia parlando con il server corretto. Questa autenticazione è fatta firmando una sorta di sfida con questa chiave privata e dimostrando così la proprietà di questa chiave. Poiché questa sfida è unica per ogni sessione TLS, il server deve in qualche modo avere accesso alla chiave privata e non può semplicemente offrire contenuti pre-firmati.

Tuttavia, in teoria è possibile utilizzare un certificato per firmare tutto il contenuto statico che si possiede e quindi trasferire questo contenuto firmato su un semplice HTTP. Ciò non proteggerebbe il contenuto dallo sniffare ma lo proteggerà contro la manipolazione. Mentre questo tipo di protezione è al di fuori di TLS è possibile trovare qualcosa di simile ad esempio nella posta (S / MIME o PGP). Tuttavia, ha bisogno di un client che verificherà tali firme ma attualmente non esiste un tale client. Ma in realtà esiste una bozza Internet che va nella direzione di ciò che desideri: Firma dei messaggi HTTP                     draft-Cavage-http-firme .

    
risposta data 24.02.2018 - 06:08
fonte

Leggi altre domande sui tag