Arduino için Şifreleme Kütüphanesi


9

Tuş takımını okumak ve tuş takımı PIN girişi üzerine elektrik çarpması açmak için Arduino kullanıyorum. Bu çizim için PIN'leri EEProm'da saklamak için bir çeşit hafif şifreleme kullanmak istedim. Böyle bir kütüphaneyi bilen var mı? TwoFish kullanarak mümkün olabileceğini duydum.

Yanıtlar:


12

Şifreleri (PIN'ler) şifrelemek istemezsiniz; bunları karma hale getirmek istersiniz . Birisi bir parola girdiğinde, bu parolayı hash eder ve hash'ı depolanan hash ile karşılaştırırsınız. Bu yöntemin avantajı (30 yılı aşkın bir süredir kullanılır), biri kaynağı ve karmaları ele geçirse bile, yeterince güçlü bir karma işlevi seçtiğiniz sürece, hangi PIN'lerin karmalarla eşleştiğini söyleyememesidir .

Şifrelemeyi kendiniz uygulamak istemezsiniz, özellikle de büyük bir topluluk tarafından test edilmiş açık bir uygulamaya sahip bir başkasının kütüphanesini kullanmak istersiniz. Şifreleme zordur, test etmek zordur ve şifreleme testi zordur, bu yüzden sizin için başka birini yapmasını sağlayın.

GPLv3 ile lisanslanan AVR Kripto Kütüphanesine göz atmalısınız . AVR için Skein'in bir uygulaması da var .


1
Yükseltildi - İyi bir kaynak ve bu sorunun cevabı olarak ayarlanmalıdır.
Lou

9

Hristos'un yayınladığı bu bağlantı, muhtemelen yararlı olsa da, kesinlikle "şifreleme" olarak sayılmaz. Gerçekten sadece "şaşkınlık".

Doğru kriptografinin, matematiği bilen insanlar için bile yanlış anlaşılması çok kolaydır.

Orijinal gönderiye yanıt olarak - birinin EEProm'daki PIN'lere erişmesine izin verecek saldırı yöntemleri nelerdir? Kuşkusuz elektroniklerinize bu kadar girmişlerse, sadece "kırmızı kabloyu kesip" kapıyı açabilirler mi?

Bir şekilde olursa yapmak saldırganlar zaten kapıyı açmak için yeterli erişimi olmadan EEPROM içeriğinin ele geçirebilecek bir sisteme sahip, muhtemelen yeniden tasarlamak istiyorum. Sen olabilir EEPROM t bir şifre çözme anahtarı içermesi gerekmez bu şekilde - - Unix şifre karma benzer tek yönlü hash fonksiyonları bakmak sorun PIN'lerini için arama alanı olduğunu çok küçük - Ben karma sürümünü indirebilirsiniz eğer PIN, 10.000 olası PIN'in tümünü hızlı bir şekilde deneyebilirim, herhangi bir modern-dizüstü bilgisayarın hepsini birkaç saniye içinde çalıştıracağından şüpheleniyorum.


Kabul ediyorum (ve yukarıda anlaştım), tek yönlü bir karma yararlı olacaktır ve sistemi programlıyorsanız, pimi istediğiniz kadar yapabilirsiniz, örneğin 8 basamak, daha uzun sürmesi gereken 100.000.000 kombinasyon verir.
Amos

1

Sorduğum sorun, pinlerinizi görebilirlerse, pinlerinizi şifreleyen / kontrol eden / şifresini çözen programınızı da görebilirler. Ayrıca, çipiniz varsa, girilen herhangi bir pim için her zaman olumlu bir sonuç vermek için (kontrolü etkin bir şekilde atlayarak) programı değiştiremezler.


1

Kullanıcının geçerli bir PIN girip girmediğini kontrol etmek için şifrelenmiş PIN kodlarının kodunu çözmeyi nasıl planlıyorsunuz? Şifre çözme anahtarını saklamanız gerekir ... bu noktada saldırgan eepromunuzu okuyabiliyorsa, şifreleme anahtarını bulmak için flaşınızı da okuyabilir. Temel olarak tüm şifrelemenizi tamamen işe yaramaz hale getirir. Ayrıca diğer insanların söylediği gibi, eğer zaten çipinizi okuma yeteneğine sahipse, sadece yeni bir program yazabilirdi. Sadece kapıyı açık tekmelemek çok daha basit, ben hiç kimse çip kesmek için çalışırken sorun giderdim şüpheliyim.


1

İşte C'de Arduino'ya kolayca taşınabilen basit bir encription yöntemi. Bu, verileri arduino'nun sınırlı kaynaklarıyla şifrelemenin en kolay yolu gibi görünüyor.

-EDIT- Anahtarı programınızın dışında tutmak için PIN'in yarısını anahtar haline getirebilirsiniz. Bu, programınızın EEProm'da depolanan şifreli 1/2 PIN'in şifresini çözmek için PIN'in anahtar yarısını aldığı anlamına gelir. EEProm'un şifresi çözülen anahtar, PIN'inizin anahtar olmayan kısmı ile eşleşirse, kapı kilidi açılır. Bu sadece davetsiz misafirlerin kapıyı kırmasının veya Arduino'yu yeniden programlamasının mümkün olmadığı bir durumda işe yarayacaktır.


Ancak çipinize erişimi yoksa, pimi şifrelemenize gerek yoktur.
Amos

1

Başka bir soru sorarken soruyu cevaplamaktan nefret ediyorum, ama ...

Cihazınızın kurcalamaya karşı korumasız olmasının bir nedeni var mı? Endişe ettiğiniz kurcalamayı tespit etmek için 'tezgahta' vida deliklerinde basma düğmesi anahtarları gördüm. Sonra .. işte bir şey sökmeden (veya çipe zarar vermeden) çipinizi almayı başaran bir bütan mikro meşale ile geliyor .. bir şekilde, (ayrıca, umarım) değişiklikleri tespit etmeyi içeren kurcalamaya dayanıklı sisteminizin tasarımını biliyordu ortam ışığı ve / veya ses. Kapak söndüğünde, ikisi de gece veya gündüz oldukça farklı hale gelir.

Bu durumda, açıkta kalan parçaların şifrelemenin daha kolay uygulandığı bir şeyle iletişim kurduğu iki parçalı bir sistem olmalıdır. Ayrıca, sağlama toplamları (yardım) meşale ile çocuk için hesap.

Sanırım bir tornavidadan çekiç olmasını istiyorsun.


1

Bu yorumlar gerçekten yerinde. Şifreleme hakkında bilgi edinmeyi denemede yanlış bir şey yoktur, ancak bu gerçekten bu tür şeyleri öğrenmek için iyi bir proje değildir. Gerçekten iyi bir ders kitabı ve bir bilgisayar istiyorsun ve @bigiain'in söylediği gibi, matematik yanlış anlaşılması çok kolay.

Kriptografinin nasıl çalıştığını ve neye karşı olduğunuzu daha iyi anlamak için , Uygulamalı Kriptografi El Kitabı mükemmel ve ücretsizdir:

Sadece projenizi güvence altına almak istiyorsanız, bu verimsiz bir yöntemdir. Şifreleme ile ilgileniyorsanız, bu kitapla ve bilgisayarla başlayın.


Kriptografiyi anlıyorum, Bruce Schneier'i okuyorum ve yirmi yılı aşkın süredir programladım. Gerçek tehdidin kapıyı kırmak ve her türlü Arduino kontrolörünün yanından geçmek olduğunu anlıyorum. Kaçınılmazsa EEProm'da açık metin PIN'leri ile vicdanla kuramıyorum. Fly

Açık metin PIN'leri saklamaktan kaçınmak istiyorsanız, bu rolde etkili olabilecek herhangi bir sayıda basit gizleme yöntemi vardır. Yukarıdaki yanıt verenler yalnızca kriptografinin ne yaptığını ve yapmadığını anlamanıza yardımcı olmaya çalışıyordu. İşte bir AES kütüphanesi: hoozi.com/Articles/AESEncryption.htm Ayrıca, 20 yıldır programladığınız için kriptografiyi "anladığınız" anlamına gelmediğini söylemek istiyorum. Tamamen farklı bir alandır. 20 yıllık bir oto tamircisi yetenekli bir insan, ama sıfırdan bir CAN otobüsü tasarlamasını beklemiyordum. Tutumunu kontrol et lütfen.
Lou

Tanrım ... 20 yıllık kodlama ve çalışma zamanı verilerini şifrelemenin mümkün olduğunu mu düşünüyorsun ????? Çıkın.
MickLH
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.