Чому б не використовувати HTTPS для всього?


126

Якщо я налаштовував сервер і мав сертифікат (и) SSL, чому б я не використовував HTTPS для всього сайту, а не лише для покупок / входів? Я думаю, було б більше сенсу просто зашифрувати весь сайт і повністю захистити користувача. Це дозволило б запобігти таким проблемам, як вирішення питання, що потрібно забезпечити, бо все було б, і це насправді не викликає незручностей для користувача.

Якщо я вже використовував HTTPS для частини сайту, чому б я не хотів використовувати його для всього сайту?

Це пов'язане питання: Чому https використовується лише для входу? , але відповіді не задовільні. Відповіді передбачають, що ви не змогли застосувати https до всього сайту.


2
Мене дивує, що компанії з фінансових послуг все ще використовують http.
Том Хотін - тайклін

15
@ Я бажаю, щоб деякі сайти, які надсилають мені фішинг-повідомлення, використовували https для своїх підроблених сайтів, тому я знаю, що я передаю свої дані правильному фішеру.
WhirlWind

Дякуємо, що задали це запитання. Я припускав , продуктивність була причина , і це було б набагато гірше , ніж HTTP. Побачивши відповіді, здається, що продуктивність не надто погана, що мене занадто цікавить.
sundar

4
Я думаю, ти вибрав найгіршу відповідь на сторінці, маючи 11 голосів. Вибрана відповідь тотально нехтує безпекою та найкращими методами.
грак

5
Це питання справді заслуговує на освіту сучасної відповіді.
Старий Бадман Грей

Відповіді:


17

Я можу припустити пару причин.

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

137
Які браузери не підтримують SSL?
Malfist

6
Деякі компіляції рисі не підтримують її. Якщо ви підтримуєте лише новіші браузери, вам слід добре.
WhirlWind

5
Я переглядав це: iweb.tntech.edu/hexb/publications/https-STAR-03122003.pdf "Після того, як сервер насичується, продуктивність системи HTTPS досягає близько 67% HTTP з точки зору пропускної здатності."
WhirlWind

16
Я не t buy this explanation. 1) Donвикористовую веб-переглядач, який не підтримує SSL в 2013 році.
jfyelle

4
Погана відповідь, чому так ману підносить? Те, що браузер на Землі не підтримує ssl, і користувачі не повинні пам’ятати про введення https, можна обробляти переадресації
Sanne

25

На додаток до інших причин (особливо щодо продуктивності) ви можете розміщувати лише один домен на IP-адресу * під час використання HTTPS.

Один сервер може підтримувати кілька доменів у HTTP, оскільки заголовк HTTP сервера дозволяє серверу знати, з яким доменом відповідати.

З HTTPS сервер повинен запропонувати клієнту свій сертифікат під час початкового рукостискання TLS (що до запуску HTTP). Це означає, що заголовок Сервера ще не надісланий, тому сервер не може знати, який домен запитується та на який сертифікат (www.foo.com чи www.bar.com) відповісти.


* Зноска: технічно ви можете розміщувати кілька доменів, якщо розміщуєте їх на різних портах, але це, як правило, не варіант. Ви також можете розмістити декілька доменів, якщо у вашому сертифікаті SSL міститься загальна карта. Наприклад, ви можете розмістити як foo.example.com, так і bar.example.com із сертифікатом * .example.com


5
Чи не матимуть сертифікат SSL-підстановки вирішити цю проблему?
Роб

Виноска суперечить відповіді: / Ви можете використовувати символи символів і розміщувати будь-які домени. en.wikipedia.org/wiki/Wildcard_certificate
lucascaro

23
Цю проблему вже давно вирішено Індикацією імені сервера, яку сьогодні підтримують усі основні браузери. en.wikipedia.org/wiki/Server_Name_Indication
tia

@tia, за винятком не всіх веб-серверів
meffect

2
@meffect ... Але багато чого, включаючи apache2, nginx, lighttpd та nodejs. Крім цього, розробник може вибрати, який зворотний проксі-сервер вони використовуватимуть для тунелювання HTTPS. Скажіть, що "жодні клієнти не підтримують це" було б дійсним моментом, якби це було правдою, тому що це те, що розробник не має контролю над цим і повинен йому відповідати. Однак, сказати, що "деякі сервери не підтримують це" в основному не має значення, саме тому, що це не потрібно враховувати. Особливо , коли всі сервери мейнстрім робити на самому ділі мають підтримку.
Парфянський розстріл

13

SSL / TLS використовується не досить часто. HTTPS потрібно використовувати протягом усього сеансу , жоден момент не може надсилати ідентифікатор сесії через HTTP. Якщо ви використовуєте лише https для входу в систему, то ви явно порушуєте OWASP топ-10 за 2010 рік "A3: Зламана автентифікація та управління сесіями".


Це може бути занадто широким припущенням. Немає жодної причини, коли стан сеансу не можна керувати окремо для http та https за допомогою однієї операції входу в систему https. Ймовірно, це буде більше роботи, ніж варто, і запросити помилки, пов'язані з безпекою, але, здавалося б, автоматично не представляє явного порушення.
Ейнштейн

@Einstein, будь ласка, прочитайте OWASP A3, це дуже чітко сформульовано. Майте на увазі, що зловмиснику не потрібні ім’я користувача / пароль, якщо він має файли cookie з аутентифікованого сеансу.
грак

Сайт пропонує змішані https / http. https логін забезпечує окремі маркери сеансу низької та високої безпеки. Маркери низької безпеки, призначені лише для сеансу http, не працюватимуть для операцій, що вимагають високої безпеки. З мого читання OWASP A3 зухвало висвітлює основну проблему можливості доступу до високої безпеки через транспорт низької безпеки.
Ейнштейн

@Einstein Тож ви не згодні з тим, що ідентифікатори сесії використовуються для автентифікації веб-браузерів? Враховуйте цю схему атак, у xss-атаках ви намагаєтеся отримати значення, document.cookieщоб зловмисник міг використовувати це для автентифікації. Це значення також можна отримати, обнюхуючи трафік, який https зупиняється. Я не зовсім впевнений, у чому полягає ваша думка.
грак

У вашому сценарії ідентифікатор сеансу для http був би непридатним для захищених ресурсів https, якщо система повинна створити два окремі сеанси для однієї дії аутентифікації, щоб дозволити використання обох протоколів без сеансу https та пов'язаних з ними ресурсів, відкритих файлом cookie сеансу http. Наприклад, сеанс http може використовуватися для ідентифікації доступу до публічних ресурсів для цілей звітування або доступу до публічних дощок оголошень, але вони не будуть дійсними для безпечних ресурсів.
Ейнштейн

12

Чому б не надіслати кожну пошту від равлика у непрозорому непрозорому конверті зареєстрованою поштою? Хтось із поштового відділення завжди матиме особисту опіку над ним, тож ви можете бути впевнені, що ніхто не лунає на вашу пошту. Очевидно, що відповідь полягає в тому, що хоча частина пошти коштує витрат, більшість повідомлень не є. Мені все одно, чи хтось прочитає моє "Рада, що ти вийшов із в'язниці!" листівка дядьку Джо.

Шифрування не безкоштовне, і це не завжди допомагає.

Якщо сеанс (наприклад, покупки, банківські послуги тощо) буде завершений за допомогою HTTPS, немає жодної вагомої причини не робити весь HTTPS сесії якомога раніше.

На мою думку, HTTPS слід використовувати лише тоді, коли це неминуче необхідно, або тому, що запит чи відповідь потрібно захистити від проміжного прослуховування. Як приклад, подивіться на Yahoo! домашня сторінка. Незважаючи на те, що ви зареєстровані, більшість вашої взаємодії буде здійснюватися через HTTP. Ви маєте автентифікацію на HTTPS і отримуєте файли cookie, які підтверджують вашу особу, тому HTTPS для читання новин вам не потрібен.


ЛОЛ!!! Чудово! Б'юсь об заклад, що шахрай, що відкриває конверт із написом "Радий, що ви вийшли з в'язниці", трохи
розправить

19
Якщо зареєстрована пошта обійдеться на 1% більше, а не 300% більше, я б використовував її для всього.
розчинна риба

3
You authenticate over HTTPS and get cookies that prove your identity, so you don't need HTTPS to read news stories.Це не правильний спосіб обробки автентичності сеансу. Файли cookie повинні бути встановлені прапором SECURE. Але нехтування цією жахливою порадою щодо безпеки на секунду ... Аналогія вашої пошти не дуже точна з кількох причин. Одне з них - це те, що ви зазвичай не можете вводити подвиги у зворотну пошту, або привласнювати себе іншим особам безкарно, або надіслати повідомлення "Ваш сеанс закінчився" на зворотній пошті, щоб вони знову вводили облікові дані, які вони використовують для Yahoo! та їхній банк.
Парфянський розстріл

Повторне використання пароля та виправлення сеансу, крім усього іншого, не є проблемою у пошті з равликом.
Парфянський розстріл

Це хороші моменти, але ви застосовуєте аналіз 2016 року для обговорення в 2010 році.
Девід М

12

Найбільшою причиною, крім завантаженості системи, є те, що він порушує віртуальний хостинг на основі імен. З SSL це один сайт - одна IP-адреса. Це досить дорого, а також важче в управлінні.


+1 Його причина , чому Google App Engine не підтримує протокол HTTPS на призначених для користувача доменів. Чекаємо, коли TLS-SNI отримає більш широку підтримку.
Сріпаті Крішнан

1
Ви можете повернути це за допомогою апаратного забезпечення для завершення SSL. І якщо завантаження системи є проблемою (це для багатьох людей!), То апаратний SSL може бути способом продовжити.
Джейсон

за винятком того, що ви можете мати кілька доменів в одному kert.
lucascaro


7
Відхилення, оскільки інформація у публікації застаріла. Зараз SNI підтримується всіма основними браузерами.
Мартін Торнволл

5

Для посилань з високою затримкою для початкового рукостискання TLS необхідні додаткові тури для зворотного підтвердження ланцюга сертифікатів (включаючи надсилання будь-яких проміжних сертифікатів), узгодити набір шифрів та встановити сеанс. Після встановлення сеансу наступні запити можуть використовувати кешування сеансу для зменшення кількості туди-назад, але навіть у цьому кращому випадку все-таки більше зворотних поїздок, ніж вимагає звичайного HTTP-з'єднання. Навіть якщо операції шифрування були безкоштовними, туди й назад не можна, і це може бути помітно через повільніші мережеві зв’язки, особливо якщо сайт не використовує http-конвеєр. Для користувачів широкосмугового зв'язку в добре пов'язаному сегменті мережі це не є проблемою. Якщо ви робите міжнародний бізнес, запрошення https може легко спричинити помітні затримки.

Є додаткові міркування, такі як підтримка сервера стану сеансу, що вимагає значно більше оперативної пам'яті та, звичайно, операцій шифрування даних. Будь-які невеликі веб-сайти практично не повинні турбуватися про те, чи надана можливість сервера порівняно з вартістю сьогоднішнього обладнання. Будь-який великий веб-сайт легко зможе дозволити завантаження процесора / w AES або додаткові карти для забезпечення аналогічних функцій.

Усі ці питання стають все більш і більш непроблемними, оскільки час проходить з часом та покращуються можливості апаратного забезпечення та мережі. У більшості випадків я сумніваюся, що сьогодні є якась відчутна різниця.

Можливо, існують оперативні міркування, такі як адміністративні обмеження на трафік https (думаю, проміжні фільтри вмісту ... тощо), можливо, деякі корпоративні чи урядові норми. Деяке корпоративне середовище вимагає розшифровки даних по периметру, щоб запобігти витоку інформації ... втручання в точку доступу та подібні системи доступу до Інтернету, не здатні вводити повідомлення в транзакції https. Зрештою, на мій погляд, причини, щоб не виходити https за замовчуванням, ймовірно, будуть зовсім невеликими.


4

https - більш ресурсний, ніж звичайний http.

Це вимагає більше як від серверів, так і від клієнтів.


3

Якщо весь сеанс зашифрований, ви не зможете використовувати кешування для статичних ресурсів, таких як зображення та js на рівні проксі, наприклад, провайдер.


Ну, за винятком проксі-серверів, що закінчуються SSL, або якщо ви використовуєте HTN-сумісний CDN.
Парфянський розстріл

3

Ви повинні використовувати HTTPS скрізь, але ви втратите наступне:

  1. Ви точно не повинні використовувати компресію SSL або компресію HTTP над SSL через атаки BREACH та CRIME. Тож не стискайте, якщо ваша відповідь містить ідентифікатори сесії або csrf. Ви можете пом'якшити це, розмістивши статичні ресурси (зображення, js, css) на домені, що не містить файлів cookie, та застосуйте там стиснення. Ви також можете використовувати HTML мінімізацію.

  2. Один сертифікат SSL, одна IP-адреса, за винятком випадків, коли використовується SNI, який працює не у всіх браузерах (старий Android, blackberry 6 тощо).

  3. Ви не повинні розміщувати зовнішній вміст на своїх сторінках, які не надходять через SSL.

  4. Ви втрачаєте вихідний заголовок HTTP Referer, коли браузер переходить на сторінку HTTP, що може бути або не бути проблемою для вас.


0

Ну, очевидною причиною є продуктивність: всі дані повинні бути зашифровані сервером перед передачею, а потім розшифровані клієнтом при отриманні, що є марною витратою часу, якщо немає чутливих даних. Це також може вплинути на кешування вашого веб-сайту.

Це також може заплутати кінцевих користувачів, якщо всі адреси використовуються, https://а не звичні http://. Також дивіться цю відповідь:

Чому б не завжди використовувати https при включенні файлу js?


9
чому це бентежить користувачів? Скільки насправді дивиться на протокол ури?
Malfist

Сьогодні, через 10 років, https є більш поширеним, і http буде заплутаним
madprops

0

https вимагає від сервера шифрування та розшифрування клієнтських запитів та відповідей. Ефект від продуктивності збільшиться, якщо сервер обслуговує багато клієнтів. Ось чому більшість поточних реалізацій https обмежується лише автентифікацією пароля. Однак із збільшенням обчислювальної потужності це може змінитися, адже Gmail використовує SSL для всього сайту.


0

Окрім відповіді WhirlWind, слід враховувати вартість та застосовність сертифікатів SSL, проблеми доступу (можливо, хоча й малоймовірно, що клієнт може не мати можливості спілкуватися через порт SSL) тощо.

Використання SSL не є гарантованою ковдрою безпеки. Цей тип захисту потрібно вбудовувати в архітектуру програми, а не намагатися покластися на якусь магічну кулю.


2
Оскільки користувач вже захищає частину сайту, вартість сертифіката є більш-менш суперечливою.
futureelite7

2
@ futureelite7 хороший момент, але, ймовірно, стосується інших, які можуть вивчати цю тему в майбутньому.
3Dave

Featurism - ворог безпеки. Більшість слабких місць у моїх власних речах є корінням у деякій непродуманій особливості, яку я або попередник прийняв у план продукту. Я вважаю, що початок дії функції, оскільки це спричиняє вразливість безпеки, не робить вас більш популярним, ніж її зниження в першу чергу. Популярність НЕ БАГАТА, але, на жаль, це може і робити. У вашому взутті я б запитав себе, наскільки я дійсно хочу мати справу з незахищеними користувачами або чи програма підходить навіть для користувачів, які не можуть використовувати шифрування (подумайте: банківська справа, політика, активізм).
Джейсон

0

Мені сказали, що в одному з проектів нашої компанії вони виявили, що пропускна здатність, сприйнята SSL-повідомленнями, значно більша, ніж для звичайних повідомлень. Я вважаю, хтось сказав мені, що це вражаюче в 12 разів більше даних. Я сам цього не перевіряв, і це звучить дуже високо, але якщо на кожній сторінці є якийсь заголовок, і більшість сторінок мають невеликий вміст, це може бути не так далеко.

Це сказало, що клопоту переходити вперед і назад між http і https та відслідковувати, які сторінки є, що здається мені занадто великим зусиллям. Я лише один раз намагався створити сайт, який змішував їх, і ми в кінцевому підсумку відмовились від плану, коли нас зіткнулися зі складними речами, такими як спливаючі вікна, створені Javascript, отримуючи неправильний протокол, приєднаний до них та подібну річ. Ми закінчилися лише роблячи весь сайт https як менше проблем. Я думаю, що у простих випадках, коли у вас просто екран входу та екран оплати, який потрібно захистити, і вони прості сторінки, не можна буде поєднувати та узгоджувати.

Я б не переймався сильним тягарем для розшифровки клієнта. Зазвичай клієнт витрачає набагато більше часу на очікування надходження даних по дроту, ніж потрібно для їх обробки. Поки користувачі звичайно не мають гігабітних / сек. Інтернет-з'єднань, потужність обробки клієнта, мабуть, неактуальна. Потужність центрального процесора, яку вимагає сервер для шифрування сторінок, є іншою проблемою. Можливо, проблеми можуть бути не в змозі не відставати від сотень чи тисяч користувачів.


1
Додаткова пропускна здатність невелика навіть у гіршому випадку.
Президент Джеймс К. Полк

0

Ще одна невелика точка (можливо, хтось може це перевірити). Якщо користувач вводить дані в елемент форми, такий як текстове поле, а потім з якихось причин оновлює сторінку або сервер вибивається на секунду, введені користувачем дані втрачаються за допомогою HTTPS, але зберігається за допомогою HTTP.

Примітка. Я не впевнений, що це стосується браузера, але це, безумовно, трапляється з моїм браузером Firefox.


0

Windows Server 2012 з IIS 8.0 тепер пропонує SNI, що є індикацією імені сервера, що дозволяє розміщувати кілька веб-додатків SSL в IIS на одному IP-адресі.


1
Що це стосується питання? Це цікава особливість, але я не бачу актуальності.
користувач1618143
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.