Ротирующийся QR-билет
Ротирующийся QR-билет — билет, код которого пересобирается каждые 15–60 секунд из секретного ключа и времени, поэтому скриншот бесполезен.
Определение
Ротирующийся QR-билет — пропуск на мероприятие или в транспорт, картинка которого живёт 15–60 секунд: телефон пересчитывает код из ключа и часов, и скриншот турникет не пропустит.
Как это работает
После покупки приложение один раз получает секретный ключ билета. Дальше телефон считает подпись по схеме TOTP: ключ и номер временного интервала дают содержимое матрицы. Валидатор с тем же ключом повторяет расчёт и прощает небольшой сдвиг часов.
Где применяют
Схему вывел на рынок Ticketmaster: в SafeTix с 2019 года код обновляется раз в 15 секунд, перепродажа фото умерла. Отличие от динамического QR: меняется не цель ссылки, а сама картинка. Минусы: разряженный телефон и сбитые часы.
Связанные концепции
Арифметика взята у TOTP-аутентификатора, носитель остаётся обычным электронным билетом. Проверку на входе разбираем в статье QR-код на билете.
Частые вопросы
Почему скриншот такого билета не работает?
Картинка фиксирует код одного интервала в 15–60 секунд. К проходу валидатор ждёт другое значение и старую подпись отклоняет. Пересланное фото тоже бесполезно: билет живёт в приложении вместе с ключом.
Нужен ли интернет, чтобы код обновлялся?
Расчёт идёт офлайн — хватает ключа на устройстве и точных часов. Сеть нужна один раз, чтобы скачать билет после покупки. Загрузите билет дома: у стадиона сеть забита толпой, а авиарежим коду не мешает.
Что делать, если телефон разрядился перед входом?
Идите к кассе с паспортом и номером заказа — организатор видит билет в системе и обычно выдаёт разовый пропуск либо печатает дубликат. Берите пауэрбанк: без живого экрана предъявить билет попросту нечем.
Можно ли передать билет другому человеку?
Только официальным переносом в приложении или на площадке продажи: ключ выпускается на устройство получателя, а ваша копия гаснет. Пересылка картинки не работает — код пересчитывает телефон владельца.