Hva er forskjellen mellom SSL, TLS og HTTPS?

Jeg blir forvirret av begrepene på dette området. Hva er SSL, TLS og HTTPS? Hva er forskjellen mellom dem?

Løsning

TLS er det nye navnet på SSL. SSL-protokollen kom nemlig til versjon 3.0; TLS 1.0 er "SSL 3.1". TLS-versjoner som for øyeblikket er definert inkluderer TLS 1.1 og 1.2. Hver nye versjon legger til noen få funksjoner og endrer noen interne detaljer. Vi sier noen ganger "SSL/TLS".

HTTPS er HTTP innenfor SSL/TLS. SSL (TLS) etablerer en sikker, toveis tunnel for vilkårlige binære data mellom to verter. HTTP er en protokoll for å sende forespørsler og motta svar, der hver forespørsel og hvert svar består av detaljerte overskrifter og (muligens) noe innhold. HTTP er ment å kjøre over en toveis tunnel for vilkårlige binære data; når tunnelen er en SSL/TLS-forbindelse, kalles det hele "HTTPS".

For å forklare akronymene:

  • "SSL" betyr "Secure Sockets Layer". Dette ble oppfunnet av oppfinnerne av de første versjonene av protokollen, Netscape (selskapet ble senere kjøpt av AOL).
  • TLS1 betyr "Transport Layer Security". Navnet ble endret for å unngå juridiske problemer med Netscape, slik at protokollen kunne være "åpen og fri" (og publisert som en RFC). Det antyder også at protokollen fungerer over en hvilken som helst toveis strøm av byte, ikke bare Internett-baserte kontakter.
  • "HTTPS"3 er ment å bety "HyperText Transfer Protocol Secure", noe som er grammatisk feil. Ingen, bortsett fra den terminalt kjedelige pedanten, bruker noen gang oversettelsen; "HTTPS " er bedre tenkt på som "HTTP med en S som betyr SSL ". Andre protokollakronymer er bygget på samme måte, f.eks. SMTPS, IMAPS, FTPS ... alle er en naken protokoll som "ble sikret" ved å kjøre den i noen SSL / TLS.
Kommentarer (8)

SSL og TLS er protokoller som tar sikte på å gi personvern og dataintegritet mellom to parter (se RFC 2246), designet for å kjøre over en pålitelig kommunikasjonsprotokoll (vanligvis TCP). Selv om TLS-spesifikasjonen ikke snakker om sockets, ble utformingen av SSL/TLS gjort slik at applikasjoner kunne bruke dem nesten som tradisjonelle TCP-sockets, for eksempel SSLSocket i Java utvider Socket (det er imidlertid små forskjeller når det gjelder brukervennlighet). HTTPS er HTTP over SSL/TLS, der SSL/TLS-forbindelsen opprettes først, og deretter utveksles vanlige HTTP-data over denne SSL/TLS-forbindelsen. Om du bruker SSL eller TLS til dette, avhenger av konfigurasjonen av nettleseren din og serveren (det finnes vanligvis et alternativ for å tillate SSLv2, SSLv3 eller TLS 1.x). Detaljer om hvordan HTTP og SSL/TLS danner HTTPS finnes i RFC 2818. Når det gjelder forskjellen mellom SSL og TLS, kan du være interessert i disse to svarene jeg skrev for disse lignende spørsmålene på StackOverflow og ServerFault:

  • Forskjellen mellom SSL og TLS [Stackoverflow] [Hva er forskjellen mellom SSL og TLS?
  • Hva er de eksakte protokollnivåforskjellene mellom SSL og TLS? [Serverfault]

    Du kan vurdere TLSv1.0 som SSLv3.1 (faktisk det' er det som skjer i postene som utveksles). Det' er bare enklere å sammenligne TLSv1.0 med TLSv1.1 og TLSv1.2 fordi de alle har blitt redigert innen IETF og følger mer eller mindre samme struktur. SSLv3 redigeres av en annen institusjon (Netscape), gjør det litt vanskeligere å oppdage forskjellene. oppdage forskjellene.

    Her er noen forskjeller, men jeg tviler på at jeg kan liste dem alle:

    • I ClientHello-meldingen (den første meldingen som sendes av klienten, for å starte håndtrykket), er versjonen {3,0} for SSLv3, {3,1} for TLSv1.0 og {3,2} for TLSv1.1.
    • ClientKeyExchange er forskjellig.
    • MAC/HMAC er forskjellig (TLS bruker HMAC, mens SSL bruker en tidligere versjon av HMAC).
    • Nøkkelavledningen er forskjellig.
    • Klienten kan sende søknadsdata kan sendes rett etter at SSL/TLS Finished-meldingen er sendt i SSLv3. I TLSv1 må den vente for serverens Finished-melding. Listen over krypteringssuiter er forskjellig (og noen av dem har blitt omdøpt fra SSL* til TLS*, med samme id-nummer).
    • Det er også forskjeller med hensyn til den nye reforhandlingsutvidelsen. Generelt er det slik at jo høyere versjon av SSL/TLS, jo sikrere er den, forutsatt at du også velger riktig krypteringssett (høyere versjoner av TLS tilbyr også bruk av krypteringssett som anses som bedre). (SSLv2 regnes som usikker.) I tillegg faller ikke SSL inn under IETFs virkeområde. For eksempel måtte TLS renegotiation fix ettermonteres for SSLv3 (selv om SSL/TLS-stabler måtte oppdateres uansett). Du kan også være interessert i dette svaret:
  • Hva skjer på ledningen når en TLS / LDAP- eller TLS / HTTP-tilkobling er satt opp?[Stackoverflow] Merk at noen mennesker motsetter seg SSL og TLS som forskjellen mellom " SSL / TLS ved tilkobling " og " oppgradering til TLS " (etter litt samtale ved hjelp av applikasjonsprotokollen). Til tross for at noen av disse svarene fikk relativt mange stemmer, er dette feil. Denne feilen forplantes av det faktum at visse applikasjoner, som Microsoft Outlook, tilbyr to konfigurasjonsalternativer kalt "SSL" og "TLS" for SMTP / IMAP-konfigurasjon når de egentlig mener "SSL / TLS ved tilkobling" og "oppgradering til TLS". (Det samme gjelder JavaMail-biblioteket, tror jeg.) RFC-ene som snakker om STARTTLS ble skrevet da TLS allerede var en offisiell RFC, det er derfor de bare snakker om å oppgradere forbindelsen til TLS. I praksis, hvis du tilpasser konfigurasjonen av e-postklienten din for å tvinge den til å bruke SSLv3 i stedet for TLS (ikke noe jeg generelt vil anbefale), er det fortsatt sannsynlig å kunne oppgradere til SSL / TLS ved hjelp av STARTTLS med en SSLv3-tilkobling, ganske enkelt fordi det handler mer om driftsmodus enn versjonen av SSL / TLS og / eller krypteringssuitene. Det finnes også en variant av HTTP der oppgraderingen til SSL/TLS gjøres innenfor HTTP-protokollen (tilsvarende STARTTLS i LDAP/SMTP). Dette er beskrevet i RFC 2817. Så vidt jeg vet brukes dette nesten aldri (og det er ikke det som brukes av https:// i nettlesere). Den viktigste relevante delen av denne RFC-en er avsnittet om CONNECT for HTTP-proxy-servere (dette brukes av HTTP-proxy-servere til å videresende HTTPS-forbindelser).
Kommentarer (4)

SSL VS TLS

Begrepene SSL og TLS brukes ofte om hverandre eller i forbindelse med hverandre (TLS/SSL), men den ene er faktisk forgjengeren til den andre - SSL 3.0 tjente som grunnlag for TLS 1.0, som derfor noen ganger omtales som SSL 3.1.

Hvilken er sikrere SSL eller TLS

Når det gjelder sikkerhet, anses de begge som like sikre.

Hovedforskjellen er at mens SSL-tilkoblinger begynner med sikkerhet og fortsetter direkte til sikret kommunikasjon, begynner TLS-tilkoblinger først med et usikkert "hei" til serveren og bytter først til sikret kommunikasjon etter at håndtrykket mellom klienten og serveren er vellykket. Hvis TLS-håndtrykket av en eller annen grunn mislykkes, opprettes forbindelsen aldri.

(SSL og TLS vs HTTP)

HTTP-protokollen brukes til å be om og motta dataene og https der ' s ' er ingenting annet enn sikker SSL som gjør at http-protokollforespørselen og mottaksaktiviteten er kryptert slik at ingen mellommannangriper lett kan få tak i dataene.

Hvis verken SSL eller TLS brukes sammen med HTTP

er forbindelsen din med webserveren ukryptert, og alle dataene sendes i klartekst, slik at enhver angriper kan få tak i og se dataene.

så du bør bruke SSL eller TLS

vel, begge er de samme, men TLS er mer utvidbar og håper å få mer støtte i fremtiden og TLS er bakoverkompatibel.

Kommentarer (3)