Автор: Леонид СТАСЕНКО, кандидат технических наук, ООО «Диамант Групп»

QR-код. Старая песня на новый лад

QR-коды сегодня окружают нас со всех сторон: постоянно присутствуют на экранах телевизоров как способ перейти на какой-либо сайт, наведя на экран камеру смартфона, в маркировке продукции, особо можно отметить повсеместное (не только в России) применение, связанное с пандемией — сначала их использовали как пропуска, а теперь ими «метят» вакцинировавшихся граждан. Конечно же, системы контроля и управления доступом (СКУД) не могли остаться в стороне, и на то есть уважительные причины.

Как он появился

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

Разработчик кодов Масахиро Хара вдохновился на их создание небезызвестной игрой Го, которой очень увлекался.

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

Со временем появились другие варианты двухмерных кодов, например, Micro QR, но классический QR-код получил в мире наибольшее распространение. Хотя обозначение «QR code» является зарегистрированным товарным знаком DENSO Corporation, использование кодов не облагается никакими лицензионными отчислениями, а сами они описаны и опубликованы в качестве стандартов ISO.

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

Общие характеристики

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

Несмотря на отсутствие жесткого стандарта на формат передаваемых данных, со временем сформировалось четыре основные кодировки QR-кодов, распознаваемые практически всеми сканерами:
• Цифровая: 10 битов на три цифры, до 7089 цифр.
• Алфавитно-цифровая: поддерживаются 10 цифр, буквы от A до Z и несколько спецсимволов. 11 битов на два символа, до 4296 символов.
• Байтовая: данные в любой подходящей кодировке (по умолчанию ISO 8859-1), до 2953 байт.
• Кандзи: 13 битов на иероглиф, до 1817 иероглифов.

Как видно, объем передаваемой в коде информации достаточно велик — более 4000 символов. В этом объеме в формате JPEG можно даже передать узнаваемый портрет человека.

Самый маленький QR-код версии 1 имеет размер 21х21 пиксель, самый большой версии 40 имеет размер 177х177 пикселей. Связь номера версии с количеством пикселей простая — QR-код последующей версии больше предыдущего строго на 4 пикселя по горизонтали и по вертикали.

Помимо полезной информации, QR-код содержит коды коррекции ошибок на основе кода Рида - Соломона. За счет этого даже поврежденный код либо код с нанесенным на его части рисунком (например, логотипом) исправно считывается сканерами (конечно, до определенного предела).

Существует четыре уровня избыточности для коррекции ошибок: 7, 15, 25 и 30%. Они еще часто обозначаются как L, M, Q, H. Естественно, с увеличением уровня избыточности увеличивается размер самого кода. Ниже в качестве примера показаны QR-коды с одним и тем же объемом информации с уровнями избыточности L и H.



Сканеры

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

Видеосигнал с камеры поступает на специализированный процессор достаточно высокой производительности, который распознает QR-код и передает его на следующий уровень для трактовки или отображения по какому-либо интерфейсу (USB, UART, ...).

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

Следует также отметить, что большинство 2-D (двухмерных) сканеров умеют также работать и с линейными (штриховыми) кодами.



А что же со СКУД?

Начнем с плюсов.

Итак, мы постепенно добрались до вопроса: для чего и как QR-коды могут применяться в СКУД? Здесь надо исходить из решаемых задач и свойств QR-кодов.

Во-первых, QR-коды значительно дешевле традиционных идентификаторов (тех же proximity карт), а подчас вообще бесплатны.

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

Таким образом, QR вполне могут использоваться в качестве ID. А если говорить о разовых пропусках, то преимущество перед физическими карточками видно невооруженным глазом. Даже если их печатать на бумажном носителе, отличная в этом случае от нуля стомость все равно намного ниже, и не возникает вопроса, что же делать, чтобы гостевые карты не уносили.

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

А теперь – минусы. Не бывает явлений и вещей, имеющих только плюсы. Так и в нашем случае: если для копирования карт EM Marin, HID или Mifare требуется специальное оборудование (правда, имеющееся сейчас даже в мастерских по изготовлению ключей), то QR-код можно просто сфотографировать с помощью телефона и пользоваться.

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

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

Просто ID и кое -что еще

С применением QR-кода в качестве ID-пользователя (по аналогии, например, с использованием UID карт Mifare) никаких существенных различий нет. Важно только, чтобы считыватель со сканером всегда мог однозначно трактовать информацию, содержащуюся в коде. Например, если не вносить никаких ограничений (не принимать соответствующих мер в считывателе), то сканер прочитает и код, содержащий ссылку на WEB-сайт, а что с ним делать дальше — не понятно. Поэтому формат кода должен быть четко специфицирован, и невалидные коды считыватель должен отбраковывать, не посылая явную чушь контроллеру доступа. Это все сделать несложно, и числовой ID из QR-кода может передаваться контроллеру СКУД по любому из популярных интерфейсов, начиная с классического wiegand и заканчивая набирающим популярность OSDP.

Однако при использовании последнего типа интерфейса, не накладывающего жесткого ограничения на длину передаваемых данных, можно получить достаточно интересное решение. За счет неограниченного (относительно wiegand) объема информации в QR-коде мы можем в него записать все параметры доступа для данного кода, например, дату и время действия кода, код группы доступа и так далее. Это, в свою очередь, приводит к тому, что контроллер, получив такой код по OSDP, не ищет его ID в своей базе данных, а сверяет параметры доступа, например, с текущими датой и временем, на основании сравнения обеспечивает доступ (или отказ в доступе), далее информируя систему о принятом для содержащегося в коде ID решении.

Таким образом, снимаются все ограничения на размер базы данных контроллера, и мы можем обслужить хоть несколько миллионов пользователей на достаточно «слабом» с точки зрения объема памяти контроллере. Напомню, что 4-байтовый ID обеспечивает более 4 миллиардов комбинаций – цифра, сопоставимая с численностью населения земного шара.

Если копирование QR-кода с одноразового пропуска не будет фатальным (по истечении срока действия его ID будет из контроллера удален системой), то описанный выше вариант уже грозит бОльшими неприятностями, если параметры доступа содержатся в открытом формате. Ничто не помешает создать QR-код с правами доступа в любое время и в любое место. И тут на помощь приходит шифрование кода, например, с помощью популярного алгоритма AES-128 или любого другого. В таком случае для изготовления фальшивого кода недостаточно знать его структуру, необходимо знать еще и ключ шифрования, который для каждого объекта может задаваться индивидуально (по аналогии с ключами доступа к секторам данных в картах Mifare или Mifare Plus).

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

Практические аспекты использования

А теперь настало время поговорить о том, что нужно принимать во внимание при решении использовать в СКУД на объекте QR-коды. Приведенные данные не следует рассматривать как попытку отговорить от этого решения, просто надо иметь в виду некоторые особенности такого носителя.

Размеры и дальность считывания

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

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

Большие размеры (например, 50х50 или более) уже не будут читаться с маленького (менее 10 сантиметров) расстояния, и это становится противоестественным для пользователей.

Освещение

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

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

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

Ориентация

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

В качестве заключения

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

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



Внимание! Копирование материалов, размещенных на данном сайте допускается только со ссылкой на ресурс http://www.tzmagazine.ru