[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:
Donanım seri numaralarının benzersiz olduğu varsayımı muhtemelen geçerli değildir ve
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 > convenience
her 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 < convenience
ve 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.