https (SSL) вместо http для мобильных пользователей


Я создаю себе новый веб-сайт, исходя из соображений конфиденциальности и безопасности, я подумываю о том, чтобы сделать его только https.

Это будет удобно для мобильных устройств с использованием медиа-запросов, но я обеспокоен - особенно для мобильных пользователей - увеличением пропускной способности.

Насколько это увеличит мою пропускную способность или замедлит время загрузки? Для страниц, на которых я не передаю конфиденциальную информацию, следует ли мне оставлять внешние ссылки (на библиотеку jQuery или веб-шрифт для экземпляр) в http?

Проще говоря, я читал статьи о том, что весь Интернет был бы более безопасным, если бы все было SSL, но мои фактические знания о реализации ограничены платежными шлюзами, страницами входа в систему и тому подобным. Я приношу извинения за открытый характер вопроса, но приветствуется все, даже просто простые ответы на конкретные вопросы.

Author: paulmorriss, 2012-07-11

3 answers

(Вас может заинтересовать этот связанный с этим вопрос по SO: Сделать полный сайт HTTPS/SSL? Какие проблемы с производительностью и лучшие практики все еще применяются в 2012?)

Насколько это увеличит мою пропускную способность или замедлит время загрузки?

После завершения рукопожатия шифрование выполняется с использованием симметричных ключей. Для записей SSL/TLS есть небольшие накладные расходы, но на самом деле они довольно малы (по данным инженеров Google, около 2% сети накладные расходы).

Что дорого, так это рукопожатие (как с точки зрения процессора, так и сети). Без возобновления сеанса вам придется получить сертификат сервера (около 1 КБ для сертификата с 2048-битным ключом RSA, это зависит от атрибутов). Поездки туда и обратно также могут увеличить задержку (и могут быть более серьезной проблемой на мобильных устройствах). Я предполагаю, что некоторые мобильные устройства, по крайней мере, поддерживают возобновление сеанса.

Самый большой трафик рукопожатий, который я видел, был связан с длительными сертификационными центрами список в сообщении TLS с запросом сертификата при использовании аутентификации по сертификату клиента. Это было настроено с хранилищем доверия по умолчанию (на сервере Java). Хорошая настройка сервера может избежать этой проблемы (когда вы используете аутентификацию с сертификатом клиента, вы обычно можете ограничиться несколькими центрами сертификации, которые вы готовы принять, с точки зрения сервера, вам не нужен список по умолчанию, в котором в данном случае было более 100 имен). Если вы вообще не используете аутентификацию по сертификату клиента, убедитесь, что вы не включайте его (даже необязательно), чтобы у вас не возникло этой проблемы.

Для страниц, на которых я не передаю конфиденциальную информацию, следует ли мне оставлять внешние ссылки (например, на библиотеку jQuery или веб-шрифт) в http?

Да, никогда не смешивайте контент. Это противоречит цели HTTPS. Проблема со смешанным контентом заключается в том, что вы больше не знаете, какой части страницы вы можете доверять. Это проблема пользовательского интерфейса (и мобильные браузеры уже довольно плохи с точки зрения его создания ясно, в каких условиях безопасности вы находитесь).

При необходимости вы можете использовать CDN, поддерживающие HTTPS ( API библиотек Google предоставляет https:// ссылки, например, в том числе для jQuery). Современные браузеры должны кэшировать содержимое HTTPS по умолчанию, хотя некоторые могут этого не делать, и в этом случае вы можете использовать заголовок Cache-Control: public. Вы также должны запретить кэширование конфиденциальных страниц.

 2
Author: Bruno, 2017-05-23 12:37:06

Пропускная способность не должна увеличиваться настолько сильно. При настройке https-соединения требуется немного дополнительных согласований, и, поскольку шифрование расширяет возможности до определенного размера блока, страницы могут стать немного больше.

Время загрузки может увеличиться из-за накладных расходов на шифрование страницы на вашем конце и расшифровку страницы на конце пользователя. Я не могу сказать, насколько сильно, потому что я не знаю вашего оборудования, и никто из нас не знает, насколько мощны мобильные устройства пользователя являются.

Если у вас есть защищенная страница с незащищенным контентом, браузер пользователя может выдать тревожное сообщение об ошибке.

Я бы зашифровал только страницы с конфиденциальной информацией на них.

 4
Author: paulmorriss, 2012-07-11 10:35:49

HTTPS не обеспечивает никакой надежной защиты, поскольку он уязвим для атаки MiTM. Это просто немного усложняет задачу (совсем немного). Я не вижу преимущества по сравнению с затратами на создание полноценного https-сайта.

 -1
Author: john, 2012-07-11 13:34:12