Как защитить мобильный банк сбербанка. Что делать, если украли деньги с карты Сбербанк: советы

Алексей Максимов

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

Роль штрих-кода трудно переоценить. Ведь этикетка со штрихами содержит в себе базовую информацию - ссылку на позицию в компьютерной базе данных, хранящей всю информацию о продукте (наименование, производитель, цена и т. д.). Портативные терминалы для считывания этих кодов достаточно широко представлены на российском рынке (см., например, PC Week/ RE, № 10/98, с. 29), так что у торговых предприятий действительно есть выбор.

Образцы двухмерных штрих-кодов

Но технология не стоит на месте, на смену одномерным штрих-кодам и устройствам для их нанесения и считывания идут двухмерные штрих-коды и соответствующее оборудование. На выставке CeBIT’98 мое внимание привлек новый компактный универсальный сканер QHT-1000 японской корпорации Denso, входящей в концерн Toyota Tsusho. Это устройство позволяет считывать и декодировать как одномерный штрих-код (UPC, EAN, ITF, NW7, Code 39 и Code 128), так и двухмерный код спецификации Quick Response Code (QR Code), разработанной фирмой Denso. Но прежде чем рассказать о возможностях этого сканера, попробую кратко объяснить, что такое двухмерный штрих-код.

Чуть-чуть истории

История двухмерных штрих-кодов развивалась по двум направлениям. Первое - создание матричных кодов - родилось в начале 80-х с появления двух разработок: Vericode американской фирмы Veritec и CP Code японской компании ID Tech. В конце 80-х представили свои матричные коды Data Matrix и Maxi Code компании International Data Matrix и United Parcel Services (UPS) соответственно. В 1990 г. канадская фирма Array Tech Systems предложила оригинальный вариант матричного кода Array Tag, в котором данные представлялись фигурами гексагональной и октагональной формы. Чуть позже - в 1991 г. - появился матричный код Code One американской фирмы Laserlight Systems. Свой QR Code компания Denso предложила в 1994 г., но следом за ней - в 1995 г. - появилась разработка Aztech Code американской фирмы Wellch Allyn.

Второе направление - создание квазидвухмерных составных штрих-кодов - началось в 1985 г. с появления Code 49 американской компании Intermec, в котором можно расположить до 8 рядов штрихов на том же пространстве, что занимает линейный код. В конце 80-х вышло еще несколько разработок: Codablock немецкой фирмы Identicode System, Code 16K компании Laserlight Systems и PDF417 (PDF, Portable Data File) фирмы Symbol Technologies (США). И, наконец, в 1996 г. американская компания Zebra представила претендующий на универсальность составной код Ultracode.

Из всех этих кодов особого внимания заслуживает PDF417. Он используется в армии США и других американских государственных службах. Например, его наносят на личные карточки персонала для идентификации личности. Насколько мне известно, несколько лет назад российское Министерство обороны занялось тестированием этого кода на предмет возможности его применения для идентификации личности и в военной логистике. К сожалению, данными о результатах этого проекта я не располагаю.

Другой важной особенностью кода PDF417 является впервые встроенный в него метод коррекции ошибок Рида - Соломона. Этот метод изначально разрабатывался математиками Ридом и Соломоном из компании Hughes Aerospace для космических зондов типа “Вояджер” и предназначался для повышения устойчивости приема и распознавания слабого и зашумленного радиосигнала. В случае двухмерного штрих-кода метод обеспечивает чтение и декодирование изображения, даже если его значительная часть испорчена (например, оторвана или зачеркнута)

Особенности двухмерных штрих-кодов

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

Сканер Denso QHT-1000

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

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

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

QR Code - ставка на скорость

При разработке двухмерного матричного штрих-кода фирмы Denso особое внимание было уделено скорости считывания/декодирования. Представители компании утверждают, что им удалось достичь на порядок более высокого быстродействия - 30 этикеток в секунду (каждая емкостью 100 символов) против максимум 3 этикеток в секунду (такой же емкости) в кодировке Data Matrix или PDF417. Секрет заключается в применении комбинированного метода: считывание происходит сразу по всем направлениям, а ускорить процедуру декодирования помогают специальные детекторы положения (вложенные квадраты, расположенные в трех углах этикетки). Благодаря этим значкам сканер легко и быстро разбирается как в размере кода, так и в ориентации этикетки на плоскости.

Спецификация QR Code находится в состоянии развития, но судить об основных характеристиках кода можно, например, по варианту QR Code Model 2. Этот вариант допускает следующую максимальную емкость кода (в зависимости от типа данных): 7089 цифр, 4296 буквенно-цифровых символов, 2953 двоичных символов (8-битных) или 1817 символов японского языка в кодировке Kanji-Kana. Допускается кодирование смеси данных разных типов. Данные в QR Code представляются совокупностью черных и белых точек, каждая из которых трактуется как единица данных, или модуль. Размер кода варьируется от 21х21 до 177х177 модулей (шаг увеличения кратен 4). Нетрудно оценить, какая площадь требуется для этикетки той или иной емкости. Например, если применяется код 105х105 модулей, а размер каждого модуля равен 0,25 кв. мм, то площадь области кода составит 105х0,25 кв. мм = 26,25 кв. мм. Сюда надо добавить необходимые поля (шириной не менее четырех модулей). В итоге получаем, что искомая площадь этикетки составит (105+8)х0,25 кв. мм = 28,25 кв. мм.

Применяемый в QR Code метод коррекции ошибок Рида - Соломона предполагает добавление в записываемые данные специального кода с логикой кодирования. В зависимости от требуемого уровня надежности используются четыре уровня коррекции (естественно, за более высокую надежность приходится платить увеличением объема суммарного кода). Эти уровни, обозначаемые L, M, Q и H, гарантируют восстановление данных, если площадь поврежденной поверхности этикетки не превышает 7, 15, 25 и 30% соответственно.

Здесь приведены далеко не все особенности QR Code, но в данной статье мы не ставим целью дать его исчерпывающее описание, заинтересовавшиеся этой темой могут найти более подробную информацию в специальной литературе или на Web-узле компании Denso (www.denso.co.jp).

Универсальный сканер QHT-1000

Создать код и не создать аппаратное обеспечение для работы с ним было бы равнозначно гибели интересной идеи. Поэтому компания Denso предлагает различные средства нанесения и считывания QR Code. Если для печати можно применять широкий круг этикеточных принтеров, то сканеры требуются специализированные, использующие алгоритмы быстрого чтения и декодирования именно этого кода. До недавних пор Denso производила ручной сканер QS-10H, точечный сканер QS-10P и камеру-декодер QD-10. Новинка в этом ряду - ручной сканер QHT-1000, распознающий как QR Code, так и основные линейные коды.

Это компактное устройство массой 320 г оснащено 2 или 4 Мб памяти, подсвечиваемым ЖК-экраном с разрешением 128х64 пиксела, инфракрасным IrDA-совместимым и последовательным интерфейсами, обеспечивающими беспроводной и проводной обмен данными с ПК. В QHT-1000 применяется 16-разрядный КМОП-микропроцессор и 32-разрядный RISC-процессор, а также CCD-сканер с разрешением 0,25 мм. Размер области сканирования составляет 38х28 мм.

Разработать приложения для QHT-1000 можно с помощью фирменного инструментария BHT-Basic 3.0. Для этого устройства создана утилита инфракрасного обмена Ir-Transfer Utility, выполняемая на хост-компьютере, а также ПО Easy Pack Q, предназначенное для сбора данных, представленных в виде QR Code и линейных штрих-кодов.

Заключение

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



Давайте для начала определимся, как это может выглядеть.

Все чаще на товарах, мы наблюдаем появление набольших квадратиков с различным заполнением черными точками.
Это новая разновидность штрихового кода для зашифровки необходимой информации.
Разрабатывалась данная модификация японской фирмой Denso-Wave.

Цель 2 D кода или QR-кода - как у любого штрих кода - упростить работу с товаром.
Представляете, если бы при приеме товара, кладовщик в ручную вводил всю информацию - дату производства, страну производителя, получателя, состав и тд. Прием одной единицы товара занимал бы большую часть его рабочего времени.
А так это занимает 0,5 секунды - специальным сканером штрих он считывает код, и получает всю информацию в соей базе.

Почему именно 2D код?

Обычный штрих код имеет "вертикальную избыточность", означающую, что одна и та же информация повторяется по вертикали. Это действительно одномерный штрихкод. высота штрихов может быть уменьшена без потери информации. Однако, вертикальная избыточность позволяет штрихкоду, имеющему дефекты печати (например пятна или просветы) сохранять читаемость.

Двухмерный 2d код содержит информацию как по горизонтали, так и по вертикали. Фактически, все алфавиты представляют собой аналог двухмерного кода. Поскольку оба направления содержат информацию, теряется возможность использования вертикальной избыточности. Для предотвращения потери читаемости и обеспечения быстроты считывания должна использоваться другая технология. Борьба с ошибками обеспечивается достаточно просто - большиство двухмерных кодов используют специальные контрольные суммы, позволяющие гарантировать достоверность вводимой информации.

А при введении 2 d QR кодов стало возможно зашифровывать еще больше информации, занимая при этом минимум места.

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

PDF 417

Стековая символика PDF417 была введена в 1991 году. PDF происходит от сокращения Portable Data File (Портативный Файл Данных), штрихкодовый символ состоит из 17 модулей, каждый из которых содержит 4 штриха и пробела (отсюда номер 417). Штрихкод открыт для общего пользования.

Структура кода поддерживает кодирование максимального числа от 1000 до 2000 символов в одном коде при информационной плотности от 100 до 340 символов. Каждый код содержит стартовую и стоповую группы штрихов, увеличивающие высоту штрихкода.

Код PDF417 считывается при помощи специального лазерного или CCD-сканера. Для печати кода следует использовать принтеры с хорошим разрешением (термо-трансферные или лазерные).

Aztec Code

Aztec Code введен Энди Лонгэйсром (Andy Longacre) из фирмы Welch Allyn Inc. в 1995 году и открыт для общего использования. Aztec Code разработан для легкой печати и легкой расшифровки. Штрихкод представляет собой квадратную матрицу с концентрическими квадратами в центре, которые служат для определения позиции кода относительно сканера и мерной линейкой по краю кода. Наименьший штрихкод Aztec имеет площадь 15x15 модулей, наибольший - 151x151. Минимальный код Aztec кодирует 13 цифр или 12 букв, а максимальный - 3832 цифры или 3067 букв или 1914 байт данных. Символика не требует свободной зоны вокруг штрихкода. Существуют 32 градации размера кода с возможностью пользовательской установки защиты от ошибок по методу Рида-Соломона (Reed-Solomon) от 5% до 95% от области кода. Рекомендуемый уровень - 23% емкости кода плюс 3 кодовых слова.

Кодируются все 8-битовые значения. Величины 0 - 127 представляются в виде набора символов ASCII, значения 128-255 представляются как ISO 8859-1, Latin Alphabet No.1. Кроме данных можно закодировать два служебных символа: FNC1 для совместимости с некоторыми существующими приложениями и ECI (escape-последовательность) для стандартизованной кодировки сообщений.

Data Matrix QR кодов

Код Data Matrix от фирмы CiMatrix представляет собой двухмерный код, разработанный для размещения большого объема информации на ограниченной площади поверхности. Штрихкод Data Matrix может хранить от одного до 500 символов. Код может масштабироваться от 1-mil плотности до 14-дюймовой площади. Это означает, что код Data Matrix имеет теоретическую максимальную плотность 500 миллионов символов на дюйм! На практике плотность, конечно, ограничивается разрешающей способностью печатающих устройств и сканеров.

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

Существуют два основных набора символов. Они используют свернутое кодирование для коррекции ошибок, которое использовалось в первых версиях кода Datamatrix, эти версии описаны как ECC-000 .. ECC-140. Второй набор описан как ECC-200 и использует метод Рида-Соломона (Reed-Solomon) коррекции ошибок. Символы ECC-000 .. 140 всегда имеют нечетное количество модулей по каждой стороне квадрата. Символы ECC-200 всегда содержат четное число элементов по каждой из сторон. Максимальная емкость символа ECC-200 составляет 3116 цифр или 2335 букв в символе, состоящем из 144 модулей.

Наиболее популярными применениями для Datamatrix является маркировка небольших предметов, таких как электронные элементы и печатные платы электронных приборов. Эти приложения используют способность Datamatrix разместить примерно 50 символов в коде размером 3 мм и тот факт, что код может быть прочитан при 20-процентной контрастности печати.

Код читается ПЗС-камерой или ПЗС-сканером. Символы площадью от 1/8 дюйма до 7 дюйма может быть прочитан с расстояния от контакта до 36 дймов. Обычная скорость чтения составляет 5 кодов в секунду.

Сравнительные сравнительный характеристики 2d кода с другими вариантами шифрования информации.

Характеристики технологии

RFID

Штрих-код

Data Matrix

Необходимость в прямой видимости метки

Чтение даже скрытых меток

Чтение без прямой видимости невозможно

Объём памяти

От 10 до 10 000 байт

До 100 байт

До 2048 байт

Возможность перезаписи данных и многократного использования метки

Есть

Нет

Нет

Дальность регистрации

До 100 м

До 12 м (зависит от размера штрих-кода)

Нет данных

Одновременная идентификация нескольких объектов

До 200 меток в секунду

Невозможна

Зависит от считывателя

Устойчивость к воздействиям окружающей среды: механическому, температурному химическому, влаге

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

Зависит от материала, на который наносится

Срок жизни метки

Более 10 лет

До 20 лет и более (зависит от материала, на который наносится)

Возможность создания подделки

Невозможна

Подделать легко

Подделать возможно

Работа при повреждении метки

Невозможна

Затруднена

Возможна

Идентификация движущихся объектов

Да

Затруднена

Возможна

Стойкость к помехам в виде электромагнитных полей

Очень слабая

Есть

Есть

Идентификация металлических объектов

Возможна

Возможна

Возможна

Использование как стационарных, так и ручных терминалов для идентификации

Да

Да

Да

Возможность введения в тело человека или животного

Да

Затруднена

Затруднена

Габаритные характеристики

Средние и малые

Малые

Малые и сверхмалые

Стоимость


Сравнение 2d кодов.

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

В чем проблема приложения Сбербанк онлайн?

Первая проблема мобильного Сбербанка - это его размер. APK-файл с приложением весит ни много ни мало 41 Мбайт. Для сравнения: игра Smash Hit с отличной трехмерной графикой весит 80 Мбайт, игра Geometry Dash с кучей уровней и музыкальных треков - 48 Мбайт, а Google Chrome - те же 41 Мбайт. Заметь, что в данном случае мы сравниваем сложный комплексный софт с кли- ентским приложением, единственная задача которого - получать данные с сервера и отправлять их обратно в ответ на действия пользователя.

$ ls - lh * . apk

ОK, я согласен, что при текущих объемах встроенной памяти и скоростях интернета размер приложения не имеет особого значения, однако его вес также влияет и на количество оперативной памяти, потребляемой приложением. На разных устройствах с разным объемом RAM и разными настройками Low Memory Killer размер приложения в оперативке может варьироваться от 40 до 80 Мбайт. Опять же для сравнения: одно из самых прожорливых на оперативку приложений Google Chrome с одной открытой вкладкой потребляет ~90 Мбайт. А самое печальное, что в отличие от того же Chrome, который будет вытеснен из памяти через некоторое время после закрытия, Сбербанк останется в ней висеть в виде сервиса на все время работы смартфона. Если ты его убьешь - он перезапустится, если перезагрузишь смартфон - он запустится при загрузке, применишь таск-киллер - получишь пинг-понг под названием «Прощай, батарея»: таск-киллер убивает сервис, система его запускает, и так продолжается бесконечно.

За двенадцать часов Сбербанк разбудил смартфон 27 раз. Не мешай ему режим энергосбережения в Android 6.0, он делал бы это еще чаще

Ну ладно, висит и висит, может быть это такая оптимизация для ускорения
запуска или еще что, на современных смартфонах с тремя гигами памяти 80 Мбайт - это ерунда. Но нет же, сервис не просто висит в памяти, он регулярно будит смартфон, чтобы обновить информацию о местоположении устройства и выполнить какие-то другие свои дела. Еще раз: приложение, которым ты пользуешься раз в неделю, чтобы положить деньги на телефон или проверить баланс, постоянно висит в фоне и регулярно будит смартфон! Если тебе кажется это странным, тогда читай дальше, и ты узнаешь, что такое действительно «странно».

«БАНК ЗАБОТИТСЯ О ВАШЕЙ ФИНАНСОВОЙ БЕЗОПАСНОСТИ»

Именно такой ответ я получил от @ sberbank в твиттере, когда показал им приведенный ниже скриншот. Что это такое? Это сообщение встроенного в Сбербанк антивируса Касперского. Да, дорогой читатель, Сбербанк не только висит в фоне и постоянно будит смартфон, он еще и просыпается каждый раз, когда ты устанавливаешь новое приложение, а еще у него есть определенный распорядок проверки. Ты сидишь, читаешь книжку - и вдруг просыпается Сбербанк и начинает сканировать систему. Как это влияет на батарейку, я думаю, пояснять не надо.

Самая же парадоксальная черта Сбербанка в том, что, обвиняя другие приложения в возможности отправки СМС (как на приведенном скриншоте), сам Сбербанк может не только их отправлять, но и читать и даже изменять. Также он умеет читать контакты, делать снимки, управлять Bluetooth, звонить, изменять настройки смартфона, настройки Wi-Fi, узнавать местоположение, убивать фоновые процессы, читать и изменять историю браузера, изменять настройки APN, следить за запущенными приложениями, отслеживать установку и удаление приложений, читать и писать логи звонков.

Это только часть полномочий, которые запрашивает приложение сбербанк онлайн

Недурно, не правда ли? Не каждый троян обладает таким внушительным списком полномочий. И не надо говорить, что все это нужно антивирусу, - мне трудно придумать, зачем ему может понадобиться возможность звонить, снимать, управлять Wi-Fi или читать логи звонков. О списках контактов я не заикаюсь, Сбербанк использует доступ к ним, чтобы совершать быстрые переводы денег. Ты же не против, чтобы твоя книга контактов сливалась в Сбербанк, не так ли?

ЧТО ДЕЛАТЬ?

Сбербанк не единственное приложение, ставшее жертвой стремления запихать в приложение все, что только можно. В маркете таких огромное количество, и методики «борьбы» с ними почти всегда одинаковы. Первое, что необходимо сделать, - это отозвать у приложения полномочия. Если у тебя стоит Android 6.0, то сделать это можно, открыв «Настройки Приложения Сбербанк» и отключив в меню «Разрешения» все, кроме «Память». При следующем запуске приложение вновь запросит разрешения, и их надо отклонить.

Если нет Android 6.0, но есть CyanogenMod, то же самое можно сделать в меню «Настройки — Конфиденциальность — Защищенный режим — Сбербанк» (правда, в этом случае приложение может падать). Если нет ни Android 6.0, ни CyanogenMod, но есть Greenify . Устанавливаем приложение, соглашаемся предоставить ему права root, нажимаем кнопку + в тулбаре и видим список будящих смартфон приложений. Наверняка Сбербанк окажется где-то в начале. Тапаем по нему и нажимаем круглую кнопку внизу экрана. Теперь приложение будет заморожено сразу после выключения экрана и уже не запустится самостоятельно.

ВМЕСТО ВЫВОДОВ

На самом деле я, конечно же, понимаю, откуда в клиенте Сбербанка взялась подобная функциональность. Как ни крути, а проще встроить в приложение антивирус, чем разбираться с тысячами пользователей, у которых увели деньги. Да и многие юзеры любят гиперфункциональные приложения, которые умеют варить кофе. Тот же ES File Explorer очень популярен, несмотря на просто фантастическую перегруженность всевозможными функциями. Вот только в качестве аргумента в разгоревшемся споре «приложения vs боты» я все чаще слышу слова: «Боты простые, быстрые и не требуют установки, а современные приложения громоздкие и садят батарейку». На этом все, удачи.