Kriptografi modern dapat membantu menjadikan IoT lebih aman dan andal.
Internet of Things (IoT) mulai mendapatkan nama yang buruk karena kita sepertinya mendengar tentang cara lain perangkat IoT yang tidak aman diretas setiap hari. Penerapan kriptografi yang tepat adalah satu-satunya cara Internet of Things (IoT ) dapat menjadi lebih aman. Dan bukan jenis kriptografi buatan sendiri, bawa sendiri.
Do-it-yourselfers yang meremehkan apa yang diperlukan untuk membangun perangkat yang aman sering menghasilkan tidak lebih dari permainan ramah-hacker. Dengan banyaknya perpustakaan enkripsi yang tersedia untuk hampir setiap bahasa pemrograman, ada juga sedikit alasan untuk tidak menggunakan mencoba-dan -benar, algoritme kriptografi yang memenuhi standar.
Berikut adalah beberapa cara praktis kriptografi modern dapat membantu menjadikan IoT tempat yang lebih aman dan andal.
Contents
Protokol Komunikasi Terenkripsi
Mengamankan saluran komunikasi adalah satu-satunya aplikasi terpenting kriptografi di internet untuk berbagai hal.MQTT dan AMQP, dua protokol komunikasi yang berfokus pada IoT, memungkinkan pengembang menggunakan Transport Layer Security (TLS) untuk menjamin bahwa tidak ada pihak luar yang dapat membaca data apa pun yang dikirim melalui jaringan .TLS adalah penerus sah dari standar Secure Sockets Layer (SSL) yang lebih terkenal, yang merupakan standar untuk enkripsi web sejak lama (lihat HTTPS), tetapi sekarang dianggap tidak aman.TLS menjamin bahwa data antara dua entitas tidak dapat dibaca atau diubah oleh pihak ketiga.
Mengenkripsi saluran komunikasi sekunder apa pun, seperti yang digunakan untuk pemeliharaan atau fitur pelanggan, sangat penting selain mengenkripsi koneksi data primer. Misalnya, jika perangkat IoT menyediakan portal web untuk digunakan konsumen (pikirkan antarmuka web printer) , portal itu harus dienkripsi secara default. Jika tidak demikian, siapa pun di jaringan yang sama dapat mencegat nama pengguna dan kata sandi atau menggunakan data sesi untuk mengontrol perangkat ini sebagai orang lain. Dengan cara yang sama, metode aman seperti Secure Shell (SSH) harus menggantikan antarmuka pemeliharaan yang tidak aman seperti telnet.
Kata Sandi Hash dengan Salt
Ada pepatah terkenal yang menyatakan bahwa sistem yang paling aman adalah sistem yang tidak memiliki apa pun untuk dicuri. Menyimpan kata sandi hash adalah salah satu cara untuk melakukannya. Hash adalah fungsi kriptografi yang akan mengambil input apa pun dan membuat kumpulan bit yang unik, tidak dapat diubah, namun konsisten.
Membalikkan algoritma hash yang baik hampir tidak mungkin. Dengan kata lain, setelah kata sandi di-hash, Anda seharusnya tidak dapat berbalik dan melihat apa kata sandinya. Namun, input yang sama ke fungsi hash akan menghasilkan output atau hash yang sama, sehingga hash masih dapat digunakan untuk memvalidasi kata sandi yang dikirimkan. Fungsi hashing seperti MD5, yang populer tetapi tidak lagi dianggap aman, SHA-256, dan Blowfish adalah beberapa contohnya.
Salah satu serangan hashing yang populer adalah menghasilkan apa yang disebut tabel pelangi atau tabel pencarian. Ini adalah tabel di mana setiap input teks yang dapat dibayangkan (atau setidaknya umum) di-hash dan output yang sesuai disimpan. Ini memungkinkan seseorang untuk dengan cepat melakukan pencarian terbalik dengan output hash.
Garam juga disimpan dengan hasil hash, tetapi berbeda untuk setiap hash yang dihitung untuk memastikan bahwa tidak ada dua hash yang menggunakan garam yang sama. Tabel pelangi tidak berguna karena garam membuat kata sandi, jika itu yang Anda hashing, lebih lama dan lebih acak. Tabel pelangi untuk setiap string acak yang besar akan membutuhkan terlalu banyak daya komputasi.
Otentikasi Kunci Pribadi
Kriptografi kunci pribadi adalah enkripsi asimetris yang menyediakan dua kunci, satu publik dan satu pribadi. Jika data dienkripsi dengan kunci privat, maka hanya dapat didekripsi dengan kunci publik, begitu pula sebaliknya. Menjaga kunci pribadi tetap pribadi kemudian memungkinkan satu mesin untuk berkomunikasi secara aman dengan dunia luar atau mengautentikasi dengan mesin jarak jauh. Fungsionalitas kriptografik ini sangat cocok untuk beberapa aspek infrastruktur IoT.
Yang pertama adalah otentikasi satu mesin yang bergabung dengan jaringan IoT. Misalnya, node akhir mungkin perlu terhubung ke broker MQTT pusat untuk menerbitkan data upstream. Menggunakan autentikasi kunci pribadi memberi setiap mesin pengidentifikasi rahasia dan unik saat bergabung dengan jaringan (menghilangkan pendekatan kredensial global tidak aman yang sering digunakan) dan karena panjangnya hampir tidak mungkin untuk kekerasan (di mana mesin diprogram untuk menebak nilai) .
Verifikasi pesan antar perangkat adalah area kedua di mana kunci pribadi dapat membantu di Internet of Things. Sebuah pesan, seperti gambar firmware, akan dienkripsi dengan kunci pribadi dan ditambahkan hash atau algoritme pemeriksaan integritas lainnya. .Penerima pesan kemudian mendekripsi pemeriksaan itu menggunakan kunci publik, menunjukkan bahwa itu hanya dapat dihasilkan oleh pemegang kunci privat.
Pada akhirnya, hasil pemeriksaan integritas diperiksa untuk memastikan pesan tidak disusupi atau diubah saat sedang transit. Ketika saluran komunikasi yang aman tidak tersedia, tanda tangan elektronik semacam ini dapat bermanfaat.
Firmware yang Ditandatangani dan Boot Aman
Pendekatan tanda tangan elektronik yang dijelaskan di bagian sebelumnya juga merupakan sesuatu yang dapat digunakan untuk boot aman dan penandatanganan image firmware. Tanda tangan yang disebut ini memastikan bahwa pengguna atau mesin yang berwenang telah memberikan stempel persetujuannya pada firmware sebelum dijalankan. Itu mempersulit individu jahat untuk membuat firmware nakal dan membajak mesin – mereka tidak akan dapat menandatangani kode yang mereka buat.
Boot aman adalah komponen yang menggunakan ini, memastikan bahwa kode apa pun yang disetel untuk dijalankan pada perangkat sudah benar. Tanda tangan elektronik dapat dihitung dan diverifikasi dalam bit kode pertama yang dijalankan perangkat setelah di-boot. Selain itu, jika kunci rahasia yang digunakan untuk menandatangani kode disusupi, penggunaan infrastruktur kunci pribadi (PKI) dengan boot aman menyediakan rute perbaikan bagi pengelola.
Sekarang ke Perangkat Berbatasan Sumber Daya
Ini semua baik dan bagus, Anda mungkin berpikir, tetapi jika Anda bekerja di IoT untuk waktu yang lama, Anda akan menemukan situasi di mana Anda menggunakan perangkat yang dibatasi sumber daya di edge. Perangkat ini memiliki daya, pemrosesan, memori yang terbatas, dan dapat memberi pengembang beberapa rintangan teknis yang besar. Sayangnya, kriptografi modern dapat menjadi sumber daya babi dan pertanyaan yang muncul secara alami: Bagaimana kita membangun perangkat yang aman dan terjamin sementara juga memenuhi kendala yang ditempatkan pada mereka?
Cobalah untuk tidak berkecil hati! Dalam keadaan ini, adalah mungkin untuk membuat konsesi yang cerdas. Misalnya, enkripsi penuh aliran data dapat dilewati demi skema yang lebih sederhana di mana hash dihitung dengan garam rahasia Bersama sebuah “miskin tanda tangan elektronik manusia,” jika integritas data lebih penting daripada kerahasiaan data.
Sistem penerima akan dapat memverifikasi bahwa data dihasilkan oleh mesin resmi dan memvalidasi data sebagai hasilnya. Ini tidak ideal, tetapi dalam beberapa situasi, ini mungkin merupakan risiko yang dapat diterima. Meskipun ini hanya satu contoh, idenya adalah bahwa sistem IoT dapat secara efektif menyeimbangkan risiko dan keamanan ini dengan kreativitas dan pemahaman yang kuat tentang kriptografi.