На смену штрихкоду      

Эта история началась в 1960-е годы в Японии, когда экономика оправилась от тяжёлого военного поражения и начала набирать ход. Это была, в основном, потребительская торговая экономика, по всей стране множились супермаркеты и универмаги, где продавалось что угодно от овощей и посуды до электроники и билетов на концерты.

Самым узким местом в такой системе была касса, а главным источником ошибок – кассир. Многочасовая работа по вбиванию ценников и кодов товаров неизбежно приводит к потере концентрации, ошибкам и выгоранию. Также известно, что у кассиров может возникать туннельный синдром —боль и онемение кисти из-за защемления запястного нерва. Для того, чтобы кассир мог раз за разом не вбивать длинные последовательности цифр, стали распространяться штрих-коды. Штрих-код в 1948 году изобрёл Бернард Сильвер (1924-1963), который тогда учился в аспирантуре Дрексельского университета, штат Пенсильвания. Штрих-код предназначался именно для инвентаризации товаров в супермаркетах. Как известно, штрих-код состоит из узких и широких линий, то есть, функционально аналогичен коду Морзе, состоящему из точек и тире.

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

Как важно уметь играть в Go

Автором QR-кода является инженер Масахиро Хара (род. 1957) из Токио, работавший в компании Denso Wave и с 1992 года изыскивавший способы   увеличить информационную ёмкость QR-кодов. По словам Хары, идея о квадратном аналоге штрих-кода пришла ему в голову за партией в го, когда он продумывал следующий ход и обратил внимание, как сочетаются на игровом поле чёрные и белые камни: 

Первые QR-коды появились в 1994 году и произвели настоящую революцию как в хранении, так и в извлечении данных. В штрих-код укладывается всего 20 символов, а в QR-код – до 7000. Информация в QR-коде записывается как по горизонтали, так и по вертикали. Поэтому QR-код вмещает в 10 раз больше информации на единицу площади, чем штрих-код. Кроме того, в середине 90-х QR-код считывался вдесятеро быстрее, чем штрих-код. Ёмкость QR-кода позволяет включать в один код несколько копий одних и тех же данных, то есть, QR-код допускает сильную информационную избыточность. Поэтому качественные QR-коды продолжают работать, даже будучи повреждены на 7-30%.

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

Композиция QR-кода

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

1. Маркеры позиционирования (Position markers)

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

2. Маркеры выравнивания (Alignment markers)

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

3. Шаблон синхронизации (Timing pattern)    

Это полосы, проводимые между маркерами позиционирования. По ним сканер определяет, каков размер того узора, в котором зашифрованы данные.

4. Номер версии (Version number)

Номера версии – это участки, расположенные вокруг маркеров позиционирования. По ним машина определяет, какова версия QR-кода, то есть, сколько в нём столбцов и рядов. Существуют версии QR-кода от 1 до  40. Версия 1 содержит 21 строку и 21 столбец, версия 40 – 177 строк и 177 столбцов. Чем выше версия, тем больше информационная ёмкость QR-кода.

5. Информация о формате (Format)

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

6. Модули данных (Data in modules)

Полезная информационная нагрузка QR-кода, например, гиперссылки.

7. Тихая зона (Quiet zone)

Это граница, очерчивающая площадь QR-кода. По ней сканер определяет, где искать маркеры позиционирования.

 QR-код как оружие хакеров

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

QR-код по определению не является человеко-читаемым, поэтому не составляет труда внести в QR-код минимальные изменения, превратив его в ловушку. Компания MobileIron в 2020 году провела исследование, показавшее, что 71% пользователей совершенно не отличают обычных QR-кодов от вредоносных (последние не вызывают у них подозрений). Переходя по гиперссылке, пользователь успевает её прочитать и составить впечатление о том, насколько авторитетно и безопасно она выглядит. В случае с QR-кодом человек понятия не имеет, куда именно переходит по этой ссылке. QR-коды до сих пор остаются ближе к штрих-коду, чем к гиперссылке, то есть, подразумевают совершение транзакций, платежей и раскрытие личных данных. Кроме того, значительная часть QR-кодов обрабатывается автоматически, а искусственный интеллект, сканер и/или камеру смартфона обмануть несравнимо проще, чем человека. Вредоносный QR-код даже может занести на устройство вирус, который, попав на устройство, заставит его автоматически считывать именно вредоносные QR-коды. Таким образом, развивается настоящая цифровая эпидемия, способы борьбы с которой пока не выработаны.   

.