Author

Topic: Как защищать приватные ключи на сервере? (Read 1082 times)

member
Activity: 202
Merit: 27
Atom foundation

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


Да, красиво и просто, хотя все равно можно подделать список транзакций или прослушивать, кто стучится к списку транзакций. Хотя если там прокси итд, в целом это надежный способ спрятать сервер от физического взлома. Другой вопрос доверия, если клиент знает, где находится сервер и что он защищен, можно куда-то прийти и проверить, что лавочка работает итд.
member
Activity: 202
Merit: 27
Atom foundation
два сервера, один с  приватными, второй с солями от него.
1. взламывают один, без соли приватный не приватный
2. влазмывают второй, одна соль кругом
3. и для психов, можно третий сервер, который знает какая соль к какому приватному
4. дальше защищать запрос к этим серверам
newbie
Activity: 65
Merit: 0

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


красиво. странно но вроде еще никем не реализовано
newbie
Activity: 219
Merit: 0
Если весь алгоритм шифрования/дешифрования находиться на том же сервере то нет смысла заморачиваться так как если злоумышленник получит доступ к серверу то сможет всё равно дешифровать всю инфу
newbie
Activity: 52
Merit: 0
Привет всем.

Интересует такой вопрос. Как надежно защищать приватные ключи на сервере некого сервиса, допустим web кошелек? С одной стороны нужно хорошо их зашифровать, а с другой стороны их нужно использовать часто и, что важнее, оперативно по запросу.

Какие технические решения можно и/или нужно использовать? Best practices?
winrar архив под паролемHuh


Какой винрар ребята? Там человек сервис делает под задачи хранения коинов с доступом к ним, и винрар 100% не момо! Преставьте рашифровывать и зашифровывать через распаковывание на серваке.. Кодеры или приколисты? =)







newbie
Activity: 10
Merit: 0
P.S. Один мой товарищ, всё свою крипту и ключи хранит исключительно на жестком диске, он использует его только в момент нужды, а потом сразу отключает. Но и по такой схеме можно взломать тремя разными способами. Самый первый это BruteForce...
У жесткого диска циклы жизни ограниченны, от частых операций чтения/записи он конечно не накроется, но а в чем проблема печати оффлайн QR кода приват ключа на бумагу и ее ламинирование дабы избежать повреждений и окисления. Вот тебе и один из вариантов который падение, короткое замыкание, и все беды - причины смерти диска не страшны. Дома положить в сейф и юзать когда тебе надо.
member
Activity: 980
Merit: 48
P.S. Один мой товарищ, всё свою крипту и ключи хранит исключительно на жестком диске, он использует его только в момент нужды, а потом сразу отключает. Но и по такой схеме можно взломать тремя разными способами. Самый первый это BruteForce...
Это если есть возможность прямого доступа к компу, если вашего товарища никто не знает, он нигде не светит свой комп, достать с такого компа, что-либо невозможно.

Quote
это бесполезно тут как бабка надвое гадала . все зависит от контроля компа .вирусы не хапайте и все будет нормик)))

На такие компы, лучше вообще ничего лишнего не ставить.
newbie
Activity: 18
Merit: 0
Судя по периодически возникающим новостям о взломе кошельков - никакие ухищрения тут не будут панацеей. Буквально сегодня обсуждалась новость, что на одной из южнокорейских бирж хакер получил доступ к кошелькам рядя пользователей. Среди пострадавших есть человек, который в результате взлома потерял около ляма долларов, уверенна, что он использовал все возможные способы чтобы обезопаситься и это ему не помогло.

Судя по русской ментальности, я думаю что вопрос актуальный, но очень мало людей задумываются о информационной безопасности. Вот я знаю человека, который знает человека у которого украли деньги в размере 5 мил. руб. Украли честно заработанные на бирже деньги. Причём это было давно. прошло уже несколько лет. Я встретил этого человека по работе и я в шоке о том, что он не задумывается совершенно о информационной безопасности, хотя он и сам был жертвой взлома. Ничего не поменялось. Не готов утверждать, что за пределами нашей страны как то по другому, где то больше где то меньше.
Привет всем.

Интересует такой вопрос. Как надежно защищать приватные ключи на сервере некого сервиса, допустим web кошелек? С одной стороны нужно хорошо их зашифровать, а с другой стороны их нужно использовать часто и, что важнее, оперативно по запросу.

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

P.S. Один мой товарищ, всё свою крипту и ключи хранит исключительно на жестком диске, он использует его только в момент нужды, а потом сразу отключает. Но и по такой схеме можно взломать тремя разными способами. Самый первый это BruteForce...

P.S.S. То что Вы вообще написали этот пост ставит Вас под угрозу)
member
Activity: 322
Merit: 10
The New Pharma-Centric Marketplace
Судя по периодически возникающим новостям о взломе кошельков - никакие ухищрения тут не будут панацеей. Буквально сегодня обсуждалась новость, что на одной из южнокорейских бирж хакер получил доступ к кошелькам рядя пользователей. Среди пострадавших есть человек, который в результате взлома потерял около ляма долларов, уверенна, что он использовал все возможные способы чтобы обезопаситься и это ему не помогло.
newbie
Activity: 18
Merit: 0
Привет всем.

Интересует такой вопрос. Как надежно защищать приватные ключи на сервере некого сервиса, допустим web кошелек? С одной стороны нужно хорошо их зашифровать, а с другой стороны их нужно использовать часто и, что важнее, оперативно по запросу.

Какие технические решения можно и/или нужно использовать? Best practices?

хттаксесс вам в помощь, он поможет решить эту проблему.
newbie
Activity: 22
Merit: 0
Если сервак взломают, то ничего не поможет...А их ломают частенько
jr. member
Activity: 106
Merit: 2
3. Доступ к этому компьютеру только по специальному протоколу и одному открытому порту. Программа, которая имеет к нему доступ закрытая - т е написана вами и не имеет в свободном доступе исходников
Профит: если веб сервер будет взломан, хакеры получат только закрытую программу, а не приватные ключи
Отличная идея, злоумышленник получает "закрытую коробочку" которой может подписывать любые транзакции.
Может, я чего-то не понял, но ваш вариант значительно упрощает жизнь взломщика.

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

Но если предположить, что это попытка сделать для биржи/обменника, защищать надо сами операции сначала, что б не было возможности использовать приватный ключ для не легитимных операций. Ни взломщиками, ни админами или операторами.
sr. member
Activity: 1337
Merit: 288
0xbt
Как один из вариантов, в блокчейне эфира в зашифрованном виде
Пример -
https://etherscan.io/tx/0x190774d3eab80963fa1f9ffd11b234ddd8f53190e288483f3a38ce17bb920810
Нажми  Convert To Ascii
Можно увидеть текст и код изображения.
Сервисов подобных etherscan.io множество.
Ну а если (вдруг все разом) накроются подобные сервисы, то видимо приватные ключи, независимо от того
где они хранятся, никому уже не нужны.......
 Wink
member
Activity: 134
Merit: 10
Собственно как задача подробно описано такое подробное решение автору топика и предлагаю... Может стоит добавить побольше подробностей?
Вероятней всего он генерирует кошельки для инвесторов или пользователей сайта. А они делают переводы токенов или криптовалют. Поэтому и стоит вопрос в безопасности
newbie
Activity: 84
Merit: 0
Собственно как задача подробно описано такое подробное решение автору топика и предлагаю... Может стоит добавить побольше подробностей?
c0x
newbie
Activity: 4
Merit: 0
member
Activity: 364
Merit: 58
Я худею над каментами... рар архив, блокчейниефо... Даж не знаю смеяться или плакать над такой бестпрактикс в ветке русских кодеров?
Вместо ответа на вопрос - вы решили похудеть... Думаете кому-то кроме вас интересно, что вам делать, смеяться, плакать, бегать ... ? Grin

Как надежно защищать приватные ключи на сервере некого сервиса, допустим web кошелек? С одной стороны нужно хорошо их зашифровать, а с другой стороны их нужно использовать часто и, что важнее, оперативно по запросу.
Какие технические решения можно и/или нужно использовать? Best practices?
Если речь про web-кошелек, смотрите в сторону АПИ, как вам писали выше. Если вам все же необходимо хранить приватные ключи на web-сервере, опишите задачу более детально и еще раз подумайте, стоит ли хранить приватные ключи на небезопасном web-сервере? На вскидку - если доступ к каждому ключу только у одного пользователя - шифруйте каждый ключ паролем(или ключем) пользователея, но это так себе вариант.
full member
Activity: 411
Merit: 135
Поддерживаю, механика такая:
1. Во внутренней сети добавить спец компьютер, имеющий доступ к приватным ключам
2. На нем запущена специальная программа, умеющая подписывать транзакции
3. Доступ к этому компьютеру только по специальному протоколу и одному открытому порту. Программа, которая имеет к нему доступ закрытая - т е написана вами и не имеет в свободном доступе исходников

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


разбиваю все ваши теории.
Если будет взломан веб-сервер, взломавшему ничто не будет мешать сделать кучу поддельных запросов на перевод/вывод и все... как таковые приватные ключи и не будут его интересовать.
Но направление верное - дерзайте, дерзайте )))

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

Покритикуйте плз, мне кажется что это максимально надежная схема. Тонкий момент это как отличить нужные транзакции от ненужных, но это за рамками этой задачи
full member
Activity: 256
Merit: 102
Даже если будет оператор, как оператору вычислить что этот запрос сформировал пользователь и у него есть эти деньги, либо же хакер себе накрутил в базе +1000000?
sr. member
Activity: 770
Merit: 305
разбиваю все ваши теории.
Если будет взломан веб-сервер, взломавшему ничто не будет мешать сделать кучу поддельных запросов на перевод/вывод и все... как таковые приватные ключи и не будут его интересовать.
+1
member
Activity: 364
Merit: 10
От кого зашищать и зачем, не хватает паролей, кодировки. Создавай отдельный сервер, может поможет на первое время. 
full member
Activity: 252
Merit: 101
Поддерживаю, механика такая:
1. Во внутренней сети добавить спец компьютер, имеющий доступ к приватным ключам
2. На нем запущена специальная программа, умеющая подписывать транзакции
3. Доступ к этому компьютеру только по специальному протоколу и одному открытому порту. Программа, которая имеет к нему доступ закрытая - т е написана вами и не имеет в свободном доступе исходников

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


разбиваю все ваши теории.
Если будет взломан веб-сервер, взломавшему ничто не будет мешать сделать кучу поддельных запросов на перевод/вывод и все... как таковые приватные ключи и не будут его интересовать.
Но направление верное - дерзайте, дерзайте )))
full member
Activity: 411
Merit: 135
Мне не понятно зачем вы хотите приватные ключи от кошельков держать на веб сервере?
Я бы для кошельков завел другой выделенный сервер во внутренней сети. Но и это надо лишь в том случае если вы делаете биржу или обменник, а для простого интернет магазина можно обойтись сторонним API, например с http://blockchain.info/ и через него узнавать о поступлении средств на ваш счет.

Поддерживаю, механика такая:
1. Во внутренней сети добавить спец компьютер, имеющий доступ к приватным ключам
2. На нем запущена специальная программа, умеющая подписывать транзакции
3. Доступ к этому компьютеру только по специальному протоколу и одному открытому порту. Программа, которая имеет к нему доступ закрытая - т е написана вами и не имеет в свободном доступе исходников

Профит: если веб сервер будет взломан, хакеры получат только закрытую программу, а не приватные ключи
full member
Activity: 154
Merit: 100
ICP forever and ever
Мне не понятно зачем вы хотите приватные ключи от кошельков держать на веб сервере?
Я бы для кошельков завел другой выделенный сервер во внутренней сети. Но и это надо лишь в том случае если вы делаете биржу или обменник, а для простого интернет магазина можно обойтись сторонним API, например с http://blockchain.info/ и через него узнавать о поступлении средств на ваш счет.

Поддерживаю, для всего ценного, сервер на FreeBSD, а уже за ним на винде все развернуто , если под FreeBSD не написатьSmiley . Ибо сначала идут танки, а за ними пехота. (ну по крайней мере такая тактика была во времена ВОВ когда еще "Корнетов" не было) На FreeBSD  все серьезно, безопасность превыше всего, все порты по умолчанию закрыты.
member
Activity: 112
Merit: 10
это бесполезно тут как бабка надвое гадала . все зависит от контроля компа .вирусы не хапайте и все будет нормик)))
sr. member
Activity: 770
Merit: 305
Никак вы не защитите.
Если вам надо подписывать транзакции автоматом - то приватный ключ
в какой-то момент есть в открытом виде.
Всякие разные варианты с аппаратными кошельками сводятся к тому,
что должен присутствовать живой оператор. А это, извините, уже не серверное решение.

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

Более-менее рабочим решением является просто холодный кошелек - бабки
у босса, а приватный ключ только у него (или лучше на мультисигнатурном кошельке
у трех учредителей). На сервере - только небольшая сумма, за которую отвечает админ
своей башкой. Если надо пополнить горячий кошелек сервера - учредители туда переводят.
Если на сервере скапливается много бабла - оно переводится в "холодный кошелек"
newbie
Activity: 14
Merit: 0
Железные кошельки с API и подтверждением по PIN-коду, вставляются в raspberry pi, pi в vpn до сервера обработки транзакций на котором raw транзакции, рядом мальчик с дэшбордом запрошенных транзакций подтверждает вводом пин-кода каждую транзакцию. + (дневной) лимит на железные кошельки. Такой себе обменник из 90х Smiley Пары хмурых ребят со стволами на входе не хватает Smiley
full member
Activity: 231
Merit: 106
да много разных способов есть - и мультиподписи и отдельная железяка с нестандартным апи и железом (допустим не tcp-ip) да и банальное разделение на очень холодные кошельки и очень горячие
newbie
Activity: 56
Merit: 0
Я худею над каментами... рар архив, блокчейниефо... Даж не знаю смеяться или плакать над такой бестпрактикс в ветке русских кодеров?
Просто из тех кто реально разбираются в вопросе - никто не счёл нужным зайти и отписаться здесь на этот вопрос. Вот потому и пишут те кто реально слабо представляю себе как решить проблему. Тут половина форума таких комментариев.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Я худею над каментами... рар архив, блокчейниефо... Даж не знаю смеяться или плакать над такой бестпрактикс в ветке русских кодеров?
Что скажите о таком https://bitcore.io/guides/wallet-service/

Не знаю. Меня стандартная кора устраивает.
newbie
Activity: 88
Merit: 0
Я худею над каментами... рар архив, блокчейниефо... Даж не знаю смеяться или плакать над такой бестпрактикс в ветке русских кодеров?
Что скажите о таком https://bitcore.io/guides/wallet-service/
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Я худею над каментами... рар архив, блокчейниефо... Даж не знаю смеяться или плакать над такой бестпрактикс в ветке русских кодеров?
sr. member
Activity: 613
Merit: 256
Мне не понятно зачем вы хотите приватные ключи от кошельков держать на веб сервере?
Я бы для кошельков завел другой выделенный сервер во внутренней сети. Но и это надо лишь в том случае если вы делаете биржу или обменник, а для простого интернет магазина можно обойтись сторонним API, например с http://blockchain.info/ и через него узнавать о поступлении средств на ваш счет.
jr. member
Activity: 115
Merit: 2
Приватные ключи смысла шифровать я не вижу - нужно построить грамотно веб-приложение без дыр и закрыть все ненужные порты,
сюда же закрыть порт на сервисы криптовалютных кошельков.
Следить за обновлениями софта.

Как вариант - можно вообще биткоин кошелек вынести на отдельный сервак и построить АПИ, которое будет контролировать
нетипичные запросы, например вывод всей суммы баланса на какой-то из криптоадресов.

Вести полный или максимальный аудит запросов, холдить вывод крипты на первых порах или в зависимости от сумм.
member
Activity: 134
Merit: 10
Привет всем.

Интересует такой вопрос. Как надежно защищать приватные ключи на сервере некого сервиса, допустим web кошелек? С одной стороны нужно хорошо их зашифровать, а с другой стороны их нужно использовать часто и, что важнее, оперативно по запросу.

Какие технические решения можно и/или нужно использовать? Best practices?
winrar архив под паролемHuh










legendary
Activity: 2450
Merit: 2190
От кого защищать-то?
legendary
Activity: 1064
Merit: 1023
habr


Кто будет сторожить сторожей?
newbie
Activity: 11
Merit: 0
Привет всем.

Интересует такой вопрос. Как надежно защищать приватные ключи на сервере некого сервиса, допустим web кошелек? С одной стороны нужно хорошо их зашифровать, а с другой стороны их нужно использовать часто и, что важнее, оперативно по запросу.

Какие технические решения можно и/или нужно использовать? Best practices?
Jump to: