Sekuriti - Desain Digital

Selamat datang pada materi keamanan perangkat keras. Hari ini kita akan bicarakan tentang kerentanan dalam desain perangkat keras dan perangkat keras itu sendiri. Ketika kita berbicara tentang keamanan (security), maka yang harus dimunculkan dibenak kita adalah pertanyaan tidak mempercayai, apa ini aman?apa ini terjamin?apa ini kuat? lebih baik bersikap pesimis bukannya optimis.

Anda tidak seharusnya mempercayai perangkat keras yang diberikan, tidak peduli itu ponsel, atau laptop, atau desktop, atau mungkin itu hanya sistem embedded yang sangat sederhana. Ada beberapa alasan di balik ini. Jadi, pertama adalah masalah kepercayaan dalam supply chain microchip. Mungkin ada backdoor sebagai celah di server atau didalam sistem. Backdoor disini maksudnya portal yang tidak terdokumentasi. Portal ini biasa digunakan untuk melakukan troubleshooting dan perawatan pada system namun juga merupakan celah yang bisa dimanfaatkan para hacker.

Dan juga, ketika desainer mendesain sistem mereka harus menggunakan properti intelektual dari pihak ketiga. Mereka harus menggunakan alat desain yang mungkin tidak berasal dari sumber tepercaya. Dan pihak ketiga inilah yang menjadi tools bantuan, ketika orang merancang perangkat keras untuk mengimplementasikan aplikasi, mengimplementasikan fungsi, kapan Anda mesti menerapkannya.

Misalnya crypto crimi, apa yang mereka anggap adalah kinerja, bukan keamanan. Jadi ini berpotensi memunculkan kerentanan keamanan ke dalam sistem. Akhirnya, mungkin ada desainer jahat yang akan memanfaatkan celah ini. Mereka dapat menambahkan trojan ke perangkat keras. Dan, di samping masalah ini terkait dengan proses desain perangkat keras, bahkan perangkat keras itu sendiri yang malah menjadi sasaran serangan.

Seperti, analisis sisi saluran dan serangan fisik. Jadi hari ini kita akan bicarakan keamanan supply chain microchip dan backdoor. Dan semua kekhawatiran lain kami akan bicarakan nanti. Jadi mari kita mulai dengan supply chain microchip.

Masalah kerentanan terjadi berdasarkan 206 laporan dari Defense Advanced Research Projects Agency. Mereka menunjukkan desainnya dari spesifikasi pengguna. Kemudian desain dilakukan oleh tim desain dan ke pabrik untuk pembuatan. Terakhir mengirimkannya kembali ke sistem, kembali ke pengguna sistem untuk melakukan pengujian. Sekaligus pengembangan dan pemantauan.

Jadi ketika seluruh desain dan fase fabrikasi sudah masuk kerumah-rumah seharusnya sudah dapat di bawah kendali, dan terpercaya. Namun, dengan meningkatnya kompleksitas desain dan source-foundry, menjadikannya untrusted, tidak aman. Jadi misalnya, tim desain ini, mungkin bisa dipercaya, kita bisa bilang oke, kamu sudah punya tim desain selama bertahun-tahun, tapi bagaimanapun, mereka menggunakan model, yang berasal dari sumber lain. Mereka menggunakan pihak ketiga sebagai properti intelektual. Mereka menggunakan alat desain. Dan hal-hal ini mungkin tidak dirancang dengan sumber tepercaya. Dan juga ketika kita berbicara tentang source- foundry, ini jadi celah para hacker. Dan itu di luar kendali kita. Jadi yang kita miliki di sini adalah hanya fase ketika kita menentukan sistem yang bisa kita percayai. Ketika kita mendapatkan kembali sistem kita dan melakukan tes sendiri. Kita baru akan mempercayai pengujian, saat menerapkan sistem. Saat kita memonitor sistem. Namun proses yang terjadi diantaranya, kadang diluar kontrol kita karena adanya source-foundry dan inilah yang membuatnya untrusted.

Sekarang mari kita melihat beberapa contoh yang lebih konkret. Jadi contoh pertama yang kita miliki adalah berasal dari slide yang menunjukkan desain logis digital. Jadi dimana, kita memiliki encoder 3-input. Ada tiga bit input x, y dan z. Dan setiap saat, masing-masing, salah satu dari mereka dapat menjadi satu-satunya. Dan apa yang ingin kita lakukan adalah kita inginkan untuk menyandikan ini dengan kode dua bit, yang akan cocok menjadi modul selanjutnya sebagai input. Jadi jika Anda ingat dari slide ulasan, apa yang kita miliki di sini adalah optimal desainnya seperti ini. A adalah komplemen dari z, dan maka b, b adalah komplemen dari y. Jadi kami tahu ini adalah desain terbaik. Namun, mungkin ada beberapa masalah keamanan untuk desain ini. Jadi pertama-tama jika kita memiliki 000 sebagai input, mengikuti desain ini, akan menjadi 1, yang merupakan pelengkap dari z. Dan kemudian b juga akan menjadi 1, yang merupakan pelengkap dari y. Jadi keseluruhan ini akan memberi kita output 11 sebagai kode. Yang bertepatan dengan kode untuk input kombinasi 100. Jadi ini berpotensi menjadi backdoor untuk kasus input 100.

Dan pertanyaan kedua, mungkin sebenarnya adalah masalah yang lebih parah. Jadi ketika kita memiliki input seperti 011 atau 111, output dari desain optimal ini, beri kami 00 sebagai hasilnya. Yang akan diumpankan pada modul berikutnya sebagai input, tetapi jika Anda kembali ke spesifikasi sistem kami di sini, tidak menentukan 00 sebagai output potensial. Jadi itu berarti modul selanjutnya mungkin tidak menganggap 000 sebagai input yang valid. Jadi ini dapat menyebabkan beberapa masalah modul selanjutnya. Yang berpotensi bisa menjadi sesuatu disebut serangan injeksi kesalahan (fault injection attack).