Как известно, компьютеры были изобретены в 1871 году, но только в 1961 году контроль доступа к ним (ПК) начали осуществлять с помощью пароля. В настоящее время кроме буквенно-цифровых паролей доступно и множество новых, появившихся сравнительно недавно, способов идентификации: с помощью жестов, отпечатка пальца, распознавания лица и многое другое.
В этой статье мы рассмотрим как разблокировать компьютер, работающий на операционной системе Windows, с помощью платы Arduino и меток RFID (Radio Frequency Identification — радиочастотная идентификация). К компьютеру будут подключены плата Arduino и считыватель RFID меток и чтобы разблокировать компьютер нужно будет всего лишь поднести «правильную» радиочастотную метку к считывателю RFID меток.
На нашем сайте вы можете посмотреть все проекты, в которых используется радиочастотная идентификация.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- RC522 RFID reader (считыватель радиочастотных меток) (купить на AliExpress).
- RFID метки.
- USB кабель.
- Соединительные провода.
Считыватель RFID меток RC522
Сейчас на рынке доступно достаточно много моделей считывателей RFID меток, однако для нашего проекта мы выбрали модуль RC522, работающий по интерфейсу SPI. Это достаточно дешевое устройство, доступное для покупки практически во всех магазинах радиоэлектроники. Модуль RC522 имеет интерфейсы SPI, UART и I2C, однако по умолчанию он использует интерфейс SPI. Внешний вид данного модуля показан на следующем рисунке.
В этом проекте модуль RC522 подключен к плате Arduino, а плата Arduino подключена к компьютеру. Когда RFID метку подносят к модулю RC522, плата Arduino с его помощью считывает идентификатор RFID метки (ID number) и передает его в компьютер.
Схема проекта
Схема подключения считывателя RFID меток RC522 к плате Arduino представлена на следующем рисунке.
Поскольку RFID модуль RC522 работает по интерфейсу SPI, то подключить его к плате Arduino достаточно просто – мы соединили его контакты MISO, MOSI, SCK и NSS к контактам SPI платы Arduino Uno. Модуль RC522 запитывается от контакта 5V платы Arduino. Сама же плата Arduino получает питание по USB кабелю от компьютера. Полный список соединений в схеме представлен в следующей таблице.
Модуль RC522 | Плата Arduino Uno |
VCC | 3.3V |
GND | GND |
RST | D9 |
MISO | D12 |
MOSI | D11 |
SCK | D13 |
SDA/NSS | D10 |
Внешний вид собранной конструкции проекта показан на следующем рисунке.
После сборки схемы проекта подключите плату Arduino к компьютеру. Определите COM порт компьютера, к которому подключилась плата Arduino – это можно сделать либо с помощью диспетчера устройств Windows, либо с помощью Arduino IDE как показано на следующем рисунке. В нашем случае плата Arduino оказалась подключенной к COM порту под номером 1.
После этого в плату Arduino необходимо загрузить код программы для работы с модулем RC522 – он приведен в конце статьи. После загрузки кода программы в плату откройте окно монитора последовательной связи (serial monitor). Затем прислоните RFID метку к модулю RC522, после чего вы увидите в окне монитора последовательной связи 5 значений. Эти значения необходимо скопировать себе в «укромное место» и закрыть окно монитора последовательной связи. Полученные нами значения показаны на следующем рисунке.
После этого скачайте каталог с настройками RFID (rfid_configuration folder) по следующей ссылке — rfid_configuration ZIP file. По этой ссылке вы скачаете ZIP архив, в котором будет 4 файла.
После распаковки ZIP архива зайдите в нем в каталог с именем 32 bit или 64-bit в зависимости от того 32 или 64-разрядная у вас операционная система. В этом каталоге откройте текстовый файл RFIDcredentials.txt. Вставьте в него свои значения из окна монитора последовательной связи (которые вы получили ранее) и обновите (укажите свои) имя пользователя (user name) и пароль (password). Если вы хотите добавить две карты для входа в операционную систему, то заполните и вторую строчку в файле RFIDcredentials.txt как показано на следующем рисунке.
После этого сохраните и закройте этот файл. Затем откройте из этой же папки файл RFIDCredSettings, измените в нем номер COM порта, к которому подключена плата Arduino, на свой, сохраните и закройте этот файл. Остальные значения в файле не меняйте.
Теперь скопируйте все 4 элемента нашего каталога, которые вы извлекли из скачанного ZIP архива и изменили в них часть значений на свои, в каталог C:WindowsSystem32. Если система потребует подтверждения этой операции – подтвердите ее.
Теперь запустите файл реестра (register file) чтобы внести изменения в реестр. При этом, скорее всего, вы на своем экране увидите примерно следующее диалоговое окно:
Нажмите «yes», затем «ok». После этого осуществите выход из системы и вы увидите что в систему был добавлен еще один пользователь – с именем RFID.
Вход в учетную запись этого пользователя теперь можно будет осуществлять с помощью RFID карт/меток. То есть никакого пароля на вход в систему вводить уже не будет нужно – достаточно будет всего лишь прислонить RFID метку к RFID считывателю и вход в систему произойдет автоматически.
Объяснение программы для Arduino
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
Первым делом в программе нам необходимо подключить заголовочные файлы всех используемых библиотек и определить контакты для RFID RST_PIN и SS_PIN. Если в вашей Arduino IDE еще нет библиотеки для работы с модулем RC522 (mfrc522 library), то вы можете скачать ее по следующей ссылке — MFRC522 Arduino Library. После скачивания библиотеку необходимо добавить в вашу Arduino IDE.
#include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN, RST_PIN); MFRC522: : MIFARE_KEY; |
Затем в функции void setup мы инициализируем последовательную связь со скоростью 9600 бод и связь по интерфейсу SPI со считывателем RFID меток.
void setup() { serial.begin(9600); while(!Serial); SPI.begin(); mfrc522.PCD_Init(); for(byte i = 0; i < 6; i++) Key.KeyByte[i] = 0xFF; serial.print(‘>’); } |
После этого в функции void loop() мы будем ждать когда к считывателю прислонят RFID карту.
void loop() { if( ! mfrc522.PICC_IsNewCardPresent() ) return; if( ! mfrc522.PICC_ReadCardSerial() ) return; send_tag_val (mfrc522.uid.uidByte, mfrc522.uid.size); delay(1000); } |
Если карта будет найдена, то произойдет вызов функции send_tag_val, которая передаст данные из RFID метки в компьютер с помощью порта последовательной связи. Эти данные в компьютере будут сравниваться с данными, которые мы ранее сохранили в файле – при их совпадении будет осуществлен вход (разблокировка) в систему.
void send_tag_val (byte *buffer, byte buffersize) { serial.print(«ID»); for (byte i = 0; i < buffersize; i++) { serial.print(buffer[i], DEC); serial.print(» «); } serial.printIn(0, DEC); serial.print(‘>’); } |
Более подробно работа проекта показана в видео, приведенном в конце статьи.
Исходный код программы (скетча)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN, RST_PIN); MFRC522::MIFARE_Key key; void setup() { Serial.begin(9600); while (!Serial); SPI.begin(); mfrc522.PCD_Init(); for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF; Serial.print(‘>’); } void loop() { if ( ! mfrc522.PICC_IsNewCardPresent()) return; if ( ! mfrc522.PICC_ReadCardSerial()) return; send_tag_val(mfrc522.uid.uidByte, mfrc522.uid.size); delay(1000); } void send_tag_val(byte *buffer, byte bufferSize) { Serial.print(«ID:»); for (byte i = 0; i < bufferSize; i++) { Serial.print(buffer[i], DEC); Serial.print(» «); } Serial.println(0, DEC); Serial.print(‘>’); } |
Видео, демонстрирующее работу проекта
Загрузка…
3 128 просмотров
Rohos Logon Key 3.5 объявляет поддержку RFID считывателей KCY 125 USB (КСУ-125) а также RFIDeas pcProx. Это позволяет использовать различные типы бесконтактных карт, брелков и браслетов EM-Marine, HID Prox или Indala для осуществления удобной и безопасной авторизации на рабочие станции Windows. Использование простого пароля для входа в рабочий Windows теперь можно заменить на физический ключ либо ключ + PIN код. Это позволит усилить уровень информационной безопасности, упростить доступ к ПК и одновременно контролировать уровень доступа к информации.
В Кратце что нового в Rohos Logon Key: Добавлена Поддержка RFID считывателей KCY 125, RFIDeas pcProx, улучшена работа программы в Windows 10, доработка сетевого режима для Windows Active Directory.
Список улучшений:
- В Windows 10 программа Rohos отключает дополнительное окно блокировки для того чтобы пользователь не нажимал пробел или ESC перед тем как ввести пароль или электронный ключ.
Программа изменяет ключ реестра HKEY_LOCAL_MACHINE SOFTWAREPoliciesMicrosoftWindowsPersonalization, NoLockScreen=1 - Добавлена поддержка RFID считывателя KCY-125-USB популярного в России. Поддерживаемые форматы карт EM-Marine, HID Prox, Indala. Узнать подробнее.
- Добавлена поддержка RFID считывателя pcProx который популярен в США и западной европе (модель RDR-6082AKU).
- Улучшения работы сетевого режима в Rohos Logon Key для Windows Acitive Directory:
- Добавлена возможность установить особое сообщение пользователю когда PIN код введен неверно.
- Добавлен полный аудит всех 2FA событий: попытка 2FA входа, неверный ПИН, Попытка аварийного входа и др.
- Добавлена поддержка RFID карт типа EM-Marine, HID Prox, Indala, hiTag в Rohos Remote Config.
Настройка RFID считывателя KCY-125
При подключении КСУ к Windows 10 ПК считыватель не требует установки драйверов. Программа Rohos Logon Key работает с считывателем напрямую через USB протокол.
Для использования считывателя в Rohos Logon Key рекомендуется использовать опцию «Запретить вывод на клавиатуру» (далее нажать Записать в Устройство) . Это означает что при поднесении RFID метки ее код не будет выведен в поле ввода где находиться курсор.
Поддержка pcProx RFID считывателя от RFIDeas.com
RFID USB Считыватель pcProx не требует драйверов поскольку является USB клавиатурой. Для работы с ним Rohos Logon Key использует DLL библиотеку pcProxAPI.dll поставляемую производителем. По умолчанию считыватель не печатает Номер RFID карты в поле ввода.
Сетевой режим работы Rohos Logon Key
При установке Rohos Logon Key на рабочие станции домена, программа автоматически пытается прочитать свои настройки из Базы Данных в Active Directory. Если ей это удается то Rohos Logon переключается в сетевой режим: переодически читает свои настройки из Active Directory а также проверяет серийные номера электронных ключей в соответствующей базе данных из Active Directory. Узнать подробнее>
Преимущества сетевого режима работы:
- Централизованное управление настройками Rohos Logon Key.
- Создание единого списка ключей авторизации с возможностью моментальной блокировки любого ключа.
- Возможность моментального применения двух-факторной авторизации для определенного пользователя.
В обычном режиме программа Rohos работает автономно на любом Windows ПК, наличие Active Directory не требуется.
Хранение logon profile, PIN код и двух-факторная авторизация
При настройке RFID карты программ Rohos Logon Key создает зашифрованный блок данных (logon profile) и хранит его локально на ПК либо в хранилище Active Directory. Блок данных зашифрован на PIN коде по умолчанию (это короткий пароль), который можно изменить и тогда программа Rohos Logon будет запрашивать ПИН код у пользователя при каждой попытке входа в систему при помощи RFID карты.
Папка с данными (logon profile) для каждого ключа храниться локально на ПК: «C:Program Files (x86)Rohoskey». Расположение этой папки можно менять, например использовать сетевую папку таким образом создать централизованный список RFID ключей для авторизации в небольших сетях где нет Active Directory.
При настройке RFID Карты в Rohos Logon , вы можете не указывать пароль пользователя от Windows. В этом случае для входа в Windows необходимо будет предъявить RFID карту и также ввести свой Windows пароль. Данный способ рекомендуется в сети Active Directory , поскольку таким образом достигается режим двух-факторной авторизации более надежный чем RFID Карта + PIN код.
О программе Rohos Logon Key
Rohos Logon Key — уникальное решение для защиты Windows с помощью электронных ключей и токенов. Замена слабой парольной авторизации на физический USB-Ключ; Надежная двух-факторную авторизацию: физический USB-Ключ + PIN код / пароль Windows; Использование одного Ключа для доступа к любому ПК в офисе; Есть возможность полностью запретить доступ к компьютеру по обычному паролю.
Возможность интеграции в Active Directory а также поддержка изолированных рабочий станций делает программу Rohos Logon Key незаменимой в реализации политики информационной безопасности любого уровня сложности. Узнать подробнее>
Для Пользователей версии 3.* обновление является бесплатным.
Загрузить>
Ввод пароля пользователя при входе в windows по RFID карте.
Блокировка — Разблокировка компьютера на Операционной системе Windows.
Доступ по карте.
Всем привет!
У кого стоит пароль для доступа к системе тот меня поймёт. Сколько раз в день приходится вводить этот ненавистный пароль. Но теперь это в прошлом. К нам на помощь пришла технология, и эта технология RFID.
Теперь можно Блокировать и разблокировать компьютер всего лишь приложив карту к считывателю.
Это уже не первый проект про RFID кому интересно может посмотреть все примеры, а также теорию в этих видео, а мы продолжаем.
Давайте сначала посмотрим что и как, а потом я расскажу как это сделать. Это оказывается совсем не сложно.
Извиняюсь за качество съёмки, но по другому у меня не получилось.
Для того чтобы заблокировать компьютер достаточно просто поднести карту к считывателю и он сам заблокируется. Теперь не надо нажимать волшебные три кнопки, CTRL+ALT+DEL. Надо просто поднести карту.
Разблокировать так же просто. Надо снова поднести карту и вы опять в системе.
Теперь я расскажу как это сделать.
Для начала о грустном. Не каждая Ардуина может с этим справиться.
Нам понадобится Ардуина с чипом ATmega32U4.
К таким платам подходят
-
Arduino Micro
-
Arduino Pro Micro
-
Arduino Leonardo
Сразу говорю, что Arduino Uno, Mega 2560, Pro Mini или Arduino Nano не подойдут. Оказалось. что подойдут, но об этом я узнал после того как уже снял это видео.
В своём проекте я использовал Arduino Micro, поэтому и буду рассказывать про неё.
Вот схема подключения RFID к Ардуине. Она не сильно от обычных схем. Всё также надо подключить считыватель по SPI шине, просто здесь они расположены не в том месте как мы привыкли.
RFID питается от 3,3 вольт, поэтому мы сразу его подключим к выходу 3,3 вольта на Ардуино.
Куда подключать остальные контакты можно посмотреть на схеме.
Arduino Leonardo/Micro с чипом ATmega32U4 имеет встроенную USB — связь. Это позволяет им отображаться на подключенном компьютере в виде мыши или клавиатуры.
Теперь рассмотрим код скетча.
Для работы нам надо будет использовать библиотеку keyboard.h, чтобы arduino смогла обрабатывать нажатия клавиш на подключенном компьютере. Значит установим её. Как обычно идём в менеджер плат вводим нужную библиотеку. После того как система найдёт её, то устанавливаем. Так как у меня она уже установлено, то я этот момент пропущу.
Так как мы используем Ардуино Микро, то нам надо её выбрать. Идём в менеджер плат, ищем Ардуино Микро и выбираем её для работы.
Теперь надо выбрать на каком она COM порту. У меня она на COM порту 7, у вас будет на другом. Выбираем порт и прошиваем Ардуино.
После того как Ардуино прошьётся у вас появится новое устройство. Заходим в Параметры системы и видим, что в пункте мышь, клавиатура и перо появилось устройство Ардуино Микро со значком клавиатуры. Это значит, что она может работать как клавиатура. В следующих видео я покажу ещё несколько примеров как использовать Ардуино в качестве клавиатуры и как с её помощью автоматически вводить пароли в разные системы, например соцсети или для входа в другие системы.
Для работы нам нужно знать UID карты. Для этого заходим в примеры и открываем пример DUNPINFO. Загружаем его и прошиваем Ардуино. Подносим карту к считывателю и ждём когда скачаются все блоки карты. Можно конечно не ждать до конца, ведь номер карты считывается первым, но лучше проделать считывание полностью.
Если вы используете скетч из архива, то вам надо будет в примере изменить номера выходов Ардуино на 5 и 10.
Копируем номер карты и вставляем его в пример скетча и убираем все пробелы.
Если у вас не установлен пароль для входа или вы хотите создать нового пользователя и разрешить ему доступ только по карте, тогда идём в Параметры системы.
Выбираем вкладку Учётные записи. Я не буду создавать другого пользователя, а присвою пароль администратору, то есть себе.
Выбираем параметры входа и нажимаем на пароль. Здесь надо заполнить все поля. Пароль я сделаю простой, 1 2 3 4 5 6 7. После нажимаем готово и переходим обратно в скетч.
Теперь рассмотрим скетч. Он совсем простой.
Всё что вам надо изменить в скетче это пины, если вы установили свои и номер UID и Пароль для входа в WINDOWS. Для этого я создал строковые переменные вот в них и надо прописать значения.
При тестировании скетча я выяснил, что UID карты должен быть записан маленькими буквами, большими у меня не заработал.
Теперь объясню работу кода.
После того как вы подносите карту к считывателю считывается номер карты. Дальше есть два варианта.
Первый.
Если Windows находится в заблокированном состоянии, нажатия клавиш для ее блокировки не будут иметь никакого эффекта, и команда разблокирует заблокированный компьютер. Для этого в поле будет введён пароль из переменной и нажата кнопка Enter.
Если компьютер разблокирован, то с помощью этого кода он заблокируется.
Код разблокировки также поступает одновременно, но, поскольку между нажатиями клавиш блокировки и разблокировки есть лишь небольшая задержка, Windows переходит к выполнению команды блокировки и не будет считывать команду кода разблокировки, поступающую в это время.
Теперь небольшое уточнение.
Для правильной работы на экране недолжно уже быть выведена поле для заполнения пароля, так как это должна сделать программа. Если поле будет выведено, то код снова попытается его создать и будет ошибка ввода пароля.
У меня так было в первой версии кода, но теперь я вроде всё исправил.
Вот так выглядит не правильная работа.
Поле уже создано и пароль не принимается. Для устранения этого можно просто нажать ENTER, поле пропадёт и скетч продолжит правильную работу. При последних тестированиях у меня таких проблем больше не возникало.
Как я раньше уже говорил, можно собрать пример и на других платформах Ардуино, но узнал я об этом уже после того как сделал это видео, так что когда-нибудь я соберу и на Ардуино УНО. Правда у меня её нет в наличии, так что это будет не скоро, а вот ввод пароля в другие системы и работу с клавиатурой я сделаю обязательно и по возможности в ближайшее время, но это всё будет завесить от вашей активности. Я постоянно смотрю какие видео вы чаще всего смотрите и делаю новые исходя из вашего интереса. Так что всё в ваших руках.
Впереди ещё много интересного, так что заходите по чаще, так как на ютубе не всегда корректно работает оповещение о выходе новых видео и вы можете пропустить интересное именно вам видео.
Для реализации данного примера нам понадобится:
Arduino nano: http://ali.pub/1x1jri
Контактные провода : http://ali.pub/1th4xf
Rc522: http://ali.pub/26gq1k
Buzzer: http://ali.pub/1hzdau
Для начала давайте разберемся что за модуль RC522. Это модуль считывания авторизационных карт (пропусков) Данный модуль можно использовать в Системах контроля доступом, собственно для этого мы его и используем.
Характеристики (от продавца):
— Напряжение: 3.3В
— Потребляемый ток в активном состоянии:13-26 мА
— Потребляемый ток в состоянии ожидания: 10-13 мА
— Ток в режиме сна: менее 80 мкА
— Пиковое потребление: менее 30 мА
— Рабочая частота: 13.56 МГц
— Поддержвиаемые типы карт: MIFARE S50, MIFARE S70, MIFARE UltraLight, MIFARE Pro, MIFARE DESfire
— Интерфейс: SPI
— Размеры: 40х60 мм
Данный модуль подключается по шине SPI. Для подключения требуется 7 проводов.
Ну вроде бы все, с модулем разобрались. Давайте теперь перейдем к нашему проекту.
Проект работает таким образом:
Для начала подключим все по схеме приведенной ниже.
Buzzer здесь используется не активный, но можно использовать и трех пиновый, просто больше проводов займет.
Далее загружаем готовый скетч который приведен ниже, и считываем с помощью RC522 карту, которую будем использовать для авторизации.
/** * ---------------------------------------------------------------------------- * This is a MFRC522 library example; see https://github.com/miguelbalboa/rfid * for further details and other examples. * * NOTE: The library file MFRC522.h has a lot of useful info. Please read it. * * Released into the public domain. * ---------------------------------------------------------------------------- * This sample shows how to read and write data blocks on a MIFARE Classic PICC * (= card/tag). * * BEWARE: Data will be written to the PICC, in sector #1 (blocks #4 to #7). * * * Typical pin layout used: * ----------------------------------------------------------------------------------------- * MFRC522 Arduino Arduino Arduino Arduino Arduino * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro * Signal Pin Pin Pin Pin Pin Pin * ----------------------------------------------------------------------------------------- * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST * SPI SS 1 SDA(SS) ** custom, take a unused pin, only HIGH/LOW required ** * SPI SS 2 SDA(SS) ** custom, take a unused pin, only HIGH/LOW required ** * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 * */ #include &lt;SPI.h&gt; #include &lt;MFRC522.h&gt; #define RST_PIN 9 // Configurable, see typical pin layout above #define SS_1_PIN 10 // Configurable, take a unused pin, only HIGH/LOW required, must be diffrent to SS 2 #define SS_2_PIN 8 // Configurable, take a unused pin, only HIGH/LOW required, must be diffrent to SS 1 #define OUT_PIN_GREEN 4 // green LED - card OK #define OUT_PIN_RED 5 // red LED - another card #define NR_OF_READERS 2 #define BUZZER 3 // buzzer byte ssPins[] = {SS_1_PIN, SS_2_PIN}; MFRC522 mfrc522[NR_OF_READERS]; // Create MFRC522 instance. /** * Initialize. */ void setup() { Serial.begin(9600); // Initialize serial communications with the PC while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) pinMode (OUT_PIN_GREEN, OUTPUT); pinMode (OUT_PIN_RED, OUTPUT); pinMode(BUZZER, OUTPUT); noTone(BUZZER); SPI.begin(); // Init SPI bus for (uint8_t reader = 0; reader &lt; NR_OF_READERS; reader++) { mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN); // Init each MFRC522 card } } /** * Main loop. */ void loop() { uint32_t id; for (uint8_t reader = 0; reader &lt; NR_OF_READERS; reader++) { // Look for new cards if (mfrc522[reader].PICC_IsNewCardPresent() &amp;&amp; mfrc522[reader].PICC_ReadCardSerial()) { Serial.print(F("&gt;ID:")); dump_byte_array(mfrc522[reader].uid.uidByte, mfrc522[reader].uid.size); Serial.println(); //Serial.print(F("PICC type: ")); MFRC522::PICC_Type piccType = mfrc522[reader].PICC_GetType(mfrc522[reader].uid.sak); /// Serial.println(mfrc522[reader].PICC_GetTypeName(piccType)); Serial. println (id); // LED configure byte uidCard[4] = {0xA6, 0x4B, 0xC4, 0x3B}; for (byte i = 0; i &lt; 4; i++) { if (uidCard[i] == mfrc522[reader].uid.uidByte[i]) { digitalWrite (OUT_PIN_GREEN, HIGH); tone(BUZZER, 2000); // 2KHz sound signal... delay (400); noTone(BUZZER); // Stop sound... digitalWrite (OUT_PIN_GREEN, LOW); return; } else { digitalWrite (OUT_PIN_RED, HIGH); tone(BUZZER, 2000); // 2KHz sound signal... delay (1500); noTone(BUZZER); // Stop sound... digitalWrite (OUT_PIN_RED, LOW); return; } } } // Halt PICC mfrc522[reader].PICC_HaltA(); // Stop encryption on PCD mfrc522[reader].PCD_StopCrypto1(); } //if (mfrc522[reader].PICC_IsNewC } //for(uint8_t reader /** * Helper routine to dump a byte array as hex values to Serial. */ void dump_byte_array(byte *buffer, byte bufferSize) { for (byte i = 0; i &lt; bufferSize; i++) { Serial.print(buffer[i] &lt; 0x10 ? " 0" : " "); Serial.print(buffer[i], HEX); } }
В этом скетче нас интересует для изменения только одна строчка:
byte uidCard[4] = {0xA6, 0x4B, 0xC4, 0x3B};
Здесь Нужно прописать свой id карточки, которую можно будет отсканировать этим же скетчем открыв монитор com порта.
id карты высветится в HEX формате. и нужно его записать по группам в этой строчке, при этом оставив в каждой группе “0x”.
После этих манипуляций. загрузим скетч в ардуино и перейдем уже к непосредственной настройке ПК.
Для настройки ПК скачаем Архив: https://yadi.sk/d/dP7POaM23RN7W3
И зайдем в папку RC522WindowsLogon > Setting-PC здесь выберем папку 32 или 64 в зависимости от рязрядности вашей ОС в моем случае 64.
В этой Папке находятся три файла один с расширением .dll и два .txt
Вот файлы с расширением .txt нам и нужно отредактировать.
Сначала откроем первый файл под названием RFIDCredentials.txt Там будет написана строчка ” A6 4B C4 3B|psenyukov|123″
Где ” id карты|логин|пароль” и Важно, что перед id карты стоит пробел, иначе у Вас логиниться не будет. Вообщем исправьте этот файл под свои нужды, а именно введите свой id логин и пароль.
В следующем файле “RFIDCredSettings.txt” нужно только указать правильный номер Com порта к которому у Вас будет подключена Ардуино. Важно понимать, что каждый ЮСБ имеет свой номер СОМ порта при подключенной к нему Ардуино, это нужно выйснить и вписать в Файл.
После всех манипуляций с редактированием файлов, нужно эти три файла .dll и два .txt перенести в C:WindowsSystem32
После этого в Папке “RC522WindowsLogon > Setting-PC” есть файлик “Register.reg” его нужно запустить и согласиться со всеми полями предупреждения которые выскочат в последствии.
После этого перезагружаем ПК и у Нас появится еще одна учетная завись “rfid” и мы теперь приложив карточку можем залогинится без ввода пароля.
Ну а для тех кто не внимательно читал и для Визуальной демонстрации Видео :
https://www.youtube.com/watch?v=TTfs9KfgqIc
Бесконтактные RFID-идентификаторы стандарта Em-Marine, получившие широкую популярность благодаря своей невысокой стоимости, нашли на сегодняшний день широкое применение в системах контроля и управления доступом (СКУД) пользователей на охраняемую территорию и в рабочие помещения предприятий.
Учитывая огромное желание держателей таких бесконтактных пропусков иметь возможность авторизации в операционной системе Windows по этим же RFID-идентификаторам, компания SafeJKA SRL пошла на встречу и добавила поддержку бесконтактных карт, браслетов и брелоков Em-Marine в приложение Rohos Logon Key.
Благодаря этой новинке пользователям систем физического доступа стал доступен процесс авторизации в операционной системе Windows по тем же бесконтактным идентификаторам стандарта Em-Marine, по которым его владелец осуществляет проход через турникет, входит в помещения или въезжает на охраняемую территорию.
В данном обзоре будет рассмотрен процесс настройки Rohos Logon Key для совместной работы с картами, браслетами и брелоками стандарта Em-Marine. Для осуществления настройки понадобятся как вышеперечисленные бесконтактные идентификаторы, так и средство их чтения — считыватель модели КСУ-125-USB.
Приступим непосредственно к настройке:
- Первым делом необходимо установить на компьютере приложение Rohos Logon Key. Описание процедуры установки вы найдете по этой ссылке
- Подключаем считыватель КСУ-125-USB к компьютеру
- Настраиваем считыватель для работы с Rohos Logon Key по этой инструкции
- Для продолжения настройки приложения открываем окно программы Rohos Logon Key и выбираем пункт «Настроить Опции»
- Для указания считывателя в открывшемся окошке выбираем пункт «Тип устройства которое будет использовано в качестве Ключа»
- Выбираем строку «RFID Readers. Easyident/Addimat/KCY/pcProx» для совместной работы Rohos Logon Key со считывателем КСУ-125-USB
- Далее настроим реакцию Rohos Logon Key на извлечение карты. Для этого выбираем пункт «Если вход в Windows был выполнен с помощью USB Ключа, то при его отключении Rohos может выполнить одно из действий»
- Выбираем наиболее популярный вариант — «Заблокировать систему»
- Если пользователь покинет рабочее место и снимет бесконтактную карту с поверхности считывателя, то произойдет блокировка системы. В процессе работы карта всегда должна находиться в поле действия считывателя
- Если нет возможности оставлять идентификатор на считывателе, например, при использовании RFID-браслетов на руку, брелоков на связке с ключами или при использовании бесконтактной карты на ретракторе, то необходимо отметить пункт «Выполнять действие при повторном поднесении Ключа»
- В таком варианте при первом поднесении к считывателю КСУ-125-USB зарегистрированного бесконтактного пропуска будет производиться авторизация в Windows, при повторном — блокировка системы
- Переходим к регистрации пользовательского RFID-ключа
- В главном окне программы выбираем пункт «Настроить ключ доступа»
- Подносим к считывателю бесконтактный пропуск пользователя, которым может быть, например, RFID-карта, браслет на руку, брелок Em-Marine
- Вводим пользовательский пароль доступа в Windows
- Для сохранения введенных данных нажимаем кнопку «Настроить USB Ключ»
- При корректно введённых данных получаем соответствующее уведомление
- На этом классический вариант настройки приложения Rohos Logon Key для работы с бесконтактными проксимити идентификаторами стандарта Em-Marine завершён. Теперь вы можете использовать зарегистрированный бесконтактный пропуск для входа в Windows и блокировки системы
Если в процессе настройки Rohos Logon Key для входа в Windows по картам Em-Marine у вас возникли какие-либо вопросы, то можете задать их по электронной почте, либо по телефону, указанному на сайте. Купить программное обеспечение Rohos Logon Key, бесконтактные карты Em-Marine и считыватели КСУ-125-USB вы можете в нашей компании, отправив нам заявку удобным вам способом.
Содержание
- Авторизация в windows с помощью Arduino leonardo и RC522
- RFID Tag Windows (Vista, 7, 8, and 10) Login © CC0
- Windows PC Lock/Unlock Using RFID © CC BY-NC-SA
- Авторизация в windows с помощью Arduino и RC522
- Login to Windows Computers using RFID tag and Arduino
- Materials Required:
- RC522 RFID Module:
- Circuit Diagram:
- Setting up the RFID Unlock System:
- RFID Arduino Code:
Авторизация в windows с помощью Arduino leonardo и RC522
Для реализации данного примера нам понадобится:
Для начала давайте разберемся что за модуль RC522. Это модуль считывания авторизационных карт (пропусков) Данный модуль можно использовать в Системах контроля доступом, собственно для этого мы его и используем.
Характеристики (от продавца):
— Напряжение: 3.3В
— Потребляемый ток в активном состоянии:13-26 мА
— Потребляемый ток в состоянии ожидания: 10-13 мА
— Ток в режиме сна: менее 80 мкА
— Пиковое потребление: менее 30 мА
— Рабочая частота: 13.56 МГц
— Поддержвиаемые типы карт: MIFARE S50, MIFARE S70, MIFARE UltraLight, MIFARE Pro, MIFARE DESfire
— Интерфейс: SPI
— Размеры: 40х60 мм
Данный модуль подключается по шине SPI. Для подключения требуется 7 проводов.
Ну вроде бы все, с модулем разобрались. Давайте теперь перейдем к нашему проекту.
В данной статье мы заставим Arduino leonardo блокировать и разблокировать windows с помощью RFID метки и модуля RC522. Leonardo это будет делать путем имитации клавиатуры и нажатий кнопок и ввода пароля с клавиатуры.
Для начала нам нужно к Arduino leonardo подключить RFID RC522 модуль. Для этого привожу схему из стандартной библиотеки под модуль RC522
Итак из схемы видно как данный модуль RC522 подключать к разным моделям Arduino. Нам же нужно только как подключить к Arduino leonardo. Пины RST и SDA понятно куда подключать к 9 и 10 пинам Arduino, но что же такое ICSP? это специальная гребенка из 8 пинов на ардуино форм фактора “Arduino uno” Давайте посмотрим на них на схеме:
Вот в самом низу платы мы какраз наблюдаем данные пины. Отсчет у этих пинов начинается с правой стороны где точка.
С подключением вроде разобрались, давайте теперь перейдем к самому скетчу.
Главное для редактирования нас интересуют строчки:
где в формате HEX вписан UID нашей карты. Его можно узнать просто открыв монитор порта и прислонив карту к модулю RC522.
Ссылочка на файл со скетчем для скачивания:https://yadi.sk/d/Z81IeCHk3Rg7g2
Для тех у кого есть 3d принтер Оставлю еще ссылку на STL файл для распечатывания корпуса под это все дело: https://yadi.sk/d/iV1U59RD3Rg7ux
Ну а для наглядной работы смотрите видео :
Источник
RFID Tag Windows (Vista, 7, 8, and 10) Login © CC0
The RFIDuino Login Project for Windows will allow you to use the RFIDuino system to log into Windows.
The RFIDuino Login Project for Windows will allow you to use the RFIDuino system to log into Windows. You will need to load a special firmware onto your Geekduino/Arduino, and load the appropriate files onto your computer. Once setup, you can login to your computer from the main Windows Login screen by simply swiping your RFID tag across the RFIDuino antenna. This project will work with Windows Vista, 7, 8 and 10.
This project is an example project and should not be considered ready for production use where security is required. The user login/password are stored in an unencrypted plain text file on the computer.
Step 1: Familiarize yourself with the RFIDuino
The RFIDuino Shield for Arduino adds RFID capabilities to your Geekduino/Arduino. The shield fits on top of your arduino, making solid connections to the RFIDuino’s circuitry. The built in buzzer and LEDs allow you to get stared right away by making visual and audio cues depending on the data that is on a given tag. The shield also allows you to add components to expand your system. You can use this to make your own door locks, inventory systems and more!
Step 2: Install the RFIDuino Shield
To Install the RFIduino Shield, line the pins up with the bottom of the shield and the top of the Geekduino/Arduino. The male pins on the Shield should slide into the female pins on the Geekduino/Arduino. Once the Shield is installed, you can use the included 2-pin cable to connect the Shield to the Antenna.
You can program the Geekduino/Arduino with the shield plugged in. However, you cannot program the shield if you have an XBee module plugged in. You will have to remove the module or the shield to program the Arduino.
Step 3: Get your RFID Tag ID
In order to use our RFID tag, we’re going to need to know its ID to program into the board. Connect your RFIDuino into the computer as shown above.
You’re going to need the RobotGeek Tools and Libraries ZIP file for a sketch that will allow you to read your card data to the serial monitor. The RobotGeek Tools and Libraries Download offers a variety of sketches and libraries for working with RobotGeek Robot Kits. The libraries folder contains libraries that will add functionality to your Arduino, while the RobotGeek Sketches folder contains behavioral code for robots, as well as tools for testing. Install it by adding these two folders to your Arduino user folder.
Open the RFIDuino_helloworld sketch. This can be found under:
You will need to make sure the code is adjusted for your RFIduino hardware. v1.2 shields (2 pin antenna, ‘REV 1.2’ printed on the board) will need the following code
RFIDuino myRFIDuino(1.2); //initialize an RFIDuino object for hardware version 1.2
v1.1 shields (4-pin antenna, no version number printed on the board) will need the following code
RFIDuino myRFIDuino(1.1); //initialize an RFIDuino object for hardware version 1.1
Connect a micro USB cable from your computer to your Geekduino
Load RFIDuino_helloworld onto your board using the upload button in the Arduino IDE.
Open the Serial Monitor.
The serial monitor should be set to its default settings (‘No Line ending’, 9600 baud)
Swipe a tag across the RFIDuino antenna. The green light will light up and your buzzer will make a noise.
The Serial Monitor will display 5 numbers separated by commas. These numbers make up the ID of your tag.
Copy down these numbers for future use. It can be handy to write the ID on a sticky note and attach it to the tag.
Tags in the EM4102 protocol have 64 bits that they return to the RFID reader. 24 of these bits are used for communication / protocol information (9 header bits, 10 parity bits and a stop bit.) This leaves 40 bits, or 5 byte for the tag’s ID. The RFIDuino library returns the tag’s ID as an array that contains these 5 bytes. All of the RobotGeek tutorials will use this convention for dealing with the Tag’s ID number, displaying the tag id as 5 numbers in decimal format. However here are many ways that you can represent this number.
Step 4: Program your Arduino for Windows Login
1. Connect your RFIDuino as shown in the diagram above
3. You will need to make sure the code is adjusted for your RFIduino hardware.
v1.2 shields (2 pin antenna, ‘REV 1.2’ printed on the board) will need the following code:
RFIDuino myRFIDuino(1.2); //initialize an RFIDuino object for hardware version 1.2
v1.1 shields (4-pin antenna, no version number printed on the board) will need the following code RFIDuino myRFIDuino(1.1); //initialize an RFIDuino object for hardware version 1.1
4. Load RFIDuino_windows_unlock onto your board using the upload button in the Arduino IDE.
Step 5: Setting the Reset Switch
This is a good reason we suggested that you use the Geekduino. Once you’ve programmed your Geekduino, you will need to change one of the switches. Set the reset switch towards ‘M_RST’. This will change the board to manual reset, so that windows does not reset the board while in use. Keep in mind that if you need to reprogram your Geekduino that you will need to change the switch back to ‘AUTO’.
We do this to prevent continuous board resets. Not every board will have this issue, but we’ve included a few lines of debug code that make the board beep on startup so that you can catch it if it does. If your RFIDuino continuously or intermittently plays those beeps and you have an Arduino Uno, there’s a solder point on the board that needs to be cut in order to achieve the same result, and re-soldered when you wish to reprogram your board.
Step 6: Installing the Windows Software
1. Using the Right Files
2. RFIDCredentials.txt
You’ll need one line for each Key you want to use to unlock your computer. Each line contains the tag’s ID, the windows username and the windows password, each separated by the | character. So for example, if the tag’s ID is 70 0 44 22 242 and you want to unlock a windows account with the username robot1 and the password unlockRobo1 your file should look like
You can use multiple tags to unlock a single account, but one tag can only unlock one account.
This project also support domain based accounts. If you want to add a line with a tag ID of 67 176 120 0 45 and you want to unlock a windows account under the domain ROBONET with the username robot2 and the password unlockRobo2 your file should look like
3. RFIDCredSettings.txt
The LEAD and TERM lines represent the characters before and after each serial message from the RFIDuino. You do not need to edit these lines.
4. Moving Files
Источник
Windows PC Lock/Unlock Using RFID © CC BY-NC-SA
No more hassles of unlocking your computer. Unlock your Windows PC with just a flick of an RFID card/tag.
Hi there!
How often have you felt tired of typing in the password to unlock your PC/laptop every time it got locked? I’m used to locking it down quite a number of times, everyday, and nothing is more annoying than typing the password/pin over and over again, every-time I want to unlock it. When the need for something becomes essential, you are forced to find ways of getting it. As the saying goes, «necessity is the mother of invention», the lazy mind in me started to think of an easy and a cheap way to unlock my personal Computer/Laptop every time I had to lock it. As I went through my stuff I found a RC522 RFID module. That’s when I decided to make an RFID system.
RFID: Radio-frequency identification (RFID) is one of the oldest wireless technology. RFID chips are used to store information digitally, which can then be shared between objects through electromagnetic fields and radio waves. It may not be super-advanced, but many makers see real potential in the technology, no matter how old.
In this project I’ll be explaining how to make a simple RFID system that can lock/unlock your windows computer with just a flick of an RFID card/tag. With this system in place no more hassles of unlocking your Laptop/PC every-time you lock it down.
The heart of this project is the Arduino Pro Micro (or you can use Arduino Leonardo) with the ATmega32U4 chip. It is very important for this project to choose a development board with the ATmega32U4 chip. We can’t use development boards like Arduino Uno, Mega 2560, Pro Mini or Arduino Nano for this application. The details are in the following steps.
Building the Prototype.
I recommend you to build a prototype on the breadboard before soldering the circuit to a PCB. This will help you to get a better understanding of the connections and will allow you to fix any of the errors that occurs while linking connections. Building the prototype is not a hefty task considering this project. We’ve to only make a few connections and we’re ready to upload the code. The connections are described below. On the Arduino many of the pins are not changeable. As this device uses the SPI bus, it does not allow switching pins, pins 14, 15 and 16 must remain as shown. RST and SDA are user specified.
That’s all it is!, Simple and easy. Just plug the cable and we’re ready to upload the code and test the device.
The Code.
The Arduino Leonardo/Micro with the ATmega32u4 chip has a built-in USB communication. This allows the Leonardo/Micro to appear to a connected computer as a mouse or a keyboard.
We use the keyboard.h core library to make the arduino send the keystrokes to a connected computer.
The working of the code is very simple.
You have to make some small changes in the code I’ve provided to explore and use it for yourself.
Источник
Авторизация в windows с помощью Arduino и RC522
Для реализации данного примера нам понадобится:
Для начала давайте разберемся что за модуль RC522. Это модуль считывания авторизационных карт (пропусков) Данный модуль можно использовать в Системах контроля доступом, собственно для этого мы его и используем.
Характеристики (от продавца):
— Напряжение: 3.3В
— Потребляемый ток в активном состоянии:13-26 мА
— Потребляемый ток в состоянии ожидания: 10-13 мА
— Ток в режиме сна: менее 80 мкА
— Пиковое потребление: менее 30 мА
— Рабочая частота: 13.56 МГц
— Поддержвиаемые типы карт: MIFARE S50, MIFARE S70, MIFARE UltraLight, MIFARE Pro, MIFARE DESfire
— Интерфейс: SPI
— Размеры: 40х60 мм
Данный модуль подключается по шине SPI. Для подключения требуется 7 проводов.
Ну вроде бы все, с модулем разобрались. Давайте теперь перейдем к нашему проекту.
Проект работает таким образом:
Для начала подключим все по схеме приведенной ниже.
Buzzer здесь используется не активный, но можно использовать и трех пиновый, просто больше проводов займет.
Далее загружаем готовый скетч который приведен ниже, и считываем с помощью RC522 карту, которую будем использовать для авторизации.
В этом скетче нас интересует для изменения только одна строчка:
После этого перезагружаем ПК и у Нас появится еще одна учетная завись “rfid” и мы теперь приложив карточку можем залогинится без ввода пароля.
Ну а для тех кто не внимательно читал и для Визуальной демонстрации Видео :
Источник
Login to Windows Computers using RFID tag and Arduino
As many of us know computers were invented around 1871, but it was not until 1961 we had them password protected. Early in the 19’s we used pins and alphanumeric characters as passwords for our computers, today we have many types of verification methods like Password, Pin, Pattern, Gesture, Fingerprint recognition, Face recognition and much more. But still, it is a pain for me to log in to my office computer every time I get back to it after a short break.
So, in this project, we are going to learn how to unlock windows laptops by using RFID tags. The Arduino Board and RFID reader will always be connected to the computer and to unlock system I only need to swap my RFID tag over RFID reader. With this Arduino RFID windows Login Project I can unlock system very fast and without typing any passwords, also later I am planning to use my office ID card as the RFID tag since my ID card already has an RFID tag in it and I can program the Arduino to verify it. Sounds interesting right, so let’s get started……
Materials Required:
RC522 RFID Module:
There are many types of RFID readers available in the market but in this project, we have used RC522 SPI based RFID module. This is cheap and easily available at online shopping websites. This is RFID has SPI, UART and I2C interface but by default, it comes with SPI interface. The MFRC522 RFID Reader module is shown below.
We have already used RFID modules with Arduino previously to build other cool RFID projects like
In this project, the RC522 RFID Module shown above is connected to Arduino and the Arduino itself is connected to the computer. When a RFID tag is placed near this reader, the Arduino reads the rfid tag ID number and sends it to computer.
Circuit Diagram:
The complete circuit diagram to interface RFID RC522 with Arduino is given below.
As you can see the connections are pretty simple. Since the RFID module works with SPI communication we have connected the MISO,MOSI,SCK and NSS pin to the SPI pins of the Arduino Uno board. The RFID module is powered by the 5V pin of the Arduino. The Arduino UNO itself will be always connected to Laptop and hence we can get it powered by the laptop USB port. The connection details are listed in table below.
RFID RC522 | ARDUINO |
VCC | 3.3V |
GND | GND |
RST | D9 |
MISO | D12 |
MOSI | D11 |
SCK | D13 |
SDA/NSS | D10 |
Setting up the RFID Unlock System:
After the circuit is built, as shown above, connect the USB cable between Arduino and the system (laptop or PC). Now the user needs to find the com port for Arduino. To find com port you can either use device manager or you can find it in Arduino IDE as shown below. My COM port number here is 1; yours might be different make a note of this COM port number as it will be used later.
Now the user needs to upload the RC522 Arduino code to your Arduino module. The complete code is given at the bottom of this page; the explanation of the code will also be discussed later in this article. After the code is uploaded open the serial monitor. Then place the RFID tag over RFID reader and you will see the 5 values on the serial monitor. The user needs to copy it and close the serial monitor. My values are shown in the serial monitor snapshot below.
Download the rfid_configuration folder from the given link below. The link will download a ZIP file with four items in it.
After extracting the ZIP file get into the folder named 32 bit or 64-bit folder (according to your operating system) and open the notepad named RFIDcredentials.txt. Paste the RFID values and update the system user name and password. If you want to add two cards then add the same credential in the second row as shown below.
Then save and close this file. Now come back and open the RFIDCredSettings notepad and update the Arduino port in it then save and close. Again my COM port number is 1, update it with your COM port number. Leave the rest to default values as shown below.
Now copy all four items and paste them in C:WindowsSystem32. If it asks for any permission just give or click on yes. Now run register file to register the changes.
When you run the Register file you might get the following dialog box.
Press yes then ok. Now lock the system and the user will see another user option available with your current user.
Now the user can unlock the system by using RFID card. Meaning, now we do not need to input the password, just place RFID tag over RFID reader and windows will be unlocked immediately.
RFID Arduino Code:
The coding part of this project is easy and simple; the explanation of the same is given. First of all, we need to include header files and define pins for RFID RST_PIN and SS_PIN. If you do not have the mfrc522 library installed already you can download and add it from the following link.
Then in the void setup, we have initialized the serial and SPI communication and RFID reader
Now in loop function, we are waiting for the card.
If the card found send_tag_val called an RFID tag data will be transferred to the system using serial print. This serial print value will be compared with the file that we placed earlier and if it a match the windows will unlock itself.
The complete working of the project is shown in the video given below. Hope you understood the project and enjoyed building it. If you have any problems leave them in the comment section. Also, feel free to use the forums for other technical questions.
Источник
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
1
branch
0
tags
Code
-
Use Git or checkout with SVN using the web URL.
-
Open with GitHub Desktop
-
Download ZIP
Latest commit
Files
Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
RFID Windows Credential Provider
This is an example windows Credential Provider module which uses RFID to automate login process.
As first step, download and install OpenSSL for windows from: https://slproweb.com/products/Win32OpenSSL.html
Then add «include» and «lib» directories of OpenSSL in Visual Studio settings.
Steps for storing encrypted credentials:
- Go to AuthGen folder
- Compile it using VS2010+
- Power on D-Login reader and put a blank RFID card on it.
- Run AuthGen with a 32-byte key as first parameter, NT username and password as second and third parameters, example:
AuthGen [32bytepassword] Administrator MyNTAdminPassword
Now you need to install Credential Provider DLL:
- Compile DLL with VS2010+
- Run install.bat
You can simply test this DLL by logging off or restarting PC.
For more information, visit: http://www.codeandsec.com/Windows-RFID-Login-Credential-Provider