Криминалистика и биткоин

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

Мы будем обсуждать академическую работу, которая была предпринята в этой области, какие меры предосторожности может предпринять пользователь, осведомленный о безопасности, и вопросы, представленные им при этом. Мы также расскажем об инструменте Python с открытым исходным кодом под названием BTCscan, который был создан, чтобы сопровождать эту статью, и будет вырезать адреса биткойнов, личные ключи и другие артефакты биткойнов.

Эта статья может представлять интерес для лиц, проводящих расследования по уголовным, гражданским, личным или деловым причинам. Некоторые элементы могут иметь ограниченное отношение к учреждениям, не имеющим полномочий на арест и / или повестку в суд.

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


Биткойн не был разработан, чтобы быть анонимным, он был разработан, чтобы сохранить высокую степень конфиденциальности для своих пользователей, по словам его создателя Сатоши Накамото: «Публика может видеть, что кто-то отправляет сумму кому-то другому, но без привязки информации сделка никому ». Биткойн-транзакции можно просматривать, так как они все записаны в общедоступной цепочке блоков. По этой причине Биткойн был описан как псевдо анонимный. [1]

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

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

Из-за вышеизложенного, владение биткойнами может быть на удивление трудно доказать. Право собственности можно рассматривать как простое знание или возможность воссоздания закрытого ключа для адреса биткойнов, в котором в настоящее время находятся биткойны. Чтобы увеличить потенциальные трудности для следователей, закрытый ключ может храниться — и скрываться — несколькими способами. Следующие примеры представляют собой один и тот же закрытый ключ, представленный в разных форматах, а именно Brain Wallet (так называемый, так как они составлены из текста, который можно запомнить), WIF, WIF Compressed, Hex, Base64 и QR-код WIF: [2]

«Где библиотека», поинтересовался мистер Дог. «Это на втором этаже, моя дорогая», — ответила миссис Кэт.

5JdNpeG4KURTjVcz1tUj9met6CBmXdZ5kZ9rNah7Td72oQcTvaV

KzoZKHTTeY2xzZKpevDP3i6CVvNXYCLbyEv4vFi3WWMcwUgwHE58

6AECA69A2197EFA93A8344950068D4FA25619023802FE8DC33B17DACBDE30D8C

+ auymmiGX76k6g0SVAGjU iVhkCOAL + jcM7F9rL3jDYw =

 

Сторонние веб-сайты, такие как службы кошельков или биржи, могут покупать, хранить, торговать, хранить и совершать транзакции в биткойнах для своих пользователей. Определение третьих лиц, используемых заинтересованным лицом, может быть сделано путем изучения их истории в Интернете или цепочки блоков. Выполнение последнего потребовало бы знания адресов биткойнов, принадлежащих как интересующему лицу, так и сторонней службе, которые затем можно использовать для идентификации транзакций между ними. Только прямое перемещение средств между этими известными адресами, которые не прошли через промежуточные адреса, само по себе будет иметь доказательную ценность, так как при любых промежуточных переходах можно утверждать, что биткойны вышли из-под контроля первоначального владельца. Сторонние сервисы обычно не документируют адрес, который они используют, поэтому предположения могут быть сделаны. [3,4,5]

Деанонимизация пользователей Биткойн

Недавно в академической газете обсуждалась возможность относительно дешевой деанонимизации следователей до 60% клиентов Биткойн в сети. Их метод работает путем дактилоскопии пользователей на основе подключений, которые они имеют к другим узлам в сети Bitcoin p2p, эти подключения являются случайными и, следовательно, должны отличаться для каждого подключенного пользователя. Когда пользователь подключается к другому узлу, его IP-адрес объявляется этому узлу. Если злоумышленник подключен к достаточному количеству узлов, можно просмотреть эти объявления и сделать дактилоскопию. [6]

Если пользователь использует VPN, TOR, веб-кошелек или за NAT и не получает входящие соединения, то IP-адрес, полученный следователем, не будет идентичным пользователю. Но даже в этих случаях следователь сможет сопоставлять отдельные и разные транзакции одному и тому же пользователю.

Проблема с использованием этого метода заключается в том, что он не является целевым, и чем более успешным вы хотите, чтобы он был (т.е. максимум до 60%), тем более шумным и очевидным для пользователей Биткойн он становится.

Пользователи могут использовать Биткойн вместо TOR, думая, что это повышает конфиденциальность, но более поздние бумажные и реальные атаки показывают, что это открывает пользователю возможность атак «человек посередине», если они не используют конкретные адреса .onion. Кроме того, злоумышленники могут запретить всем выходным узлам TOR подключаться к сети Биткойн, злоупотребляя средствами защиты от спама в биткойнах, что вынуждает пользователей подключаться более традиционными способами. [7,8]

Вышеуказанная атака по анонимизации работает путем анализа трафика в сети Биткойн. Это отличается от анализа графа транзакций, который был основным предметом научных исследований в этой области. Именно здесь анализируется публичный регистр транзакций биткойнов (цепочка блоков), чтобы найти шаблоны или другие подобные артефакты, которые затем можно использовать для помощи следователю. Эти три основных фактора , которые могут уменьшить конфиденциальность для пользователя и являются годный для использования на основе анализа транзакций графа повторное использование адреса , изменение адреса и слияние выходов, Результаты анализа цепочки блоков, скорее всего, не предоставят вам реальных данных о владельце, но могут выявить использование третьих сторон, которым могут быть предъявлены повестки. [9]

Повторное использование адреса

Повторное использование адресов рассматривает адреса биткойнов как банковский счет, где один адрес биткойна используется для нескольких транзакций. Адреса Биткойн не предназначены для использования таким образом, факт, что они могут быть случайно, а не умышленно. Нет ограничений на количество биткойн-адресов, которые может использовать один человек, и дизайн таков, что для каждой транзакции должен быть создан новый биткойн-адрес. Это не считается расточительным из-за чрезвычайно большого числа доступных адресов (существует 1,46 × 10 ^ 48 возможных адресов биткойнов, что дает каждому человеку на Земле 2,05 × 10 ^ 38 разных адресов). [10]

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

Изменить адреса

Биткойны тратятся на создание транзакции для перевода средств с одного адреса на другой. Каждая транзакция имеет один или несколько входов и один или несколько выходов — это означает, что биткойны могут быть отправлены на более чем один адрес в одной транзакции. Каждый вход должен быть полным выходом неизрасходованной транзакции (UTXO) из предыдущей транзакции — UTXO не может быть потрачен частично. Это означает, что если вы получаете 10 BTC за одну транзакцию, вы должны потратить все 10 BTC, если хотите потратить любую из них. Чтобы получить любые изменения, которые вам причитаются, создаются два выхода; один, которому вы платите, а другой обратно на другой адрес, принадлежащий отправителю. Это называется изменением адреса. Если бы вы покупали товар на 1,5 BTC с неизрасходованным UTXO на 10 BTC, это потребовало бы транзакции с двумя выходами; 1,5 BTC идет к продавцу и 8,5 BTC возвращается к покупателю в качестве изменения. [11]

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

Слияние выходов

Если транзакция отправляется, когда транзакция объединила несколько UTXO для создания общего требуемого ввода, можно предположить, что все эти адреса, которые были объединены для создания ввода в транзакцию, принадлежат одному и тому же лицу.

Смесители

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

Некоторые исследования показали, что, по крайней мере, в некоторых случаях услуги микширования могут быть не такими безопасными, как они предлагают своим пользователям, при этом транзакции услуг могут быть выбраны из цепочки блоков, или депонированные средства могут быть украдены напрямую. [12,13]

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

Еще один способ анонимизации биткойнов может заключаться в том, чтобы внести их в популярный сервис кошельков или обменять и вывести их через некоторое время, хотя используемый сервис может сохранять записи. Если биржа поддерживает другие криптовалюты, такие как litecoin, ripple, dogecoin, namecoin и т. Д., То средства могут быть конвертированы в другую криптовалюту перед их обратной торговлей или продажей, чтобы скрыть историю транзакций в другой цепочке блоков. [14]

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

Метод анализа цепочки блоков для определения того, какие адреса биткойнов связаны с другими, называется анализом заражений . Если интересующий вас человек выполняет анализ характеристик по адресам, это может означать, что они выполнили смешивание биткойнов и хотят проверить, что оно прошло успешно. [15]

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

Расширенная безопасность Биткойн

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

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

Один из способов хранения личных ключей — бумажный кошелек; обычно они содержат два QR-кода, один показывает адрес биткойна, другой — закрытый ключ для расходов. Они могут быть свернуты так, что потраченный QR-код не будет виден, а снаружи будет отображаться только биткойн-адрес. Они также могут быть запечатаны голографической защитной лентой от взлома и / или запечатаны в водостойкие пакеты.

Статья-2-paperwallets

 

Недавно созданные бумажные кошельки могут быть защищены BIP-0038, где закрытые ключи зашифрованы, поэтому для доступа к средствам требуется пароль. Если получен бумажный кошелек BIP-0038, пароль также потребуется для перемещения биткойнов. Зашифрованные закрытые ключи BIP-0038 начинаются с 6, незашифрованные (как указано выше) начинаются с 5. [16]

Помните, что бумажные кошельки и / или закрытые ключи (зашифрованные или нет) могут дублироваться и храниться в нескольких местах. Например, кто-то может сохранить копию своего зашифрованного закрытого ключа BIP-0038 на своем локальном компьютере, другой — в документе, хранящемся в облаке, и распечатать его в сейфе вместе с другом, который держит другую копию. При наличии нескольких копий одних и тех же закрытых ключей только один потребуется для перемещения биткойнов (возможно, подальше от захвата), поскольку они все одинаковы.

Другой метод — хранение закрытых ключей на недорогом компьютере, таком как Raspberry Pi, или на дешевом ноутбуке, который затем защищен от любых сетей. Чтобы получить доступ к биткойнам, транзакции могут быть подписаны с использованием закрытых ключей, хранящихся на компьютере с воздушным зазором в автономном режиме, затем эти подписанные транзакции могут быть перенесены на компьютер, подключенный к Интернету, через USB-флешку, а затем отправлены анонимно в сеть Биткойн в виде сырая сделка. Кроме того, Linux Live CD или USB можно использовать для загрузки в известной безопасной среде с закрытыми ключами, которые хранятся на отдельной, возможно, зашифрованной USB-флешке. Это также может быть постоянно отключено или использоваться только с распределением безопасности, таким как хвосты, для повышения безопасности сети.

Биткойн-адреса с повышенной безопасностью

Биткойны могут храниться в адресах со встроенной избыточностью, называемой m-of-n или multi-sig . Хотя они имеют сходные результаты и иногда упоминаются взаимозаменяемо, они используют разные технологии — одна работает вне цепочки блоков, а другая работает явно внутри нее. Они оба позволяют разделить доступ к средствам внутри адреса биткойнов между группой людей или в разных местах для повышения безопасности.

M-of-n использует алгоритм Shamir’s Secret Sharing (SSS), SSS разбивает закрытый ключ на количество (n) частей, и что по крайней мере набор (m) из этих частей должен быть сведен вместе, чтобы восстановить закрытый ключ. Например, адрес, разделенный на 2 из 3, состоит из трех частей, любые две из которых необходимо объединить, чтобы воссоздать исходный закрытый ключ. Эти части могут быть сохранены одним и тем же лицом, закрепленным в разных местах, или могут быть переданы трем разным людям. [17]

Многосигнальные адреса похожи по своей концепции, но они используют возможности сценариев транзакций Биткойн для блокировки адреса биткойн с несколькими закрытыми ключами и снова требуют определенного количества из них, чтобы разблокировать средства. Из этих двух использование адресов с несколькими сигнатурами считается более безопасным и мощным способом разделения ключей, так как в отличие от SSS, с адресами с несколькими сигнатурами отдельные закрытые ключи не должны объединяться в одном месте (потенциальная точка отказа) для того, чтобы разблокировать средства. [18]

Несмотря на то, что они обеспечивают повышенную безопасность, мульти-сиг-адреса используются мало — фактически ни один из 100 адресов, содержащих наибольшее количество биткойнов, не является мульти-сиг. [19]

Биткойн-оборудование

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

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

В то время как Trezor на данный момент является самым популярным, на рынок начинают выходить другие аппаратные устройства безопасности. Другие устройства могут выглядеть как толстые кредитные карты с кнопками и небольшим ЖК-дисплеем или небольшими USB-устройствами — потенциально хранящиеся на кольце для ключей. Другие устройства USB, связанные с биткойнами, являются устройствами 2FA (двухфакторной аутентификации), что позволяет пользователю проходить аутентификацию на веб-сайтах (обычно это услуги кошелька или обмены). Они могут имитировать USB-накопители по внешнему виду или быть намного меньше, и они могут иметь или не иметь кнопку на них. В качестве альтернативы, 2FA может поставляться посредством получения SMS-сообщений или автоматических телефонных звонков, приложения, такого как Google Authenticator или Authy, на смартфоне или предварительно напечатанных одноразовых кодов.

Дополнительные артефакты

Как уже говорилось выше, повторное использование адресов снижает конфиденциальность, и для избежания этого необходимо создавать новый биткойн-адрес для каждой транзакции. Если используется служба или приложение кошелька, то этот кошелек будет управлять несколькими адресами для пользователя. В первые годы существования Биткойна это было проблемой, поскольку любые новые созданные адреса не обязательно были бы реплицируемыми из более старых резервных копий кошелька пользователя. Это было решено с помощью HD (иерархически детерминированных) кошельков, которые могут создавать неограниченное количество адресов биткойнов из одного семени. Поскольку эти адреса создаются предсказуемым образом, необходимо выполнять резервное копирование только начального содержимого, не беспокоясь о том, что резервное копирование устарело. HD-кошелек, совместимый с BIP-0039 (такой как Trezor, рассмотренный выше) хранит начальное число как мнемонику из 12 или более слов с использованием обычных английских слов. [20]

Ниже приведен пример 12 слова BIP-0039 для мнемонического восстановления семени: [21]

Сегмент Маска Элемент Праздник ворон Август Быстрое распространение опасности лезвие удовлетворить комфорт

Популярный сервис кошельков blockchain.info не совместим с BIP-0039 и использует другой список слов. Ниже приведен пример мнемосхемы восстановления семнадцати слов аккаунта blockchain.info:

начатый центр нигде пародонта активировать крит затрачено мумм бпс хроники чианг дальквист драгнет грыжа сомнительный дагмар

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

Также к blockchain.info относится идентификатор кошелька, который используется для входа на сайт. Это выглядит как показано ниже:

a8c1022a-34ef-4f9b-976a-1b06280726ec

Скрипт погашения — это секция гексагона, которая требуется для проверки и расходования биткойнов, хранящихся по адресу с несколькими сигнатурами. Один и тот же сценарий предоставляется каждому владельцу части многосигнального адреса.

Пример сценария погашения показан ниже:

52210247ff353a285cfd5df7b928815b5d2660d1a38a02ce3a07eebabc06ce4465afed2102d1f689dcad 039c818cd3d810b9b9ab22953d09b2a042b08c204de0963b6f8cf42103612bada10935f41d1e29fdd8 5e2cd7a86a43bcd7f13f9e174932b363268ff3bb53ae

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

Экспертиза файлов / памяти

Адрес биткойна составляет от 26 до 35 символов (но обычно длиной 34 символа), и для их поиска можно построить регулярное выражение или поиск grep. Ниже показаны варианты этих поисков в формате ANSI и Unicode:

ANSI: 1 [a-km-zA-HJ-NP-Z1-9] { 25,34 }

Юникод: 1 \ x00 ([a-km-zA-HJ-NP-Z1-9] \ x00) { 25,34 }

Интересно, что они не работают должным образом в EnCase 6.19.7.2; это может быть связано с тем, что в руководстве по EnCase скобки недокументированы. Тестирование в Python показывает, что выражения верны.

Если эти регулярные выражения используются для поиска в файлах адресов биткойнов, будет возвращено большое количество ложных срабатываний. Поэтому должен быть какой-то способ проверить правильность каждого найденного адреса. К счастью, формат, в который закодированы адреса биткойнов, имеет встроенную проверку ошибок; это называется Base58Check. Эта кодировка состоит из двух частей. Во-первых, часть Base58 — это схема кодирования двоичного текста, созданная специально для Биткойна. Base58 использует только символы 0-9, az и AZ, исключая 0 (ноль), O (заглавная o), l (строчная буква L) и I (заглавная i), пропущенные символы удаляются, поскольку они могут вызвать визуальную неоднозначность, оставляя 58 символы, следовательно, Base58. Во-вторых, проверкачасть — это проверка ошибок, где последние четыре байта строки являются двойным дайджестом SHA-256 предыдущих данных. Проверяя правильность кодировки Base58Check для любых строк, найденных в результате поиска RE / grep, мы можем определить, какие из них являются ложноположительными и, что более важно, а какие нет. [22]

Удобно, что адреса биткойнов — не единственные элементы в экосистеме Биткойн, которые используют кодировку Base58Check, другие элементы, использующие его, — это адреса биткойнов P2SH, частные ключи с шифрованием BIP-0038, частные ключи в формате WIF (Wallet Import Format) для несжатых и сжатых открытых ключей. и ключи открытого и закрытого узлов для кошельков BIP-0032 HD.

BTCscan

BTCscan — это написанный мной Python-скрипт, который автоматизирует извлечение закодированных строк Base58Check, соответствующих формату биткойн-элементов, упомянутых выше, из любого файла (-ов), над которым выполняется скрипт. Если указатель направлен на папку, сценарий будет перебирать файлы и папки в этом каталоге, просматривая каждый по очереди. BTCscan является открытым исходным кодом, не использует никаких нестандартных зависимостей Python3 и доступен здесь: https://gist.github.com/chriswcohen/7e28c95ba7354a986c34

BTCscan по большей части упрощен, он не будет искать в криминалистических областях (UC, slack файлов, ADS и т. Д.) И не найдет соответствующие элементы, которые не являются ANSI или Unicode. Он будет сканировать файлы DD на диске, но только как плоский файл. Он не оптимизирован и не отличается высоким качеством — но он работает (по крайней мере, в Windows), и мне удалось запустить этот инструмент поверх образа памяти, и элементы были восстановлены из ранее удаленных файлов из образа DD диска. BTCscan может восстанавливать элементы из файлов, связанных с программным обеспечением Bitcoin, и кешировать файлы с сайтов, связанных с Bitcoin. Имейте в виду, что могут появиться некоторые ложные срабатывания, например, если в адресе Биткойн содержится проверенный формат Base58, но неизвестный адрес P2SH.

Поделиться:

© specexpert.info 2020

© specexpert.info, 2002 - 2024