Сегодня рядовой пользователь интернета имеет не один и не два, а достаточное количество аккаунтов на различных интернет ресурсах. Количество паролей с каждым годом возрастает с некоторой прогрессией, а это значит, что все их запоминать становится сложнее. Кто-то их начинает записывать (на листке бумаги или в файле, хранящимся на том же компьютере), кто-то все ещё пытается запоминать их, а кто-то, пренебрегая безопасностью, копирует везде один и тот же пароль, повышая шанс взлома или потери доступа к своим ресурсам. Сегодняшней темой я надеюсь сделать маленький шажок к решению этих проблем. Идея заключается в том, что RFID карты имеют свой уникальный идентификационный номер. Используя эти уникальные данные, не будет надобности запоминать пароли, а достаточно будет просто использовать нужную карту или брелок.
Таким образом, вслед за идеей родилась схема устройства.

Схема имеет 2 назначения, работающие независимо друг от друга: передачу идентификационного номера карты по USB и включение ПК по совпадению сохраненного номера карты в памяти микроконтроллера. Для данной схемы используются RFID карты 13,56 МГц (Mifare s50 и подобные). Считыватель карт построен на модуле RC522 (MOD1), в основе которого микроконтроллер MFRC522 NXP Semiconductors. Модуль имеет интерфейс SPI, при помощи которого подключается к основному микроконтроллеру STM32F103C8T6. STM32 питается напряжением 3,3 Вольта, поэтому необходим понижающий стабилизатор с 5 Вольт USB или дежурного источника блока питания ATX. Для этой цели подойдет любой стабилизатор, например AMS1117 3v3 и ему подобные. Для ввода паролей на компьютере устройство имеет USB интерфейс. Для простоты используется USB HID (устройство ввода – клавиатура), что позволяет просто подключить устройство, и оно сразу заработает без установки дополнительных драйверов. Функционал включения компьютера по беспроводным картам реализован на следующих элементах. Вместо кнопки к контактам на материнской плате подключается реле (нормально разомкнутый контакт и общий контакт). Так как напряжение дежурного источника блока питания составляет 5 Вольт, то и реле необходимо использовать на 5 Вольт. Чтобы реле не срабатывало после включения компьютера на контакт PB9 микроконтроллера через делитель напряжения на резисторах R4 и R5 подается напряжение 5 Вольт, которое не связано с дежурным источником. Таким образом формируется сигнал о работе блока питания компьютера и соответственно о том, что компьютер включен. Перемычка Jmp1 используется для стирания памяти карт. Чтобы стереть память, необходимо установить перемычку (то есть замкнуть контакт PB8 на плюс питания) и нажать кнопку reset S1 или отключить и включить питание. Через секунду память будет уже стерта и перемычку необходимо снять, чтобы при следующем перезапуске память не стерлась снова. Когда память карт пуста, первая приложенная карта автоматически сохраняется как мастер карта. Данная версия прошивки поддерживает сохранение до 3-х карт в памяти микроконтроллера. Чтобы добавить в память новые карты необходимо поднести к считывателю мастер карту, это активирует на 3 секунды возможность сохранить новую карту в память микроконтроллера при условии, что место в памяти ещё есть. После сохранения новой карты в памяти этот режим сразу же деактивируется. Очистить память можно лишь сразу всю методом, описанным выше при помощи перемычки.
Устройство имеет стандартную схематику и может быть собрано за полчаса на стандартных модулях, необходимо лишь правильно соединить все контакты и загрузить прошивку в микроконтроллер. Для прошивки нам понадобится программатор ST-Link и STM32 ST-LINK Utility.

Размеры модулей хорошо вписываются в заглушку на передней части корпуса ПК. При помощи 2-хстороннего скотча модули можно установить на нее без возможности испортить внешний вид корпуса. Скотч должен быть типа 3М для того, чтобы со временем модули не отвалились. Так с лицевой стороны можно оставить все в стандартном виде, а при желании в месте расположения RFID считывателя наклеить стикер, указывающий куда прикладывать карту.

Для подключения к компьютеру необходимо внутри корпуса подключить устройство к USB и к блоку питания. Для подключения к USB можно использовать свободные разъемы PLS на материнской плате или использовать USB разъемы. Чтобы подключиться к питанию, необходимо подключить дополнительные провода в разъеме к фиолетовому проводу (+5 Вольт дежурного питания), черному (земля, GND) и красному (+5 Вольт). Способ подключения к этим проводам не очень простой, т.к. резать провода совсем не хочется, чтобы подпаяться к ним, поэтому нужно, подогнув ушки контактов внутри пластикового разъема, извлечь этот контакт и либо припаять свой провод, либо ослабить обжим, вставить дополнительно свой провод и заново обжать контакт.


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



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

Теперь сохраняем мастер карту (первую приложенную к считывателю карту) и устройство готово к использованию.
Чтобы устройство вводило пароль лишь на английском, используются горячие клавиши CTRL+0. Это сочетание клавиш включает тот язык, к которому оно привязано. Данное сочетание задается в параметрах языковой панели. По умолчанию горячие клавиши языков не используются, поэтому эту настройку необходимо сделать вручную.

Таким образом, при включенном компьютере устройство сначала передает сочетание клавиш CTRL+0 для перехода на английскую раскладку, далее следуют 5 байт уникального идентификатора RFID карты в шестнадцатеричной форме, то есть десять символов шестнадцатеричной кодировки и в конце нажатие клавиши Enter. При вводе пароля при помощи этого устройства необходимо, чтобы курсор был установлен именно в том поле, куда должен вводиться пароль.
Скачать список элементов (PDF)
Прикрепленные файлы:
- MFRC522.pdf (814 Кб)
- 23(2).hex (47 Кб)