1. Стоимость взлома как главный барьер

В области Hardware Security действует базовое правило: абсолютной защиты не существует. Любое электронное устройство можно реверсить, вскрыть и скопировать. Это лишь вопрос времени, денег и наличия специализированного оборудования — например, установок для послойного стравливания кремния или FIB-микроскопов (Focus Laser/Ion Beam).

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

2. Сценарий: Атака доверенного производства («Третья смена»)

Передача фабрике-изготовителю (контрактному производству в Китае) полного комплекта документации и ПО — это стандартная практика и одновременно главный кошмар разработчика. Вы отдаете:

  • Гербер-файлы и спецификацию платы (BOM).

  • Финальный бинарный код микроконтроллера.

  • Тех процесс (скажем толщины масок для пасты), технологию тестирования.

  • Скомпилированный битстрим (rbf) для FPGA.

В этом случае классические методы защиты — шифрование прошивки на стороне разработчика или закрытие интерфейсов отладки (JTAG) фьюзами — не работают. Завод имеет легальный доступ ко всем файлам. Ничто не мешает ему запустить конвейер сверх оплаченного вами лимита, выпустить неограниченную партию «левых» клонов, залить туда ваши оригинальные прошивки и продать на рынке.

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

3. Архитектура решения: PUF на свободных задержках

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

Вместо хранения секретного ключа в энергонезависимой памяти, мы заставляем FPGA вычислять его «на лету» с помощью PUF (Physically Unclonable Function) — физически неклонируемой функции, основанной на уникальных наноструктурных дефектах кремния.

Логика работы системы делится на четыре этапа:

Как же эта "магия" работает? Разобьем технологию на 4 этапа.

Этап 1. Снятие слепка кристалла

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

Внутри FPGA мы размещаем кольцевые генераторы (Ring Oscillators) и подключенные к ним счетчики. Запуская их одновременно, мы фиксируем стабильную разницу их частот. Это — цифровой «отпечаток пальца» кристалла.

Этап 2. Проверка лимитов на сервере

При первом включении на заводском стенде FPGA «вычисляет чистый» PUF-слепок и отправляет его на Ваш удаленный сервер. Устройство на данном этапе ничего не знает о ключах. Сервер сверяет запрос со своей базой данных: если лимит токенов (выпущенных лицензий) для данной фабрики не исчерпан, сервер уменьшает баланс доступных устройств. Если лимит равен нулю — сервер отклоняет запрос, предотвращая появление «третьей смены».

Этап 3. Формирование пакета («Крипто-ключ»)

Сервер берет присланный PUF-отпечаток, подмешивает криптографическую соль и шифрует данные. Формируется индивидуальный, закрытый блок данных — «крипто-ключ». Этот процесс происходит исключительно на стороне сервера, скрывая математику шифрования от глаз фабрики. Готовый пакет отправляется обратно на устройство, которое просто записывает его «как есть» в энергонезависимую память, а затем просто считывает и передает в вычислитель PUF FPGA.

Этап 4. Отложенный саботаж

Если проверка не прошла, устройство не блокируется мгновенно. Иначе хакер сразу поймет, в какой точке сработала защита, и начнет искать инструкцию ветвления. Но, если плата штатно работает около 5 минут (логику "около" крайне рекомендовано внедрять) тут возникают "непонятки", ведь на заводе нет точного понимания качества сборки и "бракованности" компонентов.

4. Криптографический ключ и защита от Replay-атак

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

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

Математика генерации токена активации:

Процесс регистрации устройства на заводском стенде выглядит следующим образом:

  1. Сбор сырого отпечатка: FPGA запускает кольцевые генераторы и формирует сырой массив данных разности частот PUF.

  2. Передача на сервер: Этот массив (Challenge Response) отправляется на сервер производителя. Сам по себе он не является секретом — это просто уникальный шум конкретного кристалла.

  3. Формирование криптографического ключа на сервере:

    • Сервер проверяет лимит доступных токенов для данной партии.

    • Если лимит не исчерпан, сервер с помощью криптографической функции формирования ключа генерирует уникальный мастер-ключ устройства и секретную серверную соль.

    • Для обеспечения стабильности (ведь физический PUF-отпечаток имеет погрешность из-за температуры) сервер рассчитывает вспомогательные данные для коррекции ошибок — Helper Data (код Хэмминга или BCH-код).

  4. Упаковка «шифровки»: Сервер формирует монолитный зашифрованный пакет, содержащий HelperData, зашифрованную конфигурацию и контрольную сумму (HMAC). Этот пакет отправляется обратно на устройство и зашивается в NVM платы.

Почему Replay-атака не сработает?

Если злоумышленник скопирует весь дамп NVM (вместе с Helper Data и зашифрованным ключом) с легальной платы на клон:

  1. При старте клон считает свои собственные физические параметры PUF.

  2. Попытается применить скопированные HelperData для восстановления ключа.

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

  4. В результате FPGA сгенерирует абсолютно случайный, "кривой" криптографический ключ. Контрольная сумма пакета (HMAC) не совпадет, и устройство зафиксирует факт взлома.

Таким образом, ключ валиден только на одном-единственном физическом кристалле, для которого он был рассчитан на сервере.

В чем экономическая эффективность?

Схема перекладывает финансовое бремя защиты на взломщика:

  • Прямое клонирование бесполезно: Копии плат без валидного ключа превращаются в неработоспособный хлам через 5 минут после включения.

  • Высокая стоимость реверс-инжиниринга: Чтобы запустить клоны, заводу придется декомпилировать битстрим FPGA (netlist), вручную искать запрятанные среди тысяч ячеек кольцевые генераторы, счетчики и логику саботажа, а затем модифицировать проект. Затраты на оплату сотен часов работы инженеров такого уровня полностью уничтожают маржинальность кражи чужого устройства.

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

C_N^2 = \frac{N!}{2!(N-2)!} = \frac{128 \times 127}{2} = 8128 \text{ пар}

Каждая пара генераторов в результате сравнения выдает ровно 1 бит информации (кто оказался быстрее). Даже если для формирования финального криптографического ключа мы берем не все пары, а только линейно независимое подмножество из 64 стабильных комбинаций, пространство состояний для брутфорса составит 2^64 вариантов. Если бы у злоумышленника был суперкомпьютер, способный проверять по 1 миллиарду (10^9) ключей в секунду, время полного перебора составило бы:

T = \frac{2^{64}}{10^9 \times 365 \times 24 \times 3600} \approx 585 \text{ лет}

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

Рассмотрим однако реальную физику. Предположим после жесткого отсева по температурной стабильности и флуктуациям питания (PVT-вариациям) мы выбрали из них всего K = 11 надежных пар для формирования уникального идентификатора. Пространство вариантов ключа в таком случае составляет 2^{11} = 2048 комбинаций. Если же стабильных пар удалось выжать чуть больше — например, K = 15, то пространство вариантов расширяется до 2^{15} = 32768 комбинаций. Казалось бы, для современного ПК перебрать 32 тысячи вариантов — дело доли секунды. Но злоумышленник привязан к физической плате клона. Чтобы проверить, подошел ли ключ, ему нужно запустить устройство и дождаться прохождения 5-минутного интервала. Если ключ неверный — через 5 минут плата начнет глючить. Посчитаем время перебора для худшего (K = 11) и лучшего (K = 15) сценариев: При K = 11 (2048 комбинаций):

T_{min}  = 2048 \times 5 \text{ минут} = 10240 \text{ минут} \approx 7 \text{ суток}

При K = 15 (32768 комбинаций):

T_{max} = 32768 \times 5 \text{ минут} = 163840 \text{ минут} \approx 113 \text{ суток}

Таким образом, даже при минимальном наборе из 11 стабильных бит взломщику потребуется неделя непрерывного сидения у одной платы, чтобы вручную или по UART перебрать ключи, постоянно перезагружая устройство по питанию каждые 5 минут. При 15 стабильных парах процесс растягивается почти на 4 месяца. Учитывая, что китайский завод планирует тиражировать клоны тысячами, тратить по 100 дней работы инженера и тестового стенда на запуск каждого отдельного экземпляра устройства — это экономическое самоубийство. Математика времени ожидания делает атаку на реальном железе абсолютно бессмысленной.

Физический слой: Схема Ring Oscillator внутри FPGA

Чтобы получить уникальный цифровой слепок, нам нужно построить схему, которая реагирует на наноструктурные различия кремния. В FPGA для этого идеально подходит Ring Oscillator PUF (RO-PUF) — кольцевой генератор на базе задержек в логических элементах.

Как устроен генератор на LUT

Внутри любой FPGA базовым вычислительным кирпичиком является LUT (Look-Up Table) — таблица истинности, на которой синтезируется любая комбинаторная логика. Кольцевой генератор создается путем последовательного соединения нечетного количества инверторов в замкнутую петлю.

Единичный генератор для пары (RO1 или RO2)
Единичный генератор для пары (RO1 или RO2)
  • Синхронный старт: Сигнал Enable одновременно запускает два генератора (RO 1 и RO 2).

  • Накопление: Каждый генератор тактирует свой собственный независимый быстрый счетчик (например, 16-битный).

  • Остановка: Ровно через фиксированное количество системных тактов (или когда один из счетчиков переполнится) оба генератора останавливаются.

  • Вычисление разности: Из показаний первого счетчика вычитаются показания второго:

Delta = Count_1 - Count_2

Значение Delta и является стабильной разницей, которая уникальна для этой конкретной пары LUT на этом конкретном чипе на этом конкретном LUT.

Главные грабли: Температурный дрейф и напряжение

Физика кремния накладывает жесткое ограничение: при изменении температуры кристалла и флуктуациях напряжения питания (PVT-вариации) скорость работы LUT меняется. При нагревании кремния сопротивление каналов растет, и частота генераторов падает.

Если спроектировать схему «в лоб», то устройство, активированное на заводе при +25°C, на морозе в -10°C или в закрытом корпусе при +60°C выдаст совершенно другую разницу счетчиков, не примет легальный ключ и уйдет в саботаж.

Как с этим бороться в практической реализации?

  1. Симметричная топология (Hard Macros):
    Нельзя отдавать размещение генераторов на откуп автоматическому трассировщику (Place & Route) в Квартусе или Вивадо. Их нужно жестко запереть в соседних логических блоках (LAB/SLICE) с помощью атрибутов локализации (например, LOC ограничений). Они должны находиться на расстоянии микронов друг от друга. В таком случае внешняя температура нагревает или охлаждает их абсолютно одинаково, и тепловой дрейф частоты взаимно уничтожается при вычитании.

  2. Метод пары лидеров (RO Ordering):
    Вместо использования абсолютного значения разницы Delta, берется только знак результата (бинарный выбор). Мы сравниваем не «на сколько один быстрее другого», а просто определяем, кто из них выиграл гонку:

Bit=\begin{cases}1,&\text{if\ }Count_{1}>Count_{2}\\ 0,&\text{if\ }Count_{1}\le Count_{2}\end{cases}

3. Для формирования длинного ключа создается матрица из десятков таких генераторов, и сравниваются пары с гарантированно сильным разбросом частот!!! Нужен гарантированный "запас", если счетчики приблизительно равные, то им доверять нельзя!!! Знак разности между физически быстрой и физически медленной ячейками не изменится даже при экстремальном нагреве или охлаждении (хотя вы сами должны провести эксперименты на температурную стабильность).

4. Хелперы на стороне сервера:
Как мы уже упоминали в главе про криптографию, сервер рассчитывает избыточные данные (Helper Data) для кодов коррекции ошибок. При запуске FPGA использует эти данные, чтобы аппаратно «дотянуть» слегка уплывшие от температуры счетчики до эталонного заводского состояния, прежде чем генерировать финальный ключ. Это важно!

Чтобы не быть голословным. Вот пример реализации на Verilog (только счетчики):

verilog

// Модуль одного кольцевого генератора (Ring Oscillator)
module ring_oscillator #(
    parameter STAGES = 3 // Количество инверторов (обязательно нечетное)
)(
    input  wire enable,
    output wire osc_out
);
    // Атрибуты для запрета оптимизации и объединения LUT-ячеек
    (* keep = "true" *) (* syn_keep = "true" *) wire [STAGES:0] delay_chain;

    // Первый элемент — И-НЕ (NAND) для управления запуском
    assign delay_chain[0] = ~(delay_chain[STAGES] & enable);

    // Цепочка инверторов
    genvar i;
    generate
        for (i = 0; i < STAGES; i = i + 1) begin: puf_chain
            (* keep = "true" *) (* syn_keep = "true" *)
            assign delay_chain[i+1] = ~delay_chain[i];
        end
    endgenerate

    // Выход генератора
    assign osc_out = delay_chain[STAGES];

endmodule


// Топ-модуль измерения PUF: два генератора и счетчики разности
module puf_measurement (
    input  wire clk,         // Системный тактовый сигнал
    input  wire rst_n,       // Сброс (активный низкий)
    input  wire start_puf,   // Команда на запуск измерения
    output reg  puf_ready,   // Флаг окончания замера
    output reg  [15:0] puf_delta // Итоговая разница счетчиков
);

    wire osc1_out;
    wire osc2_out;
    
    reg  enable_oscillators;
    reg  [15:0] ref_timer;
    reg  [15:0] counter1;
    reg  [15:0] counter2;
    
    // Первый кольцевой генератор
    ring_oscillator #(.STAGES(3)) ro1 (
        .enable(enable_oscillators),
        .osc_out(osc1_out)
    );

    // Второй кольцевой генератор
    ring_oscillator #(.STAGES(3)) ro2 (
        .enable(enable_oscillators),
        .osc_out(osc2_out)
    );

    // Логика счета на асинхронных часах от RO
    always @(posedge osc1_out or negedge rst_n) begin
        if (!rst_n) 
            counter1 <= 16'd0;
        else if (enable_oscillators) 
            counter1 <= counter1 + 1'b1;
    end

    always @(posedge osc2_out or negedge rst_n) begin
        if (!rst_n) 
            counter2 <= 16'd0;
        else if (enable_oscillators) 
            counter2 <= counter2 + 1'b1;
    end

    // Управляющий автомат на системной частоте
    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            enable_oscillators <= 1'b0;
            ref_timer          <= 16'd0;
            puf_ready          <= 1'b0;
            puf_delta          <= 16'd0;
        end else begin
            if (start_puf && !enable_oscillators && !puf_ready) begin
                // Старт замера
                enable_oscillators <= 1'b1;
                ref_timer          <= 16'd0;
                puf_ready          <= 1'b0;
            end else if (enable_oscillators) begin
                // Ограничиваем время замера по системному таймеру (например, 1000 тактов)
                if (ref_timer >= 16'd1000) begin
                    enable_oscillators <= 1'b0;
                    puf_ready          <= 1'b1;
                    // Вычисляем разницу
                    puf_delta          <= counter1 - counter2;
                end else begin
                    ref_timer <= ref_timer + 1'b1;
                end
            end else if (!start_puf) begin
                puf_ready <= 1'b0;
            end
        end
    end

endmodule

6. Борьба с компилятором: Физические ограничения размещения (Placement Constraints)

Написать код кольцевого генератора на Verilog — это только треть дела. По умолчанию компиляторы (Quartus, Vivado) заточены под оптимизацию таймингов и энергопотребления. Если оставить проект как есть, САПР совершит одну из двух ошибок:

  1. Разнесет инверторы по разным углам кристалла. Длина трассировочных дорожек между LUT станет случайной. В итоге ваш PUF будет измерять не уникальные свойства транзисторов в кремнии, а то, как "навычислял" алгоритм автоматического размещения (Place & Route).

  2. Сгруппирует их слишком хаотично от чипа к чипу. Разводка внутри пар генераторов будет неидентичной.

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

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

Реализация для AMD/Xilinx Vivado (XDC constraints)

В Vivado для жесткой фиксации элементов используются свойства BEL (Basic Element — конкретный LUT внутри слайса) и LOC (координата самого Slice на кристалле). Также мы упаковываем элементы в логическую группу PBLOCK, чтобы запретить трассировщику прокладывать сторонние цепи через наш PUF.

Предположим, наш модуль RO развернут в иерархии проекта как inst_puf_meas/ro1 и inst_puf_meas/ro2.

tcl

# Запрещаем оптимизацию цепей обратной связи на этапе оптимизации (Design Optimization)
set_property DONT_TOUCH true [get_cells inst_puf_meas/ro1/delay_chain*]
set_property DONT_TOUCH true [get_cells inst_puf_meas/ro2/delay_chain*]

# Фиксируем инверторы первого генератора (RO1) в Slice X0Y50
set_property LOC SLICE_X0Y50 [get_cells inst_puf_meas/ro1/puf_chain[0].puf_lut]
set_property BEL A6LUT       [get_cells inst_puf_meas/ro1/puf_chain[0].puf_lut]

set_property LOC SLICE_X0Y50 [get_cells inst_puf_meas/ro1/puf_chain[1].puf_lut]
set_property BEL B6LUT       [get_cells inst_puf_meas/ro1/puf_chain[1].puf_lut]

# Фиксируем инверторы второго генератора (RO2) строго параллельно в соседнем Slice X1Y50
set_property LOC SLICE_X1Y50 [get_cells inst_puf_meas/ro2/puf_chain[0].puf_lut]
set_property BEL A6LUT       [get_cells inst_puf_meas/ro2/puf_chain[0].puf_lut]

set_property LOC SLICE_X1Y50 [get_cells inst_puf_meas/ro2/puf_chain[1].puf_lut]
set_property BEL B6LUT       [get_cells inst_puf_meas/ro2/puf_chain[1].puf_lut]

# Указываем трассировщику использовать идентичные ресурсы для соединений (Routing)
set_property LOCK_PINS {I0:A6} [get_cells inst_puf_meas/ro1/puf_chain[*].puf_lut]
set_property LOCK_PINS {I0:A6} [get_cells inst_puf_meas/ro2/puf_chain[*].puf_lut]

7. Механизм отложенного саботажа: Почему именно 5 минут?

Частично я объяснял выше, но:

Если устройство проваливает проверку ключа активации, стандартная реакция большинства систем защиты — мгновенная блокировка (глухой «кирпич»). С точки зрения реверс-инжиниринга это грубейшая ошибка. Хакер, подключив осциллограф, логический анализатор или внутрисхемный отладчик, сразу видит четкую точку на временной шкале: «Подали питание — через 50 миллисекунд устройство отключилось». Это позволяет за пару часов локализовать кусок логики FPGA, отвечающий за проверку.

Мы усложняем задачу, разрывая причинно-следственную связь во времени с помощью двух приемов:

  1. Таймер задержки (5 минут): После включения устройство честно и абсолютно корректно выполняет все свои функции в течение 300 секунд. Злоумышленник на тестовом стенде уверен, что его взлом или обход удался — плата работает, данные идут, и мало того в первых партиях вообще не увидит подвоха.

  2. Имитация аппаратного сбоя вместо выключения: По истечении 5 минут FPGA не выключается. Специальный блок саботажа начинает умышленно, но хаотично генерировать «глюки».

Примеры реализации скрытых глюков в FPGA:

  • Искажение шин данных: Подмешивание случайного бита (инверсия) в потоки SPI, I2C или UART раз в несколько секунд. Для стороннего наблюдателя это выглядит как плохой кабель или наводка по питанию.

  • Сдвиг фазы/таймингов: Внутренний блок фазовой автоподстройки частоты (PLL) делает микроскопический сдвиг фазы тактового сигнала для внешней памяти DDR или контроллера дисплея. Память начинает сыпать циклическими ошибками (CRC errors).

  • Порча контрольных сумм: Логика FPGA начинает портить каждый сотый пакет сетевого интерфейса (Ethernet/CAN). Устройство теряет связь, но софт считает это «проблемой на линии».

  • Генерация шума в звуковом тракте: Если устройство работает с аудиопотоками, через 5 минут после старта блок саботажа в FPGA резко и бесцеремонно заменяет легальный аудиосигнал на шине I2S/AC97 на максимальный по амплитуде белый шум или жесткий высокочастотный писк (генератор меандра на максимальной громкости).Устройство начинает пищать или гудеть. В чем инженерная красота такого лобового удара? Любой hardware-инженер, столкнувшись с резким белым шумом или свистом в динамиках через 5 минут после включения, на 100% будет уверен, что это аппаратная проблема:

    1. Самовозбуждение операционных усилителей в аналоговом тракте из-за нагрева.

    2. Пробой конденсатора в цепи фильтрации питания.

    3. Тепловой дрейф опорного генератора (MCLK) ЦАП, из-за которого поплыла синхронизация.

    Заводские хакеры проведут недели за осциллографами, будут заливать плату фризером, перепаивать микросхемы ЦАП и менять обвязку, пытаясь победить этот «дефект прогрева платы». Им и в голову не прийдет (в первое время), что этот шум генерирует идеально работающий цифровой автомат внутри FPGA, который просто не дождался ключа.

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

Заключение

Использование физически неклонируемых функций (PUF) на базе кольцевых генераторов в FPGA переводит противостояние с недобросовестными производителями из плоскости «кто лучше спрятал прошивку» в плоскость чистой инженерной экономики.

Передавая фабрике полный комплект софта и Gerber-файлов, вы больше не рискуете потерять продукт. Каждая собранная плата — это всего лишь кусок текстолита с кремнием, который не имеет ценности без индивидуального цифрового слепка, рассчитанного на вашем сервере. Ломая бизнес-модель «третьей смены» и заставляя клоны непредсказуемо глючить, вы делаете пиратское тиражирование вашего устройства экономически бессмысленным.

...перед запуском:

Перед тем как отправить финальные файлы на завод и запустить сервер активации, проверьте вашу систему защиты по следующим пунктам:

  • Проверка температурного диапазона: Проверено ли поведение PUF-счетчиков при крайних температурах (например, в климатической камере при -20°C и +60°C)? Гарантирует ли шаг кодов коррекции ошибок (Helper Data) восстановление оригинального ключа при экстремальном нагреве?

  • Анализ уникальности (Inter-distance): Прошить тестовый битстрим в 20-30 разных физических плат? Убедиться что разница счетчиков между разными чипами достаточно велика ( Hamming distance близко к 50%), чтобы сервер не перепутал платы между собой?

  • Физическая изоляция в САПР: Запрещена ли трассировщику оптимизация цепей PUF? И зафиксирован ли жестко PUF блок в координатах кристалла, иначе если вы захотите выпустить обновление, у вас получиться провал. Ибо при компиляции QUARTUS например положит PUF в другое место кремния, и тогда правильный ключ перестанет "быть правильным".

  • Защита от Replay-атак на сервере: Использует ли сервер одноразовые криптографические соли (nonces) и счетчики при обмене данными, чтобы перехваченный трафик первой активации нельзя было повторно использовать для клона?

  • Размазывание логики саботажа: Насколько глубоко блок 5-минутного таймера и генератор «глюков» внедрены в основную логику FPGA? Если хакер сможет локализовать и вырезать сам блок PUF, заблокирует ли это работу основного алгоритма устройства?

  • Логирование лимитов: Настроена ли на сервере система моментального оповещения (Alerts) при попытке запроса ключа активации сверх оплаченного лимита токенов? (Это ваш главный маркер того, что завод начал «третью смену»).

  • Защита от FPGA лаборатории: не используйте стандартные алгоритмы шифрования на стороне FPGA типа AES или XTEA, их видно прямо в битстриме, но если нет вариантов, модифицируйте стандартный алгоритм, не то чтобы до неузнаваемости, поменяйте следование таблиц (AES) или добавьте лавинный XOR (XTEA). Не используйте обычную обфускацию, её может увидеть алгоритм.

Хочу прямо уточнить, я пишу статьи о реально работающих приборах, алгоритмах и/или о том что сам проверял.

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

Комментарии (124)


  1. MrKirushko
    17.07.2026 18:39

    У "защиты" с отложенным сбоем есть большая проблема - такой задержки будет вполне достаточно чтобы поддельный товар прошел предварительную проверку клиента на ПВЗ или приемщика на складе и был успешно продан. Разумеется, поставщики и продавцы тоже не могут тратить время чтобы докопаться до каждой коробки и риск просачивания контрафакта всегда будет. В итоге китайцы даже тупо скопировав прошивку и забив на эту "защиту" свои деньги все равно поимеют, а вот клиенты ваши столкнутся с ситуацией когда они приходят в магазин за вашим устройством и не знают - будет ли оно работать или нет, знают только что для того чтобы это выяснить нужно товар купить, полностью подключить, и потом некоторое время погонять, и вот если он проработал хотя бы одну рабочую неделю (а то кто вас знает с этим "примерно", от 5 минут до 7205 минут то всего один шаг, а если у вас таймер раз в 10 секунд срабатывает то 16-битного счетчика как раз на 5 дней примерно хватит так что не исключено) то уже можно условно считать что товар оригинальный. А если не проработает - тогда неизвестно, может и оригинал но просто брак попался. А значит полюбому нужно везти в гарантию и ждать заключение.

    Разумеется, через какое-то время эта ситуация станет известной и вот тут у ваших клиентов возникнет резонный вопрос - а зачем им вообще в весь этот геморрой ввязываться? Может, лучше подождать пока вы там со всем этим разберетесь, все уляжется, и начнется нормальная работа, а пока просто ничего не покупать? А еще за это время наверняка появится какая-то функциональная замена вашего прибора (например, китайцы выйдут на вашего программиста, заплатят ему денег, и он им соберет версию прошивки безо всяких проверок, с новыми нескучными обоями на китайском и с другой торговой маркой, или на худой конец если затея вообще имеет хотя какой-то финансовый смысл, найдут какую-нибудь небольшую индусскую фирму что просто новое ПО с примерно тем же функционалом для них разработает - им то уже проще, у них считай полное ТЗ с четким описанием всех функций и интерфейса уже будет и возможно даже отреверсенный код вашего ПО). Тогда клиенты ваши сразу перейдут на более надежный, гарантированно менее рискованный вариант, да еще и денег себе сэкономят.

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

    Можете загуглить чем закончилась борьба FTDI c контрафактными чипами путем выпуска по тихому новых драйверов через свой сайт и Windows Update которые 100% надежно выявляли совсем уж откровенно контрафактные чипы и их по факту окирпичивали путем перепрошивки значений USB VID и PID с FTDI-евских на 0. Если коротко - сначала все производители учебных плат вроде Arduino а потом и просто большинство адекватных разработчиков начали просто от них шарахаться и от греха подальше быстро переразвели свои платы, уведомили клиентов, и перешли на адекватные (по большей части китайские) чипы (некоторые - сразу, некоторые еще с тайваньцами из Prolific с менее жестко реализованной но по сути похожей темой сплясали раз на граблях, но в итоге перешли все), а англичане просто потеряли большую часть по сути созданного ими рынка. И даже то что они спустя несколько месяцев поняли что натворили и включили заднюю, а потом даже на своем сайте публично каялись и обещали больше так не делать так им в итоге серьезно и не помогло. Просто доверие уже было потеряно.


    1. vdudouyt
      17.07.2026 18:39

      Ага, вспомнил про FTDI еще до того, как прочитал Ваш комментарий. Жаль, что авторы статьи не упомянули о каком именно устройстве/устройствах идет речь - так бы мы хоть знали, от чего лучше держаться подальше на всякий пожарный что именно стоит включить на 5 минут для проверки сразу после распаковки :)


    1. LinkToOS
      17.07.2026 18:39

      Соглашусь. “Защита через саботаж” рискованный метод. Репутацию можно испортить быстро и надолго.


      1. olku
        17.07.2026 18:39

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


        1. LinkToOS
          17.07.2026 18:39

          Есть еще бытовой пример - запрет устанавливать в своем доме опасные ловушки против воров. Если вор серьезно пострадает от умышленно установленной ловушки, то собственник жилья рискует понести ответственность.
          Но это имеет отдаленное отношение к теме.


          1. olku
            17.07.2026 18:39

            Ну это уголовная, чисто предумышленное


          1. ptr128
            17.07.2026 18:39

            Не совсем так. Если о наличии таких ловушек вор был предупреждён информационными табличками, то вина с владельца будет снята. Тоже самое относится и к собаке на охраняемой территории.


            1. Newbilius
              17.07.2026 18:39

              Тут надо бы уточнять, про какие страны речь, в случае той же США - какие штаты, очень разные законы и практика. В России например, табличка "на лужайке противопехотная мина" от ответственности за смерть вора не спасёт.


              1. ptr128
                17.07.2026 18:39

                Потому что использование противопехотных мин незаконно.

                А если не подменять тезис, то в РФ табличка "Не входить. Высокое напряжение. Опасно для жизни!" снимает вину с владельца ТПушки, если туда залезет вор и его там убьет.


                1. vadimr
                  17.07.2026 18:39

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


                  1. ptr128
                    17.07.2026 18:39

                    Я знаю случаи, когда пытались доказать, что собака без намордника отпускалась на ночь с привязи и бегала по огороженному участку специально с целью нанесения вреда здоровью тому, кто попытается на этот участок незаконно проникнуть. Безуспешно.
                    Может Вы знаете, когда такое удалось доказать?


                    1. vadimr
                      17.07.2026 18:39

                      Ну в случае с собакой это действительно звучит неправдоподобно. Предоставление собаке свободы на своём участке не подразумевает злого умысла.

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


                      1. ptr128
                        17.07.2026 18:39

                        И при этом хозяин предпринял все необходимые меры, что информировать взломщика о наличии яда в этой бутылке или хотя бы в бутылках на участке? Я ведь именно об этом писал.


                      1. KivApple
                        17.07.2026 18:39

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

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


                      1. Darkness_Paladin
                        17.07.2026 18:39

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

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

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


                    1. funca
                      17.07.2026 18:39

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


                      1. ptr128
                        17.07.2026 18:39

                        Я в курсе, так как занимался кавказскими овчарками. Поэтому те случаи, которые я знаю, происходили с собаками, которые вряд ли даже ОКД сдали бы, не то что ЗКС.


    1. DenXXII
      17.07.2026 18:39

      Погодите, есть контора, производящая продукт. Распространяет его через свой сайт, сертифицированных партнеров и т.д.

      А если Алешенька заказал 100% оригинальный продукт со скидкой 90% в черную пятницу на условном алике ...

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


      1. Darkness_Paladin
        17.07.2026 18:39

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


        1. DenXXII
          17.07.2026 18:39

          Так самый главный вопрос к конечному покупателю: "А ты, друг мой горемычный, собственно, где эту поделку купил? Покажи квитанцию!" Собственно, если куплена не у официального партнера или с сайта компании, то какие вопросы? Чтобы ответить за продукцию, она должна попасть в авторизованный СЦ, и не просто поделка, а с докумантами, подтверждающими покупку, с гарантийным талоном с печатью магазина.

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

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


          1. sdramare
            17.07.2026 18:39

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


            1. DenXXII
              17.07.2026 18:39

              Нет, он перестанет пользоваться подделкой ...

              А при гарантийном обращении это как бы нормальная глобальная практика, не просто поделку принеси, но еще и документы на покупку.

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


              1. Darkness_Paladin
                17.07.2026 18:39

                Нет, он перестанет пользоваться подделкой

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

                А при гарантийном обращении это как бы нормальная глобальная практика, не просто поделку принеси, но еще и документы на покупку.

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


                1. Devastator82
                  17.07.2026 18:39

                  они отвечают за ВСЕ самсунги, независимо от того, кто где их купил.

                  С этим тоже бывают вопросы. Например, устройство официально не поставляется в регион.


                1. tituszx
                  17.07.2026 18:39

                  Паленую макиту с озона тоже в сервис макитовский понесете? А претензии по взломанному ПО будете производителю писать?


                  1. Devastator82
                    17.07.2026 18:39

                    А претензии по взломанному ПО будете производителю писать?

                    В давние годы одна родственница по юности и наивности написала в крупную компанию в официальную поддержку с просьбой помочь найти взломанную версию их софта. Так как купить пока финансы не позволяют, а найти в Интернете взломанную версию своими силами не получилось. Они ей не ответили)


            1. Ajent
              17.07.2026 18:39

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


              1. sdramare
                17.07.2026 18:39

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

                2) Вы, конечно, можете начать в суде рассказывать что продавец с озона заключил договор с дестрибьютером, который заключил договор с поставщиком, который купил партию на официальном заводе со скидкой, а завод эту партию произвел в нарушении контракта, но шансов у вас выграть суд по защите прав потребителя с такой позицией что в РФ, что в ЕС примерно 0%.

                2) Проблемы покупателя после первого же негативного отзыва становятся проблемами продавца. Это если вы госмонополист, то можно исходить из принципа "не нравится - вали", а на рынке ваши же конкуренты с радостью поглотят вашу долю рынка и будуте вы во время процедуры банкротства/поглощения бормотать "но я же прав".


              1. funca
                17.07.2026 18:39

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

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

                Ни кого же не удивляет, что цены за лицензии в Steam на одни и те же игры отличаются в разы в зависимости от региона. Защиты от копирования выступают в роли дополнительного стимулирующего механизма, а не основного.


              1. Astroscope
                17.07.2026 18:39

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

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


          1. Darkness_Paladin
            17.07.2026 18:39

            Собственно, если куплена не у официального партнера или с сайта компании, то какие вопросы?

            Никаких вопросов. Производитель, в отличие от дилера-перекупа, отвечает за свой товар перед любым покуппателем, независимо от того, где товар куплен. Чтоб не отвечать, надо доказать, что этот товар произведён кем-то другим, только так. Дилер -- тот да. он может отказаться от гарантийного обслуживания по мотиву "вы это не у нас купили". Производитель не может.

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

            Гарантийный талон будет. Вы забыли, что левый продукт делают на том же заводе? И паспорт изделия будет оригинальный, и гарантийный талон, и коробочка. Печать магазина давно необязательна, её часто не ставят. В любом случае, производитель не может отказать в гарантии на основании её отсутствия. Дилер (магазин) может, а производитель нет.

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

            Вот я у вас завтра займу мешок денег, а когда придёт время отдавать -- скажу, что не занимал: вот у меня в книжечке записано, я в тот день вообще на охоте был. Прокатит, не?

            Производитель обвиняется в желании уклониться от исполнения гарантийных обязательств, так что любые его внутренние записи, "доказывающие" его правоту, однозначно идут лесом. Не хочет платить, вот и сфабриковал запись в своей БД. Логично? Логично. Суд так же подумает.


            1. inkelyad
              17.07.2026 18:39

              Не хочет платить, вот и сфабриковал запись в своей БД.

              Так она не в его базе будет. А в чужой. (Смотрим на "Честный знак" и эквиваленты)


            1. randomsimplenumber
              17.07.2026 18:39

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

              А при чем производитель то? Есть продавец, это его головная боль. Покупатель заключил договор купли-продажи с продавцом (вот чек), не с китайским заводом. Продавец знает, что продает.


              1. Darkness_Paladin
                17.07.2026 18:39

                китайский завод -- не производитель, а подрядчик. Производитель -- это тот, кто нанял китайский завод делать эти пепяки и тот, чья ТМ на них стоит.

                Помните историю с наушниками си-джи-подс? Их "производитель" -- не тот китайский ОЕМ-завод, который их делал, а тот тюменский барыга, который их заказал у китайцев и продавал под своей маркой.

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


                1. LinkToOS
                  17.07.2026 18:39

                  китайский завод – не производитель, а подрядчик. Производитель – это тот, кто нанял китайский завод делать эти пепяки

                  Здесь у нас похоже возник дефицит слов, чтобы правильно обозначить участников процесса. И завод у нас производитель, и заказчик партии продукта тоже производитель. Он же одновременно и потребитель по отношению к заводу, и может подать в суд за низкое качество продукции или изготовление контрафакта (неучтенки).
                  В контексте статьи правильно говорить о разработчике и контрактном производителе.


            1. Yuriy_krd
              17.07.2026 18:39

              Не хочет платить, вот и сфабриковал запись в своей БД. Логично? Логично. Суд так же подумает.

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


              1. Darkness_Paladin
                17.07.2026 18:39

                Самсунг отправит на независимую техническую экспертизу, там

                Там эксперт разберёт устройство, посмотрит на его потроха и напишет что-то вроде: "представленный для исследования образец совершенно идентичен с образцами из официального магазина, предоставленными для сравнения, они однозначно изготовлены в одном месте, в одно время, на одном и том же оборудовании, из одних и тех же партий элементов"

                То, что у меня в книжечке НЕ записано, что я у вас денег занимал, не является доказательством отсутствия долга. Аналогично, то, что производитель отрицает (путём "в нашей БД не зарегистрирован этот серийник") свою связь с единицей продукта, не доказывает, что этот продукт поддельный.


          1. inkelyad
            17.07.2026 18:39

            "А ты, друг мой горемычный, собственно, где эту поделку купил? Покажи квитанцию!"

            Желание производителей оказываться от своей же продукции, но проданной по 'серым' схемам немного задалбливает. Продукция ваша? Как "подделка"? А доказать можете что именно подделка? Ах нет... Значит - ваша, извольте обслуживать, даже если она до меня дошла через десяток промежуточных рук и три раза мир обогнула.
            А если маршрут вам не нравится и его не должно быть - разбирайтесь как-нибудь сами со своими продавцами, а не с пользовтелем.


        1. LinkToOS
          17.07.2026 18:39

          Производитель отвечает за свою продукцию независимо от того, где потребитель её купил.

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

          Чтоб не отвечать, надо доказать, что это подделка

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


          1. Darkness_Paladin
            17.07.2026 18:39

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

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

            Вот, скажем, у меня заборостроительная фирма. Я взялся построить вам забор. Нанял каких-то васьков, и послал работать. Они налажали. Кто перед вами отвечает? Я. Потому что договор у вас со мной, и мои дела с теми васьками вас не касаются никак.

            Надо доказать что покупатель деньги тебе не платил.

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


        1. KivApple
          17.07.2026 18:39

          Это можно решить наклейкой с уникальным QR-кодом, ведущим на сайт производителя, где показывается, что код валиден и количество уже выполненных проверок.

          Наклейки клеишь как минимум на другом китайском заводе, как максимум вообще на своём собственном заводе. Благо в отличии от самого производства задача совершенно копеечная. Если устройство штучное можно даже своими руками клеить, если малые партии, то нанять кого-то на МРОТ и на полставки, если большие партии, то у тебя и так хорошо продажи идут и как-нибудь разберёшься.

          В рекламе рассказываешь какой у тебя премиальный продукт с уникальными технологическими решениями внутри и поэтому проверяйте оригинальность сканируя QR.


          1. funca
            17.07.2026 18:39

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

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


      1. MountainGoat
        17.07.2026 18:39

        1. Покупатель может и не знать, что у него подделка. Позже поймёт, но осадок останется.

        2. Можно уронить репутацию всего класса устройств: "Погодь, это такие штуки с тремя полосками? Да они ж дохнут всё время!"


        1. DenXXII
          17.07.2026 18:39

          В целом я и на эти 2 пункта ответил в ответе на предыдущий коммент. Но касаемо репутационных рисков есть что добавить.

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

          В таком случае покупателями будут те, кто сечет в теме, а не Алёшенька, который на алике покупает устройство "S26 Ultra" с поддержкой 4 сим карт за 100 евро. Который 20 лет назад покупал телефон NOKLA с антенной и функцией "Синий Зуб".

          Ну а даже если речь про что-то более массовое, условный чайник перед покупкой нового компутера (сыну для учебы) пойдет на поклон к сисадмину на работе за советом. На крайняк выберет приличный сетевой магазин, решив, что "пусть подороже, но зато с гарантией, да и приличная фирма не будет контрафакт продавать". И в промежутке между 90-ми годами и 2022 оно ведь примерно так и было.

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


          1. randomsimplenumber
            17.07.2026 18:39

            если речь про что-то более массовое,

            То аналогов на рынке дохрена. Чем именно эта пепяка так уникальна, что пиратить нужно именно ее?


            1. DenXXII
              17.07.2026 18:39

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


          1. sdramare
            17.07.2026 18:39

            высокотехнологичное, вероятно, нишевое и не ширпотреб.

            И тогда риск что оно "заблокируется через 5 минут" тем более никто брать не будет.


            1. DenXXII
              17.07.2026 18:39

              Опять же таки, подделка заблокируется, подделка, купленная со скидкой у неофициального продавца.

              Закажи с сайта производителя, тогда не заблокируется. А если заблокируется, по гарантии разблокируют


            1. randomsimplenumber
              17.07.2026 18:39

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


        1. Astroscope
          17.07.2026 18:39

          Так даже и не подделка по сути, а "случайно" изготовленный экземпляр сверх заказанного объема. В этом смысл "третьей смены" - изделия абсолютно идентичны тем, что заказал сторонний заказчик, просто их сделали больше по количеству и "лишнее" продали в обход заказчика. Нужно какое-то другое слово, подделка не подходит. Подделка это когда изделие похоже, иногда почти неотличимо, но все же не равно оригиналу. А здесь именно что равно.

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


          1. randomsimplenumber
            17.07.2026 18:39

            сделали больше по количеству и "лишнее" продали в обход заказчика.

            Часто ли такое случается? Не с микросхемами FTDI, а с законченными устройствами?


            1. Astroscope
              17.07.2026 18:39

              Часто ли такое случается?

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


          1. LinkToOS
            17.07.2026 18:39

            Нужно какое-то другое слово, подделка не подходит.

            Контрафакт это называется.

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

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


            1. Astroscope
              17.07.2026 18:39

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

              В то же время их конкурент выкатил целый пресс-релиз про "остерегайтесь НЁХ поделок", а потом тоже сменил модельный ряд и тоже ушел в более дорогой сегмент, но подделки под уже официально снятые с производства модели все продолжают клепать. А под новые, дорогие - не знаю, никогда не слышал о таком.


    1. VelocidadAbsurda
      17.07.2026 18:39

      Справедливости ради, FTDI - ну очень массовый копеечный товар с невообразимым кол-вом точек продажи/перепродажи, изначально непонятно, где оригиналы, где подделки (да ещё и уже проданное окирпичивали). В случае же более дорогого/штучного/уникального товара с сетью продаж вида «производитель и десяток официальных дилеров, перечисленных им» понимание, где оригинал, не теряется. Например, всякая аппаратура для диагностики авто, Scanmatik какой-нибудь - покупатели прекрасно знают, где брать оригиналы, клоны покупают на свой страх и риск, добрая слава оригинала от них только ширится.


      1. Aelliari
        17.07.2026 18:39

        изначально непонятно, где оригиналы, где подделки

        При этом даже для тех самых FTDI был ряд контрафакта покачественней, который их софт не детектил, хотя механизмы детекта они обновляли

        И был контрафакт который «физически» нельзя было перепрошить даже если софт их детектил. Поэтому «откат» драйверов возвращал их работоспособность


    1. KivApple
      17.07.2026 18:39

      Можно снизить эффект двумя мерами:

      1) Наклейка с уникальным QR-кодом, который ведёт на ваш сайт и показывает не только признак подлинности, но и количество проверок. "Если вы отсканировали код, а наш сайт выдал ошибку - вы купили подделку, если не нулевое число - вы купили подделку или б/у". При этом наклейку клеите сами, а не на заводе китайцев. Операция копеечная.

      2) Строить рекламную компанию на том, что "наше устройство такое сложное и высокотехнологичное, что очень сложно повторить без наших уникальных знаний и технологий и поэтому все подделки будут работать криво-косо, проверяйте аутентичность с помощью QR кода!". Про то что подделки вы сами ломаете софтово рассказывать не нужно. Это всё криворукие китайцы криво скопировали.


      1. randomsimplenumber
        17.07.2026 18:39

        вы купили подделку

        Вы лох :)


      1. LF69ssop
        17.07.2026 18:39

        если не нулевое число - вы купили подделку или б/у

        Нет, это значит только то что данный код уже проверяли.


        1. KivApple
          17.07.2026 18:39

          Если лепить внутрь в последствии запечатанной коробки, то это будет значит, что коробка была вскрыта, код проверен и переупакована (и это вполне себе приравненное к б/у), либо использован донорский код.


  1. nerudo
    17.07.2026 18:39

    Крутая технология. В самолеты оборудование ставите?


  1. Kitsok
    17.07.2026 18:39

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

    А температура на это не влияет разве?


    1. ramfactory Автор
      17.07.2026 18:39

      Я же написал в статье что влияет и как обходиться влияние.


    1. Darkness_Paladin
      17.07.2026 18:39

      Видимо, расчёт на то, что на расположенные в одном кристалле генераторы температура повлияет одинаково.


  1. VsBirdEye
    17.07.2026 18:39

    Решение глубоко проработанное с одной стороны. Однако с другой стороны мне видится неверной оценка затрат на реверс - с приходом llm на это поле время и стоимость на то, чтобы разобрать прошивку fpga уменьшится на порядки. Дело лишь в наработке инструментов и подходов. И вот тогда опция выпиливания функций саботажа и проверки активации из бинарных прошивок станет намного реалистичнее.


    1. ramfactory Автор
      17.07.2026 18:39

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


      1. SokilOff
        17.07.2026 18:39

        Да не будет никто заморачиваться обновлениями. Один раз сделают аппаратный клон, скопируют прошивку без непонятных мест, эти места "доработают напильником" (тупо пропатчат) если надо, и выпустят примерный аналог по более низкой цене. Всё. А дальше порешает рынок.


    1. olku
      17.07.2026 18:39

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


    1. BURAKKu
      17.07.2026 18:39

      На личном опыте это проверил, подключил несколько mcp, написал пару своих скиллов, отладил это за неделю и оставлял на пару часов реверсить бинарники. Почти всегда удавалось полностью восстановить исходный код и найти блоки с защитой или в тупую их пропатчить, даже если они не вызывались. Тестовые* кейсы были гораздо сложнее из-за размеров бинарей и около 150 блоков зашифрованного динамического кода с серверов работающих абсолютно по разному для защиты от реверса, при провале любого теста сразу бан. Разобрать микроскопическую прошивку микроконтроллера на атомы будет не так сложно. Из моих наблюдений не так уж и много людей занимались подобным, пока начнут массово так делать пройдет время. В общем идея мне понравилась, но уже поздновато, лишь вопрос времени когда это будет массовая история


  1. anzay911
    17.07.2026 18:39

    Что мешает заливать прошивку у других китайцев или вовсе у себя?


    1. Darkness_Paladin
      17.07.2026 18:39

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


  1. akakoychenko
    17.07.2026 18:39

    Интересная задачка для китайцев выходит

    К сожалению, не знаком с проектированием плат, но, правильно ли понимаю, что китаец, анализируя схему и расположение компонент + многократно запуская вычисление puf при разных температурах на одних и тех же платах, может вполне себе отделить зерна от плевел, и понять значимую часть отправляемого ключа? А, поняв значимую часть ключа, можно начать совпадающие запросы кешировать, наплевав на незначимую часть запроса? Ну а там уже накопленный cache hit даст точное количество безопасных запусков для третьей смены, чтобы честно активировать их все, даже при 100% cache miss?


    1. ramfactory Автор
      17.07.2026 18:39

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


  1. schulzr
    17.07.2026 18:39

    Спасибо за статью! А Altera , Xilinx не ставят специальный hard IP block на свои здоровые FPGA сейчас? (могу конечно, что-то перепутать). Вроде бы раньше шла речь о hard IP для random generator, который возможно тоже базируется на ring oscilator.

    Еще вопрос, а как вы убеждаетесь, что ваш SoftIP блок будет действительно надежно работать на ПЛИС? Не может оказаться, что для некоторых партий железа шумы поведут себя сильно иначе?


    1. ramfactory Автор
      17.07.2026 18:39

      Ну, нет ничего идеального, PUF мало того что подвержен "температурным" флуктуациям, дык ещё и чип стареет. Однако PUF это распространенная практика, есть прямо отдельные чипы защиты основанные на PUF. А в новых или более дорогих FPGA есть свой блок UID, и тут вообще не нужен PUF, можно брать стабильный UID чипа как фактор защиты. В данном случае PUF используется чтобы получить уникальный ID чипа FPGA в котом нет соотв. блока.


  1. ramfactory Автор
    17.07.2026 18:39

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


  1. victoria_komarova
    17.07.2026 18:39

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


  1. Darkness_Paladin
    17.07.2026 18:39

    Гениально. (:sarcasm:)

    Скрытый текст

    Китаец делает ТОЧНЫЕ копии (на том же оборудовании ведь) твоего девайса, которые через пять минут перестают работать из-за модуля саботажа, и спокойно их продаёт. Люди их покупают, обнаружив неисправность, обращаются К ТЕБЕ за гарантией, как написано в твоём техпаспорте на этот чудо-прибор... Ты их посылаешь нафиг, говоря, что они купили контрафакт. Через пару недель интернет полон историй о том, как ты обманываешь народ, выпуская брак и отказываясь его менять/чинить. Начинаются суды, где ты не можешь доказать, что "контрафакт" чем-то отличается от твоих устройств, и суду всё ясно: ты просто пытаешься уклониться от исполнения гарантийных обязательств по своей продукции, объявляя неисправные устройства поддельными. Конские штрафы и выплата компенсаций. И вот, через полгода, идёшь ты по улице в трусах и тапочках (всё остальное забрали приставы), и даже бомжи плюют тебе вслед, а завидев тебя издалека, брезгливо переходят на другую сторону улицы. Ещё через полгода ты тихо помираешь от пневмонии где-то в коллекторе теплотрассы. Другие бомжи находят твой труп, выносят и выбрасывают его в ближайшей лесополосе. Весной его найдут, но не смогут опознать подранные бродячими собаками останки. Их кремируют без церемонии, вместе с биологическими отходами больниц, и выбросят пепел в мусорный контейнер, откуда его вывезут на полигон Тимохово.

    Всё правильно. Именно так и должно быть с теми, кто не понимает, что саботаж -- это ВСЕГДА плохо.


    1. Kelbon
      17.07.2026 18:39

      судя по стилю очень напоминает ллм статью, так что я не уверен существует ли это в реальности


    1. LinkToOS
      17.07.2026 18:39

      Начинаются суды, где ты не можешь доказать, что “контрафакт” чем-то отличается от твоих устройств

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


      1. randomsimplenumber
        17.07.2026 18:39

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

        Звуки закона о зашите прав потребителей..

        Это обычная практика.

        В каком то узком кругу. Примеры есть?


        1. svpcom
          17.07.2026 18:39

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


          1. randomsimplenumber
            17.07.2026 18:39

            Все так и есть ;) ну и существует ненулевая вероятность, что и бренд и продавец - однодневки, и что за гарантией обращаться будет не к кому. Ну и если купил Макиту у цыган на заправке - воще странно ожидать что у нее есть серийный номер ;)


          1. Darkness_Paladin
            17.07.2026 18:39

            Продавец -- это просто посредник. Он отвечает "в первую очередь" лишь потому, что это удобно покупателю. Если я в Сибири купил ботинки от белорусской фабрики -- конечно, мне удобнее решать вопросы с гарантией через местного продавца, у которого я их купил, а не напрямую с фабрикой. Но если я в этих ботинках приехал из сибири в белорусь, и там они рассыпались, закон не обязывает меня возвращаться в сибирь, чтоб предъявить претензии через продавца, я могу предъявить их непосредственно фабрике, если мне так удобнее.

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


    1. LinkToOS
      17.07.2026 18:39

      Начинаются суды, где ты не можешь доказать, что “контрафакт” чем-то отличается от твоих устройств, и суду всё ясно: ты просто пытаешься уклониться от исполнения гарантийных обязательств по своей продукции

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


      1. Darkness_Paladin
        17.07.2026 18:39

        Иски по ЗоЗПП не облагаются госпошлиной, можно сутяжничать, сколько не лень.


        1. LinkToOS
          17.07.2026 18:39

          Так ведь сразу лень. Поэтому обычно все ограничивается гневным отзывом в интернете.


  1. mozg37
    17.07.2026 18:39

    Может не стоит тогда отдавать все китайцам и делать часть (или все) производства тут? Да не, бред какой-то, отдадим им и что-нибудь придумаем


    1. LinkToOS
      17.07.2026 18:39

      Это уже совсем другая экономика. Китай это не только производство, а весь цикл включая доставку покупателю в любую страну. Не надо везти “через две таможни”. Можно на своем сайте указать что вы “эстонский” разработчик, чтобы не смущать покупателей из других стран.


    1. Newbilius
      17.07.2026 18:39

      Производство в условном Китае - N денег. Локальное - N*10 или даже 100, или даже 1000. Действительно, зачем отдавать, надо всё самим, наверняка отобьётся! /s


  1. randomsimplenumber
    17.07.2026 18:39

    Самая важная часть бизнеса - не производство а продажи. Китайцам с завода нафиг не уперлось реверсировать ваши прошивки. Ну, сделают они в 3 смену партию пепяк. Кому они их продадут? На Алике со скидкой 90%? Значит вы слишком большую маржу заложили, раз так тоже выгодно. Конкурент закажет? Так может с ним сами как то договоритесь? Зачем продавать контрафакт если есть оригинал?


    1. LinkToOS
      17.07.2026 18:39

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


      1. randomsimplenumber
        17.07.2026 18:39

        Конечно. Но без налаженного канала продаж - нафиг оно надо? Пришли лаоваи, заказали 1000 пепяк. Не 10 000, а именно 1 000. Значит, у лаоваев есть рынок в 1 000. У китайцев выхода на тот рынок нет. Зачем им паять и пиратить еще 9 000?

        Вот если придет другой лаовай, и попросит спаять еще 9000..


  1. sergyk2
    17.07.2026 18:39

    когда всё завязано на "тонких" технологиях, закономерно возникают ситуацыи:

    Как оказалось, единственный компетентный сотрудник "Белпака" инженер Большаков сейчас находится в отпуске и устранить неполадки просто некому.


  1. Piterssh
    17.07.2026 18:39

    А есть случаи такого реверса? Кому контрафакт продавался - конкурентам? В массмаркете маржа настолько мала, что овчинка выделки не стоит.


  1. SebastianP
    17.07.2026 18:39

    Не понимаю, а почему на корпусе нельзя выбить QR код с ID

    Если он подтверждается продавцом, то это одно дело если глюки, но если там паль - то какие претензии к продавцу

    Первым делом еще до включения ты должен проверить QR код.

    И в инструкции на первой странице , кратко без подробностей изложить смысл статьи и наставление проверить QR код


    1. shai_hulud
      17.07.2026 18:39

      QR код будет открывать китайский сайт, точную копию оригинала


      1. SebastianP
        17.07.2026 18:39

        Посыл ваш понятен, все упирается в известность бренда.

        Если я хочу купить кроссовки Dior , а мне подтвердит подлинность какой-то китайский сайт.

        Ну извините тогда...


        1. vadimr
          17.07.2026 18:39

          А на что вы рассчитывали, покупая кроссовки 迪奥 (в наших краях называемые Dior) в Китае? Самый распрекрасный настоящий 迪奥 будет вести на китайский сайт. А чтобы отличить подлинный китайский сайт 迪奥 от поддельного китайского сайта 迪奥, нужны уже определённые компетенции, которыми вряд ли наделён покупатель, покупающий контрафакт под видом подлинника.


          1. SebastianP
            17.07.2026 18:39

            Нет, не так все было: я на авито купил, и продавец пяткой в грудь бил что не паль, сам привез год назад из Японии. А сайт dior.com говорит, что мой код J3QQ4-H7H2V-2HCH4-M3HK8-6M8VW  проверяли 114 раз и первый раз 3 года назад в Париже


            1. vadimr
              17.07.2026 18:39

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


              1. SebastianP
                17.07.2026 18:39

                ну да он и проверил и выдал о коде  J3QQ4-H7H2V-2HCH4-M3HK8-6M8VW всю инфу (если вы поняли о чем я в знаменитом коде сказал)


  1. rsashka
    17.07.2026 18:39

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

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

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


  1. ptr128
    17.07.2026 18:39

    Однажды лет, 30 тому назад, меня разработчик одного очень популярного программного продукта попросил победить похожую защиту от копирования в его программе для ПК. Даже не пытаясь разбираться с криптографией и защитой от отладчика, я прямо в HIEW нашел, где же сопоставляются ключи и пропатчил это место, чтобы любой ключ стал валидным. Что-то мне подсказывает, что раз первые пять минут устройство работает корректно, то такой же подход тут тоже применим. Ну разве что трудозатраты будут не четверть часа, как тогда в HIEW, а час или два.


    1. DrMefistO
      17.07.2026 18:39

      Реверсить битстримы - не то же самое, что реверсить бинари. Первые куда сложнее.


      1. ptr128
        17.07.2026 18:39

        Ну так я и заложил на это в 4-8 раз больше времени. Что не так?


        1. DrMefistO
          17.07.2026 18:39

          Я вообще не уверен, что описанное в статье можно отреверсить за приемлемое время, а если можно, то не ясно, как запатчить. Проще, скорее всего, написать с нуля.


          1. randomsimplenumber
            17.07.2026 18:39

            Ходят легенды, что ключ может проверяться в нескольких местах кода. И не обязательно через BZ fail. От него может, например, точность числа ПИ зависеть.


            1. ptr128
              17.07.2026 18:39

              ключ может проверяться в нескольких местах кода

              В описанном мной примере 30-летней давности, он тоже проверялся в куче мест кода. Вот только это сводилось к вызову одной и той же функции.

              Впрочем потом была ещё одна итерация с inline, но и она продержалась не долго, так как по сигнатуре легко нашлась во всех местах.

              От него может, например, точность числа ПИ зависеть.

              Тогда устройство не сможет первые пять минут работать корректно.


              1. randomsimplenumber
                17.07.2026 18:39

                Тогда устройство не сможет первые пять минут работать корректно.

                Ошибка может накапливаться..

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


          1. ptr128
            17.07.2026 18:39

            А зачем реверсить описанное в статье?

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

            Альтернативный вариант - найти функцию, включающую вред через условные 5 минут и отпатчить её ret.


          1. Brak0del
            17.07.2026 18:39

            Я вообще не уверен, что описанное в статье можно отреверсить за приемлемое время, а если можно, то не ясно, как запатчить.

            В датацентрах, где есть возможность арендовать FPGA-инстансы, существует задача обнаружения зловредных вещей в пользовательском битстриме. В частности, обнаружения PUF. Это надо, потому что такие PUF могут идентифицировать конкретную плисину, на которой крутятся прошивки нескольких пользователей (multi-tenant platform), а также вносить глитчи и/или перегревать/выводить из строя оборудование. Для решения этой задачи существуют тулзы типа FPGADefender. Т.е. в целом PUF в битстриме вполне себе ищутся. Обратите внимание, что это вещи из далёкого 2020 года, когда ещё не было вездесущего ИИ.

            Также например здесь упоминаются атаки на PUF с навешиванием сотни Flip-flop, с помощью которых получалось предсказать ответ PUF-а.

            Наконец, есть тузлы типа BITMAN, с помощью которых можно патчить битстримы плисин уровня UltraScale.

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


  1. vadimr
    17.07.2026 18:39

    Как-то я купил в Китае прекрасный объектив Nikon, отлично работающий, в фирменной упаковке, только с одной особенностью – без серийного номера. С клонированием реально бороться только на уровне сервисной поддержки.


  1. zatim
    17.07.2026 18:39

    А какова вероятность, что эти все ухищрения не сработают у добросовестных клиентов? Мне периодически приносят в ремонт девайсы, которые внезапно окирпичиваются без видимых на то причин. И у меня вот возникла мысль, а не работает ли там какой-то излишне хитрый алгоритм?


    1. Radisto
      17.07.2026 18:39

      Вспоминается denuvo и PlayStation, когда ломаный диск работал лучше фирменного


    1. tituszx
      17.07.2026 18:39

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


  1. leslie500
    17.07.2026 18:39

    1. Сбор сырого отпечатка: FPGA запускает кольцевые генераторы и формирует сырой массив данных разности частот PUF.

    Подменить кольцевые генераторы так, что они всегда отдавали одинаковый PUF.


    1. lazbaphilipp
      17.07.2026 18:39

      Первое, про что подумал. Вопрос, конечно, в необходимости реверсить битстрим. А ещё в сознании необходимости этого дела.

      Производителю контрафакта потребуется сначала обнаружить необходимость реверс-инжиниринга, потом, собственно, сам реверс инжиниринг, и потом проводить всё это дело.

      Другой вопрос, что а назачем оно вообще надо? Если товар не массовый, китайцы не станут его подделывать, им оно не надо - ещё пойди найди рынок сбыта. Если массовый - то кому вы ещё навредите, китайцам или себе? Но про это тут уже куча комментариев есть


  1. iaia
    17.07.2026 18:39

    Вчера купил ноут Асус туф ф16. В магазине поработал 5 минут. Принёс домой - экран не включается. Оно?


    1. LinkToOS
      17.07.2026 18:39

      Оно?

      ASUS TUF Gaming F16 много модификаций. Что-то оно, а что-то вполне приличный вариант.
      А сломаться может что-угодно.


  1. mixsture
    17.07.2026 18:39

    Если лимит не исчерпан, сервер с помощью криптографической функции формирования ключа генерирует уникальный мастер-ключ устройства и секретную серверную соль.

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


  1. Tomasina
    17.07.2026 18:39

    И все же мне непонятно, как отличить копии, изготовленные на том же заводе, на том же оборудовании, с теми же настройками, из того же сьрья. Да, кремний третьей смены будет чуть отличаться составом от кремния первой смены (но в пределах допуска, чтобы пройти ОТК), но ведь и кремний второй смены будет также отличаться.

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


  1. supinepandora43
    17.07.2026 18:39

    Было интересно читать, ровно до тех пор пока не понял что это писал ИИ.


  1. mstaoru
    17.07.2026 18:39

    Как-то все сложно. Идете в Microchip Trust Platform, покупаете ATECC608B-TNGTLS, отправляете китайцам. Все.