Вернуться   Биткоин Форум > - Wiki
25 февраля 2011, 9:34:07 AM   # 1
 
 
Сообщения: 602
Цитировать по имени
цитировать ответ
по умолчанию Re: Secure спецификации messanging

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Для Bitcoin Stockmarket делать заказы собираются сделать на веб-сервис с использованием запроса HTTP POST.

Так что это своего рода протокол, что рыночные заказы будут отправлены на сервер с.

Запрос на запись будет иметь два поля, подпись и данные

подпись в кодировке base64 бинарной сигнатуры от OpenSSL 2048bit RSA подписи в формате base64 данные

данные в кодировке base64 строка структуры данных JSON.
Два элемента в структуре данных, являются сообщениями и Mac
Протокол не имеет дело с сообщением, поэтому мы оставим эту часть.
Код Mac или сообщение аутентификации случайное число добавляется к целому числу UNIX EPOC (Unix времени)

Сервер, который получает этот запрос должен иметь открытый ключ отправителя, чтобы убедиться, что данные Infact от клиента и не был подделан.

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

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

Разница между клиентом и сервером осуществляется, кто делает запрос, клиент делает запрос, сервер является ответчиком.
Нефарио сейчас офлайн Пожаловаться на Нефарио   Ответить с цитированием Мультицитирование сообщения от Нефарио Быстрый ответ на сообщение Нефарио


Как заработать Биткоины?
Без вложений. Не майнинг.


25 февраля 2011, 10:11:10 AM   # 2
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: Secure спецификации messanging

Получил 1806 Биткоинов
Реальная история.





Клиентская часть очень проста:

Код:
#! / Bin / Баш

# Адрес сервера (TODO: добавить опцию, чтобы установить его в командной строке)
Сервер = 127.0.0.1

# Закрытый ключ
# Вы можете создать один с: OpenSSL genrsa отъезда RSA-теста 2048
# Открытый ключ может быть получен с: OpenSSL RSA -pubout -в RSA-тест
privkey ="RSA-тест"

# Сообщение задается в командной строке
сообщение ="$ @"

# Код аутентификации сообщения представляет собой случайное число, добавляется к UNIX EPOC
макинтош = $ (Ьс <<<"$ (Дата +% s) + $ RANDOM")

данных ="$ (Base64 <<<"{\"сообщение\": \"$ Сообщение \"\"макинтош \": $ Макинтош}")"

подпись ="$ (OpenSSL rsautl -знак -inkey $ privkey -in <(эхо "$ данных") | Base64)"

Wget -O - --post-данные "Данные = $ данные&подпись = $ подпись" Http: // $ сервер

Обратите внимание на то, что процесс подписи потерпит неудачу, если сообщение слишком длинное. В этом случае, хэш сообщения следует использовать вместо самого сообщения. Мы могли бы затем рассмотреть вопрос об использовании dgst вместо rsautl.

Я думаю, что клиент должен также послать свой открытый ключ, в противном случае я не знаю, как сервер может догадаться 

Таким образом, в основном, последняя строка должна быть достаточно:

Код:
Wget -O - --post-данные "Данные = $ данные&подпись = $ подпись&Публичные = $ (OpenSSL RSA -pubout -в $ privkey)" Http: // $ сервер
grondilu сейчас офлайн Пожаловаться на grondilu   Ответить с цитированием Мультицитирование сообщения от grondilu Быстрый ответ на сообщение grondilu

25 февраля 2011, 11:18:11 AM   # 3
 
 
Сообщения: 602
Цитировать по имени
цитировать ответ
по умолчанию Re: Secure спецификации messanging

Да, ты прав. "подпись" в водоворот хэш данных, это зашифровано с помощью секретного ключа.

Я забыл сказать, что.
Нефарио сейчас офлайн Пожаловаться на Нефарио   Ответить с цитированием Мультицитирование сообщения от Нефарио Быстрый ответ на сообщение Нефарио

25 февраля 2011, 11:29:47 AM   # 4
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: Secure спецификации messanging

Да, ты прав. "подпись" в водоворот хэш данных, это зашифровано с помощью секретного ключа.

Я забыл сказать, что.

OpenSSL не делает водоворот для знакового дайджеста.

хэш-опции для dgst являются: [-md5 | -md4 | -md2 | -sha1 | -sha | -mdc2 | -ripemd160 | -dss1]
grondilu сейчас офлайн Пожаловаться на grondilu   Ответить с цитированием Мультицитирование сообщения от grondilu Быстрый ответ на сообщение grondilu

25 февраля 2011, 11:36:07 AM   # 5
 
 
Сообщения: 602
Цитировать по имени
цитировать ответ
по умолчанию Re: Secure спецификации messanging

Да, ты прав. "подпись" в водоворот хэш данных, это зашифровано с помощью секретного ключа.

Я забыл сказать, что.

OpenSSL не делает водоворот для знакового дайджеста.

хэш-опции для dgst являются: [-md5 | -md4 | -md2 | -sha1 | -sha | -mdc2 | -ripemd160 | -dss1]


Да это так, версия 1.0.0 или выше есть джакузи, он просто не перечислить его в качестве опции, передать в -whirlpool как dgst вариант.

Это, вероятно, означает, что вы хотите получить исходный код и скомпилировать его (не устанавливать, если вы не хотите, чтобы разрушить вашу систему)
Нефарио сейчас офлайн Пожаловаться на Нефарио   Ответить с цитированием Мультицитирование сообщения от Нефарио Быстрый ответ на сообщение Нефарио

25 февраля 2011, 11:49:14 AM   # 6
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: Secure спецификации messanging

Хорошо, тогда вот код клиента:

Код:
#! / Bin / Баш

# Адрес сервера (TODO: добавить опцию, чтобы установить его в командной строке)
Сервер = 127.0.0.1 / server.cgi-фондовом

# Закрытый ключ
# Вы можете создать один с: OpenSSL genrsa отъезда RSA-теста 2048
# Открытый ключ может быть получен с: OpenSSL RSA -pubout -в RSA-тест
privkey ="RSA-тест"

# Сообщение задается в командной строке
сообщение ="$ @"

# Код аутентификации сообщения представляет собой случайное число, добавляется к UNIX EPOC
макинтош = $ (Ьс <<<"$ (Дата +% s) + $ RANDOM")

# Base64 данные в формате JSON
данных ="$ (Base64 -w 0 <<<"{\"сообщение\": \"$ Сообщение \"\"макинтош \": $ Макинтош}")"

# Base64 вихревая подпись
подпись ="$ (OpenSSL dgst -whirlpool -знак $ privkey <<< "$ данных" | Base64 -w 0)"

# Отправка по методу POST
Wget -q -O - --post-данные "Данные = \"$ Данных \" подпись = \"$ Подписи \" Публичный = \"$ (OpenSSL RSA -pubout -в $ privkey) \"" Http: // $ сервер

А вот код для сервера (а CGI скрипт):

Код:
#! / Bin / Баш

эхо "Content-тип: текст / обычный"
эхо

Сервер обмена эха фондового рынка
эхо

если [[ "$ REQUEST_METHOD" знак равно "ПОСЛЕ" ]] && [[ "$ CONTENT_LENGTH" -gt 0]]
тогда
    чтения -N $ content_length POST_DATA <&0

    # TODO: восстановить почтовые данные более надежно, чем с помощью "Eval"
    Eval "$ POST_DATA"

    если OpenSSL dgst -whirlpool -Подписание <(Base64 -d <<<"$ подпись") -verify <(эхо "$ Публичных") <<<"$ данных" 2>&1
    тогда
        данных ="$ (Base64 -d <<<"$ данных")"
        эхо "$ данных"
    еще
        эхо неверной сигнатуры
    фи

еще
    не эхо никаких данных, полученных
фи


Некоторые аспекты вашей спецификации сервера зависят от типа базы данных, которую вы хотите использовать. Считаете ли вы, с помощью MongoDB?
grondilu сейчас офлайн Пожаловаться на grondilu   Ответить с цитированием Мультицитирование сообщения от grondilu Быстрый ответ на сообщение grondilu



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW