1 điểm bởi GN⁺ 2024-05-20 | 1 bình luận | Chia sẻ qua WhatsApp

Máy tính RISC-V 64-bit tự lưu trữ, tương thích Linux, đáng tin cậy và tự do

Động cơ

  • Mục tiêu: xây dựng một máy tính Free/OpenSource hoàn toàn đáng tin cậy

    • Mọi hành vi của hệ thống phần cứng và phần mềm đều bắt nguồn từ HDL (ngôn ngữ mô tả phần cứng) và mã nguồn phần mềm được công khai hoàn toàn
    • Trình biên dịch và chuỗi công cụ liên quan cũng phải là Free/OpenSource, đồng thời có thể build và chạy trên chính hệ thống máy tính đó
    • Nói cách khác, cần một stack phần cứng + phần mềm Free/OpenSource có khả năng tự lưu trữ
  • Ràng buộc: không sở hữu hoặc kiểm soát xưởng đúc silicon

    • Vì không thể tự chế tạo ASIC, sẽ xây dựng các thành phần "phần cứng" trên FPGA
    • Việc lập trình FPGA và tạo bitstream sẽ được thực hiện bằng các công cụ Free/OpenSource
  • Lợi thế về độ tin cậy:

    • Xưởng đúc chip không thể biết FPGA sẽ được dùng vào việc gì, cũng không thể biết các "bit đặc quyền" sẽ được đặt ở đâu trong chip
    • Điều này giúp ngăn chặn các backdoor phần cứng nhằm leo thang đặc quyền
    • FPGA được tạo thành từ lưới đều đặn của cùng một loại thành phần, nên dễ kiểm tra trực quan hơn (tẩy hóa học và chụp ảnh TEM) so với ASIC chuyên dụng
  • Giới hạn bề mặt tấn công ở giai đoạn chế tạo:

    • Giới hạn nguồn độc hại và/hoặc chuỗi công cụ độc hại ở mức mã nguồn có thể build được, từ đó tạo ra sản phẩm cuối đáng tin cậy (máy tính phần cứng + phần mềm đã triển khai)

Tài liệu bổ sung và thử nghiệm ban đầu

  • Bài báo, slide và bài trình bày CReSCT 2020: trích dẫn IEEE S&P 2020

  • Bộ slide và bài trình bày tổng quan nghiên cứu CMU/SEI 2019

  • Bộ slide trước đây về công việc điện toán đáng tin cậy tại CERT/SEI

  • Dự án lowRISC:

    • Nỗ lực rebase các thành phần về các dự án upstream tương ứng
    • Dự án này là một nguồn tài nguyên rất hữu ích và đã giúp ích rất nhiều trong việc hiểu các thành phần
    • Tuy nhiên, tại thời điểm viết, nó phụ thuộc vào chuỗi công cụ HDL đóng và sử dụng các mô-đun IP độc quyền trong danh sách thành phần (DRAM controller, v.v.)
  • yoloRISC:

    • SoC demo blinky dựa trên Rocket-Chip, RV64IMAC
    • Được xây dựng bằng yosys/trellis/nextpnr cho bo mạch phát triển Lattice ECP5 5G Versa

Ý kiến của GN⁺

  • Phần cứng và phần mềm tự do: Dự án này là một nỗ lực nhằm xây dựng phần cứng và phần mềm hoàn toàn tự do và mã nguồn mở, rất hấp dẫn với những người dùng coi trọng độ tin cậy và tính minh bạch.
  • Ưu điểm của FPGA: Việc sử dụng FPGA giúp ngăn chặn backdoor phần cứng và nâng cao độ tin cậy thông qua khả năng kiểm tra trực quan.
  • Chuỗi công cụ và mô-đun IP: Hiện nay nhiều dự án vẫn phụ thuộc vào chuỗi công cụ đóng và các mô-đun IP độc quyền, khiến việc theo đuổi mã nguồn mở hoàn toàn trở nên khó khăn.
  • Thách thức kỹ thuật: Việc xây dựng một stack phần cứng + phần mềm Free/OpenSource có khả năng tự lưu trữ là một công việc cực kỳ thách thức về mặt kỹ thuật.
  • Tiềm năng tương lai: Dự án này có thể đóng góp quan trọng cho việc phát triển các hệ thống điện toán đáng tin cậy trong tương lai và có thể tạo ảnh hưởng lớn đến cộng đồng mã nguồn mở.

1 bình luận

 
GN⁺ 2024-05-20
Ý kiến Hacker News

Tóm tắt các bình luận trên Hacker News

  • Tính bảo mật của FPGA: Có thể ngăn việc cài cửa hậu phần cứng trong quy trình sản xuất FPGA. Hệ thống có thể ngừng hoạt động hoàn toàn, nhưng sẽ không giả vờ hoạt động bình thường trong khi phản bội chủ sở hữu.

  • Rủi ro tiềm ẩn của FPGA: FPGA có thể có một CPU ẩn, và CPU này có thể có toàn quyền truy cập đọc/ghi vào chương trình FPGA. Nếu hệ thống trở nên phổ biến, khả năng cao là người ta sẽ thu thập thêm thông tin từ quy trình sản xuất để tìm ra các bit đặc quyền.

  • Sử dụng toolchain mã nguồn mở: Thật đáng kinh ngạc khi có thể đăng nhập vào shell Linux trên OrangeCrab FPGA chạy softcore RISC-V bằng toolchain mã nguồn mở. Đây là điều trước đây không thể làm được.

  • VexRiscv và SpinalHDL: Đang sử dụng một thiết kế dựa trên VexRiscv và SpinalHDL; do SRAM bị giới hạn (512KB) nên không chạy Linux, nhưng có hỗ trợ Ethernet và HDMI. Họ đã viết một bộ điều hợp video tương tự CGA để hỗ trợ chế độ đồ họa và văn bản.

  • DDC và tấn công vào niềm tin: Rất vui khi thấy có nhắc đến công việc ngăn chặn các cuộc tấn công vào niềm tin thông qua diverse double-compiling (DDC). Nếu quan tâm đến DDC, nên tham khảo liên kết liên quan.

  • Xây dựng lại hệ thống: Nên tự xây dựng lại hệ thống và xác minh xem bitfile có giống hệt hay không. Việc có thể xây dựng lại trong 4,5 giờ với CPU 65MHz và 512MB là điều ấn tượng.

  • So sánh với workstation Unix đời đầu: 50-65MHz và 512MB là cấu hình có thể so sánh với các workstation Unix đầu thập niên 1990. Xét về RAM thì thậm chí có thể tốt hơn.

  • LiteX và FPGA Kintex-7: Năm 2022, có người đã làm việc tương tự bằng LiteX, nhưng FPGA Kintex-7 cần Vivado. Kết quả là họ đã tạo ra một laptop gateware mở chạy Linux và Xorg.

  • Dự án Shakti: Có đề xuất tham khảo dự án Shakti, một hệ sinh thái phát triển bộ xử lý mã nguồn mở dựa trên RISC-V do IIT-Madras ở Ấn Độ phát triển.

  • Công việc về OSXKVM: Dự án này được thực hiện bởi cùng một người từng làm việc về việc chạy OSX trên QEMU/KVM.

  • Sự cần thiết của máy RISC-V tự host: Có ý kiến cho rằng cần một cỗ máy RISC-V tự host hoàn chỉnh. Hiện tại, hạn chế lớn nhất là tìm được bo mạch FPGA có đủ RAM.

  • Khó khăn của tự host: Ý tưởng về phần cứng và phần mềm tự host là rất hay, nhưng việc build thứ như GCC trên CPU 60MHz thì khó đến mức gần như không thể tưởng tượng nổi. Có người chia sẻ từng dùng Gentoo trên RockPro64 nhưng đã bỏ cuộc vì thời gian biên dịch quá lâu.