RFID-ридер ProxxMark 3 и дифавтоматы ABB с RFID-меткой
Тут какое дело? Меня всегда интересовало, чего это за такая RFID-метка на дифах у ABB, по которой можно их подлинность определять и считывать всякие логистические данные. Мне представлялось, что внутри будет какой-нибудь текст, ссылка на страничку сайта или мега-мощный серийник… я перепробовал разные ридеры, причём в режиме поиска меток — и ни одна скотина мне ничего не могла прочитать! Но наконец-то я разобрался (с подсказкой вида: «В каталог загляни, дурак») и смог побаловаться с ридером меток и посмотреть, чего там внутри!
Но сначала про подлинность. Чего тут щас сложилось? В нашей стране есть несколько способв получить АББшные дифы и другую продукцию. Легальный и правильный — это заказывать её у самих АББ и получать отгрузки с их склада или от их дилеров. В этом случае у вас будет и гарантия и поддержка. Но щас завелось очень много сайтов вида «Дифавтомат АББ от хх рублей», которые предлагают такие цены, от которых сами АББшники фигеют, потому что таких цен у нас в стране быть не должно.
Как такое делается? Я слышал от своих заказчиков, которые мне раньше (до всех весёлых случаев) в 2012-2013 годах активно покупали материалы сами, что это какие-то серые поставки: товар везётся в обход таможни через страны ближнего зарубежья, как их в СССР называли — Латвию, Литву и прочие. Ну или это подделки.
АББшники и их служба безопасности такие дела отслеживают и периодически делают рейды, чтобы прикрыть такие мутные конторы, и я их понимаю. Представляете, как я люблю выражаться — живёте вы у себя дома, а тут к вам пришли незнакомые люди и прям при вас начали грызть семки вам на кровать в спальне. Как оно? Приятно будет? Не захочется их выкинуть из дома?
У меня все автоматы куплены в ЭТМ, поэтому оригинальные. Я не знаю, где можно проверить серийник, поэтому просто покажу то, как я считал метки и то, чего в них хранится и где это можно использовать.
Для того, чтобы работать с RFID я купил себе навороченный ридер ProxxMark 3 на AliExpress (в других местах он зовётся как ProxMark — с одной «x»). Вроде как его используют для взлома разных ключей и для других непонятных дел. Мне же он интересен тем, что он поддерживает чтение кучи разных RFID-тэгов, причём в двух диапазонах частот: низком (это всякие Proximity и EM-Marine, про которые я упоминал в посте про СКУД) и высоком (NFC, Mifare и прочие). В теории он может ещё и брутфорсить зашифрованные ячейки разных карточек и в теории им можно раскрыть (прочитать) инфу из соцкарт или паспорта (вот пост на Хабре), но мы сегодня не про это.
В общем, ридер удобен тем, что поддерживает много чего. И если вам в руки попалась непонятная фигня — то вы можете приложить её к антеннам и начать поиск того, на чего она откликнется.
Если собрать ридер так, как указано в инструкции, то у вас получится вот такая хреновинка, на которой есть две антенны. Левая, с проволокой — низкочастотная 125 кГц, для Proximity/EM-Marine, а правая площадка — высокочастотная антенна 13,5 мГц для NFC и других стандартов.
RFID-ридер ProxxMark 3 и его антенны (Hi, Lo)
Сам ридер определяется системой как COM-порт и имеет обширный язык команд. Управлять им можно при помощи чего угодно, хоть скриптов. То есть, если накрутить 1Ску так, чтобы она умела отправлять-принимать данные в COM-порт, то можно хоть читалку или писалку RFID-меток построить под какую-нить логистику.
Но народ в Сети написал простую и удобную для ручных действий оболочку. Это программка, которая считывает дерево команд слева из XML-файла, в котором описано то, как должна называться команда в дереве и чего надо слать ProxxMark, когда команда активирована.
Графическая оболочка для ридера ProxxMark 3
Поэтому, если вам побаловаться (как мне), то этого будет достаточно. Втыкаем ридер в систему, смотрим, на какой COM-порт он встал (в случае чего меняем порт на другой). Если всё будет хорошо — то программа сконнектится с ридером и покажет его копирайты и версию.
И теперь балуемся с ABB. Первое, что надо знать — в каком стандарте или на какой частоте работает метка. С этим можно чуток угадывать, потому что низкочастотные метки имеют катушку с проволокой, которая и является антенной. А высокочастотным для антенны достаточно токой спиральной дорожки и мелкого микрочипа. Наша метка точно высокочастотная, потому что она выглядит как плоская наклейка. Кстати, АББшники говорят то, что на подделках это не метка, а ПРОСТО наклейка. Чип, который там должен быть — не прощупывается.
Дальше я долго тупил, потому что клал диф на ридер и запускал поиск меток в HF и LF-диапазонах (так они называются на ридере и в оболочке ридера). Ничего не находилось, потому что, как оказалось, некоторые метки не всегда попадают под критерии поиска, потому содержат в памяти не один ID, а несколько блоков данных. По моей догадке, ридер не знает чего читать — и иногда пропускает такие поиски.
Сколько я бился — ничего не находил (ну или я не умею ещё пользоваться ридером, потому что покупал его только под АББшные метки побаловаться). И тут мне АББшники и сказали, смеясь: «Глаза разуй!»
Разул и глянул в каталог. А там всё чётко написано: ISO 15693.
Описание стандарта RFID-меток дифавтоматов ABB из каталога
Ща побалуемся! Вот она — метка. Я оторвал её от одного дифавтомата из щита, в котором заказчик покупал материалы сам (в начале этого года). Диф был в середине других дифов, поэтому никто ничего не знает… ;)
Снаружи метка выглядит как обычная наклейка:
RFID-метка от ABB
А с обратной стороны мы видим сложную конструкцию: у метки есть антенна в виде тонкой дорожки, скрученной в спираль. А слева есть площадка, на которой находится чёрный квадратик. Этот квадратик — и есть микрочип, который от этой антенны получает питание и передаёт свои данные.
RFID-метка от ABB (сзади, виден чип)
На липовых дифах будет наклейка, но не будет чипа. Снаружи этот чип можно нащупать ногтем (но не сильно, чтобы его не передавить). Также может быть имитация этого чипа или, может быть потом, даже какие-то данные, которые будут считываться. Но будут ли они верными? ;)
А теперь балуемся. У меня как раз есть дифы DSN201 для одного из щитов, есть мой личный диф DS201, есть эта метка на бумажке и диф DS201 из щита, который я буду собирать.
Закинем DSN201 на ридер. Как оказалось, DSN201 тонкий — и ридер видит его даже в таком положении, как на фотке. Метка читается через толщину дифа.
Готовимся считать метку для дифавтомата DSN201
Оказывается, надо было не поиском, а раскрыть дерево в «ISO 15693» и нажать на «Dump Memory». Тогда ридер попытается прочитать всё, что ему доступно. На тех блоках, которых нет, он выдаст ошибку и остановится.
Считали метку для дифавтомата DSN201
Нам выдали кучу разной инфы и заодно производителя той мелкой микросхемки, которая находится в наклейке — NXP (Philips). Судя по всему, на этих метках всего есть 8 блоков данных, потому что на следующем блоке считывание остановилось.
Ридер прочитал уникальный UID метки (вверху). Его как раз можно считать серийным номером этого дифа, но где его проверить — я не знаю. Будет интересно, если кто найдёт и подскажет!
Дальше мы видим данные из блоков на метке. А чего у нас там лежит такое? Ну-ка: «12CSR255050R1164» и «L159». А чего это я такое жирным выделил? А это у нас артикул нашего дифа, который точнёхонько совпадает с тем, что написано на коробке:
Артикул автомата DSN201 совпадает с коробкой
А вот «L159» — это, скорее всего, какой-то код партии или даты выпуска дифа, потому что, как мы увидим дальше, этот код у всех дифов разный.
Теперь прочитаем DS201 C16 AC30 из щита ОВЕНа (там я его поломал и заменил за свой счёт). Он уже через толщину дифа не читается, и диф приходится укладывать меткой на антенну ридера.
Считаем метку автомата DS201 из моих запасов
Считали, получили другой UID метки, артикул дифа «2CSR255040R1164», код «J033»:
Метка автомата DS201 из моих запасов считана
Ну, конечно же, артикул и тут совпадает с коробкой:
Артикул совпадает с тем, что написано на коробке
А давайте прям из щита, который я ща собираю (ибо ЭТМ заменили шкафы, но с комедией) выдернем диф (пока гребёнки не стоят и пока я прервался на простой щит) и считаем его!
Считаем метку автомата DS201 C10 из нового щита
Смотрим. UID снова другой, код — «L264», а артикул — «2CSR255040R1104».
Метка автомата DS201 C10 из нового щита считана
Такс… чего это у нас такое? Агааааа: «DS201 C10 AC30». Верно! Это я выдернул диф из того ряда, где у меня защита освещения стоит!
А теперь глянем на ту наклеечку, которую я когда-то оторвал с одного из дифов щита:
Считаем мою метку из бумажки хрен знает от чего
Ну-ка? Артикул: «2CSR255040R1104» — то есть это тоже был «DS201 C10 AC30». Значит, со света опять спиздил! =) А код — «L011».
Метка из бумажки считана
Вот такие вот исследования получились. Чего можно из этого вытащить? RFID-метки реально работают и отдают свой ID (он зашит в микросхему и уникален для каждой метки) и записанную информацию. А в информации хранится артикул дифа с цифрой «1» перед ним, а потом — некий код, который меняется от дифа к дифу. Чего это за код — не известно.
Дополнение от ABB. Ага! Таки этот код — это дата выпуска устройства. Кодируется так: буква — это год (L — 2018, M — 2019 и так далее), а цифры — день производства. Например, L159 читается как 2018 год, 159-ый день — 9 июня.
С такими данными можно использовать эту штуку и как для отслеживания каждого дифа штучно на складах, и как для отслеживания модели товара при какой-то погрузке или разгрузке его на складах. Прикольно!
Проекту исполнилось 15 лет! Поддержать проект материально, проспонсировать проекты Автора или сделать ему подарок можно на этой странице: "Донаты и Спонсорство, Список Желаний".
Хех, так и думал что ABB юзает майфер метки. Спасибо за наводку на считыватель. Походу мощная штука, даже интересней чем pn522. Интересно, под ironlogic-вские софтины удасться подсунуть этот считыватель? Хотя у иронлоджиков по крайней мере простые юсб считки с ft232 сделаны ну и с подменеными серийниками фтди. А в этот считыватель я так понял и микроконтроллер и даже фпга воткнули? Тоже собираюсь заиметь универсальный ридер для rfid меток.
Эти метки отлично читаются любым телефоном с NFC, нужно только софтинку подходящую поставить.
CS
А можешь глянуть, не совпадает ли код на дифах с одинаковым артикулом купленных в одно время? Вероятнее всего это именно код партии, и это можно попытаться проверить таким способом.
А вообще, при отсутствии возможности получить информацию по серийнику этой метки и количество проверок, в идеале с указанием IP адресов или хотя бы страны, откуда приходил запрос на информацию по этому серийнику, защита становится бесполезной. Если у китайцев есть завод, который может производить оборудование такого качества, что держа его в руках невозможно отличить его от оригинала, то в чём проблема тогда клевать такие метки с рандомными серийниками? Стандарт-то и описание протокола доступны, да и производят этих меток в Китае фигову тьму.
Во! Тестанул много дифов — вчера один мутный заказчик привёз материалы на щит, последний из самозакупки — там такая жесть, что больше этого не будет.
Взял две упаковки (10 штук) DS201 C16 A30. Везде UID разные, уникальные, а код — L207. Один диф не прочитался ни в какую. Из завода прям (или хуй знает какой поставки).
Тестил на дифах DS201 C10 AC30. Там одна коробка грязная завалящая, а вторая свежее. Коды K146 и K201. У грязной код меньше. Так что видать это дата выпуска.
andy.pmb Ну у меня нет телефона с NFC, а ридер есть.
Redfox Тут видать какой-то промышленный стандарт, наверное, чтобы ещё и в логистику вписывалось. Поэтому этот ISO и взяли.
Ридер — не знаю, как именно сгодится. Он видится как COM-порт, но понимает свои команды. То бишь если IronLogic будет сразу читать из COM-порта данные ID — то обломится.
То есть, тут надо ридеру подать команды типа «работай с таким-то стандартом, прочитай блок памяти такой-то», а потом получать то, чего он прочитал.
Да, тут чего-то навертели. Я пробовал натравить его на ключ от домофона (радиоключ), так он его некоторое время мощно брутфорсил и потом вскрыл. Вот вроде как ARM и FPGA тут как раз для этой мощи.
Короче, он как автономный девайс идёт.
CS
Помнится где-то обсуждали идею клепать метки на распред. коробки, правда я не помню чем дело закончилось. Вот думаю может сделать пару объектов с такой хренью ради прикола)
Derspiwak, можно просто у того же айронлоджика купить mifare метки-этикетки и попробовать наклеить. Тогда телефоном с nfc можно будет читать. Но с дальностью будут вопросы- даже если нормальным ридером читать, то все-равно больше 10 см не выжмешь.
CS, по поводу меток- майфер просто наиболее распространен нынче, плюс позволяет хранить дополнительную информацию, плюс шифровать можно. Как вариант конечно использовать для складов EPC gen2- он вообще мегадальнобоен- пассивная метка может считываться нормальным ридером до 10 метров, но сами считыватели не слишком дешевы.
По поводу айронлоджика- если прикуплю этот ридер, то попробую ради интереса к айронлоджику прикрутить. В принципе и на айронлоджик и на этот ридер есть документации с описанием протоколов, поэтому можно будет поковыряться.
Derspiwak, ты имеешь ввиду оставлять метку в РК, которые потом наглухо замуровываются под отделкой, с целью их обнаружения через 10 лет? Насколько точно позиционирование получится?
el_boroda Да, клеить метку на крышку, чтобы можно было считать инфу, скажем id коробки, какая линия питания и что в ней расключено. Это в теории, как на практике будет не знаю)
Derspiwak, если чисто для маркировки, то проще quar-код. Инфы можно забить много, прочитать любым смартфоном на месте. Либо сфотать, и прочитать потом. Напечатать наклейку тоже трудностей нет. Такая система более автономна, в отличие от. Потеряется таблица соответствия rfid-id = коммент, все метки станут безполезными.
el_boroda Плюс радио-метки в том, что её можно закрасить, заштукатурить, спрятать под потолком, и т.п., и при этом ее всё-ещё можно будет обнаружить и прочитать. С QR-кодом так не получится.
Насчет таблицы соответствия- существуют RFID-метки/карточки с достаточным объемом встроенной памяти, чтобы записать туда сам комментарий, а не только его ID.
andy.pmb, а достаточный объем это сколько? Мне удалось найти 450 байт для общедоступных nfc карточек, или 716 байт для проприентарных NXP. Чертежи и фотку не зальешь :( Впрочем, для квар кода 3072байт тоже негусто. RFID вроде есть до 512Кб, согласно википедии. Реально есть такие?
Derspiwak По-моему на сообществе пробегало, что ли. Теперь я знаю, что это вонючие хипстеры-позитивистелы… На хуй пусть себе эти метки наклеют =)
Мне вот блядь интересно. Кто-то вообще ещё помнит, что коробки ОБЯЗАНЫ БЫТЬ ДОСТУПНЫМИ ДЛЯ ОБСЛУЖИВАНИЯ? И что поэтому их ВООБЩЕ НЕЛЬЗЯ ЗАМУРОВЫВАТЬ! И все эти хипстерские няшки сразу летят в трубу. В анальную.
На моих удивительно дешевых DS201 с помощью Nexus 7 читалось вот это:
Тип тега ISO 15693
NXP
NfcV, NdefFormatable
75:A8:1F:53:00:03:04:E0
-2304713809377384331
8478060739867903200
Брел, я тут мимо — и набрел на это случайно :).
Истина, она в последнем абзаце заметки — на заводе АББ где модульку делают, отгрузка и комплектование заказов идет с помощью роботизированного склада — робот ползает по рядам ( с охрененной скоростью, поэтому все кругом огорожено забором от человеков) стеллажей и собирает заказ, стаскивает его в кучу и может быть даже в коробку складывает ( не помню точно этот момент, помню что те люди на отгрузке которые были видны занимались исключительно надуванием чистым немецким воздухом полиэтиленовой колбасы и заполнением ею пустого места в коробке :) ). Так вот — естественно, учет отгрузок осуществляется с помощью меток. А вот это все про «защиту от подделок» — это скорее удачно приплетенный маркетинг от АББ. А так — чисто утилитарная вещь.
Все так, только QR надо читать каждый отдельно, а RFID можно скопом и прямо через коробку — что очень удобно на складах. Пришла скомплектованная коробка, ее ридером — чик — получили список всего того что внутри — сравнили с заказом — и адиос. Ну или завернули с пометкой выдать люлей комплектующему роботу :).
fiber Ахаха! Ну вот и разобрались с приколом! =)
А мне-то и было интересно, почему только итальянские дифы так маркируются… вот значит это у них завод продвинутый =)
для чтения RFID метки ABB достаточно современного смартфона с NFC. Так, они могут быть прочитаны iPhon’ом (если не ошибаюсь — начиная с 7-го и начинай с IOS 14). для этого можно использовать подходящее приложение [CS: Платная хуйня вырезана в пень!]
И важно не забывать устанавливать в приложениях ISO 15693 перед чтением.
Всё озвученное выше конечно замечательно, но чем проверить уникальность серийника?
Тот факт что он есть совершенно не означает оригинальность товара, что у продавана в каждой коробке 10 автоматов с номерами 1,2…10, в следующей коробке будут те же номера, а китаёзы тупо пакуют, чтобы номера не совпадали…. (как например SKYRC делает серийник и код, вбиваешь на сайте и видно, сколько его раз чекали, если там больше чем 1, то понятно что это клон…)