Лучшая практика развертывания SSL/TLS, часть 1. Теория / Хабр

Лучшая практика развертывания SSL/TLS, часть 1. Теория / Хабр Сертификаты

Что дальше?

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

Введение

SSL/TLS обманчиво кажется простой технологией. Он прост в развертывании, а потом он просто работает, не обеспечивая достаточного уровня безопасности. Но основная проблема заключается в том, что SSL/TLS нелегко правильно развернуть. Для того чтобы TLS обеспечивал необходимый уровень безопасности, системные администраторы и разработчики должны приложить дополнительные усилия в настройке своих серверов и в разработке приложений.

В 2009 году Qualys SSL Labs начала работу с SSL. Они хотели понять, как использовался TLS, и восполнить недостаток простых в использовании инструментов TLS, а также их документации. С помощью глобального исследования использования TLS, а также при помощи онлайновых инструментов оценки Qualys SSL Labs добилась некоторых своих целей. Но отсутствие документации по-прежнему дает о себе знать. Этот документ является шагом на пути к решению этой проблемы.

1. Приватный ключ и сертификат

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

1.1 Используйте 2048-битные закрытые ключи

Используйте 2048-битный RSA или 256-битные ECDSA закрытые ключи для всех ваших серверов. Ключи такой крепости безопасны и будут оставаться безопасными в течение значительного периода времени. Если у вас есть 1024-битные RSA ключи, то следует заменить их более сильными ключами как можно скорее.

1.2 Защитите закрытый ключ

Относитесь к закрытым ключам как к важным активам, предоставляя доступ к как можно меньшей группе сотрудников. Рекомендуемые меры:

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

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

• После компрометации отзывайте старые сертификаты и генерируйте новые ключи.

• Обновляйте сертификаты каждый год и всегда с новыми закрытыми ключами.

1.3 Обеспечьте охват всех используемых доменных имен

25 твитов об ssl-сертификатах

Лучшая практика развертывания SSL/TLS, часть 1. Теория / Хабр

SSL сертификаты. Для чего они нужны, какие бывают, от чего защищают, кто использует, как долго действуют, есть ли гарантия? Разберем основные вопросы – кратко, в режиме твиттера – не более 280 символов на ответ.

1. Что такое SSL?

SSL означает Secure Sockets Layer – это протокол, используемый для шифрования и аутентификации данных, передаваемых между приложениями, например, браузером и веб-сервером.

2. Как появился сертификат SSL?

SSL версии 1.0 был разработан Netscape в начале 1990-х. Но из-за недостатков безопасности так и не был опубликован. Первым общедоступным выпуском был SSL 2.0, вышедший в феврале 1995 года. Это была улучшенная версия, но лишь после полного изменения дизайна утвердилась версии 3.0.

3. В чем суть сертификатов?

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

4. Что такое TLS-сертификат?

TLS (Transport Layer Security) – преемник и улучшенная версия SSL, имеет более надежные алгоритмы шифрования, но несмотря на схожесть считается другим стандартом.

5. Какие же протоколы сейчас используются?

SSL, как ни странно сейчас не используются. Было 3 версии 1.0, 2.0 и 3.0 и на основе версии SSL 3.0 создали протокол TLS 1.0. Затем вышли версии TLS 1.1, 1.2 и 1.3, а применяются только две последние.

6. Какой принцип работы SSL-сертификата?

При подключении браузера к сайту происходит «SSL-рукопожатие» (создаются ключи “рукопожатия”), далее происходит обмен криптографическими данными и в конце формируются сессионные ключи, на основе которых происходит шифрование трафика.

Про сертификаты:  Тест: Ball, Noman, Seiko

7. Какие существуют сертификаты?

8. И для чего каждый из них?

9. Есть ли другие виды сертификатов?

Да, например, сертификат Multi-Domain SSL на несколько доменов – не требует покупки сертификатов на каждый домен и упрощает администрирование. Code Signing certificates предназначен для защиты вашего кода, контента и других файлов во время их передачи в онлайн режиме.

10. Какие данные в SSL-сертификате?

SSL-сертификат содержит информацию:

11. В чем различия между SSL и HTTPS?

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

12. Как узнать, использует ли сайт SSL/HTTPS?

Большинство браузеров помечают безопасные соединения, защищенные сертификатами SSL/TLS замком и/или сообщением.

Так выглядит защищенная страница (с замочком)
Так выглядит защищенная страница (с замочком)
А так выглядит незащищенная страница. К примеру, официальный интернет-портал правовой информации http://pravo.gov.ru не защищен (владелец ФСО России)
А так выглядит незащищенная страница. К примеру, официальный интернет-портал правовой информации http://pravo.gov.ru не защищен (владелец ФСО России)

13. Как браузер может понять, корректен ли сертификат? 

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

Лучшая практика развертывания SSL/TLS, часть 1. Теория / Хабр

14. Почему SSL сертификаты такие дорогие?

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

15. Существуют ли бесплатные сертификаты и насколько они безопасны?

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

16. Где купить?

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

Лучшая практика развертывания SSL/TLS, часть 1. Теория / Хабр

17. Что такое центр сертификации?

Центр сертификации (Certificate Authority, CA) – международная организация, которая выпускает и несет ответственность за SSL-сертификаты. CA проверяет домены и источники, подтверждающие подлинность организаций. Центрам сертификации доверяет 99% браузеров.

18. Каков процесс получения сертификата, после того как вы его оплатили?

Сначала вы генерируете CSR и секретный ключ. Затем отсылаете CSR в орган сертификации (CA) и получаете архив с текстовыми / бинарными файлами для разных типов веб-серверов. Затем устанавливаете его на хостинге или своем сервере.

19. Как воспользоваться SSL/TLS сертификатом?

20. Как проверить правильность настройки сертификата?

Один популярных способов: зайдите на сайт Qualys, введите имя сайта и нажмите кнопку “submit. Сервис осуществит проверку и выдаст оценку в баллах. Если сайт получил А или А , то сертификат работает корректно.

Лучшая практика развертывания SSL/TLS, часть 1. Теория / Хабр

21. Связаны ли как-то SSL-сертификат и продвижение в сети (SEO)?

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

22. Какой срок действия сертификата?

Коммерческий сертификат действует 1 год. Срок действия сертификатов неуклонно сокращался с 10 лет в 2021 году, далее до 3 лет в 2021 году, затем до двух лет в 2021 году и до года в настоящее время.  Бесплатные сертификаты действуют на 90 дней.

23. Почему SSL-сертификаты не делают вечными?

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

24. Защищает ли SSL данные сайта?

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

25. И всё-таки, зачем нужен SSL сертификат?

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

Про сертификаты:  Сертификат на маргарин в Cибири |

В заключение капля юмора. Так выглядит сайт с говорящим названием рубрики: “SSL сертификат купить дешево” – http://www.net.ru/ssl/ssl-sertifikat-kupit-deshevo

Лучшая практика развертывания SSL/TLS, часть 1. Теория / Хабр

Материал подготовлен компанией ITSOFT. Размещение и аренда серверов и стоек в двух ЦОДах в Москве; colocation GPU-ферм и ASIC-майнеров, аренда GPU-серверов. Лицензии связи, SSL-сертификаты. Администрирование серверов и поддержка сайтов. UPTIME за последние годы составляет 100%.

Ru-center – часто задаваемые вопросы о ssl-сертификатах

Сертификат может подтверждать наличие прав управления доменом, то есть удостоверять только домен. Такие сертификаты относятся к категории DV (Domain Validation). Просмотрев сертификат DV, пользователь может убедиться, что он действительно находится на том сайте, адрес которого введен в строке браузера, то есть что при доступе к сайту пользователь не был перенаправлен злоумышленниками на подложный веб-ресурс. Однако сертификат не содержит информации о том, кому принадлежит сайт — в сертификате не будут указаны сведения о его владельце. Это обусловлено тем, что для получения сертификата его заказчику не требуется предоставлять документальное подтверждение своих идентификационных данных. Следовательно, они могут быть вымышленными (например, заказчик сертификата может выдать себя за другое лицо).

Сертификат может подтверждать наличие прав управления доменным именем и существование организации, у которой есть эти права, то есть удостоверять домен и его владельца. Такие сертификаты относятся к категории OV (Organization Validation). Просмотрев сертификат OV, пользователь может убедиться, что он действительно находится на том сайте, адрес которого введен в строке браузера, а также определить, кому принадлежит этот сайт. Для выпуска данного сертификата его заказчик должен документально подтвердить свои идентификационные данные.

Отдельные виды сертификатов, удостоверяющих и домен, и его владельца, выпускаются после расширенной проверки их заказчиков — тем самым исключается возможность предоставления заказчиками подложных данных для получения сертификатов. Такие сертификаты относятся к категории EV (Extended Validation)

Особый вид сертификатов — Сертификаты для разработчиков (Code Signing). Сертификат подтверждает подлинность программ при их загрузке, целостность их содержимого и надежность источника продукта. Технология цифровой подписи подтверждает уникальность программ, которые вы скачиваете в сети и гарантирует, что файлы не были модифицированы.

Данные для установки в письме

где взять данные для установки ssl 3Начало письма с данными для установки

В письме вы найдёте:

Номенклатура сертификатов

Давайте рассмотрим, какие сертификаты X.509 встречаются в природе, если рассматривать их по расположению в

пищевой

цепочке доверия.

По степени

крутизны

дороговизны и надежности сертификаты делятся на 3 вида:

DVOVEV

Откуда берутся сертификаты?

Еще совсем недавно было всего 2 способа заполучить X.509 сертификат, но времена меняются и с недавнего времени есть и третий путь.

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

    not trusted

  2. Приобрести сертификат в УЦ. Это будет стоить денег в зависимости от различных его характеристик и возможностей, указанных выше.
  3. Получить бесплатный сертификат LetsEncrypt, доступны только самые простые DV сертификаты.

Для первого сценария достаточно пары команд и чтобы 2 раза не вставать создадим сертификат с алгоритмом эллиптических кривых. Первым шагом нужно создать закрытый ключ. Считается, что шифрование с алгоритмом эллиптических кривых дает больший выхлоп, если измерять в тактах CPU, либо байтах длины ключа. Поддержка ECC не определена однозначно в TLS < 1.2.

openssl ecparam -name secp521r1 -genkey -param_enc explicit -out private-key.pem

Далее, создает CSR — запрос на подписание сертификата.

openssl req -new -sha256 -key private.key -out server.csr -days 730

И подписываем.

openssl x509 -req -sha256 -days 365 -in server.csr -signkey private.key -out public.crt

Результат можно посмотреть командой:

openssl x509 -text -noout -in public.crt

Openssl имеет огромное количество опций и команд. Man страница не очень полезна, справочник удобнее использовать так:

openssl -help
openssl x509 -help
openssl s_client -help

Ровно то же самое можно сделать с помощью java утилиты keytool.

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048

Следует серия вопросов, чтобы было чем запомнить поля owner и issuer

What is your first and last name?
What is the name of your organizational unit?
What is the name of your organization?
What is the name of your City or Locality?
What is the name of your State or Province?
What is the two-letter country code for this unit?
Is CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU correct?

Конвертируем связку ключей из проприетарного формата в PKCS12.

keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12

Смотрим на результат:

keytool -list -v -alias selfsigned -storepass password -keystore keystore.jks
Alias name: selfsigned
Creation date: 20.01.2021
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU
Issuer: CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU
Serial number: 1f170cb9
Valid from: Sat Jan 20 18:33:42 MSK 2021 until: Tue Jan 15 18:33:42 MSK 2021
Certificate fingerprints:
     MD5:  B3:E9:92:87:13:71:2D:36:60:AD:B5:1F:24:16:51:05
     SHA1: 26:08:39:19:31:53:C5:43:1E:ED:2E:78:36:43:54:9B:EA:D4:EF:9A
     SHA256: FD:42:C9:6D:F6:2A:F1:A3:BC:24:EA:34:DC:12:02:69:86:39:F1:FC:1B:64:07:FD:E1:02:57:64:D1:55:02:3D

Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 30 95 58 E3 9E 76 1D FB   92 44 9D 95 47 94 E4 97  0.X..v...D..G...
0010: C8 1E F1 92                                        ....
]
]

Значению ObjectId: 2.5.29.14 соответствует определение ASN.1, согласно RFC 3280 оно всегда non-critical. Точно так же можно узнать смысл и возможные значения других ObjectId, которые присутствуют в сертификате X.509.

subjectKeyIdentifier EXTENSION ::= {
    SYNTAX SubjectKeyIdentifier
    IDENTIFIED BY id-ce-subjectKeyIdentifier
}

SubjectKeyIdentifier ::= KeyIdentifier

Словарный запас

Определение X.509 сертификатов есть в архиве ITU-T

Certificate  ::=  SEQUENCE  {
     tbsCertificate       TBSCertificate,
     signatureAlgorithm   AlgorithmIdentifier,
     signatureValue       BIT STRING  }

TBSCertificate  ::=  SEQUENCE  {
     version         [0]  EXPLICIT Version DEFAULT v1,
     serialNumber         CertificateSerialNumber,
     signature            AlgorithmIdentifier,
     issuer               Name,
     validity             Validity,
     subject              Name,
     subjectPublicKeyInfo SubjectPublicKeyInfo,
     issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                          -- If present, version MUST be v2 or v3

Для того, чтобы досконально понять обозначения и синтаксис, придется читать спеки X.680 редакции 2008 г., где есть полное описание ASN.1. В понятиях ASN.1SEQUENCE обозначает примерно то же самое, что и struct в Си. Это может сбить с толку, ведь по семантике оно должно было соответствовать скорее массиву. И тем не менее.

Про сертификаты:  Как получить путевку в лагерь, санаторий с детьми

Стандарт X.690 определяет следующие правила кодирования структур данных, созданных в соответствии с ASN.1: BER (Basic Encoding Rules), CER (Canonical Encoding Rules), DER (Distinguished Encoding Rules). Есть даже XER (XML Encoding Rules), который на практике мне никогда не встречался.

Да, но для чего нужны сертификаты X.509, которые доставляют столько головной боли? Первая и основная функция сертификатов X.509 — служить хранилищем открытого или публичного ключа PKI (public key infrastructure). К этой функции нареканий нет, а вот со второй не все так однозначно.

Вторая функция сертификатов X.509 заключается в том, чтобы предъявитель сего был принят человеком, либо программой в качестве истинного владельца некоего цифрового актива: доменного имени, веб сайта и пр. Это получается по-разному, далеко не все сертификаты имеют высокую ликвидность, если пользоваться финансовой терминологией.

Сценарий №1 — найти следующего в связке

Связка сертификатов — Объединение нескольких X.509 сертификатов в один файл, чаще всего в формате PEM. Связка передается по сети в момент протокола рукопожатия SSL/TLS.

Самый сок начинается, когда имеете дело со связкой сертификатов, a. k. a certificate chain. Часто просматривая лапшу в связке ключей jks непросто понять как найти родительский сертификат, когда там россыпь новых и старых сертификатов на несколько доменных имен.

Типы сертификатов.

Допустим, руководствуясь соображениями из 1 части статьи вы решили купить подписанный сертификат. Каково же будет ваше удивление, когда на сайте ЦС вы узнаеете, что они бывают разные 🙂

Типы сертификатов:

Esential SSL — самый не дорогой и быстро оформляемый сертификат. Доступен как для юридических, так и для физических лиц. Проверяется только право владения доменным именем, личные данные или регистрация компании не проверяются. Выдается на 1 домен.

Instant SSL — доступен и для физ. лиц, и для юр. лиц. Проверяется право владения доменом, регистрационные данные компании либо личность физ. лица. Выдается на 1 домен.

SGC SSL-сертификат. — Аналогично Instant SSL, но с поддержкой 40-битных расширений (актуально для старых ОС и браузеров). Выдается на 1 домен, либо wildcard (см. ниже).

Оцените статью
Мой сертификат
Добавить комментарий