Знаете ли вы, что 68% интернет-пользователей считают, что действующие законы о защите их прав недостаточно хороши? Каждый раз, когда Google вводит новое предпочтение, Интернет принимает, вынужден это отметить. Нечто подобное произошло, когда Google объявил, что веб-сайты с SSL-сертификатом / протоколом HTTPS будут предпочтительнее в результатах поиска. Я попытаюсь осветить основы протоколов HTTP и HTTPS.
Прежде чем мы углубимся в понимание протокола HTTP и HTTPS, давайте попробуем понять значение слова «протокол».
Содержание:
- Что такое протокол?
- Что такое HTTP?
- Что такое HTTPS?
- В чем важность HTTPS?
- Уровни шифрования и шифрования
- Как это происходит, когда вы запрашиваете открыть сайт в браузере?
- Что происходит при запросе URL-адреса веб-сайта по протоколу HTTP?
- Выбор между HTTP и HTTPS
- HTTPS звучит здорово. Что еще вы должны знать об этом?
- Что поставлено на карту, если вы не перейдете на HTTPS?
- Некоторые часто задаваемые вопросы
- Популярные заблуждения или мифы
- Подробнее о веб-push-уведомлениях
Что такое протокол?
Протокол — это набор правил, которые мы используем для определенных целей. В текущем сценарии, когда мы говорим о протоколах, речь идет о связи — о том, как мы разговариваем друг с другом. Например, программа чтения новостей говорит по-английски, и, поскольку вы понимаете английский, вы сможете понять. Английский — это протокол.
В тот момент, когда программа чтения новостей начинает говорить на языке, который вы не понимаете, протокол превосходит свое предназначение. Таким образом, нам нужно, чтобы обе стороны согласились с набором правил для общения. Протокол в данном случае предназначен для связи.
Теперь, говоря о сети, в частности, для общения используются несколько протоколов. В первую очередь для конечных пользователей наиболее важными и заметными протоколами являются HTTP и HTTPS. Хотя есть и много других протоколов, протоколы HTTP и HTTPS обслуживают большую часть населения.
Что такое HTTP?
HTTP — это протокол передачи гипертекста. Проще говоря — Правила отправки и получения текстовых сообщений. Как мы все знаем, компьютеры работают на языке 1 и 0, т. е. двоичном языке. Следовательно, потенциально каждый набор из 1 и 0 может что-то построить, это может быть слово.
Допустим, я хочу написать «а». Теперь, если 0 обозначает «a», 1 обозначает «b», а 01 обозначает «c», я могу сделать вывод, что комбинация из 0 и 1 также может составлять слово. В этом случае текст уже составлен и отправляется по проводам. Компьютер работает на многих языках — чисто двоичном, текстовом и некоторых других форматах, таких как байт-коды. Здесь передается текст. Я подчеркиваю «текст», потому что этот текст интерпретируется браузером, и в тот момент, когда браузер интерпретирует его, он становится гипертекстом, а протокол, который передает текст, называется протоколом передачи гипертекста — HTTP.
Используя HTTP, вы можете передавать изображения, текст и даже звук, но не видео.
Что такое HTTPS?
Hyper Text Transfer Protocol Secure (HTTPS) — это защищенная версия HTTP, протокола, по которому данные передаются между вашим браузером и веб-сайтом, к которому вы подключены. «S» в конце HTTPS означает «безопасный». Это означает, что все коммуникации между вашим браузером и веб-сайтом зашифрованы. HTTPS часто используется для защиты конфиденциальных онлайн-транзакций, таких как онлайн-банкинг и онлайн-формы покупок.
В чем важность HTTPS?
Мы согласились с тем, что то, что переносится из одной точки в другую, — это текст. Чтобы понять, почему протокол HTTPS, мы сначала должны знать, как работают маршрутизаторы Wi-Fi.
Допустим, вы находитесь в аэропорту, и вы подключаетесь к Wi-Fi, который является собственностью третьей стороны. Теперь, когда вы общаетесь по HTTP, текст передается их маршрутизатором, что такое маршрутизатор (роутер), читайте тут. И если я перейду к более низкой версии маршрутизатора, я могу с комфортом проверить и прочитать текст, который передается. Там может быть пароль, который я могу использовать, чтобы войти на сайт вашего банка и сделать мошенническую операцию! Суть в том, что это принципиально небезопасно. Это называется человек в середине атаки.
И вот почему нам нужен https, когда кажется, что HTTP достаточно.
Теперь, чтобы сохранить наши данные от таких атак, нам нужно зашифровать эти данные.
Фактически, чтобы внедрить расширенное безопасное соединение для пользователей, в 2014 году поисковый гигант объявил HTTPS в качестве сигнала для ранжирования веб-ресурсов. Соответственно все стали массового переходить на защищённый протокол.
Уровни шифрования и шифрования
Шифрование — это простым языком, скрывающий информацию. Есть разные способы сделать это. Вы, наверное, слышали эти термины — 128-битное шифрование HTTPS и 64-битное шифрование
HTTPS. 128-битное шифрование — это метод высокого шифрования, и его очень сложно расшифровать (декодировать). В случае HTTPS, когда данные передаются по проводам, человек посередине может все еще знать, что передается, но не может понять это, поскольку данные зашифрованы. Только браузер расшифровывает и показывает его, а сервер расшифровывает и использует его для транзакций.
Для любопытных — также есть фильм о шифровании, Imitation Games. Весь сюжет фильма был основан на расшифровке немецких кодексов, которые должны были реформировать весь ход войны. Эти коды было очень трудно расшифровать, но Алан Тьюринг, наконец, смог это сделать.
Как это происходит, когда вы запрашиваете открыть сайт в браузере?
Чтобы понять это, давайте представим, что где-то находится один Сервер, обслуживающий все запросы для одного домена. Теперь, когда я набираю xyz.com, это сервер, к которому я подключаюсь, получаю данные и отображаю их в браузере.
Для упрощения представьте, что доменное имя google.com транслируется с одного сервера. Там находится один компьютер, подключенный к Интернету, и в тот момент, когда вы набираете google.com в своем браузере, вы подключаетесь к этому компьютеру, выбираете данные с этого компьютера и отображаете их в браузере. Если вы сохранили свою фотографию, она будет загружена на этот компьютер. Теперь, если вы хотите увидеть эту картинку, перейдите по адресу google.com/show-me-my-picture, где она будет перенесена с машины в браузер для показа вам.
Этот процесс не может быть завершен, если я не могу связаться с этой конкретной машиной. Для этого у каждой машины есть адрес (как у нас есть номер мобильного телефона), он называется IP-адресом, а у каждого домена есть IP-карта.
В тот момент, когда вы вводите этот удобный для пользователя URL-адрес — google.com, он преобразует это имя пользователя в IP-адрес и подключается к маршрутизатору для связи с конкретной линией обслуживания, связанной с этим URL-адресом. Как только он достигает сервера, он вызывает запрос того, что необходимо. Он представлен как google.com/s=, что помогает пользователю проще понять сделанный им запрос. В результате сервер выдает ему результаты в соответствии с вашим запросом, который отображается в браузере.
Что происходит при запросе URL-адреса веб-сайта по протоколу HTTP?
В качестве первого шага, HTTP — это поиск сервера, и как только маршрут связи установлен, сервер отправляет текст в браузер. Этот текст может быть либо в чистом виде, либо в зашифрованном виде, который затем отображается браузером или используется для любых целей, для которых он предназначен.
Поскольку должно быть измерение этого коэффициента сложности, мы понимаем, что чем больше число битов, тем сложнее его расшифровать. Однако это только увеличивает уровень сложности, делая его очень трудным для расшифровки, но не невозможным.
Выбор между HTTP и HTTPS
Все и вся-это личное. Если вы ищете “как установить сертификат SSL», этот поиск будет частным для вас, не так ли? Если вы просматриваете или ищете продукт, читаете статью, вы обычно не хотите, чтобы другие знали об этом. Как конечный пользователь, я хотел бы сохранить его в тайне. Есть вещи, которые я не хочу держать в секрете, и для них я могу использовать HTTP. Однако для личной информации, банков и транснациональной информации HTTPS стал стандартом.
HTTPS звучит здорово. Что еще вы должны знать об этом?
Нельзя отрицать тот факт, что конфиденциальность имеет свою цену.
Есть пара минусов:
- HTTPS-запросы занимают больше времени для обработки.
- Поскольку для его обработки требуется больше времени, ему требуется больше оборудования — используемого вами сервера. Это также означает дополнительные расходы
Принимая во внимание, что для HTTP вы используете меньше энергии по сравнению с HTTPS, так как связь происходит быстрее (без шифрования и дешифрования). Однако я не буду ссылаться на это как на ограничение HTTPS. Это очень субъективно и лично, я считаю, что это очень низкая цена, которую мы платим, чтобы обеспечить нашу конфиденциальность.
Идея создания безопасной сети давно существует. Создание безопасной сети в качестве повестки дня управляется такими компаниями, как Google, Facebook, Akamai и т.д.
Как я уже говорил, это в первую очередь по следующим двум причинам:
- Пользовательские данные и конфиденциальность пользователя. Использование HTTPS гарантирует, что вы, как разработчик, цените пользовательские данные, конфиденциальность пользователя и его безопасность.
- Защита ваших данных. Как разработчик, мы никогда не захотим отдавать наши критически важные данные злоумышленникам.
Что поставлено на карту, если вы не перейдете на HTTPS?
Вот некоторые из функций, которые теперь доступны только по HTTPS.
- GeoLocation: вы больше не можете искать местоположение пользователя, если вы находитесь на HTTP
- Push-уведомления через Интернет: Push-уведомления доступны только по HTTPS.
- GetUserMedia: вы больше не можете запускать разрешения на использование камеры / микрофона пользователя, если вы используете HTTP
- HTTP/2: все основные браузеры, теперь поддерживают HTTP/2 для HTTPS.
Скоро будут удалены:
- AppCache: функция, которая позволяет разработчикам кэшировать содержимое в браузере и сделать его доступным для просмотра в автономном режиме, скоро будет ограничена только сайтами HTTPS.
- Расширения для зашифрованных носителей: возможность управления воспроизведением защищенного контента.
Тип сертификата, который вы выбираете, может оказать влияние, как с точки зрения безопасности, так и с точки зрения взаимодействия с пользователем. Подумайте, как разные сертификаты влияют на внешний вид вашего веб-сайта в адресной строке веб-браузера.
Некоторые часто задаваемые вопросы
- Какова “стоимость » переноса веб-сайта с HTTP на HTTPS?
Это типичный вопрос, но, боюсь, на него нет ответа. Стоимость будет зависеть только от количества передаваемых данных. Есть много переменных, которые будут влиять на стоимость. Здесь, если мы говорим о банковских данных, вы должны нести расходы, какими бы значительными или незначительными они ни были.
Весь расчет стоимости сам по себе очень субъективен, и у меня действительно нет точных цифр для этого.
- Влияет ли пребывание на HTTPS на время загрузки вашего сайта?
Да, конечно влияет и не в лучшую сторону.
- Почему веб-push-уведомления нуждаются в SSL?
Да, веб-push-уведомления существуют уже некоторое время и могут работать только на веб-сайтах, работающих по протоколу HTTPS. Прежде чем мы ответим на этот вопрос, давайте поймем, как это действительно работает.
Причина, по которой веб — push-уведомления работают только по протоколу HTTPS, заключается в том, что данные, которые передаются и принимаются, являются частными данными. Для обеспечения конфиденциальности он поддерживается только по протоколу HTTPS.
Уведомления в основном являются личными для пользователей. Мы определенно хотим, чтобы эта связь была безопасной. В этом конкретном случае сервер может пинговать браузер.
Когда была написана книга протоколов, упоминалось, что HTTP-это протокол без подключения. Это означает, что сервер, сидящий в дата-центре, не может ничего сделать, пока браузер не поднимет / не сделает запрос. И как только ответ будет дан, браузер решит, хочет ли он что-то сделать с этим или нет. Это полностью решение браузера, сервер не может приказать браузеру предпринимать действия. Идея случайного сервера, управляющего вашим браузером или вашим экраном/машиной, пугает. Именно для того, чтобы предотвратить такую возможность, HTTP является и продолжает оставаться протоколом без подключения.
Популярные заблуждения или мифы
- Мой сайт не является транзакционным по своей природе. Почему я должен работать по протоколу HTTPS?
- SSL-сертификаты стоят дорого
- Миграция по протоколу HTTPS с HTTP сильно повлияет на производительность сайта
- Влияние на других третьих лиц.
Посмотрите видео с Саммита Progressive Web App, чтобы разрушить все эти заблуждения.
Подробнее о веб-push-уведомлениях
Интересно, что в случае веб-push-уведомлений сервер фактически передает данные в браузер. Но он сохраняется таким образом, что сервер отправляет только сообщение в браузер, сообщая, что вас ждет уведомление — вот и все. Вот пошаговый процесс того, что на самом деле происходит.
- Сервер отправляет сообщение в браузер
- Затем включается протокол, запрашивающий данные. Эти данные могут быть очень персонализированными. Возможно, я посылаю вам сообщение: «Вы совершили сделку на сумму XX».
- Уведомление извлекается и отображается конечному пользователю.
Если я должен выбрать протокол сегодня, который потенциально может быть очень персонализированным (поскольку уведомления персонализированы), я определенно хотел бы сделать его безопасным.
Может ли Web Push работать по HTTP? Конечно.
Должен ли он работать на HTTP? Строгое Нет-Нет.
Как вам статья?