Приблизительно 17 января группа, называющая себя «Исследовательская группа Che Burashka» опубликовала исследование уязвимости, позволяющее взлом систем продаж билетов на московские электрички. Разработчиком систем является компания Микротех.

Какого-либо опровержения от Микротех на данный момент нет.

Автор не имеет никакого отношения к группе «Che Burahska» и не несёт ответственности за деятельность этой группы. Ниже приводится текст, свободно распространяемый данной группой на различных ресурсах в интернет, и описание уязвимости (по мнению группы — неполное), сведённые вместе и отредактированные для удобочитаемости. Данный текст предлагается читателям Хабра для ознакомления и обсуждения.

1. Введение от авторов (именно такой текст распространялся вместе с описанием уязвимости)


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

Мы выступаем в защиту независимых исследователей безопасности Дениса Казьмина и Юрия Путина, которые были осуждены к немалым срокам заключения только за то, что пытались продемонстрировать уязвимость данных в публичном сервисе.

Подробности этой истории Вы можете прочесть по ссылкам ниже:

Pikabu
TJournal
Lenta

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

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

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

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

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

К сожалению, и официальные власти и журналисты не всегда вникают в тонкости происходящего.

Можно вспомнить, в качестве негативного примера, историю с TroykaDumper.

Игорь Шевцов, опубликовавший детали взлома московской карты «Тройка», по нашему мнению, действовал как этичный хакер. Ему, конечно, стоило сначала связаться с владельцами системы. Но сами владельцы потом действовали конструктивно и устранили неисправность, обратившись за помощью к Игорю. Опубликованная им версия программы до сих пор доступна на github, но совершенно бесполезна для целей бесплатных поездок.

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

В результате информация об исследовании Шевцова была удалена с Хабра, а его профиль заблокирован. Владельцы платформы перестраховались, блокировки профиля от них никто не требовал, но они не захотели выдуманных ими самими проблем с властями.

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

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

Тем более что в отличие от ситуацией с Тройкой, Микротех явно не собирается исправлять свои ошибки по собственной инициативе.

Мы решили выложить текст статьи, первоначально подготовленный для Хабр в свободный доступ на других ресурсах и распространить ссылку на него в социальных сетях.

Мы призываем компанию Микротех признать уязвимости в своих системах и самостоятельно предпринять меры для их исправления.

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

Технология взлома билетов на пригородные электрички намного проще, чем те проблемы, которые обнаружил Шевцов на картах Тройка. Для того, чтобы печатать работающие билетики, достаточно простой программы под Windows или Linux, лазерного принтера и ножниц.

Мы призываем суд пересмотреть дело Казьмина и Путина. Проблема не в том, что они сделали, а в том, что Микротех не желает признать небезопасность своих турникетов и своего софта. А убытки потерпят железнодорожные компании, ставшие их клиентами.

Вы не найдете в сети следов предшествующих деятельности группы «Che burashka».
Мы не хакеры, и это – одноразовый никнейм, который мы используем только для одного, конкретного проекта.

2. Описание уязвимости.


Исследование защищенности турникетов компании Микротех


Предыстория


Компания Микротех выпускает систему, обеспечивающую проход на перроны пригородных железных дорог, а так же системы распространения билетов.
Как написано на сайте компании — www.microteh.net все это называется
Автоматизированная система оплаты, контроля и учета проезда в пригородных электропоездах АСОКУПЭ.

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

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

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

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

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

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

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

Мы, один раз, общались по телефону с их начальством. Общение разочаровало. Нас просто не захотели слушать, хотя в тот момент мы даже не просили денег, а предлагали провести исследование бесплатно.

Реальными источниками информации оказались сами турникеты. Мы не очень понимаем, на какую покупательскую аудиторию рассчитывали те, кто продавал их на avito, но мы купили бывшие в употреблении аппараты и некоторое время пользовались ими. Они продавались вместе с кое-какой документацией, переданной нам на дискетке. Документация была не менее полезна, чем сами устройства. Потом все три купленных турникета пришлось отнести на помойку, так как они занимали половину комнаты.

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

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

Как устроена система распространения билетов


Микротех поставляет железнодорожникам рабочие места кассиров и софт для них.



Вот картинка с сайта производителя. На ней – системный блок, монитор и и периферийное оборудование. А так же специальный принтер для печати билетиков.

Так, как они выглядят по мысли дизайнеров Микротех.

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

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

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

Пока же просто отметим, что вся система от Микротех построена на том, что их устройства способны работать в автономном режиме. По всей видимости, для 1990го года, когда, по информации с сайта, была основана эта компания, и для более ранних времен, когда она была ведомственным КБ, это было и рационально и прогрессивно.

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

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

Так вот. В каждой конкретной кассе АСОКУПЭ в софте в конфигах указаны направление железной дороги, к которой приписана эта касса и уникальный номер кассы.

Разумеется, там есть и дополнительные настройки, но, самое главное – каждая касса, без обращения к централизованному серверу, способна сгенерировать валидный билетик.

Если быть точным – валидный штрих-код на билетике.

Информация может быть закодирована двумя способами.

Старый — Interleaved 2 of 5



Приведем описание:
Линейный код Interleaved 2 of 5 состоит из последовательности чередующихся черных и белых вертикальных полосок, начинающейся и заканчивающейся черными. В данном коде полоски двух видов: Широкие (логическая «1») и узкие (логический «0»). Interleaved 2 of 5 предполагает наличие стартового и стопового символов. Стартовый символ кодируется «0000», стоповый символ кодируется «100». Между этими двумя символами находится полезная информация.

Своё название код получил, исходя из того, что информация кодируется расположением двух широких полосок среди пяти. Исходя из этого, получаем, что таким блоком можно закодировать 10 различных значений, т.е. все цифры от 0 до 9. Interleaved (перемежающийся – англ.) он потому, что рассматриваются отдельно черные и отдельно белые полоски.
На нечетных позициях (считая слева направо) цифры изображаются штрихами, а на четных – промежутками (чередование). При кодировании данных с нечетным количеством знаков впереди записывается «0».


В штрих-коде Interleaved 2 of 5 для повышения надежности считывания рекомендуется использовать контрольный знак. Контрольный знак располагается непосредственно после информационных знаков перед знаком «Стоп». Если добавление контрольного знака делает количество знаков в кодируемых данных нечетным, впереди кодовой строки непосредственно после знака «Старт» добавляется «0».

И новый, двумерный Aztec code:



Билеты с ним стали появляться с конца 2015го года. Пока что неясно, планируется ли полная замена или это просто эксперимент для совместимости с мобильным приложением от Микротех.

Но это уже немного лучше. Interleaved 2 из 5, похоже, разработчики системы нашли случайным образом, Aztec поддерживают многие железнодорожные компании по всему миру.

Как бы то ни было, состав информации, кодируемой обоими способами одинаков.

А что есть ещё?


Есть, вот например, такое устройство



Опять таки картинка и текст с сайта Микротеха:
ПКТФ — Переносной кассовый терминал, устройство выполненное на базе специализированных микропроцессорных решений. Соответствует требованиям 54ФЗ. Включает в себя модули печати, чтения штрих-кодов и БСК, имеет отсек для установки ФН. Обеспечивает печать и проверку проездных документов. Может работать как автономно, так и режиме обмена данными с внешней системой.

Терминал является самостоятельной разработкой Микротех, но собран, разумеется, из компонент сторонних производителей. Мы купили, в разное время, две штуки.

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

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

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

Подробнее – ниже.

Как устроен контроль прохода на платформу


Контроль за проходом на платформу устроен достаточно банально.


В турникетах смонтированы два считывателя. Один — сканер для билетов со штрихкодом, а второй – бесконтактный считыватель для всякого рода бесконтактных билетов, работающий по протоколу Mifare. Сканеры поставляются от сторонних производителей (разные), а модуль считывателя Микротех разработал, кажется, самостоятельно.

Механику турникета и считыватели объединяет блок с таинственной аббревиатурой УКПД. Он же – модуль управления турникетом и устройствами ввода данных.

Весь «интеллект» системы сосредоточен в контроллере, входящем в состав УКПД.
Внешнее управление им осуществляется путем подключения по интерфейсу RS-485.

Когда пассажир подносит билет к сканеру, проверка штрихкода сводится, по сути дела, к двум достаточно простым действиям:

  1. УКПД проверяет валидность данных, закодированных в штрих-коде. Проверяются соответствие данных о конечной и начальной маршрутным зонам точке, в которой установлен турникет, дату поездки, некая контрольная информация… и всё.
  2. УКПД проверяет отсутствие билета в стоп-листе.
    Здесь нужно сказать, что стоп-лист загружается не централизованно, он скачивается на станциях через внутреннюю служебную. сеть и дальше его загружают в каждую группу турникетов отдельно, через концентратор, к которому турникеты подключены по интерфейсу RS-485.

Сам стоп-лист выглядит примерно вот так, ничего сложного:

2222333390;20/10/2015;40
2118110622;20/10/2015;40
668690750;20/10/2015;40
84545402;20/10/2015;40
187342702;20/10/2015;40
187345542;20/10/2015;40
87534582;20/10/2015;40
2715435894;20/10/2015;40
354345614;20/10/2015;17
2710234378;20/10/2015;40
1311398318;20/10/2015;40
1242467662;20/10/2015;40
1236551358;20/10/2015;40
1576567678;20/10/2015;50


Первое поле в строке – номер билета, второе – дата начала блокировки, последнее – код причины блокировки.

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

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

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

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



Мы извлекли эту таблицу с той самой волшебной дискетки и долго думали, что такое «выезд владельца» и кто сообщает железнодорожникам об аресте владельца карты.

Ничего не решили и продолжили заниматься своим исследованием.

Как устроен бумажный билет


Информации об алгоритме формирования штрих кодов в документации Микротех не приводится. Мы сумели самостоятельно восстановить эти данные, но до конца не уверены, что они полны.

Вот этот список:

1) Станция отправления (код станций, обрезанный код системы Экспресс)

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

3) Цифра неизвестного назначения. Мы думаем, что это – тип поезда. На сфотографированном билете показан тип поезда «пассажирский».

4) Цифра неизвестного назначения

5) Номер ККТ, сгенерировавшего билет (5 цифр)

6) ID билета (4 цифры) ID билета не уникальны, и, кажется, генерируются подряд.
Обратите внимание – мощная экономия. Вместо 10 цифр номера электронного билета используются всего 4. Целых 6 цифр оказались ненужными!

7) Дата выпуска билета

8), 9) – Ещё две таинственные цифры

10) Контрольная информация

Как видите, тут все довольно просто и написать программу, которая бы генерировала необходимый штрихкод не представляет труда.

Кроме работы с картами Тройка, оборудование Микротех умеет еще какой-то свой собственный формат электронных карт, но мы не стали с ним разбираться – зачем, если есть штрихкоды?

Как устроен турникет, а точнее – блок УКПД


Упомянутый выше блок управления турникетом УКПД, так же как и бесконтактный считыватель собраны из стандартнейших компонент известных производителей. Все ноу-хау компании Микротех – прошивка контроллеров, написанная, кажется, на ассемблере. Этот маленький кусочек кода и составляет всю тайну технологии железнодорожного монополиста.

У нас встал вопрос о том, нужно ли сохранять, при наличии той же Тройки и аналогичного областного билета все эти legacy решения.

Конечно, бумажные билеты печатать проще, а деревьев не жалко.

Как блокируются неправильные билеты и обрабатываются правильные


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

Но сведения о плохом билете никуда и никогда не передаются. Ну и в самом деле – сохранять сведения о номере поддельного билета, если этот номер – всего из 4 цифр не имеет никакого смысла.

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

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

Как турникет определяет – хороший или плохой билет?

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

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

Сам ключ можно было бы пытаться вычислить по технологии «радужных таблиц» – для этого достаточно проанализировать штрихкоды примерно с 10-20 валидных билетов и потом проделать не такие уж сложные тесты.

Для этого вычисления не потребовалось бы какой-то запредельной мощности оборудования, тем более, что онлайн-сервисов для доступа к «радужным таблицам» в интернете не один и не два.

Мы были очень наивны.

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

Абсолютно все МКТФ и ПКТФ, которые мы тестировали, умеют проверять валидность любых билетов. Это означает, секрет, на основе которого формируется контрольная информация в штрихкоде – всегда и везде одинаков!

Ну почти.

На самом деле в нем есть «очень-очень серьезная» защита. В виде переменной части, которую раз в сутки централизованно загружают в кассовые МКТФ и переносные ПКТФ.

ПКТФ «программируются» с компьютера, причем каждый ПКТФ приходится подключать спецкабелем. Унылое занятие.

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

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

А можно ездить в одну сторону, на работу – за деньги, а в обратную, домой – бесплатно.

По дороге к дому ведь и уставшему веселее.

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

Почему все это плохо работает и как все это сломается окончательно


Разумеется, эта зашита как-то работает. Пока еще.

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



Сделать можно, об этом мы напишем далее.

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

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

Авторы упомянутых программ, все как один, действительно поленились делать список подмосковных станций. У нас он уже есть.

Насколько безопасно использование самостоятельно напечатанного билетика?

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

С контролерами внутри электрички, конечно, такой билет использовать нельзя.

Но добрая компания Микротех помогла нам и здесь.

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

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

Выпущенное компанией Микротех приложение Пригородный билет во многом замечательно.



Вот, например, получить ? негативных отзывов от пользователей это для такого массового приложения — суметь надо было.

Наше собственное замечание. Кажется, разработчики еще ничего не знают про Android 7.

Но для нас главное – то, что оно есть и работает.



Эту картинку нам и любому желающему совсем не сложно воспроизвести в своём приложении.

Чудесно, неправда ли? Мы подготовились заранее и написали прототип на Java.

Под iPhone мы его, к сожалению, не сделали. Но, впрочем, и чудо-программисты из Микротеха iOS уже два года как не могут осилить, так что мы, всего лишь, сохраняем заданную планку.

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

Что можно было бы сделать разработчикам системы билетов


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

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

Что мы хотим и что мы сделаем


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

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

И реализовала этот план на практике.

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

  • полное описание алгоритма формирования одномерного и двумерного штрихкодов на билете
  • исходные текст программы, предназначенной для генерации и печати почти настоящих проездных билетов, а так же для опознания текущего контрольного числа путем чтения штрихкода из скана кем-то выкинутого билета. Программа написана на C# и одинаково хорошо работает под всеми версиями Windows, начиная с Windows 7, а так же под Linux.
  • исходный текст Java-приложения для платформы Android версий 5,6,7. Это приложение генерирует валидный двумерный штрихкод Aztec, имитируя внешний вид программы Пригородный билет, сделанной компанией Микротех. Этот вариант нашей программы умеет самостоятельно сфотографировать выкинутый кем-то ненужный билет, расшифровать его штрихкод и извлечь из него контрольное число.

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

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

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

Вот, например, программы компании Микротех вроде бы должны опознавать фальшивые билеты. А они не делают этого.

P.S. Об этом исследовании


Ни один пассажир не пострадал.

Так же не пострадал ни один контролер и ни один турникет из числа установленных на железных дорогах.

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

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

Объявленное нами программное обеспечение не является вредоносным.

Это студенческий исследовательский проект.

Мы не использовали нелицензионного ПО.

Мы не делали самостоятельных снимков, а взяли все иллюстрации из сети Интернет. Искать нас по метаданным из картинок совершенно бесполезно.

Мы полностью избавились от всего использовавшегося в процессе исследования оборудования.

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

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

Пожалуйста, будьте бдительны.

Ваши:
* Bom
* Gerda
* PHuntik

3. Послесловие от автора публикации, навеянное активным комментированием


Ну я также могу рассказать историю из своей жизни.

Это трамвайчик из пригорода Манчестера в сам Манчестер, это который в Великобритании.
Билет на трамвайчик покупается в таких себе автоматизированных киосках, которые кушают и карты, и наличку, и — это особенность Великобритании! — смесь карты с наличкой, например вот есть у меня два фунта, а шестьдесят три пенса я хочу снять с карты — нет проблем! ну да, нашим странам такое не понять…

Ну так вот, система цен очень зависит от количества поездок, от станций «откуда-куда» от дат, от времени поездок (в час пик дороже) и кучи всего. Например, смешно, но дорога в одну сторону (это примерно 20 минут езды) стоит ?4.30, а вот если туда и обратно — ?4.50 если в один день и ?6.50 — если в разные.
Билетик сразу печатается на картоночке, выглядит он так:

Тут цена другая, потому что станции другие (ну погулял я немного!), но суть та же.

Никакой там защиты или ещё чего-то.

Так вот, я прокатался туда обратно почти две недели — контроллёров я не видел. Но как мне сказали, они есть! И вот когда они берут за задницу — штрафы такие, что лучше зайцем не ездить. Невыгодно.

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

Тут мне также пишут про СССР. Ну в те времена я был помоложе, хотя и не совсем маленький, но хорошо помню, что родители говорили, что билетик надо компостировать не потому что контроллёры, а потому что ПОЗОР. Управление шло не столько через штрафы, сколько через идеологию и общественное мнение — приятно, когда все на работе узнают, что ты безбилетник? А организовать могли!

Да, и кстати в СССР могли оштрафовать за переход в неположенном месте — ГАИ работало не только на водителях.

Так что тут тоже не надо сравнивать.

Я полностью согласен со всеми замечаниями, что «устранение требует больше денег, чем эксплуатация» и т.д., но лично я понимаю студентов-ребят, которые нашли некую уязвимость и попытались сделать систему лучше. Они ещё не стали циниками «с богатым опытом» — просто хотели как лучше. А получилось, как всегда — система их просто выплюнула — и повезло, что не пережевала. Хотя то ли ещё будет.

Возможно, в этой истории что-то не досказано, что-то ребята повернули в свою сторону, именно по этой причине и я публикую её, как есть, а судить — уже вам, читателям. И именно по этой причине голосование я сделал чёткое: «да — нет», без градаций. И я очень хотел бы, чтобы те, кто не согласны, отписались в комментариях. Потому что такое молчаливое неодобрение неконструктивно.

Комментарии (183)


  1. sfocusov
    22.01.2018 18:00

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


    1. StjarnornasFred
      23.01.2018 22:01

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

      Кроме того, даже если условный хакер Вася сочтёт это вполне реальным — он, вероятно, окажется слишком ленивым, чтобы заморачиваться над поиском того самого ежедневного числа. Если бы его не было вовсе — действительно, тогда трудозатраты были бы околонулевыми. Тот самый случай, когда достаточно совсем минимального препятствия, чтобы отсечь большинство потенциальных нарушителей.

      А как насчёт того, чтобы перелезть через забор или обойти платформу с торца? Очень многие именно так и делают. И таких гораздо больше, чем хакеров, более того, даже хакер Вася охотнее полез бы «партизанской тропой», чем морочил себе голову подделкой билетов. С этим почти не борются: заровняли торец платформы и поставили стенку — на следующий день кто-то принёс и прислонил полено, как ступеньку. Тем не менее, большинство всё же покупает билет: даже минимальное препятствие в виде легко преодолимого забора останавливает зайцев, за редким исключением.


      1. SoNick_RND
        24.01.2018 17:14

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


        1. StjarnornasFred
          24.01.2018 21:22

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


          1. leshakk
            25.01.2018 14:34

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


          1. SoNick_RND
            26.01.2018 11:49

            Чтобы продавать яблоки, надо покупать яблоки. А чтобы продавать поддельные билеты, надо подобрать у мусорки билет.


  1. entze
    22.01.2018 18:21

    С прошлой недели начали внедрять новую систему. Новые билеты с штрихкодами, новые интерфейсы терминалов и рабочих мест кассиров. Интерфейсы бесчеловечны, постоянно дикие очереди к терминалам.


    1. vconst
      22.01.2018 18:28

      Интерфейсы бесчеловечны, постоянно дикие очереди
      На электричку уже можно купить несколько одинаковых билетов, или только по одному?


      1. entze
        22.01.2018 18:37

        Можно несколько, но при оплате с карты придётся карту прикладывать по числу билетов.

        Вместо кнопок с названиями станций теперь список на несколько позиций, например. Ну и в целом больше кликов, дольше отклик. «Большую Москву» через терминал не купить.


        1. vconst
          22.01.2018 18:38

          но при оплате с карты придётся карту прикладывать по числу билетов
          Ну почему у нас все через…


          1. ColIbrus
            23.01.2018 16:22

            Потому что каждый билет Вы можете записать на отдельную карту, вот система и спрашивает перед каждой продажей Печатать или на карту?

            Я тоже думал что «через ...», а вот нет, всё правильно, хотя и не очень удобно.


        1. sw0rl0k
          22.01.2018 20:23

          Не знаю как сейчас, а недели две назад, на Ярославском вокзале, Большую Москву можно было купить только в 4-х кассах, из которых оплатить банковской картой можно было только в 2-х, из которых в вечерний час пик работала только одна.


          1. jee
            23.01.2018 14:34

            На Киевском та же история. Плюс она ещё и не сразу работает а через 3 часа, день или два дня — закономерности я не понял


          1. sanchosd
            23.01.2018 14:38

            С оплатой картой вообще дурная ситуация.
            Каждый день, в одной и той-же кассе, терминал то работает, то не работает.
            То «в соседнюю кассу подойдите», при том, что вчера работал в этой кассе…


        1. sanchosd
          23.01.2018 14:30
          +1

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

          Ужаснейший интерфейс.
          Вероятно на ПК, кликая мышкой, он работает нормально, но на бронированном тачскрине…


        1. rvbglas
          24.01.2018 17:13

          «БМ» вроде доступна, но только если станцией назначения выбрать вокзал текущего направления. Но в общем да, интерфейс вызывает стойкое желание взять и унасекомить.


    1. barnes
      23.01.2018 12:41

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


      1. Kobalt_x
        23.01.2018 14:48

        Труникеты на данный момент глючат на абонементы вида большая Москва которые были приобретены до обновления


        1. barnes
          23.01.2018 14:57

          У меня простая «транспортная карта». Ниже все верно описали. Один и тот же турникет то пропускает, то нет или вообще все не пропускают, было и такое.


    1. teecat
      23.01.2018 13:00

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


    1. Kobalt_x
      23.01.2018 14:47
      +1

      Начали внедрять ещё в декабре попутно отрубив возможность записи на социализма различных мастей-- теперь только печать льготных билетов работала. При этом при миграции были баги — три недели неоплаченные социалка пропускалась в автотранспорте и РЖД


      1. cop12
        24.01.2018 12:03

        В ближайшем пригороде взять билет «на завтра» по социальной карте пока нельзя.
        Offtopic — «радует» услуга за 200 рублей взять бесплатный билет на выход по соц.карте.


    1. botyaslonim
      25.01.2018 17:21

      Да, интерфейсик адок стал. Кто это утвердил, руки ему выдернуть. UX-экспертиза сколько может стоить, ну тыщ 20. Ну 50, если прям с фонарём в задницу залезть…


  1. hardex
    22.01.2018 19:45
    +2

    Хабр — торт


    1. FlamyXD
      24.01.2018 12:02
      +1

      Ух, ну как сказать… Почитайте про Хабр на Лурке.


  1. Konachan700
    22.01.2018 20:39
    -1

    Напомнило рассказ «хакер в столовой».
    Число тех, кто будет морочить голову и печатать билетики, исчезающе мало, потери от них просто статистически незначимы. Модернизация же всех турникетов — десятки и сотни миллионов рублей, а значит, подорожание билетов. Просто нет экономического смысла закрывать эту лазейку. Причем с обоих сторон: зайцу проще обойти платформу, прыгнуть или пройти за кем-нибудь, чем печатать билет — за безбилетный проезд де-факто заставят купить билет и заплатить 150 рублей штрафных сверху, за поддельный билет могут и уголовку навесить. Тем более, что у билетов с обратной стороны картинка, которую тоже надо напечатать…
    Если же кто-то поставит печать на поток — его быстро поймают по статье «подделка документов», РЖД своего не упустит точно.


    1. romxx
      22.01.2018 20:46
      +1

      Знаете, уверен, в 70-е в AT&T тоже думали, что ну какой идиот догадается свистеть в трубку для переключения на межгород, а те немногие, что догадаются — ну и плевать, это единицы. А потом появился BlueBox.


      1. Konachan700
        22.01.2018 21:05

        Там другая ситуация была. В данном случае несанкционированная массовая печать билетов для продажи — довольно серьезное преступление. Навар от сего действа мизерный, риск высокий, требует целой ОПГ для хоть какого-то профита (иначе как продавать?). В данном конкретном случае нет ни малейшего смысла делать левые билеты на поток.
        Печать дома, в частном порядке, блокирует тот факт, что билеты сейчас двусторонние, с цветной картинкой сзади, да еще на термобумаге — ее сразу на ощупь видно. Так морочить голову ради 200-300 рублей никто, кроме редких гиков-пентестеров не будет. Печать одностороннего билета означает убегание от контролера по элетричке, как и в случае безбилетного проезда — так зачем печатать тогда, если можно прозапас набрать 12-рублевых билетов и ездить зайцем по ним? В час-пик вообще можно проходить за кем-то. Добавим сюда риски со стороны закона за подделку билетов — и желающих совсем не осталось.
        Тут ситуация как с домофонами — не допустить проходного двора минимальной ценой.


        1. romxx
          22.01.2018 21:12
          +1

          Ну написано же как это решается. Проход по напечатанному штрих-коду. Контролеру — «билет» в имитации андроид-приложения ППК.


          1. sim2q
            22.01.2018 23:41

            С андроидом уже повеселее будет ловить по предъявилетлю :) Konachan700 по мне кажется верно написал. Поменять до определённого момента сложнее чем забить.
            А сейчас видится, что Чебурашки сдвинули равновесие, да ещё и в ультимативной форме: «Мы требуем....», которую так «не любит» государство какие бы благие намерения за этим не стояли. Но делать что то надо:)


            1. krundetz
              23.01.2018 14:03
              +1

              А сейчас видится, что Чебурашки сдвинули равновесие, да ещё и в ультимативной форме

              А есть другие варианты, если система действует по принципу «нет человека, нет проблемы»?

              На основе тех данных, которые у нас есть ar2016.rzd.ru/ru/financial-results/government-support, государство субсидировало убытки от пригородных перевозок на 32 млрд рублей (если есть более свежие данные — приводите), мы можем утверждать только то, что пригородные перевозки убыточны. А вот насколько целесообразно устранять уязвимость для сокращения этих убытков, нет.

              Так же мы не можем оценить количество людей, которые воспользуются уязвимостью, и выгодность данных действий для каждого конкретного индивида. Я лично знаю людей, для которых повышение стоимости проезда на 6 рублей — это чувствительный удар по бюджету, а вы?

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


              1. Ndochp
                23.01.2018 17:58
                +1

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

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


                1. Kwisatz
                  24.01.2018 00:41

                  Уже давно так и есть. Билеты на многих станциях до сих пор никак не купить зато контролеров орды просто.

                  А знали бы вы как воруют на их складах, ое, там просто ад и ужас


              1. sim2q
                23.01.2018 20:52

                Да, тут много тонкостей, не силён в управлении, подумал лишь, на какой пункт уж точно среагируют и врядли адекватно. По уму конечно надо сотрудничать, пусть там даже под NDA и всё такое. Но какой механизм гарантий защиты аналитика в данной ситуации и в нашей стране — я не знаю увы. Анонимно и оплата криптой? Так вспомним, что даже спецслужбы во всех фильмах берут расписки за бабло:)


        1. mickvav
          23.01.2018 12:08
          +1

          Левое приложение и реклама (или майнинг) в нём — вполне себе бизнес-модель. Продажи поддельных билетов нет, а профит есть.


    1. erlyvideo
      23.01.2018 09:20

      во-во. Проблема то выденного яйца не стоит, а они тут требуют.

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


  1. Cheater
    22.01.2018 21:02

    Мы проходим через турникеты Микротех каждый раз, когда ездим к себе в родной институт и обратно, в Москву.

    Совсем не палятся ребята. Привет Долгопрудному.:)


    1. Oxyd
      22.01.2018 22:57

      Да, как-то не подумали, хотя это может быть и уткой.


    1. EvilBeaver
      23.01.2018 06:59

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


      1. PQR
        23.01.2018 08:12

        Они ещё на Авито турникеты покупали


        1. asaks
          23.01.2018 10:09

          И звонили руководству Микротеха предлагали исследование бесплатно


    1. dmpalets70
      23.01.2018 16:56
      +1

      а вы не думали, что это как раз задуманная «оговорка»?


  1. AlexGluck
    22.01.2018 22:40

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


    1. Demon_i
      23.01.2018 13:23
      -1

      Но они же итак заливают контрольный код каждый день (на мобильные терминалы ручками). Вопрос только в том — поддерживает ли по/железо касс и турникетов удалённое обновление всего по. Но, я думаю, они же не совсем идиоты и предусмотрели такую возможность. Но я могу слишком хорошо думать о человеках.


  1. anmiles
    22.01.2018 22:47

    У меня простой вопрос — а зачем?
    Разорить железнодорожников на шесть поездок в день? Заставить их потратить миллионы на апгрейд? Попытаться заставить других зайцев использовать эту уязвимость вместо других, намного более привычных им способов? Попытаться заставить не-зайцев использовать эту уязвимость и стать зайцами?
    У меня закончились варианты в поисках такого, на который можно было бы ответить «да» :)

    P. S. Тут должна быть ссылка на известную историю про хакера и солонки.


    1. andrikeev
      23.01.2018 14:36
      +3

      Компания поставляет незащищённое оборудование, это объективно плохо с любой стороны. История про хакера в столовой, конечно, абсурдна, потому что это юмор, но в каждой шутке есть доля шутки.
      Если смотреть сквозь пальцы в одном случае, потому, что это «никому не приносит вреда», то каждый начнёт думать что и в его случае «ничего не случится».
      Вспомним недавний случай со Штрих-М, у которых в прошивке оказалась закладка, которую никто не заметил, пока 30% розницы не закрылись на день.

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


    1. kinazarov
      23.01.2018 16:24
      +3

      Простой ответ: для того чтобы не фабриковали дела и не сажали специалистов по безопасности. Раз уж допустили существование подобной уязвимой инфраструктуры — пусть несут за свои допущения ответственность. Самостоятельно.
      А то сегодня дырявые полурабочие турникеты по принципу «и так сойдёт» а завтра с таким же принципом начнут разваливаться действительно важные части инфраструктуры. Мосты, жилые дома (привет, реноваторы), насосные и бойлерные (привет системе гостендеров), электростанции (ещё раз ей же), в том числе атомные, оборонные объекты и прочая и прочая.

      Этот принцип «и так сойдёт» — недопустим.
      И если подделка билетов «всего лишь» подрывает инфраструктуру перевозок, то этот же принцип в других областях означает человеческие жизни.

      P. S. Тут должна быть ссылка для прочищения мозгов конформистам, которые не приемлют оспаривания авторитетов. Например цитата «я просто выполнял приказ».


      1. CherryPah
        23.01.2018 17:20
        -1

        А то сегодня дырявые полурабочие турникеты по принципу «и так сойдёт» а завтра электростанции, в том числе атомные, оборонные объекты и прочая и прочая.

        Я надеюсь вы понимаете что цена разработки АЭС и цена турникета различаются на порядок. Вот именно в этих цифрах и заключается качество кода и количество пентестов.


        1. kinazarov
          23.01.2018 18:11
          +1

          Я понимаю и в свою очередь надеюсь, что и вы понимаете суть принципа «и так сойдёт» и особенности его реализации в нынешних реалиях. Если из-за экономии в 2 доллара на покупке приличного датчика в котельной умирает оборудования на 3-4 тысячи, это может, знаете ли, насторожить любого инженера.
          И если неуклонно подобным принципом руководствоваться, то цена разработки и качество кода имеют не столь весомое влияние на результат как хотелось бы. Я надеюсь что вы это осознаёте.
          Также хотелось бы напомнить о Чернобыле, Фукусиме и Бхопале.


        1. Luft_Gans
          24.01.2018 16:23

          Видеозапись вскрытия чёрного ящика российского истребителя за миллионы рублей:
          Они все конанные, ?!


    1. AlexanderAmelkin
      24.01.2018 17:46

      Забота о чужой безопасности — вообще концепция многим непонятная.

      А почему эта безопасность важна для РЖД — да потому, что завтра появится какой-нибудь «предприниматель», который сделает приложение, рисующее билетики вовсе даже не бесплатно, а просто «со скидкой». И при должной социальной инженерии большинство пользователей этого приложения даже не поймёт, что платит деньги не перевозчику, а не пойми кому. Возможно, существуют и иные сценарии, сильно не выгодные для РЖД.

      В любом случае, на мой взгляд, по мотивам этой информации сильнее всех должно возбудиться именно РЖД и вздрючить этот Микротех. Да только вот, насколько я знаю РЖД, не будут они возбуждаться…


      1. firk
        24.01.2018 22:31

        Только ИТ-маньяки забыли, что безопасность тут обеспечивается не криптографией, а правоохранительными органами и ФСИН. Вся эта цифровая техника — это инструмент и не более того. Если кто-то начинает использовать инструмент для преступной деятельности — его сажают.


  1. Evgeny42
    22.01.2018 23:22

    Переделайте опрос, пожалуйста.
    «Да, абсолютно правы» не очень то для меня подходит, абсолютно правым быть трудно, особенно когда ты не white hat. Хотя бы убрать абсолютно, или добавить несколько градаций.


    1. gjf Автор
      22.01.2018 23:25

      Вы знаете, я за двоичную систему исчисления. А то у нас получится 50 оттенков серого с этими градациями :-)
      Вы же вольны не голосовать или просто выразить свою точку зрения здесь, в комментариях.


      1. Evgeny42
        22.01.2018 23:44

        Тогда варианты не корректные. Либо делать варианты «Правильно», «Не правильно», убирая уточнение на граничный ответ (абсолютно), либо добавлять градации.


      1. Demon_i
        23.01.2018 13:28
        -2

        Вы меня простите, но ещё с 7 класса школы информатик лупил указкой за систему исчисления. А уж в институте-то. Система СЧИСЛЕНИЯ. Это все таки Хабр. Пишите Вы, а стыдно мне.


        1. gjf Автор
          23.01.2018 13:32
          +2

          Суровая у Вас школа была… Розгами хоть не секли? ;)
          Но замечание принимается, спасибо.
          P.S. «Всё-таки» — через дефис пишется. Мне тоже немножко стыдно сейчас стало ;-)
          Quis custodiet ipsos custodes.


        1. vvzvlad
          23.01.2018 20:54

          А преподаватель русского за заглавную букву в «Вы» не бил?


          1. MacIn
            23.01.2018 23:46

            За «пишите» тоже было б неплохо.


          1. Demon_i
            24.01.2018 12:23

            Не. Не бил.

            Местоимения Вы и Ваш пишутся с прописной (большой) буквы как форма вежливого обращения к одному лицу. При обращении к нескольким лицам следует писать вы и ваш со строчной буквы. Написание Вы, Ваш с прописной при обращении к нескольким лицам – ошибка.


            P.S. «Всё-таки» — через дефис пишется. Мне тоже немножко стыдно сейчас стало ;-)
            Quis custodiet ipsos custodes.


            За «пишите» тоже было б неплохо.
            Полностью согласен, и не отрицаю того, что писать грамотно надо. Вопрос был не в грамматике, а в использовании терминологии на Хабре.

            За «пишите» тоже было б неплохо.
            за «б» тоже было бы не плохо.


            1. vvzvlad
              24.01.2018 13:02
              -1

              1. gjf Автор
                24.01.2018 13:16
                -1

                Мне вот забавно, сначала вспомнили учителя информатики, потом вспомнили учителей русского языка, перешли на Великого Лингвиста Артемия Лебедева…

                По теме поста сказать больше нечего? Ну так и промолчите, чего уж там.


                1. vvzvlad
                  24.01.2018 13:17
                  -2

                  Письмо Розенталя для вас не авторитет, я правильно понимаю?


            1. MacIn
              24.01.2018 18:41

              за «б» тоже было бы не плохо.

              «Б» — это разговорная форма частицы, вполне допустимая. Просторечие, не более.


  1. ammonia2
    22.01.2018 23:26

    В результате информация об исследовании Шевцова была удалена с Хабра, а его профиль заблокирован. Владельцы платформы перестраховались, блокировки профиля от них никто не требовал, но они не захотели выдуманных ими самими проблем с властями.

    Статья была удалена из-за того, что она была признана незаконной на территории Российской Федерации на основании решения суда (Ишимский городской суд — Тюменская область) от 31.01.2017 № 2-284/2017, уведомление о чем прислал Роскомнадзор.

    Описание запрещенной информации: Размещена информация о возможности подделки билетов на проезд, признанная запрещенной на территории РФ.

    file.quad.moe/212331_notification_on.rtf

    Учетная запись была удалена из-за того, что администрации Хабрахабра не понравилась почта на сервисе discard.email, причем настолько не понравилась, что даже не стали присылать уведомление, либо, прислав его, зашли в ящик и удалили его до того, как я смог его прочесть. Хотя казалось бы, что в этом такого.

    vc.ru/22880-habrahabr-troika-court#comment-432532

    Сначала учетная запись была полностью удалена с сайта. Сейчас же она есть, но зайти в нее нельзя. Попросили прислать паспортные данные, чтобы восстановить учетную запись.


    1. Sap_ru
      23.01.2018 00:30

      Как только просят "прислать паспортные данные" нужно в ответ сразу же интересоваться сертификацией на предмет обработки и хранения персональных данных.


      1. en1gma
        23.01.2018 10:44

        а в итоге

        -Джонни! А тебе не кажется, что мы задаром говна наелись?

        так как учётку без выполнения требования (может и необоснованного) предоставления паспортных данных не вернуть…


    1. BIG666
      24.01.2018 15:04

      Ну и присылаешь им левые сканы или вообще рандомно сгенерированные, в чём проблема-то?


  1. Headshaker
    23.01.2018 01:18

    Вот все классно, но «P.S.» явно лишний: во-первых, там неправда, и, во-вторых, ребят он никак не защитит, а выглядит довольно нелепо.


    1. gjf Автор
      23.01.2018 02:55

      Всё, что ниже хабраката — это текст самих ребят.
      Не считаю вправе его менять более, чем с точки зрения орфографии, пунктуации и явных ошибок в словах. Ну и сведения воззваний с описанием самой уязвимости воедино.
      © Мопед не мой — я только разместил объяву.


    1. TaHKucT
      23.01.2018 03:38

      во-первых, там неправда

      Уточните пожалуйста что именно вы имеете ввиду? В чем состоит неправда?


  1. daemonhk
    23.01.2018 06:54

    Молодцы! Жаль кармы не хватает проголосовать «за» вас. Правда не понятно пока что, что будет, ведь Россия такая Россия бабло главнее((


  1. Lepeshka
    23.01.2018 08:53

    А пробовали провести DoS атаку на турникет? Возможно можно закодировать что-то в штрих-код билета, чтобы при проверке произошло переполнение, зависание и турникет больше никого не пропустил бы


    1. Demon_i
      23.01.2018 13:35

      А это уже статья. Ребята изначально заявляют, что это чисто исследовательский проект и никакого вреда нанесено не было.


      1. Fiftygo
        23.01.2018 15:32

        Почему сразу статья? Выявление причин зависания и их устранение тоже важная часть тестирования систем.


        1. AlexanderG
          23.01.2018 16:10
          +1

          Для системы важно само деяние, а не его мотивация (в большинстве случаев).


          1. MacIn
            23.01.2018 23:48

            (в большинстве случаев).

            Ну уж прям так. Мотивация играет серьезную роль при квалификации.


  1. ganzmavag
    23.01.2018 08:53

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


  1. MrGobus
    23.01.2018 09:26
    +1

    То есть, автор статьи публикует материалы за которые их авторы получили уголовные сроки. Ну… дай бог вам здоровья.

    Интересно, если вор начнет нагло ломиться в ваш дом ковыряя замки, вы скажете ему спасибо друг, или вызовите полицию?


    1. Sheti
      23.01.2018 12:14
      +9

      Это грязная подмена понятий.


    1. SarethOmsk
      23.01.2018 12:41
      +10

      Если вор вежливо постучится в двери и скажет, что такой замок как у меня можно открыть ножичком и спичкой, и что мне стоило бы его сменить — то «спасибо, друг». Потому что он мог мне этого и не говорить, а просто открыть его и вынести мой телевизор. А ребята обратились к разработчикам и сказали об уязвимости, за что вместо банального «спасибо, мы разберемся» на них написали заявление


      1. MrGobus
        24.01.2018 13:47
        -1

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


    1. F0iL
      23.01.2018 13:12
      +6

      Если не «вор», а специалист по безопасности придет к вам и скажет «смотрите, ваши замки — полное г#$вно и за минуту вскрываются вот этой вот отмычкой, могу вам прямо сейчас продемонстрировать это», и посоветует, что сделать, чтобы избежать подобного, то вы вызовите полицию, или скажете ему спасибо за информацию о проблеме, после чего проконсультируетесь еще раз со знающими людьми?


      1. ildarz
        23.01.2018 15:14

        Есть еще вариант, который вы не рассматриваете, но который в жизни наиболее распространен. "Да, я знаю. Они защищают не от профессионалов, а от случайных воришек. А от профессионалов меня защитит либо УК, либо не защитит никто, потому что дверь, которую не вскроет профессионал, обойдется мне дороже всего содержимого квартиры."


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


      1. MrGobus
        24.01.2018 13:39

        И кто там специалист по безопасности ?! там «группа независимых исследователей безопасности» нарушившие кучу законов, от покупки оборудования (что еще надо проверить) до публичного распространения компрометирующей информации и средств взлома.


        1. Whuthering
          24.01.2018 15:21

          1.

          от покупки оборудования

          2.
          убличного распространения компрометирующей информации и средств взлома

          Это какие статьи УК, просветите?


        1. Whuthering
          24.01.2018 15:39

          И кто там специалист по безопасности ?! там «группа независимых исследователей безопасности»

          и что? Анализ они провели, рабочее решение получили — значит, вполне себе специалисты :)


    1. AllexIn
      23.01.2018 15:00
      +2

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


  1. kirillaristov
    23.01.2018 09:57
    +2

    Ребята, вы истерички. Разбираетесь в it, но нифига не понимаете элементарную бухгалтерию. В стоимость билета уже заложены и зайцы, и поддельные билеты, и все остальные накладные расходы. И как вы, к слову, предлагаете сделать оффлайновый невзламываемый билет? Если оффлайн, то рано или поздно его всё равно хакнут.
    Вам почему-то кажется, что пройти турникет на халяву по поддельному билету — этого зайцам будет достаточно. А контра у вас не ходит что ли? На моей ветке каждая вторая электричка с контрой и распечатанный билетик от них не спасёт. Так и нафига он сдался?
    Все турникеты на всех станциях обходятся по натоптанным заячьим тропам, и не нужны никакие поддельные билеты.
    Когда от вас отмахивалось руководство фирмы-разработчика софта, оно это делало не потому что им глубоко плевать на проблему, а потому что цена «закрытия» «дырки» сильно больше цены борьбы с теми тремя вундер-зайцами, которые вместо атлетизма решили потратить драгоценные часы (дни?) своей жизни на хаканье турникетов.
    Даже если вундер-заяц и просочится через турникеты, то сэкономит на этом лишь столько, сколько стоит самый дешёвый билет до ближайшей остановки (35р внутри Мск и около 25р в Подмосковье), потому что от контры подделка не защищает.
    Потеряли ли РЖД хоть что-то на таких зайцах? Думаю, что ничего, потому что настолько замороченные вундер-зайцы что угодно придумают, но платить не будут в любом случае — будут прыгать через турникеты, будут обходить турникеты, перелезать заборы, бегать от контры — но платить не станут. Так что РЖД ровным счётом ничего не потеряли, а скорее сэкономили.
    Мир вам друзья, столько всяких интересных дел вокруг, оставьте вы эти турникеты, пускай сами по себе тихонько эволюционируют.

    Кстати, пример из Будапешта — их турникеты на вообще полном доверии — geektimes.ru/post/291367


    1. ZayDen
      23.01.2018 11:13



    1. anko_2000
      23.01.2018 12:03
      +3

      В стоимость билета уже заложены

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


      1. Kwisatz
        24.01.2018 01:17

        Вот прям не пойму как так получается. Я конечно электрички не считал, но если взять те же поезда дальнего следования они оказываются дороже самолетов, и совершенно внезапно, дороже поездов в европе и сша при несопоставимом комфорте (специально сидел и считал при помощи знакомых за границей), и РЖД все равно убыточна. Меня не покидает странное ощущение…


        1. MacIn
          24.01.2018 18:44

          Инфраструктура. Львиная часть стоимости — это не топливо для тепловоза или э.энергия для электровоза, а строительство и содержание пути, служб СЦБ, контактной сети и т.д.

          дороже поездов в европе

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


          1. Merkat0r
            24.01.2018 22:03

            А, так же, очень важных сооружений — шубохранилищ.


            1. MacIn
              24.01.2018 23:07

              Давайте конкретно в цифрах, с источниками дохода.


              1. Merkat0r
                25.01.2018 10:59

                Серьезно?

                Хз, у налоговой можно спросить наверное :)
                image


          1. firk
            24.01.2018 22:37

            Насколько я знаю, нагруженность магистралей в Европе ниже, чем в России.

            Выше нагруженность в 2 раза — значит продали в 2 раза больше билетов (или оказали вдвое больше других транспортных услуг) и получили в 2 раза больше доход, при той же цене билета/услуги. Как это оправдывает более дорогой билет — непонятно (если он и правда более дорогой в расчёте на то же расстояние — я не в курсе как там на самом деле).


            1. MacIn
              24.01.2018 23:09

              Выше нагруженность в 2 раза — значит продали в 2 раза больше билетов

              И да и нет. Во-первых, грузовое движение, во-вторых плотность сети.

              Как это оправдывает более дорогой билет — непонятно

              А можно конкретно? А то, ЕМНИП, билет в палцкарт — спальный по сути вагон Москва-Питер стоит рублей 1200, в фирменное купе — 3500. Какова цена для этого расстояния в ЕС?


              1. MacIn
                24.01.2018 23:30

                Я поясню/проиллюстрирую некоторыми цифрами, банально из вики:
                РФ: протяженность дорог (2013) — 86 т.км
                Германия — 33 т.км
                Пассажиров за год в РФ — 1,08 млрд (при 86000км)
                Пассажиров за год в Германии — 2 млрд (при 33000 км)

                Но при этом — грузов в России — 1,38 млрд тонн, в Германии — 268 млн тонн.


                1. firk
                  25.01.2018 00:12

                  Я не понял к чему это всё. Kwisatz написал, что удивлён тем, что у нас поезда дороже чем в Европе и убыточны. Я не знаю, так ли это на самом деле или нет, если честно посчитать цену.
                  Вы написали, что у нас "больше загруженность магистралей", как мне показалось — в качестве объяснения разницы цен (если это не так, то мой первый ответ отменяется). Если так — то я не понимаю, каким образом высокий спрос за ж/д перевозки может создавать убытки там, где при низком спросе и меньшей цене всё окупается. Если, условно, по одному и тому же участку дороги проехали два поезда вместо одного, и заплатили за это вдвое больше чем один, то и все расходы и на топливо, и на электричество, и на износ путей, вырастут примерно в 2 раза, а может даже меньше — потому что износ путей происходит не только во время движения по ним поезда, а и в простое — от погодных условий и растительности. Таким образом, этот увеличенный в 2 раза доход как минимум окупит удвоенный расход, а может даже и останется лишнее если расход вырос не в 2 раза а меньше.


                  1. MacIn
                    25.01.2018 04:17

                    Извините, я сумбурно написал — лень было расписывать подробно, да и не специалист я, лишь делюсь мыслями по поводу. То, что в России пассажирские перевозки убыточны и дотированы — не секрет, при этом по поводу цен можно поспорить, см. выше — на мой взгляд они как раз-таки гуманны. Сравнивать с европейскими ценами сложно, потому что у нас разные виды вагонов и классы обслуживания. Какой-нибудь сидячий вагон местного сообщения во Франции на три головы лучше аналога в России, зато ПДС в России, на мой взгляд, лучше при меньшей стоимости.
                    А конкретно по убыточности — я привел цифры выше — структура использования ЖД в РФ иная — пасс. перевозок относительно мало, они одни не могут окупить такую большую сеть, учитывая наличие верхнего порога цен на билеты, соцнагрузка такая. Зато грузоперевозки — окупают, но ценой повышенного износа инфраструктуры, плюс она сама по себе более дорогая под более тяжелые составы и насколько я понимаю, львиная доля дохода реинвестируется в саму жд. Получаются как бы ножницы.


      1. ainoneko
        26.01.2018 13:52

        Электрички убыточны, дотируются из бюджета
        То есть, как обычно: «приватизация прибыли, национализация убытков»?


    1. Demon_i
      23.01.2018 13:41
      +2

      Как в статье написано — одна контра стоит пол-зарплаты. Жил я в этом Будапеште 6 лет. С 7 класса. Уже тогда и в голову не приходило проехаться без билета. При том на пригородных электричках можно купить билет у контроллера без штрафа. Это вполне нормальная практика.


      1. DrZlodberg
        24.01.2018 11:16

        Ну так это вопрос подхода. Возьмём автобусы. В некоторых маршрутах с этого года убрали турникет и сделали вход во все двери. Казалось бы — сделали как лучше. Однако получилось как обычно: терминалы оплаты есть только в 1 и 2 двери. Попробуйте оплатить в час пик войдя в 3 или 4ю даже при желании. Контролёрам же вломиться в автобус ничего не мешает…


    1. odissey_nemo
      25.01.2018 19:57

      Кстати, да!
      И они были таковыми и в советское время. Когда впервые зашёл в метро Будапешта, где ходили советские поезда на всех линиях, кроме самой первой, то мне объяснили: тут, наверху, билеты не проверяются.
      Но вон там комната с большим окном, где сидят ребята. И если они увидят, что ты не прокомпостировал билетик, то вполне могут позвонить вниз, чтобы там тебя проверили. И если что не так, то штраф тебе обеспечен. В советское время он был, возможно, и не так велик. Но, как правильно кто-то заметил ранее, горазд существеннее был позор от того, что ты — безбилетник, т.е нечестный человек!
      А билеты тогда себе мог позволить любить любой человек в любой соц. стране. Это к вопросу о соотношении доходов людей тогда и сегодня.

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


  1. demfloro
    23.01.2018 10:32

    И как вы, к слову, предлагаете сделать оффлайновый невзламываемый билет? Если оффлайн, то рано или поздно его всё равно хакнут.

    ЭЦП. Приватный ключ в TPM. В турникетах и проверяющих аппаратах — публичный.


    1. virrus
      23.01.2018 11:46

      ЭЦП требует гораздо больше бит на штрихкоде. Придется аппаратно переделывать турникеты. Дорого.


      1. sebres
        23.01.2018 14:29

        Хэш (сигнатура ЭЦП) может быть любого размера… И практически не зависит от длинны ключей.
        Хоть md5 возьмите, ну например типа RSASS<PKCS1v15, Weak::MD5>::Signer от CryptoPP.
        Или мурмур3-32 и иже с ним.


        Если все еще длинная, ничего не мешает написать свой Хэш-алгоритм делающий хоть 8-и битное значение.


        1. virrus
          23.01.2018 16:11
          -1

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


          1. sebres
            23.01.2018 16:30
            +1

            ECDSA

            А чего сразу не квантовым каким способом...


            1. Я вам не про сообщение говорил, а про хэш подписи (у эллиптической кривой оно по другому ибо DSA, но...).
            2. Вообще-то у алгоритма ECDSA, длинна подписи есть 4*t, also 320 bit для уровня безопасности t=80. Что не мешает вам оный понизить для достижения нужной длинны.


            1. virrus
              23.01.2018 16:47

              Эээ. А что вы собираетесь делать с хешем подписи? ECDSA сейчас вроде самая компактная при прочих равных.


              1. sebres
                23.01.2018 16:59

                Еще раз оно было не про ECDSA...


                Но, если даже если "стандартный" ECDSA, то понижая t никто вам не запрещает собрать 32-bit/64-bit security binary ECC (ну возможно ключи чуть чаще нужно будет менять...)


                Притом можно жеж сделать mixup какой.


                1. virrus
                  23.01.2018 22:09
                  -1

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

                  32/64 битная ECC это ни о чем. 112 битная была поломана еще 9 лет назад. Да, тогда это было дорого, но это было давно, да и размерность той задачи сложнее в квадрате (2^112 против 2^64).

                  Можно просто писать на билете хеш с солью, но тогда к чему ваша фраза про «хеш (сигнатура ЭЦП)»?


                  1. sebres
                    23.01.2018 22:52

                    Она напрямую зависит от ключей

                    Это правда в случае расшифровки, не в случае сигнатуры (ну или вернее не совсем так, зависит от алгоритма).


                    112 битная была поломана еще 9 лет назад

                    А можно про ту поломку поподробнее… Думается мне, что вы не поняли что там "поломали".


                    Можно просто писать на билете хеш с солью

                    Нельзя, ибо мы говорим про асимметричную криптографию (private/public key). В противном случае (хеш с солью), тот кто умеет проверять, умеет и подписывать...


                    к чему ваша фраза про «хеш (сигнатура ЭЦП)»?

                    Здесь ни к чему, это вы притащили сюда эклиптику с DSA-подобным алгоритмом...


                    Учить мат-часть.


                    1. virrus
                      23.01.2018 23:14

                      Это правда в случае расшифровки, не в случае сигнатуры (ну или вернее не совсем так, зависит от алгоритма).

                      Какой несимметричный алгоритм умеет поместить что-то полезное в 17 байт?


                      А можно про ту поломку поподробнее… Думается мне, что вы не поняли что там "поломали".

                      Подобрали приватный ключ, какие тут могут быть разночтения?


                      Нельзя, ибо мы говорим про асимметричную криптографию (private/public key). В противном случае (хеш с солью), тот кто умеет проверять, умеет и подписывать...

                      Это я прекрасно понимаю, я не понимаю ваш подход к проблеме


                      Здесь ни к чему, это вы притащили сюда эклиптику с DSA-подобным алгоритмом...

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


                      Хэш (сигнатура ЭЦП) может быть любого размера… И практически не зависит от длинны ключей.

                      Для чего этот хеш?


                      1. sebres
                        24.01.2018 01:44

                        Какой несимметричный алгоритм умеет поместить что-то полезное в 17 байт?

                        Подсказка. Вы исходите из того, что ваша пара private-public может быть использована как для подписи/проверки подписи, так например и для шифрования/расшифровки. Т. е.:


                        sign=`someAlgo.Sign "message" $private`
                        if [ someAlgo.Verify "message" $sign $public ] then echo 'OK' fi
                        # и например с теми же ключами...
                        cipher=`someAlgo.Encrypt "message" $public`
                        message=`someAlgo.Decrypt $cipher $private`

                        Но представте, что вам этого (второй части) изначально не надо. Ваша цель подписать message/hash, получив при этом как-можно меньшую подпись.
                        Как можно в этом случае сгенерировать ключи (и/или что нужно/можно еще сделать), чтобы уменьшить размер sign?


                        То что вы "ослабите" при этом алгоритм, например увеличив вероятность/возможность получения такой же подписи (НО с совсем каким-то другим "private-ключем"), которая будет валидной используя известный public — это факт.
                        Но во первых, с каким издержками, во вторых это нужно будет делать каждый раз, для каждого другого message (билета). Что есть очень и очень накладно.
                        Но подобрать оригинальный private-ключ (чтобы подписывать любой билет) будет практически все также сложно.


                        И способов на самом деле несколько.
                        Как вы думаете, для чего в шифровании используют initialization vector (IV) ака starting variable (SV). А в случае ассиметрики — random padding?


                        1. virrus
                          24.01.2018 10:34

                          Мне изначально не нужна была вторая часть.


                          Давайте без подсказок вы прямо скажете, как именно можно проверить аутентичность message'а, вписавшись в 144 бита штрихкода билета? Ну чтобы не ходить вокруг да около, мало ли я опять чего не того сочиню.


                          Я формализую требования (мы ведь с Микротехом соперничаем?):


                          1. 144 бита информации (пусть всё уйдет под подпись, черт уже с ним, с билетом)
                          2. Защищенность от перебора одним современным ПК
                          3. Возможность работы в условиях мобильного терминала (он слабый и вообще на батарейке)
                          4. Чем-то существенно лучше текущего решения с ежедневно сменяемым секретом

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


                          Учить мат-часть.

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


                          1. sebres
                            24.01.2018 12:11

                            Мне изначально не нужна была вторая часть.

                            Ну да, только по умолчанию ключи сгенерируются имменно так...


                            Давайте без подсказок...

                            Если думать/переделывать не хотим, в качестве примера из коробки, возмите любой гибридный алгоритм, ну тот же ECIES например. Тогда минимальный размер шифра равен blocklength лежащего в основе симметричного шифра (например в случае AES это было бы 128, в случае DES 64 бита), но это может быть любой симметричный блочный шифр (хоть однобайтный, я утрирую).


                            Возможность работы в условиях мобильного терминала (он слабый и вообще на батарейке)

                            Так это же вы ECC в дискуссию притащили… И без нее гибридов достаточно (я вам намекал уже — ищи слово mixup выше).


                            Чем-то существенно лучше текущего решения с ежедневно сменяемым секретом

                            Ну любая ассиметрика будет лучше по умолчанию.
                            Но почему это должно быть обязательно взаимозаменяемым решением, комбинация обоих вас чем то не устраивает?


                            Использовать random padding чтобы внезапно получить короткую подпись в условиях мобильного терминала можно только...

                            Вы не поняли мой посыл, я таки как раз предлагал его "отключить", вернее заменить на что-то более подходящее для короткой подписи.


                            1. virrus
                              24.01.2018 13:02
                              -1

                              Если думать/переделывать не хотим, в качестве примера из коробки, возмите любой гибридный алгоритм, ну тот же ECIES например. Тогда минимальный размер шифра равен blocklength лежащего в основе симметричного шифра (например в случае AES это было бы 128, в случае DES 64 бита), но это может быть любой симметричный блочный шифр

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


                              1. sebres
                                24.01.2018 14:42

                                Вы правда думать не хотите, или это троллинг такой толстый?!...


                                Не нужно смешивать котлеты с мухами пример реализации (в часности видимо зашифрованого сессионного трафика) с конкретно самим алгоритмом.


                                Так вот, я вам официально заявляю, для гибридного шифрования (а тем паче подписи) совсем не нужно "передавать" куда-нибудь какой-либо сессионный ключ.
                                Как и то, что алгоритм можно использовать способом "Б" совсем не означает, что его нельзя использовать способом "А".


                                Точка. Идите троллить куда нибудь в другое место.


                                1. virrus
                                  24.01.2018 15:38

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

                                  > Так вот, я вам официально заявляю, для гибридного шифрования (а тем паче подписи) совсем не нужно «передавать» куда-нибудь какой-либо сессионный ключ.

                                  Пример алгоритма в студию.

                                  У ECIES есть вполне конкретное описание, в котором к зашифрованному симметрично тексту прикладывается сессионный ключ для расшифрования, сделанный асимметрично. В этом суть большинства гибридных схем. По крайней мере википедия описывает именно такую схему. Если у вас есть другая — так опишите её или ссылку дайте, если лень писать.

                                  Давайте возьмем всю ветку:
                                  — Как вы, к слову, предлагаете сделать оффлайновый невзламываемый билет
                                  — ЭЦП. Приватный ключ в TPM. В турникетах и проверяющих аппаратах — публичный.
                                  — ЭЦП требует гораздо больше бит на штрихкоде.
                                  — Хэш (сигнатура ЭЦП) может быть любого размера… И практически не зависит от длинны ключей.

                                  Я перефразирую ваш тезис, а вы уж меня поправьте. Вы знаете схему, в которой можно подтвердить аутентичность сообщения Алисы (кассы) на стороне Боба (турникета), используя «хеш (сигнатуру ЭЦП)» любого размера. Если нет, и вы решаете другую задачу, то о чём вообще спор? Я говорю про конкретный проблему с билетами, меня не интересуют абстрактные алгоритмы.


                                  1. sebres
                                    24.01.2018 16:02

                                    Пока троллингом занимаетесь вы.

                                    подавившись Вы очень нахальны молодой человек...


                                    Я говорю про конкретный проблему с билетами, меня не интересуют абстрактные алгоритмы.

                                    Тогда какого черта вы сюда тащите сессионные ключи. Вы вообще знаете для чего они используются?
                                    Сессионный шифрованый трафик — это фича. И это преимущество позволяет легко реализовать ECIES, поэтому вероятно в примере, где вы это нашли, там они (сессионные ключи) используются.
                                    Что вовсе не означает что нельзя без них (см. выше про способ "Б" и способ "А").


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


                                    Пример алгоритма в студию.

                                    А ключи от квартиры где деньги лежат вам не нужно случаем?


                                    1. virrus
                                      24.01.2018 17:06

                                      Восемь сообщений назад я просил… и далее по тексту моего предыдущего сообщения.

                                      > Вы очень нахальны молодой человек…

                                      Вы очень неточно предсказываете возраст по нику. Я моложе вас, но не настолько, чтобы это было существенно.

                                      > вероятно в примере, где вы это нашли, там они (сессионные ключи) используются.

                                      Я не искал примеров, а открыл википедию и прочитал про ECIES ru.wikipedia.org/wiki/ECIES. На всякий случай прочитал на английском и даже попытался сверить с немецким по формулам. Вроде везде одно и то же написано. Ну хорошо, давайте их не *сессионными* назовём, а *временными* — так лучше? У вас есть другой источник с другим алгоритмом?

                                      >> Пример алгоритма в студию.

                                      > А ключи от квартиры где деньги лежат вам не нужно случаем?

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

                                      Я нашел вас на гитхабе, почитал коммиты. Вы вроде человек разумный, в теме разбираетесь, так почему не можете цивилизованно выстроить дискуссию? Я спрашиваю как в 144 битах уместить подтверждение того, что билет был сделан в кассе, а не на домашнем принтере. Я могу взять эллиптическую кривую над полем бит в 100-110 и применить сжатие точек, а в оставшиеся попытаться вписать дату и точки отправления/назначения, но я хочу увидеть ваш вариант, который еще компактнее и подписи не надо. Вы всё твердите, что есть крутые mixup'ы, гибридные алгоритмы, но не привели еще НИЧЕГО, подтверждающего ваши высказывания.


                                      1. sebres
                                        24.01.2018 19:50

                                        Ну хорошо, давайте их не сессионными назовём, а временными — так лучше?

                                        Ну вот же, вы почти у цели…
                                        А если разжевать то, "временные" <=> "ежедневно сменяемый секрет". Или может им стать в конкретной реализации.


                                        Во вторых, это как уже говорилось, не обязательно, правда-правда. Оно будет практически "из коробки" работать и без оного.


                                        открыл википедию...

                                        Ааа… ну ладно тогда...


                                        Эти требования сильно неравноценны. Под примером достаточно названия.

                                        Дак я же и привел — ECIES (и если не умеете это не значит — не подходит).
                                        Вот еще куча навскидку — все не PSK варианты микий-миксинов (MIKEY-ECIES, MIKEY-ECMQV, MIKEY-RSA, MIKEY-DHSIGN…
                                        Или тот же MIKEY-SAKKE, но с "железным" KMS (и ассиметрикой в реализации) и т.д. и т.п.


                                        ECIES не подходит, так как требует неспецифицированных модификаций.

                                        Отсюда я делаю вывод, что у вас все-таки "с этим НЕ всё в порядке". ECIES это технологический концепт если хотите (для которого если не ошибаюсь даже RFC нет, только драфт) и реализация оного может даже в корне отличатся от рекомендаций.
                                        Еще раз, RFC и/или описание автора тут — рекомендация, имплементации же алгоритма рознятся и как минимум зависят от области применения.


                                        Я нашел вас на гитхабе, почитал коммиты…
                                        так почему не можете цивилизованно выстроить дискуссию?

                                        Потому что мы на хабре а не на пикабу, и видимо потому что у нас понятия "цивилизованно" рознятся.


                                        но не привели еще НИЧЕГО, подтверждающего ваши высказывания.

                                        Хмм… ну ладно тогда, на нет и суда нет.


                                        Мне скучно некогда, я удаляюсь.


                                        1. virrus
                                          26.01.2018 11:47

                                          Ну наконец-то стал понятен ход вашей мысли. Давайте я и вам поясню.


                                          В ветке обсуждалось полностью оффлайновое решение проблемы. Проблема в том, что кассирам-контроллерам неудобно каждый день выполнять синхронизацию с центральным сервером. Я не знаю, почему, но вот примем такой факт. Далее demfoloro на вопрос "как сделать оффлайновый билет" отвечает "использовать ЭЦП", на что я говорю "подпись не влезет на штрихкод".


                                          А далее со своим комментарием зачем-то влезаете вы. Во-первых, с ложным утверждением о том, что ЭЦП может быть любого размера (нет, не может — слишком короткая перестаёт быть ЭЦП и становится дурным хешем) и вообще предлагаете восьмибитный хеш. Человек со стороны может прочитать это только как "давайте добавим к сообщению короткий хеш, в нём и будет защита".


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


                                          Всё стало понятно после упоминания MIKEY. Именно в RFC 3830 есть разные константы для разных типов TEK. Оказывается, вы всё это время говорили про протокол обмена ключами? Ну тогда, чтобы это было понятно остальным, необходимо об этом как-то упомянуть. Тем более, что отношения к решаемой задаче оно имеет сильно опосредованное — нам нужно вообще исключить обмен ключами, т.е. сделать его однократным. MIKEY для этого не предназначен, его ключи ДОЛЖНЫ протухать (см. RFC 3830, п. 9.2). На 144 битах штрихкода CBC режим на 128 бит использовать не удастся, придется взять ключ покороче. 32 битный ключ идеального шифратора придется менять "задолго до" 16 тыс билетов (см. там же). 64 битный протянет, конечно, сильно дольше, хотя в нём режим CBC сильно условен. Он вырождается в ECB, приходится первый блок целиком забивать белым шумом, а нам, вообще говоря, битов впритык хватает для передачи полезной информации. ECB же режим на 64 битах — это несерьезно.


                                          Такая ситуация часто возникает, когда кто-то пытается забить гвозди микроскопом использовать протокол для мультимедиа для обмена короткими сообщениями.


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


                                          Весь ваш текст можно свести к "давайте сделаем симметричное шифрование билета, а блок с паролями на ближайшие сто лет однократно раздадим в начале", то было бы просто и понятно всем. Даже букв писать меньше, чем вы в итоге написали. Как говорит один очень уважаемый профессор:
                                          "Если вы, молодые люди, не сможете за 20 мин объяснить своей бабушке, почему матрица Грама в унитарном пространстве эрмитова, то — извините, мы не одной крови"


                                          • В качестве примера из коробки, возьмите любой гибридный алгоритм, ну тот же ECIES
                                          • ECIES это технологический концепт если хотите (для которого если не ошибаюсь даже RFC нет, только драфт) и реализация оного может даже в корне отличатся от рекомендаций

                                          Ну а это как вообще следует понимать?


                                          А теперь перейдем к моральной стороне вопроса.


                                          Если вам кажется, что вас окружают идиоты, не понимающие вас, то начинать надо с себя — достаточно ли ясно вы высказываете собственные мысли? Телепаты в отпуске, как говорится.


                                          В цивилизованным общением я, видимо, неточно выразился, и вы решили, что стиль "патриций с плебеем" — это тоже цивилизованно. Древний Рим очаг цивилизации же. Мне надо было попросить общаться культурно.


                                          Учить мат-часть.
                                          Вы очень нахальны молодой человек…
                                          Это ваша проблема, что вы не хотите думать, не умеете их готовить.
                                          Ну вот же, вы почти у цели…
                                          открыл википедию… — Ааа… ну ладно тогда.
                                          мы на хабре а не на пикабу, и видимо потому что у нас понятия "цивилизованно" рознятся.

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


                                          Очень странно объяснять это "дяденьке", перевалившему за 40 лет.


                                          Мне скучно некогда, я удаляюсь.

                                          Скатертью дорога


                                          1. sebres
                                            26.01.2018 12:54

                                            Вы начинаете уже раздражать с вашими домыслами и передергиваниями...


                                            1. Я везде писал, что это ТОЛЬКО ОДИН из способов.
                                            2. Я нигде не говорил, что нужно секрет ежедневно обновлять через "синхронизацию с центральным сервером"… Я имел ввиду что "ежедневно сменяемый секрет" может быть сгенерирован (создан по формуле), используя хоть ежемесячно сменяемый ключ.
                                            3. Я вам раз пять уже написал, что и без сессионного ключа это можно организовать совершенно однозначно.

                                            Чтобы уже закрыть эту ветку...


                                            Во первых, чем гарантирована "устойчивость" подписи? Не длинной ключей (вернее не напрямую)… А сложностью "подбора" их, посредством нерешаемых обратных математических функций и/или очень-очень медленным "перебором" (криптографическая стойкость).


                                            Второй момент: чем отличается подпись в этом конкретном случае, от шифрования?
                                            Вам не нужно так защищать/шифровать "блок", чтобы типа в случае подбора ключа через сто лет, кто-то смог что-то, не предназначающееся ему, прочитать.
                                            И вам не нужно расшифровывать. Т. е. ключи не обязательно должны быть равноценны.


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


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


                                            Тем самым:


                                            Короткий private обеспечивает вам короткую подпись, ассиметрика — возможность "оффлайновой" проверки (без возможности подписывания не зная private).
                                            Длинная симметричная составляющая и/или сложный алгоритм обеспечивают невозможность подбора "короткого" private ключа за необходимый промежуток времени (до следующего обновления пары public/private).


                                            На этом все.


    1. mickvav
      23.01.2018 12:18

      В имеющейся схеме обновлять волшебную циферку раз в час broadcast-ом по кассам. Тогда операция «подобрать подходящий билетик» станет сущим адом. И имеющихся железа и ПО хватит с головой (помнить ~24*3 байт сверху).


      1. virrus
        23.01.2018 13:52
        +2

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


        1. mickvav
          23.01.2018 21:24

          Ну да, закинуть random seed вместо числа даже лучше, согласен. И хоть каждую секунду меняй, и памяти меньше надо.


      1. anko_2000
        23.01.2018 15:10

        Обычный билет туда-обратно действует с начала суток, которые указаны в билете и до окончания следующих суток, но не считаются выходные и праздничные дни
        Например, билет, купленный 29.12.2017 действовал до 09.01.2018 (12 суток)
        А кроме обычных билетов, существуют еще абонементы, ЕМНИП, до года


  1. yurabiz
    23.01.2018 11:16

    Адекватная сложность системы безопасности определяется отношением стоимости ее реализации и стоимости потерь от взлома. ИМХО в данном случае Микротех вполне адекватно выбрал сложность.
    Вспоминается касса по продаже билетов в автобусах во времена СССР.
    Ручку покрутил — появился билет. Эта касса даже не проверяла, бросили в нее деньги или нет. Также вполне нормальная оценка.
    Кто застал — поймет.


    1. gjf Автор
      23.01.2018 11:22

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


    1. Methos
      23.01.2018 22:34

      Причём бросить можно было одну копейку или что-нибудь похожее на настоящие монеты — для того, чтобы бабульки не ворчали =)


      1. odissey_nemo
        25.01.2018 20:05

        Такое бывало, да. Хотя сам не видел, нет. Но почему-то предполагаю, что так поступали бы люди нечестные и в общежитии неприятные. А таковых тогда было, почему-то, на порядки меньше, чем сегодня. Есть подозрение, что все те граждане нынче как-то сконцентрировались у материальных благ советского наследия и во властных структурах. Ибо их поведение сегодня очень похоже на поведение безбилетников советского периода. РФ-безбилетники — обычные неимущие люди, не способные полностью оплатить свой проезд.


  1. burzooom
    23.01.2018 11:19

    Интересно, как скоро хакеров вычислят по горе косвенных улик типа «узнать, кто продавал турникеты на авито», «кто их купил», не говоря про местожительство, определяемое по воспоминаниям мусорщиков, вытаскивающих турникеты.


    1. iig
      23.01.2018 15:21
      +2

      Существовали ли хакеры на самом деле? Это действительно 3 студента? Или он один и не студент?


  1. mkrentovskiy
    23.01.2018 11:55
    +3

    Можно криптоверсию? :)

    Представьте, что вы поставщик системы продажи билетов в РЖД. Оснастили почти все, что только могли, остается только поддержка. По-хорошему надо бы начать новый цикл — оборудование уже устарело, но вот беда — руководство заказчика никак не согласно на новое, их и старое вполне устраивает. Угрожать прекращением поддержки не вариант, объявить во всеуслышание, что проданное не очень — публичное харакири. Но есть вариант — если количество зайцев перемахнет за допустимый заложенный процент, руководство заказчика само придет с мольбами о замене. Находим инициативных студентов, разумеется, публично им поугрожаем, ну и далее по тексту…

    P.S. Это ирония, если что.


  1. andersong
    23.01.2018 12:00
    +3

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


    1. mickvav
      23.01.2018 12:22
      +1

      В 2004-м, кажется, в Норвегии — подходишь к кассиру — нам вот с велосипедами вот туда. Велосипеды? Не хочу думать, садитесь в поезд, возьмите билеты у train master-а. Но там такого количества народу, как в подмосковье, отродясь на электричках не ездит, это да.


  1. azark
    23.01.2018 13:00

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


  1. dostapn
    23.01.2018 13:42

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


  1. AlexPee
    23.01.2018 14:42

    А я покупаю абонементы. Как раз перед НГ купил на 60 поездок. Теперь понятно почему были очереди перед автоматами, благо, что меня эти проблемы не затронули.


  1. navion
    23.01.2018 15:17

    смесь карты с наличкой, например вот есть у меня два фунта, а шестьдесят три пенса я хочу снять с карты — нет проблем!

    В магазинах такое уже начали практиковать, может и до автоматов дойдёт.


  1. zabbius
    23.01.2018 15:27

    А вот интересно, как позиционируется оборудование, о котором речь. Изготовитель вообще заявляет, что оно защищено от такого? Может они просто продают какие-то турникеты, а не мега защищенные?


  1. anko_2000
    23.01.2018 15:30

    Так вот, я прокатался туда обратно почти две недели — контроллёров я не видел. Но как мне сказали, они есть! И вот когда они берут за задницу — штрафы такие, что лучше зайцем не ездить. Невыгодно.

    Но повторюсь: это — Великобритания

    В СССР тоже штраф в автобусе был 1 рубль (=20 поездкам)
    Да, и кстати в СССР могли оштрафовать за переход в неположенном месте — ГАИ работало не только на водителях.

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

    Про электрички: даже если безбилетника и поймают, он просто купит билет на 1 зону и все, штрафа в этом случае не будет.
    При стоимости одной поездки 100 рублей и больше (многие едут издалека в Москву) покупать билет не выгодно


    1. DrZlodberg
      24.01.2018 11:21

      Да ладно! При продаже билета в поезде берут ещё «за обслуживание» что сильно увеличивает радиус выгодности покупки. Не берут только если на исходной станции кассы нет.


  1. ammendorf
    23.01.2018 15:32
    +1

    Помнится был уже сайт билетам.нет что ли с онлайн-генератором. В прочем быстро прикрыли.


  1. 9kydza
    23.01.2018 15:58

    А мне кажется, что это тот случай, когда обнародовавших уязвимость должны привлечь к ответственности.
    Объясню почему: от этой уязвимости не страдают третьи лица, страдает только конкретная компания, и это сугубо их дело. Я не исключаю даже того, что РЖД были уведомлены, что система не обеспечивает полной защиты и легко обходится, но посчитали, что дешевле обеспечить такой простой уровень валидации. Турникеты в конце концов вообще перепрыгнуть можно.

    Приведу пример не из сферы IT: я, уходя из дома, каждый день закрываю свою металлическую дверь на 3 оборота суперсовременного замка и считаю такую защиту достаточной, но ключи кладу в свою куртку и вешаю её на вешалку возле рабочего места. Я понимаю, что несу определенные риски. И вот мой коллега meG@Duc узнал где у меня ключи, когда меня нет на рабочем месте и посчитал своим долгом рассказать всем (в том числе воровскому сообществу):

    «Я, meG@Duc, обнаружил уязвимость защиты квартиры своего коллеги! Его нет на рабочем месте с 14:00 до 15:00, он работает в компании «Рога и копыта», вход на территорию свободный, я уже 3 раза побывал в его квартире (конечно ничего не брал, ведь я этичный хакер). Это позор для его личной безопасности. Требую обеспечить должную защиту жилища!»
    Аналогия, как вы понимаете — из рассказа про хакера с солонкой, но даже та история с солонками менее абсурдна, т.к в той истории хотя бы страдали третьи лица. И вот благодаря действиям этого господина, мою квартиру обносят, можно ли квалифицировать его деяния как содействие совершению преступления? Я считаю, что да


    1. gjf Автор
      23.01.2018 16:04

      Ну тут аналогия приведена неверно.

      «Я, meG@Duc, обнаружил уязвимость защиты квартиры своего коллеги! Его нет на рабочем месте в определённое время, он работает в компании, вход на территорию которой свободный, я уже 3 раза побывал в его квартире (конечно ничего не брал, ведь я этичный хакер). Это позор для его личной безопасности. Требую обеспечить должную защиту жилища!»

      Так чуток поближе. Потому как конкретного способа взлома ещё приведено не было.
      А ещё ближе — Вы живёте вместе с этим коллегой, вместе платите за квартиру, а вот когда Вас грабанут — коллега придёт к Вам и скажет: «А оплачивай-ка ты мне мой ущерб, ведь мы вместе живём — вот ты и навёл!»
      Потому что стоимость безопасности — в стоимости проезда, а налоги платятся за то, чтобы уязвимости в безопасности и хищения предотвращались.


      1. 9kydza
        23.01.2018 16:23

        Согласен, ваша версия ближе к текущей ситуации, только добавьте еще что-то вроде того:

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

        Что касается налогов и что там в стоимости проезда — это все же относится к области догадок, тем более что РЖД не на одни дотации живет, хотя согласен, что доля истины есть. Только вот что вы скажете, когда на устранение уязвимости и поддержку её в актуальном состоянии пойдет еще больше наших с вами налогов и цена билета вырастет еще больше? Поэтому я считаю, что все же не нам с вами судить как РЖД планировать свой бюджет и на что им лучше тратить доходы.

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


        1. MacIn
          23.01.2018 23:59
          +1

          А что если заказчиком был оплачен именно такой уровень защиты и он посчитал его достаточным, вы же не будете винить производителя шпингалета, который вы установили в свой коттедж, когда вашу дверь вынесут ногой?

          Есть разница между ответом «it's by design», таково, мол, техзадание и заявлением в органы.


          1. ildarz
            24.01.2018 10:38

            Я не вижу в исходном тексте никаких подтверждений того, что разработчик системы обращался в органы.


            1. MacIn
              24.01.2018 18:47

              В предыдущих аналогичных случаях так было.


    1. h0rr0rr_drag0n
      23.01.2018 16:16

      В случае с квартирой, этичный вор нарушил право на частную собственность, вторгнувшись в чужой дом без разрешения. Если бы он этого не делал, то у нас было бы типичное «преступление без жертвы» — физического вреда или вреда чужой собственности не было нанесено, а если расценивать высказанные слова как преступление, то можно далеко зайти — вплоть до уничтожения свободы слова, потому что нельзя провести чёткую границу между тем за какие именно слова можно сажать, а за какие пока не стоит; и всегда будет желание подвинуть эту границу в сторону ужесточения.
      Например, вас, за ваш комментарий, тоже можно будет посадить, пользуясь той же логикой приравнивания слов к преступлениям — вы только что обнародовали информацию, которая может сподвигнуть других людей на преступление, если у них есть коллеги, оставляющие ключи в кармане куртки, в раздевалке. До этого может быть человек и не думал делать ничего плохого, но вот прочитал ваш комментарий и пошёл по наклонной — и вы в этом будете виноваты. А следовательно, можете рассматриваться как подстрекатель к преступлению.

      Объясню почему: от этой уязвимости не страдают третьи лица

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


      1. gjf Автор
        23.01.2018 16:21

        У меня ещё одна аналогия родилась. Раз уж тут так любят аналогии )))

        Вы арендуете квартиру под жильё. И тут к Вам приходит хозяин квартиры и говорит: «Знаешь, у нас тут активизировались домушники, я хочу поставить на двери новый замок с выводом на пульт охраны в случае взлома. Это же твоя безопасность! А потому заплати мне 1000 рублей, а потом ежемесячно ещё придётся по 100 рублей платить за охрану.» И Вы такой: блин, а ведь верно, нужно платить!

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


        1. h0rr0rr_drag0n
          23.01.2018 16:31

          Несколько не понял к чему тут эта аналогия, наверное стоило сегодня всё же выспаться :-). Вижу каноничное нарушение прав собственности — договаривались об обмене 1000 рублей на охрану и новый замок, жилец передал хозяину деньги, а хозяин не передал жильцу новый замок, который теперь уже должен быть в собственности жильца, не говоря уже об охранных услугах, которые не были предоставлены.
          Как всё это связано с предыдущим комментарием (ну кроме наличия в истории замка и нарушения прав собственности) — мне решительно не понятно.


          1. AllexIn
            23.01.2018 17:22
            +3

            Подмените в этой истории отдельных личностей на государство, налогоплательщик, подрядчик и всё станет понятнее.


      1. 9kydza
        23.01.2018 16:57

        В общем смысле с вами соглашусь, по поводу привлечения к ответственности не совсем все очевидно и однозначно. Но в частном, как хозяин квартиры, которого обокрали благодаря вот такому вот коллеге, я бы однозначно знал виновного и требовал крови ответственности. У меня не повернется язык назвать его этичным вором, а у вас повернется?

        Что касается налогов, прибыли РЖД и что куда тратится — уже отписывался выше — все опять же неоднозначно, вы хотите доплачивать 100 рублей в качестве компенсации потерь от зайцев или 110 рублей за обеспечение и поддержку защиты от зайцев, например? Вы же не требуете от супермаркетов лучше следить за ворами, потому что компенсация за воровство заложена в стоимости товаров? Еще вопросик: вы бы предпочли не доплачивать компенсацию за воровство в супермаркете, но проходить полный досмотр на выходе? Или доплатить и вообще охраны не видеть?


        1. h0rr0rr_drag0n
          23.01.2018 19:14

          У меня не повернется язык назвать его этичным вором, а у вас повернется?

          Зависит от контекста — если он влезал в мою квартиру без моего на то ведома или разрешения, то он преступник и должен понести наказание.
          Если же он слишком много рассказывал всем вокруг о том, где я храню ключи на работе, то на мой взгляд это сфера не законов и наказаний за преступление, а сфера этики и морали. В таком случае мне было бы достаточно наказания по закону тех воров, что залезли ко мне домой, послушав его рассказы (ибо у нас свобода воли и они были вольны не лезть ко мне домой, но, увы, выбрали совершить преступление). А для чрезмерно болтливого коллеги, уже после наказания преступников, было бы достаточно соответствующей «славы» на работе и может быть даже за её пределами и всех связанных с этим проблем (кто захочет иметь дела с человеком, который настолько болтлив с кем не надо, что это даже привело к последствиям вроде кражи?), стыда, публичного унижения, которое неизбежно возникнет после того как история распространится среди людей и т.д.

          Вы же не требуете от супермаркетов лучше следить за ворами, потому что компенсация за воровство заложена в стоимости товаров? Еще вопросик: вы бы предпочли не доплачивать компенсацию за воровство в супермаркете, но проходить полный досмотр на выходе? Или доплатить и вообще охраны не видеть?

          Допустим, я готов платить 110-200 рублей, чтобы «компенсировать» зайцев. Но даже в таком случае, мне всё равно было бы неприятно как инженеру, что РЖД использует такие дырявые турникеты, которые так или иначе были куплены с привлечением уплаченных мною денег. Это подмочило бы репутацию компании в моих глазах.
          Если бы я не хотел ничего им компенсировать и платил бы 50 рублей, то тем не менее, мне бы точно так же было бы неприятно от использования подобных, сомнительных с технической точки зрения, решений и репутация компании всё равно была бы для меня подмочена, хоть я и плачу мало.

          С супермаркетами я был бы готов доплачивать, но не проходить полный досмотр на выходе (как оно и происходит сейчас). Более того, я бы наверное доплатил ещё несколько больше, чтобы не видеть охранников в зале магазина вовсе. Но всё это не мешало бы мне возмущаться и переходить на покупки в другом магазине, если я замечу, что охрана, например, вся пьяная ходит или там сплошные инвалиды, даже в ГБР — это точно так же подмочило бы репутацию магазина в моих глазах.


          1. 9kydza
            24.01.2018 15:36

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

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

            Я думаю в любой технологической (и не только) компании, есть вещи, которых они могли бы постыдиться, но они есть по той или иной причине. И это не повод кричать: «Я, meG@Duc, расскажу всем как хреново устроены солонки в этой компании, требую, чтобы они немедленно использовали другие». Тем более, когда это не касается напрямую клиентов этой компании. И со стороны владельца бизнеса, «кухню» которого публично вскрывают — это выглядело бы неэтично, отпугивало бы новых сотрудников, портило бы репутацию, снижало бы прибыли. Но у нас в стране интересы бизнеса не очень рассматриваются. Бизнесмен в глазах российского обывателя по-умолчанию обманщик, вор, наживающийся на простых смертных, поэтому уличить его в чем-то этаком практически цель каждого клиента, а публичное обличение вызывает предсказуемое одобрение. Но тут уже меня понесло немного.

            Вернусь к РЖД и «зайцам». Вот Che Burashka подмочили карму РЖД, а чего они добиваются угрозами, какая цель у них? Чтобы РЖД признали: «Ок, наши турникеты легко обойти», ввалили кучу денег на обновление турникетов, валидаторов, касс и прочего оборудования, поставило по часовому у каждого прохода, потом подняли цены за билеты, усложнили процедуру покупки билета? И все, вот теперь благодать, миссия выполнена, а зайцы как просачивались, так и просачиваются, только другими способами, гораздо более тривиальными. Спасибо, белые хакеры :)


  1. GermanRLI
    23.01.2018 17:06

    "Не знают про Android 7". Это не беда. В похожем приложении для покупки билетов с телефона СЗПК (Питер) их нельзя купить на андроиде ниже 5 (по состоянию на конец августа 2017). Причём выясняется это уже после установки приложения, не помню точно — возможно именно при попытке купить. Ну и при проверке билета требуют паспорт для подтверждения его уникальности )


  1. firk
    23.01.2018 18:08
    -3

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


  1. Attemka
    23.01.2018 18:45

    Безусловно, ребята молодцы, провели исследование и указали на несовершенность систем безопасности, однако шантаж «Микротех»-а для меня остался непонятен по нескольким причинам:
    а) данная уязвимость никак не затрагивает безопасность личных данных (да и найти такую уязвимость в этой системе будет сложно т.к. личных данных там хранится минимум)
    б) данная уязвимость не приносит ощутимой пользы потенциальному взломщику: даже при активной ежедневной езде для одного человека можно получить выгоду в районе 3000р. за месяц. Как минимум для Москвы не считаю это суммой, ради которой стоило бы в это ввязываться.
    в) данная уязвимость не обернется большими потерями для перевозчика: сколько примерно процентовпассажиров захотят пользоваться подобным софтом с учетом того, что он появится в открытом доступе? Думается мне менее чем пол процента, если это будет подразумевать что-то большее, чем юзер-френдли приложение на плеймаркете.
    г) да, для России это применимо в гораздо меньшей степени, но покупка билета приближает пассажира к более удобному пользованию теми же электричками. Так почему бы не платить за свой билет, если ты хочешь добираться до работы\учебы\чего угодно на современной электричке с комфортом?


    1. ammendorf
      23.01.2018 21:13
      +1

      Как знать. ЦППК например вынуждена была в этом году отключить возможность записать билет онлайн с телефона (Правда с поддержкой НФС лишь) на карту тройка в приложении «мой проездной» потому что наш народ быстро адаптировался под современные реалии и прознав про такую возможность, стал массово себе записывать билеты при появлении контролеров на текущий участок. Понятно, что при езде издалека, а основной процент безбилетников именно средне-дальний пригород, записать раз-два по 22 и 35 на выход (Если на головном вокзале) или еще +22 если это что то Выхиноподобное — гораздо дешевле, чем разовый билет. И это еще вариант, который требует недешевого спецоборудования (Не просто поддержки НФС, а определенного протокола этой НФС). Показанный же в статье вариант, как я понимаю, вообще никакого необычного оборудования не требует и будет прекрасно работать хоть на операторском смартфоне за 2000р.

      И да, основная концентрация зайцев по РФ это именно Московский и Санкт-Петербургский пригородные узлы и немного — приграничные с МО области.


  1. dzsysop
    23.01.2018 19:58

    Хочется ответить тем кто высказывается в том смысле что:
    поскольку производитель и система изначально знают и учитывают возможность использования каких-то багов в системе и наличие зайцев, то «тролить» их своими исследованиями безопасности как бы неправильно. А публиковать уязвимости и отчеты аморально и возможно даже подсудно.
    Я наверное даже на 99% согласился бы с такой позицией, особенно с учетом сегодняшней реальности в судебной системе и мнения «большинства».
    Но мне кажется что акцент в статье надо делать (и автор пытался это донести) не на техническом и моральном аспекте этой истории. А на конкретной ситуации и поведении некоей абстрактной (или очень конкретной) компании в нашей индустрии.
    Я бы поставил на голосование два вопроса:
    Что должна была сделать компания получившая информацию об уязвимостях?
    а. Обратиться в полицию
    б. Сказать спасибо и начать работу над ошибками
    в. Проигнорировать
    Что должны были сделать исследователи:
    а. Не начинать исследование (хакеры это зло! :-))
    б. Ипользовать уязвимости себе на благо
    в. Сообщить производителю системы обо уязвимостях
    При таком опросе стало бы ясно что автор абсолютно прав защищая талантливых ребят, способных принести пользу обществу. А руководство компании неправы? поскольку первое что они должны были сделать (по моему мнению) это сказать спасибо. Может и не стоило закрывать уязвимости (из-за заоложенных изначально и известных рисков как я отметил в начале). Но и подавать на исследователей в суд — контрпродуктивно, поскольку это не приносит никакой пользы ни одной из заинтересованных сторон: компания не получает никакой прибыли, зайцы продолжают использовать уязвимости, общество оплачивает дырявые системы, сисему «правосудия» и содержание талантливых и ответственных граждан в тюрьмах или по следствием (портя им репутацию в глазах общества на долгие годы), ИТ сообщество получает однозначный сигнал сто белым хакерам не рады в этой стране.


  1. Scf
    23.01.2018 21:38

    По ссылке пишут, что убытки ГУП «Мосгортранс» и ЦППК составили 2 млн. рублей. Интересно, как была посчитана эта сумма? Очень уж много билетов получается.


    1. Scf
      23.01.2018 21:42

      Вот, нашел альтернативную версию событий: https://lenta.ru/articles/2017/09/01/troyka/


      1. dzsysop
        23.01.2018 21:59

        Совершенно другая история. Правда наверное где-то посередине.

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

        Врезка в кабель, это уже не «из открытых источников» :-)


  1. cppk_mos
    24.01.2018 00:58

    От лица ЦППК хочу сказать, что статья полное вранье, в системах используется криптостойкое шифрование данных.


    1. ValdikSS
      24.01.2018 01:15

      Хочется подробностей.


    1. dzsysop
      24.01.2018 01:56

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


      1. cppk_mos
        24.01.2018 02:23

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


        1. ValdikSS
          24.01.2018 02:28

          Распишите, что конкретно, по вашему мнению, не так.
          Какие конкретно вы используете алгоритмы? Какие меры по усилению безопасности вы на этапе разработки системы вы предпринимали? Хочется услышать от вас подробностей, а не бездоказательных комментариев, которые невозможно проверить.


          1. cppk_mos
            24.01.2018 02:46

            Алгоритмы — 3des шифрование.


        1. dzsysop
          24.01.2018 02:33

          Извините мое недоверие, но вы разработчик или менеджер? «В системе используются криптостойкие алгоритмы» похоже на лозунг, но не на четкое опровержение.
          Читая фрагмент статьи про который вы говорите я вижу что автор не отрицает наличие какого-то шифрования, но обращает внимание на:

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

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


          1. cppk_mos
            24.01.2018 02:45

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


            1. dzsysop
              24.01.2018 03:04

              Я понимаю ваше негодование. Но для меня как читателя это не «полное вранье».

              Контрольное число давно уже не используется

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


            1. miraer
              25.01.2018 18:16

              В 2000-х применялась перестановка полей местами и добавление смещения к каждому полю. Это когда поменяли?


  1. and7ey
    24.01.2018 20:44

    Штрихкод защищается примитивной контрольной суммой, для ее реверсинжениринга нам понадобилось потратить приблизительно день и 6 использованных билетиков.

    Как это делается? Тут ведь обычным брутфорсом алгоритмы не подберешь.


  1. miraer
    25.01.2018 13:00

    Это сломали еще в 2002 году, и видимо, алгоритм до сих пор еще тот же:
    is.ifmo.ru/works/2002/fishman-rayer-xaker.pdf


  1. unclded
    25.01.2018 14:11
    +1

    Привет! Я из департамента информатизации РЖД. Если авторы исследования это читают — свяжитесь с нами, пожалуйста. Мы хотим подробнее пообщаться по поводу уязвимости. Почта: kustarevvb@center.rzd.ru


  1. botyaslonim
    25.01.2018 17:17
    +1

    Они вообще забавные.

    В декабре на Ярославском пригородном направлении случился какой-то сбой. В-общем, люди с удивлением обнаружили, что их проездные абонементы (на 10 или 20 поездок) не кончаются. Допустим, я почти весь декабрь (около 25 поездок) проездил по карте на 10 поездок. То есть сбой в работе ПО валидации билетов стоил ЦПКК какую-то тучу денег за некупленные проездные.

    Теперь они что-то сделали, и половина турникетов не валидирует даже правильные, действующие абонементы, купленные уже вот только что. Логики в этом сбое не просматривается никакой: вот просто сегодня этот конкретный турникет валидирует, завтра нет.

    Привет IT-департаменту, гуд джоб, гайз!


  1. ClusterM
    25.01.2018 19:15

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

    image