AVR / Arduino'da kod güvenliği ve güncellemeler


9
  1. Herhangi bir AVR tabanlı cihaza yanıp sönen kodu tersine mühendislikten korumanın en iyi yolu nedir?
  2. Son kullanıcılara kodu açıklamadan kendi başlarına yanıp sönmeleri için güncelleme sağlamanın kolay bir yolu nedir? (Şifrelenmiş bir görüntünün şifresini çözen bir bootloader ile mi?)

DRM'yi tanıttığım için beni alevlendirmeyin, açık platformlardan yanayım - bunun nasıl çalışacağını merak ediyorum.


Yapma. Orada NO WAY için tamamen ters donanım / yazılım mühendislik kötü niyetli bir kişinin olasılığını önlemek. Anti-RE önlemlerinin yaptığı tek şey tersine çevirmenin daha uzun sürmesini sağlamaktır.
Connor Wolf

Yanıtlar:


9

İlk:

Yonga üzerinde, harici araçların yongadaki kodu okumasını önlemek için ayarlanabilen sigortalar vardır. Veri sayfanızdaki ve / veya programcı belgelerinizdeki koruma sigortalarını arayın.

Mükemmel değil, ama sizi basit saldırılara karşı korur.

İkinci:

Ürün yazılımını güvenli bir şekilde indiremezsiniz. AVR korunan alanları kendi kendine programlayamaz:

http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf

Yapabileceğiniz en iyi şey, şifrelenmiş bir belirteç dili (temel veya ileri gibi) kullanmak ve yorumlayıcıyı, şifrelenmiş belirteçleri açık bir alana programlayabilen bir önyükleyici ile çip üzerinde korumaktır. Çalışırken, çip şifresini çözer ve talimatları anında yürütür.


3
Sigortalar mükemmel değilse, ne tür bir bozulma atlayabilir?

1
@Anonymous - Silikonun kapağını kimyasal olarak aşındırarak silikonu görüntülemek, arayüz oluşturmak ve düzenlemek için elektron mikroskopları, lazerler ve mikroplar kullanarak. En az 500 $ maliyeti, ancak cihaza iş ne olursa olsun daha ucuz olabilir.
Kevin Vermeer

@KevinVermeer Bunu mu demek istediniz: 500 $? Bana öyle geliyor ki bundan çok daha pahalı olurdu.
NickHalden

Adam, bir hata oluştu, bu yüzden
yorumumu

3

Bu kadar önemliyse ve özellikle kodunuzu çalan rakiplerden endişe duyuyorsanız, kod segmentlerinizde IP korumasını kullanın. Yine de bir projeden para kazanmaya çalışacaksanız, bunu araştırmalısınız.

Bazı kod öğeleri patentli olabilir (belirli işleme yöntemleri ve yeni algoritmalar için) veya endüstriyel tasarımlar (kodunuzun görünümü, düzeni ve bir cihaza uygulanması) olarak kaydedilebilir. Bu konuda bir IP avukatına danışmak isteyebilirsiniz.


1

Seri bağlantı noktası üzerinden şifrelenmiş verileri kabul eden, şifresini çözüp kod depolama alanına kaydeden kendi bootloader'ınızı yazdıysanız, güvenli kod ürün yazılımı güncellemesine sahip olabilirsiniz. Her aygıtın, özel önyükleyicinizde kendi benzersiz şifre çözme anahtarı bile olabilir.


1
@Adam Davis'in ne dediğini düşünüyorum, eğer bir bootloader (hatta yazdığınız bir tane) kullanıyorsanız o zaman kilitli korumalı alanları programlayamazsınız. Bu nedenle, kendi şifreli önyükleyicinizi yazdıysanız, çipin okunmasını engelleyemezdiniz (sorun 1). Zaten linkten ve veri sayfasından aldığım şey bu.
Lou

önyükleyici ve kod şifrelenirse ikinci sorunu çözer, ilk sorun yeterince güvenli bir şifreleme kullanıyorsa neredeyse çözülür. (uC hızı bir şişe boynu olabilir).
Rick_2047

Doğru. @Adam Davis yukarıda şifreli bir jeton dili önerdi.
Lou
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.