Чому я повинен платити за сертифікат SSL?


62

Я заплатив за сертифікат SSL від Namecheap, думаю, він був сертифікований ComodoSSL. Коштує мені 7 доларів, для активації знадобився тиждень, і мені довелося робити це самостійно з SSH під час редагування файлів конфігурації мого сайту.

Тоді друг повідомив мене про Let’s Encrypt, який не тільки видає безкоштовні сертифікати SSL, але їх можна встановити, виконавши одну команду.

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


2
Це з'явилося нещодавно, і це здебільшого те саме питання: security.stackexchange.com/questions/45491/… Нещодавно оновлена ​​відповідь, нещодавно оновлена, як і раніше, дотримується більшості. Але в усіх відповідях мені сумно, що ніхто не пояснює різницю між цінами та витратами та ціною проти вартості (пов'язані гарантії та страхування - вірити чи ні, тощо)
Патрік Мевзек

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

Всю відповідь можна підсумувати цим реченням з відповіді marcelm : "Щоб сертифікат мав сенс, CA, який видає, повинен довіряти постачальникам програмного забезпечення, інакше сертифікат марний". Усі сертифікати підлягають шифруванню, підтвердженому на третину. партія. Якщо ви вірите, що давайте шифруємось, ніколи не зникне і не буде зламано, то ви отримаєте від цього цінність. Але причина, чому люди платять - це справжні інші КА більше. Просто як це.
JakeGould

"Все сертифікат є шифруванням, підтвердженим третьою стороною" безглуздо. Сертифікат не шифрується, для початку він підписаний . @JakeGould
користувач207421

Я здивований, що ніхто ще не сказав цього: "зазвичай передавати щось як законне, коли націлюють на підприємства, які ставляться до леценкрипту з підозрою".
Алек Тіл

Відповіді:


82

Чому я повинен платити за сертифікат SSL?

Для більшості застосувань немає вагомих причин платити за них.
Див. Саме дно для підсумків винятків.

Давайте зробимо крок назад і пояснимо, що сертифікати роблять і приблизно як.

Що зазвичай називають "сертифікатами", складаються з двох пов'язаних фрагментів:

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

Якщо ви хочете отримати сертифікат yourdomain.com, ви:

  • Створіть приватний / публічний ключ, а приватну частину - добре, приватну.
  • Попросіть надійну третю сторону ("CrediCorp") створити сертифікат для yourdomain.comсвого відкритого ключа.
  • Доведіть якимось чином CrediCorp, яким ви керуєте yourdomain.com.
  • Покладіть приватний ключ та отриманий сертифікат на свій сервер та налаштуйте веб-сервер на їх використання.

Потім, якщо Аліса відвідує yourdomain.com, її браузер отримує сертифікат від вашого веб-сервера разом із повідомленням, підписаним вашим приватним ключем. Потім її браузер перевіряє три речі:

  • Що підписане повідомлення може бути підтверджено вашим сертифікатом (доказуючи, що він був підписаний відповідним приватним ключем, який yourdomain.comповинен бути лише ).
  • Що домен сертифіката - це домен, який браузер намагається відвідати ( yourdomain.com).
  • Це сертифікат від CrediCorp.

Поєднання цих трьох речей гарантує Алісі, що вона насправді розмовляє yourdomain.com, а не з якимсь самозванцем ... За умови, що Аліса довіряє CrediCorp .

(Тут також слід кілька криптовалютного танцю вуду, щоб перетворити цю автентичність у конфіденційність.)

Як же Аліса довіряє CrediCorp?

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

Зокрема, їм вдалося переконати виробників, скажімо, Firefox. В результаті CrediCorp потрапляє до A-списку Firefox, а їх сертифікати довіряють Firefox за замовчуванням. Так справді, Аліса довіряє Firefox, Firefox довіряє CrediCorp, а CrediCorp довіряє (після перевірки) вам, коли ви заявили, що ви контролюєте yourdomain.com. Це майже як ланцюжок .

Але, Firefox не просто довіряє CrediCorp видавати сертифікати yourdomain.com, вона довіряє сертифікатам CrediCorp для будь-якого домену. Firefox також довіряє ShabbyCorp для будь-якого домену.

Це має наслідки. Якщо комусь вдасться переконати ShabbyCorp у тому, що вони контролюють yourdomain.com(оскільки ShabbyCorp не дуже ретельний), він може отримати сертифікат ShabbyCorp для yourdomain.comвідповідного приватного ключа. І за допомогою цього сертифіката вони можуть представити себе вашим веб-сервером. Зрештою, у них є сертифікат (плюс ключ), на yourdomain.comякий довіряють Firefox!

CrediCorp і ShabbyCorp - це те, що називається органами сертифікації, коротко. У реальному світі ComodoSSL та Let's Encrypt - приклади ЦО. Але їх набагато більше; станом на цей текст, Firefox довіряє 154 ЦП .

Вау. Але як це відповідає на моє запитання?

Я е-е, добираюся до цього ...

Ось річ. Механіка, яку я описав вище, стосується всіх сертифікатів. Якщо у вас є правильний, надійний сертифікат для вашого веб-сайту, він буде працювати. Немає нічого особливого в сертифікатах торгової марки А порівняно з сертифікатами марки Б; всі вони підпадають під однакові вимоги ЦА та таку саму крипто-математику.

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

Поки Firefox довіряє ShabbyCorp, відвідувачі не побачать різниці. (Так, відвідувачі можуть витягнути сертифікат і викопати там, подивитися, хто його видав. Але хто це робить?) Що стосується підробки сертифікатів, це робить усю систему слабкою, як найслабші з 150+ ЦО. Чому так, це страшно, і це, мабуть, найбільша критика у всіх цієї схеми. І все-таки це ми застрягли.

Справа в тому, що якщо ви не довіряєте ЦА видавати "хороші" сертифікати, отримання ваших сертифікатів в іншому місці не дуже допоможе вам.

Є, все однаково приречене. Немає застережень?

Weeeelllll ...

  1. Почнемо з вбивства моменту, який я зробив в останньому розділі. На сьогоднішній день можна зафіксувати свій домен лише на ЦО на ваш вибір за допомогою DNS-CAA . Припустимо, що ви довіряєте Comodo та не довіряєте іншим ЦО, можна попросити всіх ЦЗ, окрім Comodo, не видавати сертифікати для вашого домену. В теорії. (Оскільки веб-переглядачі DNS-CAA не перевіряються, лише видаючи ЦС. Таким чином, компрометований ЦО може ігнорувати цю захисну функцію.)

    Якщо ви готові пережити цю проблему, тоді виникає питання: чи давайте шифрувати насправді менш надійні? Або менш безпечний? Надійність - це важка думка, як це можна оцінити? Все, що я можу сказати, - це те, що в моєму сприйнятті давайте шифрувати не менш надійно, ніж інші ЦО. Що стосується безпеки їх перевірки, вони дуже схожі на те, що роблять комерційні ЦА (для сертифікатів DV у будь-якому випадку). Дивіться також це питання .

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

  2. Щоб сертифікат мав сенс, сертифікатору, що видає, слід довіряти постачальникам програмного забезпечення , інакше сертифікат марний. Я використовував Firefox в якості прикладу, але ви дійсно хочете, щоб довіряти ЦА принаймні нинішніми та дещо старими версіями Firefox, Chrome, Windows, Mac OS X, iOS та Android. І десятки менших гравців. Усі ці структури довіряють ЦП (які включають ComodoSSL та Let's Encrypt).

  3. Якщо КА погано поводиться або виявляється ненадійним, він буде видалений з різних довірчих магазинів досить швидко, щоб зіпсувати день власників сертифікатів. Два відомих мені прикладу - DigiNotar та StartCom / WoSign (ознайомтеся зі статтями, вони дають цікаву інформацію про динаміку довіри!). Тож якщо ви думаєте, що давайте шифруватиметься, або випаде з якоїсь іншої причини, їх використання не дозволить вам потрапити в цю конкретну падіння.

  4. Сертифікати використовують деякі крипто-математичні магії ; питання в тому, яка крипто- математична магія ? Що робити, якщо це слабка магія? Це насправді викликає серйозне занепокоєння, і КА показали, що вони також перетягують ноги на покращення цього. На щастя, продавці браузерів підняли слабкість, встановивши тут мінімум для отримання сертифікатів. Наприклад, сертифікати, що використовують RSA-1024 або SHA-1 , тепер відхиляються більшістю браузерів, тому жоден сертифікат, який працює на практиці, не використовує ці застарілі криптоприміти. Підсумок полягає в тому, що будь-який КА (давайте шифрувати включено) досить важко розчарувати в цій частині.

  5. Раніше я більш-менш говорив, що всі сертифікати створюються рівними. Я збрехав, вони ні. Зокрема, я обговорював дотепер " сертифікати домену (DV)", якими користується переважна більшість веб-сайтів. Вони забезпечують міру визначеності того, що ваш веб-переглядач насправді спілкується з доменом, який він відображає в URL-рядку. Існують також " Сертифіковані організацією (OV)" та " Extended Validation (EV)" сертифікати, які вимагають набагато більш детальних перевірок з боку ЦО. Зокрема, ви повинні бути в змозі отримати сертифікат EV тільки для somebank.com/ SomeBank Inc., якщо ви можете довести , що ви перебуваєте SomeBank, Inc.

    Сертифікати EV набагато дорожче отримати (бальний парк: сотні євро / долар на рік), і вони можуть бути нагороджені зеленим рядком URL-адресою або замком у браузері, можливо, відображаючи "SomeBank, Inc." так само. На відміну від сертифікатів DV, вони також пропонують певну ідею щодо того, кому веб-сайт насправді може належати. Перевернуто, вони можуть виглядати законніше. Розчарування в тому, що користувачі рідко звертають на них увагу, тому їх ефективність обмежена.

    Зловмисник із підробленим сертифікатом DV все ще може себе представити на сайті, лише без додаткової візуальної підказки, яку може запропонувати сертифікат EV, і користувачі, як правило, не помічають цього розрізнення. І навпаки, можна отримати оманливий сертифікат EV для полегшення фішингу. Як результат, і Chrome, і Firefox скидають свої візуальні кивки на сертифікати EV, а деякі люди вірять, що вони повністю відійдуть.

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

  6. Сертифікати дійсні лише обмежений час . Сертифікати типових комерційних підприємств, як правило, діють протягом одного року, але я бачив що-небудь від трьох місяців до трьох років. Давайте шифрувати сертифікати дійсні протягом 90 днів , що знаходиться на короткій стороні цього діапазону, тому вам потрібно буде часто поновлювати їх. Для користувачів Let’s Encrypt це, як правило, автоматизовано, так що сертифікати замінюються кожні 60 днів.

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

  7. Раніше я назвав це страшно, що існує так багато ЦС, яким ми всі повинні довіряти. Наявність багатьох ЦА також є перевагою, хоча в тому сенсі, що вилучення одного з наших довірчих магазинів має обмежений вплив на користувачів. Зокрема, виключення одного КА вплине лише на сертифікати, видані цим КА. Якщо всі в кінцевому підсумку використовують один єдиний ЦС (який деякі люди бояться, що це може статися з Let's Encrypt ), ми зосереджуємо всю свою довіру там і втрачаємо переваги цієї фрагментації.

  8. І нарешті, є інші переваги, які може запропонувати платний АТ , наприклад, комерційна підтримка або гарантія SSL на мільйон доларів . Я мало вірю в обидва ці аспекти, але це речі, які не пропонують.

У мене болить голова ... У мене було питання, я думаю?

Використовуйте те, що вам комфортно! Що стосується сертифікатів DV, то мало що насправді відрізняє різні ЦТ. Я використовую Let’s Encrypt як професійно, так і приватно, і я задоволений цим.

Насправді є лише чотири потенційні причини, які я бачу уникати Давайте шифрувати:

  • Якщо вам потрібні сертифікати EV (або OV).
  • Якщо ви не можете або не хочете автоматизувати оновлення сертифікату, і термін дії сертифіката три місяці для вас занадто короткий.
  • Якщо ви не довіряєте Let’s Encrypt (але не забудьте також врахувати інші заходи, такі як DNS-CAA, і ви, мабуть, вам також слід отримати чорний список Let’s Encrypt у вашому браузері).
  • Якщо ви вірите, що давайте шифруємо, чомусь буде припинено або видалено із веб-переглядачів.

Якщо ніхто з них не стосується вас, сміливо не платите за ваші сертифікати.


17
Зауважте, що сертифікати EV більше не вважаються корисними, оскільки користувачі їх ігнорують; браузери, особливо Chrome і на мобільних пристроях, видаляють або закопують зелений текст і відображають ім’я.
simpleuser

8
Майте на увазі, що ви не вимагаєте від надійної третьої сторони створити сертифікат для вашого приватного ключа, а для відповідного відкритого ключа. Незначна нитка, але важлива. Ваш приватний ключ ніколи не залишає вашу систему.
MechMK1

Обидва хороші бали; Я намагався керувати рівнем деталізації, будучи ще правильним у великій картині, але я повинен був бути чіткішим щодо цих двох речей. Я оновив відповідь, щоб сподіватися відобразити ці факти трохи краще.
marcelm

4
Якщо конкретніше, то щодо Chrome v77 (зараз v67) Chrome більше не відображатиме безпосередньо сертифікати EV. Firefox (наразі 68) планує зробити те саме, що і v70.
knallfrosch

1
І додати третій коментар про сертифікати EV, Трой Хант (від) написати хорошу статтю , яка пояснює , чому вони дійсно мертві: troyhunt.com / ...
NEYT

7

Давайте Encrypt перевершує багато в чому, включаючи ті, про які ви згадали, такі як:

  1. Це безкоштовно. Важко обійти це.
  2. Він має автоматичне оновлення (я впевнений, що це НЕ ПРАВИЛЬНО ексклюзивно з Let's Encrypt)
  3. Це досить просто налаштувати.
  4. Google підтримує його як підписаний SSL, що стосується SEO та безпеки.

Однак є пара мінусів.

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

"Система перевірки, що вона працює" Це стандартний механізм, як HTTP-01, так і DNS-01, як описано вимогами IETF та CAB Forum. Усі КА прив’язані до точно такого ж, для сертифікатів DV.
Патрік Мевзек

10
"оскільки це відкритий код" Це безкоштовно (як і в пиві), не відкриває джерело. API є стандартним (див. ACME в IETF) і є клієнти з відкритим кодом (і, можливо, сервери).
Патрік Мевзек

4
"Він має автоматичне оновлення" Це не давайте шифрувати tiself. Ви, як власник сертифіката, повинні зв’язатися з ними, щоб просити оновлення. Вони не підштовхують його до вас автоматично. Це побічний ефект використання автоматизованого протоколу, такого як ACME для видачі сертифікатів.
Патрік Мевзек

"Google підтримує його як підписаний SSL", а не тільки Google, і ви, мабуть, хотіли сказати, що він підтримує його (Давайте шифрувати) як "повністю довірений CA" ("підписаний SSL" не має сенсу). Дивіться letsencrypt.org/2018/08/06/…
Патрік Мевзек

Щодо страхування сертифікатів X.509, які використовуються для зв'язку HTTPS, див. Також security.stackexchange.com/questions/179415/… та scotthelme.co.uk/…
Патрік Мевзек

4

Сертифікати LetsEncrypt чудові. Я їх використовую сам, а не купую сертифікати. Є кілька недоліків:

  • Сертифікати LetsEncrypt лише останні 3 місяці. Більшість придбаних сертифікатів гарні один-два роки. Це означає, що вам абсолютно потрібен автоматизований процес для відновлення ваших сертифікатів, або це буде занадто просто забути.
  • LetsEncrypt пропонує лише найменший тип перевірки сертифікату. Перевірка домену (DV) підтверджує лише те, що власник сертифіката має контроль над доменом. Сертифікати з підтвердження організації (OV) також перевіряють документацію особи або компанії, яка вимагає отримання сертифіката. Сертифікати розширеної валідації (EV) вимагають ще більше перевірок. Чим кращий ваш сертифікат, тим важче його підробити, і тим більше автентичності вашого сайту можна довіряти через нього. На практиці веб-переглядачі лише візуально кивають на ЕВ-серти, звичайно показуючи щось зелене в адресному рядку. До цього часу більшість користувачів не знають і не цікавляться різними рівнями перевірки.
  • Сертифікати wild card трохи складніше отримати від LetsEncrypt. З інших місць ви зазвичай платите більше грошей. LetsEncrypt вимагає перевірки DNS для сертифікатів підстановки.

Історично сертифікати безпеки завжди щось коштували. Інші компанії, які пропонували безкоштовні сертифікати, прийшли і пішли. Раніше я використовував StartSSL, який пропонував безкоштовний сертифікат для одного домену, поки вони не зробили тіньові речі і браузери не перестали довіряти своїм сертифікатам. LetsEncrypt має менше лімітів, ніж попередні безкоштовні постачальники сертифікатів, і набагато більш автоматизований. У нього також є великі прихильники, такі як EFF, Mozilla, Chrome і Cisco. Дивіться https://letsencrypt.org/sponsors/ Схоже, це досить добре, що я очікую, що це буде роками.


1
Чи є фактична функціональна різниця між DV та OF / EV? Або це буквально просто більш ретельна перевірка?
Вісім

4
"Сертифікати LetsEncrypt останні три місяці." це робиться навмисно, а сприймається не як недолік, а насправді позитивні речі.
Патрік Мевзек

1
@Eight Різні перевірки та різні кінцеві результати: сертифікат DV ідентифікує ім'я хоста, а сертифікат OV / EV ідентифікує сутність. Крім того, вимоги форуму CAB ставлять різні обмеження, наприклад, ви не можете мати EV протягом 3 років, а також для макіяжних символів.
Патрік Мевзек

5
"LetsEncrypt пропонує лише найменший тип перевірки сертифікату. [..] Чим кращий ваш сертифікат, тим більше вашому сайту можна довіряти." Це надзвичайно питання особистої переваги, а не універсальної істини. І це здебільшого не має значення, оскільки в поточному веб-PKI безпека найнижчого захищеного ЦС у вашому довірчому магазині визначає безпеку всієї екосистеми. найменше DNSSEC під час перевірки та декілька точок зору.
Патрік Мевзек

2
"До цього часу більшість користувачів не знають і не цікавляться різними рівнями перевірки." - Що робить їх досить безглуздими. Якщо користувачі не розрізняють терміни EV / DV, зловмисник, який отримує дійсний сертифікат DV для певного домену, може здійснити атаки MITM на цей домен, навіть якщо оригінальний сайт має EV cert.
marcelm

0

Не все може використовувати автоматичне оновлення

CertBot дозволяє легко користуватися веб-сайтами ... але що робити, якщо ви використовуєте сертифікати для інших речей?

У нас є сервер LDAP, на якому підтверджує автентифікацію наш веб-сайт. Він працює над захищеним портом, але для запуску йому потрібен підписаний сертифікат. Я міг би отримати безкоштовний сертифікат wildcard ... але це означає перетворення сертифіката на PKCS12 кожні 3 місяці (веб-сервери використовують PEM), а потім імпортувати новий сертифікат. О, і наш мережевий брандмауер також використовує PKCS12. Це багато клопоту безкоштовно.


1
Якщо ви так схильні, ви також можете автоматизувати цю конверсію; там вже працює cronjob certbot/ acmetool/ whathaveyou для поновлення сертифіката, ви можете додати той, який викликає opensslперетворення.
marcelm

-1

Проста відповідь на це - багато веб-майстрів просто не хочуть робити такі речі, які зайво витрачають свій дорогоцінний час. У випадку letsencrypt - це простий у користуванні та безкоштовно, але вам потрібно пам’ятати та повторно встановлювати сертифікат кожні 3 місяці. Якщо ви цього не зробите або просто забудете це зробити, то ваш сайт покаже відвідувачам та пошуковим системам помилку 404.


10
"Ви повинні пам'ятати" Ні, вам потрібно встановити необхідну автоматику і дозволити їй робити свою роботу, не маючи нічого запам'ятати. Ви також повинні провести моніторинг.
Патрік Мевзек

14
"це тоді ваш сайт покаже помилку 404" Звичайно, ні. Сертифікат з минулим терміном дії призведе до відмови TLS рукостискання, і нічого не надійде на рівні HTTP. Клієнти побачать у своєму браузері велике попередження з текстом (який вони в основному не розуміють) та кнопкою, що запитує, чи хочуть вони пройти чи ні.
Патрік Мевзек

Багато хостинг-сайтів просто змушують натиснути кнопку кнопки без додаткової плати. Ви буквально просто натискаєте кнопку на панелі налаштування веб-сайту, на якій написано "Я хочу!" і з цього моменту все відбувається автоматично, включаючи оновлення.
Джеймс К Полк

1
Як професійний адміністратор для ~ 100 доменів, я можу сказати вам, що я дуже віддаю перевагу шифруванню з автоматичним оновленням над оновленням сертифікатів вручну щороку, як це робилося раніше з нашим попереднім CA.
marcelm

Використовуючи acme.shдля встановлення сертифікатів Let Encrypt, також встановлюється оновлення. Більше роботи, не робити цього.
Colin 't Hart
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.