Luke Szynalski's RFID-Based PC Login Project

13 May 2016•
Gareth Halfacree

Radio-frequency identification (RFID) tags are commonly used to power contactless keycard entry systems, but Luke Szynalski had a different plan in mind: an Arduino-powered RFID login system for his desktop computer, making it easier to log in without harming security.

RFID tags are surprisingly powerful devices thanks to their use of parasitic power: unlike radio fobs used to, for example, unlock a car and disarm the alarm, an RFID tag requires no power source of its own. Instead, when the RFID tag comes within range of a transmitter, it harvests the power and responds with a 'ping' of its own - a ping which is then picked up by the receiver which supplied the original radio transmission used to power the RFID chip. RFIDs are low-cost and have a long life, which is why you'll find them in everything from stock-keeping labels on clothes to security passes.

Luke's project takes an off-the-shelf RFID card and uses it as a login system for his desktop computer in the most simple way possible: by having an Arduino Leonardo compatible act as a keyboard, typing in the password which Luke would normally have entered by hand. As it requires no additional software on the computer itself - unlike a traditional smartcard-based login system - it's entirely cross-platform, compatible with any system which accepts logins from a USB keyboard.

Although the project isn't of the highest security - Luke admits that storing the password in the Arduino as plain-text and outputting it to any USB-connected system is a drawback - it's a neat trick for lower-security systems, and a great introduction to using RFID tags with an Arduino.

I wanted a simple way of quickly logging on to my computer without having to typing my password in and did not want to have no security either. There are various products on the market that would solve this problem from fingerprint readers to proximity dongles but I decided to see what I could knock up with parts I mainly already had.