NodeMCU kartına yüklenen programlar çıkarılabilir mi?


13

Basit bir varlık izleyici oluşturmak için WiFi özellikli bir NodeMCU kartı kullanıyorum. Azure IoT Hub'a bağlantı sağlayan ve mesaj gönderen birkaç Arduino taslağı bulmayı başardım.

Tahtaya "yüklemek" için gereken anahtarlardan biri Azure Device Connection dizesi ve tabii ki bir WiFi SSID ve parola.

Benim korkum birisi sadece yönetim kurulu almak ve güvenlik kimlik bilgilerine erişmek için dosyaları "indirmek" olabilir.

Korkum garanti edilmemiş mi veya kimlik bilgilerinizin kaybı, hafifletmem gereken gerçek bir tehdit mi?


3
Bence @Mike Ounsworth ve Bence Kaulics'in birlikte aldığı cevaplar bana iyi bir seçenek sunuyor. Ne yazık ki her ikisini de kabul edilmiş cevaplar olarak işaretleyemiyorum.
Rams

Yanıtlar:


12

[yasal uyarı: Ben bir güvenlik / kripto uzmanıyım ve her gün bunun gibi güvenlik mimarisi soruları ile ilgileniyorum.]

Kimlik bilgilerini, katılımsız bir işlemin bunlara erişebileceği şekilde sakladınız, ancak bir saldırgan erişemedi. Bu, iyi bilinen ve çözülmesi çok zor bir sorundur.

IoT cihazınızda, bazı TPM'ler gibi anakarta yerleşik bir donanım anahtar deposu veya Android Donanım destekli Anahtar Deposu veya Apple Güvenli Enclave'e eşdeğer varsa, bunu kullanabilirsiniz.

Geleneksel sunucularla HSM'leri veya Akıllı Kartları kullanabilirsiniz, ancak farkında olduğum tek tam yazılım çözümü, tüm donanım cihazlarının seri numaralarını birleştirerek oluşturulan bir çeşit "donanım parmak izinden" bir AES anahtarı elde etmektir. Sonra kimlik bilgilerini şifrelemek için bu AES anahtarını kullanın. Aynı sunucuda çalışan bir işlem AES anahtarını yeniden yapılandırabilir ve kimlik bilgilerinin şifresini çözebilir, ancak dosyayı sunucudan ayıkladıktan sonra, aslında şifresi çözülemez.

IoT, iki nedenden dolayı buna bir anahtar atıyor:

  1. Donanım seri numaralarının benzersiz olduğu varsayımı muhtemelen geçerli değildir ve

  2. Sunucuların aksine, saldırganların cihaza fiziksel erişimi vardır, bu nedenle muhtemelen şifre çözme programını çalıştırmak için cihazda bir kabuk alabilirler.

Hem donanım şifrelemesi (TPM'ler) hem de "donanım parmak izi" şifrelemesi en iyi şekilde gizlidir, çünkü temel olarak, yerel bir işlem verilerin şifresini çözebilirse, o yerel işlemi çalıştırabilen bir saldırgan da şifresini çözebilir.


Standart numara burada çalışmıyor gibi görünüyor. Kendinize sormanız gereken ilk soru:

  • Tehdit modelim nedir / bu proje Secure <--> Convenientölçekte nerede duruyor?

Nihayetinde, security > convenienceher açılıştan sonra buna karar vermeniz ve kimlik bilgilerini girmeniz gerektiğini düşünüyorum ( @ BenceKaulics'in cevabı gibi bir şey kullanarak ) veya buna karar veriyorsunuz security < convenienceve sadece kimlik bilgilerini cihaza koyuyorsunuz. fark yaratır.


Bu, IoT cihazlarının doğasıyla daha da zorlaşan zor bir sorundur.

Bütünlük için, bu soruna tam gelişmiş endüstriyel çözüm:

  • Her IoT cihazına üretim anında benzersiz bir RSA genel anahtarı verin. Bu ortak anahtarı aygıt seri numarasına karşı bir db'ye kaydedin.
  • Hassas kimlik bilgilerini uygun bir sunucuda saklayın, buna "ağ geçidi" diyelim.
  • Bir IoT cihazı ağ geçidinde kimlik doğrulaması yaptığında (RSA anahtarını kullanarak), ağ geçidi depolanan kimlik bilgilerini kullanarak oturum açar ve oturum belirtecini aygıta geri verir.
  • En iyi güvenlik için, ağ geçidi fiziksel (veya VPN) bir ağ geçididir, böylece IoT cihazından gelen tüm trafik ağ geçidinden geçer ve güvenlik duvarı kuralları ve şeyleri üzerinde daha fazla kontrole sahip olursunuz - ideal olarak cihazın doğrudan (VPN dışı tünellenmiş) olmasını engeller internet erişimi.

Bu şekilde, bir cihazdan ödün veren saldırgan bir oturum açabilir, ancak hiçbir zaman kimlik bilgilerine doğrudan erişemez.


2
Evet. Sorunun büyük bir kısmı, burada korunmaya çalışan şeyin bir wifi şifresi olan paylaşılan sır olmasıdır. Bir cihazın fiziksel olarak diseke edilebildiği zaman paylaşılan sırlar kötü bir fikirdir. Daha iyi bir tasarım , cihazın (veya başka bir bilgisayarın) her bir örneğini , her bir gadget ile iletişim kurmaları gereken sistemler arasında benzersiz bir güvenli kanalla kendi güvenlik ortamına ayıracaktır. Bu nedenle, wifi bazı noktadan noktaya 2,4 GHz şemasına veya hatta "Esp Now" protokolüne karşı uygulama için çok uygun olmayabilir.
Chris Stratton

1
İyi bir nokta. Paylaşılan gizli sorunu SSID şifresi yerine WPA2 kurumsal istemci sertifikalarını kullanarak düzeltebilirsiniz (IoT cihazı bir TLS yığınına sahip olacak kadar büyükse, çoğu değildir). Azure IoT Hub hakkında hiçbir şey bilmiyorum, ancak bu Azure Aygıt Bağlantısı dizelerinin zaten aygıt başına benzersiz olduğunu varsayıyorum. Ne yazık ki, bu "DIY güvenlik yok" ve "Endüstriyel ölçekli güvenlik" arasında oldukça temiz bir siyah-beyaz gibi görünüyor.
Mike Ounsworth

2
Merak ediyorum, eğer istediği zaman bir oturum açabilirsem, neden kimlik bilgilerine ihtiyacım var?
Andrew Savinykh

1
@AndrewSavinykh Kimlik bilgilerinin ne olduğuna bağlıdır. Belki tek yaptıkları bir oturum açmak, bu durumda evet, fazla bir neden yok. Ancak, bunlar Windows etki alanı AD kimlik bilgisidir veya IoT cihazından normalde kullanılmayan / erişilemeyen ek API'lara erişim sağlar. Güvenliği ihlal edilmiş cihazlardan gelen oturumlarda sorun yaşamazsınız, ancak saldırganların dizüstü bilgisayarlarından gelen oturumlarda sorun yaşamazsınız. Evet, kullanım durumuna özgü oldukça hızlı.
Mike Ounsworth

3
Seri numaraları??? Benzersiz bir seri numarası bulmak sorun olmamalı, ancak seri numaraları gizli değildir. Bir anahtar oluşturmak için işe yaramazlar. Dünyanın neresinde bir anahtar "standart numara" oluşturmak için seri numaraları kullanıyor?
Gilles 'SO- kötü olmayı bırak'

6

Tehdit gerçek ama neyse ki bu tür güvenlik endişeleri olan ilk veya tek kişi siz değilsiniz.

İhtiyacınız olan şey ESP WiFi Manager burada ihtiyacınız olan şey.

Bu kütüphane ile kaydedilmiş oturumu olmayan ESP, AP moduna geçecek ve bir web portalı barındıracaktır. Bu AP'ye bir PC veya akıllı telefon ile bağlanırsanız, WiFi kimlik bilgilerini bir web sayfası üzerinden yapılandırabilirsiniz.

Kritik bilgileri kodlamak zorunda değilsiniz ve cihazınızı, yeniden yanıtlamaya gerek kalmadan istediğiniz herhangi bir WiFi ağında kullanabilirsiniz.

Nasıl çalışır

  • ESP'niz başlatıldığında, İstasyon modunda kurulur ve önceden kaydedilmiş bir Erişim Noktasına bağlanmaya çalışır

  • bu başarısız olursa (veya kaydedilmiş önceki ağ yoksa) ESP'yi Erişim Noktası moduna taşır ve bir DNS ve Web Sunucusu döndürür (varsayılan ip 192.168.4.1)

  • yeni oluşturulan Erişim Noktasına bağlanan bir tarayıcı (bilgisayar, telefon, tablet) ile wifi özellikli herhangi bir cihazı kullanma

  • Kısıtlama Portalı ve DNS sunucusu nedeniyle, 'Ağa katıl' türünde bir açılır pencere alır veya yapılandırma portalına yönlendirilen erişmeye çalıştığınız herhangi bir alanı alırsınız

  • taranan erişim noktalarından birini seçin, şifreyi girin, kaydet'i tıklayın

  • ESP bağlanmaya çalışacaktır. Başarılı olursa, kontrolü uygulamanızdan vazgeçirir. Değilse, AP'ye yeniden bağlanın ve yeniden yapılandırın.

(ESP WiFi Manager belgeleri)


1
Ya da sadece AP modundayken kayıtları veya herhangi bir şeyi indirin. Umarım poster, varlık takibi için wifi'nin kendisini kullanmaya çalışmaz.
Chris Stratton

1
@ChrisStratton :-) aslında, varlık takibi için WiFi kullanmaya çalışıyorum. Neyse ki, kullandığım WiFI ağı herkese açık ve açık, ancak bir parola gerektiren başka bir ağ kullanmam gerektiğinde çıkarımlardan endişeliyim. Ayrıca AzureIoT Hub bağlantı dizesinin cihazda olması.
Koç

2
@rams Elbette, cihazın EEPROM'unu okumak büyük bir iş olmayacaktır.
Bence Kaulics

3
@rams Donanımınızda, evet EPROM okunabilir. Daha yeni cihazların daha iyi korunan bazı güvenli flaş bölgeleri olabilir. Kesinlikle bu, düzgün bir şekilde denemek ve yapmak için çip desteğine ihtiyaç duyan bilinen bir sorundur.
Sean Houlihane

2
@SeanHoulihane - ESP8266'da EEPROM yoktur. Her şey için kullandığı SPI flaşı (Arduino işlevselliğinin benzetimi gibi) ESP8266'nın dışındadır. Çok çipli modülde bile, iyi bir laboratuvarda problanabilen farklı bir kalıp.
Chris Stratton

3

Evet, düz metin olarak bırakırsanız şifrenize erişebilirler.

İyi nokta, birçok wifi bağlantı arayüzünün karma şifreleri kabul etmesidir. Benim kullandığım md5 karma ve md5 süper güvenli olmasa da, hala ortalama joe için çok zor bir meydan okuma. Yapılandırma dosyanıza bağlı olarak karma algoritmanızın adını belirtirsiniz ve ardından şifrenizi yazar veya wifi arayüzünüzün kullandığı varsayılan ayarı kullanırsınız.


3
Karma sırasında çalışan karma şifreyi çıkarabilirlerse, geri döndürmeden bu şifreyi kullanmalarını önlemek için ne gerekir?
Chris Stratton

1
@ChrisStratton haklısın. Bunu önlemenin yolları Bilgi Güvenliği SE içindir, bu soru kimlik bilgilerinin kaybını önlemeyi ister. Bununla birlikte karma parolalar cep telefonları tarafından ek yazılım olmadan ağa bağlanmak için kullanılamaz.
atakanyenel

1
Evet, aslında wifi şifresinin başka bir sistemde yeniden kullanılması durumunda biraz koruma sunacaktır, ancak bu wifi erişim noktasına yetkisiz bağlantıya karşı çok fazla değil.
Chris Stratton

1
@ChrisStratton evet, örneğin MAC beyaz listesi, sadece bir parola ve karma yapmaktan çok daha güvenlidir, ancak bu adımlar genel cihazlarda kimlik bilgilerinin gizliliği için değil, genel olarak wifi güvenliği içindir.
atakanyenel

2
Hayır, MAC beyaz listesi bir şaka - orada hiçbir sır yok. Ve elbette MAC, çalınan ESP8266 veya SPI flaşından kolayca çıkarılır. MAC beyaz listesinin yardımcı olacağı tek yer hakkında, wifi ağlarına katılmak için GUI kullanan kişilere karşı veya bir erişim noktası orada oturmuş bir istemciden bir gün görünebilecek, ancak hiç bağlanmamış bir bağlantı bekliyordu - yani , kılıç taş türü şeyler.
Chris Stratton

1

Basit cevap - EVET. Yapılabilir. En az düzeyde koruma sağlamak için en azından bir tür gizleme yapmalısınız .


1
Şaşkınlık , cihazın bir şeyleri nasıl yaptığını bulmayı zorlaştırır , ancak cihazın klonlanmasına karşı korumak işe yaramaz . Kimlik bilgilerinin çıkarılmasına karşı korumak işe yaramaz: tek yapmanız gereken ürün yazılımını bir emülatörde çalıştırmaktır.
Gilles 'SO- kötü olmayı bırak'

Tamamen katılıyorum. Bu cevabı veren motivasyonum, <IoT ağ güvenliğinin göz önünde bulundurulması gerektiğine> dikkat çekmekti. @Mike Ounsworth, AES ve / veya RSA altyapısını kullanarak çözümler öneren ayrıntılı cevap verdi. Bir cevap daha vermeyi düşünüyorum ama kriptografiye nasıl geçeceğinden emin değilim (ödeme ve bankacılık çözümlerinde de uzun yıllar var). Benim düşüncem, pratik / dengeli tavsiyelerde bulunmamız gerektiğidir, çünkü genellikle insanlar arka bahçesindeki IoT cihazlarını korumak için kriptografinin derinliklerine düşmekten kaçınırlar.
Amit Vujic

1
İnsanlar güvenli cihazların nasıl yapılacağını anlamaya zahmet edemedikleri için güvenli olmayan cihazlar yapmak istiyorlarsa, onları etkinleştirmek için hiçbir neden göremiyorum.
Gilles 'SO- şeytan olmayı bırak'

Benim deneyimim insanların öğrenmek istedikleri ama yine de güvenlik seviyesi ile karmaşıklık arasında bir denge olması gerektiğidir. Ödeme endüstrisinde uygulanması çok güvenli ama karmaşık olan ve bu nedenle uygulamada başarısız olan SET ( en.wikipedia.org/wiki/Secure_Electronic_Transaction ) ile ilgili ünlü bir hikaye var .
Amit Vujic

2
Gizleme güvenliği geliştirmeden karmaşıklık katar. Bu denge değil.
Gilles 'SO- kötü olmayı bırak'
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.