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


57

У мене виникають проблеми з розумінням того, чому нам потрібно купувати сертифікати SSL, коли ми можемо генерувати їх локально, використовуючи openSSL. Яка різниця між сертифікатом, який я купую, і тестовим сертифікатом, який я генерую локально? Це просто велика афера?


17
З точки зору тріади ЦРУ щодо інформаційної безпеки, самопідписані серти забезпечують конфіденційність та цілісність (тобто вони дозволяють зашифровані повідомлення між двома сторонами), але лише серти, підписані довіреним джерелом, надають справжність (тобто, інша сторона у вашій зашифрованій розмові є насправді тим, хто ти думаєш, що це є).
apsillers

10
Сподіваємось, коли DNSSEC прийде в гру, люди зможуть створити власний сертифікат і зберегти його у записі DNS. Тоді ланцюга довіри DNSSEC буде достатньо, щоб довести, що cert належить власнику домену. (Я не думаю, що це формалізована специфікація (поки), але це було б добре)
jackweirdy

2
Для внутрішнього використання ви можете розгорнути сертифікат як довірений за допомогою Групової політики (у Windows).
Бен

4
Мені часто цікаво, чому люди теж не приймають мої власні друковані гроші;)
tgkprog

1
Примітка. Є безкоштовні базові постачальники сертифікатів. Цим можна задовольнити 90% потреб людей. А деякі КА мають дуже низькі сертифікати витрат, без причин ламати банк незалежно від того, що вам потрібно. (за винятком делегації, звичайно)
Chris S

Відповіді:


72

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

В іншому випадку я можу зробити власні сертифікати для google.com або yourbank.com і зробити вигляд, що вони є.

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

Так, частини SSL - це афера (сертифікат verisign vs geotrust, де verisign до 100 разів дорожчий), але не все це.

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


8
Якщо це все внутрішні речі, ви можете розгорнути свій сертифікат як довірений за допомогою групової політики.
Бен

2
З іншого боку, підписання водія - це якась афера. Що це таке, так, це величезний рівень, але у нас немає вибору. successsoftware.net/2008/02/27/…
Метт

2
@Matt - я читав цю статтю раніше; коли ми дивилися, як робити підписи коду на роботі. Ми вирішили просто підписатись і порадили людям перевірити підписи. На щастя, у нас є переважно високотехнологічні користувачі (в основному).
Марк Хендерсон

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

23

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

Спочатку давайте вивчимо, що буде, якби ми не використали сертифікати. Натомість сервер надсилатиме відкритий ключ у простому тексті, а браузер ініціює зашифроване повідомлення за допомогою нього (перше, що потрібно зробити, це зашифрувати власний відкритий ключ та надійно надіслати його). Що робити, якщо я та нападник заклинили себе посередині? Я міг би замінити ваш відкритий ключ на ходу моїм, мати зашифроване з'єднання з браузером, розшифрувати всі отримані вами речі, зашифрувати його своїм відкритим ключем та надіслати його (і навпаки для трафіку типу відповіді). Жодна партія не помітила різниці, оскільки ніхто не знав публічних ключів заздалегідь.

Гаразд, тому ми встановили, що нам потрібен спосіб, щоб браузер міг довіряти моєму відкритому ключу. Один із способів зробити це - зберігати всі зареєстровані відкриті ключі у браузері. Звичайно, це потребує оновлення кожного разу, коли хтось зареєструє відкритий ключ, і це призведе до розриву. Можна також тримати відкриті ключі в руках DNS-серверів 1 , але DNS-сервери також можуть бути підроблені, і DNS не є захищеним протоколом.

Тож єдиний варіант, який залишився - це "ланцюжок" довіри через механізм підписання. У веб-переглядачі зберігаються реквізити кількох ЦС, і ваш сертифікат буде надісланий разом з ланцюжком інших сертифікатів, кожен з яких підписує наступний і піднімається до кореня / довіреного / вбудованого CA. Завдання CA - переконатися, що домен належить вам, перш ніж підписати для вас сертифікат.

Оскільки, як компанія CA - це бізнес, вони беруть плату за це. Деякі більше, ніж інші.


Якщо ви зробили власний сертифікат, ви отримаєте помилку, схожу на:

введіть опис посилання тут

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

1. Зрештою, ваш запис DNS створюється під час реєстрації домену. Використання більш надійного протоколу, який дозволяє одночасно реєструвати відкриті ключі, було б цікавою концепцією.


Ви також можете використовувати зшивання DNSSEC для свого сертифікату SSL, тому сертифікат отримує (в кінцевому рахунку) ICANN як CA, а не від іншого сертифікаційного органу. Жоден із поточних веб-переглядачів не підтримує це, хоча Chrome раніше.
Річард Ґадсден

На сьогоднішній день у вас є записи DANE та його DNS-адреси TLSA, що дозволяє обмежувати певні послуги певними ключами або конкретними СА.
Патрік Мевзек

5

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

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

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


4

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

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

Для багатьох систем "підписання коду" вимагалося від уповноваженого КА в минулому, яке керується політикою, але оскільки самопідписаний сертифікат настільки численний, він вже не на 100% примусовий.


4

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


3

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

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

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


3

Нещодавно LetsEncrypt оголосив про наявність своїх інструментів командного рядка для створення дійсних сертифікатів.

Жодних електронних листів перевірки, складного редагування конфігурації, сертифікатів з минулим терміном дії не порушено ваш веб-сайт І звичайно, оскільки Let's Encrypt надає сертифікати безкоштовно, не потрібно організовувати оплату.

Для тих, хто цікавиться, чи справді ці сертифікати дійсні в основних браузерах, відповідь - так:

19 жовтня 2015 року проміжні сертифікати перекреслили IdenTrust, завдяки чому всі сертифікати, видані Let Encrypt, отримали довіру від усіх основних браузерів.

..... 8 березня 2016 року Let's Encrypt видав свій мільйонний сертифікат після семи місяців існування. [39]

12 квітня 2016 року Let's Encrypt покинув бета-версію.

Посилання для системного адміністратора та розробників: https://letsencrypt.org/getting-started/

В епоху технології blockchain та усунення сторонніх довірчих систем, саме час видачі дорогих сертифікатів кількома обраними органами влади ставить під сумнів.

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


2

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

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


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

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

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


Іншими словами, сертифікат, який підписує власний підпис, означає «Я засвідчую, що я такий, хто є - довіряйте мені !».


2
Це правильно, але все ж варто зауважити, що сплачені серти - це лише доказ того, що хтось пережив проблеми з оплатою грошей органу церта. Люди з продажу з іншого боку Verisign / Namecheap / Wthing-CA не збираються робити більше, ніж лише надіслати сертифікат на hostmaster@example.org (наприклад, вони надішлють його на потенційний фішинг-сайт exqmple.org) .
89c3b1b8-b1ae-11e6-b842-48d705

1
@tristan Цілком правдиво, вони могли використовувати кращі формальні процедури для подібних речей, але я думаю, що логістичні вимоги були б необґрунтованими.
Томас

1
@tristan - це недосконала система, але влада Церта має певний стимул бути надійними. Наприклад, якщо вони дали випадковій людині сертифікат Google, вони будуть видалені з усіх браузерів за короткий час. Вони також пропонують серти "розширеної валідації", що, теоретично, означає, що вони роблять більше перевірки. Будь-хто з них може вирішити, що для цього потрібні особисті тести ДНК, якщо вони думають, що це зміцнить їх репутацію та заробить їх бізнес.
Натан Лонг

1
@NathanLong Йдеться не про те, щоб дати "Google Cert" якомусь недобросовісному голові, це навіть те, що навіть EV Cert все ще є лише "перевіркою електронної пошти з цього домену". У будь-якому випадку, ми кружляємо одні і ті ж пункти: а) користувачі все одно повинні знати, щоб не давати гроші на payqal.com; б) бар'єр витрат на SSL для деяких аферистів не варто; в) платний серт означає, що це більше ймовірно, що сайт, ймовірно, є пошуком DNS, який потрібно шукати, і г) розумним підходом до надання початкового значення в сценарії "цей сервер належить тим самим / іншим людям, ніж останній раз, коли ви перевіряли"
89c3b1b8- b1ae-11e6-b842-48d705

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

1

Щоб це було коротко і просто ... і трохи відвернути сказане ...

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

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

Комп'ютер не потребує підключення, щоб ваші цифрові продукти були підтверджені та підтверджені вашим сертифікатом ... Ви повинні перенаправити перевірку на сертифікаційну особу.


1

Вибачте, що пізніше зайшов у цю дискусію - я подумав, що варто зазначити, що, використовуючи openssl, можна створити приватний CA з власним кореневим сертифікатом, а потім створити серверні сертифікати, підписані цим CA. За умови, що кореневий сертифікат CA імпортується в браузер, і браузеру буде запропоновано його прийняти, сертифікат сервера буде прийнято без коментарів. (Очевидно, що це лише життєздатний варіант, якщо спільнота користувачів невелика, і всі користувачі знають один одного особисто.)


-2

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


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