Реверс-инжиниринг QR-кода для доказательства вакцинации
Когда Квебек объявил, что будет рассылать электронные письма с подтверждением вакцинации всем, кто был вакцинирован с помощью прикрепленного QR-кода, у меня немного подкосились колени. Мне не терпелось разобрать его на части и покачать головой из-за количества частной медицинской информации, которая, несомненно, будет раскрыта в процессе.
Наконец-то пришло мое подтверждение вакцинации, и результат… вообще-то неплохой. Тем не менее, в хаках с нулевым разглашением всегда есть какое-то удовольствие, поэтому я все равно решил написать о своем опыте в блоге.
Мое первое впечатление было: «Боже мой, это излишне большой QR-код». Под QR-кодом перечислено не так много информации, поэтому они наверняка кодируют все виды личной информации без моего ведома. Знаете, как тот штрих-код на обратной стороне ваших водительских прав.
Естественно, первое, что я сделал, — отсканировал код с помощью приложения QRcode.
Интересно. Я думал, что там будет старый добрый JSON в бинарном формате, но все было иначе. Кажется, что кодировать кучу цифр в base64 неэффективно, но им удалось запихнуть все в один QR-код.
Небольшой поиск привел меня к схемам IANA’s Big Book O’ URI Schemes, где shc указан как предварительно зарегистрированный под названием SMART Health Cards Framework. Так что это не просто то, что правительство Квебека придумало на ходу, это на самом деле часть реального проекта! Это обнадеживающе и неожиданно.
Оказывается, у этого формата есть обширная документация и очень разумные цели дизайна, которые я нахожу как облегчением как держателя такого кода, так и немного разочаровывающим, когда кто-то собирается разобрать его целиком. Но не важно! У меня есть код и документ, которому нужно следовать, так что давайте снимем крышку и заглянем внутрь.
Согласно документу, использование числового режима для кодирования данных QR-кода обеспечивает немного более высокую плотность данных, чем использование двоичного режима, что объясняет гигантский URI чисел, а не более разумную строку в кодировке base64. Первая загадка раскрыта.
Из этого можно извлечь несколько вещей. Во-первых, очевидно, что PHP по-прежнему остается моим быстрым языком программирования. Как печально, но мы отложим это личное откровение для дальнейшего самоанализа.
С технической точки зрения, теперь все выглядит как строки в кодировке base64. И, конечно же, документ говорит мне, что я должен смотреть на JWS, то есть на подписанный веб-токен JSON.
Я сделаю паузу и скажу, что на самом деле это отличный вариант использования JWT. По сути, вместо какого-то бессмысленного токена или гигантского блока конфиденциальных данных концепция JWT подразумевает, что я должен ожидать список разрешений, на которые я имею право, завернутый в большой двоичный объект, который криптографически подписан эмитентом (в данном случае, Quebec Santé et Services sociaux).
Эта модель хороша тем, что ее может проверить любой, у кого есть соответствующий открытый ключ, даже без подключения к Интернету. Кроме того, ответ на вопрос «имеет ли это лицо право сесть на борт самолета / посетить концерт / посетить резиденцию для пожилых людей?» должны напрямую отвечать встроенным, а не косвенно подразумеваемым через проприетарный API или кучу тайных полей, связанных с номерами партий вакцины и т. д.
Теперь у меня нет копии соответствующего открытого ключа, но тело должно быть подписано, а не зашифровано, поэтому я все еще могу его прочитать.
Возможно, в духе реверс-инжиниринга мне следует вручную демонтировать JWS, но это довольно хорошо документированная (и, что немаловажно, хорошо реализованная) спецификация. Я собираюсь пойти на ленивый выход и использовать для этого пакет Composer web-token/jwt-framework.
Итак, мы успешно декодируем заголовок, но тело не приходит. Подсказка здесь — это «zip»: «DEF» в заголовке, как также указано в спецификации.
полезная нагрузка сжимается с помощью алгоритма DEFLATE (см. RFC1951) перед подписанием (обратите внимание, это должно быть «сырое» сжатие DEFLATE, без каких-либо заголовков zlib или gz
NB: мы декодируем, а затем перекодируем объект JSON, чтобы добавить пробел для удобства чтения, указав константу JSON_PRETTY_PRINT
Там немного больше личной информации, чем строго необходимо, хотя я полагаю, что сочетание имени и даты рождения с удостоверением личности с фотографией — разумный процесс. Они также предоставляют конкретные сведения о вакцинах, а не конкретные разрешения, как я надеялся. Опять же, это делает все более удобным для использования в разных юрисдикциях и избавляет от необходимости повторно выпускать JWS каждый раз при изменении политики, что в случае Квебека происходит примерно два раза в неделю.
На протяжении всего этого анализа я задавался вопросом, что может помешать кому-то просто предъявить совершенно действительное доказательство вакцинации другого человека. Поскольку все тело подписано криптографической подписью, вы не можете изменить чужое доказательство вакцинации, чтобы добавить свое имя, а это означает, что соединение доказательства вакцинации с удостоверением личности с фотографией — вполне разумный план. Это, безусловно, будет иметь место в аэропортах, но я очень сомневаюсь, что на спортивных объектах и т. Д. Будут просить второе удостоверение личности. Они просто отсканируют QR-код, увидят галочку на своем устройстве и перейдут к следующему.
Одна напутственная мысль: в то время как мой процесс был направлен на выяснение того, какие из моих личных данных кодируются в QR-коде, модель JWT печально известна тем, что ее легко испортить, либо забывая проверить перед анализом данных, либо разрешая токены без подписи. Если реализации не соблюдают центральный белый список авторизованных подписывающих лиц, было бы тривиально легко создать совершенно действительный токен, который вы подписываете своим собственным ключом. Как всегда, безопасность модели действительно зависит от того, насколько строго проверяющая сторона обеспечивает соблюдение стандарта.
Однако оказывается, что единственная личная информация — это именно та информация, которая содержится в полном PDF-документе о вакцинации: имя, дата рождения, пол (по какой-то причине), а также информация о дате и конкретных дозах, которые владелец получил на сегодняшний день. Если вас устраивают последствия для конфиденциальности предъявления водительских прав в баре, вы не должны больше беспокоиться о том, что вас попросят предъявить доказательство вакцинации.
Код представляет собой целую кучу мусора, но если вы хотите увидеть, что находится в вашем собственном QR-коде, вы можете проверить репозиторий GitHub для этого поста.
«Не смогла пообедать из-за облака» или как добавить QR-код о вакцинации к карточкам в телефон?
Теперь, чтобы посидеть на вашем любимом летнике или спокойно пофрилансить в кофейне, нужно иметь специальный QR-код.
Думаем, все москвичи и гости столицы уже столкнулись с этим и объяснять ничего не нужно, но на всякий случай оставим ссылку для тех, кто еще не в курсе.
И буквально за несколько дней новых правил с нашим сотрудником и с девушкой из соседнего офиса произошло две истории.
Первая – наш разработчик очень долго искал скриншот с QR-кодом в галерее телефона на входе в Кофеманию, чем создал очередь позади себя и кучу недовольных посетителей. В итоге, пока нашел и зашел внутрь – свободных столиков же не осталось.
Вторая – еще более грустная. Девушка из соседнего офиса просто не смогла пообедать. Не смогла, потому что забыла заплатить за связь, а QR-код, как назло, не загрузился в память телефона из облака. Вайфая, естественно, в центре Москвы в XXI веке, поблизости не оказалось. В итоге психанула и пошла в Пятерочку за булкой.
Конечно, на фоне всего, что происходит вокруг – это мелочи, да. Но это мелочи, которые бесят.
QR-код можно найти в одном из следующих мест – Госуслуги, mos.ru, ЕМАИС.ИНФО и Стопкоронавирус. Староверы могут получить такой QR-код в регистратуре поликлиники по месту жительства/прибывания.
Не забывайте, что вместе с QR-кодом вы обязаны предъявить документ, удостоверяющий вашу личность – только в случае совпадения данных из QR-кода и из вашего паспорта вас посадят за столик.
Самое простое – сделать скриншот. Чтобы каждый раз не заходить в госуслуги. Но, людям, которые делают много скриншотов и фотографий такой вариант не подойдет. Пример можно прочитать выше.
Сохранять в облако тоже не очень удобно. Пока найдешь, пока загрузишь – вы поняли.
Поэтому мы предлагаем вам добавить QR-код в Apple Wallet или Google Pay – там он точно не потеряется среди миллиона фотографии и не выгрузится в облако. К тому же на айфоне это самый быстрый способ открыть его – двойным нажатием по боковой клавише вызвать Apple Pay и смахнуть до карты с QR-кодом.
1. Получите свой QR-код на одной из выше перечисленных платформ – все они в итоге ведут на страницу госуслуг.
2. Отсканируйте этот QR-код любым способом – вам нужно получить ссылку, которая в нем закодирована. Простым языком – скопировать её из адресной строки браузера, когда откроется такая страничка, как на скрине ниже.
3. Перейдите по ссылке и заполните анкету. В поле «Ссылка на QR-код» вставьте ссылку, скопированную в прошлом шаге.
4. Сохраните карту в устройство. Она автоматически добавится в Apple Wallet, если у вас айфон и в Google Pay – если у вас андройд. Ниже – один из уже установленных в Apple Wallet QR-кодов.
На обороте карты, для удобства, мы добавили несколько ссылок – чтобы вы могли поделиться анкетой для получения карт с друзьями, а также с ссылками на mos.ru и ваш сертификат на госуслугах.
Делитесь статьей со своими друзьями, родственниками, коллегами – всеми, кому было бы удобно использовать QR-код в таком формате. Спойлер – это очень удобно, проверили на себе.
Passteam не занимается выдачей новых QR-кодов, мы только предоставляем возможность добавления уже существующего в Apple Wallet и Google Pay.
По правде говоря, на этапе получения карты через анкету вы можете вставить в поле «Ссылка на QR-код» что угодно. Система сгенерирует QR-код для любого содержания.
Мы не подтягиваем данные из госуслуг и не проверяем валидность сертификата – этим занимаются сотрудники организаций на входе.
Где взять QR-код вакцинации, как сохранить его в смартфоне и быстро показать
Обязанность предъявлять QR-коды вакцинации на входе в магазины, торговые центры и другие заведения публичного посещения, которую ввели в большинстве регионов России, явно останется с нами надолго. Хотите вы этого или нет, но, теперь, чтобы войти в какой-нибудь Макдоналдс или Бургер Кинг, нужно быть привитым и иметь соответствующий документ, который подтверждает факт вакцинации. Несмотря на то что многие уже реально привились, они даже не подозревают, где брать тот самый QR-код, который у них всюду просят, и — что самое главное — как удобно хранить его в смартфоне.
QR-код вакцинации можно получать только после прививки. А вот сохранить его в смартфоне можно разными способами
По умолчанию QR-код привитым от новой коронавирусной инфекции выдаётся на двух носителях: на бумажном сертификате, который вручают сразу после введения второго компонента вакцины, и в электронном — на Госуслугах. В принципе, можно носить с собой и бумажку.
Но, во-первых, это не так удобно, а, во-вторых, от регулярного использования она со временем обязательно придёт в негодность. Значит, будем задействовать смартфон. Тем более что способов сохранить и показать QR-код при необходимости с его помощью куда больше одного.
Как быстро показать QR-код о прививке
Первый способ получить QR-код в быстрый доступ предлагает приложение Яндекса:
Алиса будет показывать ваш QR-код по запросу
Правда, для этого нужно включить Алису как голосового помощника по умолчанию. О том, как это сделать, мы рассказывали в отдельной статье.
В следующий раз авторизация не потребуется. Приложение запомнит ваши учётные данные и позволит мгновенно и без лишних манипуляций получать доступ к QR-коду. Так что потом, когда вам потребуется подтвердить факт вакцинации, вы сможете просто попросить. Да, вот так просто. Вам не придётся искать свой сертификат вакцинации самостоятельно.
Где сохранить QR-код в телефоне
Если вы не хотите включать Алису вместо Google Ассистента, есть другой способ. Он заключается в том, чтобы добавить QR-код в приложение Тинькофф:
Тинькофф предлагает хранить QR-код в банковском приложении
Как добавить QR-код о вакцинации
Третий способ чуть сложнее в настройке, но зато более удобен с точки зрения практического использования, особенно, если нет приложения Тинькофф банка, а Google Ассистента на Алису менять не хочется:
Для начала вам нужно найти свой QR-код на Госуслугах
В принципе, на этом уже можно остановиться, потому что даже скриншот QR-кода работает как обычный и позволяет вам проходить везде, где требуется подтверждать факт вакцинации. Другое дело, что это не очень удобно — каждый раз искать нужное изображение в галерее, где у вас наверняка хранятся сотни или даже тысячи фотографий. Поэтому мы переходим ко второму этапу:
Теперь QR-код будет храниться у вас в Google Pay
После этого QR-код вакцинации всегда будет храниться в Google Pay, откуда вы сможете получать к нему быстрый доступ. По умолчанию для этого достаточно запустить приложение платёжного сервиса и выбрать QR-код. Однако некоторые смартфоны поддерживают быстрый вызов всех карт и сертификатов по двойному нажатию клавиши питания.
Новости, статьи и анонсы публикаций
Свободное общение и обсуждение материалов
При всех очевидных недостатках подхода Google к обновлению Android-смартфонов мне он импонирует куда больше, чем подход Apple. Google разделила свою операционку на множество независимых компонентов, каждый из которых она может обновляться отдельно от других. Поэтому, если с каким-то из них случаются сбои, поисковый гигант может просто выпустить мелкий патч для этого компонента вместо того, чтобы разрабатывать большой апдейт для всей операционной системы сразу. Но иногда это становится причиной определённых проблем в работе смартфонов.
В смартфоны постоянно добавляют новые функции, которые через год становятся привычными. Возможно, приедаются, и мы перестаем обращать на них внимание. Тем не менее, мы решили собрать самые популярные фишки смартфонов, которые сделали их такими, какие они есть сейчас. А после прочтения возьмите свой любимый гаджет и подумайте о том, сколько всего он умеет. Кажется, пора заметить, насколько крутое устройство в вашем распоряжении!
YouTube уже давно перестал быть чем-то редким. Кроме того, что сейчас это самый посещаемый и популярный хостинг в мире, которые стал для многих средством заработка огромных денег, он является и источником информации. Огромная доля пользователей смотрит на YouTube хотя бы 1-2 ролика в день. При этом, у него появляются все новые инструменты для привлечения новых пользователей. Одним из них является не новый, но удобный инструмент ”Смотреть позже”. Часто просто нет времени смотреть все, что попадает в подборку. С этим инструментом можно просто отложить видео и посмотреть, когда будет время. Вот только там скапливается слишком много просмотренного мусора, который надо убирать. Расскажу, как это можно сделать.
С точки зрения безопасности — корректно давать доступ приложению Pass2Pay к Госуслугам?
А просто показать QR-код, скачанный с Госуслуг нельзя? Обязательно надо подключать кучу програм? )))
Где найти QR-код о вакцинации от COVID-19
Всем привет. С недавней новости ( https://www.mos.ru/mayor/themes/12299/7440050/ ) москвичи узнали, что с 28 июня гражданам придётся иметь QR-код, чтобы посещать общественные места. Многие группы стали распространять памятку об этом в виде таких картинок.
Мой работодатель в том числе пригрозил запретом выходить на работу, если у каждого сотрудника не будет на руках сертификата и QR-кода. Начал искать, где его найти.
Надеюсь, буду полезен.
заходишь в приложуху госуслуги с телефона
тыкаешь в кнопку «все услуги >»
прокручиваешь почти до конца там будет «Вакцинация COVID-19» тыкаешь
скролишь ниже вуаля, PROFIT.
Там написано, что в рестораны можно ходить также тем, кто болел ковидом менее, чем 6 месяцев назад. Кто-нибудь в курсе, как получить код по такой причине?
У меня так и не появился, только записи о вакцинациях и всё. Причём записей тоже не было, пока я им через две недели после второй прививки не написала. Думала эти очень ответственные люди пробздятся и сразу всё пришлют, но нет, они не стали себя утруждать, добавили только записи о вакцинациях, а про QR код «забыли» теперь я чувствую не скоро пришлют, хотя заявление я им снова отправила. У меня слов нет.
Я не понимаю. Код нашла. А что дальше с ним делать? Сфотографировать и показывать проверяющим фотографию qr-кода? Или что?
Подскажите, он появляется только после 2-ого укола?
с каких пор электронные документы работают без письменных, у меня например нет аккаунта в этих госуслугах.
Трансвакцинация
Что делать, шеф?
За что боролись, на то и напоролись
Во всех магазинах страны
Злободневное
Лукашенко заявил, что в Беларуси не будет западных вакцин, чтобы люди «не ехали на Запад»
Александр Лукашенко 26 октября съездил в Лидскую центральную районную больницу, где лечат пациентов с COVID-19. Во время визита он заявил, что в Беларуси не будет «западных» вакцин (Pfizer, Moderna и других, которые производятся в странах Европы и США), потому что привитые ими люди смогут беспрепятственно выехать на Запад.
Специалисты новосибирского центра вирусологии и биотехнологии «Вектор» презентовали модифицированную версию вакцины «Спутник V» для антипрививочников.
«Теперь у антипрививочников нет аргументов против прохождения вакцинации. Мы пошли им навстречу и убрали из вакцины все, что вызывало недоверие. Даже сексом после нее заниматься можно, но только аккуратно и не больше двух раз в месяц», — заявил директор научной лаборатории Ринат Максютов.
Новый препарат поступит в пункты вакцинации уже на следующей неделе. Как отмечают в Минздраве, в первые дни ожидаются большие очереди.
Локдаун в Москве от Собянина
• Во время нерабочих дней в Москве будут закрыты торговые центры, рестораны, кафе, салоны красоты, запрещены массовые мероприятия, рассказали Forbes источник на ресторанном рынке, обычно присутствующий на совещаниях в мэрии, и один из владельцев московской сети салонов красоты. Другой источник подтвердил, что QR-коды действовать не будут.
• Forbes изучил проект указа о «Краткосрочном локдауне на ноябрьские праздники» Сергея Собянина. О нём рассказали изданию два источника на ресторанном рынке, но подлинность подтвердить не смогли. Согласно проекту, с 30 октября по 7 ноября нерабочие дни будут распространяться на все организации и ИП в Москве. Исключение — организации, деятельность которых не может быть ограничена.
• По проекту, будут закрыты все пункты питания (в том числе в парках), объекты розничной торговли, закрыт доступ в организации и ИП, оказывающие бытовые услуги, в салоны красоты, фитнес-клубы, поликлиники, ветеринарные клиники, букмекерские конторы, театры и кинотеатры, детские игровые центры и зоопарки, запрещён доступ на массовые мероприятия.
• В документе указано, что будет разрешена работа общепита навынос, работа аптек и продуктовых магазинов, доставка и официальные городские мероприятия.
• Локдаун до 7 ноября будет введен, если общее количество заболевших Covid-19 в Москве с 21 по 28 октября будет больше, чем с 13 по 20 октября, следует из проекта указа.
• 19 октября вице-премьер Татьяна Голикова предложила ввести нерабочие дни в России с 30 октября по 7 ноября. Президент рассмотрит предложения 20 октября
QR-код без прививки — несколько официальных способов получить сертификат в ноябре 2021 года, кому положен медотвод
С введением системы электронных пропусков в России становится все более популярным вопрос – как получить QR-код без прививки? Немало случаев, когда пропуска и справки о вакцинации попросту подделывают – за это злоумышленникам грозит штраф или более строгая мера наказания. Такая махинация приравнивается к подделке особо важных документов. Но официальные способы получить QR-код невакцинированным в России все же есть.
Как получить QR-код при этом не поставив прививку – несколько официальных способов
Сейчас не осталось уже практически ни одного региона, который бы за время пандемии не вводил или не ввел в настоящее время систему входа в определенные зоны строго по QR-кодам. Получить официальный электронный пропуск в общественные места, кафе и другие территории, свободные от ковид, не ставя при этом прививку, безусловно, можно. Во-первых QR-код выдают тем, кто переболел коронавирусом, если этот факт официально подтвержден положительным тестом. Важный момент – сертификат переболевшего приходит в личный кабинет на Госуслуги только после получения отрицательного теста, то есть после официального подтверждения выздоровления. Также справку о перенесенном заболевании можно получить в поликлинике, где были сданы тесты и проходило само лечение. Она равносильна QR-коду. Во-вторых, срочный электронный пропуск можно получить на руки по результатам отрицательного ПЦР-анализа. Но этот пропуск будет кратковременным – действует он всего 72-часа с момента получения результата.
то касается справки на антитела, то она не является официально разрешенным документам в зоны, свободной от ковид. Наличие антител не гарантирует того, что человек не заразится более серьезным штаммом вируса, или не является в настоящее время носителем заболевания и не несет угрозы окружающим. Сроки действия у всех QR-кодов разные: Привитые могут пользоваться документом 1 год. Переболевшие 6 месяцев. С ПЦР-тестом всего 3 суток. Напомним, что, не смотря на то, что в стране уже выявлены факты продажи поддельных сертификатов о вакцинации или переболевшего, покупка и хранение таких документов преследуется законом. Также наказание грозит и тем, кто осуществляет сбыт и подделку – медики, или другие граждане.
Медотвод от прививки – как получить в ноябре
Безусловно, любое лекарство имеет свои противопоказания и ставить прививку можно не всем гражданам. Но для того, чтобы получить медотвод от вакцинации в России нужны достаточно веские поводы: Повышенная чувствительность к одному из компонентов лекарства. Сильная реакция на ранее поставленные прививки. Обострение хронических заболеваний или острая инфекционная болезнь. Лактация. Тяжелая аллергия. Несовершеннолетие. Данные противопоказания к вакцинации самой распространенной прививкой «Спутником V» указаны в аннотации к лекарству. Они периодически обновляются, и если ранее нельзя было прививаться онкобольным, то теперь уже есть разрешение на это в момент ремиссии. Сейчас ведутся исследования на предмет возможности вакцинироваться кормящим, а в скором времени начнут прививать и детей. Получить медотвот можно у лечащего врача в поликлинике или в страховой компании. Период лактации или хронические заболевания необходимо подтвердить соответствующими медицинскими справками или иными документами.
Гинцбург за сохранение QR-кодов до 80% привившихся
Директор Центра им. Гамалеи Александр Гинцбург активно выступает за продление системы пропусков по QR-кодам вплоть до того момента, пока в стране не будет привито 80% населения. Необходимо жестко дифференцировать привитых и непривитых, чтобы и те и другие чувствовали свои ограничения или преимущества. Если же мера не будет соблюдена, то волнообразное течение коронавируса на планете не прекратится – новые всплески будут наблюдаться регулярно, люди будут продолжать болеть и умирать. В случае реализации программы и продолжения действия электронных пропусков, разработчик «Спутника» уверен, что в течение 2 месяцев вакцинацию уже удастся довести до должного уровня.
QR-код могут украсть – предупреждение специалистов по кибербезопасности
Украсть QR-код у его владельца можно посредством удаленного доступа к устройству его хранения, фото и видео фиксации — с таким предупреждением выступил специалист по кибербезопасности Сергей Вакулин. Чтобы этого избежать, эксперт рекомендует не оставлять на виду документы или экран телефона со своим кодом в общественных местах, лишь показывать его проверяющему. Если злоумышленник получил идентификатор сертификата, он уже сам сможет его сгенерировать на специальном сайте и перенаправить его на Госуслуги. Пока в России не фиксируются такие случае, однако это не значит, что опасности не существует. Следует быть осторожными, чтобы избежать кражи личных данных гражданина.