Wireguard FPGA
(github.com/chili-chips-ba)- 이 오픈소스 프로젝트는 저가형 Artix7 FPGA 및 오픈소스 툴체인을 활용해 Wireguard VPN을 하드웨어로 구현함
- 기존 소프트웨어 방식에 비해 선에 가까운 속도(wire-speed)와 낮은 비용을 제공하는 점이 특징임
- 모든 설계 파일이 완전히 공개되어 백도어나 보안 결함 점검이 철저하게 가능함
- ChaCha20-Poly1305, Curve25519, BLAKE2 등 Wireguard의 최신 암호화 알고리듬이 하드웨어/소프트웨어 조합으로 구현됨
- 본 프로젝트는 아직 초기 "Proof of Concept" 단계이며, 향후 기능 확장 및 최적화가 예정되어 있음
소개 및 중요성
이 오픈소스 Wireguard FPGA 프로젝트는 Wireguard VPN을 저렴한 Artix7 FPGA에서 하드웨어로 구현하여, 네트워크 보안 인프라의 핵심 구성 요소인 VPN을 누구나 저비용으로 최고 속도로 사용할 수 있게 함. 기존 하드웨어 솔루션은 고가의 상용 FPGA와 폐쇄형 툴체인이 필요했으나, 본 프로젝트는 오픈소스 기반 설계와 도구 사용, 완전한 소스코드공개 등 투명성과 저변확대 면에서 큰 차별성 및 장점 보유함.
프로젝트 배경과 목표
- 기존의 OpenVPN, IPSec 등은 성능과 관리 측면에서 한계가 있어, Wireguard가 현대적이고 안전한 대체제로 부상하고 있음
- 현존 Wireguard 하드웨어 구현체들은 값비싼 장비와 폐쇄형 IP에 의존하며, 소프트웨어 구현 성능은 네트워크 선의 속도에 미치지 못함
- 본 프로젝트는 SystemVerilog로 개발된 Wireguard를 오픈소스, 저가형 FPGA 환경에서 누구나 활용 ❨검증 및 교육 목적 포함❩할 수 있도록 만듦
관련 프로젝트와 비교
- Blackwire 프로젝트(100Gbps급 Wireguard 하드웨어)는 고가의 Alveo U50, 닫힌 Vivado 툴체인을 사용하여 접근성이 낮음
- 해당 프로젝트 팀은 과거 Balanced Binary Tree Search 알고리듬 등 핵심 모듈을 개발했으나, 상용화 좌절 및 소유권 문제 등 한계가 확인됨
- Wireguard FPGA 프로젝트는 산업 표준 HDL(SystemVerilog) 및 오픈소스 도구 지원, 저렴한 보급형 하드웨어, 투명한 오픈소스 정책을 강조함
하드웨어 및 소프트웨어 아키텍처
하드웨어(HW)
- 제어 플레인: 부트 ROM 및 DDR3 SDRAM 컨트롤러가 연결된 소프트 CPU가 Wireguard 프로토콜 관리, 라우팅, 세션/키 관리 등 담당
- 데이터 플레인: RTL로 구현되어, 패킷 암호화/복호화, 라우팅, Wireguard 프로토콜의 실질적 데이터 전송을 wire-speed로 처리
- 주요 구성품
- PHY Controller, 1G MAC, Rx/Tx FIFO, Header Parser, Packet {Dis/As}sembler, ChaCha20-Poly1305 암호/인증 모듈, IP Lookup 엔진 등
- 모든 암호화와 인증 모듈이 RFC7539 표준 기반으로 구현됨
소프트웨어(SW)
- Wireguard Agent: 프로토콜 핸드셰이크, 세션 유지, 키/라우팅 테이블 관리 역할
- 암호 관련 모듈
- Curve25519: ECDH 키 교환
- ChaCha20-Poly1305, XChaCha20-Poly1305: AEAD 방식 대칭키 암호/인증과 nonce 보호
- BLAKE2s: MAC 인증 및 해시
- 그 외 HKDF, Timer, SipHash, CLI, HAL/CSR 드라이버 등 포함
개발 및 실행 계획
프로젝트 단계
- 1단계: 보드 구동 및 설계 청사진 수립, HW/SW 플랫폼 익숙해지기, 기존 구현 분석, 설계 분할/문서화
- 2단계: 정적 Wireguard 채널의 하드웨어 데이터 경로 기본구현 및 통합, 암호화 알고리듬(특히 ChaCha20-Poly1305) HW화
- 3단계: 소프트 RISC-V 프로세서 내 관리 SW 개발 및 HW/SW 통합, 세션/키 관리 등 오버헤드가 낮은 소프트웨어로 담당
- 4단계: VPN 터널의 초기화, 유지, 안전종료까지의 풀 워크플로우 구현
- 5단계: 성능 테스트, 최적화, 타 오픈소스 툴체인(OpenXC7) 지원 확대, 커뮤니티 문서/CI 지속 관리
- 6단계(선택사항) : VPN 터널 데이터 흐름 제어 소프트웨어 개발, 안정적 데이터전송·관리 구현
HW/SW 공동 아키텍처(협력)
- WireGuard 노드는 IP 라우터와 비슷한 역할을 하므로, 2계층 구조(제어/데이터 플레인) 로 효과적 분할
- 제어 트래픽(프로토콜 메시지)과 데이터 트래픽(암호화/일반 사용자 패킷) 구분, 각자 적합한 경로와 처리 구조 설계
시뮬레이션 및 검증 체계
- 가상(VProc) 및 RTL 소프트코어(RISC-V 등) 기반 CPU 선택 가능, 실제 Wireguard 트래픽 시나리오 기반 단계별 패킷 분석
- Co-simulation HAL: peakrdl로 HW/SW 간 제어·상태 레지스터 자동 생성 및 API 제공, 실 동작에서 신속한 SW/HW 연동 테스트 가능
오픈소스 및 투명성
- 회로(게이트웨어), 임베디드 소프트웨어, 빌드, 비트스트림 등 구현 전 영역을 BSD-3-Clause 라이선스로 완전 공개
- 백도어, 취약점, 법적 소유권 등 문제를 커뮤니티가 직접 점검할 수 있도록 열린 구조 강조
기타 정보
- 개발 흐름, 파트별 세부 설명, 주요 참고소스 및 아웃소싱 모듈 등 README 파일 및 하위 디렉터리(1.hw, 2.sw, 3.build 등)에서 확인 가능
- NLnet Foundation의 후원으로 진행됨
결론
- 이 프로젝트는 고성능 Wireguard VPN 하드웨어 구현의 오픈소스 표준을 지향하며, 낮은 비용과 투명성, 빠른 도입이 가능하다는 차별성이 있음
- 개발 초기 단계이나, 보안성과 접근성 모두에서 향후 오픈 네트워크 인프라의 중요한 역할이 예상됨