Рубрика «openssl» - 4

Security Week 45: обход двухфакторной авторизации в OWA, перехват аккаунтов GMail, уязвимость в OpenSSL - 1Исследователь Ахмед Мехтаб нашел (новость, исследование) нетривиальный способ частичного взлома учетных записей GMail. Используя ошибку в функции объединения разных аккаунтов и пересылки почты, он показал, как можно отправлять сообщения от имени жертвы. В нормальных условиях подключить дополнительную учетную запись к собственной можно с помощью соответствующего меню в настройках. После этого на дополнительную почту отправляется подтверждение. Необходимо кликнуть на линк в этом сообщении, и у вас появляется возможность отправлять почту с собственного ящика от имени этого дополнительного аккаунта.

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

Понятно, что атака имеет крайне ограниченную сферу применения: против реальных почтовых ящиков она возможна только в случае, если каким-то образом заставить владельца деактивировать аккаунт. Второй вариант: жертва заблокировала ваш почтовый ящик, в таком случае начинают присылаться аналогичные сообщения. Как бы то ни было, можно только отправлять письма от имени жертвы, но не получать их. Исследователю удалось прикрутить к своей почте несуществующие адреса с красивыми именами типа gmail@gmail.com. Естественно, на момент публикации исследования, лазейка уже была закрыта.
Читать полностью »

Критическая уязвимость библиотеки OpenSSL позволяет проводить DoS-атаки - 1

Изображение: thehackernews.com

В конце прошлой недели (22 сентября) организация OpenSSL Foundation объявила об устранении более десятка уязвимостей своей криптографической библиотеки. Среди найденных «багов» была и ошибка, эксплуатация которой позволяет злоумышленникам осуществлять DoS-атаки.Читать полностью »

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

На 4-м сертификате дёргать их вручную стало лень (а я ленив по натуре), поэтому набросал «самокат» выцепляющий издателя и формирующий chain-файл для скармливания nginx'у.
Наверняка он не идеален и проверен лишь на полуторадесятках сертификатов, но чем богаты.

Об устройстве x.509 много сказано (в том числе на хабре), поэтому повторяться не буду.

Ниже просто пошаговая инструкция получения цепочки вперемешку с небольшой выжимкой из теории и не более того.
Читать полностью »

Взаимодействие с ГИС ЖКХ с помощью stunnel и openssl по ГОСТу - 1

Встала перед нами в полный рост задача наладить взаимодействие с ГИС ЖКХ. Согласно документации, предполагается использование небезызвестного отечественного ПО для шифрования туннеля и формирования ЭЦП по ГОСТу, но это не наш метод. Вооружившись гуглом и консолью, я и slavam реализовали необходимый функционал подручными средствами.
Всё необходимое ПО есть как на Linux, так и на Windows платформах, потому методику можно назвать мультиплатформенной.

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

RSA шифрование через библиотеку OpenSSL в Delphi - 1

По долгу службы в разработчиках повстречалась задача шифровать текстовые строки алгоритмом RSA, используя публичный и секретный ключи в PEM формате. При изучении данного вопроса выбор пал на использование библиотеки OpenSSL. Хочу поделиться примерами реализации функционала шифрования на Delphi. Действия выполнялись в ОС Windows, среда разработки Borland Delphi 7.
Читать полностью »

image

SSLv2, протокол шифрования от Netscape, вышедший в 1995 году и потерявший актуальность уже в 1996, казалось бы, в 2016 году должен быть отключен во всем ПО, использующем SSL/TLS-шифрование, особенно после уязвимостей POODLE в SSLv3, позволяющей дешифровать 1 байт за 256 запросов, и FREAK, связанной с ослабленными (экспортными) версиями шифров.
И если клиентское ПО (например, браузеры) давно не поддерживает подключения по протоколу SSLv2, и, с недавнего времени, и SSLv3, то с серверным ПО не все так однозначно.

Группа исследователей из Тель-Авивского университета, Мюнстенского университета прикладных наук, Рурского университета в Бохуме, Университета Пенсильвании, Мичиганского университета, Two Sigma, Google, проекта Hashcat и OpenSSL обнаружили уязвимость под названием DROWN — Decrypting RSA using Obsolete and Weakened eNcryption, которая позволяет дешифровать TLS-трафик клиента, если на серверной стороне не отключена поддержка протокола SSLv2 во всех серверах, оперирующих одним и тем же приватным ключом.
Согласно исследованию, 25% из миллиона самых посещаемых веб-сайтов подвержены этой уязвимости, или 22% из всех просканированных серверов, использующих сертификаты, выданные публичными центрами сертификации.

Почему это возможно?

Несмотря на то, что у большинства веб-серверов протокол SSLv2 отключен по умолчанию, и его никто не будет включать намеренно, данная атака позволяет дешифровать TLS-трафик, имея доступ к любому серверу, поддерживающему SSLv2, и использующему такой же приватный ключ, что и веб-сервер. Часто можно встретить использование одного и того же сертификата для веб-сервера и почтового сервера, а также для FTPS.

Общий вариант атаки эксплуатирует уязвимость в экспортных шифрах SSLv2, использующие 40-битные ключи RSA.Читать полностью »

image

В своем первом топике я постараюсь подробно объяснить как начать использовать библиотеку OpenSSL. Сразу хочу отметить, что статья ориентирована на новичков, а так как я сам один из них, исходный код выполнен без проверок и не претендует на звание лучшего. Все действия выполнялись под Windows со средой разработки Visual Studio 2013.
Читать полностью »

Доброго времени суток всем.
Неожиданное поведение openssl_random_pseudo_bytes() приводящее к фатальной потере криптостойкости - 1
Недавно в одном из проектов мы столкнулись со следующей проблемой — функция openssl_random_pseudo_bytes() выдавала дублирующиеся псевдослучайные последовательности!

Этого не может быть, потому что этого не может быть никогда! — Скажет любой, кто читал документацию этой функции. И, да, $crypto_strong исправно выдавал TRUE.

И тем не менее — ошибки уникальности при вставке в базу сыпались пачками и лог подтверждал — 32-байтные последовательности генерировались повторно через разные интервалы, от суток до недели. Расследование заняло целый месяц. Сейчас я на 99% уверен, что причина найдена — но буду благодарен, если читатели подтвердят или опровергнут мои выводы.

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

Всем привет. Эта статья продолжение 10к на ядро с конкретными примерами оптимизаций, которые были проделаны для повышения производительности сервера. С написания первой части прошло уже 5 мес и за это время нагрузка на наш продакшн сервер выросла с 500 рек-сек до 2000 с пиками до 5000 рек-сек. Благодаря netty, мы даже не заметили это повышение (разве что место на диске уходит быстрее).

Blynk load
(Не обращайте внимание на пики, это баги при деплое)

Эта статья будет полезна всем тем кто работает с netty или только начинает. Итак, поехали.

Нативный Epoll транспорт для Linux

Одна из ключевых оптимизаций, которую стоит использовать всем — это подключение нативного Epoll транспорта вместо реализации на java. Тем более, что с netty это означает добавить лишь 1 зависимость:

<dependency>
   <groupId>io.netty</groupId>
   <artifactId>netty-transport-native-epoll</artifactId>
   <version>${netty.version}</version>
   <classifier>linux-x86_64</classifier>
</dependency>

и автозаменой по коду осуществить замену следующих классов:

  • NioEventLoopGroup → EpollEventLoopGroup
  • NioEventLoop → EpollEventLoop
  • NioServerSocketChannel → EpollServerSocketChannel
  • NioSocketChannel → EpollSocketChannel

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

  • Метод selectedKeys() на каждый вызов создает новый HashSet
  • Итерация по этому множеству создает iterator
  • И ко всему прочему внутри метода selectedKeys() огромное количество блоков синхронизации

В моем конкретном случае я получил прирост производительности около 30%. Конечно же, эта оптимизация возможна только для Linux серверов.
Читать полностью »

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

Вид системного блока Эльбрус 401-PC спереди и сбокуРезультаты теста Pgbench (Postgresql) в упрощённом виде

Осторожно: много букв и картинок!

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


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