Over-the-air (OTA) güncellemeler, alanda faaliyet gösteren gömülü sistemler için temel bir yetenek haline geldi.Sistemi uzaktan güncelleme yeteneği olmadan, cihazlar güvenlik kusurlarına karşı savunmasız kalıyor, mimari, uygulama adımları ve onları rekabetçi tutmak için gerekli olan özelliklerden yoksundur. İşletim sistemleri için - sık sık sık sık sık entegre donanım - teknik bir meydan okuma ve kritik bir iş gereksinimi.Bu kılavuzluk adımları ile yürür.

OTA Updates nedir ve Neden Önemli?

OTA güncellemeler, bilgisayar, uygulama yazılımı, konfigürasyonları ve hatta işletim sistemi kablosuz ağ üzerinden güncellenecektir - bir teknisyen, Wi-Fi, Bluetooth, LoRaWAN veya uydu - endüstriyel IoT, otomotiv, tıbbi cihazlar ve akıllı ev sistemleri gibi endüstrilerde, cihazlar genellikle uzaktan veya ulaşılamaz yerlerde dağıtılır.Bir teknisyeni fiziksel olarak reflash bir birim pahalı, yavaş ve bazen imkansız. OTA güncelleştirmeleri bu sorunu çözer.

Rahatlığın ötesinde, OTA güncelleştirmeleri önemlidir:

  • [FONT:0) Güvenlik mi:[Dönetici:[Dönetici sisteminde veya uygulamadaki Vulner yükümlülükleri derhal sabitlenebilir, maruz kalma penceresini azaltır.
  • [FONT:0)İşsel gelişme:[Dönetici:[Dönetici:0) Yeni yetenekler, ürün yaşam döngüsünü uzatabilir.
  • [FONT:0)Bug düzeltmeleri:[Dönetici:[Dönetici:0)Bug düzeltmeleri:[Dönetici:[Dönetici: 1 ) Yalnızca üretimde ortaya çıkan sorunlar pahalı bir hatırlama olmadan düzeltilebilir.
  • [FONT:0)Compliance:[Dönetici:[Dönetici:0)[[Dönlendirme:[Dönlendirme:[Dönlendirme:[Dönlendirme:[Dönlendirme:[Dönlendirme:[Dönlendirme:)

Ancak, OTA güncellemeler de riskleri tanıtmaktadır. Başarısız bir güncelleme bir cihaz, bozuk veriler veya açık güvenlik delikler. Bu nedenle, iyi tasarlanmış OTA sistemi aynı anda güvenilirliğe, güvenlike ve bant kısıtlamalarına hitap etmelidir.

Bir OTA Update Architecture'ın temel bileşenleri

Bir OTA sistemi, çeşitli etkileşim bileşenleri içerir, her biri belirli sorumluluklarla. Bu bileşenleri anlamak sağlam bir uygulamaya yönelik ilk adımdır.

The Bootloader

bootloader, bir cihaz yetkileri olduğunda çalışan ilk koddur. OTA güncellemeler için, bootloader iki temel işlevi desteklemeli:

  • [FONT:0)Güncel doğrulama:[Dönetici:[Dönetici:0) Bu, daha önce yeni bir bilgisayarın bütünlüğünü ve gerçekliğini kontrol eder.
  • [FONT=0]Fallback mekanizması:[Dönetici:[Dönetici:0)[0]Fallback mekanizması:[Dönetici:0)[Dönetici:0))) Yeni bir bilgisayar, bir kurtarma bölümü ile tek bir yuvayı terk etmese veya bir kurtarma bölümü ile silinir.

Update Server

Sunucu depoları, metadata (vers, checksums, imza anahtarları), ve filoya teslim edilebilir. Ayrıca cihaz kaydı, politika uygulamaları (örneğin, sahnelenen rolls), ve raporlama. Popüler açık kaynak çözümleri sunar.Eclipse hawkBit).

Güncelleme Müşterisi

gömülü cihazda koşu, müşteri iletişimi sunucuyla yönetiyor, güncelleme ödeme yükünü indirin, doğru depolama konumuna yazın ve güncelleştirmeyi uygulamak için bootloader'ı tetikler.Müşteri, zayıf ağ koşulları, güç kaybı veya düşük batarya altında bile çalışmalıdır.

Güvenlik Altyapısı

Güvenlik, en az OTA sistemlerinde uygulanabilir değildir:

  • [FONT:0)Komnun imzası:[Dönetici:0) Her bir bilgisayar görüntüsü dijital olarak özel bir anahtar kullanarak imzayı genişletir ve cihaz, önceden yüklenen bir kamu anahtarı kullanarak imzayı onaylar.
  • [FONT:0) Şifreli taşıma: [Dönemli: [Dönemli taşıma:[Dönemli taşımalar:[Dönemli taşımalar:[Dönemli taşımalar:)) HTTPS (veya MQTTS over TLS) indirme kanalını eavesdrop ve tampering'den korur.
  • [FONT:0)Güvenli çizme:[Döncük kriptografik olarak, uygulamadan önce, yayınlanmadan önce, yayınlanmadan önce, yazarsız kodun çalıştırılmasını engellemeye yönelik olarak kriptografik olarak onaylar.
  • [[Dönetici için güvenli depolama: [Döneticileri: [Döneticileri Özel imza anahtarları donanımda (HSM, TPM) veya tamper- dayanıklı yazılım modüllerinde depolanmalıdır.

Depolama Yönetimi

Gömülü cihazlar sınırlı flaş hafızasına sahiptir. OTA sistemi mevcut bilgisayarın deposunu verimli bir şekilde yönetmek zorundadır, indirilmiş güncelleme ve yedekleme kopyaları.Bu genellikle flaşı en az iki bankaya bölmek (A/B) veya özel bir kurtarma bölümünü kullanmak için kullanılır.

Gömülü OS'de OTA Updates'i uygulama adımları

OTA güncelleştirmeleri, her şeyi bootloader tasarımdan filo çapında izlemeye yönelik sistematik bir yaklaşım gerektirir. Aşağıda, pratik aşamalara organize edilen kritik adımlar vardır.

1. Update Management için Bootloader tasarlayın

bootloader herhangi bir OTA sisteminin temelidir. birincil sorumlulukları, hangi bilgisayar görüntünün çalıştırılacağı ve güncelleştirme sürecini kolaylaştırmaya karar vermektir.

  • A/B güncelleştirmeleri ve tek tek tek ayaklı kurtarma ile 0 (Dönetici) A/B (dualbank) altın standardıdır: Bilgisayarın iki kopyası depolanır; diğeri aktif ise, yeni görüntünün kaldırılması başarısız olursa, otomatik olarak eski kopyalanana kadar geri çekilmek gerekir.
  • [FONTNT=0]Implement metadata izleme.[[Döncükler, bir metadata bölgesinin (örneğin, ayrı bir flaş sayfası) her bir slot statüsünü depolar: “aktif”, “başarısız”, “başarısız”, “başarısız”, “başarısız”, bu metadata, güncel akış sırasında müşteri tarafından güncellenir.
  • [FONT=0)Add kriptografik doğrulama[DÜDÜT:1] Önyükleme işlemine giriş yapmadan önce, anahtarlama (RSA, ECDSA) ile kamu anahtarlama (RSA, ECDSA) yapılabilir.
  • [FONT:0)Yeni bir geri dönüş zamanılayıcısı (Dönetici) Uygulamadan sonra, bootloader “ başarısız çizmede başarısız bir “önemli çizmede başarısız olur” zamanlayıcıyı ayarlar (örneğin, 10 saniye).Yeni bir bellek önyükleme başarısı bu pencerede geri çekilmezse, bootloader önceki slota geri döner.

2. Bir Scalable Update Server oluşturun

Sunucu, binlerce cihaza bilgisayar dağıtımını yönetir. Anahtar düşünceler:

  • [FONT=0]Firmware version management: Mağaza, metadata ile tüm sürüm sürüm sürümlerini yayınladı (vers string, release date, Hardware uyumluluğu, hedef OS).
  • [FONT:0)Rollout politikaları:[Dönetici:[Dönetici:0) Implement staged rollouts – örneğin, filosun% 5'ine kadar güncellemeleri zorlayın, o zaman yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş bir cihaz grupları veya filosunu kullanabilirsiniz.
  • [FONT:0]Authentication and authorisation:) Cihazların kimlikleri (örneğin X.509 sertifika veya önceden paylaşılan anahtarlar aracılığıyla) önceden belirlenmiş olmayan müşterilere ait olmayan veya özel bir bilgisayar kanalına erişmek için izin vermesi gerekir.
  • [FONT:0]Efficient teslimat:[Dönetici:[Döneticileri veya bölgesel sunucuların gecikme süresini azaltmak için CDN'leri veya bölgesel sunucuları kullanın. Destek resumable downloads (HTTP Range requests) böylece cihazlar bir ağ damladan sonra devam edebilir.
  • [FONT:0)Error Giriş ve Analiz:) Güncelleme-tetempt telemetri (başarısızlık, başarısızlık nedeni, cihaz ID) iletişim sorunları ile ilgili sorunlu bilgisayar versiyonları veya cihazları tanımlamak için.

3. Güncelleme Müşterisini Geliştir

Müşteri, gömülü cihazda çalışır ve sunucuyla etkileşim kurar. Tasarımı, cihazın sınırlı hafıza, CPU ve güç bütçesi için dikkate almalıdır.

  • [FONT=0)Polling vs. itt.[[Döneticileri kullanan sistemler, her saat veya gün) güncellemeleri için kontrol etmek için zamanlayıcı anketler yapar, çünkü kalıcı bir bağlantı (MQTT/CoAP) drenajı korur.Müşteri şu anki bilgisayar versiyonunu sunucuya gönderir; sunucu “hayır güncelleme” veya yeni bir bilgisayar URL ile yanıt verir.
  • [FONT:0]Download and Valid.[[DÜDÜT:1] Müşteri, HTTPS üzerinden gelen bilgisayar görüntüyü indirmektedir ve imzayı doğrulayın ve RAM'daki tüm ödeme yüklerini depolamaktan kaçınmayı kontrol eder.
  • [FONT:0]Yazma sonrası [Dönetici:0)Yazdır, müşteri flaş yuvasını görüntüyü okuyarak ve geri bildirimle doğrulamaktadır. Sadece sonra boot-metadatata yuvayı “yükleme güncelleme” ve bir sistemi sıfırlamaya ayarlar.
  • [[Dönetici:0)Handling kesintileri.[DÜDÜT:1] Eğer güç indirme veya flaş yaz aylarında kaybedilirse, müşteri bir kontrol noktasından özgeçmiş etmelidir (kullanıcı aralıkları desteklerse) veya indirmeyi yeniden başlatır.The bootloader will still boot the Hardware because the metadata was updated.

4. Robust Security

Güvenlik bir tabakalı süreçtir. OTA güncelleştirme boru hattı asal bir saldırı vektörü; uzlaşmacı bir güncelleme, filodaki her cihaz üzerinde tam bir kontrol verebilir.

  • [FONT:0]Her bir bilgisayar görüntü için kriptografik imzalar kullanın.[#DDD:0) Görüntüyü bir donanım korumalı özel anahtarla inşa etmek için oturum açın. Cihazın bootloader ve / veya müşteri, cihazı üretimde yakılan halka karşı imzayı doğrulayın (veya daha sonra güvenli bir şekilde teslim edilir).
  • [FONT=0) Güncelleme ücretinin şifresini şifrele; ancak HTTPS taşımayı garanti etse de, Yazılım imajını kendi (örneğin, AES ile) şifreledi: bir saldırgandan görüntü elde ederse, cihazın özel anahtarı olmadan tersine çeviremezler.
  • [FONT:0)Enforce güvenli bir önyükleme.[DÜDÜDÜDÜDÜDÜSÜSÜSÜSÜŞÜNÜSÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜye Olmayanlar İçin İLGİLİİ (JTAG, UART)
  • [[Dönetici:0)Revokasyon ve anahtar rotasyon.[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜ:0)Revokasyon ve anahtar rotasyonu.[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜ
  • [FONT:0) Limit ve anomali algılama Sunucu anormal güncelleme kalıpları tespit etmeli (örneğin, aynı güncellemeyi yüzlerce kez talep eden tek bir cihaz, cihazı veya kara listeleme.

5. OTA Update Process Thoroughly

Çünkü OTA, kullanılan donanıma yönelik olarak, test çok önemlidir. hayal edebileceğiniz her başarısızlık senaryosunu tekrarlamak.

  • [FONT=0]Her aşamada güç kaybı:[Dönetici: 0,4|Döntgenler sırasında, flaş yaz sırasında, bootloader doğrulama sırasında ve yeni bellekler başladığında, cihazı her zaman iyi bir duruma sokmak için.
  • [FONT:0) Ağ kesintileri: [Dönder: 0:1] Düşük bant genişliği, yüksek gecikmeli, paket kaybı ve aniden kesikleri ile test edin.Müşterinin indirmeleri veya lütufla geri dönebileceğini onaylayın.
  • [FONT=0)Corrupt Hardware:[Dönetici:[Dönetici:0) Müşteriyi yanlış bir imza ile bir görüntüyü besleyin, kötü bir çek veya alıcı verileri geri almalı.Müşteri aktif bilgisayarı etkilemeden hatayı reddetmeli ve girişmelidir.
  • [FONT=0)Rollback senaryoları:[Dönetici:[Dönetici” bir güncellemeden sonra, yeni bir bilgisayarın kazaya neden olan bir hataya neden olan bir hataya neden olan bir hataya neden olur.
  • [FONT:0)Fleet çapındaki yönlendirme: İlk önce küçük bir cihaz grubu ile test edin. İzleme logları tam filoya girmeden önce regresyonları sağlamak için.

Üretim için en iyi uygulamalar OTA Systems

Temel uygulama ötesinde, aşağıdaki uygulamalar OTA sisteminizin ölçeklendirilmesine yardımcı olur.

Atom Anahtarlama ile A /B Updates kullanın

A/B (dual-bank) güncelleştirmeleri, sabit yuvaları takip ederken, otomatik olarak geri dönemeyen gömülü cihazlar için en güvenilir yaklaşımdır.Bu tasarım aynı zamanda cihazı çalıştırırken sıfırdan güncel güncellemelere de uygulanır.Sadece yeni görüntü tamamen yazılır ve doğrulanırsa sistem takas yuvaları ve yeniden başlatmaz.If the new image goes back to the old slot.This design also allows zerodowntime updates if the device support live migration (ama many blocked systems still reset).

Delta / Diferansiyel Güncellemeler

Her seferinde tam bir bilgisayar görüntüsü göndermek yerine, delta güncelleştirmeleri mevcut ve yeni bellek arasındaki ikili farkı hesaplayın ve sadece o yama. Tools likeurFLT:0Conbsdiff) veya Google'ın güncelleme motoru) tüm görüntüden 80-95 daha küçük yamalar yaratabilir.

Faz Rollouts ve Gerçek Zamanda İzleyin

Her aşamada, anahtar ölçümler: güncelleme başarı oranı, geçiş başarı oranı, kaza raporları ve bağlantı değişiklikleri.Bir aşama başarısızlıkta bir artış gösterirse, yuvarlanma ve araştırmaya başlamadan önce araştırma yapın.

Yeni Firmaware'te bir Watchdogu Uygulama

Yeni bir bilgisayardan ilk çizmeden sonra, bootloader (veya bir başlangıç senaryosu) kısa bir pencere içinde yeni bir bilgisayar tarafından temizlenmelidir (örneğin, 60 saniye).Eğer bilgisayar asır, kazalar veya notlar, kırıcılar kırılır ve geri çekilmez.Bu mekanizma, sadece birkaç saniye sonra ortaya çıkar.

Güvenli bir “Fırsat Sıfır” Yol Sağlamak

Mükemmel OTA tasarımı ile bile, cihazlar keşfedilmemiş bir duruma girebilir (örneğin, OTA kurtarma mekanizması) – sıfırlama sırasında tutulan bir düğme, seri konsol veya ikincil bir kanal üzerinde servis edilen özel bir kurtarma görüntüsü gibi – OTA kurtarma başarısız olduğu nadir durumlarda belgelenmelidir.

Log ve Analyse Update Sonuçlar

Her güncelleme girişimi cihazda (eğer depolama izinleri) loglar üretmelidir ve telemetriyi sunucuya göndermelidir. Logs şunları içermelidir: cihaz ID, eski sürüm, yeni sürüm, güncelleştirme başlangıç / zamanlayıcı ağ gücü, indirme büyüklüğü, son dereceler. Analysing this data helps you identify problems, network-band genişlikte şişenleri veya donanıma özel konular.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

gömülü işletim sistemlerindeki OTA güncelleştirmeleri önemsiz bir görev değildir, ancak güvenli bir bootloader'de yaşamak isteyen herhangi bir ürün için birkaç aydan fazla bir süre boyunca geçerlidir. Anahtar, cihazınızın ilk sınıf bileşeni olarak size güncelleme sistemini tedavi etmektir - uygulama mantığıyla aynı rigor ile tasarlanmıştır.