Лайфхакер
Лайфхакер
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Выгодные покупки
Новости
Здоровье
Спорт и фитнес
Покупки
Технологии
Отношения
Кино
Реклама
Сделай сам
15 апреля 2014

Хардкорный «сделай сам» — вход в операционную систему по NFC-карте

Фото автора Артём Леднёв
Артём Леднёв

Хардкорный «сделай сам» — вход в операционную систему по NFC-карте

До сих пор пользователи популярных десктопных операционных систем не имели иной возможности входа в ОС, кроме как ввод пароля. Хватит это терпеть! Пора брать в руки паяльник и сделать процедуру аутентификации сравнимой по простоте с поглаживанием своего кота.

Сегодня в рубрике DIY мы поделимся подсмотренным на Instructables способом ввода пароля для входа в ОС с помощью NFC-карты.

Шаг 1: детали

Нам понадобятся:

  • Arduino Leonardo
  • Adafriut NFC Shield
  • NFC карта (идёт в комплекте с Adafriut NFC Shield)
  • небольшой кусочек провода
  • острый нож
  • припой
  • инструмент для обрезки и зачистки проводов
  • компьютер
  • кабель micro-USB

Шаг 2: железо

Процедура создания аппаратного модуля крайне проста.

FXKA67YHTCPY3VV

Единственная модификация, требующаяся для работы устройства, заключается в разрыве цепи между pin IRQ и pin 2. Для этого и пригодится нож.

FSGLGYQHTCPY3VQ

Потом потребуется соединить IRQ и 6 пины с помощью провода.

F28O95WHTCPY3VE

Проверить отсутствие/наличие контакта можно с помощью мультиметра, а для более ясного понимания процедуры сборки Leonardo и NFC-модуля предлагаем вот этот короткий видеоролик. Тут всё показано по шагам и очень наглядно:

Шаг 3: программное обеспечение

Ниже представлен код, который необходимо залить в Arduino. Перед началом загрузки нужно убедиться, что установлена библиотека Adafruit NFC. Подробнее о ней здесь.

#include

#include <Adafruit_NFCShield_I2C.h>

#define IRQ 6 // this trace must be cut and rewired!

#define RESET 8

Adafruit_NFCShield_I2C nfc(IRQ, RESET);

//////////////////////////////////// SETUP

void setup() {

// set up Serial library at 9600 bps

Serial.begin(9600);

// find Adafruit RFID/NFC shield

nfc.begin();

uint32_t versiondata = nfc.getFirmwareVersion();

if (! versiondata) {

Serial.print(“Didn’t find PN53x board”);

while (1); // halt

}

// Got ok data, print it out!

Serial.print(“Found chip PN5”); Serial.println((versiondata»24) & 0xFF, HEX);

Serial.print(“Firmware ver. ”); Serial.print((versiondata»16) & 0xFF, DEC);

Serial.print(‘.’); Serial.println((versiondata»8) & 0xFF, DEC);

// configure board to read RFID tags

nfc.SAMConfig();

Keyboard.begin(); //initiate the Keyboard

}

/////////////////////////////////// LOOP

unsigned digit = 0;

void loop() {

uint8_t success;

uint8_t uid [] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID

uint8_t uidLength; // Length of the UID (4 or 7 bytes depending on ISO14443A card type)

// wait for RFID card to show up!

Serial.println(“Waiting for an ISO14443A Card …”);

// Wait for an ISO14443A type cards (Mifare, etc.). When one is found

// ‘uid’ will be populated with the UID, and uidLength will indicate

// if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)

success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);

uint32_t cardidentifier = 0;

if (success) {

// Found a card!

Serial.print(“Card detected #”);

// turn the four byte UID of a mifare classic into a single variable #

cardidentifier = uid [3] ;

cardidentifier «= 8; cardidentifier |= uid [2] ;

cardidentifier «= 8; cardidentifier |= uid [1] ;

cardidentifier «= 8; cardidentifier |= uid [0] ;

Serial.println(cardidentifier);

if (cardidentifier == 606061173) {

Keyboard.write(‘m’);

Keyboard.write(‘y’);

Keyboard.write(‘p’);

Keyboard.write(‘a’);

Keyboard.write(‘s’);

Keyboard.write(‘s’);

Keyboard.write(‘w’);

Keyboard.write(‘o’);

Keyboard.write(‘r’);

Keyboard.write(‘d’);

delay(5000); //makes sure the password isn’t repeated

}

}

}

Как только код загружен, открываем монитор последовательного порта, установленный на 9600 бод. На секунду подносим NFC-карту к считывателю и убираем. Монитор должен выдать сообщение «Card detected #card number». Заменяем полученным номером текущий номер карты в строке «cardidentifier == ».

FMO3XEBHTDDVWLM

Теперь меняем участок кода, отвечающий за ввод пароля. Как видим, по умолчанию пароль представляет собой комбинацию «mypassword». Заменяем её на наш текущий пароль входа в операционную систему (количество символов пароля меняется простым добавлением/уменьшением строк с командой «Keyboard.write).

F3MZ8Z1HTDDVWLN

Перезагружаем итоговый код в Arduino, и теперь, стоит лишь нам поднести эту NFC-карту к ридеру, как пароль мгновенно будет введён в поле ввода. Жмём Enter и радуемся.

В комментариях к проекту нашёлся человек, предложивший дополнить череду команд ввода пароля финальной Keyboard.write(KEY_RETURN); для исключения необходимости нажимать Enter, но данное решение не проверялось.

Если нашли ошибку, выделите текст и нажмите Ctrl + Enter

Лучшие предложения

10 пар зимней обуви с хорошими скидками на «чёрной пятнице»

10 пар зимней обуви с хорошими скидками на «чёрной пятнице»

постельное белье

21 комплект постельного белья, который преобразит вашу спальню

Roborock Q5 Pro

Надо брать: робот-пылесос Roborock Q5 Pro со скидкой 76%

Гидравлический домкрат с высоким рейтингом отдают со скидкой 35% на AliExpress

Гидравлический домкрат с высоким рейтингом отдают со скидкой 35% на AliExpress

23 нарядных платья, которые можно надеть на новогодний корпоратив

23 нарядных платья, которые можно надеть на новогодний корпоратив

10 рюкзаков для ноутбука, которые не боятся мокрого снега и дождя

10 рюкзаков для ноутбука, которые не боятся мокрого снега и дождя

5 милых мягких игрушек для тех, кто любит мультфильмы Хаяо Миядзаки

5 милых мягких игрушек для тех, кто любит мультфильмы Хаяо Миядзаки

Самый популярный компрессор от Baseus отдают за полцены

Самый популярный компрессор от Baseus отдают за полцены

Это интересно
«Другое Дело» запускает спецпроект «Что Делать Дальше?» — навигатор по взрослой жизни

«Другое Дело» запускает спецпроект «Что Делать Дальше?» — навигатор по взрослой жизни

Как найти работу, где помогают расти и&nbsp;поддерживают на&nbsp;старте

Как найти работу, где помогают расти и поддерживают на старте

Новые киберловушки: мошенники атакуют россиян через QR-коды, NFC и умные гаджеты

Новые киберловушки: мошенники атакуют россиян через QR-коды, NFC и умные гаджеты

Не просто плохое настроение: 6 фактов о депрессии, которые нужно знать каждому

Не просто плохое настроение: 6 фактов о депрессии, которые нужно знать каждому

Комментарии
Юрий Кротов
16.04.14 09:45
А можно обойтись без создания велосипеда? Есть готовые варианты?
Дмитрий Васильев
11.05.14 15:14
Где-то читал про USB устройство для ввода пароля. Вроде эмулятора клавиатуры.
Олег Яковлев
03.06.14 09:20
Наглое вранье. У меня уже лет 10 по отпечатку пальца логинится.
Fedor Fedorov
28.05.19 22:06
Давно придуманы рут-токены на usb )) за то первый абзац специально два раза прописали

Новые комментарии

Аватар автора комментария
Pavel Glushkov1 час назад

0 / 0

Яблочное семя
10 жутких и захватывающих мультфильмов в жанре киберпанк
Аватар автора комментария
Олег Залялов1 час назад

0 / 0

На третий вопрос очевидный ответ- браузер, на худой конец читалку почему-то отсутствует в вариантах
ТЕСТ: Какая вымышленная планета вам подходит?
Аватар автора комментария
Alexandr Al1 час назад

0 / 0

в науке и медицине очень многое взаимосвязано, достижения в одной области прменяются в других. я уж и не говорю про те лекарства, которые просто производятся в космосе, и именно у SpaceX основная заслуга в удешевлении и доступности космических запусков.
Уже в 500-й раз: SpaceX успешно запустила многоразовую ракету Falcon 9
Аватар автора комментария
Олег Залялов1 час назад

0 / 0

evernote сейчас развивает аудиозаписи собраний, с транскриптом с разбивкой по спикерам и с генерацией краткого протокола с разделами слушали постановили
11 удобных приложений для заметок на Android и iOS
Задача — дойти до школы самому: как подготовить ребёнка и убедиться, что всё будет в порядке&nbsp;

Задача — дойти до школы самому: как подготовить ребёнка и убедиться, что всё будет в порядке  

Лайфхакер
Информация
О проектеРубрикиРекламаРедакцияВакансииДля начинающих авторовО компании
Подписка
TelegramВКонтактеTwitterViberYouTubeИнициалRSS
Правила
Пользовательское соглашениеПолитика обработки персональных данныхПравила применения рекомендательных технологийПравила сообществаСогласие на обработку персональных данныхСогласие для рекламных рассылокСогласие для информационной программы
18+Копирование материалов запрещено.
Издание может получать комиссию от покупки товаров, представленных в публикациях