Სარჩევი:
ვიდეო: Arduino TOTP გენერატორი: 3 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
Შთაგონების
კრიპტოგრაფიითა და უსაფრთხოებით დაინტერესებული მეგობრის მქონე, მინდოდა დაბადების დღის სრულყოფილი საჩუქრის შექმნა.
*ეს არის პროექტი, რომელიც მე გავაკეთე დაბადების დღის საჩუქრად და შეიქმნა მჭიდრო დროში (აპატიეთ ბინძურ მუშაობას)
შენიშვნა: TOTP თაობა, რომელიც გამოიყენება ამ პროექტში წარმოქმნის და იყენებს 6 ნიშნა კოდს, მაგრამ ჩემი ამჟამინდელი ტექნიკის გამო, მე ავირჩიე 2 ციფრის მოწყვეტა და 4-ის ჩვენება და გამოყენება, სავარაუდოდ (მაგრამ არა დიდად) შემცირება უსაფრთხოება.
Ზოგადი ინფორმაცია
ეს პროექტი წარმოქმნის ახალ კოდს ყოველ 30 წამში წინასწარ განსაზღვრული გასაღების და მიმდინარე დროის გამოყენებით (რომელიც თვალყურს ადევნებს რეალურ დროში საათის მოდულის გამოყენებას) და აჩვენებს მას ეკრანზე ღილაკის დაჭერისას. ყველაზე გავრცელებული გამოყენების შემთხვევა იქნება ორფაქტორიანი გადამოწმება, რომელიც დაფუძნებულია დროზე დაფუძნებულ ერთჯერადი პაროლზე (TOTP) და HMAC დაფუძნებულ ერთჯერადი პაროლზე (HOTP) ავტორიზაციისათვის.
TOTP არის ალგორითმი, რომელიც ითვლის ერთჯერადი პაროლის გაზიარებულ საიდუმლო გასაღებს და მიმდინარე დროს. HTOP არის ალგორითმი, რომელიც იყენებს HMAC ალგორითმს ერთჯერადი პაროლის შესაქმნელად.
კომპანიები, როგორიცაა Google, Microsoft და Steam უკვე იყენებენ TOTP ტექნოლოგიას მათი ორფაქტორიანი ავტორიზაციისათვის
საინტერესო ბმულები
სტატია, რომელიც განმარტავს, თუ როგორ იყენებს Google ამ ტექნოლოგიას მომხმარებლების ავთენტიფიკაციისთვის-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
HOTP და TOTP JavaScript დანერგვა, რომელიც შეიძლება გამოყენებულ იქნას ამ პროექტის გამოყენებით პროგრამული უზრუნველყოფის შექმნისას -
კრიტუოგრაფიული ბიბლიოთეკა Arduino– სთვის, რომელიც გამოიყენება ამ პროექტში -
TOTP ნაშრომი -
ექსპერტიზის დონე
ეს ინსტრუქცია განკუთვნილია ენთუზიასტებისთვის, რომლებიც დაინტერესებულნი არიან უსაფრთხოებით და შეიძლება სურთ თავიანთი TOTP– ის თაობაზე განახორციელონ კარგი ტექნიკური კომპონენტი. ეს ინსტრუქცია დაწერილია აუდიტორიისათვის, რომელსაც უკვე ესმის ელექტრონული დიაგრამების და ელემენტარული პროგრამირების ინტერპრეტაციის საფუძვლები, მაგრამ თუ თქვენ ზუსტად აპირებთ ამ ინსტრუქციის ზუსტად შესრულებას, არ ინერვიულოთ, თუ არ გაქვთ გამოცდილება და მოგერიდებათ კითხვების დასმა. კომენტარები! გარდა ამისა, პროექტი შეიძლება იყოს საინტერესო უფრო გამოცდილი შემქმნელებისთვისაც, ვინაიდან საბოლოო პროდუქტი არა მხოლოდ სასიამოვნო ნაჭერია (ჩემი აზრით), არამედ აქვს ამდენი პოტენციალი გაფართოებისა და ახალი მახასიათებლების გარეშე.
მარაგები
მასალები:
- 1x Arduino Nano (ამაზონი)
- 1x DS3231 AT24C32 რეალურ დროში საათი (RTC) მოდული (ამაზონი)
- 1x SH5461AS საერთო კათოდი 4 ციფრიანი 7 სეგმენტი (ამაზონი)
- 1x ღილაკი (ამაზონი)
- 1x 10k რეზისტორი (ამაზონი)
- სურვილისამებრ 1x 5x7 სმ PCB (ამაზონი)
- სურვილისამებრ მავთული PCB– ზე შესადუღებლად
- სურვილისამებრ 1x Breadboard ტესტირებისთვის (ამაზონი)
ნაბიჯი 1: შეკრება და ტესტირება
შეაგროვეთ ყველა კომპონენტი პურის დაფაზე და დააკავშირეთ ისინი თანდართული გაყვანილობის დიაგრამის მიხედვით (გაყინვის ფაილი აქ არის).
დარწმუნდით, რომ გაქვთ Arduino IDE დაინსტალირებული (მისი ნახვა შეგიძლიათ ინტერნეტში, თუ არა) და დააინსტალირეთ შემდეგი ბიბლიოთეკები:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
ჩამოტვირთეთ თანდართული ესკიზი (ასევე შეგიძლიათ იხილოთ აქ: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) და გახსენით ის Arduino IDE გამოყენებით. გახსენით ეს ბმული (https://www.lucadentella.it/OTP/) და შეიყვანეთ ნებისმიერი სახელი ანგარიშის სახელის ველში და შემდეგი საიდუმლო ველში მორგებული საიდუმლო გასაღები (10 სიმბოლო), დარწმუნდით რომ შეინახავთ ორივე ამ მნიშვნელობას უსაფრთხო ადგილას სარეზერვო. დააკოპირეთ "Arduino HEX მასივი:" ველის შინაარსი და დაუბრუნდით Arduino რედაქტორს, შეცვალეთ მასივი 25 -ე ხაზზე (hmacKey) იმით, რაც თქვენ დააკოპირეთ საიტიდან.
ყოველი მავთულის კავშირის ორმაგი შემოწმების შემდეგ, დარწმუნდით, რომ RTC მოდულს აქვს მონეტის უჯრედი და დაუკავშირეთ Arduino თქვენს ლეპტოპს USB მინი კაბელის გამოყენებით და ატვირთეთ თანდართული ესკიზი.
ატვირთვის შემდეგ, ღილაკზე დაჭერისას, ნომერი უნდა გამოჩნდეს ეკრანზე. თუ ჩამოტვირთავთ Google Authenticator აპი სმარტფონზე და დაუბრუნდებით საიტს, რომელიც გამოიყენება HEX მასივის გენერირებისთვის, QR კოდის სკანირებისას ან აპლიკაციაში "Google Authenticator code" აკრეფისას, თქვენ უნდა ნახოთ აპლიკაციაში ნაჩვენები ნომერი. თუ ყველაფერი სწორად მუშაობს, ღილაკზე დაჭერისას ნაჩვენები 4 ციფრი უნდა ემთხვეოდეს სმარტფონის აპლიკაციაში ნაჩვენები მიმდინარე კოდის პირველ 4 -ს. თუ ეს ასე არ არის, დარწმუნდით, რომ კომპიუტერი, რომელიც გამოიყენება Arduino კოდის ასატვირთად, დაყენებულია UTC დროზე და სცადეთ ხელახლა.
ნაბიჯი 2: გადატანა PCB– ზე
მას შემდეგ რაც დარწმუნდებით, რომ ყველაფერი მწყობრშია, თქვენ შეგიძლიათ კომპონენტები გადაიტანოთ PCB– ზე და შეაერთოთ ყველაფერი ერთად, როგორც მოგეჩვენებათ. მე დაურთო PCB დიაგრამა Fritzing ფაილის გარდა (ხელმისაწვდომია აქ). გაითვალისწინეთ, რომ ყველა კომპონენტი მოვათავსე დაფის თავზე ესთეტიკისათვის, მაგრამ ასევე შესაძლებელია მისი ქვედა ნაწილში დამონტაჟება და შემდეგ რაიმე სახის კორპუსში ჩასმა, რათა ის უფრო სუფთა იყოს. მე მოჭრილი და ცხელი წებოვანი popsicle ჩხირები ფერადი Sharpie ერთად მხარეს PCB შექმნა იმპროვიზირებული ყუთი ერთეული. კიდევ ერთი არჩევითი ნაბიჯი არის 9 ვოლტიანი ბატარეის სამაგრის მიმაგრება Arduino– ს VIN და GND ქინძისთავებზე, რაც აკუმულატორზე იმუშავებს.
ნაბიჯი 3: დასრულდა
ასე აღმოჩნდა ჩემი დასრულებული გენერატორი, თუ თქვენ მიჰყევით და თავად შექმენით ერთი, გააზიარეთ ქვემოთ!
დარწმუნდით, რომ ხმას აძლევთ ჩემს Instructable- ს STEM კონკურსზე, თუ საჭიროდ ჩათვლით და დატოვეთ კომენტარი/ნებისმიერი შეკითხვა, რომელიც შეიძლება გქონდეთ ქვემოთ!
გირჩევთ:
როგორ გამოვიყენოთ Arduino DDS სიხშირის სიგნალის გენერატორი AD9850: 7 ნაბიჯი
როგორ გამოვიყენოთ Arduino DDS სიხშირის სიგნალის გენერატორი AD9850: ამ სახელმძღვანელოში ჩვენ ვისწავლით თუ როგორ უნდა გავაკეთოთ სიხშირის სიგნალის გენერატორი AD9850 მოდულისა და Arduino– ს გამოყენებით. უყურეთ ვიდეოს! შენიშვნა: მე შევძელი სიხშირის მიღება +50 მჰც -მდე, მაგრამ სიგნალის ხარისხი მიიღება უარესი მაღალი სიხშირეებით
RF სიგნალის გენერატორი 100 KHz-600 MHZ DDS AD9910 Arduino Shield– ზე: 5 ნაბიჯი
RF სიგნალის გენერატორი 100 KHz-600 MHZ DDS AD9910 Arduino Shield: როგორ გავაკეთოთ დაბალი ხმაური, მაღალი სიზუსტე, სტაბილური RF გენერატორი (AM, FM მოდულაციით) Arduino– ზე
ინტერაქტიული ლაზერული ფურცლის გენერატორი Arduino– ით: 11 ნაბიჯი (სურათებით)
ინტერაქტიული ლაზერული ფურცლების გენერატორი Arduino– ით: ლაზერები შეიძლება გამოყენებულ იქნას წარმოუდგენელი ვიზუალური ეფექტების შესაქმნელად. ამ პროექტში მე შევქმენი ახალი ტიპის ლაზერული ჩვენება, რომელიც არის ინტერაქტიული და უკრავს მუსიკას. მოწყობილობა ბრუნავს ორ ლაზერს, ქმნის სინათლის ორ მორევის მსგავს ფურცელს. მე დავამატე დისტანციის სენსორი
ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი): 4 ნაბიჯი (სურათებით)
ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი): გამარჯობა, დღეს მე აგიხსნით, თუ როგორ უნდა შექმნათ თქვენი საკუთარი პატარა ამინდი მუსიკის გენერატორი. იგი ეფუძნება ESP8266- ს, რომელიც არდუინოს მსგავსია და ის პასუხობს ტემპერატურას, წვიმას და სინათლის ინტენსივობა. ნუ ელოდებით, რომ ის მთელ სიმღერებს ან აკორდს გამოიმუშავებს
გენერატორი - DC გენერატორი რიდის გადამრთველის გამოყენებით: 3 ნაბიჯი
გენერატორი - DC გენერატორი ლერწმის გადამრთველის გამოყენებით: მარტივი DC გენერატორი პირდაპირი მიმდინარე (DC) გენერატორი არის ელექტრო მანქანა, რომელიც გარდაქმნის მექანიკურ ენერგიას პირდაპირ მიმდინარე ელექტროენერგიად. მნიშვნელოვანია: პირდაპირი მიმდინარე (DC) გენერატორი შეიძლება გამოყენებულ იქნას როგორც DC ძრავა ყოველგვარი კონსტრუქციული გარეშე ცვლილებები