Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 12403|Отговор: 1

[Изграждане на знания за уебсайт] HTTPS Тези неща (1) HTTPS принцип (преиздание)

[Копирай линк]
Публикувано в 24.12.2015 г. 10:56:18 ч. | | |
Клин
Преди няколко дни публикува Rumor Crusher: "Ще застраши ли интернет достъпът с обществен WiFi сигурността на банковите сметки? Статията въвежда някои ситуации при използването на HTTPS за мрежово криптирано предаване, и съдейки по отговора, все още има спорове. С нарастването на популярността на интернет, приложението става все по-разпространено, а някои проблеми със сигурността на мрежата също ще привличат все по-голямо внимание от интернет потребителите. Тук ще говорим за TLS/SSL, което често наричаме HTTPS, от принципа до самото приложение, за да видим какво представлява и на какви проблеми да обърнете внимание при използване на HTTPS и свързаните с него техники за сигурност.
Киберсигурността е цялостно събитие, което включва сигурността на персонални компютри, протоколи, предаване на данни и компании и уебсайтове за разработка на софтуер. Надявам се, че като постепенно обяснявам проблемите, свързани със сигурността, в бъдеще, повече хора ще могат да разберат мрежовата сигурност и да използват мрежата по-безопасно.
Статията ще бъде дълга и се планира засега да бъде разделена на три части:
Първата част основно описва принципа на HTTPS; Втората част основно описва процеса на проверка на SSL сертификата и някои предпазни мерки за използване. Третата част представя някои случаи на HTTPS атаки.
1. Какво е HTTPS?
Преди да говорим за HTTPS, нека поговорим за това какво е HTTP – протокол, който обикновено използваме при сърфиране в интернет. Данните, предавани от HTTP протокола, са некриптирани, тоест в открит текст, затова е много несигурно да се предава лична информация чрез HTTP протокола. За да гарантира, че тези частни данни могат да бъдат криптирани и предавани, Netscape проектира SSL (Secure Sockets Layer) протокол, който криптира данните, предавани от HTTP протокола, с което се ражда HTTPS. Настоящата версия на SSL е 3.0, дефинирана в RFC 6101 от IETF (Internet Engineering Task Force), а след това IETF обнови SSL 3.0, което доведе до TLS (Transport Layer Security) 1.0, дефинирана в RFC 2246. Всъщност нашият настоящ HTTPS е TLS протоколът, но тъй като SSL се появи сравнително рано и все още се поддържа от настоящите браузъри, SSL все още е синоним на HTTPS, но дали е TLS или SSL е нещо от миналия век, последната версия на SSL е 3.0, и TLS ще продължи да ни предоставя криптиращи услуги и в бъдеще. Настоящата версия на TLS е 1.2, дефинирана в RFC 5246, и все още не е широко използвана.
За тези, които се интересуват от история, можете да се обърнете към http://en.wikipedia.org/wiki/Transport_Layer_Security, който съдържа подробно описание на TLS/SSL.
2. Сигурен ли е HTTPS?
Отговорът е да, безопасно е. През следващите седмици Google ще активира HTTPS за всички локални домейни по света, потребителите ще трябва само да влязат с Google акаунта си преди търсене, а всички операции по търсене ще бъдат криптирани чрез TLS протокола, вижте: http://thenextweb.com/google/2012/03/05/google-calls-for-a-more-secure-web-expands-ssl-encryption-to-local-domains/。
3. Как работи HTTPS
HTTPS изисква ръкостискане между клиента (браузъра) и сървъра (уебсайта) преди предаване на данни, а информацията за пароли и на двете страни се установява по време на процеса на ръкостискане. TLS/SSL протоколът не е просто набор от криптирани протоколи за предаване, а и произведение на изкуството, внимателно проектирано от художници, използвайки асиметрично криптиране, симетрично криптиране и HASH алгоритми. Простото описание на процеса на ръкостискане е следното:

  • Браузърът изпраща набор от правила за криптиране, които поддържа, на уебсайта.
  • Уебсайтът избира набор от криптиращи алгоритми и HASH алгоритми от тях и изпраща своята идентичност обратно към браузъра под формата на сертификат. Сертификатът съдържа информация като адреса на уебсайта, публичния ключ за криптиране и издателя на сертификата.
  • След получаване на сертификат за уебсайт, браузърът прави следното:
  • Проверете легитимността на сертификата (дали органът, издаващ сертификата, е легитимен, дали адресът на уебсайта, съдържащ се в сертификата, е същият като адреса, който се посещава и т.н.), ако сертификатът е доверен, в лентата на браузъра ще се появи малка ключалка, в противен случай ще се появи подсказка, че сертификатът не е доверен.
  • Ако сертификатът е доверен или ако потребителят приеме недоверен сертификат, браузърът генерира случаен брой пароли и ги криптира с публичния ключ, предоставен в сертификата.
  • Съобщението за ръкостискане се изчислява с помощта на договорения HASH, а съобщението се криптира с генерирания случаен номер и накрая цялата предварително генерирана информация се изпраща към уебсайта.
   4. След получаване на данните от браузъра, уебсайтът прави следното:
  • Използвайте собствения си частен ключ, за да декриптирате паролата, използвайте паролата, за да декриптирате съобщението за ръкостискане, изпратено от браузъра, и проверете дали HASH-ът е същият като този, изпратен от браузъра.
  • Съобщение за ръкостискане се криптира с парола и се изпраща към браузъра.
   5. Браузърът декриптира и изчислява HASH-а на съобщението за ръкостискане, ако е съвместимо с HASH-а, изпратен от сървъра, процесът на ръкостискане приключва и след това всички комуникационни данни ще бъдат криптирани от случайната парола, генерирана от предишния браузър и използвайки алгоритъма за симетрично криптиране.

Тук браузърът и уебсайтът си изпращат криптирано съобщение за ръкостискане и проверяват, за да се уверят, че и двете страни са получили една и съща парола, могат да криптират и декриптират данните нормално, както и да направят тест за последващото предаване на реални данни. Освен това, алгоритмите за криптиране и HASH, които често се използват от HTTPS, са следните:
  • Асиметрични алгоритми за криптиране: RSA, DSA/DSS
  • Симетрични алгоритми за криптиране: AES, RC4, 3DES
  • HASH алгоритъм: MD5, SHA1, SHA256
Сред тях асиметричният алгоритъм за криптиране се използва за криптиране на генерираната парола по време на процеса на ръкостискане, симетричният алгоритъм за криптиране на реалните предавани данни и алгоритъмът HASH за проверка на целостта на данните. Тъй като паролата, генерирана от браузъра, е ключът към криптирането на всички данни, тя се криптира чрез асиметричен алгоритъм по време на предаване. Алгоритъмът за асиметрично криптиране генерира публични и частни ключове, публичните ключове могат да се използват само за криптиране на данни, така че могат да се предават по желание, а частните ключове на уебсайта се използват за декриптиране на данните, така че сайтът ще пази частния си ключ много внимателно, за да предотврати изтичане.
Всяка грешка по време на процеса на TLS ръкостискане може да прекъсне криптираната връзка, предотвратявайки предаването на лична информация. Именно защото HTTPS е много сигурен, нападателите не могат да намерят откъде да започнат, затова използват фалшиви сертификати, за да заблудят клиентите и да получават информация от открит текст, но тези методи могат да бъдат идентифицирани, за което ще говоря в следваща статия. Въпреки това, през 2010 г. експерти по сигурност откриха уязвимост при обработката на протокола TLS 1.0: http://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/ всъщност този метод за атака, наречен BEAST, беше открит от експерти по сигурността още през 2002 г., но не беше оповестен публично. Microsoft и Google са оправили тази уязвимост. Виж: http://support.microsoft.com/kb/2643584/en-us https://src.chromium.org/viewvc/chrome?view=rev&revision=90643
Опростената версия на HTTPS работи и при симетрично криптиране срещу асиметрично криптиране.




Предишен:Стъпка по стъпка конфигурация за ASP.NET уеб приложения, които използват HTTPS
Следващ:Много красива кутия за съобщения SweetAlert
 Хазяин| Публикувано в 19.04.2018 г. 11:09:21 ч. |
Подробно обяснение на различни параметри на HTTP протокола
http://www.itsvse.com/thread-3704-1-1.html
(Източник: Architect_Programmer)
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com