Pull to refresh
  • by relevance
  • by date
  • by rating

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

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

На самом деле, у меня обратный вопрос. Почему в UNIX сигнал посылается главному потоку? Это делает практически невозможным сделать что-нибудь важное внутри обработчика сигнала. Главный поток может быть внутри менеджера кучи (удерживать критическую секцию) во время приёма сигнала. Если обработчик сигнала попытается получить доступ к куче, то произойдет взаимная блокировка с самим собой, если вам повезёт. В худшем варианте повредится куча.
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Views366
Comments 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 позволяет обрабатывать сигналы. За ответом как — под хабракат.
Читать дальше →
Total votes 38: ↑29 and ↓9+20
Views11K
Comments 10

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

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

Читать дальше →
Total votes 30: ↑25 and ↓5+20
Views4.5K
Comments 18

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

C++
Sandbox

Вводная


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

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


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

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

Читать дальше →
Total votes 67: ↑60 and ↓7+53
Views54K
Comments 59

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

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

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

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

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

image

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


Читать дальше →
Total votes 260: ↑230 and ↓30+200
Views322K
Comments 357

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

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

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

Information SecurityInstant MessagingCryptographyIT Standards
Translation
Об авторе: Филиппо Валсорда занимается криптографией и TLS, называет себя «послом urandom», входит в криптогруппу компании Cloudflare, поднял известный сервис для тестирования на уязвимость Heartbleed. Вы могли встречать его на конференциях по криптографии и компьютерной безопасности или под ником @FiloSottile на Github и в твиттере

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

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

Skype Out vs Viber Out vs Tviggo vs Signal

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


Читать дальше →
Total votes 16: ↑6 and ↓10-4
Views8.4K
Comments 11

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

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

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

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

Abnormal programmingC++

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


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


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

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Views8.9K
Comments 10

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

Virgil Security, Inc. corporate blogInformation SecurityCryptography


Привет, %username%!

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

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

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

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

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

Virgil Security, Inc. corporate blogInformation SecurityCryptographyProgrammingDevelopment of communication systems
Tutorial
Привет, %username%!


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

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

Мы расскажем как с этим борются современные мессенджеры и транспортные протоколы, а так же дадим вам инструмент для внедрения PFS в свои продукты.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Views4.4K
Comments 2

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

Positive Technologies corporate blogInformation Security


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

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

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

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

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

SoftwareIT-companies

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

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

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

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

Smartphones


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

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

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

image
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Views12K
Comments 30

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

Social networks and communities
image

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

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

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

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

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

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

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

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

Information SecurityInstant MessagingCryptographySocial networks and communities
image
Иллюстрация thehackernews.com

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

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

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

Делай раз


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