HTTPS (nome completo: Hyper Text Transfer Protocol su SecureSocket Layer) è un canale HTTP il cui obiettivo è la sicurezza. Sulla base di HTTP, la crittografia della trasmissione e l'autenticazione dell'identità garantiscono la sicurezza del processo di trasmissione [1]. HTTPS aggiunge SSL sulla base di HTTP. La base di sicurezza di HTTPS è SSL, quindi SSL è richiesto per i dettagli della crittografia. HTTPS ha una porta predefinita diversa da HTTP e un livello di crittografia/autenticazione (tra HTTP e TCP). Questo sistema fornisce metodi di autenticazione e comunicazione crittografata. È ampiamente utilizzato nelle comunicazioni sensibili alla sicurezza sul World Wide Web, come i pagamenti delle transazioni.
HTTPS è composto principalmente da due parti: HTTP + SSL / TLS, ovvero un livello di modulo per l'elaborazione delle informazioni crittografate viene aggiunto a HTTP. La trasmissione delle informazioni tra il server e il client sarà crittografata tramite TLS, quindi i dati trasmessi sono tutti dati crittografati.
Principio HTTP
① Il browser del client'deve prima stabilire una connessione con il server attraverso la rete. La connessione viene completata tramite TCP. In genere, il numero di porta per la connessione TCP è 80. Dopo che la connessione è stata stabilita, il client invia una richiesta al server. Il formato della richiesta è: URL (Uniform Resource Identifier), numero di versione del protocollo, seguito dalle informazioni MIME inclusi i modificatori della richiesta, le informazioni sul client e il contenuto della licenza.
② Dopo aver ricevuto la richiesta, il server fornirà le informazioni di risposta corrispondenti. Il formato è una riga di stato, che include il numero di versione del protocollo delle informazioni, un codice di successo o di errore e le informazioni MIME includono informazioni sul server, informazioni sull'entità e possibile contenuto.
Principio HTTPS
① Il client invia al server l'elenco degli algoritmi supportati e un numero casuale utilizzato per generare la chiave;
② Il server seleziona un algoritmo di crittografia dall'elenco degli algoritmi e lo invia al client insieme a un certificato contenente la chiave pubblica del server; il certificato contiene anche l'identificazione del server ai fini dell'autenticazione e il server fornisce anche un utente Utilizzato come numero casuale per generare la chiave;
③ Il client verifica il certificato del server's (per la verifica del certificato si può fare riferimento alla firma digitale), ed estrae la chiave pubblica del server's; quindi, genera una stringa di password casuale chiamata pre_master_secret, e usa la chiave pubblica del server'per essa Encrypt (fare riferimento a crittografia/decrittografia asimmetrica) e invia le informazioni crittografate al server;
④ Il client e il server calcolano indipendentemente la crittografia e le chiavi MAC in base a pre_master_secret e al valore casuale del client e del server (fare riferimento all'algoritmo di scambio delle chiavi DH);
⑤ Il client invia il valore MAC di tutti i messaggi di handshake al server;
⑥ Il server invia il valore MAC di tutti i messaggi di handshake al client
vantaggio
Utilizzare il protocollo HTTPS per autenticare utenti e server per garantire che i dati vengano inviati al client e al server corretti;
Il protocollo HTTPS è un protocollo di rete costruito da SSL+HTTP che può essere utilizzato per la trasmissione crittografata e l'autenticazione dell'identità. È più sicuro di HTTP. Può impedire il furto e la modifica dei dati durante la trasmissione e garantire l'integrità dei dati.
HTTPS è la soluzione più sicura nell'attuale architettura. Sebbene non sia assolutamente sicuro, aumenta notevolmente il costo degli attacchi man-in-the-middle.
discordanza
Nello stesso ambiente di rete, il protocollo HTTPS estenderà il tempo di caricamento della pagina di quasi il 50% e aumenterà il consumo energetico dal 10% al 20%. Inoltre, il protocollo HTTPS influenzerà anche la cache, aumentando il sovraccarico dei dati e il consumo energetico.
La sicurezza del protocollo HTTPS ha un ambito e ha scarso effetto sugli attacchi degli hacker, sugli attacchi Denial of Service e sul dirottamento del server.
La cosa più importante è che il sistema della catena di credito del certificato SSL non è sicuro. Soprattutto quando alcuni paesi possono controllare il certificato radice della CA, gli attacchi man-in-the-middle sono ugualmente fattibili.
Aumento dei costi. Dopo l'implementazione di HTTPS, il lavoro del protocollo HTTPS aumenterà il consumo di risorse di elaborazione aggiuntive. Ad esempio, l'algoritmo di crittografia del protocollo SSL e il numero di interazioni SSL occuperanno una certa quantità di risorse di elaborazione e costi del server. Nello scenario di applicazioni di accesso utente su larga scala, il server deve eseguire frequenti operazioni di crittografia e decrittografia e quasi ogni byte deve essere crittografato e decrittografato, il che comporta costi per il server. Con lo sviluppo della tecnologia di cloud computing, il costo dell'utilizzo dei server distribuiti nei data center è diminuito gradualmente dopo l'aumento della scala. Rispetto al miglioramento della sicurezza dell'accesso degli utenti, il costo dell'input è sceso a un livello accettabile.




