Perlindungan Salin, Perlindungan Intelektual dan Masalah Penempatan

10

Setelah beberapa waktu dengan Raspberry Pi 2 Model B v1.1., Saya memiliki masalah berikut?

  1. Saya tahu ini difokuskan untuk meningkatkan sektor pendidikan yang rentan, tetapi apakah mungkin untuk menjual produk, berdasarkan RPi ?. Untuk menghasilkan uang dengan itu? Menjadi jutawan dengan itu?
  2. Bagaimana saya harus melindungi pengembangan, katakanlah, saya tidak ingin seseorang mengambil Kartu SD RPi saya, menduplikasinya, dan memiliki replika sendiri ? Alternatif saya saat ini adalah mengisi port SDCard dengan superglue :). Pilihan lain bisa membuat RPi melakukan ping ke server lisensi online, yang tentu saja akan membutuhkan koneksi WiFi . Atau ID HASH Perangkat Keras (Ini seharusnya jawaban yang lebih baik ...)
  3. Saya telah memeriksa ada juga mekanisme untuk memulihkan instalasi bahkan jika Anda tidak memiliki root, dengan memasang SD Card. Sekali lagi, solusi terbaik saya adalah pendekatan superglue ....

Terima kasih sebelumnya.

Brethlosze
sumber
2
Ini adalah pertanyaan umum Linux tertanam. Ini adalah masalah yang kompleks baik secara teknis maupun hukum.
Craig
2
Halo dan selamat datang di RaspberryPi.SE! Ini terlalu banyak pertanyaan dalam satu. Beberapa masalah juga sangat luas dan tidak spesifik-Pi. Anda perlu mempertimbangkan bahwa waktu dan upaya yang diberikan semua sistem perlindungan salinan dapat dielakkan. Terutama jika sistem Anda digunakan dan Anda tidak mungkin mencegah "penjahat" menggunakan semua alat yang tersedia untuk merusak perlindungan Anda.
Ghanima
@craig: Apakah ada Komunitas Linux Tertanam?
Brethlosze
WRT # 2: Anda tidak bisa mencegah pembajakan secara teknis di platform apa pun, yang bisa Anda lakukan adalah melawannya secara legal . Saya pikir Anda memiliki kereta sebelum kuda di sini. Pada saat Anda memiliki proyek perangkat lunak berbasis pi di mana ini menjadi masalah, Anda akan menyadari bahwa tidak ada proyek berbasis pi yang benar-benar terikat pada pi. Itu hanya perangkat tujuan umum, dan komunitasnya berorientasi pada pengembangan.
goldilocks
2
Ini bukan "platform mereka", pengembangan aplikasi yang bijaksana, dan mereka tahu itu dan tidak peduli. Itu bukan "tujuan mereka". Ini adalah Broadcom SoC yang mengimplementasikan arsitektur ARM. Tidak ada yang akan dilakukan orang dengan pi yang tidak bisa diporting secara sepele ke berbagai perangkat lain. Jadi, sekali lagi: Anda memiliki gerobak di depan kuda . Pada saat Anda sampai pada titik di mana kepedulian Anda terhadap kekayaan intelektual memiliki makna atau makna, Anda akan mengerti apa yang saya coba katakan kepada Anda ...
goldilocks

Jawaban:

6

Jika Anda benar-benar khawatir tentang melindungi properti intelektual Anda, maka Anda dapat menggabungkan aplikasi berbasis Rapberry Pi Anda dengan beberapa pengontrol mikro eksternal custom made (MCU seperti AVR, PIC, 8051 ...) berbasis perangkat keras (terhubung ke Pi melalui USB, RXTX, I2C, SPI, 1wire ...). Misalnya, aplikasi sisi Pi menghasilkan angka acak yang dikirim ke MCU, diterjemahkan dan dikirim kembali sebagai kunci pembuka untuk mendekripsi sesuatu yang penting. Kemudian tambahan Anda memiliki beberapa fungsi penting yang dieksekusi langsung di MCU (Anda baru saja melewati parameter dan mendapatkan hasil dari MCU). Anda dapat membayangkan bagaimana hal itu akan meningkatkan kesulitan cracking bagi seorang hacker dalam urutan besarnya, karena pengetahuannya harus jauh lebih luas dari biasanya. Tidak ada perlindungan yang sempurna, tetapi jika Anda benar-benar ingin menjadikannya tantangan maka ini bisa menjadi cara untuk pergi.

avra
sumber
1
Ini memang solusi yang bagus .... Saya akan mencoba konsep ini ....
Brethlosze
1
Sayangnya solusi untuk kunci perangkat keras sama dengan kunci perangkat lunak - cukup hapus bagian kode yang menyinggung, buat jawaban yang benar, dll. Jadi keterampilan yang sama akan bekerja melawan kunci perangkat keras.
tomnexus
2
Tidak jika Anda memasukkan beberapa fungsi penting ke dalam kunci perangkat keras, dan menjadikannya penting untuk fungsionalitas aplikasi Pi Anda. Karena fungsi hanya ada di pengontrol mikro, tidak ada yang dihapus di sisi Pi. Ini bukan tidak mungkin untuk dipecahkan, tetapi banyak, berkali-kali lebih sulit karena menuntut keterampilan yang jauh lebih tinggi daripada pemecahan kode yang biasa.
avra
1
Sementara sirkuit eksternal ini memang menambah perlindungan hal-hal ini menghabiskan banyak uang: penelitian, pembuatan prototipe, pembuatan, pengujian, implementasi, pemeliharaan. Bagaimana jika sesuatu terjadi di sepanjang garis? Bagaimana jika Raspberry mengubah antarmuka mereka di model mendatang? Jika itu umur pendek atau proyek hobi, lakukanlah. Jika ini adalah produk industri / komersial, mungkin OEM adalah taruhan yang lebih aman.
EDP
5
  1. Saya pikir itu adalah ide dengan modul komputasi selama ini. Seharusnya tidak menjadi masalah untuk menghasilkan keuntungan.

  2. / 4. Opsi superglue mungkin merupakan tradeoff yang bagus. Pada akhirnya Anda tidak dapat mengalahkan penyerang dengan akses fisik ke perangkat. Lihatlah konsol game yang mungkin jutaan berinvestasi dalam infrastruktur DRM dan semuanya akhirnya jatuh. Dengan semangat yang berbeda, Anda juga bisa merangkul keterbukaan dan menjual versi pengembangan produk Anda dan memasukkan beberapa jenis SDK. Umpan balik yang Anda dapatkan dari grup pengguna yang berfokus pada teknis mungkin berharga dan berfungsi sesuai minat Anda.

pengguna1217949
sumber
Opsi superglue mungkin benar-benar gila, tetapi Anda membuat beberapa poin bagus lainnya di sini. ; |
goldilocks
Sebenarnya, saya berpikir pada beberapa ID perangkat keras dari Raspberri Pi, agar setiap perangkat lunak RPi dapat diprogram untuk setiap kartu RPi, dan dengan demikian, jika saya mengkloning perangkat lunak, sistem tidak akan berfungsi. Prosesor u lama, hanya diprogram di papan, sehingga Anda tidak dapat mencabutnya :).
Brethlosze
1
Bahkan jika Anda memiliki ID perangkat keras siapa pun yang memiliki akses fisik dapat membacanya. Prosesor yang diprogram di papan tentu saja juga menyediakan antarmuka debugging, sehingga Anda benar-benar dapat membacanya. Dalam sistem yang lebih canggih, SOC mungkin hanya akan menjalankan kode yang ditandatangani. Saya tidak akan terlalu terkejut jika chip Broadcom memiliki beberapa fungsi ke arah itu, tetapi Anda tidak memiliki dokumentasi untuk itu. Jika Anda ingin berencana untuk menjual jutaan unit, mereka mungkin berbicara kepada Anda tentang hal itu;)
user1217949
LOL .. tidak, saya kira saya akan menjual dalam jumlah yang sangat kecil ! Jadi, jika saya memiliki kode yang berjalan di bawah Raspbian, yang lain dapat mengambil kartu SD, dan membacanya? debug itu? retak itu? Saya sangat yakin, jawabannya tentu saja ya. Akankah pilihan terbaik adalah memiliki yang Hardware Keydisarankan oleh avra , dan mengubur kartu SD dengan SuperGlue di dalam konektornya?
Brethlosze
4

Meskipun praktik ini jelas kehilangan cakupan, Anda akan takjub dengan jumlah konektor USB yang telah terpaku pada mesin desktop di lingkungan kantor perusahaan. Dan saya berbicara perusahaan multinasional besar di sini.

Tapi sekarang pada topik ...

Untuk proyek komersial di mana perlindungan IP adalah faktor utama, Pi baik untuk prototipe awal / bukti konsep terbaik. Bahkan jika perlindungan tidak akan menjadi masalah, penyebaran Pi pada skala yang lebih besar adalah IMHO bukan solusi terbaik - karena sejumlah alasan yang saya jelaskan di utas sebelumnya di forum ini.

Tidak ada sistem yang aman terhadap rekayasa balik / peretasan / reproduksi. Setiap sistem dapat dieksploitasi. Namun setiap sistem memiliki skor penetrasi. Dengan pendekatan terbuka dan kartu SD eksternal, Pi memiliki yang sangat rendah. Papan perangkat keras yang disetujui militer yang dirancang khusus dengan SoC khusus, komponen yang diapit dan PCB berlapis-lapis dalam kombinasi dengan bootloader khusus, enkripsi perangkat keras akan memiliki skor lebih tinggi.

Selain itu ada faktor penyebaran. Semakin luas pasar Anda, semakin menarik bagi orang untuk menerobos dan mencuri teknologi Anda.

Jika perangkat keras adalah bagian dari perlawanan Anda di seluruh pengaturan dan melindungi teknologi Anda adalah faktor utama, saya tidak berpikir Pi adalah produk untuk Anda. Jika perangkat keras Anda adalah fasilitator untuk menjual layanan, mungkin teknologi perlindungan harus dilakukan di sisi server daripada di sisi klien.

Kami menggunakan Pi untuk menjual layanan tersebut. Perangkat lunak kami pada Pi memang memiliki tingkat perlindungan yang dinaikkan, kami menggunakan aplikasi C yang dikompilasi, dikunci pada MAC dan / atau nomor seri CPU. Tetapi pada akhirnya, tanpa sisi server kami, bahkan kode sumbernya hampir tidak berguna.

EDP
sumber
3

Anda dapat menggunakan raspberry di dalam piggy-back dengan kunci terenkripsi. Ada beberapa perangkat komersial di pasaran. Saya menggunakan Perlindungan Serial Perangkat Lunak ini untuk Raspberry Pi , yang berfungsi dengan sangat baik.

Paulo Arede
sumber
2
Ini tidak akan membantu Anda untuk melindungi sistem dari kloning - peretas akan menghapus centang untuk kunci HW dari biner Anda jika mereka mau ... Kunci HW hanya akan memberikan tingkat perlindungan tertentu (mungkin untuk menghentikan hobi tingkat pertama) peretas).
Kozuch
2

Jadikan open-source

Serius jangan mencoba untuk menyalin-melindunginya. Jadikan open-source. Jika memungkinkan, biarkan orang lain bergabung dengan proyek Anda.

Kemudian biaya untuk layanan. Anda dapat menghasilkan banyak uang jika Anda melakukannya dengan benar.

Red-telah melakukannya seperti ini dan beberapa perusahaan lain. Mereka semua baik-baik saja dan sedang tumbuh.

MadMike
sumber
1
Tidak, ini adalah produk, bukan proyek, bukan proyek besar dan juga bukan proyek pemrograman yang sangat menarik. Kedengarannya cantik, tapi sekali lagi, tidak.
Brethlosze
1
Saya tidak setuju. Dari pengalaman saya, setiap program yang saya tulis yang dikirimkan dan digunakan secara aktif oleh klien akan memiliki panggilan dukungan, permintaan untuk peningkatan dan, tentu saja, perbaikan bug. Satu-satunya perangkat lunak yang tidak memiliki salah satunya adalah perangkat lunak yang, setelah pengiriman itu, tidak pernah digunakan.
MadMike
Itu intinya, ini untuk produk, perangkat. tidak ada seni sama sekali dalam perangkat lunak tetapi, cara di mana variabel diproses harus dilindungi, sama seperti pengendali pintar. Anda tidak bermaksud membuka sumber perkembangan Anda dalam arti itu, itu tidak mungkin, itu adalah jenis pekerjaan lain. Mungkin Anda berada di perusahaan dan Anda kesal ketika klien menelepon Anda, padahal sebenarnya itu memberi Anda lebih banyak penagihan kepada bos Anda, dan memberi Anda layanan purna jual, yang dalam jangka panjang baik. Bagaimanapun, open source itu baik untuk kemanusiaan, bukan untuk mencari untung.
Brethlosze
1
Sekali lagi ini adalah diskusi utopis tentang menghadiahkan semua pekerjaan Anda untuk kepentingan manusia atau meminta bayaran semua orang atas semua yang Anda lakukan.
Brethlosze
1

Beberapa sen milik saya:

  1. Jangan pernah membuat solusi seputar skrip yang dapat langsung dibaca.
  2. Fungsi gangguan dalam hal beberapa perangkat lunak / proses dan perangkat keras.
  3. Tambahkan beberapa ketergantungan "fungsional" perangkat keras baca.
  4. Tambahkan pembaca kartu pintar dan jual kartu pintar "enabler" dengan produk Anda.
  5. Memiliki server lisensi
  6. Dapatkan penghitung penggunaan di EEPROM !!! Dan harus ada beberapa cara untuk "mengisi ulang" secara online .. ;-)

...

Jatin Gandhi
sumber
1

Sebagai perlindungan entry-level, ada ID kartu SD unik yang ditemukan di bawahnya /sys/block/mmcblk0/device/yang tidak dikloning oleh perangkat lunak kloning gambar disk biasa. Ini memiliki keuntungan karena tidak memerlukan perangkat terpisah untuk memegang ID unik dan berfungsi dengan baik sebagai perlindungan lapisan kedua setelah superglue. Setidaknya akan menghentikan orang-orang yang hanya mampu mengkloning kartu SD.

Tip lain tentang perlindungan menggunakan ID adalah untuk menghindari menggunakan pemeriksaan sederhana, yaitu

if(readID() != 0xDEADBEEF) exit();

Pemeriksaan sederhana seperti itu mudah ditemukan (baik dengan mencari ID yang diketahui atau dengan memonitor panggilan ke exit()) dan menghapus. Pendekatan yang jauh lebih baik adalah dengan melibatkan ID sebagai konstanta dalam perhitungan. Artinya, alih-alih i++di suatu tempat dalam kode Anda, Anda akan menulis

i = i + readID() - 0xDEADBEEF + 1;

Ini akan jauh lebih sulit ditemukan, karena ID yang tepat tidak akan muncul dalam kode Anda kata demi kata ( 0xDEADBEEF + 1 == 0xDEADBEF0), dan memeriksa semua panggilan exit()juga tidak akan mengungkapkan lokasi kode pelindung Anda. Sebaliknya, kode Anda hanya akan crash pada sistem dengan ID yang salah, dan penyerang harus men-debug logika aplikasi Anda untuk memahami dan memperbaiki masalah.

Dmitry Grigoryev
sumber
0

Menggunakan komponen eksternal, maksud saya komponen keamanan akan menyelesaikan masalah itu. Jika Anda benar-benar berpikir ide Anda hebat dan bernilai biaya tambahan untuk melakukannya, saya akan menyarankan Anda untuk menggunakan MCU / CPU profesional untuk melakukannya. Seperti seri Broadcom BCM58101, tidak terlalu hemat biaya dan tidak ramah bagi pengguna baru tetapi tingkat keamanan yang tinggi juga dapat melindungi ide / desain Anda.

Benjamin LIiiiiiiii
sumber