Зачем мне покупать сертификат SSL, когда я могу создать его локально?

57

У меня возникают проблемы с пониманием того, почему нам нужно приобретать SSL-сертификаты, когда мы можем генерировать их локально, используя openSSL. В чем разница между сертификатом, который я приобретаю, и тестовым сертификатом, который я генерирую локально? Это просто большая афера?

SK»
источник
17
С точки зрения триады CIA по информационной безопасности, самозаверяющие сертификаты обеспечивают конфиденциальность и целостность (т. Е. Они позволяют зашифрованные сообщения между двумя сторонами), но только сертификаты, подписанные доверенным источником, обеспечивают подлинность (т. Е. Другая сторона в вашем зашифрованном разговоре на самом деле, кто вы думаете, что это).
Апсиллеры
10
Надеемся, что когда DNSSEC вступит в игру, люди смогут создать свой собственный сертификат и сохранить его в записи DNS. Тогда цепочки доверия DNSSEC будет достаточно, чтобы доказать, что сертификат принадлежит владельцу домена. (Я не думаю, что это формализованная спецификация (пока), но было бы неплохо)
jackweirdy
2
Для внутреннего использования вы можете развернуть сертификат как доверенный с помощью групповой политики (в Windows).
Бен
4
Я часто задаюсь вопросом, почему люди тоже не принимают мои собственные печатные деньги;)
tgkprog
1
Примечание. Существуют бесплатные базовые поставщики сертификатов. 90% потребностей людей могут быть удовлетворены этим. А в некоторых центрах сертификации есть очень дешевые сертификаты, и нет причин разорять банк, независимо от того, что вам нужно. (если не считать делегацию, конечно)
Крис С.

Ответы:

72

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

В противном случае я мог бы сделать свои собственные сертификаты для google.com или yourbank.com и притвориться ими.

Платные сертификаты не обеспечивают какой-либо дополнительный уровень шифрования по сравнению с собственной подписью (обычно). Но самозаверяющий сертификат заставит браузер выдать ошибку.

Да, части SSL - это мошенничество (сертификат verisign против geotrust, где verisign до 100 раз дороже), но не все.

Если это все внутреннее, то нет необходимости в платном сертификате, так как вы можете использовать свои собственные методы доверия (например, ничего не делать или, возможно, просто проверять отпечатки пальцев).

Марк Хендерсон
источник
8
Если это все внутренние вещи, вы можете развернуть свой сертификат как доверенный, используя групповую политику.
Бен
2
С другой стороны, подписание драйверов - это афера. Для чего это да, это огромный грабеж, но у нас нет выбора. successsoftware.net/2008/02/27/…
Мэтт
2
@Matt - я читал эту статью раньше; когда мы смотрели на подписывание кода на работе. Мы решили просто самостоятельно подписать и посоветовать людям проверить подписи. К счастью, у нас очень высокотехнологичные пользователи (в основном).
Марк Хендерсон
А самоподписанные сертификаты генерируют предупреждения во всех браузерах. Хотя сертификаты от поставщиков могут быть проверены всеми основными браузерами, потому что они имеют встроенные открытые ключи этих поставщиков и могут проверить ваши сертификаты и подтвердить, что они действительно были подписаны поставщиком.
Мэтт
23

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

Сначала давайте рассмотрим, что произойдет, если мы не будем использовать сертификаты. Вместо этого сервер отправлял открытый ключ в виде открытого текста, а браузер инициировал зашифрованное соединение с его использованием (первое, что он сделал бы, - это зашифровал свой открытый ключ и надежно отправил его). Что если я и нападающий вклинились посередине? Я мог бы на лету заменить ваш открытый ключ на мой, иметь зашифрованное соединение с браузером, расшифровать все, что я получаю, зашифровать его с помощью вашего открытого ключа и отправить его (и наоборот для трафика типа ответа). Ни одна из сторон не заметит разницы, так как никто не знает открытых ключей заранее.

Итак, мы установили, что браузеру нужно как-то доверять моему открытому ключу. Один из способов сделать это - сохранить все зарегистрированные открытые ключи в браузере. Конечно, это потребовало бы обновления каждый раз, когда кто-то регистрировал открытый ключ, и это привело бы к раздутию. Можно также хранить открытые ключи в руках DNS-серверов 1 , но DNS-серверы также могут быть подделаны, и DNS не является безопасным протоколом.

Таким образом, единственный оставшийся вариант - «связать» доверие через механизм подписи. В браузере хранится информация о нескольких центрах сертификации, и ваш сертификат будет отправлен вместе с цепочкой других сертификатов, каждый из которых подписывает следующий и переходит в корневой / доверенный / встроенный центр сертификации. Задача CA - убедиться, что домен принадлежит вам, прежде чем подписывать сертификат для вас.

Поскольку CA является бизнесом, они взимают за это плату. Некоторые больше, чем другие.


Если вы сделали свой собственный сертификат, вы получите ошибку, похожую на:

введите описание ссылки здесь

Там нет значения для неподписанного сертификата. Это все равно что взять карандаш и буклет, нарисовать паспорт, в котором утверждается, что вы - Барак Обама. Никто не будет доверять этому.

1. В конце концов, ваша DNS-запись создается при регистрации домена. Использование более надежного протокола, который позволяет одновременно регистрировать открытые ключи, было бы интересной концепцией.

Manishearth
источник
Вы также можете использовать сшивание DNSSEC для своего SSL-сертификата, так что сертификат (в конечном счете) происходит от ICANN как CA, а не от другого центра сертификации. Ни один из текущих браузеров не поддерживает это, хотя Chrome привык.
Ричард Гадсден
И в настоящее время у вас есть DANE и его записи DNS TLSA, которые позволяют вам ограничивать определенные службы определенными ключами или определенными центрами сертификации.
Патрик Мевзек
5

Ответ на ваш вопрос зависит от вашей аудитории: поскольку вся система сертификатов основана на «доверии», ваши пользователи должны иметь возможность самостоятельно проверять свои сертификаты или доверять третьей стороне, которая выполнила эти проверки и продемонстрировала успех, подписав подпись. ваш сертификат Термин «для подтверждения ваших сертификатов», который я использовал, немного неточен: длинная версия должна звучать так: «для подтверждения того, что вы являетесь владельцем сертификата и имеете право его использовать».

Если все ваши пользователи знают вас лично и у вас есть техническая возможность доказать, что ваш сертификат был выдан вами, техническая необходимость в использовании сертификата «сертифицированного» поставщика отсутствует. В этом случае самозаверяющий сертификат может быть даже лучше, чем у одного из провайдеров.

Но в большинстве случаев у пользователей нет возможности сделать этот процесс самостоятельно. Здесь эти поставщики SSL выходят на рынок. Они предлагают услугу для выполнения этих проверок и выражают результат проверок, подписывая сертификат. Но один важный факт, который нужно иметь в виду: подписывая сертификат, провайдер SSL выражает, что он проверил личность издателей сертификатов в соответствии со своей собственной политикой подписания. Таким образом, пользователь должен решить, является ли эта политика достаточно точной и может ли он / она доверять поставщику.

mschenk74
источник
4

Суть в том, что если сертификат является самогенерируемым, обычные пользователи не могут проверить его достоверность. Для купленного сертификата они предполагают, по крайней мере, проверить, что печать внутри сертификата является правильной. Идея: если вы поместите свой телефон и адрес в сертификат, CA предположит проверить это, но они редко делают.

Кроме того, сертификат покупки отслеживается, это означает, что пользователь всегда может отследить, откуда поступил сертификат, в то время как самоподписанный сертификат является только случайным идентификатором.

Для многих систем «подписывание кода» требовалось от авторизованного ЦС в прошлом, что обусловлено политикой, но поскольку самоподписанного сертификата так много, теперь он уже не на 100% обеспечен.


источник
4

Нет технической разницы (ваши собственные не менее безопасны), кроме организационной: сертификат вашего CA не является частью стандартной установки браузера. Это делает неудобным для большинства людей подключение к вашему сертификату. Но не имеет смысла покупать сертификат для внутренней сети.

Хауке Лагинг
источник
3

Все сводится к доверию. «Сертифицированный» поставщик SSL предположительно заслуживает уважения (хотя этим можно манипулировать) по сравнению с самозаверяющим сертификатом самого сервера.

Если в вашей организации есть своя собственная подпись сертификата, то это вполне приемлемо и не должно вызывать каких-либо предупреждений для пользователей (при условии, что они используют вашу цепочку сертификатов в качестве надежного источника), но все равно создаст предупреждение, если вы попытаетесь использовать его извне.

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

szukalski
источник
3

Недавно LetsEncrypt объявил о доступности инструментов командной строки для создания действительных сертификатов.

Никаких проверочных писем, никаких сложных изменений конфигурации, никаких просроченных сертификатов, нарушающих ваш сайт. И, конечно же, поскольку Let's Encrypt предоставляет сертификаты бесплатно, не нужно организовывать оплату.

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

19 октября 2015 года промежуточные сертификаты стали кросс-подписанными IdenTrust, в результате чего все сертификаты, выпущенные Let's Encrypt, стали доверять всем основным браузерам. [20]

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

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

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

В эпоху технологии блокчейнов и ликвидации сторонних систем доверия пришло время ставить под сомнение вопрос о выпуске дорогих сертификатов несколькими избранными органами.

Хотя Letsencrypt не имеет ничего общего с технологией блокчейна, это начало в правильном направлении. Надо надеяться, что необходимость ежегодно платить высокую цену дорогостоящему центру сертификации подходит к концу.

surfbuds
источник
2

Проще говоря, самоподписанный сертификат SSL ничего не значит. Это не имеет значения для внешнего мира. Это все равно, что сказать: «У меня есть Испания» Вы могли бы честно думать, что вы делаете, но никто не собирается признать ваше требование.

По аналогии можно было бы придумать что-то, а затем заявить, что вы владеете правами на изобретение, но если вы не зарегистрировали патент в ведомстве, вам будет сложно поверить на это, не так ли?


Весь смысл сертификата в том, что он подписан властью, которой доверяют люди. Если какой-то веб-сайт имеет действительный сертификат SSL, это означает, что владелец столкнулся с проблемой регистрации своего веб-сайта, оплаты SSL-сертификата и получения официальной сертификации от какого-либо реального центра сертификации, так что это, вероятно, не дешевый фишинговый сайт. С другой стороны, если вы доверяете самозаверяющим сертификатам, то указанный фишинговый веб-сайт может просто создать свой собственный поддельный сертификат (который вы с радостью примете) и вуаля.

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

Что, вероятно, удовлетворительно, учитывая, насколько дорогими могут быть доверенные сертификаты SSL.


Другими словами, самоподписанный сертификат означает: «Я подтверждаю, что я тот, кто я есть - поверь мне !».

Томас
источник
2
Это правильно, но все же стоит отметить, что платные сертификаты являются лишь доказательством того, что кто -то столкнулся с проблемой выплаты денег органу по сертификации. Специалисты по продажам на другой стороне Verisign / Namecheap / Wh независимо-CA не собираются делать ничего, кроме как просто отправить сертификат на hostmaster@example.org (например, они отправят его на потенциальный фишинговый сайт exqmple.org) ,
89c3b1b8-b1ae-11e6-b842-48d705
1
@tristan Совершенно верно, они могли бы использовать более формальные процедуры для такого рода вещей, но я думаю, что логистические требования были бы необоснованными.
Томас
1
@tristan - это несовершенная система, но у некоторых органов власти есть какой-то стимул, чтобы быть заслуживающим доверия. Например, если бы они дали случайному человеку сертификат Google, они были бы удалены из всех браузеров в короткие сроки. Они также предлагают сертификаты «расширенной проверки», которые, теоретически, означают, что они делают больше проверок. Любой из них мог бы решить, что для этого необходимы персональные анализы ДНК, если они думают, что это укрепит их репутацию и принесет им прибыль.
Натан Лонг
1
@NathanLong Речь идет не о том, чтобы передать «сертификат Google» какому-то недобросовестному парню, а о том, что даже сертификат EV по-прежнему просто «кто-то может ответить на электронные письма с этого домена». В любом случае, мы обращаемся к одним и тем же пунктам: а) пользователям все еще нужно знать, чтобы не отдавать деньги на payqal.com, б) ценовой барьер для SSL не стоит некоторых мошенников, в) платные сертификаты означают, что это больше вероятно, что сайт, вероятно, будет поиском DNS, который вы хотели, и d) это разумный подход к предоставлению начального значения в сценарии «этот сервер принадлежит тем же / другим людям, что и в прошлый раз, когда вы проверяли»
89c3b1b8- b1ae-11e6-b842-48d705
Тристан, это часть стоимости. Очень недорогие сертификаты делают очень недорогие проверки. Очень дорогие сертификаты (на уровне предприятия) могут выполнять очень дорогую проверку. (хотя цена ни в коем случае не является прямым показателем того, насколько хорошо была выполнена работа по валидации) Некоторые сертификаты дают абсолютную гарантию того, кто вы есть, но большинство просто гарантирует, что у вас есть какой-то контроль над доменом, которому они выданы. .
1

Чтобы быть кратким и простым ... и немного опровергнуть то, что было сказано ...

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

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

К вашему ПК не нужно подключаться для того, чтобы ваши цифровые продукты были проверены и подтверждены вашим сертификатом ... вы должны перенаправить проверку в орган по сертификации.

ZEE
источник
1

Извините, что пришел к этому обсуждению так поздно - я подумал, что стоит указать, что с помощью openssl можно настроить частный ЦС с собственным корневым сертификатом, а затем создать сертификаты сервера, подписанные этим ЦС. При условии, что корневой сертификат CA импортирован в браузер, и браузеру сказано принять его, сертификат сервера будет принят без комментариев. (Очевидно, что это приемлемый вариант, если сообщество пользователей небольшое, и пользователи все знают друг друга лично.)

pd9370
источник
-2

Доверяете ли вы кому-то, кто говорит "Доверяй мне"? Уверенность в подлинности может быть обеспечена только «Доверенным органом», которому все доверяют. Вот почему мы должны копить большие деньги за сертификаты.

Ravi
источник
2
Согласно этой логике, не было бы бесплатных провайдеров сертификатов. Но есть.
Крис С