Метка «openssl»

Наверняка все знают, что 8 апреля 2014 Сотрудники The OpenSSL Project выпустили бюллетень безопасности, в котором сообщается о критической уязвимости CVE-2014-0160 в популярной криптографической библиотеке OpenSSL.
Подробнее об этой уязвимости уже писали на хабре, а тут мы рассмотрим как обезопасить свой Drupal сайт.
Читать полностью »

imageМногие уже слышали про найденную в OpenSSL уязвимость. Можно с уверенностью сказать, что по освещенности в интернет-СМИ она займет почетное первое место. Про нее не только пишут, но и создают специальные сайты, проверяющие сервисы и даже рисуют комиксы. И не удивительно — масштаб поражения действительно впечатляет, по некоторым оценкам более 17% всех сайтов с поддержкой ssl уязвимы, учитывая простоту эксплуатации это событие можно сравнить с эпидемией. К сожалению, даже это для многих не является достаточным аргументом — спустя неделю многие сайты продолжают оставаться под угрозой. Это может быть не критично для простых сервисов, но не для финансовых. Особенно болезненно это может сказаться на платежных шлюзах, через которые осуществляются платежи. Об одном из таких я и расскажу.Читать полностью »

Компания Apple недавно допустила крупную ошибку, забыв удалить лишнюю строчку с оператором безусловного перехода goto посередине функции SSLVerifySignedServerKeyExchange для проверки серверной подписи при установке SSL-соединения. В результате, функция успешно завершала работу, независимо от результата проверки подписи.

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

X Server

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

--- hw/xfree86/common/xf86Init.c
+++ hw/xfree86/common/xf86Init.c
@@ -1677,7 +1677,7 @@
   }
   if (!strcmp(argv[i], "-configure"))
   {
-    if (getuid() != 0 && geteuid == 0) {
+    if (getuid() != 0 && geteuid() == 0) {
        ErrorF("The '-configure' option can only be used by root.n");
        exit(1);
     }

Читать полностью »

В этой статье я продолжаю усовершенствовать однопоточный https сервер на неблокирующих сокетах. Предыдущие статьи с ссылками на исходный код, можно найти здесь:
Простейший кросcплатформенный сервер с поддержкой ssl
Кроссплатформенный https сервер с неблокирующими сокетами
Кроссплатформенный https сервер с неблокирующими сокетами. Часть 2

В конце этой статьи будет ссылка на исходный код сервера, который я протестировал в Visual Studio 2012 (Windows 8 64bit), g++4.4 (Linux 32bit), g++4.6 (Linux 64bit). Сервер принимает соединения от любого количества клиентов и отправляет в ответ заголовки запроса.
Но начну я статью пожалуй, с ответов на некоторые комментарии к предыдущим.
Читать полностью »

Эта статья является продолжением статей:
Простейший кросcплатформенный сервер с поддержкой ssl
Кроссплатформенный https сервер с неблокирующими сокетами
В этих статьях я постепенно из простенького примера, входящего в состав OpenSSL стараюсь сделать полноценный однопоточный веб-сервер.
В предыдущей статье я «научил» сервер принимать соединение от одного клиента и отсылать обратно html страницу с заголовками запроса.
Сегодня я исправлю код сервера так, чтобы он мог обрабатывать соединения от произвольного количества клиентов в одном потоке.
Читать полностью »

Не так давно передо мной встала задача: написать кроссплатформенный сервер для обработки запросов по протоколу ssl. До этого я писал сервера для обычных, не шифрованных протоколов, но с ssl столкнулся впервые.
Беглый обзор интернета показал, что лучшим решением будет не велосипедостроение, а использование библиотеки OpenSSL.
В этой статье я не хочу рассматривать процесс установки OpenSSL на Linux и Windows, замечу лишь, что для Windows процесс этот оказался нетривиальным. А рассказать я хочу о том, как мне удалось скомпилировать в Visual Studio пример простейшего сервера, входящий в состав исходников OpenSSL.
Неискушенному читателю может показаться: «что тут особенного — создал проект, включил в него готовый исходник, запустил»… Однако обо всем по порядку.

Читать полностью »

image

Несколько минут назад на главной странице официального сайта OpenSSL вместо контента высветилась надпись:

TurkGuvenligiTurkSec Was Here @turkguvenligi + we love openssl _

Как не трудно заметить, был произведен дефейс. Об этом сообщил в твиттере, судя по всему сам автор взлома, под ником Turkguvenligi.
Подробностей о методах взлома пока не сообщается. На данный момент функционал сайта восстановлен, посмотреть измененную копию можно на зоне: http://zone-h.org/mirror/id/21425720 или в веб архиве.
Читать полностью »

Для чего я это пишу?

В последнее время в связи с кучей факторов (АНБ, DPI с рекламой и другое) у меня начала просыпаться паранойя и я подумал полностью перевести свой небольшой сайт на https. На хабре было несколько статей с техническими подробностями работы SSL/TLS, однако поискав информацию на тему настройки https-вебсервера обнаружил традиционное деление статей — либо это статьи «Делайте вот так», где просто даны настройки без каких-либо разъяснений и вариантов использования, либо это большие теоретические статьи, где обсуждаются различные схемы использования, но без практически применимых готовых вариантов. На хабре была статья о настройке, однако в ней нет информации про DH-кодировки, да и некоторые параметры не описаны. Подумал, что стоит упорядочить найденное в виде статьи, которая будет полезна тем, кто хотел бы развернуть https у себя на сервере, но не слишком углубляться в дебри SSL.

Повествование будет вестись с учетом того, что веб-сервером выступает nginx (и в одном месте будет параметр для php-fpm).
Читать полностью »

Благодаря Ричарду Сноудену все больше людей теперь знают, что такое АНБ и чем оно занимается. Исходя из внутренних презентаций, которые были раскрыты, очевидно, что АНБ тратит немало усилий не только на коллекционирование трафика и внедрение “правильных” программ в сети интернет-провайдеров и софтверных гигантов, но и на анализ криптоалгоритмов. В открытый доступ попал 178-страничный документ с бюджетом национальной безопасности на 2013 год. Из него следует, что на проект Consolidated Cryptologic Program было потрачено 11 млрд. долларов. Что же можно сделать за такие деньги? Уж точно потратить с пользой. Например, на строительство гигантского вычислительного центра в штате Юта за 2 млрд. долларов, прямо в логове мормонов. Центр cодержит 2300 м2 площади под серверы, имеет собственную электростанцию в 65 Мегаватт и 60 тыс. тонн холодильного оборудования, чтобы все это охлаждать. В 2012 году из официальных уст было весьма завуалированно заявлено, что АНБ недавно достигла прорывных успехов в криптоанализе и взломе сложных систем. Уж не для этого ли им понадобился новый дата-центр? Гуру криптографии Брюс Шнайер прокомментировал эти заявления и высказал мнение, что АНБ вряд ли сможет в ближайшее время взломать какой-нибудь современный стойкий шифр, например AES. И далее сделал предположение, что АНБ направит свои усилия не на “честный” взлом алгоритмов, а на нахождение уязвимостей в самой реализации этих алгоритмов. Брюс выделил несколько областей, где можно достичь успеха:

  • атака на процедуру генерации ключа, где эксплуатируются халтурные датчики случайных чисел
  • атака на слабое звено в передачи данных (например, канал защищен хорошо, а сетевой коммутатор — плохо)
  • атака на шифры со слабыми ключами, которые еще осталось кое-где по недосмотру системных администраторов (хороший кандидат – RSA с 1024-битным ключом)
  • атака на побочные эффекты

Попробуем разобраться, что такое атаки на побочные эффекты.
Читать полностью »

Зачем это нужно?

Представим, у нас есть два сервера, работают они себе, и переодически они хотят, что-то друг у друга спросить по протоколу HTTP/HTTPS.

Протокол HTTP не безопасен и логично использовать протокол HTTPS для общения меду серверами.

Для организации такого общения нам нужно 2 SSL сертификата.

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js