Лайфхакер
Лайфхакер
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Куда поехать на выходные
Добрые новости
Стыдные вопросы
Есть мнение
Норм или стрём
Личный опыт
Объясняем за минуту
Сервисы
Сделай сам
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
Это интересно
Путешествие начинается до взлёта! Как провести время до посадки с комфортом

Путешествие начинается до взлёта! Как провести время до посадки с комфортом

Косметический ремонт за выходные: 6 вещей в квартире, которые можно обновить без грязи и пыли

Косметический ремонт за выходные: 6 вещей в квартире, которые можно обновить без грязи и пыли

Как начать заниматься спортом, если вы живёте в небольшом городе: 5 простых и доступных способов

Как начать заниматься спортом, если вы живёте в небольшом городе: 5 простых и доступных способов

Не только стройматериалы: как экосистема «Петровича» закрывает все задачи по ремонту

Не только стройматериалы: как экосистема «Петровича» закрывает все задачи по ремонту

Реклама
Комментарии
Юрий Кротов
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 )) за то первый абзац специально два раза прописали

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

Аватар автора комментария
D.V.6 часов назад

0 / 0

😁😁😁
10 худших фраз, которые можно сказать после секса
Аватар автора комментария
Елена Исупова6 часов назад

0 / 0

Тайна раскрыта! Тоже про такую не знала
Пришло быстро, в деле ещё не пробовал: 10 типов отзывов на маркетплейсах, которые жутко бесят
Аватар автора комментария
Елена Исупова6 часов назад

0 / 0

Захотелось такие же женские взять:)
Непромокаемые кроссовки на осень от Strobbs — почему их стоит взять уже сейчас
Аватар автора комментария
Ivan Turkovsky6 часов назад

+1 / 0

Дизайн маркетплейсов изо всех сил подталкивает покупателей оставлять отзывы сразу после получения товара, не успев оценить его на практике. Так что это претензия ещё и к бизнес-аналитикам и дизайнерам самих озонов и вайлдберрисов. UPD увидел, выше об этом уже писали
Пришло быстро, в деле ещё не пробовал: 10 типов отзывов на маркетплейсах, которые жутко бесят
Путешествие начинается до взлёта! Как провести время до посадки с комфортом

Путешествие начинается до взлёта! Как провести время до посадки с комфортом

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