GNU/Linux >> Linux Esercitazione >  >> Linux

HTTP e HTTPS:qual è la differenza?

Pubblico di destinazione

Questo articolo è rivolto a un lettore generico con una conoscenza di base di come funziona Internet.

Introduzione

Quando navighi in Internet, la maggior parte delle pagine Web viene consegnata al tuo computer utilizzando un protocollo di comunicazione chiamato HTTP, che serve la stragrande maggioranza delle pagine Web sul World Wide Web. Tuttavia, può essere uno schema di comunicazione vulnerabile, ed è qui che entra in gioco HTTPS.

HTTP

Quando un utente digita un indirizzo web nella barra degli indirizzi del browser e preme "Invio", molte cose accadono dietro le quinte prima che la pagina web venga visualizzata nella finestra del browser. Il computer client prima interroga un server DNS (Domain Name System) per l'indirizzo IP numerico effettivo del server web associato all'indirizzo web. Una volta che conosce l'indirizzo IP, il computer client effettua una richiesta per la risorsa richiesta dal server web. Il server risponde quindi e la pagina Web viene consegnata al computer dell'utente. Tutto questo di solito avviene in pochi millisecondi e utilizza un protocollo chiamato HTTP.

HTTP (HyperText Transfer Protocol) è il meccanismo mediante il quale la stragrande maggioranza delle pagine Web viene distribuita sul World Wide Web. È un protocollo di richiesta server/client, in cui il client (solitamente il computer dell'utente) richiede un pacchetto di dati (solitamente una pagina web) dal server. Ad esempio, quando un server privato virtuale sente una richiesta, risponde con una risposta di stato, normalmente "HTTP/1.1 200 OK". Segue poi con i dati richiesti. Quindi una richiesta/risposta da un client a un server potrebbe assomigliare a questa:

CLIENT:
GET /index.html HTTP/1.1
Host: www.example.com
User-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0

SERVER:
HTTP/1.1 200 OK
Date: Wed, 16 Sept 2015 23:59:59 GMT
Server: Apache 1.3.3.3 (Unix)
Content-Type: text/html
Content-Length: 1922
<html>
<head>
<title>Welcome to my site!</title>
</head>
<body>
This is a very simple web page, written in HTML.
</body>
</html>

.
Il protocollo è in uso dal 1991 ed è un protocollo di comunicazione riconosciuto, valido e utile. Tuttavia, non è mai stato progettato pensando alla sicurezza. Lo scambio non è crittografato, il che significa che se viene intercettato, chiunque può leggere il contenuto sia della richiesta che della risposta. È particolarmente vulnerabile all'attacco "man-in-the-middle", in cui un computer non autorizzato funge da intermediario tra il computer dell'utente e Internet, leggendo e registrando tutti i messaggi inviati e ricevuti.

Protezione del Web con HTTPS

Esiste un altro protocollo, tuttavia, che funziona in modo simile a HTTP ma è significativamente più sicuro:HTTPS, che sta per HyperText Transfer Protocol Secure. HTTPS utilizza TLS (Transport Layer Security) per crittografare le comunicazioni tra il computer client e il server, rendendo i dati inutili e illeggibili se intercettati. Potresti anche sentire TLS chiamato SSL (Secure Socket Layer). SSL è stato il predecessore di TLS e molti usano ancora quel termine quando parlano della tecnologia che aiuta a proteggere HTTPS.

TLS funziona tramite certificati digitali. Su richiesta, un'autorità di certificazione (CA) emette un certificato a un server, che serve ad autenticare quel server su qualsiasi client connesso. In una transazione HTTPS, un client contatta un server abilitato per TLS e richiede una sessione crittografata. Il server risponde quindi con una copia del proprio certificato digitale. Tale certificato include la CA affidabile che lo ha emesso e la chiave pubblica del server per la crittografia.

Il client riceve le informazioni sul certificato del server e può verificare dall'autorità emittente che il certificato sia valido. Una volta che il client si è accertato che il server è autentico, genera un numero casuale. Quindi utilizza quel numero casuale per generare una chiave di sessione. Il client quindi crittografa il numero casuale utilizzando la chiave pubblica del server e lo invia al server. Poiché è crittografato utilizzando la chiave pubblica del server, il server è l'unico in grado di decrittografare il messaggio con la sua chiave privata. Una volta che il server ha decrittografato il messaggio del client, ha lo stesso numero casuale per generare la stessa chiave di sessione generata dal client. Da quel momento in poi, tutte le comunicazioni tra il server e il client vengono crittografate e decrittografate utilizzando quella chiave di sessione. L'informazione che viene trasmessa è proprio come il traffico HTTP, solo che ora viene crittografata prima dell'invio, quindi se dovesse capitare di essere intercettata, l'entità intercettante non sarebbe in grado di decifrare l'informazione. Confronta l'aspetto del traffico HTTPS riportato di seguito con l'esempio precedente di traffico HTTP:

...........s.....*...."..*.....r.].di.s0.$. .<...v.b..'.....O..Z|.~$..!N...X...+./.
.......3.9./.5.
.............www.atlantic.net......
.................#..zS...$z.W..0.......c...#.;qu..*...3...... -.E;[email protected]/P.rU..0.....5P......#X...n.b.......C.&...tRgW.a.....{v.......)...-1..J9S.V..G.In......|..u..O0.....mU...|..q..Ja.O.n..G..E.W}8E.Q...0..k3t.........h2.spdy/3.1.http/1.1..........
...........................c...................................................................................................
....Q...M..V.Q$._...9.&ye.L.i..T'.l.y..3`]| .<...v.b..'.....O..Z|.~$..!N...X./..................([email protected]#8....u
..........(...........[[email protected]
.............g.m4..a..V&!B..d....bv.......3......&...c......
.....G...z..x.....SzV...H.P...L`...T.....s.{...ip....PY..)Z.[.<N.f}WOv$.>........../.....^.....hc ..e.\..`.L.!.c.m.=`...[....An...c2.N..?......$.|....M.?WA.x......NCIk.....j+VUZ..p...\ZM....=.<....Ra..S..% .o...{....\ nc..~c=.......'.]...D.t..p0.-b.8*g$Yo....!c...y.#......d..H9.o.+..'..xn\.... q.....H}-....Q>..D!...~.yV..v..
\Vi.P.....K.FV-........W.>]y....M...A\....>....i/o.+..b.P.."..H..xP..:......'...VX.......j.........0D...J..Zw....b.;b.
.....*.(..h.V.F.K..8..L.M.s...rwdc.{F%o.j....=.C...w.<.|..).3.. =32..g..>...h8(..;\}.h<....yP\6r.y..3.......592.W...r..pT.*.-D....e.]..).....
.....<.i..o`[email protected]_d"....m..!L .G.{........U.....[..r..S....a)?.SY...%....>...jl.....
.W.4.....X.Nd.....Z...%...a.;...om..mH..B.._...*......H..}(fi...,0..8..,}.[Z8.N..H...F....yj.N..b.^...].S.'......u..Z.j....spS.p.C.vhk...O..!..Y".|.w)El....t........R..h.....L.0i.M.)...E..V.C.....U........u..i.w......H..;.F.......u..
2Op.%........Z.>2.N2),.o..M..
...f.Z........7r9
.....

.

Ottenere un certificato TLS da un'autorità di certificazione

Le autorità di certificazione offrono un'ampia varietà di certificati TLS. I prezzi variano a seconda dell'entità dell'autenticazione desiderata. Un certificato molto semplice (magari utilizzato per convalidare gli utenti all'interno di un'organizzazione, ad esempio) è gratuito. I tre livelli di convalida più comuni sono DV o Domain Validation , OV o Convalida dell'organizzazione e EV o Convalida estesa . I certificati DV sono i più comuni e di solito vengono verificati inviando un'e-mail al controller di un nome di dominio. I certificati OV offrono un po' più di fiducia; la CA verifica non solo il controllo del dominio, ma anche l'azienda utilizza quel dominio. I certificati EV sono i più affidabili e richiedono una documentazione significativa da parte dell'organizzazione per dimostrare che sono legittimi. Questi certificati vengono spesso utilizzati dalle organizzazioni che desiderano presentare un'esperienza Web sicura, in particolare se hanno una relazione finanziaria con i propri visitatori.

Sebbene il processo di crittografia sia efficace, rendendo i messaggi HTTPS particolarmente sicuri rispetto alle transazioni HTTP non protette, c'è un anello debole nella catena:le autorità di certificazione operano sulla base della fiducia. Se una CA dovesse essere dirottata, ad esempio, potrebbe emettere un certificato attendibile per qualsiasi dominio che sarebbe accettato come valido e considerato attendibile da tutti i browser. Un utente malintenzionato con un tale certificato potrebbe quindi impostare una copia fraudolenta di quel dominio che sembrerebbe essere attendibile con l'intenzione di intercettare il traffico verso quel dominio. Un evento del genere si è verificato nel 2011, quando una CA olandese è stata compromessa dal governo iraniano e utilizzata per intercettare le sessioni di navigazione dei cittadini iraniani. Non è un evento comune, ma è un evento di cui gli utenti attenti alla sicurezza dovrebbero assolutamente essere consapevoli.
.

Identificazione di una connessione HTTPS

Il modo più semplice per verificare che la tua connessione HTTPS sia sicura è guardare la barra degli indirizzi del tuo browser. La maggior parte dei browser identifica le connessioni HTTPS con l'icona di un lucchetto vicino all'indirizzo web, mentre le connessioni HTTP non crittografate non hanno tale icona. Di seguito è riportato un esempio di una normale connessione HTTP in Firefox, seguito da esempi di connessioni HTTPS in Firefox e Google Chrome.

Connessione HTTP in Firefox

Indicatore HTTPS in Firefox

Indicatore HTTPS in Chrome

Potresti anche vedere un'icona a forma di lucchetto verde che include il nome dell'organizzazione o del sito accanto ad essa. Questa icona più evidente mostra che l'organizzazione ha acquisito un certificato EV, come di seguito.

Indicatore HTTPS (con certificato TLS EV) in Firefox

.

Conclusione

HTTPS soddisfa un'esigenza che HTTP lascia aperta:quella della sicurezza. Gli scambi e il protocollo utilizzato sono gli stessi; solo HTTPS aggiunge un ulteriore passaggio di crittografia che aiuta a proteggere le informazioni trasmesse su Internet. Sebbene nulla sia assolutamente sicuro, vale la pena verificare che un sito Web stia utilizzando la crittografia HTTPS prima di inviare informazioni sensibili come password o numeri di carta di credito/conto bancario attraverso il filo.

Atlantic.Net

Dal 1995, Atlantic.Net fornisce servizi Internet ai clienti, inclusi hosting gestito, cloud e dedicato. In oltre 20 anni di servizio, le nostre soluzioni si sono concentrate nel fornire il meglio delle soluzioni web ai nostri stimati clienti!


Linux
  1. Linux vs. Unix:qual è la differenza?

  2. Qual è la differenza tra InnoDB e MyISAM?

  3. Che cos'è un server Web e come funziona un server Web?

  4. Qual ​​è la differenza tra cPanel e WHM?

  5. Quali sono i vantaggi di CloudLinux?

Useradd vs Adduser:qual è la differenza?

iptables vs nftables:qual è la differenza?

SIGTERM vs SIGKILL:qual è la differenza?

DevOps vs Software Engineer:qual è la differenza?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?