Книга рецептов ОpenSSL, 3е изд.

Иван Ристич

 Состав исполнителей

Издания на английском языке
Автор
Иван Ристич
Технический рецензент
Мэтт Кэсвелл
Редактор производства
Елена Гирич-Ристич
Редакторы текста
Мелинда Ранкин
Нэнси Вулф Коутайри

 О техническом рецензенте

Мэтт Кэсвелл

 Введение

Несмотря на все свои недостатки, OpenSSL является одним из самых успешных и самых важных проектов с открытым исходным кодом. Он успешен потому как широко применяется; это важно по той причине, что от него зависит безопасность большей части инфраструктуры Интернета. Данный проект состоит из высокопроизводительной реализации ключевых криптографических алгоритмов, полного стека TLS и PKI, а также набора инструментов командной строки. Я полагаю, что если ваша работа связана с безопасностью, веб- разработкой или системным администрированием, можно с уверенностью сказать, что вы не можете избежать необходимости иметь дело с OpenSSH по крайней мере в какой- то степени. Большая часть Интернета основана на продуктах с открытым исходным кодом, причём большинство из них полагаются на OpenSSL.

В этой книге рассматриваются два способа применения OpenSSL. Глава 1, Командная строка OpenSSL, поможет пользователям, которым требуется выполнять повседневные задачи по созданию ключей и сертификатов, а также настройке программ, применяющих OpenSSL с функциональностью TLS. В этой главе также обсуждается как создать законченный частный Центр сертификации (CA), который полезен для разработки и для аналогичных внутренних сред. Глава 2, Тестирование TLS при помощи OpenSSL посвящена тестированию безопасности сервера с применением OpenSSL. Хотя такой тип тестирования на нижнем уровне порой требует много времени, его невозможно избежать когда вы в точности желаете знать что происходит.

Обе главы взяты из моей более крупной работы Bulletproof TLS and PKI. Я решил опубликовать главы об OpenSSL отдельной бесплатной книгой, потому как не хватает хорошей и легкодоступной документации. Как это зачастую бывает со сложными и долгоживущими проектами, документация по OpenSSL, которую вы можете обнаружить в Интернете часто неверна и устарела.

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

 Обратная связь

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

Наилучший способ контакта со мной состоит в применении адреса моей электронной почты, ivanr@webkreator.com. Порой я также имею возможность отвечать через Twitter, в котором вы можете найти меня под идентификатором .

 Благодарности

Это короткая книга, однако она напичкана техническими сведениями. Как результат, имеются богатые возможности для ошибок. Я очень благодарен Мэтту Касвеллу за его помощь в предотвращении ошибок. Мэтт, член команды разработчиков OpenSSL, присоединился ко мне в качестве технического обозревателя третьего издания.

Ко мне обращались разные люди со своими мыслями и исправлениями. Они тоже сделали эту книгу лучше. Я выражаю благодарность Брайану Хоусону, Кристиану Фолини, Джеффу Кайзеру, Мартину Карпентеру, Майклу Решли, Карстену Вайсу, Оливье Левиллену и Стивену Н. Хенсону.

Моя особая благодарность моему редактору текста, Мелинде Ранкин. С ней, как всегда, приятно работать.

 О непробиваемом TLS и PKI

Bulletproof TLS and PKI это та книга, которую я бы хотел иметь тогда, когда я начал применять SSL. Я не припомню в точности когда это было, но, определённо, это было давно, когда вам всё ещё приходилось исправлять Apache для получения им поддержки SSL. Что я и в самом деле помню, так это то, как в 2005 году, когда я писал свою первую книгу Apache Security, я начал осознавать сложности криптографии. Мне это даже начало нравиться.

В 2009 году я начал работать в SSL Labs, и для меня начал раскрываться мир криптографии. Перенесёмся на десятилетие вперёд, и в 2020 году я все ещё учусь. Криптография — это уникальная область, в которой чем больше вы учитесь, тем меньше вы знаете.

На протяжении многих лет, поддерживая пользователей SSL Labs, я уяснил, что про SSL/TLS и PKI было написано много, но этот материал, как правило, страдал двумя проблемами: (1) все, что вам нужно, не находится в одном месте, делая трудным обнаруживать те маленькие кусочки и части (например, RFC), и (2) большая часть из них слишком подробна и изложена на низком уровне. Многие документы к тому же устарели. Я пытался разобраться во всем этом, и мне потребовались годы работы и учёбы, чтобы хотя бы начать разбираться в этой экосистеме.

Bulletproof TLS and PKI призвана заполнить пробелы в имеющейся документации. Это практическая книга, которая начинается с гладкого введения и солидной теоретической основы, а затем переходит к обсуждений всего того, что вам требуется для повседневной работы. Она к тому же обеспечивает глубокое освещение некоторых ключевых сторон, например, атак на протоколы. Для тех же, кто желает ещё большего, имеются сотни ссылок на исследовательские работы и прочие внешние ресурсы.

 Об авторе

Иван Ристич пишет книги по компьютерной безопасности и создаёт продукты для предоставления безопасности. Его книга Bulletproof TLS and PKI, являющаяся результатом более чем десятилетних исследований, широко признана в качестве фактического справочного руководства по SSL/TLS и PKI. Его работа в SSL Labs сделала сотни тысяч веб сайтов более безопасными. Для этого он создал ModSecurity, ведущий межсетевой экран для веб приложений с открытым исходным кодом.

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

 Содержание

Введение
Обратная связь
Благодарности
О непробиваемом TLS и PKI
Об авторе
Глава 1. Командная строка OpenSSL
Приступаем к работе
Определяем версию OpenSSL и конфигурацию
Собираем OpenSSL
Изучаем доступные команды
Создание доверенного хранилища
Управление ключом и сертификатом
Выработка ключа
Создание запросов на подписанные сертификаты (CSR)
Создание CSR из имеющихся сертификатов
Выработка CSR без обслуживания
Подписание ваших собственных сертификатов
Создание достоверных сертификатов для множества имён хостов
Изучение сертификатов
Изучение общедоступных сертификатов
Преобразование ключа и сертификата
Настройка
Получение поддерживаемых комплектов
Разбираемся с уровнями безопасности
Настройка TLS 1.3
Настройка по умолчанию OpenSSL
Рекомендуемые настройки комплекта
Выработка параметров DH
Настройка наследуемого комплекта
Производительность
Создание частного Центра авторизации
Свойства и ограничения
Создание корня CA
Создание подчинённого CA
Глава 2. Тестирование TLS при помощи OpenSSL
Индивидуальная компиляция OpenSSL для тестирования
Подключение к службам TLS
Удостоверение сертификата
Тестирование протоколов, которые обновляются до TLS
Выделение удалённых сертификатов
Тестирование протокола сопровождения
Тестирование конфигурации комплекта шифрования
Тестирование предпочтений комплекта шифрования
Тестирование именованных групп
Тестирование DANE
Тестирование возобновления сеанса
Сохранение состояния сеанса по соединениям
Проверка отзыва OCSP
Тестирование сшивки OCSP
Проверка отзыва CRL
Тестирование пересмотра условий
Тестирование сердцебиений
Определение силы параметров Диффи- Хеллмана