Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 12403|Svar: 1

[Viden om hjemmesideopbygning] HTTPS De ting (1) HTTPS-princippet (genoptryk)

[Kopier link]
Opslået på 24/12/2015 10.56.18 | | |
Kile
Rygte Crusher udgav for et par dage siden: "Vil internetadgang med offentligt WiFi bringe bankkontienes sikkerhed i fare? Artiklen introducerer nogle situationer i brugen af HTTPS til netværkskrypteret transmission, og ud fra svaret er der stadig tvister. Efterhånden som internettet bliver mere og mere populært, bliver applikationen mere og mere udbredt, og nogle netværkssikkerhedsproblemer vil også tiltrække mere og mere opmærksomhed fra netbrugere; her vil vi tale om TLS/SSL, som vi ofte kalder HTTPS, fra princippet til selve applikationen for at se, hvad det er, og hvilke problemer man skal være opmærksom på, når man bruger HTTPS og relaterede sikkerhedsteknikker.
Cybersikkerhed er en helhedsorienteret begivenhed, der involverer sikkerheden af personlige computere, protokoller, dataoverførsel samt softwareudviklingsvirksomheder og hjemmesider. Jeg håber, at ved at forklare sikkerhedsrelaterede problemer lidt efter lidt i fremtiden, kan flere mennesker forstå netværkssikkerhed, så de kan bruge netværket mere sikkert.
Artiklen bliver lang, og det er planlagt at blive opdelt i tre dele indtil videre:
Den første del beskriver hovedsageligt princippet bag HTTPS; Den anden del beskriver hovedsageligt processen med SSL-certifikatverifikation og nogle forholdsregler for brug. Den tredje del præsenterer nogle tilfælde af HTTPS-angreb.
1. Hvad er HTTPS?
Før vi taler om HTTPS, lad os tale om, hvad HTTP er, som er en protokol, vi normalt bruger, når vi surfer på nettet. De data, der transmitteres via HTTP-protokollen, er ukrypterede, altså i klartekst, så det er meget usikkert at overføre privat information via HTTP-protokollen. For at sikre, at disse private data kan krypteres og transmitteres, designede Netscape SSL (Secure Sockets Layer)-protokollen til at kryptere de data, der sendes via HTTP-protokollen, hvilket gav anledning til HTTPS. Den nuværende version af SSL er 3.0, som er defineret i RFC 6101 af IETF (Internet Engineering Task Force), og derefter opgraderede IETF SSL 3.0, hvilket resulterede i TLS (Transport Layer Security) 1.0, defineret i RFC 2246. Faktisk er vores nuværende HTTPS TLS-protokollen, men fordi SSL dukkede op relativt tidligt og stadig understøttes af nuværende browsere, er SSL stadig synonymt med HTTPS, men uanset om det er TLS eller SSL, er det noget fra det sidste århundrede, den sidste version af SSL er 3.0, og TLS vil fortsat levere krypteringstjenester til os i fremtiden. Den nuværende version af TLS er 1.2, defineret i RFC 5246, og er endnu ikke bredt brugt.
For dem, der er interesserede i historie, kan du se http://en.wikipedia.org/wiki/Transport_Layer_Security, som har en detaljeret beskrivelse af TLS/SSL.
2. Er HTTPS sikkert?
Svaret er ja, det er sikkert. I de kommende uger vil Google aktivere HTTPS for alle lokale domæner verden over, brugere behøver kun at logge ind med deres Google-konto, før de kan søge, og alle søgeoperationer vil blive krypteret med TLS-protokollen, se: http://thenextweb.com/google/2012/03/05/google-calls-for-a-more-secure-web-expands-ssl-encryption-to-local-domains/。
3. Hvordan HTTPS fungerer
HTTPS kræver et håndtryk mellem klienten (browseren) og serveren (hjemmesiden), før data kan overses, og adgangskodeoplysningerne for begge parter vil blive etableret under håndtryksprocessen. TLS/SSL-protokollen er ikke blot et sæt krypterede transmissionsprotokoller, men også et kunstværk omhyggeligt designet af kunstnere, der bruger asymmetrisk kryptering, symmetrisk kryptering og HASH-algoritmer. En simpel beskrivelse af håndtryksprocessen er som følger:

  • Browseren sender et sæt krypteringsregler, som den understøtter, til hjemmesiden.
  • Hjemmesiden vælger et sæt krypteringsalgoritmer og HASH-algoritmer ud fra dem og sender sine identitetsoplysninger tilbage til browseren i form af et certifikat. Certifikatet indeholder oplysninger som webadressen, krypteringsnøglen og certifikatets udsteder.
  • Efter at have opnået et webstedscertifikat gør browseren følgende:
  • Verificér certifikatets legitimitet (om myndigheden, der udsteder certifikatet, er legitim, om webadressen i certifikatet er den samme som den adresse, der besøges, osv.), hvis certifikatet er tillidsfuldt, vil en lille lås blive vist i browserens bjælke, ellers vil der gives en prompt om, at certifikatet ikke er tillidsfuldt.
  • Hvis certifikatet er betroet, eller hvis brugeren accepterer et ikke-betroet certifikat, genererer browseren et tilfældigt antal adgangskoder og krypterer dem med den offentlige nøgle, der er angivet i certifikatet.
  • Handshake-beskeden beregnes ved hjælp af den aftalte HASH, og beskeden krypteres med det genererede tilfældige tal, og til sidst sendes al tidligere genereret information til hjemmesiden.
   4. Efter at have modtaget dataene fra browseren gør hjemmesiden følgende:
  • Brug din egen private nøgle til at dekryptere adgangskoden, brug adgangskoden til at dekryptere håndtryksbeskeden sendt af browseren, og verificér at HASH'en er den samme som den, browseren sender.
  • En håndtryksbesked krypteres med en adgangskode og sendes til browseren.
   5. Browseren dekrypterer og beregner HASH'en af håndtryksbeskeden; hvis den er konsistent med den HASH, der sendes af serveren, afsluttes håndtryksprocessen, og alle kommunikationsdata krypteres derefter med den tilfældige adgangskode, som den forrige browser genererede, og ved hjælp af den symmetriske krypteringsalgoritme.

Her sender browseren og hjemmesiden en krypteret håndtryksbesked til hinanden og verificerer for at sikre, at begge parter har fået samme adgangskode, kan kryptere og dekryptere dataene normalt samt udføre en test for den efterfølgende overførsel af rigtige data. Derudover er de krypterings- og HASH-algoritmer, der almindeligvis bruges af HTTPS, som følger:
  • Asymmetriske krypteringsalgoritmer: RSA, DSA/DSS
  • Symmetriske krypteringsalgoritmer: AES, RC4, 3DES
  • HASH-algoritme: MD5, SHA1, SHA256
Blandt disse bruges den asymmetriske krypteringsalgoritme til at kryptere den genererede adgangskode under håndtryksprocessen, den symmetriske krypteringsalgoritme bruges til at kryptere de reelt transmitterede data, og HASH-algoritmen bruges til at verificere dataintegriteten. Da adgangskoden, som browseren genererer, er nøglen til krypteringen af alle dataene, krypteres den ved hjælp af en asymmetrisk krypteringsalgoritme under transmissionen. Den asymmetriske krypteringsalgoritme vil generere offentlige og private nøgler, offentlige nøgler kan kun bruges til at kryptere data, så de kan overføres efter behag, og hjemmesidens private nøgler bruges til at dekryptere dataene, så hjemmesiden vil opbevare sin private nøgle meget omhyggeligt for at forhindre lækage.
Enhver fejl under TLS-håndtryksprocessen kan bryde den krypterede forbindelse og forhindre overførsel af private oplysninger. Det er netop fordi HTTPS er meget sikkert, at angribere ikke kan finde et sted at starte, så de bruger falske certifikater til at narre klienter for at få klartekstinformation, men disse metoder kan identificeres, hvilket jeg vil tale om i en senere artikel. Men i 2010 opdagede sikkerhedseksperter en sårbarhed i håndteringen af TLS 1.0-protokollen: http://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/ blev denne angrebsmetode kaldet BEAST opdaget af sikkerhedseksperter allerede i 2002, men den blev ikke offentliggjort. Microsoft og Google har løst denne sårbarhed. Se: http://support.microsoft.com/kb/2643584/en-us https://src.chromium.org/viewvc/chrome?view=rev&revision=90643
Den forenklede version af HTTPS fungerer også i symmetrisk kryptering vs. asymmetrisk kryptering.




Tidligere:Trin-for-trin-konfiguration til ASP.NET webapps, der bruger HTTPS
Næste:En meget smuk beskedboks SweetAlert
 Udlejer| Opslået på 19/04/2018 11.09.21 |
Detaljeret forklaring af forskellige parametre i HTTP-protokollen
http://www.itsvse.com/thread-3704-1-1.html
(Kilde: Architect_Programmer)
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com