Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Как безопасно доставить SIGINT в главный поток?

Разработка под Windows *
Перевод
Комментатор AnotherMatt удивляется, почему консольные Win32 приложения доставляют сообщения в другой поток. Почему они не посылают их главному потоку?

На самом деле, у меня обратный вопрос. Почему в UNIX сигнал посылается главному потоку? Это делает практически невозможным сделать что-нибудь важное внутри обработчика сигнала. Главный поток может быть внутри менеджера кучи (удерживать критическую секцию) во время приёма сигнала. Если обработчик сигнала попытается получить доступ к куче, то произойдет взаимная блокировка с самим собой, если вам повезёт. В худшем варианте повредится куча.
Читать дальше →
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 366
Комментарии 5

Обработка сигналов в Java

Java *
Передо мной частенько вставала задача написать какой-нибудь Java-сервис. В качестве ОС мы используем по большей части линукс, так что удобнее всего управляться с такими сервисами — работать с ними как с демонами. То есть, запускаем:
start-stop-daemon --start --make-pidfile --pidfile /var/run/myservice.pid --exec /usr/bin/java — -jar myservice.jar

, и останавливаем:
start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/myservice.pid

Команда --stop посылает JVM сигнал SIGTERM и сервис останавливается. Все как бы неплохо, JVM завершается в штатном порядке, если только вам не нужно выполнить по завершении работы сервиса какое-либо действие. Например явно освободить ресурс, или написать что-нибудь приятное в stdout.

Но все не так страшно, благо JVM начиная с 1.3.1 позволяет обрабатывать сигналы. За ответом как — под хабракат.
Читать дальше →
Всего голосов 38: ↑29 и ↓9 +20
Просмотры 12K
Комментарии 10

Снова сигналы

Adobe Flash
Перевод статьи Aiden Tailor о сигналах, которые мигрировали на ActionScript из C# благодаря усилиям Rober Penner. Это не просто перевод, а шпаргалка — выжимка статьи. Без воды, ничего лишнего, чтобы даже самый ленивый мог пробежать глазами. Также произведены тесты производительности. Пост не только для AS3 гуру, но и и для всех, кого волнуют вопросы повышения качества кода, так как содержит описание одной из реализаций шаблона проектирования Observer. А вот видеоурок.

Читать дальше →
Всего голосов 30: ↑25 и ↓5 +20
Просмотры 4.5K
Комментарии 18

Обработка Segmentation Fault в C++

C++ *
Из песочницы

Вводная


C++ является «небезопасным» («unmanaged») языком, поэтому программы могут «вылетать» — аварийно завершать работу без сохранения данных пользователя, сообщения об ошибке и т.п. — стоит только, например, залезть в не инициализированную память. Например:
void fall()
{
  char * s = "short_text";
  sprintf(s,"This is very long text");
}

или
void fall()
{
  int * pointer = NULL;
  *pointer = 13;
}


Всем было бы лучше, если бы мы могли «отловить» падение программы — точно так же, как в java ловим исключения — и выполнить хоть что-то перед тем, как программа упадет (сохранить документ пользователя, вывести диалог с сообщением об ошибке и т.п.)

Общего решения задача не имеет, так как C++ не имеет собственной модели обработки исключений, связанных с работой с памятью. Тем не менее, мы рассмотрим два способа, использующих особенности операционной системы, вызвавшей исключение.

Читать дальше →
Всего голосов 67: ↑60 и ↓7 +53
Просмотры 55K
Комментарии 59

Почему ваш любимый мессенджер должен умереть

Мессенджеры *
image
Кладбище мессенджеров, на котором обязательно должны оказаться Skype, Viber, WhatsApp, Hangouts, ooVoo, Apple iMessage, Telegram, Line, Facebook messenger и еще сотни мессенджеров, которым только предстоит выйти в ближайшее время.

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

Последние годы конкуренция на рынке мессенджеров как никогда высока. Доступный интернет у каждого в смартфоне позволил мессенджерам стать самыми часто используемыми приложениями. Только ленивый сейчас не пишет свой мессенджер. Каждый день выходит новое приложение, обещающее совершить революцию в способах коммуникации. Доходит даже до абсурда вроде приложения Yo, позволяющего слать друг другу только одно слово.
У каждого мессенджера есть своя аудитория, агитирующая пользоваться именно их любимым сервисом. В итоге приходится заводить кучу учетных записей в различных сервисах и устанавливать кучу приложений, чтобы иметь возможность оперативно связаться со всеми необходимыми людьми.

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

image

_ Почему такая важная для человечества технология, как мгновенные сообщения и аудио-видеозвонки, не может быть монополизирована какой-либо компанией. Как это тормозит развитие технологий, угрожает свободе и безопасности коммуникаций.


Читать дальше →
Всего голосов 260: ↑230 и ↓30 +200
Просмотры 322K
Комментарии 357

Сигналы и слоты в PHP. Такие же как в Qt. Ну почти

Open source *PHP *Программирование *
Сигналы и слоты — подход, используемый в некоторых языках программирования и библиотеках (например, Boost и Qt) который позволяет реализовать шаблон «наблюдатель», минимизируя написание повторяющегося кода. Концепция заключается в том, что компонент (часто виджет) может посылать сигналы, содержащие информацию о событии (например: был выделен текст «слово», была открыта вторая вкладка). В свою очередь другие компоненты могут принимать эти сигналы посредством специальных функций — слотов. Система сигналов и слотов хорошо подходит для описания Графического интерфейса пользователя. Также механизм сигналов/слотов может быть применён для асинхронного ввода-вывода (включая сокеты, pipe, устройства с последовательным интерфейсом, др.) или уведомления о событиях. В библиотеке Qt благодаря Метаобъектному компилятору (англ.)русск. отпадает необходимость писать код регистрации/дерегистрации/вызова, так как эти шаблонные участки кода генерируются автоматически.
Говорит нам Википедия.
Зачем это в php?
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 11K
Комментарии 35

Я отказался от PGP

Информационная безопасность *Мессенджеры *Криптография *IT-стандарты *
Перевод
Об авторе: Филиппо Валсорда занимается криптографией и TLS, называет себя «послом urandom», входит в криптогруппу компании Cloudflare, поднял известный сервис для тестирования на уязвимость Heartbleed. Вы могли встречать его на конференциях по криптографии и компьютерной безопасности или под ником @FiloSottile на Github и в твиттере

Спустя годы мучений с GnuPG с различным уровнем энтузиазма я пришёл к выводу, что оно не стоит того, и я сдаюсь. По крайней мере относительно концепции долговременных ключей PGP.

Речь не о самой программе gpg и не о криптографических инструментах в принципе. Многие писали на эту тему. Я говорю о модели долговременных ключей PGP, будь она гарантирована сетью доверия, отпечатками открытых ключей или моделью TOFU — неважно. Я говорю о том, что она не подходит для меня лично.
Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Просмотры 43K
Комментарии 82

Skype Out vs Viber Out vs Tviggo vs Signal

Исследования и прогнозы в IT Читальный зал
Знаковым направлением в мире технологий по праву считаются звонки через интернет. Возможности VoIP-телефонии настолько обширны, что конкурировать с ней на данный момент не представляется возможным. Техническая база, подкрепленная гибкостью программных кодов, предоставляет небывалую ранее вариативность. В одной технологии разворачивается целая матрешка возможностей. Используя всего лишь одно приложение, клиент получает полный набор, необходимый для работы, общения и развлечений. Его задача – получать удовольствие, за все остальное всецело отвечает разработчик сервиса. Еще одна особенность, привлекающая внимание – это обширный выбор приложений, переключиться между которыми гораздо проще, чем поменять мобильного оператора.


Читать дальше →
Всего голосов 16: ↑6 и ↓10 -4
Просмотры 8.6K
Комментарии 11

Security Week 03: закат SHA-1 продолжается, баг или фича в Whatsapp, уязвимости в роутерах не чинятся

Блог компании «Лаборатория Касперского» Информационная безопасность *
SHA-1 — все. Или нет? Следить за развитием событий вокруг этого алгоритма хеширования легко и приятно: несмотря на очевидную серьезность проблемы, она остается малоприменимой для практических атак, как минимум — массовых. Впервые я упоминал о SHA-1 в дайджесте аж от октября 2015 года. Проблемы с ним появились из-за того, что вычислительные ресурсы подешевели несколько быстрее, чем ожидалось. Эксперт по криптографии Брюс Шнайер в 2012 году предрекал, что через три года для создания коллизии при генерации хэшей потребуется 11 лет вычислений на условном сервере. Три года прошли, и выяснилось, что на самом деле (за счет развития технологий параллельных вычислений, и благодаря новым исследованиям в области криптографии) этот срок значительно меньше — всего 49 дней.

Так как хеширование с помощью SHA-1 используется в весьма ответственных операциях, например при установке защищенного соединения с веб-сайтами, разработчики софта довольно оперативно начали делиться планами по выводу ненадежного алгоритма из эксплуатации. Начиная с 24 января (для Firefox, для других браузеров чуть позже) посещение сайта, не поддерживающего более стойкий алгоритм SHA-2 (обычно модификации SHA-256), будет приводить к разнообразным угрожающим предупреждениям у пользователей.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры 14K
Комментарии 14

Обработка многократно возникающих SIGSEGV-подобных ошибок

Ненормальное программирование *C++ *

Тема изъезжена и уже не мало копий было сломано из-за неё. Так или иначе люди продолжают задаваться вопросом о том может ли приложение написанное на C/C++ не упасть после разыменования нулевого указателя, например. Краткий ответ — да, даже на Хабре есть статьи на сей счёт.


Одним из наиболее частых ответов на данный вопрос является фраза "А зачем? Такого просто не должно случаться!". Истинные причины того почему люди продолжают интересоваться данной тематикой могут быть разные, одной из них может быть лень. В случая когда лениво или дорого проверять всё и вся, а исключительные ситуации случаются крайне редко можно, не усложняя кода, завернуть потенциально падающие фрагменты кода в некий try/catch который позволит красиво свернуть приложение или даже восстановится и продолжить работу как ни в чём не бывало. Наиболее ненормальным как раз таки может показаться желание снова и снова ловить ошибки, обычно приводящие к падению приложения, обрабатывать их и продолжать работу.


Итак попробуем создать нечто позволяющее решать проблему обработки SIGSEGV-подобных ошибок. Решение должно быть по максимуму кроссплатформенным, работать на всех наиболее распространённых десктопных и мобильных платформах в однопоточных и многопоточных окружениях. Так же сделаем возможным существование вложенных try/catch секций. Обрабатывать будем следующие виды исключительных ситуаций: доступ к памяти по неправильным адресам, выполнение невалидных инструкций и деление на ноль. Апофеозом будет то, что произошедшие аппаратные исключения будут превращаться в обычные C++ исключения.

Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 9.1K
Комментарии 10

Хотите зашифровать вообще любое TCP соединение? Теперь у вас есть NoiseSocket

Блог компании Virgil Security, Inc. Информационная безопасность *Криптография *


Привет, %username%!

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

А еще есть IoT, где впихивать TLS целиком это вообще задача не для слабонервных. И бэкенд, который, я почти уверен, у всех после балансера общается друг с другом по обычному HTTP. И P2P и еще и еще и еще…

Не так давно в сети появилась спецификация Noise Protocol Framework. Это по сути конструктор протоколов безопасной передачи данных, который простым языком описывает стадию хэндшейка и то, что происходит после неё. Автор — Trevor Perrin, ведущий разработчик мессенджера Signal, а сам Noise используется в WhatsApp. Так что, был отличный повод рассмотреть этот протокольный фреймворк поближе.

Он так понравился нам своей простотой и лаконичностью, что мы решили на его основе запилить аж целый новый протокол сетевого уровня, который не уступает TLS в безопасности, а в чём-то даже превосходит. Мы презентовали его на DEF CON 25, где он был очень тепло принят. Пора поговорить о нём и у нас.
Всего голосов 42: ↑40 и ↓2 +38
Просмотры 34K
Комментарии 67

Настоящий Offline Perfect Forward Secrecy для ваших продуктов

Блог компании Virgil Security, Inc. Информационная безопасность *Криптография *Программирование *Разработка систем связи *
Tutorial
Привет, %username%!


Что может быть проще, чем отправить зашифрованное сообщение собеседнику?

Берём его публичный ключ, свой приватный, считаем Diffie-Hellman, загоняем после KDF результат в какой-нибудь AES, и готово. Но, если один из приватных ключей украдут, всё, весь перехваченный до этого трафик будет без проблем расшифрован.

Мы расскажем как с этим борются современные мессенджеры и транспортные протоколы, а так же дадим вам инструмент для внедрения PFS в свои продукты.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 4.4K
Комментарии 2

Проблемы мессенджеров: исчезающие сообщения в Signal for Mac не удаляются окончательно

Блог компании Positive Technologies Информационная безопасность *


Исследователь информационной безопасности Алек Маффетт (Alec Muffett) обнаружил возможность восстановления исчезающих сообщений в Mac-версии защищенного мессенджера Signal. В результате чувствительная информация пользователей может оказаться под угрозой.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 4.7K
Комментарии 0

Security Week 18: шифровальная истерика

Блог компании «Лаборатория Касперского» Информационная безопасность *
Нелегкая выдалась неделя для средств обмена зашифрованными сообщениями. Средства как бы работали, но то в одном найдут дыру, то в другом еще какую проблему. Все началось в понедельник, когда группа европейских исследователей анонсировала серьезные уязвимости в ряде почтовых клиентов, поддерживающих шифрование по стандартам OpenPGP или S/MIME (новость). Анонсировала, поделилась информацией с особо важными людьми «под эмбарго»: в мире уязвимостей так делают, чтобы попавшие под раздачу вендоры смогли, например, выпустить патч. А еще — чтобы «особо важные люди» высказались в пользу важности и нужности исследования в публичном порядке.

Но что-то пошло не так, и вместо вторника пришлось обнародовать информацию в тот же понедельник (судя по всему, в Твиттере пошло обсуждение и начали раскрываться детали). Для двух опубликованных сценариев атаки наличие своего бренда (Efail), логотипа и веб-странички выглядит странно, но, впрочем, ладно. Оба метода атаки эксплуатируют встроенный в почтовые клиенты просмотрщик сообщений в виде веб-страниц. В сообщение перед зашифрованными текстом вставляется битый тег img — так, чтобы на сервер атакующего отправился не только запрос на загрузку картинки, но чтобы к нему еще было прицеплено расшифрованное сообщение.
Всего голосов 22: ↑20 и ↓2 +18
Просмотры 7.5K
Комментарии 2

Мобильное приложение Signal обходит государственную блокировку, пропуская трафик через Google App Engine

Софт IT-компании

Схема обхода государственной цензуры через крышевание доменов, из научной работы 2015 года

С 21 декабря 2016 года криптомессенджер Signal от Open Whisper Systems стал использовать оригинальный метод обхода государственной цензуры, из-за которой от сети оказались отключены пользователи из Египта и ОАЭ. Метод называется «крышевание доменов» (domain fronting) и подробно описан в 2015 году в научной работе исследователей из университетов Калифорнии, Беркли и Принстона.

Цензор видит только домены, указанные в DNS-запросе и в поле TLS SNI, но он не видит HTTP заголовок Host, в котором система и прячет реальное доменное имя для отправки трафика. Реальное доменное имя надёжно спрятано с помощью шифрования HTTPS.
Читать дальше →
Всего голосов 29: ↑25 и ↓4 +21
Просмотры 31K
Комментарии 35

Signal 2.0 – бесплатные зашифрованные сообщения и звонки

Смартфоны


Разработчики из Open Whisper Systems 2 марта в своём блоге анонсировали новую версию iOS-приложения Signal 2.0. Эта программа предназначена для защищённого общения. Она поддерживает зашифрованные звонки, передачу текстовых сообщений, картинок и видео. Весь функционал приложения доступен совершенно бесплатно. Стандартные SMS и MMS каналы приложение не использует.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 14K
Комментарии 24

Уголок пользователя ЭВМ: тайна переписки

Смартфоны Софт Инфографика
Приложение WhatsApp, являясь самой распространённой «переписывалкой» в мире, уступает по защищённости и функциональности другим подобным системам, в частности Telegram и Signal.

image
Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 12K
Комментарии 30

В мессенджер Wire от бывших членов команды Skype добавили шифрование данных

Социальные сети и сообщества
image

Мессенджер Wire, созданный при участии выходцев из команды Skype и финансовой поддержке сооснователя Skype, получил долгожданное шифрование типа «end-to-end». Теперь всё, от сообщений до видеозвонков, шифруется так, чтобы информацией могли воспользоваться только отправитель и получатель.

Компанию Wire, выпускающую одноимённый мессенджер, бывшие разработчики Skype основали в Швейцарии осенью 2012 года. В декабре 2014 года вышла первая версия приложения. Конкурентным преимуществом программы по сравнению со Skype называлось «исключительно чистая передача голоса». Также на сайте продукта рекламировалась некая защищённость мессенджера — но потом эта реклама исчезла с ресурса, поскольку шифровалась передача данных лишь между пользователем и сервером проекта.

Теперь же в программу добавили шифрование, идущее по протоколу Axolotl с открытым исходным кодом. Изначально этот протокол появился в открытом проекте мессенджера Signal. Благодаря своей продуманности и успешной реализации он был признан общественностью, и его уже используют WhatsApp, Silent Phone и ChatSecure.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 15K
Комментарии 13

Android-приложение Haven от Эдварда Сноудена охраняет физические объекты

Смартфоны Софт
В рамках проекта Guardian при участии Фонда свободы прессы и Эдварда Сноудена разработано очень полезное мобильное приложение Haven (исходный код). Haven — программа для настоящих параноиков, в хорошем смысле этого слова. Приложение задействует различные сенсоры смартфона (вибрация, движение, звук, детектор освещённости) для определения, что в вашу комнату проникли незваные гости.

Насколько бы хорошо вы ни защищали свой компьютер или ноутбук, но если злоумышленник получил к нему физический доступ, то защиту можно считать скомпрометированной (например, он может снять копию HDD и установить простой жучок, чтобы узнать мастер-пароль для снятия криптозащиты). Приложение Haven на Android-смартфоне будет лежать в одной комнате с компьютером и гарантирует, что туда никто не заходил. А если кто-то зайдёт — программа сделает фотографии и запишет звук.

Приложение Haven работает как охранная система для ноутбуков, сейфов, других вещей, а также для целых помещений — номеров в гостинице или комнат в доме.
Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 30K
Комментарии 44

Сверхзащищенный мессенджер Signal «тайно» сохраняет историю и ключи шифрования открытым текстом

Информационная безопасность *Мессенджеры *Криптография *Социальные сети и сообщества
image
Иллюстрация thehackernews.com

Signal обрел популярность после того, как стал известен в качестве «любимого мессенджера» Эдварда Сноудена. В 2015 г. он рассказал, что ежедневно пользуется приложением Signal для связи с журналистами.

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

Первоначально Signal был доступен только как приложение для мобильных телефонов, но удобство требовало настольной версии, которая в результате появилась в виде расширения для Chrome. С конца октября 2017 пользователям стал доступен новый вариант автономного приложения, не зависящего от браузера. С этого же момента расширение для Chrome получило статус end-of-life, и на момент публикации данной статьи срок его поддержки истекает менее чем через месяц. Здесь и начинается грустная история.

Делай раз


Исследователь в области информационной безопасности Мэтью Сюиш поделился открытием, что один из самых защищенных крипто-мессенджеров «подложил» своим пользователям «свинью» впечатляющих размеров. Мессенджер Signal в процессе миграции от расширения для Chrome до полноценного десктопного клиента экспортирует сообщения пользователя в незашифрованные текстовые файлы.
Всего голосов 75: ↑63 и ↓12 +51
Просмотры 128K
Комментарии 71