Komputer self-hosting RISC-V 64-bit gratis dengan dukungan Linux yang dapat dipercaya
(contrib.andrew.cmu.edu)Komputer self-hosting RISC-V 64-bit kompatibel Linux yang dapat dipercaya dan bebas
Motivasi
-
Tujuan: membangun komputer Free/OpenSource yang sepenuhnya dapat dipercaya
- Semua perilaku sistem perangkat keras dan perangkat lunak berasal dari HDL (hardware description language) dan source software yang sepenuhnya terbuka
- Compiler dan toolchain terkait juga harus Free/OpenSource, serta dapat dibangun dan dijalankan di sistem komputer tersebut
- Dengan kata lain, diperlukan stack perangkat keras+perangkat lunak Free/OpenSource yang self-hosting
-
Batasan: tidak memiliki atau mengendalikan silicon foundry
- Karena tidak dapat membuat ASIC sendiri, komponen "perangkat keras" akan dibangun di FPGA
- Pemrograman FPGA dan pembuatan bitstream akan dilakukan menggunakan alat Free/OpenSource
-
Keuntungan dari sisi kepercayaan:
- Chip foundry tidak dapat mengetahui FPGA akan digunakan untuk apa, dan tidak dapat mengetahui di mana "bit istimewa" akan ditempatkan di dalam chip
- Ini membantu mencegah backdoor perangkat keras untuk eskalasi privilese
- FPGA tersusun dari grid reguler dengan komponen yang sama, sehingga lebih mudah diperiksa secara visual (penghilangan secara kimia dan pencitraan TEM) dibanding ASIC khusus
-
Membatasi permukaan serangan pada tahap produksi:
- Dengan membatasi source dan/atau toolchain berbahaya hanya pada source yang dapat di-build, dapat dibuat produk akhir yang dapat dipercaya (komputer perangkat keras+perangkat lunak yang didistribusikan)
Materi tambahan dan eksperimen awal
-
Makalah CReSCT 2020, slide, dan presentasi: kutipan IEEE S&P 2020
-
Slide deck dan presentasi review riset CMU/SEI 2019
-
Slide deck sebelumnya tentang pekerjaan komputasi tepercaya di CERT/SEI
-
Proyek lowRISC:
- Upaya untuk me-rebase komponen ke proyek upstream terkait
- Proyek ini merupakan sumber daya yang sangat berguna dan sangat membantu dalam memahami komponen-komponennya
- Namun pada saat penulisan, proyek ini bergantung pada toolchain HDL tertutup dan menggunakan modul IP proprietari (controller DRAM, dll.) dalam daftar komponennya
-
yoloRISC:
- SoC demo blinky berbasis Rocket-Chip, RV64IMAC
- Dibangun untuk board pengembangan Lattice ECP5 5G Versa menggunakan yosys/trellis/nextpnr
Opini GN⁺
- Perangkat keras dan perangkat lunak bebas: proyek ini merupakan upaya untuk membangun perangkat keras dan perangkat lunak yang sepenuhnya bebas dan open source, sehingga sangat menarik bagi pengguna yang mengutamakan kepercayaan dan transparansi.
- Keunggulan FPGA: dengan menggunakan FPGA, backdoor perangkat keras dapat dicegah, dan kepercayaan dapat ditingkatkan melalui inspeksi visual.
- Toolchain dan modul IP: saat ini banyak proyek masih bergantung pada toolchain tertutup dan modul IP proprietari, sehingga sulit mewujudkan open source sepenuhnya.
- Tantangan teknis: membangun stack perangkat keras+perangkat lunak Free/OpenSource yang self-hosting merupakan pekerjaan yang sangat menantang secara teknis.
- Kemungkinan di masa depan: proyek ini dapat memberikan kontribusi penting bagi pengembangan sistem komputasi tepercaya di masa depan dan berpotensi memberi dampak besar pada komunitas open source.
1 komentar
Komentar Hacker News
Ringkasan kumpulan komentar Hacker News
Keamanan FPGA: Penyisipan backdoor perangkat keras pada proses manufaktur FPGA dapat dicegah. Sistem memang bisa dibuat berhenti total, tetapi tidak akan berpura-pura berfungsi normal sambil mengkhianati pemiliknya.
Potensi risiko FPGA: Bisa saja ada CPU tersembunyi di dalam FPGA, dan ini dapat memiliki hak akses baca/tulis penuh terhadap program FPGA. Jika sistem menjadi populer, kemungkinan besar lebih banyak informasi tentang proses manufaktur akan terungkap sehingga bit istimewa dapat ditemukan.
Penggunaan toolchain open source: Sungguh mengejutkan bisa masuk ke shell Linux pada OrangeCrab FPGA yang menjalankan softcore RISC-V dengan toolchain open source. Dulu hal seperti ini mustahil.
VexRiscv dan SpinalHDL: Ada yang menggunakan desain berbasis VexRiscv dan SpinalHDL, dan meski tidak menjalankan Linux karena SRAM yang terbatas (512KB), sistem tersebut mendukung Ethernet dan HDMI. Mereka juga menulis adapter video mirip CGA untuk mendukung mode grafis dan teks.
DDC dan serangan kepercayaan: Menyenangkan melihat pembahasan tentang upaya mencegah serangan kepercayaan melalui Diverse Double-Compiling (DDC). Jika tertarik pada DDC, disarankan merujuk ke tautan terkait.
Membangun ulang sistem: Ada baiknya membangun ulang sistem secara mandiri dan memverifikasi apakah bitfile yang dihasilkan sama. Menarik bahwa proses build ulang bisa selesai dalam 4,5 jam pada 512MB dengan CPU 65MHz.
Perbandingan dengan workstation Unix awal: 50-65MHz dan 512MB cukup sebanding dengan workstation Unix awal 1990-an. Dari sisi RAM, bahkan bisa lebih baik.
LiteX dan FPGA Kintex-7: Pada 2022, ada yang melakukan hal serupa dengan LiteX, tetapi FPGA Kintex-7 memerlukan Vivado. Hasilnya, mereka membuat laptop open gateware yang menjalankan Linux dan Xorg.
Proyek Shakti: Disarankan untuk melihat proyek Shakti, ekosistem pengembangan prosesor open source berbasis RISC-V yang dikembangkan di IIT-Madras, India.
Pekerjaan OSXKVM: Proyek ini dikerjakan oleh orang yang sama yang pernah mengerjakan upaya menjalankan OSX di QEMU/KVM.
Kebutuhan akan mesin RISC-V self-hosting: Ada pendapat bahwa mesin RISC-V self-hosting yang sepenuhnya lengkap memang dibutuhkan. Saat ini, kendala terbesar adalah menemukan board FPGA dengan RAM yang memadai.
Sulitnya self-hosting: Gagasan tentang perangkat keras dan perangkat lunak self-hosting memang bagus, tetapi membangun sesuatu seperti GCC pada CPU 60MHz terasa sangat sulit dibayangkan. Ada yang berbagi pengalaman memakai Gentoo di RockPro64 lalu menyerah karena waktu kompilasinya terlalu lama.