Анализ Использования Цифровых Подписей: 10 Из 15 Топовых Криптовалют Не Подписывают По



Анализ использования цифровых подписей: 10 из 15 топовых криптовалют не подписывают ПО

Читая последние новости о том, что хакеры успешно подменили код большого проекта, естественно возникает вопрос: как это вообще возможно, если код был подписан!? Пренебрежение правилами безопасности в криптосфере – это оксюморон и в то же время факт, поэтому, чтобы эта статья не превратилась в избиение человека, я выбрал для анализа не новичков, а криптовалюты из вершины рейтинга CoinMarketCap. .

И, как вы уже догадались, не зря.

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



Мотивация

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

Методы взлома различаются: происходит атака на один из узлов сети, отвечающий за доставку данных, и осуществляется скрытая подмена фрагмента данных.

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

Существует несколько способов защититься от такой атаки.

Подпись PGP считается стандартной: публикация подписанных контрольных сумм.

В этом случае ключ PGP должен быть распределен правильно.

Например, опубликованные на различных ресурсах (желательно более двух).



Анализ

Для анализа я использовал официальные ресурсы, ссылки на которые я получил из разных источников.

После чего он начал собирать информацию, двигаясь с разных сторон.

При анализе учитывалась публикация как заказного ПО, так и SDK. В анализ не вошли токены или проекты на основе смарт-контрактов, только криптовалюты.



Результаты

Проект Результат
Биткойн-ядро публикация ключа и кода в одном источнике
Эфириум Гет публикация ключа и кода в одном источнике
Эфириум SDK нет подписи
Паритет нет подписи
XRP -
Лайткоин публикация ключа и кода в одном источнике
Кардано Дедал нет подписи
Кардано нет подписи
Звездный неопубликованные ключи
Звездный SDK неподписанные релизы, подписание неопубликованными ключами
ЙОТА ИРИ нет подписи
ЙОТА-кошелек нет подписи
Трон Ядро нет подписи
Трон кошелек нет подписи
Нео Гуй нет подписи
Нео Кли нет подписи
Монеро публикация ключа и кода в одном источнике
Даш Ядро публикация ключа и кода в одном источнике
Дэш Электрум нет подписи
NEM Нано-кошелек нет подписи
НЕМ НИС неопубликованные ключи
Эфириум Классик *
Ктум Ядро нет подписи
Zcash неподписанные релизы
(*) Ethereum Classic использует стороннее программное обеспечение и не публикует информацию для подтверждения выпуска.



Распространенные ошибки

  1. Отсутствие подписи как таковой( 10/15 ): Неподписанным может быть исполняемый код, но чаще встречаются неподписанные библиотеки и прикладное программное обеспечение, например кошельки.

  2. Подписание неопубликованными ключами ( 2/15 ): Код подписан несколькими разработчиками, ключи которых нигде не публикуются, а потому такие подписи бесполезны.

  3. Публикация ключей и кода в одном источнике ( 5/15 ).

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

    Таким образом, для замены данных достаточно взломать только сайт.



Нетипичные ошибки

Monero предлагает посмотреть ключи в папке с подписанными данными.

По сути, это ошибка распределения ключей, которая приводит к полной потере надежности.



На заметку!



Причины

  1. Отсутствие единой стратегии .

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

    Активно ведется любительская деятельность.

  2. Устаревание .

    Если посмотреть основные сайты о технологии PGP, то создается впечатление, что технология в забвении:

  3. Отсутствие комплексных инструментов для публикации и проверки подписей.

    .

    Даже если есть желание, на пути пользователя ждут серьезные препятствия — многие пользователи не умеют и не готовы использовать консоль, необходимую для проверки подписи.

    Даже для разработчиков использование подписи — нетривиальная задача.

  4. Устаревший протокол обмена ключами .

    В 21 веке, когда разработчики практически не встречаются лично, организовать обмен ключами по принципу p2p не очень удобно и нужны инструменты для более быстрого распространения и отзыва подписи.



Совет

Лучший совет в этой ситуации:
  1. Разделяйте ключи по задачам (это поможет избежать утечки мастер-ключа или использования ключа разработчика для подписи релиза).

  2. Дублируйте информацию в нескольких источниках, например на официальном сайте и на Github (взломать два ресурса одновременно сложнее, чем один).

  3. Создавайте удобочитаемые URL-адреса (их легче запомнить и проверить).



инструкции

Если вы еще не используете ключи PGP, я настоятельно рекомендую включить проверку подписи в свой рабочий процесс.

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

Часа-другого времени достаточно, чтобы начать, но удовольствие, которое вы получите потом, невозможно измерить.

Использование GPG с Git

  1. Загрузите программное обеспечение для управления ключами:
    1. Linux (установка не требуется, используйте
        
        
        
        
         

      gpg2

      ).

    2. MacOS Инструменты GPG .

    3. Окна GPG4Win .

  2. Генерация ключа:

    > gpg2 --gen-key

  3. Получаем отпечаток ключа:

    > gpg2 --fingerprint user@localhost gpg: checking the trustdb gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u gpg: next trustdb check due at 2020-07-01 pub rsa2048 2018-07-02 [SC] [expires: 2020-07-01] E5F1 2C73 045F 1E85 302D A9D5 269E 7C5E B852 68BB uid [ultimate] User <user@localhost> sub rsa2048 2018-07-02 [E] [expires: 2020-07-01]

  4. Добавьте ключ в git (см.

    переполнение стека ):

    > git config user.signingkey E5F12C73

  5. Подпишите коммиты, добавив ключ -S:

    > git commit -S -m 'Signed commit'

  6. Ээкспортировать ключ:

    > gpg2 --armor --export user@localhost -----BEGIN PGP PUBLIC KEY BLOCK----- mQENBFs6VDsBCADzd5F4jaJr7Dzp11+h5CmnRNHGSTWOMQe+TSXljR351BCF9hS6 VrIizaPCVkLW/ATsqdf6vZEApvbQplwHecFPwMpFhusTOILk7lsuXm8w5CscqgBo KiZdSBa9bpWmFrSsPgD8/2VMlQdh+3uChOKapsLo7cHKXNuWX8b1L30twNwgavMc Sel/3clO7Bwp9cFftyktsM/HtSUu1oaE//dibS60HzwmscPHsIIoYsfUSCEOj08f DwK2vLbPilYKyE7fONJpXCSPk5pfDnNxzdFWylNBTQL8benhCtSyfabbtHmeywe+ VWfRAGf/BRjjb7meAMX5vO6qh1l4FfHVo7irABEBAAG0FVJ1bWtpbiA8c3BhbUBy dW1rLmluPokBVAQTAQgAPhYhBOXxLHMEXx6FMC2p1SaefF64Umi7BQJbOlQ7AhsD BQkDwmcABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJECaefF64Umi7e4kIALs2 0wbQ0g5557cIbN/eXeK+DsyZFyp3D95RoOnLgWiDknVBluRyPY1QFkjKgNNepMNr 7TM1eNev1CcSDLkuUxlLMrDH9AsAIVWFl7v1+/npJuHkazylU2DgssWICF0yKgWZ tzOQUEDwX7xwIJ3g5v44Lymq0hPi56FVv+rq15hkNsqIOyjDQNVGROUURyO/+vUP khOa2ryjWCpdBzoRNxSyVMlyoABLHwTfXDkCFHV9T7bOa/o0GqILOZ7wCBN9tT5C 38ellwu/HTCtmzZsWvl3a6g8JcunB9yV3RZFQgUDvLEjiVoY2qqn/SWgcl6QR2Ro aEwTKk/p3PU1Foz7mEC5AQ0EWzpUOwEIAPbKGT/xzJ9JvXhMyoOGQZNWkqyXKtV4 zVdfdjxkWMrsMD/C2K1CQ5HPafTM9G/kATGCAmoFPCdLwrc9QqOw3H8PNxnph3Ca irvp0ICj6KDiuCCuptJYICzllKriyLhUDyFkb7GPpRgHpKJZMVCkRbDEau3jcJEx jsdUnjf3gDpEnkuV1pwSxGFxTV3vHNQBqGbFG8mjVkfZSnB++e+tyKPhC5X0QFue K2AlHbnj0/uXZ9wYfRTOJsbW6myR0k1edo7Y5P93fhpW49wwaMTe2Q9p+m6zRguf 8vC9sGUB/eGD9+6OwtIZJ6ZlUa8/MYUBr9er/z+hl7ApdpibChCb8lUAEQEAAYkB PAQYAQgAJhYhBOXxLHMEXx6FMC2p1SaefF64Umi7BQJbOlQ7AhsMBQkDwmcAAAoJ ECaefF64Umi7e3UIAO9ixyXaKmsfWVB11tYPHP+9Xo2s0RRanNMyqAcp1se3jQBZ Z7gfr7DBFBFPU0KeOibWXysMz54hXImxDgYQPKFznzKB5463DiZt8pYjxdphX4/j m6ccw1GnpImRJHpu3mMPSItd/QDqEl87KqSw+IojaLDid3QeL0uRzi2k5/Jwz6ru QMCwdKIMBDPw936YOsfHjQx1RTY9NC59cW1i0lU813By1J80hd24aIJH5vVyYI/I suz153mZUZ+dmN0F6wfnuqNzeCfJRoHKh45ABDD3cRQ2kE76UQ4Kr0xb0G512yUO WJFT8ff3EWn1FulR7bmprA4HHACyx/otL7P777E= =zi5u -----END PGP PUBLIC KEY BLOCK-----

  7. Копируем результат и добавляем его в доверенные ключи в интерфейсе Github, Gitlab или Bitbucket.


Заключение

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

Поэтому доверяйте, но проверяйте %username%! В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

Используете ли вы подпись PGP 13,16% Да, всегда 5 23,68% Да, периодически 9 63,16% Нет 24 Проголосовали 38 пользователей.

17 пользователей воздержались.

Теги: #информационная безопасность #криптовалюты #программирование #безопасность #криптография #цифровая подпись #gpg #gpgtools #gpg4win

Вместе с данным постом часто просматривают: