Почему я должен платить за сертификат 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 являются примерами CA. Но их намного больше; в этой записи, Firefox доверяет 154 ЦА .
Вау. Но как это отвечает на мой вопрос?
Я, добрался до этого ...
Вот вещь Механика, которую я изложил выше, распространяется на все сертификаты. Если у вас есть правильный, доверенный сертификат для вашего сайта, он будет работать. В сертификатах бренда А нет ничего особенного по сравнению с сертификатами бренда В; все они подчиняются одним и тем же требованиям CA и одной и той же криптографической математике.
И даже если вам нравится CrediCorp лучше - потому что вы знаете, они звучат ооочень более надежно - их использование не поможет вам. Если злоумышленник может убедить ShabbyCorp выдать ему сертификат для вашего сайта, злоумышленник может использовать этот сертификат для олицетворения вашего сайта, независимо от того, где вы его получили.
Пока Firefox доверяет ShabbyCorp, посетители не увидят разницы. (Да, посетители могут получить сертификат и просмотреть его, посмотреть, кто его выдал. Но кто это делает?) Что касается подделки сертификатов, это делает всю систему слабой, как самый слабый из 150+ ЦС. Почему да, это страшно, и это, вероятно , самые большие критики люди всей этой схемы. Тем не менее, это то, что мы застряли.
Дело в том, что если вы не доверяете ЦС в выдаче «хороших» сертификатов, то получение ваших сертификатов в другом месте вам мало поможет.
Понял, все одинаково обречено. Нет предостережений?
Weeeelllll ...
Давайте начнем с того, что убил то, что я высказал в предыдущем разделе. В настоящее время можно заблокировать ваш домен только для выбранных вами ЦС, используя DNS-CAA . Предположим, что вы доверяете Comodo и не доверяете другим CA, можно попросить все CA, кроме Comodo, не выдавать сертификаты для вашего домена. В теории. (Поскольку DNS-CAA не проверяется браузерами, а только путем выдачи CA. Таким образом, скомпрометированный CA может игнорировать эту защиту.)
Если вы готовы пережить эту проблему, то возникает вопрос: действительно ли Let's Encrypt менее надежен? Или менее безопасно? Надежность - это сложный вопрос, как вы это оцениваете? Все, что я могу сказать, это то, что в моем восприятии Let's Encrypt не менее заслуживает доверия, чем другие CA. Что касается безопасности их проверок, они очень похожи на то, что делают коммерческие ЦС (для сертификатов DV в любом случае). Смотрите также этот вопрос .
Для чего это стоит: сеть StackExchange, частью которой является этот сайт, в настоящее время использует сертификаты Let's Encrypt. Большинство людей никогда бы этого не заметили, и если бы они это сделали, я искренне сомневаюсь, что это будет много для них значить.
Чтобы сертификат имел смысл, выдавшему ЦС должны доверять поставщики программного обеспечения , в противном случае сертификат бесполезен. Я использовал Firefox в качестве примера, но на самом деле вы хотите, чтобы ЦС доверял по крайней мере текущие и несколько более старые версии Firefox, Chrome, Windows, Mac OS X, iOS и Android. И десятки мелких игроков. CA, которые стоит рассмотреть (включая ComodoSSL и Let's Encrypt), доверяют всем этим объектам.
Если ЦС ведет себя неправильно или считается ненадежным, он будет удален из различных хранилищ доверия достаточно быстро, чтобы испортить день владельцев сертификатов. Два известных примера, о которых я знаю, это DigiNotar и StartCom / WoSign (ознакомьтесь со статьями, они дают интересную информацию о динамике доверия!). Так что, если вы думаете, что Let's Encrypt испортится или будет сброшен по какой-то другой причине, то, если вы не будете их использовать, вы не сможете попасть в этот конкретный случай.
Сертификаты используют магию крипто-математики ; вопрос в том, какая крипто- математическая магия ? Что если это слабая магия? Это на самом деле реальная проблема, и CA показали, что тоже могут ее улучшить. К счастью, поставщики браузеров преодолели отставание, установив здесь минимумы для принятия сертификатов. Например, сертификаты, использующие RSA-1024 или SHA-1 , теперь отклоняются большинством браузеров, поэтому любой работающий на практике сертификат не использует эти устаревшие крипто-примитивы. В результате любой CA (включая Let's Encrypt) довольно сложно разочароваться в этой части.
Раньше я более или менее говорил, что все сертификаты созданы равными. Я солгал, это не так. В частности, то, что я обсуждал до сих пор, это « Сертификаты домена (DV)», которые используют подавляющее большинство веб-сайтов. Они обеспечивают определенную степень уверенности в том, что ваш браузер фактически общается с доменом, который он показывает в строке URL. Существуют также сертификаты « Подтверждение организации (OV)» и « Расширенная проверка (EV)», которые требуют гораздо более тщательной проверки со стороны ЦС. В частности, вы должны быть в состоянии получить сертификат EV только для somebank.com
/ SomeBank Inc., если вы можете доказать , что вы находитесь SomeBank, Inc.
Сертификаты EV намного дороже получить (приблизительная сумма: сотни евро / долл. США в год), и они могут быть вознаграждены зеленой строкой URL или замком в браузере, возможно, с отображением «SomeBank, Inc.» также. В отличие от сертификатов DV, они также предлагают некоторую идею относительно того, кому этот сайт может фактически принадлежать. С другой стороны, они могут выглядеть более законными. Разочарование в том, что пользователи редко обращают на них внимание, поэтому их эффективность ограничена.
Злоумышленник с поддельным сертификатом DV может по-прежнему выдавать себя за сайт, просто без дополнительной визуальной подсказки, которую может предложить сертификат EV, а пользователи обычно не замечают различий. И наоборот, можно получить вводящий в заблуждение сертификат EV, чтобы облегчить фишинг. В результате и Chrome, и Firefox будут отказываться от своих визуальных указаний на сертификаты EV, и некоторые люди считают, что они полностью исчезнут.
Если вы являетесь банком, вам, вероятно, все еще нужен сертификат EV. Иначе не так уж и много. Но если сделать нужно EV, Давайте шифровать не для вас , потому что они просто не предлагают сертификаты EV.
Сертификаты действительны только в течение ограниченного времени . Сертификаты от типичного коммерческого центра сертификации, как правило, действительны в течение одного года, но я видел что-то от трех месяцев до трех лет. Сертификаты Let's Encrypt действительны в течение 90 дней , что составляет короткую сторону этого диапазона, поэтому вам придется часто их обновлять. Для пользователей Let's Encrypt это обычно автоматизировано, поэтому сертификаты заменяются каждые 60 дней.
Возможность автоматизировать обновление с помощью широко доступного программного обеспечения на самом деле более приятна, чем ежегодный О, черт возьми, мой сертификат истек? Какой у меня логин в ЦС? Как это работает снова? ритуал, который большинство небольших сайтов, кажется, в конечном итоге в коммерческих центрах сертификации.
Раньше я называл это страшным, что существует так много CA, которым мы все должны доверять. Наличие множества ЦС также является преимуществом в том смысле, что удаление одного из наших хранилищ доверия оказывает ограниченное влияние на пользователей. В частности, исключение одного ЦС повлияет только на сертификаты, выпущенные этим ЦС. Если все заканчивают тем, что используют один единственный CA (который, как некоторые опасаются, может случиться с Let's Encrypt ), мы концентрируем все наше доверие и теряем преимущества этой фрагментации.
И, наконец, есть и другие преимущества , которые может предложить платный CA, такие как коммерческая поддержка или гарантия SSL на миллион долларов . Я мало верю в оба этих аспекта, но это то, что Let's Encrypt не предлагает.
Голова болит ... У меня был вопрос, я думаю?
Используйте то, что вам удобно! Для сертификатов DV мало что фактически отличает различные CA. Я использую Let's Encrypt как профессионально, так и в частном порядке, и я доволен этим.
На самом деле есть только четыре потенциальные причины, чтобы избежать Let's Encrypt:
- Если вам нужны сертификаты EV (или OV).
- Если вы не можете или не хотите автоматизировать продление сертификата и срок действия сертификата три месяца слишком короток для вас.
- Если вы не доверяете Let's Encrypt (но обязательно учтите и другие меры, такие как DNS-CAA, и вам, вероятно, также следует занести черный список Let's Encrypt в ваш браузер).
- Если вы считаете, что Let's Encrypt по каким-либо причинам будет прекращен или удален из браузеров.
Если ни один из них не относится к вам, не стесняйтесь не платить за ваши сертификаты.