butteff
@butteff
Раз в тысячу лет заправляю свитер в носки

Как понять суть работы SSL сертификатов?

Господа, прошу Вашей помощи. Хочу понять суть работы SSL. Я понимаю это так, что при установлении соединения через https, этот SSL сертификат, который принимает клиент, шифрует данные и трафик между ними становится зашифрованным и безопасным. Верно ли я это понимаю?
Если да, то почему люди покупают SSL сертификаты, которые иногда стоят очень дорого, когда их можно сгенерировать самому через openssl какой-нибудь и установить у себя на сервере?
В чем разница? Я пытался гуглить, но кажется запутался еще сильнее.
Как я понял, покупные сертификаты подписываются авторизованными центрами, у которых есть договоренность с браузерами. И эти сертификаты мол считаются безопасными и принимаются сразу клиентом без вопросов и проблем. Ок, т.е. люди платят десятки тысяч рублей чтобы у пользователя не всплывал вопрос "доверяете ли вы этому сайту да\нет?". Мне кажется это дорогим удовольствием. Ладно там для солидности или брендинга, мог бы понять еще, но эта тема не распространена и 99.9% заходящих на сайт не поймут всей элитарности конторы, мол мы можем. Лучше бы красивый номер купили тогда, это уже всем понятно. Можете мне объяснить подробнее смысл этого всего? В чем я заблуждаюсь?
  • Вопрос задан
  • 5248 просмотров
Решения вопроса 5
Есть такое понятие как "центр сертификации". Если вы выпускаете самоподписанный сертификат, то клиент не будет ему доверять, т.к. ваш центр сертификации (ваш сервер, который генерировал сертификат) для него также является не доверенным.
Как правило в современных ОС (android, mac, win) по умолчанию встроены доверенные сертификаты глобальных центров сертификации (thawte, symantec, google и т.п.) именно у них вы сертификат за деньги и покупаете, в противном случае вашим клиентам придется вручную устанавливать корневой сертификат вашего СЦ в доверенные, что не очень безопасно с точки зрения пользователя.
Ответ написан
ifaustrue
@ifaustrue
Пишу интересное в теллеграмм канале @cooladmin
Вопрос можно разбить на две составляющие.

1. Что такое сертификаты и какова их суть работы?
Для того, чтобы разобраться во всех перипетиях сертификации и сути центров сертификации обратимся к аналогии из физического-реального мира.
Сертификаты, созданы для того, чтобы подтвердить что я - это я. И что Петя - это Петя. В реальном мире для этого используются всяческие уникальные признаки - фотография, отпечатки, ДНК и рукописная подпись. Последняя в свою очередь работает только в двух случаях: первый - я вижу что Петя подписал документ - никто другой этого сделать же не мог, я же видел что это сделал Петя, и второй случай - я знаю что документ подписал Петя, так как у меня есть доказательства того, что вот эта вот закорючка - Петина подпись.
Такие доказательства в реальности очень распространены, но ближайшая аналогия - это просто паспорт. В паспорте, помимо прочего, есть образец подписи. Паспорт мы можем предъявить для доказательства того что я это я, а Петя это Петя. Этот паспорт мне выдал наш общий удостоверяющий центр, которому мы оба доверяем.

С сертификатами примерно та же история, у меня есть подпись, которую я передаю вместе с неким документом (или просто объектом), но доверять мне можно только если я приложу отсылку на некий контролирующий орган, которому мы оба (но главное получатель) доверяем. Т.е. получив некий объект, на котором есть чья то подпись я иду в центр сертификации (контролирующий орган) и спрашиваю "У меня вот тут штука - она норм?", мне говорят да или нет.

Если я готов доверить центру сертификации, который и выпустил сертификат - то ок, буду ему доверять. Это будет само-подписанный серт. Если не готов, то подавайте сюда сертик выданный УЦ, да ещё и чтобы зелёная плашечка ставилась в браузере.

2. Вопрос про то чем же сертики отличаются?
Из выше описанного следует, что они отличаются классом "доверия" и количеством\типом объектов которые я могу ими подписывать. Есть ещё всякие плюшки и мелочи, но основное я описал =)
Ответ написан
leahch
@leahch Куратор тега Linux
3Д специалист. Долго, Дорого, Дерьмово.
1) Многие браузеры начинают ругаться на самоподписанный сертификат, требуя дополнительных действий от пользователя, доверять ли неизвестному сертификату. Соответственно за это и платится денюжка. Поэтому многие предпочитают купить сертификат. Если у вас внутренний корпоративный портал, то можно скопировать сертификат на все компьютеры фирмы, тогда браузеры его примут за свой.
2) Сертификат бывает не только подписанный, но и разным числом бит (512,1024,2048), определяя стойкость шифрования, за это тоже отдельно платится денюжка. Т.е. если нужен сертификат для денежных проводок, то разряйтесь на более надежный. К слову сказать, правильная генерация сертификата требует хорошего генератора случайных чисел, например на основе датчика температуры. Это к вопросу о стоимости...
3) Сертификат может быть сгенерирован не только для сайта, но и для его алиасов, за это тоже часто берут денег. Например домен example.com и алиасы www.example.com, mail.example.com, smtp.example.com, imap.example.com и т.д.
3а) Сертификаты бывают и для генерации и подписывания других сертификатов, отдельная денюжка. Это нужно например для развертывания публичного VPN, например.
4) Заходя на сайт (для сайта можно на стойкий сертификат и не разоряться, а купить базовый уровень), сразу видеть, что как минимум коннект зашифрован иногда дорогого стоит.
5) Не нужно забывать об инфраструктуре отзыва и замены сертификатов, которую разворачивает производитель сертификатов, ведь сертификат можно украсть, подменить или еще как-то дискредитировать, а производитель будет гарантировать быстрый отзыв и перегенерацию, что будет происходить прозрачно для ваших пользователей.
Ответ написан
Комментировать
ivankomolin
@ivankomolin
Ок, т.е. люди платят десятки тысяч рублей чтобы у пользователя не всплывал вопрос "доверяете ли вы этому сайту да\нет?".


Да, это именно так. Потому как "самоподписанному" сертификату доверять нельзя.

Доверять "самоподписанному" сертификату по сути может только тот, кто его создал) Поэтому для каких-то внутренних нужд использование таких сертификатов приемлемо.
Ответ написан
@alifar
из выше перечисленных ответов следует следующее:
Например, если вы ставите сертификат на сайт, которым будут пользоваться неопределенные пользователи, то нужно (крайне желательно) ставить платный серт. А то вопрос о подтверждении сертификата будет вводить в заблуждение пользователей.
Если вы делаете какой-нибудь API для конкретных клиентов (например, с кем у вас связаны договорные отношения), то выпускать и подписывать сертификат можно самому. Затем клиентам раздавать корневые, чтоб интеграционный модуль на их стороне работал без вопросов. Кроме этого, не забудьте, что есть правила безопасности для самоподписанных сертификатов. Например, вы должны вести учет всех выданных сертификатов, их срок действия, список отозванных сертификатов и т.п. По мне, мелкомягкие предоставляет удобный инструмент для работы с центром сертификации и самими сертификатами. с openssl дружу не очень сильно, возможно мнение в будущем поменяется.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы