Как стать автором
Обновить

Почему введение проверки QR-кодов не имеет смысла в общественном транспорте и торговых центрах?

IT-стандарты *Здоровье Будущее здесь
Из песочницы

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

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

1. Что за зверь QR-код?

QR-код (Quick Response code — код быстрого реагирования) – тип матричных штрихкодов (или двумерных штрихкодов). QR-код состоит из чёрных квадратов, расположенных в квадратной сетке на белом фоне, которые могут считываться с помощью устройств обработки изображений, таких как камера. 

Обозначение «QR code» является зарегистрированным товарным знаком «DENSO Corporation», при этом использование кодов не облагается никакими лицензионными отчислениями, а сами они описаны и опубликованы в качестве стандартов ISO/IEC18004.

Не буду перегружать описанием алгоритмов кодирования и прочей технической информацией, если требуются подробности, то их можно найти в ГОСТ Р ИСО/МЭК 18004-2015.

Важно знать, что QR-код может содержать текстовую информацию, URL-адреса web-страниц, визитные карточки и даже изображения (к вопросу о печати сами знаете кого). В зависимости от размера QR-коды могут содержать от 21x21 до 177x177 модулей (версии от 1 до 40 с шагом четыре модуля для каждой стороны), при этом закодировано может быть до 4296 алфавитно-цифровых знаков.

2. Как получить QR-код сертификата вакцинации?

Легально получить сертификат и заветный QR-код можно завершив полный курс вакцинации (действителен 1 год), либо получив отрицательный результат ПЦР-теста (действителен 72 часа). На мой взгляд, с точки зрения скорости получения и продолжительности действия, наиболее оптимальным способом получения сертификата является вакцинация препаратом «Спутник Лайт», в данном случае сертификат с QR-кодом должен быть доступен уже через 3 дня после вакцинации, срок действия – 1 год.

3. Что из себя представляет QR-код сертификата вакцинации?

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

https://www.gosuslugi.ru/covid-cert/verify/9710000025717304?lang=ru&ck=f2ab62b1a16724942b19e836a83c5258,

где:

- «https://www.gosuslugi.ru/covid-cert/verify/» - адрес страницы проверки;

- «9710000025717304» – номер сертификата;

- «lang=ru» – язык, на котором будет возвращен результат проверки;

- «ck=f2ab62b1a16724942b19e836a83c5258» – некая уникальная HASH-сумма, рассчитанная для конкретного сертификата.

Если открыть ссылку, которая содержится в QR-коде сертификата, то попадём на страницу с результатом проверки. Как мы видим, результат проверки не содержит личной информации – это плюс. Главный минус заключатся в том, что проверить QR-код без интернет-соединения или же при недоступном портале Госуслуг ­– невозможно!

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

4. Как проверить QR-код сертификата вакцинации?

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

1. осуществить сканирование с помощью официального приложения «STOP COVID-19» (Google market, App store);

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

Почему данную проверку необходимо осуществлять так и только так? Об этом далее...

5. Безопасность

Если Вы внимательно читали и имеете базовые понятия об IT-сфере, то уже догадались, о том, что QR-код компрометируется при  первом же сканировании, как пример – код из данной статьи, я взял его с сайта «Телеканал Тульский 1», такой код может быть предъявлен к проверке любым лицом, более того, имея адрес строки проверки можно легко сгенерировать новый QR-код. Один из множества сервисов генерации доступен на сайте tec-it.com.

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

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

С проверкой паспорта все понятно, возникает резонный вопрос зачем проверять код с помощью приложения «STOP COVID-19»? А вот зачем – как неоднократно говорилось, QR-код – это всего лишь изображение, в котором закодирован адрес web-страницы, и этим адресом может быть совсем не ресурс портала госуслуг. Страница с валидными данными о вакцинации может быть легко скопирована, модифицирована и размещена по совершенно другому сетевому адресу, невнимательный проверяющий, скорее всего, не распознает подделку даже если сверит паспортные данные, ведь данные изменены под конкретный документ, при этом страница ничем не будет отличаться от портала госуслуг, исключая лишь url-адрес данной страницы.

Друг автора данного материала утверждает, что после введения QR-кодов он некоторое время ходил с QR-кодом от куриной грудки, затем и вовсе сгенерировал поддельную web-страничку и абсолютно везде, где он предъявлял данные QR-коды, они проходили проверку. Думаю, про банальную копию существующего QR-кода и вовсе говорить не нужно, разве Вы где-то видели, чтобы проверяющие сверяли паспортные данные? Лично я – нет.

6. Проверка QR-кодов в общественном транспорте и торговых центрах – утопия

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

7. Заключение

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

Как вариант, в QR-код необходимо зашивать дополнительную информацию – данные о владельце, сроке вакцинации, периоде действия, и цифровой подписи, такой QR-код можно будет проверить без интернет-соединения. Именно так сделано на Западе, например, в Канаде (Реверс-инжиниринг QR-кода для доказательства вакцинации https://habr.com/ru/company/timeweb/blog/560688/).

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

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

UPD:

Развивая тему, разработал TELEGRAM-бота @QRVisorBot для чтения и генерации QR-кодов, так что, если вы по каким-то причинам не привились, то с легкостью можете сгенерировать код, содержащий произвольную информацию, не думаю, что он позволит вам обойти существующие ковидные ограничения, но им вполне можно повеселить проверяющего, кроме того, бот можно использовать для чтения кодов, в том числе с сайтов или из галереи телефона.

Если вас интересует тема разработки TELEGRAM-ботов на JAVA, то можете почитать мою новую статью Разработка Telegram-бота на JAVA для генерации и считывания QR-кодов.

Теги:
Хабы:
Всего голосов 83: ↑68 и ↓15 +53
Просмотры 83K
Комментарии Комментарии 719