Keamanan IoT: Fondasi Kriptografi untuk Perlindungan Perangkat yang Kuat
Catatan Editor: Mengamankan Internet of Things sangat penting untuk menjaga integritas aliran data, firmware, dan sumber daya perusahaan yang terhubung. Keamanan IoT adalah tantangan multifaset yang memerlukan pendekatan sistematis untuk mengidentifikasi ancaman dan menerapkan mitigasi yang efektif.
Disunting dari Internet of Things for Architects oleh Perry Lea.
Bab 12. Keamanan IoT Oleh Perry Lea
Kriptografi
Enkripsi dan kerahasiaan adalah non-negoasi untuk penyebaran IoT. Mereka melindungi komunikasi, firmware, dan proses autentikasi. Dalam praktik, kami bekerja dengan tiga primitif kriptografi inti:
Enkripsi kunci simetris – Kunci yang sama digunakan untuk mengenkripsi dan mendekripsi data. Algoritma umum termasuk RC5, DES, 3DES, dan standar industri AES.
Enkripsi kunci publik – Kunci yang dibagikan secara publik digunakan untuk mengenkripsi data, sementara hanya pemilik kunci privat yang sesuai yang dapat mendekripsinya. Skema asimetrik ini juga memungkinkan autentikasi dan non-repudiation. Protokol yang banyak digunakan seperti Elliptic Curve Cryptography, PGP, RSA, TLS, dan S/MIME bergantung pada model ini.
Hash kriptografi – Fungsi satu arah yang memetakan data arbitrari ke digest berukuran tetap. MD5, SHA-1, SHA-2, dan SHA-3 termasuk dalam kategori ini. Hash menjadi dasar tanda tangan digital, kode autentikasi pesan (MACs), dan validasi firmware aman. Saat memhash input kecil seperti kata sandi, salt ditambahkan untuk meningkatkan entropi; ini adalah bentuk fungsi turunan kunci (KDF).
klik untuk gambar lebih besar Elemen kriptografi. Enkripsi simetris membutuhkan kunci yang identik untuk enkripsi dan dekripsi, sementara enkripsi asimetrik menggunakan pasangan kunci publik/privat yang berbeda. Fungsi hash memberikan pemeriksaan integritas satu arah.
Kriptografi simetris
Dalam enkripsi simetris, plaintext adalah masukan teks jelas dan ciphertext adalah keluaran terenkripsi. Advanced Encryption Standard (AES) adalah patokan global, menggantikan algoritma DES yang lebih lama. AES sesuai FIPS 197 dan ISO/IEC 18033-3, dan beroperasi pada blok 128-bit dengan ukuran kunci 128, 192, atau 256 bit. Kunci yang lebih panjang memberikan keamanan yang lebih kuat dengan biaya siklus CPU tambahan: kunci 128-bit memerlukan 10 putaran, kunci 192-bit 12 putaran, dan kunci 256-bit 14 putaran.
// Pseudo-kode untuk cipher AES-128 // Masukan: plaintext 128-bit // Keluaran: ciphertext 128-bit // w: 44 kata 32-bit (kunci yang diperluas) state = in w = KeyExpansion(key) // Fase perpanjangan kunci AddRoundKey(state, w[0, Nb-1]) // Putaran awal untuk round = 1 hingga Nr-1 SubBytes(state) // Substitusi non-linear ShiftRows(state) // Permutasi baris MixColumns(state) // Pengadukan kolom AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) end for SubBytes(state) // Putaran akhir ShiftRows(state) AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]) out = state
Gulir atau seret sudut kotak untuk memperluas sesuai kebutuhan. ↑
Blok cipher, seperti AES, memproses data dalam blok berukuran tetap dan bergantung pada mode operasi blok untuk memperluas algoritma ke pesan yang lebih besar. Initialization Vector (IV) memastikan bahwa blok plaintext yang identik menghasilkan ciphertext yang berbeda, mencegah analisis pola. Mode umum termasuk:
Electronic Codebook (ECB) – Mode yang paling sederhana; setiap blok dienkripsi secara independen. Blok yang identik menghasilkan ciphertext yang identik, membuat ECB tidak cocok untuk sebagian besar aplikasi.
Cipher Block Chaining (CBC) – Setiap blok plaintext di-XOR dengan blok ciphertext sebelumnya sebelum dienkripsi, menyediakan difusi.
Cipher Feedback (CFB) – Mode seperti aliran yang memasukkan output cipher sebelumnya ke langkah enkripsi berikutnya. CFB tidak dapat diparalelkan, tetapi memungkinkan pemulihan dari blok yang hilang.
Output Feedback (OFB) – Mirip dengan CFB tetapi menghasilkan keystream yang di-XOR dengan plaintext, memungkinkan kode koreksi kesalahan.
Counter (CTR) – Mengubah blok cipher menjadi cipher aliran menggunakan pasangan nonce-counter, memungkinkan enkripsi paralel dan kinerja cepat.
CBC-MAC – Menambahkan kode autentikasi pesan ke CBC, memungkinkan verifikasi integritas dan autentikasi sumber.
Mode-mode ini berasal dari akhir tahun 1970-an dan diformalkan oleh NIST dalam FIPS 81. Sementara mereka mengamankan kerahasiaan, mereka tidak mencegah pengubahan. Menggabungkan autentikasi dengan enkripsi menghasilkan mode enkripsi terotentikasi seperti AES-CCM (Counter with CBC-MAC). CCM adalah bagian integral dari protokol seperti Zigbee, Bluetooth Low Energy, TLS 1.2 (pasca-pertukaran kunci), IPsec, dan Wi-Fi WPA2.
AES-CCM menggabungkan CTR untuk dekripsi efisien aliran ciphertext dan CBC untuk menghasilkan tag autentikasi. Tag dibandingkan dengan nilai yang diharapkan yang berasal dari payload yang didekripsi; ketidakcocokan menunjukkan potensi pengubahan.
klik untuk gambar lebih besar Mode AES-CCM.
Dalam mesh yang terhubung sepenuhnya dengan n node, komunikasi dua arah memerlukan n(n-1)/2 kunci unik, mengalami skala kuadratik (O(n²)). Strategi manajemen kunci yang efisien oleh karena itu kritis untuk penyebaran IoT skala besar.