Преобразование речи в текст
Здравствуйте! Приходится последнее время очень много печатать, я бы даже сказал - чрезвычайно много. Может посоветуете какие-то программы или сервисы для перевода речи в текст?
Здравствуйте! Приходится последнее время очень много печатать, я бы даже сказал - чрезвычайно много. Может посоветуете какие-то программы или сервисы для перевода речи в текст?
Конечно же я понимаю, что пикабу наверное не самая профильная площадка для подобных вопросов, но тем не менее... Почему бы не спросить и тут...
Расскажите, какие наиболее рутинные вещи вам досаждают на работе? Возможно какая-то постоянная ручная сверка большого объема документов? Может быть есть какие-либо проблемы it-направления. Может быть есть какие-то трудности в операционной деятельности? Либо же есть какая-то потребность в программном обеспечении, которого нет на рынке или есть, но неудобное или слишком дорогое? Абсолютно любая информация будет ценна.
В целом я ищу боли в B2B сегменте рынка. но не особо понимаю как их искать, поэтому зашел сюда. Если поделитесь - буду крайне признателен. )))
Всем привет!
Как подобает любому сериалу, в предыдущих сериях:
настроил jitsi meet, подготовил работу с токенами, падре, я грешен, я не звонил своему дону целый год, карточки уроков добавляются и работают.... ну и иже с ними и все такое.
Доступ к ресурсу: https://learnika.ru/
Итак. подружил jitsi с лёрникой. Сразу скажу - было просто. От сервиса требовалось генерировать токены, собирать url адреса для каждого пользователя и отправлять их от сервера к учителю, а от учителя к ученику. По сути все. Ну почти, время жизни токена я установил на один час, ну и если учитель случайно ошибся и сделал ссылку "вчера", то ничто не мешает ему снова создать новый урок. еще долго обдумывал - а где конкретно пользователю "создавать онлайн урок"? я решил что в чате более логично.
Пользовательский сценарий такой:
В назначенное время учитель и ученик + - списываются в чате, там есть кнопка "создать урок" и, что думаю будет удобно, любой из оппонентов может создать урок. Просто потому что очень многие могут смотреть в книгу, а видеть фигу. Ну типа того.
Что еще интересно - сервер пытались атаковать, но ХУдожественный фильм там плавал, кто понял отсылку, тот понял отсылку и, ничего вы с этим не поделаете, да - да. Была туева хуча попыток...... эм...... положить сервер что ли..... или наполнить ботами что ли......... ну короче была попытка создать ботов на сервере. Но фиг там плавал. Рекаптча и одноразовый пароль показал кто тут главный. А это я, если вы забыли.
Вот вам фото чатика:
Два оппонента, учитель, и его ученик. Ого, прям как в звездных войнах! И как всегда двое их....
в таблице, которая хранит уроки, все стандартно -
то есть, любая запись о создании урока будет храниться в базе данных. К слову, teacherLink и studentlink имеют параметр текст потому что токен очень большой получается, плюс комната, плюс url, Высчитывать "а сколько надо" я не стал. По контроллеру, он же эндпоинт и сервису скажу что есть в наличии только создание. Удаление и редактирование не делал, а потому что зачем? У меня в планах сделать так, чтобы старые сообщения, по прошествию месяца удалялись бы.
Следующий шаг - Отзывы..... Да..... Нет.... Геморрой не в публикации.... а геморрой в модерации этих отзывов.... с одной стороны можно подрубить нейронку, а с другой - ну блин, превращаться в очередной сами знаете кто.... свят, свят, свят.... в бога не верю вот вам крест +.
О!!! Точно!!! предыдущие части:
Лёрника, часть следующая. Война с jitsi
Лёрника, часть следующая
Кому не сложно - просьба протестировать. можно зарегистрироваться как ученик и написать мне, или. если вы смелые, зарегистрироваться через яндекс, создать урок, подключиться с кем нибудь.
И, как всегда, адептам запятых и точек насыпал тут: ,,,,,,,,,,,,............ расставляйте по своему усмотрению и что бы демон орфографии, синтаксиса и пунктуации не загубил вас.
Всем спасибо за внимание!
Данная статья представляет комплексный криптоаналитический обзор критической уязвимости CVE-2023-39910, известной под кодовым названием «Milk Sad», обнаруженной в широко распространённой утилите Libbitcoin Explorer версий 3.0.0–3.6.0. Фундаментальный дефект заключается в применении криптографически небезопасного генератора псевдослучайных чисел Mersenne Twister-32 (MT19937), инициализируемого системным временем, что катастрофически ограничивает пространство энтропии до 32 бит вместо требуемых 256 бит. В работе детально исследуется механизм атаки RingSide Replay Attack, позволяющей автоматизировать процесс восстановления приватных ключей Bitcoin-кошельков, в том числе утерянных, при наличии приблизительной информации о времени их создания. Научный анализ демонстрирует, что уязвимость привела к компрометации более 227 200 уникальных Bitcoin-адресов и хищению криптоактивов на сумму свыше $900 000 USD. Особое внимание уделяется математическим основам атаки, практической методологии восстановления приватных ключей с использованием криптоинструмента BTCDetect, а также рекомендациям по защите криптографических систем от атак на основе энтропии.
Криптовалютная экосистема Bitcoin представляет собой сложную децентрализованную систему, безопасность которой фундаментально основана на принципах современной криптографии. Центральным элементом этой архитектуры является алгоритм цифровой подписи на эллиптических кривых (ECDSA — Elliptic Curve Digital Signature Algorithm), реализованный на специализированной кривой secp256k1. Однако даже математически безупречная криптографическая схема становится полностью уязвимой при нарушении базового условия — качественной генерации случайных чисел.
Безопасность сети Bitcoin базируется на вычислительной сложности задачи дискретного логарифмирования на эллиптических кривых (ECDLP — Elliptic Curve Discrete Logarithm Problem).
Приватный ключ k представляет собой случайное 256-битное целое число, которое должно быть:
Абсолютно непредсказуемым — невозможность угадывания или вычисления
Уникальным — отсутствие коллизий с другими ключами
Криптографически стойким — устойчивость к известным атакам
Публичный ключ Q генерируется как точка на эллиптической кривой путём скалярного умножения приватного ключа на генераторную точку G:
Q = k · G
где k — приватный ключ ∈ [1, n-1], G — генераторная точка кривой secp256k1, n — порядок группы
Эллиптическая кривая secp256k1 определяется уравнением Вейерштрасса в сокращённой форме:
y² ≡ x³ + 7 (mod p)
где p = 2^256 − 2^32 − 977 ≈ 1.158 × 10^77
Порядок группы n кривой secp256k1 равен:
n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
n ≈ 1.158 × 10^77
Теоретическая стойкость данной криптосистемы определяется тем, что обратная операция — вычисление приватного ключа k по известному публичному ключу Q — является вычислительно неосуществимой при корректной реализации. Однако это утверждение справедливо лишь при условии, что пространство возможных значений k остаётся максимальным (≈2^256).
Концепция энтропии в криптографии восходит к работам Клода Шеннона, заложившего теоретические основы теории информации. Энтропия Шеннона определяется как мера неопределённости (случайности) в системе:
H(X) = −Σ p(xᵢ) · log₂ p(xᵢ)
где H(X) — энтропия случайной величины X, p(xᵢ) — вероятность события xᵢ
Для криптографических приложений требуется максимальная энтропия, при которой все возможные значения равновероятны. В случае 256-битного приватного ключа Bitcoin это означает:
Hmax = log₂(2^256) = 256 бит
Критическое значение энтропии заключается в следующем: если генератор случайных чисел (RNG) производит предсказуемые или имеет ограниченное пространство значений выходные данные, то злоумышленник может перебрать все возможные приватные ключи и восстановить криптографические секреты. Именно этот фундаментальный дефект стал причиной катастрофической уязвимости Milk Sad.
Определение 1 (Криптографически стойкий ГПСЧ): Генератор псевдослучайных чисел (ГПСЧ) называется криптографически стойким, если при известных первых k выходных битах вычислительно невозможно предсказать (k+1)-й бит с вероятностью, превышающей ½ + ε, где ε — пренебрежимо малая величина.
В июне-июле 2023 года исследователи безопасности зафиксировали аномальное явление в блокчейне Bitcoin: множество кошельков, созданных в различные временные периоды, начали систематически опустошаться, несмотря на отсутствие связи между их владельцами. Исследовательская группа Distrust провела комплексный криминалистический анализ и установила, что все скомпрометированные кошельки имели единственную общую черту — они были созданы с использованием команды bx seed из утилиты Libbitcoin Explorer версий 3.x.
Результаты расследования оказались катастрофическими:
ПараметрЗначениеОбщая сумма украденных средств> $900 000 USDЗатронутые криптовалютыBTC, ETH, XRP, DOGE, SOL, LTC, BCH, ZECКомпрометированные Bitcoin-адреса> 227 200Уязвимые версии Libbitcoin Explorer3.0.0 — 3.6.0Период эксплуатацииИюнь — Июль 2023
Кодовое название «Milk Sad» было предложено исследователями как первые два слова мнемонической фразы BIP-39, генерируемой при нулевом начальном значении (seed = 0), что символически отражает «печальное» состояние «молочной» (незрелой, детской) криптографической реализации.
Mersenne Twister (MT19937) — это генератор псевдослучайных чисел, разработанный Макото Мацумото и Такуджи Нишимура в 1997 году. Алгоритм основан на линейной рекуррентной последовательности над конечным полем GF(2) и обладает следующими характеристиками:
ПараметрЗначение MT19937Период219937 − 1 (число Мерсенна)Размер слова32 битаРазмер состояния624 × 32 = 19968 битРазмер seed32 битаРавномерность (k-distribution)623-мерно равномерно распределён
Несмотря на превосходные статистические свойства (прохождение тестов Diehard, TestU01), Mersenne Twister категорически НЕ предназначен для криптографических приложений по следующим критическим причинам:
Критические криптографические недостатки MT19937:
Линейность: Внутреннее состояние может быть полностью восстановлено по 624 последовательным 32-битным выходам
Ограниченное пространство seed: Только 2^32 ≈ 4.29 × 109 возможных начальных состояний
Детерминизм: Идентичные seed производят идентичные последовательности
Предсказуемость: При известном состоянии возможно вычисление всех прошлых и будущих выходов
Критическая ошибка в коде Libbitcoin Explorer версий 3.0.0–3.6.0 располагалась в модуле генерации энтропии:
// pseudo_random.cpp (VULNERABLE VERSION) data_chunk random_bytes(size_t length) { std::random_device random; // Getting seed (system time) std::default_random_engine engine(random()); // MT19937 с 32-bit seed std::uniform_int_distribution distribution(0, 255); data_chunk result(length); for (auto& byte : result) byte = distribution(engine); return result; }
При вызове команды bx seed -b 256 | bx mnemonic-new пользователь ожидал получить 256 бит криптографически стойкой энтропии для генерации 24-словной мнемонической фразы BIP-39. Однако реальная картина была катастрофической:
Ожидаемая энтропия: 2^256 ≈ 1.16 × 1077
Фактическая энтропия: 2^32 ≈ 4.29 × 109
Редукция пространства поиска: в 1068 раз
Формализуем уязвимость с использованием строгой математической нотации. Пусть:
E — энтропия (256 бит), генерируемая для создания кошелька
S — seed для MT19937, где S ∈ [0, 2^32)
f(S) — функция генерации последовательности MT19937 из seed S
trunc32(x) — извлечение первых 32 байт из последовательности
bip39(E) — преобразование энтропии в мнемоническую фразу
derive(m) — деривация приватного ключа из мнемоники по BIP-32
addr(k) — множество Bitcoin-адресов, дериватов приватного ключа k
Определение 2 (Уязвимость Milk Sad):
Существует такой seed S, что:
∃ k, S : trunc32(f(S)) ≡ E (mod 2^256)
такой что
addr(derive(bip39(E))) = Atarget
где Atarget — целевой Bitcoin-адрес.
Вероятность успешного восстановления при полном переборе пространства 2^32:
P(success) = 1 − (1 − 1/N)2^32
где N = 2^160 — общее количество возможных Bitcoin-адресов (P2PKH)
Поскольку 2^32 ≪ 2^160, вероятность ложного совпадения пренебрежимо мала, и при нахождении корректного seed P(success) ≈ 1.
После восстановления исходного 32-битного seed, процесс реконструкции приватного ключа становится полностью детерминированным согласно стандартам BIP-39 и BIP-32:
Генерация энтропии: seed → MT19937 → 256-битная псевдослучайная последовательность
Вычисление контрольной суммы: SHA-256(entropy) → первые 8 бит
Формирование мнемоники: (entropy || checksum) → 24 слова BIP-39
Деривация master seed: PBKDF2-HMAC-SHA512(mnemonic, «mnemonic» || passphrase, 2048 итераций) → 512-битный seed
Генерация master key: HMAC-SHA512(«Bitcoin seed«, master_seed) → (master_private_key, chain_code)
Иерархическая деривация: По пути BIP-44: m/44’/0’/0’/0/0 → конечный приватный ключ
Цепочка преобразований:
S32bit → MT19937 → E256bit → SHA256 → Mnemonic24words → PBKDF2 → Seed512bit → HMAC-SHA512 → (k, c) → BIP-44 → kfinal
Полное пространство поиска составляет 232 ≈ 4.29 × 109 возможных значений seed. При известной дате создания кошелька (или приблизительном диапазоне) пространство поиска может быть существенно сокращено:
Сокращение пространства при известной дате:
|Sday| = 86 400 (секунды в сутках)
Редукция: 232 / 86 400 ≈ 49 710 раз
Производительность на современном оборудовании:
ОборудованиеСкорость перебораВремя полного перебора 2^32CPU (Intel i9-13900K)~106 seeds/сек~71 минутаGPU (NVIDIA RTX 4090)~108 seeds/сек~43 секундыFPGA кластер~1010 seeds/сек< 1 секунды
Эффективность атаки может быть выражена через отношение логарифмов пространств поиска:
Attack Efficiency = log₂(2^32) / log₂(2^256) = 32/256 = 0.125 = 12.5%
Это означает, что пространство поиска сокращается на 87.5% от теоретически безопасного уровня
BTCDetect представляет собой специализированное программное обеспечение для криптоанализа и восстановления утерянных Bitcoin-кошельков, основанное на выявлении и эксплуатации уязвимостей в криптографических библиотеках. Инструмент реализует методологию атаки RingSide Replay Attack и обеспечивает практическую реализацию восстановления приватных ключей из уязвимых кошельков.
Архитектура BTCDetect
BTCDetect состоит из следующих основных модулей:
Модуль анализа энтропии: Обнаружение слабых источников случайности в процедурах генерации ключей
Модуль реконструкции PRNG: Воспроизведение состояния генератора Mersenne Twister по известным параметрам
Модуль деривации ключей: Реализация полной цепочки BIP-39/BIP-32 для восстановления ключей
Модуль верификации: Сопоставление восстановленных адресов с целевыми данными блокчейна
Алгоритм работы BTCDetect
Операционная модель BTCDetect включает три основных этапа:
Идентификация уязвимых кошельков:
Анализ временных меток транзакций
Определение вероятного диапазона создания кошелька
Идентификация паттернов, характерных для Libbitcoin Explorer
Перебор пространства seed:
Генерация кандидатов seed на основе временного диапазона
Параллельное вычисление цепочек BIP-39 → BIP-32
Сравнение полученных адресов с целевыми
Верификация и восстановление:
Подтверждение корректности восстановленного ключа
Проверка валидности подписей
Документирование результатов для криминалистического анализа
Практический пример восстановления
Рассмотрим задокументированный случай восстановления приватного ключа:
Bitcoin-адрес 1NiojfedphT6MgMD7UsowNdQmx5JY15djG
Стоимость восстановленных средств $61,025
Восстановленный приватный ключ (HEX)4ACBB2E3CE1EE22224219B71E3B72BF6C8F2C9AA1D992666DBD8B48AA826FF6B
Восстановленный ключ (WIF compressed) Kyj6yvb4oHHDGBW23C8Chzji3zdYQ5QMr8r9zWpGVHdvWuYqCGVU
Публичный ключ (сжатый)
03AE73430C02577F3A7DA6F3EDC51AF4ECBB41962B937DBC2D382CABB11D0D18CE
Валидация восстановленного ключа подтверждает его принадлежность к допустимому диапазону скаляров кривой secp256k1:
1 ≤ k < n
где n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
Научное значение BTCDetect
Методология BTCDetect имеет широкое научное применение, выходящее за рамки конкретной уязвимости Milk Sad:
Исследование классов PRNG-уязвимостей: Линейные конгруэнтные генераторы (LCG), небезопасные реализации random()
Криминалистический анализ блокчейна: Выявление паттернов компрометированных кошельков
Аудит криптографических библиотек: Обнаружение потенциальных уязвимостей до их эксплуатации
Образовательные цели: Демонстрация критической важности криптографически стойких ГПСЧ
Порядок конкатенации данных (R || M || i || j) создаёт потенциальные возможности для атак с расширением длины (length extension attacks) в определённых сценариях.
Данная статья представляет детальный криптоанализ критической уязвимости, обозначенной как CVE-2023-39910, получившей кодовое название Milk Sad. Уязвимость обнаружена в популярной утилите Libbitcoin Explorer (версии 3.0.0–3.6.0), которая используется для создания и управления Bitcoin кошельками в офлайн-режиме. Основной дефект заключается в использовании криптографически небезопасного генератора псевдослучайных чисел Mersenne Twister-32 (MT19937), инициализируемого с помощью системного времени, что ограничивает пространство энтропии всего 32 битами. Данная работа рассматривает механизм атаки Ringside Replay Attack, которая позволяет злоумышленникам автоматизировать процесс восстановления приватных ключей Bitcoin кошельков, включая восстановление потерянных кошельков, если известно примерное время их создания. Научный анализ показывает, что уязвимость привела к компрометации более 227 200 уникальных Bitcoin адресов и краже криптовалют стоимостью более 900 000 USD. В статье подробно описаны математические основы атаки, методология восстановления приватных ключей и криптоинструмент BTCDetect, используемый для практической реализации восстановления. Также представлены рекомендации по защите и контрмеры для разработчиков и пользователей криптовалютных кошельков.
Безопасность сети Bitcoin фундаментально основана на криптографии эллиптических кривых (ECDSA), в частности на использовании кривой secp256k1. Приватный ключ — это случайное 256-битное число, которое должно быть абсолютно непредсказуемым и уникальным для каждого Bitcoin адреса. Публичный ключ генерируется как точка на эллиптической кривой путём умножения генератора кривой G на приватный ключ:
Q = k · G, where k is the private key
Безопасность этого механизма полностью зависит от качества энтропии, используемой при генерации приватного ключа. Если генератор случайных чисел (RNG) является предсказуемым или имеет ограниченное пространство значений, злоумышленник может перебрать все возможные приватные ключи и восстановить криптографические секреты. Именно эта фундаментальная уязвимость и стала причиной катастрофы Milk Sad.
В июне-июле 2023 года на блокчейне Bitcoin было обнаружено необычное явление: множество кошельков, созданных в разные годы, начали опустошаться в одну и ту же дату, несмотря на отсутствие связи между их владельцами. Исследовательская группа Distrust провела детальный анализ и обнаружила, что все скомпрометированные кошельки имели одну общую черту — они были созданы с помощью команды bx seed из Libbitcoin Explorer версии 3.x.
Согласно исследованиям, было украдено более 900 000 USD стоимостью криптовалют (в том числе BTC, ETH, XRP, DOGE, SOL, LTC, BCH и ZEC). Позже, в 2025 году, команда Milk Sad обновила свой анализ и обнаружила, что количество скомпрометированных кошельков составляет более 227 200 уникальных Bitcoin адресов, что делает эту атаку одной из крупнейших в истории криптовалютной безопасности.
Расследование Milk Sad, начатое ранее в 2023 году, показало, что жертвы создавали свои кошельки на изолированных ноутбуках с Linux, используя команды в Libbitcoin Explorer. В каждом случае пользователи использовали bx для создания мнемонических фраз BIP39 из 24 слов, полагая, что инструмент обеспечивает достаточную случайность.
Одна из команд, использованных при генерации кошелька, выглядела так:
bx seed -b 256 | bx mnemonic-new
Она генерировала 256 бит энтропии, которые затем преобразовывались в мнемоническую фразу из 24 слов. Из-за несовершенства генератора случайных чисел, якобы безопасная мнемоника на самом деле была предсказуемой. Хотя жертвы Milk Sad создавали свои кошельки с разницей в несколько лет, следователи обнаружили, что каждый из них использовал одну и ту же версию Libbitcoin Explorer, которая неосознанно генерировала слабые закрытые ключи.
ECDSA (Elliptic Curve Digital Signature Algorithm) — это криптографический алгоритм, основанный на эллиптической криптографии. В Bitcoin используется специфическая кривая, называемая secp256k1, которая определяется уравнением:
y² ≡ x³ + 7 (mod p) where p = 2^256 − 2^32 − 977
Кривая secp256k1 имеет порядок n ≈ 2^256, что означает, что существует приблизительно 2^256 возможных точек на кривой. Генератор G — это стандартная генерирующая точка для этой кривой, которая используется для всех вычислений в Bitcoin.
Процесс генерации ключевой пары в Bitcoin выглядит следующим образом:
Генерация энтропии: Генерируется 256-битное случайное число, которое служит приватным ключом k. Это число должно быть в диапазоне 1 ≤ k < n, где n — порядок базовой точки.
Вычисление публичного ключа: Публичный ключ Q вычисляется как Q = k · G, где · обозначает скалярное умножение на эллиптической кривой.
Генерация адреса: Bitcoin адрес получается путём хеширования публичного ключа и кодирования результата.
Критическим моментом является генерация энтропии на шаге 1. Если используется слабый генератор случайных чисел, то пространство возможных приватных ключей становится значительно меньше, чем 2^256, что позволяет злоумышленнику перебрать все возможные ключи и найти приватный ключ.
Mersenne Twister (MT19937) — это генератор псевдослучайных чисел, разработанный Мацумото и Нишимурой в 1997 году. Алгоритм основан на линейной рекуррентной последовательности над конечным полем и генерирует последовательность 32-битных целых чисел. Алгоритм широко используется в немировых приложениях благодаря его хорошим статистическим свойствам и быстроте вычисления.
Однако Mersenne Twister категорически НЕ предназначен для криптографических приложений по следующим причинам:
Предсказуемость: Выходные значения RNG могут быть полностью восстановлены при наличии последовательности из 624 последовательных 32-битных выходов.
Уязвимость к анализу: Внутреннее состояние состоит из 624 32-битных целых чисел; если злоумышленник знает эти значения, он может предсказать все будущие выходы.
Отсутствие свойства криптографической стойкости: Алгоритм не обладает свойством, при котором невозможно вычислить i-й элемент последовательности без вычисления всех предыдущих элементов.
В коде Libbitcoin Explorer 3.x процесс генерации энтропии для создания новых кошельков реализован следующим образом:
Команда bx seed использует эту функцию для генерации начальной энтропии при создании новых Bitcoin кошельков. Вот типичный вызов:
bx seed -b 256 | bx mnemonic-new
Эта команда должна была бы создать 256 бит случайной энтропии, которая затем преобразуется в 24-словную BIP-39 мнемоническую фразу. Однако из-за ограничения в 32 бита реального пространства энтропии от std::random_device, вся мнемоническая фраза может быть восстановлена при известном времени создания кошелька.
Пространство возможных значений seed для MT19937 ограничено 2^32 комбинациями (приблизительно 4.3 миллиарда возможных значений). Это означает, что всё пространство энтропии может быть перебрано за несколько дней на обычном ПК.
Пространство поиска = 2^32 ≈ 4.29 × 10^9 возможных значений
Если известна дата создания кошелька (или примерный диапазон дат), пространство поиска может быть дополнительно сокращено. Системное время, используемое для инициализации MT19937, может быть восстановлено с высокой вероятностью, если известны:
Год создания кошелька
Месяц/день (если известны из истории транзакций)
Приблизительное время суток
Сокращение пространства поиска до диапазона дат, например за один день, уменьшает количество попыток примерно в 86 400 раз (количество секунд в дне).
После восстановления исходной 256-битной энтропии её преобразование в приватный ключ полностью детерминировано согласно стандартам BIP-39 и BIP-32:
Энтропия → SHA-256 контрольная сумма → 24-словная BIP-39 фраза
BIP-39 фраза + пассфраза → PBKDF2-HMAC-SHA512 (2048 итераций) → 512-битный мастер seed
Мастер seed → HMAC-SHA512("Bitcoin seed") → мастер приватный ключ + цепной код
Пусть:
E — энтропия, которая должна быть генерирована (256 бит)
S — seed для MT19937, где S ∈ [0, 2^32)
f(S) — функция, которая генерирует MT19937 последовательность из seed S
trunc_32(x) — функция, которая берёт первые 32 байта из последовательности MT19937
bip39(E) — преобразование энтропии в BIP-39 мнемонику
derive(m) — преобразование мнемоники в приватный ключ
addr(k) — множество всех возможных Bitcoin адресов, дериватов из приватного ключа k
Уязвимость определяется как:
∃ k, S : trunc_32(f(S)) ≡ E (mod 256)
такой что addr(derive(bip39(E))) = A_target
где A_target — целевой Bitcoin адрес.
При перебор полного пространства 2^32:
P(success) = 1 − (1 − 1/N)^(2^32) where N = 2^160 is the total number of possible Bitcoin addresses (for P2PKH addresses)
Поскольку 2^32 << 2^160, вероятность ложного совпадения ничтожно мала, и P(success) ≈ 1 при нахождении правильного seed.
Процесс восстановления приватного ключа для скомпрометированного Bitcoin кошелька состоит из следующих этапов:
Определение диапазона дат: Из истории транзакций определяется примерная дата создания кошелька. Это может быть известная дата или диапазон от нескольких месяцев до года.
Перебор значений seed: Для каждого дня в диапазоне дат перебираются все возможные значения seed, соответствующие временным меткам этого дня (86 400 значений в день).
Генерация энтропии: Для каждого значения seed генерируется последовательность MT19937, из которой извлекаются первые 32 байта, интерпретируемые как энтропия.
Преобразование в мнемонику: Сгенерированная энтропия преобразуется в BIP-39 мнемонику.
Деривация приватного ключа: Мнемоника преобразуется в приватный ключ согласно BIP-32 иерархии.
Генерация адреса: Из приватного ключа генерируется соответствующий Bitcoin адрес.
Проверка совпадения: Если сгенерированный адрес совпадает с целевым адресом, то восстановление считается успешным.
На современном оборудовании (например, GPU NVIDIA RTX 3090):
Если известна точная дата: примерно 86 400 проверок = несколько минут на одном GPU
Если известен год: примерно 365 × 86 400 ≈ 31 536 000 проверок = несколько часов на одном GPU
Если используется полное пространство 2^32: примерно 4 294 967 296 проверок = несколько дней на одном GPU
Данные расчёты показывают, что восстановление приватного ключа практически осуществимо даже для непрофессиональных злоумышленников.
Рассмотрим задокументированный случай восстановления приватного ключа из Bitcoin-адреса 1NiojfedphT6MgMD7UsowNdQmx5JY15djG:
Bitcoin адрес 1NiojfedphT6MgMD7UsowNdQmx5JY15djG Стоимость восстановленных средств $ 61.025
Восстановленный приватный ключ (HEX) 4ACBB2E3CE1EE22224219B71E3B72BF6C8F2C9AA1D992666DBD8B48AA826FF6B
Восстановленный приватный ключ (WIF compressed) Kyj6yvb4oHHDGBW23C8Chzji3zdYQ5QMr8r9zWpGVHdvWuYqCGVU
Восстановленный приватный ключ (Decimal) 95490713496748161492785334010456634825357659290488148536925849552527657999353
Приватный ключ k должен удовлетворять ограничению:
1 ≤ k < n where n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 ≈ 1.158 × 10^77
Результат проверки: ✓ ВАЛИДЕН (ключ находится в допустимом диапазоне скаляров)
Восстановленный приватный ключ позволяет вычислить публичный ключ:
Публичный ключ (несжатый, 130 символов) 04BC79D7CC638214D0FE1902A8F3A0EEC3F2B41F5792043559AD6161D23467C234BCD34142146FF3E0DF1648A2B83F392B738AF7598C5B137C2A4500B6E12CECFD Публичный ключ (сжатый, 66 символов) 03AE73430C02577F3A7DA6F3EDC51AF4ECBB41962B937DBC2D382CABB11D0D18CEBitcoin адрес (uncompressed) 1NiojfedphT6MgMD7UsowNdQmx5JY15djG
Восстановленный приватный ключ предоставляет полный контроль над Bitcoin-кошельком, позволяя злоумышленнику:
Создавать и подписывать транзакции для вывода всех средств на контролируемый адрес
Импортировать ключ в любой Bitcoin кошелек (Electrum, Bitcoin Core, MetaMask и т.д.)
Полностью захватить контроль над адресом и всеми его активами
Скрыть следы компрометации путём удаления всех логов и истории
BTCDetect — это программное обеспечение, разработанное для восстановления утерянных биткойн-кошельков путём применения методов криптоанализа и выявления уязвимостей в криптографических библиотеках, таких как SharpECC. SharpECC — это библиотека C# для работы с эллиптической криптографией (ECC), которая лежит в основе генерации ключей и подписей в экосистеме Bitcoin.
Несмотря на свою популярность, SharpECC имеет ряд критических уязвимостей и ошибок, которые могут служить точками входа для восстановления закрытых ключей утерянных кошельков.
BTCDetect работает на уровне уязвимости криптографической реализации, что отличает его от традиционных методов восстановления:
Seed фраза (BIP-39)24 или 12 слов мнемоники Восстановление всех ключей в иерархии Резервные копии (wallet.dat) Файл wallet.dat Восстановление всех кошельков Прямой ввод ключей Приватный ключ (WIF или HEX)Контроль над конкретным адресом BTCDetect
⚠️ Для пользователей, которые создали Bitcoin кошельки с использованием Libbitcoin Explorer 3.x:
Немедленная миграция средств:
Создать новый кошелек с использованием криптографически безопасного метода генерации энтропии
Перевести все средства на новый адрес
Уничтожить или использовать старый адрес только для мониторинга
Проверка компрометации:
Использовать инструменты анализа для проверки, не был ли конкретный адрес скомпрометирован
Проверить, нет ли неавторизованных транзакций из кошелька
Восстановление потерянных средств:
Если кошелек был создан в известную дату, можно использовать методы восстановления для получения приватного ключа
Перевести восстановленные средства на безопасный кошелек
Уязвимость CVE-2023-39910 (Milk Sad) демонстрирует критическую важность правильной генерации энтропии в криптографических приложениях. Несмотря на то что использование Mersenne Twister-32 было документировано как небезопасное, множество разработчиков и пользователей не обратили внимание на предупреждения, что привело к масштабной компрометации более 227 200 Bitcoin кошельков.
Криптографические системы и ошибки реализации связаны не с теоретической зрелостью, а с банальными инженерными просчетами. Без постоянного аудита, использования только криптографически безопасных библиотек генерации случайных чисел и оперативного реагирования на инциденты риски в криптовалютных системах всегда будут фатальными и системными. Атака Milk Sad — это суровый научный урок для всей криптовалютной индустрии: один слабый компонент может нарушить целостность всей системы.
Polycurve Extraction Attack: A polycurve extraction attack (CVE-2023-39910) leads to private key recovery and theft of Bitcoin funds, where an attacker is able to gain control of BTC funds through a libbitcoin flaw. Polycurve Extraction Attack The core of the libbitcoin crypto library contains a critical vulnerability: an elliptic curve point received from outside the library fails a full mathematical check to determine…Read More
Video tutorial: https://dzen.ru/video/watch/69431d5dfd50136dae291001
Данный материал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN. Создатели программного обеспечения не несут ответственность за использование материалов.
Projecto снова на связи!
Декабрь — время не только для всех отчетов на свете и нервного тика, но и пора подумать о том, как сделать так, чтобы в новом году работать так, чтобы не разгребать последствия в следующем декабре. Если вы работаете в команде, то стоит рассмотреть сервис для совместной работы. Что это такое и как это поможет вашему бизнесу, рассказываем в этой статье.
Сервисы для совместной работы — это программы, которые помогают командам работать сообща. В них можно создавать задачи, отслеживать их выполнение, обмениваться файлами и редактировать документы вместе в режиме реального времени.
Они подходят маленьким и большим командам, особенно если люди работают не в одном офисе. Такие платформы позволяют:
не терять важные файлы,
держать все задачи под контролем
видеть, кто что делает
обсуждать работу во встроенных чатах
а еще — закончить игры с перебрасыванием ответственности.
Благодаря им работа команды становится проще, эффективнее, а общение и взаимодействие между сотрудниками удобнее и прозрачнее.
Чтобы эффективно организовать командную работу и управлять проектами и задачами, важно выбрать платформу, которая соответствует вашим целям и масштабу коллектива.
Вне зависимости от формата размещения такого софта, в облаке или On-Premise (то есть в коробке), системы управления задачами берут на себя:
Планирование и контроль задач — самый важный аспект таких систем. Задачи, вне зависимости от уровня и ранга руководителя, просматриваются как на ладони: где, что, когда и в чьей зоне ответственности.
Упрощение коммуникации — все рабочие переписки и обсуждения хранятся в одном месте, важные сообщения и идеи потерять невозможно. А чтобы не было утечек, можно настроить права доступа.
Обмен и хранение документов — все важные файлы (документы, презентации, схемы и т.п.) доступны участникам команды в любое время.
Автоматизация рутины — система сама может рассылать напоминания и уведомления, обмениваться данными с внешними сервисами.
Совместимость с удаленкой — удобно организовывать работу в том числе географически распределенных команд для повышения эффективности (да-да, мы все знаем, как иногда бывает тяжело работать из дома.
Ниже — обзор ключевых платформ на российском рынке, их особенности и и кому они подойдут.
Наиболее удобный формат систем управления для небольших и средних компаний — готовое облако (SaaS). Облако предполагает готовую инфраструктуру по подписке, без крупных разовых вложений и с официальной технической поддержкой. Только крупным компаниям подходит «коробка» или On-Premise. Ниже — возможности топовых систем совместной работы.
Российский сервис, в котором удобно работать с разветвленными структурами и задачами.
Кому подойдет: командам малого и среднего бизнеса, но изначально разрабатывался для портфелей проектов и холдингов. Интерфейс интуитивно понятный, есть возможность настройки рабочих пространств под пользователя и виджетов, есть удобное полнофункциональное мобильное приложение. Доступны версии в облаке и коробке.
Плюсы:
постановка и отслеживание задач и проектов
трекинг времени
встроенный мессенджер в задачах
гибкая настройка доступа
визуализация процессов через канбан-доски и диаграмму Ганта
удобный календарь с настраиваемыми событиями — приватными и общими, сравнение календарей
мастер миграции — перераспределение задач при увольнении
удобное меню настраиваемых виджетов
файлохранилище и работа с документами
интеграция с Гугл-календарем
Минусы: нет бесплатного тарифа (например, для небольших команд), только триал на месяц. Небольшой набор интеграций с внешними сервисами.
А к Новому году у Projecto акция: 1 дополнительный месяц бесплатно при покупке лицензии на 12 месяцев.
Своеобразный симбиоз CRM-системы, сервиса видеоконференций, базы знаний, системы управления проектами и программы складского учета. Может адаптироваться для предприятий любого размера, но особенно полезна отделам продаж как универсальное решение «для всего».
Плюсы:
комплексная CRM
API и каталог приложений
триггеры для автоматизации
гибкие права доступа
встроенные чаты и видеозвонки
дополнительные поля и настройка бизнес-процессов
Минусы: больше нет бесплатного тарифа (только триал), перегруженный интерфейс, долгое внедрение, высокая стоимость для крупных команд, требует времени на адаптацию.
Российская платформа для управления задачами и проектами с акцентом на визуализацию процессов и Kanban-доски.
Кому подойдет: командам любого размера, которые работают по Agile или Scrum и хотят наглядно видеть прогресс выполнения задач и поток проектов.
Плюсы:
гибкая настройка канбан-досок
управление потоками задач и WIP-лимиты
визуализация процессов и этапов проектов
простое распределение задач между участниками
Минусы: ограниченные функции для работы с документами и CRM.
Современный инструмент управления проектами и задачами, ориентированный на небольшие команды.
Кому подойдет: коллективам, которым важно вести совместный проект, обмениваться файлами и работать с документами в режиме реального времени.
Плюсы:
интуитивный интерфейс
совместное редактирование документов
канбан-доска и календарь
простая организация задач и проектов
Минусы: ограниченная интеграция с внешними сервисами, меньше функций для крупных команд.
Еще один сервис управления проектами, задачами, CRM, корпоративными чатами и видеозвонками.
Кому подойдет: командам любого размера, которым нужен универсальный инструмент для управления проектами, коммуникациями и бизнес-процессами.
Плюсы:
комплексная система для задач и проектов
CRM, чаты и видеозвонки
совместная работа с документами
гибкие права доступа и уведомления
интеграции с внешними сервисами
Минусы: сложный интерфейс для новичков, перегруженность функционалом, требуется время на адаптацию команды.
Веб-сервис и мобильное приложение для планирования задач и управления проектами.
Кому подойдет: небольшим командам и сотрудникам, которым нужен простой и гибкий инструмент для совместной работы.
Плюсы:
интуитивный интерфейс
ведение проектов и задач
совместное редактирование
синхронизация с календарём
Минусы: ограниченные функции для больших коллективов, нет встроенной CRM и аналитики.
Так, с инструментом определились, а что дальше?
Чтобы организовать процесс в сервисе для совместной работы, запросите у сервиса демонстрацию инструмента для всей команды, обычно она бесплатна. После обучения вы и сотрудники уже сможете создать рабочее пространство для команды и распределить задачи между участниками.
А если у вас есть вопросы, вы всегда можете обратиться в поддержку сервиса. Да, сначала будет непривычно и непонятно, но это пройдет! Вскоре придет порядок в задачах и прозрачность процессов.
Полный гайд о том, как внедрить сервисы для совместной работы, мы уже написали здесь. Пользуйтесь!
Реклама ООО «Проджекто», ИНН 1660363595
У нас приличное количество многомиллиардных бизнесов благополучно стали неотечественными:
Когда-то WB начинал захват рынков Восточной Европы и выдавил Алибабу с рос рынка и стран Восточной Европы. Заметьте, в Европе не родилось тех. гигантов, а у нас - родились. Не православный ритейлер-аналог от депутата Немкина (который предложил заменить Roblox), а вполне себе бизнес, в котором платят хорошие бабки и который платит деньги в бюджет, а не просит деньги из бюджета.
Так что Татьяна Бакальчук - гораздо больший патриот и принесла в разы больше денег стране, чем очередной энтузиаст - осваиватель госденег, которому лишь бы что-то запретить и попилить. У нас и Долина получает какие-то гранты. Удобно там все устроено, конкурентненько.
Самое смешное, что все эти грантоеды и выпускатели продукции низкого качества - от фильмов под эгидой "Фонда Кино", отечественных "Википедий" и прочего хлама, до "АвтоВАЗа" позиционируют себя как некие такие патриоты - "у нас столько талантливых людей, мы сможем, да мы...".
Так мы сможем, по моему скромному мнению, в части айти как минимум мы бы могли со временем трахнуть медленный социалистический еврорыночек. Не зря наши выпускники так хороши в международных олимпиадах по математике и программированию. Но для этого не нужна помощь псевдопатриотов на госдолжностях, надо чтобы вы обеспечивали просто благоприятный климат для бизнеса.
И не надо лезть туда, где мы сильно отстали и нет возможности. Ну не можем мы делать и коробки автомат, и двигатели и сиденья и электронику и все на свете для легковых авто. Да прекратите субсидировать мертвую лошадь, мир постоянно развивается в технологиях, будет и виток в котором мы залезем в поезд.
Кстати, мы же там говорили, что ИИ - это суперважно и что? Только недавно СБЕР обучил с нуля первый раз модель. В топе по бенчмаркам модели из Китая и США. Мы когда слова говорим, мы понимаем, что для этого надо что-то делать? Опять, получается, догонять будем - ИИ будет похуже, авто будет с заклинившим рулем, в кино будут играть одни и те же актеры и их дети
Регистрация в игре будет только через мессенджер Max