Vandaag zullen we een apparaat samenstellen dat onze wachtwoorden onthoudt en door op de knop te drukken deze automatisch in de computer invoert. In dit geval worden wachtwoorden beschermd. De auteur van dit zelfgemaakte product is Michael (YouTube-kanaal "Arturos TV").
Voor de onafhankelijke fabricage van een dergelijk apparaat hebben we slechts 3 componenten nodig. Allereerst is dit natuurlijk een platform (niet verwarren met arduino pro mini).
Deze arduino heeft een ATmega32u4-microcontroller, wat betekent dat hij een ingebouwde USB heeft, dat wil zeggen dat de computer deze arduino herkent als een muis of toetsenbord. Het is rond deze functie dat het project van vandaag zal worden gebouwd.
Ook heeft deze arduino een wat afwijkende pinout. We zullen dit echter iets later tegenkomen. Bovendien moeten we door het menu navigeren en vervolgens het wachtwoord invoeren.
Laten we kort ingaan op het principe van zijn werk. De encoder heeft 2 voorwaardelijk gebelde contacten, a en b, afhankelijk van de richting waarin de encoder wordt gedraaid.
Als we het bijvoorbeeld met de klok mee draaien, sluit contact "a" eerst en dan pas contact "b". Op basis hiervan kunnen we in het programma begrijpen dat de encoder met de klok mee is gedraaid. Als het tegen de klok in draait, wordt eerst contact "b" gesloten en pas daarna contact "a". Na elke omwenteling wordt ook een lichte klik gevoeld. Op basis hiervan zal het wachtwoord worden gebaseerd, dat moet worden ingevoerd om toegang te krijgen tot ons apparaat.
Het apparaatmenu wordt weergegeven op de bekende, natuurlijk op de I2C-bus.
En er is een lichte nuance. In arduino pro micro zitten I2C-contacten niet op standaardpoorten A5 en A4, maar op contacten 2 en 3, dus je moet hier het beeldscherm aansluiten.
Over het algemeen ziet het diagram van het hele geassembleerde apparaat er als volgt uit:
Natuurlijk printen we de case op een 3D-printer.
Deze keer is het heel goed gelukt, maar om de een of andere reden besloot de auteur om het ontwerp te doen, en daarom was de onderkant niet erg mooi. Maar er is niets aan te doen, maar met de afmetingen van de kast en de afstand tussen de gaten is dit keer alles goed gelukt. Alle details vielen op hun plaats en met weinig moeite bleken alle schroeven vast te draaien om de onderdelen te bevestigen. Helaas was hete lijm weer mogelijk, maar in dit project was het al een klein beetje.
Het meest interessante aan dit project was natuurlijk het schrijven van de firmware.
We gaan niet in op de details, maar het is noodzakelijk om u te vertellen over enkele van de functies. Allereerst is dit het gebruik van de keyboard.h-bibliotheek.
Deze bibliotheek wordt alleen gebruikt met arduino leonardo en arduino pro microborden of met kaarten met ingebouwde usb-microcontrollers. Als je met deze schets een andere Arduino probeert te flitsen die niet zo'n ingebouwde USB heeft, zal de ontwikkelomgeving vloeken, dus wees voorzichtig. Een andere interessante bibliotheek is EEPROM.h.
De auteur gebruikt het om de aanvallers die ons apparaat hacken te compliceren. Maar daarover later meer. Deze lijn zal voor u zeer interessant zijn:
Hier stellen we de toegangscode in voor ons apparaat om het te ontgrendelen. Even later over beveiliging, maar onthoud dat we hier de mogelijkheid hebben om "0" of "1" op te geven. Op dit moment hebben we het wachtwoord "101" ingesteld.
En ook een heel belangrijk blok, dit is eigenlijk waar wachtwoorden worden opgeslagen.
Houd er rekening mee dat dit een tweedimensionale array is en dat het aantal wachtwoorden hier over het algemeen onbeperkt is. Hoewel het strikt genomen wordt beperkt door het geheugen van het apparaat, kan dit worden verwaarloosd. Het is erg belangrijk om te voldoen aan het opnameformaat. Stel dat het eerste veld is wat wordt weergegeven in het menu op het apparaat. Dat is bijvoorbeeld "Admin".
Vervolgens moeten we, gescheiden door komma's en aanhalingstekens, ons wachtwoord schrijven, dat we het apparaat op de computer willen laten invoeren. Er is bijvoorbeeld een gedeelte 'Test' (dit wordt op het scherm van ons apparaat geschreven).
En als we op de knop drukken, wordt deze tekst in de computer ingevoerd:
Het mooie van dit apparaat is dat als de microcontroller wordt geflitst met een soort schets, het onmogelijk is om het daar vandaan te halen. Als je hier eenmaal alle wachtwoorden en al hun namen hebt ingesteld en ze vervolgens uit deze firmware hebt gewist, heeft niemand anders toegang tot je wachtwoorden, behalve dat een aanvaller dit apparaat zal kraken en zal begrijpen hoe het werkt.
Het volgende is een vrij lange firmware en we gaan niet in op de details. Je kunt het downloaden via de link in de beschrijving onder de video van de auteur (de SOURCE-link aan het einde van het artikel).
Dus we zijn klaar met de firmware, dus laten we nu kijken hoe dit apparaat werkt. We verbinden hem met de computer, zodat hij stroom krijgt.
Nu is het onze taak om het wachtwoord in te voeren. Het wachtwoord, zoals je je herinnert, is nullen en enen, bovendien is "1" één klik van de encoder rechtsom rotatie, en "0" is linksom rotatie. Dat wil zeggen, aangezien we wachtwoord 101 hebben ingesteld, moeten we de hendel 1 keer naar rechts, 1 keer naar links en dan weer naar rechts scrollen.
We voeren dus het wachtwoord in door op de encoder te klikken en hebben toegang tot het wachtwoord op de computer.
Houd er rekening mee dat we slechts 3 pogingen hebben. Als we ze allemaal uitgeven, vraagt het apparaat u een minuut te wachten voordat we opnieuw kunnen proberen het wachtwoord in te voeren.
En voor degenen die bijzonder slim zijn, die zullen begrijpen dat ze een minuut moeten wachten om het apparaat los te koppelen van de stroomtoevoer en vervolgens opnieuw aan te sluiten, zal het apparaat hen vertellen dat ze hun verraderlijke trucs moeten stoppen en dat ze alles over hen weten, omdat tijd nog steeds nodig is wachten wordt constant vastgelegd in niet-vluchtig geheugen.
Ik hoop dat je begrijpt hoe dit apparaat werkt. Bedankt voor je aandacht. Tot binnenkort!
Video: