Однажды мне срочно понадобилось попасть в один бизнес-центр с пропускной системой в виде турникетов, открывающихся при помощи карт-пропусков. Человек, у которого находился в этот момент пропуск, был далеко, передать мне его он не мог, а оформление новой карты в силу бюрократических особенностей заняло бы много времени.
С чем мы имеем дело
Итак, человек с пропуском находится далеко, считывателя для бесконтактных карт у него с собой конечно же нет, но есть телефон, на который можно сделать фотографию карты.
По фото карта была опознана как EM-Marin, она же EM4100. Эти бесконтактные карты работают на частоте 125 КГц и содержат номер (далее — ID) размером 40 бит или 5 байт, который записывается на карту еще на заводе и не может быть изменен. Какой-либо защиты от чтения или копирования в них нет. Для создания дубликатов этих карт используются заготовки T5577 и EM4305, которые свободно продаются.
Перезаписываемые карты-болванки выглядят как обычная пустая пластиковая карта в форм-факторе кредитки, а не перезаписываемые (с прошитым на заводе серийным номером) чуть толще и на лицевой стороне у них нанесен текст, состоящий из нескольких групп десятичных цифр. Встречаются и карты в виде брелков.
Для записи таких карт потребуется соответствующий копировщик. Я использую Proxmark3, но можно взять любой другой, который может работать с T5577 и позволяет ввести ID карты вручную. Или же вовсе использовать эмулятор, тогда можно обойтись без болванок.
Карта не имеет своего источника питания, оно поступает со считывателя «по воздуху», как в беспроводных зарядках. Считыватель генерирует электромагнитное поле, карта улавливает его через антенну и включается. Далее карта модулирует поле и начинает циклически передавать свой ID, который улавливается считывателем, связь при этом односторонняя.
Как именно передаются данные с карты: сперва идет преамбула из 9 бит «1», затем передается 1 байт Version Number, 2 байта Facility Code и 2 байта уникального номера карты, периодически следуют биты контроля четности. Взято по ссылке, там кстати еще неплохое описание протокола (на английском).
В самом простом варианте построения СКУД считыватель сам является контроллером доступа – сравнивает ID карты с номерами в памяти и принимает решение об открытии замка или турникета. В системах посложнее он отправляет эту информацию на контроллер по какому-либо интерфейсу.
Эксперимент
Итак, на карте нанесены некие цифры. Было логично предположить, что это и есть ее ID. Для того, чтобы это выяснить, я взял данные аналогичной карты, получилось следующее:
Цифры на карте: 0013396136 204.26792
ID: 4A00CC68A8
После преобразования ID из HEX в DEC, получилось 317840976040, что не похоже на цифры с карты. Спойлер: если бы я сделал наоборот, и конвертировал цифры с карты в шестнадцатеричный формат, то я добился бы успеха сразу, но тогда эта статья была бы не такой содержательной :)
Размышляя над тем, что еще оно может значить, я вспомнил, что Proxmark помимо ID карты показывает еще кое-какие данные:
proxmark3> lf search
NOTE: some demods output possible binary
if it finds something that looks like a tag
False Positives ARE possible
Checking for known tags:
EM410x pattern found:
EM TAG ID : 4A00CC68A8
Possible de-scramble patterns
Unique TAG ID : 5200331615
HoneyWell IdentKey {
DEZ 8 : 13396136
DEZ 10 : 0013396136
DEZ 5.5 : 00204.26792
DEZ 3.5A : 074.26792
DEZ 3.5B : 000.26792
DEZ 3.5C : 204.26792
DEZ 14/IK2 : 00317840976040
DEZ 15/IK3 : 000352190666261
DEZ 20/ZK : 05020000030301060105
}
Other : 26792_204_13396136
Pattern Paxton : 1256236712 [0x4AE0A6A8]
Pattern 1 : 10853441 [0xA59C41]
Pattern Sebury : 26792 76 5007528 [0x68A8 0x4C 0x4C68A8]
Valid EM410x ID Found!
proxmark3>
Ага, 0013396136 и 204.26792 — это именно то, что написано на карте!
Но ведь на ней хранится всего лишь 5 байт, значит эти числа должны вычисляться из ID по некому алгоритму ридером или его клиентом. К счастью, Proxmark – open-source проект, его исходные коды доступны на гитхабе . Я сделал поиск в репозитории по строке «DEZ 10» и нашел функцию cmdlfem4x.c.
...
//output 88 bit em id
PrintAndLog("\nEM TAG ID : %06X%016" PRIX64, hi, id);
} else{
//output 40 bit em id
PrintAndLog("\nEM TAG ID : %010" PRIX64, id);
PrintAndLog("\nPossible de-scramble patterns");
PrintAndLog("Unique TAG ID : %010" PRIX64, id2lo);
PrintAndLog("HoneyWell IdentKey {");
PrintAndLog("DEZ 8 : %08" PRIu64,id & 0xFFFFFF);
PrintAndLog("DEZ 10 : %010" PRIu64,id & 0xFFFFFFFF);
PrintAndLog("DEZ 10 : %010" PRIu64,id & 0xFFFFFFFF);
PrintAndLog("DEZ 5.5 : %05lld.%05" PRIu64,(id>>16LL) & 0xFFFF,(id & 0xFFFF));
PrintAndLog("DEZ 3.5A : %03lld.%05" PRIu64,(id>>32ll),(id & 0xFFFF));
PrintAndLog("DEZ 3.5B : %03lld.%05" PRIu64,(id & 0xFF000000) >> 24,(id & 0xFFFF));
PrintAndLog("DEZ 3.5C : %03lld.%05" PRIu64,(id & 0xFF0000) >> 16,(id & 0xFFFF));
...
Из кода выше становится ясно, что эти числа – части ID карты:
0013396136 (DEZ 10) – первые 4 байта, если считать от младшего к старшему.
204.26792 (DEZ 3.5C) – третий байт отдельно (он же Facility Code) и непосредственно 2 байта серийного номера карты.
Таким образом, по цифрам на карте можно восстановить часть ее ID. Но как быть, если известны 4 байта, а требуется 5? И если четвертый байт имел значение 0 на всех считанных мной картах, то пятый байт всегда ненулевой. Перебирать этот байт в конкретном случае не вариант — не хочется вызывать подозрения у охраны.
Тут я вспомнил, что СКУД в этом бизнес-центре установлен достаточно давно, поэтому я предположил, что там может использоваться для передачи данных популярный, но устаревший Wiegand-26. Этот протокол предназначен для связи считывателя с контроллером, и позволяет передавать за одну посылку 24 бита данных и 2 бита четности, итого 3 байта полезной нагрузки. Это означает, что ID карты не передается полностью и неизвестный пятый байт никак в идентификации не участвует и может быть рандомным.
Стоит отметить, что некоторые современные считыватели все же читают и сравнивают старший байт карты, в таком случае придется перебирать 255 комбинаций, но это можно сделать за приемлемое время, особенно если использовать эмулятор.
Ну что же, теперь осталось проверить на практике все изыскания выше. Для создания копии карты я взял заготовку T5577 и записал на нее полученный ID (пятый байт — случайный):
proxmark3> lf em 410xwrite 0100CC68A8 1
Writing T55x7 tag with UID 0x0100cc68a8 (clock rate: 64)
#db# Started writing T55x7 tag ...
#db# Clock rate: 64
#db# Tag T55x7 written with 0xff80600630c8d23a
proxmark3>
Получилась почти полная копия карты с фото, отличается только старший байт. Для уверенности можно еще раз ввести команду lf search и проверить, совпадают ли DEZ 10 и DEZ 3.5C с цифрами на оригинальной карте.
После этого я записал уже преобразованный аналогичным образом ID нужного мне пропуска.
Как и ожидалось, карта считалась корректно, турникет щелкнул, мигнул зеленым индикатором.
Пост-скриптум
Если вы отвечаете за безопасность, то скорее всего, все описанное в этой статье не будет для вас новостью. В противном случае все же не стоит преждевременно рвать волосы на теле. Проблема кроется в том, что данный формат карт изначально не обеспечивает высокого уровня безопасности. Эти карты не поддерживают каких-либо механизмов аутентификации и шифрования, следовательно могут быть скопированы в любой момент подходящим считывателем. На серьезных объектах, таких как банки, дата-центры и хранилища ядерных боеголовок, вместо EM-Marin применяются более защищенные форматы карт (по крайней мере, хочется в это верить). Например, это семейство MIfare, где карты разделены на сектора с индивидуальными ключами чтения и записи, а некоторые карты этого стандарта поддерживают даже алгоритм шифрования AES. Ну и не стоит забывать про дополнительные методы контроля доступа.
В любом случае, не копируйте чужие карты без согласия их владельцев.
PaulAtreides
В бизнес-центр, можно пройти по паролю «я в ООО „Ромашка“, список Ромашек в бизнес-центре можно посмотреть на яндекс-картах и выбрать себе подходящую. На объектах чуть более сложных обычно обладателей карт фотографируют, а фото после прикладываения карты выкидывается на экран охраннику для сравнения.
Поэтому, беззащитность em-marine против многочисленных методов копирования редко кого парит.
hokum13
Только вот этот вот метод — костыль. Охранник может отойти в туалет, отвлечься на какое-нибудь безобразие и т.д… В конце концов, сейчас и вовсе можно надеть медицинскую маску.
Плюс к тому эти карты могут использоваться не только на турникетах на входе в здание, но и для перемещения по кабинетам. А к каждому кабинету охранника, который будет сверять фото с натурой, не поставишь.
Вариант «я в ООО 'РиК'» для человека способного скопировать карту — не вариант, т.к. на этот пароль охранник ответит отзывом «Ваш паспорт». А подделать паспорт несколько сложнее, чем скопировать карту,
сделать грим и т.д…
Tangeman
Если охранник там не для галочки — на случай отлучения их как минимум двое, плюс видеонаблюдение из совсем отдельной комнаты (где тоже как минимум двое наблюдателей).
Любая система пропуска без серьёзной биометрии (причём минимум двумя методами — например отпечаток руки и скан роговицы) требует аудио-визуального контроля охранником (да, вплоть до посмотреть в глаза, задать пару вопросов и получить неодносложный ответ), так что это совсем не костыль, по крайней мере на действительно режимных объектах.
Если нужен просто документ — это стоит максимум 100-200 баксов, со всеми защитными атрибутами настоящего и он даже будет читаться ридерами — никакой охранник, не обладающий возможностями и оборудованием пограничной службы или МВД не отличит его от оригинала, да и те не отличат без ридера или пробивания по базе.
hokum13
Это уже какой-то монетный двор нужно пентестить, чтобы охранник был «не для галочки». В реальной жизни 90%+ даже вакансий охранников для галочки, не то что отношение к работе самих охранителей.
А mifare-программатор, который позволит записать карту стоит 20$ (плюс 5 карт в комплекте).
При этом, покупка поддельного паспорта мало того что не законна, так еще и не всем доступна (у меня вот например таких знакомых нет).
Повторю ситуацию: нужен пропускной режим не только на внешнем периметре (турникет), но и непосредственно в кабинеты(чтобы избавиться от ключей). К каждой кладовке будете по охраннику сажать? Или на каждую дверь биометрию вешать?
А если проверка только на внешнем периметре, то его можно пройти и с легальным ключом, используя копию только для дальнейшего передвижения.
Tangeman
А подделка пропуска законна? Тот кто собирается проникнуть на охраняемый объект по чему угодно поддельному уже нарушает закон, а если учесть что (обычно) этого не делают для того чтобы выпить кофе с приятелем или стащить плохо лежащий дырокол, то и денежные затраты в 100-200 баксов — это и не затраты вовсе.
Если это пентест то всё равно платит заказчик, но если это имеет какую-то иную цель и она не окупит таких затрат — стоит ли оно того?
Аэропорт, хранилище или ДЦ банка, опасное производство, etc — совсем не монетные дворы. Да и БЦ разные бывают — некоторые как раз специализируются на хорошей безопасности.
В моей практике (когда-то давно я этим занимался) был клиент попросивший навороченные СКУД, охранку с датчиками разрушения стен(!) и почти полное покрытие камерами (внешний периметр включая крышу, все двери, лестничные пролёты, коридоры, ДЦ, приёмная директора и хранилище документов), хотя они всего-то строительная компания, и в охране у них были исключительно бывшие силовики — я так и не понял чего они опасались, на вид совсем не бандиты.
В этом случае вы оставляете след, потому что ни в одной адекватной СКУД внутри не будет работать ключ который не прошёл внешний периметр. Если же прошел (допустим, у вас копия ключа сотрудника который уже в здании) — то опять-таки, адекватая СКУД обнаружит неадекватное его использование (например, сотрудник прошёл к себе в кабинет, а вы ломитесь в это время в совсем другое помещение).
И наконец, если в здании есть помещения куда не всем можно и где что-то очень ценное/опасное, то да — там тоже будет биометрия или (как минимум) ваше лицо попадёт на камеру в момент использования ключа и попытки входа в помещение, и вам придётся объяснять своё поведение СБ не позднее чем на выходе из здания.
Я, разумеется, отдаю себе отчёт что правильно обеспечивают доступ и охрану небольшой процент организаций, но в наше время это всё не так уж и дорого, по сравнению с серединой 90х, особенно если компании есть что терять.
anonymous
Подделка пропуска, форма которого не установлена каким-либо законом или актом органа властных полномочий, не является подделкой документов и не подпадает под ст. 327 УК РФ. Подделка электронного пропуска подпадает под ст. 274 УК РФ, но там ответственность возникает только в случае, если был причинен ущерб. Доказать ущерб слишком сложно, даже если он есть, а если его нет то сфальсифицировть ущерб еще сложнее, и возиться никто не будет.
Tangeman
А несанкционированное проникновение на закрытую частную территорию тоже не нарушает законов?
anonymous
Проникновение без взлома, не в жилище и без покушения на кражу точно не является преступлением и не подпадает под УК РФ. По поводу КоАП с полной уверенностью сказать не могу, но 90% что там про это тоже ничего нет.
Tangeman
Насчёт УК я в курсе, КоАП упоминает только объекты ведомственной охраны, так что ситуация действительно интересная… Получается, формально можно в наглую перешагнуть турникет и ничего за это не будет — потому что любая охрана, кроме (вне)ведомственной, не имеет никаких прав (кроме вызова полиции), более того, даже вызов полиции в теории ничего не даст — если это не нарушение, а любое применение силы со стороны охранников уже как раз будет нарушением.
nlykl
КоАП РФ Статья 20.17. Нарушение пропускного режима охраняемого объекта:
1. Самовольное проникновение на охраняемый в установленном порядке объект, за исключением случаев, предусмотренных частью 2 настоящей статьи, — влечет наложение административного штрафа в размере от трех тысяч до пяти тысяч рублей с конфискацией орудия совершения административного правонарушения или без таковой.
Собственно, таблички о том, что объект охраняется ЧОПом вешают именно для этого.
DMGarikk
в интернетах я нашел такой комментарий к этому закону
и
==
я не настоящий сварщик конечно, но пока чтото не видно что это распространяется на объекты охраняемые ЧОПами
nlykl
Задача частного охранного предприятия — охранять имущество или людей заказчика в установленном порядке. Иначе зачем оно нужно?
Ваш комментарий скорее про вторую часть этой статьи КоАП, которая появилась около пяти лет тому назад.
Tangeman
Я тоже совсем не сварщик, но мне кажется что вторая часть просто про другие типы объектов — подводные или подземные, и в обоих частях речь про "охраняемые в установленном порядке", которыми (в свою очередь) могут быть только объекты определяемые в 77-ФЗ — и там ни слова про ЧОП, исключительно про ведомственную охрану, ибо нигде больше (по крайней мере я не нашёл) нет определения "установленного порядка".
Так или иначе, только ведомственная и вневедомственная охрана могут применять какие-либо действия к нарушителями с целью недопущения и всего такого, но ни первые ни вторые не являются ЧОП, а ЧОП, соответственно, не может быть первым или вторым — то есть (по букве закона) прав у них нет никаких, кроме вызова полиции.
nlykl
Правоприменительная практика различается:
sudact.ru/regular/doc/VqTGBNolrBNE
sudact.ru/regular/doc/n5HFt5joO6Ug
Что из этого считать правильным, судить не возьмусь.
Tangeman
Во втором случае не был использован аргумент по поводу несоответствия ЧОП имеющимся определениям, думаю, грамотный адвокат легко бы это доказал (как было в первом случае), а так — рассмотрели ровно те доводы которые были — "не знал, не видел".
hokum13
Т.е. даже если удастся доказать вину, то штраф будет меньше чем стоимость поддельного паспорта…
И да, 3-5к рублей явно меньше, чем уголовные «до года ограничения свободы, лишения свободы или принудительных работ» по 327 УК РФ.
sergarcada
Вариантов может быть больше — вход на этаж, крыло или просто помещение по пропуску и при этом охранников на это все не напасешься.
DMGarikk
«вон телефон, номер Ромашки 1020, мне позвонят оттуда и пропуск закажут, с вас паспорт» (с)
ICELedyanoj
В нормальных бизнес-центрах, помимо турникета на входе, есть ещё дверь в конкретный офис, закрытая на тот же замок.
И бывает даже сложнее — работал на «режимном» объекте (патентное бюро) — там и пропуска сразу с фотографией под человека изготавливались, и на лифте не на свой этаж не поедешь. А даже если доехал за кем-то — никуда дальше лифтового тамбура не пройдёшь.
Sabin
Плюсую. Стандарт не преподносит себя, как защищённый от копирования ключа. К тому же то, что цифры на карте совпадают с передаваемым кодом наоборот плюс — карту можно внести в список разрешённых удалённо, не подходя к двери. А вот с брелками так не получается, на них написана только первая часть номера. Их приходится прикладывать и в том же порядке назначать сотрудникам (к слову, хотел бы статью, как клонировать брелок по его фото). Даже условно-бесплатный guard light, который предлагают на сайте известного производителя контроллеров для em-marin может выдавать ФИО проходящего в данный момент, а более продвинутый plus сразу и фото покажет.