Come dimostrare che alcuni server hanno inviato un file su HTTPS

7

Voglio provare che alcuni file che ho recuperato usando HTTPS sono stati effettivamente inviati dal server. Ho provato a cercare online, ma non ho trovato quello che ho desiderare.

Come dimostrare facilmente che alcuni server HTTPS hanno inviato un file? Dovrebbe non richiede autorizzazioni speciali e preferibilmente essere fatto solo con noto software gratuito. La dimostrazione dovrebbe essere valida finchè il il certificato del server è valido. La prova dovrebbe essere in grado di essere validato senza accesso a Internet.

Un esempio è che il contenuto di una pagina web dipende da posizione geografica del cliente. È qualcosa di divertente quando richiesto dal mio indirizzo IP come questo uno . Voglio mostrarlo a qualcun altro. Se io dargli il link, non otterrà la stessa pagina. Se gli do la pagina recuperato dal mio computer, penserà che ho cambiato la pagina. Fortunatamente, la pagina viene recuperata dal server utilizzando HTTPS. Se la connessione utilizza un algoritmo di scambio di chiavi in cui il server firma i byte casuali in ClientHello e ServerHello, posso mostrargli il traffico tra il server e il mio computer. Allora crederà che sia così davvero quel server che mi ha mandato la pagina, perché solo un server che ha la chiave privata per il certificato può firmare i byte casuali.

O come dimostrare facilmente l'autenticità di un server SSL a qualcuno altro?

    
posta v7d8dpo4 23.11.2016 - 12:04
fonte

3 risposte

3

Suppongo che tu voglia la prova crittografica che il server abbia davvero inviato questa risposta esatta. Ad esempio, se il server ha firmato la risposta TLS con la chiave privata, ciò fornirebbe la prova che il server ha inviato veramente questa risposta.

Sfortunatamente, questo non è ciò che accade con TLS. Il server firma qualcosa (il messaggio ServerKeyExchange) o il client crittografa qualcosa (il segreto premaster) per dimostrare che il server conosce la chiave privata. Successivamente, il master secret viene determinato dal client e dal server e utilizza la crittografia simmetrica per la comunicazione. Potresti memorizzarlo per mostrarlo a qualcun altro in un secondo momento, ma puoi anche decrittarlo e cambiarlo, quindi non sarebbe una prova che sia davvero ciò che hai ricevuto dal server.

    
risposta data 29.11.2016 - 22:11
fonte
2

Sembra che tu stia cercando un modo per proteggere e dimostrare l'integrità e l'autenticità dei file. Fondamentalmente, se SSL funziona correttamente, l'integrità dovrebbe andare bene e l'autenticità è buona quanto più ti fidi del server remoto.

D'altra parte, puoi solo firmare il file e verifica firma locale.

    
risposta data 23.11.2016 - 15:34
fonte
0

In base all'esempio che hai fornito, potrebbe essere più semplice ottenere l'altra persona per connettersi al tuo computer (tramite webex o qualche alternativa open source) e visualizzarla lì o far connettersi l'altra persona tramite una VPN vicino alla tua posizione e poi vai alla pagina web.

Se vuoi seguire il percorso di verifica del traffico, puoi usare qualcosa come wireshark per registrare il traffico tra il tuo computer e il server, decodificare il traffico, quindi estrarre i file che stai cercando e confrontare hai salvato taggando i due file. Prevedo che l'hashing potrebbe non funzionare a causa delle differenze nel salvataggio di una pagina Web in un browser e nella creazione di un file con wireshark

    
risposta data 23.11.2016 - 19:49
fonte

Leggi altre domande sui tag