Федеральная Служба Опасности (malaya_zemlya) wrote,
Федеральная Служба Опасности
malaya_zemlya

Botcoin

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

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

и вот я подумал, что если так, то Биткоин можно использовать для анонимного распространения любой информации. Главное, запихнуть данные как-нибудь внутрь транзакции.

Например: перевод  0.0001BTC с кошелька 1 на кошелек 2 означает "Алекс Юстасу: явка провалена" Обратите внимание, что Штирлиц, следящий за сообщениями из Центра может не владеть ни кошельком 1. ни кошельком 2 - данные все равно до него дойдут через сеть биткоиновских серверов.

В сумму перевода многое не запихнешь, но есть и другие варианты, так недавно исследователь Дэн Камински умудрися запихнуть в публичный ключ (передаваемый с каждой транзакцией) ASCII-портрет главы Федеральной Резервной Системы США 

Кроме того транзации могут содержать скрипты, определяющие дополнительные условия пользования деньгами (например, что получатель не может распоряжаться суммой, как угодно. а обязан либо передать еще кому-то либо вернуть обратно - вуаля, гарант-сервис!) В эти скрипты тоже можно засунуть какие-нибудь данные и они тоже будут распространены по всей сети.

Одно из пришедших мне в голову применений - канал управления ботнетом. Делаем так:
Для каждого бота  b генерируем свой кошелек w и шифровальный ключ k
Шифровальный ключ и номер кошелька передаем боту . Сам кошелек оставляем себе.
Теперь, чтобы передать боту команду. мы ее шифруем и прячем ее внутри транзакции на соответсвующий кошелек. Предварительно зашифровав, конечно.
Каждый бот следит за приставленным к нему кошельком, ищет скрытые команды, расшифровыывает их, и поступает, как велено.
Биткоин при этом устроен так, что не обязательно следить ежесекундно. Можно нвпример раз в час проверять, не было ли новых сообщений.(чтоб сеть не перегрузить ненароком) Все накопившиеся изменения все равно будут в доступны в биткоиновой распределенной бвзе.

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


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

Как-то так.

ЗЫ, Кстати о проблеме распостранения ключей и данных о кошельках. Это сама по себе интересная задача. Тут мы воспользуемся тем фактом, что кошельки в Биткоине можно создать без генератора случайных чисел, а на основе заранее заданногго значения (из которого потом строятся необходимые публичные и частные ключи итп)

Поступаем так. Берем главное секретное число MasterPassword
Каждому аффилиейту (т.е. хакеру, занимающемуся распространением наших ботов) выдаем значение AffPassword = hash(MasterPassword + affiliate_id)

При установке бота аффилиейт генерирует код кошелька
wallet = generate_wallet(hash("wallet" + AffPassword + bot_id))
и ключ для шифрования двнных
encryption_key = hash("crypt" + AffPassword + bot_id).

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

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

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

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments