İçindekiler:
Video: Arduino TOTP Jeneratör: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Esin
Kriptografi ve güvenlikle ilgilenen bir arkadaşım olduğu için mükemmel bir doğum günü hediyesi yaratmak istedim.
*Bu bir doğum günü hediyesi olarak yaptığım bir projedir ve kısıtlı zaman içinde oluşturulmuştur (dağınık işçilik için kusura bakmayın)
NOT: Bu projede kullanılan TOTP nesli 6 haneli kodlar üretir ve kullanır, ancak elimdeki mevcut donanımım nedeniyle, sondaki 2 haneyi kesmeyi ve 4'ü görüntülemeyi ve kullanmayı seçtim, tartışmalı olarak (ama büyük ölçüde değil) azaltarak güvenlik.
Genel bilgi
Bu proje, önceden paylaşılmış bir anahtar ve (gerçek zamanlı saat modülünü kullanarak izlenen) geçerli saati kullanarak her 30 saniyede bir yeni bir kod üretir ve düğmeye basıldığında bunu ekranda görüntüler. En yaygın kullanım durumu, kimlik doğrulama için Zamana Dayalı Tek Kullanımlık Parolaya (TOTP) ve HMAC tabanlı Tek Kullanımlık Parolaya (HOTP) dayalı iki faktörlü doğrulama olacaktır.
TOTP, paylaşılan bir gizli anahtardan ve o anki zamandan tek seferlik bir şifre hesaplayan bir algoritmadır. HTOP, bir kerelik parola oluşturmak için HMAC algoritmasını kullanan bir algoritmadır.
Google, Microsoft ve Steam gibi şirketler, iki faktörlü kimlik doğrulama için zaten TOTP teknolojisini kullanıyor
İlginç Bağlantılar
Google'ın kullanıcıların kimliğini doğrulamak için bu teknolojiyi nasıl kullandığını açıklayan makale -
Bu projeyi kullanarak yazılım oluştururken kullanılabilecek HOTP ve TOTP'nin JavaScript uygulaması -
Bu projede kullanılan Arduino için kriptografik kütüphane -
TOTP Kağıdı -
Uzmanlık Düzeyi
Bu Eğitilebilir Tablo, güvenlikle ilgilenen ve TOTP'lerinin oluşturulmasına güzel bir donanım bileşeni uygulamak isteyebilecek meraklılar içindir. Bu talimat, elektronik diyagramlarını ve temel programlamayı yorumlamanın temellerini zaten anlayan bir kitle için yazılmıştır, ancak bu Eğitilebilir Tabloyu tam olarak takip etmeyi planlıyorsanız, deneyiminiz yoksa endişelenmeyin ve aşağıda soru sormaktan çekinmeyin. yorumlar! Ayrıca, proje daha deneyimli yapımcılar için de ilgi çekici olabilir, çünkü nihai ürün sadece etrafta olması güzel bir parça (bence) değil, aynı zamanda çok fazla güçlük çekmeden genişleme ve yeni özellikler için çok fazla potansiyele sahip.
Gereçler
Malzemeler:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 Gerçek Zamanlı Saat (RTC) Modülü (Amazon)
- 1x SH5461AS Ortak Katot 4 haneli 7-segment (Amazon)
- 1x Buton (Amazon)
- 1x 10k Direnç (Amazon)
- OPSİYONEL 1x 5x7cm PCB (Amazon)
- OPSİYONEL PCB'ye lehimleme için tel
- İSTEĞE BAĞLI 1x Test için Breadboard (Amazon)
Adım 1: Montaj ve Test
Tüm bileşenleri devre tahtası üzerinde birleştirin ve ekteki kablo şemasına göre kablolayın (Fritzing dosyası burada).
Arduino IDE'nin kurulu olduğundan emin olun (eğer kurmadıysanız çevrimiçi olarak bulunabilir) ve aşağıdaki kitaplıkları kurun:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Ekli taslağı indirin (buradan da erişilebilir: https://Gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) ve Arduino IDE'yi kullanarak açın. Bu bağlantıyı (https://www.lucadentella.it/OTP/) açın ve hesap adı alanına herhangi bir ad ve aşağıdaki alana özel bir gizli anahtar (10 karakter uzunluğunda) girerek bu değerlerin her ikisini de kaydettiğinizden emin olun. yedekleme için güvenli bir yerde. "Arduino HEX dizisi:" alanının içeriğini kopyalayın ve 25. satırdaki (hmacKey) diziyi siteden kopyaladığınız diziyle değiştirerek Arduino düzenleyicisine geri dönün.
Her kablo bağlantısını iki kez kontrol ettikten sonra, RTC modülünün içinde bir madeni para hücresi olduğundan emin olun ve Arduino'yu bir USB mini kablo kullanarak dizüstü bilgisayarınıza bağlayın ve ekteki çizimi yükleyin.
Yüklemeden sonra butona basıldığında ekranda bir sayı görünmelidir. Google Authenticator uygulamasını bir akıllı telefona indirir ve HEX dizisini oluşturmak için kullanılan siteye geri dönerseniz, QR kodunu tararsanız veya uygulamaya "Google Authenticator kodunu" yazarsanız, uygulamada gösterilen bir sayı görmelisiniz. Her şey doğru çalışıyorsa, düğmeye bastığınızda görüntülenen 4 hane, akıllı telefon uygulamasında gösterilen geçerli kodun ilk 4'üyle eşleşmelidir. Durum böyle değilse, Arduino kodunu yüklemek için kullanılan bilgisayarın UTC saatine ayarlandığından emin olun ve tekrar deneyin.
Adım 2: PCB'ye Aktarma
Her şeyin çalıştığından emin olduktan sonra, bileşenleri PCB'ye aktarabilir ve uygun göründüğünüz şekilde her şeyi birlikte lehimleyebilirsiniz. Fritzing dosyasına ek olarak bir PCB şeması ekledim (burada mevcuttur). Estetik için tüm bileşenleri panonun üstüne yerleştirdiğimi, ancak daha temiz hale getirmek için altına monte edilebileceğini ve ardından bir tür muhafaza içine yerleştirilebileceğini unutmayın. Ünite için geçici bir kutu oluşturmak için Sharpie ile renklendirilmiş buzlu şeker çubuklarını PCB'nin yanlarına kesip sıcak yapıştırdım. Diğer bir isteğe bağlı adım, Arduino'nun VIN ve GND pinlerine 9 voltluk bir pil klipsi takarak pille çalışır hale getirmektir.
Adım 3: Bitti
Tamamlanan jeneratörüm böyle oldu, takip edip kendin yaptıysan aşağıda paylaş!
Uygun görürseniz, Eğitilebilirliğimi STEM Yarışması için oyladığınızdan emin olun ve aşağıya bir yorum / sorularınızı bırakın!
Önerilen:
Turbo Trainer Jeneratör: 6 Adım
Turbo Trainer Jeneratör: Pedal gücüyle elektrik üretmek beni her zaman büyülemiştir. İşte benim görüşüm
Arduino Kullanan 4-20ma Jeneratör/Test Cihazı: 8 Adım
Arduino Kullanan 4-20ma Jeneratör/Test Cihazı: ebay'de 4-20mA jeneratörler mevcuttur, ancak ben bir şeylerin DIY kısmını ve etraftaki parçaları kullanmayı seviyorum. Scada okumalarımızı doğrulamak için PLC'mizin analog girişlerini test etmek istedim ve 4-20mA cihazlarının çıkışını test etmek için. Loa var
Jeneratör: Fidget Spinner Jeneratör 3'ü 1: 3 Adımda
Jeneratör: Fidget Spinner Jeneratör 3'ü 1 arada: fidget spinner jeneratörü 3'ü 1 arada - şimdi fidget spinner jeneratörünüzü yapılandırabilirsiniz (üç seçenek)mikro jeneratör 3 neodimyum küre ve 3 neodimyum disk kullanıyor (led ve küçük bobin demir daha az)Bizi bulun INSTAGRAM'DA ve basit bir elektrik
Jeneratör - Manyetik Anahtar Kullanan DC Jeneratör: 3 Adım
Jeneratör - Manyetik Anahtar Kullanan DC Jeneratör: Basit DC jeneratör Doğru akım (DC) jeneratörü, mekanik enerjiyi doğru akım elektriğine dönüştüren bir elektrik makinesidir.Önemli: Doğru akım (DC) jeneratörü, herhangi bir yapısal olmadan DC motor olarak kullanılabilir. değişiklikler
Arduino Yún Morse Jeneratör: 4 Adım (Resimlerle)
Arduino Yún Morse Jeneratör: Müzik çok yüksek olduğu için arkadaşınızla konuşamadığınız bir barda bulundunuz mu? peki şimdi ondan Mors Kodunda bir bira isteyebilirsiniz! Başlayalım