Криптохвост — из чего состоит крипточасть кода маркировки
Криптохвост — криптографическая часть кода маркировки: пара из идентификатора ключа проверки и криптоподписи, которую формирует оператор системы и без которой код не подтвердит подлинность ни на кассе, ни в приложении.
Определение
Код маркировки состоит из двух смысловых половин. Первая — идентификационная: код товара GTIN и индивидуальный серийный номер, вместе они образуют SGTIN и отвечают на вопрос «что это за экземпляр». Вторая — криптографическая, её и называют криптохвостом.
В криптохвосте два элемента: идентификатор ключа проверки (группа применения 91) и значение проверки — криптоподпись. Полная подпись занимает 44 символа и передаётся в группе 92, сокращённая — 4 символа в группе 93, для упаковок, где мало места. Формат задают правила товарной группы.
Как работает
Подпись формируется на стороне оператора при эмиссии кода: он берёт идентификационную часть, подписывает её закрытым ключом и отдаёт заказчику готовую строку. Закрытый ключ не покидает контур оператора — ни производителю, ни типографии его не выдают. Заказ идёт через личный кабинет и станцию управления заказами, коды приходят файлом.
Проверка — обратная операция. Сканер считывает Data Matrix, касса или мобильное приложение выделяет идентификационную часть и криптохвост и сверяет подпись открытым ключом, идентификатор которого лежит в самом коде. Совпало — код выпущен системой. Не совпало — строка собрана вручную или искажена при печати.
Важная деталь: математика подписи считается на месте, без сети. Интернет нужен, чтобы узнать статус кода (в обороте, продан, отозван). Поэтому касса без связи отличит нарисованный код от настоящего, но не увидит, что экземпляр уже продали в другом магазине.
Связанные концепции
Почему код нельзя нарисовать самому:
- идентификационную часть подделать легко — это просто цифры, GTIN и серийный номер;
- подпись без закрытого ключа не подбирается: перебор равносилен взлому криптоалгоритма;
- копия чужого кода пройдёт проверку подписи, но провалится на проверке статуса — оригинал уже выбыл;
- коды выдаются поштучно и платно, эмиссия привязана к участнику оборота, поэтому «лишние» коды в системе заметны.
Следствие для производителя: генератор Data Matrix полезен для тестов печати, но легальный код с криптохвостом выдаёт только оператор. Структура строки разобрана в статье про Data Matrix Честного знака.
Частые вопросы
Из чего состоит криптохвост?
Из двух элементов: идентификатора ключа проверки и значения проверки — криптоподписи. В полном формате подпись занимает 44 символа и передаётся в группе применения 92, в сокращённом — 4 символа в группе 93. Короткий вариант — для мелких упаковок, где длинная строка не помещается.
Кто генерирует криптохвост?
Оператор системы маркировки при выпуске кода. Закрытый ключ подписи хранится только у него, участникам оборота выдаётся готовая строка. Производитель заказывает нужное количество кодов, получает их файлом и передаёт на печать — подписать что-либо сам он не может.
Можно ли сгенерировать код маркировки самому?
Нет. Идентификационную часть собрать несложно, но без закрытого ключа оператора корректная подпись не получается, а без неё код не пройдёт проверку. Товар с такой этикеткой считается немаркированным — вплоть до изъятия партии и штрафа.
Проверяется ли криптохвост без интернета?
Да, подпись сверяется офлайн: хватает данных из самого кода и открытого ключа. Через сеть выясняют другое — статус кода в системе. Поэтому офлайн-касса отличит фальшивку от подлинника, но не узнает, что код уже выбыл из оборота в другой точке.
Зачем криптохвост, если есть серийный номер?
Серийный номер делает экземпляр уникальным, но не защищённым: напечатать этикетку с произвольным номером может кто угодно. Подпись оператора превращает строку в проверяемый документ — она подтверждает, что код выпущен системой, а не придуман на месте.
Автор материала
Андрей СамойловЭксперт по QR-кодам и SaaS-маркетингу. 10 лет в SaaS, маркетинге и ИТ.
Об авторе и все материалы