Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 12403|Răspunde: 1

[Cunoștințe despre construirea site-ului] HTTPS Aceste lucruri (1) Principiul HTTPS (Reprint)

[Copiază linkul]
Postat pe 24.12.2015 10:56:18 | | |
Pană
Zvonul a fost lansat de Crusher acum câteva zile: "Va pune accesul la Internet prin WiFi public securitatea conturilor bancare? Articolul introduce unele situații legate de utilizarea HTTPS pentru transmisia criptată în rețea și, judecând după răspuns, există încă dispute. Pe măsură ce Internetul devine tot mai popular, aplicația devine tot mai răspândită, iar unele probleme legate de securitatea rețelei vor atrage, de asemenea, tot mai multă atenție din partea internauților; aici vom vorbi despre TLS/SSL, ceea ce numim adesea HTTPS, de la principiu până la aplicația propriu-zisă, pentru a vedea ce este și ce probleme trebuie să urmărești atunci când folosești HTTPS și tehnici de securitate conexe.
Securitatea cibernetică este un eveniment holistic care implică securitatea calculatoarelor personale, a protocoalelor, transmiterii datelor și a companiilor și site-urilor web de dezvoltare software. Sper ca, explicând treptat problemele legate de securitate în viitor, mai mulți oameni să poată înțelege securitatea rețelei, astfel încât să poată folosi rețeaua mai în siguranță.
Articolul va fi lung și este planificat să fie împărțit în trei părți pentru moment:
Prima parte descrie în principal principiul HTTPS; A doua parte descrie în principal procesul de verificare a certificatelor SSL și unele precauții pentru utilizare. A treia parte prezintă câteva exemple de atacuri HTTPS.
1. Ce este HTTPS?
Înainte să vorbim despre HTTPS, să vorbim despre ce este HTTP, un protocol pe care îl folosim de obicei când navigăm pe internet. Datele transmise de protocolul HTTP sunt necriptate, adică în text clar, astfel încât este foarte nesigură transmiterea informațiilor private folosind protocolul HTTP. Pentru a asigura că aceste date private pot fi criptate și transmise, Netscape a proiectat protocolul SSL (Secure Sockets Layer) pentru a cripta datele transmise de protocolul HTTP, dând astfel naștere HTTPS. Versiunea actuală a SSL este 3.0, definită în RFC 6101 de către IETF (Internet Engineering Task Force), iar apoi IETF a actualizat SSL 3.0, rezultând TLS (Transport Layer Security) 1.0, definit în RFC 2246. De fapt, HTTPS-ul nostru actual este protocolul TLS, dar pentru că SSL a apărut relativ devreme și este încă suportat de browserele actuale, SSL este încă sinonim cu HTTPS, dar fie că este TLS sau SSL, este o chestiune de secolul trecut, ultima versiune de SSL este 3.0, iar TLS va continua să ne ofere servicii de criptare în viitor. Versiunea actuală a TLS este 1.2, definită în RFC 5246, și nu este încă folosită pe scară largă.
Pentru cei interesați de istorie, puteți consulta http://en.wikipedia.org/wiki/Transport_Layer_Security, care are o descriere detaliată a TLS/SSL.
2. Este HTTPS sigur?
Răspunsul este da, este sigur. În săptămânile următoare, Google va activa HTTPS pentru toate domeniile locale din lume, utilizatorii trebuie doar să se autentifice cu contul Google înainte de a căuta, iar toate operațiunile de căutare vor fi criptate folosind protocolul TLS, vezi: http://thenextweb.com/google/2012/03/05/google-calls-for-a-more-secure-web-expands-ssl-encryption-to-local-domains/。
3. Cum funcționează HTTPS
HTTPS necesită o strângere de mână între client (browser) și server (site) înainte de a transmite datele, iar informațiile de parolă ale ambelor părți vor fi stabilite în timpul procesului de strângere de mână. Protocolul TLS/SSL nu este doar un set de protocoale de transmisie criptate, ci și o operă de artă atent concepută de artiști, folosind criptare asimetrică, criptare simetrică și algoritmi HASH. O descriere simplă a procesului de strângere de mână este următoarea:

  • Browserul trimite un set de reguli de criptare pe care le suportă către site-ul web.
  • Site-ul selectează un set de algoritmi de criptare și algoritmi HASH din aceștia și trimite informațiile de identitate înapoi către browser sub forma unui certificat. Certificatul conține informații precum adresa site-ului, cheia publică de criptare și emitentul certificatului.
  • După obținerea certificatului site-ului, browserul face următoarele:
  • Verificați legitimitatea certificatului (dacă autoritatea care emite certificatul este legitimă, dacă adresa site-ului conținută în certificat este aceeași cu adresa vizitată etc.), dacă certificatul este de încredere, un mic blocaj va fi afișat în bara browserului, altfel va apărea o notificare că certificatul nu este de încredere.
  • Dacă certificatul este de încredere sau dacă utilizatorul acceptă un certificat neîncrezător, browserul generează un număr aleatoriu de parole și le criptează cu cheia publică prevăzută în certificat.
  • Mesajul de strângere de mână este calculat folosind HASH-ul agreat, iar mesajul este criptat cu numărul aleatoriu generat, iar în final toate informațiile generate anterior sunt trimise către site.
   4. După ce primesc datele din browser, site-ul face următoarele:
  • Folosește propria cheie privată pentru a decripta parola, folosește parola pentru a decripta mesajul de handshake trimis de browser și verifică dacă HASH-ul este același cu cel trimis de browser.
  • Un mesaj de strângere de mână este criptat cu o parolă și trimis către browser.
   5. Browserul decriptează și calculează HASH-ul mesajului de handshake, dacă este consistent cu HASH-ul trimis de server, procesul de handshake se încheie, iar toate datele de comunicare vor fi criptate prin parola aleatorie generată de browserul anterior și folosind algoritmul de criptare simetrică.

Aici, browserul și site-ul își trimit un mesaj de strângere de mână criptat unul altuia și verifică, pentru a se asigura că ambele părți au obținut aceeași parolă și pot cripta și decripta datele în mod normal, și pot efectua un test pentru transmiterea ulterioară a datelor reale. În plus, algoritmii de criptare și HASH utilizați frecvent de HTTPS sunt următorii:
  • Algoritmi de criptare asimetrică: RSA, DSA/DSS
  • Algoritmi de criptare simetrică: AES, RC4, 3DES
  • Algoritmul HASH: MD5, SHA1, SHA256
Printre acestea, algoritmul de criptare asimetrică este folosit pentru a cripta parola generată în timpul procesului de handshake, algoritmul de criptare simetrică este folosit pentru a cripta datele reale transmise, iar algoritmul HASH este folosit pentru a verifica integritatea datelor. Deoarece parola generată de browser este cheia criptării întregii date, aceasta este criptată folosind un algoritm asimetric de criptare în timpul transmisiunii. Algoritmul de criptare asimetrică va genera chei publice și private, cheile publice pot fi folosite doar pentru criptarea datelor, astfel încât acestea pot fi transmise după bunul plac, iar cheile private ale site-ului sunt folosite pentru decriptarea datelor, astfel încât site-ul își păstrează cheia privată cu mare grijă pentru a preveni scurgerile.
Orice eroare în timpul procesului de strângere TLS poate întrerupe conexiunea criptată, împiedicând transmiterea informațiilor private. Tocmai pentru că HTTPS este foarte sigur, atacatorii nu găsesc un punct de plecare, așa că folosesc certificate false pentru a induce în eroare clienții și a obține informații în text clar, dar aceste metode pot fi identificate, despre care voi vorbi într-un articol ulterior. Totuși, în 2010, experții în securitate au descoperit o vulnerabilitate în modul de utilizare a protocolului TLS 1.0: http://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/, de fapt, această metodă de atac numită BEAST a fost descoperită de experții în securitate încă din 2002, dar nu a fost făcută publică. Microsoft și Google au remediat această vulnerabilitate. Vezi: http://support.microsoft.com/kb/2643584/en-us https://src.chromium.org/viewvc/chrome?view=rev&revision=90643
Versiunea simplificată a HTTPS funcționează și în Criptare Simetrică vs. Criptare Asimetrică.




Precedent:Configurare pas cu pas pentru ASP.NET aplicații web care folosesc HTTPS
Următor:O cutie de mesaje de alertă foarte frumoasă SweetAlert
 Proprietarul| Postat pe 19.04.2018 11:09:21 |
Explicație detaliată a diferiților parametri ai protocolului HTTP
http://www.itsvse.com/thread-3704-1-1.html
(Sursa: Architect_Programmer)
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com