Давно хотів розповісти про SSL сертифікати

Давно хотів розповісти про SSL сертифікати (щоб сайт відкривався по https).

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

Отож, що ж робить SSL/https?

Уявіть, що вам треба подзвонити другу Миколі, передати йому дуже важливу інформацію. На сьогодні багато людей, що їх бесіду можуть прослуховувати, перехопивши GSM дзвінок. Ви, відповідно, шукаєте можливості поговорити через “захищений канал”. Хтось обирає Viber, Skype, а хтось користується інтернет телефонією з шифруванням. Таким чином ви захищаєте канал зв’язку.

SSL/https - це теж про захист каналу зв'язку. Його використання забезпечить вам захист даних між вашим комп'ютером і сервером сайту, з яким ви працюєте. Тобто, в іншому випадку, врізаючись у ваше з'єднання з сайтом, зловмисник, може отримати:

  • список сторінок, які ви відвідували;
  • маркери сесій, якщо ви, наприклад, додали в кошик покупку;
  • логіни / паролі / пошукові запити;
  • будь-які інші дані, які ви посилаєте незахищеному сайту.

При використанні SSL-шифрування, серед доступних зловмисникові даних є тільки доменне ім'я і сервісний порт, куди відправляються дані. Уся інша інформація йому так просто недоступна.

Хотілося б зауважити наступне популярне твердження:

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

На жаль, це твердження хибне.

Сьогодні багато пошукових систем знижують сайт у видачі, якщо у нього немає SSL сертифікату. Фактично він необхідний усім сайтам.

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

Використовуючи сертифікат SSL і шифрування - ми значно ускладнюємо процес перехоплення такого типу даних.

Чому ви купуєте сертифікат у провайдера, і не можете його створити самі?

SSL-сертифікат - це набір з трьох елементів:

  1. сам сертифікат,
  2. приватний (прихований) ключ шифрування,
  3. публічний (відкритий) ключ шифрування.

Припустимо, ключ - це дуже великий пароль на 1024 символи. Не заглиблюючись в алгоритми шифрування, очевидно, що чим довший пароль, тим складніше його підібрати. А в сертифікаті міститься інформація про його власника і того, хто його видав. Всі три елементи ви можете згенерувати самостійно і цілком безкоштовно. Можете, навіть, підключити їх до свого сайту.

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

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

Що вам заважає вписати себе у вигляді реєстратора і встановити сервер, який підтверджує оригінальність сертифіката?

Гроші. Багато грошей. Неймовірно багато грошей для одного або декількох сертифікатів на кілька десятків років. Колись на це існувала монополія, і всього 3-5 компаній видавали сертифікати. Сьогодні таким провайдером може стати кожен.

Для цього потрібно:

  • Створити свою інфраструктуру серверів для зберігання і випуску сертифікатів (або дорого купити);
  • Пройти сертифікацію стандарту безпеки;
  • Надіслати запити на додавання в реєстр всім компаніям, ПО яких так чи інакше перевіряє сертифікати (наприклад: Microsoft + Windows, Apple + MacOS + iOS, Google+ Android, і інші ОС, браузери - Firefox, Chrome, Safari і т.д.). Майже з кожною компанією потрібно проходити процедуру перевірки, стандартизації і так далі. Весь цей процес дорогий і тривалий.

Чому ціни різні й іноді відрізняється на порядок (наприклад, $15 і $150 в рік)?

Для цього варто розібратися в тому, що формує ціну:

  1. Фактичний випуск сертифіката - це кількасекундна робота процесора, найдешевша робота.
  2. Річне зберігання сертифіката на серверах провайдера - це трохи дорожче випуску.
  3. Кабінет користувача - хтось включає невелику суму в ціну, щоб повернути вкладення і підтримувати кабінет в сучасному вигляді.
  4. Комісія прибутку.
  5. Підтримка, якщо у вас є питання, або якщо потрібно виконати перевірку заявника вручну. Це найдорожча послуга в сертифікаті. На неї виділяється 2-3 години роботи фахівця, і якщо провайдер з такої країни, як Україна, - то годину рутинної роботи тут коштує дешево ($2+), а якщо провайдер з США - то там година коштує дорожче ($30+).
  6. Страхування - це важливий аспект, який також впливає на вартість залежно від локації провайдера і його страхового партнера. Страхування працює, якщо ваш сертифікат зламали і отримали доступ до важливих даних. Багато компаній пропонують однаковий сертифікат з різною страховкою і різною ціною. На практиці, довести, що сертифікат зламали дуже складно, тому страхування в країнах, як Україна, оформлюють символічною.

В Україні немає провайдерів сертифікатів, це занадто дорого. Тому, на пільгових умовах у нас є компанії, які перепродують видачу сертифікатів і економлять на витратах оплати персоналу і страхових платежах.

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

Безкоштовний сертифікат.

На сьогодні існує ще один варіант отримання сертифікату - реєстратор Let'sEncrypt. Там можна отримати робочий сертифікат з деякими обмеженнями і повністю безкоштовно.

Невелика передмова.

У концепції комерційних сертифікатів, згодом з'явився значний мінус. На початку 2000-х, якщо розробник створював прототип або міні-версію своєї великої ідеї, або якщо інвестор починав новий веб-стартап, потрібно було придбати сертифікат безпеки для збереження каналу передачі даних. Ціни були $50+. Так, наприклад, студент, роблячи курсову роботу, з бажанням показати, що зв'язок захищений, повинен був купити сертифікат. У той же час, не маючи веріфікованого сертифіката, при кожному вході на сторінку https з'являлося повідомлення "зв'язок не захищений" - не найкращий варіант для демонстрації роботи, чи не так?

З кожним роком кількість таких програмістів росло, а увійти до індустрії розробки веб-рішень ставало все легше. Сьогодні, навіть домогосподарки можуть за інструкцією створити сайт про себе, і зробити це майже безкоштовно. Технології стали доступнішими, хостинг став майже безкоштовним, але сертифікати як коштували $50 +, так і коштують. Уявіть собі: вам потрібна сторінка про себе, з вашим доменним ім'ям, яку б не ігнорувати пошукові системи. Ви купуєте домен за $10 і хостинг за $2-5 на місяць, за інструкцією розгортається сайт на базі зручної CMS (наприклад, AcroCMS) із безкоштовним шаблоном. І все. Сьогодні ви заплатили лише $15. Далі, пошуковий робот надсилає вам рекомендацію: "Перенесіть сайт на https для можливого підвищення його у видачі". Але за гроші на покупку сертифіката, ви можете зробити ще 3 таких сайти.

Нагадаю кілька моментів, які формують вартість сертифіката:

  • страхування, яке практично не використовується.
  • підтримка, де вам, у разі виникнення проблеми, продиктують сторінку з інструкції. З 2003-го року ми подавали на реєстрацію десятки різних сертифікатів в рамках розробки проекту з нуля, і тільки один раз спілкувалися з представником, коли вони не змогли в США верифікувати компанію, яка зареєстрована в східній Європі. Гроші повернули.

Так, у квітні 2016-го року з'явився новий реєстратор сертифікатів - Let'sEncrypt. Це повністю автоматичний сервіс, який дозволяє створювати безкоштовні сертифікати для вашого доменного імені.

Безкоштовний він з наступних причин:

  • було усунено страхування як непотрібний елемент;
  • автоматизація процесу дозволила відмовитися від технічної підтримки. Реєстратор має можливість перевірити чи ваш це домен без участі людини. До слова про гроші за старі сервіси, цей процес давно автоматизований.
  • серед творців / спонсорів нового реєстратора - Cisco, Mozilla, Мічиганський університет. Перші створюють маршрутизатори сотнями і тисячами. При вході у веб-інтерфейс маршрутизатора потрібно захищати канал від "прослуховування", інакше всі ваші дані зможе зчитати хтось інший. Такий крок для них - це велика економія. Другі - це не просто браузер, а цілий фонд, серед продуктів якого є мова програмування і операційна система. У цілому вони активно підтримують рух безкоштовного ПЗ. Треті - це університет, який таким чином дав можливість мільйонам студентів створювати свої міні-проекти під https.

Менш ніж за 2 роки проект ґрунтовно закріпив свої позиції у сфері розвитку малих сайтів і веб-додатків. Підтримку Let'sEncrypt вбудували собі безліч хостинг-компаній, що спрощуює процес отримання сертифікату і його автоматичного оновлення кожні 90 днів.

З іншого боку, існують і дещо негативні аспекти:

  • Let'sEncrypt чітко обмежує кількість запитів з одного IP на годину, аби недобросовісні користувачі не змогли створювати тисячі сертифікатів за хвилину, використовуючи сервіс у корисливих цілях. Але і при використанні такого методу, при помилці підтвердження володіння доменом ви можете бути заблоковані на кілька годин.
  • для отримання сертифікату необхідно трохи більше знань, а не тільки натискання однієї-двох кнопок. Хоча хостинг-компанії і додали зручні інтерфейси, але трапляються проекти, де такий сертифікат доводиться встановлювати та оновлювати кожні 90 днів вручну. Оплатити роботу фахівця з налаштування може бути дорожче, ніж придбати сертифікат на рік.
  • сервіс не вміє видавати сертифікат на компанію, тому що це не його ніша. Тому, для великих компаній і бізнесу потрібно буде продовжувати купувати сертифікати як раніше.

Дякую.

Введіть своє ім’я
Введіть свою адресу електронної пошти
Опишіть свій проект
Натисніть щоб завантажити файли

93/3 Karla IV.
České Budějovice
37001, Czech Republic
+420 388 880 038