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

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

Надо брать: лёгкий электросамокат от Segway Ninebot со скидкой 60%

Надо брать: лёгкий электросамокат от Segway Ninebot со скидкой 60%

Скидки до 90% на «Великой китайской распродаже» уже скоро

Скидки до 90% на «Великой китайской распродаже» уже скоро

Каркасный бассейн от Bestway

Долговечный каркасный бассейн от Bestway отдают со скидкой 68%

Эти 10 пар кроссовок одинаково хороши для спорта и прогулок

Эти 10 пар кроссовок одинаково хороши для спорта и для прогулок

Надо брать: бюджетный робот — мойщик окон от RutBot со скидкой 84%

Надо брать: бюджетный робот — мойщик окон от RutBot со скидкой 84%

В ожидании летней распродажи: 10 товаров из нашей корзины на AliExpress

В ожидании летней распродажи: 10 товаров из нашей корзины на AliExpress

Водонагреватель от Midea

Забираем простой в управлении водонагреватель от Midea со скидкой 33%

Умный проектор на Android от Byintek отдают по выгодной цене на AliExpress

Умный проектор на Android от Byintek отдают по выгодной цене на AliExpress

Это интересно
Это что-то с чем-то: 5 продуктов из «ВкусВилла», которые вы не найдёте в масс-маркете

Это что-то с чем-то: 5 продуктов из «ВкусВилла», которые вы не найдёте в масс-маркете

Мас-рестлинг, хуреш и ещё 5 необычных национальных видов спорта России

Мас-рестлинг, хуреш и ещё 5 необычных национальных видов спорта России

От доставки продуктов до тушения пожаров: как дроны помогают решать повседневные задачи

От доставки продуктов до тушения пожаров: как дроны помогают решать повседневные задачи

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

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

Аватар автора комментария
Ersten44 минуты назад

0 / 0

Аппарат отличный, но все же не основной. Основной у меня 1200 ватт от сети, и вместо лески нож. А этот так, вокруг кустов обкосить, за участком. Но удобный - лёгкий, мобильный, крепкий. Мне нравится
10 лучших аккумуляторных триммеров для травы, чтобы косить в своё удовольствие
Аватар автора комментария
Alexandr Al1 час назад

0 / 0

Впроцессе пригоовления пропущена сгущенка.
Нежнейшее ягодное мороженое со сгущёнкой за 5 минут. Охлаждать не нужно
Аватар автора комментария
Alexandr Al1 час назад

0 / 0

а в мезозое то динозавры и не догадывались, что температура в их время, которая была на 20 градусов выше нынешней, объясняется сегодняшними фанатиками сжиганием топлива.
Земля закипает: климатологи предупредили о рекордной жаре в ближайшие 5 лет
Аватар автора комментария
Alexandr Al1 час назад

0 / 0

это не ко мне, я цитирую статью - "Именно движение этих масс создаёт магнитное поле" И в ней говорится разумеется не о земной коре, которая твердая и малоподвижная. Что касается Википедии, то там вы достаточно ясно сможете прочитать, что "на сегодняшний день общепринятым, наиболее вероятным объяснением происхождения магнитного поля Земли и других планет, является самовозбуждающийся динамо-механизм, основанный на генерации электрического тока в проводнике при его движении в магнитном поле, порождаемом и усиливаемом самими этими токами." т.е. из-за движения магнитных масс.
У внешнего ядра Земли внезапно сменилось направление движения — учёные нашли возможную причину
Как начать карьеру в телекоме: 3 реальные истории от сотрудников Т2

Как начать карьеру в телекоме: 3 реальные истории от сотрудников Т2

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