Сравнение Let’s Encrypt, коммерческих и частных центров сертификации и самоподписанных SSL-сертификатов

Вступление

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

Основные преимущества SSL-соединений связаны сprivacy иdata integrity. Соединения являются частными, потому что шифрование предотвращает прослушивание. Целостность данных обеспечивается криптографической проверкой того, что вы подключаетесь к нужному серверу (а не мошенником), и проверкой того, что отдельные сообщения не были подделаны при передаче.

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

глоссарий

Прежде чем мы начнем, мы определим некоторые общие термины, используемые при обсуждении безопасности SSL:

Безопасность транспортного уровня (TLS)

Transport Layer Security - это новый протокол безопасности, который заменяет Secure Sockets Layer (SSL). Хотя более вероятно, что современное зашифрованное соединение использует TLS, имя SSL застряло на популярном языке и мы будем здесь использовать.

сертификат

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

Центр сертификации (CA)

Центры сертификации проверяют подробности запроса владельца домена на SSL-сертификаты, а затем - если все проверяется - выпускают и подписывают сертификаты сервера. Браузеры и операционные системы поддерживают список доверенных центров сертификации. Если сертификат сервера подписан одним из этих доверенных ЦС, он также будет доверенным.

Проверка домена (DV)

Сертификат, подтвержденный доменом, будет выдан тому, кто доказал, что контролирует доменное имя, запрашиваемое для сертификата. Это доказательство часто принимает форму предоставления уникального токена с вашего веб-сервера или записей DNS, которые ЦС будет проверять перед выдачей сертификата.

Проверка организации (OV)

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

Расширенная проверка (EV)

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

В отличие от сертификатов DV и OV, EV не может быть выдан как подстановочный сертификат.

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

Сертификат подстановочного знака

Вместо выдачи определенного полного доменного имени (например,app.example.com) сертификаты с подстановочными знаками действительны для всего диапазона имен поддоменов. Таким образом, сертификат, выданный*.example.com, будет охватывать любой поддомен example.com, напримерapp.example.com иdatabase.example.com. Символ звездочки - этоwildcard, и его можно заменить любым допустимым именем хоста.

Список отзыва сертификатов (CRL)

Сертификаты SSL могут включать информацию о том, как получить доступ к списку отзыва сертификатов. Клиенты будут загружать и проверять этот список, чтобы убедиться, что сертификат не был отозван. CRL в основном были заменены респондентами OCSP.

Протокол статуса сертификата онлайн (OCSP)

Протокол OCSP является заменой CRL с преимуществами, заключающимися в том, что он работает в режиме реального времени и требует меньшей пропускной способности. Общая операция аналогична: клиенты должны запросить ответчик OCSP, чтобы проверить, был ли сертификат отозван.

Коммерческие центры сертификации

Коммерческие центры сертификации позволяют приобретать сертификаты DV, OV и EV. Некоторые предлагают бесплатные доменные сертификаты с определенными ограничениями (например, без подстановочных знаков).

  • Process: Ручной процесс для начальной настройки и обновления

  • Cost: примерно 10–1000 долларов

  • Validation: DV, OV и EV

  • Trust: По умолчанию доверено в большинстве браузеров и операционных систем

  • Wildcard Certificates: Да

  • IP-only Certificates: Некоторые выдадут сертификаты для IP-адресовpublic

  • Expiration Period: 1–3 года

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

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

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

Давай зашифруем

Let’s Encrypt предоставляет автоматизированный механизм для запроса и продления бесплатных сертификатов, подтвержденных доменом. Они создали стандартный протокол - ACME - для взаимодействия со службой для автоматического получения и обновления сертификатов. Официальный клиент ACME называетсяCertbot, хотя существует множество альтернативных клиентов.

  • Process: Первоначальная настройка и обновление автоматизированы. Только официальные настройки Apache и Nginx автоматизированы с помощью официального клиента, но сертификаты можно загружать и использовать независимо от какого-либо конкретного серверного программного обеспечения.

  • Cost: Бесплатно

  • Validation: только DV

  • Default: По умолчанию доверено в большинстве браузеров и операционных систем

  • Wildcard Certificates: Нет (Planned for January 2018)

  • IP-only Certificates: Нет

  • Expiration Period: 90 дней

Сертификаты Let Encrypt являются недолговечными, чтобы стимулировать автоматическое обновление и сократить время, в течение которого злоумышленник может использовать любые скомпрометированные сертификаты.

Если у вас есть сервер, который является общедоступным и на него указывает действительное доменное имя, то Let Let Encrypt может быть хорошим вариантом. Пусть серверам Encrypt нужно связаться с вашим веб-сервером или получить общедоступную запись DNS, чтобы убедиться, что вы управляете доменом, поэтому использовать его для частного сервера за брандмауэром в локальной сети может быть немного сложнее. Тем не менее, это все еще возможно при использовании авторизации Let Encrypt на основе DNS.

Let’s Encrypt не будет предоставлять сертификаты для чистого IP-адреса.

Если вам нужен сертификат EV или сертификат с подстановочными знаками, Let’s Encrypt не подходит. Обратите внимание, что Let's Encrypt может создать сертификат, содержащий до 100 имен хостов, поэтому вполне возможно, что вам не нужен подстановочный знак для вашего варианта использования, вам может просто понадобиться сертификат, который охватывает все ваши существующие субдомены.

Тем не менее, из-за ограничений скорости API Let Encrypt, если у вас много поддоменов или динамических поддоменов, которые можно создавать на лету, Let Encrypt может не подойти.

Самоподписанные сертификаты

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

  • Process: Создание сертификата вручную, без механизма продления

  • Cost: Бесплатно

  • Validation: DV и OV

  • Trust: По умолчанию нет. Каждый сертификат должен быть помечен вручную как доверенный, так как не задействован общий центр сертификации.

  • Wildcard Certificates: Да

  • IP-only Certificates: Да, любой IP

  • Expiration Period: Любые

Самоподписанные сертификаты можно создать с помощью командыopenssl, которая поставляется с библиотекой OpenSSL. Вы можете найти точные необходимые команды и дополнительную информацию об OpenSSL в нашем руководствеOpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs.

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

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

Частные центры сертификации

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

  • Process: Создание и обновление сертификата вручную, а также ручная настройка самого центра сертификации

  • Cost: Бесплатно

  • Validation: DV и OV

  • Trust: По умолчанию нет. Вы должны вручную распространять свой личный сертификат CA клиентам, чтобы установить доверие

  • Wildcard Certificates: Да

  • IP-only Certificates: Да, любой IP

  • Expiration Period: Любые

Как и в случае с самозаверяющими сертификатами, вы можете создать частный ЦС с помощью инструментов командной строки, которые поставляются с библиотекой OpenSSL, но были разработаны некоторые альтернативные интерфейсы для упрощения процесса. tinyCA - это графический интерфейс для этого процесса, аcaman - программа командной строки. И то, и другое облегчает создание ЦС, а затем выдачу, обновление и отзыв сертификатов.

Частный ЦС является хорошим вариантом, если у вас есть несколько сертификатов для создания и вы можете распространять и устанавливать ЦС для своих пользователей вручную. Это, вероятно, ограничивает вас внутренним использованием внутри организации или небольшой группы технически подкованных пользователей, которые могут правильно установить ЦС. Более крупные ИТ-отделы часто имеют средства для автоматического развертывания ЦС для своих пользователей, что делает это решение более привлекательным для них.

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

Одним из недостатков является то, что запуск ЦС сопряжен с некоторыми трудностями, и требуются некоторые знания по настройке и поддержке в безопасном режиме.

Если для вашего использования важен правильный отзыв, вам также потребуется поддерживать HTTP-сервер для списка отзыва сертификатов или респондента OCSP.

Заключение

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

Если вы хотите глубже погрузиться в SSL и варианты, которые мы обсуждали, вам могут помочь следующие ссылки:

  • OpenSSL documentation подробно описывает библиотеку и ее команды.

  • ВCA/Browser Forum центры сертификации и поставщики браузеров разрабатывают требования и передовые методы работы центров сертификации. Это включает в себя такие правила, как срок действия сертификатов и их выдача для непубличных доменных имен.

  • Let’s Encrypt CA содержит дополнительную информацию о протоколе ACME.

Related