На форуме Mozilla Dev предлагается отказаться от HTTP в пользу HTTPS. Неужели до этого дошло? Разработчики браузеров диктуют протоколы, которые мы используем? Конечно, все во имя свободы.
Идея довольно проста. HTTP — это простой текстовый протокол. Если вы перехватили пакет TCP / IP, вы можете прочитать его полезную нагрузку. Вы также можете перехватывать пакеты, изменять их содержимое и отправлять их по пути.
Однако есть два различных аспекта проблем безопасности HTTP. Первый — это отслеживание и наблюдение. Поскольку протокол HTTP доступен для чтения, любой может узнать, что вы делаете в Интернете. Второй — это возможность фактической атаки на веб-сайт или пользователя веб-сайта с целью перехвата ценной информации, такой как пароль или пин-код.
Вы можете утверждать, что HTTP подходит для веб-сайтов, которые просто предоставляют информацию, новости, статьи и т. Д., Потому что нет обмена частной информацией. Однако аспект наблюдения заставляет многих утверждать, что даже в этом случае HTTP недостаточно хорош, потому что он позволяет агентствам обнаруживать, что вы делаете, — даже если он полностью безвреден и, кажется, мало что выдает важного.
Короче говоря, можно сделать вывод, что весь веб-трафик, каким бы незначительным он ни был, должен быть зашифрован с использованием чего-то вроде HTTPS. Это означало бы, что только клиент и сервер могут читать данные в пакетах TCP / IP, потому что у них есть соответствующие закрытые ключи для расшифровки данных. Таким образом, вы не можете читать перехваченный трафик HTTPS и, следовательно, не можете использовать его для наблюдения или для эксплойтов, если не сможете взломать шифрование.
Следовательно, отказ от HTTP. В группе Google платформы Mozilla.dev. Ричард Барнс пишет:
Чтобы побудить веб-разработчиков перейти с HTTP на HTTPS, я хотел бы предложить установить план прекращения поддержки HTTP без обеспечения безопасности. Вообще говоря, этот план повлечет за собой ограничение новых функций безопасными контекстами с последующим постепенным удалением устаревших функций из небезопасных контекстов. Наличие общей программы для отказа от HTTP делает четкое заявление для веб-сообщества о том, что время для открытого текста прошло — это говорит миру, что новый Интернет использует HTTPS, поэтому, если вы хотите использовать что-то новое, вам необходимо обеспечить безопасность.
Предлагаемый план состоит в том, что в конечном итоге весь Интернет будет работать по протоколу HTTPS, а HTTP вообще не будет использоваться.
У этого плана есть несколько проблем.
Во-первых, в настоящее время HTTPS использует сертификаты для предоставления ключей шифрования, которые обеспечивают не только шифрование, но и аутентификацию. Сертификат, выданный соответствующим органом, должен доказать, что вы являетесь тем, кем вы являетесь в сертификате. Эта аутентификация обходится недешево, и стоимость сертификата, безусловно, положит конец более случайному использованию Интернета для таких вещей, как личные домашние страницы.
Решение состоит в том, чтобы использовать самозаверяющий сертификат, который обеспечивает шифрование, но не аутентификацию. На данный момент это непростой вариант, но такие инициативы, как Let’s Encrypt от EFF, обещают услугу, которая будет предоставлять бесплатные сертификаты с некоторой автоматической проверкой домена и базой данных сертификатов. Это делает возможным использование «слегка проверенных» сертификатов, но на данный момент браузеры, как правило, выводят предупреждающие сообщения, когда вы сталкиваетесь с веб-сайтом с самозаверяющим сертификатом. Это делает сайт HTTPS, использующий самозаверяющий сертификат, более рискованным, чем сайт HTTP, который вообще не имеет шифрования.
Это сумасшедшее смешение требований к шифрованию и аутентификации ставит аутентификацию на первое место в списке проблем.
Очевидно, что прежде чем HTTPS станет нормой, нам нужно решить проблему с сертификатами.
Однако есть и другие проблемы.
Шифрование не обходится без затрат с точки зрения эффективности. Если Интернет будет зашифрован на 100%, всем устройствам придется тратить много циклов ЦП на обработку связанных чисел. Это нехорошо как для небольших устройств с недостаточной мощностью, так и для больших, сильно загруженных веб-серверов, и разработчики Mozilla, похоже, хотят навязывать универсальный подход.
У шифрования всего есть множество других незначительных недостатков. Существует проблема невозможности кэшировать зашифрованные веб-страницы, потому что каждая доставленная страница может использоваться только одним клиентом — клиентом с закрытым ключом для ее расшифровки. Многие интернет-провайдеры используют крупномасштабное кэширование для уменьшения сетевого трафика. Если бы HTTPS был нормой, кеширование было бы невозможно.
Не только Mozilla стремится сделать HTTPS транспортным протоколом Интернета. Google продвигает ту же идею разными способами, включая снижение рейтинга веб-сайтов, не использующих HTTPS.
Это шаг к сохранению свободы или навязывание иного рода утраты свободы. Можно сказать, что навязывание сертификатов каждому использованию и каждому серверу удаляет последний след анонимности из Интернета, что упрощает отслеживание агентством того, где вы посещаете, даже если не то, что вы делаете, когда попадаете туда.
Это очень сложная ситуация. Ясно, что есть ситуации, когда HTTPS важен, и есть много ситуаций, когда он в значительной степени неуместен и фактически вреден.
Для нас это не решение, которое следует оставлять разработчикам браузеров.