Предисловие

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

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

Обе главы позаимствованы из моей более крупной работы под названием "Пуленепробиваемые SSL и TLS". Я решил опубликовать главы по OpenSSL в качестве отдельной бесплатной книги, поскольку хорошая документация всегда востребована. Это особенно актуально для проекта OpenSSL, который не очень хорошо документирован; к сожалению, информация, которую можно найти в Интернете, часто неверна и устарела.

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

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

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

Лучше всего писать мне на электронную почту, ivanr@webkreator.com. Иногда я могу ответить через Twitter, где меня можно найти под ником @ivanristic.

О книге "Пуленепробиваемые SSL и TLS"

"Пуленепробиваемые SSL и TLS" — это книга, которую я бы мечтал иметь в те времена, когда только начинал использовать SSL. Сейчас и не вспомнить, когда точно это было, но определённо это было очень давно, когда для поддержки SSL в Apache ещё приходилось применять сторонние патчи. То, что я помню наверняка, это как в 2005 году, когда я писал свою первую книгу "Безопасность Apache", я начал осознавать сложность криптографии. И мне это даже стало нравиться.

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

За годы поддержки пользователей SSL Labs у меня сформировалось представление о том, что, хотя о SSL/TLS и PKI написано очень много, материал при этом, как правило, страдает от двух проблем:

  1. требуемая информация разбросана по разным местам (к примеру, RFC), что затрудняет поиск нужных тонкостей и фрагментов;
  2. обилие деталей и низкоуровневых представлений затрудняет понимание концептуальных вещей.
Кроме того, многие опубликованные документы уже устарели. Я пытался осмыслить всё это, и мне потребовались годы работы и учёбы, чтобы хотя бы начать понимать экосистему.

Книга "Пуленепробиваемые SSL и TLS" призвана устранить пробелы в документации. Это практическая книга, которая начинается с небольшого введения и солидных теоретических основ, а затем переходит к обсуждению всего того, что вам может понадобиться для повседневной работы. Также в ней присутствует подробное освещение некоторых ключевых аспектов, например, атак на протоколы. Для тех, кому нужно ещё больше, имеются сотни ссылок на научные статьи и другие внешние ресурсы.

Об авторе

Иван Ристич (Ivan Ristić) — исследователь, инженер, автор книг и статей в области безопасности, особенно известный своими наработками в области файрволов для веб-приложений (в частности, разработкой файрвола с открытым исходным кодом ModSecurity), а также своими исследованиями, инструментами и руководствами по SSL/TLS и PKI на сайте SSL Labs.

Автор трёх книг, "Безопасность Apache" ("Apache Security"), "Руководство по ModSecurity" ("ModSecurity Handbook") и "Пуленепробиваемые SSL и TLS" ("Bulletproof SSL and TLS"), опубликованных через собственную платформу для непрерывного написания и публикации Feisty Duck. Активный участник сообщества в сфере защиты информации, его часто можно встретить на конференциях по безопасности, таких как Black Hat, RSA, OWASP AppSec и других. В настоящее время является Директором по исследованиям безопасности приложений в Qualys.