Ana Sayfa / Tedarik Soru-Cevap
IoT cihazlarını buluta bağlayan güvenli bir çözüm
2019-03-27 · IoT cihazlarını buluta bağlayan güvenli bir çözüm
İnsanlar güvenlik ihtiyacının giderek daha fazla farkında olsa da, geliştiriciler genellikle IoT cihazlarını buluta bağlamak için kestirme yollar kullanıyorlar. Birçok durumda, uygun güvenlik mekanizmalarının karmaşıklığı, mikropil ile çalışan IoT cihazlarında sınırlı bellek ve işlem kaynakları ile taşınan ürünlere olan talep arasındaki çatışma aşılmaz görünüyor.
Bu sorunları ele almak ve IoT cihazlarında güvenlik özelliklerinin uygulanmasını basitleştirmek için Microchip Technology ve Google, Microchip'in güvenli donanım özelliklerini JSON Web Token (JWT) adlı basit bir veri yapısıyla birleştiren bir yöntem geliştirmek için iş birliği yaptı. Sonuç olarak, IoT cihazları ile Google Cloud IoT çekirdek hizmetleri arasında karşılıklı kimlik doğrulamanın basit bir yolu ortaya çıkar.
Bu makale, IoT cihazlarına yönelik güvenlik tehditlerini tanıtacak ve bu tehditlerle mücadele etmek için şu anda kullanılan cihazları tanıtacaktır. Güvenlik açıklarını ve geliştiricilerin ile gömülü sistem tasarımcılarının JWT'yi kullanarak bunları kapatmak için nasıl kullandıklarını belirleyecek.
IoT cihazlarındaki güvenlik açıkları
IoT cihazlarına yönelik saldırılar birçok biçimde olabilir ve büyük ölçekli IoT dağıtımlarıyla sınırlı değildir. Dağıtık hizmet reddetme (DDoS) saldırıları için kullanılan botnetlerde birçok bireysel cihazdan kaynakları sömürmek isteyen hackerlar için, en küçük IoT bile cazip bir hedeftir. Bu nedenle, her tür IoT cihazının tasarımcıları, saldırıları önlemek için sistemlerini sağlam donanım tabanlı güvenlik mekanizmalarıyla korumaları kaçınılmaz olarak gereklidir.
Örneğin, özel anahtarları şifreleme ve kimlik doğrulama için depolamak için sistem belleği veya flash depolama kullanmak, IoT cihazlarını saldırılara karşı savunmasız hale getirir. Daha da kötüsü, hackerlar bu anahtarları çalıp IoT ağlarına ve ek şirket kaynaklarına erişmek için kullanabilir.
Güvenlik IC
Microchip Technology'nin CryptoMemory ve CryptoAuthentication IC'leri gibi özel güvenlik cihazları, özel anahtarları ve diğer gizli verileri koruma mekanizmalarına dayalı donanım fonksiyonlarına sahiptir. EEPROM dizileri bu cihazlara entegre olup, yalnızca cihazın SPI veya I2C seri arayüzü üzerinden erişilebilen güvenli depolama ve şifreleme güvenlik mekanizmaları sağlar (bkz. Şekil 1). Bu nedenle, bu cihazlar herhangi bir IoT cihaz tasarımına güvenli depolama ve diğer güvenlik özelliklerini eklemenin basit bir yolunu sunar.
Şekil 1: Microchip Technology donanım güvenlik cihazları (örneğin AT88SC0204C CryptoMemory IC) güvenli depolama sağlar ve entegre şifreleme mekanizmaları kullanarak çip içi EEPROM'lara erişimi korur. (Görsel: Mikroçip Teknolojisi)
Microchip CryptoAuthentication serisinin üyeleri (örneğin ATECC608A), güvenli depolamanın temelini güçlendirir ve güvenlik tasarımında yaygın olarak kullanılan şifreleme algoritmalarını destekler. Donanım özellikleri arasında, cihaz çeşitli algoritmalar için donanım hızlandırma özelliği de içerir:
Asimetrik Şifreleme Algoritması:
FIPS186-3 Eliptik Eğri Dijital İmza Algoritması (ECDSA)
FIPS SP800-56A Eliptik Eğri Diffie-Hellman (ECDH)
NIST Standard P256 Eliptik Eğri Şifreleme (ECC)
Simetrik şifreleme algoritması:
SHA-256 hash kodu
Hash tabanlı Mesaj Doğrulama Kodu (HMAC) kriptografisi
AES-128 Kriptografi
AES-GCM (Galois Alan Çarpma) kriptografisi
Anahtar Türetim Fonksiyonu (KDF):
Sahte-rastgele fonksiyon (PRF) KDF
HMAC tabanlı çıkarma – ve KDF (HKDF) genişlemesi
Kripto uzmanları için bu şifreleme özellikleri seti, üst düzey güvenlik protokollerini desteklemek için gereken mekanizmaların kapsamlı bir listesini temsil eder. Kimlik doğrulama ve güvenli veri alışverişi. Örneğin, KDF özelliği, Taşıma Katmanı Güvenliği (TLS) protokollerinin veri alışverişi oturumlarına katılımcıları takas vermeden önce doğrulaması için gerekli temel mekanizmaları sağlar.
Bu protokolde, TLS oturumları istemcilerden sunucuya istekler göndererek güvenli bir oturum başlatır. Sunucu, istemcinin sunucunun kimliğini doğrulamak için kullandığı dijital sertifikasını kullanarak yanıt verir. İstemci sunucuyu bu şekilde doğruladıktan sonra, oturum ayarları sunucunun açık anahtarını kullanarak PRF KDF veya daha güçlü HDKF kullanılarak oluşturulan rastgele değerleri şifrelemek için oturum anahtarları üretmeye devam eder.
TLS kimlik doğrulama protokolü, İnternet güvenliğinin temelidir. Sertifika Yetkilisi (CA) olarak bilinen tüm sertifika sağlayıcı endüstrisi, güvenli iletişimi destekleyen kilit bir bileşen haline gelmiştir. Şirket, CA'dan kendi sunucularına kurulacak güvenilir bir sertifika alır ve bu sertifika yukarıda bahsedilen standart TLS sunucu kimlik doğrulama protokolünü destekler.
IoT uygulamaları için ağlar şirketlerle geniş ve derin bağlantılıdır ve böyle tek yönlü kimlik doğrulama korumayı garanti etmek için yeterli değildir. Örneğin, sahte sertifikalara sahip hackerlar, daha geniş bir saldırının parçası olarak kendilerini IoT cihazları için meşru sunucular olarak sunabilirler.
Risklere rağmen, IoT geliştiricileri TLS karşılıklı kimlik doğrulama protokollerini uygulamakta genellikle zorlanır çünkü TLS kullanarak istemci doğrulaması için gereken sertifikalar, anahtarlar ve yazılımlar birçok IoT cihazının yeteneklerini aşabilir. İşbirliği sayesinde, Microchip Technology ve Google, ATECC608A işlevselliği JSON Web Token (JWT) adlı basit bir veri yapısıyla birleştiren alternatif bir yaklaşım geliştirmiştir. Sonuç olarak, IoT cihazları ile Google Cloud IoT çekirdek hizmetleri arasında karşılıklı kimlik doğrulamanın basit bir yolu ortaya çıkar.
JWT tabanlı kimlik doğrulama
RFC 7519, JWT'nin JWT'yi hazırlayan ve ileten varlık hakkında bilgi için endüstri standardı bir konteyner olduğunu, yani iddia olarak bilindiğini belirtir. JWT yapısı kendisi üç bölümden oluşur:
Başlıklar, JSON adı: kriptografik algoritmanın ("alg") adı (örneğin, ECDSA'nın "EC256"sı NIST P-256 eğrisini kullanır) tokenları ve token türlerini ("typ") imzalamak için kullanılan (bu tokenların "JWT"si)
Yük, JSON adı: her iddia için değer çifti dahil
İmza: Başlıkta belirtilen algoritmayı kullanarak anahtar, başlık ve bildirme setini kodlar; her biri ayrı ayrı base64 URL kodlamasına dönüştürülür ve şifrelemeden önce
RFC 7519, yük veya diğer parçalarda talepleri belirtmek için büyük esneklik sunar. Standart, imza veya şifreleme olmadan oluşturulan güvenli olmayan JWT'lere bile izin verir; bu durumda başlık algoritmanın adını içerir: değer çifti {{alg":"none"}. Google Cloud IoT çekirdek hizmetleriyle kullanılan JWT'ler için, Google'ın imza bölümü ve üç zorunlu açıklamayı içeren bir yük gerekmektedir:
"iat" - ISO 8601 UTC zaman damgası formatında token oluşturulurken "verim süresi", 1970-01-01T00:00:00Z'den (örneğin, 30 Haziran 2019 12:00 GMT'1561896000 den itibaren saniye sayısı)
"exp" - İstemci ile sunucu arasındaki farklı sistem saat önyargılarını gidermek için token son kullanma süresini belirten UTC zaman damgası; bu süre "IAT" değerini aşan 24 saat ile 10 dakikalık bir bekleme süresi (örneğin, 1 Temmuz 2019 1561982400, GMT 00:00 00:00)
"aud" - geliştiricinin Google Cloud proje ID'sini içeren bir dizi
< > Google'ın IoT cihaz kimlik doğrulama çözümü, geleneksel TLS tabanlı sunucu doğrulamasını bu nispeten basit IoT cihaz doğrulama açıklamalarıyla oluşturulan JWT ile birleştirir. Yeni bir oturum başlatmak için, IoT cihazı sunucuya güvenli bir soket açar ve daha önce tanımlanan aynı TLS protokolünü kullanarak sunucuyu doğrular.
Bu sürecin bir sonraki adımı, Google IoT Cloud'un IoT ağ işlemleri için hafif mesaj kuyruğu telemetri iletim (MQTT) protokolüne dayanmaktadır. Güvenli bir soket kullanarak kimlik doğrulamalı bir sunucuya ulaşan IoT cihazı, benzersiz JWT'sini giriş şifresi olarak kullanarak o sunucudaki MQTT ana hizmetine "giriş yapar" (Envanter 1).
IoT cihazları bu giriş dizisi kapsamında kullanıcı adları gönderse de, kimlik doğrulama için kullanıcı adı kullanılmaz. Bu nedenle, sanal bir kullanıcı adı (Listeleme 2) aktarıldı. Bunun yerine, IoT cihaz doğrulaması, giriş şifresi olarak gönderilen JWT'ye dayanır. JWT imzaları başlıklar, yükler ve cihaz özel anahtarlarının birleşimi olduğundan, Google Cloud IoT çekirdek servisleri JWT'nin gerçekten yetkili cihazlardan gelip gelmediğini doğrulayabilir. Bu doğrulama için, Google Cloud IoT Services, aşağıda açıklanan anahtar yönetim sürecini kullanarak IoT cihaz geliştiricileri tarafından daha önce Google Cloud'da saklanan cihaz açık anahtarlarını kullanır. Yalnızca TLS kullanımına kıyasla, bu yaklaşım hibrit bir yaklaşımla karşılıklı kimlik doğrulama sağlar, süreçleri hızlandırır ve IoT cihazları için kaynak gereksinimlerini azaltır.
Anahtar etkinleştiriciler
ATECC608A ve tedarik zincirinin işlevselliği bu yaklaşımın temel itici güçleridir. Herhangi bir MCU, sonunda JWT başlıklarından ve yüklerinden şifrelenmiş şifreleme imzaları üretebilse de, donanım tabanlı güvenlik anahtarı depolama olmadan saldırılara karşı savunmasızdır. Ayrıca, birçok kaynak sınırlı IoT cihazı veya katı yanıt süresi gereksinimi olan uygulamalar için, "sadece yazılım" uygulaması için gereken işlemci yükü ve çalışma gecikmesi yasaklanabilir. Son olarak, kapsamlı güvenlik algoritmaları ve daha gelişmiş protokol deneyimi olmadan, geliştiricilerin gerekli yazılım fonksiyonlarını uygulamaları zordur. Microchip, bu sorunları CryptoAuthLib kütüphanesi aracılığıyla çözüyor (Şekil 2).
Şekil 2: CryptoAuthLib, donanım soyutlama katmanını (HAL) API fonksiyonlarını ve temel ilkelleri temel donanımdan ayırmak için kullandığı için, geliştiriciler yazılımlarını çeşitli destekleyici cihazlar için konumlandırabilir. (Görsel: Mikroçip Teknolojisi)
Microchip CryptoAuthLib, Google JWT kimlik doğrulama protokolü gibi güvenli IoT özelliklerinin uygulanmasını basitleştirerek karmaşık güvenlik işlemlerini CryptoAuthLib uygulama programlama arayüzü (API) aracılığıyla sağlanan bir dizi fonksiyon çağrısına indirir. IoT geliştiricileri için belki de en önemlisi, ATECC608A gibi Mikroçip şifreleme IC'lerini tamamen kullanarak tasarım güvenlik özelliklerinin yürütülmesini hızlandıran Microchip CryptoAuthLib çekirdek özelliğidir. Örneğin, Listeleme 1'de, atca_jwt_finalize()'ye yapılan bir çağrı, Listeleme 2'deki şifre için bir JWT oluşturmak amacıyla mevcut şifreleme cihazlarını (örneğin ATECC608A) kullanır. Bu durumda, JWT imzalarının şifrelenmesini hızlandırmak ATECC608A, tasarımı entegre güvenli depolama anahtarından daha önce açıklanan imza oluşturma sürecini tamamlamaya kadar okunabilir.
Ancak, karmaşık yazılım ve güvenlik cihazlarına rağmen, IoT cihazları anahtar ve sertifikaları yönetmek için geleneksel yöntemler nedeniyle saldırılara karşı savunmasız kalır. Geçmişte, özel anahtarlar dışarıdan oluşturulup üretim, dağıtım veya hatta dağıtım sırasında güvenli depolama cihazlarına yüklenmek zorundaydı. Donanım güvenlik modülleri ve güvenlik tesisleri kullanıldığında bile, yalnızca cihazın "bilmesi istenen" sırların ötesinde kısa süreli var olan sırlar, yanlışlıkla veya kasıtlı olarak ortaya çıkarılabilecek güvenlik açıklıklarını temsil eder. Microchip ve Google, ATECC608A yeteneklerini kullanarak geleneksel güvenlik açıklarını büyük ölçüde ortadan kaldırdı.
Bu yeni yaklaşımda, Microchip ATECC608A'nin anahtar çiftlerini özel anahtarla bırakmadan oluşturma yeteneğini kullanır (Şekil 3). Microchip, cihaz tarafından oluşturulan açık anahtarı imzalamak için ara bir sertifika kullanır; bu anahtar müşteri tarafından sağlanır ve Microchip'in güvenlik tesislerindeki güvenli bir sunucuda saklanır. Son olarak, Microchip açık anahtarı Google Cloud IoT Device Manager üzerinden müşteri hesabına güvenli bir şekilde iletir; bu cihaz, anahtar dönüşüm politikalarını desteklemek için cihaz başına üç açık anahtara kadar depolayabilir. Dağıtımdan sonra, IoT cihazları ATECC608A güvenlik özelliklerini kullanarak daha önce açıklanan karşılıklı kimlik doğrulama sürecinde kullanılan JWT'ler oluşturabilir.
Şekil 3: Microchip Teknolojisi ile Google Cloud IoT hizmetlerinin birleşimi, anahtar ve sertifika yapılandırmasını basitleştirerek IoT uygulama güvenliğini güçlendirmeye yönelik korumalı bir mekanizma sağlar. (Görsel: Google)
Microchip ile Google arasındaki bu iş birliği, geliştiricilerin bu kritik anahtar yönetim sürecini tamamen devretmesini sağlıyor. Özel gereksinimler için, geliştiriciler kendi anahtar yönetim süreçlerini uygulamak için CryptoAuthLib API fonksiyonunu atcab_genkey() kullanarak kendi anahtar yönetim süreçlerini uygulayabilirler; bu da ATECC608A anahtar çiftleri oluşturmasına, özel anahtarları güvenli depolamalarına ve ilgili açık anahtarı geri göndermesine yol açar. /p>
Anahtar üretim ve diğer ATECC608A güvenlik özelliklerini keşfetmek için geliştiriciler, Microchip SAM D21 Xplained Pro değerlendirme kiti etrafında kapsamlı bir geliştirme ortamı hızla oluşturabilirler. Microchip ATSAMD21J18A 32-bit Arm ® Cortex-M0 ® + MCU temelli SAM D21 Xplained Pro kiti, Microchip'in Gelişmiş Yazılım Çerçevesi (ASF) tarafından desteklenen tam donanım platformu sürücüsü ve kod modülü sunar.
CryptoAuthentication cihazlarını, ATECC608A dahil olmak üzere, geliştiriciler CryptoAuth XPRO-B eklenti kartını Xplained Pro kartının iki uzantı başlığından birine basitçe takabilirler. Microchip, CryptoAuthLib ve ATECC608A'nin güvenlik özelliklerini değerlendirmek için örnek yazılım sunar. Ayrıca, geliştiriciler Microchip ATWINC1500-XPRO Wi-Fi eklenti kartını başka bir başlığa ekleyerek Microchip örnek yazılımını çalıştırabilirler; bu yazılım, bu makalede açıklanan karşılıklı kimlik doğrulama sürecini, TLS sunucu doğrulaması ve JWT cihaz doğrulamasını da içerir.
Sonuç
IoT uygulama güvenliği birden fazla gereksinim getirse de, temel zorluk genellikle IoT cihazları ve bulut kaynakları için karşılıklı kimlik doğrulamanın uygulanmasıdır. Kaynak sınırlı IoT sistemlerinde, geleneksel protokoller mevcut bellek ve işlem kaynaklarını aşabilir. Microchip Technology'nin CryptoAuthLib kütüphanesi ve ATECC608A CryptoAuthentication IC'sini kullanarak, geliştiriciler JSON Web Token'larına dayalı daha verimli bir yaklaşım uygulayarak IoT cihazlarını Google Cloud IoT hizmetlerine güvenli bir şekilde bağlayabilirler.
Teklif planı alın
Sadece kullanım senaryonuzu belirtin, size teklif verebiliriz! İş birliğiniz için teşekkürler!
