Ридер iButton на базе нано-буратины

Опубликовано raxp в ВС, 08/03/2015 - 19:56

Данный комплекс ПО предназначен для автономной работы с ключами iButton на базе модуля Arduino или ее клонов и передачи кодов идентификаторов ключей на верхний уровень по виртуальному COM-порту over интерфейса USB/BlueTooth в ОС NT/2000/2003/XP/Vista/7/8. Восстановление связи при использовании виртуального последовательного порта осуществляется автоматически.

Видео:

Работа с NFC/RFID/iButton:

Cистемные требования и зависимости

1. Windows XP/Vista/7/8/8.1.
2. Наличие виртуального или физического COM-порта over USB/BlueTooth (модуль прозрачного UART over BT - HC-05).
3. Модуль Arduino (любой).
4. Ключи iButton.

Схема подключений:

Скетч:

//--------------------------------------------
// iButton Reader realtime for Arduino Nano328
// Developer: Badlo Sergey Grigoryevich
// H-page: <a href="http://raxp.radioliga.com" class="bb-url">http://raxp.radioliga.com</a>
//--------------------------------------------
 
 
#include <OneWire.h>
 
// идентификторы двух ключей iButton
byte key1[8] = {0x01, 0x5D, 0x90, 0x29, 0x10, 0x00, 0x00, 0x47}; // 01 5D 90 29 10 00 00 47
byte key2[8] = {0x01, 0x70, 0xC1, 0x0F, 0x10, 0x00, 0x00, 0x9A}; // 01 70 C1 0F 10 00 00 9A 
 
int pinNumber = 2;      // подтянуть на Vcc через R=2.2 кОм
OneWire ds(pinNumber);
 
void setup() {
 pinMode(3, OUTPUT);    // анод первого светодиода 
 pinMode(4, OUTPUT);    // катод
 digitalWrite(3, LOW);  // включить - HIGH
 digitalWrite(4, LOW);
 
 pinMode(12, OUTPUT);   // анод второго светодиода 
 pinMode(9, OUTPUT);    // катод
 digitalWrite(12, LOW); // включить - HIGH
 digitalWrite(9, LOW);
 
 // подтяжка к плюсу 2-пина
 pinMode(pinNumber, INPUT);
 digitalWrite(pinNumber, HIGH);
 
 Serial.begin(9600);
}
 
void loop() {
  byte addr[8];
  byte val1 = 0;
  byte val2 = 0;
 
  delay(100);
  if (ds.search(addr)) { // если обнаружен, шлем идентификатор на верхний уровень
   Serial.print("#"); // старт пакета
   for (int i=0; i<8; i++) {
       Serial.print(" "); // разделитель пробел
       Serial.print(addr[i], HEX);
 
       // 1-ключ (аппаратная идентификация, например мастер-ключа)
       if (addr[i] == key1[i]) val1++;
       // 2-ключ
       if (addr[i] == key2[i]) val2++;
   }
   Serial.print("@"); // стоп пакета
   Serial.println("");   
   ds.reset_search();
  }
 
  // индикация на первом светодиоде
  if (val1 == 8) {
     digitalWrite(3, HIGH);
     delay(500);
     digitalWrite(3, LOW);
  }
  // индикация на втором светодиоде
  if (val2 == 8) {
     digitalWrite(12, HIGH);
     delay(500);
     digitalWrite(12, LOW);
  }   
}

ПОРЯДОК ИСПОЛЬЗОВАНИЯ и ОГРАНИЧЕНИЯ

1. Вы можете произвольно задавать COM порт в демонстрационном ПО 'iButton_Reader.exe'.
2. Скетч 'iButton.ino' осуществляет автономное чтение любых 1-Wire устройств и распознавание двух установленных идентификаторов с последующими действиями, например включение нагрузки.
3. Для работы интерфейса 1-Wire требуется подтяжка порта (пин 2 в скетче) на плюс питания через сопротивление от 4.7 до 2 кОм (чем длиннее провода до контакта, тем меньшее сопротивление требуется выбрать для стабильной работы).
4. Осуществляется автоотслеживание выдергивания конвертора UART/USB (через SetupAPI) и переподключение на заданный при инициализации порт.

]]>забрать визуализацию]]> или:

ВложениеРазмер
iButton-Reader realtime.zip763.84 КБ
sized_Э3_iButton + Arduino.JPG50.82 КБ

Комментарии

11 комментария(ев)
аватар: Va-Bank
Va-Bank
Дата: ВС, 08/03/2015 - 21:12
Звание: Гуру
Сообщений: 8258

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

аватар: raxp
raxp
Дата: ВС, 08/03/2015 - 23:42
Звание: Мастер
Сообщений: 1090

...можно программировать, но не те ключи что на видео (DS1990A от Dallas Semiconductor и пр.), в эти (ширпотребовские, домофонные) уже жестко зашиты идентификаторы на заводе-изготовителе. Однако промышленностью выпускаются и перепрограммируемые, DS1973 к примеру, с расширенной 4Kb EEPROM и т.д.

зы: таким же макаром в то же место можно подключать и датчики температуры, DS18B20 и т.д.

аватар: Va-Bank
Va-Bank
Дата: Пнд, 09/03/2015 - 02:34
Звание: Гуру
Сообщений: 8258

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

аватар: raxp
raxp
Дата: Пнд, 09/03/2015 - 04:11
Звание: Мастер
Сообщений: 1090

...если речь о смарт-ключах типа eToken, то там идет как открытый, так и защищенный обмен ключами разной степени битности, от 40-ка и выше (до 256, если не ошибаюсь ...выше какие-то там ограничения лицензионные), да еще и разные интерфейсы бывают, не только 1-Wire, но и USB (скажем на AT90SC25672RCT-USB), есть и eToken по RFID (по радиоканалу).

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

аватар: Va-Bank
Va-Bank
Дата: Пнд, 09/03/2015 - 08:19
Звание: Гуру
Сообщений: 8258

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

аватар: AltaVista
AltaVista
Дата: Пнд, 09/03/2015 - 12:16
Звание: Мастер
Сообщений: 1812

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

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

аватар: raxp
raxp
Дата: Пнд, 09/03/2015 - 18:06
Звание: Мастер
Сообщений: 1090

...именно.

А для брута ключ как таковой не нужен, нужна лишь болванка для удобного контакта (некоторые ее делают из аккумов Smile). Весь перебор (отсылку) можно осуществлять из скетча прямо из буратины. Скорость перебора можно поднять двумя путями: 1- использовать прямые обращения к портам (работая с шиной 1-Wire) напрямую, минуя библиотеки буратины, 2- исключить из перебора постоянные позиции в 8-ми байтном ключе (обратите внимание на видео на первые байты и средние, они совпадают, у меня ключи от разных домофонов и разных компаний в городе). Однако как быстро мы бы не пытались сделать перебор со стороны дубликатора есть непреодолимое ограничение - это сам считыватель (контроллер домофона), вот он то сводит на нет метод тупого брута по времени.

Рекомендовал бы ознакомиться ]]>http://electromost.com/news/universalnyj_kljuch_vezdekhod_mify_i_realnost/2011-02-05-25]]>

аватар: AltaVista
AltaVista
Дата: Втр, 10/03/2015 - 01:26
Звание: Мастер
Сообщений: 1812

Цитировать

Рекомендовал бы ознакомиться ]]>http://electromost.com/news/universalnyj_kljuch_vezdekhod_mify_i_realnost/2011-02-05-25]]>

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

аватар: raxp
raxp
Дата: Втр, 10/03/2015 - 01:47
Звание: Мастер
Сообщений: 1090

...ага, это как раз по этим причинам.

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

p.s.: заказал, кстати, NFC-RFID ридер, вот жду когда приедет.

аватар: AltaVista
AltaVista
Дата: Втр, 10/03/2015 - 02:25
Звание: Мастер
Сообщений: 1812

Потом отпишись про NFC.
Заказывал с Китая usb'шный NFC ридер, для работы со смартфоном, но он так и не доплыл до меня.

Так что будет интересно почитать про твой опыт с NFC.

аватар: raxp
raxp
Дата: Втр, 10/03/2015 - 02:41
Звание: Мастер
Сообщений: 1090

Cамо собой Smile

Сабж приехал, смотреть ]]>https://www.youtube.com/watch?v=O-CPXhgMNAQ]]>