Як забезпечити використання HTTPS для надсилання облікових даних?


1

Як користувач, як я можу знати, що моє ім'я користувача та пароль, надіслані серверу, зашифровані HTTPS? Дозвольте мені попереджати відповідь "шукати маленький замок" або "шукати https в URL-адресі" з наступними двома прикладами:

По-перше, скажімо, я переглядаю веб-сайт bank.com. Коли я переходжу на сторінку входу, URL-адреса в адресному рядку говорить " https://www.bank.com/login.php ". Я набираю своє ім’я користувача та пароль та натискаю кнопку "Надіслати".

Однак форма автентифікації говорить про це:

<form action="http://www.bank.com/login.php"> ... </form>

Очевидно, мої облікові дані не надсилаються через HTTPS. Другий приклад - навпаки, як ви могли собі уявити. Я переглядаю сторінку bank.com і мені відкривається сторінка " http://www.bank.com/login.php ". Однак форма цього разу використовує HTTPS:

<form action="https://www.bank.com/login.php"> ... </form>

З цього зрозуміло, що ми не можемо довіряти символу блокування у веб-переглядачі, а також "https" в адресному рядку.

Я думаю, що у мене справді є два питання, які розв'язують SO та SU:

  1. SU: Як нормальний користувач (не HTML / кмітливість до програмування) може ефективно перевіряти таку перевірку?
  2. ТАК: Як веб-сайти (або браузери) можуть надавати допомогу користувачам у виконанні цієї перевірки?

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

@ DMA57361 - Якщо сайт (наприклад, bank.example.com) раніше був доданий до вашого списку "Довірених сайтів", ви все одно отримаєте попередження у всіх (сучасних) браузерах?
Кевін Феган

(Джеремі, по- видимому , Chrome і IE не попереджав усіх, бачити мій оновлений відповідь , що здивувало мене багато ... CC: @ DMA57361.)
Арьян

Відповіді:


3
  1. Для кмітливих користувачів, які не знають технологій, ви не можете зробити багато. Увімкнення попереджень у веб-переглядачі для публікації через HTTP з HTTPS - найкращий варіант. Якщо це можливо, це, ймовірно, включено за замовчуванням. Однак прийнято, що форма не визначає сайт або протокол, і повертається назад на сервер, який надіслав форму, використовуючи сайт та протокол, на якому форма була надана. У цьому випадку, якщо форма була подана через HTTPS, то подання також буде.
  2. Веб-сайти повинні запускати тести на сертифікацію, які гарантують, що форма входу вимагає HTTPS. Це зробити досить просто на більшості веб-серверів. Якщо вони мають справу з кредитними картками, є вимоги, які вони посвідчують там, на місці та інфраструктурі. Вони також повинні гарантувати, що форма входу подається лише за допомогою HTTPS.

HTTPS не обов'язково вказує на те, що ваші дані добре зашифровані. Є відносно низькі протоколи безпеки, які можна ввімкнути. Сервер і браузер узгоджують рівень шифрування. Там, де це дозволено (деякі країни мають обмеження), ви можете відключити протоколи нижчої безпеки у своєму браузері. (Екран для цього не завжди легко знайти.) Зазвичай простіше перевірити безпеку конкретного з'єднання.


Ще більше: кілька років тому Apache мав серйозний недолік, дозволяючи нульове бітове шифрування ... Спільні публічні комп’ютери, які змінили налаштування свого браузера, щоб дозволити також і цей незашифрований "SSL", може потім обдурити сервер прийняти це .
Ар'ян

Я не згадував про це, але один доступний протокол - жоден (0-бітове шифрування). Зазвичай це потрібно ввімкнути.
BillThor

2

зрозуміло, що ми не можемо довіряти символу блокування в браузері, а також "https" в адресному рядку

Я очікував, що розумний веб-переглядач попередить вас, коли форма на сайті HTTPS подає URL-адресу, яка не є HTTPS (ваш перший приклад). Але ще кілька випробувань виявляють, що таке лише частково правда . Квітень 2013:

  • Safari 6.0.4, Mobile Safari і Firefox 20 (на ОС X 10.8 та Windows 7) дійсно демонструють попередження (як при поданні на ту саму URL-адресу, так і під час подання на інший домен).

  • Chrome 26 (на ОС X 10.8, Android 4.1 та Windows 7) та Internet Explorer 9 і 10 (у Windows 7) взагалі не попереджають.

Отже, для найкращого користувальницького досвіду в браузерах, які показують попередження, саму сторінку входу справді слід обслуговувати і HTTPS. Будь-який банк зробить це. На сайтах, які цього не роблять, користувачі дійсно повинні зробити перевірку самостійно або встановити плагін або використовувати якийсь скрипт Greasemonkey для прикраси безпечних форм або показати попередження. Для Chrome також доступне розширення сторонніх розробників , але я ніколи цього не використовував.

__________
Думаючи про це, можливо, мені подобаються зміни: це може змусити більше людей включити HTTPS на своєму сайті, не турбуючись про попередження при взаємодії з сторонніми сайтами, які ще не використовують HTTPS.


Якщо сайт (наприклад, bank.example.com) раніше був доданий до вашого списку "Довірених сайтів", ви все одно отримаєте попередження у всіх (розумних) браузерах?
Кевін Феган

@kevin, я не знаю, оскільки я не використовую браузери, які використовують концепцію надійних сайтів. Але: ви можете легко протестувати в цьому прикладі . Однак, схоже, поточний Chrome на Mac (вже не) попереджає про надсилання до незахищеної URL-адреси. Firefox і Safari все ж добре.
Ар’ян

Я спробував вашу сторінку прикладу в Windows 7 x64 за допомогою IE9 x32 та x64. Для кожної версії IE9 я відкрив сторінку прикладу і натиснув кожну кнопку. Після натискання кожної кнопки я повернувся до початкової сторінки та натиснув наступну кнопку. При натисканні на кнопки HTTP фон сторінки змінювався із зеленого на червоний, але у всіх випадках HTTP та HTTPS я не отримував попереджень браузера. Мій IE9 на цій машині сильно налаштований, тому це може пояснити, чому немає попереджень. Я також спробував це у FireFox 14.0.1, і дійсно отримую попередження від браузера, як пропонується (коли ціль - HTTP). ->
Кевін Феган

У моєму списку надійних сайтів немає жодного сайту ( dikidiki.net чи iana.org ).
Кевін Феган

У мене не встановлено Chrome (або Safari) на будь-якій машині, тому наразі я не можу перевірити Chrome. Я можу спробувати це в майбутньому, але, можливо, хтось інший спробує це на Chrome і повідомить тут.
Кевін Феган

1

Force-TLS вимагає, щоб ви вказали сайти, для яких потрібно мати зв’язок https. Стаття про використання та чому тут: http://techcrunch.com/2010/10/25/firesheep/ Я думаю, що це може відповісти на обидва питання


Дійсно, SSL НЕ потрібен лише під час надсилання облікових даних. (Щоб гарантувати, що крім використання правильних URL-адрес, здоровий веб-додаток також повинен надсилати файли cookie з secureпрапором.)
Arjan

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