- 목표는 전체 동작을 공개된 HDL과 소프트웨어 소스로 추적할 수 있고, 그 시스템 위에서 도구체인까지 다시 빌드·실행되는 셀프 호스팅 자유/오픈소스 스택을 만드는 것임
- 직접 ASIC을 제작할 수 없으므로 하드웨어는 FPGA 위에 올리고, 비트스트림 생성과 프로그래밍도 자유/오픈소스 도구로 처리해야 함
- FPGA 접근은 파운드리가 실제 사용처와 민감한 비트 배치를 알기 어렵게 만들어, 제작 단계 공격을 DoS 수준으로 제한할 수 있다고 봄
- 규칙적인 격자 구조를 가진 FPGA는 화학적 제거와 TEM 이미징 같은 파괴적 시각 검사가 전용 ASIC보다 현실적인 편임
- 남은 신뢰 문제는 HDL·소프트웨어·컴파일러·도구체인을 모두 공개 소스로 빌드 가능하게 만들어, 검증 범위를 감사 가능한 소스로 좁히는 데 있음
신뢰 가능한 컴퓨터를 위한 조건
- 목표는 바닥부터 자유/오픈소스 컴퓨터를 구축해, 하드웨어와 소프트웨어 전체 동작을 공개된 HDL 및 소프트웨어 소스로 설명 가능하게 만드는 것임
- 전체 시스템을 만드는 컴파일러와 관련 도구체인도 자유/오픈소스여야 하며, 해당 컴퓨터 위에서 빌드되고 실행될 수 있어야 함
- 결과적으로 필요한 것은 셀프 호스팅 자유/오픈소스 하드웨어+소프트웨어 스택임
- 실리콘 파운드리를 소유하거나 통제하지 못하므로, 하드웨어 구성요소는 FPGA 위에 구현함
- FPGA 프로그래밍과 비트스트림 생성 역시 자유/오픈소스 도구로 처리해야 신뢰 모델이 유지됨
FPGA가 주는 신뢰성 절충
- FPGA 사용은 전용 ASIC을 직접 만드는 대신 선택한 현실적인 절충임
- 칩 파운드리는 FPGA가 어디에 쓰일지, 이른바 privilege bit가 칩 안에서 어디에 배치될지 알기 어려움
- 이 조건에서는 권한 상승 하드웨어 백도어를 완화할 수 있고, FPGA 제작 단계에서 심을 수 있는 공격은 DoS로 제한된다고 봄
- 컴퓨터가 완전히 멈출 수는 있어도, 정상 동작하는 척하면서 소유자를 배신할 가능성은 낮아진다는 판단임
- FPGA는 동일한 구성요소가 반복되는 규칙적 격자 구조라서, 전용 ASIC보다 파괴적 시각 검사가 더 가능하다고 봄
- 예시는 화학적 제거와 TEM 이미징임
- 제작 단계의 공격 표면을 줄인 뒤에도 악성 소스나 도구체인 같은 위험은 남아 있음
- 이 문제는 모든 HDL·소프트웨어·도구체인을 빌드 가능한 공개 소스로 요구하는 방식으로 다룸
참고 자료와 구현 실험
- FOSDEM 23: 최근 슬라이드와 발표
- linux-on-litex-rocket: 최신 빌드 지침
- self-hosting demo: 셀프 호스팅 데모
- CReSCT 2020 Paper, Slides, Presentation: IEEE S&P 2020 관련 발표 자료
- lowRISC project: 구성요소 이해에 유용했지만, 당시에는 폐쇄형 HDL 도구체인과 DRAM 컨트롤러 같은 독점 IP 모듈에 의존함
- yoloRISC: Lattice ECP5 5G Versa 보드용 RV64IMAC Rocket-Chip 기반 blinky 데모 SoC