Рубрика «криптография» - 87

Неделю тридцатистрочников на JS стоит разбавить чем-нибудь действительно ненормальным.

image

Рекомендую перед прочтением ознакомиться, к примеру, с этим циклом статей или этой книгой; словарик языка здесь; тем не менее, я постараюсь подробно пояснять свои действия (все объяснения спрятаны под спойлеры, дабы не загромождать статью).

Если есть вопросы, предложения или исправления к коду — добро пожаловать в комментарии.
Читать полностью »

В свете недавней бурной дискуссии о взятии курсом биткойна нового рубежа в $500, я хочу поделиться своими соображениями по поводу того, почему биткойн не нужен.
Поскольку я не настоящий экономист, а маску на стройке подобрал — то буду признателен комментариям тех, кто разбирается в вопросе лучше меня.

Итак, зачем нужны деньги?

1. Как средство расчётов

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

Более распространённый в современном мире вариант — когда нужность вызывается верой в то, что всем остальным этот предмет так же нужен. От американских долларов не откажется ни один торгаш, ни в одной стране мира — не потому, что США чем-то особенные, а потому, что любой торгаш знает, что любой другой торгаш у него эти доллары точно так же примет.
Такая вера в американские доллары образовалась исторически, и её сможет поколебать лишь одно — распространение мерчантов, отказывающихся принимать доллары.
Когда на онлайн-базарах будут объявления «поменяй свои баксы на биткойны, и вот тогда приходи» — тогда биткойны станут состоятельны как средство расчётов.

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

2. Как средство накопления

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

image Слушания в Сенате США по вопросу Bitcoin начнутся сегодня в 0:00 по Москве. Прямая трансляция предположительно будет доступна по адресу:
www.c-span.org/Live-Video/C-SPAN3/

Портал bitnovosti.com сообщает:

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

image
Думаю каждый, кто хоть немного интересовался информационной безопасностью, да и просто периодически читает про события в сфере IT, встречал новости, что очередная компания или интернет-сервис были взломаны, и у них были украдены учетные записи пользователей, куда обычно входят электронные адреса, пароли, номера кредитных карт, как зовут вашего домашнего питомца и многое другое (далеко ходить за примером не нужно, в октябре этого года Adobe «поделилась» базой на 130-150 миллионов учетных записей). И хорошо еще, если сервис позаботился о шифровании паролей хотя бы без применения соли, в таком случае можно надеяться, что если злоумышленники захотят воспользоваться украденным, то им придется приложить некоторые усилия для этого.

Но достаточно продолжительное время меня удивляло другое — почему в большинстве случаев шифруются лишь пароли, почему такое пренебрежение к другим важным данным пользователя, как электронные адреса или номера кредитных карт?

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

Bitcoin взял рубеж в $500 за 1 BTC

Сегодня произошло еще одно памятное событие, курс Bitcoin вырос до очередной рекордной отметки — 500$ = 1 BTC
Читать полностью »

TorChat

TorChat — это анонимный кроссплатформенный мессенджер, использующий сеть Tor и шифрующий переписку. В данной статье рассмотрен протокол, используемый TorChat, и улучшения, внесённые в реализацию TorChat на Python.
Читать полностью »

Никогда не повторяйте этого дома: модификация алгоритма шифрования HC 128
HC-128 (pdf) — финалист европейского проекта eSTREAM, поточный шифр с довольно большим внутренним состоянием
(2 независимых массива по 512 32битных слов). Он очень шустрый если шифровать большие потоки, но, поскольку инициализация этих массивов занимает приличное время, не сильно эффективен в пакетном режиме. Справа 6 основных функций, которые в нём используются. Он не перегружен страшными длинными массивами констант, его реализация (под катом) по сравнению с другими выглядит простой и более-менее понятной. Началось всё с того, что меня зацепили две функции f1 и f2
Читать полностью »

Неявные предикатыРечь здесь пойдёт о некоторых аспектах компьютерной безопасности, связанных с запутыванием кода программы. Именно это мне было интересно в связи с разработкой обфускатора .NET приложений – программы для защиты .NET кода от взлома. Есть и другая – тёмная сторона: запутыванием кода очень интересуются разработчики вирусов и других нехороших штук, но нам они неинтересны.

Эмуляторы

Итак, Вы придумали супер алгоритм для запутывания кода программы. При декомпиляции код выглядит просто вырвиглазно и никто точно такое анализировать не будет. Казалось: победа! Но нет. Естественно обфусцированный код никто анализировать не будет… руками. Хакер поймёт как вы код запутывали и напишет «распутывалку». Если Ваш алгоритм был достаточно силён, то хакеру придётся писать собственный эмулятор, но и это не такая проблема как может показаться на первый взгляд – в сети есть доступные эмуляторы и даже специально написанные именно для целей взлома.

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

if ((x*x & 1) == 0)
  good_code
else
  мусор

«Но это же как раз одна из тех запутывалок, которые хакер и собирается обходить с помощью эмулятора» — скажете Вы и будете правы. А что если придумать тысячу подобных фокусов? О, это решение, если у Вас есть легион программистов, каждый из которых придумывает трюки не похожие на трюки других. В реальности это не так. В реальности Вы думаете неделю и придумываете тридцать трюков, а хакер смотрит на код один день и находит все тридцать трюков, потому что тридцать – это не так уж много.

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

armadillo

Лет семь назад попал в руки крякеров архив с сорцом генератора ключей для протектора под названием Armadillo. Просто кое-кому из благодарных пользователей продукта захотелось проверить его на прочность. А где еще получишь бесплатный аудит такого интересного кода, как не на крякерском форуме.

Этот генератор нужен был для того, чтобы при покупке клиентом вашей программы, защищенной Armadillo, мерчант смог сам автоматически сгенерировать для неё лицензионный ключ. Так же, он использовался в самой Armadillo и, если б была возможность узнать секрет, то можно было бы сделать кейген для неё самой. Что делало аудит кода вдвойне интересным.

Итак, вот он, оригинальный, добытый путём титанических усилий, архив. (исходник на C)

Попробуйте без подсказок понять, в чем именно сокрыта уязвимость. Там хоть и куча кода, но он хорошо читаем. Не получилось? А если глянуть на 528 строчку?
Читать полностью »

На волне последних скандалов с АНБ пришло осознание того, что, в конечном итоге, никому нельзя верить — рано или поздно может оказаться, что Ваши данные на сервере X, как оказалось, прослушивались некой организацией, хотя на словах говорилось о полном шифровании всех данных пользователя.

image

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


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