OTA Firmware Güncellemesi: Güvenli ve Sağlam Mimariler

Gömülü Sistem May 10, 2026
OTA Firmware Güncellemesi: Güvenli ve Sağlam Mimariler

OTA update, bir cihazı sahaya sürdükten sonra hatadan kurtaran ya da sahada brick'leyen tek mekanizma. Yapı doğru tasarlanmazsa "cihaz dağıttık 1000 adet, OTA başarısız oldu" hikayesi başlar; geri toplama maliyeti milyon liralarla ölçülür.

Aşağıda OTA mimarisinin temel bileşenleri, güvenli güncelleme akışı ve hata senaryoları için savunma mekanizmaları var.

Bu yazıda OTA mimarilerini, güvenlik gereksinimlerini, rollback stratejilerini ve sahada güvenilir OTA için pratik yaklaşımları ele alıyoruz.

OTA Neden Kritik?

  • Güvenlik açıkları için hızlı yamalar (örn. CVE'ler bildirildiğinde)
  • Üretim sonrası özellik ekleme, müşteri ihtiyaçlarına adapte olma
  • Hata düzeltmeleri (sahada keşfedilen bug'lar için)
  • Regülasyon değişikliklerine uyum (örn. yeni protokol gereksinimleri)
  • Akıllı sayaçlar ve EV şarj cihazları gibi enerji altyapısında zorunluluk

OTA olmadan, sahada bug bulunan bir cihazı düzeltmek için elden değişim, fiziksel müdahale veya ürünün geri çağrılması gerekir; bunların maliyeti OTA'yı baştan tasarlamanın yüzlerce katı olabilir.

OTA Mimarisi: Temel Bileşenler

1. Bootloader

Cihazın başlangıçta çalışan ve hangi firmware'i yükleyeceğine karar veren küçük program. OTA mimarisinde bootloader iki firmware slot'undan birini seçer; başarısız olursa diğerine geri döner.

2. Firmware Slot'ları

Tipik olarak iki ayrı flash bölgesi: "App slot A" ve "App slot B". Sadece biri aktif çalışır; OTA güncelleme diğerine yazar. Başarılı olursa boot pointer yeni slot'a geçer.

3. Update Server

Yeni firmware'i barındıran bulut sunucu. Cihaz periyodik olarak veya tetiklendiğinde sorgular: "Yeni versiyon var mı?"

4. Secure Communication

Firmware indirme HTTPS/TLS üzerinden yapılır. Sertifika doğrulama zorunludur; aksi halde MITM saldırısı ile sahte firmware yüklenebilir.

5. Signature Verification

İndirilen firmware'in tamamı dijital imza ile doğrulanır. Cihaz sadece üreticinin özel anahtarıyla imzalanmış firmware'i kabul eder. ECDSA imza algoritması yaygındır.

OTA Akışı: Adım Adım

  • Cihaz: "Güncelleme var mı?" → bulut sunucu (HTTPS)
  • Sunucu: "Evet, v2.5 mevcut. URL ve hash bilgisi."
  • Cihaz: HTTPS ile firmware'i indirir, geçici slot'a yazar
  • Cihaz: İndirilen firmware'in hash'ini hesaplar, beklenenle karşılaştırır
  • Cihaz: Dijital imzayı doğrular (üreticinin public key ile)
  • Cihaz: Boot pointer'ı yeni slot'a günceller
  • Cihaz: Reset eder, yeni firmware yüklenir
  • Yeni firmware: "Sağlık kontrolü" yapar (başarılı boot, ağ bağlantısı)
  • Yeni firmware: "Mark as valid" yaparak rollback engellemez

Eğer 8. adımda sağlık kontrolü başarısız olursa, bir sonraki reboot'ta bootloader otomatik olarak eski (çalışan) slot'a döner.

Güvenlik Gereksinimleri

1. Şifreli İndirme

HTTPS minimum gereksinimdir. Sertifika pinning daha iyidir; cihaz sadece belirli bir public key veya CA tarafından imzalanmış sertifikayı kabul eder. Bu, kök CA'nın compromise olması durumunda bile saldırıyı engeller.

2. Firmware İmzalama

ECDSA P-256 veya RSA-2048 ile imzalama yaygındır. Üretim sürecinde private key ile imzalanan firmware, cihazda kalıcı olarak depolanmış public key ile doğrulanır.

3. Secure Boot

Sadece imzalı firmware'in çalışmasını sağlar. ESP32 secure boot v2, STM32 RDP (Read-Out Protection), nRF52 SecureFault gibi mekanizmalar kullanılır.

4. Firmware Şifreleme

Firmware'i indirilirken sadece imzalama değil, şifreleme de yapılabilir. AES-128/256 ile şifrelenmiş firmware, ters mühendislik yapanları yavaşlatır. Cihaza özel şifreleme anahtarı (her cihaz için farklı) kullanmak güvenliği daha da artırır.

5. Rollback Protection

Saldırgan, cihaza eski (zaaflı) bir versiyon yükleyip o açıklardan yararlanmaya çalışabilir. Anti-rollback counter, sadece daha yeni versiyonların kabul edilmesini sağlar.

Rollback Stratejileri

Otomatik Rollback

Yeni firmware boot olduktan sonra belirli kontroller yapılır. Bu kontroller 30 saniye içinde başarılı olmazsa, watchdog cihazı resetler ve bootloader eski slot'u seçer.

Dual Boot Confirmation

Yeni firmware başarılı booted olduktan sonra "validity flag" set edilir. Bu flag set edilmediyse bir sonraki resetto eski versiyona dönüş otomatiktir.

Phased Rollout

Sahaya 10.000 cihaz varsa, OTA'yı bir anda hepsine yapmayın. Önce %1, sonra %5, sonra %20, en son %100. Bir problem ortaya çıkarsa erken yakalanır, geri kalan cihazlar kurtarılır.

Differential ve Compressed OTA

Differential OTA

Tüm firmware (örn. 1 MB) yerine sadece farkları (~50 KB) indirir. Pille çalışan ve hücresel bağlantılı cihazlar için kritik tasarruf. Ancak bootloader'da "patcher" (örn. bsdiff) bulundurmak gerekir.

Compressed OTA

Firmware gzip ile sıkıştırılır (genelde %30-50 küçülür); cihaz indirip dekompres edip flash'a yazar. Ek RAM gerekir; küçük MCU'lar için zorlayıcı olabilir.

OTA Platformları

AWS IoT Device Management

AWS IoT Core üzerinden "Jobs" yapısıyla OTA. Phased rollout, signature verification, monitoring entegre. Maliyet düşük (cihaz başına aylık birkaç sent).

Microsoft Azure Device Update

Azure IoT Hub ile entegre. Detaylı raporlama ve grup bazlı dağıtım. Kurumsal müşteriler için olgun bir çözüm.

Mender.io

Açık kaynak ve ticari versiyonu olan platform. Linux ve gömülü RTOS cihazları için özelleştirilmiş; Yocto entegrasyonu güçlü.

Açık Kaynak DIY

ESP-IDF native OTA, Mongoose OS, Zephyr MCUboot gibi framework'ler kendi OTA'nızı kurmanızı sağlar. Maliyet sıfır ama backend ve UI'yi siz kurmalısınız.

ESP32 OTA Pratikleri

ESP32, OTA için iyi bir altyapı sunar:

  • ESP-IDF native OTA API (esp_ota_*)
  • Default partition table iki app slot içerir (app0 ve app1)
  • MCUboot benzeri bootloader yapısı
  • Secure boot v2 ile firmware doğrulama
  • HTTPS download için esp_https_ota komponenti

Tipik bir ESP32 OTA implementasyonu 200-300 satır kod ile başlanabilir; tüm güvenlik özelliklerini eklemek 1-2 hafta sürer.

STM32 OTA Pratikleri

STM32, OTA için ESP32'ye göre daha çok yapılandırma gerektirir:

  • Bootloader manuel yazılır veya STMicro örneklerinden alınır
  • Flash bölgeleri linker script ile tanımlanır
  • MCUboot, STM32 için iyi bir açık kaynak bootloader (Cypress)
  • X-CUBE-SBSFU paketi: Secure Boot Secure Firmware Update referans

STM32 OTA için 4-8 hafta geliştirme süresi normal sayılır; özellikle güvenlik özelliklerini doğru yerleştirmek tecrübe gerektirir.

Sıkça Yapılan Hatalar

1. Sertifika Doğrulamayı Atlama

Test aşamasında "verify=false" yapıp üretime almak en yaygın hatadır. Saldırgan public Wi-Fi üzerinden cihaza sahte firmware yükleyebilir.

2. Tek Slot OTA

Bazı tasarımcılar flash tasarrufu için tek slot OTA yapar; eski firmware silinir, yenisi yazılır. Yazma sırasında elektrik kesintisi olursa cihaz brick olur. Mutlaka iki slot olmalıdır.

3. Anti-Rollback Eksikliği

Saldırgan, eski zaaflı versiyona düşürerek bilinen exploit'leri kullanabilir. Versiyon counter ile sadece daha yeni versiyonların kabul edilmesini sağlayın.

4. Test Olmadan Sahada

OTA'nın test ortamında çalışıyor olması, sahada da çalışacağı anlamına gelmez. Düşük sinyal, yarıda kesilen indirme, güç kesintisi gibi senaryoları mutlaka test edin.

5. Sertifika Yenileme Planı Yok

HTTPS sertifikaları belirli süreli (genelde 1-3 yıl). Cihazınızın 10 yıl sahada kalacağını biliyorsanız, sertifika rotasyonu için OTA mekanizması kurun.

Sonuç

OTA, modern IoT cihazlarının olmazsa olmaz özelliği. Güvenli, sağlam ve test edilmiş bir OTA mimarisi; ürünün uzun yıllar sahada başarılı olmasını ve güvenlik tehditlerine karşı güncel kalmasını sağlar. Yanlış uygulanan OTA ise tüm cihaz armadasını brickleyebilir; bu da en kötü kabusu temsil eder.

EA ARGE olarak, müşterilerimizin IoT projelerinde uçtan uca OTA mimarisi tasarlıyor; bootloader geliştirme, secure boot konfigürasyonu, dijital imzalama altyapısı ve bulut backend entegrasyonu hizmetleri sunuyoruz.

Test sürecinde simüle et

A/B partition + signed firmware + watchdog rollback kombinasyonu olmadan OTA yapılmaz. Test sürecinde elektrik kesintisini, ağ bağlantısı kopmasını, kötü niyetli sunucuyu mutlaka simüle edin; çıkacak hatayı sahada değil masada bulmak istersiniz.


Back to Blog May 10, 2026