Saya mengembangkan perangkat keras yang tertanam secara komersial, menggunakan Microchip dsPIC atau prosesor serupa.
Firmware yang saya miliki kadang-kadang sangat kompleks dan mahal, dan perlu menjadi peretas dan merusak perangkat keras. Semua perlindungan perangkat lunak dasar ada di sana, tetapi sebesar $ 500 - $ 1.000 kode hex dapat diambil melalui beberapa layanan situs web asing, bahkan jika ada sekering keamanan (mencegah hanya gangguan yang tidak ditentukan). Setelah itu, hanya beberapa bulan dan kode dapat direkayasa ulang menggunakan disassembler, seperti IDA Pro.
Bagaimana saya bisa melindungi desain perangkat keras sedikit lebih baik (tidak perlu perlindungan militer)?
Dapatkah Anda merekomendasikan prosesor lain yang tidak dapat dibaca, atau mungkin tambahan untuk desain saya yang sudah ada?
Yang saya butuhkan adalah menyembunyikan beberapa fungsi, saya tidak perlu seluruh produk. Juga, tidak cukup hanya dengan menyembunyikan data dalam memori eksternal yang aman, saya perlu menyembunyikan sepotong program.
Pembaruan (berdasarkan banyak komentar): Saya memiliki dsPIC dan 4 tahun pengembangan penuh pada firmware (akan membutuhkan upaya yang cukup untuk melakukannya dari awal dengan cara lain):
1) Produk ini sudah laku dan peretas memiliki akses jika mereka mau
2) PERANGKAT LUNAK BARU belum dirilis. Berisi kode 5kB yang belum dimiliki siapa pun dari semua kompetisi. Saya perlu mencegah siapa pun dengan mudah mendapatkannya selama sekitar 12 bulan setelah rilis
3) Tidak ada anggaran untuk menjadi sangat eksotis atau rumit, mungkin tambahan $ 10 per produk, plus atau minus
4) Solusi seperti menambahkan kartu SIM mungkin berhasil?
5) Fungsi untuk menyembunyikan melakukan perhitungan yang sangat rumit, non-standar, untuk mendekripsi / mengenkripsi 16 byte. Proses yang diketahui tidak dapat meretasnya dalam 1 tahun, fungsinya diperlukan, itulah sebabnya saya ingin menyembunyikannya.
6) Saya tidak keberatan jika itu terlihat secara publik, ketika permintaan dikirim ke perangkat keras 'tersembunyi', atau jika responsnya terlihat oleh publik. Hanya perlu menyembunyikan proses penghitungannya, dan tidak bisa berada di dalam prosesor dsPIC.