Mengamankan perangkat di lapangan yang bermusuhan: membangun threat model untuk embedded, memilih kriptografi yang tepat di resource terbatas, melindungi firmware dari pembajakan fisik, dan merancang hardening menyeluruh, ditutup praktik mengeraskan firmware pertama

Di episode 12 perangkat kalian terhubung ke dunia; episode 17 memberi mereka OTA yang aman. Episode ini membahas konsekuensinya: perangkat terhubung adalah permukaan serangan, dan perangkat yang kalian pegang adalah perangkat yang bisa dibongkar, dipelajari, dan dibajak oleh siapa pun di lapangan.
Berbeda dengan server di data center, perangkat embedded tidak punya tembok fisik. Penyerang bisa membeli perangkat kalian di toko, membuka kasingnya, menyolder probe ke chip, dan membaca firmware dengan alat $100. Episode ini membangun kemampuan berpikir seperti penyerang — dan merancang pertahanan yang realistis untuk resource yang terbatas.
Sebelum menambah satu baris keamanan, jawab dulu: siapa penyerang kita, dan apa yang mereka mau? Untuk embedded, model ancaman khas:
| Penyerang | Motif | Akses |
|---|---|---|
| Hacker jarak jauh | Ransomware, botnet, spionase | Jaringan |
| Kompetitor | Reverse engineering produk | Fisik (chip kalian) |
| Pengguna jahat | Menghindari pembayaran/lisensi | Fisik + jaringan |
| Peneliti/blackhat | Bug bounty, ketenaran | Fisik + jaringan |
Setiap motif membutuhkan pertahanan yang berbeda. Membangun hardware security module untuk melindungi produk senilai $50 dari kompetitor adalah pemborosan; mengabaikan autentikasi perangkat yang mengendalikan kunci pintu adalah kelalaian. Prioritaskan sesuai nilai aset dan akses penyerang.
Tidak semua kriptografi diciptakan sama — dan di MCU, biayanya nyata dalam clock dan RAM:
| Algoritma | Tipe | Cocok untuk MCU | Catatan |
|---|---|---|---|
| AES-128/256 | Symmetric | Ya | Cepat; butuh pembagian kunci aman |
| SHA-256 | Hash | Ya | Verifikasi integritas |
| ECDSA (P-256) | Asymmetric | Ya, dengan HW accelerator | Signature & verify |
| RSA | Asymmetric | Kurang | Lambat, butuh banyak RAM untuk key besar |
| Argon2/scrypt | KDF | Jarang di MCU | Untuk password storage, bukan firmware |
Aturan praktis MCU:
Mengelola kunci lebih penting daripada memilih algoritma. Kunci di flash biasa bisa dibaca dengan firmware dump; kunci di secure element / TPM hampir mustahil dibaca — trade-off biaya vs keamanan yang harus diambil per produk.
Ini lapisan pertahanan yang sering diremehkan: mengunci akses baca ke flash. Jika flash bisa dibaca, seluruh firmware — termasuk kunci yang tertanam — bisa diekstrak dengan st-flash read.
Langkah hardening pada tingkat chip:
Warning
RDP level 2 dan SWD lock itu tidak bisa dibalik — sekali dikunci, kalian sendiri tidak bisa debug lagi. Praktik yang benar: kunci di akhir proses produksi, simpan golden firmware + provisioning secret di tempat aman, dan pastikan proses firmware update (OTA) sudah mapan sebelum kunci diterapkan. Urutan yang salah = perangkat yang tidak bisa diperbaiki.
Keamanan embedded berhadapan dengan penyerang yang memegang hardware — dan hardware berbicara. Serangan kelas ini membaca sampingan bukan isinya:
| Serangan | Prinsip | Pertahanan |
|---|---|---|
| Timing attack | Waktu operasi bocorkan data | Operasi waktu-konstan (constant-time) |
| Power analysis (SPA/DPA) | Konsumsi daya tergantung operasi | Blinding/randomization di crypto |
| Glitching | Gangguan tegangan/clock | Voltage monitors, redundansi |
| Fault injection | Melompati check keamanan | Verifikasi ganda, secure boot |
Pertahanan realistis untuk kebanyakan produk: gunakan crypto library yang sudah diaudit (MbedTLS, TinyCrypt), pakai hardware crypto accelerator, dan aktifkan proteksi chip. Membangun pertahanan anti-DPA sendiri di luar kompetensi kebanyakan tim — serahkan ke chip dengan secure element bila benar-benar dibutuhkan.
Menyatukan semuanya, checklist hardening firmware produksi:
Note
Keamanan embedded adalah soal lapisan dan biaya, bukan kesempurnaan. Tidak ada perangkat yang tak dapat dibobol — tujuan kalian adalah membuat biaya serangan lebih tinggi dari nilai asetnya. Buat keputusan berdasarkan threat model, dokumentasikan alasannya, dan perbarui saat produk berkembang.
st-flash read — amati gagalnya.Inti yang harus dibawa pulang:
Di episode 19 selanjutnya kita masuk ke dunia di mana kesalahan berarti nyawa: safety & reliability (MISRA) — menulis C yang aman, mendesain fail-safe, dan menerapkan standar fungsional safety. Ini adalah tingkat kualitas tertinggi yang pernah diminta dari seorang engineer. Sampai jumpa di episode 19!